Client

比特幣網路的漏洞

  • April 28, 2020

大家好,我想知道我是否在這裡做了一個錯誤的假設:讓我們假設一個去中心化的點對點網路和比特幣協議。如果一個全節點在一個區塊中更改了一個交易,然後開始尋找一個合適的隨機數來滿足要求並贏得競爭:由於正確的雜湊要求,所有其他節點都將驗證該區塊。這將導致節點可以在收到交易後更改塊內的交易,然後開始他們的工作證明。如果節點最快,所有其他節點都會接受該塊。它是否正確?

更準確地總結問題:在最快的節點為其虛假交易塊找到隨機數後,其他節點是只驗證雜湊值(滿足要求)還是再次驗證塊中的交易?

比特幣資金被鎖定到一個特定的私鑰。為了在交易中花費它們,交易需要使用與每個輸入對應的私鑰進行簽名。簽名送出交易的確切內容。如果另一個使用者更改交易,則簽名不再有效。其他使用者無法生成另一個簽名,因為他們不知道私鑰。

因此,您的方案以以下兩種方式之一失敗:其一,攻擊者創建了一個帶有無效簽名的虛假交易。驗證塊內容的每個其他節點都會注意到無效簽名並拒絕該塊。第二,攻擊者試圖創建一個與原始結果不同的有效交易。他不能,因為他沒有正確的私鑰來生成簽名。

請記住,每個節點都獨立檢查每個事務和每個塊的所有詳細資訊。在本地編輯節點的數據庫或更改節點正在執行的程式碼不會影響其他節點的行為。

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