Geschrieben von: zkSync

Zusammengestellt von: Shechao TechFlow

TLDR

Upgrade: Die zkSync-Ära wird auf das neue Boojum-Proof-System umgestellt, ohne dass eine Neugenerierung erforderlich ist.

Leistung: Boojum demonstriert die beste Attestierungsleistung seiner Klasse und ergänzt den zkSync Era-Sequenzer, der bereits über 100 TPS verarbeiten kann.

Dezentralisierung: Boojum-Prüfer benötigen nur 16 GB RAM, was eine zukünftige Dezentralisierung großer Prüfer ermöglicht.

Die Mission von zkSync besteht darin, die persönliche Freiheit für alle zu fördern – digitales Selbsteigentum allgemein zugänglich zu machen, indem ein vertrauenswürdiges, sicheres, erlaubnisfreies, erschwingliches, benutzerfreundliches, belastbares und unendlich skalierbares Blockchain-Netzwerk aufgebaut wird.

Um diese Mission zu erfüllen, wurde die Alpha-Version von zkSync Era vor etwas mehr als drei Monaten der Öffentlichkeit zugänglich gemacht, und die Resonanz war erstaunlich. Netzwerk-Highlights:

Der gesamte gesperrte Wert TVL beträgt 577 Millionen US-Dollar (Quelle: L2Beat);

23.750.000 Transaktionen in den letzten 30 Tagen – die meisten aller L2-Transaktionen (Quelle: L2Beat);

9.735 im Quellcode verifizierte Smart Contracts.

Im März 2023 wurde das SNARK-basierte zkSync Era gestartet, das das kampferprobte Schaltungsframework nutzt, das zkSync Lite seit fast drei Jahren im Mainnet unterstützt. Wir wussten jedoch, dass dies nicht die endgültige Version des zkSync Era-Proof-Systems sein würde, und haben das System daher so konzipiert, dass wir grundlegende Änderungen daran vornehmen können, ohne es neu zu generieren. Dies bedeutet, dass wir erhebliche kryptografische Upgrades bereitstellen können, ohne Entwickler und Benutzer zu stören.

Hinter den Kulissen arbeiten wir schon seit längerem an einem kryptografischen Upgrade. Heute freuen wir uns, das erste Upgrade ankündigen zu können: Die zkSync-Ära wird auf ein neues STARK-Proof-System namens „Boojum“ umgestellt.

Lernen Sie Boojum kennen

Boojum ist eine auf Rust basierende Arithmetik- und Einschränkungsbibliothek, die wir zur Implementierung von zkSync Era und ZK Stack, einer aktualisierten Version der ZK-Schaltung, verwenden.

Was ist Boojum?

Funktionen von Boojum:

PLONK-Arithmetisierung: Im Kontext von Zero-Knowledge-Protokollen ist Arithmetisierung der Prozess der Umwandlung allgemeiner Berechnungen in mathematische Form. Wie das aktuelle Beweissystem verwendet das Upgrade-System immer noch Arithmetik im PLONK-Stil. Mit diesem Ansatz sind ZK-Schaltkreise einfacher zu schreiben als einige Alternativen, wodurch das System einfacher zu entwickeln, zu prüfen, zu warten und zu aktualisieren ist.

Leistungsstarkes Commitment-Schema: Das Herzstück von Boojum ist das FRI-Commitment-Schema, eine Schlüsselkomponente, die es uns ermöglicht, uns auf beschränkte Polynome festzulegen und anschließend effizient zu beweisen, dass die beanspruchte (Polynom-)Öffnung tatsächlich ein Polynom niedrigen Grades ist.

Effizienz des Systems: Obwohl die Generierung von Zeugen manchmal übersehen wird, wenn über die Leistung von Prüfern gesprochen wird, haben wir in aktuellen Versionen des Beweissystems den Punkt erreicht, an dem optimierte GPU-Prüfer so effizient sind, dass die Zeit für die Generierung von Zeugen in etwa der Zeit für die Generierung von Beweisen entspricht . Mit Boojum bieten wir eine automatische Parallelisierung (sofern das Abhängigkeitsdiagramm dies zulässt) der Zeugengenerierung und behalten gleichzeitig die Einfachheit der Definition von Zeugengenerierungsfunktionen bei.

Einfach zu erweitern: Die grundlegende Abstraktion des Einschränkungssystems ist sehr prägnant, ermöglicht Benutzern jedoch das Hinzufügen benutzerdefinierter Gate-Typen auf verschiedene Weise, z. B. durch Hinzufügen einiger spezialisierter Polynome oder durch Wiederverwendung sogenannter „allgemeiner Spalten“. Die Erweiterungsschnittstelle bietet die Möglichkeit, automatisch Beweiser, Prüfer und rekursive Prüfer zu generieren, nachdem Benutzer eine einfache Geometrie für ihre Schaltung definiert haben. Dies ermöglicht einen sehr effizienten Entwicklungsprozess; wenn der Benutzer die Schaltungsstruktur ändert und einen anderen Gattertyp wählt, kann er die Schnittstelle einfach erneut aufrufen und die Schlüssel werden neu generiert und sichergestellt, dass er den richtigen Prüfer und Verifizierer verwendet.

