行業資訊
區塊鏈中的日蝕攻擊是什么?作為簡單的基礎攻擊,干擾被攻擊者網絡上的節點。日蝕攻擊(Eclipse Attack)是比特幣中的一種攻擊手段,最早在2015年于《Eclipse Attacks on Bitcoin's Peer-to-Peer Network》(比特幣的點對點網絡中的日蝕攻擊)一文中被提出。日蝕攻擊的手段不同于我們常見的51%攻擊,其表現為對特定節點或節點集群進行網絡攻擊,讓網絡出現“分區”以此達到雙花等目的。想要理解日蝕攻擊并不難,只要對區塊鏈挖礦、交易和網絡結構有所理解即可。
國外服務器免費測試:http://www.bxgb88.com/cloud/usa.html
從表面上看,日蝕攻擊(Eclipse Attack)與女巫攻擊(Sybil Attack)相似。盡管它們具有某些相似之處(攻擊者通過攻擊節點擾亂網絡),但它們最終的攻擊目標是不同的。日蝕攻擊的目標是單個節點(原因將在下文中說明),而女巫攻擊的目標是整個網絡范圍,旨在篡改網絡協議的信譽體系。
一、針對區塊鏈的日蝕攻擊在哪個階段?
我們以比特幣作為例子:
比特幣作為一個采用點對點網絡的區塊鏈應用,礦工需要專用設備生成驗證新區塊,但是非挖礦(或完整)節點僅需要非常小的算力即可運行。通過這種方式,任何人都可以在廉價設備上運營節點,這也有助于比特幣的去中心化。軟件程序維護了與對等方同步的事務處理數據庫,以便與網絡保持同步。網絡中的所有節點相互是平等的,相互之間也能無障礙地進行溝通鏈接,當然這只是理論情況。
實際上,由于網絡帶寬限制和算力分布限制,比特幣限制了單個節點可接收信息和主動鏈接其他節點的上限。對于接受信息,單個節點最多只能接收117個節點的信息;對于主動鏈接其他節點,單個節點只能主動聯系其他8個節點。而日蝕攻擊的重點便是對單個節點所鏈接的和所接收的節點信息。
1、如果一個節點所接收信息的117個節點和對外鏈接的8個節點全部都是由惡意節點操控的話,相當于該節點被惡意者所孤立,其所有接受的信息都受到攻擊者控制,這種情況我們便稱該節點遭受了“日蝕攻擊”,看起來和傳統安全領域的中間人攻擊類似。
2、如果惡意者可以控制更多的節點,對更多的正常節點發起日蝕攻擊,那么惡意者將可以把比特幣網絡拆分為兩個不同的分區,就像分叉一樣。
3、如果惡意者掌握了足夠的帶寬資源,且自身擁有全網40%的算力,它可以將比特幣網絡拆分為兩個分區,假設兩個分區各占有全網30%的算力,惡意者不僅可以通過隔離兩個分區之間的信息溝通,并且還能依靠這40%的算力在兩個分區中都發起51%攻擊(惡意者在每個分區的算力占比都是4/7)。
4、如果惡意者只有網絡帶寬資源而沒有算力,依然可以實現雙花攻擊。假設惡意者通過日蝕攻擊將網絡拆分為兩個分區,一個分區占有20%算力而另一個占有80%算力,此時惡意者在先在20%算力分區發起一次交易,同時也在80%分區發起一次轉賬給自己的交易。
在日蝕攻擊的影響下,兩個分區無法溝通,故只能依據自身所在分區的算力進行挖礦,由于80%算力分區占有絕對算力優勢,其區塊高度早晚會超過20%算力分區,當惡意者解除日蝕攻擊后,首先發送在20%分區上的交易將會因為最長鏈原則被廢棄,而80%分區上的雙花交易則會被接受。惡意者通過日蝕攻擊完成了無需算力占比的雙花攻擊。
蝕攻擊并非理論上存在,在現實中也有過試驗《Eclipse Attacks on Bitcoin's Peer-to-Peer Network》論文中便通過生成僵尸網絡,利用IP地址對比特幣部分節點成功發起了近1小時的日蝕攻擊。盡管目前比特幣已經根據論文團隊意見對日蝕攻擊進行了防護,日蝕攻擊的風險仍然值得所有工作量證明區塊鏈考慮。
在日蝕攻擊中,攻擊者會確保目標的所有連接都建立在攻擊者所控制的節點上。攻擊者將首先從自己的IP地址向目標地址發送泛洪,受害者可能會在程序重啟時連接到攻擊者的IP地址。可以強制重啟(即對目標進行DDoS攻擊),或者僅等待程序自動重啟。
如果攻擊者通過消耗網絡節點的資源,能夠使其從網絡中分離,那么他們就有動機實施此類攻擊。如果節點被隔離了,攻擊者就可以實施幾次連續攻擊。
二、日蝕攻擊的核心元素:
對于區塊鏈的惡意攻擊,相信最為人熟知的便是51%攻擊——在工作量證明中,攻擊者擁有全網50%以上的算力便可通過雙重花費行為進行欺詐,實現對交易數據的“篡改”。這一點最早在比特幣的白皮書中便有所提及,一般人們也會認為比特幣系統(乃至于大多數工作量證明區塊鏈)的安全算力閾值為51%,也讓礦工和用戶有意識的確保某一個體或集體不能控制比特幣50%以上的算力。
但實際上,比特幣的安全算力閾值并非50%而是33%,原因在于通過“自私挖礦”,礦工通過有意識地隱藏發掘出的區塊,可以將對網絡發起攻擊的門檻由50%降低到33%。
在自私挖礦中,只要惡意者的算力超過了全網的1/3(33%),那么其連續挖掘到兩個區塊的概率與其他人連續挖掘到兩個區塊的概率比值接近1/4。只要能嘗試在挖掘到第一個區塊時隱藏不廣播,當你的算力超過了全網1/3時,作惡就存在收益。自私挖礦不僅削弱了比特幣(也是工作量證明)的安全界限,由于該算力投入到了“私有鏈”的挖掘中,也削弱了整個網絡的算力上限。
降低區塊鏈網絡安全界限的方式除了自私挖礦外,另一種方案便是本文所提到的日蝕攻擊了。
三、防御日蝕攻擊的一些例子:
日蝕攻擊的例子有很多,日蝕攻擊對所有工作量證明區塊鏈都有影響,不僅僅是比特幣,以太坊也面臨日蝕攻擊的風險。