Wer zahlt die Transaktionsgebühr? Zahler oder Empfänger der ETH?

Wenn wir anrufen address.transfer()oder address.send()überweisen ETH, wer muss die Transaktionsgebühr zahlen? Payeroder Recipientvon der ETH? Und gibt es eine Möglichkeit, den Zahler des feeoder zu wählen gas?

Aktualisierung :

Anmerkung 1: Laut dieser Seite :

Wenn Bob (Zahler) für jeden Tweet eine On-Chain-Transaktion durchführen würde, würden 20 % des Einkommens von Alice (Empfänger) durch Gebühren aufgezehrt.

Das heißt, recipientwer die Transaktionsgebühr zahlen muss, oder?

Anmerkung 2: Laut dieser Seite :

Anstatt selbst eine Funktion aufzurufen, um eine Zahlung zu initiieren, überlasse ich dies dem Empfänger der Zahlung – und bezahle daher die Transaktionsgebühr

Das bedeutet, dass derjenige recipientdie Transaktionsgebühr bezahlen muss. Und gibt es einen Vorteil , wenn der Empfänger die Transaktionsgebühr zahlt?

Was können wir schlussfolgern?

Antworten (2)

Der Zahler der Transaktion zahlt die Gaskosten. Es gibt derzeit keine Möglichkeit, den Empfänger für den Ether bezahlen zu lassen. Sie können eine Gasschätzung vornehmen und die Menge an Ether abziehen, die der Empfänger manuell auf Ihrer Seite erhalten würde, aber das zahlende Konto muss das Gas trotzdem im Voraus bezahlen.

Antwort auf Änderungen:

Ich denke, Note 1 ist einfach nicht streng. Ich denke, der Autor meinte, dass unabhängig davon, wer zahlt, jemand für 20% von Alices Einkommen zahlt.

Hinweis 2 erwähnt ein anderes Entwurfsmuster, das dieses Problem umgeht, aber eine zusätzliche Einrichtung erfordert.

Danke schön. Ich habe meine Frage aktualisiert und zwei Anmerkungen hinzugefügt. Ergebnis verändert? Danke
Danke. Gerade wenn Sie sagen, dass die zweite Anmerkung dieses Problem "umgeht", meinen Sie, dass die Zahlung der Sendegebühr durch den "Zahler" ein Problem ist und es besser wäre, wenn der "Empfänger" die Sendegebühr zahlt? Danke noch einmal.
Es kommt wirklich auf den Einzelfall an. In vielen Fällen ist die TX-Gebühr pro Zahler in Ordnung und wahrscheinlich das, was am sinnvollsten ist. In einigen Fällen ist dies nicht der Fall, aber Sie müssen diese Situationen erkennen, sobald sie auftreten.

wtk antwortet richtig, hier sind weitere Details zur Eth-Gebühr

Wenn Sie eine Kryptowährung von einer Adresse zu einer anderen überweisen, müssen Sie eine Gebühr für die Übertragung zahlen. Bei Kryptomünzen wie Bitcoin wird die Gebühr abhängig von der Menge der Daten gezahlt, die in einem Block enthalten sein müssen, damit die Transaktion stattfinden kann, es ist eine einzelne Gebühr pro Kilobyte Daten, über die Sie die Kontrolle haben. Eine Erhöhung der Gebühr kann zu einer schnelleren Aufnahme in einen Block und einer schnelleren Verarbeitung Ihrer Transaktion führen, um in die Blockchain aufgenommen zu werden und die Münzen an die neue Adresse zu verschieben. Eine Verringerung der Gebühr vom empfohlenen Betrag führt normalerweise zu einer längeren Bestätigungszeit, aber wenn die Gebühr zu niedrig ist, wird Ihre Überweisung möglicherweise nie durchgeführt.

Bei Ethereum (ETH) funktioniert das Ganze etwas anders, obwohl das allgemeine Prinzip, eine Gebühr für Transaktionen zu zahlen, ziemlich gleich ist. Wenn Sie Ethereum senden, Token übertragen, mit Smart Contracts interagieren und so weiter, müssen Sie eine Gebühr in Gas bezahlen, obwohl die eigentliche Gebühr sowieso in ETH bezahlt wird. Bei Ethereum zahlen Sie immer eine Gebühr, auch wenn Ihre Interaktion mit der Blockchain nicht erfolgreich ist oder erfolgreich ist. Hier ist ein Beispiel: Wenn Sie einige Ethereum-Münzen an einen Smart Contract senden und dies mit nicht genügend Gas tun, werden die Münzen nicht gesendet, aber Sie müssen trotzdem die Gebühr bezahlen und sie wird von Ihrem Guthaben abgezogen. Bei Bitcoin zum Vergleich führt eine erfolglose Transaktion nicht dazu, dass Sie trotzdem die Transaktionsgebühren bezahlen.