Diese Woche überarbeiten wir das Techbaum einige neue Hauptmeilensteine zu Ethereum 1.x F & E widerspiegeln, die nicht ganz eine vollständige Verwirklichung des Staatlosen Ethereum sind, aber in der Zwischenzeit viel besser erreichbar sind. Die wichtigste Ergänzung des Tech -Baumes ist der Vorschlag von Alexeys Regenesis. Dies ist alles andere als ein gut spezifiziertes Upgrade, aber die allgemeine Stimmung von F & E ist, dass Regenese einen weniger dramatischen und doch viel mehr erreichbaren Schritt zum ultimativen Ziel der “vollständig staatenlosen” Vision bietet. In vielerlei Hinsicht ergänzt die Regenese ein statisches Zustandsnetzwerk, das dazu beitragen würde, staatliche Schnappschüsse und historische Kettendaten in einem DHT-basierten Netzwerk im BitTorrent-Stil zu verteilen. Gleichzeitig werden eher kurzfristige Verbesserungen wie Code Merkleization und eine binäre Trie-Darstellung des Staates immer näher an EIP-fähig. Im Folgenden werde ich die vorgenommenen Änderungen erläutern und klären und mit den relevanten Diskussionen verknüpft werden, wenn Sie eine bestimmte Funktion tiefer eintauchen möchten.
Binärer Trie
Während Ethereum derzeit einen Sechskant verwendet Merkle-Patricia ist bespritzt Um den Zustand zu codieren, sind erhebliche Effizienzgewinne zu erzielen, indem auf ein binäres Format umgestellt wird, insbesondere in der erwarteten Größe von Zeugen. Eine vollständige Neukodierung des Staates von Ethereum erfordert, dass das neue Format angegeben wird, und eine klare Strategie für den Übergang. Schließlich muss entschieden werden, ob intelligentes Vertragscode auch Merkleated und wenn dies in den binären Trie -Übergang oder als eigenständige Änderung einbezogen werden sollte.
Binäres Trie -Format
Die allgemeine Idee eines binären Tries ist etwas einfacher (Wortspiel beabsichtigt :)) als Ethereums aktuelle Hexary Trie -Struktur. Anstatt einen von 16 möglichen Wegen zu haben, um von der Wurzel des Trie in Richtung Kinderknoten zu gehen, hat ein binärer Trie 2. mit einer vollständigen Wiedererschreibung des staatlichen Tries, um gut etablierte Ineffizienzen zu verbessern, die sich jetzt bekannt gemacht haben, da Ethereum seit mehr als 5 Jahren in Betrieb ist. Insbesondere könnte es eine Gelegenheit sein, den Staat für die realen Leistungsherausforderungen der Datenbankcodierung viel mehr zugänglicher zu machen (umrissen in Ein früherer Artikel über staatliches Wachstum).
Die Diskussion über eine formale Regeln für binäre Trie -Spezifikation und Merkleisierungsregeln finden Sie auf Ethressearch.
Binärer Trie -Übergang
Es ist nicht nur das Ziel (binäres Trie -Format), das wichtig ist, sondern die Reise selbst! In einem idealen Übergang würde es keine Unterbrechung der Transaktionsverarbeitung im gesamten Nework geben, was bedeutet, dass Kunden den neuen binären Trie aufbauen müssen gleichzeitig als Umgang mit neuen Blöcken in alle 15 Sekunden. Die Übergangsstrategie, die weiterhin am vielversprechendsten aussieht Overlay -Methodeder teilweise auf Geths neues Snapshotting -Synchronisationsprotokoll basiert. In kurzer Zusammenfassung werden dem vorhandenen (Sechser-) Trie in einem binären Format neue staatliche Änderungen hinzugefügt, wodurch während des Übergangs eine Art binär/hexary Hybrid hergestellt wird. Der unberührte Zustand wird als Hintergrundprozess umgewandelt. Sobald die Umwandlung abgeschlossen ist, werden die beiden Schichten in einen einzelnen binären Trie abgeflacht.
Es ist wichtig zu beachten, dass der binäre Übergang ein Kontext ist, in dem die Kundenvielfalt sehr wichtig ist. Jeder Kunde muss entweder seine eigene Version des Übergangs implementieren oder sich auf andere Kunden verlassen, um den neuen Trie auf der anderen Seite der Konvertierung zu konvertieren und auf den neuen Trie zu warten. Dies wird definitiv eine “Maßnahme zweimal, eine einmalige” Situation “sein, wobei alle Kundenteams zusammenarbeiten, um den Test zu implementieren und die Umschaltung zu koordinieren. Es ist möglich, dass das Netzwerk im Interesse von Sicherheit und Sicherheit im Verlauf des Übergangs kurz aussetzen muss (z. B. ein paar leere Blöcke). Die Zustimmung eines bestimmten Plans ist jedoch zu weit, um sie zu diesem Zeitpunkt vorherzusagen.
Code Merkleization
Smart Contract Code macht einen erheblichen Teil des Ethereum State Tries (ca. 1 GB des Staates ~ 50 GB) aus. Ein Zeuge für eine intelligente Vertragsinteraktion muss notwendigerweise dem Code bereitstellen, mit dem er interagiert, um a zu berechnen Codehashund das könnte ziemlich viele zusätzliche Daten sein. Code Merkleization ist ein Mittel, um den Vertragscode in kleinere Stücke aufzuteilen und zu ersetzen Codehash mit der Wurzel eines anderen Merkle -Trie. Dies würde es einem Zeugen ermöglichen, potenziell große Teile des intelligenten Vertragscode durch Referenz -Hashes zu ersetzen und entscheidende Kilobyten von Zeugendaten abzuwehren.
Es gibt einige Ansätze für die Code -Merkleizationschemata, die von universell (z. FunktionID oder Sprünge Anweisungen. Die optimale Strategie für den Code Merkleization wird letztendlich auf das, was mit realen Daten aus dem Mainnet am besten zu funktionieren scheint, beruhen.
Regenese
Der beste Ort, um den Regenesis -Vorschlag in den Griff zu bekommen, ist Diese Erklärung von @mandrigin oder Der vollständige Vorschlag von @realledgerWatchaber das tl; dr ist, dass die Regenese im Wesentlichen “Frühlingsreinigung für die Blockchain” ist. Der vollständige Zustand würde konzeptionell in einen “aktiven” und “inaktiven” Zustand unterteilt. In regelmäßigen Abständen würde der gesamte “aktive” Zustand deaktiviert und neue Transaktionen würden beginnen, einen aktiven Zustand erneut aufzubauen fast Nichts (daher der Name “Regenese”). Wenn eine Transaktion einen alten Teil des Staates benötigte, würde sie einem Zeugen sehr ähnlich sein, was für das Staatlose Ethereum erforderlich wäre: einen Merkle -Beweis, der beweist, dass die staatliche Änderung mit einem Stück inaktivem Zustand übereinstimmt. Wenn eine Transaktion einen “inaktiven” Teil des Staates berührt, erhöht sie sie automatisch auf “aktiv” (ob die Transaktion erfolgreich ist), wo sie bis zum nächsten Regeneseereignis bleibt. Dies hat die nette Eigenschaft, einige der wirtschaftlichen Grenzen für die staatliche Nutzung zu schaffen, die die staatliche Miete hatte, ohne tatsächlich einen Staat zu löschen, und den Transaktionssender zu ermöglichen, keinen Zeugen zu generieren, um nur blind eine Transaktion auszuprobieren, bis alles, was sie berührt, wieder „aktiv“ ist.
Der unterhaltsame Teil der Regenese ist, dass es Ethereum dem ultimativen Ziel der Staatenlosen viel näher bringt, aber einige der größten Herausforderungen mit der Staatenlosigkeit, dh der Funktionsweise von Zeugengasbuchhaltung während der EVM -Ausführung. Außerdem wird eine Version von Transaktionszeugen im Netzwerk bewegt, sodass schlankere, leichtere Kunden und mehr Möglichkeiten für DApp -Entwickler ermöglicht werden können, sich an das staatenlose Paradigma und die Produktion von Zeugen zu gewöhnen. Staatenlosigkeit nach der Regenese wäre dann eine Frage des Studiums: Staatenlose Ethereum ist nach jedem Block wirklich nur die Regenese.
Zustandsnetzwerk
Ein besseres Netzwerkprotokoll war von Anfang an ein “Nebenquest” für den Technologiebaum, aber mit der Hinzufügung der Regenese zum Geltungsbereich des Staurosen Ethereum, die die Suche nach alternativen Netzwerkprimitiven für die Teile von Ethereum-Kettendaten (einschließlich des Staates) scheint nun viel besser in die Hauptquest zu passen. Das aktuelle Netzwerkprotokoll von Ethereum ist ein Monolith, obwohl es in der Tat verschiedene Arten von Daten gibt, die mithilfe verschiedener “Sub-Networks” für verschiedene Dinge optimiert werden könnten.

Zuvor wurde dies als die gesprochen “Drei Netzwerke” über frühere staatenlose Anrufemit a DHT-basiert Netzwerk in der Lage, einige der Daten effektiver zu bedienen, die ändert sich von Moment zu Moment nicht. Mit der Einführung der Regenese würde der „inaktive“ Zustand in diese Kategorie unveränderlicher Daten passen und könnte theoretisch von einem Schwarmnetzwerk im BitTorrent-Stil anstelle von Stück für Stück eines vollständig synchronisierten Clients wie derzeit geschaltet werden.
Ein Netzwerk, das seit dem letzten Regenesis-Ereignis um den sich verändernden Zustand geht, wäre a Statisches Zustandsnetzwerkund könnte gebaut werden, indem die Neuen erweitert werden Discovery v5.1 Spezifikation in der Devp2P -Bibliothek (Ethereums Netzwerkprotokoll). Frühere Vorschläge wie z. Karussellsynchronisation und die (reifer) Snap -Protokoll zum Synchronisieren aktiv Staat wäre immer noch wertvolle Schritte in Richtung eines vollständig verteilten Dynamisches Zustandsnetzwerk Für Kunden, die versuchen, den vollen Zustand schnell zu synchronisieren.
Einpacken
Eine kondensiertere und technische Version jedes Blattes im Staatlosen Tech -Baum (nicht nur die aktualisierten) ist verfügbar Die staatenlosen Ethereum -Spezifikationen repound aktive Diskussionen über alle hier behandelten Themen finden Sie in der ETH1X/2 F & E -Zwietracht – bitte bitten Sie eine Einladung zu ethresear.ch, wenn Sie beitreten möchten. Tweet @gichiba oder @jhancock für Feedback, Fragen und Vorschläge für neue Themen.

