欢迎光临
我们一直在努力

[深入分析以太坊交易成本:哪些因素影响以太坊交易速度?|以太坊

就是比特币中的交易长这样:

‘如果小明的签名验证通过,小明转 10 元钱给小红的地址。’

而以太坊中的交易可能长这样:

‘当小明的签名验证通过并且满足 blablablabla 条件时,将小明账户中的 10 元钱转到小红的账户上。’

这其中的 blablablabla 条件,实际上可以是任何逻辑或者任何程序,其中可以有条件判断,可以有循环,这些以太坊都支持。但问题就来了 —— 要是有个不善良的矿工打包了个死循环放在区块里,岂不是能让所有的以太坊节点都死机?

为了防止这种事情发生,以太坊中设置了每个区块的 Gas 上限以及每个计算步骤所需要消耗的 Gas 量。

我们可以简单粗暴地把 Gas 理解成汽油。比如,一个条件判断需要 10 gas,一个签名验证需要 100 gas,一个状态读写需要 10 gas 等等……然后,每笔交易都需要注明这笔交易需要使用的 Gas(当然,还需要付钱)。比如说,在某笔交易之后,你注明“跑 1000 个 gas 的”,于是,以太坊的节点会执行这笔交易,但是当计算需要消耗的 gas 超过 1000 了,不管交易的步骤执行没执行完都会停下来。

于是,死循环不会出现,比如你写了个死循环,但是每次循环会烧 10 gas,而区块的 gas 上限是 10000,你于是最多给这个程序买 10000 的 gas,那么所有节点会执行 1000 次循环,直到把你给的 gas 烧完就停下来,而不会无限循环下去。

而这个时候就引出了另一个以太坊和比特币不同的区别:

在比特币中,链上最宝贵的资源是空间 —— 因为一个区块大小是 1 M,而平均 10 分钟才能出一个区块。

而在以太坊中,链上最宝贵的资源是 gas,因为每个区块的 gas 是有上限的,而平均出块时间也是固定的,每单位时间能够做的计算步骤其实也是有限的,所以 ETH 的 TPS 也是有限的。

于是,当大量的人需要做交易,尤其是很多操作复杂的交易的时候,以太坊就会拥堵。

对 ETH 的 TPS 造成影响的问题大概分以下几个方面:

我们知道比特币区块链中消耗的矿工费用是 BTC,为了激励以太坊网络中的计算,于是在以太坊中产生了 gas 的概念,在以太坊区块链上执行写入操作都需要支付 gas 费用,以太坊定义了货币是 1 ETH,且 1 ETH = 1e18 Wei。Wei 是其中的最小额,在整个工作中,发送代币、调用合约都要支付 gas,且以 Wei 作为单位来计算。

Wei 的由来:戴维(Wei Dai)是一位华裔计算机工程师,对密码学和加密货币的贡献而闻名,他开发了 Crypto++ 密码库,创建了 B-Money 加密货币系统,并共同提出了 VMAC 消息认证码算法。 2013 年,Vitalik Buterin 的以太坊(Ethereum)最小单位 Wei,便以他的名字命名。比特币白皮书的排名第一的参考资源也是戴维的 B-money,中本聪在建立比特币初期也多次想与戴维联系。

目前 ETH 消耗 gas 的单位是 Gwei,对应 1 Gwei=1e9 Wei

简单说,gas price 就是汽油单价,gas limit 相当于发动一次汽车需要的最大汽油量。

再具体点的表达是:

区块的 Gas Limit 是能够将一定量的交易‘装在’该区块中的交易所用总 Gas 数的上限。当节点在选择要打包的交易时,节点必须确保加入这笔交易后,区块里的交易所用总 Gas 数不会超过区块 Gas 上限。对于要被打包的交易来说,其 Gas Limit 加上其他交易的 Gas Limit 总和,必须小于等于区块 Gas Limit。当然,如果有一笔交易不能被打包进入当前区块,它还是有机会被后面的区块打包的。区块的 Gas Limit 大小是动态调整的,伦敦升级为以太坊引入了可变大小的区块 Gas limit。每个区块的目标大小为 1500 0000 gas,但区块大小会根据网络需求增加或减少,直至区块限制为 3000 0000 个 gas(目标区块大小的 2 倍)。

因恶意用户不断的转移额度非常小的帐目,使得整个网络瘫痪,当交易的费用非常低时,可以忽略不计,因此以太坊引入了 gas 的概念,任何转账以及智能合约的执行,都要消耗一定的费用即 gas,如果 gas 消耗完毕,则代码不再继续执行,这样防止恶意代码的 for 循环不停的执行,以至于整个网络无法继续向下一个状态迁移。因此我们知道,任何计算、存储都是需要付出成本的,这样才能杜绝恶意攻击代码。

当交易大时,区块 gasl imit 将实现自动扩容,提高以太坊本身的 tps,区块的 gas limit 最高为 30,000,000(节点默认配置)。

以太坊的底层技术与 gas 的设计都是由 Gavin Wood 完成的,具体可参考 Gavin Wood 写的黄皮书。

以下是 ETH 黄皮书设计的 gas 成本。

截图来自:https://ethereum.github.io/yellowpaper/paper.pdf截图来自:https://ethereum.github.io/yellowpaper/paper.pdf

使用 ETH 需要付费,以及 gas 的概念。总的来说,每一笔交易都有与之关联的 gas ——发送一笔交易的成本包含两部分:固有成本和执行成本。

执行成本根据该交易需要使用多少 ETH 虚拟机(EVM)的资源来运算而定,执行一笔交易所需的操作越多,则它的执行成本就越高。

固有成本由交易的负载( payload )决定,交易负载分为以下三种负载:

假设 Nzeros 代表交易负载中,字节为 0 的字节总数;Nnonzeros 代表交易负载中,字节不为 0 的字节总数。可以通过下列公式计算出该交易的固有成本,参考黄皮书 6.2 章节:

固有成本 = Gtxdatazero × Nzeros + Gtxdatanonzero × Nnonzeros + Gtxcreate + Gtransaction + Gasscesslist 成本

在黄皮书的附录 G 中,可以看到一份创建和执行交易的相关成本的费用表。其中与固有成本相关的内容如下:

因为 ETH 是原生的代币,没有智能合约,不需要与合约交互,所以 ETH 的转账是最便宜的,只需要 21000 gasl imit 的配置。 当 ETH 转账需要附加一些数据时,就可以参考上述公式。

如下图,操作了 tp 钱包,在转账时加入了两个 0 字节,两个非 0 字节。按上述公式计算:

固有成本 = 21000 + 4 × 2 + 16 × 2 = 21040,也就是对应上方的 gas limit。

交易的固有成本必须小于该交易设置的 gas 上限

我们知道了固有成本后,就能理解为什么一旦交易的固有成本高于 Gas 限制,则该交易就会被视为非法。Gas Limit 规定了一笔交易在执行时,能够消耗掉的 Gas 上限;如果在还没开始执行该交易前,我们就知道它的固有成本是高于 Gas 上限的,那我们就没有理由执行这笔交易。(这是因为在交易之前就会报错)

而其他代币的转账就会比 ETH 的 21000 gas limit 高很多,这是因为其他代币是通过智能合约执行交易,比普通的转账需要更复杂的计算和写入。

Gas Limit 范围虽然可以调整,但是如果填写太少,可能会导致交易失败,就好比油价很高,但是你拿一个可乐瓶来做油箱,并且要跑 100 公里的路,但事实是还没有上高速车就没有油了,所以 gas limit 不够矿工消耗的话会就会导致代码执行中断。尽管如此,矿工还是会把劳务费 gas 收走的~

那 ETH 目前的 tps 大约在什么范围?

2022 年 2 月 28 日下午的区块 gas limit 为 30,000,000 左右,以太坊的出块时间在 13 秒左右,交易的最低成本为 21000,对应 ETH 的 tps 上限为 110 左右,由于还存在大量不是普通转账的交易,而是与合约交互的交易,所以实际 ETH 的 tps 只有 10 多笔。

在以太坊中,执行交易会改变状态 —— 好几笔交易被打包进一个区块,每个区块就相当一个交易列表;当交易被按照顺序执行后,会输出新的合法状态。

交易按照以下步骤执行:

执行交易包含的操作成本参考下图黄皮书的对应内容,例如 MUL、DIV、ADD、SUB 等等

与 gas、tps 相关的 EIP 方案:

2019 年由 v 神提出,2021 年 8 月 5 日上线。

一种交易定价机制,包括固定的每个区块的交易费用,该费用将被销毁并动态扩展 / 收缩区块大小以应对瞬时的堵塞。

交易发送者通过提供两个值来指定其费用:‘gas premium’(天然气溢价)加到‘base fee’(基本费)中,以计算 gas price。‘gas premium’可以设置为较低的值(例如 1 gwei)以补偿矿工的叔叔率风险,也可以设置为较高的值以在突如其来的高交易量中竞争。‘gas premium’将给予矿工。 ‘fee cap’表示交易发送者愿意支付的最高总额(base fee + gas premium)。

‘当前以太坊的“最高价拍卖”费用模式效率低下,对用户来说成本高昂。此 EIP-1559 提出了一个取代这种机制的方法,即根据网络需求来对一个基本网络费用进行调整,从而创建更好的费用价格效率,并降低用于避免支付不必要的高额费用所需的客户端软件的复杂性。’

在当前的以太坊系统中,新提交的交易必须等待被某个矿工打包进入下一个区块,但这些交易可以通过增加 Gas Price 参数使其高于网络平均水平,以此来激励矿工打包自己的交易。矿工是总是会希望将那些包含最大交易费的交易打包进入新区块中,因此预计被打包进入下一个区块中的交易总是那些有着最高 Gas 价格的交易。

这种最高价拍卖模式的问题在于,在交易需求旺盛的时期,情况可能会很快失控。当区块接近达到满块时,使交易被打包进入下个区块的成本 ( 交易费 ) 可能会急剧上升,因为用户会试图以比其他人更高的价格来让自己的交易被打包。

尽管当前矿工们有一定的能力 ( 备注:比如增加区块 gas 上限 ) 来增加在单个区块中打包的交易笔数,但这一上限无法很快得到改变,且实际上矿工们更乐于使用较小的满块,而不是将区块 gas 上限越推越高 ( 对于矿工来说,由于存在叔块率,更大的区块带来更高的风险 )。尤其是如果你的钱包使用了 gas 定价算法,从而使你的交易在一个特定的时间框架内被打包,那么你可能最终会支付一笔相当高昂的交易费来让你的交易被打包进入下一个 ( 几乎 ) 满了的区块。

EIP-1559 引入了 gas 费用的‘base fee’( 基本费 ) 概念,这笔费用被设定为会动态地调整,当网络超出目标每区块 gas 使用量时,“base fee”会略有增加,而当数量低于目标时,“base fee”用会略有下降。 这笔‘base fee’不会流向矿工的口袋,而是会被销毁。

为了激励矿工打包交易,用户还将设定一个“Tip” ( 小费 ) 参数,并设定一个他们为了让自己的交易被打包进入区块而愿意支付的最大金额,矿工将获得这笔‘Tip’( 小费 )。

由于“基本费”不会根据网络需求的瞬息变化而剧烈波动,因此用户在一定程度上远离了“最高价拍卖”模式带来的低效率问题 (‘Tip’费用仍然是最高价模式 ),因为“基本费”会被销毁,而不是给矿工,这样矿工就不会有动机去尝试操控交易费了。重要的是,此机制也试图解决钱包开发者在自动预估网络交易费方面遇到的一个重大问题,使交易费预估变得更加可预测。

提高用户体验,避免 gas 费用增长过快,更好的预估市场,利于 L2 的运行成本的评估,缩减了矿工的利润,销毁更多 ETH,利好 ETH 与 layer2,但对 tps 影响不大。

2021 年 11 月份由 v 神提出,目前还处于草案阶段(待讨论确定)

降低交易调用 calldata gas 成本,并增加一个区块中调用 calldata(Gtxdatazero) 的总交易的限制。

动机

Rollups 在短期和中期,也可能是长期的,以太坊唯一的去信任扩展解决方案。长时间来,L1 的交易费用一直非常高,并且迫切需要采取任何必要的措施来帮助促进整个生态系统向 rollup 的迁移。 Rollups 显着降低了许多以太坊用户的费用:Optimism 和 Arbitrum 经常提供比以太坊 L1 层本身低约 3-8 倍的费用,而具有更好的数据压缩并且可以避免包含签名的 ZK rollups 的费用约低 40-100 倍的费用。

然而,即使是这样,费用对许多用户来说也太贵了。对 rollups 本身长期不足的长期解决方案一直是数据分片,这将为链中的 rollups 添加约 1-2 MB/ 秒的专用数据空间。然而,数据分片仍然需要相当长的时间来完成实施和部署。因此,需要一种短期解决方案来进一步降低 rollup 成本,并激励整个生态系统向以 rollup 为中心的以太坊过渡。

该 EIP 提供了一种快速实施的短期解决方案,同时也降低了安全风险。

当前区块的 gas limit 为 30000000 左右,那区块最大块大小为 30000000 / 16 = 1875000 字节。如果只是简单把 calldata 从 16 减少至 3,会将区块最大大小增加到 10000000 字节,这会让以太坊的 P2P 网络面临前所未有的压力,所以该项提案限制了 calldata 总量的大小。公式如下:

短期的解决方案,也可能是长期的,利好 layer2 的 rollup,可以大大降低 rollup 的交易成本,非 0 字节的数据可以降低为当前的 1/5 的成本不到,0 字节的也可以微微降低(ab,op,zk 等预计都可以下降至目前 1/4-1/5 的手续费),但对 ETH L1 tps 影响不大, 甚至会降低,区块大小会增加,所以该提议与 EIP-4444 可能同期执行。

ETH 的 gas 的相关处于草案阶段的 EIP 主要为 EIP-4488,对 TPS 的影响较大,利好 layer2 的 rollup,可以大大降低 rollup 的交易成本,非 0 字节的数据可以降低为当前成本的 1⁄5 不到,0 字节的也可以微微降低(ab,op,zk 等预计都可以下降至目前 1⁄4 – 1⁄5 的手续费),但对 ETH L1 tps 影响不大,可能微降。

ETH 节点之间的数据都是通过 P2P 网络进行传输,ETH 的 P2P 网络会影响节点间的区块数据的同步速度,因此也会限制 TPS 的增长。

Devp2p 是一组形成以太坊 P2P 网络的网络协议。服务于与以太坊相关的任何网络应用程序的需求。

该系统提供对整个 Internet 中其他节点的发现以及与这些节点间的安全通信。

IPFS 的 libp2p 项目,旨在成为一个模块集合,用于从模块化组件组装 P2P 网络。

很难比较这两个项目,因为它们的范围不同,并且在设计时考虑了不同的目标。devp2p 是一个集成系统定义,它希望能够很好地满足以太坊的需求(尽管它也可能非常适合其他应用程序),而 libp2p 是一组编程库组件的集合,不专门为单个应用程序服务。

也就是说,这两个项目在精神上非常相似,并且随着 libp2p 的成熟,devp2p 正在采用部分 libp2p。

与 ETH 网络相关的 EIP:

2021 年 11 月份由提出 George Kadianakis、lightclient、Alex Stokes目前还处于草案阶段

客户端停止在 p2p 层上提供超过一年的历史收据。客户可以在本地修剪这些历史数据。

历史块和收据目前占用超过 400GB 的磁盘空间(并且还在增长!)。因此,要验证链,用户通常必须拥有 1TB 的磁盘。

验证新块不需要历史数据,因此一旦客户端同步了链的末端,只有在通过 JSON-RPC 明确请求或对等方尝试同步链时才会检索历史数据。通过修剪历史,该提议减少了节点的硬盘需求。修剪历史数据还允许客户端删除处理历史块的代码。这意味着执行客户端不需要维护处理每次升级的复合更改的代码路径。

最后,随着客户端基于 PoS 采用更轻量级的同步策略,这种变化将导致网络上的带宽使用减少。

裁剪一年前的历史数据,减少网络带宽的使用。

与 ETH 的网络相关的、处于草案阶段的 EIP,对 TPS 的影响不大。

合并是指以太坊的信标链作为共识层,与当前大多 ETH 用户使用的主网 POW 链作为执行层,进行合并,合并后执行层就会放弃现有的 POW 共识机制。

信标链将管理或协调扩展的分片和质押网络。但它不会像今天的以太坊主网。不能处理账户或智能合约。

信标链的角色会随着时间而改变,但它是正在努力实现的安全的、可持续和可扩展的以太坊的基础组成部分。

信标链将向以太坊引入 POS。这是一种帮助您确保以太坊安全的新方法。把它想象成一种公共物品,它将使以太坊更健康,并在此过程中为你赚取更多的 ETH。

质押和成为验证者比挖矿(网络当前的方式)更容易。从长远来看,这将有助于使以太坊更加安全。参与网络的人越多,它就会变得越去中心化和安全。

最初,信标链将与我们今天使用的以太坊主网分开存在。但最终,它们将被连接起来。该计划是将主网“合并”到由信标链来控制和协调的 POS 系统中。

信标链启动时间 2020 年 12 月份。

以太坊协议正发生重大变化。客户端团队正在升级协议,对以太坊进行扩容,以满足全球用户的需求,同时提升以太坊安全性与去中心化程度。除了协议开发,以太坊的一个极为重要的转变在于弃用术语‘Eth1’与‘Eth2’。2021 年年底起,核心开发者就停止使用‘Eth1’与‘Eth2’了,分别以‘执行层’与‘共识层’取而代之。今天,正如我们在 Q1 路线图中强调那般, ethereum.org 也对此做出同样的改变。

让我们一起来探究原因吧!

作为路线图的一部分,以太坊一直计划以去中心化的方式来扩展网络,并过渡到 PoS ( 权益证明 ) 。早些时候,研究者们分别对这些计划进行研究,但在 2018 年左右,上述都被纳入进‘以太坊 2.0’路线图中。

作为路线图的一部分,现有的 PoW 链 ( Eth1 ) 最终会通过难度炸弹被弃用。用户与应用将被迁移到新的以太坊 PoS 链 ( 即 Eth2 ) 上。

2019 年初 ConsenSys 发表的《 Serenity 路线图 》 解释了具体情况。

随着信标链的工作开始,很明显,分阶段进行的以太坊 2.0 将要花费数年时间才能完全交付。这导致对 PoW 链的研究计划又重新活跃起来,例如 Stateless Ethereum ( 无状态以太坊 ),这是一个通过删除网络里不再被访问的状态来限制状态膨胀率的范式。

对于 PoW 链长期可持续发展的日益关注,加上我们也意识到信标链将比以太坊 2.0 路线图的其他部分更早准备好,‘早期合并’ ( “Early Merge” ) 提案由此产生。 在这个提案里,现有的 EVM 链将作为以太坊 2.0 的‘分片 0’。这不仅能加快向 PoS 的转变,还能令应用的过渡更为顺畅,因为不需要应用终端发生任何迁移就能过渡到 PoS 。

这个提案发布不久后, Danny Ryan 在他的文章《Eth1+Eth2 客户端的关系》中探讨了我们怎样通过利用现有的 Eth1 客户端来完成这一点。这将能大大减少交付一个合并后系统的开发工作,且充分利用已经在主网身经百战的客户端。大约在同一时间,把 rollups 作为一种可行且安全的方式来为以太坊扩容的研究证明是有前景的。与其花上几年等待一个复杂、不确定的扩容方案,我们还不如将注意力放到基于 rollups 的扩容方案,而不是分片执行。

还想阅读更多资料?点击查看 Danny Ryan 在 ETHGlobal 的演讲《Eth1 + Eth2 = Ethereum》

思维模式

Eth2 这个品牌名的主要问题之一是 Eth2 会对新以太坊用户创造一个不完整的心智模型。他们会直觉地认为:Eth1 在前,Eth2 在后;或者 Eth2 一旦创世了, Eth1 就不复存在了。这两种观念都是错误的。通过不再试用 Eth2 这个术语,未来用户就不会再形成这种容易错误理解的思维模式了。

包容性

随着以太坊路线图的升级,以太坊 2.0 已经变得不能准确表达以太坊路线图的意思了。严谨且准确的词汇选择,可以让大众更好理解以太坊的内容。

防止诈骗

不幸的是,一些恶意行为者试图利用 Eth2 这一误称来骗用户用 ETH 来兑换 代币‘ETH2’,或者要在 Eth2 升级前,必须以某种方式迁移他们的 ETH。

我们希望这次更新的术语能够清楚地消灭这种诈骗元素,让生态变得更安全。

对质押的澄清

有些质押运营商还把他们在信标链上的 ETH 打上‘ETH2’的标签。这可能会带来误解,因为这些服务的用户并不会实际收到‘ETH2’代币。从来就没有所谓的‘ETH2’代币 ;那仅代表用户在特定运营商的押金中的份额。

最初,信标链与主网分开运行。以太坊主网继续通过 POW 得到保护,即使信标链使用 POS 共识并行运行。合并是这两个系统最终融合在一起的时候。

想象一下以太坊主网是一台载满游客并高速运行的火车,信标链也同样如此,他们在高速运行的同时,还需要相互对接,合并成一台全新性能更强的火车,并且过程中游客是无感知的,可想而之难度是非常大的。

合并后标志着以太坊工作量证明的结束,并开启一个更可持续、更环保的以太坊时代。此时,以太坊将更接近实现其以太坊愿景中概述的全面、安全和可持续性,并且用户全程将会是无感知的。

一旦发生合并,将分配质押者来验证以太坊主网。将不再需要 POW 模式采矿,因此矿工可能会将他们的收入投入到新的股权证明系统中。

合并预计时间:ETH 官网提供的合并时间在 2022 年的第三季度。

合并后主网作为执行层继续运行,当前 POW 的出块平均时间为 13 秒左右,转 POS 后,大约为 12 秒一个区块,出块时间会稳定许多,传统 POW 矿商可能也转为 POS 挖矿,将提高 ETH 的需求,利好 ETH,但转 POS 后,以太链的 TPS 只会有微涨幅,不会有大的变化。

分片是水平拆分数据库以分散负载的过程,这是计算机科学中的一个常见概念。在以太坊环境中,分片将通过创建称为“分片”的新链来减少网络拥塞并增加每秒交易量。

以太坊的分片过程会是一个多阶段升级的过程,最终分片链将网络负载分散到 64 个新链上。

将保持较低的硬件要求来规范本地运行节点。分片将为以太坊提供更多存储和访问数据的能力,目前认为不会影响执行代码。

保持去中心化,分片是一种很好的扩展方式,使用分片链,验证者只需为他们正在验证的分片存储 / 运行数据,而不是为整个网络存储 / 运行数据。这加快了速度并大大降低了硬件要求。

分片最终会实现在个人笔记本电脑或手机上运行以太坊。会有更多的人能够在分片的以太坊中参与或运行客户端。这将提高安全性,网络越分散,攻击范围就越小。

由于硬件要求较低,分片将使您更轻松地自行运行客户端,而完全不依赖任何中介服务。

分片链版本 1:数据可用性

当第一个分片链运行时,它们只会向网络提供额外的数据。他们不会处理交易或智能合约。但是当与 rollup 相结合时,它们会处理大量事务。

Rollup 是当今存在的‘layer2’技术。它们允许 dapp 将交易捆绑或‘rollup’到链外的单个交易中,生成加密证明,然后将其提交给链。这减少了事务所需的数据。汇总与分片提供的所有额外数据可用性相结合,每秒可以获得 100000 个事务。

分片链版本 2:代码执行

考虑到版本 1 分片提供的处理能力,是否还需要将分片应用到处理执行过程。在社区中存在争论。Vitalik Buterin 提出了 3 个值得讨论的潜在选项。

(1)不需要状态执行

这意味着我们不会让分片能够处理智能合约只将它们作为数据仓库。

(2)有一部分执行分片

也许有一个妥协,我们不需要所有的分片(现在计划 64 个)变得更聪明。我们可以只将这个功能添加到少数几个,而剩下的不添加。这可以加快交付速度。

(3)等待(ZK)snarks

当 ZK snarks 技术成熟稳固后重新审视这个问题。可能 ZK snarks 技术需要更多分片。

ETH 官网提供的分片时间在 2023 年某个时间,取决于合并后工作进展的速度。

尽管分片方式并未确定,但可以肯定的是分片将极大的提高 TPS。


未经允许不得转载:币安钱包官网下载|币安钱包app最新下载|Trust Wallet中文版|Binance官网 » [深入分析以太坊交易成本:哪些因素影响以太坊交易速度?|以太坊
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

大前端WP主题 更专业 更方便

联系我们联系我们

Warning: Cannot modify header information - headers already sent by (output started at /www/wwwroot/kaizok.com/wp-includes/class.wp-styles.php:214) in /www/wwwroot/kaizok.com/index.php on line 18