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.