脚本使用方法

时间:2022-05-04 23:03:06

在堆栈语言里执行一个脚本,脚本使用方法我们只需要一个堆栈来垒积数据,不需要分配任何内存与变量。因此,堆栈语言中计算相当容易。脚本总共有两类指令:数据指令和工作码指令。数据指令的作用是把数据推到堆栈的最上面;工作码指令则通常是用堆栈顶部的数据作为输入值,脚本用来计算一个函数。

我们现在来一起看一下脚本这段脚本是怎么执行的。图3.6给我们展示了每一条指令执行后的堆栈状态。脚本中的前两条指令属于数据指令,分别是输入脚本(包含在交易的输入项)中的签名和用来验证签名的公钥。我们脚本前面提到过,一看到数据指令,系统就把它堆到堆栈最上面。后面几个指令是输出脚本(包含在上一交易的输出项中)里的指令。首先,我们复制指令OP_DUP,脚本这一步仅仅是将堆栈最上层的公钥复制,并置于堆栈最上层;下一个指令是OP_HASH160,该指令取得堆栈最上层的数据,并计算其哈希值,然后将结果再堆到堆栈最上层。当指令执行完成后,我们脚本将堆栈最上层的公钥替换成了公钥的哈希值。