Auszug aus Seite 8 des gelben Papiers:
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 R
erfolgt 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?
Szenario:
Tg
60.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 bedeutetWürde der Anrufer g' + ㆔0,00005
statt dessen nur eine Rückerstattung erhalten g' + ㆔0,01
?
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 address
verbrauchten, wenn er drin istselfdestruct(address)
Hoffe das hilft
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 .
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 .
eth