Einzelstapel: Mit Boojum kann all das oben Genannte nur mit standardmäßigen, idiomatischen Rust-Ausdrücken erreicht werden, wobei die Ausdruckskraft seines Typsystems genutzt wird. Die rechenintensiven Teile des GPU-Provers sind in CUDA C++ geschrieben, wir stellen jedoch Rust-Bindungen für die Komposition bereit.

Boojum verwendet standardmäßig Primzahlfelder der Größe 2^64 - 2^32 + 1 (genannt „Goldlöckchen-Feld“) und bietet Implementierungen entsprechender Feldbindungsprimitive, wie z. B. die Poseidon2-Hash-Funktion, und Aktualisierungen basierend auf Nachschlagetabellen kryptografische Standardprimitive wie SHA256, Keccak256 und Blake2s.

Wichtig ist, dass wir im letzten Schritt den STARK-Beweis mit einem nicht transparenten, paarungsbasierten SNARK umschließen und diesen SNARK auf Ethereum verifizieren. Dieser Beweis ist viel kleiner und kostengünstiger zu verifizieren; dieser Schritt reduziert die Kosten des Beweissystems und damit der Transaktion selbst.

Warum Boojum wählen?

Bei der Entwicklung von Boojum gab es zwei Schlüsselfaktoren für die Entscheidung: (1) erstklassige Proof-Leistung und (2) geringere Hardware-Anforderungen für die Dezentralisierung.

Weltklasse-Leistung

Das aktuelle SNARK-basierte System ist zwar derzeit effektiv, lässt sich jedoch nicht auf die hochvolumigen, nahezu in Echtzeit stattfindenden Transaktionen in ZK Stack skalieren. Das zukünftige Ziel von zkSync Era als Hyperchain besteht darin, diese Systeme in den nächsten Jahren zu unterstützen. Unsere Vision für diese Systeme ist, dass Beweise kostengünstig und schnell generiert und verifiziert werden können, was eine schnelle Endgültigkeit und Interoperabilität zwischen Hyperketten ermöglicht.

Die Leistung des Proof-Systems wirkt sich direkt auf die Gebühren aus, die Benutzer für ihre Transaktionen zahlen, und diese Kosten müssen mit der Zeit gegen Null gehen. Die aktuelle Version des Proof-Systems ist effizient genug, um zkEVM zu erstellen und Millionen von Transaktionen in nur wenigen Monaten zu verarbeiten, aber mit Boojum können wir es noch besser machen!

Um die Proof-Erstellungszeit des Netzwerks (sowie andere wichtige Kennzahlen im Zusammenhang mit der Leistung) zu messen, haben wir mit Celer zusammengearbeitet, dessen Team über umfangreiche Erfahrung beim Benchmarking und der Analyse mehrerer Proof-Systeme verfügt. Im Bild unten können Sie sehen, dass Boojum auf den meisten profilierten Systemen eine gute Leistung erbracht hat. Die Ergebnisse sprechen für sich: Unsere Implementierung weist erstklassige Proof-Leistung auf und ist nach unserem besten Wissen das schnellste Proof-System, das derzeit in der Produktion eingesetzt wird.

Für einen fairen Vergleich führte Celer diese Benchmarks auf einem CPU-basierten Prüfer durch, aber unser Mainnet-System verwendet einen GPU-basierten Prüfer, der schneller ist.

Der Wechsel zu einem STARK-basierten Proof-System stellt eine erhebliche Leistungsverbesserung dar und wird dazu beitragen, Endgültigkeit und Unterstützung mit geringer Latenz für erhöhte Aktivitätsniveaus der zkSync-Ära und anderer ZK-Stack-basierter Systeme sicherzustellen.

Reduzieren Sie dezentrale Hardwareanforderungen

Diese Leistungsergebnisse sind besonders beeindruckend, wenn man bedenkt, dass dies nicht die einzige Metrik ist, für die wir optimieren – wir wollen die Systemleistung verbessern und gleichzeitig die Hardwareanforderungen für den Betrieb reduzieren.

Derzeit gängige Proofsysteme, darunter auch unser bestehendes System, stellen höhere Hardwareanforderungen. Unser aktuelles Proofsystem läuft auf einer Reihe von A100-GPUs mit jeweils 80 GB RAM. Der Bedarf an teuren und leistungsstarken Maschinen stellt ein erhebliches Hindernis für unser Ziel dar: eine Zukunft der benutzergesteuerten dezentralen Beweiserstellung. Um dieses Ziel zu erreichen, reicht es nicht aus, die Beweiserstellung erlaubnisfrei zu machen; Benutzer sollten auch keinen teuren Computer mit Hunderten von GB RAM benötigen, um daran teilzunehmen.

