Warum kosten Token-Transfers, die an die Binance-Wallet gesendet werden, sehr wenig Benzin?

Mir ist aufgefallen, dass Token-Transfers, die an Binance gesendet werden, kaum mehr Gas verbrauchen als ein normaler Ether-Transfer. ~22.000 Benzin. Andere Übertragungen dieser Token scheinen fast die doppelte Menge an Gas zu verlangen.

https://etherscan.io/address/0x3f5ce5fbfe3e9af3971dd833d26ba9b5c936f0be#tokentxns

Beispiele: https://etherscan.io/tx/0x7043bbef6b0fdf40a163fdf4f5d179e7f55094de72420b2577ce39e34b295881 https://etherscan.io/tx/0x637ce9ce1e6df798af45253ad017005fab553289a305b4b4e277a264e

Antworten (2)

Meine Vermutung ist, dass diese Transaktionen zu einem Guthaben von Null Token für den Absender führten und mit einem Guthaben ungleich Null für den Empfänger begannen. Wenn Sie einen Wert speichern, variieren die Benzinkosten:

  • Es kostet 20.000 Gas, wenn Sie einen Wert ungleich Null speichern, wo früher ein Wert von Null war.
  • Sonst kostet es 5.000 Benzin.
  • Aber wenn Sie eine Null gespeichert haben, wo früher eine Nicht-Null war, erhalten Sie eine Rückerstattung von 15.000 Gas.

Die Erstattung ist auf die Hälfte des verbrauchten Gases begrenzt.

Wenn Sie also alle Token eines Kontos auf ein Konto übertragen, das bereits Token hat, sollten die Kosten ungefähr so ​​hoch sein:

  • 21.000 niedrige Transaktionskosten
  • 5.000, um das Guthaben des Absenders zu aktualisieren
  • 5.000, um das Guthaben des Empfängers zu aktualisieren
  • -15.000 Rückerstattung für das Setzen des Guthabens des Absenders auf Null

Das summiert sich auf 16.000 Gas. Hinzu kommen das Lesen von Werten aus dem Speicher, das Protokollieren eines Ereignisses und andere verschiedene Dinge.

Ich kann den Gasverbrauch nicht vollständig abrechnen, aber ich glaube, Sie werden feststellen, dass jeder Token-Transfer unter ~30.000 Gas die Eigenschaft hat, dass der Absender sein volles Guthaben sendet und der Empfänger bereits einen Teil des Tokens besitzt.

Ok das scheint so zu sein. Wenn die Transaktion also 40.000 Gas verbraucht hat, könnten Sie nur bis zu 20.000 Gas zurückerstattet bekommen?
Ja, die Rückerstattung kann nie mehr als die Hälfte des verbrauchten Gases betragen.
Großartig. Daher denke ich, dass es optimal ist, während Funktionen zu löschen, die ziemlich viel verbrauchen.

Ich denke, was Sie sehen, ist die Gasrückerstattung.

Da das Halten des Status eines der teuersten Dinge in der EVM ist, gibt es einen Anreiz, Dinge aus dem Status zu entfernen . Es gibt wirklich 3 Regeln für die Preisgestaltung staatlicher Operationen:

  1. Die Kosten für die Initialisierung eines Speicherslots (das Setzen eines 256-Bit-Slots in den Zustand von Null auf Nicht-Null) betragen 20.000
  2. Die Kosten für das Aktualisieren des Speicherslots (das Setzen eines 256-Bit-Slots in den Zustand von Nicht-Null auf Nicht-Null) betragen 5.000
  3. Es gibt auch eine Rückerstattung von 15.000 für das Löschen eines Speicherslots (Setzen eines 256-Bit-Slots von Nicht-Null auf Null).

Was passiert, ist, dass Sie sich Transaktionen ansehen, bei denen jemand alle seine Token an den Vertrag sendet, was bedeutet, dass sein Status im OMG-Vertrag von Nicht-Null auf Null geht und es eine Rückerstattung von 15.000 gibt.

Siehe sclearOpcode im Yellowpaper .