當(dāng)前位置:首頁 > 物聯(lián)網(wǎng) > 區(qū)塊鏈
[導(dǎo)讀] 如果有人很直接地問你:怎樣才能 拓展 狀態(tài)機(jī)復(fù)制(區(qū)塊鏈)系統(tǒng)呢? 你應(yīng)該反問:你系統(tǒng)遇到的 瓶頸 是什么?數(shù)據(jù)?共識(shí)?還是執(zhí)行? 1. 數(shù)據(jù) :數(shù)據(jù)是將所有指令傳輸給所有狀態(tài)機(jī)

如果有人很直接地問你:怎樣才能 拓展 狀態(tài)機(jī)復(fù)制(區(qū)塊鏈)系統(tǒng)呢?

你應(yīng)該反問:你系統(tǒng)遇到的 瓶頸 是什么?數(shù)據(jù)?共識(shí)?還是執(zhí)行?

1. 數(shù)據(jù) :數(shù)據(jù)是將所有指令傳輸給所有狀態(tài)機(jī)副本的載體。舉個(gè)例子,如果一個(gè) 區(qū)塊包含 1MB 的指令 ,那么你就需要把 1MB 的數(shù)據(jù)發(fā)送給所有負(fù)責(zé)驗(yàn)證的副本。顯然,這種情況下,系統(tǒng)的 通道容量 (帶寬)是系統(tǒng)可拓展的瓶頸。

2. 共識(shí) :指令到達(dá)本地之后,狀態(tài)機(jī)們就會(huì)參與共識(shí)協(xié)議(就像這里所討論的 部分同步 或者 同步協(xié)議 )。舉個(gè)例子,如果一個(gè)共識(shí)協(xié)議需要兩次消息往返,而參與驗(yàn)證的狀態(tài)機(jī)分布在全球各地,那么,這里明顯的瓶頸在——由光速和地球大小而導(dǎo)致的 延遲 。

3. 執(zhí)行 :指令到達(dá)、共識(shí)在指令排序上達(dá)成共識(shí)后,副本需要執(zhí)行指令。 執(zhí)行引擎 是一個(gè)接受舊狀態(tài)并應(yīng)用指令來計(jì)算新狀態(tài)(并計(jì)算輸出)的函數(shù)。又舉個(gè)例子,如果執(zhí)行需要許多密碼學(xué)計(jì)算,那么很明顯啦,這里的瓶頸就是副本要重復(fù)執(zhí)行的密碼學(xué)計(jì)算。

需要注意的是,這三個(gè)瓶頸不是追求一種折衷,也不是兩難的困境,也不是 三難困境 。它們是彼此獨(dú)立的。所有狀態(tài)機(jī)復(fù)制系統(tǒng)的可拓展能力都受到這三種因素的限制(而且像木桶原理一樣,受制于其中條件最差的那一個(gè))。本文將介紹一些解決這些瓶頸的方案。

1. 從數(shù)據(jù)上提高可拓展性

更好的網(wǎng)絡(luò)解決方案

對(duì)比特幣等密碼學(xué)貨幣而言,擴(kuò)展吞吐量的能力取決于減少延遲——因?yàn)槟硞€(gè)礦工挖出的區(qū)塊需要經(jīng)過一定的延遲才能傳播給所有其他礦工。像 FIBRE 、 Falcon 、 bloXroute 這些系統(tǒng)會(huì)通過使用 專用通道 (pipelining)來降低延遲,并使用 前 向 糾錯(cuò)碼 (foward error correction code) 來傳播區(qū)塊。提高數(shù)據(jù)可拓展性的另一個(gè)辦法是通過 內(nèi)容可尋址網(wǎng)址(content addressable network) 來發(fā)現(xiàn)對(duì)等節(jié)點(diǎn)并訪問內(nèi)容。具體可參考 Kademlia ,它不僅啟發(fā)了以太坊的 RLPx編碼規(guī)范,并在 libp2p 上得到了推廣。

把數(shù)據(jù)遷移到 layer-2

另一種思路是,既然瓶頸源于需要復(fù)制所有指令到所有狀態(tài)機(jī),那我不復(fù)制不就完啦!像 Lightning 、 Plasma 和其他 Layer-2 解決方方案都是如此——把中間命令傳播給一個(gè)較小的半公開團(tuán)體以減少數(shù)據(jù)復(fù)制、定期向整個(gè)系統(tǒng)報(bào)告總結(jié)(詳情可看我們關(guān)于 支付 通道的文章)。自然而然地,這種方法的不足在于:不復(fù)制所有數(shù)據(jù)會(huì)造成數(shù)據(jù)的可用性問題(data availability problem)。而安全性依賴于每個(gè)擁有數(shù)據(jù)的半公開團(tuán)體內(nèi)至少有一個(gè)誠(chéng)實(shí)參與者能及時(shí)地作出反應(yīng)。

