Segregated-Witness

如何計算 segwit 交易的 txid?

  • July 19, 2019

我很難為最近的交易計算 txid。我在https://github.com/bitcoin/bips/blob/master/bip-0141.mediawiki關注了 bip-141

對於 blk00165.dat (testnet) 中的第一個塊中的第一個事務,當我匯總要散列的所需數據時,我得到以下資訊:

010000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff2303cdb21400fe56ca615bfe8b8804000963676d696e6572343208020000000000000000ffffffff0220f68e11000000001976a91446868f669409e6e744c6a270767cc27e81220ead88ac0000000000000000266a24aa21a9ed5d06bb0f22a0ffa6d7c63f2769b13f917787554e1235f7eed140fe675ee29c050120000000000000000000000000000000000000000000000000000000000000000000000000

我還列印了文件的字節流並且它匹配。但是當我對它進行雙重雜湊時,我得到一個無效的 txid。我錯過了隔離見證交易的東西嗎?

我的程式碼適用於非隔離見證交易,並在第一個區塊的前幾筆交易中進行了測試。

segwit 交易的 txid 的計算方法是首先刪除所有見證人,並將其編碼為傳統符號,然後計算其雙 SHA256 雜湊。

這是唯一可能的方法,因為其他任何東西都不會與舊客戶端兼容(這是軟分叉所必需的)。

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