ZERO:给以太坊节点MEV建模:节点们的收益是多少?_BCZERO

为了纪念合并,一个巨大的Ethereum标志已经竖立在卢浮宫的中央。

概要

工作证明挖矿时代结束后,执行层交易费用将支付给权益证明验证者。由于EIP-1559费用的燃烧,实际支付给验证者的剩余费用中绝大部分是「最大可提取价值」。

合并后,Ethereum将有固定的12秒区块间隔,而不再是平均为13.5秒的可变区块间隔。然而,该变化可能不会对MEV的不稳定性造成太大影响。

自2022年3月至2022年8月,到达矿工手中的MEV水平虽然较低,不过却一直相对稳定。

基于合并后向验证者支付相同水平MEV的模型表明,验证者的中位回报率为6.1%APR,下四分位数为5.3%,上四分位数为7.3%。这是基于过去6个月的数据。

运行多个验证者或与其他验证者共享收益的用户,其收益的不稳定性水平会更低。

引言

随着Ethereum不断过渡到权益证明信标链,并将其作为主网的共识引擎,许多媒体开始集中报道工作证明挖矿时代的结束,以及随之而来的能源使用问题和以太币发行量的减少。然而,信标链接管交易收录和排序职责的另一个后果是,目前支付给矿工的交易收录费用将转而支付给出块者。也就是说,任何随机选取的验证者将每12秒发布一个区块。

挑选验证者进而出块的方式与现有的程序没有发生改变,正如我在关于验证者收益的第一篇文章中所提到的那样,即使验证者完全参与,这一过程也会在收入方面产生一些随机性的变化。因此,对于本文来说,问题在于,验证者收益将在多大程度上受到它们将交易纳入Ethereum执行层而收到的费用的影响。

MEV的具体含义

在标题中,我把这些执行层的费用称为「MEV」,但这可能会造成一些混淆,因为MEV一词既可以表示「矿工可提取的价值」,也可以表示「最大可提取的价值」——这两个词似乎都不能精准描述验证者在合并后的Ethereum区块中收录或排序交易而得到的收益。为了减少歧义,Flashbots团队引入了「已实现的可提取价值」一词,用以描述实际获得的价值,而不是理论上的最大值。不过,这种命名方式也会造成一些误解,我们仍不能明确该价值是由搜索者「实现」的价值,还是实际支付给矿工/验证者的金额。因此,为了简单起见,由于人们已经广泛使用「MEV」这一术语,我在这里用它代指矿工/验证者获得的收入。

那么,如果我们本就可以使用交易费用这样直接的词语,为什么还要选择一个花哨的术语——MEV呢?原因主要有以下几点:自从Flashbots引入了Ethereum主流执行客户端geth的分叉后,交易收录与排序的收入就发生了巨大的变化。截至2022年8月,大约74%的Ethereum哈希率都在运行mev-geth,这样矿工可以收到更多高时效性的交易捆绑包来获取收入,并得到直接支付的奖励。

此外,Flashbots、Ethereum基金会和客户团队合作开发的mev-boost可以让为验证者从合并后相同的收入流中获利。事实上,无论验证者是否选择运行mev-boost,他们收到的出块费用在广义上仍然属于MEV。更重要的是,自从伦敦硬分叉引入EIP-1559后,交易费中的拥堵费不再支付给矿工,而是都被烧掉了。这说明,现在构成矿工收入的绝大部分是那些因其捕获价值而向其支付特殊溢价的交易,即MEV,因为那些低时效性的交易只会向矿工支付一笔象征性的费用。

早期模型

在我之前关于验证者奖励的文章中,我只关注了验证者参与信标链而获得的收益。在此基础上,2021年7月,Flashbots的AlexObadia和TaarushVemulapalli介绍了他们对验证者奖励引入MEV的影响的早期成果。为此,他们专门从大约10万个区块的样本中获取了Flashbots交易捆绑包数据。首先,他们对各区块进行了平均化处理,并为每个区块应用了固定数值的MEV。然后,他们查看了该数据集中的第1和第99位百分位数,以确定验证者的收入范围。

在这篇文章中,我将通过以下方式进一步改进这种方法:

1.观察费用收入的整体情况,因为来自执行层的所有矿工费用收入都可以被认定为某种MEV

