一文带你了解 RGB 协议。
撰文:Beosin
2023 年下半年,各类 BTC 衍生协议的生态迅速发展。除了 Ordinals 协议与 BRC20 的再度爆火,Atomicals、Taproot Assets 等协议也受到了市场的广泛关注。
此前,Beosin 已为大家分析了几类 BTC 衍生协议的风险:《BTC 生态爆火,解析其各类衍生协议的潜在机遇与风险》。本文 Beosin 将为大家详细讲解 BTC 生态非常重要的一类资产发行协议—— RGB 协议。
RGB 协议的作用是在闪电网络上为比特币增加了智能合约功能,基于零知识证明的状态通道协议,允许用户在链下进行隐私保护的交易。
RGB 不是一个代币协议,但它具备发行与管理多种高度可扩展、可编程和保密的资产的能力,或可以在金融之外的许多其他行业中发挥重要作用。其协议的发展经历了多个重要阶段,从最初的构想到目前为比特币和闪电网络带来智能合约功能的 RGB v0.10 版本。
1. 2016 年,Giacomo Zucco 基于 Peter Todd 的理念,提出了 RGB 协议的初步构想。
2. 2017 年,BHB Network 推出了 RGB 协议原始版本,得到了 Poseidon Group 的支持。
3. 2019 年,Maxim Orlovsky 和 Giacomo Zucco 成立了 LNP/BP 标准协会,推动 RGB 向实际应用发展,Maxim Orlovsky 博士开始重新设计 RGB 协议。
4. 2021 年,该协会展示了 RGB 协议的图灵完备虚拟机(AluVM),RGB 也开始在闪电网络上运行。
5. 2022 年,推出了为 Bitcoin 和 Lightning Network 编写 RGB 智能合约的新语言 Contractum 及其新网站。
6. 2023 年 4 月,发布了 RGB v0.10 版本,为比特币和闪电网络带来完全支持智能合约的功能,标志着 RGB 协议进入最为重要的发展阶段。
RGB 协议的核心思想是围绕着共识和链下数据存储构建的。
首先,分布式系统最重要的价值是共识的维护,利用比特共识层只需要保留对账本事件的简短的加密提交(cryptographic commitments),证明特定数据存在但不透露实际数据内容的技术,通常通过哈希函数实现,仅在链上存储这些提交去保证数据的真实性和完整性,进而减少了链上数据的负担。
RGB 设计的账本数据存储在链下,也就是说所有的合约数据和状态转换都保留在链下,而不是在区块链上。利用单次使用密封和状态转换来追踪和验证智能合约的状态,在不将全部数据存储在链上的情况下,有效地处理和验证智能合约的状态和交易。

