黑客如何進行區塊鏈51%攻擊(雙重攻擊或雙重花費)

51%攻擊或雙重攻擊是區塊鏈中的礦工或礦工羣體試圖在該區塊鏈上花費兩次數字加密貨幣。他們試圖“雙重花費”,因此得名。這樣做的目的並不總是加倍花費數字加密貨幣,但更常見的是通過影響其完整性來對某個加密數字貨幣或區塊鏈進行攻擊。

這是一個簡單的例子:假設我在豪華車上花了10比特幣。幾天後汽車交付,我的比特幣從我的賬戶轉賬到汽車公司。通過對比特幣區塊鏈進行51%的攻擊,我現在可以嘗試撤銷這種比特幣轉賬。如果我成功了,我將擁有豪華車和比特幣,我還可以再次使用這些比特幣。從自治的民主區塊鏈的角度來看,51%攻擊的概念似乎是顯而易見的,但對其運作方式存在一種常見的誤解。這篇簡短的文章將嘗試對51%的攻擊如何更詳細地進行清晰的解釋。如果你不知道礦工們如何向區塊鏈添加交易,我建議你先閱讀礦工如何通過七個步驟向區塊鏈添加交易,因爲只需要五分鐘的就可以了。如果你不知道區塊鏈是如何工作的,我建議你從這裏開始。

區塊鏈=治​​理

在詳細瞭解51%的攻擊之前,重要的是要了解區塊鏈協議基本上是一種治理形式。區塊鏈管理數據的分類帳,例如交易數據。由於區塊鏈協議可以爲我們管理,我們不再需要第三方來執行此操作,例如政府或銀行。這就是(大多數)區塊鏈去中心化的原因。比特幣區塊鏈的協議基於民主自治制度,這意味着網絡上的大多數參與者(礦工)將決定哪種版本的區塊鏈代表真相。

51%的攻擊如何發揮作用

當比特幣所有者在交易中籤字時,它會被放入未經證實的交易的本地池中。礦工從這些池中選擇交易以形成交易塊。爲了將這個交易塊添加到區塊鏈中,他們需要找到解決非常困難的數學問題的方法。他們試圖使用計算能力找到這個解決方案。這稱爲哈希( 在此處閱讀有關哈希算法的更多信息 )。礦工的計算能力越強,在其他礦工找到解決方案之前找到解決方案的機會就越大。當礦工找到解決方案時,它將與其他礦工一起廣播(連同他們的區塊),並且只有當區塊內的所有交易根據區塊鏈上的現有交易記錄有效時,他們纔會驗證它。請注意,即使是惡意的礦工也永遠不會爲其他人創建交易,因爲他們需要該人的數字簽名才能這樣做(他們的私鑰)。因此,如果不訪問相應的私鑰,就無法從其他人的帳戶發送比特幣。

偷挖採礦——創造區塊鏈的後代

現在要注意了。然而,惡意礦工可以嘗試逆轉現有交易。當一個礦工找到一個解決方案,它應該被廣播給所有其他礦工,以便他們可以在塊被添加到區塊鏈之後進行驗證(礦工達成共識)。然而,惡意礦工可以通過不將其塊的解決方案廣播到網絡的其餘部分來創建區塊鏈的後代。現在有兩個版本區塊鏈。

現在有兩種版本的區塊鏈。紅色區塊鏈可以被認爲是“偷挖”模式。

一個版本正在被無瑕疵的礦工跟隨,一個被惡意的礦工跟隨。惡意礦工現在正在研究他自己的區塊鏈版本,而不是將其廣播到網絡的其他部分。網絡的其餘部分沒有接受這個鏈,因爲畢竟它還沒有被廣播。它與網絡的其他部分隔離。惡意礦工現在可以把他所有的比特幣花在區塊鏈的真實版本上,這是所有其他礦工正在研究的版本。比方說,他把它花在蘭博基尼身上。在真實的區塊鏈上,他的比特幣現在已經用完了。同時,他沒有將這些交易包含在他的隔離版區塊鏈中。在他的孤立版區塊鏈上,他仍然擁有那些比特幣。

