撰文:MiX
编辑:Faust,极客 web3
2024 年 3 月 2 日,Runes 生态基础设施项目 Rune alpha 的创始人,在 Github 的公开议题中,与 Runes 协议创始人 Casey 展开了讨论,双方对如何拓展 Runes 协议的「公开铭刻」机制进行了探讨。话题包括:
- 要不要放宽「公开铭刻」不可预留的要求?
- 指出了采用「公开铭刻」发行方式的 Runes 符文不存在管理权的观点
- 提出了一套基于铭文 NFT 和符文 FT 互相配合的发行机制设想
出于对比特币衍生资产协议的浓厚兴趣,本文作者结合上述 Runes 的一些最新话题,写作了此篇文章,就 Runes 与 Ordinals 协议的过往,以及类似的资产发行方式进行开发性的探索,相信能够对大家了解比特币生态带来帮助。
什么是 Runes 协议
所谓的 Runes 协议,是在比特币网络上发行同质化代币的协议,由 Ordinals 创始人 Casey 在发布 Ordinals 方案后,又重新构建的同质化代币方案,基于比特币 UTXO 的特性而构建,整体的设计思路非常简洁。
值得一提的是,Runes 协议计划在比特币 2024 年减半时(区块高度 840000),也即是今年四月下旬上线主网。现在 Runes 协议仍然处于优化和版本迭代的过程中。
在简要科普 Runes 的原理前,让我们先快速了解下来龙去脉,以及所谓的【公开铭刻】到底代表什么。
Runes 的提出者 Casey 在一开始并没有要做同质化代币协议的 idea,早在 2022 年 12 月时,Casey 就发布了 Ordinals 协议,意图是将 NFT 数据永久上链 Bitcoin,简单说就是将 NFT 元数据像铭文一样,记录在比特币交易的见证数据 witness 中(witness 主要包含数字签名信息),这样就能够将任意形式的内容(如文本、图像等)铭刻在指定的聪上。
(图片来源:https://yishi.io/a-beginner-guide-to-the-ordinals-protocol/)
随后,历史的齿轮开始转动,2023 年 3 月 8 日,匿名开发者@domodata 基于 Ordinals 这个典型的 NFT 发行协议,迂回的搞出一套发行同质化代币的 BRC-20 标准,就是以铭文的方式,对那些需要上传到比特币链上的衍生资产数据,规定出统一的格式和属性(Token 名称、总供应量、单次最大铸造量等),再通过索引器去解析并追踪这些信息,展示出 BRC-20 代币相关的钱包账户和资产数额。
关键来了,BRC-20 的发行,要依赖于 Ordinals 这种比特币铭文 NFT 协议,所以在初始的发行机制上变得和 NFT 铸造过程类似,天然具备「先到先得」的特性,谁先 Mint 谁就拥有,完全不同于以太坊 ERC-20 资产发行时「项目方先部署资产合约,定义资产分配机制,官方想怎么控盘都可以」。
这种Fair Launch的特性,使得大多数人有了公平参与同质化代币初始发行的机会,项目方无预留无锁仓,每个人都可以在资产最初发行的第一时间参与。很快,BRC20 就带来了比特币链上衍生资产的发行热潮,甚至直接启动了这轮牛市。由此可知,我们今天重点讨论的「公开铭刻」的发行方式,对于 Runes 协议而言非常重要。
但 BRC-20 也带来了很多问题:BRC-20 资产的每一次操作,都要在比特币链上发起特定的交易,随着 BRC-20 资产的火爆,比特币 UTXO 数据集也快速膨胀,这使得 BTC 核心开发者对 BRC-20 产生公开质疑。
Ordinals 创始人 Casey 不仅反对 BRC-20,更是对基于 Ordinals 之上发行的 FT 资产不予认可,但是 BRC-20 的火爆,让他觉得虽然 99% 的代币都是骗局和噱头,但这些东西仍会像赌场一样无法消失。
同时,BRC-20 在比特币链上留下了「过多的痕迹」,为比特币节点带来了数据承载上的负担,但如果有人提出一套,能够在上链数据方面「减负」的资产协议,或许能减缓 BRC-20 带来的问题。
所以Casey 决定为比特币构建一种「更好的同质化代币协议」,随后在 2023 年 9 月 25 日,他发布了 Runes 协议的初步构想。
从技术角度看,Runes 协议基于比特币 UTXO 和附加信息而构建,每一笔交易的触发,都要把链下生成的数字签名信息 on chain,我们可以在签名信息中携带特定格式的消息。Runes 协议通过 OP_RETURN 操作码来标记出「特定消息」,这些特定消息就是与 Runes 资产变更相关的信息。
相比于 BRC-20 协议,Runes 优势很多,其中最重要在于:
1.交易步骤简化,且不会生成多余的无用 UTXO,能更好的为比特币节点「减轻负担」。此外,BRC-20 的一笔转账交易仅支持一个接收者和一种代币,而 Runes 支持同时向多个接收者转账,且可转账多种 Runes 代币。
2.资产数据的存储与索引更简洁:BRC-20 的数据以 JSON 格式存储在特定交易的 witness 数据中,且 BRC-20 基于账户模型,资产余额与指定的账户相关联。而 Runes 协议的数据存储在特定交易的 OP_RETURN 字段中,资产的记录方式采用 UTXO 模型,可以直接与比特币链上的 UTXO「同构绑定」。
在确认一个人的 Runes 资产状况时,只需验证这个人拥有的、与 Runes 资产相绑定的特殊 UTXO,虽然还是要追溯部分信息完成计算,但无需像 BRC-20 那样扫描比特币链上的完整 UTXO 集合,这种轻量化的方式对数据索引更友好。
3.与 UTXO 功能拓展层兼容:Runes 基于 UTXO 的设计,使其能够与 CKB、Cardano、Fuel 等基于 UTXO 的功能拓展层更好地兼容。通过类似于 RGB++ 的「UTXO 同构绑定」,上述功能拓展层可以为 Runes 提供智能合约场景。
简要谈完了技术,我们回到本文最开始谈论的发行机制的事情。Casey 为 Runes 符文设计了两套发行方式,即「固定总量」和「公开铭刻」:
1.固定总量就是发行方直接铭刻所有 Runes 符文,然后再进行分发,相对更中心化。
2.公开铭刻就是对 Runes 符文的发行方式设定参数,比如指明一个区块高度或时间戳,在符合规则的时间段内,用户 Mint 了多少资产,最后该符文的总量就是多少。
两种发行方式对应的场景与机制完全不同,下文中我们只聊「公开铭刻」。
事实上,Sondotpin 从 Runes 的 Issues#124 议题中,就开始讨论此话题,并得到了 Casey 的认可。
而 Issues#165 具体内容如下:
- Sondotpin:目前的公开发行,项目方 / 发行方不能提前预留 Runes 符文,这限制了项目方设计优秀通证经济模型的机会。
- Casey:请查看之前的 Issues#124。我正在考虑放宽这个要求,允许发行方在发行时以合理的方式安排符文,甚至超出参数的设定范围。如果这样设计,相关信息会在 Runes 符文的详情页做非常突出的展示。
- Sondotpin:是不是可以设计一个多次发行的机制,比如能有两轮「公开铭刻」Runes 符文,然后每一轮发行设定不同的参数?
- Casey:我并不倾向于这样的做法,因为 Runes 符文本质上并没有「管理者」。发行的权限不应该掌握在有特别权限的单一实体手上。但是你可以在发行符文的时候添加一个铭文,然后在这个铭文的基础上再发行新的符文,这样就可以实现两次发行的符文都是同一个资产。当然,你也可以采用预挖的方式,然后用其他的分配方式进行发行。
如果未来 CTV 的功能能够顺利启动,就不需要协议支持了,CTV 直接可以预先设定条件模板,达到条件后就可以做符合条件设置的空投和公开发行。
围绕 Casey 和 SonPin 的讨论,个人看法:
1.在发起项目的早期,预留部分 Token 确有必要
在早期,项目方想要实现业务的自举,需要有一定的 Token 储备去激励核心团队、凝聚社区。如果可以按照本次讨论去实现协议,是对「公开铭刻」的公平和全民参与价值的补充,可以让更多有价值基础项目方通过「公开铭刻」的方式参与到 Runes 生态中。
2.是否预留、如何预留,是将自证的手段交给发行方
事实上,Casey 曾多次在 Youtube 视频里直言,同质化通证 99.9% 都是骗局,大家也别冠冕堂皇的说自己要改变世界,坦率地承认这是一个充满赌博和投机的行业,以诚相待,对所有人都好。IT’S JUST FOR FUN!
是从 issue#124 到#165,可以看到 Casey 对同质化通证的使用场景有了更多认可。「公开铭刻」的方式勿需质疑,在此基础上进行拓展,比如增加预留机制,是将选择的权利、自证的手段交给发行方,也是防止劣币驱逐良币的好方法。
3.铭文 NFT 和符文 FT 将会有更多的创新空间
Casey 提出的铭文 NFT 和符文 FT 互相配合进行多轮次的发行机制设想,相当有趣。背景知识里我们说到,Ordinals 和 Runes 都是 Casey 设计的协议,应该算是两个平行关系协议,但是在 Github 上都做到 Ord 这个项目里,技术上不少交叉和配合,比如共用了同步区块这类底层逻辑。
当下热点 Runestone 和 Runecoin 等项目,也是铭文和符文互相组合创新。Runecoin 的玩儿法是最主流的铭文预挖矿,持有 Runecoin 发行的 RSIC 铭文,就会持续不断的挖出项目的符文,然后 4 月底 Runes 协议上线再分配 FT。期待未来有更多项目可以推陈出新,带来更新颖的玩儿法。
4.采用「公开铭刻」发行方式的 Runes 符文不存在所有权
Casey 原文中只表达了「Rune 不存在所有权」,但是笔者认为这应该是特指采用「公开铭刻」发行方式的 Runes 符文不存在所有权。SonPin 提出的两轮「公开铭刻」方案,就一定会有一个拥有极高权限的地址的地址来操作,这并不是 Crypto 加密领域希望看到的。
就像项目 Runecoin 在发完 21000 张 RSIC 铭文 NFT 后,很快就将父铭文打到了中本聪地址,相当于没有人能够再次使用,也就是通过技术手段承诺不做增发。这波操作本身就为其带来一大波好评,非常涨路人缘。
PS:什么是父铭文?因为在 BTC 做交互速度慢且 gas 高昂,所以当操作数量比较大的时候,为提高效率,一般会先设置一个父铭文,在父铭文的那一次交易里,直接批量处理多个子铭文,这样可以在交互的时候,节约区块链的存储空间和处理时间。
最后说一下 Casey 提到的CTV,即「Check Template Verify」。
CTV 是一个比特币提议的协议升级,旨在通过允许用户在创建交易时,指定未来交易的模板,从而增强比特币网络的智能合约和锁定功能。CTV 的激活将使得用户能够创建更复杂的交易类型,例如可信赖的空投和开放式蚀刻,而无需协议的显式支持。
这个CTV 提案增加了比特币网络的可编程性和灵活性,在这次讨论中提到,简单来说就是可以创建一个使用 UTXO 的解锁条件模板,有机会给 Runes 创造更多玩法。举个例子,通过「Runes 协议 +CTV」,可以让 10 个用户联合使用 CTV 技术,共同 Mint 符文,然后预设未来的一些比特币支付交易的承诺之类。