
Autor: Vitalik, Gründer von Ethereum;
Einer der unbekannten EIPs in der jüngsten Dencun-Hard-Split-Gabel ist der EIP-6780, der den größten Teil der Funktion des Operating-Code-Selfstrukturs löscht.
>
Dieser EIP ist ein zentrales Beispiel für die Entwicklung der Ethereum -Vereinbarung.Durch Beseitigung der Komplexität und HinzufügenNeuSicherheitsgarantie zur Vereinfachung der Bemühungen der Vereinbarung.Dies ist ein wichtiger Bestandteil der „Säuberung“, die ich nenne: optimiertes Ethereum und freigegebene technische Schuldenprojekte.Es wird mehr EIP mit einem ähnlichen Geist geben, alsoEs lohnt sich zu verstehen, wie die EIP-6780-Ziele und welche anderen EIPs in Zukunft in Säuberung geräumt werden können.
Wie vereinfacht EIP-6780 die Ethereum-Vereinbarung?
Der EIP-6780 reduziert die Funktion des Operation Code selbst.Dies selbst hat nicht verringertSpezifikationDie Komplexität.Es verbessert sich jedoch durch die Einführung von zwei neuen unveränderlichen VariablenerreichenDer
1. Nach EIP-6780 ist die Anzahl der Speicherplätze, die in einem einzigen Block bearbeitet werden können, maximal (ungefähr: Gasgrenze / 5000).
2. Wenn der Vertrag am Anfang der Transaktion oder des Blocks nicht mit leerem Code hat, hat er am Ende der Transaktion oder am Ende des Blocks denselben Code.
Zuvor waren diese invarianten Variablen nicht wahr:
1,,Selbstdestrukturierung
Ein Vertrag mit einer großen Menge an Speicherschlitz kann die unbegrenzte Menge des Speicherschlitzes in einem einzigen Block löschen.Dies wird die Verwirklichung des Leerzeichenbaums erschweren und die Implementierung des Ethereum -Clients komplizierter, da sie zusätzlichen Code benötigen, um diese besondere Situation effektiv zu bewältigen.
2. Der Vertragskodex kann durch Selbstentrudigkeit von nicht minderwertig in Leere geändert werden.Dies erschwert es Transaktionen in Konto abstrakter Brieftaschen, Codebibliotheken zu verwenden, ohne von DOS leicht angegriffen zu werden.
Nun, das sind keine VariablenAlleTrue erleichtert es, einen Ethereum -Kunden und andere Arten von Infrastrukturen aufzubauen.Ein paar Jahre später hoffe ich, dass der zukünftige EIP in der Lage sein wird, diese Arbeit zu erledigen undSelbstdestrukturierung
Vollständig beseitigt.
Welche anderen „Säuberungen“ sind noch nicht abgeschlossen?
-
Geth hat kürzlich Tausende von Codezeilen gelöscht und die Unterstützung für das POW-Netzwerk vor dem Merge gelöscht.
-
Dieser EIP spiegelt offiziell eine solche Tatsache wider: Wir benötigen keinen Code mehr, um sich über „leere Konten“ zu sorgen (siehe: EIP-161, er wird dieses Konzept als Teil der Reparatur von Shanghai DOS-Angriff einführt)
-
Das Speicherfenster in Dencun beträgt 18 Tage, was bedeutet, dass Ethereum -Knoten nur etwa 50 GB benötigen, um BLOB -Daten zu speichern, und diese Zahl wird im Laufe der Zeit im Laufe der Zeit nicht zunehmen.
Die ersten beiden verbesserten die Erfahrung von Kundenentwicklern erheblich.Letzteres hat die Lebensdauer von Knotenoperatoren erheblich verbessert.
Welche anderen Dinge, die möglicherweise gespült werden müssen?
Voreinstellung (Präkompilien)
Vorverkäufe ist der Ethereum -Vertrag.Diese Idee ist, dass die Vorverbesserung verwendet werden kann, um komplexe Formate zu realisieren, die in EVM nicht effektiv implementiert werden können.
Heute ist die Vorkompilierung sehr erfolgreich, insbesondere die App-basierte Anwendung basierend auf der Vorkompilierung der ovalen Kurve.Es gibt jedoch noch andere Vorbereitungen, die selten verwendet:
-
RIPEMD-160
: Die Einführung der Hash -Funktion besteht darin, eine bessere Kompatibilität mit Bitcoin zu unterstützen -
Identität
: Zurück zur Vorverbesserung der gleichen Ausgabe wie die Eingabe -
Blake2
: Die Einführung der Hash -Funktion besteht darin, eine bessere Kompatibilität mit ZCASH zu unterstützen -
Modexp
Führen Sie eine sehr große Schimmelpilzleistung ein, um die RSA -basierte Verschlüsselung zu unterstützen
Fakten haben gezeigt, dass die Bedürfnisse dieser VorverbesserungWeit wegUnten als erwartet.Identität
Es wird weit verbreitet, da es der einfachste Weg ist, Daten zu kopieren, aber seit Dencun hat der Betriebscode McOPy sie ersetzt.Leider ist diese Vorkompilierung eine große Quelle für Konsensfehler, und es ist auch eine große Schmerzquelle, die durch das neue EVM erreicht wird, einschließlich der ZK-Snark-Schaltung und der formellen Überprüfung der freundlichen Verwirklichung.
Es gibt zwei Möglichkeiten, diese Vorverbesserung zu löschen:
-
Löschen Sie beispielsweise die Vorverbesserung.EIP-7266 Löscht Blake2.Dies ist einfach, aber es wird jede Anwendung zerstören, die sie immer noch verwendet.
-
Ersetzen Sie die Pre -Compilation in den EVM -Codeblock, der denselben Betrieb ausführt (obwohl er beispielsweise zwangsläufig höhere Gaskosten erzeugt).Dieser EIP -Entwurf erfolgt für die Identität der Identität vor.Dies ist schwieriger, aber es wird die Anwendung fast definitiv nicht zerstören (es sei denn, es gibt nur sehr wenige Fälle, die Kosten für das Gas des neuen EVM -Codes überschreiten, dass der Eingangsblock begrenzt ist).
-
Spezifikationen sind einfacher und klar
-
In den meisten Fällen wurde in den meisten Fällen die Länge des Merkle -Beweises in den meisten Fällen um das 4 -fache verkürzt
-
Im Vergleich zum schlimmsten und schlimmsten Fall wird die Länge des Merkle -Beweises begrenzt (z. B. den Vertragscode oder die Ausgabe der langen Quittung)
-
Es ist nicht erforderlich, einen komplexen Bit -Operation -Code zu erreichen (RLP -Bedarf)
-
Für ZK-SNARK-Anwendungsfälle kann die vorhandene Implementierung der vorhandenen Umsetzung des binären Merkle-Baums wiederverwendet werden
Historischer Block (EIP-4444)
Heute wird erwartet, dass jeder Ethereum -Knoten alle historischen Blöcke dauerhaft speichert.Lange Zeit haben die Menschen immer geglaubt, dass dies eine sehr verschwenderische Methode ist, und aufgrund hoher Speicheranforderungen ist es unnötig geworden, den Ethereum -Knoten zu betreiben.In Dencun haben wir Blob vorgestellt, das nur etwa 18 Tage aufbewahren muss.Nach der Verwendung von EIP-4444 wird der Ethereum-Block nach einer bestimmten Zeit auch aus dem Standard-Ethereum-Knoten gelöscht.
Ein wichtiges Problem, das gelöst werden mussKommenWas ist damit?Tatsächlich werden große Entitäten wie Blockbrowser dies tun.Es ist jedoch auch möglich, das P2P -Protokoll zu speichern und zu übergeben, um die Informationen zu speichern und zu übergeben, und es ist nicht schwierig, was für Aufgaben optimierter ist.
Die Ethereum -Blockchain ist dauerhaft, aber es ist erforderlich, dass jeder Knoten, um alle Daten für immer zu speichern, ein sehr „Overkill“ -Schüre ist, um diese permanente zu erreichen.
Eine Möglichkeit besteht darin, das einfache Punkt -Punkt -Torrent -Netzwerk für die alte Geschichte abzuzielen.Das andere ist eine klarere Vereinbarung für die Verwendung von Ethereum, wie zum Beispiel des Portalnetzes.
Oder das Faktorformat:
>
Durch die Reduzierung der Speicherung des Ethereum -Knotens kann die Anzahl der Menschen, die bereit sind, Knoten zu sein, erheblich erhöhen.EIP-4444 kann auch die Knotensynchronisationszeit verkürzen, was auch den Workflow vieler Knotenoperatoren vereinfacht.Daher kann EIP-4444 die Dezentralisierung von Ethereumknoten erheblich verbessern.Wenn jeder Knoten standardmäßig zu einem kleinen Teil historischer Aufzeichnungen liegt, können wir sogar eine Kopie jeder spezifischen historischen Aufzeichnungen im Internet wie heute speichern.
Protokollreform
Zitieren Sie diesen EIP -Entwurf:
Die ursprüngliche Einführung des Protokolls bestand darin, die Anwendung zu ermöglichen, Informationen über Ereignisse in der Kette aufzuzeichnen, damit dezentrale Anwendungen (DAPP) diese Informationen problemlos abfragen können.Mit einem Blütenfilter kann DAPP in der Lage sein, schnell historische Datensätze zu durchsuchen, mehrere Blöcke zu identifizieren, die Protokolle enthalten, die sich auf die Anwendung beziehen, und dann schnell identifizieren, welche einzelnen Transaktionen über die erforderlichen Protokolle verfügen.
Tatsächlich ist dieser Mechanismus zu langsam.Fast alle Dapps, die historische Aufzeichnungen besuchen, werden am Ende nicht durch RPC -Anrufe von Ethereum -Knoten (und sogar Remote -Hosting -Knoten), sondern durch zentrale zusätzliche Protokolle.
Was können wir tun?Wir können den Bloom -Filter löschen und vereinfachenProtokoll
Operationscode auf diese WeiseEsWas Sie tun, ist, einen Wert zu schaffen, der den Hash in den Staat einbringt.Anschließend können wir ein separates Protokoll unter Verwendung von ZK-Snark und inkrementell erhöhter Berechnung (IVC) erstellen, um den richtigen „Protokollbaum“ zu generierenThema
Und wenn Sie Protokolle und Anwendungen benötigen, die Sie dezentralisiert haben möchten, können Sie diese separaten Protokolle verwenden.
Wenden Sie sich an SSZ
Heute verwenden die meisten Blockstrukturen (einschließlich Transaktionen und Quittungen) von Ethereum weiterhin ein veraltetes Format, das auf RLP- und Merkle Patricia -Bäumen basiert.Dies macht es unnötige Schwierigkeiten, Anwendungen mit diesen Daten zu entwickeln.
Die Ethereum -Konsensschicht hat sich auf sauberere und effizientere Simples (SSZ) verlagert:
>
Quelle: https://eth2book.info/altair/part2/building_blocks/merklleization/
Wir müssen jedoch immer noch die Konvertierung abschließen und die Ausführungsschicht auf dieselbe Struktur verschieben.
Die Hauptvorteile von SSZ sind:
Heute gibt es in Ethereum drei Arten von verschlüsselten Datenstrukturen: SHA256 Binärbaum, SHA3 RLP -Hash -Liste und Hexadezimal -Patricia -Baum.Sobald wir den Übergang zu SSZ abgeschlossen haben, haben wir nur zwei: SHA256 Binärbaum und Perkle Tree.Langfristig, sobald wir es im Snarking -Hash genug gut abschneiden Alle Ethereum).