当前以太坊网络上的交易动态
今天以太坊网络上最常见的交易形式是标准的账户转账模式,其成本为 21000 gas 并且支付20 gwei/gas矿费。
从该交易提交到网络的时间起,矿工需要确认并将其打包在块中大约需要35秒。
我一直在一个网站上做确认交易和分析矿工行为等工作。更多详情请看这里,我深度剖析了为什么需要这么长时间,什么变化会影响这个等待时间等问题。 此外,截止目前为之块间隔时间平均约为14.5秒,这对确认打包交易需要的时间35秒起不到任何解释作用,所以我决定写下我的见解。
目前,有四个主要因素影响我们在一个块中的标准交易时间`:
- 块间隔时间
- POW采矿软件(最大因素)
- gas价格
- 空块处罚
这四个因素目前是如何创造了35秒的平均交易时间呢?
块间隔时间:
块间隔时间一般为14.5秒。 随着之前的交易被打包,之后的交易随机被提交给网络。 因此,当前块的间隔将增加约7.25秒到平均交易确认时间上(这是在简单而且忽略Poisson分布的情况下)。如果没有改变块间隔时间,7.25s是我们希望的最佳平均确认时间。
POW采矿软件延迟:
不幸的是,我们的交易不可能被提交到网络后然后被下一个块打包(即在Block 4,000,000提交Tx,并且以块4,000,001开采)。结果就是矿工不愿意在块间隔的中间更改块数据,也就不能容纳新提交的交易到内存池。我们到现在还不清楚这样做是否利于他们找到下一个块或者是否有一些软件优化可以完善这一点,但至少现在是没有。那么这对用户意味着什么呢?您必须等待交易的另一个完整的块有资格被包含在一个块中 - 也就是说平均需要另外的14.5秒。所以在最佳条件下,我们的标准交易开采平均花费时间为21.75s(交易前排队的7.25秒,到下一个盘区之前的14.5秒)
gas价格:
我们的交易被包含在块序列中的概率不是100%。在几个顶级矿池(例如F2pool,Coinotron)几个月内交易的挖矿价格为20 gwei gas是不太现实的。目前,只有约65%的块被矿工开采,并且他们愿意接受20 gwei gas的价格,在理论上我们创造的交易概率为65%。在65%的交易概率情况下,开采交易之前预计的平均块花费时间约为1.54块(或22.3s)。这个时间被添加到交易前排队(7.25s)所需的初始时间上,我们可开采的帐户转帐所需要的平均时间是29.6秒。
空块处罚:
不幸的是,虽然65%的块接受了20 gwei gas的价格而挖矿,但是在其中部分的矿池块中的交易(无论是什么交易)是空的。 对于用户来说最好的矿池目前空块的百分比是1-2%,这相当于目前每日交易数量的情况下,在挖矿的时候空内存池的真正比例。 相比之下,Dwarfpool虽然以20gwei gas的价格完成了许多交易下的挖矿,但现在其占空比的大约67%。 通过进一步降低其包含在块中的基本空块率,为我们的交易制造了额外的时间税。 因此我们需要估计能接受20 gwei gas 价格并且对空块调整的可能性是多少,目前而言是51%。 这意味着在采矿前预计总共35.25s(7.25s + 28s),平均预期速率为1.93块(28s),这个数字与现有的数据非常接近。
以下是我们以20gwei gas价格挖矿,交易被打包到块中各延迟因素的相对影响
总结:
一些评论家可能会指出,显示数据与观察数据的一致性并不能证明该模型是正确的。 那么,在预测其他打包时间方面呢? 如果我们的交易价格为40 gwei gas,基本上您可以在不影响其他障碍的基础上消除gas价格的障碍(所有矿池都接受40 gwei)。 在考虑空块处罚后,挖矿的概率约为70%,预期平均1.43块排队等候而产生的28s(7.25 + 20.735s),与这些交易的观察时间几乎相同。 这也是目前网络上可以达到的最佳平均确认时间。
同样地,如果你提供7 gwei gas价格,gas价格障碍就会非常高(只有10%的开采区块接受了这个gas价格),但这些接受低价格的矿工几乎从来都不会开采空块,所以空块处罚几乎消失了。 剩下9.9%的打包概率,预计开采时间为151s(7.25s + 144s),这与观察到的174s相当接近,我们发现在少量交易中,低 gas 范围内产生更多的变化。
对于那些想要交易时间减少的人来说,有个好消息是:障碍2-4本质上都是 PoW 挖矿模式带来的影响,一旦以太坊使用 PoS 模式,以上问题就被消除。 所以,这将是你欢呼 PoS 模式另一个好借口!
引用:https://medium.com/@ethgasstation/current-dynamics-of-transaction-inclusion-on-ethereum-ae8912edc960