公開、透明、不可篡改,區塊鏈技術自誕生以來仿佛就帶著碾壓一切網際網路技術的光環,被看做未來極具潛力的一項技術,但是區塊鏈技術同樣也存在著不可忽視的安全隱患。比如,上次文章中提及的DDOS攻擊就是對區塊鏈網絡的一大威脅。除此之外,今天要說的「女巫攻擊」則是對區塊鏈網絡的另一大威脅。
什麼是「女巫攻擊」?
所謂「女巫攻擊」,簡而言之就是一個惡意節點偽裝成多個節點進入P2P網絡中,從而達到控制網絡的目的。如果還不能理解「女巫攻擊」的原理,那麼請想像這樣一個場景:某個網絡論壇發起了一個選舉投票,你利用自己的帳號給你看好的人投了一票,但是因為你無法控制其他投票的人會選誰,所以最終結果是無法確定的。
於是,為了確保自己選的人能夠成功當選,一般人會選擇怎麼做?沒錯,刷票!最簡單的刷票方式就是自己去註冊大量論壇帳號,為自己看好的人去投票。這其實就是「女巫攻擊」的原理,儘管每個帳號顯示的信息都不同,但背後對應的控制者都是同一個人,而這個實際控制者就是所謂的「女巫」。
「女巫攻擊」這個名字來源於小說《女巫(Sybil)》改編的同名電影。電影講述的是一個化名Sybil Dorsett的女人心理治療的故事。她被診斷為分離性身份認同障礙,兼具16種人格,高度精分一枚。
如果區塊鏈網絡中也存在一個如此「高度精分」的惡意節點,那麼同一個惡意節點可以通過偽造ID具有多重身份,就如電影裡的女主角可以分裂出16個身份,其實真實的惡意節點遠比電影女主角還能分。於是,原來需要備份到多個節點的數據被欺騙地備份到了同一個惡意節點(該惡意節點偽裝成多重身份),這時候該惡意節點就會影響到整個網絡,數量達到一定程度後甚至可以輕易控制網絡,這就是區塊鏈網絡中的「女巫攻擊」。
在區塊鏈、加密貨幣領域中,女巫攻擊為什麼如此重要?因為有別於一般論壇上的帶帶風向,在區塊鏈中,如果攻擊者創建了足夠數量的假身分,他可以用多數票壓倒其他真實節點,進而控制區塊,阻止其他用戶進入網絡。這時,如果他想要獲取加密貨幣,便可以輕易地更改交易,或防止交易被確認,輕鬆實現「雙花」。
特別是在中心化的聯盟鏈當中,「女巫攻擊」問題更為棘手。因為聯盟鏈為了提高共識效率,將節點數減少在一定範圍內。就相當於把共識機制變簡單了,於是攻擊也變得簡單了。所以,「女巫攻擊」便成了所有區塊鏈項目研究中,最先要解決的問題。
如何防範「女巫攻擊」?
既然「女巫攻擊」的特點是利用一個節點偽造多重身份信息進入網絡,那麼只要提高節點入網的門檻,就能有效避免「女巫攻擊」。
首先,提高節點入網門檻的有效方法之一就是身份驗證。就好像乘坐火車、飛機需要檢票一樣,任何節點都需要進行身份驗證後才能進入網絡。身份驗證又可以分為去中心化的驗證和中心化的驗證,其中去中心化驗證是指當一個節點要進入網絡時,需要網絡當中已經存在較長時間或者信譽較高的多數節點進行共同驗證,並達成共識。中心化的身份驗證就是通過可靠的第三方節點對每一個新加入的節點進行身份驗證,從而保證網絡免受「女巫攻擊」。
另一種防範「女巫攻擊」的方法是提高惡意節點進行「女巫攻擊」的成本。在區塊鏈的世界裡,這種解決方法通常通過各種「共識機制」來實現。常見的工作量證明(PoW)、股權證明(PoS)等共識機制,都是為了解決這樣的問題而產生的。原理上,它是為了增加攻擊的成本,讓攻擊行為變得無利可圖。
舉例來說,比特幣使用的是工作量證明機制(PoW),也就是你必須去計算區塊的加密哈希(HASH),解開謎題才能擁有產生區塊的權力。如果想進行「女巫攻擊」,去計算HASH(也就是挖礦)所花費的電力、設備等成本將會相當高昂。這就在一定程度上防止了「女巫攻擊」。
此外,還可以通過一種叫做「特徵向量」的方法來防範「女巫攻擊」。所謂「特徵向量」的方法就是限制具有某一特徵的IP節點進入網絡的數量。但是,這種方法很有可能造成誤殺,因為並非來自同一個IP段的節點也可能是惡意節點。在P2P網絡中,儘管可以通過這種特徵向量來區分這個節點是不是偽造的節點,但是這種方式只能有效減少攻擊,並不能完全避免攻擊。所以可能還需要一種更加準確的方式去分析一個節點的行為,區分一個節點。
寫在最後
一般「女巫攻擊」都是以低成本獲取高收益,而且通常會結合其他攻擊手段同時進行。儘管以上的各種防禦方法有一定效果,但近年來還是發生了很多次黑客成功發起攻擊的例子,各類專家目前仍非常努力研究著各種機制,但目前還沒有人設計出絕對完善的解決方案。
本文來源: 金色財經 / 作者:TOP區塊鏈