比特币契约:探索脚本内省与可编程性

admin_bevis_toor 阅读:172 2024-08-30 23:17:03 评论:2

本文是Chakra发表的比特币扩展性系列文章的第三部分,探讨了比特币脚本内省和契约的概念及其重要性。

比特币脚本的内省

比特币脚本被认为限制性极强,仅能进行基本运算,甚至不支持乘法和除法。更重要的是,区块链自身的数据几乎无法被脚本访问,导致灵活性和可编程性严重不足。因此,人们一直在努力让比特币脚本实现内省(introspection),即检查和约束交易数据的能力。

目前,比特币脚本中只有三个主要操作码支持内省:CHECKLOCKTIMEVERIFY、CHECKSEQUENCEVERIFY 和 CHECKSIG,以及其变体。

比特币契约

契约(Covenant)是指对货币转移方式的限制,允许用户指定 UTXO 的分配方式。许多契约都是通过内省操作码实现的,现在被归类到比特币 Optech 契约主题下。

契约操作码提案

CTV (CheckTemplateVerify) BIP-119

CTV 允许输出脚本指定交易中资金支出的模板,包括时间、方法和数量等限制。这些限制通过哈希承诺实现,在资金被花费时,脚本会检查支出交易中指定字段的哈希值是否与输入脚本中的哈希值匹配。

APO (SIGHASH_ANYPREVOUT) BIP-118

APO 为 Tapscript 引入了一种新型签名哈希标志,旨在促进更灵活的支出逻辑。它允许交易动态绑定到不同的 UTXO,而无需承诺已花费的输入 UTXO。

OP_VAULT BIP-345

BIP-345 提议增加两个新的操作码,OP_VAULT 和 OP_VAULT_RECOVER,它们与 CTV 结合使用时,可实现专门的契约,允许用户强制延迟使用特定货币。在此延迟期间,可以通过恢复路径“撤销”之前进行的交易。

TLUV (TapleafUpdateVerify)

TLUV 方案围绕 Taproot 构建,旨在有效解决共享 UTXO 退出问题。它通过引入新的操作码 TAPLEAF_UPDATE_VERIFY 根据当前支出输入创建一个新的 Taproot 地址,并实现部分支出限制。

MATT (Merkleize All The Things)

MATT 旨在通过 Merkleizing the state、Merkleizing the script 和 Merkleizing the performing,实现通用智能合约。它利用 OP_CHECKCONTRACTVERIFY 操作码,通过加密承诺和欺诈挑战机制对执行进行 Merkle 化。

CSFS (OP_CHECKSIGFROMSTACK)

CSFS 从堆栈中接收三个参数:签名、消息和公钥,并验证签名的有效性。它可以实现诸如支付签名、授权委托、预言机合约、双重支付保护保证以及更重要的交易自省等机制。

TXHASH (OP_TXHASH)

OP_TXHASH 是一个简单的内省操作码,允许 operator 选择特定字段的哈希并将其推送到堆栈上。它可以看作是 CTV 的通用升级,提供了更高级的交易模板。

OP_CAT

OP_CAT 是一个简单的操作码,它将两个来自堆栈的元素连接起来。它的多功能性使其能够模拟几乎任何 Covenant 操作码,并有望在比特币上实现信任最小化的 ZK Rollup。

结论

契约是改进比特币的好选择,但社区仍在激烈争论应该采用哪种方法来实现契约。不同的方法有各自的优缺点,需要根据实际应用场景进行选择。

比特币社区正在积极讨论通过软分叉获得 Covenants 的可能性。Starknet 已正式宣布加入比特币生态,计划在 OP_CAT 合并后六个月内在比特币网络上实现结算。Chakra 将继续关注比特币生态的最新动态,推动 OP_CAT 软分叉的合并,并利用 Covenants 带来的可编程性构建更安全、更高效的比特币结算层。

本文 huobi1566.com 原创,转载保留链接!网址:https://huobi1566.com/post/250.html

可以去百度分享获取分享代码输入这里。
声明

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

发表评论
搜索
排行榜