Formally Verifying Noir Zero Knowledge Programs with NAVe
Dieses Paper präsentiert NAVe, einen Open-Source-Formal-Verifier, der SMT-LIB und den cvc5-Solver verwendet, um die Korrektheit und die ordnungsgemäßen Constraints von Noir Zero-Knowledge-Programmen formal zu verifizieren, indem er deren ACIR-Zwischenrepräsentation in endliche Körper-Polynomgleichungen übersetzt.
Originalarbeit lizenziert unter CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/). Dies ist eine KI-generierte Erklärung des untenstehenden Papers. Sie wurde nicht von den Autoren verfasst oder gebilligt. Für technische Genauigkeit konsultieren Sie das Originalpaper. Vollständigen Haftungsausschluss lesen
Stellen Sie sich vor, Sie bauen einen Hochsicherheits-Tresor. Sie möchten einem Bankmanager beweisen, dass Sie die Kombination zum Tresor kennen, ohne ihm die Kombination tatsächlich zu verraten. Das ist die Magie von Zero-Knowledge-Beweisen (ZK-Proofs).
Der Bau dieser Tresore ist jedoch knifflig. Die „Blaupausen“ für diese Beweise sind komplexe mathematische Rätsel, die man arithmetische Schaltkreise nennt. Wenn auch nur eine einzige Zeile der Blaupause falsch ist, könnte der Tresor unsicher sein oder der Beweis könnte fehlschlagen.
Dieses Paper stellt ein neues Werkzeug namens NAVe (Noir Acir Verifier) vor, das diese Blaupausen auf Fehler überprüft, bevor sie jemals verwendet werden. So funktioniert es, einfach erklärt:
1. Das Problem: Das „Geheime Rezept“ vs. das „Kochbuch“
Die Autoren konzentrieren sich auf eine Programmiersprache namens Noir. Betrachten Sie Noir als ein hochsprachliches Kochbuch, das es einfach macht, Rezepte für diese Tresore zu schreiben.
- Der Koch (Entwickler): Schreibt ein Rezept in leicht lesbarem Noir.
- Der Übersetzer (Compiler): Verwandelt dieses Rezept in eine strikte, niederschwellige Bedienungsanleitung namens ACIR. Diese Anleitung ist eine Liste von mathematischen Gleichungen, die der Computer lösen muss, um zu beweisen, dass der Tresor sicher ist.
- Die Gefahr: Manchmal macht der Übersetzer einen Fehler, oder der Koch vergisst einen entscheidenden Schritt. In der Welt von ZK wird dies als „unterbestimmt“ (under-constrained) bezeichnet. Es ist, als würde man ein Rezept schreiben, das sagt „Salz hinzufügen“, aber vergisst zu sagen, wie viel. Das Ergebnis ist zwar essbar, aber nicht das Gericht, das man eigentlich beabsichtigt hat.
2. Die Lösung: Der „Mathematik-Detektiv“ (NAVe)
Die Autoren haben NAVe entwickelt, einen formalen Verifizierer. Betrachten Sie NAVe als einen superintelligenten Mathematik-Detektiv, der die niederschwellige Bedienungsanleitung (ACকIR) liest und prüft, ob die Mathematik tatsächlich zu dem passt, was der Koch beabsichtigt hat.
NAVe nutzt eine leistungsstarke Logik-Engine (einen sogenannten SMT-Solver), um Fragen zu stellen wie:
- „Wenn ich eine geheime Zahl einsetze, führt die Mathematik dann immer zum korrekten öffentlichen Beweis?“
- „Gibt es einen Weg, das System mit einer gefälschten Zahl zu überlisten?“
Wenn die Mathematik fehlerhaft ist, sagt NAVe nicht einfach „Fehler“. Es agiert wie ein Detektiv, der eine Spur findet: Es zeigt dem Entwickler genau auf, welche Zahl er hätte verwenden können, um das System zu brechen. Dies hilft ihm, die Blaupause sofort zu korrigieren.
3. Zwei Wege, das Rätsel zu lösen
Das Paper beschreibt zwei verschiedene Arten, wie NAVe die mathematischen Rätsel übersetzt, um sie zu lösen:
- Der Weg der ganzen Zahlen: Es behandelt die Zahlen wie reguläre ganze Zahlen (1, 2, 3...) und prüft die Mathematik nach Standard-Arithmetikregeln.
- Der Weg der endlichen Körper (Finite Fields): Es behandelt die Zahlen so, als befänden sie sich auf einer kreisförmigen Uhr (wo man nach einer bestimmten Zahl wieder bei Null beginnt). Genau so funktionieren die eigentlichen ZK-Beweise.
Die Autoren stellten fest, dass keine der beiden Methoden für jede Situation perfekt ist. Manchmal ist der „Ganze-Zahlen-Detektiv“ schneller; ein anderes Mal ist der „Endliche-Körper-Detektiv“ besser. Sie schlagen vor, beide Detektive gleichzeitig einzusetzen, um das beste Ergebnis zu erzielen.
4. Die „Unconstrained“-Falle
Ein einzigartiges Merkmal von Noir ist der „unconstrained Code“ (nicht eingeschränkter Code). Stellen Sie sich einen Teil des Rezepts vor, in dem der Koch erlaubt ist, die Zutaten zu raten, ohne dass dies überprüft wird. Dies ist nützlich für die Geschwindigkeit, aber gefährlich, wenn der Koch falsch rät.
- Das Risiko: Ein Entwickler könnte Code schreiben, der so aussieht, als würde er die Zutaten prüfen, aber weil er sich im „unconstrained“-Abschnitt befindet, erzwingt der Computer die Prüfung nicht tatsächlich.
- NAVes Aufgabe: NAVe sucht gezielt nach diesen „Geister-Checks“. Es verifiziert, dass selbst wenn ein Entwickler den „Rate-Abschnitt“ verwendet, er eine separate, strikte Regel (ein
assert) hinzugefügt hat, um sicherzustellen, dass die Vermutung tatsächlich korrekt war.
5. Was sie herausgefunden haben
Die Autoren haben NAVe an einer Vielzahl bestehender Noir-Programme getestet:
- Es funktioniert: NAVe hat erfolgreich Fehler in Programmen gefunden, bei denen die Mathematik nicht mit der Absicht übereinstimmte.
- Der Engpass: Sie entdeckten, dass das Überprüfen von „Bereicheinschränkungen“ (Range Constraints – also sicherzustellen, dass eine Zahl innerhalb einer bestimmten Anzahl von Bits liegt, wie etwa die Prüfung, ob eine Zahl zwischen 0 und 255 liegt) sehr schwierig für den Mathematik-Detektiv ist. Es dauert manchmal sehr lange oder bleibt stecken.
- Die Zukunft: Sie planen, bessere „Abkürzungen“ (Abstraktionen) zu entwickeln, um dem Detektiv zu helfen, diese kniffligen Bereichs-Rätsel schneller zu lösen.
Zusammenfassung
Kurz gesagt ist NAVe ein Sicherheitsnetz für Entwickler, die datenschutzwahrende Anwendungen erstellen. Es übersetzt ihren Code in eine strikte mathematische Sprache und nutzt einen leistungsstarken Solver, um sicherzustellen, dass der Code genau das tut, was er behauptet – und fängt dabei subtile Bugs ab, die ansonsten zu Sicherheitsfehlern führen könnten. Es ist wie ein strenger Inspektor, der die strukturelle Integrität einer Brücke prüft, bevor jemand darauf fahren darf.
Ertrinken Sie in Arbeiten in Ihrem Fachgebiet?
Erhalten Sie tägliche Digests der neuesten Arbeiten passend zu Ihren Forschungsbegriffen — mit technischen Zusammenfassungen, in Ihrer Sprache.