研报:除了BRC20,比特币还有RGB这些Layer2

比特币的NFT协议自2月份面世以来,引发了一系列关注——从基于Ordinals的NFT到基于Ordinals的BRC20代币,但是对于BRC20协议,一些比特币研究人员认为,他们并不是最佳解决方案,类似于RGB这样的比特币二层,才是更好的选择。

Mempool播客在这一期节目请到了比特币研究人员阿剑以及Harshky Capital的Tech lead Jeffery Hu来谈论他们对包括Brc20在内的比特币二层的看法。

1.比特币为新的二层的做好了准备

Ordinals由比特币核心开发者Casey Rodarmor在2022年2月2日提出BIP,到了2023年1月底上线,整个开发经过了差不多一年的时间,简单来说,它用一种独特的方式,把任意一段4MB大小内容数据写到比特币上,每一段数据和比特币的一个聪绑定。可以从两个部分理解Ordinals这个协议,一个是Ordinals序数,一个是Inscription铭文:

  • Ordinals序数:要Ordinals要先理解比特币最小的货币单位Satoshi聪,一个比特币等于 1亿个聪,这些聪之间本来没有差别,但是就像各国央行发行法币时给法币打上编号一样。在比特币UTXO记账系统的基础上,Casey利用一套技术方案,给聪打上序号,并且追踪他们。

  • inscription铭刻:当每个聪被打上编号之后,就可以将一段内容写入见证隔离区,内容可以是图片、文字、音视频,甚至是代码,只要大小在4MB以下,这个过程也就是将艺术品和聪绑定,从而发行、流转。

  • 比特币实际上是一个去中心化的账本系统,而这个账本的核心是它的脚本系统——用来编写交易规则的语言,这种语言不具备图灵完备性,提供了执行交易和定制特定操作的功能。

    Ordinals在脚本中的逻辑实际上依赖比特币脚本中的“op_if”的操作码, 这个操作码自比特币诞生起就存在,由中本聪写下。“op_if”的意思是说,如果堆栈中出现了“0”和“op_if”,那么“0”和“op_if”中间这一整段代码都会被跳过,不会进入堆栈中去实际执行。

    而Ordinals就是利用了这一点——当它需要附加铭文时,它先验证一个签名,然后向堆栈写入“0”和“op_if”,而"0"和“op_if"中间的这段数据按照脚本设置被完整地跳过,而这段数据就是Ordinals铭文。

    除了“op_if”,Ordinals的存在还跟比特币一次重大技术升级隔离见证有关。众所周知,比特币记账是采用UTXO系统,而UTXO有自己的脚本公钥,通常需要提供一些数据来完成脚本公钥编程出来的验证程序一笔钱才能被解锁。原本,所有用于通过验证程序的数据都会放在输入脚本签名的字段里。2017年8月,比特币采用了名为隔离见证 (SegWit) 的软分叉升级,通俗地说,通过把占用大量存储空间的签名等数据,放置交易脚本末尾,在比特币区块大小不超过4MB的限制下,区块有更大空间,从而能进行更多的交易,以达到扩容的目的。

    由于隔离见证是软分叉,并非强制使用,开发者为了吸引大家使用隔离见证,便让隔离见证上数据存储价格更为低廉。而交易的大小是收取交比特币的手续费的依据,因此,开发者采用对方法是对于见证隔离部分交易大小计算给予折扣——把交易数据结构分为交易数据和见证数据两部分,在计算见证数据的大小时,使用的是virtual Byte(vByte)为单位,1个vByte相当于4个权重单位(wu):

  • 见证数据:包含脚本和签名数据,每个字节计为1wu;

  • 交易数据:包含发送方、接收方以及输入和输出的信息,每个字节为4wu;

  • 也就是说,见证部分的数据权重仅为交易部分的25%,交易费用也相应地为25%,同时,此前最大区块大小由1MB变更为1vMB,即4MB。

    但是真正实现Ordinals,还跟Taproot有关。在见证隔离的技术中,对每次输入的数据大小做了专门的限制,但是到了2021年11月,比特币再次发生重大升级Taproot,移除对见证部分中数据量的限制,数据具体大小只受到隔离区域最大区块4MB的限制,同时,让开发者可以在见证部分编写更高级的脚本。

    在一连串技术升级之后,让之前没有办法放在比特币链上对数据能够存储到链上,一步步为实现Ordinals打下基础。

