网络流量和分层定价

图片

最近的一篇博文概述了Cardano网络将通过一些方式进行灵活和发展,以满足智能合约和DeFi的全球需求。同样,升级用于Cardano的交易费系统也将成为必要。

目前的系统是简单而公平的:每笔交易都被同等对待,用户不可能通过支付更高的费用来改变他们的优先权。只要吞吐能力与需求相当,这种方法就能很好地发挥作用。

然而,也有缺点。随着Cardano使用量的增加,最终会出现这样的情况:即使对参数化进行调整,也无法将所有交易纳入区块链。虽然增加主链的容量和/或将交易转移到Hydra或其他第2层解决方案可以缓解这种担忧,但核心系统仍然必须在所有可能的情况下随时以敏捷的方式工作。

这在发生拒绝服务(DoS)攻击的情况下尤其重要。在系统现状下,攻击者可以利用公平待遇,把他们的恶意垃圾邮件当作合法交易,增加其他人的等待时间。有一些措施(例如,与交易在点对点网络中的传播有关)使这种攻击在技术上具有挑战性。然而,为了提供额外的保护,我们希望能够在不损害整个系统的公平性和价格效率的情况下增加这种攻击的成本。

这是IO集团的研究团队成员今年一直在研究的课题。在这篇文章中提出的结果方法保持了Cardano交易处理的支柱(可预测性、公平性和廉价的访问),同时减轻了更大需求可能产生的问题。我们的方法为区块链提出了一种新颖的交易费用机制。设计的关键是根据使用情况将每个区块划分为三个 “层级”。每个层级占最大区块大小的固定百分比,并为不同类型的交易而设计(图1)。这些层级,以及我们目前正在分析的建议分割,将是。

公平(50%)
平衡(30%)
即时(20%)

图片

图1. 每个区块将被分成三层。
我们将最后讨论公平段,因为它的工作方式与其他两个不同。平衡和即时的工作方式是有一个 “费用门槛”,每个门槛是不同的。为了被纳入一个区块,交易发行人将指定他们需要的服务层级。这可以通过设置交易的最高费用来实现。然后,每个区块将从即时层开始填充,然后是平衡层,最后是公平层。同一层级内的类似交易将支付相同的费用。为了使这种选择变得简单,每笔交易将只被收取能保证其进入区块的最低费用。在每个区块之后,即时层和平衡层的费用将被动态和确定地更新(反映以前区块的需求水平),以确保每个区块使用其目标百分比。

即时层和平衡层的区别在于费用的更新方式,特别是根据当前负载调整的 “速度”。即时服务的门槛将始终高于平衡,并将对需求作出更敏锐的反应,确保要求它的交易将尽快得到服务。平衡的门槛将更慢地适应和更稳定:这将使它不适合时间敏感的交易,但将提供一个更低、更可靠的价格,代价是更多的等待时间。

平衡层和即时层旨在处理具有不同紧急程度的交易,而公平层则处理普通交易。公平段的目的是作为Cardano现有系统的改进,保持低费用(或在未来甚至是稳定的,通过与一篮子商品/外汇挂钩,如关于稳定费用的帖子所解释的),并从用户的角度消除任何不可预测的因素。只要需求不高(而且交易适合一半的区块),这个部分就会像Cardano现在这样运作。

然而,一旦需求上升,一个特殊的机制将为公平层的交易启动。该机制将以独立于费用的方式过滤交易,并以优先级功能为基础。这方面的一个例子是,根据交易的年龄和UTXO的数量给予优先权。特别是,一个给定的交易的优先级将等于每个输入的金额乘以其年龄的总和,然后除以交易的总大小(字节)。这个优先级可以和一个阈值(在每个区块后动态更新)一起使用,这个阈值将过滤那些优先级太低的事务。这样的方法保证了每笔交易在低价和可预测的情况下的有效性,并限制了恶意攻击者(或需求激增)对价格的影响,因为它总是提供一个廉价的途径进入每个区块。

这里提出的分层定价理念也扩展和澄清了我们在stablefees帖子中介绍的乘数的概念。从这个角度看,三个层级中的每一个都与一个确定计算的乘数有关(公平层级的乘数总是1),其值取决于各层级在以前区块中的拥挤程度。

这种机制不同于目前的定价方法,如比特币或以太坊(甚至以太坊改进提案1559),其中有一个可变的费用,每个交易必须超过才能进入一个区块。这种方法的缺点是,每个人需要支付的费用是由 "最富有 "的消费者决定的。更糟糕的是,这是由最富有的消费者支付的费用,以使其 "立即 "进入一个区块。此外,即使费用主要是供求关系的函数,这些特殊类型的交易费用机制会无意中 "塑造 "需求,或无意中提高价格,因为用户不清楚最佳竞价策略。想象一下,如果比特币的交易费突然减半,大家都忘了以前的交易费是多少,那么交易费还会上升到现在的水平吗?对这个问题的回答是 “不”,这说明了这种机制的弊端,也是分层定价在设计上排除的一个困境。

分层的方法更加精细。它理解不是每笔交易都有相同的需求,确保不同的用例可以同时发生,并使用户容易选择所需的服务类型。通过这种方式,分层定价使得在管理主链的拥堵期的同时,有可能拥有可预测和公平的费用。结合将在以后的文章中揭示的设计改进,重点是增加主链的原始吞吐能力和处理能力,分层定价显示了Cardano将能够适应任何情况下的交易处理需求。

我想感谢Giorgos Panagiotakos、Aggelos Kiayias和Elias Koutsoupias对这篇文章的贡献。我们一起组成了研究小组,致力于这个机制的设计。很快就会有一份技术论文。