日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

浅谈几种区块链网络攻击以及防御方案之51#37攻击

發布時間:2023/11/27 生活经验 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 浅谈几种区块链网络攻击以及防御方案之51#37攻击 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

舊博文,搬到 csdn
原文:http://rebootcat.com/2020/04/11/network_attack_of_blockchain_51_attack/

寫在前面的話

自比特幣誕生到現在,比特幣(網絡)經歷過大大小小非常多次的攻擊,尤其在比特幣誕生之初的幾年,并且隨著比特幣價格的一路飆漲,黑客針對比特幣網絡的攻擊就一直沒有停止過。據估算,目前大約有 350 ~ 400 萬比特幣永久丟失,價值大約 240 ~ 280 億美元。當然其中不只有由于黑客的攻擊導致的丟失,畢竟比特幣最初的幾年很多人都沒有意識到比特幣的價值,很多的私鑰都遺失了。

本文就談一下目前幾種區塊鏈網絡攻擊,以及其防御方案。

本文盡量用簡單易懂的白話來描述,也僅代表我個人的看法,歡迎探討

同系列:

  • 淺談幾種區塊鏈網絡攻擊以及防御方案之51%攻擊
  • 淺談幾種區塊鏈網絡攻擊以及防御方案之日蝕攻擊
  • 淺談幾種區塊鏈網絡攻擊以及防御方案之女巫攻擊
  • 淺談幾種區塊鏈網絡攻擊以及防御方案之拒絕服務攻擊
  • 淺談幾種區塊鏈網絡攻擊以及防御方案之其它網絡攻擊

51%攻擊

在了解什么是 51%攻擊前,先簡單科普下區塊鏈的幾個概念,這里主要以比特幣為例作說明。

什么是挖礦?

其實挖礦這個詞描述得有點太過于形象了,以至于弄得反而很生澀。當然區塊鏈世界里還有很多玩概念的東西,背后道理其實反而沒那么復雜。

在比特幣網絡里,大家共同在維護一張賬目表,參與記賬的節點可以稱之為礦工,其中礦工需要做的事情就是拼命競爭記賬的權利,這個競爭記賬權的過程可以稱之為挖礦,當一個節點得到這個記賬權之后,可以描述為這個節點挖到礦了。那么節點為什么會拼命的競爭這個記賬權呢?因為比特幣會對挖到礦的節點有獎勵。這個獎勵是基于區塊高度的,最開始是每個區塊獎勵 50btc,每產生 210000 個區塊為一個減半間隔,減半間隔之后獎勵會減半。比如目前(2020.04)區塊獎勵是 12.5btc。

上面這段話里面有兩個點需要解釋:

  1. 為什么節點要競爭這個記賬權
  2. 區塊高度又是什么

針對第一個問題,如果用比較白話的方式講的話就是,在分布式去信任的系統中,由于有激勵的存在,大家都想拿到這個記賬權,但是這個記賬權在同一時刻(這里用詞不一定表示某一刻,更多的形容相對的同一時刻)只允許其中一個節點拿到,并且由這個節點對交易進行記錄。這樣才能保證這張賬本是唯一的,大家看到的是一樣的賬本。不然大家都來記賬的話,這張賬本就亂了,這就是稱之為 ”共識“ 的由來。

針對第二個問題,很好理解,區塊高度或者說時鐘高度,其實是用來描述一個區塊的序號的,從創世區塊 0 開始依次遞增。不用過分糾結,本身是一個很簡單的東西,或者叫區塊序號更容易理解【手動滑稽】,可以看一下下圖:

我們打開 BTC.com, 可以看到比特幣網絡的一些信息,比如區塊高度,目前最新的已經到了 625408,區塊獎勵是 12.57869736btc。我們選擇一個區塊高度(比如 625400), 可以看到這個區塊的信息:

可以看到這個區塊高度是 625400, 這個區塊里有 243 筆交易,確認數是 9等。這里需要重點關注一下 確認數 這個概念,后面會用到這個概念。

共識

上面提到比特幣網絡里參與記賬的節點競爭記賬權的過程稱為挖礦,那么除了上面拋出來的兩個問題之外,還有一個問題沒有解決。

