Von

In diesem Blogeintrag beleuchten wir Herausforderungen und aktuelle Entwicklungen in Bezug auf die Skalierbarkeit von Blockchains – der technologischen Basis für dezentrale Anwendungen der Zukunft – am Beispiel von Bitcoin und Ethereum.

Skalierung ist nicht alles, aber ohne Skalierung ist alles nichts!

Bitcoin – die Kryptowährung mit der derzeit höchsten Marktkapitalisierung und Transaktionszahl– verarbeitet derzeit ca. 300.000 Transaktionen pro Tag [1]. Dies entspricht ca. 3-4 Transaktionen pro Sekunde und liegt weit unter den Kapazitäten von zentralen Lösungsanbietern wie beispielsweise Visa (ca. 150 Mio. Transaktionen pro Tag / 1700 Transaktionen pro Sekunde) [2] oder PayPal (ca. 5 Mio. Transaktionen pro Tag / 60 Transaktionen pro Sekunde) [3].

Anders als Visa oder PayPal ist Bitcoin in seiner derzeitigen Version ausgelastet. Die maximale Blockgröße von 1 MB wird nahezu erreicht, was zur Folge hat, dass die vom Sender angebotene Transaktionsgebühr den Ausschlag dafür gibt, ob und vielmehr wann die Transaktion von den Minern aufgenommen wird. Ein Tool von 21.co veranschaulicht diesen Effekt [4]: Sind – Stand April 2017 – die Transaktionskosten höher als 0,0016 mBTC pro Byte, liegt die Transaktion im grünen Bereich und wird von den Minern sofort in den nächsten Block aufgenommen. Bei einer durchschnittlichen Größe von 226 Byte pro Transaktion und einem Kurs von 1200$ pro BTC ergibt das Transaktionskosten in Höhe von 0.43 $.

Für die Überweisung einer großen Summe beispielsweise ist eine Transaktionsgebühr von 0.43 $ akzeptabel, und Bitcoin ist anderen Systemen, die meist prozentual vom Überweisungsbetrag abrechnen (geschweige denn horrende Wechselkurse verwenden), weit überlegen. Da in diesem Fall die Ausführungsgeschwindigkeit der Transaktion nicht die höchste Priorität hat, kann man die Transaktionsgebühr sogar reduzieren. Nutzt man Bitcoin jedoch als tägliches Zahlungsmittel (z.B. beim Einkaufen), sind 0.43 $ pro Transaktion grenzwertig. An sogenannte Mikrotransaktionen (Transaktionen im Cent-Betrag, beispielsweise beim Konsumieren von Medien) ist unter diesen Voraussetzungen nicht zu denken.

Die Einsatzmöglichkeiten von Blockchains gehen weit über Finanztransaktionen hinaus. Bitcoins Skriptsprache sowie Ethereums virtuelle Maschine ermöglichen generische Transaktionen sowie Berechnungen auf der Blockchain, was vielseitige Anwendungsmöglichkeiten eröffnet. Diese Anwendungen gehen von reinen Datenspeichern (z.B. Anwendungen im Internet der Dinge, die Daten von Sensoren als „Beweismittel“ in der Blockchain speichern) über Smart Contracts (z.B. für dezentrale Oranisationen, Notardienstleistungen oder Prediction Markets) bis hin zur Monetarisierung von API-Zugriffen und digitalem Content auf Basis von Micropayments.

All diese zukunftsorientierten dezentralen Anwendungen haben unterschiedliche Anforderungen an die Blockchain hinsichtlich des Bedarfs (und damit der Kosten) an Datenspeicher, Berechnungen und Transaktionsgeschwindigkeit. Sie sind jedoch alle der Herausforderung unterworfen, dass Dezentralisierung in der derzeitigen Version von Bitcoin und Ethereum einen ungemein hohen und vielfach unterschätzten Preis hat: Jeder Knoten (full node) führt alle Berechnungen durch, speichert die gesamte Blockchain (und somit alle jemals erzeugten Daten) und validiert alle jemals erzeugten Transaktionen. Es kommt hinzu, dass die Miner – um Angriffe auf das System zu vermeiden – (bewusst) sinnlose Berechnungen durchführen, welche den Stromverbrauch des Netzwerks ins unermessliche steigen lässt [5]: Das Bitcoin-Netzwerk verbraucht derzeit ca. 11,2 TWh pro Jahr, dies entspricht etwa der Leistung eines Atomkraftwerks oder dem Stromverbrauch von 1 Million amerikanischen Haushalte. Eine einzelne (!) Transaktion könnte somit fast 4 amerikanische Haushalte einen Tag lang mit Strom versorgen. Dies steht im Kontrast zu zentralen Anwendungen: Das Visa-Netzwerk benötigt für das fünfhunderfache an Transaktionen nur ein zwanzigstel des Stroms, ist also 10.000 mal energieeffizienter als Bitcoin.

