注:原文作者BarnabéMonnot是以太坊基金会的研究科学家,他的研究方向是算法博弈论、大型系统以及加密经济学。
Rollup是一种引人入胜的原语,它们将成为以太坊的首选扩容方式,并为其运营提供广阔的设计空间。在所有方面,rollup扩展了基础层协议,保留了它的大部分属性。重要的是能保证链下执行的正确性,以及执行背后数据的可用性。而如何实现两者都取决于设计者。
最近,我开始对rollup的经济学角度感兴趣,而这不仅仅是一个理论上的问题。基础层的费用很高,我们应该积极努力提供用户可负担得起的价格进行交易的空间。更好的经济学,意味着更好的定价,也意味着用户们会更快乐。
那么,我们应该如何具体考虑rollup的经济学呢?我们将首先确定在rollup系统中交互的各方、他们的角色和职责。完成这个步骤后,我们梳理了rollup系统的各种成本、收入和费用,为我们提供了如何驾驭这一广阔设计空间的线索。
Rollup系统中的参与者
为了简单起见,我们将考虑三种不同的角色:
用户:用户们在L2网络上发送他们的交易,就像在L1上一样。他们拥有L2上的资产,并与部署在rollup上的合约进行交互。rollup运营商:这个角色包含了很多其他角色,rollup运营商代表处理L2网络上的交易所需的所有基础设施。实际上,我们有发布交易批次的定序器、发布声明的执行者、报告欺诈证明的挑战者以及计算有效性证明的验证者。基础层:保护rollup发布的数据的协议。考虑一个保证数据可用性并减少结算功能的协议就足够了,但你也可以考虑一个通用结算引擎,例如以太坊的。
我们的扩容故事当中的三个角色:用户在L2上进行交易,rollup运营商在用户和基础层之间作为一个接口,而最终的数据发布到基础层
Rollup成本
在这篇文章中,我们采用rollup的“系统”视图,重点关注成本、收入和费用。运行一个系统会产生成本,即所谓的“能量沉没成本”,简单说就是从系统内部流向外部的价值。这个系统还可能会获得收入,这是相反的,我们称之为“能量来源”,简单说就是从系统外部流向内部的价值。而费用将“来源”和“沉没成本”连接在一起,在整个系统组件中转移价值,以便每个组件都能适当地执行其功能。
例如,在之前关于EIP-1559的文章?中,我解释了如何分解用户支付的交易费用:
包括交易在内的部分费用归运营商所有:在PoW基础层的情况下,矿工费用补偿了矿工增加的叔块风险。这项费用使整个运营商承担了发布区块的成本,这也是我们用户在发送交易时默认使用的1或2Gwei。剩下的费用用于支付优先于他人的权利,从而为拥堵定价。这个费用会让整个网络及其用户遭受额外的拥堵。这就是L1基础费在正常情况下的目标。好消息是,我们将使用一些相同的方法来了解rollup成本。EIP-1559成本只涉及到两方:用户和基础层。而对于不同的架构和位于用户和基础层之间的运营商,我们必须将运营商的特定成本与基础层的特定成本分离,我们将在以下的部分讨论这点。
L2运营商成本
Rollup必须找到愿意花费计算资源来处理Rollup数据的运营商,即他们要维护一个tx池、序列批处理、计算状态根/状态差异/有效性证明等。这是一项有形成本,量化了运营商背后运行基础设施所需的美元成本。
L1数据发布成本
在数据发布成本这一点,是值得花时间讨论的,因为这确实是rollup经济中的新成本。一旦运营商聚合了足够大的tx集,他们就需要将该tx集的压缩摘要发布到基础层。目前,这并不是以一种特别优雅的方式完成的:数据发布只是将其发布为“CALLDATA”,这是一种允许发送方添加任意字节序列的tx属性。
通常CALLDATA保存对交易调用的智能合约方法的引用,以及该方法的输入。将rollup运营商视为调用L1“rollup链“智能合约的某些“registerCompressedData”方法可能会有所帮助,其中表示压缩交易的字节blob作为其参数。这是Optimism的“规范交易链”合约的一个例子?。
用户发送常规交易,运营商将其压缩并发布到基础层的rollup链智能合约
发布数据的成本,是由基础层承担的,为了在以太坊上发布数据,当前数据的市场价格由EIP-1559管理,其中CALLDATA的每个非零字节消耗16gas,而每个零字节消耗4gas。对于多维EIP-1559,例如,正如Vitalik提出的简单Sharding-formatblob-carryingtransactions,CALLDATA的价格可以在其自己的EIP-1559市场上找到,将数据市场与传统执行市场分开定价。
在这个Duneanalytics仪表板?中,我尝试整理了由几个主要rollup二层网络发布的数据。我不清楚自己是否捕获了所有的rollup,尤其是zk-rollup二层网络,如果你发现有问题的地方,请告诉我!:)另请参阅Aditi最近发布的帖子《EthereumRollupCallDataPricingAnalysis?》以及L2fees.infoL2拥堵成本
除了上面提到的两个成本之外,还有第三个更无形的成本。每当rollup总区块空间的供应无法满足现有市场需求时,就必须对稀缺资源进行分配。对于时间不敏感的用户,他们只需要正常排队即可,拥挤的系统对他们不会造成价值损失,但是当用户产生等待成本时,他们就会尽量减少延迟,对于排在队列后面的用户,他们的福利减少是整个Rollup系统的一个成本。
通常情况下,系统会依靠费用市场来对稀缺资源进行分配,使成本明确。如果没有费用市场或某种形式的拥堵定价,用户要么“及时支付”,要么贿赂链外的区块提议者以供纳入,要么反复重新发送其交易,以保证其中一笔交易被采用。在所有这些情况下,用户都通过消耗资源来防止这种损失。
Rollup收入
现在我们已经清楚了Rollup的成本,我们将尝试对系统收入进行分析。这里我们区分了两个主要来源:交易价值以及发行。
交易价值
用户通过Rollup而不是其他方式进行交易,因此他们准备为服务支付费用。这里的价值是指用户通过将他们的交易包含在Rollup中而获得的效用。为了纳入Rollup,如果我有50美元的效应费,而最终我支付了2美元,那我剩余的价值为48美元。无论是谁在收取费用,他的收入都是2美元,但从rollup系统的角度来看,初始的流入价值是50美元。
第二,当交易包含正MEV时,例如,交易是某笔DEX上的三明治swap交易,这个数量就会被添加到我们的交易价值概念中。在这一点上,谁接收这笔价值并不重要。这里唯一重要的是,我们的初始交易给整个系统带来的价值,要比原始用户从中获得的价值要多。凭此,我们可得出:
交易价值=用户价值+MEV发行
第二个收入来源是发行。在基础层,区块生产者以新铸造代币的形式获得收入,这是网络的原生加密资产。这种收入抵消了区块生产者的基础设施成本,只要是有利可图的,就会有更多的区块生产者加入。
假设rollup能够铸造自己的token,并且这种token具有价值,那么这个rollup可能会通过发行新代币来支付运营费用。这里的模型更加模糊,有多种方式将收入来源用于rollup成本。现在,让我们仅考虑有可能发行有价值的代币,并通过这一行为给系统带来更多价值。
明确rollup经济联系
总而言之,一个rollup系统包含了三方:用户、rollup运营商以及基础层。运行系统会产生三种成本:运营成本、基础层数据发布成本以及拥堵成本。而系统有两种收入方式:交易价值以及发行。
那现在,这就成了一个匹配游戏,谁在支付,以及什么时候支付。有些配对是很容易分的,比如rollup运营商必须向基础层支付L1数据发布费,他们必须在发布数据时按照基础层所报的价格支付费用。
当费用是动态的,定价是通过费用市场时,L2拥堵成本也是即时的。用户观察当前市场对rollup区块空间的需求,并根据可用供应调整他们的费用。例如,rollup可能希望在其网络上部署一个EIP-1559风格的市场机制,来管理L2交易的包含。然后可以使用L2基本费用,方便用户估计当前L2拥堵成本。
系统全视图,流入代表收入,流出代表成本,费用在各方之间转移价值。
预算平衡:rollup运营商的限制
让我们为系统添加一个新的约束条件:运营商预算平衡。我们假设rollup运营商不能亏本运营,即他们必须至少获得等于或大于其成本的收入。当然,这个假设可能并非总是成立的,但对我来说,如果我们关心运营商的去中心化,这对我来说似乎是很重要的。亏本运营的运营商,可能会排除资本不足的参与者,并限制运营商的数量。而运营商数量较少,会降低抗审查性保证,在最坏的情况下,用户必须强制通过基础层完成交易,并因此产生高额费用。
而发行代币,作为一个松弛变量可以派上用场,它可以确保预算平衡。每当运营商“太无利可图”时,他们就会离开系统,这会增加剩余运营商收到的代币份额,直到再次实现平衡。或者,当运营商“利润太高”时,新进入者会竞相分享利润,直到运营商再次实现预算平衡。
通过延迟付款维持运营商预算平衡
使用预算平衡规则,我们必须考虑运营商如何保持非负平衡。他们的本金流出是可变的,并与本金流入分开收取。我们假设运营商完全了解他们的L2运营商成本,并在交易时向用户报出准确的价格。但是他们应该如何向用户报出最终的L1数据发布成本,并在之后实现呢?
如今,rollup应用启发式方法来对冲L1数据发布成本的可变性。在一个例子中,rollup观察当前的L1基本费用,并在速率上加一个额外的缓冲区,提前向用户多收取费用,以防运营商以后发布数据时必须支付更多费用。另一种方法是根据L1基础费用的运行平均值向用户收取费用,以平衡长期波动。
在我看来,自然的解决方案是调用衍生工具,例如简单的L1basefee未来合约?。在交易时,向用户收取费用,以支付锁定基础层上发布数据的未来价格的成本。通过减少悲观的超额支付,节省的费用会转嫁给用户。研究此类衍生品的优化设计,目前仍然是一个开放式问题。
用户在交易时向运营商付款,但运营商必须按照基础层的报价支付数据发布费用,这是可变的
如何处理拥堵费用?
假设用户进行交易时,rollup完全可以为拥堵成本定价,那么现在就有了拥堵费用形式的收入。如今,在以太坊的底层,这些费用是被燃烧掉的。这样做的第一个原因是激励相容性:如果拥堵费用返还给区块生产者,那么协议基础费用将不再有约束力,这破坏了EIP-1559的用途。但燃烧并不是保持激励相容性的唯一选择。
有人提议,将所有“rollup排气”费用,即因经济外部性而产生的费用,直接用于公共产品融资。这是一个不错的解决方案,城市拥堵定价通常是为了改善公共交通系统,也就是说,它是用于补偿负外部性的资金,当对其进行相应定价时,可以提供这种收入。
请注意,我把MEV也放进去了……我们为什么要像考虑拥堵费用一样考虑MEV呢?首先,因为与拥堵一样,MEV也是一种外部性。发起一笔携带MEV交易的简单行为,为那些能够捕获它的人创造了积极的外部性。而外部性是“不匹配的价值”,也就是说,它们产生于一些原始的经济活动,这些活动平衡了有用的工作和该工作的报酬,但它们在过程中产生或破坏了一些额外的价值。
这在MEV竞拍的概念中得到了最清楚的阐述。在这种设计中,运营商根据他们可以从中提取多少价值,来竞争制作区块的权利。这种价值概念中隐含的是拥堵成本,用户通过相互竞标来表达。再一次,假设不允许运营商亏本运营,他们的出价必须反映他们从区块中提取价值的真实能力,即运营商将出价其批次中的用户费用加上他们从批次中提取的MEV。同时,假设所有运营商必须支付同等金额的L2运营成本,并且L1数据发布成本准确地向用户收取,我们得到:
用户费用=L1数据发布费用+L2运营商费用+L2拥堵费用运营商成本=L2运营成本+L1数据发布成本运营商收入=用户费用+MEV运营商利润=运营商收入-运营商成本=L2拥堵费用+MEV在一个运营商在有效市场中竞争,以赢得提出区块权利的世界中,运营商必须以竞标的方式放弃全部利润,也就是说,他们在批处理中可用的拥堵费用和MEV。这就是“滑入”系统的价值:第一来自用户防止因拥堵而造成的损失,第二来自初始交易引起的连锁反应。这个价值一开始就不是任何人的,那么为什么不应该以某种方式捕获和重新分配它呢?
拆解
这篇文章做了很多假设,例如,我假设了“运营商预算平衡”,因为我认为社区应考虑以批判的眼光来看待亏损运营的rollup,这意味着系统不会是去中心化的。发行代币有助于重建预算平衡,尽管它依赖于外部价格信号来协调运营商的激励措施。在这种观点下,运营商最好尽可能精确地定价,例如他们的L2运营商成本以及L1数据发布成本。这避免了未来收入不匹配的情况,即运营商期望更高的代币价格来覆盖其运营。
但这并不是在提倡一种特定形式的rollup经济学,设计空间仍然是敞开的。拆解L2运营商成本,揭示了我们在此尚未探索的更多复杂性,例如,支持去中心化基础设施的市场机构为zk-rollup生成有效性证明。关注rollup中特定类型的用户,例如从L2到L1或跨L2桥的快速提款服务,也将揭示用户需求的不同方面。有了关于成本、收入以及费用的清晰概念,现在我们就有望更容易地推断rollup应实现的结果和业务目标,以及实现这些目标的方法。
其他资源:
1、JohnAdler撰写的《等等,这都是关于资源定价??》,这为L2运营商成本,以及执行和数据可用性成本的可分离性提供了更多背景信息。
2、PatrickMcCorry、ChrisBuckland、BennetYee以及DawnSong撰写的论文《SoK:ValidatingBridgesasaScalingSolutionforBlockchains》
非常感谢AndersElowsson、VitalikButerin、FredLacs以及AlexObadia提供了许多有用的评论。
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。