Schon Bitcoin unterstützte es Anweisungen, sogenannte Opcodes, auf der Blockchain auszuführen. Der Sender kann z. B. definieren unter welchen Bedingungen der Empfänger das UTXO ausgeben kann. Das Ziel war es die Flexibilität im Umgang mit den Bitcoins zu steigern ohne ständig die Knotensoftware updaten zu müssen. Im wesentlichen gibt der Sender den Opcode der Transaktion mit und der Miner führt ihn aus.
Bitcoin lehnt seine Skriptsprache an Forth an und bietet einen nicht touringmächtigen Befehlssatz. Dies hat folgenden Grund. Bei einem touringvollständigen Befehlssatz gibt es kaum Möglichkeiten im Vorfeld zu erkennen ob der laufende Prozess auch beendet wird. So kann der Prozess z.B. in einer Endlosschleife hängen bleiben.
Beispiel: Varibale x hat Wert 2. Der Code soll folgende Anweisung wiederholen bis Variable x den Wert 1 annimmt: -> Weise x den Wert x-0 zu.
Wir können von 2 unendlich oft 0 abziehen, das Ergebnis wird nie 1 werden. Das Programm bleibt hängen. In diesem Beispiel ist der Fehler einfach zu erkennen aber wenn Schleifen eine gewisse Komplexität annehmen ist das Ganze nicht mehr nachvollziehbar und kritisch. Außerdem könnte ein Benutzer absichtlich bösartigen Code schreiben um das Netzwerk lahmzulegen. Führen nämlich die Miner ein Programm aus das in einer Schleife hängen bleibt, stürzt die Software ab. Eine nicht touringmächtige Sprache ist zwar sicherer, weil der Code immer terminiert, jedoch lässt sich vieles nicht elegant Formulieren und der Code kann sich bis zur praktischen Unbrauchbarkeit aufblähen.
Herangehensweise von Ethereum
Bei der virtuellen Maschine von Ethereum hat man sich trotzdem für einen touringvollständigen Befehlssatz entschieden. Jeder Befehl den die virtuelle Maschine ausführt kostet Einheiten. Diese Einheiten nennt man Gas. Auf dieser -> Seite sieht man den vollständigen Befehlssatz von Ethereums virtueller Maschine und die jeweiligen Gaskosten. Wenn man eine Transaktion ausführt muss man immer den Wert Gaslimit bestimmen. Dieser gibt den maximalen Gasverbrauch an den der Smart Contract verbrauchen darf. Im Idealfall terminiert das Programm bevor das Gaslimit erreicht ist und man zahlt genau das Gas das der Smart Contract verbraucht hat. Bleibt das Programm in einer Schleife hängen oder das Gaslimit war einfach zu gering gewählt, wird der Prozess abgebrochen, das Gas (in dem Fall Gaslimit) ist verbraucht und der ursprüngliche Status des Smart Contracts wird wieder hergestellt. Ethereum Token sind nichts anderes als Smart Contracts deren Berechnungs-Prozesse umfangreicher sind als das Ausführen einer normalen Ether Transaktion. Deshalb ist auch der Gasverbrauch beim versenden eines Token höher. Folglich sollte das Gaslimit größer gewählt werden, damit es nicht zur berüchtigten “out of gas” Fehlermeldung kommt. Denn dann sind die Transaktionskosten weg und der Token ist noch da.
Gas kommt dem Miner zugute dem es gelingt die Transaktion erfolgreich in einen Block zu packen.
Gaspreis
Neben dem Gaslimit gibt der Sender der Transaktion auch den Gaspreis mit. Dieser legt fest wie viel Ether er pro Einheit Gas bezahlen möchte. So bildet sich ein Markt wie bei den Transaktionskosten bei Bitcoin bei dem man umso mehr zahlt je schneller man die Transaktion bestätigt haben möchte. Ist das Netzwerk ausgelastet steigt der durchschnittliche Gaspreis, da die Miner jene Transaktionen vorziehen die ihnen mehr Ether einbringen.
Der Gaspreis liegt normalerweise im Milliardstel Ether Bereich. Ein Milliardstel (10-9 ) Ether nennt man auch Gigawei oder einfach Gwei wobei 1 Wei 10-18 Ether ist. Machen wir gleich ein Beispiel. Wir tätigen eine Transaktion die 1475 Gas verbraucht und haben den Gaspreis auf 17 Gwei festgelegt. Somit haben wir (sollten wir das Gaslimit nicht kleiner 1475 gewählt haben) 17 x 10-9 x 1475 = 0,000025075 Ether für die Transaktion bezahlt. Hätten wir das Gaslimit kleiner als 1475 gewählt, wäre die Transaktion nicht ausgeführt worden. Wir hätten aber unser gesetztes Gaslimit trotzdem an Spesen bezahlen müssen.
Eine Seite die dir einen Überblick über den aktuellen Gasverbrauch und die Gaspreise im Ethereumnetzwerk vermittelt, nennt sich Ethgasstation. Hier findest du auch heraus welcher Gaspreis aktuell am sinnvollsten ist zu wählen.
Kryptowährungen kannst du auf Binance*, Coinbase* oder eToro* kaufen. Hier geht es zu unserem ->Starterkit.
Folge uns auf Twitter, Instagram, Facebook, Steemit und tritt unserem Telegram News Kanal oder Newsletter bei.
Du würdest diesen Artikel gerne kommentieren? Dann tritt einfach unserer Telegram Diskussions-Gruppe bei.
*Die mit Sternchen (*) gekennzeichneten Links sind sogenannte Affiliate-Links. Wenn du über diesen Link etwas kaufst, bekommen wir eine Provision vom Händler. Damit kannst du uns unterstützen, der Preis verändert sich dabei für dich nicht.