Natürlich sollte ein Vergleich mit zentralen Lösungen nicht nur eindimensional (d.h. Stromverbrauch pro Transaktion) geführt werden, sondern auch andere Kriterien, in denen dezentrale Lösungen ihre Stärken haben (z.B. Offenheit, Zuverlässigkeit, Manipulationssicherheit, einfacher Marktzugang) hinzuziehen. Dennoch erfordern fast alle der vorhin erwähnten Anwendungen Skalierungsmaßnahmen hinsichtlich Datenspeicherung, Durchführung der Berechnungen sowie Transaktionsmenge-/geschwindigkeit. Nur wenn die Community es schafft, entsprechende Maßnahmen zu entwickeln und umzusetzen, schaffen Bitcoin und Ethereum den Sprung vom Nischendasein zur Massennutzung.

Eine interessanter Aspekt ist hierbei, dass sich jede Lösung auf dem Dreieck Decentralization, Scalability und Security (DSS) [6] positionieren muss. Das “Trilemma” besteht darin, dass ein System höchstens zwei dieser drei Eigenschaften erfüllen kann beziehungsweise entsprechend Einbußen hinsichtlich einer oder mehr dieser Eigenschaften in Kauf nehmen muss.

Skalierung bei Bitcoin

Die Ursache für Bitcoins hohe Transaktionskosten liegt darin, dass die Miner für ihre Arbeit – den Proof of Work – adäquat belohnt werden. Jeder Block unterliegt hierbei einem aufwändigen Brute-Force-Mechanismus, bevor er in die Blockchain aufgenommen wird. Somit wird sichergestellt, dass Angreifer mindestens 50% der Rechenleistung besitzen müssen, um im Netzwerk (nachhaltig) zu betrügen.

Die Größe eines Blocks ist auf 1 MB festgelegt, d.h. je nach Größe der einzelnen Transaktionen (im Mittel ca. 226 Byte) können wenige tausend Transaktionen in einen Block aufgenommen werden. Eine Vergrößerung der Blockgröße würde Bitcoins Skalierungsprobleme kurzfristig lösen, da mehr Transaktionen in jeden Block aufgenommen werden können. Eine zu große Blockgröße erschwert jedoch das Mining und fördert somit wenige Mining-Pools mit ausgezeichneter Hardware. Dies geht zulasten der Dezentralisierung im Netzwerk. Ein entsprechender Vorschlag der Miner (Bitcoin Unlimited [7]) wird derzeit von den Core-Entwicklern abgelehnt. Außerdem wird für eine dynamische adaptive Vergrößerung der Blockgröße wie von Bitcoin Unlimited vorgeschlagen ein Hard Fork benötigt. Die Core-Entwickler befürworten stattdessen eine effizientere Nutzung der Blocks unter Beibehaltung der bisherigen Größe. Hierfür haben sie eine Erweiterung (Segregated Witnesses [8]) vorgeschlagen, welche bis dato von den Minern abgelehnt wird. Auf [9] sieht man den aktuellen Stand der Abstimmung der Miner über die letzten 144 Blöcke (36,1%) beziehungsweise 2016 Blöcke (30,2%) hinweg - zum Zeitpunkt des Schreibens dieses Beitrags. Anscheinend steigt die Akzeptanz also langsam aber sicher in Richtung der 75%, die über einen Zeitraum von 2 Wochen benötigt werden.

Unabhängig der Blockgröße bleibt die Tatsache, dass es sich bei der Bitcoin-Blockchain im Grunde um einen tausendfach replizierten Speicher von bezeugten Transaktionen unter Zuhilfenahme eines rechenintensiven Konsensusprotokolls handelt. Weitere Skalierungsbestrebungen zielen daher darauf ab, Transaktionen nach Möglichkeit off-chain durchzuführen und nur bei Notwendigkeit des Protokolls die Blockchain heranzuziehen. Ein Beispiel hierfür sind Payment Channels [10]: Zwei Teilnehmer erstellen unter Zuhilfenahme der Blockchain einen Zahlungskanal untereinander. Dieser Kanal kann dann für Einzelzahlungen (z.B. Micropayments) genutzt werden, ohne dass diese an die Blockchain gesendet werden. Die Abrechnung erfolgt dann durch eine finale Transaktion an die Blockchain.

Payment Channels sind die Grundlage des Lightning Networks [11]. Hierbei handelt es sich um ein Netzwerk von Knoten und Zahlungskanälen, durch das Transaktionen unter Zahlung einer kleinen Gebühr geroutet werden können – ähnlich wie Pakete durch das Internet. Das Lightning Network wird derzeit aktiv entwickelt und ist noch in einer frühen Phase, hat aber den ersten Praxistest bereits bestanden (es wurden 0.01 BTC für ein ASCII-Foto zweier Katzen vor einem Sonnenuntergang bezahlt) [12].

