1. 程式人生 > >淺談最近流行的三起區塊鏈51%算力攻擊

淺談最近流行的三起區塊鏈51%算力攻擊

很多人可能早就聽說過 51% 算力攻擊,但更多的可能源於各種媒體渠道中“比特幣的缺陷”文章之流。實際上,這個說法並不準確,根據比特幣百科上所描述,這種攻擊被稱為多數人的攻擊(Majority attack),攻擊者在控制全網較多算力時,他將可以做這些事情:

1.逆轉已發出的交易,也就是雙花交易;

2.阻止其他交易的確認;

3.阻止其他塊的挖出。

並且在攻擊者控制全網大於50%算力時,攻擊的成功率將達到100%,而當攻擊者擁有40%算力,在需要6個確認的情況下,攻擊的成功率為50%。近期有三個幣種分別在不同程度上遭到了 51% 算力攻擊,分別是 MonaCoin, Bitcoin Gold 和 Verge ,很碰巧的是,這三個幣種都不同程度地分叉自比特幣。


下面將分別介紹三種貨幣的攻擊詳情。

一、Monacoin

5月18日,Reddit 網友發帖稱 Monacoin 遭受了 51%算力攻擊、自私挖礦攻擊與時間戳攻擊,確切時間發生在5月13日至5月15日 一些支援 Monacoin 交易的交易所,比如 Bittrex, Livecoin 已經關閉了 Monacoin 的充值。行為描述:

自私挖礦攻擊 ( Selfish mining)

根據 Vitalik Buterin(就是釋出了以太坊的那個俄羅斯小夥)在2013年11月4日釋出的文章稱,比特幣網路存在一種自私挖礦攻擊,能讓礦工在理論條件上獲得更高的收益。首先,由於比特幣網路的規則,每個(誠實的)節點只能挖並且傳播它看到的第一個塊,這就是說,如果節點當前有一個塊正在挖,而收到了別人廣播的已成功挖到的同一高度的塊,那麼該節點將立即放棄正在挖的這個塊並繼續跟隨新的塊後面挖掘。自私挖礦攻擊中,當惡意礦工挖到了一個新的塊 B1,不立即廣播,而是接著這個塊挖下一個塊 B2。在這期間如果別人挖出來了,就馬上廣播 B1 到全網,如果挖出了第二個,那就直接廣播出去,這樣惡意礦工的收益就是連續兩個塊,而別人顆粒無收,由於

這種攻擊需要攻擊者擁有25%以上的算力才能將數學期望拉高到與正常挖礦相同或者更高,所以這次攻擊同時也採用了這種行為。

雙花攻擊

攻擊者在公鏈中籤名並廣播一筆交易傳送 Monacoin 到交易所,並同時在自己的私有鏈上廣播一個將 Monacoin 傳送到自己錢包的交易,然後使用大量算力挖掘私有鏈,當交易所確認存款後,立即廣播私有鏈。由於攻擊者擁有大量算力,私有鏈長度總是比共有鏈長,所以最後那些發往交易所的 Monacoin 被回滾了。

出塊變得異常的快

這可能是由於 Monacoin 的異常難度處理機制導致的,攻擊者在短時間內挖出了大量的塊,遠遠大於原來的1.5分鐘出塊時間。


總結

攻擊者將可以回滾充值到交易所的 Monacoin,並且掠取那些原來是誠實礦工的獎勵,此次攻擊導致約導致 90000 美元的損失。

解決方案

Monacoin 的官方開發組建議,將入賬次數提高為 100 個確認數。

二、Bitcoin Gold

5月18日,Bitcoin Gold 交流社群中,MentalNomad 發文稱有人在嘗試進行鍼對交易所的雙花攻擊。

攻擊時間為 高度 528735, 5 月 16 日 10:37:54 UTC 到 高度 529048,5 月 19 日 5:25:40 UTC。

雙花攻擊

攻擊者的兩個錢包:

資金錢包 GTNjvCGssb2rbLnDV1xxsHmunQdvXnY2Ft

挖礦錢包 GXXjRkdquAkyHeJ6ReW3v4FY3QbgPfugTx 

與 Monacoin 類似的,Bitcoin Gold 中攻擊者也將這筆交易同時發給交易所和自己,併成功將自己的私鏈變成最長鏈,從而使得這條鏈重新變為公鏈。值得注意的是,有一筆經過了 22 個確認的交易被成功地雙花攻擊了。

總結

本次攻擊據不完全統計損失了 388,201 個BTG,約為 1860 萬美元,創始人稱已向FBI報案。

解決方案

