Full-Node

礦工在接受區塊鏈之前使用什麼算法來驗證廣播解決方案中的單個交易?

  • May 3, 2022

如果工作量證明是一種防止惡意節點添加錯誤區塊的共識算法,那麼當礦工通過隨機數猜測成功確認欺詐區塊(即包含雙花交易或其他欺詐交易的區塊)時,實際上會發生什麼?為了讓礦工擴展“正確”的區塊,必須有某種方法來驗證廣播解決方案中的單個交易。如果驗證只是檢查相同的輸入(交易、隨機數等)是否導致相同的雜湊,那麼就沒有方法可以區分包含錯誤交易的塊和只包含真實交易的塊。在決定放棄他們目前正在處理的區塊之前,礦工使用什麼算法來驗證廣播解決方案中的單個交易?

完全驗證節點已經解析了完整的區塊鏈,以便自主確定一組未使用的交易輸出 (UTXO)。當這樣一個完整的節點了解一個新塊時,它會檢查塊頭是否格式正確,然後驗證每筆交易。交易驗證的一部分是確認交易花費的所有 UTXO 都可用於花費(並且只花費一次)。塊還必須滿足其他一些規則

區塊驗證規則 (注:我還沒有驗證比特幣維基上的這篇文章是否是最新的)

如果一個區塊不符合任何單一規則,任何全節點都會辨識這一點並拒絕該區塊。這在 2019 年 7 月 10 日發生在 AntPool 上,當時他們發布了一個區塊,該區塊獲得的區塊獎勵超過了允許的範圍(在規則截圖中突出顯示)。AntPool 做了這項工作,但該塊無效並立即被網路拒絕。

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