链上扩展与链外扩展:Bitcoin 可编程性的未来

时间:2024-09-20 编辑: 浏览:(532)

作者:jolestar,Rooch Network创始人 来源:X,@jolestar

Bitcoin 的可编程性扩展方案可分为两个大的方向:链上扩展和链外扩展。

Bitcoin 链上扩展

这个方向一直受限于 Bitcoin 脚本的编程性。Bitvm 这样的方案尝试通过 Taproot 树来模拟电路,实现图灵完备的计算。但 Bitcoin L1 更大的限制在于 Bitcoin 脚本是无状态的。无论计算多复杂,对状态的所有权都只能表达为时间锁、哈希锁、私钥锁,无法表达出“状态锁”,而这是实现复杂应用的前提。

假设把 Bitcoin 的脚本替换成一个图灵完备的虚拟机,其他条件不变,请设计出一个计数器,任何用户发送交易都可以让它加一,这时就会理解这个限制。

这个计数器场景有什么用呢?在典型的打铭文场景下,需要一个计数器来计算资产的总量。如果链上能表达计数器,就不会有打废铭文的情况了。

用通俗的比喻来解释“状态锁”:如果把 Bitcoin 脚本理解成一个对 UTXO 的智能锁,这个智能锁可以通过密码解锁,可以通过指纹解锁,但它内部不能记录脚本执行后的结果,所以无法实现解锁几次后就不能再解锁的功能。

所以链上扩展如果能配合一次性签名设计出仲裁和挑战机制,就已经非常有突破性了。

Bitcoin 链外扩展

既然链上扩展有瓶颈,那只能寻求链外扩展。为了避免 L2/侧链,on-chain/off-chain 的歧义,统称为链外扩展。

链外扩展需要在几个选项之间取舍:

用什么智能合约以及虚拟机。

智能合约里如何读写 Bitcoin 上的状态(数据以及资产)。

交易写到哪里去,如何保证可用性。

例如,在 AVM 的方案里:

选 Bitcoin Script。

通过增加新的 OP code 来实现。

交易写回 Bitcoin L1。

而 EVM 侧链方案一般是:

用 EVM。

通过桥跨资产过去。

用独立的共识网保证。

文章提到了 RoochNetwork,详细介绍其方案如下:

智能合约以及虚拟机:用 Move 以及 MoveVM。

智能合约里如何读写 Bitcoin 上的状态:在 L2 执行 Bitcoin L1 的所有交易,将 Bitcoin 的状态(UTXO/Inscription 等)表达为 Move Object。

这样有几个好处:

智能合约中可以读取到所有 Bitcoin 上的状态(UTXO/Inscription 等),还包括交易和区块头。

L2 的状态可以通过 Object 的动态字段,绑定到 Bitcoin 的状态上(原子绑定),所有权归 Bitcoin 资产的所有者。举几个典型场景:L1 的状态表达地块,L2 上盖房子;L1 的状态表达域名,解析记录在 L2。

通过在 L2 的智能合约中生成 Bitcoin Script 以及 Bitcoin 交易,给交易提供可编程性。

如何保证可用性

RoochNetwork 的交易可用性依赖第三方 DA。因为 Rooch 的方案中,L2 会包含所有 L1 的交易,所以不能再写回 L1,只需要把 L2 状态树的根定期写回 Bitcoin 即可。这样也保证 L2 的交易成本足够低,可以给更复杂的应用提供基础设施。

总结

Bitcoin 生态期待可编程性的扩展方案很久,有各种路线和方案的尝试。Bitcoin L1 的可编程性有限,但它的优势是所有状态都是全局的,不存在合约间的割裂。所以无论任何扩展方案,只要该方案在 Bitcoin 上写了数据,就可以和其他方案进行结合,优势互补,最终会涌现出不一样的生态。

推荐
最新 更多 >
  • 1 Coinbase

    资料来源:Sam CoolingCoinbase 首席执行官布赖恩阿姆斯特朗警告说,美国证券交易委员会的敌对监管方式可能会将加密行业推向美国以外。在接受电视采访时彭博社,阿姆斯特朗表示,几乎所有主要金融中心,包括新加坡、香港、伦敦,以及最近的欧盟,都出台了全面的加密立法,并补充说,如果美国不想落后,也应该效仿。“我认为美国应该发生的事情是,我们需要一个明确的规则手册,这样这个行业才能在这里建立起来