明星創始人 — Gavin Wood
說到Polkadot就不能不提到明星創辦人Gavin Wood。
Gavin Wood在創立Polkadot之前,是以太坊聯合創辦人與Web3基金會的創辦人,也是以太坊技術長(CTO)。
Gavin Wood最廣為人知的就是他是以太坊黃皮書(Ethereum yellow paper)的撰寫人,黃皮書可視為是以太坊的技術聖經。
黃皮書當中提出了智能合約專用程式語言 — Solidity、以太坊虛擬機(EVM)的概念,Gavin Wood之後作為技術長也包辦了以太坊源碼、結構、技術整合等工程,奠定了以太坊穩固的技術基礎,以太坊能在這麼短的時間能進行商業崛起,成為第二大公鏈,都是建立在其穩定的技術基礎上,Gavin Wood可說是功不可沒。
Gavin Wood隨後創辦了區塊鏈技術開發公司 — Ethercore,後改為Parity Technologies,Polkadot這一項目也由Parity Technologies所管理。
番外篇 — Parity wallet慘案
Parity wallet是由Gavin Wood所打造的以太坊客戶端錢包,是當時主打快速與使用體驗極佳的錢包之一,但先後在2019年的7/20與11/6發生兩起技術漏洞,造成大量金額損失。
7/20:駭客透過該Parity Wallet中的多重簽名(multi-signature)功能漏洞,使駭客將錢包的所有權轉移到自己手上(正確來說,是控制後頭智能合約的所有權),從而竊取了15.3萬顆的以太坊,折合當時市價約3000萬美元。(這還是白帽駭客搶救過後的損失…)
11/6:GitHub 用戶 devops199 發表了代號#6995的提案 — 「任何人都可以刪除合約」,然後聲稱自己將Parity wallet的合約刪除了。
devops199透過調用合約的公開函數,將合約的所有權移轉給自己(又來了)
結果他就把合約刪掉了…
結果他就把合約刪掉了…
結果他就把合約刪掉了…
當時Polkadot已經成功結束一輪融資,devops199這麼一搞,除了93萬顆ETH就這麼被凍結了(當時市價約2.8億美元),也凍結住Polkadot融資獲得的30萬顆ETH(約為9000萬美元)。
Polkadot跨鏈結構
背景介紹完了,我們該來看看Polkadot的跨鏈葫蘆中賣的是什麼藥了。
先來參閱一下Polkadot白皮書中所提到的跨鏈架構:
好的,可以跳過不看整張圖。
這張圖中我們只需要先找出中間白色的Relay chain、旁邊白色圓點連接的Parachain,以及下方連結Ethereum的Parachain bridge就好。
中繼鏈(Relay chain)、平行鏈(Parachain)、橋(Bridge),為Polkdadot跨鏈的核心架構。
中繼鏈(Relay chain):
為Polkadot網路的底層,也是我們一般稱為的「主鏈」,負責共識演算法與交易,驗證平行鏈中的資訊,以確保全局一致性。
平行鏈(Parachain):
平行鏈可視為中繼鏈的「子鏈」,這些鏈有自己的狀態機、自己的規則、自己的代幣、以及自己的區塊驗證機制。
從上圖的環狀結構中,旁邊的白色圓點都是連接中繼鏈的「插槽」,而在Polkadot的中繼鏈上,任何人皆可建立屬於自己的Token與自己的應用場景,將產生的數據與程式運算後紀錄於中繼鏈上。
轉接橋(Bridge):
轉接橋為Polkadot跨鏈的核心架構,可視為是特殊的平行鏈。
Polkadot可透過轉接橋,將例如比特幣、以太坊的資料連接到平行鏈上,目前Polkadot有三種跨鏈機制:
1.橋接合約(Bridge Contracts):
透過在平行鏈與其他主鏈(例如:比特幣、以太坊)上部署智能合約,以此達到跨鏈溝通的效果。
2.跨平行鏈通訊(Cross-Parachain Communication):
平行鏈之間可透過Polkadot的ICMP(Inter-Chain Message Passing)機制進行通訊,主要過程為
A將自己需要跨鏈的交易/訊息放到自己的輸出等待列中
A的資料收集人將資料提供給A的驗證人
驗證人驗證成功後將A的區塊鏈訊息與等待列資料提交到中繼鏈上
中繼鏈透過共識演算法進行確認後,中繼鏈上的驗證人將A的交易從A的等待列中輸入至B的等待列中
B根據等待列的資訊修改自身的區塊鏈帳本
3.內置橋接模塊(In-built Bridging Modules):
將內置模塊直接串接到特定的鏈上,例如比特幣或以太坊,可以將其他主鏈的資料直接,概念上可將其他主鏈視為Polkadot的平行鏈,這一做法可快速地與其他主鏈進行對接,實現代幣經濟的擴展,但也同時否定掉橋接合約的必要性。
說了這麼多專有名詞,用最簡單的方式來解釋:
Polkadot就像一個延長線(中繼鏈)。
延長線上有很多插槽可以連接各式家電(平行鏈)。
平行鏈可以透過連接橋串接不同的主鏈。
共識演算法
Polkadot需要所有的節點達成共識後才能繼續延續區塊鏈,通過共識機制也能使所有節點狀態彼此同步,目的在於能提供所有Polkadot網路的參與者客觀事實,而這些網路參與者(平行鏈)也有自己的規則,最終互相同步以延續新的區塊。
Polkadot的共識機制採取混合共識,分為GRANPA與BABE兩種,其中GRANDPA用於區塊的確認,BABE用於區塊的產生。
BABE (Blind Assignment for Blockchain Extension):
BABE的核心在於「隨機挑選不同的驗證人,在每一個插槽中生成一個區塊」。
BABE會根據參與插槽並抵押代幣成為驗證人之中進行抽獎,根據抽獎結果決定誰是生成區塊的候選人,一個插槽有6秒的時間。
而這個「插槽」可能會有多個驗證人,也可能沒有驗證人。
若同一個時間段選中多個驗證人,採取先到先得,誰先將區塊傳送到最多的節點中即為獲勝。
若沒有驗證人,Polkadot會透過後台選定一個驗證人以避免驗證人消失的狀況發生,讓他生成次級區塊(Secondary block),以確保區塊產生的完整性。
GRANDPA (GHOST-based Recursive ANcestor Deriving Prefix Agreement):
類似拜占庭協議,只要有2/3的節點是誠實的,並且可以在不同步狀態中運算1/5的節點,就能維持此網路在「部分同步」的模型中。
區別在於GRANDPA是在鏈上達成共識,而不是區塊上達成共識,加快了確認區塊的過程,所以,即使這個區塊鏈網路長期分區或是其他節點故障,GRANDPA協議仍然會針對某條鏈達成共識,而非針對區塊形成共識。
簡言之,透過上述兩種共識混合,BABE共識會在GRANDPA共識確定好的鏈上生成區塊,而BABE共識會在具有最多主要區塊的鏈上創建區塊,如下圖。
Polkadot共識機制中的參與人
在共識機制的執行下,共有四種角色:
收集者(Collators):
收集者類似礦工的角色,幫助驗證者收集平行鏈區塊鏈上的資訊與交易,將一個未打包的區塊交給驗證者進行驗證。
收集者不需抵押代幣,在收集資料中以交易手續費作為收集獎勵,但不會收到區塊獎勵,此外,收集者必須維運一個平行鏈的全節點。
提名者(Nominator):
為共識機制中的代理制度。
提名者可抵押DOT提供給可信任的驗證人參與共識機制,所以持有DOT代幣的人皆可以成為提名者。
提名者可能是持有少量DOT的投資人,也可能是缺乏維護節點的相關技能,因此無法成為直接的驗證人。
驗證者(Validator):
驗證人負責Polkadot網路的出塊,也是整個Polkadot網路中權限最大的角色。
驗證者需要抵押DOT並運行一個中繼鏈的節點,對提名出的平行鏈區塊進行驗證,當這些平行鏈的區塊被驗證者確認後,驗證者就會將區塊組裝到中繼鏈上進行共識演算。
如果驗證人履行職責,則可獲得區塊獎勵+交易手續費,但若未履行職責(如:穩定出塊),則根據情節沒收部分或全部的DOT,將DOT銷毀一部分,其餘的分配給優良的驗證者。
驗證人的懲罰級別分為4個等級,等級後方的括號為其最高懲罰額度:
Lv 1(扣除0.1%代幣or踢出節點池):該驗證而未驗證,或是低安全威脅級別
Lv 2(扣除1%代幣):無惡意但卻因為不良操作而導致不良結果
Lv 3(扣除10%代幣):惡意導致之不良行為,但不會造成高安全威脅或占用大量主網資源
Lv 4(扣除100%代幣):對系統造成嚴重安全威脅、驗證者節點之間互相串通、不良行為導致系統花費大量資源
驗證者是以組的形式存在,驗證者由中繼鏈進行統一管理,可視為一個「驗證者池」,與平行鏈區隔開來,通過共識演算隨機分組配發給平行鏈進行驗證。
釣魚人(Fisherman):
釣魚人負責審查與監控Polkadot網路中的惡意行為,一旦發現惡意行為就會於Polkadot網路中進行舉報。
釣魚人在舉報交易前也需要抵押DOT並且運行節點,此舉報過程也需要經過共識機制篩選,如果通過2/3以上的驗證就會被打包進區塊中,如果這舉報有效,釣魚人就會獲得獎勵,而這獎勵隨著惡意行為的嚴重性可能會非常豐厚,但若是釣魚人進行虛假的舉報,抵押的DOT也會被沒收作為懲罰。
由這四種角色所組成的機制也被稱為提名權益證明 — NPoS(Nominated Proof of Stake)
簡單的用屬性來區分以上四位角色,
交易手續費獎勵:驗證者、收集者
區塊驗證獎勵:驗證者、提名者(由驗證者分潤)
舉報獎勵:釣魚人
需質押DOT:驗證者、釣魚人、提名者
DOT代幣經濟
Polkadot代幣簡寫為DOT,為Polkadot網路中的原生代幣。
初始發行量為1000萬DOT,隨後接著通貨膨脹增加代幣總量,而這通貨膨脹的係數,經由官方目前提出的模型來算,約為主網DOT抵押率達50%時,通膨率為10%
初始發行量中,第一輪募資賣出50%的DOT(1.44億美元),第二輪賣出5%DOT(6600萬美元),30%預留給Web3基金會,15%待後續分發。
DOT除了買賣以外,在Polkadot網路中有甚麼用途呢?主要有以下幾種:
治理(Goverance):
DOT 的持有者,透過治理機制可以管理Polkadot網路中的重要事件,例如:協議的升級和修復。
營運(Operation):
為維持Polkadot主網的運作,將DOT的質押與獎勵分發給收集者、驗證者、提名者、釣魚人四種角色,這四種角色的權責可參閱上方的共識機制。
操作(Inter-operability):
於Polkadot區塊鏈上進行交易的發送與傳遞訊息,可能會使用DOT作為手續費,其概念等同於以太坊的Gas,但這手續費不是必需的。
綁定(Bonding):
新的平行鏈需要通過綁定DOT 來加入網路中,也就是我們之前所提到的「插槽」。
無人維護或是沒人使用的平行鏈也可以通過解除綁定 DOT 以從網路中刪除。
平行鏈的插槽拍賣
按照目前官方的說法,在 Polkadot 運行的第1年或2年之間,隨着各類實現的優化,平行鏈插槽將從5 個增加至 50 到 200 個,未來會隨著主網的狀態進行增減,以確保確保 Polkadot 中繼鏈的安全性。
控制初期的平行鏈數量,也可以有效的維持插槽與DOT的供需平衡,促使驗證獎勵夠吸引人以成為驗證者。
Polkadot 網路通過拍賣機制來競拍平行鏈的使用權,此拍賣機制為調整過後的蠟燭式拍賣,可以當作是英式拍賣的變種。
蠟燭式拍賣:隨機決定拍賣結束的時間,目的是確保沒人能確切知道拍賣會何時結束並進行最後一秒的競標。
出價最高的人需要在主網中鎖定一定數量的 DOT,才可以在一定時間段內擁有所拍得平行鏈的使用權。
這代表想要使用 Polkadot 上的平行鏈,需要購買並鎖定大量 DOT ,直到不想再使用這條平行鏈為止。
總結
回首2020之前風風雨雨的公鏈項目,Polkadot所提出的概念依舊具有前瞻性。
在未來的區塊鏈生態中,跨鏈的資產與資訊互通是必然的趨勢,單以最近火熱的Defi議題來看,各Defi都在考慮將BTC納入Defi的資金選項,唯有資產能互通於各種主鏈之間,將流動性擴展開來,才能建構出健全的金融生態。
對區塊鏈的開發者而言,Polkadot提供了一個新的技術場域,甚至可以說是開發者的樂園,在這裡可以打破公鏈的框架,也能探索更多區塊鏈在商業應用上的可能。
但,再好的經濟模型與技術架構,有時候也抵擋不了人性血淋淋的貪婪。如今,Polkadot的進程尚未實現到治理階段,也是眾多投資人所關心的議題之一,在這個任何事都有可能發生的2020,我們該做的就是充實對區塊鏈技術的了解與認知,謹慎地配置自己的資產。