为什么需要新的交易类型?

一文了解以太坊上的新交易类型

以太坊上存在着不同的交易类型,比如,将ETH发送到某个地址,部署合约等等。在柏林网络升级之前,以太坊上就有四种不同的交易类型:

  • 带接收地址的常规交易,数据域等;

  • 没有目的地址的合约部署交易,数据域用于合约代码;

  • 带v值签名方式的交易,但不包括链ID(pre-EIP-155);

  • 带v值签名方式的交易,但包括链ID。

不同的以太坊客户端(clients)、库(libraries)和其它工具会分析每次交易,理解每个交易类型。虽然只有四种交易类型,但也有很多复杂性和情况需要处理。技术人员应该检查交易中所有的域,弄清楚是属于什么交易类型。这对于新型交易来说是关键,比如元交易(meta transaction)、多重签名交易(multisig transaction)等pre-EIP-2718交易类型。

以太坊现在有了一个新的交易标准,这是由开发人员迈卡·佐尔图(Micah·Zoltu)在EIP-2718中定义和创建的。类型化交易信封形成了以太坊上一些和其它尚未开发的功能的基础。

本文我们将详细介绍柏林升级中包含的一些标准,以及其它可能未来可能包括的内容。

标准交易信封

以太坊有一个交易格式。每个交易包括一个随机数(nonce)、gas价格、gas极限、目的地址、value、数据、v、r、和s。这些字段是RLP编码的,如下所示:

RLP([nonce, gasPrice, gasLimit, to, value, data, v, r, s])

EIP-2718为类型化交易定义了一个新的广泛的信封。在新标准中,交易如下所示:

TransactionType || TransactionPayload

其中,这些字段被定义为:

  • 交易类型:介于0和0x7f之间的数字,总共有128个可能的交易类型。

  • 交易有效负载:由交易类型定义的任意字节数组。

这些字段连接组合形成类型化交易。该标准没有描述交易有效负载的格式;它可以是任何任意的字节系列,由新的交易类型(例如,RLP、SSZ等)定义的编码器进行编码。选择简单的字节连接是因为读取一个字节数组的第一个字节,而不需要任何库或工具:你不需要一个RLP或SSZ解析器来检查交易类型。

这种新方法使新的EIPs可以引入交易类型,而不在现有交易格式中引入不必要的复杂性,而且使用不同的以太坊工具(客户端、库)来区分不同的交易变得更容易。

增加的复杂性的一个很好的例子是EIP-155,它通过在交易中使用链ID来引入了回复保护(reply protection)。向交易参数中添加一个新字段将会破坏向后兼容性(backwards compatibility),所以链ID被编码到交易签名(v)的恢复参数(v)中。使用EIP-2718,我们可以简单地创建一个新的交易类型,以维护向后兼容性。

向后兼容性和原始交易

EIP-2718的一个大主题是向后兼容性。EIP-2718采用完全向后兼容模式,这意味着任何现有的工具、库、(硬件)钱包和交易都可以使用它,但他们将无法使用EIP-2718提供的新“功能”以及使用它的标准。旧的交易格式(现在称为原始交易)对于以太坊网络上的新交易仍然有效。

新交易类型的最大数目为0x7f,被选为维持这些旧交易的向后兼容性。RLP编码的交易总是以一个为l的字节开头,参数大于或等于0xc0,因此类型化交易永远不会与旧交易发生冲突,并且只需检查第一个字节,就可以区分类型化交易和旧交易。

EIP-2718本身不定义任何交易类型,但有一些建议使用新标准:

  • EIP-1559:ETH1.0链市场手续费变化;

  • EIP-2711:赞助、到期和批处理交易,也由开发人员迈卡·佐尔图(Micah·Zoltu)创建,这也是EIP-2718被创建的原因;

  • EIP-2930:可选的访问列表。

其中一些标准将在下面进一步详细说明。

为什么需要新的交易类型?

新的交易类型可以支持功能的集成,否则将通过Solidity合约或第三方解决方案进行处理。以即将到期的交易为例。在现有的解决方案中,你可以将资金发送到一个Solidity合约,签署一项交易,并将该交易发送到一个专门的节点,以便该交易具有额外的参数,如到期日。然后节点处理发送交易,并确保它在设置的到期日期之前执行,否则交易不会被广播。一些dApps和合约(例如Uniswap)内置了这个功能,但对于大多数交易来说,这是不容易实现的。

EIP-2711将此功能本地化添加到以太坊网络中,同时保持与原始类型交易的向后兼容性(如上一节所述)。它不需要智能合约或专门的节点来运行。然而,目前EIP-2711仍是一个草案,不清楚该EIP是否会很快加入以太坊网络。也可能被分割成多个更小的 EIPs(如EIP-3074)。

EIP-1559的新交易格式

在EIP-1559中,gas的工作方式发生了显著的变化。不再向矿工支付全部gas,而是燃烧一部分gas。我们不详细介绍EIP-1559的所有变化,但它确实指定了一种新的交易格式:

0x02 || RLP([chainId, nonce, maxPriorityFeePerGas, maxFeePerGas, gasLimit, to, value, data, accessList, signatureYParity, signatureR, signatureS])

最显著的变化是:

  • Gas价格已被“每个gas最高优先费用”和“每个gas最高费用”所替代。

  • 链ID是单独编码,而不是包含在签名v值中。这本质上用一个更简单的执行取代了EIP-155。

  • 签名v值现在是一个简单的奇偶校验位(“签名Y奇偶校验”),它是0或1,这取决于应该使用椭圆曲线上的哪个点。