Ordinals发布之后,社区先是用这个协议来发行NFT,尤其是像Yuga Labs这样知名的机构也发行了基于BRC20的比特币NFT之后,引起了行业广泛关注,Mempool也发布了专门的关于比特币NFT的研究报告(https://mp.weixin.qq.com/s/AUnlV5R6jGsEXUD3BDVE2Q)。但是很快引起市场更大关注的是基于Ordinals发行代币的BRC20协议。

2. BRC20走Omni Layer的老路

在比特币NFT热潮之后,推特用户@domodata于2023年3月8日创建了比特币上的BRC-20代币标准。

BRC20一经面世,就引起了极大的关注,许多人希望借着Ordinals风头发行代币。首个在BRC-20上部署的代币是“ordi”,致敬BTC,Ordi的总量也为2100万个,每次铸币限制为1000个。Ordi引起市场极大追捧,如果按照mint价格计算,最高时涨幅超过3000倍,一度成为市场最热的meme币。但是在我们文章刊发的五月底,Ordi的价格已经从最高时间24美元回落到8美元附近。

同时,就在5月25日,一家名为Stably的公司宣布,他们即将推出其美元 (USD) 支持的稳定币Stably USD,作为本地发行的 BRC20 代币,符号为#USD。

从技术上简单解释BRC20,它实际上就是利用了铭刻可以在区块中写入任意数据的特点,在其中写入JSON形式的数据来发行代币,这些JSON暑假定义代币的一些标准,包括资产名字、发行量等等信息都以铭刻的形式写到链上。

如果以如果用以太坊来打比方,相当于在ERC721之上实现ERC20发行代币的功能。用比喻的方式就更能够理解这种“套娃”的形式,如果比特币是一张纸钞,Ordinals就像在这个纸钞上面去写了一些文字或者是画一幅画,甚至是嵌入一个大小合适的游戏,在我们的嘉宾Jeffery Hu看来,BRC20就相当于在这张钞票上写了一张支票,通过这张钞票上的支票,把钱转移给另一个人。

在我们的嘉宾,阿剑和Jeffery Hu看来,BRC20和之前的Omni Layer协议非常类似,“而之前大家把这条路走了一遍,我们已经知道了是一条走不通的道路”。

Omni Layer也是试图在比特币之上去发行额外的资产。真正让Omnilayer大规模落地的是在2014年Tether公司基于它发行稳定币USDT,这些转帐帐号地址开头通常是“1”、“3”。虽然转账速度较慢,但是因为是基于比特币区块链,一开始还是受到用户接受,尤其大笔金额的转帐通常会用基于Omni Layer的USDT。但到了2018年以太坊热门起来,所以Tether公司在以太坊上面发行USDT,转帐速度大幅上升,这些地址通常是“0x”,基于Omni Layer的用户逐渐流失

Omni Layer和Ordinals的设计非常类似,实际上是利用的也是比特币的OP_RETURN脚本,在交易中嵌入小段数据,从而把比特币之外的代币信息写在比特币链上。

在比特币的UTXO系统中,每一笔交易都有花费(spend)即输入,然后产生一笔输出(output),就是“未花费过的交易输出”(Unspent Transaction Output)。输出脚本负责在交易中编程,当一个交易试图从一个账户中支出时,它必须提供一个输入脚本,来“解决”输出脚本提供的难题。

但是当输出脚本中使用OP_RETURN操作码时,它将输出标记为不可消费,这意味着该交易不会影响余额,但是这笔交易仍然被记录在区块链上:

  • OP_RETURN在创建付费脚本哈希(P2SH)交易的第一步中使用,交易输出的锁定脚本包括OP_RETURN操作码,后面是需要插入的数据(通常最多40字节)。

  • 用户向该交易添加输入,例如想要用作交易输入的未花费交易输出(UTXO)。

  • 在用户创建交易后,使用自己的私钥对交易进行签名。

  • 一旦交易被广播,矿工会验证它并将其包含在下一个区块中。

  • 由于OP_RETURN将交易输出标记为可证明无法支出,因此不会创建新的代币,也不会转移资金。

  • 与OP_RETURN相关的数据将永远存储在区块链上。

  • 不难看出,Omini协议和Odinals协议有一些差异:在Omni协议中,比特币的链上资产和交易之间本身是没有关系的,但是在Ordinals协议中,通过追踪聪的流动,去跟踪和决定NFT到底在谁手里,也就是说NFT和比特币资产本身是绑定的。

    但非常相似:

    首先,他们都是把数据写在链上,思路都是把整个协议设计分为两层:

  • 第一层是比特币,把交易数据写入区块,但是由于包含OP_RETURN的代码,中间的数据不会被识别,但是这些数据会被另外一层识别;

  • 第二层是额外的协议,用来去解析专门放在某一个位置当中的数据的内涵,帮助用户在比特币链上去使用比特币以外的资产;

  • 其次,他们解决双花问题的核心在于UTXO不能被花费两次:

  • 在 Omni 时代,每一个USDT它是染色的,附带了其他一些资产,所以我们称之为染色的USDT,当它被花费时,交易当中携带了一个OP_RETURN,包含里面有完整的Omni交易信息,这些信息告诉大家这笔资产被人完整地发到某一个UTXO里面,因为一笔UTXO只能花费一次,所以也能够保证UTXO里携带的这笔资产没有被双花

  • Ordinals跟踪聪,而聪也只会在一个确定的UTXO里面,这个UTXO只能被花费一次,也保证了和聪绑定的NFT或者是BRC20只能花费一次。

  • 面对BRC20,值得思考的是,Omni Layer已经被证明行不通了,BRC20与其高度相似,是不是能够较好地发展下去?

    在我们的嘉宾看来,RGB或许是个更好的方法——在用UTXO保障资金安全的情况下,并不需要把所有数据都放到链上,只需要把数据承诺放到链上,通过这种方式来实现一个安全的智能合约系统。

3. RGB是更好的资产发行协议

在很长一段时间里,在Vitalic还在运营Bitcoin Magazine这个网站时候,包括他在内,社区许多人都尝试去比特币上发行额外的资产,Omnilayer以及Counterparty都是这个尝试的结果,(在我们第4期节目中,对这一类尝试和努力做出了梳理)。

经过一段时间的努力之后,社区得出了一致得出的结论是:如果想使用比特币的脚本去发行额外的资产,也就意味着需要所有节点去解析比特币脚本里的额外资产的信息,在真正进入大规模应用,在速度、费用上缺陷十分明显。

于是,Vitalic放弃了在比特币作为底层,另起炉灶,在2013年年底写出了以太坊白皮书。与此同时,有另一些人,他们没有放弃比特币,但是放弃把所有数据写到比特币链上,而只把数据最重要的部分上链,也就是像RGB这样的比特币二层协议。

基于Peter Todd在2017年提出的客户端验证(client-side validation)和一次性密封条(single-use-seals)的概念,RGB协议提出了一种更可扩展、更加隐私、更面向未来的解决方案,其核心的理念是,仅在必要的时候才使用比特币区块链,代币转移的验证工作都从全链共识层中移除,放在链下,仅由接收支付的一方的客户端来验证,但是利用比特币的去中心化网络来防止双花以及抗审查,展开来说,它有以下特征:

一次性密封条和链下转移:RGB的基本设计是这样的,代币和一个比特币 UTXO绑定,如果要转移代币,就需要花费这个 UTXO,在花费这个UTXO 的时候,比特币交易必须包含一个数据承诺,即RGB的支付信息,包括输入、代币将被发送到哪个 UTXO、资产的id、数量、花费的交易等等。

(文献参考:https://www.btcstudy.org/2022/04/24/understanding-rgb-protocol/)

  • 如果你有一笔比特币上的额外代币要转移,这些代币和UTXO绑定;

  • 要转移这些代币你就需要创建一笔 RGB 交易以及一笔花费UTXO的比特币交易,并且这笔比特币交易承诺了 RGB 交易。

  • RGB交易是把代币从比特币交易输出1转移到比特币交易C的输出2。

  • 最终交易B的输出就是找零地址,减去矿工手续费后将剩余资金发回给原来的所有者,同时也承诺了RGB交易。

在这种设计中,比特币的UTXO的作用是装载RGB资产的一次性容器,要转移资产,你只需要打开旧的容器、关上新的容器就好。

也即是说,在RGB的交易当中,需要发起一笔交易时候,交易发起方在链下点对点地把没有瑕疵的证明资产流转顺序的资料完整地发给交易对方,在链上,用户花费携带的UTXO,用OP_RETURN输出去承载这笔交易的这个哈希值,值得注意的是,相比Omni协议会把完整的交易放上去,RGB协议只放一个哈希值。

自主验证:无论是Omnilayer还是Ordinals,实际上都是通过UTXO不能双花的特质去保证比特币上的额外资产的安全性,实际上RGB也是基于这样一个理念——让用户自主验证特定UTXO上合约的状态,并且验证所有合约状态转换都是安全与否,然后,用比特币的UTXO交易去激发一个智能合约系统。

举个例子, Brutoshi要给阿剑发送一笔资产时候,阿剑需要Brutoshi提供流转过程详细记录,来验证确实有一笔资产通过一笔一笔的比特币交易路由或者说中转到了他手上,而这些资料也能够让阿剑向下一个人证明,这些资产确确实实是从某一个地方一路流转到他手上的,这个验证方式被称之为自主验证——流转链条是没有瑕疵的,接受者可以放心地接收资产,并且能够支付给其他人。

抗审查:除此之外,RGB不需要接收方给出明确的UTXO,而是给出UTXO加一个混淆值,这样保证了接收方的隐私性。同时,在流转过程的话,使用零知识证明技术保证整个流转过程当中它的数额不会曝光,比比特币上的UTXO更具有隐私性。

这也是基于Peter Tolder一个非常激进的观念,他认为旷工不应该知道一笔交易里面的具体内容,只要去挖矿就行了,因为如果知道交易的内容,就会带来审查的这个可能性。RGB继承了这个理念——所有的RGB资产只不过是被人为地附加到一个UTXO中,因此,它在链上的这个他的链上的痕迹就是一笔普通的比特币交易,矿工不需要知道交易里面到底有没有RGB资产,矿工只需要挖比特币交易就可以了。

一直以来,比特币的隐私性是有限的,比如交易的转账金额是公开的,比特币社区做出这样的选择,是认为货币量的可审计性会比交易的隐私性更加重要。

在我们4月份举办的Ordinals线下活动中,北美最大的矿池Luxor Mining向我们表示,作为一家身在美国的公司他们需要符合美国法律的要求,会基于一些OFAC,对比如来自北朝鲜的创作者审查,因此,在一些极端情况下,完全的抗审查性也是必要的。

听起来RGB是一个完美的技术方案,但是有时候生态的发展需要“天时地利人和”,以太坊的白皮书在2013年年底发布,2015年发布了主网,虽然2016年时还发生过针对以太坊的大规模攻击攻击,但是随着defi的发展,越来越多的开发者去以太上搭建应用,拥抱与比特币和RGB不一样的这个技术范式。

RGB在几年备受冷落,团队大约只有5个人,都是乌克兰人,他们继续维护着这个协议,但是我们两位嘉宾都认为,假以时日,真正合适的方案是能够发展起来的。

4. 比特币的Layer2

在以太坊社区,大家对二层的形成了比较强的共识。在布拉格的DevCon,社区认为,之前许多Layer2概念,包括Plasma等等在技术上都有一些缺陷,但是直到走到Rollup,一个理想状态的Layer2结构才出现:为了解决主链性能局限等问题被重新创建的一条链,和主链之间能够双向免信任,就是说主网和侧链能够相互验证,以及资金双向流动。

但是在比特币上,我们没有办法套用以太坊Layer2的概念,一个最简单的例子,闪电网络毫无疑问是比特币上的layer2,但是它没有独立的链,也比如说比特币的侧链和比特币之间的信任通常是单向的,因此,我们尝试对比特币的layer2做一个定义和分类,我们的嘉宾Jeffery Hu把它们分为四类:

图片来源:Jeffery Twitter @hu_zhiwei

A. Rollup

Rollup是以太坊上最受追捧的二层方案,它本质上是将计算过程从主链转移到称为“Rollup链”的独立链上。在这些Rollup链上执行交易后,数据被聚合并汇总,传输到主链进行验证,因此,能够减少以太坊的网络拥塞。

相比之下,在比特币上的Rollkit、Alpen这些Rollup项目中,相比于以太坊上较强的智能合约功能,比特币扮演的是数据可用层的角色,但由于比特币被认为是最安全的链,因此,这个方案在一定应用场景中也有其优势。

B. 状态通道

最典型比特币状态通道就是闪电网络,其理念是在区块链之外开通一条“绿色通道”,将大量高频的、小额的交易在区块链外进行,最终的结算数据放在链上,链下交易的确认和支付通道等问题,通过RSMC和HTLC等技术方式去解决。相比Rollup等方案,它没有一条独立的链,而只有一个通道。

闪电网络最终的安全性其实是由比特币的矿工来保证的,Rollup也是这样,因此,Rollup和状态通道设计方案非常类似。

在这几年时间里,闪电网络发展速度并不是很明显,根据5月30日数据,目前大约有5300个BTC在通道里,但是我们也看到像Okex这样的交易所已经利用闪电网络支持比特币交易,所以我们认为,在越来越多的应用场景体会到闪电网络带来的“甜头”之后,闪电网络能够更快地发展起来。

C. 侧链

闪电网络主要解决BTC结算吞吐量低、成本高的问题,但没有解决BTC原生应用构建不足的问题,因此,在同一时期,比特币侧链(Sidechain)的概念也被提出。简单地说,就是开发者们就另外创造一条链,在这条链上做更多的智能合约或者是其他的运算执行。

侧链和比特币之间的交互,主要是侧链去验证比特币主链上的信息,然后做后续的执行,反过来比特币主链无法去无信任侧链,或者是由所有比特币矿工去验证出来侧脸上的交易是不是发生了。因此,一般来说可能都采用联盟侧链的形式,类似于一个小组或者是几个成员互相见证的方式,所以去实现双向的锚定。

Blockstream最早提出并开发了侧链,名为 Liquid Network,于2018年上线。最近大火的stacks,也被认为是侧链。

D. 客户端验证

和状态通道的想法有些类似,就是不需要所有的状态转换过程都在主链上的所有节点/矿工来通过重复计算的方式来验证,只需要利用主链来保证承诺的安全性即可,主要项目包括:RGB、Taro 等。RGB 等项目也会提供 FT、NFT 的合约模板来支持一些合约的开发。

我们也能够看到不同比特币二层之间的组合,能够给比特币生态带来更大的可能性,比如RGB+闪电网络,前者带来资产类别的扩展,后者来带性能的拓展,在RGB协议中,使用闪电网络充当链下的通道,在发行资产时,是一个性能得到极大提升的设计。

但如果跳出二层这个限制,对围绕比特币技术还可以这样划分:

一类叫做重新解释层,比如Ordinals和Omnilayer以及BRC20,这些其实都是在现有的主链上的交易,但是通过这些技术,重新定义或者说解释了交易的含义,比如说让Ordinals一个NFT或者是一个FT和一个聪绑定,又或者是Omnilayer让一笔资产和一个NFT绑定,他们在比特币主链上有较多的动作。

另一类叫做省略层,比如闪电网络,只是把最终的结算或者是一些承诺信息写入链上,以及利用比特币的安全性,许多中间的交易斗在链下完成。

RGB其实也是可以认为是两种的一种结合,既用了比特币网络上的一些数据,同时也在链下做了许多客户端验证,为比特币可扩展性的提升带来了巨大的可能性。

不能否认的是,Ordinals的出现以及比特币一系列技术准备之后,我们认为比特币未来生态的发展还是有极大的可能性。

【联系我们】

进听友群微信:Cyberpunklechee

在小宇宙、喜马拉雅、Podcast均可找到我们

本文内容部分来自网络,仅供参考。如有侵权,请联系删除。

相关推荐