BTG(bitcoin gold)受到51%攻擊,攻擊者利用雙重支付獲利

FLy_鵬程萬里發表於2018-07-11

知識儲備


什麼是51%攻擊?

攻擊者通過掌握網路50%以上的算力來“主導”公鏈的交易資料,比如使其失效又或是使某個事務被更快確認,並不能篡改。

什麼是雙重支付?

攻擊者將自己的幣向多個地址傳送轉賬交易,但是在區塊鏈中只認排在最前的交易,所以無論傳送多少次,最終只有排在最前的交易被認為是有效的。

51%攻擊+雙重支付組合拳:

攻擊者利用雙重支付傳送兩筆交易,使用自己的幣一個向他人交易,一個向自己轉賬。在和他人交易完畢,完成等價交換之後,攻擊者發動51%攻擊,使其和他人的交易無效,而他人和自己等價交換的物品,卻還在攻擊者手裡。

事件始末


在今年5月19日時,BTG的官網發表了這樣一則公告:


 

 

 

官方表示,在當時此攻擊者已經在攻擊一些確認次數少的交易所了,甚至有交易所表示通過蛛絲馬跡幾乎可以確認此人和曾經攻擊過他們的人是同一人...

官方還公佈了攻擊者的錢包地址:

GTNjvCGssb2rbLnDV1xxsHmunQdvXnY2Ft

GXXjRkdquAkyHeJ6ReW3v4FY3QbgPfugTx

 

我們來看看主鏈上GTNjvCGssb2rbLnDV1xxsHmunQdvXnY2Ft賬戶的資料





從18號起攻擊者不斷向自己轉入大量BTG,而且都上萬。

這是什麼操作?是的,攻擊者在進行51%攻擊...

 

攻擊過程


攻擊者一方面在公鏈上利用自己的BTG進行消費操作,一方面在利用自己的龐大算力創造的平行鏈上進行向自己消費的操作。

當平行鏈比公鏈長的時候,公鏈與平行鏈的分叉點之後的公鏈就被拋棄了,成為了孤塊。

也就是說,攻擊者在公網進行消費的操作也"被"丟失了!鏈上的交易從攻擊者向外消費變成了向自己轉賬...

 

可以這樣理解攻擊者的操作:

  攻擊開始時,攻擊者將執行以下步驟:

  1. 開始挖掘平行與BTG的私鏈,並將自己的幣轉給自己,用龐大的算力保證自己的鏈幣比公鏈更長

  2. 同時在公鏈上,將自己的幣傳送給交易所

  3. 等待足夠的確認之後,交易所接受存款

  4. 快速將BTG換成其他幣並提現

  5. 等待提現成功

  6. 將私鏈釋放到網路,導致整個公鏈重新以攻擊者的私鏈為主鏈。在此鏈上,攻擊者的BTG從未傳送給交易所過。

  由於私鏈比公鏈長,所以現有區塊將被還原,並被私有區塊取代。向交易所轉賬的交易不存在了,被替換為攻擊者向自己轉賬。

 

攻擊者用自己龐大的算力硬生生的把整個區塊鏈的交易資料給扳回來了!

 

以下是51%攻擊導致BTG鏈中留下的多個孤塊:

https://btgexplorer.com/block/0000000023ad92fe3c2cf28f0d64e4eebdfef57f08872edab57398aea8ce0589

https://btgexplorer.com/block/00000000155e2435fee41d84f57f6f9877c534b86c77bf8eeea6e67259da34b3

https://btgexplorer.com/block/0000000024cc17971de3cf0b03f527562093cd5e10ee26562376b1b40df65776

...

會有什麼後果?


  • 幣種市值下跌

  • 整體挖礦難度升高

  • 部分交易失效,其中包括投資者的買入賣出、礦工的獎勵等

 

怎麼預防?


     只能等待區塊確認次數,越高越安全,因為確認次數越多攻擊者要更改這筆交易的成本就更高。(一些交易所因此提高確認次數至20次以上)


相關文章