Wann wird es veröffentlicht?
~2021
Shard Chains sollten irgendwann in 2021 implementiert werden – in Abhängigkeit davon, wie schnell die Arbeit voranschreitet, nachdem die Beacon Chain eingeführt wurde. Diese Shards werden Ethereum mehr Kapazität für das Speichern und den Zugriff auf Daten geben, aber sie werden nicht für die Ausführung von Codes verwendet. Die Details hierfür werden noch ausgearbeitet.
Was ist Sharding?
Sharding umfasst den Prozess, eine Datenbank horizontal aufzusplitten, um die Verarbeitungslast zu verteilen – ein gängiges Konzept in der Informatik. Im Kontext von Ethereum soll Sharding die Überlastung des Netzwerkes reduzieren und die Transaktionen pro Sekunde erhöhen, indem es neue Chains schafft, welche als "Shards" bezeichnet werden.
Dies ist aus anderen Gründen als Skalierbarkeit wichtig.
Funktionen von Sharding
Jeder kann eine Node betreiben
Sharding ermöglicht es, Skalierbarkeit auf dezentrale Art und Weise zu gewährleisten, statt Skalierbarkeit schlicht durch Vergrößerung der bestehenden Datenbank zu erlangen. Letzteres würde Ethereum weniger zugänglich für Netzwerk-Validatoren machen, da diese leistungsstarke und teure Computer erfordern. Mit Shard Chains müssen Validatoren nur Daten für jenen Shard speichern/ausführen, welchen sie überprüfen, und nicht für das gesamte Netzwerk (wie es aktuell der Fall ist). Dies beschleunigt den Prozess drastisch und reduziert die Hardwareanforderungen.
Mehr Netzwerkbeteiligung
Durch Sharding kannst du früher oder später Ethereum auf deinem eigenen Laptop oder Smartphone benutzen. Somit sollte es mehr Menschen möglich sein, am Netzwerk zu partizipieren oder Clients in Ethereum mit Sharding zu betreiben. Dies wird die Netzwerksicherheit erhöhen. Denn je dezentralisierter das Netzwerk ist, desto geringer ist dessen Angriffsfläche.
Dank Sharding werden geringere Hardwareanforderungen es vereinfachen, Clients selbst zu betreiben, ohne dabei auf zwischengeschaltete Dienste zurückgreifen zu müssen. Wenn möglich, kannst du damit sogar mehrere Clients betreiben. Damit stärkst du das Netzwerk, indem potentielle Fehlerquellen zusätzlich reduziert werden. Einen Eth2-Client betreiben.
Shard Chains Version 1: Datenverfügbarkeit
Wenn die ersten Shard Chains implementiert sein werden, werden diese zunächst einmal lediglich zusätzliche Daten an das Netzwerk liefern. Sie werden keine Transaktionen oder Smart Contracts verarbeiten. Aber dennoch werden sie unglaubliche Verbesserungen für die Transaktionen pro Sekunde bringen, wenn sie mit Rollups kombiniert werden.
Rollups sind eine "Layer 2"-Technologie, die heute bereits existiert. Sie erlauben dApps, Transaktionen zu bündeln oder sie mittels "Roll up" in eine einzelne Transaktions-Off-Chain zu vereinen, einen kryptographischen Beweis zu erstellen und diesen dann zur Chain zu senden. Dies reduziert die Datenmenge, die für eine Transaktion benötigt wird. Kombiniert mit der zusäzlichen Datenverfügbarkeit durch die Shards erhält man 100.000 Transaktionen pro Sekunde.
Shard Chains Version 2: Codeausführung
Der Plan war es immer, den Shards eine extra Funktionalität hinzuzufügen, um sie ähnlich dem heutigen Ethereum-Mainnet zu gestalten. Dies ermöglicht ihnen, Smart Contracts zu speichern und auszuführen und Konten zu verwalten. Aber ist das in Anbetracht des Anstiegs der Transaktionen pro Sekunde, den Shards der Version 1 bieten, überhaupt noch nötig? Dies wird in der Community nach wie vor diskutiert und es scheint, als gäbe es verschiedene Optionen.
Benötigen Shards Codeausführung?
Vitalik Buterin hat im Gespräch mit dem Bankless-Podcast 3 mögliche Optionen vorgestellt, die diskutiert werden sollten.
1. Statusausführung nicht notwendig
Dies würde bedeuten, dass wir Shards nicht die Fähigkeit geben, Smart Contracts zu verwalten, und diese als Datenlager belassen.
2. Shards zur Ausführung
Vielleicht gibt es einen Kompromiss, in dem wir nicht alle Shards benötigen (64 sind aktuell geplant), um intelligenter zu sein. Wir könnten diese Funktionalität einfach zu einigen wenigen hinzufügen und den Rest belassen. Dies könnte die Bereitstellung beschleunigen.
3. Warten auf Zero Knowledge (ZK) Snarks
Abschließend sollten wir die Debatte vielleicht noch einmal aufgreifen, wenn die ZK Snarks gefestigt sind. Diese Technologie könnte helfen, wirklich private Transaktionen ins Netzwerk einzubringen. Wahrscheinlich werden diese weiter entwickelte und intelligentere Shards benötigen, jedoch befinden sie sich noch immer in der Entwicklung.
Andere Quellen
Hier sind weitere Gedanken zu den selben Ansätzen:
- Phase One and Done: Eth2 als Datenverfügbarkeitsmaschine – cdetrio, ethresear.ch
Dies ist immer noch ein aktiver Diskussionspunkt. Wir werden diese Seite updaten, sobald wir mehr wissen.
Beziehung zwischen Updgrades
Die Eth2-Upgrades stehen alle miteinander in Verbindung. Im Folgenden wollen wir einen kurzen Blick darauf werfen, wie Shard Chains zu anderen Upgrades in Beziehung stehen.
Shards und die Beacon Chain
Die Beacon Chain enthält die komplette Logik, um Shards sicher und synchron zu halten. Die Beacon Chain wird die Staker im Netzwerk koordinieren und sie den Shards zuweisen, an denen sie arbeiten müssen. Sie wird außerdem die Kommunikation zwischen den einzelnen Shards sicherstellen, indem sie Transaktionsdaten einzelner Shards empfängt und abspeichert, auf die andere Shards wiederum zugreifen können. Jeder Shard hat dadurch Zugriff auf den Status von Ethereum und kann diesen laufend aktualisieren.
Die Beacon ChainShards und das Andocken
Auch nach der Einführung von Shards wird das heutige Ethereum-Mainnet weiterhin existieren. An einem gewissen Punkt wird das Mainnet allerdings ein Shard werden müssen, damit der Übergang von Proof-of-Work zu Proof-of-Stake – und damit zum Staking – möglich wird. Es muss sich noch herausstellen, ob das Mainnet der einzige sogenannte "smarte" Shard sein wird, der Code ausführen kann. So oder so wird eine Entscheidung darüber in Phase 2 des Sharding fallen.
Das Andocken