Auch hier haben wir äußerst beeindruckende Fortschritte gemacht! Unser GPU-Prover für Boojum benötigt nur 16 GB RAM, und diese niedrige Eintrittsbarriere ist ein wichtiger Schritt für die Zukunft, die wir uns vorstellen. Den CPU-basierten Proof gibt es bereits ab 64 GB RAM, wir wollen diesen auf 32 GB reduzieren und die Vorteile moderner Multicore-Prozessoren voll ausnutzen.

Schließlich kann der auf Rust basierende Sequenzer zkSync Era bereits über 100 Transaktionen pro Sekunde (TPS) verarbeiten. Die Einführung eines neuen Proof-Systems verbessert nicht nur die Leistung, sondern reduziert auch die Hardware-Anforderungen, was es zu einer idealen Ergänzung zum Sequenzer macht. Die durch Boojum erzielten Leistungsverbesserungen bedeuten, dass das System Transaktionen schneller nachweisen kann, während die geringeren Hardwareanforderungen den Zugriff des Netzwerks auf günstigere Maschinen verbessern und so eine größere horizontale Skalierbarkeit ermöglichen.

Boojums Mainnet-Reise

Das Team hat Monate damit verbracht, dieses Upgrade zu entwickeln, und wir freuen uns, dass wir nun das Stadium des Testens des Systems im Mainnet erreicht haben. Wir wollten auch einige unserer bisherigen Geschichten teilen.

Aktualisieren Sie zkSync Era

Erstens ermöglicht uns das Design des zkSync Era, jede Komponente im Laufe der Zeit zu aktualisieren, und das Zertifizierungssystem bildet da keine Ausnahme.

Ähnlich wie bei Ethereum verwenden wir eine Merkle-Baum-Datenstruktur, um Informationen über den Zustand des Netzwerks zu speichern. Da wir eine Aussage über den Zustand des Systems beweisen, sind diese Informationen notwendig, um das System zu beweisen. Für diesen Merkle-Baum (und die Art und Weise, wie das Beweissystem mit ihm interagiert) besteht eine wichtige Entwurfsentscheidung darin, eine nicht-algebraische Hash-Funktion zu verwenden, insbesondere Blake2s. Wenn wir nur für eine einfachere Beweisgenerierung optimieren würden, würden wir eine algebraische Hash-Funktion (wie Poseidon2) verwenden, aber diese Wahl würde den beobachtbaren Zustand an die Parameter des Beweissystems koppeln – wie etwa die Wahl der Primkörper. Jedes Upgrade des Proof-Systems erfordert dann eine vollständige Wiederherstellung des Zustands.

Die Boojum-Reise vom Design bis zur Rezension

Vor etwa einem Monat haben wir begonnen, eine vollständige End-to-End-Version unserer neuen Proof-System-Implementierung zu entwickeln. Angesichts der Komplexität dieser Änderung und der Bedeutung der Systemkorrektheit haben wir eine Reihe interner und externer Audits eingeleitet.

Damals befanden sich die zkEVM-Schaltkreise und die Boojum-Arithmetikbibliothek noch in der aktiven Entwicklung, aber wir arbeiteten mit externen Sicherheitsprüfern zusammen, um uns auf die frühzeitige Identifizierung potenzieller Probleme mit der Zuverlässigkeit unserer Hauptschaltkreise und Boojum-Komponenten zu konzentrieren. Wir haben eng zusammengearbeitet, um ihnen vollständigen Zugriff auf Quellcode und Dokumentation zu ermöglichen, und sie haben die zkEVM-Schaltung und das Boojum-Gadget überprüft und getestet, wobei sie sowohl automatisierte als auch manuelle Testmethoden eingesetzt haben.

Boojum: Von der Rezension zum Testen

Dies bringt uns heute zum nächsten Schritt unserer schrittweisen Einführung: Mainnet Shadow Mode! Wir freuen uns, Ihnen mitteilen zu können, dass wir das neue Proof-System jetzt parallel zum bestehenden Proof-System betreiben, obwohl sich Boojum derzeit nur in der Beta-Phase befindet. Wir haben mit der Generierung und Validierung von „Schattennachweisen“ für Mainnet-Blöcke begonnen.

Diese Shadow-Proofs sind für die Mainnet-Version von zkSync Era nicht erforderlich – diese wird weiterhin durch das bestehende Proof-System gesteuert. Wir validieren diese Schattennachweise lediglich, um das System weiter zu testen und zu optimieren, verwenden jedoch echte Produktionsdaten aus der Benutzeraktivität der zkSync-Ära.

Boojum: Vom Test zum Mainnet

Wie bei allem, was wir tun, steht die Sicherheit immer an erster Stelle. Wir werden eine Migration erst dann in Betracht ziehen, wenn wir mit unseren Tests des neuen Systems vollkommen zufrieden sind, und werden in den kommenden Wochen und Monaten weitere Details mitteilen. Wir planen außerdem die Durchführung weiterer Audits und Sicherheitsbewertungen, um dieses spannende Upgrade der vollständigen Bereitstellung näher zu bringen und das aktuelle Zertifizierungssystem auslaufen zu lassen.

Wir glauben, dass Boojum der nächste Schritt ist, um zkEVM sicherer, skalierbarer und effizienter zu machen.