Kann eine Transaktion eine negative Gebühr haben?

Ich weiß, dass es einige Opcodes gibt, die negative Gaskosten haben (siehe hier ). Wenn ich also eine Transaktion sende, die eine (oder mehrere) Instanz(en) dieser Opcodes aufruft, wird das verwendete Gas negativ sein? dh erhöht sich mein Guthaben?

Antworten (3)

Nein, Anweisungen mit negativem Gas können nur das andere Gas reduzieren, das in der Transaktion ausgegeben wird. Aus dem Gelben Papier :

Gasrückerstattung bis zur Hälfte des verbrauchten Gases

A r ist die Summe der Gasrückerstattungen über alle Rückerstattungsanweisungen in der Transaktion. Die Rückerstattung ist auf die Hälfte der gesamten Gasausgaben begrenzt.

Aus der Frage, auf die Sie verlinken:

Die einzigen beiden OPCODEs mit negativen Gaskosten sind STORAGEKILL(-15000) und GSUICIDEREFUND(-24000).

Diese treten auf, wenn Speicherwerte gelöscht oder Kontakte getötet werden.

Sie mussten bereits einen Vertrag auf der Blockchain instanziieren, damit diese Aufrufe relevant sind. Das kostet Sie eine bestimmte (von Null verschiedene, positive) Menge Benzin.

Wenn Sie diese Anrufe mit negativem Gas machen, erhalten Sie einen Teil dieser ursprünglichen Kosten zurück. Insgesamt sind Sie immer noch aus eigener Tasche.

Sie haben im Großen und Ganzen Recht, aber ich frage mich nur, was mit einer einzelnen Transaktion passieren wird, sagen wir mal, die die Daten von fünf vorherigen Transaktionen entfernt.
Ich kann den STORAGEKILL-Opcode in den neuen Quellen nicht finden, Richard

Interessante Frage.

Wenn ich mich nicht ernsthaft irre, lautet die Antwort „nein“. Von wem würde die negative Gebühr kommen?

Die Transaktion selbst ist mit Gaskosten (Gebühr) verbunden. Von dieser Gebühr werden die Kosten für negative Opcodes abgezogen. Die Gebühr kann nicht negativ sein, sonst müsste sie von irgendwoher kommen – und es gibt nur zwei Stellen, von denen sie kommen kann – vom gewinnenden Miner für den aktuellen Block (der mit ziemlicher Sicherheit ein anderer Miner ist als derjenige, der den Block gewonnen hat). die die Daten setzen), oder es müsste aus nichts kommen. Keines dieser beiden Dinge passiert.