Ein ZK-Koprozessor ist darauf ausgelegt, Berechnungen von der Blockchain auszulagern und gleichzeitig die Überprüfbarkeit aufrechtzuerhalten. Im Kern besteht die Architektur aus drei Hauptkomponenten: der Prover-Engine, dem Verifier-Vertrag und der virtuellen Maschine (zkVM oder Schaltkreislaufzeit).
Die Prover-Engine ist verantwortlich für die Ausführung der Berechnung außerhalb der Blockchain und die Generierung eines kryptografischen Beweises, dass die Berechnung korrekt durchgeführt wurde. Diese Engine nimmt Eingabedaten entgegen, führt sie durch eine definierte Logik oder ein Programm und gibt einen prägnanten Zero-Knowledge-Beweis aus. Der Prover ist in der Regel ein ressourcenintensiver Prozess, der je nach Art des verwendeten Beweissystems Rechenressourcen wie CPUs oder GPUs erfordert.
Der Verifier-Vertrag ist on-chain bereitgestellt und leichtgewichtig gestaltet. Sein einziges Ziel ist es, die Richtigkeit des eingereichten Beweises zu validieren. Er hält den Verifizierungsschlüssel, der mathematisch aus der gleichen Logik abgeleitet ist, die auch vom Prover verwendet wird. Wenn der Smart Contract einen Beweis erhält, überprüft er diesen gegen den Schlüssel und bestätigt, ob das Ergebnis gültig ist. Dieser Prozess ist schnell und kostengünstig im Vergleich zur Durchführung der vollständigen Berechnung on-chain.
Die zkVM oder arithmetische Schaltung definiert die Logik des Programms. Sie fungiert als Laufzeitumgebung für den Prover. In einigen Systemen handelt es sich um eine benutzerdefinierte Schaltung, die in einer Low-Level-DSL geschrieben ist, während andere vollständige virtuelle Maschinen verwenden, die Code in höheren Programmiersprachen interpretieren können. Gemeinsam ermöglichen diese Komponenten vertrauenslose Off-Chain-Ausführung und prägnante On-Chain-Verifizierung.
Mehrere Tools und Frameworks sind entstanden, um die Entwicklung von ZK-Koprozessoren zu unterstützen. Circom ist eine der frühesten und am weitesten verbreiteten Schaltungssprachen. Es ermöglicht Entwicklern, arithmetische Schaltungen mit einer deklarativen Syntax zu definieren. Diese Schaltungen werden dann in Beweissysteme wie Groth16 oder PLONK kompiliert. Circom ist bekannt für seine Flexibilität, hat jedoch eine steile Lernkurve und erfordert manuelles Schaltungsdesign.
Noir ist eine neuere Sprache, die entwickelt wurde, um die ZK-Entwicklung zugänglicher zu machen. Entwickelt von Aztec, ist Noir eine Rust-ähnliche Sprache, die viele der Komplexitäten von Constraints-Systemen abstrahiert. Es wird automatisch in Zero-Knowledge-Schaltungen kompiliert, was es einfacher macht, private Programme mit lesbarer Syntax zu schreiben.
Über Sprachen hinaus gewinnen zkVMs aufgrund ihrer Fähigkeit, allgemeine Programme in einer ZK-freundlichen Umgebung auszuführen, an Aufmerksamkeit. Risc Zero bietet eine der fortschrittlichsten zkVM-Implementierungen. Es emuliert den RISC-V-Befehlssatz und ermöglicht Entwicklern, jedes in Rust oder C geschriebene Programm als Zero-Knowledge-Beweis auszuführen. SP1, entwickelt von Succinct, verfolgt einen ähnlichen Ansatz, zielt jedoch darauf ab, die Leistung und Portabilität über Beweissysteme hinweg zu optimieren.
Diese Umgebungen sind entscheidend, da sie bestimmen, wie ausdrucksstark, effizient und zusammensetzbar ZK-Koprozessoren sein können. Während niedrigstufige Schaltungen für leistungskritische Anwendungen nützlich bleiben, ermöglichen zkVMs eine breitere Entwicklerakzeptanz und schnellere Iteration.
Um zu verstehen, wie ein ZK-Koprozessor in der Praxis funktioniert, betrachten Sie den Ausführungsfluss eines Systems wie Axiom oder Bonsai von Risc Zero.
Im Modell von Axiom definiert ein Entwickler eine Abfrage über historische Ethereum-Daten – zum Beispiel, ob ein Nutzer zu einem bestimmten Block ein spezifisches Guthaben gehalten hat. Diese Abfrage wird an Axioms Off-Chain-Koprozessor gesendet. Der Koprozessor ruft die relevanten On-Chain-Daten ab, verarbeitet die Abfrage und führt die Logik mit einem zkVM aus. Sobald die Berechnung abgeschlossen ist, generiert der Koprozessor einen Zero-Knowledge-Beweis, der die Richtigkeit des Ergebnisses bestätigt. Dieser Beweis wird On-Chain an einen Verifier-Vertrag eingereicht, der ihn validiert und es einem Smart Contract ermöglicht, das Ergebnis mit vollem Vertrauen zu nutzen.
Risc Zero's Bonsai folgt einer ähnlichen Struktur, verallgemeinert jedoch den Prozess. Entwickler schreiben ihre Anwendungslogik in einer Hochsprache wie Rust. Dieser Code wird in ein zkVM-Image kompiliert und off-chain mit der Infrastruktur von Bonsai ausgeführt. Nach der Ausführung wird ein Beweis generiert, der über einen on-chain Verifier an jede Blockchain zurückgegeben werden kann.
Diese Architektur ermöglicht es Entwicklern, leistungsstarke, vertrauensminimierte Logik zu erstellen, ohne die Blockchain zu überlasten. Sie ermöglicht auch wiederverwendbare, zusammensetzbare Beweise, die mehreren Verträgen oder Anwendungen dienen können.
Die Stärke eines ZK-Coprozessors liegt im Vertrauensmodell, das er ermöglicht. Im Gegensatz zu zentralisierten Orakeln oder Off-Chain-Berechnungsanbietern erfordern ZK-Coprozessoren nicht, dass die Benutzer der Entität vertrauen, die die Berechnung durchführt. Stattdessen wird das Vertrauen auf die Mathematik übertragen.
Der Kern dieses Vertrauens basiert auf der Struktur von Zero-Knowledge-Proofs. Diese Beweise sind so gestaltet, dass jede ungültige Berechnung, selbst ein einzelnes falsches Bit, zu einer fehlgeschlagenen Verifizierung führt. Der Verifier-Vertrag kann nicht dazu gebracht werden, ein falsches Ergebnis zu akzeptieren, vorausgesetzt, die kryptografischen Annahmen sind gültig.
Darüber hinaus benötigt der Prüfer nur die öffentlichen Eingaben, den Beweis und den Verifizierungsschlüssel, sodass es keine Abhängigkeit von der Identität oder dem Verhalten des Beweisführers gibt. Jede dritte Partei kann den Beweis erstellen, und solange er die Überprüfung besteht, wird er akzeptiert. Das bedeutet, dass Beweisführer dezentralisiert, genehmigungsfrei und sogar incentiviert sein können, was ein Merkmal ist, das in Beweisnetzwerken weiter untersucht wird.
Durch die Kombination von kryptografischen Garantien mit der Blockchain-Endgültigkeit ermöglichen ZK-Koprozessoren eine neue vertrauenslose Ausführungsebene, die nicht auf zentralisierte Dienste, Reputation oder Multisig-Konsens angewiesen ist.
ZK-Koprozessoren finden in Bereichen, in denen Berechnungen vertrauensminimiert, kosteneffizient oder privat sein müssen, echten Anklang. Im DeFi-Bereich können sie zeitgewichtete Durchschnittspreise, Vermögenswerte über die Zeit oder maßgeschneiderte Risikomodelle berechnen, ohne alle Daten on-chain zu speichern. Dies ermöglicht intelligentere Finanzverträge, ohne die Gasgebühren zu erhöhen oder die Blockchain aufzublähen.
In Cross-Chain-Anwendungen können ZK-Koprozessoren als Light Clients fungieren. Anstatt für jede Kette vollständige Knoten auszuführen, können Anwendungen einen kurzen Beweis für den Zustand einer anderen Kette verifizieren. Dies vereinfacht Brücken und Messaging-Protokolle drastisch und verbessert sowohl die Sicherheit als auch die Interoperabilität.
Layer-2-Ökosysteme übernehmen ebenfalls ZK-Coprocessoren, um die Rollup-Logik zu optimieren. Anstatt jede Interaktion innerhalb des Rollup-Schaltkreises auszuführen, können Rollups bestimmte Aufgaben, wie Betrugserkennung, Oracle-Überprüfung oder benutzerdefinierte Logik, an externe ZK-Coprocessoren delegieren. Dies reduziert die Nachweis-Kosten und macht Rollups modularer.
ZK-Koprozessoren entwickeln sich somit zu wesentlichen Infrastrukturkomponenten. Sie erweitern, was Blockchains leisten können, ohne Kompromisse bei Dezentralisierung oder Leistung einzugehen. Mit dem Reifen von Tools und Laufzeiten werden sie wahrscheinlich zu Standardoptionen im Entwicklungs-Stack für jede fortschrittliche dezentrale Anwendung.