一文了解最新比特币协议:Counterparty与RGB/Taro的介绍与对比
原文:《》by Mandel duck
我最近参加了一个古董 NFT 节(Historical NFT festival)。什么是「古董 NFT」呢?简单来说就是在 NFT 变成流行文化之前就出现的 NFT。在这个活动上,Counterparty 协议似乎成了焦点,这可能是因为它实际上比特币上的第一个 NFT 平台,可以追溯到 2014 年(在它之前也有其它协议,但 Counterparty 是第一个被用来铸造现在我们称为 NFT 的艺术品而不是金融Token的协议)。
时间快进到 2022 年,比特币网络上又出现了两种新的协议,分别叫做「RGB」和「Taro」(两者有些相似)。
RGB 和 Taro 在很大程度是一样的东西(TRAO 曾用名「CMYK」,这是对 RGB 的一种调侃),而且它们也不在我擅长的领域,所以,我不会过多比较两者的细节。相反,我想比较一下 Counterparty 跟这些新的比特币 2.0 Token协议,它们到底新在哪里?
Counterparty 总结
Counterparty 在 2014 年推出,当时还有其它Token协议,例如染色币和 Mastercoin(现在叫做「omni」)。染色币似乎是为了「将黄金的份额在区块链上Token化」而创建的。Mastercoin 则商业味很重,要是没有 Mastercoin 背后的公司帮忙,是非常难用的。Counterparty 是作为一个开放标准启动的,而且它又一个易于使用的钱包,每个人都可以培育它,让它在社区用于休闲的比特币中得到采用。
Counterparty 的创始人在设计它的时候考虑到了金融服务,例如,可以使用Token来表示一家公司的股权,但是,这里面有许多法律问题和连带影响,所以最终他们放弃了这个项目,成立了一个更加商业化的组织(symbiont.io)。这样一来,Counterparty 就交到了社区手中,大家开始将它用于「社区项目」,比如 RAREPEPE,艺术收藏品,等等。
Counterparty 怎么工作?
染色币会跟踪 UTXO(译者注:原文为「聪」,是比特币的最小单位,而比特币都是以 UTXO 的形式超存在的),Counterparty 则不同,它是比特币之上的一个数据层。
换一种解释方法:染色币的意思是「这笔比特币(UTXO)代表某一根金条」;如果 Alice 要把这根金条转移给 Bob,那只需要把这笔比特币发送给 Bob 就好(技术上没有么这么简单,但对一篇 medium 帖子来说,这样讲就够了)。
但是,如果你想买一杯咖啡,但不小心把代表金条的比特币也发给了咖啡师 Charlie,那么 Charlie 就会得到这些黄金(至少是代表着一些黄金的比特币)。
这就意味着,你在使用染色币的时候必须很小心,因为你很容易会意外地把Token发送给一个从来没有这样的预期的接收者,甚至 TA 可能看不见这笔钱还有别的价值、也无法把它转回给你。
相反,在 Counterparty 中,你必须放弃一笔特殊的 Counterparty 交易,才能转移Token的所有权。Counterparty 节点会在链外解析这笔交易的数据,然后更新一份放在 Counterparty 节点中的 账本/数据库。
这是使用 OP_RETURN 来完成的,这是一种在比特币交易中存储任意数据(因此可以将数据存入比特币区块链)的方法。
载入的 OP_RETURN 数据需要表明这个意思:
- 发送 1 RAREPEPE 到地址 X
- 你需要把这个 OP_RETURN 放到一笔比特币交易中,只要你使用当前持有 RAREPEPE Token的地址的私钥签名这笔交易,Token就会转移到 OP_RETURN 数据指定的新地址。
- 使用 OP_RETURN 的一个优势在于,对 Counterparty 协议不感兴趣的全节点既不需要存储,也不需要验证这些数据,而且可以把这些数据从节点中删去。
如果我们已经有了 Counterparty,为什么还要创建 RGB/Taro?
这个问题很好。因为从今天来看,Counterparty 似乎比 RGB 和 Taro 拥有更多的特性,而且从 2014 年开始运行至今。那么,为什么我们还需要制作新协议呢?
我认为,开发者倾向于从零开始制作一套新协议,而不是在现有的协议上开发,可能有几个原因。
动机
我认为,一个很大的理由是,这些开发者就是想创建自己的项目、拥有自己的「孩子」。人总是更有动力开发自己的想法,而不是维护和提升现有的项目。
技术
从零开始,你就可以使用最新的学习成果和技术;在现有的代码中插入新的范式可能会很麻烦。许多看过 Counterparty 代码的开发者认为那很糟糕。尤其是以今天的标准和密码学的新技术角度来看。
可扩展性
因为 RGB/Taro 使用客户端验证技术(下文我们会解释),它天生更容易扩容,因为并非每个用户都需要存储所有Token的全部历史。
无知
许多开发者要么不知道 Counterparty,要么认为这个项目已经死了。
Counterparty Token
我认为这也是一种重要的因素。比特币爱好者基本上不喜欢开发一套拥有自己的Token的协议,而 Counterparty 协议有,叫做「XCP」。我感觉Token发行永远地玷污了这个项目,以事后之明来看,最好不要发行这种Token。
但是,我也要说,这种Token不像其它的协议Token,因为
a)你不需要用到它
你只需要使用 BTC 就可以制作 Counterparty 交易、发行资产、使用去中心化的交易平台,不用管什么 XCP
b)它是公平发行的
不像其它举办过 ICO 的协议最终让创始人致富,XCP 是通过 燃烧证明 来分发的,意思是,你只有烧掉比特币才能获得 XCP。这意味着创始人也只能燃烧自己的币才能获得 XCP,因此不能通过预先发行来致富。
XCP 有什么用?
虽然你不需要持有 XCP 来使用 Counterparty,但如果你要使用自定义的名称来发行资产,就需要用到 它。Counterparty 的资产名称都是独一无二的,类似于 URL(网站域名),所以你会遇到跟域名抢注一样的问题,即,有些人会提前买下带有流行词汇的域名。
在 Counterparty 中,为了缓解这一点,你必须持有 XCP 才能以自定义的名称发行资产,例如 SATOSHI 币和 FREEDOM 币。
另一种需要少量 XCP 的场景是使用 Counterparty DeX(去中心化交易平台)。DeX 允许 Counterparty 资产的点对点、非托管式交易,意思是,我可以挂一个卖单,提出使用 1 RAREPEPE 交换 1 SATOSHICARD,然后把这个订单广播到比特币网络中,如果某人挂了一个卖单,使用 1SATOSHICARD 交换 1 RAREPEPE,两个订单订单会自动匹配,然后资产就转移了。
因此,如果一个用户只是想拿一种Token换取另一种Token,是不需要用到 XCP 的。但是,当资产不是直接交换,而是通过一种流动性更强的货币来买卖的时候,交易会更通畅。理想情况下,应该使用 BTC,但技术上来说,就不太可能,因为 Counterparty 协议中不存在比特币,只存在 Counterparty 资产,所以,大家的想法是,可以拿资产卖成 XCP,然后到交易平台把 XCP 卖成 BTC。(最终来说,基础资产是 PEPECASE,而不是 XCP!)
RGB/Taro 哪些地方优于 Counterparty?
除了因为 RGB/Taro 没有自己的Token因此给人印象更「干净」以外,还有许多技术创新,让 RGB/Taro 引人注目。
我认为,最大的技术优点是它们存储数据的方式。
如前所述,Counterparty 使用 OP_RETURN 输出,把可以更新其 账本/状态 的 Counterparty 消息存储的比特币区块链上。因为它使用 OP_RETURN,常规的比特币节点既不需要解析,也不需要存储这些数据;然而,如果你是一个 Counterparty 节点,你不得不存储一个包含了所有 Counterparty 交易状态的一个很大的账本。
而 RGB/Taro 使用客户端验证。
这意味着,账本或者说网络的状态不是存储在比特币区块链上的,而是每个需要存储这些数据的用户把数据存在自己的数据库里。
这个数据的一条 哈希值/证据 会存储在比特币区块链上;而且,通过有技巧地使用默克尔树,你只需要存储你想要交互的Token的数据。
举个例子,在 Counterparty 中,我是 Alice,我要给 Bob 发送 1 RAREPEPE,然后 Charlie 要给 Daid 发送 1 SATOSHICARD,我必须存储 Charlie 和 David 们的状态的记录,即使它们跟我的交易完全无关。Charlipe 和 David 也可以看到我发给 Bob 的交易,所以它的隐私性会差一些。
而在 RGB/Taro 中,我可以忽略所有跟 Charlie-David 交易有关的数据。如果 David 后来发送 SATOSHICARD 给我(Alice),我可以在那时候再存储和验证数据。
最终让 RGB/Taro 更加隐私的是,第三方将无法知道我的交易的内容,除非我主动向他们曝光。这也意味着我可以存储更少的数据。这个 哈希值/证据 跟一个包含在 tapscript(taproot 脚本)中的常规比特币签名是没有分别的,所以 RGB/Taro 交易看起来就跟常规的比特币交易一样。Counterparty 交易是透明的,因为他们用的是 OP_RETURN,因此可以被(也曾经被)节点和矿工审查。
(注:似乎 RGB 也允许你使用 OP_RETURN(而非 tapscript)来存储哈希值,但是,它是一种泛用的哈希值,无法跟其它基于哈希值的 OP_RETURN 协议——比如 opentimestamps——区别开来。)
RGB/Taro 是新项目(有风险资本支持)可能也能激励和资助更多开发者开发协议,最终创造出更好的工具、更流畅的钱包,等等。
许多从 2014 年开始资助和开发 Counterparty 的公司后来都破产了,或者迁移去了别的链(比如以太坊),让开发速度变得缓慢,因为整个生态很大程度上依赖于社区的捐赠。
Counterparty 哪些地方优于 RGB/Taro?
RGB/Taro 的客户端验证特性的一个缺点是,如果我弄丢了我的数据而且其他人都没有备份,那么我就无法再发起交易了,所以实际上就是弄丢我的资产了。
而在 Counterparty 中,状态可以随时从比特币区块链上重新解析和计算出来。
主观上来说,我也认为,资产用名唯一的特性,让 Counterparty 更适合于「收藏品/NFT」。
就功能而言,Counterparty 也领先于 RGB/Taro,它允许用户发行资产、转移资产、接收资产、在去中心化交易平台上交易、分红、批量发送、创建自动售货机,等等。
Counterparty 也有一个现成的生态,社区已经开发了很多年了。
哪些地方 RGB、Taro 和 Counterparty 做的都不好?
我个人认为,所有这些协议都有一个问题,就是它们需要发起链上交易来转移非同质资产和同质化资产的所有权。技术上来说,你可以在它们上面使用一种同质化Token(比如稳定币)建立一个闪电网络。但是,放到 NFT 上,我认为人们设想的有用场景是实现不了的。
一个例子是拿 NFT 来博彩。热门的游戏每一秒会执行几千次甚至几百万次交易,如果每一笔交易都需要发起一笔链上的比特币交易,那就完全无法扩容的,这会导致只有少数用户能够玩上游戏,而且还要支付很高的手续费。我曾经在 2017 年目睹这样的事情,那时候我拿 Counterparty 来玩游戏,玩家必须为交易价值 1 美元的游戏物品支付 10 美元的手续费,而且还要等待几天才能看到交易确认。
在这方面,RGB 和 Taro 也没有太大变化,RGB 支持批处理交易(Counterparty 也可以)。但我希望这些协议在未来可能出现的比特币侧链项目上找到更好的安身立命之所。