Alles in allem gibt es bei Bitcoin vielversprechende Skalierungskonzepte, die in Form einer Kombination aus (1) Segregated Witnesses, (2) einer (vorsichtigen) Erhöhung der Blockgröße sowie (3) des Lightning Networks in die Tat umgesetzt werden könnten. Eine Gefahr besteht derzeit darin, dass die Community derzeit höchst zerstritten bei der Frage ist, wann und in welcher Form die einzelnen Optimierungen umgesetzt werden. Hier ist spürbar, dass Satoshi Nakamoto als Visionär und Schaffer des Bitcoin-Netzwerks nicht mehr (offensichtlich) aktiv ist.

Skalierung bei Ethereum

Anders bei Bitcoin ist der Gründer von Ethereum (Vitalik Buterin) noch aktiv und nimmt viel Einfluss auf die Ethereum Foundation und somit auf die Weiterentwicklung von Ethereum. Dies könnte der Grund sein, weshalb Ethereum einen radikaleren Weg bei der Lösung von Skalierungsfragen geht, während Bitcoin ein möglichst stabiles Basissystem anvisiert, auf dem dann innovative Plattformen wie das Lightning Network (z.B. für Micropayments) oder Rootstock (für Smart Contracts) operieren können.

Die größte Skalierungsbestrebung bei Ethereum zielt darauf ab, den Proof-of-Work-Mechanismus langfristig vollständig zu ersetzen. Als Alternative entwickeln sie Casper [13], ein Proof-of-Stake-Protokoll, bei dem Blöcke durch Besitz von Tokens validiert werden anstelle durch Rechenleistung. Die Grundidee besteht darin, dass Miner ein Security Deposit bereitstellen und dann zufällig in Abhängigkeit des Deposits entschieden wird, wer den Block validieren darf. Bis es zu einer vollständigen Umsetzung von Proof of Stake kommt, ist auch eine hybride Lösung denkbar.

Ähnlich dem Lightning Network bei Bitcoin gibt es bei Ethereum eine Initiative zur Realisierung von Off-Chain-Transaktionen zur Verbesserung von Skalierbarkeit, Latenz und Transaktionskosten. Das Raiden Network [14] zielt auf ein Netzwerk von Payment Channels ab, in dem die Blockchain lediglich genutzt wird, um ein hinterlegtes Pfand als Sicherheitspuffer zu verwalten. Nach eigenen Angaben wurde bereits ein Prototyp getestet, mit dem Tokens von Client A zu Client B unter Zuhilfenahme von Client C als Mediator transferiert wurden. Die Eröffnung, das Schließen und das Settlement der benötigten Payment Channels fand auf dem Ethereum-Testnetz statt [15]. Des weiteren gibt es in Ethereum das Konzept der State Channels [16]. Hierbei handelt es sich um eine Generalisierung der Payment Channels, bei der - über Zahlungstransaktionen hinaus - jede Art von Transaktion zwischen zwei Parteien off-chain durchgeführt werden kann (in Ethereum ist jede Transaktion ein State Change). Hierbei wird im Voraus ein Teil des Ethereum-States von beiden Teilnehmern gelocked, off-chain durch die entsprechenden Transaktionen verändert und erst bei Beenden des State Channels wird die Blockchain aktualisiert.

Ein bedeutender Unterschied von Ethereum zu Bitcoin ist, dass Ethereum sehr stark auf Smart Contracts fokussiert und hierfür eine Turing-vollständige Maschinensprache entwickelt hat. Smart Contracts sind in der JavaScript-ähnlichen Sprache Solidity geschrieben und werden in Ethereum Bytecode kompiliert, der dann auf der Ethereum Virtual Machine (EVM) ausgeführt wird. In der derzeitigen Version handelt es sich also um ein Netzwerk, in dem jeder Knoten alle Berechnungen durchführt und jederzeit den gesamten State aller Contracts in der Blockchain gespeichert hat. Dies betrifft auch Knoten, die nicht in Form von Mining dafür belohnt werden. Die Blockchain ist derzeit ca. 20 GB groß und beinhaltet alle Transaktionen (seit Juli 2015) und somit alle Modifikationen dieses States.

