原标题:以太坊上的新交易类
资料来源:Maarten zuidhoorn,mycrypto
以太坊使用不同的事务类来定义不同的操作,例如向地址发送以太网货币、部署契约等等。
在最近的Berlin升级之前,以太坊有四种不同的事务“类”:
·带收款人地址和数据字段的一般交易
·对于没有收款人地址的合同部署事务,数据字段将填充合同代码
·签名;五;无链ID有值事务(eip155实施前)
·签名;五;具有价值链ID的事务处理
上述交易类的格式相同。不同的以太坊客户机、库和其他工具必须分析每个事务,以确定它属于哪种类。这四种不同的事务类引入了许多复杂的情况。我们需要查看事务的所有字段以确定其类。这是人们在提出新的事务类(如元事务、多签名事务等)时必须面对的一个主要问题,直到eip2718的出现才被打破。
以太坊现在有了一个新的交易标准,类化交易信封,由;EIP 2718;投标人;米卡·佐尔图;定义。该标准为以太坊开发的一些新功能和功能奠定了基础。在本文中,我们将回顾Berlin升级引入的一些标准以及将来可能引入的其他标准。
标准化交易信封
过去,以太坊中的事务使用相同的格式。每个以太坊事务有六个字段:nonce、gasspice、gaslimit、to address、value、data、V、R和s。这些字段需要经过;RLP编码,如下所示:
RLP(暂时;加斯普里斯;气体极限;至;价值;数据;v、 r、 s] ()
EIP 2718;为类化事务定义了一个新的通用信封。根据新标准,交易如下:
交易类事务负载
上述字段定义为:
·Transactiontype:0到0x7F范围内的值,最多可表示128种事务类。
·Transactionpayload:由事务类定义的任何字节数组。
联接(合并)上述字段以获得类化事务。EIP 2718;没有为事务的有效负载定义格式。因此,事务有效负载可以是任何编码的字节序列,只要是新的事务类(如RLP、SSZ);以此类推)。我们之所以选择一种简单的方式来连接字节,是因为不用任何库或工具就可以很容易地读取字节数组的第一个字节。也就是说,您不需要使用RLP或SSZ解析器来确定事务类。
该方法避免了新EIP引入新事务类时现有事务格式的复杂性,使不同以太坊工具(客户端、库)更容易区分不同的事务。
关于日益复杂的问题,eip-155;这是一个很好的例子。它通过在事务中引入链ID来实现对重放攻击的保护。因为向事务参数添加新字段会破坏向后兼容性,所以链ID被编码到事务签名的恢复参数(V)中,正如我在上一篇关于数字签名的文章中所解释的那样。在实现了eip2718之后,我们可以在不影响向后兼容性的情况下定义新的事务类。
向后兼容性和传统事务
eip2718的一个主要特性是向后兼容性。EIP 2718完全向后兼容。也就是说,现有的工具、库、(硬件)钱包和事务都是现成的,但它们不能使用EIP 2718提供的新“功能”(并采用EIP 2718标准)。以太坊网络上的新事务仍然可以使用旧的事务格式(即传统事务)。
新事务类的**数目为0.07f。选择此上限是为了确保与传统事务向后兼容。RLP编码的事务的第一个字节总是大于或等于0xc0,因此类化事务不会与传统事务冲突,通过第一个字节可以区分类化事务和传统事务。
EIP 2718本身没有定义任何事务类,但是有一些EIP采用了这个新标准:
·EIP1559:ETH 1.0链交易费市场改革。你一定听说过这个EIP。
·EIP 2711:代付、截止日期和批次。该EIP也是由Michah zoltu提出的,EIP-2718中定义的标准就是为此而制定的。
·EIP 2930:可选访问列表。
下面我们将详细解释其中的一些标准。
为什么要引入新的交易类?
新的交易类可以实现原本需要借助实体合约或第三方解决方案的功能集成。以期限事务为例。在现有的解决方案中,您可以将资金发送到实体合同,签署一个事务并将其发送到一个特殊的节点,这样事务就可以获得额外的参数(例如,有效期)。然后节点处理事务以确保它在过期日期之前执行,否则事务将不会被广播。一些dapp和contract(比如Uniswap)内置了这个功能,但是对于大多数事务来说很难实现。
EIP 2711可以将此功能添加到以太坊网络,同时确保与传统事务(如上所述)的向后兼容性,而无需使用智能合约或专用节点。但是,EIP 2711仍然是一个草案,我们不确定它是否会在不久的将来在以太坊网络上实施。EIP 2711也可以拆分为几个小EIP(例如;公网IP 3074).
和
-来源:f2pool-
eip1559提出的新事务格式
在EIP1559中,天然气的运作模式发生了很大变化:天然气将被部分销毁,不再全额支付给矿工。本文不会详细说明eip1559的所有更改,但是eip1559确实提出了一种新的事务格式:
0x02 | | RLP([chainId,nonce,maxPriorityFeePerGas,maxFeePerGas,gasLimit,to,value,data,accessList,signatureParity,signatureR,signatureS])
最重要的变化包括:
·单位天然气的**优先成本(**;优先级“每种天然气的费用”和“每种天然气的**费用”,而不是天然气价格。
·链ID单独编码,不再包含在签名V值中。这实际上是用一个更简单的实现取代eip155。
·签名V值变为一个简单的校验位(“签名y校验位”),根据椭圆曲线上使用的点,可以是0或1。
EIP 1559还提供了基于EIP 2930指定访问列表的方法。这可以降低交易的天然气成本。
由于eip1559极大地改变了GAS FEE的运营模式,与传统的交易方式并不直接兼容。为了保证向后兼容,eip1559提出了一种将传统事务升级为与eip1559事务兼容的方法,即用“**优先级单位气体成本”和“**单位气体成本”来代替天然气价格”。
本机元事务和批处理事务
元交易已经存在了好几年,但到目前为止,它们必须依赖智能合约。与截止日期事务一样,元事务也要求用户向专门为元事务创建的智能合约发送以太网资金。
EIP 2711使本机元事务(也称为代支付事务)和批处理事务成为可能,而无需依赖智能合约。这里定义了一种新的事务格式。交易类为;0x02(但是事务类可能会更改,因为EIP-1559也使用相同的事务类ID)。交易如下:
0x02| |RLP([…发送付费。。。发件人签名。。。GasPayerPayload。。。加斯帕耶尔签名)
EIP 2711主要包括有效载荷(可选)和天然气付款人的签名(用于支付交易GAS FEE用的账户)。这样,即使地址中没有任何以太坊,也可以发送ERC 20代币。
发送方的有效负载和签名是基于事务子类(1到4)定义的。例如,如果交易类为;1,发送器的有效载荷定义为
[1,第;子交易[];暂时;链ID;有效期至;气体极限;加斯普里斯]
子交易;定义为[To,value,data]可以在单个交易中指定收款人地址、值和数据。例如,childtransaction;它可用于在单笔交易中调用ERC 20。批准;以及;转让自
如果您想进一步了解EIP 2711的事务子类,我建议您阅读;EIP 2711规范。
结论
类化事务为以太坊网络带来了更多的可能性。在创建类化事务时,我们不会给以太坊客户机、库和其他工具增加复杂性。
目前,由于eip2718最近被加入到网络中,新的交易类并没有得到广泛的应用,但仍有一些大的EIP正在开发中。例如,EIP 2711提出了截止交易、批量交易和支付交易(即元交易)。由于新的事务类可以在以太坊上定义,因此更容易提出新的EIP。
文章标题:以太坊eip-2718分析
文章链接:https://www.btchangqing.cn/259389.html
更新时间:2021年05月16日
本站大部分内容均收集于网络,若内容若侵犯到您的权益,请联系我们,我们将第一时间处理。