免責聲明:本文不構成任何投資建議。
小編:記得關注哦!
“51%攻擊”是一個充滿着想像力的詞,總讓人有一種刀光劍影看小說的感覺,但其實很多人對這個詞的理解是不太準确的。
最常見的理解是按照這個詞的字面意思:認為隻要算力超過51%,就能對某個系統發動攻擊,這個系統就存在中心化或者被攻破的可能性。
比如,我今天随便查了兩篇相關的文章,分别是這麼說的:
1、當礦池的算力過大,超過全網51%的哈希力,就會發生51%攻擊。
2、51%攻擊,就是有人掌握了全網51%以上的算力之後,就可以像賽跑一樣,搶先完成一個更長的、僞造交易的鍊。比特币隻認最長的鍊。所以僞造的交易也會得到所有節點的認可,假的也随之變成真的了。這是由比特币的共識機制PoW(工作量證明)決定的。
在追究這些說法是不是正确之前,我們先來研究一下到底51%攻擊是指什麼呢?它的概念又是怎麼定義的呢?
事實上,比特币白皮書全文中并沒有出現“51%攻擊”這個詞,不過倒是有過相關的描述,算是最接近對51%攻擊的定義了:
The system is secure as long as honest nodes collectively control more CPU power than any cooperating group of attacker nodes. 隻要誠實的計算節點在總體上比任何一個攻擊群控制更多的計算能力,那麼系統就是安全的。
從這句話可以推論一下,要想一方的計算能力超過另外一方,最好是一方的算力超過50%,比如達到51%時,那它就肯定比另一方多。如果誠實節點擁有51%算力,那系統就是安全的;如果作惡節點擁有51%算力,那它就能對另一方發動51%攻擊,那系統就是不安全的,我估計51%攻擊就是從這裡來的。
江卓爾在《天下大義,當混為一——算力戰》中有專門提到他的定義:
大家都知道 “51%算力攻擊”: 1、攻擊者通過優勢算力,挖掘一條比原鍊更長的攻擊鍊。 2、攻擊鍊向全網廣播後,節點按規則,将接受更長的鍊,丢棄原鍊。 下圖中的直線鍊(上面的藍色鍊和下面的紅色鍊),表示被中立節點接受的主鍊。
下面,我将把51%攻擊拆成“51%”與“攻擊”這兩個詞來分别講解。
一、51%的算力不是絕對的
1、即使沒有51%的算力,比如隻有30%,40%的算力,也能發動“51%攻擊”; 并不是超過了51%的算力,就一定會發動51%攻擊,隻是存在這種可能性。
事實上,即使你隻有30%的算力,你也有可能連續出5-6個塊,也已經可以開始發動很有威脅的“51攻擊”了; 即使你有51%的算力,你也有可能半天出不了一個塊,而攻擊失敗,隻不過長久看來,你出塊的概率等于你算力的權重。
如果把節點分為誠實節點、中立節點、作惡節點的話,那麼你隻需要比誠實節點的算力多即可,而不必一定需要51%的算力。
2、算力隻是這場競賽的一個方面,還有網絡傳播等方面因素。
在出塊有先後的情況下,基本上誰先出塊誰就有很大概率成為最長鍊。
在同時出塊的情況下,誰能更快的傳播到51%的網絡節點并被接受,并在此基礎上進行進一步的擴展和記賬,誰就是最長鍊。
從這個角度說,51%指的不僅是算力,更是指網絡節點的接受度。 從這個角度說,更重要的不僅是51%算力,而是利用優勢算力搶先出塊後的“最長鍊法則”。
當然,這些都是對同一條鍊上的競争而言; 對于已經分裂成不同的兩條鍊而言,比如BCH和BTC,那麼無論其中一條領先多少區塊,都沒有太大意義。
二、算力競争本身并不是攻擊
這裡說的是“51%攻擊”,而不是說的“51%競争”,“51%争奪”。
這兩者有什麼區别呢?
競争是為了從中獲益,而攻擊是為了摧毀這條鍊。
競争是合理的,即使你擁有超過51%的算力,隻要你在規則允許的範圍下,正常出塊,正常挖礦,那麼這就是正常的競争,仍然是以誰先出塊,誰的鍊最長為判斷标準,不能算攻擊。
但是,像在ABC與BSV的算力大戰中發生的事,比如BSV最初的宣傳就是要“用算力摧毀BCHABC”,“讓BCH上兩年沒有任何交易”(雖然最終都沒有達成),這種行為就是明确的攻擊,而不是單純的競争。
一旦51%攻擊達成,某條鍊将被摧毀,攻擊方和防守方都會一無所獲。
這也就是為什麼江卓爾說“攻擊方不管勝負,必然損失攻擊成本,而防禦方有防守優勢,如果獲勝還可以獲得挖礦收入作為補償”的原因。
有人會問,花那麼大的代價,摧毀一條鍊有什麼好處呢?一般來說沒什麼好處,大部分攻擊行為都是弊大于利。一般來說,算力越大越會主動維護整個系統,而這也正是比特币系統内置的博弈論發揮作用的地方。
但在這個案例中,BSV方希望通過摧毀BCHABC,建立自己的BSV正統,這就是摧毀的意義;這也是他曾經說過最終将通過算力戰摧毀BTC,從而統一BTC的原因所在。
三、51%攻擊的本質
總結:無論是中本聰還是江卓爾對51%攻擊的定義,都沒有出現51%這個詞,我個人認為,51%攻擊的更準确的理解是通過優勢算力(并不要求51%)實現對最長鍊的争奪。
畢竟正如白皮書裡面最明确的定義:
Nodes always consider the longest chain to be the correct one and will keep working on extending it. 最長鍊勝出,其它節點在這條鍊基礎上擴展。
原标題:51%攻擊到底是指什麼?
文章來源:蒙特卡羅
,更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!