脚本指令 | 完整英文 | 十六进制代码 | 指令含义 |
---|
OP_DUP | duplicate | 0x76 | 复制栈顶元素 |
OP_HASH160 | hash | 0xa9 | 弹出栈顶元素,先进行SHA-256哈希,再进行RipeMD160哈希处理,将结果压入栈。 |
OP_EQUALVERIFY | equal verify | 0x88 | 弹出栈顶两个元素,如果内容一致,则返回1,脚本继续执行。否则返回0,脚本中断执行 |
OP_CHECKSIG | check signature | 0xac | 弹出栈顶两个元素,用公钥检查输入中的签名,验证该签名是否是拥有该公钥的用户用其私钥签署的。如果签名符合,则将TRUE(TRUE=1)压入栈顶 |
OP_CHECKSIGVERIFY | check signature | 0xad | 与上一脚本相同 |
OP_CHECKMULTISIG | check multiple signature | 0xae | 用多个公钥检查多重签名的正确性 |
OP_CHECKSEQUENCEVERIFY | check sequence verify | | 用于验证时间锁 |
OP_RETURN | return | 0x6a | 标记交易无效 |
OP_PUSH | push | | 下面多少个字节要被压入堆栈 |
OP_TRUE/OP_1 | true | | 数字1被压入堆栈 |
OP_FALSE/OP_0 | false | | 一个字节空串被压入堆栈 |
OP_IF | if | 0x63 | 如果栈顶的值是TRUE,则执行该语句后内容,删除栈顶值 |
OP_NOTIF | not if | 0x64 | 如果栈顶元素是FALSE,则执行该语句后内容,删除栈顶值 |
OP_ELSE | else | 0x67 | 如果前面的OP_IF,OP_NOTIF未被执行则执行OP_ELSE后面的内容 |
OP_ENDIF | end if | 0x68 | 结束语句 |
OP_1SUB | | 0x8c | 栈顶数据减1 |
OP_1ADD | | 0x8b | 栈顶数据加1 |
OP_NEGATE | | 0x8f | 符号取反 |
OP_ABS | | 0x90 | 求栈顶的绝对值,弹出 x, 压入 x 的绝对值 |
M-N多重签名锁定脚本:
M
<Public Key 1>
<Public Key 2>
...
<Public Key N>
N
CHECKMULTISIG