2. 從共識(shí)上提高可拓展性

吞吐量和延遲之間的權(quán)衡

有人將每秒處理交易數(shù)( TPS )作為衡量協(xié)議可拓展性的標(biāo)準(zhǔn)。TPS 是對(duì)吞吐量的度量,人們存在一個(gè)誤解——以為對(duì)它單獨(dú)優(yōu)化就可以實(shí)現(xiàn)共識(shí)可拓展性。共識(shí)可拓展性的解決方案必須同時(shí)關(guān)注 吞吐量 和 確認(rèn)時(shí)延 這兩個(gè)因素。

通過 成批處理 來提高共識(shí)的吞吐量(但提高延遲)很簡(jiǎn)單:只需要一天一次,而不用每隔幾秒一次,就可以讓人們就被批處理的所有數(shù)據(jù)的哈希值達(dá)成共識(shí)。顯然,由于一天只達(dá)成一次共識(shí),成本會(huì)被分?jǐn)偅瑑H就吞吐量而言,共識(shí)過程就不再是阻礙實(shí)現(xiàn)拓展性的瓶頸了。顯然,批處理雖然能提高共識(shí)協(xié)議的吞吐量,但也會(huì)提高交易確認(rèn)的時(shí)延,并不是什么擴(kuò)展共識(shí)協(xié)議性能的萬靈丹。

PBFT journal version 一文充分地討論了 BFT 狀態(tài)機(jī)復(fù)制的延遲和吞吐量。

對(duì)基于 Nakamoto Consensus 的協(xié)議而言,有很多協(xié)議都試圖增加吞吐量及時(shí)延,如: Bitcoin-NG 、 Fruitchains 和 Prism 。

性能和安全性之間的權(quán)衡

有人建議在更小的狀態(tài)機(jī)副本小組內(nèi)達(dá)成共識(shí),以優(yōu)化共識(shí)過程的性能。降低驗(yàn)證狀態(tài)機(jī)小組的規(guī)模的確可以提高性能,但這是以降低降低安全性為代價(jià)的。所以,真正的挑戰(zhàn)在于不減少參與狀態(tài)機(jī)的數(shù)量同時(shí)提高共識(shí)過程的性能。

提高 共識(shí)協(xié)議的復(fù)雜性 有望魚和熊掌兼得,例如:減少輪數(shù),或者說 改變消息傳遞的復(fù)雜度,使呈平方級(jí)增長(zhǎng)的消息數(shù)量可以變?yōu)榫€性增長(zhǎng)。本文討論了一些 部分同步 中的協(xié)議改進(jìn)和 同步 中的協(xié)議改進(jìn)。

可拓展性和適應(yīng)性之間的權(quán)衡

基于 PBFT 視圖范式的共識(shí)協(xié)議容易受到攻擊者的適應(yīng)性攻擊(adapTIve attack)。共識(shí)協(xié)議的安全性不僅和攻擊者的規(guī)模(由狀態(tài)機(jī)副本總數(shù)決定)相關(guān),而且和對(duì)手的 適應(yīng)性 能力 相關(guān)。

處理適應(yīng)性對(duì)手的協(xié)議通常會(huì)導(dǎo)致更高的成本,也會(huì)在可拓展性上遇到更大的難題。 Algorand建議用基于輪次的密碼抽樣來拓展拜占庭共識(shí),使其免受適應(yīng)性攻擊者的攻擊。這種方法的 模擬結(jié)果 看起來很不錯(cuò)。適應(yīng)性對(duì)手可以使用 拒絕服務(wù)攻擊 (Denial-of-Serivice attack)來阻止系統(tǒng)推進(jìn)。 HoneyBadger 提出了第一個(gè)實(shí)用的 異步 BFT 協(xié)議——該協(xié)議在不做任何時(shí)序假設(shè)的情況下,也能保證活性。

避免對(duì)所有命令進(jìn)行全排序

如果所有指令都相互依賴,那么除了對(duì)所有指令進(jìn)行 全排序 外,別無他選。但是在許多工作負(fù)載中,指令不會(huì)彼此依賴和彼此干擾。舉個(gè)例子,在某些情況下,A 給 B 支付的指令和 C 給 D 支付的指令就不會(huì)相互干擾;在這種情況下,我們沒有必要浪費(fèi)昂貴的共識(shí)資源為這兩筆指令進(jìn)行內(nèi)部 排序,沒有理由讓它成為系統(tǒng)的瓶頸。在 epaxos 非拜占庭模型中就采用了這種(不在所有時(shí)候都搞全排序的)辦法。像 Avalanche 和其他 基于 DAG 的 協(xié)議 ,會(huì)通過允許并發(fā)提交互不干擾的指令來增加共識(shí)的吞吐量。

