在深入了解 51% 攻擊之前,我們有必要先仔細了解挖礦和基於區塊鏈的系統。
比特幣及其底層區塊鏈技術的主要優勢之一是建構和驗證資料的分散式特性。節點的去中心化工作可確保遵守協議規則,並確保所有網路參與者同意區塊鏈的當前狀態。這意味著大多數節點需要定期就挖礦過程、使用的軟體版本、交易的有效性等達成共識。
比特幣的共識演算法(工作量證明)確保了礦工只有在網路節點一致同意其提供的區塊哈希值是準確的情況下(即區塊哈希值證明礦工的工作量足夠並為該區塊的問題找到了有效的解決方案)才能驗證新的交易區塊。
作為一個去中心化帳本和分散式系統,區塊鏈基礎設施可防止任何中心化實體將網路用於自己的目的,這就是為什麼比特幣網路不存在單一權威的原因。
由於挖礦過程(在基於PoW 的系統中)涉及投入大量電力和計算資源,因此礦工的表現取決於其擁有的算力,這通常稱為哈希算力或哈希率。參與挖礦活動的節點有很多,而且分佈在不同的地點,這些節點會相互競爭,因為它們都想成為下一個找到有效區塊哈希值的節點,並獲得新生成的比特幣獎勵。
因此,挖礦能力分佈在世界各地的不同節點上,這意味著哈希率不會由某個單一實體掌握。至少也不應該如此。
但如果哈希率分佈不佳會發生什麼?例如,如果某個實體或組織能夠獲得 50% 以上的哈希算力會如何?可能導致的後果之一就是我們所謂的 51% 攻擊,也稱為多數攻擊。
51% 攻擊是針對區塊鏈網路的潛在攻擊,指單一實體或組織能夠控制大部分哈希率,從而可能擾亂網路。此時攻擊者將有足夠的挖礦能力來故意排除或修改交易的順序。他們還可以在管控網路的情況下撤銷已做出的交易,從而導致雙花問題。
成功的多數攻擊還可以讓攻擊者阻止部分或所有交易被確認(交易拒絕服務),或阻止部分或所有其他礦工挖礦,導致所謂的挖礦壟斷。
另一方面,多數攻擊無法讓攻擊者撤銷其他使用者的交易,也無法讓攻擊者阻止他人建立交易以及將交易廣播至網路。變更區塊獎勵、憑空製造代幣或竊取不屬於攻擊者的代幣也都無法實現。
由於區塊鏈由分散式節點網路維護,因此所有參與者都在達成共識的過程中開展合作。這是區塊鏈的安全性一般較高的原因之一。網路越大,防禦攻擊和資料損壞的能力就越強。
而關於工作量證明區塊鏈,礦工擁有的哈希率越高,為下一個區塊找到有效解決方案的機會就越大。這是真的,因為挖礦涉及無數次哈希嘗試,而更高的運算能力意味著每秒可以嘗試更多次。一些早期礦工加入了比特幣網絡,為其發展和安全做出了貢獻。隨著比特幣作為貨幣的價格不斷上漲,許多新礦工進入該系統,意圖爭奪區塊獎勵(目前設定的獎勵為每區塊 12.5 枚比特幣)。這種競爭的存在是比特幣安全的原因之一。如果不是為了誠實行事並努力獲得區塊獎勵,礦工就不會有動力投入大量資源。
因此,由於比特幣網路的規模較大,51% 攻擊不太可能發生。一旦區塊鏈變得足夠大,單人或團體獲得足夠計算能力來壓倒所有其他參與者的可能性就會迅速下降到極低的水平。
此外,隨著鏈的成長,更改先前確認的區塊會變得越來越困難,因為這些區塊都是透過加密證明連結起來的。基於同樣的原因,一個區塊所獲確認越多,更改或撤銷其中交易的成本就越高。因此,一次成功的攻擊可能只能在短時間內修改最近幾個區塊的交易。
接下來請試想,如果一個惡意實體攻擊比特幣網路並非為了獲得利潤,而只是為了將其摧毀,並且不計代價。那麼即使攻擊者成功破壞了網絡,比特幣軟體和協議也會回應其攻擊,迅速進行修改和調整。這需要其他網路節點達成共識,就這些變更達成一致,但如果情況緊急,該流程可能很快就可以完成。比特幣具有強大的抵禦攻擊的能力,被認為是現存最安全、最可靠的加密貨幣。
雖然獲得比其餘比特幣網路更多的運算能力對攻擊者而言相當困難,但如果是規模較小的加密貨幣,挑戰性就小得多。與比特幣相比,山寨幣擁有的可保護其區塊鏈的哈希算力相對較低。低到足以讓 51% 攻擊實際發生。受過多數攻擊的加密貨幣的幾個著名例子有 Monacoin、Bitcoin Gold 和 ZenCash。