Verstehen der formalen Beschreibung einer Transaktion und der damit verbundenen Rückerstattungen

Auszug aus Seite 8 des gelben Papiers:

Geben Sie hier die Bildbeschreibung ein

Ich verstehe voll und ganz, dass Verträge sich selbst zerstören können, und wenn das passiert, wird laut diesem Thread das gesamte Guthaben an die als Parameter angegebene Adresse zurückerstattet.

Passiert das in Gleichung 64? Werden alle bei einem Zustandsübergang vernichteten Kontensalden aufsummiert? Der einzige vorherige Verweis auf eine benannte Funktion Rerfolgt im Zusammenhang mit Transaktionsbelegen, und ich bin skeptisch, dass dies hier summiert wird.

Wenn ja, was ist der Grund für die nächste Gleichung, nein. 65, um die Rückerstattung zu begrenzen?

Geben Sie hier die Bildbeschreibung ein

Szenario:

  1. Das Gaslimit beträgt 60.000 und der Gaspreis 5 Gwei
  2. Transaktion verwendet nur 20.000
  3. Dabei wird ein Konto mit 1.000.000 gwei oder ㆔0,01 vernichtet
  4. Wie Tg60.000 und g'40.000 ist, ((Tg - g') / 2)ist 10.000, was bei einer Rate von 5 gwei 50.000 gwei oder ㆔0,00005 bedeutet

Würde der Anrufer g' + ㆔0,00005statt dessen nur eine Rückerstattung erhalten g' + ㆔0,01?

Antworten (2)

Die Gleichungen, die Sie zeigen, beziehen sich ausschließlich auf die Gasrückerstattung. Die Ausführung von selfdestruct(address)impliziert das Senden des Ethers im Vertrag an address, Aad dann den Vertrag zerstören. Der Vorgang der Vernichtung erstattet Gas und das wird dem Zähler hinzugefügt. die erste Gleichung (63) zeigt nur, dass der Rückerstattungszähler nach einer Selbstzerstörung aktualisiert wird.

Die zweite Gleichung zeigt, dass das zu erstattende Gesamtgas das verbleibende Gas (nicht verbrauchtes Gas) plus das Minimum zwischen der Hälfte des verbrauchten Gases [(Tg-g')/2] und dem Betrag im Erstattungszähler ist. Das bedeutet, dass, wenn Ihre Transaktion 30000 Gas verbraucht, höchstens 15000 zurückerstattet werden.

Dem Anrufer wird also das entsprechende Gas zurückerstattet und die 0,01 Ether gehen an den addressverbrauchten, wenn er drin istselfdestruct(address)

Hoffe das hilft

Ich danke Ihnen für Ihre Hilfe, aber es sind noch viele Dinge unklar: (1) Wird genau viel Gas zurückerstattet, wenn die Zerstörungsoperation durchgeführt wird? dann (2) warum wird es ein Zähler genannt, wenn es nicht wirklich zählt oder Dinge erhöht? dann (3) noch, warum wird das maximale Gas die Hälfte des verbrauchten zurückerstattet?
1. Der erstattete Betrag beträgt 24000 Gas, dies steht im Papieranhang G. 2. Es dows Increment, die Gleichung lautet Ar = Ar + Selbstzerstörungserstattung, das heißt, der neue Wert ist der aktuelle Wert plus die Erstattung für die Selbstzerstörung a Vertrag. 3. Das sagen die Gleichungen aus. Wenn dies nicht der Fall wäre, zahlt Ihnen das Netzwerk möglicherweise, wenn der Erstattungsbetrag höher ist als das Benzin, das die Transaktion gekostet hat.

Bestimmung 64

Rselfdestruct ist NICHT mit Blockquittungen verbunden. Stattdessen ist es eine in Anhang G des gelben Papiers definierte Konstante mit einem Wert von 24.000 (ab der Byzantium-Version 69351d5).

Das Summations-Sigma-Zeichen Σ bedeutet, dass es für jedes selbstzerstörte Konto i in As eine Rückerstattung im Wert von 24.000 Gas gibt . Natürlich wird die gesamte Summe zu dem bereits bestehenden Erstattungsguthaben Ar hinzuaddiert .

Bestimmung 65

Wir müssen das zurückerstattete Gas begrenzen, sofern wir sicherstellen können, dass alle Transaktionen aus wirtschaftlicher Sicht sinnvoll sind. Falls die vorherige Ar'- Berechnung einen Gaswert ergibt, der höher ist als der, den der Transaktionseigentümer bezahlt hat, wäre es für Bergleute nicht sinnvoll, diese Transaktionen durchzuführen (sie müssten für das zusätzliche zurückerstattete Gas bezahlen).

Folglich wurde das Ethereum-Protokoll so konzipiert, dass wirtschaftlich undurchführbare Szenarien vermieden werden – dh Leute, die einen Haufen Konten löschen würden, nur um Geld zu verdienen, aber diese Transaktionen würden nicht verarbeitet und sie würden den Mempool ohne jeglichen Zweck aufblähen .