區塊鏈一直以不可篡改、分佈式、永久可查驗等特點得到人們的青睞,這些特點使區塊鏈聽起來非常安全,甚至像是個萬無一失的技術。但實際上,針對區塊鏈的攻擊一直都存在,且每次發生,往往會造成巨大的損失。
對於區塊鏈的開發者和使用者來說,了解這些攻擊的原理是至關重要的。預防勝於治療,切莫“頭痛醫頭,腳痛醫腳”。
一、基於對等網絡(P2P)的攻擊
1、日蝕攻擊- 一個節點將選擇“x”個節點作為訪問區塊鏈的基礎,該節點從這“x”個節點獲取區塊鏈的數據。
如果攻擊者可以使得此節點選擇的“x”個節點都為攻擊者可控制的節點,就可以使得被攻擊節點處在一個“孤立”的狀態。被攻擊節點將從主網中被隔離出來,完全由攻擊者控制。
如下圖所示:
2、女巫攻擊- 這裡的“女巫”並不是指擁有魔法的女人,而是出自一部美國電影《Sybil》,劇中的主人公擁有16重人格,扮演著16個不同的角色。而女巫攻擊就是指同一節點偽裝成不同節點發起的一種攻擊。
攻擊者通過偽造的身份,使少量節點偽裝成大量節點,進而影響整個網絡。攻擊者可能利用女巫攻擊進行雙花、實現51%攻擊等,並且要實施日蝕攻擊,一般都會先進行女巫攻擊。
3、異形攻擊-異形攻擊又稱為“地址污染”。
當不同公鏈使用兼容的握手協議時,我們稱這些公鍊為同類鏈。攻擊者將同類鏈的節點數據加入被攻擊的公鏈節點中,當被攻擊的公鏈節點進行通信並互換地址池時,就會污染其他正常節點的地址池,並持續污染整個公鍊網絡,導致公鏈通信性能下降,最終造成節點阻塞等現象。
很多藉鑑以太坊開發的區塊鏈系統,與以太坊使用了相同的通訊算法,它們都屬於以太坊的同類鏈。
二、基於共識和挖礦的攻擊
1、自私挖礦– 區塊鏈的共識機制決定著節點會認同最長鏈才是真實有效的。攻擊者可以在當前最新區塊上持續挖礦但不進行廣播,從而隱藏自己挖出的區塊。
當攻擊者節點隱藏的區塊長於已在鏈上的公佈的最長區塊時再進行廣播,從而成為最長鏈,使得原先的最長鏈進行回滾,從而實現雙花等攻擊。
同時,進行自私挖礦的節點可以比其他誠實節點獲得更大的利益。假設在區塊1的基礎上繼續的挖礦,自私節點挖出“2'”和“3'”,但其並不對外廣播這兩個區塊,並繼續在“3'”的基礎上繼續挖礦,而當其他節點挖出了“2”時,其也對外廣播“2'”,使得鏈上產生分叉,如此繼續,當自私節點挖出較長的鏈並進行廣播時,其可以獲得“2'”到最新區塊的所有挖礦獎勵。
如下圖所示:
2、挖礦木馬– 攻擊者通過上傳惡意程序到公開網絡或者製作蠕蟲病毒等方式將挖礦程序傳播到他人計算機上。
利用他人計算機資源和電力進行挖礦,獲取挖礦利益。被攻擊的計算機會消耗大量的資源,導致電腦卡頓,使用壽命減短。
3、51%算力攻擊– 51%算力攻擊是區塊鏈最著名的攻擊方式之一。
在一個POW共識的區塊鍊網絡中,算力即是權力。當超過50%的算力都由一人控制時,此人就可以任意的撤銷和阻止交易,進而實現雙花。
這種攻擊在大型網絡中較難實現,在小型網絡中發生的可能性更高。在POS共識中與之類似的有幣齡累計攻擊和長距離攻擊。
4、時間劫持攻擊– 一個節點是通過其他節點時間的中位值來確定時間的。
如果攻擊者將一個惡意的節點列表置入被攻擊節點的對等節點列表中,就可以控制此節點的時間,例如通過日蝕攻擊。
被攻擊的節點將不會接收來自正常網絡的出塊。由於這些交易無法提交到實際的區塊鍊網絡,攻擊者便可以對此節點發起雙花等攻擊。
三、基於0確認的攻擊
1、芬尼攻擊– 如果攻擊者可以隱藏一個包含自己交易的區塊,就可能實現一筆雙花。
當一個交易所或其他機構接受0確認的交易時,攻擊者可以向其進行轉賬,花費其隱藏區塊中已經花費的資金,在新交易的區塊廣播前,將隱藏的區塊廣播。
因為所隱藏的區塊時間更早,所以在後面進行的花費將被回滾,從而實現雙花。
2、種族攻擊– 此類型攻擊是“芬尼攻擊”的分支,攻擊者將同時進行兩筆交易,花費同一筆資金,一筆轉給支持0確認的商家進行提現;一筆轉賬給自己,並給予更高的gas。
節點會優先處理gas更高的交易,所以後一筆交易將不會被執行。通常攻擊者會連入與被攻擊商家較近的節點進行操作,使得商家優先收到最終不被執行的交易。
四、寫在最後
區塊鏈中的漏洞導致的代價可能非常之高,尤其是公鏈,任何人都可以匿名的連入公鏈。
而區塊鏈的不可更改性又使得攻擊發生後更難以挽回損失,雖然可以通過硬分叉和軟分叉進行修復,但顯然這不是一個好的方法。因此在實際上線前做好安全審計和是尤為重要的。
來源:成都鏈安科技
更多文章:幣區
聲明:本文為作者獨立觀點,不代表幣區立場,且不構成投資建議。部分內容參照網絡信息,無法保證正確性,請謹慎對待。
留言列表