Was ist Sharding in der Kryptowährung?

Sharding ist eine Technik zur Aufteilung großer Datenbanken in kleinere, schnellere und leichter zu verwaltende Teile, die so genannten Data Shards. Das Wort "Shard" bedeutet "kleiner Teil eines Ganzen".

Jede Teilmenge von Daten wird als Shard oder Node bezeichnet, und alle Shards zusammen bilden den gesamten Datensatz. Die Anzahl der Shards in einer Anwendung hängt von den Leistungsanforderungen ab, z. B. von der Speicherkapazität oder der Lese-/Schreibgeschwindigkeit.

Ziel des Sharding ist es, die Daten auf mehrere Rechner zu verteilen und mehrere Transaktionen parallel zu ermöglichen. Mit anderen Worten, das Ziel ist horizontale Skalierbarkeit. Sharding kann verwendet werden in blockchain Netzwerke. So plant Ethereum beispielsweise, sein Netzwerk zu splitten, um seine Skalierbarkeit zu erhöhen.

In diesem Artikel erklären wir, was Sharding ist und wie es in Cryptocurrency funktioniert.

Sharding ist eine der vielversprechendsten Skalierungstechnologien im Bereich der Kryptowährungen, die in letzter Zeit an Aufmerksamkeit gewonnen hat. Sharding ist ein Prozess, der darauf abzielt, die Skalierbarkeit von blockchain zu verbessern, indem es in kleinere Einheiten (bekannt als "Shards") aufgeteilt wird, die parallel verarbeitet werden können und somit die Gesamtkapazität des Transaktionsdurchsatzes des Netzwerks erhöhen. 

Warum brauchen wir Sharding?

Wenn ein Knoten an einem Kryptowährungsnetzwerk teilnehmen möchte, lädt der Client den gesamten Transaktionsverlauf herunter. Der Grund dafür ist, dass er die Transaktionen validieren und überprüfen kann, dass keine doppelten Ausgaben getätigt wurden. Das bedeutet, dass Sie alle Daten herunterladen müssen, um an einem blockchain teilnehmen zu können.

Wenn Sie einen Knoten in Bitcoin um die volle Blockbelohnung zu erhalten, benötigen Sie mindestens 200 GB Speicherplatz (Stand April 2018). Bei Ethereum ist diese Zahl sogar noch höher, im April 2018 waren auf jedem Knotenpunkt über 100 GB an Daten gespeichert. Mit einer normalen Internetverbindung dauert das Herunterladen all dieser Daten etwa zwei Wochen. Dies ist für die meisten Menschen, die sich an einem Kryptowährungsnetzwerk beteiligen möchten, nicht praktikabel.

Sharding wurde erstmals in Datenbankverwaltungssystemen eingeführt, um die Leistung, Effizienz und Skalierbarkeit von Datenbankdiensten durch Aufteilung der Daten auf mehrere Rechner zu verbessern. Sharding wird in modernen Datenbanksystemen verwendet, weil es die Gesamtgeschwindigkeit einer Anwendung erhöhen kann. Die gleiche Idee wird nun auch auf die blockchain-Technologie angewandt.

Blockchain-Netzwerke wie Ethereum versuchen, Sharding mit dem Ziel zu implementieren, die Skalierbarkeit ihres Netzwerks zu erhöhen, wodurch sie mehr Transaktionen mit einer höheren Geschwindigkeit verarbeiten könnten. Der Mitbegründer von Ethereum, Vitalik Buterin, erforscht und entwickelt das Konzept des Sharding schon seit einiger Zeit, und diese Forschung führte zur Schaffung von EIP 1559, einer möglichen Implementierung des Sharding auf Ethereum.

Die Idee des Sharding gibt es schon seit einiger Zeit, aber in der Welt der Kryptowährungen wurde sie erstmals von Zilliqa verwendet. Das Proof-of-Work (PoW) blockchain-Modell ist nicht ideal, wenn man ein Netzwerk erstellen möchte, das ein hohes Transaktionsvolumen verarbeiten kann. Zilliqa war das erste Unternehmen, das versuchte, dieses Problem zu lösen, indem es eines der schnellsten blockchain-Netzwerke auf dem Markt schuf.

