區塊鏈共識和最終性簡史:從比特幣到波卡

admin2021年10月25日 09:59:06
閱讀:
標簽: 區塊鏈 比特幣
分享:

共識機制一直都會是區塊鏈技術發展的重點領域。本文作者Edward A Thomson,由“藍狐筆記”社群的“HQ”翻譯。


 
 
  去中心化特性決定了區塊鏈有達成共識的需要。區塊鏈的共識機制從比特幣的PoW開始逐漸發展出新模式,如PoS、BFT等。而波卡采用了混合的共識算法。
  為了更好地理解為什么我們需要在區塊鏈技術中引入共識算法,我們需要了解比特幣的區塊鏈技術都解決了哪些問題?最為關鍵的問題有兩個:
 
  雙重支付
 
  中心化的貨幣發行
 
  本文首先介紹比特幣解決上述問題的方法,其次討論共識的一些精妙之處,如容錯性和最終性(最終確定性的簡稱),最后以一些項目為例子進行討論,以及探討未來的方向。
  比特幣如何解決雙重支付和貨幣發行問題?
 
  要理解為什么容錯性對區塊鏈如此重要,有必要解釋一下比特幣解決的兩個問題(雙花和中心化貨幣發行)。
 
  換句話說,為了防止任意超發,比特幣以一種可預測、透明且去中心化的方式發行貨幣。管理貨幣轉賬和發行過程的機制的就是共識算法,能夠確保整個交易歷史的一致性(共識)。
 
  共識算法在區塊鏈技術時代并不是新玩意兒,強調比特幣為什么具有創新性是很重要的:因為在公有的無須許可的網絡中,即使有潛在的惡意行為者出現,比特幣也可以達成共識。
 
  PoW的共識算法
 
  眾所周知,像比特幣這種PoW的區塊鏈,節點通過獲得創建新區塊所產生的新幣獎勵,來維護整個網絡的安全。該獎勵提供了一種激勵機制,使礦工在盡可能快速創造新區塊的同時,始終表現誠實。
 
  獲勝的關鍵在于,創造新區塊需要解出一個獨特且計算困難的數學難題。它數學題的難度從根本上限制了新區塊產生的速度,且答案的唯一性可以使網絡識別出獲勝節點(通過他們的地址)。雖然惡意行為不會受到特意懲罰,但并沒有動力去做,因為不誠實的行為存在機會成本。
 
  存在的一個問題是,節點之間的通信不是即時的,因此處于網絡中不同地理區域的節點可能會收到自稱已解出難題的不同區塊(網絡分區/分叉)。兩個不同的節點 (礦工) 有可能碰巧都合法地解出了難題,但是由于全網不同區域間不是即時通信,網絡中的不同分區就會選擇基于不同的獲勝區塊來構建區塊鏈(臨時性)。這會導致臨時分叉,但由于總有新區塊被添加到每個分支上,最終總會出現一個較長的分支。
 
  選擇最長的區塊分支,實際上是比特幣為實現共識而制定的規則,該規則被稱為最長鏈規則。較短分支上的區塊則會被丟棄,并且所有不在主分支上的交易最終都會被添加到主分支的區塊中。請注意,非法交易(例如:那些試圖進行雙重支付的交易)則不會被包含在構成最長鏈的區塊中。包含此類交易的區塊也將被丟棄,因為任何“貨幣”都只能被花費一次。這里需要注意的是,大多數節點都是誠實的(至少51%),并且這些節點不會嘗試去破壞協議。
 
  理論上講,一條新的最長鏈可以通過擁有更強的挖礦算力創造出來。但是這對于靠近“鏈的頭部”的區塊(最新產生的區塊)來說,風險是最大的。區塊在整個鏈上的深度越深,它被逆轉的可能性就越小。
 
  這說明PoW 鏈上的區塊總是會有被逆轉的可能,那么這些區塊中的交易也就可能都沒發生。在一條被惡意創造的鏈上,交易是不會被保存進新區塊中,原因如上所述。
 
  比特幣白皮書中建議,等待6 個區塊的時間便足以確保交易不會被拒絕,因為此時區塊被丟棄的可能性非常小。我們可以從這里認識“最終確定性”(以下簡稱最終性):無法被逆轉的區塊可以被稱作是“最終確定的”。在比特幣及其他PoW 區塊鏈中,最終性并不是那么完美,因為區塊總有被逆轉的可能。
 
  以上說明,比特幣具有強大的抵抗故障的魯棒性,并且可以在公共和無須許可的網絡中以去中心化的方式發行貨幣。通過探索確保最終性的方法,能夠確保更高水平的安全性。這一觀點將在后文的容錯部分中進行探討。
 
  PoS區塊鏈
 
  還應該注意的是,一些權益證明(PoS) 區塊鏈的運行方式與比特幣類似。大多數 PoS 鏈用選舉產生區塊來代替挖礦。與PoW鏈讓獲勝礦工創建下個區塊不同,PoS鏈的新區塊是由隨機選擇的節點(“領導者”)來創建。
 
  被選中(創建新區塊)的概率是由權益的數量來決定的。這個理念是,持有的幣越多,說明更希望區塊鏈取得成功,因此這樣的節點將獲得更大概率來創建下個區塊。
 
  NXT 是最早的 PoS 鏈之一,使用這種隨機(選舉)領導者的方法來創建新區塊。NXT 的共識機制與比特幣相同:創建的新區塊都會被添加到最長鏈上。通過遵守這個規則,任何分叉問題都能夠被解決,節點則繼續在最長鏈上創建區塊。
 
  拜占庭協議與容錯性
 
  當參與者出現違反協議的操作時,(網絡)就會出現錯誤。對區塊鏈來說,因為可能存在惡意行為者試圖利用協議的弱點,所以我們希望協議足夠安全,可以抵御任何故障。任何可抵御任意故障的協議,也足夠安全去防范隨機故障及惡意行為者。
 
  即使有一小部分參與者的行為表現異常,拜占庭容錯(BFT) 協議也能正常工作。行為不當的節點,可能是發生了意外故障,也可能是惡意行為。當然,這里假設大多數參與者都是遵守協議的。這種觀點在一篇名為“拜占庭將軍問題”的研究論文中提到。該問題討論的是,多個參與者如何就一個簡單的信息達成一致。(藍狐筆記注:拜占庭問題可以參考藍狐筆記之前的文章《簡單讀懂拜占庭容錯》)
 
  當在拜占庭協議中達成共識時,商定好的結果一定是正確的。也就是說,商定的結果可以被看作是確定性的正確,而不是概率性的。當應用在區塊鏈時,拜占庭算法保證了交易的最終性。這意味著一旦在區塊中達成協議,區塊就會最終確定,其中的交易也不能被逆轉。
 
  顯然這與比特幣和其他PoW 鏈不同。如上所述,那些鏈僅能達成一定概率的確定性。比特幣的共識類型通常被稱為“中本聰共識”,很容易看出來,為什么它會和拜占庭容錯混淆,因為二者都是可容錯的,但只有后者才能保證最終確定性。更深層次的混淆,來自于比特幣的區塊創建與共識算法高度重疊。但事實上并不需要這樣。
 
  以太坊未來路線的提案之一,就是像現在一樣繼續由礦工生產區塊,但會讓一些節點充當驗證者來提供最終確定性,從而加強共識。驗證者在已創建的區塊上進行投票。通過給某個區塊投票,即表示他們認為該區塊是正確的。一旦有三分之二的驗證者投票,那么這個區塊就可以被認為是最終確定的了。這種在挖礦后的拜占庭共識機制被稱為“最終確定性組件”。
 
  發展探索
 
  大多數正在開發的新項目都將區塊創建與共識進行分離。未來的一些區塊鏈也將采用混合共識算法。這一部分將介紹一些正在探索的未來方向。
 
  Cosmos(ATOM)
 
  Cosmos 的區塊創建也是由(通過權益的權重比例)隨機選擇的領導者完成,但是Cosmos 的共識中沒有最長鏈規則。相應地,它采用了被稱為Tendermint 的拜占庭算法。這意味著每個區塊都能保證最終確定性。此外,如果驗證者不能就單個區塊達成共識,按照Cosmos的設計,Cosmos將會暫時停下來,以防止分叉。
 
  Polkadot波卡(DOT)
 
  Polkadot采用混合共識算法。區塊將由隨機領導者創建,該領導者會將下個區塊添加到最長鏈上。Polkadot 還將采用拜占庭協議,但不是每輪投票只產生一個區塊,而是在一次投票中最終確定多個區塊。
 
  采用混合共識機制的一個好處是,區塊鏈可以在最長鏈上連續生產區塊,同時在不影響鏈活性(即鏈永遠不會被停止)的情況下,最終實現拜占庭最終確定性。
 
  目前在Polkadot 當前的測試網絡 PoC-2 (也叫做 Krumme Lanke) 中,其共識類似于 Cosmos。區塊由隨機選擇的驗證者節點生成,在通過拜占庭協議將其最終確定后,再生產下個區塊。
 
  Cardano(ADA)
 
  簡單來說,Cardano 的共識算法類似于比特幣(最長鏈規則)。與NXT 相同,區塊的生產由隨機選擇的領導者完成。Cardano 團隊已竭盡全力解決了一些在隨機選擇領導者時出現的問題。他們已經確保選擇領導者的隨機性與目前比特幣出塊方式一致。
 
  然而比特幣是沒有領導者的,區塊由隨機礦工生產。挖礦難題的解集將分布在擁有最大哈希算力的礦工附近。
 
  Ethereum以太坊
 
  以太坊也曾經嘗試通過加入一個在出塊后保證最終確定性的步驟,來加強共識算法的方式。區塊仍舊通過PoW 生成,但是會有一組驗證者節點對已出區塊的正確性進行投票。這就是所謂的“最終確定性組件”。也就是說,該方法結合了最長鏈規則和拜占庭容錯算法:即兩種共識算法的混合。
 
  最近似乎有跡象表明,以太坊將可能使用權益證明(PoS) 取代 PoW,使以太坊與正在開發的新鏈保持一致。區塊將由一個隨機領導者來創建,然后由一個最終確定化組件來最終確定。
 
  優化方法
 
  區塊鏈的“舊時代”主要圍繞使用PoW 挖礦及使用最長鏈規則,來增強網絡共識。后來為了用更節能的方式,開始嘗試使用 PoS取代挖礦。過去的 PoS 鏈仍然使用最長鏈規則;然而,近年來的趨勢是將拜占庭容錯協議也納入共識機制:而不使用最長鏈規則(Cosmos), 或者讓兩者共存(以太坊和Polkadot)。
 
  在下一篇文章中,我們將更加深入地探討Polkadot 的共識算法是如何工作的。他們還制定了一份標準規范,但目前尚未正式發布。
 
 
 

