观点:BRC20应用的实际后果已经接近于粉尘攻击。

观点:BRC20应用类似于粉尘攻击。

BRC20设计的问题及其对协议的影响

在深入研究BRC20标准之后,我们发现它在设计方面存在一些问题,这些问题对协议的安全性、可扩展性和去中心化产生了重大影响。

BRC20标准定义了同质化代币的两种操作:铸造(Mint)和转移(Transfer)。每个操作的每一步都需要发起比特币交易并在交易输入中写入铭文。然而,在BRC20中,这些写入铭文的交易输出几乎没有任何意义,这就是问题所在。BRC20的余额状态是通过聚合所有这些函数的活动得出的,但这些函数的活动都是通过铭文表现出来的,没有任何一个函数的有效性要求花费特定的UTXO(未花费的交易输出)。因此,这些代币实际上并没有与比特币UTXO绑定在一起,它们的状态完全由已经写入区块的铭文决定。

这种设计对协议的安全性、可扩展性和去中心化都产生了重大影响。首先,由于BRC20代币不附属于UTXO,因此无法依赖UTXO本身的抗重复花费机制。整个BRC20协议建立在基于区块交易排序的“先到先得”原则上。没有“先到先得”作为最终的后盾,它就无法防止负余额这种重复花费形式的发生。

但是,基于区块而不是UTXO的验证机制也使得无法创造出一种轻量级的验证机制。无论如何,都需要全量的区块数据来找出一个账户的状态。这也导致能够负担余额计算和索引的节点数量相对较少,从而降低了去中心化的特性。

令人疑惑的是,尽管BRC20的铸造和转移操作并不需要UTXO上的关联,却为铸造设计了一种“限额”机制。在铸造代币时,单个UTXO所能铸造的代币数量可以被指定上限。这样的设计显然是为了适应“打新”这个场景中的公平性要求。它不能让一个人用一个输出将所有代币铸造出来,因此采取了这样的限制措施。

然而,需要用UTXO来占位的时候,这些UTXO必定是小额的UTXO。也就是说,你在尝试铸造更多的代币时,需要将资金拆分得越碎,才能得到更多的新代币。结果就是UTXO集的膨胀。

综上所述,BRC20在设计上存在问题,这导致协议的安全性、可扩展性和去中心化受到影响。为了解决这些问题,需要改进BRC20标准,以提高其性能和效率。


表格:BRC20设计问题及影响总结

设计问题 影响
铭文写入交易输出缺乏意义 降低验证机制的轻量性
不能依赖UTXO的抗重复花费机制 无法防止重复花费形式
基于区块而不是UTXO的验证机制 负担余额计算和索引的节点数量减少
铸造操作设计的“限额”机制 增加UTXO集的膨胀
铸造的UTXO必须为小额UTXO,导致UTXO集膨胀 降低去中心化特性