什么是舊私鑰攻擊和當(dāng)前私鑰攻擊
1.舊私鑰攻擊
權(quán)益證明的早期版本使用的是固定的驗(yàn)證節(jié)點(diǎn)設(shè)置。這意味著在過(guò)去的某個(gè)時(shí)間點(diǎn)賣(mài)出他們權(quán)益的用戶(hù),在未來(lái),仍然可以加入驗(yàn)證過(guò)程(在權(quán)益證明中,驗(yàn)證等同于挖區(qū)塊)。這樣會(huì)造成一個(gè)巨大的漏洞,因?yàn)槿魏稳藫碛羞@些過(guò)期的私鑰(通過(guò)改寫(xiě)歷史),都可以獲得很多錢(qián),而且沒(méi)有任何不利因素。這也被稱(chēng)為“無(wú)風(fēng)險(xiǎn)問(wèn)題“。
為了解決這個(gè)問(wèn)題,更新版本的權(quán)益證明使用動(dòng)態(tài)驗(yàn)證節(jié)點(diǎn)設(shè)置和檢查點(diǎn)。這個(gè)想法是為了取消過(guò)去權(quán)益持有者對(duì)未來(lái)區(qū)塊驗(yàn)證的參與權(quán)。
但是,盡管有了這些方法,權(quán)益證明協(xié)議也不能完全解決這個(gè)問(wèn)題。兩類(lèi)節(jié)點(diǎn)仍然特別危險(xiǎn):
a) 剛剛加入網(wǎng)絡(luò)的新節(jié)點(diǎn)
b) 長(zhǎng)期不使用的節(jié)點(diǎn)
因?yàn)橐陨险f(shuō)的節(jié)點(diǎn)要么是從空白的記憶開(kāi)始,或者是在他們的記憶中有很大的空缺,當(dāng)這些節(jié)點(diǎn)不在線的時(shí)候,在檢測(cè)一些已經(jīng)在主鏈上賣(mài)出代幣的權(quán)益持有者的時(shí)候,會(huì)遇到麻煩。
一些權(quán)益證明的支持者會(huì)很快地指出在工作量證明也會(huì)有類(lèi)似的問(wèn)題,所以這是個(gè)可接受的問(wèn)題。
這個(gè)其實(shí)是有些錯(cuò)誤的。雖然這是真實(shí)的,在工作量證明系統(tǒng)中的新用戶(hù)確實(shí)需要信任某人,從而下載正確的軟件和程序,但是這種信任不會(huì)延伸到哪條鏈?zhǔn)怯行У摹?/p>
其次也是更為重要地,一旦工作量證明算法節(jié)點(diǎn)軟件已經(jīng)下載,對(duì)于工作量證明節(jié)點(diǎn)的操作者來(lái)說(shuō),在某段時(shí)間關(guān)閉節(jié)點(diǎn)是相對(duì)安全的。在通過(guò)自啟動(dòng)階段,工作量證明是高度無(wú)需許可的:節(jié)點(diǎn)可以在任何時(shí)候使用或者關(guān)閉。唯一的例外,就是在硬分叉過(guò)程中,這需要節(jié)點(diǎn)操作者重復(fù)自啟動(dòng)過(guò)程(這也是硬分叉應(yīng)該非常謹(jǐn)慎使用的原因,并且盡可能避免)。
相反地,對(duì)于權(quán)益證明的節(jié)點(diǎn)操作者,盡管你下載了正確的軟件,也需要經(jīng)常去和可信任的第三方進(jìn)行溝通,從而確保一直在主鏈上。對(duì)于丟失主網(wǎng)合約以及進(jìn)入錯(cuò)誤鏈的情況,會(huì)一直成為擔(dān)憂,特別是在可信任的第三方長(zhǎng)期不存在的情況下!這就在安全方面造成了極大的隱患。
這是所有權(quán)益證明協(xié)議都會(huì)有的最基本的問(wèn)題。
2. 當(dāng)前私鑰攻擊
這類(lèi)攻擊的第二類(lèi)中,私鑰是現(xiàn)在的。這意味著無(wú)論是動(dòng)態(tài)驗(yàn)證節(jié)點(diǎn)或是檢查站都沒(méi)有作用。(其實(shí),自動(dòng)檢查站會(huì)使得問(wèn)題更加無(wú)法解決。)
這是如何作用的:獲得私鑰的攻擊者可以控制至少1/3的供給代幣,這樣就可以很容易地創(chuàng)建兩個(gè)在相同高度的有效區(qū)塊,而且不會(huì)有區(qū)塊比網(wǎng)絡(luò)中其他的更加“正確“(有效地創(chuàng)建了鏈分叉)。這已經(jīng)是大多數(shù)權(quán)益證明協(xié)議的頑疾,因?yàn)槿绻?/3以上的誠(chéng)實(shí)閥值沒(méi)有達(dá)到,那么他們就會(huì)被強(qiáng)制去停止運(yùn)行。在任何周期中,沒(méi)有區(qū)塊可以“最終結(jié)算”。那么這個(gè)權(quán)益證明的鏈就會(huì)最終死亡。(能夠保證持續(xù)運(yùn)行的能力被稱(chēng)為“活躍”特性。)
我們可以更仔細(xì)的觀察一些權(quán)益證明的實(shí)施:
i) Tendermint:
Tendermint理解了上述的缺陷,在協(xié)議出現(xiàn)卡頓時(shí),用戶(hù)需要去帶外獲得共識(shí):
“通過(guò)外部方法驗(yàn)證節(jié)點(diǎn)的子集,應(yīng)該協(xié)調(diào)簽署一個(gè)選擇一個(gè)分叉的建議?!?/p>
誠(chéng)實(shí)是值得稱(chēng)贊的,但是我不同意這個(gè)“解決方案”真算得上是解決方案。增加對(duì)人工人工干預(yù)的依賴(lài)意味著該協(xié)議的可擴(kuò)展性和更容易破壞。對(duì)于設(shè)計(jì)正確地底層架構(gòu)軟件來(lái)說(shuō),離我們想要的穩(wěn)定性,還差的很遠(yuǎn)。
ii) Casper
Casper在1/3以上權(quán)益被控制的時(shí)候,也會(huì)陷入卡頓。
Casper使用了“靜止泄露”這個(gè)概念介紹這個(gè)問(wèn)題,節(jié)點(diǎn)如果單純是為了犯罪而離線,是需要受到懲罰的。不論你是不是故意離線,造成了損失,這不重要。這是個(gè)非常保守的規(guī)則,因?yàn)閍) 這造成了新的風(fēng)險(xiǎn),攻擊者可以對(duì)誠(chéng)實(shí)的驗(yàn)證節(jié)點(diǎn)進(jìn)行DDOS攻擊,從而讓他們離線,并且造成資金損失b)這也會(huì)抑制節(jié)點(diǎn),他們會(huì)因?yàn)楹ε聛G失資金,從而不想去擁有權(quán)益。這對(duì)于整體的安全性來(lái)說(shuō),是有消極影響的,因?yàn)閷?duì)于權(quán)益證明來(lái)說(shuō),權(quán)益參與者是非常重要的。
權(quán)益參與者
目前,在此篇分析中,我們假設(shè)最差的情況是攻擊者獲得了超過(guò)1/3的供應(yīng)代幣控制權(quán),這很困難但并不是不可能。但是在現(xiàn)實(shí)中,對(duì)于攻擊者發(fā)動(dòng)的條件其實(shí)低的多,因?yàn)楣粽咧恍枰?/3的活躍權(quán)益。
所有權(quán)益持有者都加入權(quán)益和驗(yàn)證的過(guò)程,這顯然是不太可能的。假設(shè)參與率是50%,那么攻擊者就需要獲得流通代幣的1/6來(lái)進(jìn)行對(duì)區(qū)塊的攻擊,而不是1/3。如果參與率是25%,那么攻擊者只需要1/12。
權(quán)益參與率很低,也許對(duì)于權(quán)益證明協(xié)議來(lái)說(shuō)是最大的威脅。
總結(jié)來(lái)說(shuō),私鑰攻擊對(duì)于權(quán)益證明協(xié)議是非常重要的問(wèn)題。在工作量證明中,失去對(duì)算力的控制很?chē)?yán)重,但是這并不意味著整個(gè)系統(tǒng)最終會(huì)完全失效。但是,如果在權(quán)益證明協(xié)議中,失去主要的控制,那么整個(gè)系統(tǒng)都會(huì)毫無(wú)防衛(wèi)能力。





