區塊鏈市場應用專家-James
上一篇的最後介紹完了Polkadot的跨鏈結構,接著我們來看他的共識演算法及其機制中的參與人。
共識演算法:
Polkadot需要所有的節點達成共識後才能繼續延續區塊鏈,通過共識機制也能使所有節點(註1)狀態彼此同步,目的在於能提供所有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共識機制中的參與人
在共識機制的執行下,共有四種角色:
1.收集者(Collators):
收集者類似礦工(註2)的角色,幫助驗證者收集平行鏈(註3)區塊鏈上的資訊與交易,將一個未打包的區塊交給驗證者進行驗證。
收集者不需抵押代幣,在收集資料中以交易手續費作為收集獎勵,但不會收到區塊獎勵,此外,收集者必須維運一個平行鏈的全節點。
2.提名者(Nominator):
為共識機制(註4)中的代理制度。
提名者可抵押DOT(DOT為Polkadot代幣的簡寫)提供給可信任的驗證人參與共識機制,所以持有DOT代幣的人皆可以成為提名者。
提名者可能是持有少量DOT的投資人,也可能是缺乏維護節點的相關技能,因此無法成為直接的驗證人。
3.驗證者(Validator):
驗證人負責Polkadot網路的出塊,也是整個Polkadot網路中權限最大的角色。
驗證者需要抵押DOT並運行一個中繼鏈(註5)的節點,對提名出的平行鏈區塊進行驗證,當這些平行鏈的區塊被驗證者確認後,驗證者就會將區塊組裝到中繼鏈上進行共識演算。
如果驗證人履行職責,則可獲得區塊獎勵(註6)+交易手續費,但若未履行職責(如:穩定出塊(註7)),則根據情節沒收部分或全部的DOT,將DOT銷毀一部分,其餘的分配給優良的驗證者。
驗證人的懲罰級別分為4個等級,等級後方的括號為其最高懲罰額度:
Lv 1(扣除0.1%代幣or踢出節點池):該驗證而未驗證,或是低安全威脅級別
Lv 2(扣除1%代幣):無惡意但卻因為不良操作而導致不良結果
Lv 3(扣除10%代幣):惡意導致之不良行為,但不會造成高安全威脅或占用大量主網資源
Lv 4(扣除100%代幣):對系統造成嚴重安全威脅、驗證者節點之間互相串通、不良行為導致系統花費大量資源
驗證者是以組的形式存在,驗證者由中繼鏈進行統一管理,可視為一個「驗證者池」,與平行鏈區隔開來,通過共識演算隨機分組配發給平行鏈進行驗證。
4. 釣魚人(Fisherman):
釣魚人負責審查與監控Polkadot網路中的惡意行為,一旦發現惡意行為就會於Polkadot網路中進行舉報。
釣魚人在舉報交易前也需要抵押DOT並且運行節點,此舉報過程也需要經過共識機制篩選,如果通過2/3以上的驗證就會被打包進區塊中,如果這舉報有效,釣魚人就會獲得獎勵,而這獎勵隨著惡意行為的嚴重性可能會非常豐厚,但若是釣魚人進行虛假的舉報,抵押的DOT也會被沒收作為懲罰。
由這四種角色所組成的機制也被稱為提名權益證明 — NPoS(Nominated Proof of Stake)
我們簡單的用屬性來區分以上四位角色:
交易手續費獎勵:驗證者、收集者
區塊驗證獎勵:驗證者、提名者(由驗證者分潤)
舉報獎勵:釣魚人
需質押DOT:驗證者、釣魚人、提名者
待續...
註1:節點,在區塊鏈中紀錄的單位,若有新的資料進入,每個節點互相同步,就可確保所存取的資料是否正確一致。
註2:礦工,泛指使用礦機(有運算能力的設備)挖礦的人。
註3:平行鏈:請參考"跨鏈技術趨勢-深度解析Polkadot(一)"
註4:共識機制,泛指共同的認知,在區塊鏈技術中,為達成共識使用的機制常見的有POW、POS、DPOS等方式。
註5:中繼鏈:請參考"跨鏈技術趨勢-深度解析Polkadot(一)"
註6:區塊獎勵,Block Reward,為給予在區塊鏈上透過具運算能力的硬體去處理認證每筆交易的礦工的獎勵。
註7:出塊:指在運算中礦工取得紀錄權力後,將記錄打包成一個區塊再進行廣播。此處廣播為區塊鏈中告知其他節點紀錄的行為。
照片來源: 資料照片
《更多匯流新聞網報導》
【文章轉載請註明出處】