通过交易费的周期性振荡了解以太坊网络
1788年,詹姆士·瓦特发明了离心式调速器,这是一种小巧的装置,能让蒸汽机的工业运用成为可能。它将蒸汽机所产生的旋转力施加给两颗重球锥摆,随着锥摆受力旋转,离心力使其升高,推动连接阀门的杠杆。当锥摆旋转得更快时,阀门关闭。就是这样,调速器由蒸汽机发动,以机械运作调节蒸汽流量,从而调节蒸汽机的速度(译者注:大意是,重球锥摆本身随着蒸汽能量的输入而旋转,但如果蒸汽机的功率太大,摆锥会反过来关闭蒸汽机的能量输入;转速低了就增加输入、转速高了就关闭输入,这样的负反馈会使摆锥的旋转稳定在一定的转速上)。
这项发明让蒸汽机能够用于需要稳定性与可预测速度的工业设备,比如机械纺织机。其核心理念在于,设计一个会随着系统能量的输入而生成的负反馈循环,使之反过来控制系统能量的增长。对于蒸汽机而言,这是其设计的一大优点。正如我们所见,公链中也存在类似现象,其结果更加复杂。
有趣的手续费周期
2017 年热潮退去后,我注意到比特币的交易费和交易量走势似乎遵循一种周期性模式。随着区块被填满,交易费飙升,交易量下降,然后区块再次被填满。如果我没数错,这个周期在 2017 年就重复了 6 次。
- 图表在 Coin Metrics 可见 -
请注意,我已经以 7 天移动平均值(moving average)的方法对平均交易费和交易量进行了平滑处理。人们通常认为 2017 年末的比特币 “交易费危机” 是一个独立事件,然而事实上,比特币交易费至少经历了 4 次暴涨期,如果算上峰值较低的时期,则达到 6 次。只不过大多数人都以美元而非比特币来计算交易费,所以他们只在比特币的美元价格飙升时注意到已经持续了一段时间的交易费高峰。
平均而言,在交易量达到峰值后的大约两周内,交易费也会达到峰值。整个周期需要两个月走完,不过从全年来看,这一周期是在逐步缩短的。随着区块空间的使用率增加,一旦交易量出现小高峰,就会将交易费推高到令交易者咋舌的地步。当然了,交易费只是表征,深层次的问题在于区块容量。
通过探究区块的区块打满程度与平均交易费之间的关系,我们可以看到交易拥堵是如何发生的。
通过这个方法,我们可以看到,随着区块被打满并保持该状态,交易费开始上涨。而在交易费达到顶峰之后,用户选择减少交易量,区块空间的使用率下降,导致区块大小参差不齐。但是,随着交易费下降,闲置的区块空间又重新吸引用户,蜂拥而至的用户再次将区块填满。请注意 2018 年 1 月左右的最后一次交易费暴涨,在之后的数个月里,区块都是满满当当的,交易费令人垂涎(无论是以比特币还是美元计价)。
别忘了,SegWit(隔离见证)在 2017 年 7 月 23 日就正式启用了。由于 SegWit 提高了区块容量(等价于允许每个区块容纳最多 4MB 的数据),区块大小在 2017 年下半年突破了 1MB 的限制。但是,并非所有客户端都使用了 SegWit,因而平均区块大小涨幅不大。
这里有个流程图,描述了交易费和区块空间使用率产生振荡的流程,就像正弦波一样。我们也可以将它看作是一个负反馈循环,因为当交易费达到某个阈值时,就会抑制交易量。
仅仅是出于好奇,我当时就指出过这一发现,但总的来说发现这个周期实际上没什么用,我们也没办法据此预测往后一周的交易量。我从中学到的教训非常直接:一旦交易费超过某个阈值,用户就会感到失望,不再优先选择链上交易,尤其是当交易费相对其交易额而言过高时。SegWit 和批处理机制使情况缓解了很多。从某种角度看,交易费是会自动调整的,因为它鼓励大型交易者在区块空间消费上更加节俭。但是,所有这些让我更加坚定了自己的观点,即,扩展比特币的吞吐量需要大量的延迟交易系统,基于信任模型在比特币区块链上进行交易结算。另一点收获是,用户有明确的交易生命周期,当他们经历了巨大的交易费压力后,需要几周时间才能恢复到原先的消费水平。
以太坊在 2020 年的 “交易费危机”
今年,当以太坊交易费开始上涨并超过比特币时,我开始好奇以太坊是否会重现比特币当年的交易费和交易量周期,以及这个周期是否会对以太坊带来相同乃至更严重的影响,因为有很多流动性都在链上(相对而言,中心化交易所的交易量基本上是 “链下” 的)。据我猜测,我们会看到同样周期,不过振荡可能没那么剧烈,因为以太坊的区块空间并不是定死的,可随使用量的增加而扩大。但事实证明,交易费暴涨比我所预期的更具破坏力。
- 图源:Coin Metrics -
和 2017 年的比特币一样,随着交易量增长,以太坊在 2020 年区块利用率飙升,逐渐推高了交易费。6 月中旬,Compound 上线治理代币更是加剧了这一情况,为交易费带来了上涨压力,而 8 月中旬,各种代币上线更是将交易费推向新高。这里有几个事件值得注意,特别是 SushiSwap 和 UniSwap 的代币上线时,交易费简直令人垂涎。9 月 2 日,以太坊的按笔平均交易费超过 14 美元。当日,共有价值 1670 万美元的以太币用于支付交易费,远远超过新增发的以太币(价值共计 598 万美元)(也即矿工获得的区块奖励)。由于交易费增加,一些用户决定推迟交易,导致交易量开始下降。从 8 月中旬起,我们进入了交易费高峰期,以太坊的日交易量开始稳步下跌,交易费在 9 月 2 日晚达到顶峰,但也开始下降。
两天后的 9 月 4 日,我在 On The Brink 播客中预测,高昂的交易费不仅会影响以太坊区块链的使用率,还会影响去中心化交易所的流动性。以下是我从这场播客中摘录的一段(从第 36 分 30 秒开始):
Nic:我们发现比特币在 2017 年出现了这种交易费和交易量振荡,我预计以太坊也会出现同样的情况。因此,随着区块使用率上升,交易费增加,在达到一定的阈值后,用户就会受不了,然后停止交易一段时间,因为交易成本太高了。这样一来,交易量和交易费又重新下调,交易费变得便宜了,人们重新开始交易,如此循环往复。
我认为,市场上出现的抛售也可能是由此造成的。由于交易费上涨,散户投资者被迫退出交易费竞赛。然而,对于聪明的交易员来说,消息不灵通的散户是他们最喜欢的交易对手。我认为,这会导致流动性降低。
Matt:没有了散户,游戏就不好玩了。
虽然以太币的价格动态很难确定,而且我也不认为以太币的价格波动是引起振荡的唯一原因,但以太币的美元价格在 9 月 1 日达到顶峰后开始下跌,而交易费在整个月剩下的时间里都保持高涨。
所以到底发生了什么?有这么几件事。第一,我认为以太坊的交易费和交易量首次进入主要振荡期,交易费在交易量达到顶峰的三周后触顶,随后二者同时开始下降。更有趣的是,以太坊交易的平均交易额和几种稳定币的交易量随着交易费上涨而飙升。这是事出有因的,用户比较在意交易费占交易额的比例,而且随着交易费增加,他们停止了小额交易,大额交易开始占据主导地位。
这一相关性非常密切,由此可见,用户对交易费的敏感度非常高。
- 图源:Coin Metrics -
这种对交易费的敏感度不单体现在以太币交易上。随着以太币交易费增加,像 usdt 这样的稳定币的交易额也有上升。
- 图源:Coin Metrics -
这表明,交易者心中有一个交易费阈值,即,他们能接受的交易费在交易额中的最高占比。随着交易费增加,除非必要的交易,交易者通常不愿意进行小额交易。
上述这些还可以通过引入第三个变量来解释,比如流动性挖矿的增长,这既导致区块链出现拥堵,也吸引了大额交易者。研究了以太坊交易的构成情况后,我更加明白了这点。直觉告诉我小额交易者是被高昂的交易费劝退的,但直到我整理出这张图后,我才明白:
乍看之下或许并不明显,但是这张图确实反映出:随着交易费增加,交易量在减少。更有趣的是以太币和 USDT 交易的动态变化,我以 500 美元为界将其划分为两部分。我们可以看到,随着交易费增加,500 美元以上的以太币交易占比稳步增长。我们现在移除合约调用的部分,只关注上面提到的两类以太币交易:
- 红线为转账额低于 500 美元的交易占比;蓝线为以 ETH 计价的平均手续费 -
这就是铁证。在非合约调用交易中,低于 500 美元的以太币交易在 6 月占比高达 85%,但是交易费飙升后,一下子跌到了 40%。终于,有证据证明我的直觉是对的:高昂的交易费劝退了小额交易。
可以预见的是,同样的现象在体量最大的 ERC20 代币 USDT 中也有迹可循。可以清楚地看到,随着 8 月中旬平均交易费攀升,小额 USDT 交易量开始减少。大额 USDT 交易量依然保持坚挺,但总体而言呈现下降趋势,因为在交易费高峰期,交易热情逐渐冷却。
高交易费会影响流动性吗?
那么我们已经证实,在比特币和以太坊中,交易费与区块区间使用率之间存在明显的负反馈循环。我们已经知道这个周期在比特币上是两个月左右,那么在以太坊上会怎么样呢?此外,交易者心中显然存在一个相对交易额而言的交易费阈值,而小额交易者会避开交易高峰期。这就导致以太币和其它代币的平均交易额在交易费高峰期大幅上涨。
但除了这些还有别的吗?还是说这只是重现了比特币在 2017 年的周期性振荡?我敢打赌,这里面还有些别的道道。
要知道,在 2017 年,比特币交易都是在中心化交易所进行的,区块链仅作交易所间结算和用户存取款之用。整个市场实际是在链下的。用户可以将法币存入交易所账户,然后持有或出售比特币,无需真正用到区块链。因此,当交易费危机出现时,比特币经济虽然受到了一定的影响,但是很多用户在交易所平台上都有资金,或想用美元转账,他们还是可以继续交易的。
相比之下,在 2020 年,以太坊上的交易(包括那些流动性挖矿代币)很大程度上都发生在链上。虽然中心化交易所目前对价格形成来说依然至关重要,但是 Uniswap 之类的去中心化交易所上的交易量有时甚至会超过最大的中心化交易所。采用自动做市商模型的交易所不需要用户进行 KYC 审查,也无需将代币托管给第三方,或经历繁琐的引导流程,因此对于用户而言方便得多。没有订单薄概念的自动做市商模型也非常容易上手。另外,某些资产和敞口类型只能在链上交易,比如,小型 DeFi 代币或参与流动性挖矿。因此,链上流动性行业蓬勃兴起。由于这些去中心化交易所上交易的不是以太币,就是基于以太坊的代币,每笔交易都需支付交易费。不同于中心化交易所,去中心化交易所上的每笔交易必须在链上结算。因此,链上交易费始终萦绕在所有交易者心头。
因此,不同于比特币在 2017 年呈现出的周期性振荡,我们重新绘制了一个修改版本,来说明以太坊在 2020 年的新动态。
这第二个循环从何而来?为什么要单独拎出拥有较大链上流动性的协议?
我们先要理解的一点是,如 Maya Zehavi 所述,高额交易费是对用户征收的累退税。所谓的累退,指的是交易费与交易额大小无关,无论转账价值 100 美元还是 500 美元的以太币,交易费都差不多(因为交易费是基于交易的 Gas 使用量计算的,与交易的美元价值无关)。这就类似于具有累退性质的营业税。与富人相比,食品等消费在工人阶级的收入中比更大,因此对于后者来说,固定的 5% 营业税实际上占了他们收入的很大一部分。
打个比方,我们来玩一盘德扑,开盘佣金是固定费用(以美元计),不按彩金池底金额的百分比来计算。(这里所说的佣金是赌场收取的运营费用)。玩家可以支付固定费用来玩某一手牌,或者选择弃牌而不用付费。牌桌上有各种各样的玩家:几个职业玩家、几个半职业玩家,还有一群不太会玩的狂热赌徒。开盘佣金可以随意设定。要想赢钱,你不仅要赢过牌局中的对手,还要考虑开盘佣金这部分成本。也就是说,仅仅赢牌还不够:你必须在支付完交易成本后仍有盈余。
如果开盘佣金低,大家都会乐此不疲地玩下去。但是,一旦赌场变得贪心,想要增加佣金时,筹码低的玩家就会更倾向于选择弃牌。如果玩家要支付超过筹码价值的 1/10 才能起手,他们就不玩了(除非手牌拿到了双 A)。总的趋势是,随着佣金的绝对值上涨,越来越多玩家退出游戏,最先退出的是赌资最少的玩家。
当非职业小玩家开始退出时,其他玩家可获得的利润也会大大减少。毕竟,半职业玩家就靠赢这些小玩家为生。每个德扑玩家都知道,没人想在周二早上跟半职业玩家和那些天天苦练牌技的玩家开一桌,而周五晚上跟一群散漫的业余赌徒开一桌就不一样了,可以看着他们输光筹码,连滚带爬逃出酒吧。
再说回以太坊,交易费就是牌局中的佣金,高昂的交易费让散户望而却步,而这些散户之前在 Uniswap 等去中心化交易所上花了不少时间。但当交易费涨到平均 14 美元一笔(如果是在 Uniswap 上用以太币买入 DAI 之类的 DeFi 交易,交易费会高得多)时,对于小散户来说,参与交易或流动性挖矿就变得无利可图了。小散户不得不退出市场。由于散户消息不那么灵通,他们是职业交易员最喜欢的交易对手(韭菜)。如果散户不入场,那么整个市场的利润就少了很多,从而导致整体流动性下降和交易机会减少。
话说回来,上述理论很难凭经验得到证实。如果根据不同的阈值以及对交易费的反应来分析 DeFi 领域表现活跃的钱包,或将价差与以太坊交易费进行比较,可能有助于证实上述猜想。但是,我们可以分析几个数据点。首先,下图摘自 Friedrik Haga 的 Dune Analytics,将去中心化交易所的交易量和以太坊上的平均交易费进行对比。
我们可以看到,过去几个月来,交易量和交易费呈相同走势。这与高昂交易费会降低使用率(特别是从散户的角度来说)的猜想相吻合。问题在于这之间的因果关系很难推论。通过这张图,我们很容易就能推断出,去中心化交易所上的交易量较高是交易费上涨的原因(反之亦然),而不是高昂的交易费会减少交易量。更有趣的是,下图显示了参与各种 DeFi 协议的每日新增地址量与以太坊上的平均交易费的对比(摘自 Richard Chen 的 Dune Analystic 报告)。
除了 SushiSwap 和 UNI 代币发行前后出现的两次大涨之外,当以太坊交易费在 8 月中旬涨到新的水平后,DeFi 似乎不再像从前那般吸引新用户了。
我们得出的只是一些推论。显然,在交易费出现高峰期时,小型用户会推迟交易,但是这对链上流动性的影响很难衡量。
以太坊交易费的前景
目前,我们还没有在以太坊上看到完整的周期性振荡,因此很难估算周期长度。但是,本着作出具体预测的精神,我还是要给出自己的预测:在以太坊上,交易费、交易量,以及去中心化交易所上的流动性和交易量之间将持续呈正相关波动。可能会如下图所示:
如果你也相信去中心化交易所上的交易量和链上流动性环境通常会推动以太币价格上涨,那么我们很容易就能对这种现象产生的潜在价格影响做出有依据的猜测。由于 DeFi 系统需要锁定以太币来实现足额或超额担保,这一保留需求影响着以太币的价格。从这一方面来看,高额交易费会降低使用率,很可能会导致 DeFi 系统中的总锁仓量减少,进而给以太币的价格带来压力。
尽管如此,有一些反周期的特征或能减轻振荡,使以太坊免受交易费高波动性的影响。
动态区块空间
自诞生以来,比特币只正式增加了一次区块容量上限。以太坊则不同,它在必要时可以产生更多区块空间,虽然幅度有所限制。从理论上来说,弹性区块空间有助于稳定交易费,但这会带来更多验证需求,而以太坊的验证需求已经非常高了。随着以太坊的区块使用率上升,矿工为交易者提供的算力也不断达到新高。
但是,由于提高 gas 上限会提高叔块率,使网络更容易受到 DoS 攻击,并提高全节点的运行成本,以太坊社区在是否要进一步增加 gas 上限的问题上存在分歧。虽然在节点运营成本方面,以太坊用户比比特币用户更能接受折衷方案,但是二者都普遍认为,仅仅增加区块空间的供应量并非解决可扩展性问题的灵丹妙药。因此,尽管一定弹性的区块空间供给可以应对不断增长的需求,但是很少有人愿意支持完全可调整的区块空间政策。
以太坊 2.0 与分片
我第一次写文章谈以太坊交易费的前景时,我认为以太坊交易费可能会长期走高,而这将影响非金融应用的可用性。Vitalik 给我的回复是:
他的意思是,他仍然相信以太坊可以实现其愿景:成为一条低成本的区块链,可以让各种金融或非金融应用在上面运行。他提议的方案是,短期采用 Rollup,长期采用以太坊 2.0 和分片。Vitalik 称,他预计以太坊 2.0 可以将可扩展性提高 100 倍以上,但他也认为在 “诱导需求” 的影响下,交易费最终可能会涨到同等水平(译者注:“诱导需求” 的一个例子是,修更多的公路并不能缓解拥堵,因为更多的公路提高了汽车的性价比,使人们愿意购买更多的汽车)。
我是倾向于同意他的观点的,如果一个商品的生产效率提高,人们就会发现更多使用该(更便宜的)商品的用途。因此,即使把扩大区块空间考虑进去,我们也会看到平均交易费达到较高水平。无论如何,以太坊 2.0 依然遥不可及,很难对此作出推论。至少,短期内我们不会看到费用方面的调整。
Rollups
在以太坊社区,目前正统观念认为,Rollup 是缓解以太坊当前交易费问题的主要方法。Rollup 有两种主要类型:ZK 和 Optimistic,二者主要通过将多笔支付捆绑在一起,大大提高交易的经济密度,从理论上来说可以保障底层交易安全的同时大大提高吞吐量。简单来说,交易者要依靠中继者来聚合大量交易并广播这些交易的摘要。
ZK Rollup 要求广播经过大量截断的交易存根,以及这批交易的有效性证明。而 Optimistic Rollup 需要准可信的运营者来聚合交易,而交易者需要很大程度上假定这些运营者不会作恶。从理论上讲,反激励机制是通过将欺诈证明结合起来,对恶意行为进行经济惩罚来实现的。目前,ZK Rollup 仅支持简单转账,而某些 OR 有望处理当前版本以太坊上所有类型的交易。关于 OR 的全面详述,请看 Daniel Goldman 的这份综合报告。
Rollup 可以将交易数据转移到链下,并将有效性证明上链(译者注:作者在此处的表述有误。无论是使用有效性证明的 Rollup 方案如 zk-rollup,还是使用错误性证明的 Rollup 方案如 Optimistic rollup,都是将计算放到链下,而将交易数据发布到链上)。比特币在几年前也采用了同样数据极简化的思路,推出了闪电网络(能够将数十万笔交易减少至几笔链上交易)和侧链技术,同样倡导提高效率的措施,比如,批量处理和 SegWit(译者注:同样地,rollup 与闪电网络(状态通道的一个特例)的原理有相似之处,但迥异的地方也多有)。多亏了 Rollup 的普及和快速的开发进程,Vitalik 大力支持将 Rollup 方案作为实现以太坊可扩展性的最佳短期方案。虽然以太坊 2.0 可能还未准备好,但 Rollup 的愿景已触手及。
Rollup 或许无法成为解决以太坊交易费问题的灵丹妙药,主要有两个原因。第一,哄着所有区块空间消费者变成区块管家并没有那么容易,特别对服务供应商来说,他们本可以将费用转嫁给终端用户而无需内部消化。我们从比特币中学到的教训是,如果中介机构可以将费用转嫁给终端用户,他们对于投资建设可持续网络基础设施的动力就非常有限。
此外,由于以太坊已经反复地提高 gas 上限来为区块空间消费者纾困(以增加验证工作量为代价),重度用户可能更倾向于努力游说以进一步提高 gas 上限,而不是耗费时间去打包 Rollup 交易。同样,以太坊 2.0 能够带来的超大区块空间可能会降低重度用户对 Rollup 的热情。而以太坊 2.0 目前的主要 “贡献” 可能是导致重度用户惰于提高区块空间的使用效率。
第二,像以太坊这样的区块链在全球拥有庞大的用户群,并不是仅仅靠开发者或倡议者就能号召的。以太坊是开放的,不排斥任何参与者,也因此受到了庞氏骗局或其他歪门邪道的欢迎。而这些骗局的始作俑者(通常也是区块空间的重度消费者)并不会为了区块链的未来做打算,也不会想优化他们的链上足迹。当然了,要是能看到 Forsage 用 Rollup 把庞氏骗局交易打包,推动技术发展,也是很有意思的。
在技术层面,Rollup 特别是 OR 在结算质量上与底层区块链交易并无不同。当前版本的以太坊几乎可以实现即时终局性,不会产生退款或无法结算的风险。这一特性使以太坊具有 “原子性”,也就是说,一笔链上交易要么完全发生,要么完全不发生。这让用户可以安全连接多个系统,而无需担心因单笔付款结算失败而产生的连锁效应。正是这一特性使得以太币可以成为数字不记名资产。原子性还带来了以太坊常被鼓吹的可组合性,它可以让智能合约安全地互相引用,无需评估每个模块即可构建更加复杂的系统。
引入 Rollup 等较为复杂的系统会给原子性和可组合性带来不确定性。由于某些 OR 采用了以错误性证明挑战为核心的信任模式,实现终局性的时长变得不容乐观。Matter Lab 估计 OR 实现终局性的时间可能需要 1-2 周。(注意:这是 2019 年 11 月进行的估算,现有技术水平可能已经发生了变化。)为解决该问题,有一个方案【‘提现期’】是通过中介让用户能尽早取出挑战期内临时冻结的代币。我的理解是,这实际上创建了一个分级系统,“免费版” Rollup 需要更长的终局期,而付费加速版可以缩短这一时间。
说白了,OR 打开了延迟结算的潜力。这不是什么问题,延迟结算是所有高效现代支付系统的核心,但是与以太坊底层交易(类似现金)的结算模型不同。如果你只习惯使用银行电汇转账,那么改用自动清算所或信用支付会更高效,但这也意味着你必须忍受结算保证不足。这就是为什么信用卡付款可以申请退款,因为信用卡付款并不会即时结算。这对消费者有利,但是对商家不利,特别是在商家需要这些资金来周转的情况下。
除了终局性问题之外,引入 OR 可能也会影响到可组合性。我的确不是 Rollup 专家,但我看到有文章称 OR 最大的缺点之一就是可组合性问题(中文译本)。
由于上述原因,我并不认为以太坊上所有主要智能合约都会切换到 Rollup 系统。对我而言,快速结算的以太币或其它代币转账与 Rollup 版本的代币转账存在明显差异,尤其是在结算方面。而且,如果可组合性或者原子性受损,那么我们将要构建的系统会与已有系统差别很大。由快速结算的以太币和代币转账构成的 DeFi 必定有其独特之处,我相信当大型区块空间消费者开始切换到 Rollup 系统时,这一点将变得显而易见。因此,即使有部分智能合约转移到 Rollup 上,我也不认为 Rollup 会在短期内有效降低交易费。
结论
离心式调速器与链上交易费之间的区别在于,调节费用是一个正常运作的系统带来的副作用,而不是关键的设计考虑因素。在公链中,交易费的存在是为了确保网络资源不被浪费,并且为验证者提供收入,其目的不是抑制系统的使用。但实际上,交易费的确产生了这样的影响,而且这种抑制作用变得越来越强。
因此,我们看到资源消耗、交易量、甚至链上产品流动性出现了周期性振荡,而非缓慢减速。这些动态趋势在比特币中早已存在,在以太坊上露出了苗头。但由于以太坊以链上交易为主,这对当下的以太坊破坏性更大。正如 Kyle Samani 所说,在高额交易费的压力下,有限吞吐量很可能是 DeFi 的 “隐形渐近线”。
以太坊社区应该考虑交易费的周期性振荡对以太坊网络的影响,并且知道可能永远会有一些应用被高额交易费排挤出市场。最后,Rollup 虽然能解决可扩展性问题,但是从交易费的角度来看,可能并非最佳方案,因为它会影响结算保证。
感谢 Ryan Gentry、Lucas Nuzzi 和 Antoine Le Calvez 对本文的帮助与反馈。