與此同時,他仍在挑選區塊,他在隔離版的區塊鏈上自行驗證了所有這些。這就是所有麻煩開始的地方......區塊鏈被編程爲遵循民主治理模式,即大多數。區塊鏈通過始終跟隨最長的(實際上最重的,但不要讓事情太複雜化)鏈來實現這一點,畢竟,大多數礦工比其他網絡更快地將塊添加到他們的區塊鏈版本中( 所以最長鏈=多數 )。這就是區塊鏈確定其鏈條的哪個版本是真實的,以及錢包的所有餘額所依據的。一場比賽現在開始了。擁有最多哈希能力的人將更快地爲他們的鏈接版本添加塊。

競賽——通過廣播新鏈來扭轉現有交易

惡意礦工現在會嘗試將塊添加到他的隔離區塊鏈中,比其他礦工更快地將塊添加到他們的區塊鏈(真實的)。一旦惡意礦工創建了更長的區塊鏈,他就會突然將此版本的區塊鏈廣播到網絡的其他部分。網絡的其餘部分現在將檢測到區塊鏈的這個(惡意)版本實際上比他們正在處理的版本更長,並且根據協議強制它們切換到這個鏈。

惡意區塊鏈現在被視爲真實的區塊鏈,並且此鏈中未包含的所有交易將立即被撤銷。攻擊者之前已經將他的比特幣用在了蘭博基尼上,但這筆交易並沒有包含在他的隱形鏈中,這條鏈現在已經被掌控,所以他現在又一次控制着那些比特幣。他能夠再次花費它們。

這就是一次雙重攻擊。它通常被稱爲51%攻擊,因爲惡意礦工將需要比網絡其餘部分組合更多的哈希能力(因此具有51%的哈希能力),以便更快地將塊添加到他的版塊的區塊鏈中,最終允許他要建立一個更長的鏈條。

那麼比特幣如何防範這種情況呢?

實際上,這些攻擊非常難以執行。如前所述,礦工將需要比網絡其他部分更多的哈希能力來實現這一目標。考慮到比特幣區塊鏈上甚至可能有成千上萬的礦工,惡意礦工將不得不花費大量資金在採礦硬件上與網絡的其他部分競爭。即使是地球上最強大的計算機也無法與該網絡上的總計算能力直接競爭。還有無數其他反對進行51%攻擊的論點。例如,被捕和被起訴的風險,以及電費,租用所有采礦硬件的空間和存儲,覆蓋你的軌道和洗錢。像這樣的操作只是爲了給攻擊者的回報需要付出太多努力,至少在比特幣區塊鏈的情況是這樣的。

其他區塊鏈是否容易受到攻擊?

另一個有趣的故事是,無論執行此類攻擊的難度如何,過去實際上已經發生了多次51%的攻擊。事實上,最近(2018年4月)在Verge(XVG)區塊鏈上進行了攻擊。在這種特定情況下,攻擊者在邊緣區塊鏈協議的代碼中發現了一個錯誤,該錯誤允許他以極快的速度生成新的塊,使他能夠在短時間內創建更長版本的Verge區塊鏈。此示例說明了一個可以觸發51%攻擊的事件,儘管非常罕見,並且通常歸功於協議代碼中的錯誤。一個可靠的區塊鏈開發人員團隊可能會注意到這樣的錯誤,並防止它被濫用。

在檢查這個“工作證明量”POW算法(挖掘算法)時,它告訴我們更多的主動哈希/計算能力可以提高51%攻擊的安全性。儘管像小型山寨幣一樣操作這種算法的較小區塊鏈可能會更容易受到這種攻擊,因爲攻擊者沒有那麼多的計算能力來競爭。這就是爲什麼51%的攻擊通常發生在小型區塊鏈(例如比特幣黃金)上,如果它們發生的話。比特幣區塊鏈以前從未成爲51%攻擊的犧牲品。

