比特幣交易所 比特幣交易所
Ctrl+D 比特幣交易所
ads

Polkadot系列|混合共識詳解_DOT

Author:

Time:1900/1/1 0:00:00

Polkadot共識主要有三種:NPOS,BABE,GRANDPA

接下來我們對這三種共識進行逐一的解釋

NPOS

什么是NPOS共識

在Polkadot中,中繼鏈上的驗證者需要分配到各個平行鏈,為它們提供區塊鏈驗證能力,是Polkadot共享安全性的一部分,因此中繼鏈的驗證者對于整個Polkadot多鏈系統的安全性至關重要。

如何公平安全地選舉出中繼鏈上的驗證者也就成了保障整個系統共享安全性的第一步,是不可或缺的一步。

NPOS(NominatedProofofStake)共識算法就是用來選舉出能讓系統更安全,更高效的驗證者集合的。和傳統意義上的POS共識相比,NPOS算法結合了Polkadot鏈自身架構的一些特點,進行相應的優化。

下面看看NPOS是如何進行工作的。

在說明NPOS之前,我們需要先回顧一下Polkadot中重要的兩種角色。

▲驗證人

中繼鏈的全節點,中繼鏈會在驗證人池中通過隨機分組把驗證人指定給不同的平行鏈。驗證人會接受來自收集人打包的區塊并進行有效性驗證,然后結合共識算法對收集人提交的區塊進行確認。

▲提名人

Polkadot中數字貨幣DOT的持有人,它會選擇自己所信任的驗證人進行DOT質押,然后分享驗證人的收益。

Chatex獲得 Polygon旗下的DefiForAll基金投資:10月22日消息,加密貨幣P2P交易平臺Chatex獲得Polygon旗下DeFi基金DefiForAll的投資,并將后者的技術引入到生態系統中,旨在為用戶帶來無縫、安全和即時的交易。同時,在該基金的支持下,Chatex還集成了Curve和AAVE等項目。

據了解,Polygon旗下的DefiForAll基金是一個價值1.5億美元的DeFi基金,旨在擴大以太坊規模,將DeFi、挖礦和貸款的好處帶給更大的用戶群。Chatex是集成Telegram的基于聊天應用的p2p交易所之一,集存儲、發送、支付和交換的一站式加密貨幣解決方案。代幣CHTX是Chatex 虛擬幣銀行重要組成部分,幫助整個系統獲得更多競爭優勢。[2021/10/22 20:49:48]

Polkadot的選舉模型是建立在這兩種角色基礎上的。要成為驗證人,必須先成為驗證人候選人參加選舉的過程,而這個選舉過程中的“選民”就是提名人。

在Polkadot的設計中,提名人數量在理論是可以不設置上限的,如果能夠讓更多的提名者參與到投票階段,那么參與到選舉的資金量也就越大,整個系統就更加的安全;而對于驗證者來說,為了區塊鏈的性能,不能太多,驗證者的數量由系統確定的固定值,這一點來說和POS共識是一致的。

選舉模型

數據:當前Polygon上總鎖倉量為58.55億美元:據DeBank數據顯示,目前Polygon上總鎖倉量58.55億美元,凈鎖倉量46.85億美元。鎖倉資產排名前五分別為Aave(22億美元)、QuickSwap(12億美元)、SushiSwap(5.33億美元)、Curve(4.94億美元)、BalancerV2(2.50億美元)。[2021/8/23 22:30:05]

為了明確選舉問題,Polkadot中將選舉驗證者集合的問題抽象為一個數學的選舉問題:

▲問題:m個選民對n個候選者的情況下,選出最終的t為當選者

問題的描述很簡單,但是如何做到讓系統更安全,會有不同的策略。Polkadot的設計哲學中,認為選舉策略需要滿足下面的“三大原則”:

Balance:驗證者在出塊時候的比重相同,因此該策略在Stake分配需要盡量平均,保證網絡的安全;

Support:該策略需要讓盡可能多的Stake資金參與進來。因為提名者只負責選投哪些候選者,但是對于的Stake具體分配給多少到哪個驗證者是沒有決定權的,這部分是NPOS算法通過計算來決定的。這也是NPOS和普通的POS共識中很大的不同之處;

Fairrepresentation:Stake多的提名者選投的驗證人更可能出現在驗證者集合中。

Poly Network已實現9條異構鏈互通,超33億美金跨鏈資產轉移:3月5日消息,繼2020年8月18日主網上線后,跨鏈互操作性協議Poly Network已實現包含比特幣、以太坊、Neo、Ontology、BSC、Heco、Elrond、Zilliqa、Cosmos-SDK等在內的9條異構鏈的互通,超33億美金的跨鏈資產轉移,超18,000個地址的跨鏈使用。[2021/3/5 18:18:19]

基于上述的問題和要求,可以將該問題轉化為下面的數學模型:

輸入:給定,其中是Nominator集合,是Validator候選者集合,是邊的集合,表示提名者投了候選者一票。同時給定向量,表示各個提名者各自的Stake數量,是選出的最終驗證者集合的大小。

?輸出:給定解,其中是最終選定的Validator,大小為,?是提名者分配多少Stake到最終的Validator。

限制條件:

Balance:給定,能夠給出一個?,使得最小

Support:給定,能夠給出一個?,使得最大

Fairrepresentation:proportionaljustifiedrepresentation(PJR)規則

?任意一個,都不會存在一個提名者的子集,導致出現下面的情況:

TRX期貨合約已正式上線P網Poloniex:據最新消息,TRX期貨合約已于2020年12月8日20:30(HKT)正式上線P網Poloniex。為慶祝TRX合約正式上線,P網官方將發起包括交易賽、交易競賽和針對新合約用戶在內的系列活動,總獎池高達50000 USDT。

據悉,Poloniex成立于2014年,是注冊于塞舌爾的老牌國際領先數字貨幣交易平臺,也是華爾街首批合規交易平臺。P網曾獲得華爾街投行高盛的投資,并于2019年獲得波場TRON創始人孫宇晨等投資人的注資, 資金實力雄厚。致力于打造幣圈高盛,為投資人帶來華爾街機構級別的用戶體驗。[2020/12/8 14:37:11]

用較為通俗的話來說就是不允許出現:存在某些中的提名者的stake超過了總的staking的的比重,并且他們支持的人選有交集的超過個,但是他們支持的Validator的數量入選卻沒有超過個。

上述的問題在數學上就是一個最優化問題,很可惜這個選舉在數學上已經被證明是NP完全問題,并不能在多項式時間內給出最優解。

所以Polkadot給出了自己的一套解決方案,來繞過這個難解問題。

P網Poloniex模擬合約交易大賽正式開啟:據P網Poloniex最新消息顯示,P網Poloniex已經上線BTC/USDT永續合約測試版并開啟模擬交易大賽,參賽者可憑借活動期間的合約盈利瓜分15,000 USDT獎池。每位參與者可獲得10,000USDT虛擬體驗金作為比賽初始資金,比賽將通過PnL(總盈利)進行排名。比賽時間于2020年7月16日10:00開始至7月27日19:59(香港時間)結束。[2020/7/16]

NPOS流程

上述推導的數學模型中,由于是NP完全問題,也就是說給出最優解的計算時間復雜度是無法確定在多項式時間內的。

Polkadot給出了一個相對來說可行的方案。

不追求最優解,達到相對最優即可NP完全問題中給出可行解是很困難的,但是驗證已有解是簡單的,能在多項式時間內完全。所以驗證可行解的部分放在鏈上進行。

▲?完整的流程如下:

在提名者給出自己的投票之后,每一個候選者都可以給出自己對于上述選舉問題的一個可行解。

在上述這些可行解的集合中,利用鏈上的方案比較方案,按照之前的“三大原則”來比較這些方案,選取其中最優的方案最為最后驗證人選舉結果,這樣就完成了一輪選舉。

BABE

BABE的全稱是BlindAssignmentforBlockchainExtension,BABE是一個用來出塊的引擎,類似于OurobrosPraos,一種PoS的協議。BABE算法是基于slots的。

在Polkadot中每一個slot差不多6秒長的時間。

每個slot時間段中BABE會選出一個leader來出塊。

BABE中leader的選舉是通過一個隨機函數來實現的,在每個slot階段,每一個節點會通過運算VRF函數來獲得一個數值,如果這個數值小于網絡中預先規定好的閾值,那么節點就會認為自己就是這個時間段的leader,于是節點就開始出塊了。

值得注意的是在上述的過程中,由于VRF函數是隨機生成數字的,所以可能造成在某一slot中沒有leader或者有多個節點算出自己的VRF值小于閾值進而產生多個leader的情況。我們依次分析兩種情況:

當沒有leader產生時,Polkadot就規定按照順序來決定誰是leader,這個順序是預先確定好的。

當出現多個leader的時候,Polkadot允許多個節點都提交區塊,而最終區塊的確認則由GRANDPA來決定。

GRANDPA

GRANDPA則是用來做區塊確認的,在文章的第二部分我們有提到BABE將會對Polkadot的交易進行出塊,那么這些出塊最終就是由GRANDPA來確定的。

像其他PBFT的衍生算法一樣,GRANDPA的時間復雜度也是O(n2)。但是Polkadot之所以采用GRANDPA是因為GRANDPA并不是每次只確認一個區塊,它每一次都會確定好幾個區塊來做確認。

Idle(24peers),best:#664257(0x706c…76b7),finalized#664253(0xe4ab…4d2a)Imported#664258(0xee71…6321)Idle(24peers),best:#664258(0xee71…6321),finalized#664256(0x809a…a5d8)

