當前位置︰首頁 ? 區塊鏈 ? 正文

今天,我刷信用卡買了一杯好喝的抹茶拿鐵(這要感謝在伯克利的 Asha)。刷卡後,作為對我支付金額的交換,店老板熱情地把茶遞給我。因為老板已經確認了交易完成並且之後這筆交易不會被撤銷,他一定能夠獲得我支付的美元金額。 換句話說,交易已經確定(finalized)。 [作者編輯︰感謝 Lawson Baker 和 Ari Paul 指出信用卡最終確定交易背後日益增加的復雜性。(請看我在右邊標記出來的 Lawson 的回應)。而現金交易則實現了對財產的即時確定性。]

區塊鏈設置中,確定性 是保證了所有有效區塊一旦被提交到區塊鏈上就不會被撤銷。當用戶進行交易時,他們也希望在轉賬完成後能夠保證轉賬操作不能隨意更改或撤銷。因此,在設計區塊鏈共識協議時,確定性變得至關重要。目前基于中本聰共識的系統中,51% 攻擊和自私挖礦行為就是因為允許有撤銷區塊的可能,才會威脅到系統的健全(例如,如果作惡者累積了 51% 的挖礦能力,他們就可以進行雙花攻擊)。這種協議提供了概率性確定,而其他一些協議則實現了絕對性確定。

確定性的類型

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

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

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

CAP 定理與確定性

看起來似乎絕對性確定比概率性確定更可行,但仍有一些基本權衡表明選擇支持概率性確定的區塊鏈更好。考慮如何在概率性確定與拜佔庭容錯確定性之間取得適當的平衡時,Eric Brewer 的 CAP 定理就發揮了作用。CAP 定理指出,在網絡分區的情況下,分布式系統只能滿足一致性或可用性。 滿足一致性的系統會停止運行,不讓錯誤的交易通過。而滿足可用性的系統即使允許錯誤的交易通過也會繼續運行 。一致性的系統具備拜佔庭容錯確定性(校注︰即絕對性確定),而可用性的系統具備概率性確定。

區塊鏈共識的確定性

在支付的場景中,用戶通常會選擇概率性確定的區塊鏈所提供的可用性(這就是為什麼許多基于 DAG 的協議都把重點放在支持支付上,因為這些協議都是支持可用性而非一致性),然而,許多區塊鏈平台提供的不僅僅是支付,還支持以智能合約為基礎的去中心化應用程序(DApp)。不同的 DApp 在確定性方面可能有不同的偏好︰那些需要可行性的 DApp,哪怕交易信息不準確也總會讓交易通過,更偏好概率性確定鏈;而傾向于一致性的 DApp,會讓整個應用程序停止運行以阻止不正確的交易通過,偏好絕對性確定鏈。因此,確定性從根本上影響了用戶體驗。

權益證明共識中的確定性


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

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

Thunderella︰Thunderella 的快速路徑提供了絕對性確定。任何獲得公證的最大交易序列都被視為經過完全確認的輸出。如果 3/4 的快速路徑委員會是誠實且在線的,同時提議者也是誠實的,那麼有效交易就能被即時確認。然而,快速路徑確認與一般的確定性不同,它是樂觀性確定。 一旦交易記錄在了基礎區塊鏈上,該交易就被完全確定,這種情況既可以是基于鏈的,也可以是基于拜佔庭容錯的。但當快速路徑發生問題時,Thunderella 會回退到基礎區塊鏈,因此 Thunderella 是優先考慮可用性。

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,他們的討論與反饋為這篇文章作出了巨大貢獻。
原文鏈接: https://medium.com/mechanism-labs/finality-in-blockchain-consensus-d1f83c120a9a
作者: Alexis Gauba
翻譯&校對: 楊哲 & Elisa

關鍵詞: 區塊鏈共識  區塊鏈技術  

相關閱讀︰

這一技術突破或將影響整個隱私安全領域

根據區塊鏈技術角度理解去中心化

1155與眾不同?

上一篇︰安全代幣發行(STO)是什麼及為什麼需要一個顧問
下一篇︰區塊鏈中的隨機性

猜你喜歡


區塊鏈密碼學和量子威脅

區塊鏈密碼學和量子威脅

自古以來,人們就普遍需要以一種只能被目標接收者看到的方式來傳遞信息。加密的文本和消息被用于從軍事應用到外交和商業的各種領域。經過幾個世紀 ...

Mixer(混幣)應用分析

Mixer(混幣)應用分析

交易隱私是零知識證明的一個應用方向。除了通過公鏈或者側鏈實現交易的發送方/接收方以及金額隱藏外,Mixer,江 ...

二維碼