ASIC挖掘——增強的採礦硬件

這也帶給我們最近關於區塊鏈的最新熱門話題之一:ASIC挖掘。ASIC採礦是一種由各種早期比特幣礦業公司開發的採礦技術,用於增強採礦硬件,使其更加強大。現在很多業內人士都在爭論ASIC礦工是否會使某些採礦個人或集團過於強大。Monero(XMR)區塊鏈最近實施了一項協議更新,阻止了ASIC挖掘在其區塊鏈上的使用。結果,網絡上的總哈希功率下降了驚人的80% (見下文)!

在ASIC挖掘被阻止後,XMR網絡的計算能力下降了80%!

這表明Monero網絡的功率掌握在ASIC礦工手中。如果網絡上的所有參與者都使用ASIC挖掘硬件,那麼這也不一定是個問題。但問題是,像Bitmain這樣的大型礦業公司被懷疑控制着大量的ASIC採礦業務。即使這些組織也將此技術分發給個人,但他們可能只是在自己長期使用它之後才這樣做。區塊鏈中的一些人爭論這是否會使他們太強大。理想情況下,區塊鏈應由儘可能多的個體礦工管理。這就是讓它更加去中心化的原因。

看看Bitmain位於中國內蒙古的採礦設施。

另一個大型採礦設施。

======================================================================

分享一些以太坊、EOS、比特幣等區塊鏈相關的交互式在線編程實戰教程:

  • java以太坊開發教程,主要是針對java和android程序員進行區塊鏈以太坊開發的web3j詳解。
  • python以太坊,主要是針對python工程師使用web3.py進行區塊鏈以太坊開發的詳解。
  • php以太坊,主要是介紹使用php進行智能合約開發交互,進行賬號創建、交易、轉賬、代幣開發以及過濾器和交易等內容。
  • 以太坊入門教程,主要介紹智能合約與dapp應用開發,適合入門。
  • 以太坊開發進階教程,主要是介紹使用node.js、mongodb、區塊鏈、ipfs實現去中心化電商DApp實戰,適合進階。
  • C#以太坊,主要講解如何使用C#開發基於.Net的以太坊應用,包括賬戶管理、狀態與交易、智能合約開發與交互、過濾器和交易等。
  • EOS教程,本課程幫助你快速入門EOS區塊鏈去中心化應用的開發,內容涵蓋EOS工具鏈、賬戶與錢包、發行代幣、智能合約開發與部署、使用代碼與智能合約交互等核心知識點,最後綜合運用各知識點完成一個便籤DApp的開發。
  • java比特幣開發教程,本課程面向初學者,內容即涵蓋比特幣的核心概念,例如區塊鏈存儲、去中心化共識機制、密鑰與腳本、交易與UTXO等,同時也詳細講解如何在Java代碼中集成比特幣支持功能,例如創建地址、管理錢包、構造裸交易等,是Java工程師不可多得的比特幣開發學習課程。
  • php比特幣開發教程,本課程面向初學者,內容即涵蓋比特幣的核心概念,例如區塊鏈存儲、去中心化共識機制、密鑰與腳本、交易與UTXO等,同時也詳細講解如何在Php代碼中集成比特幣支持功能,例如創建地址、管理錢包、構造裸交易等,是Php工程師不可多得的比特幣開發學習課程。
  • tendermint區塊鏈開發詳解,本課程適合希望使用tendermint進行區塊鏈開發的工程師,課程內容即包括tendermint應用開發模型中的核心概念,例如ABCI接口、默克爾樹、多版本狀態庫等,也包括代幣發行等豐富的實操代碼,是go語言工程師快速入門區塊鏈開發的最佳選擇。

匯智網原創翻譯,轉載請標明出處。這裏是原文黑客如何進行區塊鏈51%攻擊(雙重攻擊)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章