那就是節點通過什么方式競爭,怎么競爭

競爭的方式就稱之為共識,描述分布式去中心化的系統中大家通過共識算法達成統一某個行為或是認知的這種行為,即大家達成了共識,本次由 A 節點進行記賬,下次由 B 節點進行記賬。

共識算法應該能保證大家能在一定時間內形成共識,同時兼具安全性以及公平性。這樣的話參與記賬的節點才能有機會獲得獎勵,才能鼓勵大家參與這個網絡。

對于比特幣來說,采用的是 POW 作為共識算法,即 Proof Of Work(工作量證明)。工作量證明算法是一種應對拒絕服務攻擊和其他服務濫用的經濟對策。它要求發起者進行一定量的耗時適當的復雜運算,并且這個結果能夠快速被其他節點進行驗證。

比特幣節點需要計算一個 hash,具體過程是對一個隨機數加上交易數據做 hash,然后窮舉這個隨機數,使得 hash 之后的值能滿足一定的條件,比如前綴是 ‘0000’。誰先計算出來,誰就在本次記賬權的競爭中勝出,然后對交易打包,廣播區塊,獲得區塊獎勵。顯然這里的窮舉需要耗費大量的算力,并且計算滿足條件的 hash 值不是一件容易的事,基本上可以保證很難有在同一時刻(相對同一時刻)兩個或者多個節點都找到了這個滿足條件的 hash 值,這也就保證了共識的穩定性。

到這里基本上可以明白一個道理,誰擁有越多的算力,誰得到這個記賬權的概率就越大,獲得的獎勵就會越多

最長鏈原則

區塊鏈世界中有很多概念還是很不好理解的,慢慢來,比如這個最長鏈原則。

在分布式去中心化的系統中,由于網絡傳輸的延遲或者網絡故障等不可預知的一些因素,會導致大家收到的交易或者數據是不一致的。在幾輪記賬之后,勢必會出現一些節點看到的區塊鏈和其他節點看到的區塊鏈不一致。

由于大家看到的區塊鏈不一致,也就是有長有短的區塊鏈。比特幣規定任何礦工在看到更長的區塊鏈的時候,應該立即停止短的區塊鏈上的挖礦,大家共同圍繞這最長的這條鏈進行挖礦。

如果不了解區塊鏈原理的同學可能會一頭霧水,是的,這里的概念還是比較難理解的。下面舉一個例子作為說明:

上圖可以看到在區塊2 之后分叉了,變成了兩條鏈,區塊鏈網絡中的一部分節點看到的鏈是上面這條區塊鏈,另外一部分看到的是下面這條區塊鏈。

礦工在挖礦的時候,或者說節點在做記賬權競爭的時候,需要計算 hash,這里會用到最后一個區塊的信息,當挖到區塊的時候,新產生的區塊里會記錄上一個區塊的一些信息,這樣就把整個區塊就串起來了,形成一條鏈。

假設 A 節點看到的是上面一條鏈,并且基于這條鏈進行挖礦,在挖礦的過程中收到了下面一條鏈的區塊7 的數據包,校驗發現這個區塊的高度相比自己的區塊6’ 更高,也就是說收到了一條新的更長的區塊鏈,那么誠實的礦工應該馬上停止正在進行的基于區塊6‘ 的挖礦,轉而基于區塊7 進行挖礦。一定時間之后上面這條鏈就廢棄了,網絡中沒有任何節點會保存這條鏈的信息,大家看到的都是一條最長的區塊鏈。

設想一下,如果 A 節點仍然基于區塊6’ 進行挖礦,那么即便挖到了區塊,收到的獎勵最后也會無效。

這里可能會有人有疑惑,為什么要制定這個最長鏈原則?大家為什么又要遵守這個規則?從安全角度講,最長鏈原則更安全,更難推翻重寫;從其他角度講,這個規則就是區塊鏈世界里的公理,而公理就是指對一些基本的假定,比特幣就是這么規定的,不用過分糾結。

細心的同學可能會注意到上面的一個問題,A 節點放棄自己的鏈,那么這條鏈從區塊3‘ 開始到區塊6’ 里面的數據是不是都無效了?里面的交易呢?

