區塊鏈100講: 區塊鏈共識的肯定性

image

今天,我刷信用卡買了一杯好喝的抹茶拿鐵(這要感謝在伯克利的 Asha)。刷卡後,做爲對我支付金額的交換,店老闆熱情地把茶遞給我。由於老闆已經確認了交易完成而且以後這筆交易不會被撤銷,他必定可以得到我支付的美圓金額。 換句話說,交易已經肯定(finalized)。 [做者編輯:感謝 Lawson Baker 和 Ari Paul 指出信用卡最終肯定交易背後日益增長的複雜性。(請看我在右邊標記出來的 Lawson 的迴應)。而現金交易則實現了對財產的即時肯定性。]安全

在區塊鏈設置中,肯定性 是保證了全部有效區塊一旦被提交到區塊鏈上就不會被撤銷。當用戶進行交易時,他們也但願在轉帳完成後可以保證轉帳操做不能隨意更改或撤銷。所以,在設計區塊鏈共識協議時,肯定性變得相當重要。目前基於中本聰共識的系統中,51% 攻擊和自私挖礦行爲就是由於容許有撤銷區塊的可能,纔會威脅到系統的健全(例如,若是做惡者累積了 51% 的挖礦能力,他們就能夠進行雙花攻擊)。這種協議提供了機率性肯定,而其餘一些協議則實現了絕對性肯定。網絡

1

肯定性的類型

機率性肯定(Probabilistic Finality) 是基於區塊鏈的協議提出的肯定性類型(例如,比特幣的中本聰共識)。在機率性肯定中,包含交易的區塊在鏈上埋得越深,該交易被撤銷的可能性越低。由於某一區塊後面的區塊越多,包含該區塊的(分叉)鏈就越多是最長的鏈。 這就是爲何建議等到包含交易的區塊在比特幣區塊鏈的深度爲 6 個區塊時才能確認交易完成(大約須要 1 小時),由於此時撤銷交易的可能性很是低。dom

**絕對性肯定(Absolute Finality) **是基於拜占庭容錯(PBFT)的協議(例如 Tendermint)提出的肯定性類型。在絕對性肯定中,一旦交易被包含在區塊中並添加到區塊鏈上,該交易就會被當即視爲最終肯定。在這種狀況下,一個驗證者會先提出一個區塊,而這個區塊必須得到委員會中足夠多驗證者的承認才能提交到區塊鏈上。異步

還有一個概念叫經濟肯定性(Economic Finality),也就是說撤銷區塊所需的資金成本很是高。在使用罰沒機制的權益證實基礎系統(例如 Casper FFG,Tendermint)中,若是權益持有者在兩個(校注:相同高度的)區塊上都簽了名,那麼他們全部的權益都會被沒收,這就是損害肯定性的昂貴代價。例如,一個有 100 位權益持有者的網絡,每位權益持有者持有價值 100 萬美圓的權益,那麼整個網絡一共有價值 1 億美圓的權益。 若是有兩個區塊出如今區塊鏈的同一高度,命名爲 B 和 B',此時 B 得到了 66% 的權益持有者的投票(6600萬美圓),B' 也得到了 66% 的投票(6600萬美圓),那麼 B 和 B' 的交集(至少有 33% 惡意的權益持有者)將失去他們全部的權益(至少 3300 萬美圓)。分佈式

2

CAP定理和肯定性

看起來彷佛絕對性肯定比機率性肯定更可行,但仍有一些基本權衡代表選擇支持機率性肯定的區塊鏈更好。考慮如何在機率性肯定與拜占庭容錯肯定性之間取得適當的平衡時,Eric Brewer 的 CAP 定理就發揮了做用。CAP 定理指出,在網絡分區的狀況下,分佈式系統只能知足一致性或可用性。 知足一致性的系統會中止運行,不讓錯誤的交易經過。而知足可用性的系統即便容許錯誤的交易經過也會繼續運行 。一致性的系統具有拜占庭容錯肯定性(校注:即絕對性肯定),而可用性的系統具有機率性肯定。區塊鏈

image

在支付的場景中,用戶一般會選擇機率性肯定的區塊鏈所提供的可用性(這就是爲何許多基於 DAG 的協議都把重點放在支持支付上,由於這些協議都是支持可用性而非一致性),然而,許多區塊鏈平臺提供的不只僅是支付,還支持以智能合約爲基礎的去中心化應用程序(DApp)。不一樣的 DApp 在肯定性方面可能有不一樣的偏好:那些須要可行性的 DApp,哪怕交易信息不許確也總會讓交易經過,更偏好幾率性肯定鏈;而傾向於一致性的 DApp,會讓整個應用程序中止運行以阻止不正確的交易經過,偏好絕對性肯定鏈。所以,肯定性從根本上影響了用戶體驗。翻譯

3

權益證實共識中的肯定性

