跳到主要内容

BRC2.0 元协议

BRC2.0(也称为 brc20-prog)为比特币带来了兼容 EVM 的智能合约。它让开发者可以用以太坊的语言 Solidity 编写合约,并部署它们,使其状态由比特币交易派生而来,不需要单独的链。SUBFROST 把它视为比特币背书价值可以流入的执行环境之一,与 Alkanes 并列。

它是如何运作的

BRC2.0 遵循与 Alkanes 大体相同的模式:状态并非由一条新的区块链持有,而是由一个索引器根据写入比特币交易中的数据派生出来的。

  • 合约部署和函数调用被铭刻(inscribe)为比特币交易中的数据。
  • 索引器读取这些铭文,运行其中嵌入的 EVM 字节码,并在多笔交易之间维护合约状态。

由于执行环境就是 EVM,BRC2.0 直接复用了以太坊的各种约定。合约地址按以太坊的方式,由部署者和一个 nonce 派生得到;函数调用则使用标准的以太坊 ABI 编码(一个四字节选择器后跟若干个 32 字节参数)。实际上,这意味着现有的大部分 Solidity 工具链几乎不需要改动就能使用。

铭文与防抢跑保护

一次部署或调用是通过比特币铭文来承载的,采用先提交后揭示(commit-then-reveal)的流程。天真地看,铭文流程容易受到抢跑攻击:监视内存池的人可能会尝试抢先发布一个竞争性的 reveal。BRC2.0 通过预先构建并预先签名交易,并将它们一并广播来防范这一点,因此在任何内容公开之前,reveal 就已经归属于它合法的创建者了。

BRC2.0 上的 frBTC

frBTC 可以在 BRC2.0 内使用,因此在那里编写的合约可以像持有和转移任何 EVM 代币一样持有和转移比特币背书的价值。这正是让 Solidity 开发者能够在不离开他们已经熟悉的语言和工具链的情况下,构建基于比特币流动性的应用的关键所在。

接下来看什么