分片

抽象一點(diǎn)來看, 分片 是對(duì)狀態(tài)和狀態(tài)機(jī)副本集合進(jìn)行 分區(qū) 。每一分片控制狀態(tài)的某個(gè)部分,且共識(shí)過程是由驗(yàn)證狀態(tài)機(jī)總體的某個(gè)部分來完成的。這當(dāng)然也需要一些跨分片交互機(jī)制。以太坊的 “Sharding FAQ” (編者注:中譯本見文末)資源正是一個(gè)很全面的資源。

分片是并行化處理 數(shù)據(jù)、共識(shí) 和 執(zhí)行 這三大瓶頸的方法。實(shí)現(xiàn)數(shù)據(jù)和執(zhí)行并行化的關(guān)鍵在于工作負(fù)載的低 狀態(tài)競(jìng)用 (contenTIon)。從共識(shí)的角度來看,分片本質(zhì)上就是在性能和安全之間取舍:不是用所有狀態(tài)機(jī)副本去保障一個(gè)狀態(tài),分片技術(shù)創(chuàng)建了多個(gè)分區(qū),每個(gè)驗(yàn)證者副本會(huì)各自保護(hù)它們自己的分區(qū)。

(如果狀態(tài)競(jìng)用程度較低)劃分許多分區(qū)會(huì)顯著地提高性能。但是,因?yàn)槊恳环謪^(qū)的驗(yàn)證狀態(tài)機(jī)都變得更少,安全性自然就降低了。

想了解使用分片技術(shù),請(qǐng)參閱 Omniledger 和 Ethereum 2.0 。以太坊 2.0 計(jì)劃將每個(gè)分區(qū)的低安全性和全局鏈的高安全性結(jié)合起來。就像 Layer-2 方案一樣,低安全性的分片可以定期上傳自己的狀態(tài)到高安全性的全局鏈上,并將狀態(tài)更新確定下來。這也是在安全性和延遲之間取舍——想獲得高安全性,就得等待全局鏈的周期性敲定。

3. 從執(zhí)行上提高可拓展性

共識(shí)和執(zhí)行的分離是狀態(tài)機(jī)復(fù)制系統(tǒng)的基本架構(gòu)設(shè)計(jì)之一(可參見 Base 20013 )。分離的好處可參見 Yin et al 2003 。在傳統(tǒng)的狀態(tài)機(jī)復(fù)制系統(tǒng)(SMR)中,命令不僅要復(fù)制并傳播到所有副本,還得在所有副本上執(zhí)行。

在很多系統(tǒng)中,可拓展性的瓶頸是 執(zhí)行 指令的成本。對(duì) SMR 系統(tǒng)的一種主要拒絕服務(wù)攻擊工段是發(fā)出合法的命令,讓整個(gè)系統(tǒng)浪費(fèi)時(shí)間在執(zhí)行上(詳情請(qǐng)參閱: 例 1 和 例 2 )。很多系統(tǒng)通過設(shè)計(jì) 領(lǐng)域 專用 語言 來(Domain Specific Language)避免攻擊。比特幣用 比特幣腳本 ,小心翼翼地限制每筆交易的計(jì)算復(fù)雜性。以太坊用 gas 機(jī)制 來限制執(zhí)行的復(fù)雜性,并用效率來激勵(lì)人們對(duì) Gas 的使用。

并行化執(zhí)行

讓狀態(tài)機(jī)并行化執(zhí)行也是一種提高執(zhí)行能力的方法。當(dāng)在區(qū)塊中的大部分命令無狀態(tài)競(jìng)用(相互獨(dú)立,或者說可互換順序)的情況下,這個(gè)方法是有效的。它的主要思想是設(shè)想一種在無競(jìng)用的條件下并行執(zhí)行、在有競(jìng)用時(shí)維護(hù)安全性的協(xié)議,用該協(xié)議模擬出連續(xù)執(zhí)行的結(jié)果。詳情請(qǐng)參看 Eve 2012 、 Dickerson、 Gazzillo、 Herlihy、 Koskinen 2017 和 Saraph 和 Herlihy 2019。

不在 SMR 內(nèi)執(zhí)行,使用經(jīng)濟(jì)激勵(lì)和錯(cuò)誤性證明來驗(yàn)證(opTImisTIc rollups 類型)

在這類解決方案中,指令作為數(shù)據(jù)提交到 SMR 內(nèi),但是執(zhí)行不是由驗(yàn)證狀態(tài)機(jī)副本完成的。狀態(tài)機(jī)副本僅充當(dāng) 數(shù)據(jù)可用性 層。

