20%算力便能使比特幣網絡癱瘓?一分鐘瞭解BDoS攻擊

20%算力便能使比特幣網絡癱瘓?一分鐘瞭解BDoS攻擊 | 火星號精選

免責聲明:本文旨在傳遞更多市場信息,不構成任何投資建議。文章僅代表作者觀點,不代表火星財經官方立場。

原文標題:20% 算力便能使比特幣網絡癱瘓?一分鐘瞭解 BDoS 攻擊

惡意礦工只需控制全網 20% 算力就能使比特幣網絡停止運轉?研究機構 IC3 提出的 BDoS 攻擊引起了眾多區塊鏈從業者關注。

原文標題:《新研究報告:全網 20% 算力就能攻擊比特幣網絡?》

本文新增了荷蘭代爾夫特理工大學博士後任之劼對此事的觀點。

一份新研究報告認為,利用區塊鏈拒絕服務攻擊 (BDoS: Blockchain Denial of Service),惡意礦工只需要控制全網 20% 的算力就能使比特幣網絡停止運轉。報告作者來自康奈爾大學和以色列理工合作成立的研究機構 IC3 (The initiative for cryptocurrencies and contracts)。

攻擊方法?

攻擊者挖出一個塊,然後只公佈區塊頭。研究者認為,這時候礦工有三個選擇:一、不理這個區塊頭,繼續挖主鏈;二、因為不確定塊裡有哪些交易,先挖一個空塊;三、停止挖掘。

20%算力便能使比特币网络瘫痪?一分钟了解BDoS攻击 | 火星号精选

研究者認為,攻擊者可以製造不確定性,讓礦工停止挖掘。具體方法是:

20%算力便能使比特币网络瘫痪?一分钟了解BDoS攻击 | 火星号精选

如果礦工選擇不理這個區塊頭,繼續挖主鏈(防守塊),那麼攻擊者就快速廣播與區塊頭對應的完整塊(攻擊塊)。因為點對點網絡裡每個節點的網絡連通性不一致,有的節點會先收到攻擊塊,有的節點會先收到防守塊。研究者認為,這會導致兩組礦工博弈,主鏈分叉。

假設防守塊 Bi 輸掉,不被包含在主鏈中。這時,挖防守塊的礦工損失掉一個區塊收益。

挖進攻塊 BA 的礦工,本來可以獲得區塊收益,但是攻擊者可以不發送完整的 BA 塊,讓這個塊不能上主鏈,這樣挖進攻塊 BA 的礦工也損失掉一個區塊收益。

研究者得出的結論是,不管礦工挖防守塊還是進攻塊,攻擊者都可以讓礦工拿不到收益,所以礦工最好的選擇就是關機不挖。所以,這個攻擊可以讓比特幣網絡停機。

行得通嗎?

就這個問題採訪了魚池創始人神魚

作為一個礦池,如果在只收到區塊頭的情況下,在沒有驗證交易合法性的情況下,我不會去跟著挖。因為如果這個區塊是有問題的,在他後面跟著挖等於是浪費我的算力。

在現實情況下,如果一個高度上存在兩個區塊,一個區塊只公佈了區塊頭,另一個區塊公佈了交易數據,雖然可能公佈交易數據的區塊時間上晚一點,但大家還是會去優先認可這個公佈了交易數據的塊。如果一個礦池惡意去只公佈區塊頭,不公佈數據,它這個塊被拒絕的風險很大,會損失掉確定性的區塊收益。

除非我是同一個實體控制的礦池,或者是聯盟,這時候我挖到一個塊,為了速度更快,先把區塊頭傳回來自己挖,默認這個區塊是合法的。這時這個攻擊等同於自私挖礦攻擊,它只廣播區塊頭,等同於不廣播區塊的攻擊。因為我如果不是跟他聯盟,我也不敢在後面跟著挖。

此外,荷蘭代爾夫特理工大學博士後任之劼認為:

理論上是一種新的攻擊方式,有一定的理論意義,但理論意義高於實際意義。

這個攻擊簡單來說就是提出了一種攻擊方式可以降低其他人的挖礦收益,於是,當挖礦收益率不高的時候(比如挖礦獎勵剛剛夠交電費這種),理性的礦工應該停止挖礦,因為挖礦的收益會趕不上電費投入。但是這個攻擊基本上沒有什麼實際意義。

首先,這裡面的門檻還是很高,因為按照當前的算力分佈和收益率來看,還是需要 20% 的算力才能進行這種攻擊。

其次,如果我們和 51% 攻擊和自私挖礦對比:和自私挖礦比的話,自私挖礦是當滿足條件之後,例如有人控制 25% 的算力並且有更好的網絡連接時,自私挖礦是可以獲益的並且是最優策略,於是整個網絡最終被迫都會採用自私挖礦。

而這個攻擊中並不是這樣,攻擊者並不能天然從攻擊中獲益,而實際上是在犧牲自己的挖礦獎勵進行攻擊。對比 51% 共計的話,51% 攻擊門檻更高,但是可以破壞一致性,可以雙花獲益,但這種攻擊僅僅可以攻擊活性而不是一致性,我想不出來攻擊者可以通過破壞活性獲益的方法。

解讀

研究人員的假設是,攻擊者公佈區塊頭後,可以成功吸引到足夠的礦工去跟著攻擊塊挖礦。

現實情況是,如果只公佈一個區塊頭,這個區塊大概率被拒絕,攻擊者損失掉一個區塊收益,礦工跟著先公佈整個區塊的塊繼續挖,這個攻擊不能威脅比特幣網絡。

來源鏈接:mp.weixin.qq.com


分享到:


相關文章: