RGB 协议:比特币与闪电网络上的资产发行

本文基于 Federico Tenga(Bitfinex 团队)在卢加诺 2022 年 Plan ₿ Forum 上发表的演讲《RGB 协议:比特币与闪电网络上的资产发行》。
在比特币上的 RGB 协议抵达主网之前,在 v0.11.1 之前,在 Tether 选择它来发行 USDT 之前,就有了这场演讲。2022 年,Federico Tenga 站在卢加诺的一个房间里,从第一性原理出发,讲清楚了 RGB 协议资产发行的核心逻辑,也解释了 RGB 存在的根本理由:为什么智能合约不必运行在一个全球网络上才能可信,为什么比特币是锚定这份信任的最佳场所,以及一个单一的 UTXO 如何能够承载一份资产,却在有人真正想要移动它之前,从不触碰链本身。
注:比特币上的 RGB 协议(rgb.info,v0.11.1)是 RGB Protocol Association 支持的生产就绪协议。它与 RGB-WG(rgb.tech)以及 RGB++(Nervos 在 CKB 链上的另一个独立协议)不同。
编者按(2026年): 这场演讲是 2022 年的存档影像,因其历史和技术价值而在此重新发布。演讲中描述的核心设计——包括客户端验证、单次使用密封和比特币作为承诺层——至今仍是比特币上的 RGB 协议的运作方式。少数细节此后有所演变:Federico 所称的 RGB20 和 RGB21 模式,是今天 NIA、IFA、UDA、CFA 和 PFA 模式的前身(完整列表见 RGB 词汇表);Iris Wallet 已经发展得远超这里展示的仅支持 Android 的测试网应用,详见目前的 RGB 钱包生态系统;而 RGB 在闪电网络上的应用,在演讲当时仍在开发中,如今已进入积极开发阶段,可在 RGB 闪电网络路线图上追踪进展。Maxim Orlovsky,在这里被认为是当时 RGB 的首席开发者,后来延续了一套独立的代码库(RGB-WG,v0.12),与今天维护的 v0.11.1 协议不同。完整的故事,请见比特币上的 RGB 协议完整历史和为何是 v0.11.1,而不是 v0.12。
简要概览
- 比特币上的 RGB 协议使用客户端验证:只有合约的相关方才会执行和验证它,而不是让整个网络重复运行同一段代码
- 资产被分配给一个充当单次使用密封(single-use seal)的比特币 UTXO(这一概念由 Peter Todd 提出);证明拥有该资产,就等于通过花费这个 UTXO 来证明拥有它
- 比特币始终只会看到一个承诺哈希,通过 OP_RETURN(opret)或 Taproot(tapret)实现,而从不会看到转移的具体内容
- 发行是免费的:创建一份新资产不是一个链上事件,只有当资产第一次被转移时,才会产生第一笔费用
- RGB 从一开始就把隐私纳入设计:盲化 UTXO(blinded UTXO)隐藏了付款的接收方是谁,Bulletproofs 则对后续的验证者隐藏了转移的具体金额
- 交易批处理让一笔比特币交易就能结算任意数量的 RGB 转移,让每一笔转移的边际成本趋近于零
- 早在 2022 年,RGB 在闪电网络上的应用就已经在设计中,基于同样的原理:一次通道更新,不过是承诺一次状态转换的另一个场所
RGB 为何在客户端运行合约,而不是在全球网络上运行?
Federico 并没有从 RGB 本身讲起,而是从「智能合约」这个术语讲起——这个词由 Nick Szabo 在 1994 年提出,远早于区块链的出现,用来描述「一种执行合约条款的计算机化交易协议」。比特币自身的脚本语言从 2009 年诞生的第一天起,就符合这个定义。以太坊后来推广了这个术语的一种更狭义的理解:把代码推送到区块链上,由全球共识网络中的每一个节点冗余地重复执行。
全局执行模型确实有一个真实的优势:部署即便是复杂的合约也很容易,因为整个网络会吸收这份复杂性。但 Federico 提出了三项结构性代价。
- 没有可扩展性,除非牺牲去中心化。如果每个人都必须验证同一段代码,那么网络能运行的代码量,就会被一台普通电脑所能承受的上限所限制。一旦需要一台超级计算机才能跟上进度,大多数人就再也无法参与,去中心化也就不复存在。
- 没有隐私。任何观察这条链的人,都能看到每一份合约的执行过程,无论他们是否是合约的相关方。
- 没有容易的升级路径。一旦一个网络真正实现了去中心化,由互不相识、大多匿名的人组成,要就规则的改变达成广泛共识,就会变得非常困难。
Federico 提出的替代方案是:合约只在实际相关方自己的设备上运行——这正是客户端验证背后的核心理念。一个钱包只验证与自身活动相关的合约,而不是网络中 99.999% 与它毫无关系的交易。
他把这个想法的根基,追溯到比任何区块链都要古老的东西:英国财产法。直到 1998 年,在英格兰的中央土地登记处登记一笔房地产交易都还不是强制性的,即使在今天,英格兰大约 15% 的土地仍未登记。未登记房产的买家,不会去查一个中央数据库;他们查的是一份纸质的产权文件链,往前追溯大约 15 年,确认所有权的传承没有中断,并且过去的任何抵押贷款都已还清。只有每笔交易的相关方才需要查看这条产权链,交易也不需要任何登记机构的许可,但这个过程需要的人工核实工作,比一个中央登记处要多得多。
RGB 的方案是:保留这些相同的特性,但用技术来升级这个过程。把验证逻辑标准化,让计算机而不是人来执行,并把每一次转移承诺进一个公开账本以防止双花,但从不把转移的具体内容放到这个账本上。这一机制的完整运作方式,见比特币上的 RGB 协议如何运作。
比特币是如何充当 RGB 的承诺层的?
在 RGB 的资产发行模型中——这是 Federico 重点讨论的主要用例——每一枚代币都会被分配给一个已存在的比特币 UTXO,这个 UTXO 充当单次使用密封,这一概念由 Peter Todd 推广(他当天也在现场)。移动这枚代币,意味着通过花费这个 UTXO 来证明对它的所有权。花费它,同时也保证了持有者无法把同一枚代币移动两次,因为比特币本身已经保证了一个 UTXO 不能被双花。
具体机制是:花费这个 UTXO 会创建一笔比特币交易,这笔交易携带一个承诺,也就是转移内容的哈希值(具体来说,是一棵合并了多个承诺的Merkle 树的根,因为多笔转移可以被同时承诺)。Federico 描述了 RGB 实现这一承诺的两种方式。
- Opret:哈希值被放入第一个 OP_RETURN 输出中。不够优雅,但对钱包开发者来说实现起来更简单。
- Tapret:哈希值被嵌入 Taproot 输出的脚本树中。更加优雅,而且这会让这笔交易与一笔普通的比特币支付无法区分,甚至没有办法怀疑它携带着一笔 RGB 转移。
两种选项都被保留了下来,正是为了让钱包开发者能够在简单性和隐蔽性之间做出选择。
Federico 举例说明了为什么比特币、而不是比如说《纽约时报》头版,才是放置这份承诺的正确场所:在报纸上印一个哈希值,需要信任一位编辑不会篡改它,也无法随着越来越多用户需要自己的「版面」而扩展,还可能被编辑随意审查或篡改。比特币消除了这三个问题,因为只有 UTXO 的所有者才能生成花费它的那笔交易,所以没有任何第三方能够干扰或伪造一份承诺。
选择比特币而不是以太坊,还有一个简单的理由:RGB 根本不需要链上的可编程性。这个协议只需要尽可能安全地记录一个哈希值。图灵完备性和链上智能合约的灵活性,与这项工作毫无关系,所以 RGB 选择的是安全性最大化的账本,而不是链上功能最多的那个。
Federico 特别强调了一个结果:发行一份资产在链上不花一分钱。创建一份合约——包括名称、代码、最大供应量和首个持有者 UTXO——不需要一笔比特币交易;这个创世合约操作只存在于客户端。第一笔费用,只有在资产第一次真正通过状态转换被移动时才会产生。相比之下,在以太坊上发行一枚代币,无论后续是否有人购买,都需要预先支付 gas 费用。
由于每个接收者都必须验证一份资产的完整历史,一路追溯到它的创世合约,而且只需要验证与自己收到的部分相关的转移链条,而不是整个网络的活动,RGB 因此同时获得了更好的可扩展性——因为接收者只验证自己需要的部分——以及更好的隐私性——因为没有人会看到超出自己所参与部分的资产历史。
RGB 从一开始就内置了哪些隐私和可扩展性功能?
在 2022 年的设计中,有三项功能格外突出。
- 盲化 UTXO(Blinded UTXO)。一笔付款不会直接引用某个 UTXO,而是引用这个 UTXO 与一个随机数拼接后的哈希值。发送方完全不知道自己实际上是在向哪个 UTXO 付款,因此也就无法监控接收方后续如何处理这笔资金。
- Bulletproofs。一种密码学机制,能在整条转移链中,把代币的实际金额始终隐藏起来,即便对必须验证这段历史以确认资产真实性的后续持有者也是如此。他们可以确认有效性,却无需得知每一步移动了多少数量。
- 交易批处理。任意数量的 RGB 转移,即使跨越不同的资产,只要这些资产位于同一个 UTXO 上,就可以使用上文描述的同一套多协议承诺机制,在单笔比特币交易内完成承诺。Federico 举的例子是:一家交易所一次性处理一千笔提现,全部在一笔比特币交易中结算,只需支付一笔单输入/单输出付款的手续费,把每一笔转移的边际成本推向零。
正如 Federico 所说,用一个普通的比特币地址,发送方仍然可以观察到接收方最终何时移动这些币。而用一个盲化 UTXO,这种可见性就消失了:
「我没有办法监控我所付款的对象未来的活动。」

