?一文了解以太坊上的新交易类型_GAS:MOSOLID

本文来自?Mycrypto,原文作者:MaartenZuidhoorn,由Odaily星球日报译者Katie辜编译。

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

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

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

?带v值签名方式的交易,但不包括链ID;

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

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

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

库币上线HT,现已开放充值:据库币KuCoin官方公告,库币宣布上线 Huobi Token (HT)项目并支持HT/USDT 交易服务 ,目前已开启HT的充值服务,于4月14日16:00正式开放交易。

HT(Huobi Token)是由Huobi Global在以太坊区块链上发行的一种去中心化的资产。以“全民的交易所”著称,库币旨在发掘全球优质区块链项目,为来自207个国家的600万用户提供币币、法币、杠杆、合约、矿池、借贷等一站式服务。[2021/4/13 20:14:50]

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

标准交易信封

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

RLP()

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

库币上线XCUR,开盘上涨14.9%:据库币KuCoin交易所消息,库币已上线 Curate (XCUR)项目并支持XCUR/USDT和XCUR/BTC 交易服务。XCUR开盘价为6.6USDT,当前报价7.58USDT,涨幅14.9%。 Curate 一体式市场应用程序,它使用区块链技术作为支付基础设施,并在所有交易中奖励买家和卖家。以“全民的交易所”著称,库币旨在发掘优质区块链项目,为来自207个国家的600万用户提供币币、法币、杠杆、合约、矿池、借贷等一站式服务。[2021/4/2 19:41:01]

TransactionType||TransactionPayload

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

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

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

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

库币上线葡语社群 全球社群已覆盖18种语言:据库币KuCoin交易所消息,库币目前已正式上线葡语社群,覆盖葡萄牙、巴西、安哥拉、莫桑比克等主要使用葡语的国家及地区。据了解,库币已上线中文、英文、俄语、越南语、葡语等在内的18种语言社群。库币是一家全球性数字货币交易所,为来自207个国家的500万用户提供币币、法币、合约、矿池、借贷等一站式服务。[2020/4/1]

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

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

向后兼容性和原始交易

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

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

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

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

?EIP-2711:赞助、到期和批处理交易,也由开发人员迈卡·佐尔图创建,这也是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()

最显著的变化是:

?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费用来实现这一点。

原始元交易和分批交易

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

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

0x02||RLP()

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

,nonce,ChainId,ValidUntil,gasLimit,gasPrice]

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

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

总结

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

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

郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。

金智博客

[0:15ms0-4:565ms