如何構(gòu)建一個(gè)沒(méi)有51%攻擊的工作量證明區(qū)塊鏈
我們首先指出,在比特幣等區(qū)塊鏈中,多數(shù)哈希值攻擊是可能的,因?yàn)橛糜诒Wo(hù)區(qū)塊鏈的“工作”被鎖定在特定的區(qū)塊。當(dāng)鏈被重新組織時(shí),誠(chéng)實(shí)的節(jié)點(diǎn)所做的所有工作都變得無(wú)用了——它們的工作所綁定的塊不再構(gòu)成最長(zhǎng)鏈的一部分。可以通過(guò)將工作量證明組件移動(dòng)到事務(wù)級(jí)別來(lái)消除這個(gè)問(wèn)題。
用戶可以簡(jiǎn)單地在他們的事務(wù)中包含一個(gè)工作證明哈希值,而不是向礦商支付費(fèi)用。網(wǎng)絡(luò)中的節(jié)點(diǎn)在傳播事務(wù)時(shí)收集這些哈希值,并且允許在mempool中有足夠的累積工作以滿足困難需求時(shí)生成塊。為了清晰起見(jiàn),我們可以將其稱為“事務(wù)嵌入式工作證明”(transaction-embedded proof-of-work, tPOW),以區(qū)別于“塊嵌入式工作證明”(block-embedded proof-of-work, bPOW)。
這種方法的一個(gè)問(wèn)題是,多個(gè)節(jié)點(diǎn)可能有足夠的工作來(lái)同時(shí)生成塊。這可以通過(guò)讓節(jié)點(diǎn)在通過(guò)網(wǎng)絡(luò)時(shí)對(duì)事務(wù)進(jìn)行簽名來(lái)避免,為每個(gè)節(jié)點(diǎn)貼上事務(wù)在進(jìn)入網(wǎng)絡(luò)的過(guò)程中所走過(guò)路由路徑的不可偽造的歷史記錄。
一個(gè)簡(jiǎn)單的實(shí)現(xiàn)應(yīng)該指定任何節(jié)點(diǎn)都不能將事務(wù)放入一個(gè)塊中,除非它包含在事務(wù)路徑中,并且每個(gè)事務(wù)中嵌入的“工作”的值應(yīng)該隨著它通過(guò)網(wǎng)絡(luò)的每一次額外跳轉(zhuǎn)而下降。我們還應(yīng)該指定,一旦只剩下很少的工作,節(jié)點(diǎn)就停止向?qū)Φ裙?jié)點(diǎn)傳播事務(wù):希望更快的確認(rèn)(更深入的傳播)的用戶應(yīng)該附加更硬的證明。
有了這些限制,塊生產(chǎn)將采用權(quán)益關(guān)系證明系統(tǒng)的“循環(huán)”特性——但不需要破壞網(wǎng)絡(luò)的開(kāi)放訪問(wèn)特性。bPOW中的集中壓力也會(huì)消失,因?yàn)榫o密對(duì)節(jié)點(diǎn)沒(méi)有任何好處:生成一個(gè)塊的節(jié)點(diǎn)生成下一個(gè)塊的可能性最小。對(duì)于塊生產(chǎn)來(lái)說(shuō),重要的是將自己定位在獨(dú)特的、高價(jià)值的事務(wù)入站流附近。
如果我們回到51%攻擊的話題,我們可以看到在這個(gè)系統(tǒng)中它們實(shí)際上是不可能的。惡意節(jié)點(diǎn)仍然可以攻擊網(wǎng)絡(luò),但需要?jiǎng)?chuàng)建大量的工作密集型事務(wù),以“擠出”誠(chéng)實(shí)的事務(wù)。構(gòu)建asic可以簡(jiǎn)化這一過(guò)程,但是不需要為攻擊者支付挖掘費(fèi)用,這樣做會(huì)帶來(lái)巨大的成本和零收益。而且成功攻擊所需的哈希值數(shù)量也很難預(yù)測(cè):用戶可以通過(guò)增加附加到單個(gè)事務(wù)上的工作量來(lái)響應(yīng)攻擊,從而實(shí)時(shí)提高攻擊成本,并幫助破產(chǎn)的攻擊者。
下表顯示了tPOW對(duì)鏈控制攻擊成本的影響。雖然只要攻擊者擁有大部分的網(wǎng)絡(luò)哈希值,就可以控制bPOW網(wǎng)絡(luò),但是只要誠(chéng)實(shí)的節(jié)點(diǎn)有攻擊者無(wú)法構(gòu)建的工作,tPOW網(wǎng)絡(luò)就會(huì)提高攻擊成本。最終,即使是最富有的攻擊者也將不得不允許另一個(gè)節(jié)點(diǎn)向其區(qū)塊鏈貢獻(xiàn)塊,哪怕這只是為了降低他們?cè)噲D主導(dǎo)塊生產(chǎn)的成本。
下圖以可視化的形式顯示了相同的信息。紅線表示繼續(xù)審查網(wǎng)絡(luò)的成本??梢院芸炜闯?,這種攻擊是完全不可持續(xù)的。
這種方法存在合理的反對(duì)意見(jiàn)。節(jié)點(diǎn)是否有傳播事務(wù)的動(dòng)機(jī)?如果我們?nèi)∠召M(fèi),網(wǎng)絡(luò)如何為自己的生存買單?如何誘導(dǎo)網(wǎng)絡(luò)假設(shè)一個(gè)最優(yōu)的經(jīng)濟(jì)結(jié)構(gòu)?
雖然我們可以花上幾頁(yè)的篇幅來(lái)概述對(duì)它們的關(guān)注和回應(yīng)(也就是說(shuō),節(jié)點(diǎn)沒(méi)有理由不能為點(diǎn)對(duì)等節(jié)點(diǎn)單獨(dú)支付費(fèi)用),但我們將跳過(guò)這些細(xì)節(jié),并將感興趣的讀者指向Saito白皮書,該白皮書概述了一些額外的措施,這些措施有助于保護(hù)Saito類網(wǎng)絡(luò)免受切線攻擊向量的影響。
話雖如此,重要的是要突出saito類網(wǎng)絡(luò)相對(duì)于其他網(wǎng)絡(luò)的一個(gè)主要優(yōu)勢(shì):區(qū)分誠(chéng)實(shí)節(jié)點(diǎn)和攻擊者的能力,這使它們?cè)诳缮炜s性和安全性方面都具有信息優(yōu)勢(shì)。
其他網(wǎng)絡(luò)無(wú)法區(qū)分這兩者的區(qū)別,這也是許多開(kāi)發(fā)者玩“打鼴鼠”游戲的原因,這些游戲在越來(lái)越復(fù)雜的權(quán)益關(guān)系證明結(jié)構(gòu)中涉及“技術(shù)權(quán)衡”。但是,如果只是將漏洞轉(zhuǎn)移到治理機(jī)制,那么替換對(duì)任何鏈重組機(jī)制的51%攻擊有什么用呢?
與其他區(qū)塊鏈不同,saito網(wǎng)絡(luò)可以區(qū)分攻擊節(jié)點(diǎn)和誠(chéng)實(shí)節(jié)點(diǎn)。因?yàn)樗泄?jié)點(diǎn)在通過(guò)網(wǎng)絡(luò)時(shí)都必須對(duì)事務(wù)進(jìn)行加密簽名,所以網(wǎng)絡(luò)可以調(diào)整其路由拓?fù)湟缘钟?。網(wǎng)絡(luò)中的用戶——唯一能夠識(shí)別攻擊的參與者——可以通過(guò)將事務(wù)路由到遠(yuǎn)離攻擊者的地方來(lái)保護(hù)網(wǎng)絡(luò)。這種技術(shù)增加了誠(chéng)實(shí)節(jié)點(diǎn)可用的“工作”,同時(shí)減少了攻擊者可用的“工作”。
我們希望其他人從這篇博客文章中得到有用信息。最重要的是,將分散的工作生成與加密簽名路由相結(jié)合,可以將區(qū)塊鏈更新為增強(qiáng)的saito類網(wǎng)絡(luò)。這種方法消除了51%的攻擊等漏洞,同時(shí)提供了不需要脆弱的權(quán)益關(guān)系證明治理機(jī)制的新防御機(jī)制。
最后,雖然這篇文章是關(guān)于工作證明的,但我們應(yīng)該指出,我們不認(rèn)為工作證明是真正高吞吐量區(qū)塊鏈的合適共識(shí)機(jī)制。
話雖如此,我們希望這篇快速的文章能夠幫助說(shuō)明Saito發(fā)明的技術(shù)是如何與其他共識(shí)機(jī)制(包括工作證明)一起工作的。隨著它們被更廣泛地理解,我們預(yù)計(jì)saito級(jí)別的解決方案將在未來(lái)幾年在大多數(shù)主要區(qū)塊鏈中實(shí)現(xiàn)。