Merged-Mining

合併探勘中chain_id的目的是什麼?

  • March 4, 2021

我正在考慮為 coin x 添加合併探勘支持。它的父鏈將是硬幣 b。在查看規範(<https://en.bitcoin.it/wiki/Merged_mining_specification>)和 Dogecoin/Namecoin 來源時,我發現在單個 coinbase 有效負載中支持多個合併探勘的硬幣。沒關係。我還看到給了我一棵 Merkle 樹,這樣我就可以驗證我的硬幣 x 的標頭的雜湊值是否在 b 的塊中。沒關係。鑑於此,我不明白為什麼在合併開採多個硬幣的特定情況下,我會關心 x 在 Merkle 樹中的插槽。為什麼我需要指定一個chain_id?我為什麼要關心我的數據是否返回到與我請求不同的插槽中?為什麼還要請求特定的插槽?在狗狗幣程式碼庫中,它通過 getExpectedIndex 進行驗證(參見<https://github.com/dogecoin/dogecoin/blob/0b46a40ed125d7bf4b5a485b91350bc8bdc48fc8/src/auxpow.cpp#L153>)。這如何增加它的安全性?為什麼不讓區塊創建者將合併開采的硬幣放入 Merkle 樹中,但它認為合適?

我在部落格中找到了答案:

有必要確保礦工不能在同一個子區塊鏈的不同分支上進行挖礦,因為這與底層 Nakamoto 共識機制的規則相衝突,並可能導致雙重支出攻擊。因此,每種加密貨幣都必須指定一個唯一的 ID,該 ID 可用於派生 Merkle 樹的葉子,相應的塊雜湊必須位於其中。

資料來源:https ://alexeizamyatin.medium.com/a-technical-deep-dive-into-merged-mining-5b67706e1a19

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