“铭文”成潮流,比特币要有生态了?
近来,比特币生态正在经历一场有趣而充满创意的变革,从 BRC 20 到 ORC 20,从“巫师”到“青蛙佩佩”,这些生态中的meme让市场完全陷入了FOMO(害怕错过)的状态。与此同时,除了 Ordinals 协议之外,之前被遗忘的比特币铭文协议 RGB 以及各种比特币 Layer 2 项目也成为新的热门话题。不仅如此,一些新兴项目也纷纷涌入,希望能够在构建比特币生态的过程中分享其中的机会,成为这场新叙事的一部分。

比特币铭文(Inscriptions)的技术实质是什么,是在“聪”上面铭刻吗?比特币 L2 是怎么回事?比特币上可以构建生态吗?咱们来扒一扒。
什么是比特币“铭文”
比特币作为一个去中心化的账本,记录着网络中每一笔交易。每次交易提交时,除了基本的交易元数据外,比特币网络还允许在其中添加一串自定义字符,即交易备注。这个交易备注字段最初是“OP_Return”字段,在 Taproot 升级之后,也可以是交易 witness 字段。不论存储在何处,这部分数据都是作为交易的一部分被永久记录在比特币链上。
那么,关于“聪”上的铭刻,实际上是由 Ordinal 协议最早引入的,主要用于发行NFT。在创建 Ordinal NFT 的过程中,你将获得1聪,而这1聪的交易上将铭刻NFT的元数据,使得这1聪与相应的NFT绑定在一起。如果你愿意支付更高的费用,你也可以完整地铭刻NFT的数据,因为witness字段支持铭刻最多4M的内容。

