EIP-1559故障:揭开伦敦硬分叉的神秘面纱
ChinaDeFi2021年8月5日,伦敦硬分叉见证了以太坊区块链到目前为止最大的更新之一:EIP-1559,它改变了收费市场在网络上的运作方式。引入了一种新的基本费用,该费用被销毁而不是支付给矿工,而且用户现在可以指定交易的最高费用和优先费用,而不是gas价格。
在本文中,我们将介绍EIP-1559所做的所有更改,以及它们对我们的意义。
EIP - 1559是什么?
此前,以太坊的收费市场基于首价拍卖。由于过去所有的交易费用都归矿工所有,一般来说,“出价”(gas价格)最高的交易将首先得到确认。EIP-1559改变了这一点,通过为所有交易引入每 gas 单位的基本费用,使交易费用更加稳定和可预测,这是用户为每笔交易支付的最低费用。根据当前的网络拥塞情况(区块的完整程度),基本费用可以上升或下降。
基本费用会根据区块的完整程度而波动。
区块的“完整度”由区块中所有交易使用的gas量决定。如果一个区块的目标gas使用量是1500万,并且有四个交易分别使用500万gas,这意味着该区块的总gas使用量高于目标,因此基本费用将上升。如果只有一笔交易使用了500万gas,基本费用就会下降。
基本费用没有支付给矿工,而是被销毁了。除了基本费用,用户可以选择支付优先费用(“小费”),支付给矿工。一般来说,这可能是一个小的数量(如1-2 Gwei),只有在网络拥塞时是必要的。
新的交易方式
为了使这些更改成为可能,EIP-1559引入了一种基于EIP-2718类型交易信封的新交易格式。
0x2 || RLP([chainId, nonce, maxPriorityFeePerGas, maxFeePerGas, gasLimit, to, value, data, accessList, signatureYParity, signatureR, signatureS])
这种新格式的交易类型是0x2,有效载荷是RLP编码的,类似于旧式交易。该类型和旧式交易之间的区别如下:
- 所述链ID现在是交易有效载荷的一部分,而不是像EIP-155中定义的那样被编码在签名v值中。
- 引入了两个新字段:maxPriorityFeePerGas和maxFeePerGas,以替代旧的gasPrice字段。
- 用户可以在EIP-1559交易中指定accessList,而不需要EIP-2930“可选访问列表”交易类型。
- 对于EIP-155交易,签名v值被替换为signatureYParity,它现在是0或1,这取决于使用椭圆曲线上的哪个y坐标,而不是 EIP-155 交易的 27、28 或 35、36……。
旧式交易(“type-0”交易)仍然可以工作,但(通常)会导致交易支付过高。它的工作原理是使用传统的 gas 价格作为每个 gas 的最大优先费用和每个 gas 的最高费用。
每gas最高收费及每gas最高优先收费
EIP-1559引入了最大费用(每gas)和最大优先费用(每gas)。这些决定了用户愿意为交易中使用的每一gas支付多少钱。类似于gas价格的运作方式,如果用户的交易每gas的最大费用是10 Gwei,用户的交易使用21,000gas,那么最终将支付(最多)21,000 × 10 Gwei = 0.00021 Ether。
然而,用户实际支付多少取决于基本费用。最大费用为10 Gwei,基础费用为5 Gwei,用户最终将只支付5 Gwei 的每个 gas(暂时忽略优先费)。每个gas的最高费用规定了用户最多愿意支付多少。如果这个数字低于当前的基本费用,您的交易将不会被确认(直到基本费用下降或交易从交易池中删除)。
优先费用是在基础费用之上支付的,所以用户最终要支付的是基础费用+(最大)优先费用,假设最大费用大于当前的基础费用。
不是所有的应用程序都支持EIP-1559(目前)。当发送旧式交易(带有gas价格,而不是最大费用和优先费用)时,gas价格值同时用作最大费用和优先费用。我们假设当前的基本费用是10gwei,用户发送了一笔上限为20gwei的交易(所以最大费用和优先费用为20gwei)。在这种情况下,用户最终将支付10gwei作为基本费用,剩下的10gwei将支付给矿工。与使用较低的最大优先级费用相比,这导致用户为交易支付了过多的费用。
这对用户来说意味着什么?
一个常见的误解是,EIP-1559将使以太坊的gas费用下降。然而,这不是EIP-1559的目标,而且在网络拥塞严重的时候(例如,在ico或NFT销售期间),基本费用可能会增加很多。然而,既然基本费用不是基于首次拍卖价格,那么平均交易费用应该更容易预测。因为区块大小可能更大,这通常意味着用户的交易将被更快地确认。