比特币脚本语言 - 第 2 篇

理解比特币脚本的堆栈操作

第一部分中,我介绍了用于常量和推送数据的 Script 操作码。我们正在慢慢接近你将在比特币实际交易中包含的脚本。具体来说,我们必然会在某个时候处理哈希和 ECDSA 签名,这就是为什么 Script 甚至有用于加密函数的操作码。

算术

看看一些常见的算术操作码:

操作码 编码
OP_ADD 93
OP_SUB 94

这两者都是完全基于堆栈的操作,意味着它们不需要显式参数。OP_ADDOP_SUB)弹出堆栈顶部的两个项目并将它们相加(相减)。操作的结果然后再次推到顶部。

示例:

55 59 93 56 94

或者:

OP_5 OP_9 OP_ADD OP_6 OP_SUB

这是堆栈的演变过程:

[]
[5]
[5, 9]
[14]
[14, 6]
[8]

脚本返回 8。

比较

同样,脚本用于交易验证,比较是验证者的主要需求:

操作码 编码
OP_EQUAL 87

OP_EQUAL 弹出并比较堆栈顶部的两个项目,...

剩余50%的内容订阅专栏后可查看

点赞 1
收藏 0
分享

0 条评论

请先 登录 后评论
Davide De Rosa
Davide De Rosa
江湖只有他的大名,没有他的介绍。