導讀
Cosmos是由Tendermint團隊構建的開源社區項目,它的共識算法是基于POS和BFT的共識協議。
Cosmos通過SDK的形式將共識算法和網絡模塊封裝起來,形成一套開箱即用的區塊鏈開發腳手架,本期將為大家帶來Cosmos系列文章中Tendermint共識算法的介紹。
Tendermint核心模塊
首先我們回顧下,Cosmos中的TendermintCore核心模塊主要包含共識算法和網絡模塊,由于網絡模塊采用的是我們熟悉的gossip協議,這里就不再贅述。我們編寫的應用層的模塊通過ABCI與Tendermint核心模塊進行交互,在交互的過程中,由Tendermint完成選舉Proposer,BFT三階段共識以及區塊執行的邏輯。
1)ABCIApplication
其中ABCI接口可以分為三類:信息查詢、交易校驗以及共識相關處理,而TendermintCore作為ABCIClient在啟動時會與ABCIServer建立三個連接,分別用于這三類接口消息的處理。
CNBC:今年出席達沃斯世界經濟論壇的加密公司比往年少得多:1月18日消息,過去幾年在瑞士達沃斯舉行的世界經濟論壇上,加密貨幣行業的與會者人數激增。但在2022年近1.4萬億美元的損失之后,加密行業對如何投入現金更加謹慎。Circle政策和監管戰略副總裁Teana Baker-Taylor表示,很明顯,投機期即將結束,你看到的每家公司都真正專注于現實世界的用例。
曾于去年參加達沃斯論壇的區塊鏈技術服務提供商Casper Labs戰略關系主管Cliff Sarkin表示,留在達沃斯的加密公司是“實質性項目”和“真正的交易”,而不是NFT之類的東西。[2023/1/18 11:18:44]
在TendermintCore與Application交互的所有消息類型中,有3種主要的消息類型:
·CheckTx消息用于驗證交易。TendermintCore中的mempool通過此消息校驗交易的合法性,通過之后才會將交易廣播給其它節點。
·DeliverTx消息是應用的主要工作流程,通過此消息真正執行交易,包括驗證交易、更新應用程序的狀態。
·Commit消息通知應用程序計算當前的世界狀態,并存在下一區塊頭中。
Roboto Games完成1500萬美元A輪融資,a16z領投:金色財經報道,旨在連接Web2體驗和可訪問的Web3游戲元素的游戲工作室Roboto Games完成1500萬美元A輪融資,a16z領投,其他參投方包括Ancient8、Animoca Brands、Gumi Cryptos Capital、Harrison Metal Capital、Makers Fund、Merit Circle、Transcend和一些天使投資人。迄今為止,該公司的總融資額為1950萬美元,包括2019年的種子輪融資。
Roboto Game由Web2資深人士創立,計劃將Web3元素添加到其即將推出的生存/制作大型多人在線(MMO)游戲Foragers and Fighters中,該團隊計劃在2023年第一季度推出該游戲的初始可玩版本,新資金將用于繼續打磨游戲并擴大招聘,包括藝術家和營銷人員。[2022/11/30 21:10:49]
?Tendermint共識引擎,包含區塊鏈需要大部分功能實現,主要有:
·?共識算法:BFT+POS算法;
·P2P:采用Gossip算法;
·RPC:區塊鏈對外提供的API接口;
ApeCoin質押系統將于12月5日上線,質押獎勵將于12月12日開始積累:11月24日消息,Web3工具開發商Horizen Labs在推特上宣布,ApeCoin質押系統Ape Staking將于12月5日上線并開啟預存期,12月5日至12月7日為合約籌款期,12月12日開始積累質押獎勵。對于預存款期,Horizen Labs解釋稱,為了兼顧必要的漏洞賞金AIP相關工作和重新審核提交,預存款期縮短了一周。
此外,大多數國家/地區的用戶都可以使用ApeStake.To;但以下國家或地區的用戶將被地理封鎖:美國、加拿大、朝鮮、敘利亞、伊朗、古巴、俄羅斯、克里米亞、頓涅茨克和盧甘斯克。
此前7月23日消息,ApeCoin發布公告稱,根據已通過的AIPs-21和22提案,ApeCoin已選擇Horizen Labs作為合作伙伴,為ApeCoin建立和管理質押系統。[2022/11/24 8:02:36]
·?其它:交易緩存池、消息隊列等。
2)POS權益證明協議
接下來介紹Tendermint的POS算法,通過該POS算法可以在驗證人集合中選取出下一輪出塊的提議人。
比特幣政策研究所向美國商務部提交關于數字資產競爭力的報告:7月7日消息,比特幣政策研究所(Bitcoin Policy Institute,簡稱BPI)向美國商務部提交一份關于數字資產競爭力的報告。這是美國拜登總統要求國際貿易管理局征求公眾對美國數字資產和競爭力的反饋之一。
該報告考察了美國在金融包容性和消費者福利方面目標的影響,稱比特幣等加密貨幣通過消除對中心化中介的需求,提供的費用顯著降低。預計閃電網絡等新興支付協議的持續創新和使用范圍擴展,不僅會降低銀行服務不足的美國人的交易成本,而且還將對傳統金融機構施加競爭壓力,以降低費用。與拒絕或扼殺比特幣采用的其他經濟集團和敵對國家相比,比特幣為美國提供明顯的優勢,特別是當他們追求旨在促進社會控制而不是個人自由的技術專制治理和貨幣體系時。
此外,文件指出,比特幣本身的開放性為執法官員提供重要的工具來發現和追蹤非法行為,這可能有助于沒收犯罪組織和勒索軟件操作的非法財富。最后,該報告還討論有關PoW挖礦的爭議,并最終認為PoW挖礦將“繼續受到市場的重視,特別是在可預測和公平的監管框架下,挖礦將繼續在美國擴張。”(Finbold)[2022/7/7 1:57:12]
上圖中,假設有A、B、C三個驗證人,分別抵押了1、2、3個代幣
21Shares美元收益ETP產品USDY將在SIX Swiss Exchange上線:5月25日消息,歐洲加密ETP發行商21Shares的USD Yield ETP(USDY)產品將于周三在SIX Swiss Exchange上線。USDY提供的抵押收益率(美元計價)為5%。USDY通過吸收美元并將其借給交易對手方來產生收益,交易以BTC和ETH作為抵押品,最低抵押率為110%。(Globenewswire)[2022/5/25 3:40:22]
1.第一輪由于C的抵押資產最多,所以C當選第一輪的提議人;
2.第二輪由于C在上一輪當選過提議人,所以他的vote_power變為pre_votingPower-(stake_a+stake_b)?也就是3-(1+2)==0,而B的vote_power等于pre_votingPower+stake也就是2+2==4,同理A的vote_power等于2,那么這一輪中投票權最大的是B,所以B當選提議人;
3.第三輪A的vote_power為3,B的vote_power為2-(2+0)==0,C的vote_power為?0+3==3,由于A排名在C的前面,所以A當選提議人;
4.同理第四輪A的vote_power為-1,B的為2,C的為6,所以C當選提議人;
Tendermint的Pos機制有如下優點和缺點:
優點:Proposer的選擇方式是與stake相關的,所以應用層可以實現自己的共識,在應用層將計算好Validator的權重傳遞給Tendermint,Tendermint就會按照應用層需要的方式選擇Proposer。
缺點:Round-Robin策略太簡單了,容易被壞人預測到下一個Proposer是誰,于是可以提前布局對rProposer發起DDoS攻擊或別的攻擊。這里Tendermint的解決方法就是驗證人節點對外不暴露節點的IP地址。
3)BFT拜占庭容錯協議
Tendermint是一個易于理解的BFT共識協議,協議遵循一個簡單的狀態機原理:
協議中有兩個角色:
驗證人:協議中的角色或者節點,不同的驗證者在投票過程中具備不同的權力。
提議人:由驗證人產生。?驗證人對交易的區塊提議并對提議的區塊投票。區塊被提交到鏈上,且每個區塊就是一個區塊高度。但區塊也有可能提交失敗,這種情況下協議將選擇下一個驗證人在相同高度上提議一個新塊,重新開始投票。
從圖中可以看到,在propose開始階段,被選中的proposer會給全網絡廣播一個proposal。如果proposer鎖定在上一輪中的block上,那么proposer在本輪中發起的proposal會是鎖定的block,并且在proposal中加上proof-of-lock字段。
在Prevote開始階段,每個Validator會判斷自己是否鎖定在上一輪的proposal區塊上,如果鎖定在之前的proposal區塊中,那么在本輪中繼續為之前鎖定的proposal區塊簽名并廣播prevote投票。否則為當前輪中接收到的proposal區塊簽名并廣播prevote投票。如果由于某些原因當前Validator并沒有收到任何proposal區塊,那么簽名并廣播一個空的prevote投票。
在Precommit開始階段,每個Validator會判斷,如果收集到了超過2/3prevote投票,那么為這個區塊簽名并廣播precommit投票,并且當前Validator會鎖定在這個區塊上,同時釋放之前鎖定的區塊,一個Validator一次只能鎖定在一個區塊上。
如果一個Validator收集到超過2/3空區塊(nil)的prevote投票,那么釋放之前鎖定的區塊。處于鎖定狀態的Validator會為鎖定的區塊收集prevote投票,并把這些投票打成包放入proof-of-lock中,proof-of-lock會在之后的propose階段用到。如果一個Validator沒有收集到超過2/3的prevote投票,那么它不會鎖定在任何區塊上。
在precommit階段后期,如果Validator收集到超過2/3的precommit投票,那么Validator進入到commit階段。否則進入下一輪的propose階段。
commit階段分為兩個并行的步驟:
·Validator收到了被全網commit的區塊,Validator會為這個區塊廣播一個commit投票。
·Validator需要為被全網絡precommit的區塊,收集到超過2/3commit投票。
一旦兩個條件全部滿足了,節點會將commitTime設置到當前時間上,并且會進入NewHeight階段。在整個共識過程的任何階段,一旦節點收到超過2/3commit投票,那么它會立刻進入到commit階段。
上訴過程簡單來說,為了成功提交一個區塊,必須經過兩階段的投票,稱為pre-vote和pre-commit。當超過2/3的驗證人在同一輪提議中對同一個塊進行了pre-commit投票,那么這個區塊才會被提交。
由于離線或者網絡延遲等原因,可能造成提議人提議區塊失敗。這種情況在Tendermint中也是允許的,因為驗證人會在進入下一輪提議之前等待一定時間,用于接收提議人提議的區塊。
假設少于三分之一的驗證人是拜占庭節點,Tendermint能夠保證驗證人永遠不會在同一高度重復提交區塊而造成沖突。為了做到這一點,Tendermint引入了鎖定機制,一旦驗證人預投票了一個區塊,那么該驗證人就會被鎖定在這個區塊。然后該驗證人必須在預提交的區塊進行預投票。當前一輪預提議和預投票沒成功提交區塊時,該驗證人就會被解鎖,然后進行對新塊的下一輪預提交。
4)BFT?VSPBFT
通過上文我們可以看到,Tendermint共識算法和PBFT時非常相似的,可以說是PBFT的變種,那我們來比較一下:
相同點:
·?同屬BFT體系,抗1/3拜占庭節點攻擊。
·?三階段提交,第一階段廣播交易,后兩階段廣播簽名。
·?兩者都需要達到Quorum法定人數才能提交塊。
不同點:
·Tendermint與PBFT的區別主要是在超過1/3節點為拜占庭節點的情況下,當拜占庭節點數量在驗證者數量的1/3和2/3之間時,PBFT算法無法提供保證,使得攻擊者可以將任意結果返回給客戶端。而Tendermint共識模型認為必須超過2/3數量的precommit確認才能提交塊。
·?拜占庭節點概念不同,PBFT指的是節點數,而Tendermint代表的是節點的投票權力。
·PBFT需要預設一組固定的驗證人,而Tendermint是通過要求超過Quorum法定人數的驗證人員批準會員變更,從而支持驗證人的動態變化。
總結
總體來說,Cosmos中Tendermint核心模塊中POS和BFT共識算法的實現較為簡單,不像Polkadot的混合共識那么復雜,但是也是這個原因,可以成為區塊鏈快速開發的腳手架,幫助越來越多的人了解區塊鏈,熱愛上區塊鏈。
作者簡介
江哲
來自數據網格實驗室BitXHub團隊主要負責區塊鏈賬本互操作技術相關研究工作
美國財政部長提名人、前美聯儲主席珍妮特·耶倫周四表示,加密貨幣和數字資產可能“提高金融體系的效率”.
1900/1/1 0:00:00微博財經博主AlbertTheKing發布微博稱:一個小時后,也就是北京時間15:30-16:00區間,我會按時間加權賣出一共大約2500BTC.
1900/1/1 0:00:00研究人員LeonidasHadjiloizou認為Ripple聯合創始人、前CTOJedMcCaleb目前已停止出售其獲得的XRP,原因可能是SEC在12月21日宣布將針對Ripple提起訴訟.
1900/1/1 0:00:00成功地從新冠大流行中脫穎而出的公司與沒有成功的公司有什么區別呢?答案是:技術。就是這么簡單,這是一個需要在所有行業、所有規模的企業中實現的現實.
1900/1/1 0:00:001月11日,都江堰發布首批區塊鏈應用場景示范項目。都江堰市規劃和自然資源局、都江堰市行政審批局分別頒發全國首例基于區塊鏈化數字不動產證及區塊鏈營業執照辦理的區塊鏈醫療機構執業許可證.
1900/1/1 0:00:00今天和大家分享一下對最近兩則新聞的感受。風波不斷的美國大選在上周鬧出了大事,現任總統的支持者大量在華盛頓聚集,情緒高昂,不滿選舉結果,更有人沖進了國會大廈,在全世界的關注下,上演了全武行的劇情.
1900/1/1 0:00:00