不用副本來執(zhí)行指令,而用經(jīng)濟(jì)激勵(lì)機(jī)制——玩家可以通過 發(fā)布債券 來成為執(zhí)行者。定了保證金的執(zhí)行者都可以提交執(zhí)行結(jié)果,而其他人可以通過提交錯(cuò)誤性證明來舉報(bào)執(zhí)行人提交了不正確的執(zhí)行結(jié)果。如果這份錯(cuò)誤性證明是正確的,執(zhí)行者將受到 懲罰 ,而提交者將得到部分獎(jiǎng)勵(lì)。如果挑戰(zhàn)者在錯(cuò)誤性證明上說謊,那他的保證金就會(huì)大幅罰沒。

實(shí)現(xiàn)高效挑戰(zhàn)的協(xié)議起源于 Feige Kilian 2000 ,而 Canetti, Riva, Rothblum 2011 沿著這條道路推進(jìn),最終演化成采用鏈上激勵(lì)的 TrueBit Teutsch, Reitwie?ner 2017 和 Buterin’s Off-Chain Oracles 。如今,這種方法在名為 optimistic rollups 的方案中中得到進(jìn)一步發(fā)揚(yáng)(詳情可參看 merged consensus 、 Adler, Mikerah、Quintyne-Collins 、 Al-Bassam、Sonnino、Buterin 和 LazyLedger )。

不執(zhí)行、用簡(jiǎn)潔的證明來驗(yàn)證(zk rollups 類型)

在本方案中,指令同樣作為 數(shù)據(jù) 提交到 SMR 中,執(zhí)行同樣不關(guān)驗(yàn)證狀態(tài)機(jī)副本的事。副本只是作為指令的數(shù)據(jù)可用性層。

不同于用挑戰(zhàn)游戲和錯(cuò)誤性證明來驗(yàn)證執(zhí)行結(jié)果,利用 簡(jiǎn)潔的非交互式證明 也是可以的( PCP 、 Groth 10 、 Groth 16 、 Ben-Sasson、Chiesa、Tromer、Virza 2013-2019 和 survey)。這些密碼學(xué)技術(shù)允許驗(yàn)證者生成非常短的證明,同時(shí)對(duì)這些證明的驗(yàn)證在密碼學(xué)上具有高度的可靠性和完整性。執(zhí)行(和證明生成)只能由同一實(shí)體完成。有了簡(jiǎn)潔證明后,驗(yàn)證狀態(tài)機(jī)副本只需要驗(yàn)證簡(jiǎn)潔證明,而不需要重新執(zhí)行長(zhǎng)交易。 Zexe 用這個(gè)方法來建構(gòu)了基于 nano-kernel 的證明系統(tǒng),人們因此可以在 UTXO 中實(shí)現(xiàn)隱私交易。

Buterin 論述 zk-roll-up 的文章和 Ben-Sasson 的 podcast 強(qiáng)調(diào)了這種拓展交易處理量的方法。詳情請(qǐng)查看 Buterin 的 視頻 ,進(jìn)一步去了解如何將隱私(零知識(shí))添加到簡(jiǎn)潔的證明中(zk zk rollups)中。

這種簡(jiǎn)潔的證明有很多好處:驗(yàn)證證據(jù)正確性的成本非常低。而短處在于構(gòu)造指令執(zhí)行的證明通常比單單去執(zhí)行指令的成本要高得多。還有一個(gè)壞處在于這些協(xié)議增加了大量的復(fù)雜性。此外,某些協(xié)議還需要繁復(fù)的受信任初始設(shè)置 儀式。

點(diǎn)擊即可查看近期 optimistic and zk rollups 的 調(diào)查/比較 (編者注:中譯本見文末)。需要注意的是,以上介紹的方法意在克服執(zhí)行可拓展性的瓶頸,而不在改變 數(shù)據(jù)可拓展化的瓶頸 。

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

倫敦2024年8月29日 /美通社/ -- 英國(guó)汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對(duì)日本游戲市場(chǎng)的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對(duì)環(huán)境變化,經(jīng)營(yíng)業(yè)績(jī)穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤(rùn)率延續(xù)升勢(shì) 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長(zhǎng) 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競(jìng)爭(zhēng)力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競(jìng)爭(zhēng)優(yōu)勢(shì)...

關(guān)鍵字: 通信 BSP 電信運(yùn)營(yíng)商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺(tái)與中國(guó)電影電視技術(shù)學(xué)會(huì)聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會(huì)上宣布正式成立。 活動(dòng)現(xiàn)場(chǎng) NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長(zhǎng)三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會(huì)上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡(jiǎn)稱"軟通動(dòng)力")與長(zhǎng)三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