作者:0xShinChann,加密KOL;翻译:0xjs@金色财经

OP_CAT曾经是被中本聪从BTC脚本语言中删除的操作码,现在它又重新成为社区热议中心(注:OP_CAT是Bitcoin Asia大会期间比特币开发者们讨论最多的)。

作为潜在的升级,它已获得最初的正式指定比特币改进提案(BIP)347。

OP_CAT是一项旨在提升比特币智能合约功能(类似于以太坊)的举措。本文详解OP_CAT是什么、工作机制、有哪些用例、社区有哪些争议等。

1、一些背景知识:OP_CAT是如何出现的

OP_CAT 是比特币中的早期操作码。它最初是由比特币创始人中本聪创建的一种编程快捷方式。但由于担心高内存使用+潜在的安全漏洞,它于 2010 年被删除。 

2023 年 10 月,比特币研究人员 Ethan Heilman 和 Armin Sabouri 提出了比特币改进提案(BIP),建议将 OP_CAT 操作码重新引入比特币脚本语言。

此操作码将允许开发人员在 Tapscript 中构建和评估 Merkle 树和其他哈希数据结构,Tapscript 是用于在 Taproot 升级中启用新交易类型的原生脚本语言。

 2、OP_CAT 理论上如何发挥作用?

(i) 弹出值(Popping Values):首先从堆栈中删除顶部的两项(item)。 

(ii) 连接:然后将这两Item组合起来。如果x1和x2是item,x2是最后添加的item,OP_CAT将把它们连接起来形成x1x2。 

(iii) 推回:然后将新组合的item放回到堆栈的顶部。

但是,如果堆栈上的item少于两个,或者组合item的大小超过 520 字节(这是比特币中脚本元素的限制),OP_CAT 将不起作用。如果通过软分叉启用,它将替换脚本中现有未使用的操作,使其处于活动状态,而无需对网络进行重大更改。

 3、为什么需要OP_CAT?它有什么用?

简化数据处理:OP_CAT 允许合并 Tapscript 中的两个堆栈值。这简化了复杂数据结构的创建+增强了脚本功能。

扩展比特币功能:OP_CAT 引入了比特币中不存在但在以太坊中至关重要的通用功能。这可以简化 L2、DEX + dApp 的开发,使比特币网络具有多功能性。

多签脚本:OP_CAT 可以帮助减少多签脚本的大小,使它们更加高效且不那么繁琐。

促进复杂的合约:OP_CAT 支持金库等高级合约,即使私钥被泄露也能保护资金。

 4、OP_CAT在比特币中作用争议:OP_CAT 完美吗?

这个提案有点争议,因为它影响了比特币作为区块链未来如何发展或不发展的路径。

一个阵营认为比特币应该保持原样,保留其交易 BTC 的核心功能,而另一些人则认为比特币还没有僵化,看到了增强所有新兴的可扩展性解决方案(如桥和L2 )蓬勃发展的空间。

问题的核心是一个关键的决定:比特币是否应该扩展成一个更可编程的公链,或者仍然是一个 P2P 支付结算层。

BIP 347详情请参阅这个地址:https://github.com/bitcoin/bips/blob/master/bip-0347.mediawiki