最近有不少关于 EIP-1559 的文章,但是一般都晦涩难懂。我用比较通俗的语言讲一下我对 EIP-1559 的理解。
最近有不少关于 EIP-1559 的文章,但是一般都晦涩难懂。我用比较通俗的语言讲一下我对 EIP-1559 的理解。
EIP-1559 是一个改进以太坊手续费机制的提案,由 Vitalik 等人在2019年4月提出,距今已经讨论、优化近2年。虽然它只是一个以太坊的优化提案,但是相应机制已经被 Filecoin 所采用。因此它从理论和实践层面都有一定的说服力!
然而,对于 EIP-1559 的反对和质疑,就如同赞同它的声音一样,非常的明显和强烈。因此它充满着争议,并且对它的实施存在一些风险(分叉、抵制等)。
当前以太坊手续费机制为:fee = gasPrice * gasUsed。因为特定交易使用的 gasUsed 通常不变化,因此整个手续费的核心要素就是 gasPrice。调整 gasPrice 的大小决定了你花费手续费的多少,以及你的交易被确认的速度。
EIP-1559 将 gasPrice 参数拆分为两个参数:BaseFee + Tip。其中 BaseFee 由系统决定,不需要用户指定。而 Tip(又叫 GasPremium)是指额外小费,它决定了在相同 BaseFee 的情况下排序的优先权。
BaseFee 由系统计算,具体的逻辑你可以完全跳过,并不影响你对 EIP-1559 的理解。这里简单阐述一下其计算逻辑:
每个区块设置总 GasUsed 的均点为:1250万,上限为:2500万;
当实际区块使用的总气超过均点时提升 BaseFee,低于均点时降低 BaseFee。
因此 BaseFee 会根据网络流量的大小进行上下波动。我们看一下 Filecoin 的 BaseFee 走势图就会有一些感官认识:
Fiecoin BaseFee
在 EIP-1559 设计中,BaseFee 部分的手续费是直接销毁的(只有 Tip 的部分奖励给矿工),以抵制以太坊系统的通胀。该点也是矿工可能抵制的关键点,有观点认为,这将大大降低矿工的收入。该点的设计较为独立,我们不展开讨论。
EIP-1559 有什么用,才是我们今天要讨论的主要话题。首先我阐述一下我的观点:它没有什么大用,但有一些小用。我分别来阐述一下:
没有什么大作用是指它不能减少网络拥堵,即它不是为扩容而设计的。因此实施了 EIP-1559 后,以太坊该拥堵还是拥堵。(你可能认为以上我的观点错了,EIP-1559 可能有一些扩容效果,因为设置了硬顶为 2500万,是现在的两倍,因此可能有两倍的扩容效果。这点没错,我之所以没这么说,因为这种扩容效果并不需要通过 EIP-1559 来实现,简单地提升区块总气量的上限即可达到,因此不做讨论)。
另外,它没有什么大作用,也是指它不能大幅降低用户矿工费。用户矿工费的本质是由供需关系决定的。在以太坊不能有效扩容,需求过于旺盛的情况下,任何改变手续费机制的措施,对于降低手续费这个目标而言,都是徒劳的!
首先,我这里讲的小,是针对以上两个大目标(降低拥堵、降低手续费)而言的。因此此处小并不是贬义,而是指一个程度。
通常用户发出的交易可以分为三种情况:
情况A:该交易必须下一个区块就确认,例如一些劫持交易、参与某个 1CO 的交易。用户不惜一切代价使其快速确认;
情况B:用户期望该交易快速确认,例如在5分钟内。并不一定要在下一个区块,但是不希望等待太久,例如用户充值交易所,进行数字货币的买卖;
情况C:用户希望以较少的矿工费确认一笔交易,并不在意多等待数小时甚至数天。
对于情况A,EIP-1559 的作用并不大。在 EIP-1559 情况下,为了达到情况A的目标,我们需要去计算合适的 Tip,这点和现在计算合适的 gasPrice 并无差别。
对于情况C而言,EIP-1559 也是没有任何优势,我们设定一个 GasFeeCap(手续费上限)来达到该目标,这和我们目前设置一个固定较小的 gasPrice 也是别无二致的。
但是对于情况B而言,EIP-1559 却有非常大的优势。从用户或者钱包开发者角度来看,几乎不需要做什么事情,便可以达成这个目标。在设置的 GasFeeCap 范围内,你的交易总是可以以当前 BaseFee 的价格进入区块。在固定 Tip 的情况下,你所花费的矿工费由系统决定。
因此这是最省心,也是用户最友好的。而在 EIP-1559 之前,为了达到情况B的目标,我们可能需要多次发送交易加速(Replace-by-Fee)。
EIP-1559 达到以上目标的本质是延后决定手续费的机制。即在 EIP-1559 之前,用户生成交易即决定手续费的大小,而 EIP-1559 将手续费拆分成两部分,其 BaseFee 的部分在打包时实时决定。这类似于编程环境里常讲的延迟加载、需要时加载等概念。
上述情况B也是最常见的情况,因此 EIP-1559 的实施,**对于用户而言,是有相当大的作用的。它将降低用户干预交易的需求,同时也将更加经济(系统的 BaseFee 总是比用户自行选择的费用要更加经济有效)。**
从用户端和钱包开发这角度来说,EIP-1559 的作用和意义不能说小。 虽然它不能解决拥堵的问题,也不能大幅降低交易矿工费,但是它却可以让以太坊系统手续费更加平滑、用户使用以太坊交易的体验更加友好。因此我想,这也是为什么在有很大争议的情况下,技术导向的 Vitalik 坚持 EIP-1559 的主要原因吧!
首发于:谈谈区块链公众号: 链接
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!