主页 > imtoken钱包安装下载 > 【学习笔记】比特币交易脚本
【学习笔记】比特币交易脚本
如前文所述,比特币交易的输出可以“绑定”到接收者的公钥或公钥的散列(数字指纹)。
当这个 UTXO 以后需要消费时,除非提供正确的证明和授权信息(签名),否则无法支付。
通过交易链,任何人都可以验证交易的合法性。
本文记录了与比特币脚本相关的详细信息,并讨论了验证交易的工具。
堆
堆栈是计算机中的一种简单数据结构。您可以将堆栈视为杂志。
堆栈允许两种操作:
可以看到,栈中的元素都是后进先出(LIFO,后进先出)。
基于堆栈的脚本执行
脚本可以理解为对一系列要依次执行的动作和数据的描述。脚本包含两种类型的元素:
例如,定义:
脚本从左到右执行,内容为
2 3 ADD 5 EQUAL
模拟脚本执行的过程。左边的 STACK 代表堆栈的当前状态,EXECUTION POINTER 代表脚本的当前位置。
最后,脚本运行为 TRUE。
比特币的交易脚本正是这种基于栈结构执行的脚本,但它定义了更丰富的操作代码。有关详细信息,请参阅手册。
锁定脚本与解锁脚本
容易想到,
这样,在验证交易时,只需将解锁脚本和锁定脚本连接起来,从左到右依次执行,即可验证签名。如果
该交易被视为有效。
比特币网络只接受有效和合法的交易。
这种设计允许任何人以确定性和一致的结果验证交易。
一般来说,
Locking Script 是一个放置在输出上的密码谜题,它指定了将来花费这个 UTXO 必须满足的条件比特币解的是什么题,并且是交易输出的一部分。锁定脚本通常包含一个公钥或公钥的哈希,通常表示为 scriptPubKey,也称为见证脚本,但锁定脚本的可能性更大。
解锁脚本解决或满足之前放置在此 UTXO 上的加密难题或条件,解锁 UTXO 进行支付是交易输入的一部分。解锁脚本通常包含一个数字签名比特币解的是什么题,通常表示为 scriptSig,但解锁脚本具有更广泛的可能性。
结合不同的操作码可以编写出更加多样化和复杂的脚本来满足不同的使用场景,这也是比特币被称为“可编程加密货币”的原因。
如果 UTXO 上的锁定脚本是
2 3 ADD EQUAL
提供什么样的解锁脚本来花费这个 UTXO?欢迎留言。
总结参考