Wie werden die Transaktionskosten von Ethereum berechnet?

Ich bin gerade dabei, Blockchain-Technologie für einen meiner Kunden zu lernen. Ich verstehe das Konzept von "Gas" in Rechenkosten. Wir prüfen die Schaffung einer Kryptowährung als Alternative zur Verwendung einer traditionellen Zahlungsplattform für eine Closed-Loop-Lösung. Ich möchte ein Gefühl für die „Transaktionskosten“ bekommen, die mit einer einfachen Zahlungstransaktion über das Ethereum-Netzwerk verbunden sind. Ich finde die Berechnungsmethode nicht ganz klar. Kann jemand helfen?

sind die Kosten einer einfachen Transaktion die gleichen 21.000 für das Senden einer beliebigen Anzahl von Ether? das gleiche für das Senden von 1 Ether wie für das Senden von 500 Ether?

Antworten (4)

Die Berechnung ist gas* gascost, also kostet eine einfache Transaktion21,000 gas * 20 GWei/gas = .00042 ETH

Sie müssen auch alle valueübertragenen Transaktionen berücksichtigen. Die vollständige Formel wäre also gas* gascost+ value.

Eine einfache Transaktion, die einen Wert überträgt, aber keine zusätzlichen Daten enthält und keinen EVM-Code auslöst (der Empfänger ist kein Smart Contract), verbraucht genau 21000 Gaseinheiten. Sie müssen nur den Gaspreis kennen, um die Kosten der Transaktion zu berechnen.

Der Standard-Gaspreis war 20 Gwei (20 * 10 -9 ETH), aber es wird empfohlen, jetzt einen niedrigeren Wert zu verwenden. Aktuelle Statistiken zum Gaspreis finden Sie beim Service der ETH-Tankstelle .

Sie können auch die Kosten optimieren, indem Sie mit einem einfachen Smart Contract mehrere Zahlungen in einer einzigen Transaktion senden. Ohne auf die Details einzugehen, kostet Sie eine einzelne Zahlung innerhalb einer solchen Transaktion ~ 10000 Einheiten Benzin.

Wie würden Sie mehrere Zahlungen in einer einzigen Transaktion mit einfachen Transaktionen senden? Ich weiß, dass dies leicht mit einem Smart Contract möglich ist, aber ich habe keinen Code für kombinierte einfache Transaktionen gesehen.
@BokkyPooBah, dafür musst du einen Vertrag verwenden, es gibt keine andere Möglichkeit.
Wie kann der Preis für das Senden über einen Vertrag konstant sein (10000 Einheiten)? Jede Sendeanweisung wird etwas Gas verbrauchen, also sollte es linear mit der Anzahl der Sendungen gehen? Möchten Sie näher darauf eingehen?

Ich habe ein privates Ethereum-Testnetz erstellt und eine Transaktion von 5 Ether von einem Konto zu einem anderen initiiert. Das Guthaben auf beiden Konten beträgt vor der Transaktion 20 Ether. Nach der Transaktion:Geben Sie hier die Bildbeschreibung ein

Die Transaktionskosten betragen also 0,0004575186 Ether, was nach heutigen Wechselkursen ungefähr 0,00663 USD entspricht.

Weitere Informationen zu den Preisen finden Sie im „Anhang G. Gebührenverzeichnis“ des gelben Papiers von Ethereum .

Die Transaktionsgebühr wird bestimmt durch (gasConsumed * gasPrice). Bei einer einfachen Transaktion beträgt die verbrauchte Gasmenge immer 21.000, und Sie können das Gaslimit auf 21.000 setzen, um die Transaktion abzubrechen, wenn ein Knoten versucht, die erwarteten 21.000 Gas zu überschreiten.

Im Moment beträgt der von MyEtherWallet.com vorgeschlagene Gaspreis 21 Gwei, was im Grunde dem „Marktpreis“ für Gas entspricht. Sie sehen also (21.000 * 21) = 441.000 Gwei, um heute eine beliebige Menge Ether zu senden. Das ist ein verdammt guter Deal, wenn Sie 1 Ether (1.000.000.000 Gwei) senden möchten, der derzeit einen Wert von etwa 330 Dollar hat!

Um 1 Ether zu senden, zahlen Sie lediglich (441.000/1.000.000.000) oder 0,0441 % an Transaktionsgebühren! Das Tolle daran ist, wenn Sie 2 Ether senden, bleibt der (gasConsumed * gasPrice) gleich und Ihre Transaktionskosten können halbiert werden (441.000/2.000.000.000) 0,02205%, weil es immer noch nur eine Transaktion ist.

Für mich persönlich ist das ein absolut lächerlicher Wert und ich habe einen C#-Code geschrieben, um all den hart arbeitenden Minern 1,5 % Transaktionsgebühren zu zahlen. Auf diese Weise muss ich mich nicht darum kümmern, was meiner Meinung nach andere zu einem bestimmten Zeitpunkt zahlen und welchen Wert Ether zu einem bestimmten Zeitpunkt hat.

Sie sind wahrscheinlich besser dran, den Durchschnitt zu erhalten, wenn Sie ein normaler Benutzer sind, aber bei einem Computer mit Luftspalt besteht Ihre einzige Unsicherheit darin, den Wert dessen, was Sie besitzen, falsch zu verstehen, also plane ich, mich mit allen Möglichkeiten mit lokal signierten Transaktionen zu befassen einen festen Prozentsatz des Vermögens, das ich übertrage.

    decimal gasLimit = 30000;
    decimal etherToSend = .4m;
    decimal desiredFeePercentage = .015;

    decimal 1.5GetGasPriceInWeiForTransactionFeePercentage(gasLimit, desiredFeePercentage, etherToSend); // 200000000000 wei gasPrice for a transaction costing a max of 30,000 gas

    public decimal GetGasPriceInWeiForTransactionFeePercentage(
        decimal gasLimit,
        decimal desiredTransactionFeeAsPercent,
        decimal amountOfEtherToSend)
    {
        decimal transactionFeesInEther = amountOfEtherToSend * desiredTransactionFeeAsPercent;
        decimal transactionCostInWei = transactionFeesInEther * AMOUNT_OF_WEI_IN_ETHER;
        decimal requiredGasPriceInWei = transactionCostInWei / gasLimit;
        return requiredGasPriceInWei;
    }