如之前提到的 BRC20 要解决的问题类似,Bitcoin = 数字黄金,而原生 Bitcoin 网络缺乏好的扩展性,表现在智能合约可扩展性以及网络性能层面。RGB 是一种链下协议系统,类同于 Lightning 网络,一方面提升效率一方面允许以可扩展和保密方式执行复杂智能合约的开源协议。
TL;DR
RGB 协议是一个多层次、多功能的协议,用于在比特币和闪电网络上创建和管理智能合约及资产。它不是一个独立的网络,也不是单纯的代币规范。RGB 的特点可以从以下几个方面理解:
智能合约协议: RGB 主要是一个智能合约协议,允许在比特币网络上执行复杂的智能合约操作。它超越了比特币原生脚本语言的限制,提供了更高级和灵活的编程能力。
客户端验证机制: RGB 使用一种称为客户端验证的方法,不依赖区块链全局共识,而是让交易的参与方在链下验证交易的有效性。这种方法提高了隐私性和网络的可扩展性。
链下数据处理: 在 RGB 协议中,大部分数据处理和存储都在链下进行,这减少了对比特币主链空间的依赖,从而降低了交易费用,提高了交易速度和隐私性。
灵活的资产管理: RGB 允许用户在比特币网络上发行和管理各种资产,如代币、非同质化代币(NFT)、以及其他数字资产。这些资产的特点、规则和逻辑都可以通过 RGB 的智能合约进行定制。
兼容性: RGB 协议设计时考虑到了与比特币和闪电网络的兼容性,使其能够利用这些现有系统的安全和基础设施。
总的来说,RGB 协议是一个综合性的解决方案,它在保持比特币网络的核心特点(如安全性和去中心化)的同时,为用户提供了执行复杂智能合约和管理多样化数字资产的能力。RGB 通过其创新的技术设计,开辟了比特币和闪电网络应用的新领域。
RGB 的发展历程
起源:RGB 最初构想于 2016 年,由 Giacomo Zucco 提出,并于 2017 年实现原始 MVP。
2019 年发展:Maxim Orlovsk 和 Giacomo Zucco 成立 LNP/BP 标准协会,推动 RGB 向实际应用转变。
2021 年进展:展示了图灵完备的虚拟机(AluVM)和闪电网络上的运行。
2022 年更新:推出了 Contractum 语言网站,为比特币和闪电网络上的 RGB 智能合约编写提供支持。
2023 年里程碑:发布 RGB v0.10,为比特币和闪电网络带来全面的智能合约支持。
RGB 的发展背景
比特币网络自 2009 年 Satoshi Nakamoto 启动第一个比特币节点以来,逐渐发展成为一种类似于新生命形式的存在,不断进化。由于其独特的设计和经济激励机制,比特币吸引了大量投资于能源和计算能力的用户(矿工),成为世界上最安全的网络之一。
随着比特币的持续增长和采用,其面临着扩展性问题。比特币网络每10分钟产生一个新块,每个块最多包含2,700笔交易,**这意味着比特币每秒只能处理大约 4.5 笔交易。**Satoshi 早在 2011 年就意识到了这一限制,并在给 Mike Hearn 的电子邮件中解释了现今所知的支付通道工作方式。根据 Christian Decker 的定义,链下协议是一种系统,用户在不直接触及区块链的情况下管理区块链数据。闪电网络正是基于这一概念产生的,它使用链下协议以几乎瞬时的速度进行比特币支付。
多年来,众多项目和团队一直致力于研究在比特币平台上发行代币的协议,并努力实现这些协议与闪电网络的兼容性,其中包括 OmniBOLT、Taproot 和 RGB 等代表性项目。以 OmniLayer 协议为例,这种在比特币平台上发行代币的协议主要通过在比特币交易中嵌入额外元数据来标记特定的交易,以此表示某笔交易实际上代表了代币的转移。在 Omni 协议中,最著名的代币 USDT(Tether)实际上就是一种通过「染色」比特币交易来表示的代币。具体来说,当用户执行一笔 USDT 交易时,他们会在比特币交易中加入特定的 OmniLayer 数据字段,这些数据字段表明涉及的是 USDT 代币的转移。这种方法允许比特币交易同时表示 USDT 代币的转移,而USDT 的持有者可以利用比特币地址来接收、发送和存储他们的 USDT。
这种代币标记机制通常采用 OP_RETURN 操作码来实现。带有 OP_RETURN 操作码的交易输出会被标准比特币节点忽略,但是对于那些识别该代币协议的节点来说,这些输出是有意义的,因为这些节点会遵循并执行相应的代币协议验证规则。
尽管这种设计高效,但也存在一些局限性:
代币转账信息的存储受限于 OP_RETURN 输出的字节数上限,通常为 80 字节。这对普通交易足够,但对复杂应用场景则显不足。
代币协议节点需扫描整个区块链,在 OP_RETURN 输出中寻找用户相关的代币转账,随着比特币区块链体积增长,这一过程日益耗费资源。
用户隐私性差,所有交易数据公开可见,且代币的匿名性远不及比特币。
RGB 是做什么的?
RGB 旨在在 UTXO 区块链(如比特币)上运行可扩展、稳健和私密的智能合约,支持代币发行、NFT 铸造、DeFi、DAO 等多种应用。RGB 是由 LNP/BP 标准协会开发的一种比特币和闪电网络上的智能合约系统。它采用了私有和共同所有权的概念,是一种图灵完备、无需信任的分布式计算形式,不需要引入代币的非区块的去中心化协议。
RGB 协议基于 Peter Todd 关于客户端验证(client-side validation)和一次性密封(single-use-seals)的概念的研究,并由 Giacomo Zucco 在 2016 年构想为一个更好的比特币和闪电网络资产协议。后来,Maxim Orlovsky 自 2019 年起领导其实现,将其发展成为一个完整的智能合约系统。**RGB 是一套允许以可扩展和保密方式执行复杂智能合约的开源协议。**它不是一个特定网络,而是由一组可以通过不同通信渠道(默认为闪电网络)互动的合约参与者构成。RGB 使用比特币区块链作为状态承诺层,并在链下维护智能合约代码和数据,实现了可扩展性。其中,客户端验证由 Peter Todd 提出,指在分布式系统中,只需特定状态转换的各方进行验证而非全局执行。一次性密封:类似于现实世界中用于保护货运集装箱的一次性封条,用于防止双重支付。
核心理念在于,仅当必要时才利用比特币区块链,依靠工作量证明和网络去中心化实现重复花费防护和审查抵抗(一次性密封 single-use-seals 的概念)。客户端验证(client-side validation),代币转移的验证从全局共识层转移到链下,仅需接收方客户端验证。其工作原理是,RGB 代币通常与一个比特币 UTXO 关联(无论是已有的还是新建的),代币转移需通过花费该 UTXO 实现。进行此操作时,比特币交易必须包含对特定信息的承诺,即 RGB 的支付信息,详细定义了代币的输入、目标 UTXO、资产 ID、数量、相关交易及其他附加数据。以下为 single-use-seals 的概念逻辑。
若你持有属于比特币交易 A 的 Output 1 输出的 RGB 代币,并想转移它们,你需创建一个 RGB 交易和一个消费交易 A 的 Output 1 输出的比特币交易。这笔比特币交易将确认 RGB 交易。在大多数情况下,交易 B 的输出是找零地址,用于返回剩余资金并确认 RGB 交易,以防重复支付。RGB 代币转移不必与比特币交易输出直接相关。例如,RGB 交易可将代币从比特币交易 A 的 Output 1 输出转移到另一比特币交易 C 的 Output 2 输出,而与比特币交易 B 无关。
为了转移归属于一笔比特币交易的 RGB 代币,需要发起一笔比特币交易。但是,RGB 转账的输出不需要跟比特币交易的输出相同!这就意味着,RGB 代币可以从一个 UTXO “传送” 到另一个 UTXO 中,而完全不会在比特币交易图中留下任何痕迹。这极大地提高了隐私性!
在这种设计中,比特币的 UTXO 的作用是装载 RGB 资产的一次性容器,要转移资产,你只需要打开旧的容器、关上新的容器就好。
然而,仅验证接收到的支付信息并不足以保证发送方真正拥有他们声称发送的资产。为确保交易具有终局性,你需要从支付方获取这些代币的完整交易历史记录,从当前交易追溯到最初发行。在 RGB 中,当代币从一个方向传输到另一个方向时,涉及的每一笔交易都不会在比特币的区块链上直接记录,而是通过链下通道进行传输。这意味着,每当一笔代币交易发生时,交易的历史信息(包括从创始交易到当前交易的所有相关数据)都会通过专门的通信渠道在参与方之间传递,也就是说上一次的交易记录将会被打包到你本人的客户端数据中,你下一次花费这个代币时同样会将历史交易记录传输到你的交易对手客户端。
当你接收到一笔 RGB 代币时,你会从发送方那里获得与该代币相关的所有历史交易数据。你的客户端软件(例如钱包)然后会验证这些信息,以确保代币的真实性和有效性。这个过程包括验证代币从其初始发行开始的每一次转移,确保代币没有被重复花费或未经授权地增发。一旦验证了整个交易历史,你便能确信这些资产未被滥发,并且所有附加的消费条件已得到满足。
这种设计对可扩展性有利,因为无需验证资产的全部历史,只需关注与自己相关的部分。由于交易不会广播至全球账本,这还增强了隐私性,因为只有少数人知晓你的交易。
为了提升隐私保护和审查抵抗力,RGB 支持对输出进行盲化。具体来说,当请求支付时,无需公开接收代币的 UTXO,只需让支付方发送代币至一个哈希值,该哈希由目标 UTXO 和随机盲化秘值生成。这使支付方无法识别代币的具体接收 UTXO,保护了用户隐私,使交易所和其他服务商无法追踪用户到“黑名单” UTXO 的取款活动和代币使用情况。
重要的是,在使用代币时需向接收方披露盲化秘密值,以验证比特币交易相关的交易历史。这意味着,虽然在接收和持有时隐私性得到保障,但代币转移历史的可见性会逐步降低,最终接近于比特币交易的隐私水平。因此,尽管初期提供了高度隐私,用户的过往金融活动隐私性会随代币转移逐渐降低。
这里因为 RGB 是客户端的价值/信息传递,所以没有办法杯中性化形式的交易所(CEX 还是 DEX 也好,DEX 的中心化表示其服务由一家机构供应), 所以在隐私层面真的是非常强了,可能都高于某些 Mixer,君子善用器,善除了擅长也包含了善良正义。
RGB 中的智能合约
RGB 协议不仅继承了比特币的所有智能合约功能,还扩展了这些功能。在进行代币转移时,可以设定额外的花费条件,这些条件由 RGB 节点的验证程序执行,而不是依靠区块链的全局共识。这意味着,如果有人试图在不满足 RGB 规定的花费条件下使用代币,接收方的节点将无法验证该交易,导致交易不被视为最终确定,发送方的操作无法成功。需要注意的是,即使 RGB 交易失败,涉及的 UTXO 的比特币交易仍可能被比特币网络确认,这可能导致代币失去归属,相当于代币被销毁。这是编写 RGB 智能合约时需要考虑的一个重要机制。另一方面,虽然 RGB 智能合约提供了其他方案无法比拟的隐私性和可扩展性,但其合约状态不是全局可访问的,也无法变为无主的(与其他区块链不同),这可能在某些应用场景中形成限制。由于 RGB 客户端的特性,可以构建多种智能合约框架并以 Trustless 无需信任的方式实现。
RGB 智能合约由三大部分构成:Genesis(创世)、State(状态)和 Transitions(转换)。其中,Genesis 定义合约的基本属性和规则,State 表示合约的当前状态,而 Transitions 涉及状态间的转换。在 RGB 中,智能合约开发者定义了一个模式,指定合约如何随时间演变。这个模式是 RGB 中构建智能合约的标准。RGB 的智能合约是一个有向无环图(DAG)的状态变化,其中只有部分图是已知的。
RGB 的可替代资产遵循 LNP/BP RGB-20 规范,而非可替代代币(NFT)遵循 LNP/BP RGB-21 规范。这些资产的信息可以是公开的或保密的,取决于发行者的需求。RGB 不需要昂贵的区块链存储或特殊的数据管理解决方案。它内置了 DRM 加密和所有权管理,还有使用闪电网络的备份基础设施。
在 RGB v0.10 版本带来的新智能合约模型更加灵活和强大,适合支持各种复杂的应用场景。随着 RGB 协议 v0.10 版本的推出,LNP/BP 标准协会公布了其未来的重要工作重点:计划在接下来的几个月内实现对闪电网络的全面支持。这一步骤的完成将使得 RGB 资产得以通过闪电网络进行有效转移。在 RGB v0.10 版本中,新引入的接口通过清晰定义的 API 提供了传递各种智能合约的标准化方法。这些接口可与以太坊中的合约 ABI 和 ERC 相媲美,但与以太坊不同,它们不需强制遵循标准化规范(如 ERC 所示),且无需单独发布,而是始终与相应合约打包在一起。这些接口使得钱包和其他软件能够提供一个对合约含义敏感的用户界面,便于用户处理合约事务。此外,合约开发者可以随时间向现有合约中添加更多接口,无需对不可变的原合约本身做出更改。
RGB 中的 DAG 作用
在 RGB 协议中,有向无环图(DAG)被用作一种数据结构来管理和追踪智能合约中的状态变化。DAG 的使用在 RGB 中发挥着核心作用,具体体现在以下几个方面:
1. 状态变化的表示:在 RGB 协议中,每个智能合约的状态变化都通过 DAG 来表示。这意味着每次状态的变化(如代币转移、合约规则的更新等)都作为 DAG 中的一个节点。DAG 的结构使得这些状态变化以非线性方式连接,允许多个并行更新和分支,从而提供了灵活性和效率。
2. 追踪资产流动:RGB 协议中的资产(如代币)从一个地址转移到另一个地址的过程,都在 DAG 中记录为一系列的节点和边。DAG 结构使得跟踪资产流动变得简单高效,因为可以直接从任意一点追溯到资产的起源,即从当前状态追溯到初始发行。
3. 确保不可变性和透明性:DAG 提供了一种确保数据不可变性和历史透明性的有效方式。一旦某个状态变化被加入到 DAG 中,就无法更改或删除,从而确保了整个系统的完整性和安全性。
4. 优化验证过程:DAG 结构允许 RGB 协议中的节点(如钱包和其他客户端)有效地验证智能合约的状态。节点只需验证与它们直接相关的状态变化,而不需要处理整个网络的所有交易,这显著降低了计算和存储需求。
5. 支持复杂逻辑:由于 DAG 的灵活性,RGB 协议能够支持复杂的智能合约逻辑和多样化的资产类型。例如,可以创建具有多种发行和转移规则的代币系统。
结语
真正的去中心化是难以实现的珍稀现象,比特币是实现真正去中心化的少数例子之一。RGB 协议作为在比特币网络上实施智能合约的创新方式,它解决了传统区块链智能合约系统的可扩展性和隐私性问题,展示了比特币技术的新方向。
其他同类型的协议,还包含 Liquid、OmniBOLT、Taproot (Taro) 等综合性的协议,本文不以展开。
声明:本网站所有相关资料如有侵权请联系站长删除,资料仅供用户学习及研究之用,不构成任何投资建议!