深入解析RGB协议:开辟新路径,创造比特币资产发行的新二层

'深入解析RGB协议,创造比特币资产发行的新二层'

创新的RGB协议:比特币世界的未来

引言

约45亿年前,地球形成;约35亿年前,单细胞生物开始蠕动;约30万年前,智人(Homo sapiens)作为现代人类开始出现;约150年前,现代计算机的底层代码开始飞速运转;约14年前,比特币区块链的第一个区块「Genesis Block」(创世块)诞生,亦是整个比特币网络的起点;约几个月前,GPT 4.0发布,与此同时,比特币背后的诸多核心技术,集体有了实质性的重大突破。此时此刻,正在阅读这些文字的你,或许对RGB充满了好奇和困惑。在加密资产的世界中,比特币无疑是最为人们所熟知的存在。然而,当人们在谈论比特币的时候,往往只关注它的价格、市值和交易量,却忽略了它背后的技术革新和应用潜力。我们在去年发布的《比特币闪电网络上的DeFi研究》中提到的诸多核心技术,都集中在今年上半年有了实质性的重大突破,比如:Lightning Labs,推出了Taproot Assets v0.2(原称为Taro)测试网;OmniBOLT,上线了Mainnet,并实现了将USDT通过闪电网络进行收发和转账功能;RGB协议,推出了更强大、更灵活、更安全的RGB v0.10版本。

说起RGB协议,人们对它也许既熟悉又陌生,熟悉源于RGB的概念早在2016年就被提出,很多人都知道RGB协议的存在,但是经过数年发展,它却并没有得到广泛的关注和应用,大家似乎也找不到RGB协议的具体应用案例。我们经过调研分析后认为造成这一现象的主要原因,是在RGB协议的早期版本中,其功能相对有限,且RGB协议的思想具有高度的原创性和独特性,技术栈相当宏大,开发人员需要深度理解比特币和智能合约的原理后才便于上手使用。然而,随着RGB协议的不断发展和精进,这种情况正在发生改变。

一、初识RGB

1、什么是RGB

RGB是由LNP/BP标准协会开发的可扩展且保密的比特币和闪电网络智能合约系统。它采用了私有和共同所有权的概念,是一种图灵完备的、无信任的分布式计算形式,不需要引入代币的非区块的去中心化协议。

RGB的设计目的是在UTXO区块链(如比特币)上运行可扩展、稳健和私密的智能合约,以实现一切可能性。通过RGB,开发者可以执行如代币发行、NFT铸造、DeFi、DAO,以及更多复杂的多类别智能合约。

RGB协议是基于Peter Todd在2016年提出的客户端验证(client-side validation)和一次性密封(single-use-seals)的概念,在比特币生态系统的第二层和第三层上(链外)运行的客户端状态验证和智能合约系统。

  • 客户端验证(client-side validation):客户端验证是由Peter Todd在2016年提出的范式。其核心思想是,在分布式系统中,状态验证不需要所有参与去中心化协议的各方全局执行;相反,只需要参与特定状态转换的各方进行验证。采用这种方法,状态转换不是发布到全局网络中,而是通过使用密码哈希函数等方式转化为一个简短的加密承诺,该承诺需要成为某种「出版证明(Proof-of-Publication)」媒介的一部分,并具备收据证明、非发布证明、成员资格证明这三个主要特点。第一个客户端验证系统是OpenTimeStamps协议,同样是由Peter Todd在2014-2016年间提出和开发的。
  • 一次性密封(single-use-seals):可类比为现实世界中用于保护货运集装箱的一次性封条。一次性密封的原语是单个仅可一次性地封装消息的独特对象,确保这条消息只能被使用一次,一旦被使用即被永久性地打开,无法再次封闭。简而言之,一次性密封是一种抽象机制,用于防止双重支付。

2、RGB简史

RGB最初构想可以追溯至2016年,由Giacomo Zucco(BHB Network)基于Peter Todd关于客户端验证和一次性密封的早期理念提出,于2017年由BHB Network在原始MVP中实施,并得到Poseidon Group的支持。

