Sharding unterteilt eine Blockchain in kleinere Teile, sogenannte Shards, die alle unabhängig sind und an verschiedenen Orten gespeichert werden. Durch das Speichern der Daten auf verschiedenen Computern kann die Rechenlast für jeden Teilnehmer reduziert werden. So kann das dezentrale Netzwerk ein größeres Transaktionsvolumen verarbeiten und die Skalierbarkeit wird erhöht.
Anders ausgedrückt: Sharding bezieht sich auf eine Technik zur Partitionierung von Datenbanken. Diese wird auch von Blockchain-Netzwerken verwendet, um die Anzahl der pro Sekunde verarbeiteten Transaktionen zu erhöhen.
Sharding: eine Einleitung
Dezentralisiert zu bleiben und eine zunehmende Anzahl von Transaktionen zu bewältigen, ist eine Herausforderung für Blockchains. Dies veranlasste Entwickler dazu, Lösungen wie Sharding genauer zu untersuchen. Das Ziel war es, die Anzahl der Transaktionen zu erhöhen, die ein Netzwerk verarbeiten kann, ohne die Sicherheit oder das reibungslose Nutzererlebnis zu beeinträchtigen.
Normalerweise ist jeder Teilnehmer, bzw. Knoten, eines öffentlichen Blockchain-Netzwerks für die Aufrechterhaltung des Netzwerks verantwortlich, indem er die Überprüfung jeder Transaktion durchführt. Im Wesentlichen ist Sharding eine Form der Organisation der Verteilung der Rechenlast über ein Netzwerk. Dadurch muss nicht jeder Knoten für die Verarbeitung aller Transaktionen verantwortlich sein, sondern nur für seinen jeweiligen Shard.
In diesem Leitfaden gehen wir darauf ein, wie Blockchains normalerweise funktionieren und was ihre aktuellen Einschränkungen sind. In diesem Zusammenhang erklären wir, wie Sharding erreicht wird und welche Probleme es lösen kann.
Wie funktioniert eine dezentrale Datenbank?
In einer dezentralen Datenbank (Distributed Ledger Technologie = DLT), wie einem Blockchain-Netzwerk, wird jede aufgezeichnete Transaktion von einem Knoten verifiziert. Der Verifizierungsprozess muss von der Mehrheit des Netzwerks anerkannt und bestätigt werden, und wenn erfolgreich, werden die Transaktionen zur Blockchain hinzugefügt.
Die Teilnehmer eines Netzwerks verwenden bestimmte Konsensmethoden, um eine Einigung über den Status des Ledgers zu erzielen, wie Proof of Work oder Proof of Stake. Auf diese Weise kann eine nicht authentische Transaktion überprüft und leicht identifiziert werden.
Dieses Modell gewährleistet die Dezentralisierung. In einem zentralisierten Netzwerk, wie z.B. einer Bank hingegen, vertrauen die Teilnehmer einer zentralen Behörde. Durch diese erfolgt die Authentifizierung jeder Transaktion und die Wartung ihrer eigenen Aufzeichnungen. In einem dezentralen Netzwerk wird diese Verantwortung auf die Teilnehmer verteilt. In diesem Sinne gehören zu den Verantwortlichkeiten eines Knotens:
Abwicklung von Transaktionen
Aufzeichnung von Transaktionen
Übertragung von Transaktionen
Skalierbarkeitsproblem
Die aufgeführten Verantwortlichkeiten erfordern Zeit und Rechenleistung. Aus diesem Grund sind Blockchain in der Transaktionsanzahl, die sie während einem bestimmten Zeitraum verarbeiten können, begrenzt. Je mehr Teilnehmer dem Netzwerk hinzugefügt werden, desto mehr Transaktionsanforderungen werden gestellt, was wiederum dazu führt, dass das Netzwerk überlastet wird.
Dies führt zu einigen Problemen, wie langen Übertragungszeiten und steigenden Übertragungsgebühren. Dadurch wird es wahrscheinlicher, dass Blockchains von zentralisierten Zahlungssystemen mit viel höheren Durchsatzraten in den Schatten gestellt werden.
Zum Vergleich: Das Bitcoin-Netzwerk kann 7 Transaktionen pro Sekunde verarbeiten; die Leistungsfähigkeit des Ethereum-Netzwerks liegt immerhin bei bis zu 15 Transaktionen pro Sekunde. VisaNet hingegen kann pro Sekunde erstaunliche 1.700 Transaktionen verarbeiten!
Außerdem wird es für Nutzer zunehmend schwieriger, mit dezentralen Anwendungen zu interagieren, die auf Blockchain-Netzwerken basieren. Der Grund ist, die Token werden für die Interaktion benötigen und jede Interaktion wird als zusätzliche Transaktion widergespiegelt, die von dem Netzwerk wiederum verarbeitet werden muss.
Wie funktioniert Sharding?
Um das Skalierbarkeitsproblem zu überwinden, haben Entwickler Lösungen wie Sharding untersucht. Blockchain-Netzwerke sollen neu organisiert werden, ohne die Kerneigenschaften der Dezentralisierung zu beeinträchtigen.
Beim Sharding wird die Arbeitslast in verschiedene Shards aufgeteilt und somit die Transaktionsverarbeitung an die Knoten verteilt. Bei diesem Modell ist nicht jeder Knoten für die Verarbeitung und Speicherung der gesamten Datenbank verantwortlich, sondern die Knoten Daten-Shards zugeteilt. Jeder Knoten ist für seinen jeweiligen Shard verantwortlich.
Horizontale Partitionierung
Sharding wird durch eine Methode erreicht, die als horizontale Partitionierung von Datenbanken bezeichnet wird. Bei diesem Modell wird die Datenbank in Zeilen oder Shards aufgeteilt, die anhand ihrer Merkmale kategorisiert werden. Die Unterteilung basiert entweder auf der Art der in den Datenbanken gespeicherten Assets oder ein Shard kann für die Speicherung des Transaktionsverlaufs einer bestimmten Art von Adresse verantwortlich sein.
Es ist entscheidend, dass diese Shards untereinander gemeinsam genutzt werden können. Das bedeutet, dass Knoten eines bestimmten Shards die auf einem anderen Shard aufgezeichneten Transaktionen anzeigen können. Auf diese Weise behält das Netzwerk gewissermaßen seine dezentralen und verteilten Eigenschaften.
Aktuelle Einschränkungen des Shardings
Sicherheitsbedrohung: Trotz der Kommunikation zwischen den Shards birgt die Partitionierung einer verteilten Datenbank dennoch einige Sicherheitsrisiken. Nicht jeder Knoten wird auf Änderungen aufmerksam gemacht, die in der Datenbank vorgenommen werden, und ein kleinerer Pool von Validatoren macht einen Shard aus. Beides macht das Netzwerk anfälliger für Hacker.
Wenn ein Shard kompromittiert wird, kann dies zum Verlust eines erheblichen Datenblocks führen, der das gesamte Netzwerk beeinträchtigen kann. In dieser Hinsicht scheinen Off-Chain-Lösungen wie Layer-2-Protokolle die sicherere Alternative zu sein: Sie sind darauf ausgelegt, teilweise unabhängig von der Haupt-Blockchain zu funktionieren, was die Gefahr einer Kompromittierung der Haupt-Blockchains (Layer 0 und Layer 1) verringert.
Kompatibilität des Konsensmechanismus: Sharding ist eher für Blockchains geeignet, bei denen die Proof-of-Stake- statt der Proof-of-Work-Konsensmethode verwendet wird (z.B. Ethereum-Sharding). Damit Proof of Work richtig funktioniert, müssen Knoten nämlich sofortigen Zugriff auf die gesamte Datenbank haben, um den Authentifizierungsprozess abzuschließen.
Hat Sharding eine Zukunft?
Sharding wird weitgehend als vielversprechende On-Chain-Lösung für die aktuellen Herausforderungen angesehen, mit denen große Blockchain-Netzwerke konfrontiert sind. Es fehlen allerdings noch empirische Experimente, um die Gültigkeit und langfristige Sicherheit zu beweisen.
Vorerst gehen Experten davon aus, dass Sharding noch weit davon entfernt ist, eine unkomplizierte Antwort zur Lösung des Skalierbarkeitproblems zu sein. Es verspricht jedoch einen soliden Rahmen, der ua. mit Layer-2-Lösungen kombiniert werden kann, ohne das Nutzererlebnis in einer Proof of Stake Blockchain zu beeinträchtigen.
Eine Alternative sind Parachains: Die Parachain (kurz für Parallel-Chain) ist eine parallele vollwertige Blockchain, welche neben der Haupt-Blockchain läuft. Sie kann mit anderen Parachains und der Haupt-Blockchain über einen Hub kommunizieren. Der Hub wird Relay Chain genannt.
Häufig gestellte Fragen
Was ist Sharding in Krypto?
Sharding bezieht sich auf die Aufteilung, z.B des Ethereum-Netzwerks, in kleinere Datenbanken, von denen jede für sich verwaltet wird. Auf diese Weise können Blockchain-Netzwerke die Verarbeitung aufteilen, die zur Überprüfung jeder Transaktion erforderlich ist.
Welche Coins verwenden Sharding?
Einige Blockchain-Netzwerke, die Proof of Stake verwenden, nutzen Sharing: darunter Ethereum, Polkadot und Zilliqa. Da Sharding nicht mit jedem Konsensmechanismus kompatibel ist, wie etwa dem häufig verwendeten Proof of Work, ist die Verwendung zurzeit noch begrenzt.
Ist Sharding gut für Blockchain?
Sharding wurde eingeführt, um das Skalierbarkeitsproblem von Netzwerken zu lösen. Es hilft dabei, die zunehmende Anzahl von Nutzern und Transaktionen zu bewältigen und die Gebühren zu senken. Jedoch müssen noch einige Sicherheitsbedenken ausgeräumt werden: Beispielsweise die potenzielle Übernahme einer Shard durch Hacker.