Script

目前操作碼列表?

  • December 29, 2020

任何人都知道如何/在哪裡執行

enum optypecode

(或其他方法)獲取目前操作碼列表?像這樣的結果… 在此處輸入圖像描述

<https://www.slideshare.net/gvrooyen/20140220-bitcoin/34-We_just_used_4_opcodesenum>

這是 Bitcoin Core v0.14.0 支持的操作碼列表:

<https://github.com/bitcoin/bitcoin/blob/v0.14.0/src/script/script.h#L46L187>

除了查看比特幣的原始碼之外,我認為沒有可以執行的命令。(尋找enum opcodetype

請注意,那裡列出的許多操作碼

  • 被禁用以降低複雜性,( OP_CAT)
  • 根據應用的軟分叉改變含義,(OP_CHECKLOCKTIMEVERIFY並且OP_NOP2具有相同的操作碼)或
  • 在腳本中可能沒有意義。( OP_SMALLINTEGER)

要獲得在不使腳本失敗的情況下實際可以使用的列表,您需要查看實際評估腳本的程式碼。(尋找Bool EvalScript

以下是截至撰寫本文時的合法操作碼列表:

(direct push, opcode 0x01-0x4b)
OP_PUSHDATA1
OP_PUSHDATA2
OP_PUSHDATA4
OP_0-16
OP_TRUE
OP_FALSE
OP_1NEGATE
OP_CHECKLOCKTIMEVERIFY
OP_CHECKSEQUENCEVERIFY
OP_NOP
OP_NOP1-10
OP_IF
OP_NOTIF
OP_ELSE
OP_ENDIF
OP_VERIFY
OP_RETURN
OP_TOALTSTACK
OP_FROMALTSTACK
OP_2DROP
OP_2DUP
OP_3DUP
OP_2OVER
OP_2ROT
OP_2SWAP
OP_IFDUP
OP_DEPTH
OP_DROP
OP_DUP
OP_NIP
OP_OVER
OP_PICK
OP_ROLL
OP_ROT
OP_SWAP
OP_TUCK
OP_SIZE
OP_EQUAL
OP_EQUALVERIFY
OP_NUMNOTEQUAL
OP_1ADD
OP_1SUB
OP_NEGATE
OP_ABS
OP_NOT
OP_0NOTEQUAL
OP_1ADD
OP_1SUB
OP_NEGATE
OP_ABS
OP_NOT
OP_0NOTEQUAL
OP_ADD
OP_SUB
OP_BOOLAND
OP_BOOLOR
OP_NUMEQUAL
OP_NUMEQUALVERIFY
OP_NUMNOTEQUAL
OP_LESSTHAN
OP_GREATERTHAN
OP_LESSTHANOREQUAL
OP_GREATERTHANOREQUAL
OP_MIN
OP_MAX
OP_ADD
OP_SUB
OP_BOOLAND
OP_BOOLOR
OP_NUMEQUAL
OP_NUMEQUALVERIFY
OP_NUMNOTEQUAL
OP_LESSTHAN
OP_GREATERTHAN
OP_LESSTHANOREQUAL
OP_GREATERTHANOREQUAL
OP_MIN
OP_MAX
OP_WITHIN
OP_RIPEMD160
OP_SHA1
OP_SHA256
OP_HASH160
OP_HASH256
OP_CODESEPARATOR
OP_CHECKSIG
OP_CHECKSIGVERIFY
OP_CHECKMULTISIG
OP_CHECKMULTISIGVERIFY

比特幣維基有一個關於這個主題的優秀頁面,如果你想弄清楚比特幣腳本中有什麼可能的話。

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