Nachdem wir in den ersten beiden Teilen dieser Artikelreihe gesehen haben, welches Problem mit einer Blockchain überhaupt gelöst werden soll (Blockchain: Byzantinische Generäle und das CAP Theorem) und wie man das technisch realisieren könnte (Blockchain: Hash Funktionen und Merkle Bäume), geht es heute um die Lösungsansätze in Bitcoin und Ethereum.
Gemeinsamkeiten
Beide Blockchains sind jeweils ein grosser Merkle Baum, der aus sehr vielen Ästen besteht. Heute sind es bei Bitcoin etwa 150 GByte „Äste“. Bei Ethereum gibt es je nach Implementierung des Nodes unterschiedliche Grössen zwischen 25 und 40 GByte. Alle Vorgänge (Transaktionen) in dieser doch recht gewaltigen Menge an Daten sind über Hashs miteinander verkettet. Jeder, der die Daten der Blockchain hat, kann (und sollte) die Richtigkeit der Daten überprüfen. Bei der Überprüfung der Daten werden die einzelnen Blöcke von physikalisch getrennten Computern geladen. Das ist so ähnlich wie bei den Dateien im Bittorrent Protokoll. Nach erfolgter Überprüfung ist man ein Teil des verteilten Projekts, ein sogenannter Node.
Eigenschaften
Die beiden Systeme sind keine „Konkurrenten“ sondern konzentrieren sich auf unterschiedliche Aufgaben. Während Bitcoin „nur“ eine Währung ist, bietet Ethereum eine Währung namens Ether und eine Möglichkeit Verträge abzuschliessen. Einen Vertrag kann man sich dabei wie einen Service mit bestimmten Regeln vorstellen, der automatisiert abgeschlossen und erfüllt wird. Der Start der beiden Projekte verlief unterschiedlich.
Bitcoin war gewissermassen plötzlich da. Der erste Block der Blockchain wurde erzeugt wie alle folgenden Blöcke auch. Bei Ethereum gab es einen Vorverkauf der Währung Ether zu festgelegten Kursen. Ethereum selbst startete dann ein Jahr später. Beide erzeugen Konsens durch Arbeit, die geleistet werden muss (Erzeugung von Hashwerten aus Transaktionen). Ethereum plant allerdings einen Konsens Algorithmus zu nutzen, der auf Beteiligung basiert. Das ist insofern wichtig, da die Arbeit momentan sehr viel elektrische Energie verbraucht und ein Beteiligungsalgorithmus „Strom spart“. Bitcoin benutzt den SHA-256 Standard zur Erzeugung der Hashes, Ethereum benutzt das eigene System Ethash. Ein Block wird bei Bitcoin alle 10 Minuten erzeugt, bei Ethereum alle 14-15 Sekunden.
Bitcoin | Ethereum | |
---|---|---|
Erfinder | Satoshi Nakamoto | Vitalik Buterin |
Start | 9.1.2008 | 30.7.2015 |
Methode | Erster Block wurde erzeugt (Genesis Block) | Vorverkauf in 2014 (2000 Eth kosteten 1 Bitcoin = ca. 600 US$) |
Nutzung der Blockchain | Währung (Bitcoin) | Währung (Ether) und Verträge („Smart Contracts“) |
Konsens Algorithmus | durch Arbeit (Proof of Work) | momentan durch Arbeit (Proof of Work), später durch eine Form der Beteiligung (Proof of Stake). |
Mining | SHA-256 | Ethash |
Blocktakt | alle 10 Minuten | alle 14-15 Sekunden |
Es gibt noch viel mehr Eigenschaften und Unterschiede, insbesondere in Bezug auf Transaktionen. Für einen Überblick des grundsätzlichen Aufbaus reicht die obige Übersicht zunächst aus.
Blockchain
Allgemein sieht eine Blockchain aus wie in dieser Grafik.
Jeder Block besteht aus vier Teilen:
- dem Hash des Vorgängerblocks,
- dem Root Hash der Transaktionen (ein Merkle Baum)
- einem Zeitstempel (Timestamp)
- einer Nonce (Zeichenkette mit zufälligem Inhalt)
Aus diesen vier Bestandteilen wird der Hash des Blocks errechnet. Eine Blockchain ist also genau genommen die Kette vieler Merkle Bäume.
Bitcoin Blockchain
Bei der Bitcoin Blockchain geht es um die Verwaltung von Transaktionen. Wenn ich beispielsweise zwei Bitcoins an dich „überweisen“ will, so muss diese Transaktion per Hash Funktion in die Bitcoin Blockchain eingebaut werden. Eine vereinfachte Darstellung sieht dann so aus:
Jeder Block enthält Transaktionen von Bitcoin, also auch meine „Überweisung“.
Ethereum Blockchain
Bei Ethereum läuft das etwas anders. Eine Transaktion bei Ethereum ist der Status von Programmiercode.
Wenn es also um eine Überweisung der Ethereum Währung Ether geht, so wird der Status des Programms, welches die Ether verwaltet, gespeichert. Diese Besonderheit von Ethereum macht es möglich auch beliebige andere Zustände von Programmcode zu speichern. Dieses Feature heisst bei Ethereum Smart Contract. Ein Smart Contract ist auf den ersten Blick so etwas wie ein Vertrag mit einzelnen Paragraphen. Auf den zweiten Blick ist es ein Programm mit bestimmten speicherbaren Stati (Zuständen).
Anschaulichstes Beispiel sind vermutlich die CryptoKitties.
Das Eigentum einer CryptoKitty wird über einen Smart Contract auf der Ethereum-Blockchain vermerkt. CryptoKitties werden alle 15 Minuten „geboren“(672 pro Woche). Jede CryptoKitty wird in Form eines bestimmten Tokens dargestellt (ERC-721). Jedes Token (Katze) besitzt spezifische Attribute. Es gibt ein Limit von 4 Milliarden Katzen, die „gezüchtet“ werden können. Jede Katze hat eine bestimmte Erscheinung („Phänotyp“), die durch ihre unveränderlichen Gene („Genotyp“) bestimmt wird. Die Gene sind im Smart Contract gespeichert. Da die Katzen als Token in der Blockchain sind, können sie gekauft, verkauft oder digital übertragen („überwiesen“) werden.
Im Jahr 2018 werden viele Ethereum basierte Projekte an den Start gehen. Ein interessantes Projekt wird sicherlich die Kryptowährung Petro aus Venezuela.
Der Unterschied
Bitcoin ist also eher ein Produkt, Ethereum dagegen eine Platform auf der Produkte wie die CryptoKitties entwickelt werden können.
Links
- Grösse der Bitcoin Blockchain: https://blockchain.info/de/charts/blocks-size
- Grösse der Ethereum Blockchain: https://dev.to/5chdn/the-ethereum-blockchain-size-will-not-exceed-1tb-anytime-soon-58a
- Ankündigung des Vorveraufs im Ethereum Blog: https://blog.ethereum.org/2014/07/22/launching-the-ether-sale/
- CryptoKitties Website
- Petro Website
- Teil 1: Blockchain: Byzantinische Generäle und das CAP Theorem
- Teil 2: Blockchain: Hash Funktionen und Merkle Bäume
- Teil 3: Blockchain: So unterscheiden sich Bitcoin und Ethereum
Schreibe einen Kommentar