上面是Polkadot測試網絡的一段日志,可以看到一次確認區塊高度從664253到了664256,所以GRANDPA一次性確認了三個區塊。這樣的話跟一次性只確認一個相比,GRANDPA的效率要比其他PBFT的衍生算法要高出很多。

▲下面介紹一下GRANDPA的具體流程:

1.一個主節點廣播之前一輪確認后的區塊高度;

2.等待網絡延遲以后,每個節點都廣播他們認為的可以被確認的最高的區塊;

3.每個節點對步驟2接受到的區塊集進行計算,算出他們認為的能夠被確認的最高區塊,并且將結果廣播出去(pre-commit);

4.當節點接收到足夠的pre-commit的消息能夠確認區塊后就會形成commit的消息,一般認為大于2/3就可以被確認了。

上述就是GRANDPA確認區塊的主要流程。

我們需要擔心的是在步驟2的pre-vote過程中可能會有作惡的節點投票了兩個區塊并且廣播出去,這樣的話就有可能產生鏈的分叉行為。Polkadot為了防止這種情況的發生使用了一個叫做AccountSafety的方式。

如果當網絡中出現了要分叉的commit信息時,Polkadot的節點會馬上采取AccountSafety的機制。每個節點都會詢問其他節點他們所看到的pre-vote的情況,節點都會回復他們收到的信息,這樣就很容易檢查到有哪些惡意節點投了兩個區塊。最后這些被抓到的作惡節點將會被踢出共識網絡,永遠不能進入。

讓我們回到BABE,通過結合BABE和GRANDPA我們可以看到在出塊的時候Polkadot采用BABE出塊,此時節點之間只要發送一次塊信息即可,這樣的話時間復雜度僅僅是O(n),在出塊之后節點之間再采用GRANDPA進行塊確認,此時由于確認階段節點之間要通過二次確認來保證確認塊結果的一致性,時間復雜度是O(n2),不過由于是多個塊一次性進行確認,所以兩者結合的混合共識是非常高效的,比普通的PBFT共識要高效很多。

結語

上面三種就是我們向大家介紹的Polkadot的共識算法,可以看到NPOS主要是為了選取Polkadot的共識節點,BABE和GRANDPA通過混合來高效的進行區塊鏈的出塊和確認。

這樣的混合共識比傳統的PBFT共識速度更快,并且在速度更快的基礎上并沒有丟失掉安全性。將出塊和確認區塊兩個階段分開并且使用不同的算法是在區塊鏈共識中值得學習的地方。

通過這三種算法,Polkadot可以說在一定程度上高效的實現了Polkadot上區塊鏈的共識算法。

參考文獻:

OuroborosPraos:Anadaptively-secure,semi-synchronousproof-of-stakeblockchainBernardoDavid,PeterGaˇzi,AggelosKiayiasNovember14,2017

Tags:POLDOTADOPolkadotPolySwarmpolkadot怎么讀polkadotted音標polkadotted中文

歐易交易所
EOS和以太坊 誰是波卡的「前車」?_WOOD

波卡沖上加密資產市值排行前五名后,得到了更加廣泛的關注。中繼鏈+平行鏈的架構設計,賦予它鏈鏈互通的能力,想象空間因此擴大。超過120個項目方在波卡上建立起生態.

1900/1/1 0:00:00
吳說區塊鏈:陳偉星擬起訴幣安,趙長鵬強勢回應“四無四不”?_NET

圍繞幣安股權爭議的幾幢公案,真相究竟如何?8月31日晚10點,陳偉星的一條朋友圈引發關注。他指自己當年只花5分鐘,決定投資幾千萬人民幣.

1900/1/1 0:00:00
最新調查:以太坊短期內不會失去DeFi主導地位_DEFI

據Decrypt9月10日報道,一項來自對受歡迎的DeFi協議代表進行的調查顯示,大多數人期望以太坊網絡能夠抵御來自其他網絡的競爭.

1900/1/1 0:00:00
Uni的暴漲引領defi進入相對平衡階段,多防備風險_SWAP

突然火了,成了最近defi市場的救濟者,如果沒有uni熱點的帶動,最近出現的暴跌模式還不知道底在哪里,uni一出現馬上改變了方向,市場好像突然間出現了復蘇.

1900/1/1 0:00:00
DeFi需求飆升,今年已有超過5億美元的比特幣流向以太坊_比特幣

原文:Decrypt,原文作者:RobertStevens本文來源:Odaily星球日報,譯者:念銀思唐 摘要: -很多比特幣已經轉移至以太坊.

1900/1/1 0:00:00
以太坊2.0將在啟動前推出新測試網Spadina,重點對存儲和創世區塊進行測驗_以太坊

以太坊2.0即將啟動,期待已久的網絡升級將把以太坊從工作量證明轉換成權益證明模型,同時實現其他各種增強功能。但在它上線之前,還會有一次短暫的維護.

1900/1/1 0:00:00
ads