Signature
使用 0x83 (SINGLE|ANYONECANPAY) 簽名時,tx 雜湊原像中發生了什麼?
我有腳本來創建 P2WPKH 到 P2WPKH 事務(1 個輸入,1 個輸出)並使用 sighash 類型 0x01 SIGHASH_ALL 對其進行簽名。
我需要在 tx 摘要原像中更改哪些欄位才能將簽名轉換為 sighash 類型為 0x83 (SINGLE|ANYONECANPAY) 的簽名?我無法理解 bip_143 中的文件。
作為參考,tx 摘要原像:
序列化的雙 SHA256:
nVersion 事務(4 字節 little endian)
hashPrevouts(32 字節雜湊)
hashSequence(32 字節雜湊)
outpoint(32 字節雜湊 + 4 字節little endian)
輸入的 scriptCode(序列化為 CTxOuts 中的腳本)
此輸入花費的輸出值(8 字節 little endian)
輸入的 nSequence(4 字節 little endian)
hashOutputs ( 32 字節散列)
交易的 nLocktime(4 字節小端)
簽名的 sighash 類型(4 字節小端)
來自 BIP143:
如果未設置 ANYONECANPAY 標誌,則 hashPrevouts 是所有輸入 outpoints 序列化的雙 SHA256;
否則,hashPrevouts 是 0x0000……0000 的 uint256。
您需要的所有詳細資訊都在 BIP 中