干貨|區(qū)塊鏈共識(shí)的確定性區(qū)塊鏈

                  段章 2018-10-08 21:02
                  分享到:
                  導(dǎo)讀

                  從CAP定理看Finality并概覽不同PoS系統(tǒng)的取舍。

                  今天,我刷信用卡買(mǎi)了一杯好喝的抹茶拿鐵(這要感謝在伯克利的 Asha)。刷卡后,作為對(duì)我支付金額的交換,店老板熱情地把茶遞給我。因?yàn)槔习逡呀?jīng)確認(rèn)了交易完成并且之后這筆交易不會(huì)被撤銷(xiāo),他一定能夠獲得我支付的美元金額。 換句話(huà)說(shuō),交易已經(jīng)確定(finalized)。 [作者編輯:感謝 Lawson Baker 和 Ari Paul 指出信用卡最終確定交易背后日益增加的復(fù)雜性。(請(qǐng)看我在右邊標(biāo)記出來(lái)的 Lawson 的回應(yīng))。而現(xiàn)金交易則實(shí)現(xiàn)了對(duì)財(cái)產(chǎn)的即時(shí)確定性。]

                  在區(qū)塊鏈設(shè)置中,確定性 是保證了所有有效區(qū)塊一旦被提交到區(qū)塊鏈上就不會(huì)被撤銷(xiāo)。當(dāng)用戶(hù)進(jìn)行交易時(shí),他們也希望在轉(zhuǎn)賬完成后能夠保證轉(zhuǎn)賬操作不能隨意更改或撤銷(xiāo)。因此,在設(shè)計(jì)區(qū)塊鏈共識(shí)協(xié)議時(shí),確定性變得至關(guān)重要。目前基于中本聰共識(shí)的系統(tǒng)中,51% 攻擊和自私挖礦行為就是因?yàn)樵试S有撤銷(xiāo)區(qū)塊的可能,才會(huì)威脅到系統(tǒng)的健全(例如,如果作惡者累積了 51% 的挖礦能力,他們就可以進(jìn)行雙花攻擊)。這種協(xié)議提供了概率性確定,而其他一些協(xié)議則實(shí)現(xiàn)了絕對(duì)性確定。

                  確定性的類(lèi)型

                  概率性確定(Probabilistic Finality) 是基于區(qū)塊鏈的協(xié)議提出的確定性類(lèi)型(例如,比特幣的中本聰共識(shí))。在概率性確定中,包含交易的區(qū)塊在鏈上埋得越深,該交易被撤銷(xiāo)的可能性越低。因?yàn)槟骋粎^(qū)塊后面的區(qū)塊越多,包含該區(qū)塊的(分叉)鏈就越可能是最長(zhǎng)的鏈。 這就是為什么建議等到包含交易的區(qū)塊在比特幣區(qū)塊鏈的深度為 6 個(gè)區(qū)塊時(shí)才能確認(rèn)交易完成(大約需要 1 小時(shí)),因?yàn)榇藭r(shí)撤銷(xiāo)交易的可能性非常低。

                  絕對(duì)性確定(Absolute Finality) 是基于拜占庭容錯(cuò)(PBFT)的協(xié)議(例如 Tendermint)提出的確定性類(lèi)型。在絕對(duì)性確定中,一旦交易被包含在區(qū)塊中并添加到區(qū)塊鏈上,該交易就會(huì)被立即視為最終確定。在這種情況下,一個(gè)驗(yàn)證者會(huì)先提出一個(gè)區(qū)塊,而這個(gè)區(qū)塊必須獲得委員會(huì)中足夠多驗(yàn)證者的認(rèn)可才能提交到區(qū)塊鏈上。

                  還有一個(gè)概念叫經(jīng)濟(jì)確定性(Economic Finality),也就是說(shuō)撤銷(xiāo)區(qū)塊所需的資金成本非常高。在使用罰沒(méi)機(jī)制的權(quán)益證明基礎(chǔ)系統(tǒng)(例如 Casper FFG,Tendermint)中,如果權(quán)益持有者在兩個(gè)(校注:相同高度的)區(qū)塊上都簽了名,那么他們所有的權(quán)益都會(huì)被沒(méi)收,這就是損害確定性的昂貴代價(jià)。例如,一個(gè)有 100 位權(quán)益持有者的網(wǎng)絡(luò),每位權(quán)益持有者持有價(jià)值 100 萬(wàn)美元的權(quán)益,那么整個(gè)網(wǎng)絡(luò)一共有價(jià)值 1 億美元的權(quán)益。 如果有兩個(gè)區(qū)塊出現(xiàn)在區(qū)塊鏈的同一高度,命名為 B 和 B',此時(shí) B 獲得了 66% 的權(quán)益持有者的投票(6600萬(wàn)美元),B' 也獲得了 66% 的投票(6600萬(wàn)美元),那么 B 和 B' 的交集(至少有 33% 惡意的權(quán)益持有者)將失去他們所有的權(quán)益(至少 3300 萬(wàn)美元)。

                  CAP 定理與確定性

                  看起來(lái)似乎絕對(duì)性確定比概率性確定更可行,但仍有一些基本權(quán)衡表明選擇支持概率性確定的區(qū)塊鏈更好。考慮如何在概率性確定與拜占庭容錯(cuò)確定性之間取得適當(dāng)?shù)钠胶鈺r(shí),Eric Brewer 的 CAP 定理就發(fā)揮了作用。CAP 定理指出,在網(wǎng)絡(luò)分區(qū)的情況下,分布式系統(tǒng)只能滿(mǎn)足一致性或可用性。 滿(mǎn)足一致性的系統(tǒng)會(huì)停止運(yùn)行,不讓錯(cuò)誤的交易通過(guò)。而滿(mǎn)足可用性的系統(tǒng)即使允許錯(cuò)誤的交易通過(guò)也會(huì)繼續(xù)運(yùn)行 。一致性的系統(tǒng)具備拜占庭容錯(cuò)確定性(校注:即絕對(duì)性確定),而可用性的系統(tǒng)具備概率性確定。

                  在支付的場(chǎng)景中,用戶(hù)通常會(huì)選擇概率性確定的區(qū)塊鏈所提供的可用性(這就是為什么許多基于 DAG 的協(xié)議都把重點(diǎn)放在支持支付上,因?yàn)檫@些協(xié)議都是支持可用性而非一致性),然而,許多區(qū)塊鏈平臺(tái)提供的不僅僅是支付,還支持以智能合約為基礎(chǔ)的去中心化應(yīng)用程序(DApp)。不同的 DApp 在確定性方面可能有不同的偏好:那些需要可行性的 DApp,哪怕交易信息不準(zhǔn)確也總會(huì)讓交易通過(guò),更偏好概率性確定鏈;而傾向于一致性的 DApp,會(huì)讓整個(gè)應(yīng)用程序停止運(yùn)行以阻止不正確的交易通過(guò),偏好絕對(duì)性確定鏈。因此,確定性從根本上影響了用戶(hù)體驗(yàn)。

                  權(quán)益證明共識(shí)中的確定性

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

                  Tendermint:Tendermint 實(shí)現(xiàn)了絕對(duì)性確定。任何得到 ? 或以上的預(yù)投票和預(yù)提交的區(qū)塊都將被最終確定,并且此過(guò)程將無(wú)限期地繼續(xù)。除非 ? 或以上的驗(yàn)證者不響應(yīng),導(dǎo)致網(wǎng)絡(luò)停止運(yùn)行。因此,Tendermint 更偏好一致性而非可用性。另外,當(dāng)權(quán)益證明的懲罰規(guī)則應(yīng)用在 Tendermint 時(shí),Tendermint 協(xié)議還能實(shí)現(xiàn)經(jīng)濟(jì)確定性。

                  Thunderella:Thunderella 的快速路徑提供了絕對(duì)性確定。任何獲得公證的最大交易序列都被視為經(jīng)過(guò)完全確認(rèn)的輸出。如果 3/4 的快速路徑委員會(huì)是誠(chéng)實(shí)且在線(xiàn)的,同時(shí)提議者也是誠(chéng)實(shí)的,那么有效交易就能被即時(shí)確認(rèn)。然而,快速路徑確認(rèn)與一般的確定性不同,它是樂(lè)觀(guān)性確定。 一旦交易記錄在了基礎(chǔ)區(qū)塊鏈上,該交易就被完全確定,這種情況既可以是基于鏈的,也可以是基于拜占庭容錯(cuò)的。但當(dāng)快速路徑發(fā)生問(wèn)題時(shí),Thunderella 會(huì)回退到基礎(chǔ)區(qū)塊鏈,因此 Thunderella 是優(yōu)先考慮可用性。

                  Algorand:Algorand 實(shí)現(xiàn)了概率性確定。只要攻擊者控制的協(xié)議貨幣價(jià)值低于總價(jià)值的 1/3,Algorand 就可以保證分叉幾乎是不可能的,從而允許協(xié)議以強(qiáng)同步方式運(yùn)行,使得每個(gè)區(qū)塊最終保持一致。而在弱同步中,Algorand 可能會(huì)發(fā)生分叉,但會(huì)使用 BA* 來(lái)決定選擇哪個(gè)分叉鏈。因此,當(dāng)協(xié)議恢復(fù)強(qiáng)同步時(shí),Algorand 中的交易最后也能被最終確定。Algorand 優(yōu)先考慮一致性而非可用性,因?yàn)樗鼘幵府a(chǎn)生空白區(qū)塊,也不會(huì)犧牲一致性。

                  Dfinity:Dfinity 實(shí)現(xiàn)了概率性確定,其確定性的概率是隨著鏈上區(qū)塊權(quán)重的增加而增加。假設(shè)每一輪 r 的周期里我們會(huì)拒絕接收更多已公證的區(qū)塊。在此周期內(nèi),我們可以最終確定第 r 輪,因?yàn)槲覀冎赖?r 輪已公證的區(qū)塊包含了第 r 輪之前的所有鏈上的交易。第 r 輪中,只要操作無(wú)誤就能保證近乎即時(shí)的確定性,經(jīng)過(guò)兩次確認(rèn)加上網(wǎng)絡(luò)傳輸延遲,對(duì)觀(guān)察者來(lái)說(shuō)在第 r 輪里任何包含在區(qū)塊中的交易都是最終確定的。Dfinity 優(yōu)先考慮一致性,如果網(wǎng)絡(luò)分區(qū)形成大小幾乎相同的兩半,它會(huì)自動(dòng)令隨機(jī)信標(biāo)(random beacon)暫停工作,不允許任何一半網(wǎng)絡(luò)繼續(xù)運(yùn)行。

                  Ouroboros Genesis:Genesis 協(xié)議可以根據(jù)其如何選取區(qū)塊鏈的規(guī)則實(shí)現(xiàn)概率性確定。具體規(guī)則是對(duì)于短距離攻擊(最多 k 個(gè)區(qū)塊,其中 k 是安全參數(shù)),則采用最長(zhǎng)鏈原則;而對(duì)于長(zhǎng)程攻擊(超過(guò) k 個(gè)區(qū)塊),則采用充裕法則(plenitude rule),也就是說(shuō)在當(dāng)前鏈發(fā)生分叉后即時(shí)查看時(shí)間段,然后選擇密度較高的鏈。

                  Casper FFG:Casper FFG 的目標(biāo)是為基于鏈的系統(tǒng)提供絕對(duì)/經(jīng)濟(jì)上的確定性,委員會(huì)按權(quán)益加權(quán)獲得 ? 大多數(shù)投票后簽署一個(gè)區(qū)塊,便能達(dá)到確定性。Casper FFG 的這種構(gòu)建方式,即使攻擊者控制了底層區(qū)塊鏈的提案機(jī)制,出現(xiàn)沖突的檢查點(diǎn)也永遠(yuǎn)無(wú)法被最終確定。但是,F(xiàn)FG 提供了安全性并且提案機(jī)制提供了活躍度,因此攻擊者可以通過(guò)延遲達(dá)成共識(shí)來(lái)阻止 Casper 確定未來(lái)的檢查點(diǎn)。FFG 是優(yōu)先考慮一致性的,因?yàn)樗辉试S在沒(méi)有 ? 驗(yàn)證者同意的情況下對(duì)檢查點(diǎn)進(jìn)行最終確定,否則確定無(wú)效。此外,F(xiàn)FG 還可以通過(guò)罰沒(méi)機(jī)制來(lái)實(shí)現(xiàn)經(jīng)濟(jì)確定性。

                  Casper TFG:TFG 通過(guò)具有不同容錯(cuò)閾值的驗(yàn)證者來(lái)實(shí)現(xiàn)絕對(duì)性確定。也就是說(shuō),協(xié)議是異步安全和拜占庭容錯(cuò)的,允許驗(yàn)證者具有不同的容錯(cuò)閾值。

                  撤銷(xiāo)區(qū)塊可能導(dǎo)致數(shù)百萬(wàn)美元的損失,或者影響到去中心化應(yīng)用的基本運(yùn)行。因此,對(duì)于構(gòu)建強(qiáng)健的區(qū)塊鏈平臺(tái)以及如何選擇開(kāi)發(fā)應(yīng)用程序的平臺(tái),確定性起著至關(guān)重要的作用。

                  致謝:特別感謝 Zubin Koticha 和 Aparna Krishnan,他們的討論與反饋為這篇文章作出了巨大貢獻(xiàn)。

                  區(qū)塊 確定 確定性 交易 協(xié)議
                  分享到:

                  1.TMT觀(guān)察網(wǎng)遵循行業(yè)規(guī)范,任何轉(zhuǎn)載的稿件都會(huì)明確標(biāo)注作者和來(lái)源;
                  2.TMT觀(guān)察網(wǎng)的原創(chuàng)文章,請(qǐng)轉(zhuǎn)載時(shí)務(wù)必注明文章作者和"來(lái)源:TMT觀(guān)察網(wǎng)",不尊重原創(chuàng)的行為T(mén)MT觀(guān)察網(wǎng)或?qū)⒆肪控?zé)任;
                  3.作者投稿可能會(huì)經(jīng)TMT觀(guān)察網(wǎng)編輯修改或補(bǔ)充。