Sharding: Durchsatz, Skalierbarkeit und warum wir sie brauchen

05.11.2021

Übersetzung des IOTA Blogartikel.



TL;DR

Bei Distributed-Ledger-Technologien bezeichnet Skalierbarkeit die Fähigkeit eines Systems, seinen Durchsatz zu erhöhen, wenn mehr Nachfrage generiert wird. Die Skalierbarkeit stellt für Blockchain eine große Herausforderung dar, da der Aufbau des Ledgers vorschreibt, dass die Transaktionen vollständig geordnet sind. In diesem Blogbeitrag gehen wir zunächst näher auf die Unterschiede zwischen Skalierbarkeit und Durchsatz ein und untersuchen dann die Sharding-Lösung, bei der Messages nur an eine Teilmenge der Netzwerkknoten übermittelt werden, wodurch die Redundanz reduziert und ein Hochleistungsnetzwerk aufgebaut wird.


Vor langer Zeit waren Tangle City und Las Iota durch eine zweispurige Autobahn verbunden. Dies war die einzige Strecke, auf der Autos zwischen den beiden Städten verkehren konnten. Mit der Zeit wuchsen die Städte, was zu langen Staus auf dem Highway führte. Eines sonnigen Tages beschlossen die Bürgermeister der beiden Städte, dass es an der Zeit sei, das Problem anzugehen. Ihre erste Idee war: "Lasst uns eine größere Autobahn mit vier statt zwei Fahrspuren bauen!". Die Idee klang gut, aber die Umsetzung war schwierig: Ein Fluss, eine alte Kirche und ein störrischer Bauer in der Nähe der Hauptstraße stellten einige Hindernisse auf dem Weg zur Fertigstellung dar. Doch schließlich wurde die Autobahn fertiggestellt. Leider löste sie das Verkehrsproblem nicht: Die Autos mussten immer noch durch das gleiche Nadelöhr fahren, und die beiden Städte wuchsen weiter, was die beiden Bürgermeister bald vor das gleiche alte Problem stellte. Sollten die Bürgermeister noch einmal größere Autobahnen bauen, um eine gute Verbindung zwischen Tangle City und Las Iota zu gewährleisten? Oder gibt es andere Lösungen?

Wir haben soeben das Konzept des Durchsatzes und der damit verbundenen Überlastung aufgrund der wachsenden Nachfrage in einer nicht skalierbaren Lösung beschrieben. Allzu oft werden diese beiden Konzepte, Durchsatz und Skalierbarkeit, im Zusammenhang mit der Distributed-Ledger-Technologie (DLT) verwechselt.

Der Durchsatz gibt an, wie viele Informationen pro Zeiteinheit im Netz verarbeitet, validiert und übermittelt werden können, und wird in Bytes pro Sekunde gemessen (im Falle von Messages variabler Größe ist die allgemein verwendete Metrik Transaktionen pro Sekunde nur ein Näherungswert für die Messung des Durchsatzes). Der Durchsatz entspricht der Anzahl der Autobahnspuren in dem obigen Beispiel.

Skalierbarkeit hingegen ist die Fähigkeit des Netzes, ein wachsendes Arbeitsaufkommen zu bewältigen, indem dem System Ressourcen hinzugefügt werden, z. B. durch Erhöhung der Anzahl der Nodes. Während die beiden Bürgermeister den Durchsatz durch den Ausbau der bestehenden Straßeninfrastruktur verbesserten, erreichte die wachsende Nachfrage bald wieder die volle Kapazität. Daher hätten verschiedene Alternativen in Betracht gezogen werden müssen, um das Leben der Bürger zu verbessern: z. B. der Bau zusätzlicher Autobahnen, der Ersatz von Autos durch effizientere öffentliche Verkehrsmittel (z. B. Busse oder Züge), der Bau neuer Städte, um die Bürger zu verteilen, ohne Engpässe in den großen Metropolen zu schaffen, und so weiter. In diesem Blogbeitrag werden wir die Definition von Skalierbarkeit klären und erklären, wie sie sich auf DLTs auswirkt.

Der Begriff Skalierbarkeit lässt sich auf eine Vielzahl von Kontexten und Bereichen anwenden, z. B. auf Routing-Protokolle, verteilte Systeme, Netzwerke, Datenbanken und Geschäftsmodelle. Im Zusammenhang mit DLT sind wir an der Skalierbarkeit der Last interessiert, d. h. an der Fähigkeit eines verteilten Systems, sich zu erweitern (und zu schrumpfen), um größere (oder kleinere) Lasten aufzunehmen. Bitcoin zum Beispiel kann nicht als skalierbares DLT definiert werden; das ist so gewollt, weil die Sicherheit der Leistung vorgezogen wurde. Unabhängig von der Anzahl der Message, die auf eine Bestätigung warten, und der Anzahl der Nodes im Netzwerk bleiben der Gesamtdurchsatz und die Finalitätszeit unverändert. Einige neuere Lösungen haben versucht, dieses Problem zu überwinden, indem sie z. B. das Lightning Network auf dem 2-Layer hinzugefügt haben, um Zahlungskanäle außerhalb der Chain zu schaffen und so die Belastung der Main-Chain zu verringern.

Durch die Auslagerung von Transaktionen auf einen anderen Layer lässt sich zwar der Gesamtdurchsatz leicht erhöhen, aber das Problem der Skalierbarkeit der Main-Chain ist damit noch nicht gelöst: Das Öffnen und Schließen von Lightning-Kanälen erfordert immer noch jeweils eine Transaktion auf dem Base-Layer. Selbst wenn also der Base-Layer nur zum Öffnen und Schließen von Lightning Kanälen verwendet wird und alle anderen Transaktionen in den Lightning Kanälen stattfinden, wäre die Skalierbarkeit immer noch auf die Anzahl der Lightning Kanäle beschränkt, die geöffnet und geschlossen werden können, was im Bitcoin Netzwerk derzeit fünf bis sieben pro Sekunde beträgt. Bitcoin hat im Grunde eine zweite Ebene von Hochgeschwindigkeits-Autobahnspuren über der eigentlichen Autobahn hinzugefügt, aber die Leute müssen immer noch die gleichen Onramps nehmen, um überhaupt auf die Autobahn zu gelangen, bevor sie die Hochgeschwindigkeitsspuren nutzen können.

Andere Lösungen gehen nicht dazu über, den Durchsatz auf zusätzliche Layer auszulagern, sondern rühmen sich mit der Fähigkeit der Main Chain, mehrere hunderttausend Transaktionen pro Sekunde zu unterstützen. Das bringt jedoch eine andere Herausforderung mit sich: Wenn eine einzelne Transaktion nur 1024 Bytes groß ist, würden 250.000 dieser Transaktionen pro Sekunde bedeuten, dass zwei Nodes über eine Hochgeschwindigkeitsdatenverbindung mit mehr als 2 Gbit/s¹ verbunden sein müssten. Dies würde dazu führen, dass die Teilnahme an einem dezentralen Netzwerk auf diejenigen beschränkt wird, die sich eine teure Infrastruktur leisten können. Man könnte sich diese Lösung also wie eine Autobahn mit Hunderten von Fahrspuren vorstellen, die jedoch schwierig und extrem teuer zu realisieren ist und deren Abzweigungen von einigen wenigen wohlhabenden Personen kontrolliert werden.

Um Skalierbarkeit zu erreichen, muss das Blockchain-Trilemma überwunden werden, das besagt, dass man nur zwei Möglichkeiten hat: Dezentralisierung, Sicherheit und Skalierbarkeit. Bitcoin entscheidet sich für Sicherheit und Dezentralisierung, aber nicht für Skalierbarkeit, während einige andere Wettbewerber sich für Sicherheit und Skalierbarkeit entscheiden, aber nicht für Dezentralisierung. Wie kann man also alle drei Eigenschaften erhalten?



Die populärsten Lösungen für die Skalierbarkeit von DLTs werden durch ein Konzept namens Sharding repräsentiert - die Aufteilung der Gesamtmenge an Transaktionen in kleinere Partitionen. Der Begriff "Shard" wurde 1988 durch den technischen Bericht "Overview of SHARD: a System for Highly Available Replicated Data" ² eingeführt, der darauf abzielte, redundante Hardware zur Erleichterung der Datenreplikation einzusetzen. Mit Sharding in der DLT ist in der Regel eine horizontale Partitionierung gemeint, bei der die Zeilen einer Datenbank, die eine einzige Partition bilden, getrennt auf verschiedenen Servern gehalten werden. Derzeit werden Sharding-Lösungen von mehreren Blockchain-Projekten entwickelt, darunter Ethereum, Zilliqa und Polkadot.

Das Sharding in DLTs ermöglicht es den Nodes, nur eine Teilmenge der im Netzwerk ausgetauschten Messages zu validieren und zu speichern. Da die Redundanz reduziert wird, steigt die Zahl der Messages, die das Netzwerk verarbeiten kann, im Vergleich zu einer Lösung ohne Sharding. Beim Sharding kann ein Angreifer jedoch leichter einen größeren Einfluss innerhalb eines einzelnen Shards erlangen, da die Sicherheit des Shards direkt proportional zur kumulativen Hash-Rate (bei Proof-of-Work-Systemen) oder zum Gesamt-Stack (bei Proof-of-Stake und ähnlichen Systemen) ist. Durch die Aufteilung des Transaktionsvolumens in kleine Einheiten besteht die Gefahr, dass auch die Sicherheitsmerkmale aufgeteilt werden und somit die Sicherheit jedes einzelnen Shards verringert wird, es sei denn, es wird ein Abhilfemechanismus eingeführt.

Die Struktur des gerichteten azyklischen Graphen (DAG) des IOTA-Ledgers bietet einen hervorragenden Ausgangspunkt für den Aufbau einer skalierbaren DLT. Ein DAG-basierter Ledger führt nicht den konzeptionellen Engpass ein, der in der Blockchain vorhanden ist, wo alle Messages einer totalen Ordnung unterliegen, was zu unvermeidlichen Reibungen im Protokoll führt: In IOTA gibt es keinen zentralen Anführer, der die Erstellung des nächsten Transaktionsblocks bestimmt. Darüber hinaus ist IOTA ein Leaderless-Protokoll (dt. Führerlos-), was bedeutet, dass jede Node eine andere Wahrnehmung des Status Quo des Ledger-State haben kann, während er sich immer noch darüber einig ist, welche Transaktionen gültig sind und welche nicht. Infolgedessen bedeuten in IOTA mehr Messages eine schnellere Finalität!

Wie bereits erwähnt, sind jedoch auch die Ressourcen in IOTA begrenzt, so dass eine Lösung für die Herausforderung der Skalierbarkeit der Last erforderlich ist. Das IOTA-Protokoll ist leichtgewichtig und erfordert keine Gebühren, was einen grundlegenden Vorteil gegenüber ähnlichen Technologien darstellt. Die Forschungsabteilung der IOTA Foundation untersucht Lösungen, die im Sinne der IOTA-Vision das volle Potenzial von IOTA ausschöpfen. Wir freuen uns darauf, unsere Ergebnisse bald mit Ihnen zu teilen.


- - -


¹ Diese Berechnung ignoriert den immer vorhandenen Netzwerk-Overhead und die Tatsache, dass die Nodes in einem Peer-to-Peer-Netzwerk normalerweise mit mehreren Nodes verbunden sind. In der Praxis müssten solche konkurrierenden Netzwerke darauf angewiesen sein, dass sich die Knoten mindestens 10 Gbit/s-Verbindungen leisten können.


² Derzeit sind keine Kopien des Berichts leicht zugänglich. Eine andere Interpretation ist, dass der Name "Shard" aus dem Videospiel Ultima Online stammt.