接近Filecoin竞赛网启动时,Filecoin遇到一次交易手续费攻击,有人从水龙头领取了大量FIL,并以极高的GasLimit参数设置发送交易,导致矿工一个区块仅打包零星几个交易,网络大量拥堵。官方在很短的时间内决定并执行了EIP-1559方案,希望用以解决恶意设置GasLimit的问题。
过去一段时间笔者在竞赛网投入了全部精力,今天才腾时间来学习分享一下这次改版的变化,加深对Filecoin交易的理解。
Filecoin的手续费变化
过去,Filecoin的手续费采用的是 GasPrice * GasLimit 模型,并且限制每个区块的最大 GasLimit 总和,类似以太坊1.0的Gas模型。
本次EIP-1559的模型升级,最直观的变化是主要参数修改为:GasFeeCap、GasPremium和GasLimit。
GasLimit参数含义与之前的一样,作为一笔消息的资源开销的基准系数。
GasFeeCap用于控制发送方实际为消息支出的最大成本。
GasPremium用于控制支付给打包消息的矿工的奖励。
除了用户设置的手续费参数外,网络会自动根据Filecoin当前的拥堵情况计算一个变量BaseFee,如“星想法”文章所说:”BaseFee,虽然名字看上去是fee,其实是price,具体燃烧的费用是BaseFee*GasLimit。”。这部分FIL手续费将被燃烧,而不是分配给出块矿工。
在竞赛网期间,BaseFee的值非常可观,因此我们需要进一步了解它的计算原理。
首先,BaseFee对同一个区块中所有交易都要平等收取,相当于交易税费。不同区块的交易税率是浮动的。
BaseFee有一个系统初始值:10^8 attoFIL。新(子)区块的BaseFee根据父区块的BaseFee、当前区块的GasLimit总和、当前TipSet中区块数量作为变量,并定义了区块Gas基准值BlockGasTarget、交易打包效率系数、超出BlockGasTarget的费用系数12.5%等常量,共同计算得出。
(Ps:这里有一个知识的薄弱点,Filecoin的交易奖励和交易手续费结算是由下一个Epoch的矿工来计算的吗?否则当前矿工怎么知道这个TipSet里会有几个Block呢?)
小结
当前区块中的Gas Limit消耗超出了BlockGasTarget,则BaseFee增加超出部分的12.5%。在这样的逻辑下,在交易拥堵的情况下,BaseFee会迅速地增加;在交易宽松时迅速降低。
对于矿工来说,每笔交易的手续费由两部分构成:矿工小费:GasPremium * GasLimit 、燃烧:BaseFee * GasLimit。因此,当发送交易长时间(超过10分钟)未上链的主要原因可能是:设置 GasFeeCap 太低,不足以满足BaseFee+最小GasPremium的需求;其次,可能是GasFeeCap 足够了,但GasPremium太低,小费不够;最后,在当前网络环境下,有部分矿工自私挖矿,只打包自己的交易,导致网络更加拥堵。
EIP-1559的设计哲学
正如大家都知道的,比特币、以太坊区块链的手续费设置都是由用户手动设定的费率,由矿工竞争和市场决定打包顺序。固定费率市场竞争的潜在的问题是价格波动率较大、费率过低的交易可能长时间未被打包。
EIP-1559的核心思想是用户提出愿意支付的手续费率上限,由市场计算出一个市场基准费率,当用户费率高于市场基准费率,且有矿工愿意打包时,则交易上链,最终手续费采用市场费率。这样在用户如果想要交易尽快上链,需要做的就是设置一个足够大且合理的费率帽,剩下的工作交给市场自动换算。
EIP-1559的直接影响的场景
交易量合理稳定时,用户设置交易费可以比较放心地设置GasFeeCap,但如果 GasFeeCap 和 GasPremium 都设置过高时,手续费依然不便宜;
交易量迅速上升时,BaseFee不会迅速上升,且与GasFeeCap有一定的预留空间,交易仍然有机会被打包,这时GasFeeCap >> GasPremium,GasPremium可以忽略,回归GasFeeCap*GasLimit的数学模型;
交易量不足时,主要看GasPremium策略,回归以GasPremium为主导的GasPremium*GasLimit的数学模型。
EIP-1559的缺点
矿工手续费减少,特别是交易拥堵的条件下,原本属于矿工的拥堵溢价被燃烧,成了全网持币者的间接受益。
没有也不可能从根本上解决网络拥堵的问题,当交易量严重拥堵时,市场还是看谁的出价高先打包谁的交易。
对用户来说,需要多设置一个维度的参数来确定自己的手续费策略。
总结
从Filecoin实际运行的EIP-1559情况来看,经济算法的改变没有影响到极端情况的拥堵情况,拥堵问题的核心解决方案还是TPS。但作为区块链经济模型的一部分,这种弹性的设计还是值得推崇和学习的。