區塊鏈中的日蝕攻擊是什么?作為簡單的基礎攻擊,干擾被攻擊者網路上的節點,日蝕攻擊(Eclipse Attack)是位元幣中的一種攻擊手段,最早在2015年于《Eclipse Attacks on Bitcoin’s Peer-to-Peer Network》(位元幣的點對點網路中的日蝕攻擊)一文中被提出,日蝕攻擊的手段不同于我們常見的51%攻擊,其表現為對特定節點或節點集群進行網路攻擊,讓網路出現“磁區”以此達到雙花等目的,想要理解日蝕攻擊并不難,只要對區塊鏈挖礦、交易和網路結構有所理解即可,
從表面上看,日蝕攻擊(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時,作惡就存在收益,自私挖礦不僅削弱了位元幣(也是作業量證明)的安全界限,由于該算力投入到了“私有鏈”的挖掘中,也削弱了整個網路的算力上限,
降低區塊鏈網路安全界限的方式除了自私挖礦外,另一種方案便是本文所提到的日蝕攻擊了,
三、防御日蝕攻擊的一些例子:
日蝕攻擊的例子有很多,日蝕攻擊對所有作業量證明區塊鏈都有影響,不僅僅是位元幣,以太坊也面臨日蝕攻擊的風險,
1、Wisdom Chain,作為采用作業量證明的區塊鏈也不例外,但通過一些有效機制,Wisdom Chain可以輕松應對日蝕攻擊,
首先,Wisdom Chain采用了PoW+DPoS的混合共識結構,權益證明類共識演算法對于日蝕攻擊有良好效果,出塊節點需要質押代幣,而出塊節點之間進行著相互溝通,這令攻擊者想要發起攻擊必須要質押超額代幣,提高了作惡成本,其次,共識機制中的黑名單串列確保了只要發現意圖發起日蝕攻擊的節點,通過黑名單機制可以預防其成為出塊節點威脅網路安全程度,
當然,日蝕攻擊的出現原因在于點對點網路和作業量證明機制,想要從根源上斷絕日蝕攻擊的風險就必須得從網路結構上下手,這難免會令區塊鏈喪失去中心化等特點,不過,只要通過有效手段提高攻擊門檻,并以合理的經濟機制激勵節點,日蝕攻擊對于大多數區塊鏈而言是可以預防的,
2、日蝕攻擊本身成本高昂:
首先,遭受日蝕攻擊的節點會繼續運行,不會受到被網路隔離的影響,礦工將繼續在協議規定的規則范圍內對區塊進行驗證,但是添加的區塊將會在和真實網路節點進行通過的程序中進行丟棄,
從理論上講,對大部分礦工的大規模日蝕攻擊可用于促進51%攻擊,就目前的情況而言,即使是最有資源的攻擊者,接管大多數位元幣算力(約80TH/s)的成本也過于高昂,攻擊者至少需要以超過40TH/s的算力進行嘗試,
我們假設將這種算力分布在10個參與者中(每個參與者大約擁有8TH/s),攻擊者可以通過將這些參與者從網路隔離,大大降低51%攻擊的要求,如果其中的5個節點遭受日蝕攻擊,攻擊者就可以減少40TH/s的算力,用于來尋找下一個區塊,并且攻擊者現在只需要提高20TH/s的算力即可實作對節點的控制,
通過對目標實施日蝕攻擊,可以實作的其他破壞性活動,包括操縱節點進行非法挖礦活動,或利用礦工之間的算力競爭來獲取下一個區塊,
3、需要有海量IP才能造成影響:
如果擁有足夠多的IP地址,攻擊者就可以對任何節點實施日蝕攻擊,而防止這種情況發生的最直接方法是讓阻止節點的非法接入,并僅建立到特定節點(例如已被對等網路中的其他節點列入白名單的IP)的出站連接,但是,正如研究論文所指出的那樣,這并不是一種可以大規模實施的方案,如果所有參與者都采取這些措施,則新節點將無法加入到網路,
日蝕攻擊是在對等網路上進行的,作為一種可獨立攻擊部署的方式,它們會讓人感到厭煩,進行日蝕攻擊的真正目的,其實是為了實施其他能夠造成更大影響的攻擊,或者為攻擊者提供了在挖礦方面的優勢,
普遍來說,日蝕攻擊尚未造成嚴重影響,盡管區塊鏈網路中已部署了防范措施,但威脅仍然存在,日蝕攻擊與位元幣和其他大部分加密貨幣所面臨的大多數攻擊一樣,最好的防御措施是讓惡意攻擊者無利可圖,
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/295239.html
標籤:區塊鏈