Bitcoin Gold的開發組稱,正在開發新的 PoW 演算法以替代原有的 Equihash 演算法,他們認為,攻擊的原因之一是因為顯示卡礦機的算力可以被短時間地集中。

攻擊者的鏈

被逆轉的鏈

被逆轉的鏈長度為22

攻擊者向自己的錢包傳送了一筆交易,這筆交易回滾了原來向交易所充值的交易

三、Verge

自從 Verge 在4月4日被爆出遭到 51% 攻擊後,開發組已經緊急更新修復了時間戳攻擊加上51%算力攻擊導致算力下降的漏洞。(詳細分析請看站內文章:http://www.freebuf.com/column/169210.html )然而,攻擊者在5月22日發現了一種新的利用方法——反覆橫跳。


行為描述

攻擊者將4月4日原有攻擊的模式(修改時間戳+算力攻擊)改為交替使用兩種演算法 Scrypt 與 Lyra2re 來重複之前的攻擊。Verge 的難度再次變為幾乎為 0 。


驟然降低的算力

總結

受攻擊的區塊為 2155850 到 2206272,所有塊收益 36808060 XVG 都發給了攻擊者,大約為 1525252 美元。

解決方案

開發組將 2218500 塊後的時間間隔調整為 10 分鐘。

從上面這些攻擊中,我們不難發現,針對這些 PoW 工作量證明進行挖礦的數字貨幣,攻擊者可能已經有一套自己的攻擊體系。然而,這些攻擊的實施都需要大量的算力與成本,有理由相信,攻擊者有一個龐大的團隊,並且做了非常充分的準備,路線規劃與方案實施。

所以,筆者大膽預測,近期發生的攻擊只是試水。在未來攻擊者將會使用相同的方法進行更多的攻擊。由於去年12月火爆的數字貨幣市場誕生的比特幣分叉幣們由於缺乏算力與技術支援,將可能更快地遭到 51% 算力攻擊。一旦遭到攻擊,幣價必然大幅下降,算力見無力可圖必然會撤離,最後導致攻擊者更加容易地攻擊這個幣種,這種惡性迴圈會使得該虛擬貨幣迅速歸零。可以預見的是,在未來,運用其他共識的幣種,比如 PoS 或者 DPoS 必然也會遭受到類似的攻擊,一旦有人開了先例,見到有利可圖的後來者必定蜂擁而上。因此,區塊鏈安全值得大家關心。

相關推薦

最近流行區塊51%攻擊

很多人可能早就聽說過 51% 算力攻擊,但更多的可能源於各種媒體渠道中“比特幣的缺陷”文章之流。實際上,這個說法並不準確,根據比特幣百科上所描述,這種攻擊被稱為多數人的攻擊(Majority attack),攻擊者在控制全網較多算力時,他將可以做這些事情:1.逆轉已發出的交易

osi模型 次握手 四次揮手 ddos攻擊原理

C/S B/S 架構 C:client 端 B:browser 瀏覽器 S:server 端 C/S架構,基於客戶端與服務端之間的通訊 例如:QQ,抖音,快手,微信,支付寶等等 優點:個性化設定,響應速度快 缺點:開發維護成本高,佔用空間,使用者固定 B/S架構:基於瀏覽器與服務端之間的通訊 谷歌瀏覽器

Kotlin():類

ide pos 中一 androi 文件 rri object 淺談 spa 淺談Kotlin(一):簡介及Android Studio中配置 淺談Kotlin(二):基本類型、基本語法、代碼風格 前言:   已經學習了前兩篇文章,對Kotlin有了一個基本的認識,往後

javascript的原型及原型

枚舉 實例對象 ole 技術分享 num code 更改 actions 機制 淺談javascript的原型及原型鏈 這裏,我們列出原型的幾個概念,如下: prototype屬性 [[prototype]] __proto__ prototype屬性 只要創建

沃特森萬融(VAC)積分增值體系的顛覆性應用

分享 tle gin 不同 value ces 0ms 移動通信 conf 從區塊鏈歷史上來說,先誕生了比特幣,當時並沒有區塊鏈這個技術和名詞,然後業界從比特幣中提取了技術架構和體系,稱之為區塊鏈技術。從比特幣提取的區塊鏈技術稱之為區塊鏈1.0時代,那個時候的應用主要以電子

幣圈Telegram ICO籌8.5億美元, 擬建第區塊網絡, 目標以太坊

創新 思路 移動應用 時也 至少 好友 輸入 價格 crypt 據國外媒體報道,幣圈核心即時通訊工具Telegram本周(至2月17日當周)稍早遞交給美國證券交易委員會(SEC)的一份文件顯示,該公司已經通過ICO籌集到8.5億美元資金,用於開發TON開源網絡、研發和維護T

MVC與層架構

級別 ace isp 數據訪問 velocity 映射 領域 mark gmv   mvc: model(模型),view(視圖),controller(控制器)   三層架構:展現層(User Interface layer)、業務邏輯層(Business Logic

ThinkPHP(

實現商品的新增 1、在add.html頁面中更改表單元素的名稱   Goods控制器的add()方法中獲取商品分類   在add.html中迴圈獲取   2、設定提交的位置   3、新增商品程式碼參見GoodsController.class.php

資料庫(

1、SQL查詢 1、distinct : 不顯示欄位的重複值 1、語法 :select distinct 欄位1,欄位2 from 表名; 2、示例 1、表中都有哪些國家 select distinct country from sanguo;

最近幾個月區塊學習的總結

什麼是區塊鏈? 比特幣   一提起區塊鏈,100百個人裡面可能有99個會提到比特幣,有人甚至認為區塊鏈就是加密數字貨幣,這其實是對區塊鏈的一種誤解。區塊鏈技術來源於比特幣。比特幣由中本聰於2008年提出,其目的在於構建完全通過對等技術實現的電子現金系統,中間不需要任何金融機構。中介金

Javaweb經典層架構和MVC框架模式

淺談javaweb三大框架和MVC設計模式 小序:博主以前在學javaweb的時候開始總不理解javaweb三大框架和MVC框架模式,雖然沒有把兩者混為一談,但是也是很暈菜。作為一個Java開發程式設計師的話,特別是B/S架構的開發來說,MVC框架模式是我們必須要掌握的!!

RPA--第章,orchestrator怎麼用?

因為咱們公司用的主要是uipath的產品,因此博主接下來對於這章會針對uipath的相關套件展開討論。 orchestrator,是uipath的一個產品,其主要功能是robot排程,角色許可權控制,流程管理,robot版本管理,config配置,佇列管理等功能。 這樣子

與元道對話區塊經濟正在進行“動力切換”

本文大概4000字讀完共需15分鐘作者簡介:元道,世紀互聯資料中心的創始人、董事長,中關村區塊鏈

雲端計算個層次SaaS/PaaS/IaaS

 根據NIST的權威定義,雲端計算有SPI, 即SaaS、PaaS和IaaS三大服務模式。這是目前被業界最廣 泛認 雲端計算SPI關係圖 同的劃分。PaaS和IaaS源於SaaS理念。PaaS和IaaS可以直接通過SOA/Web Services向平臺使用者提供服務,

最近很火的區塊

最近無論是在技術論壇,還是群分享會,都在熱火朝天地聊著區塊鏈,那麼今天我就自己的理解和大家分享一下什麼是區塊鏈。 不得不聊的比特幣 之所以區塊鏈突然火起來,是因為比特幣在2017年年底突然暴漲,可以看到圖中從11月份開始到12月份的暴漲,加劇了人們對

簡單工作流設計——責任模式配合策略與命令模式的實現

本文以專案中的一個工作流模組,演示責任鏈模式、策略模式、命令模式的組合實現! 流程簡介 最近在做的一個專案,涉及到的是一個流程性質的需求。關於工程機械行業的服務流程:服務任務流程和備件發運流程。 專案之初,需求不是很清晰,算是演化模型吧。先出一個簡單版本,然後根據使用者的

區塊的認識,理解“區塊

        區塊鏈通常被定義為去中心化的分散式記賬系統,該系統中的節點無需互相信任,通過統一的共識機制共同維護一份賬本。         區塊鏈是一種分散式、去中心化的計算與儲存架構。         既然是分散式的資料儲存,那麼在各個節點之間就存在一個數據同步的問題

ActionForward的種重定向

ActionForward是 Struts的核心類之一,其基類僅有4個屬性name / path / redirect / classname。在基於Struts的Web應用程式開發過程中,Action操作完畢後程序會通過Struts的配置檔案struts- config.

XML語言()

這一篇來談一談XML的約束吧,畢竟XML這傢伙太隨意了,無法無天也不是很好,適當的約束起來,對於一個團隊開發中還是有一定的必要的,按照一定的約束來,既能節省一定的時間,也能提高開發效率。先談一談DTD吧,啥叫DTD呢,簡而言之,就是文件型別定義,作用是定義 XML 文件的合

最近的扣扣、微信搶紅包背後的故事

double total=10000;     //紅包金額總數         int num=100;       //紅包總數         double money;      //個人得到紅包裡的金額         double safe_total=50;     //只要紅包沒搶完,每人至少