2024年3月2日,Runes生态基础设施项目Rune alpha的创始人与Runes协议创始人Casey在Github的公开议题中展开了讨论,探讨了如何拓展Runes协议的"公开铭刻"机制。讨论的话题包括:
是否应该放宽"公开铭刻"不可预留的要求?
指出了采用"公开铭刻"发行方式的Runes符文不存在管理权的观点。
提出了一套基于铭文NFT和符文FT互相配合的发行机制设想。
本文作者对比特币衍生资产协议表现出浓厚兴趣,结合了Runes的一些最新话题,写作了一篇关于Runes与Ordinals协议的历史以及类似资产发行方式的开发性探索的文章。相信这篇文章能够帮助大家更好地了解比特币生态系统。
什么是 Runes 协议
Runes协议是在比特币网络上发行同质化代币的方案,由Ordinals创始人Casey在发布Ordinals方案后重新构建而来。它是一种基于比特币UTXO的特性设计的简洁同质化代币方案。
Runes协议计划在比特币2024年减半时(区块高度840000),即今年四月下旬上线主网。目前,Runes协议仍在不断优化和版本迭代中。
在深入了解Runes的原理之前,让我们先简要了解一下其背景和所谓的"公开铭刻"是什么意思。
提出Runes的Casey最初并没有构想做同质化代币的协议。早在2022年12月,Casey就发布了Ordinals协议,旨在将NFT数据永久上链到比特币上。简单来说,就是将NFT的元数据像铭文一样记录在比特币交易的见证数据中(见证数据主要包含数字签名信息),从而能够将任意形式的内容(例如文本、图像等)铭刻在指定的聪上。
随后,历史的车轮开始转动。在2023年3月8日,匿名开发者@domodata基于Ordinals这一典型的NFT发行协议,巧妙地推出了一套发行同质化代币的BRC-20标准。该标准以铭文的形式规定了需要上传到比特币链上的衍生资产数据的统一格式和属性,包括Token名称、总供应量、单次最大铸造量等。然后,通过索引器对这些信息进行解析和追踪,展示出与BRC-20代币相关的钱包账户和资产数额。
关键问题来了:BRC-20的发行依赖于Ordinals这种比特币铭文NFT协议。因此,在初始的发行机制上,BRC-20和NFT铸造过程类似,具备了"先到先得"的特性。谁先Mint谁就拥有,完全不同于以太坊ERC-20资产发行时项目方先部署资产合约、定义资产分配机制、可以控盘的情况。
这种公平启动的特性使得大多数人都有机会公平参与同质化代币的初始发行,项目方无预留无锁仓,每个人都可以在资产最初发行的第一时间参与。很快,BRC-20带来了比特币链上衍生资产的发行热潮,甚至直接启动了一轮牛市。因此,我们今天所讨论的"公开铭刻"发行方式对于Runes协议至关重要。
然而,BRC-20也带来了许多问题:每一次BRC-20资产的操作都需要在比特币链上发起特定的交易。随着BRC-20资产的火爆,比特币UTXO数据集也迅速膨胀,这使得比特币核心开发者对BRC-20产生了公开质疑。
Ordinals创始人Casey不仅反对BRC-20,而且不认同基于Ordinals之上发行的FT资产。但是BRC-20的火爆使他意识到,尽管99%的代币都是骗局和噱头,但这些东西仍然会像赌场一样无法消失。
同时,BRC-20在比特币链上留下了过多的痕迹,为比特币节点带来了数据承载上的负担。然而,如果有人提出一套能够减轻上链数据负担的资产协议,或许能够减缓BRC-20带来的问题。
因此,Casey决定为比特币构建一种更好的同质化代币协议。于是,在2023年9月25日,他发布了Runes协议的初步构想。
从技术角度来看,Runes协议是基于比特币UTXO和附加信息构建的。每笔交易的触发都需要将链下生成的数字签名信息上链。我们可以在签名信息中携带特定格式的消息。Runes协议通过OP_RETURN操作码来标记出与Runes资产变更相关的特定消息。
相比于BRC-20协议,Runes有很多优势,其中最重要的包括:
交易步骤简化,避免生成多余无用的UTXO,有助于减轻比特币节点的负担。此外,BRC-20的一笔转账交易仅支持一个接收者和一种代币,而Runes支持同时向多个接收者转账,且可转账多种Runes代币。
资产数据的存储与索引更简洁:BRC-20的数据以JSON格式存储在特定交易的witness数据中,且BRC-20基于账户模型,资产余额与指定的账户相关联。而Runes协议的数据存储在特定交易的OP_RETURN字段中,资产的记录方式采用UTXO模型,可以直接与比特币链上的UTXO「同构绑定」。
在确认一个人的Runes资产状况时,只需验证这个人拥有的与Runes资产相绑定的特殊UTXO,虽然还是要追溯部分信息完成计算,但无需像BRC-20那样扫描比特币链上的完整UTXO集合,这种轻量化的方式对数据索引更友好。
与UTXO功能拓展层兼容:Runes基于UTXO的设计使其能够更好地与CKB、Cardano、Fuel等基于UTXO的功能拓展层兼容。通过类似于RGB++的「UTXO同构绑定」,上述功能拓展层可以为Runes提供智能合约场景。
在Runes符文的设计中,Casey提出了两种发行方式:固定总量和公开铭刻:
固定总量:发行方直接铭刻所有Runes符文,然后再进行分发,相对更为中心化。
公开铭刻:对Runes符文的发行方式设定参数,例如指明一个区块高度或时间戳,在符合规则的时间段内,用户Mint了多少资产,最终该符文的总量就是多少。
这两种发行方式对应的场景与机制完全不同。在本文中,我们将专注讨论"公开铭刻"。
实际上,Sondotpin从Runes的Issues#124议题中开始讨论这个话题,并得到了Casey的认可。