Was ist Sharding und wie funktioniert es?
Startseite
Artikel
Was ist Sharding und wie funktioniert es?

Was ist Sharding und wie funktioniert es?

Mittel
Veröffentlicht Dec 4, 2023Aktualisiert Jan 11, 2024
9m

TL;DR

  • Bei Sharding wird eine Blockchain in kleinere Komponenten, sogenannte „Shards“, unterteilt, wodurch das Problem der Skalierbarkeit von Layer-1-Netzwerken überwunden werden soll.

  • Mit Sharding lassen sich die Transaktionsgeschwindigkeit erhöhen, die Kosten für Datenverarbeitung und -speicherung senken und die Netzwerkleistung optimieren.

  • Sharding weist auch Nachteile auf, wie z. B. Risiken im Zusammenhang mit der Netzwerksicherheit sowie die Komplexität von Cross-Shard-Transaktionen.

Einführung

Die Blockchain-Technologie verspricht ein enormes Potenzial im Hinblick auf Dezentralisierung, Transparenz und Sicherheit. Allerdings gibt es ein großes Problem, das gelöst werden muss: die Skalierbarkeit. Skalierbarkeit ist neben Sicherheit und Dezentralisierung eines der drei Bestandteile des sogenannten Blockchain-Trilemmas. Die gleichzeitige Erreichung aller drei Ziele ist eine der größten Herausforderungen für Blockchain-Entwickler. Ein möglicher Lösungsansatz für das Problem ist Sharding.

Was ist Sharding?

Das Konzept des Shardings hat seinen Ursprung in der klassischen Datenbankverwaltung. Es handelt sich um den Prozess der Aufteilung einer großen Datenbank in kleinere, besser zu verwaltende Teile, sogenannte Shards. Durch die Anwendung des Konzepts in der Blockchain soll die Skalierbarkeit erhöht und dabei die dezentrale Struktur beibehalten werden. Die Blockchain wird in kleinere Stücke unterteilt, die alle Transaktionen und Smart Contracts parallel verarbeiten können.

Wie funktioniert Sharding?

Wer die Funktionsweise von Sharding in einem Blockchain-Netzwerk verstehen möchte, sollte zuerst wissen, wie Blockchain-Daten üblicherweise gespeichert und verarbeitet werden. Es gibt unterschiedliche Methoden zur Verarbeitung von Daten. Wir werden nachfolgend auf die sequentielle und die parallele Datenverarbeitung eingehen.

Normalerweise muss jeder Knoten der Blockchain alle Transaktionen im Netzwerk verarbeiten. Dies wird allgemein als sequentielle Datenverarbeitung bezeichnet. Jeder Knoten muss alle wichtigen Informationen wie Kontostände und Transaktionshistorie erfassen und handhaben. Sämtliche Aktivitäten, Daten und Transaktionen im Netzwerk werden von jedem Knoten behandelt.

Diese Methode verbessert zwar die Sicherheit der Blockchain, da jede Transaktion von jedem Knoten gespeichert wird, führt aber auch zu einer erheblichen Verlangsamung der Datenverarbeitung. Hier kann die parallele Datenverarbeitung Abhilfe schaffen, die die simultane Durchführung zahlreicher Operationen erlaubt.

Mit Sharding lässt sich das Problem der hohen Datenlast auf effektive Weise beheben, indem das Transaktionsvolumen über das ganze Blockchain-Netzwerk verteilt bzw. „partitioniert“ wird. So muss nicht jeder Knoten die gesamte Datenmenge der Blockchain bewältigen.

Bei Sharding wird die Datenlast durch horizontale Partitionierung aufgeteilt. Jede dieser so entstandenen Teilmengen, d. h. die Shards, stellt eine separate Datenbank dar, die in der Lage ist, Transaktionen völlig unabhängig zu verarbeiten.

Horizontale und vertikale Partitionierung

Die horizontale und die vertikale Partitionierung sind zwei wichtige Methoden zur Skalierung von Datenbanken. Obwohl beide dafür konzipiert sind, große Datenmengen effizient zu bewältigen, arbeiten sie auf völlig unterschiedliche Weise. Sharding ist eine häufig verwendete Art der horizontalen Partitionierung.

Bei der horizontalen Partitionierung werden die Daten in Zeilen aufgeteilt und auf verschiedene Datenbanken (bzw. Knoten) übertragen, sodass jede von ihnen eine Teilmenge der Daten enthält. Jede Zeile in einer Tabelle ist eine unabhängige Einheit, weshalb das Herauslösen einer Zeile keinen Verlust der Datenintegrität zur Folge hat. Ein gutes Beispiel für die horizontale Partitionierung ist die Verteilung von Blockchain-Netzwerken wie Ethereum und Bitcoin.

Bei der vertikalen Partitionierung werden die Daten nicht in Zeilen, sondern in Spalten aufgeteilt. Jede Partition enthält eine Teilmenge der Daten für jede Entität oder den gesamten Datensatz, aber jeweils nur für bestimmte Attribute. Ein Beispiel dafür wäre eine Kundentabelle mit Spalten für Name, Status, Beschreibung und Foto. Diese könnte in eine Partition mit den Spalten „Name“ und „Status“ und eine mit den Spalten „Beschreibung“ und „Foto“ aufgeteilt werden.

Warum ist die horizontale Partitionierung besser?

Bei Blockchain-Netzwerken wird in der Regel die horizontale Partitionierung gegenüber der vertikalen Partitionierung aus drei wichtigen Gründen bevorzugt: Skalierbarkeit, Dezentralisierung und Sicherheit.

Skalierbarkeit: Sharding ermöglicht die Unterteilung der Daten in kleinere, besser zu verwaltende „Shards“. Jeder Shard arbeitet unabhängig, was die parallele Verarbeitung von Transaktionen erlaubt und die Schnelligkeit und Effizienz des Netzwerkes verbessert. Im Gegensatz dazu könnte bei der vertikalen Partitionierung die Aufteilung der Spalten auf mehrere Datenbanken den Abruf einer vollständigen Transaktion oder Blockinformation erschweren und damit die Skalierbarkeit beeinträchtigen.

Dezentralisierung: Dem Grundgedanken der Blockchain entsprechend, trägt die horizontale Partitionierung zur Dezentralisierung bei. Wenn die Knoten nur eine Teilmenge der Daten (einen Shard) zu bewältigen haben, können aufgrund des geringeren erforderlichen Rechenaufwands und Speicherbedarfs mehr Knoten am Netzwerk teilnehmen. Dies wäre bei einer vertikalen Partitionierung nicht der Fall, da hier jeder Knoten auf alle Partitionen (alle Spalten) zugreifen muss, um die Blockdaten in ihrer Gesamtheit begreifen und überprüfen zu können.

Datenintegrität und -sicherheit: Die horizontale Partitionierung gewährleistet Datenintegrität, da jeder Shard (d. h. jede Partition) alle Transaktionsdaten enthält. Jeder Knoten verfügt also über eine vollständige, fehlerfreie Kopie eines Teils der Blockchain. Bei der vertikalen Partitionierung werden die Blockdaten auf verschiedene Knoten aufgeteilt, was die Wahrung der Datenintegrität und -sicherheit – ein zentrales Versprechen der Blockchain-Technologie – erschwert.

Was sind die Vorteile von Sharding?

Werfen wir einen Blick auf die möglichen Vorteile von Sharding im Kontext der Blockchain:

Höhere Transaktionsgeschwindigkeit: Sharding ermöglicht die parallele Verarbeitung von Transaktionen. Statt hintereinander werden sie simultan in verschiedenen Shards abgewickelt. Da jeder Shard unabhängig arbeitet, lässt sich die Transaktionsgeschwindigkeit deutlich steigern. Folglich kann das Netzwerk mehr Nutzer bedienen, was die Akzeptanz in der breiten Masse fördert.

Ein Beispiel für ein Blockchain-Netzwerk, das Sharding zur Verbesserung der Skalierbarkeit verwendet, ist Ziliqa. Dessen Sharding-Lösung erlaubt die Ausführung von Tausenden von Transaktionen pro Sekunde.

Niedrigere Kosten für die Datenverarbeitung und -speicherung: Beim klassischen Blockchain-Design muss jeder Knoten alle Transaktionen speichern, wodurch die Hardware-Anforderungen mit zunehmender Größe der Blockchain steigen. Da bei Sharding jeder Knoten nur einen kleinen Teil der gesamten Netzwerkdaten verarbeiten und speichern muss, sind weniger Ressourcen erforderlich, um am Netzwerk teilzunehmen.

So haben mehr Nutzer die Möglichkeit, ein Validierer zu werden, was zur Dezentralisierung des Netzwerkes beiträgt, ohne dass dies hohe Kosten verursacht. Damit wird dem Risiko entgegengewirkt, dass sich in der Praxis nur Akteure mit teuren High-End-Computern am Prozess der Blockvalidierung beteiligen können, wodurch der demokratische Charakter eines Blockchain-Netzwerkes gewahrt bleibt.

Höhere Netzwerkleistung: Durch Sharding lassen sich die Gesamtleistung und die Kapazität des Netzwerkes verbessern. Bei klassischen Blockchains verringert sich paradoxerweise die Leistungsfähigkeit, je mehr Knoten am Netzwerk beteiligt sind, da mehr Datenkommunikation und -synchronisierung zwischen den Knoten erforderlich ist.

Mit Sharding ist es jedoch genau umgekehrt. Da jeder Shard getrennt und parallel arbeitet, ist das System in der Lage, mehr Transaktionen zu verarbeiten und Berechnungen durchzuführen. Kommt ein neuer Knoten hinzu, so kann ihm anstelle der gesamten Netzwerkdaten nur ein Shard zugewiesen werden, was die Skalierbarkeit des Netzwerkes erhöht. Dies führt zu mehr Effizienz und folglich zu reibungsloseren Transaktionen und einem besseren Nutzererlebnis.

Künftige Weiterentwicklungen und Optimierungen der Sharding-Technologie können zu zusätzlichen Vorteilen führen oder die bestehenden noch verstärken, was zum Ausbau des Blockchain-Ökosystems beitragen wird.

Was sind die Risiken von Sharding?

Neben den verschiedenen Vorteilen von Sharding, durch die die Effizienz von Blockchain-Netzwerken gesteigert werden kann, gibt es auch Risiken. Zu diesen gehören: 

Single-Shard-Angriffe: Da die für die Übernahme eines Shards notwendige Rechenleistung deutlich geringer ist als die für die Übernahme des gesamten Netzwerkes, ist ein einzelner Shard viel anfälliger für eine „Ein-Prozent-Attacke“ oder eine „Shard-Übernahme“. So ist ein böswilliger Akteur in der Lage, mit vergleichsweise wenigen Ressourcen die Kontrolle über einen Teil des Netzwerkes zu erlangen.

Komplexität von Cross-Shard-Transaktionen: Eine besondere Herausforderung sind Transaktionen, die über mehrere Shards abgewickelt werden. Diese sogenannten Cross-Shard-Transaktionen sind komplex und können Double-Spending zur Folge haben, wenn sie nicht mit der nötigen Sorgfalt durchgeführt werden. Überwacht ein Shard den Status der anderen Shards während der Verarbeitung einer Transaktion nicht genau, kann ein Angreifer dies ausnutzen, indem er dieselben Kryptowährungen mehr als einmal ausgibt.

Beeinträchtigung der Datenverfügbarkeit: Die Verwendung von Sharding macht die Beibehaltung des allgemeinen Netzwerkzustandes zu einem komplizierten Unterfangen. Stehen bestimmte Shards nicht zur Verfügung, wenn sie benötigt werden (da die für die Verwaltung dieser Shards zuständigen Knoten offline sind), kann dies die Verfügbarkeit der Daten beeinträchtigen und das gesamte Netzwerk unterbrechen.

Probleme bei der Aufrechterhaltung der Netzwerksicherheit: Sharding erfordert ein zuverlässiges Protokoll, das die Datenlast ausgewogen auf die Shards verteilt. Geschieht dies nicht, kann es zu einer ungleichmäßigen Datenaufteilung oder zu einem Missverhältnis bei den Ressourcen kommen, wodurch das Netzwerk möglicherweise instabil wird.

Verzögerungen infolge der Knotensynchronisierung: Die Synchronisierung der Knoten kann Verzögerungen im Netzwerk verursachen, da der Austausch und die Aktualisierung von Informationen zwischen den Knoten viel Zeit in Anspruch nimmt. Wenn außerdem ein Knoten aufgrund geringerer Verarbeitungskapazität oder schlechter Netzwerkverbindung hinterherhinkt, kann dies die gesamte Datensynchronisierung verlangsamen und die Gesamtleistungsfähigkeit des Blockchain-Netzwerkes beeinträchtigen.

Verwendet Ethereum Sharding?

Ethereum plant die Einführung von Sharding im Rahmen des Ethereum 2.0-Upgrades. Ethereum 2.0 (auch Eth2 oder Serenity genannt) ist ein Upgrade der Ethereum-Blockchain, das darauf abzielt, die Geschwindigkeit, Effizienz und Skalierbarkeit des Netzwerkes zu erhöhen, damit mehr Transaktionen abgewickelt und Überlastungen vermieden werden können.

Das Upgrade wird in mehreren Phasen durchgeführt, wobei in der letzten Phase (Phase 2) auch die vollständige Implementierung von Sharding vorgesehen ist. Die Entwickler von Ethereum erwarten, dass diese Optimierungen einige der bestehenden Probleme in Bezug auf Skalierbarkeit und Transaktionskosten lösen werden.

Wie erwähnt, birgt Sharding jedoch eigene Risiken, insbesondere hinsichtlich der Netzwerksicherheit und der Dezentralisierung. Um sicherzustellen, dass das Upgrade ein voller Erfolg wird, wird die Umstellung von den Entwicklern gründlich geplant und ausgiebig getestet.

Fazit

Insgesamt ist Sharding ein großer Schritt zur Lösung des Blockchain-Trilemmas. Trotz der damit verbundenen Herausforderungen und Risiken ist das Potenzial zur Verbesserung der Skalierbarkeit ohne Abstriche bei der Dezentralisierung eine enorme Chance für die Zukunft von Blockchain-Netzwerken.

Daher überrascht es nicht, dass verschiedene Blockchains die Einführung von Sharding in Betracht ziehen. Ethereum implementiert Sharding im Rahmen des Ethereum 2.0-Upgrades, mit dem Ziel, die bestehenden Skalierungsprobleme zu beheben. Die Einführung soll im Zuge des Cancun-Upgrades erfolgen, das ein zentrales Element der Ethereum-Roadmap ist. Wie bei jeder innovativen Technologie hängt der Erfolg jedoch von kontinuierlicher Forschungs- und Entwicklungsarbeit und umfassenden Prüfungen der geplanten Lösung ab.

Weiterführende Lektüre

Haftungsausschluss: Dieser Inhalt wird dir ohne Zusicherung oder Gewährleistung jeglicher Art ausschließlich zu allgemeinen Informations- und Bildungszwecken zur Verfügung gestellt. Er ist weder als finanzielle, rechtliche oder sonstige fachliche Beratung noch als Empfehlung für den Kauf bestimmter Produkte oder Dienstleistungen zu verstehen. Du solltest dich von einem professionellen Berater beraten lassen. Wenn der Artikel von einer Drittpartei verfasst wurde, beachte bitte, dass die zum Ausdruck gebrachten Ansichten diejenigen der Drittpartei sind und nicht unbedingt die der Binance Academy widerspiegeln. Bitte lies hier unseren vollständigen Haftungsausschluss für weiterführende Informationen. Die Preise von Kryptowerten sind volatil. Der Wert deiner Anlage kann steigen oder fallen. Es kann sein, dass du den investierten Betrag nicht zurückerhältst. Die Verantwortung für deine Anlageentscheidungen liegt allein bei dir. Die Binance Academy haftet nicht für etwaige Verluste, die dir entstehen. Die hier bereitgestellten Informationen stellen keine finanzielle, rechtliche oder sonstige fachliche Beratung dar. Weitere Informationen findest du in unseren Nutzungsbedingungen und unserem Risikohinweis.