EIP-1559还提供了一种基于EIP-2930来指定访问列表的方法。这可以降低交易的gas成本。

由于EIP-1559对gas费用的工作方式发生了重大变化,因此它与原始交易并不直接兼容。为了保持向后兼容性,EIP-1559描述了一种将原始交易升级到EIP-1559兼容的交易的方法。它通过使用原始gas价格作为每个gas的最高优先费用和最高gas费用来实现这一点。

原始元交易(meta transactions)和分批交易(batch transactions)

元交易已经出现了几年,但到目前为止仍一直需要智能合约。与即将到期的交易一样,这需要将ETH发送到智能合约,而该合约必须专门支持元交易。

EIP-2711使得原生元交易(称为赞助交易)和批交易成为可能,而不需要智能合约。一种新的交易格式被定义,交易类型为0x02(尽管这可能会发生变化,因为EIP-1559使用相同的交易类型)。交易如下:

0x02 || RLP([...SenderPayload, ...SenderSignature, ...GasPayerPayload, ...GasPayerSignature])

基本上,EIP-2711包括一个(可选的)有效载荷和gas支付人的签名。该账户将用于支付交易中的gas费用。例如,可以从一个地址发送ERC-20代币,而不需要该地址持有任何ETH。发送方有效载荷、签名等是基于交易子类型定义的。例如,对于交易类型为1的交易,发送方有效载荷被定义为:

[1, ChildTransaction[], nonce, ChainId, ValidUntil, gasLimit, gasPrice]

子交易( Child Transaction )被定义为:发送地址、值、数据。这使得可以在单个交易中指定多个地址、值和数据。例如,这可以用于在单个交易中调用ERC-20的批准和转移。

有关EIP-2711中可用的所有交易子类型的详细说明,建议读者阅读官方文件。

总结

类型化交易为以太坊网络带来了很多可能性。它们可以在不给以太坊客户端(clients)、库(libraries)和其它可用工具增加大量复杂性的情况下创建。

目前,新的交易类型还没有被广泛使用,因为EIP最近才被包含在网络中,但有一些激动人心的EIP正在开发中,比如EIP-2711,它增加了过期交易、批处理交易和赞助交易(又称元交易)等特性。现在可以在以太坊上定义新的交易类型,因此可以轻松创建其它EIP。

本文来自 Mycrypto,原文作者:Maarten Zuidhoorn。

24小时热点

sswp币有价值吗?SSWP币可以长期持有吗?

在加密货币市场上,SSWP币作为一种新兴数字资产备受关注。许 ...

32668

ZT GLOBAL 交易所

温室气体包括

温室气体是指在温室效应的作用下,能够多少程度上使大气中的温度 ...

4782

以太经典

香港的金融监管机构包括

一、香港金融监管机构 1、香港金融管理局(HKMA): ...

128072

Solanat

f2pool矿池官网

f2pool是一项创新技术,采用节点集群技术,以减少维护和管 ...

277813

币团交易所

十大虚拟币交易平台app汇总!

自从前两年比特币大火之后,带动了整个虚拟币行业,虚拟币也越来 ...

1114128

一岛

FIL-Filecoin 简介详情

Filecoin是IPFS上的一个代币,而Filecoin就 ...

10299

星舟艺术平台

discord怎么加入社区

Discord是一款适用于Windows,Mac,Andro ...

280998

洞壹元典

coinmarketcap官网

CoinMarketCap 是一个在线行情报价的数字货币工具 ...

751449

HitBTC交易所

MARVIN币(Marvin Inu)要挖多久?

段 MARVIN币(Marvin Inu)将在2021年4 ...

15957

瓦特(WBF)交易所

Pi币可换食衣住行了!台湾达成支付共识刷Pi Network!

火必(Houbi)交易所在至今正好3个月以前,正式放开Pi( ...

57432

阿瓦隆矿机

热点专题

虚拟货币传销/诈骗案件的通常做法

当更多人似懂非懂的对虚拟货币有些模糊的概念,还搞不清比特币和 ...

4224758

瓦特(WBF)交易所

gpt4.0中文版免费

GPT-4(生成预可训练技术4.0)是一个由OpenAI开发 ...

3931692

维公链

iBox 链盒科技

据iBox官方消息,9月17日20:00,iBox将正式发布 ...

3410044

iBox

揭秘网络传销行骗七大套路!

不管网络传销打着什么旗号,戴着什么面具,即便有着“72变”, ...

3054794

A网(AOFEX)交易所

Gem和Genie功能大对比

2022年4月25日,OpenSea官方发推宣布收购NFT交 ...

2394344

TopHolder 头号藏家

Genie 就是一个 NFT 市场的交易聚合器

Web3 中的「聚合器」是一个非常重要的组件,例如 1inc ...

2360742

嗨艺购

一文读懂NFT 交易聚合器GEM

购买 NFT 的主要问题之一在于,限制了用户一次只能购买一个 ...

2320416

第九空间

fc2是什么网站?fc2点击在此访问

FC2是日本最大的乃至亚洲最大的域名服务商,也是一家全面的网 ...

1965848

币团交易所

afd爱发电是什么网站 afd登录入口在哪

为什么需要爱发电? 我们认为,长期耕耘一件事或几件事的创作 ...

1737274

SAN币

亚洲最大成人平台“SWAG”网站关停,负责人被捕

2020 年,SWAG 发行了 6.25 亿枚治理代币 SW ...

1717848

NFT和元宇宙