
Autor: Michael Zhu (A16Z Crypto Research Engineer), Sam Ragsdale (A16Z Crypto Investment Engineer);
Am 9. April 2024 veröffentlichte das A16Z -Verschlüsselungs- und Ingenieurteam den vorläufigen Ruck des anfänglichen JolterreichenDies ist eine neue Snark -Designmethode, die doppelt so schnell ist wie die vorhandene Technologie, und es wird mehr Verbesserungen geben.
Die Überprüfung der Berechnung (allgemein als ZK bekannt) ist eine sehr leistungsstarke Technologie, die sowohl für Blockchain als auch für Nicht -Blockchain geeignet ist.Es ermöglicht es einem Computer (Verifiziererüberprüfungsperson), die Berechnung einem anderen leistungsfähigeren Computer (Prover Proof) anzuvertrauen und effektiv zu überprüfen, ob die Berechnung korrekt ausgeführt wird.
In der Verschlüsselungsbranche umfasst die Anwendung, die überprüft werden kann (insbesondere Snarks),:
Layer 2 (L2) Blockchain verwendet Snarks, um die Integrität seiner Zustandsumwandlung zu gewährleisten.
-
Cross -Chain Bridge verwendet Snarks, um eine Ablagerung/Auszahlung in eine andere Kette zu beweisen.
-
Ein „ZK Associate Processor“ (definiert von Axiom) verwendet Snarks, um zu beweisen, dass einige Daten zu den Kettendaten berechnet werden.
Es gibt viele interessante Nicht -Blockchain -Beispiele, die kaum untersucht werden.Beispielsweise können Cloud -Dienstanbieter seinem Kunden beweisen, dass sie bestimmte Berechnungen, die ihren Servern anvertraut sind, korrekt durchführen.Software -Registrierung wie NPM oder CRATES.IO kann beweisen, dass Binärdateien aus einem bestimmten Quellcode zusammengestellt werden, wodurch das Risiko von Software -Lieferkettenangriffen verringert wird.Oder eine Person kann beweisen, dass ihre „Super Mario Brothers“ -Tools Hilfssportrennungen (TAS) den Weltrekord gebrochen haben (Risc Zero hat diese Idee auch beschrieben).
Viele dieser Anwendungen haben viele Programme, die zu kompliziert sind und nicht in den Schaltkreis DSL (spezifische Domänensprache) -Magine umgewandelt werden können, beispielsweise mit der Zirkomsprache, um den gesamten Compiler oder den NES -Simulator neu zu schreiben.Wenn das Programm jedoch in einen von ZKVM unterstützten Befehlssatz kompiliert, muss es nicht durch Handschriftenschaltung oder DSL transformiert werden: Programmierer müssen nur die erweiterte Programmiersprache verwenden, die sie für das Programm schreiben möchten, um die verbleibende Arbeit von ZKVM zu verarbeiten.
Dann ist die verbleibende Herausforderung die Leistung des ZKVM -Provers: Sie muss schnell genug sind, um nützlich zu sein.Dies ist besonders wichtig für Blockchain -Beispiele, da die Prover -Zeit die Verzögerung beeinflusst und die Benutzererfahrung beeinflusst.
Es kann verifiziert und berechnet werden, dass es als die ultimative Lösung angepriesen wurde, die voraussichtlich die Blockchain für lange Zeit ausdehnt, aber diese Technologie hat drei Haupthindernisse in Bezug auf die Akzeptanz ausgesetzt:
-
Leistung:Im Vergleich zur nativen Ausführung wird die Ausführung des Proof -Programms einige quantitative Gemeinkosten einführen.
-
Komplexität:Die Komplexität von Snarks hat Bedenken hinsichtlich seiner Sicherheit ausgelöst, da die Sicherheitsgarantie für die Vermögenswerte für die Milliarden Dollar in der Kette.
-
Verfügbarkeit:Das professionelle Wissen, das bestimmte Domänensprachen wie Circom benötigt, kann die meisten Softwareentwickler nicht erhalten.
Die Entwicklung von Null -Wissen -Virtual Machine (ZKVMS) überwindet das dritte Hindernis (verfügbar), da ZKVMS Entwicklern ermöglicht, Programme mit fortschrittlichen Programmiersprachen wie Rost zu schreiben oder ohne die Notwendigkeit, seine Ausführung ohne zugrunde liegende Snark zu beweisen.Die Verbesserung der ZKVMS -Verfügbarkeit hat jedoch auch zu hohen Leistungen (8 bis 9 Quantitativen) und komplexer Einsatz geführt.
Im vergangenen Jahr führte ein Rucksartikel ZKVMS ein neues Paradigma ein, das versprach, die beiden Herausforderungen der Leistungsaufwand und der Komplexität des Einsatzes zu bewältigen.Im Vergleich zu den bestehenden Ideen von Stark, dem theoretischen Hintergrund von Jolt.Durch die Verwendung von Lasso zur Abfrageparameter und andere Sumcheck -Technologien kann Jolt das Programm schneller als zuvor beweisen, und es ist einfacher, neue VM -Anweisungen bereitzustellen als zuvor.
Heute freuen wir uns, einen Open -Source -Bereitstellungen für den RV32I -Anweisungssatz zu veröffentlichen und das Versprechen im Rucksartikel zu erkennen.
-
schnell:Unser Einsatz ist mehr als fünfmal schneller als RISC Zero, was doppelt so schneller ist wie der gerade im vorläufige Benchmark -Test veröffentlichte SP1.
-
(Relativ) einfach:Die gesamte Codebibliothek beträgt weniger als 25.000 Zeilen (weniger als die Hälfte anderer ZKVMs), und eine einzelne CPU -Anweisung kann in nur 50 Zeilen implementiert werden.
Schauen wir uns den Performance -Benchmark zusammen an.Wir bieten auch einige Anleitungen für Entwickler, die gleichzeitig an der Entwicklung von Anwendungen interessiert sind. und einfacher zu bedienen.
Das A16Z -Verschlüsselungstechnik -Team basiert auf einem festen Glauben an Open Source -Wert.Jolt als Open -Source -öffentliches Produkt wird die ZKVM -Forschung, die breitere Snarkforschung und die Entwicklung der gesamten Web3 -Branche beschleunigen.Der Bau der Verschlüsselungstechnologie auf den Inseln des geschlossenen Quellcode (Code kann nicht von der Öffentlichkeit überprüft werden), was normalerweise Vertrauen in das unglaubliche System bringt.
1,Leistung
Im Vergleich zur nativen Ausführung bringen ZKVMs 8 quantitative Gemeinkosten, wodurch viele verifizierte und Computeranwendungen nicht realisiert werden.Die aktuelle Version von Jolt hat diese Kosten auf weniger als 6 Bestellungen reduziert.
Obwohl wir bereits die fortschrittlichste Leistung haben, hat die zugrunde liegende Technologie von Jolt (basierend auf der Sumcheck -Vereinbarung) die Aufmerksamkeit von Ingenieuren wie Populärtechnologie (Based FR) nicht erhalten.Dies zeigt, dass Jolt immer noch mehr Entwicklungsraum hat -wir haben die Roadmap optimiert, und wir erwarten, dass es keine Chance auf Entdeckung gibt.
Unser A16Z/ZKVM -Benchmark -Test hat bei verschiedenen Rost -Programmen Ruck, SP1 und RISC Zero bestimmt.Infolgedessen ist die relative Leistung in vielen ähnlichen RV32 -Programmen ähnlich.Die folgende Abbildung bezieht sich auf ein Programm, das die SHA2 -Hash -Kette ausführt.
Die Ergebnisse dieser Benchmark -Tests sind unten aufgeführt.Der Benchmark -Test läuft auf der AWS R7G.Alle Benchmark -Tests gelten nur für die CPU.
Das kontinuierliche System der Kontinuationen steht vor dem Gleichgewicht zwischen der Proverzeit und den Vorteilen und der Größe des Beweises -wenn sich erwiesen wird, dass es in mehr „Shard -Scheiben“ (oder „Absatz“ unterteilt wird, wird der Prover schneller (weil die Scherben die Scherben zwischen den Scherben ist es parallel), aber es hat größere Beweise vor der Rekursion.Beweisen Sie, dass die Größe der Größe unten angezeigt wird, die Ergebnisse des SP1 durch die Stückzahl: SP1 (shard_count).RISC Zero hat eine feste Größe, sodass seine Shard -Zählung mit der Programmzykluszahl versteckt wird.RISC Zero unterstützt rekursiv (SP1 und Ruck wurden nicht unterstützt), aber der folgende Benchmark -Test ist ein Leistungstest, der ohne Rekursion durchgeführt wurde.Wir verwenden keine „Vor -Compilation“, sodass der Benchmark -Test die Leistung des Kern -ZKVM -Proofsystems widerspiegelt.
2Wie ist esRuckEntwicklung und Konstruktion
Um Jolt so einfach wie möglich zu verwenden, bietet Jolt SDK einen einfachen Wrapper von Jolt -Kernfunktionen des A16Z Crypto Engineering -Partners Noah Citron).Alles, was Sie tun müssen, ist JOLT_SDK :: Provable Eigenschaft zur nachgewiesenen Funktion hinzuzufügen.
Sie können dann die Funktion Build_*verwenden, um einen Provokate und einen Verifizierer zu erstellen.
Bitte überprüfen Sie das vollständige Fibonacci -Beispiel (und andere) in der Codebibliothek.
Um über Jolt -Architektur eingehender zu erfahren, ist Jolt Book (WIP) ein Dokument für Designauswahl und ein echtes Dokument für die Design -Auswahl und die Code -Bibliothek, die in Jolt -Artikeln nicht aufzeichnet.In den nächsten Wochen werden wir mehr Inhalte für Entwickler veröffentlichen, die daran interessiert sind, sich zu entwickeln und auf Jolt aufzubauen oder den internen Mechanismus des Rucks zu kennen.
3Was ist das nächste Ding
Obwohl Jolt ein wichtiger Meilenstein im ZKVM -Feld ist, haben wir noch einen langen Weg vor uns.Machen Sie einen Schritt zurück, unser Performance -Benchmark -Test zeigt, dass Jolt -Prover (auf dem M3 Max) beweist, dass die Geschwindigkeit eines Programms so schnell ist wie der 100 -kHz -Prozessor -es ist die beiden von Apollo Nr. 11 besetzten Flugmissionsmissionskapazitäten für Flugbordmission. Mehr als.Führen Sie einen bescheidenen Vergleich durch, 150-mal langsamer als der Ti-84-Grafikrechner.
Um Computer -Level -Leistung zu erzielen, haben wir noch viel zu tun.Wir werden die Leistung und Verfügbarkeit von Ruck weiter verbessern, um Entwicklern die beste Entwicklungserfahrung zu bieten.In den folgenden Hauptaufgaben auf der Roadmap fühlen wir uns aufgeregt:
-
BiniusDerBen Diamond und Jim Posen haben kürzlich eine multilineare Polynom -Engagement -Lösung vorgeschlagen.Die Kombination des Sumcheck-Algorithmus von Binius und Justin Thaler verbessert die Ausdrucksleistung von Ruck erheblich (wir werden voraussichtlich 5-10 Mal betragen).
-
Weitere Anweisungen:Die Jolt -Code -Bibliothek wird derzeit RV32I bereitgestellt, die Rucksstruktur ist jedoch sehr flexibel.Wir planen, die Erweiterung der RISC-V „M“ hinzuzufügen, um Unterstützung für die Integer-Multiplikations- und Entfernungsmethode zu bieten, wie in Jolts Artikel beschrieben.Darüber hinaus kann Jolt problemlos 64 -Bit -Varianten RV64IM unterstützen.
-
Kontinuationen kontinuierliches System:Derzeit kann Ruck aufgrund der Speichergrenze die Berechnung einer Länge nicht beweisen.Wir werden Kontinuationen verwenden, um die lange Berechnung in kleinere Berechnungsblöcke zu unterteilen, und jeder Block kann durch Ruck nachgewiesen werden.Dies verringert die Speicherverwendung und unterstützt zusätzliche Parallelität, wenn sie eine einzige Berechnung beweist.
-
Zertifikat rekursiv:Durch die Kombination von Ruck mit einem anderen Proof -System reduzierten wir die Größe und Überprüfungszeit weiter.Beispielsweise kann das Jolt -Überprüfungsgerät in der Zirkomsprache implementiert werden, um den konstant -gesiedeten Groth16 -Beweis zu erzeugen, der in der Kette effektiv überprüft werden kann.