最显著的变化包括:
· 用「每单位 gas 的最高优先费用(max priority fee per gas)」和「每单位 gas 的最高费用(max fee per gas)」来代替 gas price。
· 链 ID 是单独编码的,不再包含在签名 v 值内。这实际上是使用更简单的实现来代替 EIP 155。
· 签名 v 值变成了一个简单的校验位(「签名 Y 校验位」),不是 0 就是 1,具体取决于使用椭圆曲线上的哪个点。
EIP 1559 还提供了一种基于 EIP 2930 指定访问列表的方法。这样可以减少事务的 gas 成本。
由于 EIP 1559 极大地改变了 gas 费的运作方式,它并不能直接兼容传统事务。为了保证向后兼容性,EIP 1559 提出了一种将传统事务升级成兼容 EIP 1559 事务的方法,即,使用「每单位 gas 的最高优先费用」和「每单位 gas 的最高费用」来代替 「gas 价格」。
原生元事务和批量事务
元事务诞生已经有几年了,但是到目前为止都需要依靠智能合约。和限期事务一样,元事务也要求用户将以太币发送至专为元事务创建的智能合约。
EIP 2711 使得原生元事务(又称代付事务)和批量事务成为可能,无需依赖于智能合约。这里定义了一个新的事务格式,事务类型是 0x02(但是事务类型可能会更改,因为 EIP-1559 也使用同一个事务类型标识)。交易如下所示:
0x02 || RLP([...SenderPayload, ...SenderSignature, ...GasPayerPayload, ...GasPayerSignature])
EIP 2711 主要包括 gas 付款方(用来支付事务 gas 费的账户)的有效负载(可选)和签名。这样一来,即使不持有任何以太币的地址也能发送 ERC 20 代币。
发送方的有效负载和签名等均基于事务子类型(1 至 4)定义。例如,如果交易类型为 1,发送方的有效负载被定义为:
[1, ChildTransaction[], nonce, ChainId, ValidUntil, gasLimit, gasPrice]
ChildTransaction 被定义为 [to, value, data],可以在单个事务内指定收款方地址、值和数据。例如,ChildTransaction 可以用来在单笔事务中调用 ERC 20 的 approve 和 transferFrom。
如果你想了解更多关于 EIP 2711 的事务子类型的信息,我建议你阅读 EIP 2711 的规范。
结论
类型化事务为以太坊网络带来了更多可能性。我们在创建类型化事务时不会增加以太坊客户端、库和其它工具的复杂性。
目前,由于 EIP 2718 最近才被添加到网络中,新的事务类型还没有得到广泛应用,但是目前还有一些很棒的 EIP 正在开发中,例如,EIP 2711 提出了限期事务、批量事务和代付事务(即,元事务)。由于以太坊上可以定义新的事务类型,提出新的 EIP 也会变得更容易。