Neben einer Umstellung auf Proof of Stake (zur Verbesserung des Minings) sowie der Realisierung von Payment Channels und State Channels (zur Skalierung der Transaktionsmenge) ist wichtig, dass nicht alle Berechnungen der EVM auf allen Knoten durchgeführt werden. Ethereum arbeitet bereits an Möglichkeiten für eine Parallelisierung von Berechnungen, genannt Sharding [6]. Hierbei werden Transaktionen von einer selektiven Gruppe (eines Shards) anstelle des gesamten Netzwerks validiert. Bei Ethereum könnte man beispielsweise den State Space auf Basis der ersten n Zeichen der Account-Adressen in 16^n Shards aufteilen. Transaktionen innerhalb eines Shards werden wie bisher behandelt und innerhalb des Shards validiert. Die Herausforderung besteht darin, Transaktionen über Shard-Grenzen hinweg durchzuführen, ohne dabei die Sicherheit des Systems zu gefährden.

Ein weiterer Ansatz ist Truebit [17]: Bei Truebit handelt es sich um ein Konzept für einen „Computation Market“, bei dem Entwickler Rechenprobleme mit einer Gebühr auf einen Marktplatz stellen und diese Berechnungen dann von 3rd Parties (off-chain) durchgeführt werden. Nur im Falle von Unstimmigkeiten (z.B. wenn eine zweite Partie den gleichen Auftrag annimmt und ein anderes Ergebnis erhält) wird eine größere Gruppe oder gar das gesamte Netzwerk herangezogen. Manchmal sollen Ergebnisse bewusst gefälscht werden, um den Überprüfungsmechanismus zu testen und wiederum Anreize zur Überprüfung zu setzen.

IOTA: Eine Lösung für das IoT?

Außerhalb des Bitcoin- und Ethereum-Ökosystems gibt es ebenfalls Ansätze, die sich mit der Skalierung von Blockchains befassen. Ein Beispiel hierfür ist IOTA [18], was sich selbst als Kryptowährung für das Internet der Dinge (IoT) bezeichnet. Charakteristisch hierfür ist die Tatsache, dass IOTA skalierbare Transaktionen ohne Gebühren verspricht, eine wichtige Basis für Anwendungen im IoT. Anstelle einer Blockchain verwendet IOTA einen sogenannten Tangle, ein zyklenloser Graph aller Transaktionen im Netzwerk. Die Grundidee besteht darin, dass jeder Initiator einer Transaktion zunächst zwei andere Transaktionen verifizieren muss. Diese beiden Transaktionen werden zufällig ausgewählt, was die Durchführung von Double-Spend-Angriffen erschweren soll (man müsste seine eigene Transaktion zur Verifizierung finden, was bei hinreichender Größe des Netzwerks sehr viel Glück erfordert oder sehr viele Versuche mit sich bringt). 2017 wird für IOTA ein spannendes Jahr. Während 2016 die Entwicklung der Basistechnologie (des Tangles) sowie das Go-Live des Mainnets und Testnetz im Fokus waren, stehen 2017 Stresstests, Partnerschaften & Community-Building sowie die Verbesserung der Usability durch verschiedene Clients und Wallets an (sh. IOTAs ambitionierte Entwicklungs-Roadmap [19]). Außerdem steht nach wie vor die Frage im Raum, wie sicher der Tangle in Bezug auf verschiedene Angriffsszenarien tatsächlich ist.

Fazit

Eine Architektur ohne zentrale Instanz bringt viele Vorteile mit sich, aber auch viele Herausforderungen, die durch Konsensusprotokolle gelöst werden müssen. Sowohl Bitcoin als auch Ethereum stehen vor großen Skalierungsherausforderungen, haben aber entsprechende Lösungskonzepte in der Pipeline. Bitcoin setzt nach wie vor auf Proof of Work und baut darauf, durch Optimierungen der Blockgröße (kurzfristig) sowie Off-Chain-Transaktionen (langfristig) zu skalieren und entsprechend Transaktionsgebühren zu senken. Ethereum hingegen strebt einen Wechsel auf Proof of Stake an und arbeitet daran, Berechnungen zu parallelisieren (Sharding) oder gar einen Marktplatz für 3rd Parties zu etablieren (Truebit).

[1] CoinDesk: Bitcoin - Daily Number of Transactions
[2] bitcoinwiki: Scalability
[3] Techcrunch: PayPal Now Processing $315 Million In Payments Per Day
[4] 21.co: Predicting Bitcoin Fees For Transactions
[5] Digiconomist: Bitcoin Energy Consumption Index
[6] Sharding FAQ
[7] bitcoinunlimited
[8] BitcoinCore: Segregated Witness Costs and Risks
[9] Is SegWit activated yet?
[10] bitcoinwiki: Payment Channels
[11] Lightning Network
[12] CoinDesk: Bitcoin Lightning Payments Pass ‘Milestone’ […]
[13] Ethereum Blog: Introducing Casper “the Friendly Ghost”
[14] Raiden Network FAQ
[15] Raiden PoC-0
[16] State Channels
[17] Simon de la Rouviere: An Intro to TrueBit: A Scalable, Decentralized Computational Court
[18] IOTA - Next Generation Blockchain
[19] IOTA Development Roadmap