作者:Federico Tenga,Bitfinex RGB团队成员、Iris Wallet开发者;翻译:金色财经xiaozou
最近,人们对比基于特币和闪电网络的代币越来越感兴趣。创建代币来代表资产的想法并不新鲜,这些代币资产可以安全便捷地转移和存储,同比特币一样。确实,2013年,Counterparty和OmniLayer(以前的Mastercoin)等协议已经开创了这一想法,后来被以太坊和其他山寨币采用。然而,使用山寨币来保障金融资产并不理想,因为它们无法提供与比特币同等的安全性和去中心化水平。出于这个原因,多年来也出现了一些项目,试图使比特币网络上的代币协议现代化,并使其与闪电网络兼容,特别是RGB、OmniBolt和最近的Taro。本文将重点介绍RGB,全面概述其工作原理及价值主张。
老的基于比特币的代币协议,如Counterparty和OmniLayer,通过将元数据置入比特币交易中为它“着色”,并信号示意它应该被视为代币转移。这种信号通常发生在OP_RETURN输出中,正常的比特币节点会忽略它,但可以由代币协议感知节点解释,然后强制执行代币协议验证规则。
虽然这种设计是有效的,但也存在一些缺点:
· 与代币转移相关的信息数量受到OP_RETURN输出字节的限制,根据标准规则是80字节,足以用于基本的交易数据编码,但还不足以支撑更复杂的用例。
· 代币协议节点需要扫描整个区块链,寻找可能与OP_RETURN输出中的用户相关的代币转移,随着区块链规模的增长,这个过程变得更耗资源。
· 对用户的隐私保护非常糟糕,因为所有交易数据对链上的任何人都是可见的,并且你使用的代币的匿名程度可能比你通常使用的比特币弱几个数量级。
为了改进这一设计,RGB项目提出了一种更可扩展、更具隐私意识和更加面向未来的解决方案,该解决方案基于客户端验证和一次性密封(single-use seals)的概念,一次性密封概念最初是由Peter Todd在2017年提出的。
这个想法的核心是将比特币区块链只用于非它不可的情况下,即利用其工作量证明和网络去中心化特性来实现双花保护和抗审查性。所有代币转移验证工作都可以移出全域共识层,并维持链下形式,仅将其委托给接收付款的客户端。
这一切是如何运作的呢?在RGB中,基本上代币总是需要分配给比特币UTXO(已经存在或特别创建的),并且为了转移代币,你需要花费这样的UTXO。在花费UTXO时,比特币交易必须包含一个消息承诺,承诺该消息包含了RGB支付信息、定义输入、代币将发往的比特币UTXO、资产id、金额、支出条件及其他你可能想要附加的额外数据。
因此,要转移分配给比特币UTXO的RGB代币,一定需要比特币交易。然而,RGB转移的输出并不需要与比特币交易的输出相同!正如我们在上面的例子中看到的,RGB交易可以输出一个与提交给它的比特币交易完全无关的UTXO。这意味着RGB代币可以从一个UTXO“传送”到另一个UTXO,而不会在比特币交易图谱中留下任何痕迹。这对隐私保护很有好处!
在这种设计中,比特币UTXO被用作包含RGB资产的一次性密封,并且想要转移资产,你基本上需要开启旧封印,盖上新封印。
RGB特定的支付数据通过专用的通信通道从支付方的客户端传输到接收方客户端,该通道将验证RGB协议规则是否被遵守。这样,区块链观察者将无法提取有关RGB用户活动的任何信息。
不幸的是,验证收到的付款不足以确保发送方是刚刚发送给你的资产的真正所有者,因此,要将收到的付款视为最终付款,你必须从付款方那里收到与刚刚发送的代币相关的所有交易历史记录,一直到最初的发行。通过验证所有交易历史记录,你可以确保资产没有通胀,并且与资产相关的所有支出条件均被遵守。
这种设计有助于可扩展性,因为你不必验证资产的整个历史,只需验证与你相关的那些交易。此外,交易不会广播到全域账本,提高了隐私性,因为知道你交易存在的人更少了。
为了进一步提高隐私性,RGB支持输出的盲化,这意味着在你向需要向你付款的人发送的支付请求中,你不会披露你想要接收代币的UTXO,你只是要求付款人将代币发送到一个哈希值,这个哈希值是你通过将UTXO与随机盲化密钥连接起来生成的。这样,支付方不会知晓接收代币的UTXO,因此,交易所或其他服务提供商不可能知道他们是否在帮助某个监管机构“黑名单”的UTXO提现,也不可能监控代币将来会在何时被花费。
请注意,当支付代币时,必须向接收方透露盲化密钥,以便接收方可以验证交易历史中的所有比特币交易。这意味着使用RGB,你当前是具有完全的隐私性,但未来的代币持有者将能够看到转移所涉及的全部UTXO。因此,虽然用户在接收和持有代币时享有完美的隐私保护,但随着代币在人群之间不断转移,用户过去金融活动的保密性会随着时间的推移而降低,接近我们过去比特币交易历史的隐私水平。
由于RGB是基于比特币建设的,因此也可以将RGB代币转移动到闪电网络上,并且已经有人在研究这个问题了。闪电网络是一个基于支付渠道的可扩展性解决方案,实际上需要一些工作来引导各资产良好的渠道流动性,这可以通过资产的广泛采用来实现,也可以通过渠道管理软件直接连接到支持用户感兴趣的资产的节点,创建某种特定于资产的子网络。
另一个让不太受欢迎的资产在闪电网络上可行的解决方案是引入节点,在特定资产和比特币之间提供交换服务。这样,一旦用比特币兑换,价值就可以通过比特币的流动性在网络上传递开来,当到达路径的另一端时,另一个交换节点将比特币转换回原始资产。这将消除对特定流动资产网络的需求。然而,为了使其成为现实,各资产与比特币的交易量需要足够大,以激励做市商在网络多处运营交易节点,提供足够低的买卖价差,以避免从两笔交易之间的支付中损失太多价值。
通过使用比特币交易,RGB自动继承了比特币的所有智能合约功能,但不仅限于此!当你将代币转移给交易对手方时,可以在支付中定义该交易对手方将来必须满足的额外支出条件。这种额外的支出条件不会由区块链全域共识强制执行,而是由RGB节点验证过程强制执行。这意味着,如果有人试图在不遵守RGB特定支出条件规则的情况下支出代币,则接收方的节点将无法成功验证,并认为支付不是最终支付,这对发送方来说特别糟糕。事实上,虽然RGB支付失败了,但花费了UTXO(代币被分配给UTXO)的比特币交易可能已经在区块链上得到确认,这意味着这些代币将不再分配给任何UTXO,也可以认为它们被销毁(burnt)了,这是在编写RGB智能合约时需要考虑的动态因素。
另一个需要注意的利弊权衡是,虽然RGB合约可以提供比任何替代方案更多的隐私性和可扩展性,但它们的状态不是全域可访问的,并且它们不能是无主的(就像在其他区块链中发生的那样),对某些用例来说,这也代表了一定程度的限制。
由于RGB的客户端特性,可以以无需许可方式提出和实施多个智能合约框架。在撰写本文时,已有一个名为AluVM的项目在这个方向上埋头努力。
任何对采用RGB感兴趣的人都会发现自己想知道它与其他代币协议相比如何。让我们具体分析几个例子:
基于山寨币的代币
大多数基于山寨币的代币协议(例如ERC-20)提供具有全域无主状态的智能合约,这使得部署DEX和其他金融应用程序变得相当容易,但却难以扩展,毫无隐私性并且继承了这些山寨币的所有缺点,例如运行节点成本高、去中心化程度较低以及抗审查性较弱。
Liquid资产
Liquid是一个比特币联邦侧链,提供了一些有趣的功能,比如本地资产支持和秘密交易,可以向区块链观察者隐藏支付金额和被转移资产的ID。然而,联邦模型再次提出了相同的问题:去中心化程度低、抗审查性弱。
OmniBolt
OmniBolt是OmniLayer的闪电网络兼容版本,在本文开头有简要介绍。它与RGB有非常相似的利弊权衡,但它提供的隐私保护和可扩展性更低,因为所有与代币相关的数据都保存在链上。
Taro
比特币2022迈阿密会议上宣布,Taro是一个由Lightning Labs支持的项目,其目标是将资产置于闪电网络之上。根据发布的规范说明,该设计与RGB非常相似,具有基本相同的功能和利弊权衡。在撰写本文时,RGB和Taro之间的主要区别似乎是RGB已经发布了一些可审查的代码,而Taro只发布了规范,但另一方面,你可以说Taro是由闪电生态中最好的一个团队支持的,让未来的实现大有可期。考虑到两种设计的相似之处,如果Taro和RGB最终能够互操作,那就太好了,但只有时间才能证明这种情况是否会发生。
来源:金色财经