EIP 2718的一大特点就是向后兼容。EIP 2718是完全向后兼容的。也就是说,现有的工具、库、(硬件)钱包和事务都是开箱即用的,但是它们无法使用EIP 2718(以及采用EIP 2718的标准)提供的新“功能”。以太坊网络上的新事务依然可以使用旧的事务格式(即,传统事务)。新的事务类型最多可达0x7f种。选择这一上限是为了保证向后兼容传统事务。经过RLP编码的事务的第一个字节始终大于或等于0xc0,因此类型化事务永远不会与传统事务产生冲突,而且类型化事务和传统事务之间可以通过第一个字节来区分。EIP 2718本身并未定义任何事务类型,不过已经出现了一些采用这一新标准的EIP: EIP 1559:改革ETH 1.0链的交易费市场。你肯定听说过这个EIP。 EIP 2711:代付事务、限期事务和批量事务。这个EIP同样由Micah Zoltu提出,EIP-2718中定义的标准就是为此创建的。 EIP 2930:可选访问列表。 我们将在下文详细解释其中一些标准。 为什么要引入新的事务类型? 新的事务类型可以实现原本需要借助于Solidity合约或第三方解决方案的功能集成。以限期事务为例。在现有解决方案中,你可以将资金发送至Solidity合约,签署一个事务并将其发送到专门的节点,让该事务获得额外的参数(例如,有效期)。然后,该节点会处理该事务,确保它在有效期之前执行,否则该事务不会被广播。一些dApp和合约(如Uniswap)内置该功能,但是对于大多数事务而言很难实现。EIP 2711可以将该功能添加到以太坊网络上,同时保证向后兼容传统事务(正如上文所述),而且无需使用智能合约或专门的节点。但是,EIP 2711目前还是草案,我们还无法确定它近期是否会在以太坊网络上实行。EIP 2711也有可能被拆分成几个小的EIP(如EIP 3074)。 EIP 1559提出的新的事务格式 在EIP 1559中,gas的运作方式发生了巨大变化:gas会被部分销毁,不再全部支付给矿工。本文不会具体阐述EIP 1559的所有变化,但是EIP 1559确实提出了一种新的事务格式: 0x02||RLP([chainId,nonce,maxPriorityFeePerGas,maxFeePerGas,gasLimit,to,value,data,accessList,signatureYParity,signatureR,signatureS])最显著的变化包括: 用“每单位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价格”。 (责任编辑:admin) |