In einer herkömmlichen Blockchain müssen Transaktionen von jedem Knoten im Netzwerk bestätigt werden, während ein Konsens zwischen den Knoten erreicht werden muss, bevor die Transaktionen gepackt werden, um einen neuen Block zu generieren. Die Sicherheit ist vollständig gewährleistet, da jeder Knoten den vollständigen Ledger-Verlauf aufzeichnet, was es Hackern erschwert, die Daten heimlich zu manipulieren, ohne entdeckt zu werden.
Sicherheit und Skalierbarkeit sind unvereinbar
Hohe Sicherheit hat jedoch ihren Preis. Die Häufigkeit der Kommunikation und des Informationsaustauschs der Knoten belegt Netzwerkbandbreite und verlangsamt die Transaktionsverarbeitung. Um zu verhindern, dass der Ausfall eines einzelnen Knotens das gesamte Netzwerk zum Erliegen bringt, werden mehr Knoten benötigt, um die Dezentralisierung zu verbessern und Risiken zu verteilen. Diese unterschiedlichen Kompromisse werden auch als „unmögliches Dreieck“ bezeichnet, was bedeutet, dass Skalierbarkeit, Dezentralisierung und Sicherheit des Blockchain-Netzwerks nicht gleichzeitig erreicht werden können.
Quelle: Vitalik Buterins Blog „Why Sharding is great: Demystifying the technical properties“
Sharding ermöglicht eine effiziente Skalierung bei gleichzeitiger Erzielung von Sicherheit und Dezentralisierung
Sharding ist eine Lösung, die die Skalierbarkeit eines Blockchain-Netzwerks erhöht, ohne auf Sicherheit und Dezentralisierung zu verzichten. Sharding teilt eine einzelne Blockchain in mehrere kleinere Blockchains auf, von denen jede ihre eigenen Datensätze separat verwaltet, und der Datenaustausch wird nur bei Bedarf durchgeführt. Daher können Knoten in verschiedenen Sharding-Ketten nur die Transaktionen, die zu ihren eigenen Ketten gehören, synchron verifizieren, anstatt Daten aus der gesamten Blockchain.
Solange die Anzahl der Knoten in jeder Sharding-Kette groß genug ist, werden die Sicherheit und Dezentralisierung bestätigt. Die Anwendung von Sharding kann den Durchsatz von Blockchains erhöhen, um der steigenden Benutzernachfrage gerecht zu werden. ETH 2.0 wird auch seine Skalierbarkeit durch Sharding verbessern.
Sharding ist eine Optimierungstechnik zur Verbesserung der Datenbankzugriffsleistung, indem die ursprüngliche Datenbank basierend auf Bedarfsbedingungen in mehrere Shards aufgeteilt wird, wodurch Last und Benutzerverkehr verteilt werden können, um einen schnelleren Service bereitzustellen. In Anbetracht der Tatsache, dass eine Blockchain im Wesentlichen ein großes dezentrales Ledger ist, ist es möglich, die Skalierbarkeit durch Sharding zu verbessern.
Beispielsweise gibt es auf Einkaufsseiten eine große Anzahl von Produkten mit unterschiedlichen Preisen, Verbraucher haben unterschiedliche Bedürfnisse, während einige reduzierte und billige Produkte bevorzugen und andere teure und Premiumprodukte. Um mit einer großen Order wie dieser fertig zu werden, kann eine einfache Triage anhand von Preisspannen durchgeführt werden, um die Verarbeitung durch die Prüfer zu beschleunigen.
Quelle: DigitalOcean
Sharding sortiert Daten und verarbeitet sie nach unterschiedlichen Bedürfnissen
Ein Prüfer (Knoten) muss alle Bestellinformationen bestätigen, ohne die Bestelldaten aufzuteilen (Sharding), was viel Zeit in Anspruch nimmt, um sich wiederholende Aufgaben auszuführen. Die Aufteilung der Bestelldaten auf mehrere Shards hingegen erlaubt es verschiedenen Checkern, Bestellungen für niedrigpreisige und hochpreisige separat zu verarbeiten.
Da jede Art von Bestellung nur ein kleiner Teil der gesamten Bestellung ist und Prüfer, die für Artikel mit unterschiedlichen Preisen zuständig sind, gleichzeitig arbeiten können, ohne sich gegenseitig zu beeinflussen, ermöglicht Sharding parallele Operationen; Jeder Prüfer muss nur einen Teil der Bestellung prüfen, sodass Sharding die Arbeitsbelastung der Knoten reduziert und die Überprüfung beschleunigt.
Eine Sharding-Datenbank ist wie ein Puzzle, und jedes Teil des Puzzles repräsentiert einen Shard. Eine ungesplitterte Blockchain muss das gesamte Puzzle jedes Mal neu zeichnen, wenn ein neuer Block generiert wird (Zustandsreplikation) und dann einen kleinen Teil des Puzzles modifizieren (Zustandsaktualisierung). Eine fragmentierte Blockchain muss nur das spezifische Teil finden, das geändert werden muss (Shard) und es durch ein neues ersetzen, wenn ein neuer Transaktionsdatensatz hinzugefügt wird.
On-Chain-Anwendungen sind vielfältiger und die Nachfrage wächst exponentiell
Sobald die Benutzergröße erheblich zunimmt, muss das System unabhängig von der Art des Systems zwangsläufig skaliert werden, um dem zunehmenden Datenverkehr gerecht zu werden. Wenn beispielsweise ein Online-Spiel so beliebt ist, dass die Zahl der Spieler von 100.000 auf eine Million oder sogar zehn Millionen pro Tag steigt, muss ein neuer Server eingerichtet werden, um den Datenverkehr umzuleiten und Verzögerungen zu vermeiden. Eine ähnliche Situation kann im wirklichen Leben beobachtet werden. Während der Ferien leiden Touristen an Sehenswürdigkeiten immer unter schrecklichen Staus. Was normalerweise nur zwei Stunden dauert, um ein Ziel zu erreichen, dauert jetzt aufgrund des Verkehrsanstiegs viel länger. Alternative Routinen sind die gängige Lösung, um Staus effektiv zu entlasten.
Skalierung stößt auf Engpässe, sucht nach Alternativen
Blockchain ist während seiner Entwicklung auch auf den Engpass der Skalierbarkeit gestoßen. In einer P2P-Blockchain mit nur 10 Knoten kann der gesamte Datenaustausch nach 10 9 Mal Kommunikation zwischen den Knoten abgeschlossen sein; Wenn die Anzahl der Knoten 100 erreicht, bedeutet dies 100 99 Mal der Kommunikation zwischen den Knoten, wenn keine Algorithmusoptimierung erfolgt. Im Allgemeinen ist es bei einem P2P-Blockchain-Netzwerk mit N Knoten, bei dem jeder Knoten Daten mit anderen N-1 Knoten austauscht, denkbar, dass der Zeit- und Rechenaufwand für jede Transaktion nach der Skalierung von Blockchain-Netzwerken exponentiell ansteigt.
Als Mainstream wenden Bitcoin und Ethereum immer noch veraltete Mechanismen an
Bitcoin, derzeit die größte Kryptowährung nach Marktkapitalisierung, und voraktualisiertes Ethereum sind beide langsam, wobei Bitcoin etwa 7 Transaktionen pro Sekunde (TPS) und Ethereum mit 15 TPS etwas mehr verarbeitet. Dies reicht seit langem nicht aus, um die Anforderungen einer großen Anzahl von Benutzern zu erfüllen, und wird von zentralisierten Systemen wie dem führenden Kreditkartenunternehmen VISA, das bis zu 24.000 Transaktionen pro Sekunde verarbeitet, in den Schatten gestellt. Neben der Netzwerküberlastung erhöht die langsame Geschwindigkeit auch die Kosten, und Benutzer müssen höhere Gebühren zahlen, um ihre Transaktionen zu priorisieren, was die Benutzererfahrung noch schlechter macht.
Es ist nicht erforderlich, dass jeder Knoten den vollständigen Transaktionsverlauf in einer Sharding-Blockchain besitzt, da ein Knoten nur Informationen in Bezug auf den Shard speichern muss, zu dem er gehört, die Kosten für die Einrichtung von Knoten und die Schwelle für die Teilnahme werden durch Sharding gesenkt. Blockchain-Netzwerke können mit Hilfe von Sharding stärker dezentralisiert werden. Die Spezifikationen der für den Betrieb von Knoten erforderlichen Hardwareausrüstung werden ohne Sharding immer höher. Am Ende werden nur Teilnehmer mit günstigen wirtschaftlichen Bedingungen überleben. Sharding ermöglicht es gewöhnlichen Computern, Laptops und sogar Smartphones, zu Knoten zu werden, was zur Massenakzeptanz der Blockchains und dAPPs führen wird.
Der Konsensmechanismus von Ethereum wird in ETH 2.0 von Proof of Work (PoW) auf Proof of Stake (PoS) umgestellt und das ursprüngliche Ethereum Mainnet in die Beacon Chain eingebunden. Dadurch wird keine massive Rechenleistung mehr benötigt, damit Ethereum-Knoten neue Blöcke generieren können. Stattdessen setzen sie ihre ETH in Smart Contracts ein, um Validatoren zu werden und das Recht zu erhalten, Transaktionsgebühren zu erhalten, wenn sie neue Blöcke einreichen.
In ETH 2.0 werden 64 Shards erstellt, um die Skalierbarkeit zu verbessern, von denen einer als Beacon Chain bezeichnet wird. Es spielt eine zentrale Rolle bei Ethereum-Sharding-Upgrades und ist für die Koordinierung und den Informationsaustausch zwischen verschiedenen Shards verantwortlich. Alle ETH 2.0-Knoten werden auch ETHs in die Shard-Ketten einsetzen und Transaktionen auf verschiedenen Shards gemäß den Anweisungen verarbeiten, und Blöcke auf den Shard-Ketten sind nur mit Genehmigung der Beacon-Kette gültig.
Quelle: Hsiao-wei Wang
Sharding validiert ausstehende Transaktionen durch Triage
Wenn ETH 2.0 Sharding anwendet, weist der Zufallsstichprobenalgorithmus jedem Shard eine zufällige Anzahl von Knoten zu, um Transaktionen zu überprüfen und die Reihenfolge und Gültigkeit der Transaktionen in der Shard-Kette durch Abstimmung zu bestimmen, dann werden die Informationen der neu generierten Shard-Blöcke sein auf der Beacon Chain hinzugefügt. Ein neuer Block muss von mehr als zwei Dritteln der Knoten in der Shard-Kette genehmigt werden.
Wie in der Abbildung unten gezeigt, wird jedem Knoten eine Nummer (1~100) in einer Folge von Validator-Knotensätzen zugewiesen; der Zufalls-Sampling-Algorithmus bricht die Zuweisungsreihenfolge der Knoten auf, was zu einem neuen Knotensatz ohne feste Reihenfolge führt; Die neu generierten ersten 1 bis 10 Knoten können als erstes Komitee bestimmt werden, um Transaktionen auf der ersten Shard-Kette zu verarbeiten, während das 11. bis 20. das zweite Komitee ist, das die zweite Shard-Kette verarbeitet, und so weiter.
Quelle: Vitalik Buterins Blog „Why Sharding is great: Demystifying the Technical Properties“
Der Validierungsknoten ist nicht fest zugewiesen, um Transaktionen auf einer bestimmten Shard-Kette zu verarbeiten, da der Zufallsstichprobenalgorithmus die Reihenfolge der Knoten für einen bestimmten Zeitraum erneut unterbricht. Daher sind die für jede Shard-Kette verantwortlichen Ausschussmitglieder nicht festgelegt, was das Risiko einer Zentralisierung vermeidet, das dadurch verursacht wird, dass ein bestimmter Knoten eine Shard-Kette für lange Zeit verifiziert, und die Schwierigkeit eines Angriffs erhöht.
Da Sharding den Durchsatz von ETH 2.0 stark erhöhen wird, es für alle Knoten unmöglich wird, die vollständigen Transaktionsdaten auf verschiedenen Shard-Ketten synchron zu aktualisieren, wird der Collation Header, der dem Block-Header im PoW ähnelt, zum Medium für den Informationsaustausch . Wie der Name schon sagt, enthält ein Sortierungs-Header Metadaten zu den Informationen innerhalb der Sortierung, wie zum Beispiel:
Quelle: Hackernoon
Der Kollationsheader versorgt den Knoten mit ausreichenden Informationen und lädt nur bei Bedarf den vollständigen Transaktionsdatensatz gemäß dem Index herunter.
Eine Alternative, die den Nutzungsbedarf effektiv umleitet und die Skalierbarkeit erheblich verbessert
Stellen Sie sich vor, dass eine Million Autos gezwungen sind, auf derselben Straße zu fahren, um von Stadt A nach Stadt B zu gelangen. Die Fahrt wird zwangsläufig langsam sein, und das ist bei herkömmlichen Blockchains der Fall, da alle On-Chain-Knoten jede Transaktion überprüfen müssen. Sharding schneidet On-Chain-Daten in Stücke, sodass jeder Knoten nur einen Teil der Transaktion verarbeiten muss. Wenn eine Blockchain mehrere Autobahnen hinzufügt, um den Datenverkehr zu verteilen, können Benutzer Transaktionen zu Recht schneller abschließen.
Quelle: Genesis-Block
Reduzieren Sie Netzwerküberlastungen und senken Sie die Kosten
In Ethereum vor dem Upgrade packen Miner-Knoten Transaktionen basierend darauf, wie viel Benutzer zu zahlen bereit sind, wobei höhere Gebühren schneller und niedrigere Gebühren langsamer verarbeitet werden, was zu einer pathologischen Gebührenausschreibung führt, bei der Benutzer gelegentlich mehr als 50 US-Dollar für eine einzelne Transaktion zahlen . Sharding ermöglicht einen reibungsloseren Betrieb der Blockchain und reduziert die Notwendigkeit von Gebührengebote, und Benutzer können sich an eine andere wenden, wenn auf einem Shard eine Überlastung auftritt.
Einfacher zu betreibende Knoten, wodurch Dezentralisierung und Sicherheit verbessert werden
Da nicht auf die kompletten Daten der gesamten Blockchain zugegriffen werden muss, da jeder Node gleichzeitig nur Informationen auf einem Shard verarbeiten muss, wird die benötigte Hardware zum Aufbau eines Nodes geringer. Benutzer können billigere Geräte als Knoten verwenden, um an der Verifizierung teilzunehmen und Einnahmen zu erzielen. Die sinkende Schwelle kommt der Dezentralisierung und Popularisierung von Blockchain-Netzwerken zugute, und die Vision von ETH 2.0 ist es, Einzelpersonen zu ermöglichen, Ethereum-Apps von ihren Smartphones aus auszuführen. Ein Nebeneffekt der Dezentralisierung ist die Verbesserung der Netzwerksicherheit, je mehr Knoten und je verteilter sie sind, desto schwieriger ist es, die Blockchain anzugreifen.
Während Sharding eine Liste von Vorteilen hervorhebt, führt es auch eine Reihe neuer Probleme ein:
Die Möglichkeit des 1%-Angriffs
Die Blockchain ist zu 51 % anfällig für Angriffe, was bedeutet, dass ein Angreifer in der Lage ist, Transaktionsdaten willkürlich zu manipulieren oder sogar das gesamte Blockchain-Netzwerk zu kontrollieren, wenn er 51 % der Rechenleistung der Knoten kontrolliert. In größeren Blockchain-Netzwerken wie Bitcoin und Ethereum vor dem Upgrade sind die Kosten eines 51-%-Angriffs zu hoch, was eine Implementierung unmöglich macht.
Mit der Einführung von Sharding wird die Anzahl der Knoten, die jeden Shard verarbeiten, jedoch drastisch reduziert, und es wird für einen böswilligen Angreifer viel einfacher, Kompromisse einzugehen, solange er einen der Shards angreift und die Transaktionen erfolgreich fälscht, anstatt das gesamte Netzwerk anzugreifen. Genauer gesagt muss ein Hacker für ein Blockchain-Netzwerk mit 1.000 Knoten mit derselben Rechenleistung mehr als 500 Knoten kontrollieren, um das gesamte Netzwerk anzugreifen. Aber wenn diese 1.000 Knoten auf 100 Shards verteilt werden, muss ein Hacker nur mehr als 5 Knoten in einem der Shards kontrollieren, um die Daten zu manipulieren.
Quelle: Genesis-Block
Das Risiko der Smart Contract-Sicherheit steigt
Die Einführung von Sharding erfordert ein Umschreiben der Datenstruktur und der zugrunde liegenden Codelogik des Blockchain-Netzwerk-Ledgers, und die weitere Komplikation wird es schwieriger machen, das Netzwerk zu aktualisieren und zu warten, was zu Sicherheitslücken und Risiken von Smart Contracts führt, während auch unbeabsichtigte Fehler auftreten können während der Ausführung.
Absprachen zwischen Ausschussmitgliedern
Obwohl beim Sharding ein zufälliger Stichprobenalgorithmus verwendet wird, um zu vermeiden, dass identische Knoten einer festen Shard-Kette zugewiesen werden, besteht immer noch die Möglichkeit, dass doppelte Kombinationen identischer Knoten Transaktionen nach einem ausreichend langen Zeitraum gemeinsam validieren und Ausschussmitglieder die Shard-Kette überprüfen Es ist auch möglich, miteinander zu kooperieren und böswillige Transaktionen an die Kette zu übermitteln.
Ungleichgewicht laden
Voraussetzung für die Verbesserung der Netzwerkleistung durch Sharding ist, dass „Sharding“ erfolgreich „Umleitung“ bringt. Wenn eine Blockchain mit 100 Shard-Ketten optimiert wird, aber alle Benutzer immer noch eine bestimmte Shard-Kette verwenden, dann schlägt das Sharding fehl und die Skalierbarkeit wurde nicht wesentlich verbessert. Dies ist auch ein potenzielles Problem für ETH 2.0, da die Fähigkeit, intelligente Vertragsoperationen für jede Shard-Kette durchzuführen, nicht in der ursprünglichen Planung enthalten ist.
Kompliziertere Blockchain-Explorer
Die durch Sharding erzielte Verbesserung der Skalierbarkeit wird erreicht, indem dem gesamten Netzwerk mehr Algorithmen und Daten hinzugefügt werden. Blockchain-Explorer benötigen eine größere Verarbeitungsleistung, um Informationen über die Blockchain effektiv abzurufen.
Elrond ist eine dezentralisierte öffentliche Blockchain, die darauf abzielt, Skalierbarkeit, Geschwindigkeit und Sicherheit zu verbessern, indem drei Schlüsseltechnologien entwickelt werden, darunter Adaptive State Sharding mit Blockchain-Skalierungstechnologie, Secure Proof of Stake (SPoS), das die Auswahl von Validatoren bestimmt, um die Überprüfung zu beschleunigen, und Elrond Virtual Maschine, die mehrere Programmiersprachen unterstützt und mit Ethereum VM kompatibel ist.
Elronds einzigartiges Adaptive State Sharding kombiniert drei Formen des Shardings:
Derzeit kann Elrond 15.000 TPS erreichen, während die Gebühr so niedrig wie 0,001 $ bleibt, was ein angemessener Vorteil gegenüber Ethereum ist.
Near ist eine öffentliche Blockkette, die auf Full-State-Sharding, vereinfachten Entwicklungsanwendungen und einem Proof-of-Stake-Mechanismus basiert. Es setzt sich zum Ziel, die Skalierbarkeit für die dezentrale Anwendungsentwicklung zu erhöhen und die Tür der Blockchain-Technologie für alle zu öffnen. Sein Doomslug-Konsensmechanismus, der den Nightshade-Algorithmus übernimmt, ist in der Lage, TPS auf 100.000 zu skalieren. Die technische Architektur von Near unterscheidet sich von anderen öffentlichen Shard-Ketten wie der Beacon Chain, die aus einer Kette und mehreren Shard-Ketten besteht, in einzelne Blöcke aufgeteilt ist und zwischen diesen Blöcken Sharding durchgeführt wird. Ein Block enthält alle Transaktionen aller Shards, während der Shard-Status geteilt wird, und Prüfer werden zufällig zugewiesen, um den entsprechenden Status des Shards der Transaktion zu überprüfen, wodurch die Sicherheit verbessert wird.
Zilliqa ist ein ziemlich früher Vogel in Blockchains. Es wurde eingeführt, um die damalige schlechte Skalierbarkeit der Blockchain zu lösen, indem Netzwerk-Sharding und Transaktions-Sharding sowie PoW und byzantinischer fehlertoleranter Konsensalgorithmus (PBFT) mit vereinfachter Komplexität verwendet wurden, um den Konsens innerhalb von Shards zu beschleunigen. Es kann mit mehr als 600 Knoten immer noch schnell laufen, und die konstante Skalierung bringt Zilliqa auf höhere TPS von 2400 auf 3600 TPS.
Harmony ist eine öffentliche Kette, die auf State Sharding basiert, die durch eine Beacon Chain und mehrere Sharding-Ketten strukturiert ist und von dem byzantinischen fehlertoleranten Konsensalgorithmus (PBFT) begleitet wird, um einen tief optimierten Konsens zu erreichen und gleichzeitig mit BLS-Signaturen zu beschleunigen, um mehrere Signaturen zu aggregieren zu einem einzigen. In einer öffentlichen Sharding-Kette kann 1 % der Rechenleistung für Double-Spending-Angriffe verwendet werden. Beachten Sie dies, Harmony verwendet EPoS (Effective Proof-of-Stake) und Random Sharding, um große gestakete Token zu verteilen und ihnen zufällig zuzuweisen mehrere Shards, um das Risiko eines Angriffs zu verringern und die Sicherheit von Shards zu erhöhen. Es verwendet auch Kademlia Cross-Shard-Kommunikation, um die Netzwerkausgaben zu kontrollieren, und nutzt gleichzeitig Erasure Code, der die Datenwiederherstellung ermöglicht, um den Block-Broadcast-Prozess zu optimieren und eine effiziente horizontale Sharding-Skalierung durchzuführen.
Mit der Explosion der Nutzung von Kryptowährungen und der Verbreitung von dAPPs sind einige traditionelle Blockchains überfordert und nicht in der Lage, die steigende Marktnachfrage zu befriedigen. Wie man die Skalierbarkeit verbessern kann, ohne Dezentralisierung und Sicherheit aufzugeben, ist zu einem wichtigen Thema für die aktuelle Blockchain-Industrie geworden.
Sharding leitet On-Chain-Anforderungen effektiv um und verbessert die Zugriffseffizienz
Sharding ist eine Optimierungstechnologie, die die Effizienz des Datenbankzugriffs verbessert, indem On-Chain-Transaktionsdaten aufgeteilt und von verschiedenen Knoten synchron verarbeitet werden. Auf diese Weise werden Verkehrsumleitung und Geschwindigkeitssteigerung erreicht. Als mit Spannung erwartete Layer-1-Skalierungslösung sind die potenziellen Vorteile ziemlich groß, wenn Sharding nach Überwindung der technischen Schwierigkeiten auf hohem Niveau erfolgreich realisiert wird. Sharding wurde von einigen Blockchains übernommen und in der kommenden ETH 2.0 wird es auch in der Hoffnung übernommen, die Netzwerkleistung erheblich zu verbessern.
Sharding ist mit vielen ungelösten Herausforderungen extrem schwer zu erreichen, aber schließlich wird das unmögliche Dreieck überwunden
Sharding ist jedoch keine perfekte Lösung. Zusätzlich zu der erhöhten Komplexität kann es das Netzwerk weiteren Risiken aussetzen. Viele Entwickler forschen weiter darüber, wie verschiedene Shards für einen effizienten Betrieb koordiniert werden können, und erwarten, dass Sharding der Schlüssel zur Überwindung des „unmöglichen Dreiecks“ aus Sicherheit, Dezentralisierung und Skalierbarkeit ist, damit alle bestehenden Blockchain-Anwendungen und Kryptowährungen weiter sein können popularisiert.
Autor: Piccolo Übersetzer:Yulei
Rezensent(en): Hugo , Edward
Haftungsausschluss:
In einer herkömmlichen Blockchain müssen Transaktionen von jedem Knoten im Netzwerk bestätigt werden, während ein Konsens zwischen den Knoten erreicht werden muss, bevor die Transaktionen gepackt werden, um einen neuen Block zu generieren. Die Sicherheit ist vollständig gewährleistet, da jeder Knoten den vollständigen Ledger-Verlauf aufzeichnet, was es Hackern erschwert, die Daten heimlich zu manipulieren, ohne entdeckt zu werden.
Sicherheit und Skalierbarkeit sind unvereinbar
Hohe Sicherheit hat jedoch ihren Preis. Die Häufigkeit der Kommunikation und des Informationsaustauschs der Knoten belegt Netzwerkbandbreite und verlangsamt die Transaktionsverarbeitung. Um zu verhindern, dass der Ausfall eines einzelnen Knotens das gesamte Netzwerk zum Erliegen bringt, werden mehr Knoten benötigt, um die Dezentralisierung zu verbessern und Risiken zu verteilen. Diese unterschiedlichen Kompromisse werden auch als „unmögliches Dreieck“ bezeichnet, was bedeutet, dass Skalierbarkeit, Dezentralisierung und Sicherheit des Blockchain-Netzwerks nicht gleichzeitig erreicht werden können.
Quelle: Vitalik Buterins Blog „Why Sharding is great: Demystifying the technical properties“
Sharding ermöglicht eine effiziente Skalierung bei gleichzeitiger Erzielung von Sicherheit und Dezentralisierung
Sharding ist eine Lösung, die die Skalierbarkeit eines Blockchain-Netzwerks erhöht, ohne auf Sicherheit und Dezentralisierung zu verzichten. Sharding teilt eine einzelne Blockchain in mehrere kleinere Blockchains auf, von denen jede ihre eigenen Datensätze separat verwaltet, und der Datenaustausch wird nur bei Bedarf durchgeführt. Daher können Knoten in verschiedenen Sharding-Ketten nur die Transaktionen, die zu ihren eigenen Ketten gehören, synchron verifizieren, anstatt Daten aus der gesamten Blockchain.
Solange die Anzahl der Knoten in jeder Sharding-Kette groß genug ist, werden die Sicherheit und Dezentralisierung bestätigt. Die Anwendung von Sharding kann den Durchsatz von Blockchains erhöhen, um der steigenden Benutzernachfrage gerecht zu werden. ETH 2.0 wird auch seine Skalierbarkeit durch Sharding verbessern.
Sharding ist eine Optimierungstechnik zur Verbesserung der Datenbankzugriffsleistung, indem die ursprüngliche Datenbank basierend auf Bedarfsbedingungen in mehrere Shards aufgeteilt wird, wodurch Last und Benutzerverkehr verteilt werden können, um einen schnelleren Service bereitzustellen. In Anbetracht der Tatsache, dass eine Blockchain im Wesentlichen ein großes dezentrales Ledger ist, ist es möglich, die Skalierbarkeit durch Sharding zu verbessern.
Beispielsweise gibt es auf Einkaufsseiten eine große Anzahl von Produkten mit unterschiedlichen Preisen, Verbraucher haben unterschiedliche Bedürfnisse, während einige reduzierte und billige Produkte bevorzugen und andere teure und Premiumprodukte. Um mit einer großen Order wie dieser fertig zu werden, kann eine einfache Triage anhand von Preisspannen durchgeführt werden, um die Verarbeitung durch die Prüfer zu beschleunigen.
Quelle: DigitalOcean
Sharding sortiert Daten und verarbeitet sie nach unterschiedlichen Bedürfnissen
Ein Prüfer (Knoten) muss alle Bestellinformationen bestätigen, ohne die Bestelldaten aufzuteilen (Sharding), was viel Zeit in Anspruch nimmt, um sich wiederholende Aufgaben auszuführen. Die Aufteilung der Bestelldaten auf mehrere Shards hingegen erlaubt es verschiedenen Checkern, Bestellungen für niedrigpreisige und hochpreisige separat zu verarbeiten.
Da jede Art von Bestellung nur ein kleiner Teil der gesamten Bestellung ist und Prüfer, die für Artikel mit unterschiedlichen Preisen zuständig sind, gleichzeitig arbeiten können, ohne sich gegenseitig zu beeinflussen, ermöglicht Sharding parallele Operationen; Jeder Prüfer muss nur einen Teil der Bestellung prüfen, sodass Sharding die Arbeitsbelastung der Knoten reduziert und die Überprüfung beschleunigt.
Eine Sharding-Datenbank ist wie ein Puzzle, und jedes Teil des Puzzles repräsentiert einen Shard. Eine ungesplitterte Blockchain muss das gesamte Puzzle jedes Mal neu zeichnen, wenn ein neuer Block generiert wird (Zustandsreplikation) und dann einen kleinen Teil des Puzzles modifizieren (Zustandsaktualisierung). Eine fragmentierte Blockchain muss nur das spezifische Teil finden, das geändert werden muss (Shard) und es durch ein neues ersetzen, wenn ein neuer Transaktionsdatensatz hinzugefügt wird.
On-Chain-Anwendungen sind vielfältiger und die Nachfrage wächst exponentiell
Sobald die Benutzergröße erheblich zunimmt, muss das System unabhängig von der Art des Systems zwangsläufig skaliert werden, um dem zunehmenden Datenverkehr gerecht zu werden. Wenn beispielsweise ein Online-Spiel so beliebt ist, dass die Zahl der Spieler von 100.000 auf eine Million oder sogar zehn Millionen pro Tag steigt, muss ein neuer Server eingerichtet werden, um den Datenverkehr umzuleiten und Verzögerungen zu vermeiden. Eine ähnliche Situation kann im wirklichen Leben beobachtet werden. Während der Ferien leiden Touristen an Sehenswürdigkeiten immer unter schrecklichen Staus. Was normalerweise nur zwei Stunden dauert, um ein Ziel zu erreichen, dauert jetzt aufgrund des Verkehrsanstiegs viel länger. Alternative Routinen sind die gängige Lösung, um Staus effektiv zu entlasten.
Skalierung stößt auf Engpässe, sucht nach Alternativen
Blockchain ist während seiner Entwicklung auch auf den Engpass der Skalierbarkeit gestoßen. In einer P2P-Blockchain mit nur 10 Knoten kann der gesamte Datenaustausch nach 10 9 Mal Kommunikation zwischen den Knoten abgeschlossen sein; Wenn die Anzahl der Knoten 100 erreicht, bedeutet dies 100 99 Mal der Kommunikation zwischen den Knoten, wenn keine Algorithmusoptimierung erfolgt. Im Allgemeinen ist es bei einem P2P-Blockchain-Netzwerk mit N Knoten, bei dem jeder Knoten Daten mit anderen N-1 Knoten austauscht, denkbar, dass der Zeit- und Rechenaufwand für jede Transaktion nach der Skalierung von Blockchain-Netzwerken exponentiell ansteigt.
Als Mainstream wenden Bitcoin und Ethereum immer noch veraltete Mechanismen an
Bitcoin, derzeit die größte Kryptowährung nach Marktkapitalisierung, und voraktualisiertes Ethereum sind beide langsam, wobei Bitcoin etwa 7 Transaktionen pro Sekunde (TPS) und Ethereum mit 15 TPS etwas mehr verarbeitet. Dies reicht seit langem nicht aus, um die Anforderungen einer großen Anzahl von Benutzern zu erfüllen, und wird von zentralisierten Systemen wie dem führenden Kreditkartenunternehmen VISA, das bis zu 24.000 Transaktionen pro Sekunde verarbeitet, in den Schatten gestellt. Neben der Netzwerküberlastung erhöht die langsame Geschwindigkeit auch die Kosten, und Benutzer müssen höhere Gebühren zahlen, um ihre Transaktionen zu priorisieren, was die Benutzererfahrung noch schlechter macht.
Es ist nicht erforderlich, dass jeder Knoten den vollständigen Transaktionsverlauf in einer Sharding-Blockchain besitzt, da ein Knoten nur Informationen in Bezug auf den Shard speichern muss, zu dem er gehört, die Kosten für die Einrichtung von Knoten und die Schwelle für die Teilnahme werden durch Sharding gesenkt. Blockchain-Netzwerke können mit Hilfe von Sharding stärker dezentralisiert werden. Die Spezifikationen der für den Betrieb von Knoten erforderlichen Hardwareausrüstung werden ohne Sharding immer höher. Am Ende werden nur Teilnehmer mit günstigen wirtschaftlichen Bedingungen überleben. Sharding ermöglicht es gewöhnlichen Computern, Laptops und sogar Smartphones, zu Knoten zu werden, was zur Massenakzeptanz der Blockchains und dAPPs führen wird.
Der Konsensmechanismus von Ethereum wird in ETH 2.0 von Proof of Work (PoW) auf Proof of Stake (PoS) umgestellt und das ursprüngliche Ethereum Mainnet in die Beacon Chain eingebunden. Dadurch wird keine massive Rechenleistung mehr benötigt, damit Ethereum-Knoten neue Blöcke generieren können. Stattdessen setzen sie ihre ETH in Smart Contracts ein, um Validatoren zu werden und das Recht zu erhalten, Transaktionsgebühren zu erhalten, wenn sie neue Blöcke einreichen.
In ETH 2.0 werden 64 Shards erstellt, um die Skalierbarkeit zu verbessern, von denen einer als Beacon Chain bezeichnet wird. Es spielt eine zentrale Rolle bei Ethereum-Sharding-Upgrades und ist für die Koordinierung und den Informationsaustausch zwischen verschiedenen Shards verantwortlich. Alle ETH 2.0-Knoten werden auch ETHs in die Shard-Ketten einsetzen und Transaktionen auf verschiedenen Shards gemäß den Anweisungen verarbeiten, und Blöcke auf den Shard-Ketten sind nur mit Genehmigung der Beacon-Kette gültig.
Quelle: Hsiao-wei Wang
Sharding validiert ausstehende Transaktionen durch Triage
Wenn ETH 2.0 Sharding anwendet, weist der Zufallsstichprobenalgorithmus jedem Shard eine zufällige Anzahl von Knoten zu, um Transaktionen zu überprüfen und die Reihenfolge und Gültigkeit der Transaktionen in der Shard-Kette durch Abstimmung zu bestimmen, dann werden die Informationen der neu generierten Shard-Blöcke sein auf der Beacon Chain hinzugefügt. Ein neuer Block muss von mehr als zwei Dritteln der Knoten in der Shard-Kette genehmigt werden.
Wie in der Abbildung unten gezeigt, wird jedem Knoten eine Nummer (1~100) in einer Folge von Validator-Knotensätzen zugewiesen; der Zufalls-Sampling-Algorithmus bricht die Zuweisungsreihenfolge der Knoten auf, was zu einem neuen Knotensatz ohne feste Reihenfolge führt; Die neu generierten ersten 1 bis 10 Knoten können als erstes Komitee bestimmt werden, um Transaktionen auf der ersten Shard-Kette zu verarbeiten, während das 11. bis 20. das zweite Komitee ist, das die zweite Shard-Kette verarbeitet, und so weiter.
Quelle: Vitalik Buterins Blog „Why Sharding is great: Demystifying the Technical Properties“
Der Validierungsknoten ist nicht fest zugewiesen, um Transaktionen auf einer bestimmten Shard-Kette zu verarbeiten, da der Zufallsstichprobenalgorithmus die Reihenfolge der Knoten für einen bestimmten Zeitraum erneut unterbricht. Daher sind die für jede Shard-Kette verantwortlichen Ausschussmitglieder nicht festgelegt, was das Risiko einer Zentralisierung vermeidet, das dadurch verursacht wird, dass ein bestimmter Knoten eine Shard-Kette für lange Zeit verifiziert, und die Schwierigkeit eines Angriffs erhöht.
Da Sharding den Durchsatz von ETH 2.0 stark erhöhen wird, es für alle Knoten unmöglich wird, die vollständigen Transaktionsdaten auf verschiedenen Shard-Ketten synchron zu aktualisieren, wird der Collation Header, der dem Block-Header im PoW ähnelt, zum Medium für den Informationsaustausch . Wie der Name schon sagt, enthält ein Sortierungs-Header Metadaten zu den Informationen innerhalb der Sortierung, wie zum Beispiel:
Quelle: Hackernoon
Der Kollationsheader versorgt den Knoten mit ausreichenden Informationen und lädt nur bei Bedarf den vollständigen Transaktionsdatensatz gemäß dem Index herunter.
Eine Alternative, die den Nutzungsbedarf effektiv umleitet und die Skalierbarkeit erheblich verbessert
Stellen Sie sich vor, dass eine Million Autos gezwungen sind, auf derselben Straße zu fahren, um von Stadt A nach Stadt B zu gelangen. Die Fahrt wird zwangsläufig langsam sein, und das ist bei herkömmlichen Blockchains der Fall, da alle On-Chain-Knoten jede Transaktion überprüfen müssen. Sharding schneidet On-Chain-Daten in Stücke, sodass jeder Knoten nur einen Teil der Transaktion verarbeiten muss. Wenn eine Blockchain mehrere Autobahnen hinzufügt, um den Datenverkehr zu verteilen, können Benutzer Transaktionen zu Recht schneller abschließen.
Quelle: Genesis-Block
Reduzieren Sie Netzwerküberlastungen und senken Sie die Kosten
In Ethereum vor dem Upgrade packen Miner-Knoten Transaktionen basierend darauf, wie viel Benutzer zu zahlen bereit sind, wobei höhere Gebühren schneller und niedrigere Gebühren langsamer verarbeitet werden, was zu einer pathologischen Gebührenausschreibung führt, bei der Benutzer gelegentlich mehr als 50 US-Dollar für eine einzelne Transaktion zahlen . Sharding ermöglicht einen reibungsloseren Betrieb der Blockchain und reduziert die Notwendigkeit von Gebührengebote, und Benutzer können sich an eine andere wenden, wenn auf einem Shard eine Überlastung auftritt.
Einfacher zu betreibende Knoten, wodurch Dezentralisierung und Sicherheit verbessert werden
Da nicht auf die kompletten Daten der gesamten Blockchain zugegriffen werden muss, da jeder Node gleichzeitig nur Informationen auf einem Shard verarbeiten muss, wird die benötigte Hardware zum Aufbau eines Nodes geringer. Benutzer können billigere Geräte als Knoten verwenden, um an der Verifizierung teilzunehmen und Einnahmen zu erzielen. Die sinkende Schwelle kommt der Dezentralisierung und Popularisierung von Blockchain-Netzwerken zugute, und die Vision von ETH 2.0 ist es, Einzelpersonen zu ermöglichen, Ethereum-Apps von ihren Smartphones aus auszuführen. Ein Nebeneffekt der Dezentralisierung ist die Verbesserung der Netzwerksicherheit, je mehr Knoten und je verteilter sie sind, desto schwieriger ist es, die Blockchain anzugreifen.
Während Sharding eine Liste von Vorteilen hervorhebt, führt es auch eine Reihe neuer Probleme ein:
Die Möglichkeit des 1%-Angriffs
Die Blockchain ist zu 51 % anfällig für Angriffe, was bedeutet, dass ein Angreifer in der Lage ist, Transaktionsdaten willkürlich zu manipulieren oder sogar das gesamte Blockchain-Netzwerk zu kontrollieren, wenn er 51 % der Rechenleistung der Knoten kontrolliert. In größeren Blockchain-Netzwerken wie Bitcoin und Ethereum vor dem Upgrade sind die Kosten eines 51-%-Angriffs zu hoch, was eine Implementierung unmöglich macht.
Mit der Einführung von Sharding wird die Anzahl der Knoten, die jeden Shard verarbeiten, jedoch drastisch reduziert, und es wird für einen böswilligen Angreifer viel einfacher, Kompromisse einzugehen, solange er einen der Shards angreift und die Transaktionen erfolgreich fälscht, anstatt das gesamte Netzwerk anzugreifen. Genauer gesagt muss ein Hacker für ein Blockchain-Netzwerk mit 1.000 Knoten mit derselben Rechenleistung mehr als 500 Knoten kontrollieren, um das gesamte Netzwerk anzugreifen. Aber wenn diese 1.000 Knoten auf 100 Shards verteilt werden, muss ein Hacker nur mehr als 5 Knoten in einem der Shards kontrollieren, um die Daten zu manipulieren.
Quelle: Genesis-Block
Das Risiko der Smart Contract-Sicherheit steigt
Die Einführung von Sharding erfordert ein Umschreiben der Datenstruktur und der zugrunde liegenden Codelogik des Blockchain-Netzwerk-Ledgers, und die weitere Komplikation wird es schwieriger machen, das Netzwerk zu aktualisieren und zu warten, was zu Sicherheitslücken und Risiken von Smart Contracts führt, während auch unbeabsichtigte Fehler auftreten können während der Ausführung.
Absprachen zwischen Ausschussmitgliedern
Obwohl beim Sharding ein zufälliger Stichprobenalgorithmus verwendet wird, um zu vermeiden, dass identische Knoten einer festen Shard-Kette zugewiesen werden, besteht immer noch die Möglichkeit, dass doppelte Kombinationen identischer Knoten Transaktionen nach einem ausreichend langen Zeitraum gemeinsam validieren und Ausschussmitglieder die Shard-Kette überprüfen Es ist auch möglich, miteinander zu kooperieren und böswillige Transaktionen an die Kette zu übermitteln.
Ungleichgewicht laden
Voraussetzung für die Verbesserung der Netzwerkleistung durch Sharding ist, dass „Sharding“ erfolgreich „Umleitung“ bringt. Wenn eine Blockchain mit 100 Shard-Ketten optimiert wird, aber alle Benutzer immer noch eine bestimmte Shard-Kette verwenden, dann schlägt das Sharding fehl und die Skalierbarkeit wurde nicht wesentlich verbessert. Dies ist auch ein potenzielles Problem für ETH 2.0, da die Fähigkeit, intelligente Vertragsoperationen für jede Shard-Kette durchzuführen, nicht in der ursprünglichen Planung enthalten ist.
Kompliziertere Blockchain-Explorer
Die durch Sharding erzielte Verbesserung der Skalierbarkeit wird erreicht, indem dem gesamten Netzwerk mehr Algorithmen und Daten hinzugefügt werden. Blockchain-Explorer benötigen eine größere Verarbeitungsleistung, um Informationen über die Blockchain effektiv abzurufen.
Elrond ist eine dezentralisierte öffentliche Blockchain, die darauf abzielt, Skalierbarkeit, Geschwindigkeit und Sicherheit zu verbessern, indem drei Schlüsseltechnologien entwickelt werden, darunter Adaptive State Sharding mit Blockchain-Skalierungstechnologie, Secure Proof of Stake (SPoS), das die Auswahl von Validatoren bestimmt, um die Überprüfung zu beschleunigen, und Elrond Virtual Maschine, die mehrere Programmiersprachen unterstützt und mit Ethereum VM kompatibel ist.
Elronds einzigartiges Adaptive State Sharding kombiniert drei Formen des Shardings:
Derzeit kann Elrond 15.000 TPS erreichen, während die Gebühr so niedrig wie 0,001 $ bleibt, was ein angemessener Vorteil gegenüber Ethereum ist.
Near ist eine öffentliche Blockkette, die auf Full-State-Sharding, vereinfachten Entwicklungsanwendungen und einem Proof-of-Stake-Mechanismus basiert. Es setzt sich zum Ziel, die Skalierbarkeit für die dezentrale Anwendungsentwicklung zu erhöhen und die Tür der Blockchain-Technologie für alle zu öffnen. Sein Doomslug-Konsensmechanismus, der den Nightshade-Algorithmus übernimmt, ist in der Lage, TPS auf 100.000 zu skalieren. Die technische Architektur von Near unterscheidet sich von anderen öffentlichen Shard-Ketten wie der Beacon Chain, die aus einer Kette und mehreren Shard-Ketten besteht, in einzelne Blöcke aufgeteilt ist und zwischen diesen Blöcken Sharding durchgeführt wird. Ein Block enthält alle Transaktionen aller Shards, während der Shard-Status geteilt wird, und Prüfer werden zufällig zugewiesen, um den entsprechenden Status des Shards der Transaktion zu überprüfen, wodurch die Sicherheit verbessert wird.
Zilliqa ist ein ziemlich früher Vogel in Blockchains. Es wurde eingeführt, um die damalige schlechte Skalierbarkeit der Blockchain zu lösen, indem Netzwerk-Sharding und Transaktions-Sharding sowie PoW und byzantinischer fehlertoleranter Konsensalgorithmus (PBFT) mit vereinfachter Komplexität verwendet wurden, um den Konsens innerhalb von Shards zu beschleunigen. Es kann mit mehr als 600 Knoten immer noch schnell laufen, und die konstante Skalierung bringt Zilliqa auf höhere TPS von 2400 auf 3600 TPS.
Harmony ist eine öffentliche Kette, die auf State Sharding basiert, die durch eine Beacon Chain und mehrere Sharding-Ketten strukturiert ist und von dem byzantinischen fehlertoleranten Konsensalgorithmus (PBFT) begleitet wird, um einen tief optimierten Konsens zu erreichen und gleichzeitig mit BLS-Signaturen zu beschleunigen, um mehrere Signaturen zu aggregieren zu einem einzigen. In einer öffentlichen Sharding-Kette kann 1 % der Rechenleistung für Double-Spending-Angriffe verwendet werden. Beachten Sie dies, Harmony verwendet EPoS (Effective Proof-of-Stake) und Random Sharding, um große gestakete Token zu verteilen und ihnen zufällig zuzuweisen mehrere Shards, um das Risiko eines Angriffs zu verringern und die Sicherheit von Shards zu erhöhen. Es verwendet auch Kademlia Cross-Shard-Kommunikation, um die Netzwerkausgaben zu kontrollieren, und nutzt gleichzeitig Erasure Code, der die Datenwiederherstellung ermöglicht, um den Block-Broadcast-Prozess zu optimieren und eine effiziente horizontale Sharding-Skalierung durchzuführen.
Mit der Explosion der Nutzung von Kryptowährungen und der Verbreitung von dAPPs sind einige traditionelle Blockchains überfordert und nicht in der Lage, die steigende Marktnachfrage zu befriedigen. Wie man die Skalierbarkeit verbessern kann, ohne Dezentralisierung und Sicherheit aufzugeben, ist zu einem wichtigen Thema für die aktuelle Blockchain-Industrie geworden.
Sharding leitet On-Chain-Anforderungen effektiv um und verbessert die Zugriffseffizienz
Sharding ist eine Optimierungstechnologie, die die Effizienz des Datenbankzugriffs verbessert, indem On-Chain-Transaktionsdaten aufgeteilt und von verschiedenen Knoten synchron verarbeitet werden. Auf diese Weise werden Verkehrsumleitung und Geschwindigkeitssteigerung erreicht. Als mit Spannung erwartete Layer-1-Skalierungslösung sind die potenziellen Vorteile ziemlich groß, wenn Sharding nach Überwindung der technischen Schwierigkeiten auf hohem Niveau erfolgreich realisiert wird. Sharding wurde von einigen Blockchains übernommen und in der kommenden ETH 2.0 wird es auch in der Hoffnung übernommen, die Netzwerkleistung erheblich zu verbessern.
Sharding ist mit vielen ungelösten Herausforderungen extrem schwer zu erreichen, aber schließlich wird das unmögliche Dreieck überwunden
Sharding ist jedoch keine perfekte Lösung. Zusätzlich zu der erhöhten Komplexität kann es das Netzwerk weiteren Risiken aussetzen. Viele Entwickler forschen weiter darüber, wie verschiedene Shards für einen effizienten Betrieb koordiniert werden können, und erwarten, dass Sharding der Schlüssel zur Überwindung des „unmöglichen Dreiecks“ aus Sicherheit, Dezentralisierung und Skalierbarkeit ist, damit alle bestehenden Blockchain-Anwendungen und Kryptowährungen weiter sein können popularisiert.
Autor: Piccolo Übersetzer:Yulei
Rezensent(en): Hugo , Edward
Haftungsausschluss: