Transactions
“強制腳本驗證標誌失敗”下的不同錯誤消息。
我一直在玩原始交易和簽名交易,我注意到錯誤“強制腳本驗證標誌失敗”有兩種變體。
- OP_EQUALVERIFY OP 上的腳本失敗
- 腳本評估沒有錯誤,但以錯誤/空的頂部堆棧元素結束。
現在,每當我嘗試使用錯誤的 TXID 或索引號發送交易時,似乎都會給出第一個錯誤。當我提供錯誤的簽名時,可能會出現第二個錯誤。
但是,這兩個錯誤不只是執行 OP_EQUALVERIFY 失敗的變體嗎?在評估的哪個步驟拋出每個錯誤,我們可以從中得到什麼?
我將非常感謝您可能擁有的任何指針。我真的很難在這里區分這兩者。
但是,這兩個錯誤不只是執行 OP_EQUALVERIFY 失敗的變體嗎?在評估的哪個步驟拋出每個錯誤,我們可以從中得到什麼?
不,它們是不同的錯誤。這裡必須滿足兩個規則:
- 公鑰的雜湊值必須匹配某個值。(這裡的失敗意味著你有錯誤的鑰匙,或者沒有鑰匙。)
- 簽名必須對消息和公鑰有效。(
OP_CHECKSIG
不會立即出錯。它返回 0,這會導致腳本失敗。)還有其他腳本錯誤。請參閱此列表:https ://github.com/bitcoin/bitcoin/blob/master/src/script/script_error.cpp
我在創建原始交易時遇到了同樣的問題。我收到消息:強制腳本驗證標誌失敗
(Script failed an OP_EQUALVERIFY operation)
我發現背後的問題是我使用與 UTXO 無關的錯誤密鑰進行簽名。我必須使用 dumpprivkey 備份與 UTXO 地址相關的密鑰並用它簽名。