Signature
簽署多個輸入原始交易 - 算法和 sighash 類型
我有一個未簽名的原始交易:
01000000020dcc23ccdb3665779a7657577cd33c5c0660e969ea2ffaf5438c58306ebc9dd20100000000ffffffff49508924c21b25ee2ff6aed61ccc202793aa992d3e033f12f2bf4a94d6346d010000000000ffffffff0240420f00000000001976a9140d7ca1e17524d6c96209cf503fb053613cecf8f688aca0f703000000000017a91452636ce984783dac880e139fa3b69b4d9be39ab68700000000
我已閱讀以下主題:
這些執行緒解釋了使用 1 個輸入簽署原始交易。
問題
我是否正確理解兩個輸入都將分別簽名?
所以首先,我們簽署第一個,然後簽署第二個。為了簽署一個輸入,我們用scriptPubKey替換這個輸入的scriptSig,它會鎖定這個輸入。另一個的ScriptSig保持空白。
這對嗎?
但是在步驟 13 的兩個執行緒中,事務結束時都附加了一些東西。它被稱為雜湊碼類型
這是什麼?這與附加到簽名的**sighash 類型字節有關嗎?**如果不是如何確定這個值?
對於我上面描述的場景(單獨簽署輸入),正確的 sighash 類型是什麼?這是:0x81(SIGHASH_ALL | SIGHASH_ANYONECANPAY)?還是應該是 0x01 (SIGHASH_ALL)?
我不知道哪個是正確的,因為要簽名的交易包含另一個輸入(沒有設置 scriptSig,但它仍然包含它)。
我是否正確理解兩個輸入都將分別簽名?
是的
所以首先,我們簽署第一個,然後簽署第二個。為了簽署一個輸入,我們用 scriptPubKey 替換這個輸入的 scriptSig,它會鎖定這個輸入。另一個的 ScriptSig 保持空白。這對嗎?
是的
但是在步驟 13 的兩個執行緒中,事務結束時都附加了一些東西。它被稱為雜湊碼類型。這是什麼?這與附加到簽名的 sighash 類型字節有關嗎?
是的
對於我上面描述的場景(單獨簽署輸入),正確的 sighash 類型是什麼?這是:0x81(SIGHASH_ALL | SIGHASH_ANYONECANPAY)?還是應該是 0x01 (SIGHASH_ALL)?
使用 0x01 (SIGHASH_ALL)