主页 > imtoken安卓版下载安装 > 【学习笔记】比特币交易脚本

【学习笔记】比特币交易脚本

imtoken安卓版下载安装 2024-01-10 05:13:29

正如上一篇文章所述,比特币交易的输出可以“绑定”到收款人的公钥或公钥的哈希值(数字指纹)。

后面需要消费UTXO时,除非提供正确的证明和授权信息(签名),否则无法进行支付。

通过交易链比特币家园,任何人都可以验证交易的合法性。

本文记录了与比特币脚本相关的详细信息,讨论了用于验证交易的工具。

堆栈

栈(Stack)是计算机中一种简单的数据结构比特币家园,你可以把栈想象成一本杂志。

Imgur

比特币家园_比特币怎么比特币钱包_比特币分叉影响比特币总量

堆栈允许两种操作:

可以看到,栈中的元素是后进先出(LIFO,Last In First Out)。

基于堆栈执行的脚本

脚本可以理解为一系列动作的指令和顺序执行的数据。 脚本包含两种类型的元素:

例如,定义:

比特币家园_比特币怎么比特币钱包_比特币分叉影响比特币总量

脚本从左到右执行,内容为

1个

2 3 加 5 等于

模拟脚本执行的过程。 左边的STACK表示栈的当前状态,EXECUTION POINTER表示脚本的当前位置。

比特币怎么比特币钱包_比特币分叉影响比特币总量_比特币家园

比特币分叉影响比特币总量_比特币怎么比特币钱包_比特币家园

最后,运行脚本的结果为 TRUE。

比特币的交易脚本正是基于栈结构执行的脚本,只是定义了更丰富的操作码。 详情请参考比特币操作码手册。

锁定脚本与解锁脚本

容易想到

这样在验证交易时,只需要将解锁脚本和锁定脚本连接起来,从左到右依次执行即可验证签名。

比特币分叉影响比特币总量_比特币怎么比特币钱包_比特币家园

交易被视为有效。

比特币网络只接受有效和合法的交易。

这种设计允许任何人验证交易并获得确定性和一致的结果。

一般的,

Locking Script 是放置在输出上的密码学谜题,它指定了未来花费这个 UTXO 必须满足的条件,是交易输出的一部分。 锁定脚本通常包含公钥或公钥的哈希值,通常用scriptPubKey表示,也称为见证脚本(Witness Script),但锁定脚本有更广泛的可能性。

比特币怎么比特币钱包_比特币家园_比特币分叉影响比特币总量

解锁脚本(Unlocking Script)解决或满足之前放置在这个UTXO上的加密问题或条件,解锁UTXO进行支付,属于交易输入的一部分。 解锁脚本通常包含数字签名,通常用scriptSig表示,但解锁脚本有更广泛的可能性。

通过组合不同的操作码,可以编写出更加多样化和复杂的脚本来满足不同的使用场景,这也是比特币被称为“可编程加密货币”的原因。

如果 UTXO 上的锁定脚本是

1个

2 3 加等于

应该提供什么样的解锁脚本来花费这个UTXO? 欢迎留言。 ??

总结

参考