2024Q1最大赢家 meme币暴涨背
BTC减半在即:解读Runes协议的底层设计机制与局限
作者:十四君
前言
断更许久,终于复耕,我十四君又回来了。
在过去半年里笔者从ETH生态完全转入BTC生态,从应用层转入链底层,看btc、merlin、babylon、xion等L2公链底层,研究Ordinals、brc20、atomical、Runealpha、Runes等铭文符文协议源码。
有些许沉淀,那就继续始终输出吧,笔者将从技术视角给你带来独特见解与市场价值。
1、Runes(符文)是什么?
过去一年,web3最大的叙事莫过于铭文生态的爆发,最初的起点便是Ordinals,是一种为btc上每个聪给予唯一性序号的技术,可拓展阅读:解读比特币Oridinals协议与BRC20标准 原理创新与局限
其核心创始人casey,在去年9月就提交了基础版的Runes代码,但是一直迟迟没有发布主网上线,因此在9月的铭文热潮中,runeAlpha等项目便提前fork了该代码,单独发行了RunesAlpha等协议,虽然有一定抄袭的说法,但是短短数月数亿的总市值增长也让人看到Runes协议的无穷潜力。
那么由Ordinals协议的创始人casey所设计的,官方正版的Runes协议也将在2024.4.20号左右正式官宣上线。且直接上线btc主网,因此各路项目方想要发行Runes资产,各路钱包、NFT/FT交易市场想要支持Runes都将面临区块链行业最难的挑战之一,如何在没有测试网的情况直接冲刺主网!
而官方的Twitter发言更是高度自信~顺带学个新单词:Seppuku
本文,将会系统的梳理符文项目的底层字段变迁,让大家从根本上理解Runes与Brc20、Arc20等FT协议的差异点,对比优缺理性决策参与。
2、比特币上是如何记录额外信息的?
比特币上有两种主流的链下数据附着在链上的方案,铭刻与蚀刻
2.1、蚀刻基础原理
Runes使用的是蚀刻技术,是一种简单直观记录信息到链上的方式:即写入bitc中UTXO(未花费交易)的op-return字段内,从功能在 Bitcoin Core 客户端 0.9 版中开始启用的(14年),OP-RETURN 会创造了一种明确的可验证不可消费型输出,让数据存在区块链上,类似于utxo的输出,但并不可被消费。
在btc的区块链浏览器中可以轻松看到,该笔交易就附着了一个op-return的信息,比如下图:
可以看到,这里的输出#3,其实是游离的,虽然他占据的一个该笔utxo的output的输出位置,但是他是一个闭环的圆矩形,这就说明他是不能被再次转移消费的,所以他就像是一个交易的备注区一样,就留在了比特币的存储空间上,通过交易哈希区索引找到他。
细心的你可能会发现, 为什么OP_RETURN的后面有一个RUNE_TEST 这就是将具体内容解码后的结果,点开明细按钮后,就可以找到52554e455f54455354 这样的编码串,其实一串十六进制编码数据,解码后就可以得到RUNE_TEST,同理,明细里还有其他的编码,最终解码后会成为一串字符串,大概是json的格式,从而体现出Runes资产的部署、铸造、发行等等寓意。
2.2、铭刻基础原理
其实Ordinals/brc20等协议中,要嵌入元数据到链上,都是写到交易的见证数据(witness data, witness field)中,这一铭刻铭文过程通过隔离见证(Segregated Witness, SegWit)和“向Taproot支付”(Pay-to-Taproot, P2TR)的方式实现,其中包含了提交(commit)和揭露(reveal)两个阶段也就是最终2笔交易来完成。
其实P2TR是比特币的一种交易输出类型,它是在2021年进行的Taproot升级中引入的,它使得不同的交易条件可以更加“隐私”地存储在区块链中,之所以提升隐私是因为只有在揭示的时候,才能看到具体完整内容。具体来说生成p2tr地址使用的是脚本hash,在花费时提供真正脚本(包含铭文数据),所以为了上传铭文数据,需要先生成一个支付到此脚本生成的p2tr地址的utxo(commit交易),然后花费这个utxo时,需要在见证脚本中提供真正脚本,也就把铭文数据上传到了链上(reveal交易)。
其实Ordinals协议非常好理解,就是在完成这个铭刻过程(commit、reveal)两笔交易都上链后,ordinals协议则定义规定此铭文绑定到了第一个输入的第一个sat上。所以,绑定的过程就是铭刻,绑定到结果就是铭文。
2.3、对比两者数据上链方案
蚀刻:
优点:逻辑简单直观明确,交易成本低,可以不占用全节点内存池。
缺点:限制于80字节长度,需要高度压缩数据编码。
铭刻:
优点:几乎不限制大小,有一定隐私保护能力,有多种玩法(时间锁、工作量证明)等
缺点:交易需要2次上链,导致最终成本较高,commit存续时间长,对全节点内存池压力较大。