Transactions

“強制腳本驗證標誌失敗”下的不同錯誤消息。

  • November 7, 2017

我一直在玩原始交易和簽名交易,我注意到錯誤“強制腳本驗證標誌失敗”有兩種變體。

  1. OP_EQUALVERIFY OP 上的腳本失敗
  2. 腳本評估沒有錯誤,但以錯誤/空的頂部堆棧元素結束。

現在,每當我嘗試使用錯誤的 TXID 或索引號發送交易時,似乎都會給出第一個錯誤。當我提供錯誤的簽名時,可能會出現第二個錯誤。

但是,這兩個錯誤不只是執行 OP_EQUALVERIFY 失敗的變體嗎?在評估的哪個步驟拋出每個錯誤,我們可以從中得到什麼?

我將非常感謝您可能擁有的任何指針。我真的很難在這里區分這兩者。

但是,這兩個錯誤不只是執行 OP_EQUALVERIFY 失敗的變體嗎?在評估的哪個步驟拋出每個錯誤,我們可以從中得到什麼?

不,它們是不同的錯誤。這裡必須滿足兩個規則:

  1. 公鑰的雜湊值必須匹配某個值。(這裡的失敗意味著你有錯誤的鑰匙,或者沒有鑰匙。)
  2. 簽名必須對消息和公鑰有效。(OP_CHECKSIG不會立即出錯。它返回 0,這會導致腳本失敗。)

還有其他腳本錯誤。請參閱此列表:https ://github.com/bitcoin/bitcoin/blob/master/src/script/script_error.cpp

我在創建原始交易時遇到了同樣的問題。我收到消息:強制腳本驗證標誌失敗

(Script failed an OP_EQUALVERIFY operation)

我發現背後的問題是我使用與 UTXO 無關的錯誤密鑰進行簽名。我必須使用 dumpprivkey 備份與 UTXO 地址相關的密鑰並用它簽名。

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