Heim > web3.0 > Hauptteil

Das Konzept des Shardings und wie es funktioniert

PHPz
Freigeben: 2024-07-17 13:23:52
Original
1063 Leute haben es durchsucht

Die Blockchain-Technologie bietet ein beispielloses Potenzial in Bezug auf Dezentralisierung, Transparenz und Sicherheit, steht aber auch vor der großen Herausforderung der Skalierbarkeit. Skalierbarkeit ist eines der Blockchain-Trilemmas, die anderen beiden sind Sicherheit und Dezentralisierung. Der Blockchain-Bereich war schon immer bestrebt, die oben genannten drei Punkte gleichzeitig zu erfüllen, und „Sharding“ ist eine strategische Lösung, die sich als nützlich erweisen kann.

Was ist Sharding?

Sharding ist ein Konzept, das der traditionellen Datenbankverwaltung entlehnt ist und sich auf den Prozess der Aufteilung einer größeren Datenbank in kleinere, besser verwaltbare Teile (sogenannte „Shards“) bezieht. Sharding wird im Blockchain-Bereich eingesetzt, um die Skalierbarkeit zu verbessern und gleichzeitig das Prinzip der Dezentralisierung beizubehalten. Beim Sharding wird das Blockchain-Netzwerk tatsächlich in kleinere Teile geteilt, und jeder geteilte Teil kann Transaktionen und Smart Contracts parallel verarbeiten.

Wie funktioniert Sharding?

Um zu verstehen, wie Sharding in einem Blockchain-Netzwerk durchgeführt wird, müssen Sie zunächst verstehen, wie Blockchain-Daten konventionell gespeichert und verarbeitet werden. Es gibt viele Möglichkeiten, Daten zu verarbeiten. Im Folgenden werden die sequentielle Verarbeitung und die parallele Verarbeitung vorgestellt.

Im Allgemeinen ist jeder Blockchain-Knoten für die Verarbeitung des gesamten Transaktionsvolumens innerhalb des Netzwerks verantwortlich. Diese Art der Datenverarbeitung wird als „sequentielle Verarbeitung“ bezeichnet. Das heißt, jeder Knoten muss alle wichtigen Informationen wie Kontostände und Transaktionsverlauf verwalten und speichern. Im Wesentlichen muss jeder Knoten alle Netzwerkvorgänge, Daten und Transaktionen abwickeln.

Dieser Modus erhöht die Sicherheit der Blockchain, indem er jede Transaktion auf allen Knoten aufzeichnet, reduziert aber auch die Datenverarbeitungsgeschwindigkeit erheblich. Hier kommt die Datenparallelverarbeitung ins Spiel, die die gleichzeitige Ausführung mehrerer Vorgänge ermöglicht.

Sharding teilt oder „partitioniert“ die Transaktionsarbeitslast über das gesamte Blockchain-Netzwerk und ist daher eine effektive Lösung für dieses Dilemma. Dies bedeutet, dass nicht alle Knoten die gesamte Arbeitslast der Blockchain verwalten oder verarbeiten müssen.

Im Gegensatz dazu trennt Sharding die Arbeitslast durch horizontale Aufteilung. Dabei werden die Daten in horizontale Teilmengen unterteilt, wobei jeder Shard als unabhängige Datenbank fungiert und Transaktionen getrennt von anderen Shards verarbeiten kann.

Horizontale Aufteilung und vertikale Aufteilung

Horizontale Aufteilung und vertikale Aufteilung sind die beiden Hauptmethoden der Datenbankerweiterung. Beide Ansätze sind darauf ausgelegt, große Datenmengen effizient zu verwalten, die Grundlagen ihrer Funktionsweise sind jedoch völlig unterschiedlich. Sharding ist eine gängige Methode zur Implementierung von Split Horizon.

Daten können in Zeilen unterteilt und durch horizontale Aufteilung auf verschiedene Knoten (oder Datenbanken) verteilt werden. Jeder Knoten (oder jede Datenbank) enthält eine Teilmenge von Daten. Jede Zeile in der Tabelle ist eine eindeutige Einheit, sodass separate Zeilen die Datenintegrität nicht beeinträchtigen. Ein klassisches Beispiel für Split Horizon ist die Verbreitung von Blockchain-Netzwerken wie Ethereum und Bitcoin.

Vertikal geteilte Daten werden in Spalten statt in Zeilen unterteilt. Jede Partition einer vertikalen Aufteilung enthält Daten für einzelne Entitäten oder eine Teilmenge des gesamten Datensatzes, jedoch nur für einen bestimmten Satz von Attributen. Beispielsweise eine Kundentabelle mit Spalten wie „Name“, „Status“, „Beschreibung“ und „Foto“. Bei einer vertikalen Aufteilung könnten „Name“ und „Status“ in einer Tabelle und „Beschreibung“ und „Foto“ in einer anderen Tabelle gespeichert werden.

Warum ist die horizontale Spaltung beliebter?

In Blockchain-Netzwerken wird die horizontale Partitionierung normalerweise der vertikalen Partitionierung vorgezogen, hauptsächlich aus den drei Hauptgründen Skalierbarkeit, Dezentralisierung und Sicherheit.