注:本文系作者 admin 授權融媒體發表,并經融媒體編輯,轉載請注明出處和本文鏈接

我要圍觀…
705人參與 36條評論
  • 最熱評論
  • 最新評論
加力那24分鐘前 回復284

就是因為病人多,專家少,你還要抓?如果你是一個專家,一天12小時不吃不喝不上廁所給20個病人看病,可是外面排隊的病人有100個。

Taso韓先生28分鐘前 回復284

就是因為病人多,專家少,你還要抓?如果你是一個專家,一天12小時不吃不喝不上廁所給20個病人看病,可是外面排隊的病人有100個。

加力那28分鐘前 回復284

就是因為病人多,專家少,你還要抓?如果你是一個專家,一天12小時不吃不喝不上廁所給20個病人看病,可是外面排隊的病人有100個。

Taso韓先生24分鐘前 回復284

就是因為病人多,專家少,你還要抓?如果你是一個專家,一天12小時不吃不喝不上廁所給20個病人看病,可是外面排隊的病人有100個。

admin

關注

現專注于互聯網行業—公關領域。興趣廣泛,熱愛傳統文化,以及看書,閑時寫些文字等。

  • 17萬閱讀量
  • 17萬文章數
  • 3評論數
作者文章
  • 菊廠影業新作致敬程序員

  • ?宇宙的盡頭是機器人?

  • Stone:快手電商直播,如何從0到1進階

  • 恒潔衛浴又一創新突破,引領中國衛浴行業技術再升級

  • 當“初生牛犢”的我做上億美元項目操盤手

關于我們 |加入我們 |廣告及服務 |提交建議
友情鏈接
賽迪網 |鈦媒體 |虎嗅網 |品途網 |i黑馬 |果殼網 |砍柴網 |創業邦 |易觀網 |凱恩思 |創業邦 |獵奇網 |輿情之家
Copyright?2003-2015 融媒體版權
粵ICP備05052968
加藤鹰