2019年,Maxim Orlovsk和Giacomo Zucco共同成立了LNP/BP标准协会,旨在推动RGB从概念诞生到实际应用的阶段。该协会得到Fulgur Ventures、Bitfinex、Hojo基金会、LianGuaindora Prime和DIBA的支持。

从2019年开始,Maxim Orlovsky博士担任RGB协议的主要设计师和首席贡献者,设计和实现了当前的RGB协议形式。自2019年以来,RGB在设计和协议同行评审方面进行了重新构思和重新设计,成为一种通用的计算和保密智能合约系统。

2021年,LNP/BP标准协会成功地展示了RGB搭载了图灵完备的虚拟机(AluVM),同时RGB在闪电网络上也开始运行,使用了由Maxim Orlovsky博士在协会进行的完整的闪电协议的Rust重新实现(LNP Node)。

2022年,LNP/BP标准协会推出了一个关于Contractum语言(新型高级语言)的新网站(contractum.org),用于为Bitcoin和Lightning Network编写RGB智能合约。Contractum作为一种功能性声明式编程语言,专为使用RGB技术在比特币和闪电网络上运行的智能合约开发而设计。

今年,2023年4月,LNP/BP协会宣布RGB v0.10发布,这是RGB协议发展中又一重要里程碑,为比特币和闪电网络带来了完全支持智能合约的功能。这是这些比特币开发者、贡献者、相关公司之间长期跨行业合作以及四年多广泛的开发工作的成果(RGB v0.10可以在https://rgb.tech中进行下载和安装,该网站还包含许多用户和开发者指南。RGB源代码可以在https://github.com/RGB-WG找到。)

二、理解RGB

1、背景

许多年来,一些项目及团队始终在研究在比特币上发行代币的协议并尝试突破使之与闪电网络兼容,其中代表有OmniBOLT、Taproot,以及RGB。

我们熟知的在比特币上发行代币的协议,比如OmniLayer,其工作原理是在比特币交易中插入元数据来「染色」,并表示该笔交易应该被理解成一笔代币转移。Omni 协议中的USDT(Tether)可以被看作是染色币的一种形式。在Omni协议中,USDT是以Tether代币的形式存在,它通过在比特币交易中使用Omni协议的特定交易类型来表示。具体来说,当用户在Omni协议上发起一笔USDT交易时,他们会在比特币交易中添加OmniLayer的特殊数据字段,以指示该交易涉及USDT代币的转移。这种方式使得比特币交易能够代表USDT代币的转移,并且USDT的持有者可以使用比特币的地址来接收、发送和存储USDT代币。

这样的信号机制通常是用OP_RETURN操作码来实现的,带有该操作码的输出会被普通的比特币节点无视,但可以被能够感知这些代币协议的节点解释,这些节点会实施代币协议的验证规则。

虽然这种设计是很高效的,但它也存在一定局限:

1)与代币转账相关的信息量被限制在OP_RETURN输出可以容纳的字节数以内,一般来说是80字节,这个空间对普通的交易数据编码来说足够了,但更复杂的应用场景就难以被满足。

2)代币协议节点需要扫描整条区块链、在OP_RETURN输出中搜索可能与用户相关的代币转账,整个流程会因为比特币区块链体积的增长而更加耗费资源。

3)用户的隐私性方面,所有的交易数据对所有人都是可见的。

2、RGB的解决方案:链下转移

怀着优化这种设计的目的,RGB协议提出了一种更可扩展、更加隐私、更面向未来的解决方案,其基石是Peter Todd在2016年提出的客户端验证(client-side validation)和一次性密封(single-use-seals)的概念。

RGB协议的核心理念是,仅在必要的时候才调用比特币区块链,也就是利用工作量证明和网络的去中心化来实现重复花费保护和抗审查性。所有的代币转移的验证工作都从全局共识层中移除、放在链下,仅由接收支付的一方的客户端来验证。

工作原理:在RGB的某个合约中,创世代币都归属于一个比特币UTXO(无论是已经存在的,还是临时创建的),而为了转移代币,你需要花费此UTXO。在花费这个UTXO的时候,比特币交易必须额外添加一个输出,该输出包含对一条消息的