答案是的,里面的交易都無效了,因為一個區塊是對一堆交易的打包,而對于同一筆交易來說,轉賬發起方會把這筆交易廣播給所有人,也就是對于一筆交易來說,每個礦工都可能會收到這條交易并且放到自己的交易池。那么針對作廢的區塊3‘ 到區塊6’ 里面的交易,雖然在這條鏈上無效了,但是這些交易也會被其他節點看到,說不定已經被其他節點挖到區塊并且記錄到下面這條區塊鏈里了。所以針對某筆交易來說,并沒有丟失。

何為51%攻擊


在通過上述文章的講解之后,明白了 ”挖礦“ 的概念,”共識“ 的概念以及 ”最長鏈原則“ 的概念。接下來可以正式開始介紹 51% 攻擊了。

51% 攻擊是指如果攻擊者擁有全網 51% 的算力,那么他就能夠利用算力優勢搞一些動作。這里的 51% 是一個概稱,實際上運氣好的話可能不需要這么多的算力就能發動 51%攻擊,比如 45%算力就有成功的可能性。

那么我們來探討下攻擊者會利用 51%攻擊做什么事?

雙花攻擊或者做空比特幣

攻擊者擁有全網超過 51% 算力之后,首先是成功挖礦的概率增大了,由于成功挖礦的概率增大,那么攻擊者就能夠對挖到的區塊進行修改。假設攻擊者是理性的,為了利益考慮,那么他會修改區塊中關于自己的交易記錄,以便雙重支付,區塊中其他的交易,由于沒有發起者的簽名,攻擊者是不能夠去修改的,也就是說攻擊者沒法做到把別人的幣轉給自己。

具體做法就是把自己的幣轉到交易所,賣出后出金提現,然后利用 51% 攻擊去修改這筆交易,轉到自己的另外一個錢包地址中,由于有算力優勢,并且遵循最長鏈原則,那么之前轉到交易所的交易記錄被認為是無效的,區塊鏈中記錄的是后面這筆交易。也就是同一筆錢花了兩次,最終損失的是交易所。這里不一定是交易所,也可能是其他人或者商家等。

但是雙花是有可能被檢測出來的,還記得上文提到的 “確認數” 嗎?那么確認數是什么?

區塊鏈是由一個個區塊形象的連接在一起,形成鏈狀。當其中某筆交易發生的時候,會被打包到區塊中,然后形成區塊鏈,每追加一個區塊,確認數加 1。計算方法很簡單,用當前最長鏈的最新區塊高度減去某筆交易所在的區塊高度即為確認數。這里需要注意的由于有分叉的可能(參考上面的兩條不同長度的鏈),這筆交易在不同的鏈里面高度是不一樣的,所以正確獲得某筆交易所在的區塊高度是通過交易哈希去獲取的。

比如下圖:

同樣是區塊高度為 625400 的區塊,經過編寫博文這么一段時間來,確認數從 9 變成了 25,說明 625400 這個區塊之后新增加了 14 個區塊。

節點會對區塊進行校驗的,對于雙花攻擊,節點是有可能在 6 個確認周期內發現一筆交易被雙重支付了,從而對交易發起者進行一些懲罰。所以為了預防雙花,一般可以增加確認數,對比比特幣來說, 6 個確認周期是比較合適的。

那么此次成本和收益怎么樣呢?成本就是你需要掌握全網 51% 以上的算力,這個本身就是一個很大的成本;收益就是一筆錢被花費了兩次,那么這筆錢有多少就很關鍵了,如果少的話攻擊者肯定是犯糊涂了才會發起這個 51% 攻擊,如果這筆錢很大呢?在對交易進行驗證的過程肯定也會更加嚴格,包括在交易所出金提現也是會重重驗證,想要快速的脫身恐怕很難。

所以發起 51%攻擊不可能是因為一次雙花攻擊。那么做空比特幣呢?

比特幣遭到 51%攻擊之后勢必會導致比特幣乃至整個加密貨幣市場的市值損失,然后攻擊者通過比特幣期貨做空比特幣獲益。這里其實還是跟獲益的大小有關系,如果獲益比較小,收益都趕不上發起攻擊的成本;如果獲益很大,則在實際操作套現過程中會變得很困難,至少是不順利,風險很大。