需要注意的是,比特币网络并不会识别 Ordinals NFT 和聪的特殊绑定关系。当你转账这1聪时,比特币网络无法区分它是否与NFT绑定,它仅被视为普通的聪。这意味着在转账时,有可能意外地支付掉这个特殊聪。
众所周知,比特币的账本采用了UTXO(未花费的交易输出)模型,模拟了物理现金的记账方式。账户中并不存放比特币,而是一张张的UTXO,类似一张张纸钞。在支付他人时,如果账户中有多张纸钞,你可以选择使用哪张(即自选UTXO)。此外,你可以用一张纸钞支付一笔交易,也可以组合多张纸钞支付一笔交易。如果要支付的金额小于手中最小纸钞的金额,你还可以将该纸钞一分为二,一部分支付给对方,一部分支付给自己(这就是UTXO模型中常说的“找零”)。
大多数比特币钱包并没有将自选UTXO功能置于显眼位置,而是藏在高级设置中。钱包通常会按照定义好的一套规则自动选择使用哪个或哪几个UTXO来支付。
为了避免将特殊聪错误支付为普通聪,需要进行“客户端验证”。如果钱包支持 Ordinals 协议,支付时将避开特殊聪。如果你尝试转账这1特殊聪,钱包会提醒你正在转账一个NFT。换句话说,支持 Ordinals 协议的钱包客户端负责维护和识别NFT与特殊聪的绑定关系。
RGB 和 Ordinals NFT 的原理相似,都依赖于客户端验证来确认NFT与聪的绑定关系。这本质上是一种链下共识。
BRC 20 代币是在“聪”上铭文吗?
不论是 Ordinals NFT 还是 BRC 20 代币,它们本质上都是在比特币交易中进行铭文操作,而并非直接在“聪”上铭文。不同之处在于,Ordinals NFT 建立了 NFT 与聪的绑定关系,而 BRC 20 代币则没有代币与聪的直接绑定。BRC 20 代币的实现是通过在比特币交易中写入 Jason 格式的状态转换数据来完成的,其中包括了部署、铸造、转账等操作。如下图所示:
任何人都有能力在比特币链上进行铭文操作,不一定需要依赖于特定的客户端。如果有人尝试通过铭文方式 mint 已铸造完毕的 BRC 20 代币,或者尝试 transfer 自己并不真实拥有的 BRC 20 代币,这样的操作将是无效的。然而,比特币链本身并不负责处理这些代码,也不会验证 BRC 20 代币的 mint 或 transfer 操作的有效性。
验证铭文有效性的任务由支持 Ordinals 协议的钱包客户端或浏览器来完成。
可以将 Ordinals 协议理解为将比特币协议作为硬盘,用于记录自身账本,但账本的解释规则是在本地进行,而非在比特币链上。或者采用模块化区块链的思路,认为比特币链只是 BRC 20 代币的数据可用性层(Data Accessibility Layer),而 Ordinals 协议本身则是真正的共识层。这个逻辑与 Celestia 提出的“主权 Rollup”概念非常相似。
BRC 20 与 Ordinals NFT 的区别在于 Ordinals NFT 的转账不依赖于铭文实现,不需要 transfer 函数。只需转移特定聪即相当于转账对应的 NFT。这种结构天然支持闪电网络。而 BRC 20 代币则不与聪直接绑定,通过铭文记录转账信息,需要进行特定的兼容性开发才能支持闪电网络。
“铭文”代币安全吗?
无论是 Ordinals NFT 还是 BRC 20 代币,尽管它们的账本存在于比特币链上,但其共识规则实际上是在链下进行的。因此,“铭文”式代币并不完全共享比特币的安全性。
作为数据可用性层,比特币链并不会对铭文进行任何验证,有效或无效的铭文都会提交上链。比特币链本身无法区分铭文的有效性。因此,尽管比特币上存储了 Ordinals 协议的账本,实际上存储的是一个“脏账本”,其中包含了所有的有效数据,但并非所有被存储的数据都是有效的。对于这个“脏账本”的过滤是通过“客户端验证”来完成的。
这个“过滤规则”,或者说对链上数据有效性的“解释规则”,实际上构成了 Ordinals 协议的本质。只有当 Ordinals 协议所定义的这套规则在社会中形成了强烈的共识时,“铭文”代币才能被认为是安全的。
比特币上可以构建生态吗?
目前,Ordinals 协议主要用于发行代币,但若将铭文系统(规则系统)设计得足够复杂,它有潜力被用于构建 DeFi 应用。Ordinals 协议致力于将规则的复杂性推到极致,甚至可能达到图灵完备,从而实现各种合约逻辑。
然而,我认为这并非是比特币生态的一部分,而是属于 Ordinals 生态。如果其他铭文系统,比如 RGB,也开发了类似的规则系统,那将构建 RGB 生态,而非比特币生态。RGB 生态和 Ordinals 生态之间并不具备互通性,也不能依赖比特币提供互操作性。这感觉有点像以太坊上的一个合约无法访问和调用另一个合约的情况…
比特币L2是什么?
首先要定义一下L2,L2 是指将安全性依附于其他 L1 的链。比特币 L2 就是安全性依附于比特币的链,或者说比特币 L2 是与比特币共享安全性的链。
如果以这个标准来看,Rootstock、Liquid、Stack 都不是比特币的 L2,只能算是比特币的侧链。Stack 宣称在下一个版本的更新中会实现与比特币的共享安全性,但没有披露具体方案。
目前各种宣称是比特币 L2,事实上是侧链的项目提出的各种花里胡哨的方案都没有办法与比特币共享安全性,包括:
把区块头写比特币链上(类似以太坊已经淘汰掉的 Plasma 方案)
用比特币来作为网络质押代币
在比特币链上选举出块人
与比特币链同步出块
激励比特币矿工成为 L2 网络验证者
要与比特币共享安全性并非不可能。想象一下,如果 Ordinals 协议不仅通过比特币链上的铭文存储账本数据,而且将 Ordinals 协议的整个定义数据有效性的规则(即 Ordinals 协议的源码)也放到比特币链上会怎么样呢?在这种情况下,尽管仍然需要通过“客户端验证”来进行一系列操作的验证,但任何参与者都可以通过链上的“规则”和“脏账本”来运行出一个干净的账本,并获得一致的状态转换记录和最终状态。
这种形式并非新概念,而是存储共识范式中的一种,例如 Arweave 提出的 Simple Contract Platform(SCP)。这种方法适用于构建对互操作性要求不高但对性能要求较高的重型应用。Arweave 已经积累多年经验,在其平台上已经有100多个 SCP 应用。
如果要基于比特币去构建 SCP 应用,技术上是可行的,但经济上受到制约,只能构建形态较为简单的应用,因为频繁的在比特币上铭文不是一般的贵。
小结
经过这番讨论,我并不是要完全否定在比特币上构建各种服务的努力。我理解 PoW 支持者对以太坊升级的不满,也理解比特币矿工在减半预期之下寻求增收的需要。比特币网络当然可以通过铭文的方式去创建一些有趣的 meme 代币和收藏品,但故事应该适可而止。在我看来,不应该再将时间浪费在试图在比特币上复制以太坊生态(无论是通过“铭文”的方式,还是采用 L2 的方式)上,因为这并不能为整个 Web3 创造出什么新的价值。
总的来说,在比特币上构建生态相当于以一种成本更高、效果不如以太坊的方式尝试进行那些以太坊原本可以做的事情。在比特币生态中,很难孕育出什么新的创新。虽然我不否认围绕“比特币生态”概念的价格奇迹和致富神话可能会继续存在,但作为长期主义者,我更关注的是能够创造实际价值、拓宽 Web3 使用场景、让 Web 出圈的新叙事。
今天的文章到这里就结束了,喜欢可以点个关注~
欢迎添加葳星进裙学习:zyh123801(进裙观著葳星宫粽号:Cryp晚风)