背景
共識機制是分布式系統(tǒng)為達成狀態(tài)一致性所采用的協(xié)議,是所有分布式系統(tǒng)的基礎(chǔ)。區(qū)塊鏈領(lǐng)域,聯(lián)盟鏈常采用 BFT(拜占庭容錯),pBFT(實用拜占庭容錯)等傳統(tǒng)分布式系統(tǒng)中常用的共識機制;而公鏈項目多采用 PoW, PoS 等中本聰共識(Nakamoto Consenus)。
BFT,pBFT 等共識機制 的共識過程快,且一旦共識達成就不可再進行更改,因此不會分叉。但這類共識節(jié)點間需要復(fù)雜的通信,適用于節(jié)點較少且組成穩(wěn)定的 Permissioned 系統(tǒng)。
中本聰共識是從比特幣的共識機制中抽象出的一套共識體系,基本原理是節(jié)點通過提供某種證明來獲取創(chuàng)建新區(qū)塊的權(quán)利,同時任何節(jié)點都很容易對該證明的真實性進行驗證,從而對新區(qū)塊達成共識。這里的證明可以針對工作量、權(quán)益、服務(wù)等,對應(yīng)的共識機制為 PoW(工作量證明),PoS(權(quán)益證明),PoSe(服務(wù)證明)等等。具體原理可參考文獻[1]。
中本聰共識引入了最長鏈法則和經(jīng)濟激勵機制,使節(jié)點之間可以通過簡單通信,達成共識[2]。中本聰共識具有較強的穩(wěn)定性,不需要對加入的節(jié)點進行篩選,適用于非許可(Permissionless)分布式系統(tǒng)。但中本聰共識分叉的可能性較高,且共識過程相對較慢。
?
混合共識機制
為了結(jié)合上述兩類共識機制的優(yōu)點,一些項目提出了對兩者進行結(jié)合的混合共識機制。如 Cosmos[3], Polkadot[4],Algorand[5] 等項目將 PoS(或DPoS) 與 BFT 進行結(jié)合,在盡量保持網(wǎng)絡(luò)開放性的同時,降低分叉的可能性,提升共識效率。
同時,不同種類的中本聰共識也存在各自的不足。如 PoW 的礦工權(quán)力過大,占有大量算力的礦工有可能發(fā)起 51% 攻擊,礦工進行“硬分叉”有可能導(dǎo)致社區(qū)的分裂。而 PoS 共識則面臨 nothing-at-stake 等問題,同時因為沒有運營成本,導(dǎo)致大量新產(chǎn)生的幣被長期持有,流通量不足。另外,僅采用一種共識時系統(tǒng)往往無法提供除轉(zhuǎn)賬外更加復(fù)雜的服務(wù)。因此,一些項目提出了結(jié)合不同中本聰共識的混合共識機制,旨在結(jié)合不同共識的優(yōu)點。如 Decred[6] 的 PoW+PoS 共識機制,Dash[7] 的 PoW + PoSe 共識機制等。
本文將介紹幾種典型混合共識機制的算法模型與經(jīng)濟模型,并分析其優(yōu)缺點。
典型混合共識項目剖析
1. Decred: PoW + PoS
共識算法
Decred 項目采用了 PoW + PoS 混合共識機制。系統(tǒng)的參與者包括:
礦工節(jié)點:區(qū)塊的生產(chǎn)者,打包交易,進行 PoW 挖礦
驗證節(jié)點:即 PoS Validator,通過投票驗證 PoW 礦工提交的區(qū)塊,同時參與治理過程
開發(fā)者:對 Decred 開源代碼進行維護,獲得項目預(yù)留基金的獎勵
普通用戶:使用 Decred 網(wǎng)絡(luò),收發(fā)交易
PoW 挖礦
Decred 的 PoW 挖礦過程和比特幣基本一致,僅對挖礦算法進行修改(Decred 的挖礦算法采用了和比特幣不同的哈希函數(shù) -- BLAKE-256),具體原理參考[8]。與比特幣不同之處在于:
· 礦工創(chuàng)建的區(qū)塊需要提交給驗證節(jié)點進行投票驗證才能最終被確認(rèn)
· 即使區(qū)塊確認(rèn),礦工也只獲得部分獎勵,其余獎勵由驗證節(jié)點和項目基金獲得
PoS 投票
Decred 網(wǎng)絡(luò)中的 PoS 驗證節(jié)點可以進行以下投票:
· 投票決定是否接受礦工提交的區(qū)塊
· 投票決定是否通過某些共識相關(guān)的升級
· 投票決定項目預(yù)留基金的去向
成為 PoS 驗證節(jié)點的條件是通過質(zhì)押(鎖定)DCR(Decred 原生幣)獲取 Ticket,再通過 Ticket 進行投票。Ticket 的價格會動態(tài)調(diào)整,確??偟?Ticket 數(shù)量大致保持恒定。節(jié)點通過質(zhì)押獲取 Ticket 時還需要支付一定的 Ticket 手續(xù)費,作為礦工將對應(yīng)的 Ticket 打包進區(qū)塊的獎勵,只有被打包進區(qū)塊的 Ticket 才能進入 Ticket 池,之后才有可能被選為驗證節(jié)點。Decred 中 Ticket 的獲取和銷毀的過程在[9]中有詳細闡述。
對新區(qū)塊進行投票
當(dāng)?shù)V工節(jié)點挖到一個符合難度要求的區(qū)塊,Decred 網(wǎng)絡(luò)會從當(dāng)前 Ticket 池中隨機選擇 5 張 Ticket 對該區(qū)塊進行投票驗證,Ticket 被隨機選中的概率符合泊松分布。當(dāng)超過 3 張 Ticket 驗證通過時,區(qū)塊才會被接受。
對新共識提案進行投票
驗證節(jié)點還可對共識升級提案進行投票,只有超過 75% 的 Ticket 投票通過時,升級才會被觸發(fā)?;具^程為:
1. 開發(fā)者提出升級提案
2. 開發(fā)者發(fā)布包含該升級的軟件版本(但還無法觸發(fā))
3. 絕大部分礦工節(jié)點(95%)和驗證節(jié)點(75%)需要升級到指定的軟件版本,才可開始投票
4. 經(jīng)過8064個區(qū)塊的投票(每個區(qū)塊5票,這樣理論上可以覆蓋整個 Ticket 池),當(dāng)獲得超過 75% 的同意票時,升級才會被觸發(fā)
5. 若提案通過,則觸發(fā)升級;若不通過,保持原狀
投票決定項目預(yù)留基金的歸屬
Decred 的區(qū)塊獎勵中的 10% 將作為項目預(yù)留基金。用戶可以支付少量的 DCR 在 Politeia 平臺上發(fā)起對應(yīng)提案,將預(yù)留基金的部分用于特殊的用戶,如支持生態(tài)中某個開源項目等。Ticket 的持有者(驗證節(jié)點)可以對提案進行投票,決定提案是否通過。其步驟和上述提案投票過程基本相同。
經(jīng)濟模型
Decred 的原生代幣為 DCR,所有 DCR 都通過新區(qū)塊獎勵產(chǎn)生。DCR 采用通縮模型,創(chuàng)世塊獎勵為 1,680,000 DCR(預(yù)挖),初始區(qū)塊獎勵為 22 DCR,且每隔 6144 個區(qū)塊(區(qū)塊間隔約5分鐘)減少為上一區(qū)塊獎勵的 100/101,總量固定,約為 2100 萬 DCR,預(yù)計在2120年全部挖出。
DCR 和 BTC 類似,在 Decred 系統(tǒng)中可以用于發(fā)送交易和支付手續(xù)費。同時 DCR 可以在二級市場上流通。
除創(chuàng)世區(qū)塊外,所有區(qū)塊獎勵均按如下方式分配:
· PoW 礦工(區(qū)塊生產(chǎn)者)獲得 60%
· 被選中的 PoS Validator 獲得 30%(每個區(qū)塊有5個驗證節(jié)點,每個獲得 6%)
· 10% 獎勵作為項目獎勵基金
除 DCR 外,Decred 系統(tǒng)中還有一種名為 Ticket 的 Token,Ticket 僅可通過質(zhì)押(鎖定)DCR 來獲得。質(zhì)押本身沒有成本,但需要支付一定買 Ticket 的手續(xù)費(用 DCR 支付,作為區(qū)塊獎勵)。每張 Ticket 的價格每隔 144 個區(qū)塊會進行動態(tài)調(diào)整,使 Ticket 池中可用的 Ticket 數(shù)保持在 40,960 張。Ticket 在 Decred 系統(tǒng)中僅用于投票,且一旦投票完成、或錯過投票、或者過期(如果 40,960 區(qū)塊內(nèi)都沒被選中,則自動過期),Ticket 都將消失,被質(zhì)押的 DCR 和獎勵的 DCR 將返還給質(zhì)押者。
Ticket 的獲取成本很低(質(zhì)押,而不是購買),本身無法流通,且無法永久持有,理論上沒有什么價值。但其作為參與 PoS 共識及區(qū)塊治理和項目預(yù)留基金分配的憑證,有可能有一定的市場價值,不排除在系統(tǒng)外進行賄選、買票的可能[10]。
激勵機制
礦工(生產(chǎn)者)
· 通過購買礦機或租用算力進行 PoW 挖礦,期望獲得區(qū)塊獎勵
· 為保證收益,礦工會繼續(xù)升級礦機或租用更多算力,同時確保了網(wǎng)絡(luò)安全
· 網(wǎng)絡(luò)中每筆交易(包括生成 Ticket 的交易)都包含手續(xù)費,礦工會打包盡量多的交易以獲得更多區(qū)塊獎勵
· 礦工提交的區(qū)塊需要通過 PoS 驗證才能被確認(rèn),因此除非 PoW 礦工同時掌握大部分的 PoS Validator,即使具有大量算力的礦工也很難發(fā)動 51% 攻擊,攻擊動機較一般 PoW 網(wǎng)絡(luò)更弱
· 進行攻擊行為會被驗證節(jié)點列入黑名單,作惡動機弱
· 為支付運營成本,礦工傾向于賣出挖礦所得,為 DCR 提供流動性
PoS 驗證節(jié)點(生產(chǎn)者&消費者)
· 通過質(zhì)押 DCR 獲得 Ticket 進行投票,成功投票可獲得 30% 的區(qū)塊獎勵
· 區(qū)塊被拒絕將沒有激勵,但可以保證網(wǎng)絡(luò)安全,與自身利益一致
· 參與治理本身沒有激勵,但參與投票與自身利益一致
· 為獲得更多投票機會,驗證節(jié)點傾向于鎖定更多 DCR 換取 Ticket
開發(fā)者(消費者)
· 初始預(yù)挖了 1,680,000 DCR,有升值預(yù)期
· 每個區(qū)塊的 10% 的作為預(yù)留基金,對社區(qū)有貢獻的開發(fā)者有機會獲得
普通用戶(消費者)
· 在 Decred 網(wǎng)絡(luò)中使用 DCR 進行交易
· 普通用戶質(zhì)押 DCR 獲得 Ticket,也可成為驗證節(jié)點獲取收益
· 在二級市場買賣 DCR 獲取收益
挖礦為整個系統(tǒng)提供了經(jīng)濟基礎(chǔ),保證網(wǎng)絡(luò)安全性,保證了 DCR 的流通性。質(zhì)押 DCR 實現(xiàn)了鎖倉,有助于二級市場價格的穩(wěn)定。投票和預(yù)留基金使項目更接近于 DAO(分布式匿名組織)的形式運營,開發(fā)者通過激勵參與到項目維護之中。
小結(jié)
Decred 采用了 PoW+PoS 混合共識機制,類似機制在 Sero,HyperPay 等項目中也被使用。與普通 PoW 共識相比,PoS 驗證節(jié)點制約了 PoW 礦工的權(quán)利,使其無法發(fā)起“雙花”攻擊。同時,和純粹的 PoS 共識相比,由于大部分區(qū)塊獎勵仍由礦工獲得,處于現(xiàn)金流考慮,礦工傾向于賣出挖礦收益,因此保證了系統(tǒng)中幣的流通性。純 PoS 共識的另一個問題是 noting-at-stake[15],很大原因在于 Staker 獲得所有獎勵,且成本太低。而在這個混合共識中,PoS 驗證者獲得的收益變少,在一定程度上緩解了 nothing-at-stake 問題。
然而,該共識也存在一定弊端,實際上 PoS 驗證節(jié)點控制了整個網(wǎng)絡(luò),他們可以拒絕正常的區(qū)塊,且不需要太高的成本。雖然 Ticket 數(shù)量很多,但實際上極有可能被少數(shù)大戶持有,使網(wǎng)絡(luò)實際被大戶所控制。另外,受限于 PoW,其 TPS 往往不高,因此不適用于需要高性能的系統(tǒng)。
2. Dash: PoW + PoSe
共識算法
Dash 采用了 PoW + PoSe 混合共識機制。系統(tǒng)的參與者包括:
· 礦工節(jié)點:區(qū)塊的生產(chǎn)者,打包交易,進行 PoW 挖礦
· Masternode:全節(jié)點,可提供即時交易、隱私交易等附加服務(wù)
· 開發(fā)者:對 Dash 開源代碼進行維護
· 普通節(jié)點:非全節(jié)點,可使用 Dash 網(wǎng)絡(luò),收發(fā)交易
PoW 挖礦
Dash 的 PoW 挖礦過程和比特幣基本一致,僅對挖礦算法進行修改(Dash采用了名為 x11 的挖礦算法,實際是 11 種哈希函數(shù)的組合),具體可以參考[7]。與比特幣不同之處在于:
· 礦工只能獲得部分區(qū)塊獎勵,其余將作為 Masternode 獎勵和項目預(yù)留
· Masternode 有權(quán)拒絕礦工產(chǎn)生的區(qū)塊
Masternode
Masternode 是 Dash 網(wǎng)絡(luò)中最重要的參與者。成為 Masternode 的條件:
· 證明 1000 DASH 幣的所有權(quán)(相當(dāng)于鎖定,但幣仍可以使用,一旦幣被使用,將從 Masternode 列表中移除)
· 運行 Dash 全節(jié)點
· 一臺運行 Linux 的服務(wù)器,上面運行 Masternode 相關(guān)的軟件:
(1)服務(wù)器要求有較高的硬件配置:推薦 1核2GHz,4G RAM,60G 硬盤
(2)服務(wù)器必須有公網(wǎng) IP
只要滿足上述條件,節(jié)點即可發(fā)送一筆特殊的交易 ProRegTx,在鏈上注冊成為 Masternode。所有 Masternodes 都被添加到 Masternode list 中,列表順序由鏈上注冊順序(區(qū)塊高度)以及 ProRegTx 交易的哈希唯一確定,在所有 Masternode 中達成共識。
與普通節(jié)點相比,Masternode 可以提供一些附加服務(wù):
1、即時交易 InstantSend:
· 對于符合特定要求的交易可以立刻確認(rèn),不需要等待多個確認(rèn),即時交易不能被雙花
· 即時交易需要滿足的條件:
(1)交易的所有輸入都被 InstantSend 腳本鎖定
(2)所花費的 UTXO 包含在有 ChainLock 的區(qū)塊中
(3)所有輸入本身至少包含 6 個以上區(qū)塊確認(rèn)
2、區(qū)塊鎖定 ChainLocks
· 由 300-400 個 Masternodes 組成的委員會達成一致意見,鎖定某一區(qū)塊
· 區(qū)塊被鎖定后,在同一高度不允許再被分叉,即不可能再進行 51% 攻擊
· 如果開啟了 InstantSend 功能,則區(qū)塊中所有交易都必須被 InstantSend 鎖定后,才能進行區(qū)塊鎖定
3、隱私交易 PrivateSend
· 隱私交易的原理是混幣(Coin-mixing)[12]
· PrivateSend 本身不收費,但每一筆交易都要支付一定的抵押款(Collateral,以 DASH 計),抵押款有十分之一的幾率被收做手續(xù)費
· 在混幣過程中若發(fā)起方?jīng)]有及時響應(yīng)混幣相關(guān)的信息交互,也有 ? 的可能被沒收抵押款(作為手續(xù)費)
4、治理
· Masternode 對提案進行投票,完成治理過程
服務(wù)證明 Proof of Service(PoSe)
Dash 中的 PoSe 機制通過一套評分系統(tǒng)證明 Masternode 是否提供了服務(wù):
· PoSe 評分系統(tǒng)基于分布式簽名生成(Distributed Key Generation,DKG)過程,該過程需要在 Masternode 之間進行通信
· 通過執(zhí)行 DKG 可以產(chǎn)生對系統(tǒng)長期提供服務(wù)的 Masternode Quorum,稱為 LLMQ (Long-Living Masternode Quorums),其主要任務(wù)是對共識相關(guān)的信息進行多重簽名(如InstantSend 交易,區(qū)塊鎖定等)
· Masternode 的初始分?jǐn)?shù)為 0,分?jǐn)?shù)一旦超過 Masernode 列表中 Masternode 的總數(shù),則masternode 將被視為沒有提供服務(wù),從列表中移除(需要重新申請成為 Masternode):
(1)在 LLMQ DKG 過程中如果沒有參與,將增加 66% 的分?jǐn)?shù)(說明在短時間內(nèi)連續(xù)兩次不參加 DKG 則會被視為無法提供服務(wù))
(2)Dash 主鏈每增加一個區(qū)塊,每個 Masternode 的分?jǐn)?shù)都會減少 1
通過 PoSe 證明提供了相應(yīng)服務(wù)的 Masternode 將得到獎勵,而無法提供服務(wù)的 Masternode 將會被移除。
經(jīng)濟模型
Dash 的原生代幣為 DASH:
· 全部通過挖礦產(chǎn)生(團隊有預(yù)挖,主網(wǎng)上線前 2 天,總計約 190 萬 DASH 被挖出,約占總供應(yīng)量的 10% 以上,備受爭議[17])
· Dash 的區(qū)塊獎勵算法經(jīng)幾次更改,截止到 2019 年 6 月,區(qū)塊獎勵為 3.11 DASH(另有 10% 作為團隊預(yù)留),獎勵每隔 210240 個區(qū)塊(約382天)減少 7.14%
· 區(qū)塊間隔約為 2.5 分鐘
· 最大供應(yīng)量約為 18,921,005 DASH
· 每個區(qū)塊獎勵的分配如下:
· 成功創(chuàng)建區(qū)塊的礦工獲得 45%
· 參與 PoSe 的 Masternode 獲得 45%(每個區(qū)塊只有一個 Masternode 參與)
· 10% 獎勵作為預(yù)留基金(按月發(fā)放)
經(jīng)濟激勵
礦工(生產(chǎn)者)
· 和普通 PoW 礦工一致,購買礦機、算力,打包區(qū)塊,獲取區(qū)塊獎勵
· 礦工創(chuàng)建的區(qū)塊要經(jīng)過 Masternode 的認(rèn)證,故較難發(fā)起攻擊
· Masternode 可以鎖定區(qū)塊,無法分叉,故礦工一般無法發(fā)動 51% 攻擊
· 為支付運營成本,礦工傾向于賣出挖礦所得,提供流動性
Masternode(生產(chǎn)者&消費者):
· 鎖定 1000 DASH 并參與 PoSe,保持在線,獲取區(qū)塊獎勵
· 有一定運營服務(wù)費的成本,有可能賣出獎勵,但質(zhì)押的 1000 DASH 一般不會輕易使用,相當(dāng)于鎖倉
· 參與 InstantSend,PrivateSend 等服務(wù),獲取對應(yīng)獎勵
· 參與治理,本身沒有獎勵,但不參與會被懲罰(從 Masternode 列表中移除)
開發(fā)者(消費者)
· 預(yù)挖了部分 DASH,維護項目,有上漲預(yù)期
· 預(yù)留的 10% 挖礦獎勵大概率由開發(fā)團隊獲得
普通用戶(消費者)
· 收發(fā)普通交易,二級市場買賣
· 收發(fā)即時交易,隱私交易等,滿足特殊需求
· 可通過質(zhì)押 1000 DASH 成為 Masternode
PoW 礦工和 Masternode 共同保證了網(wǎng)絡(luò)的安全性。同時,由于 Masternode 有較強的激勵,可以促使更多的節(jié)點提供 Masernode 的服務(wù)。通過進一步優(yōu)化激勵模型,未來 Dash 的 Masternode 可能支持更多更復(fù)雜的服務(wù)。團隊預(yù)留的 DASH 也為未來項目的長期發(fā)展提供了保障。
小結(jié)
Dash 是最早引入 Masternode 概念的項目之一。時至今日類似的含 Masternode 項目已經(jīng)越來越多,詳見[11]。與純粹的 PoW 共識機制相比,Masternode 的引入在一定程度上制約了礦工濫用權(quán)力,提高了區(qū)塊鏈的最終確定性,降低了分叉和 51%攻擊 的可能性。另一方面,通過引入 PoSe, 可以激勵 Masternode 提供除常規(guī)交易之外的服務(wù),增加系統(tǒng)的多樣性。
這類混合共識的最大問題在于 Masternode 的權(quán)利往往過大,比如 DASH 大戶可以同時擁有多個 Masternode。當(dāng)大部分 Masternode 被小部分人掌握,網(wǎng)絡(luò)會趨向中心化。另外,受制于 PoW,其 TPS 仍然是較大瓶頸。
3. Komodo: PoW + dPoW
共識算法
Komodo 在普通 PoW 的基礎(chǔ)上,增加了一種名為延遲 PoW (delayed Proof of Work,dPoW) 的安全機制,試圖利用比特幣等較安全的 PoW 項目的算力來保證 Komodo 以及相關(guān)資產(chǎn)的安全性。dPoW 可以作為任何基于 UTXO 的鏈的二層共識。
Komodo 系統(tǒng)的參與者包括:
· 礦工:進行普通的 PoW 挖礦
· 公證人(Notary)節(jié)點:運行多個鏈的全節(jié)點(包括比特幣全節(jié)點,Komodo全節(jié)點等),在比特幣網(wǎng)絡(luò)上對區(qū)塊進行公證,同時也參與 Komodo 挖礦
· 普通用戶:KMD 幣的持有者,可參與 Staking(注意,這里并不是 PoS,而是類似鎖倉激勵)
Komodo 中的礦工和普通 PoW 項目中礦工行為基本一致(挖礦算法為 EquiHash),不同之處在于 Komodo 的普通礦工僅有 25% 的幾率挖到區(qū)塊,其他區(qū)塊大部分由公證人節(jié)點創(chuàng)建。
dPoW 安全機制
Komodo 系統(tǒng)中存在 64 個公證人節(jié)點,他們是 dPoW 安全機制的實際運行者。其中:
· 4 個公證人節(jié)點為開發(fā)者預(yù)留,永久有效
· 其余 60 個 由 KMD 幣的持有者投票產(chǎn)生:
(1)在每年提供公證服務(wù)排名前 30 的節(jié)點將自動當(dāng)選為下一期公證人節(jié)點(即完成最多 Komodo 到 Bitcoin 映射的
(2)其余 30 節(jié)點將重新投票產(chǎn)生
· 所有公證人節(jié)點需要同時運行比特幣全節(jié)點、Komodo 全節(jié)點,以及所有要保護的鏈的全節(jié)點(目前有40多個),因此對硬件配置要求較高
公證人節(jié)點的主要工作是完成 Komodo 鏈到 Bitcoin 鏈的公證(相當(dāng)于在 Bitcoin 上寫入 Komodo 的檢查點),確保 Komomo 主鏈的安全性。也可以將其他資產(chǎn)的檢查點寫到 Komodo 鏈上,過程和 Komodo 到 Bitcoin 的公證一致。
公證人節(jié)點的工作流程簡要描述如下:
· 首先運行所有全節(jié)點(包括比特幣,Komodo 等),并同步到最新區(qū)塊
· 用同一個私鑰在所有鏈上生成一組地址
· 和其他 63 個公證人節(jié)點保持連接和通信
· 開始 dPoW 公證流程:
(1)根據(jù)預(yù)先設(shè)定的規(guī)則,所有公證人節(jié)點可以提議需要公證的 Komodo 鏈上的某個區(qū)塊
(2)從 64 個公證人節(jié)點中選擇 13 個,所有公證人的地址將會按順序存在一個列表中,公證人程序按順序選取前 13 個可連接的公證人節(jié)點,若不可連接將被跳過,被選中后節(jié)點地址將會被移到列表末尾
(3)被選出的 13 個公證人各自簽名一筆有 13 個輸入的比特幣交易(如[13]),該交易的其中一個輸出為上述要公證的區(qū)塊的哈希值(通過 OP_RETURN 實現(xiàn))
(4)待比特幣網(wǎng)絡(luò)上交易確認(rèn)后,公證人節(jié)點會構(gòu)造一筆類似的 Komodo 交易,其中一個輸出為上述包含了公證區(qū)塊哈希的比特幣交易哈希(也通過 OP_RETURN 實現(xiàn))
(5)該交易被確認(rèn)后,Komodo 網(wǎng)絡(luò)上所有節(jié)點都可以確定比特幣網(wǎng)絡(luò)上 Komodo 鏈的檢查點
(6)上述過程不斷重復(fù)(每10分鐘一次),同時也可以適用于其他用 dPoW 確保安全的鏈
通過上述 dPoW 和公證人節(jié)點機制,相當(dāng)于 Komodo 網(wǎng)絡(luò)在比特幣網(wǎng)絡(luò)上設(shè)置了多個檢查點,在比特幣網(wǎng)絡(luò)上被公證的區(qū)塊將不可撤銷,因此幾乎不存在 51% 攻擊的可能。
Komodo 中的 Staking
Komodo 網(wǎng)絡(luò)中的 Staking 和共識無關(guān),其更類似于鎖倉激勵。KMD 的持有者通過鎖定代幣,將獲得一定的 KMD 獎勵[14]。
經(jīng)濟模型
Komodo 的原生代幣為 KMD,總量為 2 億,按如下方式分配:
· 初始的 ICO 分配了 2000 萬 KMD
· 早期的 BTCD 幣持有者通過兌換獲得了 7000 萬 KMD
· 團隊預(yù)留 1000 萬作為運營成本
· 剩余 1億 KMD 中
(1)22% 左右用于獎勵礦工,作為挖礦獎勵,區(qū)塊間隔為 1 分鐘,每個區(qū)塊獎勵為 3 KMD
(2)78% 左右用于獎勵 Staking,Staking 的年化收益約為 5%
· 挖礦和 Staking 的獎勵都是線性釋放,將在 2031 年左右達到總供應(yīng)量上限,之后不再有獎勵。
特別地,對于 KMD PoW 挖礦,普通礦工只有 25% 的概率挖到區(qū)塊。而公證人節(jié)點由于提供了 dPoW 安全服務(wù),將會以更低的難度挖到區(qū)塊。據(jù)統(tǒng)計,大約 75% 的區(qū)塊被公證人節(jié)點挖到。挖礦獎勵完全由挖到區(qū)塊的礦工或公正人節(jié)點獲得。
經(jīng)濟激勵
普通礦工(生產(chǎn)者)
· 和普通 PoW 項目礦工一致,購買礦機、算力,打包區(qū)塊,獲取區(qū)塊獎勵
· 由于公證人節(jié)點的存在,普通礦工一般無法發(fā)動 51% 攻擊
· 為支付運營成本,普通礦工傾向于賣出挖礦所得
公證人節(jié)點(生產(chǎn)者)
· 為 Komodo 鏈提供區(qū)塊公證服務(wù),從而可以以較低的難度挖到區(qū)塊,獲得區(qū)塊獎勵
· 提供好的服務(wù)才能連任公證人,激勵其按照 dPoW 規(guī)則完成區(qū)塊公證
· 公證人本身不需要質(zhì)押任何 KMD,且服務(wù)器配置要求高,為支付運營成本,公證人節(jié)點也傾向于賣出挖礦所得
KMD 持有者(消費者)
· 通過鎖定 KMD 可以獲取 Staking 獎勵,相當(dāng)于鎖倉
· 收發(fā)普通交易,二級市場買賣等
· 還可以對公證人節(jié)點進行選舉
小結(jié)
Komodo 利用 dPoW 安全機制在比特幣區(qū)塊鏈上設(shè)置多個 Komodo 的檢查點,從而提高了 Komodo 網(wǎng)絡(luò)的安全性。該機制也可以應(yīng)用到其他鏈上。Komodo 本質(zhì)上還是 PoW + Masternode(PoSe) 的模式,雖然團隊否認(rèn)公證人節(jié)點是 Masternode,但實際上公證人節(jié)點確實通過提供額外的服務(wù)獲得收益,且具有較大概率成為區(qū)塊的創(chuàng)建者,在一定程度上控制了整個網(wǎng)絡(luò)。Komodo 的 Staking 機制實際上是一種鎖倉獎勵機制,和共識無關(guān)。
4. Algorand: PoS + 改進的 BFT
共識算法
Algorand 的共識算法通過 PoS 和 可驗證隨機函數(shù)(VRF)選擇區(qū)塊的生產(chǎn)者和驗證者,再通過一種改進的拜占庭協(xié)議 BA* 對區(qū)塊達成共識。
Algorand 中實際只有一種參與者,即 ALGO (ALgorand 原生代幣)的持有者,但在不同階段,持有者會扮演不同的角色:
· 持有者有可能在某一輪共識中被選為區(qū)塊生產(chǎn)者(leader)
· 持有者有可能在某一輪共識中被選為區(qū)塊驗證者
· 未被選中的持有者
Algorand 的共識算法可簡要描述如下:
· 每一輪共識開始時,所有用戶可以通過 VRF 確定自己是否是潛在的區(qū)塊生產(chǎn)者(leaders),具體方法是檢查本輪自己某種簽名的哈希值是否小于某個閾值。持幣較多的節(jié)點被選中的概率較高(PoS)
· 潛在的生產(chǎn)者(可能有多個)各自創(chuàng)建新區(qū)塊,并進行廣播,同時公布簽名,任何節(jié)點都可以驗證其合法性(這是 VRF 的特性)
· 用同樣的方式從系統(tǒng)中隨機選取驗證組,對新產(chǎn)生的區(qū)塊達成共識,每一輪共識分為兩個階段:
(1)驗證組通過分級共識協(xié)議(GC),每個驗證節(jié)點從多個候選區(qū)塊中選擇一個被大多數(shù)節(jié)點認(rèn)可的區(qū)塊(若不存在,驗證節(jié)點會提議生成空區(qū)塊)
(2)驗證節(jié)點根據(jù)自己選擇的區(qū)塊和 GC 共識的結(jié)果設(shè)定自己的初始狀態(tài),繼續(xù)進行改進的二元拜占庭共識(BBA*),直到達成共識(有可能需要多次循環(huán)才能達成共識),共識結(jié)果有兩種:
a.接受 leader 創(chuàng)建的新區(qū)塊,進入下一輪
b.不接受 leader 創(chuàng)建的新區(qū)塊,將新區(qū)塊設(shè)置為空區(qū)塊,進入下一輪
最終,每一輪都將通過共識產(chǎn)生一個新區(qū)塊。關(guān)于協(xié)議的更多細節(jié)可以參考[5][16],以及《Qtum研究院:深度解析Algorand共識協(xié)議》。
經(jīng)濟模型
Algorand 的原生代幣為 ALGO,總量為 100 億。所有 ALGO 在創(chuàng)始塊中直接生成,由 Algorand 基金會負(fù)責(zé)后續(xù)的分配。和大多數(shù)其他公鏈項目不同的是,在 Algorand 中,創(chuàng)建區(qū)塊或驗證區(qū)塊都不會獲得任何獎勵。
100 億 ALGO 將在五年內(nèi)通過如下方式分配[18]:
· Algorand 基金會預(yù)留 25 億 ALGO,用作支持項目長期運作(這一部分由基金會在創(chuàng)始塊直接獲得,而且沒有鎖定。Algorand 基金會承諾不隨意動用這筆資金[19])
· 通過拍賣的方式逐步分發(fā) 30 億 ALGO
· 17.5 億 ALGO 作為 Staking 的獎勵,逐步發(fā)放
· 25 億作為中繼結(jié)點的獎勵逐步發(fā)放
· 2.5 億作為社區(qū)獎勵逐步發(fā)放(用于舉辦各種活動,黑客松等)
經(jīng)濟激勵
Algorand 基金會通過分配 ALGO 對系統(tǒng)中各參與者進行激勵,其中:
· 用于拍賣的 ALGO 相當(dāng)于 ICO,對 ALGO 進行公開售賣。拍賣采用較為新穎的”荷蘭式拍賣“[20],在業(yè)內(nèi)引起了極大的關(guān)注。并且基金會承諾在 1 年后可以以成交價的 90% 對 ALGO 進行回購,在一定程度上保障了投資者的權(quán)益
· 任何持有超過 1 ALGO 的賬戶都將獲得 Staking 獎勵,獎勵會在每個區(qū)塊進行發(fā)放,目前的年化收益約為 10%。Algorand 每筆交易都會有少量手續(xù)費,這些手續(xù)費不會直接發(fā)放給用戶,而是被 Algorand 基金會回收,當(dāng)所有 Staking 獎勵發(fā)完時,這些手續(xù)費也將被統(tǒng)一作為 Staking 獎勵
· 在 Algorand 系統(tǒng)中,能夠為其他節(jié)點提供鏈接服務(wù)的節(jié)點被稱為中繼節(jié)點[21],中繼節(jié)點將在提供服務(wù)期間獲得獎勵,5 年累計獎勵總計 25 億 ALGO。這一激勵將促使更多穩(wěn)定的中繼節(jié)點為 Algorand 網(wǎng)絡(luò)提供連接、轉(zhuǎn)發(fā)交易等服務(wù)
· 社區(qū)獎勵將激勵對項目有長遠價值的活動
從上述經(jīng)濟模型可以看出,Algorand 基金會在整個經(jīng)濟模型中占據(jù)絕對的主導(dǎo)地位,所有 ALGO 都由基金會進行分配,從經(jīng)濟模型的角度看非常中心化。無論是回購、Staking 獎勵的總額、中繼節(jié)點獎勵,還是社區(qū)獎勵,都由 Algorand 基金會決定,存在一定的風(fēng)險。
小結(jié)
Algorand 采用了共識和激勵分離的系統(tǒng)設(shè)計。共識方面,Algorand 提出了一種新穎的 PoS + BA* 共識機制,在可擴展性、安全性和去中心化這三個方面取得了較好的均衡。但經(jīng)濟模型設(shè)計偏中心化,Algorand 基金會權(quán)利過大,整個經(jīng)濟模型能否長期正常運行還有待驗證。
總結(jié)
混合共識機制的主要目的是通過融合其他共識機制,克服已有共識的某些缺點。BFT,pBFT 等經(jīng)典的共識機制速度快,且?guī)缀醪粫植?,Algorand等項目將其與 PoS結(jié)合,通過一定的設(shè)計使其在 Permissionless 環(huán)境下部署,實現(xiàn)了兩者的結(jié)合。另一方面,PoW,PoS 等中本聰共識機制的融合,使更多參與者加入博弈,進一步提升共識的安全性,同時可以提供更多多元化的服務(wù)(Masternode),在設(shè)計業(yè)務(wù)復(fù)雜的系統(tǒng)時可以考慮采用。本文僅對一些代表性項目進行簡要分析,更多混合共識算法及其實現(xiàn)細節(jié)可以查閱相關(guān)文獻。
評論
查看更多