RGB 如何与闪电网络协作,局限又在哪里?
Federico 把闪电网络上的 RGB——在演讲当时仍在开发中,如今被记录在RGB 闪电网络路线图上,并以 RGB Lightning Node 的形式构建——描述为同一理念的自然延伸:一次通道更新,可以在双方之间承诺一个新的 RGB 余额,而这次更新可能永远不会、也可能会最终在链上结算。这一集成的当前状态,记录在比特币上的 RGB 协议与闪电网络中。
他直接指出的局限是:闪电网络建立在可替代性(fungibility)这一假设之上,把一条通道内的一切,都当作可以与其他任何通道内的一切互相替换。可替代的 RGB 代币符合这个模型。非同质化代币在结构上则不符合,因为一条通道无法把独一无二的资产当作可互换的余额来处理。
第二个局限是:由于针对特定资产的通道无法复用已有的比特币流动性,只有足够受欢迎的资产,才可能发展出一张能与比特币自身相媲美的路由网络。Federico 预测,较小或不太受欢迎的资产,更可能落入一种枢纽辐射(hub-and-spoke)模型,由少数几个中心化的路由节点主导。他还否定了一种常被提出的变通方案——把资产先兑换成比特币再路由,路由完再兑换回来——认为这在实践中不太可能行得通,因为一份流动性差到无法直接路由到对手方的资产,同样也流动性差到无法在两次独立的兑换中提供像样的价差。
在问答环节中,有人问 RGB 的信息能否通过闪电网络现有的 gossip 协议传播,Federico 确认了这一点:gossip 消息可以携带额外的元数据,非 RGB 节点不需要理解这些数据,但仍然会代表那些理解它的节点进行传播。完整的闪电网络兼容性细节,可以在技术文档中找到。关键的是,RGB 没有在闪电网络已有的要求之外,增加任何额外的在线性或备份要求。一份 RGB 备份,不像一个旧的闪电通道状态那样是「有毒的」:丢失它是一个隐私问题,而不是通过惩罚交易损失资金的途径。
RGB 与 Taproot Assets 相比如何?
有人直接要求他比较 RGB 与当年早些时候刚刚推出的 Taproot Assets,Federico 指出这两个协议在底层的权衡取舍上非常相似;主要的差异在于实现方式,以及时间点——因为在 Taproot Assets 甚至还没有被宣布之前,RGB 就已经开发了多年,并已经拥有可运作、尽管仍属实验性质的产品。
他所划出的区别,与其说是技术上的,不如说是组织结构上的。在他看来,Taproot Assets 主要是一个 Lightning Labs 项目,围绕 Lightning Labs 自身的商业目标构建,他认为这是一种完全合理的做法。相比之下,RGB 从一开始就是一项社区共同的努力,有多家公司和许多独立贡献者参与,这正是今天仍延续的多公司模式,如今包括了 RGB Protocol Association 以及更广泛的 RGB 生态系统。他的判断是:这种社区模式,让 RGB 更有可能最终成为一个在更广泛用例中更灵活的协议,而 Taproot Assets 则更可能针对单一公司的路线图,被更紧密地优化。
2022 年的 RGB 生态系统是什么样子?
到这场演讲的时候,Federico 已经能够列举出一个虽小但真实存在、正在围绕 RGB 形成的生态系统。
| 公司/项目 | 2022 年的角色 |
|---|---|
| Bitfinex | Federico 自己所在的团队,构建 RGB 工具和 Iris Wallet |
| Diba | 一家美国公司,通过 RGB 在比特币上构建 NFT |
| Fulgur Ventures | 资助 RGB 开发 |
| Pandora Core | Maxim Orlovsky 的公司,他当时是 RGB 的首席开发者 |
| LNP/BP Standards Association | 资助 RGB 开发的非营利组织 |
| Iris Wallet | Bitfinex 的 Android 钱包,测试网及刚刚发布的有限主网 |
| BitMask | Diba 的钱包 |
| rgb-lib | 一个 Rust 库(附带 Kotlin、Swift 和 Python 绑定),为钱包开发者抽象掉 RGB 的复杂性,构建在 BDK 之上 |
Iris Wallet 在大会现场进行了实机演示,当时只能在 Android 上运行,还没有自动备份功能——因为每一次 RGB 操作都会生成必须被备份的新数据,所以恢复起来不像还原一个助记词那么简单——并且被明确标注为实验性质:参会者拿到的是免费的收藏型代币用于试用,而不是被要求承担真实价值的风险。它当时支持的模式,RGB20 和 RGB21,如今已作为完整的RGB 支持模式列表的一部分被记录在案。
关于生态系统此后如何成长——如今的钱包、交易所和基础设施,已经远远超出这份 2022 年最初名单的范围——请见目前的RGB 钱包生态系统。
2022 年,Federico Tenga 认为 RGB 有哪些用例?
有人问他最希望看到 RGB 上构建出什么,Federico 把稳定币排在了第一位,因为它们的日常实用性,以及它们所能解锁的东西:稳定币与比特币之间真正去中心化的兑换,通过单笔交易内的原子交换实现,而不是跨两条链、依赖哈希锁协调的交换——因为当两份资产在同一笔比特币交易中易手时,原子性是天然自带的。这是一个多年后成真的预言:Tether 后来选择了比特币上的 RGB 协议来发行 USDT;关于此后构建出的完整图景,请见目前的RGB 使用场景。
对于收藏品,他的态度更为保守,称这个用例「挺可爱」,但并不期待它能承载多大的价值;对于游戏,他承认这是一个明显有热度的领域,尽管不是他的专长所在;至于证券型代币,他指出阻碍它的与其说是技术,不如说是监管的复杂性。
具体谈到去中心化交易时,他描绘了这样一个模型:做市商提出一笔部分签名的、用于兑换两份资产的交易,把这份提案发布在他们自己选择的任何地方,比如一个网站或一个 Telegram 群组,任何想要成交的接受方,只需完成签名并广播这笔交易即可:这是一种订单簿模型,不需要一个网络去验证每一个最终未成交的报价,他认为这是通往去中心化交易的唯一真正可扩展的路径。
「RGB」这个名字从何而来?
它不是一个缩写:而是向 Color Coins 致敬——这是在比特币之上把资产代币化的最早尝试之一。「RGB」这个名字借用了色彩的语言,向那个更早的项目表达敬意。当现场有人问起这几个字母具体代表什么时,Federico 并没有一个官方答案可以给出,于是现场半开玩笑地达成了这样一个共识:
「真正的突破性进展(Really Groundbreaking)。」
这场演讲为何依然重要
回看 2022 年 Federico 讲解 RGB 的这场演讲,会让人意识到核心理念其实几乎没有改变:客户端验证、比特币作为承诺层、单次使用密封、从一开始就内置的隐私性和可扩展性。真正发生变化的,是这个项目的规模:模式从 RGB20/RGB21 演变为今天的NIA、IFA、UDA、CFA 和 PFA;Iris Wallet 从一个 Android 测试网演示,成长为一个更广泛的钱包生态系统;闪电网络上的 RGB,从一个既定目标,进入了积极开发阶段;而这个协议也抵达了主网,Tether 选择了它来在比特币上发行 USDT。
要了解这份根基如今发展到了什么程度:可以从什么是比特币上的 RGB 协议开始,查阅词汇表和常见问题快速获取答案,或者直接跟着开发者入门指南和 docs.rgb.info 上的完整技术文档动手构建。

Federico Tenga
Bitfinex 研发部门负责人,RGB Protocol Association 联合创始人。是比特币上的 RGB 协议及其 v0.11.1 生产版本背后的主要工程师之一。
