本文是系列文章中的第五篇,它的主題是Velocity協(xié)議。此前的四篇文章的主題依次是布隆過濾器、可逆式布隆查找表、Graphene協(xié)議和毒塊攻擊。
本文是系列文章中的第五篇,它的主題是Velocity協(xié)議。此前的四篇文章的主題依次是布隆過濾器、可逆式布隆查找表、Graphene協(xié)議和毒塊攻擊。
Velocity協(xié)議是亞利桑那州立大學(xué)區(qū)塊鏈實驗室的研究成果。具體來說,這是Nakul Chawla為申請亞利桑那州立大學(xué)碩士學(xué)位所做的研究的成果。
讓我們回顧一下此前的內(nèi)容,致密區(qū)塊、極瘦區(qū)塊和Graphene協(xié)議通過傳播區(qū)塊中的交易列表來在整個網(wǎng)絡(luò)中廣播區(qū)塊。由于它們能以八字節(jié)的標(biāo)識符替代數(shù)百或數(shù)千字節(jié)的交易,因此它們節(jié)省了大量的帶寬。我們之前還探討了Graphene協(xié)議如何利用數(shù)據(jù)結(jié)構(gòu)來提高效率,并討論了這些協(xié)議為什么極易遭到毒塊攻擊(在這種情況下,礦工會廣播一個許多交易都尚未向網(wǎng)絡(luò)公布的區(qū)塊)。
實現(xiàn)寬帶效率的最大化而非降低對寬帶的需求
Velocity協(xié)議以全新的方式解決了區(qū)塊傳播的問題。在設(shè)想中,它將與主節(jié)點網(wǎng)絡(luò)配合良好。與其它協(xié)議不同的是,它不會減少傳播區(qū)塊所需的帶寬量,而是以更高效的方式利用可用的帶寬。我們都知道,帶寬是不用就浪費了的資源類型。網(wǎng)速1GBPS的數(shù)據(jù)中心可以分分秒秒利用這樣的資源,也可以只在高峰時段使用。無論如何,費用都是一樣的。
讓我們通過一些數(shù)字來解釋Velocity協(xié)議。首先,我們假設(shè)將一個區(qū)塊分解成我們稱之為符號的小區(qū)塊,一個區(qū)塊可拆分為1000個符號。在獲知新區(qū)塊之前,一個節(jié)點可能需要咨詢其它的25個節(jié)點,假設(shè)這25個節(jié)點中的14個具有新區(qū)塊并開始向請求提供數(shù)據(jù)的節(jié)點發(fā)送消息,那么該節(jié)點可能會接收到995個符號加上6個修復(fù)符號。
這種情況下,該節(jié)點能以極其確定地構(gòu)造完整的區(qū)塊。在完整的區(qū)塊恢復(fù)期間,速度不會受到毒塊攻擊的影響。Nakul Chawla進行的模擬表明,該協(xié)議非常有效。我們猜測這些成果的取得可以通過并行使用帶寬來解釋。
將最弱節(jié)點的影響最小化
Velocity協(xié)議最大限度地減少了連接不暢的節(jié)點帶來的影響。具體來說,通過連接不暢的節(jié)點請求數(shù)據(jù)的區(qū)塊有可能會出現(xiàn)傳播延誤。以Velocity協(xié)議為基礎(chǔ),節(jié)點連接到A、B、C、D、E這五個節(jié)點,其中D和E的連接較為薄弱;當(dāng)接收符號A和B時,它們各自可以提供350個符號, C可以提供200個符號,而D和E則分別能提供50個符號。因此,即使連接較弱,D和E實際上也會加速傳播。在沒有分擔(dān)帶寬負擔(dān)的情況下,薄弱連接可能會降低傳播速度。
有些文章斷言比特幣網(wǎng)絡(luò)在具備最弱節(jié)點的前提下也一樣活躍。Bitcoin Unlimited的首席科學(xué)家Peter Rizun將會反駁這一說法——比特幣網(wǎng)絡(luò)上過時的Commodore 64之所以不會損害網(wǎng)絡(luò)是因為它最終會被棄用。當(dāng)Velocity協(xié)議集成到達世幣網(wǎng)絡(luò)或其它網(wǎng)絡(luò)中,不僅薄弱節(jié)點對網(wǎng)絡(luò)的影響可以忽略不計,而且網(wǎng)絡(luò)還可以為這些節(jié)點提供更好的支持并支持更多的此類節(jié)點。這意味著網(wǎng)絡(luò)將更具彈性、活力和靈活性。
超越維薩卡交易能力的已知突破口
簡而言之,模擬測試的結(jié)果非常棒。不過,在理念投入生產(chǎn)并充分驗證我們的模擬結(jié)果之前,我們還有很長的路要走。此外,我還要解釋一些復(fù)雜的因素。
簡而言之,我們認為加密數(shù)字貨幣網(wǎng)絡(luò)在追求擴容時兩個極限:一是網(wǎng)絡(luò)不能失去達成共識的機制,二是保有對礦工的積極激勵,避免他們決定退出網(wǎng)絡(luò)、不再新增區(qū)塊。我們的模擬表明,與Velocity協(xié)議融合后的達世幣為滿足網(wǎng)絡(luò)共識機制則需500MB的區(qū)塊擴容上限,為維持對礦工的經(jīng)濟激勵則需300BM的區(qū)塊擴容上限。為了平衡這兩方面的需求,達世幣的擴容目標(biāo)為250MB,在這種情況下,它平均每秒的交易處理量與維薩卡持平。這真是太棒了。
與Gigablock Testnet研究的比較
與Velocity協(xié)議相關(guān)的研究是由Peter Rizun和Andrew Stone等人發(fā)起的Gigablock Testnet。這項研究表明比特幣可以支持1GB的區(qū)塊;而Velocity協(xié)議的研究成果表明達世幣可以支持500MB的區(qū)塊。不過,由于達世幣的區(qū)塊通常會出現(xiàn)四次,因此達世幣的交易處理量約為比特幣的兩倍。
值得注意的是Gigablock Testnet使用了18個節(jié)點并且是仿真實驗,而Velocity協(xié)議使用了24個節(jié)點并且是模擬實驗,后者比前者更真實。在這兩種情況下,假設(shè)的節(jié)點數(shù)量都很少。我推測,達世幣實際的每秒交易處理量理應(yīng)更高,因為區(qū)塊的處理流程更快。Gigablock Testnet也許就是這一主張的首個證據(jù)。
模擬結(jié)果和實際情況之間存在差距。首先值得注意的是模擬并不表明客戶端每秒的交易處理能力上限。這是一個已經(jīng)得到了解答的問題。不過,模擬可能無法識別其它障礙。此外,我們的模擬環(huán)節(jié)中使用的節(jié)點數(shù)量很少,而引入更多節(jié)點通常會減慢傳播速度。再者,我們還發(fā)現(xiàn),在維持對礦工的最低程度的經(jīng)濟激勵的同時,孤塊率約為30%,這種情況并不適宜生產(chǎn)活動。
Graphene與Velocity的結(jié)合能否抵御毒塊攻擊?
值得探索的一個想法是Graphene與Velocity的結(jié)合。在區(qū)塊剛誕生且沒有被眾多節(jié)點所知的情況下, Velocity協(xié)議的執(zhí)行情況最差。因此,我想了解Graphene協(xié)議如何在Velocity協(xié)議解碼失敗的時候進行完善。利用Graphene協(xié)議將顯著地降低毒塊攻擊的風(fēng)險。
這種區(qū)塊傳播方式還會帶來其它好處,例如更快捷的同步。它有望帶來間隔為幾個小時而非幾天的比特幣區(qū)塊鏈同步。這種可能性令人振奮。(Darren Tapp)
關(guān)鍵詞: Velocity協(xié)議 區(qū)塊傳播 寬帶