前言
比特币生态作为本轮牛市的热点,涌现出了铭文、符文、BRC、ARC、RGB、RGB++等一系列令人眼花缭乱的新词。那么,究竟什么是比特币一层资产协议,各个协议之间又有什么不同呢?对此,Cipher老师 在登链社区的《BTC一层资产协议概述》公开课中进行了逻辑清晰严密、内容深入浅出的讲授。
今天,堡子带大家跟着Cipher老师的讲解,以“汉堡币”的发行为引,轻松地了解这些资产协议的本质与区别。
感谢舟舟提供专业的技术指导,感谢微歪对文本提出宝贵的建议,感谢一个球为本文提供精美的封面头图。
原公开课Link:https://www.youtube.com/watch?v=mgUxYU5tcJM
一、基础理论
在理解比特币一层协议之前,需要先知道一些基础理论,包括比特币模型、UTXO与账户模型等。
比特币计量模型
比特币被称作电子黄金,自然和黄金一样有计量单位。黄金的计量单位是千克、克、盎司等,最小单位是盎司。而比特币的最小单位是“聪”,一“聪”是一亿分之一个比特币。
比特币交易模型
比特币的交易模型是UTXO(Unspent TX Output 未花费的输出)。每一笔交易都由若干个输入(Input)和若干个输出(Output)构成,每一个Input都能指向前序某个Output,每一个UTXO里包含一笔比特币,而UTXO的传输本身需要一定的gas手续费。当我们给他人传输一笔比特币时,我们控制的地址向对方的地址发出一个包含一定量比特币的UTXO,并支付了用于传输的费用。这样的模型很像现实生活中的“寄钱”,而UTXO就像一个“未拆封的信封”。
假设我们现在使用黄金交易,且这个黄金很烫手,必须在信封里装着。
现在,堡子有一封包含20盎司黄金的未拆封的信封,想支付10盎司黄金给Cipher,则交易的动作为:
①将这一份“包含20盎司黄金的未拆封的信封”拆开,取出其中的黄金一分为二,各装进一个信封里。
(将包含20BTC的UTXO销毁,输出两个包含10BTC的UTXO)
②自己保留一个信封;
(返回一个包含10BTC的UTXO)
③将另一个信封贴上邮票,寄出;
(支付gas,发出一个包含10BTC的UTXO)
④快递员跋山涉水,把信送到Cipher手上。
(矿工挖矿,BTC链上过块,交易完成)
在UTXO模型下,每人拥有的黄金总量是每一封信内黄金价值的加总,Cipher可能手上有数百封包含黄金的信封,但它们并不会自动拆开、装到同一个信封里去。与之相对的是“账户模型”,即银行所用的记账方式,每人所拥有的黄金是作为一个抽象的数字存在的,一笔交易完成后,一方账户余额减少,另一方账户余额增加。
在比特币网络中,UTXO模型更加简单。这是因为在UTXO模型下,一次交易只需要检查你收到的这一个UTXO的历史追溯是否正确,而在账户模型下,每一次交易都要检查双方余额是否足够,并更新账户状态。如在现实中,实体黄金交易只要烧一下证明这块金条是真的就行,而网上交易需要搭建巨型机房不断检查各个账户情况,以此保障系统正常运作。
比特币一层资产协议
所谓比特币一层协议,其实就是希望能够在比特币的基础上,发行一种新的货币,这种货币依附于比特币这条最稳定的POW链存在,同时可以用于多种新型资产玩法。
举个例子,我们做一个“黄金一层协议——汉堡币”:
假如堡子想发行五百个“汉堡币”,那就需要为汉堡币寻找一个现实的载体,比如五百块刻上了汉堡的石头、或是五百张画着汉堡的白纸。但是石头容易磨损、白纸更是一吹就跑,作为发行人,堡子自然是希望让“汉堡币”的载体越稳定越好。这时,堡子想到,黄金这东西本身不易磨损、不怕火炼、总量有限、还很有价值,如果把汉堡画在黄金上,那是相当的稳固。于是,堡子就弄来了500个金币,每一个上面画一个汉堡——“汉堡币”的发行就完成了。
由于“汉堡币”画在金币上,因此它的价值既有黄金本身的价值,又有堡子附加的汉堡信息的价值。同时,堡子又可以为汉堡币创造大量的金币无法进入的场景,比如质押汉堡币可以获得不限量汉堡免费吃,那么汉堡币就成为了一种载体稳定、价值多元、运用场景可拓展,被汉堡爱好者追捧的新型货币。
这样“在金币上画汉堡”的方式就是我们接下来要讲的第一种一层协议——染色币。
二、古早一层资产协议:添加信息的早期尝试
染色币
染色币是最古早的一层协议。通过EPBOC技术对聪染色后让聪成为一种新的货币。在OpenAssets技术出现后,改为对UTXO染色。需要回溯历史交易看是否能回溯到原始真实资产来确保资产真实。
翻译成大白话:原本堡子在金币上画汉堡,后来在用于交易的信封上画汉堡,由于信封只能用一次,之后就要把原信封上的汉堡信息复印到新的信封上去。因此,为了避免有人胡乱复印,就需要在信封上记录复印前的原件信息,每次交易检查是否能追溯到最早堡子画上的汉堡。
Mastercoin/Omnilayer
Mastercoin将染色信息写在输出的UTXO的地址中,之后很快迁移到Omnilayer,把染色信息写在OP Return中。此外,先前的染色币和Mastercoin采用的是UTXO模型,但Omnilayer是采用了账户模型。
什么是OP Return呢? OP Return是一笔占有的聪为0的特殊的Output,是一个描述符,在节点转播侧限制一笔交易至多存在一个80字节的OP Return。
精髓总结
至此我们可以发现,比特币一层资产协议的本质就是用不同的方式在比特币和传输过程中记录用来表示货币的额外信息。
回到之前的类比,黄金一层资产协议的本质就是用不同的方式在黄金和寄送的各个环节上画汉堡。
这是一封非常常见的信封,如果我们把它当作一个UTXO,那么刚才提到的一层协议中:
对聪染色的染色币是在信封内装的金币上画汉堡;
对UTXO染色的染色币是在信封上画汉堡;
Mastercoin是在收件人那一行写上“编号XXX的信封代表一个汉堡”;
Omnilayer是在附注的部分画汉堡。
聪明的朋友或许已经意识到,在这类协议中,能够画汉堡的地方总共就是信封和黄金两处,如果要表示的信息过多,空间便装不下了。在比特币上,这样的限制为只能发行简单的代币,而不能发行需要更多储存空间的图片NFT等。
三、铭文资产协议:信息添加技术的突破
从时间线上来看,Ordinals技术的出现是一层资产协议发展历史上的一座分水岭。在Ordinals出现之后,通过“铭刻”,交易中能够传递的信息内容大大增加,接下来会简单地介绍铭刻技术和其后的铭文类一层协议。
Ordinals
Ordinals即“序数理论”,是新一代一层资产协议的理论基础。对每一个聪进行编号,并依靠链外索引器(indexer)进行检索(给每一粒黄金装上定位器,流转到哪都能换追踪到)。
Ordinals最大的贡献是提出了“铭刻”这种写入额外信息的方式:通过在在“隔离见证区域”当中录入对特定聪的描述完成信息与聪的绑定。
隔离见证是人们为了解决单笔交易包含信息过多而提出的技术。简单而言,就是把每笔交易时发出的交易内容和私钥授权证明等非交易的“见证”内容分开,由矿工验证非交易信息后提交一段回执,以此减少区块占用(附注①)。
用现实的语境来解释一下:
寄黄金的时候,快递员要检查身份证确保合法寄件,检查完后贴一张贴条表明已经核验,而不需要把身份证复印件一起寄出。此时,可以画汉堡的地方多了“贴条” 的空间,我们可以在贴条上画上一个很大的蟹黄堡,甚至还有空间在旁边写上它的配方和做法,同时注明“这个蟹黄堡绑定在信封里最左边的那一盎司黄金上”。
之后,无论这一盎司黄金如何被转手,我们都能通过某种编号追踪系统追踪那一盎司黄金,并根据贴条信息数据库里的记录了解到它是一个汉堡币(附注②)。
在BTC链上,这个“已验证”的回执有1M~2M左右的空间,可以传递的信息量大大增加,甚至可以写入图片信息。这些数据永远留在交易历史记录中,而其绑定的聪也一直被索引器所追踪。
由于铭刻的位置在“已验证”的回执上,因此想要铭刻必须先发出一笔交易,获得回执,然后再写入描述信息。这个过程被区别为提交(commit)和揭露(reveal)两步(钱包一般会自动进行)。
相较于古早一层资产协议而言,Ordinals允许BTC链上NFT小图片的发行,而且转让和交易都可以直接转移聪,不需要二次铭刻。
BRC20/ORC20
这两种协议继承了Ordinals的铭刻方案,但是采用了使用账户模型进行余额计算(附注③)。在账户模型下,收到信封后,需要把黄金存入账户,而账户中所有的黄金都是同质化的,因此转移出去时要重新铭刻一次信息。所以这两种一层协议采用了聪铭刻方案,每次转账都需要进行一次铭刻。
Atomicals/ARC20
Atomical协议依然是两步铭刻,且是专门为同质化代币来设计的 UTXO模型,创建后无需两步操作,可以直接转移。协议可玩性较高,可以允许挖矿、有名称系统、递归引用系统等。
SRC20
SRC20和BRC20的索引逻辑一致,且也是基于账户模型设计。
SRC20中,写入额外数据不需要commit/reveal的铭刻过程,它选择把数据二进制后写在多签字段中,创建出一个永远无法花费的高价UTXO作为OP Return的“贵替”。
Runes
今年上半年兴起的Runes是对染色币技术的回归和发展,采用OP Return作为附加数据存储位置并使用UTXO模型。最大突破是在铸造中提供灵活的铸造模式,让项目方可以进行预留等操作。
那么,铭文类资产是最好的一层资产方案吗?研究者们认为不是,因为这一类资产存在共同的一系列问题:
①严重依赖中心化的Indexer对聪进行索引追踪从而识别资产,如果有一天Indexer服务器失灵了,就一切完蛋;
②没有图灵完备的智能合约能力(做不了DEX、IBO之类要求循环和递归能力的应用),只能作为投资品炒作,无法玩出花样;
③大部分资产理论上无法和闪电网络——公认的BTC终极解决方案联通,意味着这种一层资产协议也不是终极一层协议。
(所以才有“跨链桥+EVM”范式,用中心化桥的方式进行伪跨链,用资产质押凭证进行智能合约交互)
因此,人们一直在追求一种新的添加数据的方式,既可以添加大量信息,又不依赖中心化的系统,能够把资产玩出花活的同时最好还能和闪电网络链接,而RGB协议便在这时引起了重视。
四、RGB与RGB++:新一代一层资产协议
RGB:突破传统的新思路
在进入到最后一部分之前,我们回顾一下先前的结论:比特币一层资产协议的本质就是用不同的方式在比特币和比特币的传输过程中记录用来表示“这是个货币”的额外信息。而之所以选择比特币网络,是为了借助比特币本身的稳定性作为货币的稳定载体。
那有没有一种跳脱现有的框架,不需要直接接触比特币本身,不受比特币链上可书写面积的限制,但又能够和比特币深度绑定,获取比特币稳定性的方式呢?
带着这样的思考,开发者们想到了早在2016年就初具雏形的RGB思想。RGB提出了新的信息添加路径,一些研究者将其和闪电网络并称为BTC的终局扩展方案。
RGB提出,通过Single-use-seal和客户端验证等技术实现状态管理、资产追踪和智能合约功能。是不是有点不好理解?我们一点一点来:
首先向大家介绍Single-use-seal,即一次性封条技术,这是RGB的核心基础技术,解决了资产所有权的确认问题。
在比特币模型中,每一个UTXO都只能被使用一次,正如在寄钱时,每一封信的封口(Seal)只能被打开一次。因此,如果我们把一段资产信息的变更权绑定在UTXO的状态上,就能够通过地址对于UTXO的操作来实现对资产的操作——当使用一个UTXO的时候,在OP Return中记录下资产信息变更的情况,完成资产信息变更(附注④)。
和对UTXO染色的染色币不同,RGB并不会将资产信息完整的写在UTXO上,而是只在其上记录资产的变更情况。
让我们回到汉堡币的例子上来——
假如堡子想发行五百个“汉堡币”,那就需要为汉堡币寻找一个现实的载体,比如五百块刻上了汉堡的石头、或是五百张画着汉堡的白纸。但是石头容易磨损、白纸更是一吹就跑,作为发行人,堡子自然是希望让“汉堡币”的载体越稳定越好。这时,堡子想到,黄金这东西本身不易磨损、不怕火炼、总量有限、还很有价值,如果把汉堡画在黄金上,那是相当的稳固。于是,堡子就弄来了500个金币,每一个上面画一个汉堡——“汉堡币”的发行就完成了。
无论是石头、白纸、黄金,堡子希望的是让汉堡币能持续存在。而RGB实现这一点的方式,不是把汉堡画在黄金上,而是把汉堡币的流转账本记录在黄金的流转历史上。每一笔汉堡币的交易都会在黄金流转记录上留痕,千年后的人们依然能完整的推导出这500个汉堡币分别属于谁、如何产生了历史流动。尽管没有直接记录在黄金之上,汉堡币依然实现了与黄金的生死与共(就像比特币一样,以区块链的账本记录代替现实载体获得了人们的认可)。
如果我们说比特币是一本账本,RGB的思想可以理解为,在比特币账本的基础上,创造了RGB资产的“账中账”。具体而言,RGB将每一笔RGB TX都绑定在一笔BTC TX上、每一个RGB UTXO都绑定在一个BTC UTXO上,从而实现与比特币链的绑定。同时,对RGB资产的描述在比特币链下完成——不需要把资产描述写在UTXO上,因此不受到比特币区块大小的限制,可以包含“富状态”,即可以包含复杂的资产描述、多个条件的触发等。
但是,RGB协议虽然很美好,想要落地却困难重重。RGB的模式中,接收方需要预先生成一个空UTXO用于资产接收、发送方要提供交易证明,接收方要进行本地验证,信息缺乏全局化、没有应用。为了实现RGB,需要建设DA、P2P 网络、虚拟机、交易验证等等……是不是听的云里雾里的?没关系,让我们再回到快乐的小汉堡这里——
在BTC上,我们有一套完备的网络进行传输和验证。但RGB资产仅仅有资产本体,且只有自己知道自己的资产情况。当堡子给Cipher转账100汉堡币时,首先堡子要提供这笔资产先前的转账记录证明自己拥有真实的汉堡币,Cipher收到后进行检查,并准备好用于下一次转账的UTXO,再批准堡子的转账请求,最后才能完成这次交易,这显然过于复杂。
如何破局呢?我们需要为了RGB资产打造一套资产管理系统,让RGB资产可以在新系统上进行交易验证、搭建DA层等——或是直接把RGB资产设计在和BTC架构相同的区块链系统上,让一条高速的公链完成RGB落地所需的工作,并且和BTC网络进行绑定。
意识到这一点的公链团队叫CKB,他们设计的协议叫RGB++。
RGB++:对RGB的实现与超越
在研究RGB现在所需的一系列设施时,CKB团队突然发现——这些设施要做的事情(交易验证等)看起来就是一条公链的工作,为什么不把他们用一条 UTXO 同构公链代替呢?CKB就是一条和BTC同构的UTXO模型的链,为什么不用CKB代替呢???
基于这样的思想,CKB提出了“同构绑定技术”,把Cell(CKB模型中的UTXO)和BTC的UTXO绑定,将A UTXO上链发起交易作为A Cell的锁定条件,当一笔比特币链交易发出时,一笔CKB链交易也同时发出,而这笔CKB链的交易中可以包含新的RGB++资产。
RGB++模型中,所有比特币的链外数据、交易执行、验证都发生在CKB这条具有图灵完备的智能合约能力的公链上,RGB++资产可以使用CKB链上的dapp基础设施。比如,RGB++龙头资产 $Seal 可以在UTXOswap中进行Dex交易,可以在IBO平台Seal2earn中通过质押获取项目空投等。也是得益于对交互性的大幅优化,RGB++资产相较于RGB资产,上所难度大幅减弱,$Seal也已经在Gate交易所上市,获得了更好的流动性。
讲到这里,也许你会好奇,本章的标题叫“对RGB的实现与超越”,实现的方式大家已经了解,那“超越”又从何谈起呢?这主要就体现在协议资产的可编程性和可拓展性上。
可编程性方面,RGB协议依赖于BTC上的UTXO,虽然在可编程性上有一定突破,但只能支持有限的智能合约(好比小霸王游戏机),而RGB++协议通过同构绑定技术进行资产映射,利用CKB图灵完备的智能合约能力(好比超级计算机),可以让资产实现递归、循环和复杂的 DeFi 应用等。
可拓展性方面,就必须提到RGB++协议的又一重要创新“Leap”技术,一种“无需跨链桥的跨链方式”。RGB++资产通过“同构绑定”的方式与BTC链上的UTXO关联并进行资产管理,而关联对象事实上可以是CKB、LTC、DOGE等任何UTXO模型的链,资产可以在这些不同的链中自由转换。每一次的资产跨链都通过源链上UTXO的不可撤销性保证安全,如从BTC链Leap到CKB链上时,需要等待六个BTC区块时间才能操作资产,反向Leap时,则需要24个CKB区块时间,以此达到相同的不可逆转度。
RGB++资产像一把UTXO链的万能钥匙,可以插入任何兼容的锁中。
最初,这把钥匙和你自己的房子(BTC链上的UTXO)绑定,你可以在自己家里用一台慢吞吞的老电脑刷刷网页、flash小游戏(转账交易、资产管理等),虽然机子稳定,但很无聊;
有一天,你想去朋友家(CKB链)玩耍,你无须制作新的钥匙,只需要提供一些安全性验证(六个BTC区块确认)来证明你是这把钥匙的真实持有者(防止双花攻击),就能用它打开朋友家的门,纵享朋友家的PS5、Xbox等各种新奇的玩意儿(图灵完备的智能合约能力),这可比家里的老电脑要好玩得多;
当你离开朋友家的时候,朋友家的门会再次要求你进行一些验证(24个CKB区块确认),以确保你在离开前没有发生什么意外。验证完成后,你就可以离开,并用同一把钥匙安全地回到自己家中。
通过Leap的方式,RGB++提供了UTXO世界的拓展方案,为多链扩展打下了坚实的基础。
在第三部分的最后,我们曾提到,铭文类资产的问题主要为对中心化索引器的依赖、缺乏图灵完备的智能合约能力、无法集成闪电网络三大问题。在RGB++协议中,CKB链的验证机制取代了中心化索引器的追踪(注释⑤)、提供了图灵完备的智能合约能力,并且CKB本身支持状态通道、能够实现与闪电网络的集成。从这一角度来看,RGB++是目前落地的一层资产协议中,技术最为领先、最优秀的方案。
展望
RGB++协议在这堂公开课后两周便正式发布,Cipher部署了前文提到的第一个RGB++代币$Seal,其命名既是对“Single-use-seal”技术的致敬,也含有“海豹”的意思,正如海豹可以做到水陆双栖一样,Seal也能够通过Leap技术在BTC和CKB上自由跨链流动,被社区亲切地称做“豹豹币”。
四月,Leap功能上线,无桥跨链正式走进大家的视野,打破了“中心化桥+EVM”的传统叙事模型。
五月,多种生态必要基础设施悉数上线。
七月,UTXOswap主网与IBO资产发行平台上线,CKB链带来的智能合约能力展现得淋漓尽致。
八月,Fiber Network轻皮书发布,RGB++资产将成为首类进入闪电网络的比特币新协议资产(可参考堡子写的解读文章)。
本月初,Fiber Network测试网与官网上线。几天后的Token2049上,CKB还将公布更多的计划,为市场注入新的活力。
我是汉堡,一名自豪的社区Builder,对CKB的未来充满信心。
感谢各位的耐心阅读,祝大家中秋快乐!
附注:
由于本文主要目的是展现一层资产协议的不同样态,因此对于非主线技术细节不在正文中展开。同时,受制于堡子自己的知识储备和表达能力,部分内容可能存在一定偏差,欢迎各位大佬进行批评、指正。
①除了Segwit区块之外,P2TR(Pay to Taproot)在铭文类资产的铭刻中也发挥了至关重要的作用,P2TR脚本路径避免了数据被储存在交易输出中从而占用大量UTXO集的资源。
②UTXO模型中,输入聪与输出聪的顺序固定,因此铭刻后的聪可以进行追踪。
③严格来说,BRC20并非ERC20那样的数字账户余额模型,而是类似记在比特币区块链里的记账文本,并不具备ERC20 那样的数字账户余额的功能,此处称其为使用账户模型并不准确,仅是为避免过多概念的引入。
④RGB协议并不依赖于在 OP Return 中完整记录资产信息的变更,大部分的资产信息和复杂的状态变更是通过链外客户端进行处理。OP Return 仅是用于记录最小的状态承诺的一种方式,而不必记录详细的资产信息变更,此处描述仅为使文本便于理解,避免“承诺”等复杂概念的引入之目的。
⑤RGB++协议和RGB协议事实上可以兼容,用户既可以使用客户端自行验证,也可以让CKB链进行代为验证(可能损失一些隐私性)。