簡體   English   中英

以太坊 - 兩個相同的交易,但不同的實際天然氣使用 - 怎么樣?

[英]Ethereum - two identical transactions but different actual Gas use - how come?

我有兩個相同的交易,在這種情況下發送相同數量的令牌,導致不同的實際燃氣消耗(不是成本,而是顯着差異)。

這是tx哈希:

起初我認為數據可能會導致差異(有效載荷中的“0”量)或相應塊的采礦難度差異,但這些似乎都不能證明這種氣體使用差距(如果相關的話)

有沒有人解釋為什么會發生這種情況? 請注意,我有更多這樣的交易存在相同的差距。

TNX!

UPDATE

按照下面的smarx評論 - 聽起來是正確的,但是,我希望最多有4種不同的氣體值(2X2組合,正如你所提到的)。 實際上,我們有超過4種不同的結果。 以下是一些交易,其燃氣使用價值:

22280 0x26c4b28a068e6ec91579c96e32aba449f2ad73168aca51e476a5a84072a620b6 22344 0x1341a9c4f6641746a50f8d05bb907d16150edf5e313b697908ddf3546e8fb9ae 22408 0x163eed32fee0f5999505dff804bd047620d0c063e07ad142ba0e257ed30cc4ee 22472 0xec326e42069efdefc79bd07fa98724ca2ec00432129cc3179e582a0e88af5112 22536 0xbd06b1722447fa8aaa783717c8237dd8b3934137ac8eabfd20bbdc6d1ec1af50 22600 0x9c3df4902887c94f9bf7901b8273c8b9da94d36f80801c3c5dbec9b4e7a5d8a8 36960 0x0ec051a92b1821d264f70b949cae68c2f463ae741330dc6a3a103b2612d1ea1c 37280 0x233e7c7abbf0e482c4c5b55efb31a7cd3c073ab00d2116fcff171f9e71542c1b 37344 0x3a93f860418732e76ca5941d7f9e6f0ec78df19905b8303ea520cea0994168aa 37408 0x6ce02124e33088fa7d13bfe2802039afecd78ba10e0a46598dea577c2ea61f27 37472 0x1f5be1f26f97f74aeb06d156d2221854597673640bc3c38690191501d2cd8f71 37536 0xd0edcfe4c179294bffca80f812a4a827a560294a1d944ac77adb9b8a0b22aa60 37600 0x2d7eca881486d69968eb3ab1f16850c0cd497003d06a2ea61efaeed6467f9a6a 52280 0x77d607600bf0110785cd08de78399d61c369274baa3 a180841bc0d1f015f328d 52344 0xa0a3f46e35abe608c27cec2cc188beddabad724ea6362a4584e9325a5cd9d276 52408 0x41c63e00b4e58ce2292a17216e7dc2554733feb70d2a0fe9c505689ef1dd50a3 52472 0x4ed5e9366948a23340b7f572dc69da5b0525cc4f7b5d0ddd83945ef4cdbaf05c 52536 0x40b33b7f9bc08171b1b2f54241db6f58ae72bd89c9b9d7650ba3ca5174144dcd

只是一個猜測,但很可能是一個:

transfer函數對存儲執行兩次寫操作:

  1. 更新的余額from地址。
  2. 更新to地址的余額。

寫入存儲具有不同的氣體成本,具體取決於先前的值和新值。

我的猜測是,在第一個事務中, to地址的初始余額為零,並且from地址在事務之后仍然有一些令牌。 改變存儲一個零到非零值的成本20000個氣體,所以這是更新的成本to解決。 非零值更改為另一個非零值有5000種氣體的氣體成本,所以這是用於更新的成本from地址。 兩個商店說明的總費用:25,000。

我的猜測是,在第二次交易中, to地址有一個正的初始余額增加,並且from地址的余額被交易完全耗盡。 更新to地址需要花費5,000氣體(將非零值更改為另一個非零值)。 更新from地址涉及到更改一個非零值為零,而您獲得氣體退款 成本為5,000天然氣,但在交易結束時給出15,000天的天然氣退款。 這是凈成本-10,000,因此兩個商店指令的總數為-5,000。

25,000和-5,000之間的差異是30,000,這恰恰是兩次交易之間的氣體差異。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM