本周,@atomicalsxyz发布了AVM虚拟机的最新白皮书。大家可能还记得去年的$ATOM和跨年时的$quark等ARC-20代币。Atomicals协议的AVM白皮书详细介绍了该协议及其对比特币生态的影响。下面我们来分析一下该协议和白皮书的内容。
一、背景
随着比特币生态系统的发展,如Segwit、Taproot、Schnorr、MAST和Taproot Scripts等技术更新的推出,促使新的应用程序的产生。在此基础上,出现了许多比特币代币发行方式,也推动了比特币生态的不断发展。
Ordinals协议的诞生与比特币网络上的satoshi(聪)的概念密切相关。该协议引入了序数(Ordinals)和铭文(Inscriptions)的概念。序数为每个聪分配一个唯一编号,无论聪如何在不同钱包之间转移,其序数始终保持不变。铭文则是通过在聪上刻录信息实现的。结合SegWit和Taproot,Ordinals协议允许在比特币区块链上为每个聪刻录一个小于4MB的文件,即铭文。随着比特币生态的发展,Ordinals的创始人Casey建议使用Runes作为BRC-20的替代方案。相比BRC-20,Runes减少了服务器共识层,变得更加简单,同时不依赖链下数据,也不需要原生代币,非常适合比特币的原生UTXO模型。
而我们要介绍的Atomicals协议的诞生也是巧合。最初,创始人Arthur在Ordinals协议刚发布时,想在其基础上开发一个DID项目,但在过程中发现了一些局限性。随后,在2023年5月份,他在推特上发布了有关协议构思的推文。在去年9月份,该协议正式上线。关于Atomicals中的ARC-20概念,实际上并不是铭文协议,它更像是一种染色币。它将比特币的最小单位sat作为基本”原子”,每个代币单位至少由一个聪单位支持,并根据使用UTXO架构发送和接收比特币的相同规则进行操作。
在追踪历史交易记录和计算当前的ARC-20资产余额时,人们只需检查与ARC-20代币相关的比特币UTXO,无需从链下存储模块中检索额外数据。这是ARC-20与BRC-20协议之间的主要区别,因为BRC-20协议通常依赖链下索引器和链下存储层。ARC-20协议显著降低了索引服务器成本,提高了去中心化程度,并且其转账安全性依赖于BTC网络,不产生冗余交易,同时保持与BTC相同的原子性,适合开发各种原生应用。Atomicals协议不仅仅是想只做资产发行,而是提供更丰富的使用场景,以增强其流动性,并在功能性上进行更多拓展。
二、AVM是什么
比特币最初设计为一种点对点的电子现金系统,具备一定的Script脚本数据存储能力和基本的OP Codes操作码。迄今为止,比特币上的所有覆盖协议都是基于固定或预定义的状态机。所有覆盖协议基本上共享两种状态机:一种用于信号传递以创建数字资产,另一种用于管理这些数字资产的转移。状态机规则本质上是不可更改的,并且硬编码在各自的覆盖协议索引器中,应用开发者无法自定义数字资产的行为。
然而,由于UTXO模型和预定义状态转化规则的限制,这种无状态模型只能处理BTC单一资产的有限管理。为了在比特币网络上新增如BRC20、ARC20、Runes等资产,需要更复杂的动态”状态机”模型来记录这些资产的存储、交易和状态变化。其中一种方法是采用外部协议和Layer 2解决方案,比如之前提到的Nervos Network、RGB、闪电网络等,在链下构建”状态机”模型;另一种方法是直接扩展Script脚本功能,增加新的操作码或存储空间,比如Covenant和OP_CAT等BIP提案。然而,第一种方式在短时间内难以达成共识,而第二种方式存在不确定性。
AVM虚拟机提供了一个介于两者之间的解决方案,它直接在比特币主网上构建虚拟机执行环境,以特殊处理方式实现复杂资产的创建和转移,并允许应用开发者完全自定义和定义其数字资产的任意规则。基本思路是允许开发者将智能合约代码放置在交易的数据段中,以便所有相关方都可以执行。通过将代码存储在区块链上,不同的相关方可以通过以相同方式执行逻辑来轻松同步状态。
三、工作原理
智能合约编程语言应具备以下关键属性:可预测的运行时间、图灵完备性以及在资源受限系统上的高效执行能力。从上述要求来看,比特币脚本非常适合作为定义数字资产创建和转移规则的指令集。智能合约程序代码存储在比特币交易中,覆盖协议索引器执行这些代码以进行各种方法调用和状态转换。所有相关方执行相同的逻辑并达成相同的状态转换,从而形成一种自发的共识。
AVM虚拟机通过模拟比特币虚拟机和脚本解释器来创建和执行各种覆盖数字资产的智能合约。比特币区块链作为时间戳和数据提供者,将智能合约程序存储在链上,但这些程序的执行由覆盖协议索引器在沙盒运行时中进行。覆盖协议索引器节点由应用开发人员、服务提供商和用户共同操作,形成一种新兴的共识:
1、比特币脚本模拟:利用双堆栈PDA实现比特币指令集,具备图灵完备属性;
2、沙盒运行环境:整个模拟机处于受控的隔离环境中,使得沙盒中的执行和之外的执行互不干扰;
3、状态哈希:可以让参与者验证其索引器的状态是否正确同步,防止了潜在的状态不一致攻击。
简而言之,AVM利用当前BTC的有限存储空间和OP Codes处理框架,通过在每笔BTC主网交易中引入一种特殊的编码和解码方式,即沙盒环境,这个沙盒是比特币脚本解释器的精简版本,具有一些显著差异,比如直接接受执行锁定脚本(scriptPubKey)和解锁脚本(scriptSig),以及各种其他数据如代币状态和受保护内存快照。这个环境可以独立完成一整套资产的存储、交易记录等,从而实现复杂的智能合约处理以及状态同步和验证。
四、未来发展
AVM提供了一个能够处理智能合约和dApp的高级执行环境,配备用于增强性能的自定义指令集,同时可以降低Gas费,优化状态转换功能以增加并行处理能力,从而提高吞吐量和可扩展性。同时,AVM实现了互操作性和跨链通信。简而言之,AVM使得Atomicals协议能够执行各种任务,不仅仅是之前简单的代币发行机制。在满足了发行资产、管理资产等需求的基础上,才能真正推动比特币生态的发展,也才会有更广泛的应用和系统架构的实现。
尽管AVM存在一些局限性,例如只能操作ARC20资产,以及在主网出块速度和费率下一层智能合约的可用性仍是未知数,此外,尽管比特币脚本语言设计用于资源受限的环境,复杂智能合约仍可能消耗大量计算资源,执行效率仍有疑虑。但它的出现依然令人兴奋,期待进一步的技术创新突破。