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