區塊鏈通常被認為是高度安全的,但它們提供的安全級別與支持網絡的哈希功率的大小成正比。礦工越多,採礦硬體越強大,就越難對網絡進行攻擊。在本文中,我們將涵蓋大部分公共區塊鏈上最常見的攻擊情形。
在我們進入不同的攻擊場景之前,我們想向您介紹一種思想實驗,即拜佔庭將軍的問題,該問題在幾個世紀以來一直未解決,直到區塊鏈技術被引入,聲稱已經解決了它。
想像一下,幾個世紀前你是一名將軍,你想用你的軍隊攻擊一座城堡,城堡非常強大,軍隊內部強大。你已經安排了許多其他軍隊來支援這次襲擊,而且每支軍隊都會從不同的方面進行攻擊。軍隊之間的距離是相距幾英裡的距離。如果他們同時攻擊,那麼勝利的機會非常高。如果攻擊不協調,那麼你很可能會遭受失敗。
拜佔庭將軍問題
你作為將軍有以下問題:你如何確保所有軍隊同時進攻。換句話說,如何在攻擊時間達成共識?你不能用旗幟,火把或煙霧給出信號,因為這些信號可以被敵人拾取。
你可以在馬背上派信使,但是如果他們中的一個人在到達友方的將軍之前被俘或被殺了怎麼辦?要知道其他將軍收到了這條消息,你可以讓他們發回一個信使來確認。派遣出去確認的信使也可以在返回途中被捕獲或殺死。其他將軍不知道你是否收到他們的確認,所以你必須發出2次確認信使,但如果這些信使被抓獲怎麼辦?即使沒有冒充者傳遞欺詐性信息和叛徒,但如果因攻擊有風險,需確認以不採取行動,這種情況也被認為是無法解決的。沒有人能夠絕對肯定地知道其他將軍是否打算同時攻擊與否。
區塊鏈技術聲稱已經解決了這個問題。
每個將軍現在都有一個事件分類帳,這些事件總是與其他將軍的分類帳同步,而且沒有中央方負責協調。每次開採一個區塊,所有參與者都會同意最近幾分鐘的事件順序。回到我們一般的問題,現在他們有辦法知道他們是否都要攻擊,或者他們是否應該集體撤退。
批評者可能會指出,工作證明區塊鏈並非真正的拜佔庭容錯,因為共識沒有終極性。交易的確認越多,或者更一般地說,塊中包含的信息越多,該信息最終的概率就越高。但總有小概率會發生分叉,而另一個不同的長鏈將取代舊的。如果您不熟悉最長鏈規則,請查看我們關於共識機制/挖掘的文章。
查看具有大量哈希率的PoW區塊鏈,例如比特幣區塊鏈,在一個區塊之後有一個分叉的機會,只要在它有6個最少確認數就會被最終認定為一個區塊。在我們關於高級部分51%攻擊的文章中,我們將看一下計算這些機會背後的數學。
現在我們已經討論了共識機制旨在解決的一般問題,讓我們看看一些簡單直觀的攻擊場景以及我們如何解決它們。
計算中的分布式拒絕服務(DDOS)攻擊是一種攻擊,其中犯罪者試圖通過向網絡充斥大量多餘請求以試圖使系統過載,使其用戶無法使用網絡資源。這是一種攻擊不僅是區塊鏈,而且任何在線服務都會受到影響。在一個簡單的形式,DOS(拒絕服務)攻擊,所有這些請求來自同一個來源。這使得它比較容易預防。如果單個IP位址發送了大量因合理原因卻無法證明的請求,您可以採取措施自動阻止此IP位址。在DDOS攻擊的情況下,分布式是指向不同源網絡向外發出大量惡意請求。
DDOS攻擊比較難以解決,因為這樣做需要區分合法和惡意請求。這是一個非常難的問題。在區塊鏈的背景下,這歸結為一個幾乎意識形態的問題。引入交易費的動機是消除垃圾郵件。有些人認為,只要請求附加了交易費,根據定義它們就不能被視為垃圾郵件。我認為,只要請求(在這種情況下是交易)的唯一目的是減慢網絡速度,它仍然可以被視為垃圾郵件。這是一個強烈的主觀觀點,因為無法確定大量交易背後的動機。
Sybil攻擊是通過創建多個虛假身份來嘗試操縱P2P網絡。對於觀察者來說,這些不同的身份看起來像個人用戶,但在幕後,單個實體一次控制所有這些假實體。特別是當您考慮在線投票時,這種類型的攻擊非常重要。我們看到Sybil攻擊的另一個領域是社交網絡,過多假帳戶可以引導公眾的討論。
Sybil攻擊的另一個可能用途是審查某些參與者。許多Sybil節點可以圍繞您的節點,並阻止它連接到網絡上的其他誠實節點。這樣可以防止您向網絡發送或接收信息。
緩解Sybil攻擊的一種方法是引入或提高創建身份的成本。這個成本必須仔細平衡。它必須足夠低,以便不限制新參與者加入網絡並創建合法身份。它同時也必須足夠高,以至於在短時間內創建大量身份變得非常困難。在PoW區塊鏈中,實際對交易打包的節點是挖礦節點。有一個現實世界的成本,即購買礦機的成本,與創建虛假的「採礦標識」相關聯。另外,擁有大量挖掘節點仍然不足以對網絡產生巨大影響。要產生大影響,你還需要大量的算力。換句話說,您需要大型計算機集群。相關的成本使Sybil難以對工作證明區塊鏈發起攻擊。
我們已將高級篇中的有一整篇文章,是專門用於Sybil攻擊以及如何降低它們發生的風險。現在,讓我們繼續討論我們想要介紹的最後一種類型的攻擊。
對公共PoW區塊鏈的最著名的攻擊類型是51%的攻擊。51%攻擊的目標是執行雙重花費,這意味著將硬幣同時花出去兩次。要對區塊鏈網絡執行51%的攻擊,您需要控制網絡的大部分哈希率或計算能力,正如名字一樣,需要控制51%的算力才能發起攻擊。
想要執行雙花攻擊的惡意礦工,他首先創建一個常規交易,再將其硬幣存到交易所,再換成好幣或其它貨幣。這發生在下面的#40區塊中。與此同時,他們將開始私下挖出一條私鏈。這意味著他們將遵循通常的挖掘協議,但有兩個例外。
首先,他們不會將自己的交易打包在自己的私人開採的鏈中。其次,他們不會將他們找到的塊廣播到網絡,因此我們將其稱為私有鏈。
如果他們控制大部分算力,他們的鏈條平均出塊速度將比誠實鏈條快。PoW區塊鏈中的最長鏈規則,也稱為中本聰共識,用於在這種情況下發生的情況。具有更多區塊的分支鏈,被認為是有效鏈。
一旦攻擊者收到用他們的硬幣購買的貨幣或其他貨幣,他們就會將私鏈廣播到整個網絡。所有誠實的礦工將放棄誠實的鏈條,並開始挖掘惡意鏈。攻擊者的交易視為從未發生過,因為攻擊者未將其包含在惡意鏈中。攻擊者仍在控制他們的資金,現在可以再次使用它們。
51攻擊原理過去,許多較小的區塊鏈發生了這種情況。事實上,Horizen在2018年6月初遭受了51%的攻擊。我們立即開始研究解決方案,以防止區塊鏈被51%攻擊,因為這些區塊鏈沒有像比特幣區塊鏈那麼多的計算能力。
我們想出了一個解決延遲塊提交區塊的解決方案。礦工沒有合理的理由同時向網絡廣播幾個區塊。我們的保護機制使這些攻擊非常昂貴。如此昂貴,以至於對我們的網絡進行這樣的雙花攻擊沒有任何經濟意義。許多其他區塊鏈現在正在尋求使用其協議實現類似的保護機制。您可以在官網找到我們防止雙花攻擊的白皮書。
區塊鏈解決了拜佔庭將軍在交易中,不能達成共識的問題。區塊鏈可以通過不同方式受到攻擊。隨著更多的計算能力被添加到網絡並且它變得更加健壯,隨著時間的推移執行這些攻擊變得更加困難。在DDOS攻擊中,犯罪者希望通過向網絡發送大量事務,或垃圾郵件來減慢或停止網絡。在Sybil攻擊中,惡意行為者控制許多假身份,並試圖幹涉在線選舉或操縱P2P網絡中的通信。在51%的攻擊中,控制網絡上大部分計算能力的礦工試圖通過首先編寫區塊鏈的私有版本來花兩次硬幣,然後立即將所有區塊廣播給誠實的礦工。
除了51%攻擊外,本文中介紹的攻擊情形不是區塊鏈的特有情況,並且自分布式對等網絡開始以來一直存在。有許多措施可以降低不同攻擊情形的風險。我們將在高級篇仔細研究它們。我們希望上一篇文章不會讓您對區塊鏈安全性留下錯誤的印象。區塊鏈技術是高度安全的,但與數字領域的其他任何東西一樣,沒有無敵的協議。
END
來源:horizen
本篇內容整理自網絡,版權歸作者所有,如涉及侵權,請聯繫我們
微信:gh_a0331b5276a2