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





