Wer wird beim Aufruf einer Smart-Contract-Funktion bezahlt und wie viel zahlt der Anrufer?

Dies ist eine erweiterte Frage zu Was ist „Gas“ und Transaktionsgebühr bei Ethereum? .

Wer wird bezahlt und wie viel zahlt der Anrufer?

Machen wir einige Annahmen:

  • Es gibt eine Funktion F, die kostet 1,000 gas;
  • Es gibt 2 Bergleute M1und M2;
    • Ihre Gaspreise sind 1 GWei/gasbzw 2 GWei/gas.;
  • Es gibt eine externe Adresse A.

Die Fragen sind:

  • Wenn ein Anrufer Aaufruft F, wie viel Amuss er zahlen (ohne Berücksichtigung der Datenübertragungsgebühren)?
  • Ist es die Gesamtsumme ( 3 kGWei) oder wird sie von demjenigen bestimmt, der sie zuerst abgebaut hat ( 1 kGWeioder 2 kGWei)?
  • Wenn M1es zuerst abgebaut wird, wird M2einfach dem Ergebnis vertraut oder wird es noch einmal gemacht, um die Korrektheit zu überprüfen?
    • Dann M2sollte auch bezahlt werden, oder?
  • Wird das Ergebnis in allen vollständigen Knoten gespeichert, oder nur in den Miner-Knoten, oder nur in den Miner-Knoten, die „bereit“ sind, es zu speichern (mit passendem Gaspreis)?
    • Dann sollten auch andere Nodes bezahlt werden?

Antworten (1)

Agibt einen Gaspreis an.

M1und M2entscheiden, ob Adie Transaktion abgebaut werden soll, wenn der Gaspreis hoch genug ist. Wenn Ader Gaspreis von 1,5 GWei/Gas wäre, würde nur die Transaktion von M1abgebaut (da 2 GWei/Gas verlangt werden).AM2

Azahlt immer 1000 (bei gegebenen FKosten von 1000 Gas) multipliziert mit dem angegebenen Gaspreis; Bergleute können die gezahlte Transaktionsgebühr nicht ändern Aund können nur wählen, ob sie Adie Transaktion von in einen Block aufnehmen möchten.

Nur der gewinnende Miner bekommt die Transaktionsgebühr von bezahlt A. Andere Miner und alle anderen (vollständigen) Nodes müssen die Transaktion verifizieren und ihre Ergebnisse speichern: Ja, es ist ihnen gegenüber unfair und Teil des Problems in Bezug auf Anreize und Skalierbarkeit.

Weitere Informationen, https://blog.ethereum.org/2014/02/01/on-transaction-fees-and-the-fallacy-of-market-based-solutions

Für jede einzelne Transaktion, die ein Miner einschließt, werden die Kosten nicht nur von diesem Miner getragen, sondern von jedem einzelnen Knoten im gesamten Netzwerk.

Obwohl, nur um das klarzustellen, es nicht so unfair ist, wie es scheint, da andere Miner diese Blöcke benötigen, um die neuen Transaktionen zu verifizieren, für die sie Gebühren erheben, also ist es wirklich in ihrem eigenen Interesse, die Blöcke der anderen Miner ebenfalls zu validieren und zu speichern. Das Hauptproblem besteht darin, dass die Kosten im Laufe der Zeit weiter steigen, während die Anreize in etwa gleich bleiben.