2.采用更大规模的数据集,并考虑MEV水平随时间的变化情况

3.对整个结果的分布进行建模

4.计算运行多验证者用户的结果分布变化情况

在上述文章中观察到的一点是,我们很难推断EIP-1559对支付给矿工的费用产生了怎样的影响。不过,我们现在已经有了大量这方面的数据。在下图中我们可以看到,原先支付给矿工的那部分费用在伦敦硬分叉后反而从以太币供应中抹去了。显然,伦敦硬分叉之前和之后的数据不具有可比性。出于这个原因,在这篇文章中,我们将只处理伦敦硬分叉之后的数据。

#imports/definitions/dbconnection

#getblocksummarydatafromdbaspandasdataframe

#plotdailyfees/coinbasetransfers

选择数据集

在本篇文章中,我们将利用历史数据对未来做出预测。正如我在上一篇文章中解释的那样,由于伦敦硬分叉中EIP-1559的实施,交易费市场在2021年8月发生了重大变化,该硬分叉在区块高度达到12,965,000时上线,因此在这之前的数据与最近的数据没有可比性。这之后的硬分叉是?GrayGlacier,它在区块高度15,050,000时上线,并推回了Ethereum的难度炸弹。但在这之前,平均区块间隔已经开始发生变化。之后区块间隔还会出现变化,不过似乎对可用的MEV影响有限,所以我们不用担心?GrayGlacier?之前平均区块间隔略有增加的问题。

因此,自伦敦硬分叉以来,我们得到了一年多的可用数据。事实上,我们不妨采用正好一年的数据,从而为费用市场结算留出时间。我们将关注区块13,136,427到区块15,449,617这一范围内的区块。这些区块中包含了一整年的数据,总计大约230万个区块。

选择了这个区块范围后,我们需要确定每个区块的矿工有多少收入。为此,我们将使用Flashbots的mev-inspect-py工具,该工具用于刮取区块的「Coinbase转帐」交易,并汇总费用。这是因为,目前支付矿工的方式主要有两种,其中包括Flashbots捆绑包带有MEV的交易——要么设置一个足够高的交易费用,要么作为交易的一部分直接支付给矿工。由于Gas费效率更高,搜索者一直倾向于使用Gas费用而非Coinbase转账来支付矿工。尽管如此,我们还是希望将这两者都包括在我们的数据集中,以获得更全面的信息。

为了确定每个区块的MEV数额,我们必须做更多的工作。首先,我们必须排除矿工支付给自己的交易,因为这些交易不存在经济意义。因此,我们需要识别由一个矿池控制的多个地址,然后根据每笔交易的发送者地址是否在一个矿池组中进行标注,并根据产生该交易的矿池来标注每个区块。做完这些之后,我们就有机会生成一个每个区块的MEV摘要,其中减去了EIP-1559烧掉的以太币以及池内转账,结果保存为Postgres数据库中由mev-inspect-py填充的额外表格。

最后,结果显示,其中有一笔交易的交易费比其他任何交易都高得多。事实上,这笔交易费本身就价值约2300万美元,在这一时期提取的所有MEV中占了很大比例。在这种情况下,高额费用便是一个出错的结果,而且绝大部分的费用都已经被矿工退回了。考虑到这一点,我选择将这笔交易从数据集中删除。

区块间隔

在我们开始更详细地研究矿工收入在区块间的分布之前,我们应该先暂停思考一下合并后的另一个变化,即区块间隔从随机变为固定的12秒区块间隔。直觉上来说,我们可能认为较长的区块间隔会让矿工有更多的机会从传入的交易中收获MEV,从而更多的区块利润。我们可能也会认为区块间隔的变化会大大影响矿工的收入。

这些问题要想调查清楚光靠链上数据的话肯定是行不通的,不过我也在附录中对这一问题进行了说明。现在,我只想说,从表面上看,可变区块间隔似乎对矿工收入的影响非常小。在下文当中,我将通过将所有矿工的收入按这一比率进行反比例计算,以说明区块的平均频率略有增加,从平均间隔13.5秒到12秒。不过,我不会采用建模的方式来说明从可变间隔到固定间隔期间所发生的变化。

历史MEV水平

