Script

OP_PUSHBYTES 有什麼用

  • May 19, 2021

這個 SCRIPTPUBKEY 是什麼意思:

OP_DUP OP_HASH160 OP_PUSHBYTES_20 xxxxx....xxxxxxxx OP_EQUALVERIFY OP_CHECKSIG

特別是我搜尋了一些關於 OP_PUSHBYTES_X 的文件,它只解釋了該指令的確切作用,但現在為什麼使用它或為什麼它有趣。

感謝您向我指出任何比裸程式碼“更具洩露性”的資源:)

在腳本內部,有時您需要將任意長度的字節壓入堆棧頂部。範例:在腳本簽名後推送公鑰。OP_PushDataX在這些情況下,您使用稱為或OP_PushBytesX告訴解釋器X應將字節數壓入堆棧的特殊運算符。您不會在任何庫中找到這些名稱,因為沒有。基本上,我們將從 0x01 到 0x4b 的任何值解釋為OP_PushDataX運算符。請記住,每個運算符只是一個從 0 到 255 的單個字節,每個字節執行不同的操作。

因此,在您的範例中,這是一個用於 P2PKH 輸出的 scriptPubkey,您希望將公鑰的 Hash160 散列結果(即 20 個字節)推送到堆棧頂部,以便在實際字節之前包含 0x14 (=20 10 )。腳本變為:

OP_DUP OP_HASH160 OP_PUSHBYTES_20 [20_bytes_here] OP_EQUALVERIFY OP_CHECKSIG

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