在替代共識協議的元分析中,咱們考量了一些主要的 PoS(權益證實)平臺對肯定性的保證,包括 Tendermint,Thunderella,Algorand,Dfinity,Ouroboros Genesis,Casper FFG 和 Casper CBC。 在這裏,咱們將簡要概述這些平臺如何實現肯定性,但決定採用哪一種協議更重要的是總體考察,而不是僅僅考慮一個參數(這裏指的是對肯定性的保障)。設計

Tendermint:Tendermint 實現了絕對性肯定。任何獲得 ⅔ 或以上的預投票和預提交的區塊都將被最終肯定,而且此過程將無限期地繼續。除非 ⅓ 或以上的驗證者不響應,致使網絡中止運行。所以,Tendermint 更偏好一致性而非可用性。另外,當權益證實的懲罰規則應用在 Tendermint 時,Tendermint 協議還能實現經濟肯定性。cdn

Thunderella:Thunderella 的快速路徑提供了絕對性肯定。任何得到公證的最大交易序列都被視爲通過徹底確認的輸出。若是 3/4 的快速路徑委員會是誠實且在線的,同時提議者也是誠實的,那麼有效交易就能被即時確認。然而,快速路徑確認與通常的肯定性不一樣,它是樂觀性肯定。 一旦交易記錄在了基礎區塊鏈上,該交易就被徹底肯定,這種狀況既能夠是基於鏈的,也能夠是基於拜占庭容錯的。但當快速路徑發生問題時,Thunderella 會回退到基礎區塊鏈,所以 Thunderella 是優先考慮可用性。blog

Algorand:Algorand 實現了機率性肯定。只要攻擊者控制的協議貨幣價值低於總價值的 1/3,Algorand 就能夠保證分叉幾乎是不可能的,從而容許協議以強同步方式運行,使得每一個區塊最終保持一致。而在弱同步中,Algorand 可能會發生分叉,但會使用 BA* 來決定選擇哪一個分叉鏈。所以,當協議恢復強同步時,Algorand 中的交易最後也能被最終肯定。Algorand 優先考慮一致性而非可用性,由於它寧願產生空白區塊,也不會犧牲一致性。

Dfinity:Dfinity 實現了機率性肯定,其肯定性的機率是隨着鏈上區塊權重的增長而增長。假設每一輪 r 的週期裏咱們會拒絕接收更多已公證的區塊。在此週期內,咱們能夠最終肯定第 r 輪,由於咱們知道第 r 輪已公證的區塊包含了第 r 輪以前的全部鏈上的交易。第 r 輪中,只要操做無誤就能保證近乎即時的肯定性,通過兩次確認加上網絡傳輸延遲,對觀察者來講在第 r 輪裏任何包含在區塊中的交易都是最終肯定的。Dfinity 優先考慮一致性,若是網絡分區造成大小几乎相同的兩半,它會自動令隨機信標(random beacon)暫停工做,不容許任何一半網絡繼續運行。

Ouroboros Genesis:Genesis 協議能夠根據其如何選取區塊鏈的規則實現機率性肯定。具體規則是對於短距離攻擊(最多 k 個區塊,其中 k 是安全參數),則採用最長鏈原則;而對於長程攻擊(超過 k 個區塊),則採用充裕法則(plenitude rule),也就是說在當前鏈發生分叉後即時查看時間段,而後選擇密度較高的鏈。

Casper FFG:Casper FFG 的目標是爲基於鏈的系統提供絕對/經濟上的肯定性,委員會按權益加權得到 ⅔ 大多數投票後簽署一個區塊,便能達到肯定性。Casper FFG 的這種構建方式,即便攻擊者控制了底層區塊鏈的提案機制,出現衝突的檢查點也永遠沒法被最終肯定。可是,FFG 提供了安全性而且提案機制提供了活躍度,所以攻擊者能夠經過延遲達成共識來阻止 Casper 肯定將來的檢查點。FFG 是優先考慮一致性的,由於它不容許在沒有 ⅔ 驗證者贊成的狀況下對檢查點進行最終肯定,不然肯定無效。此外,FFG 還能夠經過罰沒機制來實現經濟肯定性。

Casper TFG:TFG 經過具備不一樣容錯閾值的驗證者來實現絕對性肯定。也就是說,協議是異步安全和拜占庭容錯的,容許驗證者具備不一樣的容錯閾值。

撤銷區塊可能致使數百萬美圓的損失,或者影響到去中心化應用的基本運行。所以,對於構建強健的區塊鏈平臺以及如何選擇開發應用程序的平臺,肯定性起着相當重要的做用。

致謝:特別感謝 Zubin Koticha 和 Aparna Krishnan,他們的討論與反饋爲這篇文章做出了巨大貢獻。

內容來源:公衆號-以太坊愛好者

原文連接:

medium.com/mechanism-l…

做者: Alexis Gauba

翻譯&校對: 楊哲 & Elisa

課程推薦

image
相關文章
相關標籤/搜索
本站公眾號
   歡迎關注本站公眾號,獲取更多信息