上面的討論基于一個假設是攻擊者控制了全網 51% 的算力只持續了一段時間,攻擊者的目的也只是想要發起雙重支付攻擊或者做空比特幣,并且快速套現脫身,那么如果攻擊者控制了全網 51% 以上的算力持續了很長一段時間呢?

摧毀比特幣系統

先說我個人的看法,對比特幣發起 51%攻擊,比特幣系統不會崩潰,而且還能恢復,但比特幣市值就不好說了,甚至整個加密貨幣的市值很可能損失 0 ~ 90% 以上

如果攻擊者擁有超過 51% 以上的算力,實際攻擊的時候肯定不止 51%,比如達到了70% ~ 90%,并且攻擊者控制持續了一段比較長的時間,那么攻擊者能夠反復進行雙花攻擊。實際過程可能是這樣的:

首先攻擊者需要在攻擊發起之前買到一定量的比特幣,或者說擁有一定量的比特幣,那么出售這些比特幣,然后利用算力優勢發起雙花攻擊,抹掉出售自己比特幣的這些交易記錄,相當于自己的比特幣與出售之前沒什么變化,再次出售這些比特幣,然后重復這個過程。

在這個過程中,勢必會引起市場的警覺,導致比特幣價格一路下跌,只要比特幣價格沒有跌倒 0,說明有人還愿意收比特幣,那么這個攻擊就可以持續。直至比特幣歸零或者其他防御解決方案比如硬分叉重新恢復了比特幣網絡。這個時候的加密貨幣市場,肯定是一片哀鴻。

但是從技術層面來講,即便比特幣歸零了,比特幣網絡依然還能夠通過誠實的礦工加入,利用全球閑置的大量算力,重新恢復比特幣網絡。至于比特幣價格,這個不做討論。也就是說 51%攻擊能阻斷或者影響比特幣系統一段時間,但是攻擊停止之后還是能夠恢復的。這里就不得不提 POW 這個共識的優點了。

本來 POW 是消耗了大量的電力來做算力競速的,但是在比特幣系統接近崩潰的時候,只要有算力的加入,整個區塊鏈網絡就能恢復起來。

然而,如果是使用了 POS 的區塊鏈系統,如果發生類似的 51% 攻擊,由于共識算法是以 Stake 作為依據的,那么新節點加入并不能帶來任何起色,整個網絡基本上不可能恢復了。但是這里有個悖論就是擁有 51% 以上 Stake 的攻擊者為什么要發起這個攻擊?導致自己的幣不值錢?真的是人傻錢多,不在乎錢,就想干死這個區塊鏈系統?【黑人問號臉】

51%攻擊悖論

其實上面有提到過,發起 51%攻擊的成本很高,尤其是想持續一段時間的攻擊。那么收益的大小就很關鍵,但是無論怎么算,收益本身并不高并且風險巨大。

相比擁有 51% 算力誠實的參與比特幣挖礦得到的獎勵來說,可能都達不到。而且真實場景下,想要發起 51%攻擊,門檻很高,并且不可能做到無人察覺。

所以這也就是為什么 51%攻擊基本上不可能的原因。但是,,,結合其他的攻擊手段,可以降低 51%攻擊的算力門檻,比如日蝕攻擊,這個在下一篇博文中 淺談幾種區塊鏈網絡攻擊以及防御方案之日蝕攻擊 會做介紹。

寫在最后

關于 51%攻擊,大家基本上只需要了解就行了,對于區塊鏈系統來說,基本上不用擔心這種攻擊,因為有悖論的存在。真正需要關心的是門檻較低,風險較低,收益較高的攻擊。

另外,使用 POW 的缺點是很明顯的,但是在安全方面又有著很獨特的作用,不得不佩服中本聰對比特幣系統的設計!!!

參考

51% Attack

51%攻擊解析

什么是比特幣51%攻擊?

是否僅需一次51%攻擊,比特幣體系即會崩潰?

Blog:

  • rebootcat.com

  • email: linuxcode2niki@gmail.com

2020-04-11 于杭州
By 史矛革

總結

以上是生活随笔為你收集整理的浅谈几种区块链网络攻击以及防御方案之51#37攻击的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。