RGB 的基础层是比特币区块链,包括 Nakamoto PoW 共识和交易账本。虽然不需要在链上存储任何数据,但仍需要遵循现有的基础设施,并利用比特币交易作为这些承诺的存储。
RGB 智能合约在客户端验证模式下,所有数据都将保留在比特币交易之外,例如比特币区块链或闪电网络通道状态,使该系统能够在闪电网络之上运作,也为高级别的协议可扩展性和隐私提供了基础。
RGB 智能合约的基本构成包括 Genesis(创世)、State(状态)和 Transitions(转换),每部分承担着不同的功能和角色:
Genesis(创世)
Genesis 是智能合约的初始化声明,它定义了合约的基本属性和规则。这包括合约的类型、目的和任何初始设置。在代码中,genesis 部分定义了合约的起始点,比如在一个身份验证合约中,它可以指定初始的身份信息。
State(状态)
State 代表了合约在任何给定时刻的当前状态,是合约数据的实时快照,包括了所有的变量值和资产信息。
Transitions(转换)
Transitions 是定义从一个状态到另一个状态转换的规则。这些规则决定了状态如何根据合约逻辑发生变化。op Revocation 和 op Transfer 是转换的例子,它们定义了如何从一个 Identity 状态转移到另一个,或者如何在代币之间进行转移。
通过这三个组成部分提供了一种方式来定义和执行各种操作和协议。Genesis 设定了基础规则和参数,State 维护了合约的当前信息,而 Transitions 则规定了状态之间的变化逻辑,共同构成了 RGB 智能合约的核心架构。
为了确保安全和高效地管理资产转移,同时保护用户隐私。RGB 协议使用了「single-use-seals」的方法,这种方法允许将资产(如代币)与比特币的一个特定交易输出绑定,使得每次资产转移都需要「打开」一个旧的密封并「创建」一个新的密封。一次性封装用于代表资产的所有权或合约状态。每次状态转移或交易发生时,相关的封装会被关闭并创建新的封装,这样做的好处是,每个密封只能使用一次,从而防止了资产的重复使用或双重支付,确保了交易的安全性,进而确保资产的转移不可篡改。
同时,由于这些操作是在客户端进行的,而不是全部存储在区块链上,因此大大增强了用户的隐私保护,并减少了对区块链空间的占用,提高了整体网络的效率和可扩展性。
single-use-seals 的逻辑步骤:
1. 每个 RGB 合约的开始都是一个创世操作,这里会定义初始状态和相关的一次性封装,代表了合约中定义的资产或权限的初始分配。
2. 在合约中,状态(State)被用来表示当前资产或权限的配置。每个状态都与一个一次性封装相关联,表示当前的所有权或权限。
3. 当需要转移或改变资产或权限时,涉及到状态的转换(Transitions)。这个过程包括关闭当前的一次性封装(表示旧的状态)并创建一个新的封装(代表新的状态)。
4. 关闭一个封装涉及到验证其完整性并标记为已使用,以防止重复使用。然后,基于合约规则创建一个新的封装,以代表新的状态。
5. 交易发生时,合约参与者需要验证相关的一次性封装是否有效,以确保交易的合法性。这个验证过程是自动的,由 RGB 节点和参与的钱包协作完成。
RGB 的特性体现在 RGB 智能合约的创新,下面为大家介绍一些关键点:
1. 模式(Schema)概念
RGB 协议采用了模式(Schema)的概念,类似于面向对象编程中的类。模式用于定义 RGB 资产的标准,便于钱包、交易所、浏览器和 BTC 节点支持 RGB 资产。在这个框架中,一个具体的 RGB 合约是某个模式的实例,由该模式的构造函数(「创世操作」)创建。这种方法分离了合约开发者(模式开发者)和合约发行者的角色,使得后者无需具备编程或安全知识。
2. AluVM 虚拟机
RGB 协议还引入了 AluVM 虚拟机,这是一个图灵完备的虚拟机,类似于以太坊的 EVM。它可以执行几乎所有类型的计算,但受到操作步骤数的限制。AluVM 通过累积的计算复杂性度量来限制计算,类似于以太坊的 gas 消耗机制。
3. 合约定义示例
在合约定义方面,RGB 协议使用特定的数据类型,如 PgpKey,这些类型不是合约的直接组成部分,而是可以被多个合约共享。合约的状态和操作,如 Identity 和 Revocation,被定义为合约状态的组成部分和可能的状态转换。
4. 合约实例和状态转换
合约实例化是通过将模式应用于具体情况来完成的,例如,meSatoshiNakamoto 实现了 DecentralizedIdentity 模式,定义了初始状态并将其分配给一次性密封。状态转换,如通过 Revocation 操作,涉及更新身份并将其分配给新的一次性密封。
5. 扩展合约功能
RGB 协议允许扩展合约功能,如添加 IOU(I OWE YOU)代币,在合约中表现为可拥有的状态 IOYTokens。此外,还有全局状态,如 IOYTicker 和 IOYName,这些是合约的全局属性,不被任何一方直接拥有。
6. 状态扩展的概念
状态扩展的概念允许公众参与合约的特定逻辑部分,如通过声明 Burn 的方式。状态扩展操作允许任何人在不进行链上承诺的情况下创建状态扩展,类似于未打包进区块的比特币交易。
7. 合约接口(Contract Interface)
标准化通信:合约接口提供了与 RGB 节点交流的标准方式,要求它返回有语义意义的状态并创建操作。
类似于以太坊的 ERC 标准:这些接口类似于以太坊的 ERC 标准,通用的接口被称为「RGBxx」,作为独立的 LNP/BP 标准定义。
8. 创建通用代币接口示例
接口定义: 定义了全局状态(如 Ticker 和 Name)和拥有的状态(如 Inflation 和 Asset),以及操作(如 Issue 和 Transfer)。
接口实现:实现接口时,将特定模式的状态和操作与接口绑定。例如,FungibleToken 接口为 DecentralizedIdentity 模式实现了全局和拥有的状态绑定。
金融方面的应用:
1. 用于创建代表公司或项目股份的通证,集中发行但通过去中心化的方式交易,提高市场流动性和透明度。
2. 管理贷款和债券,通过智能合约实现自动化的贷款和债券发行和还款。
3. 创建运行在闪电网络上的稳定币,并将这些稳定币可以作为支付手段。
4. 创建去中心化交易所(DEX)。
5. 应用例如算法过度抵押的稳定币等 AMM 解决方案,为市场提供流动性和稳定性。
非金融领域的应用:
1. 用于管理自主身份解决方案,使个人能够控制和管理他们的数字身份信息。
2. 创建一个去中心化的全球名称注册系统,以便人们能够注册和管理域名和其他网络标识符。
3. 管理数字内容的所有权和许可权,包括版权和许可证。
4. 用于通证化艺术品,为艺术家和收藏家提供了一种新的数字所有权和交易平台。
5. 管理 DAOs,以实现去中心化的决策和治理。
6. 用于创建可证明和可验证的审计日志系统,以提高企业和项目的透明度和可信度。
当前的 RGB 协议是首个完全支持智能合约的版本,后续 RGB 协议可能会进行一些重大的更新或者修改,这会导致目前开发的合约无法在后续版本安全、稳定地运行。RGB 的客户端验证节点也仍在更新中,还未有稳定的版本。
RGB 协议的设计和实现都相当复杂,基于 RGB 协议开发的智能合约需要考虑很多 RGB 协议的特性。例如,基于 RGB 协议发行的代币,如果交易失败或是没有得到 RGB 节点的确认,那么这些代币不属于任何 UTXO,相当于被销毁了,开发者和项目方需要仔细考虑这类情况对于项目代币经济的影响。
RGB 协议目前仍处于非常早期的阶段。RGB 协议通过其独特的模式定义、AluVM 虚拟机、灵活的合约状态管理和扩展机制,展现了其在 BTC 智能合约领域的创新,支持在比特币网络和闪电网络上进行多种资产的发行和转移。但目前 RGB 协议与闪电网络还未完全兼容,智能合约的开发和运行未有安全保障,用户使用 RGB 协议时需留意风险。
【免责声明】市场有风险,投资需谨慎。本文不构成投资建议,用户应考虑本文中的任何意见、观点或结论是否符合其特定状况。据此投资,责任自负。
