比特币OG观点:请停止参与落后的BRC-20打新
原文来自 Twitter ,作者 @AurtrianAjian from BTCStudy;经授权转载,不代表 Odaily 观点
我听过离谱的事情,但不知道你们可以这么离谱。 请停止参与 “BRC 20 ” 打新,并且,抵制它。
你不应该再参加,因为从技术上来说这种落后的东西必定会被淘汰。你应该抵制它,因为它会造成 UTXO 集的膨胀,其应用的实际后果已近乎粉尘攻击。
之前我已经写过,像 BRC 20 这样的东西压根不能被称为 “协议”,因为它根本无法保护使用它的用户。但当时我没有深入了解,我不知道它其实比我想象的还要离谱。从表面上看,BRC 20 定义了同质化代币的两种操作:“铸造(Mint)” 和 “转移(Transfer)” ……
在每一种操作的每一步中,都需要发起比特币交易并在交易输入中写入铭文(Inscription,通过输入的见证脚本在区块中写入数据)。但是,在 BRC 20 中,这些写入铭文的交易所形成的交易输出几乎没有任何意义。这就是问题所在。仔细看上面那份文档你会发现,其说法是:
“BRC 20 的余额状态可通过聚合所有这些函数的活动得出”;但是,所有这些函数的活动都是通过铭文表现出来的,没有任何一个函数的有效性要求花费特定的 UTXO(乃至特定的聪)。不论是你通过铸造还是转移获得了一些 token,在你后续需要转移这些 token 的时候,都不需要花费这笔让你获得这些 token 的交易。
也即这些 token 实际上并不附身于比特币 UTXO,它们的状态完全由已经写入区块的铭文(以及这些铭文的顺序)决定;改变这些 token 的状态不需要你拥有解锁某个 UTXO 的能力。(唯一需要 UTXO 关联的是转移操作的两步,详见下文)
这种设计对协议的安全性、经济性(可扩展性)和去中心化都有重大影响。首先,因为它不附身于 UTXO,自然也就无法依赖于 UTXO 本身的抗重复花费机制。BRC 20 整个建立在基于区块交易排序的 “先到先得” 原则上,没有这种 “先到先得” 作为最终的后盾,它就根本无法防止负余额这种重复花费形式。
但是,基于区块而不是 UTXO 的验证机制,也使得它不可能创造出一种轻量的验证机制。不论如何,你都需要全量的区块数据,来找出一个账户的状态。(但 RGB 和 Taro 这样基于 UTXO 的协议就不需要。它们只需要区块头)这也使得,能够负担余额计算、索引的节点,相比之下会更少,也即去中心化的特性更差。
也许是为了降低计算最新状态(识别假币)的负担,BRC 20 定义了一种奇怪的转移机制:不论你如何得到了一些 token,你的转移都必须分成两步:第一步,将一些 token 转化为 “可转移” 状态(并指定接收人);第二步,将这些 token 实际转移出去,并由此将第一步的 “转移铭文” 作废。你的下家也一样。
这样的机制当然也影响了用户体验和经济性。不论你可以从铭文机制中得到多少的折扣,多发一笔交易都足以把你得到的好处再吃回去。此外,这种奇怪的、不利用 UTXO 的机制,也使得这样的 token 在使用基于比特币 UTXO 的智能合约(闪电通道、DLC,等)的时候,先天增加了障碍,落后于最新一代的协议。
所以我说,BRC 20 是一种落后的技术。当新一代的代币发行协议能够实现轻量的客户端、经济代价更小而且更容易接入现有的比特币生态的时候,BRC 20 还停留在通过消耗区块空间来获得可编程性的程度。你可以想象,当 RGB 和 Taro 这样的协议的生态涌现的时候,等待 BRC 20 的结局是什么!
吊诡的是,虽然 BRC 20 的铸造和转移明明不需要 UTXO 上的关联,它却为铸造设计了一种 “限额” 机制 —— 在铸造代币的时候,单个 UTXO 所能铸造的代币数量,是可以指定上限的。你应该能猜到这是为了干什么。没错,这是为了适应 “打新” 这个场景中的公平性要求。
它不能让一个人用一个输出把所有的 token 都 mint 出来,所以设计了这样的限制。但试想,需要用 UTXO 来占位的时候,这些 UTXO 就必定是小额的 UTXO —— 你把资金切得越碎,能够得到的新 token 就越多。结果就是 UTXO 集的膨胀。
这些用来打新的 UTXO,被明确地规划成 546 聪( P2P KH 输出)/330 聪(P 2 TR 输出),也即仅仅持平于 bitcoin core 的粉尘输出限额。花费它们本身是不经济的, 后续的转移操作也不要求花费它们,那么,它们很可能会永远留在 UTXO 集中,造成 UTXO 集的不可逆的膨胀。
转移操作同样会留下 UTXO。虽然理论上不需要这些 UTXO 是小额的,但在当前的工程实现中,使用的依然是小额的 UTXO。并且,因为 BRC 20 不要求 UTXO 连贯花费的特性,被永远留在了 UTXO 集中。
图表显示,自 2023 年 4 月 23 号(BRC 20 开启交易的时候)以来,比特币的 UTXO 集已经从 5 GB 膨胀到了 6.8 GB。我尚无法证明所有的膨胀都跟 BRC 20 有关,但这段时间的增长曲线已经比原来的增长曲线陡得多。需要引起注意。
抵制它。如果你是一个节点,你可以在节点的配置文件中增加这样一行:dustrelayfee= 0.00005 ,这会让粉尘输出的门槛提高 5 倍(该值的默认值是 0.00001 ,你可以酌情加减)。如果从前你的节点会转发带有粉尘输出的 BRC 20 交易,那么现在,你的节点将不再转发输出低于 2730 聪/1650 聪 的交易。
但是,如果这些交易能够进入区块,你的节点依然会保存这些交易以及它们的输出。如果你是一位开发者,请考虑开发识别 BRC 20 交易输出的过滤器,帮助我们将这些打新输出和转移输出从我们的 UTXO 集中删掉。我个人就会选择运行这样的过滤器。行动起来,保护比特币网络。
Bitcoin Price Consolidates Below Resistance, Are Dips Still Supported?
Bitcoin Price Consolidates Below Resistance, Are Dips Still Supported?
XRP, Solana, Cardano, Shiba Inu Making Up for Lost Time as Big Whale Transaction Spikes Pop Up
XRP, Solana, Cardano, Shiba Inu Making Up for Lost Time as Big Whale Transaction Spikes Pop Up
Justin Sun suspected to have purchased $160m in Ethereum
Justin Sun suspected to have purchased $160m in Ethereum