Zilliqa verwendet eine Sharding-Lösung, die es ermöglicht, die Transaktionskapazität zu erhöhen, wenn weitere Knoten dem Netzwerk beitreten. Je mehr Computer dem Netzwerk hinzugefügt werden, desto mehr Transaktionen können pro Sekunde verarbeitet werden.

Wie Sharding funktioniert

Ein blockchain ist ein verteiltes Hauptbuch, das aus in Blöcken gespeicherten Daten besteht; jeder Block enthält eine bestimmte Menge an Daten, und diese Blöcke sind miteinander verkettet, um das Hauptbuch zu bilden. Die Kette wird von Knoten verwaltet - Teilnehmern, die eine Kopie des gesamten Hauptbuchs besitzen und es aktualisieren, wenn neue Informationen eingehen. Jeder Knoten muss neue Daten validieren, bevor sie der Kette hinzugefügt werden können. Wenn ein Unternehmen sein System skalieren muss, hat es zwei Möglichkeiten: Es kann entweder teurere Hardware kaufen oder eine alternative Lösung finden, die die vorhandene Hardware besser ausnutzt.

Sharding ist einer von mehreren Ansätzen zur Skalierung und Hochverfügbarkeit von Datenbanken. Andere Ansätze sind Antwort-Caching, Master-Slave-Replikation und Cloud-Hosting.

Beim Sharding werden die Daten auf mehrere Server verteilt, wie im folgenden Diagramm dargestellt. Jeder Shard fungiert als separate Datenbank, und jeder Datenbankserver führt Lese- und Schreibvorgänge für seinen eigenen Shard durch. Um eine Datenbank in Shards aufzuteilen, muss jeder Shard eine Art von Metadaten enthalten, die dabei helfen, zu erkennen, welche Daten in welchem Shard gespeichert werden sollen.

Ethereum plant, Sharding für seine Skalierungslösung zu verwenden. Derzeit gibt es in Ethereum zwei Arten von Nodes: Full Nodes und Light Nodes. Full Nodes speichern alle Informationen über die blockchain (bis zu 1 Terabyte), während Light Nodes nur einen kleinen Teil dieser Informationen oder nur eine Zusammenfassung dessen, was auf der Kette passiert, speichern. Mit Ethereums Sharding-Lösung werden Full Nodes in "Collation"- und "Attester"-Knoten aufgeteilt. Auf diese Weise werden Collation Nodes viel weniger Validatoren haben als Full Nodes und viel weniger Informationen speichern können als Full Nodes es derzeit tun. Dies bedeutet, dass sich mehr Menschen als Prüfer und Betreuer am Netz beteiligen können.

Dieser Ansatz bietet mehrere Vorteile:

Nutzen und Vorteile von Sharding auf dem Kryptomarkt 

