比特币现金的UTXO集的增长一直被很多人视为扩容的最大障碍。为了解决这个问题,yours上一位名为Stein Håvard Ludvigsen 的作者提出了他的解决方案。以下是他针对这个问题的分析。
首先他明确表示他要解决的问题是用户如何为UTXO所占的空间付费。目前用户需要为交易所占用的区块付费。如果用户为正在增长的UTXO集的交易支付的费用与正在缩小的UTXO集的交易支付的费用是相同的,这将对系统非常不利。
就像下面这张插图一样,汽车应该根据它们的重量来定价吗?当然不会,这种价值取决于很多因素。因此这个问题也是如此。
之前针对这个问题有很多提议,但它们总是以某种基于数字魔术和货币时代的公式而告终。所以这个作者提出的简单的解决方案就是:让矿工们针对不同的交易给出不同的价格。如果你的行为增加了UTXO集,你就需要付费。如果是缩小了UTXO集,你将获得对应的奖励。这需要解决的就是矿工如何发出信号为交易定价的问题。当然交易的其他方面也可以正确的定价,比如CPU负载。
矿工们可以在文本中简单的列出他们面对不同的交易是如何进行定价和权衡的,而不是提出“完美”的公式/比率。通过这种使用标准惯例的方法将能够更轻松的自动提取数据。然后钱包可以在估算交易费用时使用这个统计的价格信息。
UTXO扩展的价格可能是A *(numberOfOutputs-numberOfInputs),其中A是矿工文本中记载的影响UTXO扩展的价格因素。当投入大于产出时,这将对总交易费产生负面贡献,甚至在某些情况下甚至会给出负的交易费用。如果我们遵循这一惯例,可以在不对协议进行任何更改的情况下进行负费用:矿工向交易中的第一个输出支付负费用。
我举一个例子:
比特币现金发展迅速,UTXO快速增长有一个巨大的非线性技术障碍,而处理交易的其他方面是非常廉价且微不足道的。矿工的价格A如此之高,以至于人们对单个输出的大量投入进行整合,实际上是从矿工那里接收到同一输出的付款。
负费用开启了UTXO占用的可能性。当UTXO扩展的成本很低时,我可以存下大量的输出,并且当我得到奖励时,我会在以后整合输出。这看起来像非常消极的副作用。但它真的吗?
作者认为缺乏负面费用是一种人为的配额,其中零是一个神奇,而且不需要的数字限制了矿工的选择。矿工们应该可以自由地付钱请人把生锈的汽车残骸从他们的草坪上搬走,或者巩固他们的产出。只有当矿工将UTXO空间定价错误时,UTXO占用才会成为一个问题。
运行节点的成本非常小,以至于今天这些数字可以忽略不计。想象一下一个巨大的矿场,周围全是吵闹的ASICS,旁边是一个小小的树莓派(raspberry pi)节点。也许摩尔定律等将使运行一个节点的成本永远不重要。但如果没有,正确的交易定价是为运行节点所需的硬件付费的简单解决方案。
参考链接:https://www.yours.org/content/utxo-growth--solved-934c8a380558