Skalierbarkeit: Sharding bietet eine Lösung, indem es Daten in kleinere, besser verwaltbare „Shards“ aufteilt. Jeder Shard kann unabhängig ausgeführt werden und mehr Transaktionen gleichzeitig verarbeiten, wodurch die Netzwerkgeschwindigkeit und -effizienz erhöht wird. Durch die vertikale Aufteilung werden Spalten auf verschiedene Datenbanken verteilt, was das Abrufen vollständiger Transaktions- oder Blockinformationen komplexer machen und die Skalierbarkeit einschränken kann.

Dezentralisierung: Im Einklang mit dem Kernkonzept der Blockchain unterstützt Split Horizon die Dezentralisierung. Wenn Knoten nur einen Teil der Gesamtdaten verarbeiten müssen (ein Shard), wird die Rechen- und Speicherlast reduziert, sodass mehr Knoten am Netzwerk teilnehmen können. Im Gegensatz dazu besteht bei der vertikalen Partitionierung die Einschränkung, dass jeder Knoten auf alle Partitionen (alle Datenspalten) zugreifen muss, um die vollständigen Blockdaten zu verstehen und zu überprüfen.

Sicherheit und Datenintegrität: Jeder Shard (oder jede Partition) enthält vollständige Transaktionsdaten, um sicherzustellen, dass jeder Knoten eine vollständige und genaue Kopie seines Teils der Blockchain enthält, sodass Split Horizon die Datenintegrität aufrechterhält. Durch die vertikale Segmentierung werden im Wesentlichen die Blockdaten verschiedener Knoten aufgeteilt, was es schwierig macht, die wichtigste Datenintegrität und -sicherheit des Blockchain-Netzwerks sicherzustellen.

Was sind die Vorteile von Sharding?

Die potenziellen Vorteile, die Sharding für die Blockchain-Technologie mit sich bringt, werden im Folgenden im Detail untersucht:

Verbesserung der Transaktionsgeschwindigkeit: Sharding fördert die parallele Verarbeitung von Transaktionen. Anstatt Transaktionen einzeln nacheinander zu verarbeiten, ermöglicht Sharding die gleichzeitige Verarbeitung von Transaktionen auf verschiedenen Shards. Jeder Shard arbeitet unabhängig und erhöht so die Transaktionsgeschwindigkeit erheblich. Dies beschleunigt nicht nur Transaktionen, sondern bedeutet auch, dass das gesamte Netzwerk mehr Benutzer verarbeiten kann, was die Popularität des Netzwerks fördert.

Ziliqa ist ein Blockchain-Netzwerk, das Sharding zur Lösung der Skalierbarkeit nutzt. Mithilfe dieses Sharding-Mechanismus kann Ziliqa Tausende von Transaktionen pro Sekunde verarbeiten.

Verarbeitungs- und Speicherkosten minimieren: Traditionelles Blockchain-Design erfordert, dass jeder Knoten alle Transaktionen speichert. Mit der Entwicklung der Blockchain steigt auch die Nachfrage nach Hardware. Beim Sharding ist jedoch jeder Knoten nur für die Verarbeitung und Speicherung eines kleinen Teils der Daten des gesamten Netzwerks verantwortlich, wodurch die für die Teilnahme der Knoten am Netzwerk erforderlichen Ressourcen reduziert werden.

Je mehr Teilnehmer also als Validatoren beitreten, desto dezentraler wird das Netzwerk, ohne dass hohe Kosten entstehen. Auf diese Weise wird das Problem gemildert und nicht nur Unternehmen mit teuren High-End-Rechenressourcen können tatsächlich am Prozess teilnehmen, wodurch der demokratisierte Charakter des Blockchain-Netzwerks erhalten bleibt.

Verbessern Sie die Netzwerkleistung: Sharding trägt dazu bei, die Gesamtleistung und Kapazität des Netzwerks zu verbessern. In der traditionellen Blockchain nimmt die Anzahl der am Netzwerk teilnehmenden Knoten von Tag zu Tag zu, wodurch die Kommunikation und Synchronisierung zwischen Knoten zunimmt, die Leistung jedoch abnimmt.

Sharding ändert diese Situation jedoch. Da jeder Shard unabhängig und parallel laufen kann, kann das System mehr Transaktionen und Berechnungen verarbeiten. Neue Knoten werden nur den Shards hinzugefügt, nicht dem gesamten Netzwerk, wodurch die Erweiterungskapazität des Netzwerks erhöht wird. Die Effizienz wird verbessert und Transaktionen werden reibungsloser, was für ein besseres Benutzererlebnis sorgt.

Bitte bedenken Sie, dass zukünftige Entwicklungen und Verbesserungen der Sharding-Technologie möglicherweise auch zusätzliche Vorteile mit sich bringen oder bestehende Vorteile verstärken und so das Blockchain-Ökosystem kontinuierlich optimieren können.

Welche Einschränkungen gibt es beim Sharding?

