Bitcoin-Core

攻擊者如何偽造比特幣區塊以及如何辨識偽造比特幣區塊?

  • February 29, 2020

我讀過一個區塊包含多個比特幣交易,攻擊者可以偽造假區塊。

這些偽造的假比特幣區塊是花費攻擊者挖礦的錢還是只是從攻擊者節點免費生成的?

區塊鏈不受攻擊,因為區塊鏈由 Satoshi 程式以驗證和保留最長的鏈。

所以鍛造塊將從區塊鍊網路中消失。這很棒,但如果攻擊者偽造比特幣區塊會發生什麼?

我什至讀到其中一些鍛造塊可以有 2 到 3 個確認。這是真的?

那麼如何立即辨識這些偽造的比特幣區塊呢?

我假設當您說攻擊者可以偽造塊時,您的意思是不誠實的礦工可以創建無效塊。

答案是否定的,原因很簡單。當礦工的比特幣節點(執行比特幣軟體的電腦)創建一個區塊時,它必須遵循所有的共識規則。例如,假設他試圖用 13 個比特幣和費用創建一個 coinbase 交易。請注意,在撰寫本文時,區塊獎勵為 12.5 比特幣。

然後它找到工作證明並將塊發送到網路的其餘部分。每個收到這個塊的節點都會首先檢查它是否遵循規則。由於沒有,節點將拒絕該塊。因此,它不會被包含在區塊鏈中,礦工只是失去了獎勵。

因此,每個節點都會自行驗證所有內容。沒有節點信任它從其他節點收到的資訊。

我已經讀過……攻擊者可以偽造假塊。

這樣的塊被其他節點丟棄。

如果你閱讀中本聰2008 年的原始比特幣白皮書,你會看到它說

  1. 網路

執行網路的步驟如下:

  1. 新交易被廣播到所有節點。
  2. 每個節點將新交易收集到一個塊中。
  3. 每個節點都致力於為其區塊尋找困難的工作量證明。
  4. 當一個節點找到工作量證明時,它會將區塊廣播到所有節點。
  5. 僅當其中的所有交易均有效且尚未花費時,節點才接受該塊。
  6. 節點通過創建鏈中的下一個塊來表達他們對塊的接受,使用接受塊的雜湊作為前一個雜湊。

請注意那裡的第 5 步。

最初每個節點也是礦工,但現在大多數節點都不是。中本聰預見到了這一點。白皮書描述了簡化支付驗證 (SPV)。

中本聰後來繼續

  1. 計算

我們考慮攻擊者試圖比誠實鏈更快地生成替代鏈的場景。即使做到了這一點,它也不會讓系統對任意更改開放,例如憑空創造價值或拿走不屬於攻擊者的錢。**節點不會接受無效交易作為付款,誠實節點永遠不會接受包含它們的塊。**攻擊者只能嘗試更改他自己的一項交易以收回他最近花費的錢

(我的重點)

最初的白皮書描述了網路如何防禦 51% 和雙花攻擊。值得一讀

引用自:https://bitcoin.stackexchange.com/questions/93528