攻擊者可以用虛假交易淹沒比特幣網路嗎?
我們是在 2050 年。人們對全球銀行系統表現出越來越不信任,並開始過渡到只使用比特幣:大多數公司接受它作為一種支付方式,人們用比特幣結算賬單。即使是路邊拿著檸檬水攤的孩子也接受比特幣作為她的付款方式。
銀行擔心,因為他們正在失去客戶和收入。立法未能保護銀行,較小的銀行已經開始關閉或提供替代服務。
然後,僅存的健康銀行亞特蘭蒂斯銀行和河岸銀行的首席執行官提出了一個計劃:
可以輕鬆檢查交易的雜湊值。為什麼不用大量的虛假交易攻擊比特幣網路!我們將產生如此多的噪音,網路節點將忙於檢查我們的虛假交易而不是真實交易,以至於網路總計算能力的相當一部分將用於檢查虛假雜湊。真正的交易驗證將停止,人們將無法進行任何日常交易。他們將只剩下一個選擇:返回給我們。
這是我的想法:
- 比特幣的區塊鏈規模不斷擴大。
- 更多節點被添加到比特幣網路。
- 節點越來越快。
我預計這會在這次攻擊中產生整體二次效應(在最佳情況下):攻擊者生成和送出虛假交易的成本會更低,但網路拒絕虛假交易的成本也會更低。但是區塊鏈的規模正在增加,因此在某些時候網路將處於不利地位。
以下是我所做的一些粗略計算,假設區塊鏈大小為 15 GB:
- 當今處理器的 SHA256 效率:45 個週期/字節;
- 因此,一條大小為 350 GB 的鏈需要 1.6e+13 個週期才能被拒絕為假貨。
- 1 個核心在 3.5 GHz 下同步,這將需要 4500 秒(1.25 小時)。
我的前提錯了嗎?會不會有一個轉折點,當最大的銀行失去客戶的成本將大於他們發動這種攻擊的成本(完全保密)?網路如何防禦這些攻擊?當然,總是可以向網路添加更多節點以增加費用,但這不會也將客戶轉向銀行(即使攻擊成功)嗎?
您所做的基本假設之一似乎是將所有交易(“假”與否)都添加到區塊鏈中。但事實並非如此。只有有效的交易才能包含在區塊中,從而添加到區塊鏈中。因此,即使一些不良行為者向無效交易發送垃圾郵件,這些交易也不會被添加到區塊鏈並強制新節點同步它們。
此外,節點只會中繼有效的塊和交易。如果它們是無效的,那麼它們將不會被轉發到節點的對等點。此外,節點具有本地拒絕服務保護。如果特定節點發送多個無效交易和塊,則該節點將斷開它們,甚至拒絕接受來自/到該節點的連接(也就是惡意節點被本地節點禁止)。
因此,不良行為者可能會創建連接到許多其他節點的節點並嘗試向它們發送垃圾郵件,但隨著每個人斷開連接並禁止它們,它們會很快發現自己無與倫比。當然,解決這個問題的方法是更改他們的 IP 地址,但這意味著他們必須經常這樣做,只是為了斷開連接和被禁止。以這種方式維持對網路的持續攻擊基本上是不可能的。
最後,不良行為者只能對接受傳入連接的節點執行此操作。僅進行傳出連接的節點不太可能連接到不良參與者節點,至少在它們更改了一次 IP 地址之後是這樣。這是因為僅進行出站連接的節點僅連接到被認為“良好”的節點,其中包括正常執行時間長等內容。因此,不良行為者必須維護一個節點一段時間(因此它的正常執行時間很長)才能從僅出站節點獲取傳入連接。但是一旦他們開始發送垃圾郵件,他們就會像接受傳入連接的節點一樣斷開連接並被禁止。從那時起,節點將不會與它建立出站連接,因為它行為不端或因為它已更改 IP 地址並且新 IP 地址的正常執行時間不長。