Ethereum Teil 2

Im zweiten Teil der Ethereum-Vorstellung erkunden wir weitere Funktionalitäten des Netzwerks. Zeitgleich beschäftigen wir uns intensiver mit der Technologie hinter Ethereum.

Die universelle Einsetzbarkeit von Ethereum ergibt sich aus der turing-complete Programmiersprache. Turing-complete bedeutet, dass eine Programmiersprache für eine Vielzahl an Einsatzzwecken genutzt werden kann. Bekannte Beispiele sind C, C++ und Java. Bitcoin hingegen ist non-turing-complete. Dies schränkt das Bitcoin-Netzwerk ein, macht es zudem aber auch deutlich weniger anfällig für Fehler und Angriffe von außen.


Durch die Freiheit sich austoben zu können entsteht für Entwickler im Ethereum-Netzwerk eine Vielzahl neuer Möglichkeiten.


Halting-Problem und Gas Fees

Die theoretische Informatik besagt, dass keine Anwendung unendlich lang laufen kann ohne für die Aufrechterhaltung des Betriebs der Anwendung Energie aufzuwenden. Dieses Problem löst das Ethereum-Netzwerk durch Gas Fees.


Jede Kommunikation mit der Blockchain - egal ob klassische Transaktion oder mit einem Smart Contract - kostet "Gas". Gleichzeitig besitzt jeder Ethereum-Block ein Gas-Limit, wodurch die Transaktionen auf der Blockchain limitiert sind. Dies ist vergleichbar mit der fixen Blockgröße bei Bitcoin. Das Gas Limit kann vom Miner - welcher den Block an die Blockchain hängt - um 0,0976% "up/down gevotet" werden. Das Limit ist also variabel, wodurch das Netzwerk (sehr) langsam skaliert werden kann. Zusätzlich bezahlt man - ähnlich wie bei einem Cloud-Dienst - für Speicherplatz. Das Betreiben eines Smart Contracts nimmt Speicherplatz auf der Blockchain ein und kostet daher ebenfalls Gas Fees.


Inhalte einer Ether-Transaktion

Neben den klassischen "Überweisungsangaben" - Absender, Summe, Empfänger - beinhaltet eine Transkation auf der Ethereum-Blockchain weitere Angaben:

- Nonce (jede Transaktion bekommt eine einmalige und eindeutige Nummer, dies verhindert Double-Spending)

- Gas price (Summe an Ether je “Gas-Einheit”)

- Startgas (maximaler Gas-Verbrauch den man für die Transaktion bezahlen möchte)

- To (Zieladresse)

- Value (Summe an Ether die gesendet werden)

- Data (“freies Textfeld”, je länger desto mehr fees fällt an)

- v, r, s (ECDSA - Elliptische-Kurven-Kryptographie)


Receipts Logs

Logs sind eine Art eigener Speicher im Ethereum-Netzwerk. Die Nutzung dieses Speichers ermöglicht mehrere Nutzungsmöglichkeiten:

- Erlaubt eine Unterteilung der Transaktion in 4 “topics” - sozusagen Keywords: Dies erlaubt eine schnelle Suche der Transaktion innerhalb der kompletten Blockchain.

- Erfassung von Log-Einträgen: Durch Log-Einträge kann mithilfe eines "Bloom-Filters" schnell und kostengünstig festgestellt werden ob ein Eintrag bereits vorhanden ist.


Beispiel - Suche der dApp für Domainregistrierungen:

- Suche nach: www.Wunschdomain.de

- Ergebnis: Die Domain ist bereits registriert worden (+ Datum und Besitzer)


Jede Transaktion auf der Ethereum-Blockchain erhält zudem eine “Quittung”. Diese enthält:

- Den Status der Transaktion

- Summe an verbrauchten Gas Fees

- Logs