Sharding kann durch viele potenzielle Vorteile dazu beitragen, Blockchain-Netzwerke effizienter zu machen, bringt aber auch eine Reihe einzigartiger Herausforderungen mit sich. Zu den potenziellen Schwachstellen, die das Sharding mit sich bringt, gehören:

Einzel-Shard-Übernahmeangriff: In einer Shard-Umgebung ist die Rechenleistung, die zur Übernahme eines einzelnen Shards erforderlich ist, viel geringer als die Rechenleistung, die zur Übernahme des gesamten Netzwerks erforderlich ist. Daher ist ein einzelner Shard anfälliger für einen „Ein-Prozent-Angriff“ oder eine „Shard-Übernahme“. Es ist für einen Angreifer mit wenigen Ressourcen möglich, einen einzelnen Shard zu übernehmen, anstatt das gesamte Netzwerk anzugreifen.

Shard-übergreifende Transaktionen: Die Durchführung von Transaktionen auf verschiedenen Shards (Cross-Shards) steht vor besonderen Herausforderungen. Shardübergreifende Transaktionen sind komplex und eine nachlässige Verwaltung kann zu Problemen mit doppelten Ausgaben führen. Wenn während einer Transaktion ein Shard den Status eines anderen Shards nicht genau verfolgen kann, können Benutzer diese Schwachstelle ausnutzen, um ein „Problem mit doppelten Ausgaben“ zu verursachen.

Probleme mit der Datenverfügbarkeit: Sharding macht die Aufrechterhaltung des Status des gesamten Netzwerks kompliziert. Da die Knoten, die bestimmte Shards verwalten, offline sind, sind diese Shards bei Bedarf nicht verfügbar, was zu Problemen mit der Datenverfügbarkeit führen kann, die das gesamte Netzwerk unterbrechen.

Netzwerksicherheit: Sharding erfordert die Implementierung stabiler Protokolle, um die Last zwischen den Shards auszugleichen. Ein unsachgemäßer Betrieb kann zu einer ungleichmäßigen Datenverteilung oder einem Ressourcenungleichgewicht führen, was zu Netzwerkinstabilität führen kann.

Knotensynchronisierung: Knotensynchronisierung kann aufgrund der Zeit, die für den Austausch und die Aktualisierung von Informationen zwischen verschiedenen Knoten benötigt wird, zu Netzwerkverzögerungen führen. Darüber hinaus kann eine Verlangsamung der Knotenverarbeitungsleistung oder eine Verzögerung der Netzwerkverbindung den gesamten Synchronisierungsprozess verlangsamen und so die Gesamtleistung des Blockchain-Netzwerks verringern.

Ist Sharding auf Ethereum implementiert?

Ethereum hat die Sharding-Implementierung als Teil des Ethereum 2.0-Upgrades geplant. Ethereum 2.0, auch bekannt als „Eth2“ ​​oder „Quiet Phase“, ist ein Upgrade der Ethereum-Blockchain, das darauf abzielt, die Geschwindigkeit, Effizienz und Skalierbarkeit des Netzwerks zu erhöhen und dadurch die Fähigkeit zu erhöhen, mehr Transaktionen abzuwickeln und Überlastungen zu verringern.

Ab sofort wird das Upgrade in Phasen implementiert, wobei die letzte Phase (Phase 2) die vollständige Implementierung von Sharding umfasst. Die Ethereum-Entwickler hoffen, dass das Upgrade die Herausforderungen des aktuellen Netzwerks wie Skalierbarkeit und Transaktionskosten bewältigen wird.

Aber es ist erwähnenswert, dass die Implementierung von Sharding von Natur aus eine Herausforderung darstellt, insbesondere die Aufrechterhaltung der Netzwerksicherheit und Dezentralisierung. Daher haben die Ethereum-Entwickler diesen Übergang sorgfältig geprüft und umfangreiche Tests durchgeführt, um sicherzustellen, dass das Upgrade nach vollständiger Implementierung erfolgreich sein wird.

Fazit

Insgesamt stellt Sharding einen bedeutenden Fortschritt bei der Lösung des ternären Paradoxproblems der Blockchain dar. Sharding bringt neue Komplexitäten und potenzielle Mängel mit sich, es wird jedoch erwartet, dass es die Skalierbarkeit verbessert, ohne die Dezentralisierung zu beeinträchtigen, was die zukünftige Entwicklung von Blockchain-Netzwerken zu endlosen Hoffnungen macht.

Dies ist zweifellos der Grund, warum viele Blockchains Sharding als mögliche Lösung untersuchen. Ethereum integriert Sharding im Rahmen des Ethereum 2.0-Upgrades, um Skalierbarkeitsprobleme zu beheben. Die Sharding-Implementierung wird voraussichtlich über das Cancun-Upgrade erfolgen, eine Schlüsselkomponente des gesamten Upgrade-Plans. Dennoch wird der Erfolg einer Sharding-Implementierung, wie auch bei anderen sich entwickelnden Technologien, von Faktoren wie kontinuierlicher Forschung und Entwicklung sowie strengen Tests bestimmt.

Das obige ist der detaillierte Inhalt vonDas Konzept des Shardings und wie es funktioniert. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:binance.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!