
Autor: Ethereum -Forscher Justin Drake, Ethressearch;
Der Kredit für diesen Artikel ist auf die breitere F & E -Community von Ethereum zurückzuführen.Die wichtigsten Beiträge stammen aus dem Jahr 2017, wobei im Laufe der Jahre erhebliche inkrementelle Entwurfsentwicklungsverschiebungen im Laufe der Jahre entstanden sind.Die jüngsten Durchbrüche in ZKVM Engineering haben eine gründliche Erkundung des Entwurfsraums ausgelöst.Dieser Artikel versucht nur sein Bestes, um ein kohärentes Design für eine große Idee zusammenzustellen, die endlich kommen kann.
Zusammenfassung
Wir schlagen eine elegante und leistungsstarke Vorkompilierung vor, die der Anwendungsschicht der nativen L1 -EVM -Ausführungsmaschine aufdeckt.Zusammenfassung der nativen Ausführung („native Zusammenfassung“) ist eine Zusammenfassung der EVM -Statusübergänge, um aus EXECUTE zur Überprüfung der Batch -Benutzertransaktionen zu verifizieren.Die native Zusammenfassung kann als „programmierbare Ausführungsscharden“ angesehen und in abgeleiteten Funktionen vorkompiliert werden, um die Systemlogik außerhalb des EVM wie Sortieren, Überbrückung, erzwungene Einbeziehung und Governance zu verarbeiten.
Da Execute-Vorkompilation direkt vom Validator durchgeführt wird, genießt sie die EL-Client-Diversität (ZK) und bietet EVM-Äquivalente, die konstruktiv fehlerfrei sind und über L1 Hard Fork vorherige Kompatibilität auf EVM aktualisiert werden.Für die EVM -gleichwertige Zusammenfassung, die die Sicherheit von Ethereum vollständig erben, sind EVM -Selbstbekämpfungsformen wie Vorkompilierung erforderlich.Wir nennen die Zusammenfassung der vollständigen Erben von Ethereum Security eine „vertrauenslose Zusammenfassung“.
Vorkompilierung durchführen vereinfacht die Entwicklung einer EVM -Äquivalentzusammenfassung erheblich, da die EVM -Simulation und -wartung ohne komplexe Infrastruktur wie Betrugspräventionsspiele, Snark Circuits und Sicherheitsgremien durchgeführt werden.Mit Execute können einige Zeilen von Soliditätscode verwendet werden, um minimale native und rollbasierte Zusammenfassungen mit einfachen abgeleiteten Funktionen bereitzustellen, wodurch die Notwendigkeit einer besonderen Behandlung der Sortierung, der erzwungenen Einbeziehung oder der Governance erforderlich ist.
Am wichtigsten ist,Native Aggregation kann eine Echtzeit-Siedlung genießen, ohne sich über Echtzeit-Proofs zu sorgen und die synchrone Kompositionsfähigkeit stark zu vereinfachen.
Dieser Artikel ist in zwei Teile unterteilt, wobei zunächst die vorgeschlagene Vorkompilation eingeführt und schließlich die Zusammenfassung der einheimischen Erörterung erörtert wird.
Teil 1 – Vorkompiliert ausführen
Struktur
Vorkompilierung ausführen, akzeptiert Eingänge pre_state_root, post_state_root, verfolgt und gas_used.Es kehrt nur dann wahr, wenn die folgenden Bedingungen erfüllt sind:
-
Trace ist eine gut geformte Ausführungsverfolgung (z. B. L2-Transaktionsliste und entsprechender Statuszugriffsnachweis)
-
Die staatenlose Ausführung von Trace beginnt mit pre_state_root und endet mit post_state_root
-
Die staatenlose Ausführung von Trace verbraucht nur Gasgas
Es gibt einen Mechanismus im EIP-1559-Stil zur Messung und Preisgestaltung des akkumulierten Gass, das alle Ausführungsaufrufe im L1-Block verbraucht.Insbesondere gibt es eine akkumulierte Gasgrenze execute_cumulative_gas_limit und ein akkumuliertes Gasziel execute_cumulative_gas_target.(Wenn L1 EVM durch den Verifizierer staitlos ausgeführt werden kann, können die kumulativen Grenzwerte und Ziele mit dem L1 EIP-1559-Mechanismus zusammengeführt werden.)
Voraberziehung erfordert eine feste Anzahl von L1-Gas, execute_gas_cost plus gas_used * gas_price, wobei Gas_price (Preis in ETH/Gas) vom EIP-1559-Mechanismus im Stil festgelegt wird.Die vollständige Vorauszahlung wird zurückgezogen, auch wenn die Vorkompilierung falsch zurückgibt.
Die Verfolgung muss auf verfügbare Ethereum -Daten aus den Anrufdaten, Blob, Status oder Speicher hinweisen.
Erneut ausführen
Wenn execute_cumulative_gas_limit klein genug ist, kann der Validator die Spur einfach erneut ausführen, um die Richtigkeit des Ausführungsanrufs durchzusetzen.Der anfängliche Einsatz basierend auf der Wiederausdauer der Vorkompilierung kann als Sprungbrett dienen, ähnlich wie die einfache Wiederbelastung des ursprünglichen Danksharding auf den vollen Danksharding.Beachten Sie, dass eine einfache Wiederausführung dem Validator weder staatliches Wachstum noch Bandbreitenaufwand verleiht, und jeder Ausführungsaufwand kann zwischen CPU-Kernen parallelisiert werden.
Der Validator muss eine explizite Kopie der Trace zur erneuten Ausführung haben, wodurch die Verwendung von Zeigern auf Blob-Daten abgetastet (anstatt heruntergeladen) über DAS abgetastet wurde.Beachten Sie, dass optimistische native Zusammenfassungen möglicherweise weiterhin aggregierte Daten in Form von Blobs veröffentlichen und auf die Anrufdaten zurückfallen, die nur in Betrugsbeweisspielen sind.Es ist auch wichtig zu beachten, dass eine optimistische native Aggregation Gasgrenzen haben kann, die execute_cumulative_gas_limit weit überschreiten können, da die Vorkompilierung nur einen einzigen Aufruf auf ein kleines EVM -Segment erfordert, um die Betrugsbeweis -Herausforderung zu beheben.
Als historischer Aufzeichnung schlug Vitalik im Jahr 2017 eine ähnliche „EVM -EVM -EVM“ -Sprecompilation namens ExectX vor.
Über Snark ausführen
Um die größere Execute_cumulative_gas_limit zu entsperren, ermöglicht es natürlich, dass der Überprüfer den Snark -Beweis selektiv überprüfen kann.Von nun an gehen wir davon aus, dass ein Zeitfenster die Ausführung verzögert, wobei ein ungültiger Block (oder eine ungültige Transaktion) als Operation ohne Betrieb angesehen wird.(Weitere Informationen zur verzögerten Ausführung finden Sie in diesem Ethressearch -Beitrag, diesem EIP und diesem Entwurf für Francesco.) Ein Steckplatzverzögerungsausführung führt in Sekunden (dem gesamten Steckplatz) für den Beweis.Sie vermeiden auch Anreize, MEV-gesteuerte Proof-Wettbewerbe zu melden, die zentralisierte Vektoren einführen werden.
Beachten Sie, dass selbst wenn die Ausführung durch Snark erzwungen wird, es keinen klaren Beweis dafür gibt, dass das System oder die Schaltung in den Konsens einbezogen wird.(Beachten Sie, dass die Ausführung der Vorkompilierung keinen expliziten Beweis als Eingabe erfordert.) Stattdessen kann jeder stakkenswerte Operator seinen bevorzugten Zkel -Validator -Client auswählen, ähnlich wie der heutige Ansatz zur subjektiven Auswahl eines EL -Clients.Der nächste Abschnitt „Off-Chain Proof“ erläutert die Vorteile dieser Entwurfsentscheidung.
Von nun an gehen wir davon aus, dass der Ausführungsantrieb im Zusammenhang mit der Trennung (Proposer-Trennung) (APS) mit alternierender Ausführung und Konsens-Slots ausgereift ist.Um rationale Ausführungsanträge zu motivieren, rechtzeitig Beweise zu generieren (innerhalb von 1 Zeitschlitz), müssen die Nachweise nur dann nachweisen, wenn der Ausführungsblock N verfügbar ist.(Wir empfehlen Bündelungsblock N+1 mit Ausführungsnachweis von Block N in der P2P -Schicht.) Ausführungsvertreter, die Beweise überspringen, können ihre Slots verpassen, was zu verpassten Gebühren und MEVs führt.Wir stellen ferner eine feste Strafe für die verpassten Ausführungssteckplätze auf und setzen sie hoch genug (z. B. 1 ETH), um die Kosten des Beweises immer zu überschreiten.
Beachten Sie, dass im Kontext von APs die Erzeugung von Konsensblöcken nicht durch verpasste Ausführungssteckplätze blockiert wird.Die rechtzeitige Erzeugung von Beweisen ist jedoch für leichte Kunden wichtig, damit sie den Zustand ohne staatenlose Wiederaussetzung auf der Kettenseite leicht lesen können.Um die rechtzeitige Beweisgenerierung für leichte Kunden zu gewährleisten, verlassen wir uns auch in dem Sonderfall auf die altruistische Minderheitsbeweisannahme, in der der nächste Ausführungsantrieb seinen Zeitfenster verpasst.Ein einzelner altruistischer Prover reicht aus, um einen Beweis in einem Zeitfenster zu erzeugen.Um unnötige redundante Beweise zu vermeiden, können die meisten altruistischen Beweise auf Standby warten und nur dann initiieren, wenn kein Beweis innerhalb von 1 Steckplatz eintrifft, wodurch als ausfallsicherer Maß für Verzögerungen von bis zu 2 Schlägen wirkt.
Beachten Sie, dass execute_cumulative_gas_limit niedrig genug sein muss, um die Altruistischen Minderheitenprover -Annahmen vertrauenswürdig zu machen (und den Ausführungsvorschlag unrealistisch komplizieren).Eine konservative Strategie könnte darin bestehen, execute_cumulative_gas_limit so festzulegen, dass Laptops wie High-End-MacBook Pro auf Einzel-Slot-Proofs zugreifen können.Eine pragmatischere und positivere Politik kann darin bestehen, einen kleinen Prozentsatz von GPUs abzuzielen, und sobald sie vollständig vermarktet sind, kann sie schließlich auf den Snark ASIC -Beweis abzielen.
Off-Ketten-Beweis
Um wieder zu wiederholen, empfehlen wir, den Zkel nicht in die Kette auszuführen, sondern es außerhalb der Kette zu teilen.Nicht sparender Beweise ist eine gute Idee, die zuerst von Vitalik vorgeschlagen wurde, und hat mehrere Vorteile:
-
Diversität:Überprüfungen können freie Beweisvalidatoren (einschließlich Beweissysteme und Schaltkreise) aus dem Entwicklungsteam, dem ihr vertrauen, auswählen, ähnlich wie bei der Auswahl von EL -Kunden, denen sie vertrauen, ausgewählt.Dies bietet Robustheit durch Vielfalt.Der Zkel Validator -Client (und einige der zugrunde liegenden ZKVMs von Clients) sind eine komplexe Verschlüsselungssoftware.Fehler in beiden Kunden sollten nicht das Absturz von Ethereum dazu bringen.
-
Neutralität:Durch den Zkel -Validator -Kundenmarkt kann die Konsensschicht nicht den Technologiesieger auswählen.Zum Beispiel ist der ZKVM -Markt sehr wettbewerbsfähig und die Wahl eines Gewinnlieferanten (wie RISC0, prägnant oder viele andere Lieferanten) kann nicht als neutral angesehen werden.
-
Einfachheit:Die Konsensschicht muss keinen bestimmten Snark -Validator enthalten, der die Spezifikation der Konsensschicht erheblich vereinfacht.Fügen Sie einfach das Format des staatlichen Zugriffsnachweises ein, nicht die spezifischen Details zur Implementierung von Proof Validator.
-
Flexibilität:Wenn Fehler oder Optimierungen gefunden werden, können betroffene Validatoren ihre Clients ohne harte Gabeln aktualisieren.
Off-Chain-Proof führt einige kontrollierbare Komplikationen hervor:
-
Beweisen Sie Last und P2P -Fragmentierung:Da es keinen einzigen Spezifikationsnachweis gibt, müssen mehrere Beweise generiert werden (mindestens einen pro Zkel -Client).Jede Zkel-Client-Anpassung (z. B. tauscht ein RISC-V-ZKVM gegen einen anderen) erfordert einen anderen Beweis.In ähnlicher Weise erfordert jedes Zkel -Versions -Upgrade einen anderen Beweis.Dies führt zu einer erhöhten Nachweisbelastung.Wenn jeder Beweistyp einen separaten Klatschkanal hat, wird das P2P -Netzwerk weiter fragmentiert.
-
Ein paar Zkel:Es ist schwierig, ein paar Zkel zu motivieren, Beweise zu erstellen.Rationale Ausführungsvertreter erzeugen möglicherweise nur genügend Beweise, um die überwiegende Mehrheit der Beweise zu erreichen, ohne ihre Zeit zu verpassen.Um dieses Problem zu lösen, können festgelegte Betreiber von der Gesellschaft dazu ermutigt werden, mehrere Zkel -Kunden parallel zu leiten, ähnlich wie die heutigen Gutachterbetreiber.Das Ausführen des K-of-N-Setups hat auch den zusätzlichen Vorteil, dass die Sicherheit verbessert wird, insbesondere die Verhinderung von Schwachstellen für sanitäre Schwachstellen, die es den Angreifern ermöglichen, Beweise für willkürliche Ausführungsanrufe zu erstellen (dieser Fall ist nicht für herkömmliche EL-Clients. Gemeinsam).
Off-Chain-Beweise verringern auch die Effizienz der Echtzeit-Siedlung L2:
-
Kein Ersatz DA:Da dem L1 -Validator die Verfolgungseingabe von Execute zur Verfügung gestellt werden muss, muss der L2, der sich in Echtzeit einsetzt (das L2, das seine Spezifikationsstatus -Root sofort aktualisiert) L1 DA, d. H. Zusammenfassung, verbrauchen.Beachten Sie, dass das optimistische L2 der verzögerten Siedlung des Spiels durch Betrug keine solche Begrenzung gibt, d. H. Es kann ein gültiger Wert sein.
-
Statuszugriffs -Overhead:Da die Spur eine staatenlose ausführbare Datei sein muss, muss sie staatliche Trieblätter enthalten, die gelesen oder geschrieben werden, die eine kleine Menge DA -Overhead einführen als einen typischen L2 -Block.Beachten Sie, dass optimistischer L2 diese Einschränkung nicht hat, da die staatlichen Blätter nur bei Betrugsbeweisherausforderungen benötigt werden und der Herausforderer die Trieblätter neu berechnen kann.
-
Kein Zustandsunterschied:Da der Nachweis ohne Erlaubnis sein sollte, kann der Zusammenfassungsstatusunterschied aufgrund einer bestimmten Verfolgung nicht erfolgen.Wenn der entsprechende Spezialnachweis jedoch in den Konsens eingebaut ist, kann die Signatur des Staatlosen Zugriffs oder der EVM -Transaktionssignatur komprimiert werden.
RISC-V Native Execution
Angesichts der heutigen Konvergenz von RISC-V ZKVM gibt es möglicherweise die Möglichkeit, die Übergänge des RISC-V-Staates zu EVMs lokal auszusetzen (ähnlich wie bei WASMs in Arbitrum Stylus-Umgebungen) und die Snarkfreundlichkeit aufrechtzuerhalten.
Teil 2 – Native Rollup
Name
Lassen Sie uns zunächst über die Benennung von Native Rollup diskutieren, um mehrere verwirrende Probleme zu lösen:
-
Alternativer Name:Die native Zusammenfassung wurde zuvor als verankerte Zusammenfassung bezeichnet.(Der Begriff „kanonische Zusammenfassung“ wurde auch kurz in Polyya 12 verwendet.) Der Begriff „verankert“ wurde später aufgegeben und durch „Native“ ersetzt, um anzuzeigen, dass die vorhandene EVM -Äquivalentzusammenfassung optional auf native aufgerüstet werden kann.Der Name „Eingeborener“ wurde unabhängig von Dan Robinson und einem Lido -Mitarbeiter vorgeschlagen, der im November 2022 anonym bleiben wollte.
-
Basierend auf Zusammenfassung:Basierend auf zusammenfassenden und nativen Zusammenfassungen sind immer orthogonale Konzepte: „basiert“ bezieht sich auf die L1 -Sortierung, während „Native“ mit der L1 -Ausführung zusammenhängt.Gleichzeitig wird basierend auf und native Zusammenfassung als „Superonic Summary“ bezeichnet.
-
Sharding ausführen:Ausführungs -Sharding (d. H. Die verankerte Kopie der L1 EVM -Kette) ist ein anderes, aber verwandtes Konzept, das einige Jahre vor nativen Zusammenfassungen im Zusammenhang mit nativen Zusammenfassungen im Zusammenhang mit native Zusammenfassungen ist.(Die Ausführung von Sharding war vor der „Phase 2“ der Roadmap von Ethereum 2.0.) Im Gegensatz zu nativem Rollup ist Sharding nicht programmierbar, dh keine Optionen wie benutzerdefinierte Governance, benutzerdefinierte Sortierung und benutzerdefinierte Gas -Token.Ausführungsschards werden normalerweise auch in einer festen Zahl (z. B. 64 oder 1.024 Scherben) instanziiert.Leider verwendete Martin Köppelmann den Begriff „Native L2“ 7 in der Rede seiner 2024 Devcon über die Ausführung von Scherben.
Nutzen
Native Rollups haben mehrere Vorteile, die wir im Folgenden im Detail abdecken werden:
-
Einfachheit:Der größte Teil der Komplexität eines nativen Rollup -VM kann durch Vorkompilierung eingekapselt werden.Heute verfügen Optimismus und ZK-Rollup, vergleichbar mit EVM, Tausende von Codezeilen für ihre Betrugsbeweisspiele oder Snark-Validatoren, die in eine Codezeile komprimiert werden können.Native Rollups erfordern auch keine Hilfsinfrastruktur wie Proof -Netzwerke, Wachtürme und Sicherheitsausschüsse.
-
Sicherheit:Das Erstellen eines fehlerfreien EVM-Betrugs-Proof-Spiels oder eines Snark-Validators ist eine sehr schwierige technische Aufgabe, die möglicherweise eine detaillierte Formularvalidierung erfordert.Heutzutage dürfte jeder Optimismus und jeder ZK EVM -Rollup eine schwerwiegende Anfälligkeit in seiner EVM -Übergangsfunktion haben.Um Schwachstellen zu verhindern, wird die zentralisierte Sortierung häufig als Krücke zur Kontrolle der kontroversen Blockproduktion verwendet.Die native Ausführung der Vorkompilierung ermöglicht eine sichere Bereitstellung von Erlaubnissortierungen.Vertrauenslose Rollups, die die L1 -Sicherheit vollständig erben, erben die Austauschbarkeit von L1 auch vollständig.
-
EVM -Äquivalenz:Heutzutage ist die einzige Möglichkeit, wie Rollup mit L1 EVM -Regeln synchronisiert ist, darin, Governance (in der Regel Sicherheitsausschüsse und/oder Governance -Token) zu haben. L1 EVM -Upgrades.(EVM-Updates werden immer noch regelmäßig mit harten Gabeln durchgeführt.Andererseits kann ein nationales Rollup ohne Governance synchron mit L1 verbessert werden.
-
Snarkgaskosten:Die Überprüfung von Snark on-Chain ist teuer.Daher entscheiden sich viele ZK-Rollups selten, um die Kosten zu minimieren.Da Snark nicht onkettig validiert wird, kann die Vorkompilierung ausführen, um die Überprüfungskosten zu senken.Wenn Sie Snark verwenden, um die Ausführung von Proofs für mehrere Aufrufe in einem Block rekursiv auszuführen, kann execute_gas_cost relativ niedrig festgelegt werden.
-
Synchronverbesserbarkeit:Heute erfordert die synchrone Komposition mit L1 Echtzeitnachweise desselben Steckplatzes.Die Implementierung von ultra-niedrigen Latenznachweisen (z. B. rund 100 Millisekunden) ist eine besonders herausfordernde technische Aufgabe für ZK-Rollups.Mit einer einzelnen Schlitzverzögerungszustandswurzel können Sie die Beweisverzögerung des vorverkompilierten nativen Native entspannen.