让我们来通过下面两张图来看看一个矿工在一个典型的区块中可望获得多少MEV。从直方图我们可以看出,每个区块的矿工收入往往非常低。第二张图可能稍微不那么直观,但实际上却提供了更多的信息。我们可以看到,矿工收入的中位数是0.07ETH。图中还标出了其他几个点,价值最低的1%的区块根本没有向矿工支付任何费用,而价值最高的那1%的区块则向矿工支付了超过1.8ETH的费用。如下表所示,价值最高的0.1%的区块向矿工支付了12.5ETH或更多的费用。

#plotblockrevenuehistogramandempiricalcumulativedensityfunction(ecdf)

MEV变化趋势

上面的直方图和ECDF是基于我们整个一年的数据,并将其视为静态分布来进行绘制的。然而,我们也许会认为,矿工收入水平会随着时间的推移而变化,矿工收入的分布将取决于各种因素,如链上活动水平、支付给矿工的可用MEV比例的变化趋势,或与L2区块链相比,基础链上的可用MEV数值。

为了清楚这一点,下图显示了数据集中每一周的区块奖励中位数,我们之前看到的总体中位数由红色虚线表示。以周为单位的原因在于,我们发现链上活动每周会出现一定的周期变化,比如周末的活动就相对较少。因此,通过对这些数据进行分组并提取中位数,我们消除了周期性的干扰。很明显,在这个图表中矿工收入的每周中位数水平整体呈下降趋势,且波动逐渐缓和。如果我们把该图标用橙色虚线一分为二,那么我们就可以把这两半看作是独立的两个部分,代表了在不同的网络/市场条件下支付给矿工的MEV水平。然而,我们需要从中看到的是,我们不能对基于历史数据做出的有关未来收入的任何估计报以很大的信心。

#Lookatvariationacrossthedataset

由于我们长达一年的数据集中的矿工收入水平并不稳定,我们可以用更为详尽的方式来比较数据集的前后两个部分。下图展示的是数据集两个部分的ECDF,其中蓝线表示的是数据集的前半部分,橙线表示的是后半部分,而蓝线则明显低于橙线。X轴上显示的是收入数据,而在每个四分位数,矿工收入水平在数据集的前半部分都会更高。前面图表中显示的整个数据集的ECDF将落在这两条线之间。如下表所示,每个区块在后六个月的中位数MEV都大致等于前六个月的一半。

#GenerateECDFsforthefirsthalfofthedatasetversusthesecond

模拟合并后MEV的回报率

因此,结合我们对矿工历史区块收入的了解,让我们来模拟一下验证者在一年中MEV的收入情况。由于我们现在考虑的主体是验证者而不是矿工,我将用32个ETH的百分比回报来表示结果。我们还没有得出每个区块收入分布的具体分析表达式。这使建模工作略显复杂,所以在这种情况下我们将使用蒙特卡洛模拟法。

这种方法的原理很简单:生成一个均匀分布在0和1之间的随机数,并使用这个数字从我们之前计算的ECDF中进行查找;然后,将该区块的收入分配给一个随机选择的验证者;最后,重复这个过程,直到我们得到一年的模拟区块。我们将进行三次这样的计算,分别使用全年数据集得出的ECDF,以及将数据集拆分成两个部分后分别得出的ECDF。

我们将假设验证者的表现良好。我们还将使用一个大小为420,000的验证器集,该数值接近于2022年8月验证者集的规模。这个验证者的数量也正好可以分为32个组,这在我们以后研究验证者组别时将非常有用。

#simulateayear'sworthofblockproposals

#plotECDFandhistogramforsinglevalidatorreturn

因此,以中位数为基准,当基于「高MEV」期间(即2021年9月至2022年2月)的数据时,MEV似乎为验证者的APR增加了约3个百分点,而当我们使用「低MEV」期间(2022年3月至2022年8月)的数据时则增加了约1.5个百分点。然而,一些验证者在一年的时间里几乎没有从MEV中获得任何回报,而少数幸运的人却可以获得超过100%的收益。

建立完整的验证器回报模型

现在我们可以看到近似的验证者MEV收益,接下来让我们通过引入证明和同步委员会的奖励来完成模拟。由于?beaconcha.in?经常显示信标链上的参与率超过99%,我们这里为了简化可以默认全部参与。在实践中,如果我们今天在主网上看到的情况在合并后仍然存在,那么验证者收益发生变化的主要原因将是随机分配的出块者职责、同步委员会和MEV,而不是由于验证者的表现。

因此,在下面的模拟中,所有验证者都会因其优越的的认证表现而获得相同的奖励,但每256个epoch会随机选择一个由512个验证者组成的委员会,然后该委员会因其在随后256个epoch的全部参与而获得完整的同步委员会奖励。每个区块的MEV选择方式与之前相同,但现在验证者可以获得信标链出块奖励,以及执行层交易费用。

#modelfullvalidatorreturnsusingpreviouslycalculatedMEVECDFs

#plotsimulatedfullvalidatorreturns

所以,根据我们全年的历史MEV数据集,并考虑到平均区间的减少,我们得出「中间50%」的验证者的模拟回报率大约在5.7%和8.5%之间。同时,「最幸运的1%」验证者的年回报率将高达30%,而「最不幸运的1%」却只有4.2%。整套系统中最不赚钱的验证者仍然取得了3.8%的回报,而最赚钱的验证者在这一年中的回报率超过4500%。不过,这个模型中的回报率并不包含复利。在实际情况中,赚取如此大回报的运营商可能会选择建立新的验证者,并因此赚取更多收益。

运行多个验证者

我们要考虑的最后一个问题是,运行多个验证者的质押者有着怎样的收益分布情况。在下面的图表中,我们模拟集中的验证者被分为2、4、8、16和32个验证者的组别,用于比较不同组别大小的ECDF年回报率。图中的红色虚线表示的是整个验证者集的平均回报率。我们预计,平均回报率是大规模验证者组别在扣除任何费用之前的收入。

#calculateECDFsfor1,2,4,8,16,32validators

从表中我们可以看到,验证者规模越大,ECDF线也会变得越来越陡峭。这相当于直方图的峰值变窄,说明随着验证者规模增大,收益波动率也会不断减少。不仅如此,我们还能观察到,虽然运行单一验证者的四分位数范围约为2.8个百分点,但对于32个验证者的小组来说,四分位数范围只有1.2个百分点。

这就是我们所期望看到的结果——通过运行多个验证者,我们可以平滑来自共识层和执行层的奖励波动。让我没想到的是,由32个验证者组成的群组的收益波动率只比单个验证器的收益波动率低2.3倍左右。这对于一部分来说是相当不错的结果,因为他们希望自己的回报率能更为稳定且更好预测,而这也将会让数据分布更为集中。对此,BarnabMonnot已经做了一些初步的工作。他发现财富集中化的趋势可能是奖励分配不均的结果,不过这仍然是一个有待研究的问题。

结论

在这篇文章中,我们尝试使用过去的数据来模拟合并后执行层费用对验证者回报的影响。我们发现,当我们使用来自MEV充足时期的数据时,MEV为验证人的回报增加了约3个百分点,但当使用来自MEV较少时期的数据时,这一数字下降到1.5个百分点。在两种情况中,收益水平都相当不稳定,有些验证者在一年中几乎没有收到MEV,而有些验证者的年回报率则远远超过100%。当我们加入共识层奖励时,我们发现表现良好的验证者将获得至少3.8%的年利率,中位数年回报率大致在6.1%到7.6%。我们发现,验证者群体会比单个验证者获得更平稳的回报,尽管这种效果没有预期的那么明显,32个验证者组成的群体的收益波动率比单个验证者的波动率低约2.3倍。

然而,过去的表现并不能保证未来的回报。我们尚不清楚MEV未来能在多大程度上为验证者所用,而其他参与者最终又能获得多少比例。因此,本文的建模结果并不是对未来的预测,只是提出了几种可能发生的情况。

文章最后,我还没有谈及这样一个问题:在合并之后,我们可以事先知道某一个slot的出块者的身份。目前来看,权益证明区块链上的这一变化为原子式跨链交易以及多区块MEV提供了新的可能性。不过,这些功能将会如何实现仍然是一个很大的未知数。尽管如此,我希望这篇文章可以为验证者提供一些思路,让他们了解自己在Ethereum走向合并后的发展方向以及应如何考虑自身收益,也许这也将帮助权益证明在未来几周、几个月和几年的时间里建立起自己的生态。

郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。

区块博客

[0:0ms0-3:944ms