Wie bereits erwähnt, zielt das Sharding darauf ab, die große Arbeitslast in kleine Unterlasten aufzuteilen. Dies wiederum trägt dazu bei, die Skalierbarkeit und Effizienz eines Netzes zu verbessern. Zu den Vorteilen dieser Methode gehören ein höherer Durchsatz und schnellere Transaktionsgeschwindigkeiten. Letzteres ist besonders wichtig für Kryptobörsen, die nach einer alternativen und effizienteren Methode zur Abwicklung von Nutzertransaktionen suchen.

  1. Geringere Kosten - Mit Sharding können Sie Ihre Datenbank horizontal statt vertikal erweitern, da jeder Shard auf einem eigenen Server gehostet werden kann. Das bedeutet, dass Sie mit weniger leistungsfähiger, preiswerter Hardware beginnen und dann weitere Shards hinzufügen können, wenn Ihr System größer wird oder mehr Verarbeitungsleistung benötigt. 
  1. Anstieg der Nachfrage nach Transaktionen auf blockchains führt zu Staus und erhöht den Wert der Transaktionsgebühren; dies kann in Kryptowährungsökosystemen, in denen die "Miner" mit den Transaktionsgebühren belohnt werden, Probleme verursachen. Je höher der Wert der Gebühr ist, desto größer ist der Anreiz, Blöcke zu schürfen. Wenn die Transaktionsgebühren jedoch zu hoch sind, können sie für einige Nutzer unerschwinglich sein, was zu einem Rückgang der Akzeptanz führen könnte.
  1. Schnellere Abfragen - Die Shards können auf verschiedene Server verteilt werden, was die Zeit für jede Abfrage verkürzt, da weniger Daten durchsucht werden müssen.
  1. Erhöhte Skalierbarkeit: Der Durchsatz steigt mit der Anzahl der Knoten, die zur Unterstützung von mehr Transaktionen pro Sekunde in einem Netzwerk verwendet werden können. Die Idee, die hinter dem Sharding steht, ähnelt der Speicherung verschiedener Daten auf verschiedenen Datenbankservern oder der Verwendung mehrerer Server für verschiedene Aufgaben. Dies hilft bei der Verwaltung einer Datenbank, die groß ist und viele Transaktionen pro Sekunde verarbeiten kann.
  1. Hohe Verfügbarkeit: Da die Datenbank in kleinere Datenbanken, so genannte Shards, unterteilt ist, gibt es selbst bei einem Ausfall eines Shards viele andere Shards, die bei der Aufrechterhaltung der Netzverfügbarkeit helfen können.
  1. Geringere Latenzzeit: Wenn Sie mehrere Datenbankserver haben, können diese näher an den Benutzern platziert werden und

Die Nachteile der Verwendung von Sharding 

Die Nachteile von Sharding liegen in der Umsetzung, nicht im Konzept. Die Implementierung von Sharding ist schwierig und erfordert harte Forks, da es viele Varianten von Sharding-Vorschlägen gibt. Außerdem kann es ohne ordnungsgemäße Implementierung und Tests zu Zentralisierungsrisiken aufgrund unterbrochener Ketten oder unsachgemäßer Verteilung von Belohnungen führen.

Einige der größten Probleme beim Sharding liegen in der praktischen Umsetzung. Wenn Sie beispielsweise mehrere Shards (Datenblöcke) haben, woher wissen Sie dann, welcher Shard die aktuellsten Informationen enthält? Wenn ein Shard eine alte Version einiger Daten hat und ein anderer eine neuere, welcher sollte dann verwendet werden? Dies wird als "Shard-Synchronisierung" bezeichnet und ist etwas, das die Entwickler vor der Implementierung eines neuen Systems lösen müssen.

  • Shards können bei Netzwerkfehlern nicht mehr verfügbar sein
  • Wenn sich die Anzahl der Knoten im System ändert, dauert es eine Weile, bis ein neuer Shard erstellt ist.
  • Im Falle eines Ausfalls kann es schwierig sein, Informationen zu finden

Sharding ist nicht wie ein Zauberstab, der alle blockchain-Probleme auf einmal lösen kann. Es ist ein Konzept, dessen Umsetzung eine Menge Arbeit erfordert, und es gibt immer Kompromisse. Die Sicherheit wird bei blockchain immer das Hauptanliegen sein - wenn man es jemandem leichter macht, das Netz anzugreifen, muss man sicherstellen, dass die Sicherheit immer noch gut genug ist, um diese Angriffe abzuwehren.

Es liegt auf der Hand, dass Sharding ein großes Potenzial hat, da es dazu beitragen könnte, die Anzahl der Transaktionen pro Sekunde zu erhöhen, indem die Anzahl der Shards erhöht wird. Infolgedessen kämen die Nutzer in den Genuss schnellerer Transaktionszeiten. Und wenn es darum geht Kryptowährungsbörsen und -handel Plattformen - das ist das Wichtigste.

Verwandte Links

de_DEGerman