
Öffentliche Blockchains bieten Transparenz und Integrität auf Kosten der Privatsphäre – jede Transaktion und jeder Vertragsstatus ist allen Teilnehmern zugänglich. Diese Offenheit schafft Probleme wie MEV (Miner Extractable Value)-Angriffe, Copy-Trading und die Offenlegung sensibler Geschäftslogik. Programmierbare Privatsphäre zielt darauf ab, diese Probleme zu lösen, indem sie Berechnungen auf privaten Daten ermöglicht, ohne die Daten selbst preiszugeben. Zwei aufkommende kryptografische Paradigmen machen dies möglich: Fully Homomorphic Encryption Virtual Machines (FHE-VM) und Zero-Knowledge (ZK) Koprozessoren. Diese Ansätze ermöglichen Off-Chain- oder verschlüsselte Berechnungen mit On-Chain-Verifizierung, wodurch die Vertraulichkeit gewahrt und gleichzeitig die vertrauenslose Korrektheit beibehalten wird. In diesem Bericht tauchen wir tief in die Architekturen von FHE-VMs und ZK-Koprozessoren ein, vergleichen ihre Kompromisse und untersuchen Anwendungsfälle in den Bereichen Finanzen, Identität, Gesundheitswesen, Datenmärkte und dezentrales maschinelles Lernen.
Fully Homomorphic Encryption Virtual Machine (FHE-VM)
Fully Homomorphic Encryption (FHE) ermöglicht beliebige Berechnungen auf verschlüsselten Daten, ohne diese jemals zu entschlüsseln. Eine FHE Virtual Machine integriert diese Fähigkeit in Blockchain-Smart Contracts und ermöglicht so einen verschlüsselten Vertragsstatus und eine verschlüsselte Logik. In einer FHE-fähigen Blockchain (oft als fhEVM für EVM-kompatible Designs bezeichnet) bleiben alle Eingaben, der Vertragsspeicher und die Ausgaben während der gesamten Ausführung verschlüsselt. Dies bedeutet, dass Validatoren Transaktionen verarbeiten und den Status aktualisieren können, ohne sensible Werte zu erfahren, wodurch eine On-Chain-Ausführung mit Datenvertraulichkeit erreicht wird.
Architektur und Design von FHE-VM
Eine typische FHE-VM erweitert eine Standard-Smart-Contract-Laufzeitumgebung (wie die Ethereum Virtual Machine) um native Unterstützung für verschlüsselte Datentypen und Operationen. Zum Beispiel führt Zamas FHEVM verschlüsselte Ganzzahlen (euint8
, euint32
usw.), verschlüsselte Booleans (ebool
) und sogar verschlüsselte Arrays als erstklassige Typen ein. Smart-Contract-Sprachen wie Solidity werden durch Bibliotheken oder neue Opcodes erweitert, sodass Entwickler arithmetische (add
, mul
usw.), logische Operationen und Vergleiche direkt auf Chiffretexten durchführen können. Im Hintergrund rufen diese Operationen FHE-Primitive auf (z. B. unter Verwendung der TFHE-Bibliothek), um verschlüsselte Bits zu manipulieren und verschlüsselte Ergebnisse zu erzeugen.
Verschlüsselter Statusspeicher wird unterstützt, sodass Vertragsvariablen im Blockchain-Status verschlüsselt bleiben. Der Ausführungsfluss ist typischerweise:
- Client-seitige Verschlüsselung: Benutzer verschlüsseln ihre Eingaben lokal mit dem öffentlichen FHE-Schlüssel, bevor sie Transaktionen senden. Der Verschlüsselungsschlüssel ist öffentlich (für Verschlüsselung und Auswertung), während der Entschlüsselungsschlüssel geheim bleibt. In einigen Designs verwaltet jeder Benutzer seinen eigenen Schlüssel; in anderen wird ein einziger globaler FHE-Schlüssel verwendet (unten diskutiert).
- On-Chain homomorphe Berechnung: Miner/Validatoren führen den Vertrag mit verschlüsselten Opcodes aus. Sie führen dieselben deterministischen homomorphen Operationen auf den Chiffretexten durch, sodass ein Konsens über den verschlüsselten neuen Status erzielt werden kann. Entscheidend ist, dass Validatoren niemals Klartextdaten sehen – sie sehen nur „Kauderwelsch“-Chiffretext, können ihn aber dennoch konsistent verarbeiten.
- Entschlüsselung (Optional): Wenn ein Ergebnis offengelegt oder Off-Chain verwendet werden muss, kann eine autorisierte Partei mit dem privaten Schlüssel den Ausgabechiffretext entschlüsseln. Andernfalls bleiben die Ergebnisse verschlüsselt und können als Eingaben für weitere Transaktionen verwendet werden (was aufeinanderfolgende Berechnungen auf persistentem verschlüsseltem Status ermöglicht).
Eine wichtige Designüberlegung ist das Schlüsselmanagement. Ein Ansatz sind benutzerspezifische Schlüssel, bei denen jeder Benutzer seinen geheimen Schlüssel besitzt und nur er die für ihn relevanten Ausgaben entschlüsseln kann. Dies maximiert die Privatsphäre (niemand sonst kann Ihre Daten jemals entschlüsseln), aber homomorphe Operationen können Daten, die unter verschiedenen Schlüsseln verschlüsselt sind, nicht ohne komplexe Multi-Schlüssel-Protokolle mischen. Ein anderer Ansatz, der von Zamas FHEVM verwendet wird, ist ein globaler FHE-Schlüssel: Ein einziger öffentlicher Schlüssel verschlüsselt alle Vertragsdaten, und eine verteilte Gruppe von Validatoren hält Anteile des Schwellenwert-Entschlüsselungsschlüssels. Die öffentlichen Verschlüsselungs- und Auswertungsschlüssel werden On-Chain veröffentlicht, sodass jeder Daten an das Netzwerk verschlüsseln kann; der private Schlüssel wird unter Validatoren aufgeteilt, die bei Bedarf im Rahmen eines Schwellenwertschemas gemeinsam entschlüsseln können. Um zu verhindern, dass die Kollusion von Validatoren die Privatsphäre gefährdet, verwendet Zama ein Schwellenwert-FHE-Protokoll (basierend auf ihrer Forschung Noah’s Ark) mit „Rauschflutung“, um partielle Entschlüsselungen sicher zu machen. Nur wenn ein ausreichendes Quorum von Validatoren kooperiert, kann ein Klartext wiederhergestellt werden, zum Beispiel um eine Leseanfrage zu bedienen. Im Normalbetrieb sieht jedoch kein einzelner Knoten jemals Klartext – Daten bleiben jederzeit On-Chain verschlüsselt.
Zugriffskontrolle ist eine weitere entscheidende Komponente. FHE-VM-Implementierungen umfassen detaillierte Kontrollen, um zu verwalten, wer (falls überhaupt) Entschlüsselungen auslösen oder auf bestimmte verschlüsselte Felder zugreifen kann. Zum Beispiel unterstützt Cyphers fhEVM Access Control Lists für Chiffretexte, die es Entwicklern ermöglichen, anzugeben, welche Adressen oder Verträge mit bestimmten Daten interagieren oder diese erneut verschlüsseln können. Einige Frameworks unterstützen die Neuverschlüsselung: die Fähigkeit, einen verschlüsselten Wert von einem Benutzerschlüssel auf den eines anderen zu übertragen, ohne Klartext preiszugeben. Dies ist nützlich für Dinge wie Datenmarktplätze, bei denen ein Datenbesitzer einen Datensatz mit seinem Schlüssel verschlüsseln und nach dem Kauf auf den Schlüssel des Käufers neu verschlüsseln kann – alles On-Chain, ohne jemals öffentlich zu entschlüsseln.
Gewährleistung von Korrektheit und Privatsphäre
Man könnte fragen: Wenn alle Daten verschlüsselt sind, wie setzen wir die Korrektheit der Vertragslogik durch? Wie kann die Kette ungültige Operationen verhindern, wenn sie die Werte nicht „sehen“ kann? FHE allein liefert keinen Korrektheitsbeweis – Validatoren können die homomorphen Schritte ausführen, aber sie können nicht von Natur aus erkennen, ob die verschlüsselte Eingabe eines Benutzers gültig war oder ob eine bedingte Verzweigung genommen werden sollte usw., ohne zu entschlüsseln. Zero-Knowledge Proofs (ZKPs) können FHE ergänzen, um diese Lücke zu schließen. In einer FHE-VM müssen Benutzer typischerweise einen ZK-Beweis für bestimmte Klartextbedingungen liefern, wann immer dies erforderlich ist. Zamas Design verwendet zum Beispiel einen ZK Proof of Plaintext Knowledge (ZKPoK), der jede verschlüsselte Eingabe begleitet. Dies beweist, dass der Benutzer den Klartext kennt, der seinem Chiffretext entspricht, und dass er die erwarteten Kriterien erfüllt, ohne den Klartext selbst preiszugeben. Solche „zertifizierten Chiffretexte“ verhindern, dass ein böswilliger Benutzer eine fehlerhafte Verschlüsselung oder einen Wert außerhalb des Bereichs übermittelt. Ähnlich können Benutzer für Operationen, die eine Entscheidung erfordern (z. B. sicherstellen, dass Kontostand ≥ Abhebungsbetrag), einen ZK-Beweis liefern, dass diese Bedingung für die Klartexte erfüllt ist, bevor die verschlüsselte Operation ausgeführt wird. Auf diese Weise entschlüsselt oder sieht die Kette die Werte nicht, gewinnt aber die Gewissheit, dass die verschlüsselten Transaktionen den Regeln folgen.
Ein weiterer Ansatz bei FHE-Rollups besteht darin, die Off-Chain-Validierung mit ZKPs durchzuführen. Fhenix (ein L2-Rollup, das FHE verwendet) entscheidet sich für ein optimistisches Modell, bei dem eine separate Netzwerkkomponente, ein Threshold Service Network, verschlüsselte Ergebnisse entschlüsseln oder verifizieren kann, und jede falsche Berechnung mit einem Betrugsbeweis angefochten werden kann. Im Allgemeinen stellt die Kombination von FHE + ZK oder Betrugsbeweisen sicher, dass die verschlüsselte Ausführung vertrauenslos bleibt. Validatoren entschlüsseln entweder nur gemeinsam, wenn sie dazu autorisiert sind, oder sie verifizieren Beweise, dass jeder verschlüsselte Statusübergang gültig war, ohne Klartext sehen zu müssen.
Leistungsüberlegungen: FHE-Operationen sind rechenintensiv – um viele Größenordnungen langsamer als normale Arithmetik. Zum Beispiel kostet eine einfache 64-Bit-Addition auf Ethereum ~3 Gas, während eine Addition auf einer verschlüsselten 64-Bit-Ganzzahl (euint64) unter Zamas FHEVM grob 188.000 Gas kostet. Selbst eine 8-Bit-Addition kann ~94k Gas kosten. Dieser enorme Overhead bedeutet, dass eine einfache Implementierung auf bestehenden Knoten unpraktisch langsam und kostspielig wäre. FHE-VM-Projekte begegnen dem mit optimierten kryptografischen Bibliotheken (wie Zamas TFHE-rs-Bibliothek für binäres Gate-Bootstrapping) und benutzerdefinierten EVM-Modifikationen zur Leistungssteigerung. Zum Beispiel fügt Cyphers modifizierter Geth-Client neue Opcodes hinzu und optimiert die Ausführung homomorpher Anweisungen in C++/Assembly, um den Overhead zu minimieren. Dennoch erfordert das Erreichen eines nutzbaren Durchsatzes Beschleunigung. Laufende Arbeiten umfassen die Verwendung von GPUs, FPGAs und sogar spezialisierten photonischen Chips, um FHE-Berechnungen zu beschleunigen. Zama berichtet, dass sich ihre FHE-Leistung seit 2024 um das Hundertfache verbessert hat und Tausende von TPS mit GPU/FPGA-Beschleunigung anstrebt. Dedizierte FHE-Koprozessor-Server (wie Optalysys’ LightLocker Node) können an Validatorknoten angeschlossen werden, um verschlüsselte Operationen auf Hardware auszulagern, und unterstützen >100 verschlüsselte ERC-20-Transfers pro Sekunde pro Knoten. Mit der Verbesserung von Hardware und Algorithmen wird sich die Lücke zwischen FHE und einfacher Berechnung verringern, wodurch private Verträge praktischere Geschwindigkeiten erreichen können.
Kompatibilität: Ein Hauptziel von FHE-VM-Designs ist es, mit bestehenden Entwicklungsworkflows kompatibel zu bleiben. Cyphers und Zamas fhEVM-Implementierungen ermöglichen es Entwicklern, Verträge in Solidity mit minimalen Änderungen zu schreiben – unter Verwendung einer Bibliothek zur Deklaration verschlüsselter Typen und Operationen. Der Rest der Ethereum-Toolchain (Remix, Hardhat usw.) kann weiterhin verwendet werden, da die zugrunde liegenden Modifikationen hauptsächlich auf Client-/Knotenebene erfolgen. Dies senkt die Eintrittsbarriere: Entwickler müssen keine Kryptografieexperten sein, um einen vertraulichen Smart Contract zu schreiben. Zum Beispiel kann eine einfache Addition zweier Zahlen als euint32 c = a + b;
geschrieben werden, und die FHEVM kümmert sich im Hintergrund um die verschlüsselungsspezifischen Details. Die Verträge können sogar mit normalen Verträgen interoperieren – z. B. könnte ein verschlüsselter Vertrag bei Bedarf ein entschlüsseltes Ergebnis an einen Standardvertrag ausgeben, was eine Mischung aus privaten und öffentlichen Teilen in einem Ökosystem ermöglicht.
Aktuelle FHE-VM-Projekte
Mehrere Projekte sind Pioniere in diesem Bereich. Zama (ein Pariser FHE-Startup) entwickelte das Kernkonzept und die Bibliotheken der FHEVM (TFHE-rs und eine fhevm-solidity
-Bibliothek). Sie beabsichtigen nicht, eine eigene Kette zu starten, sondern Infrastruktur für andere bereitzustellen. Inco ist eine L1-Blockchain (aufgebaut auf Cosmos SDK mit Evmos), die Zamas FHEVM integriert hat, um eine modulare vertrauliche Kette zu schaffen. Ihre Testnetze (Gentry und Paillier genannt) zeigen verschlüsselte ERC-20-Transfers und andere private DeFi-Primitive. Fhenix ist ein Ethereum Layer-2 Optimistic Rollup, das FHE für die Privatsphäre verwendet. Es entschied sich für einen optimistischen (Betrugsbeweis-)Ansatz anstelle eines ZK-Rollups aufgrund der hohen Kosten, FHE und ZK für jeden Block zusammen zu verwenden. Fhenix verwendet dieselbe TFHE-rs-Bibliothek (mit einigen Modifikationen) und führt ein Threshold Service Network zur dezentralen Handhabung von Entschlüsselungen ein. Es gibt auch unabhängige Teams wie Fhenix (jetzt umbenannt) und Startups, die MPC + FHE-Hybride erforschen. Darüber hinaus baut Cypher (von Z1 Labs) ein Layer-3-Netzwerk auf, das sich auf KI und Privatsphäre konzentriert und eine fhEVM mit Funktionen wie geheimen Speichern und Unterstützung für föderiertes Lernen verwendet. Das Ökosystem ist noch jung, wächst aber schnell, angetrieben durch erhebliche Finanzierungen – z. B. wurde Zama bis 2025 mit über 130 Millionen US-Dollar zu einem „Einhorn“, um die FHE-Technologie voranzutreiben.
Zusammenfassend ermöglicht eine FHE-VM datenschutzfreundliche Smart Contracts, indem sie die gesamte Logik auf verschlüsselten Daten On-Chain ausführt. Dieses Paradigma gewährleistet maximale Vertraulichkeit – nichts Sensibles wird jemals in Transaktionen oder im Status offengelegt – während der bestehende Blockchain-Konsens für die Integrität genutzt wird. Die Kosten sind eine erhöhte Rechenlast für Validatoren und Komplexität im Schlüsselmanagement und der Beweisintegration. Als Nächstes untersuchen wir ein alternatives Paradigma, das die Berechnung vollständig Off-Chain auslagert und die Kette nur zur Verifizierung verwendet: den Zero-Knowledge-Koprozessor.
Zero-Knowledge-Koprozessoren (ZK-Koprozessoren)
Ein ZK-Koprozessor ist ein neues Architekturmuster für Blockchains, bei dem aufwendige Berechnungen Off-Chain durchgeführt und ein prägnanter Zero-Knowledge Proof ihrer Korrektheit On-Chain verifiziert wird. Dies ermöglicht Smart Contracts, eine weitaus größere Rechenleistung und Datenmenge zu nutzen, als die On-Chain-Ausführung zulassen würde, ohne die Vertrauenslosigkeit zu opfern. Der Begriff Koprozessor wird in Analogie zu Hardware-Koprozessoren (wie einem mathematischen Koprozessor oder einer GPU) verwendet, die spezialisierte Aufgaben für eine CPU übernehmen. Hier delegiert die „CPU“ der Blockchain (die native VM wie EVM) bestimmte Aufgaben an ein Zero-Knowledge-Beweissystem, das als kryptografischer Koprozessor fungiert. Der ZK-Koprozessor liefert ein Ergebnis und einen Beweis, dass das Ergebnis korrekt berechnet wurde, den der On-Chain-Vertrag verifizieren und dann verwenden kann.
Architektur und Workflow
In einem typischen Setup identifiziert ein dApp-Entwickler Teile seiner Anwendungslogik, die für die On-Chain-Ausführung zu teuer oder komplex sind (z. B. große Berechnungen über historische Daten, aufwendige Algorithmen, ML-Modellinferenz usw.). Er implementiert diese Teile als Off-Chain-Programm (in einer Hochsprache oder einem Schaltungs-DSL), das einen Zero-Knowledge Proof seiner Ausführung erzeugen kann. Die On-Chain-Komponente ist ein Verifizierer-Smart-Contract, der Beweise prüft und die Ergebnisse dem Rest des Systems zur Verfügung stellt. Der Ablauf lässt sich wie folgt zusammenfassen:
- Anfrage – Der On-Chain-Vertrag löst eine Anfrage für eine bestimmte Off-Chain-Berechnung aus. Dies kann durch eine Benutzertransaktion oder durch einen Vertrag, der die Schnittstelle des ZK-Koprozessors aufruft, initiiert werden. Zum Beispiel könnte ein DeFi-Vertrag „proveInterestRate(currentState)“ aufrufen oder ein Benutzer „queryHistoricalData(query)“.
- Off-Chain-Ausführung & Beweiserstellung – Ein Off-Chain-Dienst (der je nach Design ein dezentrales Netzwerk von Provern oder ein vertrauenswürdiger Dienst sein könnte) nimmt die Anfrage entgegen. Er sammelt alle erforderlichen Daten (On-Chain-Status, Off-Chain-Eingaben usw.) und führt die Berechnung in einer speziellen ZK Virtual Machine (ZKVM) oder Schaltung aus. Während der Ausführung wird eine Beweisspur generiert. Am Ende erstellt der Dienst einen prägnanten Beweis (z. B. einen SNARK oder STARK), der bescheinigt, dass „die Berechnung der Funktion F auf der Eingabe X das Ergebnis Y liefert“ und optional die Datenintegrität bescheinigt (mehr dazu unten).
- On-Chain-Verifizierung – Der Beweis und das Ergebnis werden an die Blockchain zurückgegeben (oft über eine Callback-Funktion). Der Verifizierer-Vertrag prüft die Gültigkeit des Beweises mittels effizienter kryptografischer Verifizierung (Pairing-Checks usw.). Wenn gültig, kann der Vertrag nun dem Ergebnis Y als korrekt vertrauen. Das Ergebnis kann im Status gespeichert, als Ereignis ausgegeben oder in weitere Vertragslogik eingespeist werden. Wenn der Beweis ungültig ist oder nicht innerhalb einer bestimmten Zeit bereitgestellt wird, kann die Anfrage als fehlgeschlagen betrachtet werden (und möglicherweise wird eine Fallback- oder Timeout-Logik ausgelöst).
Kritisch ist, dass die On-Chain-Gaskosten für die Verifizierung konstant sind (oder sehr langsam wachsen), unabhängig davon, wie komplex die Off-Chain-Berechnung war. Die Verifizierung eines prägnanten Beweises kann in der Größenordnung von einigen Hunderttausend Gas liegen (ein Bruchteil eines Ethereum-Blocks), aber dieser Beweis könnte Millionen von Off-Chain durchgeführten Rechenschritten repräsentieren. Wie ein Entwickler witzelte: „Möchten Sie eine digitale Signatur beweisen? ~15 .Mo¨chtenSieeineMillionSignaturenbeweisen?Auch 15.“. Diese Skalierbarkeit ist ein großer Gewinn: dApps können komplexe Funktionalitäten (Big-Data-Analysen, aufwendige Finanzmodelle usw.) anbieten, ohne die Blockchain zu überlasten.
Die Hauptkomponenten eines ZK-Koprozessor-Systems sind:
-
Beweisgenerierungsumgebung: Dies kann eine allgemeine ZKVM (die beliebige Programme ausführen kann) oder benutzerdefinierte Schaltungen sein, die auf spezifische Berechnungen zugeschnitten sind. Ansätze variieren:
- Einige Projekte verwenden handgefertigte Schaltungen für jede unterstützte Abfrage oder Funktion (maximale Effizienz für diese Funktion).
- Andere bieten eine Domain-Specific Language (DSL) oder eine Embedded DSL an, die Entwickler verwenden, um ihre Off-Chain-Logik zu schreiben, die dann in Schaltungen kompiliert wird (Balance zwischen Benutzerfreundlichkeit und Leistung).
- Der flexibelste Ansatz ist eine zkVM: eine virtuelle Maschine (oft basierend auf RISC-Architekturen), in der Programme in Standardsprachen (Rust, C usw.) geschrieben und automatisch bewiesen werden können. Dies opfert Leistung (die Simulation einer CPU in einer Schaltung fügt Overhead hinzu) für maximale Entwicklererfahrung.
-
Datenzugriff und Integrität: Eine einzigartige Herausforderung besteht darin, die Off-Chain-Berechnung mit den richtigen Daten zu versorgen, insbesondere wenn diese Daten auf der Blockchain liegen (vergangene Blöcke, Vertragszustände usw.). Eine naive Lösung besteht darin, den Prover von einem Archivknoten lesen zu lassen und ihm zu vertrauen – dies führt jedoch zu Vertrauensannahmen. ZK-Koprozessoren beweisen stattdessen typischerweise, dass alle verwendeten On-Chain-Daten tatsächlich authentisch waren, indem sie auf Merkle-Beweise oder Status-Commitments verweisen. Zum Beispiel könnte das Abfrageprogramm eine Blocknummer und einen Merkle-Beweis eines Speicherplatzes oder einer Transaktion entgegennehmen, und die Schaltung wird diesen Beweis gegen einen bekannten Block-Header-Hash verifizieren. Es gibt drei Muster:
- Inline-Daten: Die benötigten Daten On-Chain ablegen (als Eingabe für den Verifizierer), damit sie direkt überprüft werden können. Dies ist für große Daten sehr kostspielig und untergräbt den ganzen Sinn.
- Einem Orakel vertrauen: Einen Orakel-Dienst die Daten an den Beweis liefern lassen und dafür bürgen. Dies ist einfacher, führt aber das Vertrauen in eine dritte Partei wieder ein.
- Dateninklusion über ZK beweisen: Beweise für die Dateninklusion in der Kettengeschichte innerhalb der Zero-Knowledge-Schaltung selbst integrieren. Dies nutzt die Tatsache, dass jeder Ethereum-Block-Header den gesamten vorherigen Status (über den Status-Root) und die Transaktionshistorie festschreibt. Durch die Verifizierung von Merkle-Patricia-Beweisen der Daten innerhalb der Schaltung versichert der Ausgabebeweis dem Vertrag, dass „diese Berechnung echte Blockchain-Daten von Block N verwendet hat“ ohne zusätzliche Vertrauenswürdigkeit.
Der dritte Ansatz ist der vertrauensloseste und wird von fortgeschrittenen ZK-Koprozessoren wie Axiom und Xpansion verwendet (er erhöht zwar die Beweiskosten, ist aber aus Sicherheitsgründen vorzuziehen). Zum Beispiel modelliert Axioms System die Blockstruktur, den Status-Trie und den Transaktions-Trie von Ethereum in seinen Schaltungen, sodass es Aussagen wie „das Konto X
hatte zum Block N
den Saldo Y
“ oder „eine Transaktion mit bestimmten Eigenschaften erfolgte in Block N“ beweisen kann. Es nutzt die Tatsache, dass man, gegeben einen kürzlich vertrauenswürdigen Block-Hash, die Inklusion historischer Daten rekursiv beweisen kann, ohne einer externen Partei zu vertrauen.
-
Verifizierer-Vertrag: Dieser On-Chain-Vertrag enthält den Verifizierungsschlüssel und die Logik zum Akzeptieren oder Ablehnen von Beweisen. Für SNARKs wie Groth16 oder PLONK könnte der Verifizierer einige elliptische Kurvenpaarungen durchführen; für STARKs könnte er einige Hash-Berechnungen durchführen. Leistungsoptimierungen wie Aggregation und Rekursion können die On-Chain-Last minimieren. Zum Beispiel verwendet RISC Zeros Bonsai einen STARK-zu-SNARK-Wrapper: Es betreibt eine STARK-basierte VM Off-Chain für Geschwindigkeit, generiert dann aber einen kleinen SNARK-Beweis, der die Gültigkeit des STARK bescheinigt. Dies reduziert die Beweisgröße von Hunderten von Kilobytes auf wenige Hundert Bytes, wodurch die On-Chain-Verifizierung machbar und kostengünstig wird. Der Solidity-Verifizierer prüft dann einfach den SNARK (was eine Operation mit konstanter Zeit ist).
In Bezug auf die Bereitstellung können ZK-Koprozessoren als Layer-2-ähnliche Netzwerke oder als reine Off-Chain-Dienste fungieren. Einige, wie Axiom, begannen als spezialisierter Dienst für Ethereum (mit Unterstützung von Paradigm), bei dem Entwickler Anfragen an Axioms Prover-Netzwerk senden und Beweise On-Chain erhalten. Axioms Slogan war, Ethereum-Verträgen „vertrauenslosen Zugriff auf alle On-Chain-Daten und beliebige expressive Berechnungen darüber“ zu ermöglichen. Es fungiert effektiv als Abfrageorakel, dessen Antworten durch ZKPs anstelle von Vertrauen verifiziert werden. Andere, wie RISC Zeros Bonsai, bieten eine offenere Plattform: Jeder Entwickler kann ein Programm (kompiliert zu einer RISC-V-kompatiblen ZKVM) hochladen und Bonsais Beweisdienst über einen Relay-Vertrag nutzen. Das Relay-Muster, wie in Abbildung 1 dargestellt, beinhaltet einen Vertrag, der Anfragen und Antworten vermittelt: Der dApp-Vertrag ruft das Relay auf, um einen Beweis anzufordern, der Off-Chain-Dienst lauscht darauf (z. B. über Ereignis oder direkten Aufruf), berechnet den Beweis, und dann ruft das Relay eine Callback-Funktion auf dem dApp-Vertrag mit dem Ergebnis und dem Beweis auf. Dieses asynchrone Modell ist notwendig, da die Beweiserstellung je nach Komplexität Sekunden bis Minuten dauern kann. Es führt eine Latenz ein (und eine Lebendigkeitsannahme, dass der Prover antworten wird), während FHE-VM-Berechnungen synchron innerhalb eines Blocks stattfinden. Die Gestaltung der Anwendung zur Handhabung dieses asynchronen Workflows (möglicherweise ähnlich wie bei Oracle-Antworten) ist Teil der Verwendung eines ZK-Koprozessors.
Bemerkenswerte ZK-Koprozessor-Projekte
-
Axiom: Axiom ist ein ZK-Koprozessor, der auf Ethereum zugeschnitten ist und sich ursprünglich auf das Beweisen historischer On-Chain-Datenabfragen konzentrierte. Es verwendet das Halo2-Beweis-Framework (ein Plonk-ähnlicher SNARK), um Beweise zu erstellen, die Ethereums kryptografische Strukturen integrieren. In Axioms System kann ein Entwickler Dinge abfragen wie „wie war der Status von Vertrag X in Block N?“ oder eine Berechnung über alle Transaktionen in einem Bereich durchführen. Unter der Haube mussten Axioms Schaltungen Ethereums Status-/Trie-Logik implementieren, sogar elliptische Kurvenoperationen und SNARK-Verifizierung innerhalb der Schaltung durchführen, um Rekursion zu unterstützen. Trail of Bits bemerkte in einem Audit die Komplexität von Axioms Halo2-Schaltungen, die ganze Blöcke und Zustände modellieren. Nach dem Audit verallgemeinerte Axiom ihre Technologie zu einer OpenVM, die die Beweisführung beliebigen Rust-Codes mit derselben Halo2-basierten Infrastruktur ermöglicht. (Dies spiegelt den Trend wider, von domänenspezifischen Schaltungen zu einem allgemeineren ZKVM-Ansatz überzugehen.) Das Axiom-Team demonstrierte ZK-Abfragen, die Ethereum nativ nicht durchführen kann, wodurch ein zustandsloser Zugriff auf beliebige historische Daten mit kryptografischer Integrität ermöglicht wird. Sie haben auch die Sicherheit betont, indem sie unterbeschränkte Schaltungsfehler gefunden und behoben und die Korrektheit sichergestellt haben. Obwohl Axioms ursprüngliches Produkt während ihrer Neuausrichtung eingestellt wurde, bleibt ihr Ansatz ein Meilenstein bei ZK-Koprozessoren.
-
RISC Zero Bonsai: RISC Zero ist eine ZKVM, die auf der RISC-V-Architektur basiert. Ihre zkVM kann beliebige Programme (geschrieben in Rust, C++ und anderen Sprachen, die nach RISC-V kompiliert werden) ausführen und einen STARK-Beweis der Ausführung erzeugen. Bonsai ist RISC Zeros Cloud-Dienst, der diese Beweiserstellung bei Bedarf bereitstellt und als Koprozessor für Smart Contracts fungiert. Um es zu verwenden, schreibt ein Entwickler ein Programm (z. B. eine Funktion, die komplexe Mathematik ausführt oder eine Off-Chain-API-Antwort verifiziert), lädt es in den Bonsai-Dienst hoch und stellt einen entsprechenden Verifizierer-Vertrag bereit. Wenn der Vertrag diese Berechnung benötigt, ruft er das Bonsai-Relay auf, das die Beweisgenerierung auslöst und das Ergebnis über einen Callback zurückgibt. Eine demonstrierte Anwendungsbeispiel war die Off-Chain-Governance-Berechnung: RISC Zero zeigte eine DAO, die Bonsai verwendete, um Stimmen zu zählen und komplexe Abstimmungsmetriken Off-Chain zu berechnen, und dann einen Beweis zu veröffentlichen, damit der On-Chain-Governor-Vertrag dem Ergebnis mit minimalen Gaskosten vertrauen konnte. Die Technologie von RISC Zero betont, dass Entwickler vertraute Programmierparadigmen verwenden können – zum Beispiel eine Rust-Funktion schreiben, um etwas zu berechnen – und die schwere Arbeit der Schaltungserstellung von der zkVM übernommen wird. Allerdings können Beweise groß sein, daher implementierten sie, wie bereits erwähnt, eine SNARK-Kompression für die On-Chain-Verifizierung. Im August 2023 verifizierten sie erfolgreich RISC Zero-Beweise im Ethereum Sepolia Testnet, was in der Größenordnung von 300.000 Gas pro Beweis kostete. Dies öffnet die Tür für Ethereum-dApps, Bonsai heute als Skalierungs- und Datenschutzlösung zu nutzen. (Bonsai ist noch in der Alpha-Phase, nicht produktionsreif und verwendet ein temporäres SNARK-Setup ohne Zeremonie.)
-
Andere: Es gibt zahlreiche weitere Akteure und Forschungsinitiativen. Expansion/Xpansion (wie in einem Blog erwähnt) verwendet einen eingebetteten DSL-Ansatz, bei dem Entwickler Abfragen über On-Chain-Daten mit einer spezialisierten Sprache schreiben können, und es die Beweisgenerierung intern handhabt. StarkWares Cairo und Polygons zkEVM sind allgemeinere ZK-Rollup-VMs, aber ihre Technologie könnte für koprozessorähnliche Anwendungen wiederverwendet werden, indem Beweise in L1-Verträgen verifiziert werden. Wir sehen auch Projekte im Bereich ZKML (ZK Machine Learning), die effektiv als Koprozessoren fungieren, um ML-Modellinferenzen oder Trainingsergebnisse On-Chain zu verifizieren. Zum Beispiel kann ein zkML-Setup beweisen, dass „eine neuronale Netzwerk-Inferenz auf privaten Eingaben die Klassifizierung X erzeugt hat“, ohne die Eingaben offenzulegen oder die Berechnung On-Chain durchzuführen. Dies sind Sonderfälle des Koprozessorkonzepts, die auf KI angewendet werden.
Vertrauensannahmen: ZK-Koprozessoren verlassen sich auf die Korrektheit der kryptografischen Beweise. Wenn das Beweissystem sicher ist (und ein eventuelles Trusted Setup ehrlich durchgeführt wird), dann garantiert ein akzeptierter Beweis, dass die Berechnung korrekt war. Es ist kein zusätzliches Vertrauen in den Prover erforderlich – selbst ein böswilliger Prover kann den Verifizierer nicht von einer falschen Aussage überzeugen. Es gibt jedoch eine Lebendigkeitsannahme: Jemand muss die Off-Chain-Berechnung tatsächlich durchführen und den Beweis erbringen. In der Praxis könnte dies ein dezentrales Netzwerk (mit Anreizen oder Gebühren für die Arbeit) oder ein einzelner Dienstbetreiber sein. Wenn niemand den Beweis liefert, bleibt die On-Chain-Anfrage möglicherweise ungelöst. Ein weiterer subtiler Vertrauensaspekt ist die Datenverfügbarkeit für Off-Chain-Eingaben, die nicht auf der Blockchain liegen. Wenn die Berechnung von privaten oder externen Daten abhängt, kann der Verifizierer nicht wissen, ob diese Daten ehrlich bereitgestellt wurden, es sei denn, es werden zusätzliche Maßnahmen (wie Daten-Commitments oder Orakel-Signaturen) verwendet. Aber für rein On-Chain-Datenberechnungen stellen die beschriebenen Mechanismen eine Vertrauenslosigkeit sicher, die der Kette selbst entspricht (Axiom argumentierte, dass ihre Beweise für historische Abfragen „kryptografisch äquivalente Sicherheit wie Ethereum“ bieten).
Privatsphäre: Zero-Knowledge Proofs unterstützen auch von Natur aus die Privatsphäre – der Prover kann Eingaben verborgen halten, während er Aussagen darüber beweist. Im Kontext eines Koprozessors bedeutet dies, dass ein Beweis einem Vertrag ermöglichen kann, ein Ergebnis zu verwenden, das aus privaten Daten abgeleitet wurde. Zum Beispiel könnte ein Beweis zeigen: „Der Kredit-Score des Benutzers > 700, also Kredit genehmigen“, ohne den tatsächlichen Kredit-Score oder Rohdaten preiszugeben. Axioms Anwendungsfall betraf eher öffentlich bekannte Daten (Blockchain-Historie), daher lag der Fokus dort nicht auf der Privatsphäre. Aber RISC Zeros zkVM könnte verwendet werden, um Behauptungen über geheime Daten zu beweisen, die von einem Benutzer bereitgestellt werden: Die Daten bleiben Off-Chain, und nur das benötigte Ergebnis geht On-Chain. Es ist erwähnenswert, dass ein ZK-Beweis im Gegensatz zu FHE normalerweise keine fortlaufende Vertraulichkeit des Status bietet – es ist ein einmaliger Beweis. Wenn ein Workflow die Aufrechterhaltung eines geheimen Status über Transaktionen hinweg erfordert, könnte man dies aufbauen, indem der Vertrag ein Commitment auf den Status speichert und jeder Beweis einen gültigen Statusübergang vom alten Commitment zum neuen zeigt, wobei Geheimnisse verborgen bleiben. Dies ist im Wesentlichen die Funktionsweise von zk-Rollups für private Transaktionen (wie Aztec oder Zcash). ZK-Koprozessoren können also vollständig private Zustandsmaschinen ermöglichen, aber die Implementierung ist nicht trivial; oft werden sie für einmalige Berechnungen verwendet, bei denen entweder die Eingabe oder die Ausgabe (oder beides) bei Bedarf privat sein kann.
Entwicklererfahrung: Die Verwendung eines ZK-Koprozessors erfordert typischerweise das Erlernen neuer Tools. Das Schreiben benutzerdefinierter Schaltungen (Option (1) oben) ist ziemlich komplex und wird normalerweise nur für eng definierte Zwecke durchgeführt. Höherwertige Optionen wie DSLs oder zkVMs erleichtern das Leben, fügen aber dennoch Overhead hinzu: Der Entwickler muss Off-Chain-Code schreiben und bereitstellen und die Interaktion verwalten. Im Gegensatz zur FHE-VM, wo die Verschlüsselung größtenteils im Hintergrund abläuft und der Entwickler normalen Smart-Contract-Code schreibt, muss der Entwickler hier seine Logik partitionieren und möglicherweise in einer anderen Sprache (Rust usw.) für den Off-Chain-Teil schreiben. Initiativen wie Noir, Leo, Circom DSLs oder RISC Zeros Ansatz verbessern jedoch schnell die Zugänglichkeit. Zum Beispiel bietet RISC Zero Vorlagen und Foundry-Integration, sodass ein Entwickler seinen Off-Chain-Code lokal simulieren (zur Korrektheit) und ihn dann nahtlos über den Bonsai-Callback in Solidity-Tests einbinden kann. Im Laufe der Zeit können wir Entwicklungsframeworks erwarten, die abstrahieren, ob ein Logikteil über ZK-Beweis oder On-Chain ausgeführt wird – der Compiler oder die Tools könnten dies basierend auf den Kosten entscheiden.
FHE-VM vs. ZK-Koprozessor: Vergleich
Sowohl FHE-VMs als auch ZK-Koprozessoren ermöglichen eine Form von „Berechnung auf privaten Daten mit On-Chain-Sicherheit“, unterscheiden sich jedoch grundlegend in ihrer Architektur. Die folgende Tabelle fasst die wichtigsten Unterschiede zusammen:
Aspekt | FHE-VM (Verschlüsselte On-Chain-Ausführung) | ZK-Koprozessor (Off-Chain-Beweisführung) |
---|
Wo die Berechnung stattfindet | Direkt On-Chain (alle Knoten führen homomorphe Operationen auf Chiffretexten aus). | Off-Chain (ein Prover oder Netzwerk führt das Programm aus; nur ein Beweis wird On-Chain verifiziert). |
Datenvertraulichkeit | Vollständige Verschlüsselung: Daten bleiben jederzeit On-Chain verschlüsselt; Validatoren sehen niemals Klartext. Nur Inhaber von Entschlüsselungsschlüsseln können Ausgaben entschlüsseln. | Zero-Knowledge: private Eingaben des Provers werden niemals On-Chain offengelegt; der Beweis offenbart keine Geheimnisse über das hinaus, was in den öffentlichen Ausgaben enthalten ist. Daten, die in der Berechnung verwendet werden und den On-Chain-Status beeinflussen müssen, müssen jedoch in der Ausgabe oder im Commitment kodiert sein. Geheimnisse bleiben standardmäßig Off-Chain. |
Vertrauensmodell | Vertrauen in die Konsensausführung und Kryptographie: Wenn die Mehrheit der Validatoren dem Protokoll folgt, ist die verschlüsselte Ausführung deterministisch und korrekt. Für die Korrektheit der Berechnung ist kein externes Vertrauen erforderlich (alle Knoten berechnen sie neu). Für die Privatsphäre muss der Sicherheit des FHE-Schemas vertraut werden (typischerweise basierend auf Gitterhärte). In einigen Designs muss auch darauf vertraut werden, dass keine Kollusion von genügend Validatoren auftreten kann, um Schwellenwertschlüssel zu missbrauchen. | Vertrauen in die Sicherheit des Beweissystems (Korrektheit von SNARK/STARK). Wenn der Beweis verifiziert wird, ist das Ergebnis mit kryptografischer Sicherheit korrekt. Off-Chain-Prover können die Mathematik nicht betrügen. Es gibt eine Lebendigkeitsannahme an Prover, die Arbeit tatsächlich zu erledigen. Bei Verwendung eines Trusted Setup (z. B. SNARK SRS) muss darauf vertraut werden, dass es ehrlich generiert wurde, oder transparente/Setup-freie Systeme verwendet werden. |
On-Chain-Latenz | Ergebnisse sind sofort in derselben Transaktion/demselben Block verfügbar, da die Berechnung während der Ausführung stattfindet. Keine zusätzlichen Round-Trips – synchroner Betrieb. Längere Blockverarbeitungszeiten könnten jedoch die Blockchain-Latenz erhöhen, wenn FHE-Operationen langsam sind. | Von Natur aus asynchron. Erfordert typischerweise eine Transaktion zur Anforderung und eine spätere Transaktion (oder einen Callback) zur Bereitstellung des Beweises/Ergebnisses. Dies führt zu Verzögerungen (möglicherweise Sekunden bis Stunden, abhängig von der Beweiskomplexität und der Beweishardware). Nicht geeignet für die sofortige Finalität einer einzelnen Transaktion – eher ein asynchrones Jobmodell. --- |
title: "Programmable Privacy in Blockchain: Off‑Chain Compute with On‑Chain Verification" | | |
tags: [blockchain, privacy, cryptography, FHE, ZK] | | |
keywords: | | |
[ | | |
programmable privacy, | | |
blockchain, | | |
off-chain compute, | | |
on-chain verification, | | |
FHE-VM, | | |
ZK coprocessors, | | |
] | | |
description: "Explore how programmable privacy in blockchain leverages Fully Homomorphic Encryption and Zero-Knowledge Coprocessors to enable secure off-chain computation with on-chain verification, addressing privacy challenges like MEV attacks and sensitive data exposure." | | |
authors: [dora] | | |
image: "https://opengraph-image.blockeden.xyz/api/og-blockeden-xyz?title=Programmable%20Privacy%20in%20Blockchain%3A%20Off%E2%80%91Chain%20Compute%20with%20On%E2%80%91Chain%20Verification" | | |
Programmable Privacy in Blockchain: Off‑Chain Compute with On‑Chain Verification

Public blockchains provide transparency and integrity at the cost of privacy – every transaction and contract state is exposed to all participants. This openness creates problems like MEV (Miner Extractable Value) attacks, copy-trading, and leakage of sensitive business logic. Programmable privacy aims to solve these issues by allowing computations on private data without revealing the data itself. Two emerging cryptographic paradigms are making this possible: Fully Homomorphic Encryption Virtual Machines (FHE-VM) and Zero-Knowledge (ZK) Coprocessors. These approaches enable off-chain or encrypted computation with on-chain verification, preserving confidentiality while retaining trustless correctness. In this report, we dive deep into FHE-VM and ZK-coprocessor architectures, compare their trade-offs, and explore use cases across finance, identity, healthcare, data markets, and decentralized machine learning.
Fully Homomorphic Encryption Virtual Machine (FHE-VM)
Fully Homomorphic Encryption (FHE) allows arbitrary computations on encrypted data without ever decrypting it. An FHE Virtual Machine integrates this capability into blockchain smart contracts, enabling encrypted contract state and logic. In an FHE-enabled blockchain (often called an fhEVM for EVM-compatible designs), all inputs, contract storage, and outputs remain encrypted throughout execution. This means validators can process transactions and update state without learning any sensitive values, achieving on-chain execution with data confidentiality.
Architecture and Design of FHE-VM
A typical FHE-VM extends a standard smart contract runtime (like the Ethereum Virtual Machine) with native support for encrypted data types and operations. For example, Zama’s FHEVM introduces encrypted integers (euint8
, euint32
, etc.), encrypted booleans (ebool
), and even encrypted arrays as first-class types. Smart contract languages like Solidity are augmented via libraries or new opcodes so developers can perform arithmetic (add
, mul
, etc.), logical operations, and comparisons directly on ciphertexts. Under the hood, these operations invoke FHE primitives (e.g. using the TFHE library) to manipulate encrypted bits and produce encrypted results.
Encrypted state storage is supported so that contract variables remain encrypted in the blockchain state. The execution flow is typically:
- Client-Side Encryption: Users encrypt their inputs locally using the public FHE key before sending transactions. The encryption key is public (for encryption and evaluation), while the decryption key remains secret. In some designs, each user manages their own key; in others, a single global FHE key is used (discussed below).
- On-Chain Homomorphic Computation: Miners/validators execute the contract with encrypted opcodes. They perform the same deterministic homomorphic operations on the ciphertexts, so consensus can be reached on the encrypted new state. Crucially, validators never see plaintext data – they just see “gibberish” ciphertext but can still process it consistently.
- Decryption (Optional): If a result needs to be revealed or used off-chain, an authorized party with the private key can decrypt the output ciphertext. Otherwise, results remain encrypted and can be used as inputs to further transactions (allowing consecutive computations on persistent encrypted state).
A major design consideration is key management. One approach is per-user keys, where each user holds their secret key and only they can decrypt outputs relevant to them. This maximizes privacy (no one else can ever decrypt your data), but homomorphic operations cannot mix data encrypted under different keys without complex multi-key protocols. Another approach, used by Zama’s FHEVM, is a global FHE key: a single public key encrypts all contract data and a distributed set of validators holds shares of the threshold decryption key. The public encryption and evaluation keys are published on-chain, so anyone can encrypt data to the network; the private key is split among validators who can collectively decrypt if needed under a threshold scheme. To prevent validator collusion from compromising privacy, Zama employs a threshold FHE protocol (based on their Noah’s Ark research) with “noise flooding” to make partial decryptions secure. Only if a sufficient quorum of validators cooperates can a plaintext be recovered, for example to serve a read request. In normal operation, however, no single node ever sees plaintext – data remains encrypted on-chain at all times.
Access control is another crucial component. FHE-VM implementations include fine-grained controls to manage who (if anyone) can trigger decryptions or access certain encrypted fields. For instance, Cypher’s fhEVM supports Access Control Lists on ciphertexts, allowing developers to specify which addresses or contracts can interact with or re-encrypt certain data. Some frameworks support re-encryption: the ability to transfer an encrypted value from one user’s key to another’s without exposing plaintext. This is useful for things like data marketplaces, where a data owner can encrypt a dataset with their key, and upon purchase, re-encrypt it to the buyer’s key – all on-chain, without ever decrypting publicly.
Ensuring Correctness and Privacy
One might ask: if all data is encrypted, how do we enforce correctness of contract logic? How can the chain prevent invalid operations if it can’t “see” the values? FHE by itself doesn’t provide a proof of correctness – validators can perform the homomorphic steps, but they can’t inherently tell if a user’s encrypted input was valid or if a conditional branch should be taken, etc., without decrypting. Zero-knowledge proofs (ZKPs) can complement FHE to solve this gap. In an FHE-VM, typically users must provide a ZK proof attesting to certain plaintext conditions whenever needed. Zama’s design, for example, uses a ZK Proof of Plaintext Knowledge (ZKPoK) to accompany each encrypted input. This proves that the user knows the plaintext corresponding to their ciphertext and that it meets expected criteria, without revealing the plaintext itself. Such “certified ciphertexts” prevent a malicious user from submitting a malformed encryption or an out-of-range value. Similarly, for operations that require a decision (e.g. ensure account balance ≥ withdrawal amount), the user can supply a ZK proof that this condition holds true on the plaintexts before the encrypted operation is executed. In this way, the chain doesn’t decrypt or see the values, but it gains confidence that the encrypted transactions follow the rules.
Another approach in FHE rollups is to perform off-chain validation with ZKPs. Fhenix (an L2 rollup using FHE) opts for an optimistic model where a separate network component called a Threshold Service Network can decrypt or verify encrypted results, and any incorrect computation can be challenged with a fraud-proof. In general, combining FHE + ZK or fraud proofs ensures that encrypted execution remains trustless. Validators either collectively decrypt only when authorized, or they verify proofs that each encrypted state transition was valid without needing to see plaintext.
Performance considerations: FHE operations are computationally heavy – many orders of magnitude slower than normal arithmetic. For example, a simple 64-bit addition on Ethereum costs ~3 gas, whereas an addition on an encrypted 64-bit integer (euint64) under Zama’s FHEVM costs roughly 188,000 gas. Even an 8-bit add can cost ~94k gas. This enormous overhead means a straightforward implementation on existing nodes would be impractically slow and costly. FHE-VM projects tackle this with optimized cryptographic libraries (like Zama’s TFHE-rs library for binary gate bootstrapping) and custom EVM modifications for performance. For instance, Cypher’s modified Geth client adds new opcodes and optimizes homomorphic instruction execution in C++/assembly to minimize overhead. Nevertheless, achieving usable throughput requires acceleration. Ongoing work includes using GPUs, FPGAs, and even specialized photonic chips to speed up FHE computations. Zama reports their FHE performance improved 100× since 2024 and is targeting thousands of TPS with GPU/FPGA acceleration. Dedicated FHE co-processor servers (such as Optalysys’s LightLocker Node) can plug into validator nodes to offload encrypted operations to hardware, supporting >100 encrypted ERC-20 transfers per second per node. As hardware and algorithms improve, the gap between FHE and plain computation will narrow, enabling private contracts to approach more practical speeds.
Compatibility: A key goal of FHE-VM designs is to remain compatible with existing development workflows. Cypher’s and Zama’s fhEVM implementations allow developers to write contracts in Solidity with minimal changes – using a library to declare encrypted types and operations. The rest of the Ethereum toolchain (Remix, Hardhat, etc.) can still be used, as the underlying modifications are mostly at the client/node level. This lowers the barrier to entry: developers don’t need to be cryptography experts to write a confidential smart contract. For example, a simple addition of two numbers can be written as euint32 c = a + b;
and the FHEVM will handle the encryption-specific details behind the scenes. The contracts can even interoperate with normal contracts – e.g. an encrypted contract could output a decrypted result to a standard contract if desired, allowing a mix of private and public parts in one ecosystem.
Aktuelle FHE-VM-Projekte
Mehrere Projekte sind Pioniere in diesem Bereich. Zama (ein Pariser FHE-Startup) entwickelte das Kernkonzept und die Bibliotheken der FHEVM (TFHE-rs und eine fhevm-solidity
-Bibliothek). Sie beabsichtigen nicht, eine eigene Kette zu starten, sondern Infrastruktur für andere bereitzustellen. Inco ist eine L1-Blockchain (aufgebaut auf Cosmos SDK mit Evmos), die Zamas FHEVM integriert hat, um eine modulare vertrauliche Kette zu schaffen. Ihre Testnetze (Gentry und Paillier genannt) zeigen verschlüsselte ERC-20-Transfers und andere private DeFi-Primitive. Fhenix ist ein Ethereum Layer-2 Optimistic Rollup, das FHE für die Privatsphäre verwendet. Es entschied sich für einen optimistischen (Betrugsbeweis-)Ansatz anstelle eines ZK-Rollups aufgrund der hohen Kosten, FHE und ZK für jeden Block zusammen zu verwenden. Fhenix verwendet dieselbe TFHE-rs-Bibliothek (mit einigen Modifikationen) und führt ein Threshold Service Network zur dezentralen Handhabung von Entschlüsselungen ein. Es gibt auch unabhängige Teams wie Fhenix (jetzt umbenannt) und Startups, die MPC + FHE-Hybride erforschen. Darüber hinaus baut Cypher (von Z1 Labs) ein Layer-3-Netzwerk auf, das sich auf KI und Privatsphäre konzentriert und eine fhEVM mit Funktionen wie geheimen Speichern und Unterstützung für föderiertes Lernen verwendet. Das Ökosystem ist noch jung, wächst aber schnell, angetrieben durch erhebliche Finanzierungen – z. B. wurde Zama bis 2025 mit über 130 Millionen US-Dollar zu einem „Einhorn“, um die FHE-Technologie voranzutreiben.
Zusammenfassend ermöglicht eine FHE-VM datenschutzfreundliche Smart Contracts, indem sie die gesamte Logik auf verschlüsselten Daten On-Chain ausführt. Dieses Paradigma gewährleistet maximale Vertraulichkeit – nichts Sensibles wird jemals in Transaktionen oder im Status offengelegt – während der bestehende Blockchain-Konsens für die Integrität genutzt wird. Die Kosten sind eine erhöhte Rechenlast für Validatoren und Komplexität im Schlüsselmanagement und der Beweisintegration. Als Nächstes untersuchen wir ein alternatives Paradigma, das die Berechnung vollständig Off-Chain auslagert und die Kette nur zur Verifizierung verwendet: den Zero-Knowledge-Koprozessor.
Zero-Knowledge-Koprozessoren (ZK-Koprozessoren)
Ein ZK-Koprozessor ist ein neues Architekturmuster für Blockchains, bei dem aufwendige Berechnungen Off-Chain durchgeführt und ein prägnanter Zero-Knowledge Proof ihrer Korrektheit On-Chain verifiziert wird. Dies ermöglicht Smart Contracts, eine weitaus größere Rechenleistung und Datenmenge zu nutzen, als die On-Chain-Ausführung zulassen würde, ohne die Vertrauenslosigkeit zu opfern. Der Begriff Koprozessor wird in Analogie zu Hardware-Koprozessoren (wie einem mathematischen Koprozessor oder einer GPU) verwendet, die spezialisierte Aufgaben für eine CPU übernehmen. Hier delegiert die „CPU“ der Blockchain (die native VM wie EVM) bestimmte Aufgaben an ein Zero-Knowledge-Beweissystem, das als kryptografischer Koprozessor fungiert. Der ZK-Koprozessor liefert ein Ergebnis und einen Beweis, dass das Ergebnis korrekt berechnet wurde, den der On-Chain-Vertrag verifizieren und dann verwenden kann.
Architektur und Workflow
In einem typischen Setup identifiziert ein dApp-Entwickler Teile seiner Anwendungslogik, die für die On-Chain-Ausführung zu teuer oder komplex sind (z. B. große Berechnungen über historische Daten, aufwendige Algorithmen, ML-Modellinferenz usw.). Er implementiert diese Teile als Off-Chain-Programm (in einer Hochsprache oder einem Schaltungs-DSL), das einen Zero-Knowledge Proof seiner Ausführung erzeugen kann. Die On-Chain-Komponente ist ein Verifizierer-Smart-Contract, der Beweise prüft und die Ergebnisse dem Rest des Systems zur Verfügung stellt. Der Ablauf lässt sich wie folgt zusammenfassen:
- Anfrage – Der On-Chain-Vertrag löst eine Anfrage für eine bestimmte Off-Chain-Berechnung aus. Dies kann durch eine Benutzertransaktion oder durch einen Vertrag, der die Schnittstelle des ZK-Koprozessors aufruft, initiiert werden. Zum Beispiel könnte ein DeFi-Vertrag „proveInterestRate(currentState)“ aufrufen oder ein Benutzer „queryHistoricalData(query)“.
- Off-Chain-Ausführung & Beweiserstellung – Ein Off-Chain-Dienst (der je nach Design ein dezentrales Netzwerk von Provern oder ein vertrauenswürdiger Dienst sein könnte) nimmt die Anfrage entgegen. Er sammelt alle erforderlichen Daten (On-Chain-Status, Off-Chain-Eingaben usw.) und führt die Berechnung in einer speziellen ZK Virtual Machine (ZKVM) oder Schaltung aus. Während der Ausführung wird eine Beweisspur generiert. Am Ende erstellt der Dienst einen prägnanten Beweis (z. B. einen SNARK oder STARK), der bescheinigt, dass „die Berechnung der Funktion F auf der Eingabe X das Ergebnis Y liefert“ und optional die Datenintegrität bescheinigt (mehr dazu unten).
- On-Chain-Verifizierung – Der Beweis und das Ergebnis werden an die Blockchain zurückgegeben (oft über eine Callback-Funktion). Der Verifizierer-Vertrag prüft die Gültigkeit des Beweises mittels effizienter kryptografischer Verifizierung (Pairing-Checks usw.). Wenn gültig, kann der Vertrag nun dem Ergebnis Y als korrekt vertrauen. Das Ergebnis kann im Status gespeichert, als Ereignis ausgegeben oder in weitere Vertragslogik eingespeist werden. Wenn der Beweis ungültig ist oder nicht innerhalb einer bestimmten Zeit bereitgestellt wird, kann die Anfrage als fehlgeschlagen betrachtet werden (und möglicherweise wird eine Fallback- oder Timeout-Logik ausgelöst).
Kritisch ist, dass die On-Chain-Gaskosten für die Verifizierung konstant sind (oder sehr langsam wachsen), unabhängig davon, wie komplex die Off-Chain-Berechnung war. Die Verifizierung eines prägnanten Beweises kann in der Größenordnung von einigen Hunderttausend Gas liegen (ein Bruchteil eines Ethereum-Blocks), aber dieser Beweis könnte Millionen von Off-Chain durchgeführten Rechenschritten repräsentieren. Wie ein Entwickler witzelte: „Möchten Sie eine digitale Signatur beweisen? ~15 .Mo¨chtenSieeineMillionSignaturenbeweisen?Auch 15.“. Diese Skalierbarkeit ist ein großer Gewinn: dApps können komplexe Funktionalitäten (Big-Data-Analysen, aufwendige Finanzmodelle usw.) anbieten, ohne die Blockchain zu überlasten.
Die Hauptkomponenten eines ZK-Koprozessor-Systems sind:
-
Beweisgenerierungsumgebung: Dies kann eine allgemeine ZKVM (die beliebige Programme ausführen kann) oder benutzerdefinierte Schaltungen sein, die auf spezifische Berechnungen zugeschnitten sind. Ansätze variieren:
- Einige Projekte verwenden handgefertigte Schaltungen für jede unterstützte Abfrage oder Funktion (maximale Effizienz für diese Funktion).
- Andere bieten eine Domain-Specific Language (DSL) oder eine Embedded DSL an, die Entwickler verwenden, um ihre Off-Chain-Logik zu schreiben, die dann in Schaltungen kompiliert wird (Balance zwischen Benutzerfreundlichkeit und Leistung).
- Der flexibelste Ansatz ist eine zkVM: eine virtuelle Maschine (oft basierend auf RISC-Architekturen), in der Programme in Standardsprachen (Rust, C usw.) geschrieben und automatisch bewiesen werden können. Dies opfert Leistung (die Simulation einer CPU in einer Schaltung fügt Overhead hinzu) für maximale Entwicklererfahrung.
-
Datenzugriff und Integrität: Eine einzigartige Herausforderung besteht darin, die Off-Chain-Berechnung mit den richtigen Daten zu versorgen, insbesondere wenn diese Daten auf der Blockchain liegen (vergangene Blöcke, Vertragszustände usw.). Eine naive Lösung besteht darin, den Prover von einem Archivknoten lesen zu lassen und ihm zu vertrauen – dies führt jedoch zu Vertrauensannahmen. ZK-Koprozessoren beweisen stattdessen typischerweise, dass alle verwendeten On-Chain-Daten tatsächlich authentisch waren, indem sie auf Merkle-Beweise oder Status-Commitments verweisen. Zum Beispiel könnte das Abfrageprogramm eine Blocknummer und einen Merkle-Beweis eines Speicherplatzes oder einer Transaktion entgegennehmen, und die Schaltung wird diesen Beweis gegen einen bekannten Block-Header-Hash verifizieren. Es gibt drei Muster:
- Inline-Daten: Die benötigten Daten On-Chain ablegen (als Eingabe für den Verifizierer), damit sie direkt überprüft werden können. Dies ist für große Daten sehr kostspielig und untergräbt den ganzen Sinn.
- Einem Orakel vertrauen: Einen Orakel-Dienst die Daten an den Beweis liefern lassen und dafür bürgen. Dies ist einfacher, führt aber das Vertrauen in eine dritte Partei wieder ein.
- Dateninklusion über ZK beweisen: Beweise für die Dateninklusion in der Kettengeschichte innerhalb der Zero-Knowledge-Schaltung selbst integrieren. Dies nutzt die Tatsache, dass jeder Ethereum-Block-Header den gesamten vorherigen Status (über den Status-Root) und die Transaktionshistorie festschreibt. Durch die Verifizierung von Merkle-Patricia-Beweisen der Daten innerhalb der Schaltung versichert der Ausgabebeweis dem Vertrag, dass „diese Berechnung echte Blockchain-Daten von Block N verwendet hat“ ohne zusätzliche Vertrauenswürdigkeit.
Der dritte Ansatz ist der vertrauensloseste und wird von fortgeschrittenen ZK-Koprozessoren wie Axiom und Xpansion verwendet (er erhöht zwar die Beweiskosten, ist aber aus Sicherheitsgründen vorzuziehen). Zum Beispiel modelliert Axioms System die Blockstruktur, den Status-Trie und den Transaktions-Trie von Ethereum in seinen Schaltungen, sodass es Aussagen wie „das Konto X
hatte zum Block N
den Saldo Y
“ oder „eine Transaktion mit bestimmten Eigenschaften erfolgte in Block N“ beweisen kann. Es nutzt die Tatsache, dass man, gegeben einen kürzlich vertrauenswürdigen Block-Hash, die Inklusion historischer Daten rekursiv beweisen kann, ohne einer externen Partei zu vertrauen.
-
Verifizierer-Vertrag: Dieser On-Chain-Vertrag enthält den Verifizierungsschlüssel und die Logik zum Akzeptieren oder Ablehnen von Beweisen. Für SNARKs wie Groth16 oder PLONK könnte der Verifizierer einige elliptische Kurvenpaarungen durchführen; für STARKs könnte er einige Hash-Berechnungen durchführen. Leistungsoptimierungen wie Aggregation und Rekursion können die On-Chain-Last minimieren. Zum Beispiel verwendet RISC Zeros Bonsai einen STARK-zu-SNARK-Wrapper: Es betreibt eine STARK-basierte VM Off-Chain für Geschwindigkeit, generiert dann aber einen kleinen SNARK-Beweis, der die Gültigkeit des STARK bescheinigt. Dies reduziert die Beweisgröße von Hunderten von Kilobytes auf wenige Hundert Bytes, wodurch die On-Chain-Verifizierung machbar und kostengünstig wird. Der Solidity-Verifizierer prüft dann einfach den SNARK (was eine Operation mit konstanter Zeit ist).
In Bezug auf die Bereitstellung können ZK-Koprozessoren als Layer-2-ähnliche Netzwerke oder als reine Off-Chain-Dienste fungieren. Einige, wie Axiom, begannen als spezialisierter Dienst für Ethereum (mit Unterstützung von Paradigm), bei dem Entwickler Anfragen an Axioms Prover-Netzwerk senden und Beweise On-Chain erhalten. Axioms Slogan war, Ethereum-Verträgen „vertrauenslosen Zugriff auf alle On-Chain-Daten und beliebige expressive Berechnungen darüber“ zu ermöglichen. Es fungiert effektiv als Abfrageorakel, dessen Antworten durch ZKPs anstelle von Vertrauen verifiziert werden. Andere, wie RISC Zeros Bonsai, bieten eine offenere Plattform: Jeder Entwickler kann ein Programm (kompiliert zu einer RISC-V-kompatiblen ZKVM) hochladen und Bonsais Beweisdienst über einen Relay-Vertrag nutzen. Das Relay-Muster, wie in Abbildung 1 dargestellt, beinhaltet einen Vertrag, der Anfragen und Antworten vermittelt: Der dApp-Vertrag ruft das Relay auf, um einen Beweis anzufordern, der Off-Chain-Dienst lauscht darauf (z. B. über Ereignis oder direkten Aufruf), berechnet den Beweis, und dann ruft das Relay eine Callback-Funktion auf dem dApp-Vertrag mit dem Ergebnis und dem Beweis auf. Dieses asynchrone Modell ist notwendig, da die Beweiserstellung je nach Komplexität Sekunden bis Minuten dauern kann. Es führt eine Latenz ein (und eine Lebendigkeitsannahme, dass der Prover antworten wird), während FHE-VM-Berechnungen synchron innerhalb eines Blocks stattfinden. Die Gestaltung der Anwendung zur Handhabung dieses asynchronen Workflows (möglicherweise ähnlich wie bei Oracle-Antworten) ist Teil der Verwendung eines ZK-Koprozessors.
Bemerkenswerte ZK-Koprozessor-Projekte
-
Axiom: Axiom ist ein ZK-Koprozessor, der auf Ethereum zugeschnitten ist und sich ursprünglich auf das Beweisen historischer On-Chain-Datenabfragen konzentrierte. Es verwendet das Halo2-Beweis-Framework (ein Plonk-ähnlicher SNARK), um Beweise zu erstellen, die Ethereums kryptografische Strukturen integrieren. In Axioms System kann ein Entwickler Dinge abfragen wie „wie war der Status von Vertrag X in Block N?“ oder eine Berechnung über alle Transaktionen in einem Bereich durchführen. Unter der Haube mussten Axioms Schaltungen Ethereums Status-/Trie-Logik implementieren, sogar elliptische Kurvenoperationen und SNARK-Verifizierung innerhalb der Schaltung durchführen, um Rekursion zu unterstützen. Trail of Bits bemerkte in einem Audit die Komplexität von Axioms Halo2-Schaltungen, die ganze Blöcke und Zustände modellieren. Nach dem Audit verallgemeinerte Axiom ihre Technologie zu einer OpenVM, die die Beweisführung beliebigen Rust-Codes mit derselben Halo2-basierten Infrastruktur ermöglicht. (Dies spiegelt den Trend wider, von domänenspezifischen Schaltungen zu einem allgemeineren ZKVM-Ansatz überzugehen.) Das Axiom-Team demonstrierte ZK-Abfragen, die Ethereum nativ nicht durchführen kann, wodurch ein zustandsloser Zugriff auf beliebige historische Daten mit kryptografischer Integrität ermöglicht wird. Sie haben auch die Sicherheit betont, indem sie unterbeschränkte Schaltungsfehler gefunden und behoben und die Korrektheit sichergestellt haben. Obwohl Axioms ursprüngliches Produkt während ihrer Neuausrichtung eingestellt wurde, bleibt ihr Ansatz ein Meilenstein bei ZK-Koprozessoren.
-
RISC Zero Bonsai: RISC Zero ist eine ZKVM, die auf der RISC-V-Architektur basiert. Ihre zkVM kann beliebige Programme (geschrieben in Rust, C++ und anderen Sprachen, die nach RISC-V kompiliert werden) ausführen und einen STARK-Beweis der Ausführung erzeugen. Bonsai ist RISC Zeros Cloud-Dienst, der diese Beweiserstellung bei Bedarf bereitstellt und als Koprozessor für Smart Contracts fungiert. Um es zu verwenden, schreibt ein Entwickler ein Programm (z. B. eine Funktion, die komplexe Mathematik ausführt oder eine Off-Chain-API-Antwort verifiziert), lädt es in den Bonsai-Dienst hoch und stellt einen entsprechenden Verifizierer-Vertrag bereit. Wenn der Vertrag diese Berechnung benötigt, ruft er das Bonsai-Relay auf, das die Beweisgenerierung auslöst und das Ergebnis über einen Callback zurückgibt. Eine demonstrierte Anwendungsbeispiel war die Off-Chain-Governance-Berechnung: RISC Zero zeigte eine DAO, die Bonsai verwendete, um Stimmen zu zählen und komplexe Abstimmungsmetriken Off-Chain zu berechnen, und dann einen Beweis zu veröffentlichen, damit der On-Chain-Governor-Vertrag dem Ergebnis mit minimalen Gaskosten vertrauen konnte. Die Technologie von RISC Zero betont, dass Entwickler vertraute Programmierparadigmen verwenden können – zum Beispiel eine Rust-Funktion schreiben, um etwas zu berechnen – und die schwere Arbeit der Schaltungserstellung von der zkVM übernommen wird. Allerdings können Beweise groß sein, daher implementierten sie, wie bereits erwähnt, eine SNARK-Kompression für die On-Chain-Verifizierung. Im August 2023 verifizierten sie erfolgreich RISC Zero-Beweise im Ethereum Sepolia Testnet, was in der Größenordnung von 300.000 Gas pro Beweis kostete. Dies öffnet die Tür für Ethereum-dApps, Bonsai heute als Skalierungs- und Datenschutzlösung zu nutzen. (Bonsai ist noch in der Alpha-Phase, nicht produktionsreif und verwendet ein temporäres SNARK-Setup ohne Zeremonie.)
-
Andere: Es gibt zahlreiche weitere Akteure und Forschungsinitiativen. Expansion/Xpansion (wie in einem Blog erwähnt) verwendet einen eingebetteten DSL-Ansatz, bei dem Entwickler Abfragen über On-Chain-Daten mit einer spezialisierten Sprache schreiben können, und es die Beweisgenerierung intern handhabt. StarkWares Cairo und Polygons zkEVM sind allgemeinere ZK-Rollup-VMs, aber ihre Technologie könnte für koprozessorähnliche Anwendungen wiederverwendet werden, indem Beweise in L1-Verträgen verifiziert werden. Wir sehen auch Projekte im Bereich ZKML (ZK Machine Learning), die effektiv als Koprozessoren fungieren, um ML-Modellinferenzen oder Trainingsergebnisse On-Chain zu verifizieren. Zum Beispiel kann ein zkML-Setup beweisen, dass „eine neuronale Netzwerk-Inferenz auf privaten Eingaben die Klassifizierung X erzeugt hat“, ohne die Eingaben offenzulegen oder die Berechnung On-Chain durchzuführen. Dies sind Sonderfälle des Koprozessorkonzepts, die auf KI angewendet werden.
Vertrauensannahmen: ZK-Koprozessoren verlassen sich auf die Korrektheit der kryptografischen Beweise. Wenn das Beweissystem sicher ist (und ein eventuelles Trusted Setup ehrlich durchgeführt wird), dann garantiert ein akzeptierter Beweis, dass die Berechnung korrekt war. Es ist kein zusätzliches Vertrauen in den Prover erforderlich – selbst ein böswilliger Prover kann den Verifizierer nicht von einer falschen Aussage überzeugen. Es gibt jedoch eine Lebendigkeitsannahme: Jemand muss die Off-Chain-Berechnung tatsächlich durchführen und den Beweis erbringen. In der Praxis könnte dies ein dezentrales Netzwerk (mit Anreizen oder Gebühren für die Arbeit) oder ein einzelner Dienstbetreiber sein. Wenn niemand den Beweis liefert, bleibt die On-Chain-Anfrage möglicherweise ungelöst. Ein weiterer subtiler Vertrauensaspekt ist die Datenverfügbarkeit für Off-Chain-Eingaben, die nicht auf der Blockchain liegen. Wenn die Berechnung von privaten oder externen Daten abhängt, kann der Verifizierer nicht wissen, ob diese Daten ehrlich bereitgestellt wurden, es sei denn, es werden zusätzliche Maßnahmen (wie Daten-Commitments oder Orakel-Signaturen) verwendet. Aber für rein On-Chain-Datenberechnungen stellen die beschriebenen Mechanismen eine Vertrauenslosigkeit sicher, die der Kette selbst entspricht (Axiom argumentierte, dass ihre Beweise für historische Abfragen „kryptografisch äquivalente Sicherheit wie Ethereum“ bieten).
Privatsphäre: Zero-Knowledge Proofs unterstützen auch von Natur aus die Privatsphäre – der Prover kann Eingaben verborgen halten, während er Aussagen darüber beweist. Im Kontext eines Koprozessors bedeutet dies, dass ein Beweis einem Vertrag ermöglichen kann, ein Ergebnis zu verwenden, das aus privaten Daten abgeleitet wurde. Zum Beispiel könnte ein Beweis zeigen: „Der Kredit-Score des Benutzers > 700, also Kredit genehmigen“, ohne den tatsächlichen Kredit-Score oder Rohdaten preiszugeben. Axioms Anwendungsfall betraf eher öffentlich bekannte Daten (Blockchain-Historie), daher lag der Fokus dort nicht auf der Privatsphäre. Aber RISC Zeros zkVM könnte verwendet werden, um Behauptungen über geheime Daten zu beweisen, die von einem Benutzer bereitgestellt werden: Die Daten bleiben Off-Chain, und nur das benötigte Ergebnis geht On-Chain. Es ist erwähnenswert, dass ein ZK-Beweis im Gegensatz zu FHE normalerweise keine fortlaufende Vertraulichkeit des Status bietet – es ist ein einmaliger Beweis. Wenn ein Workflow die Aufrechterhaltung eines geheimen Status über Transaktionen hinweg erfordert, könnte man dies aufbauen, indem der Vertrag ein Commitment auf den Status speichert und jeder Beweis einen gültigen Statusübergang vom alten Commitment zum neuen zeigt, wobei Geheimnisse verborgen bleiben. Dies ist im Wesentlichen die Funktionsweise von zk-Rollups für private Transaktionen (wie Aztec oder Zcash). ZK-Koprozessoren können also vollständig private Zustandsmaschinen ermöglichen, aber die Implementierung ist nicht trivial; oft werden sie für einmalige Berechnungen verwendet, bei denen entweder die Eingabe oder die Ausgabe (oder beides) bei Bedarf privat sein kann.
Entwicklererfahrung: Die Verwendung eines ZK-Koprozessors erfordert typischerweise das Erlernen neuer Tools. Das Schreiben benutzerdefinierter Schaltungen (Option (1) oben) ist ziemlich komplex und wird normalerweise nur für eng definierte Zwecke durchgeführt. Höherwertige Optionen wie DSLs oder zkVMs erleichtern das Leben, fügen aber dennoch Overhead hinzu: Der Entwickler muss Off-Chain-Code schreiben und bereitstellen und die Interaktion verwalten. Im Gegensatz zur FHE-VM, wo die Verschlüsselung größtenteils im Hintergrund abläuft und der Entwickler normalen Smart-Contract-Code schreibt, muss der Entwickler hier seine Logik partitionieren und möglicherweise in einer anderen Sprache (Rust usw.) für den Off-Chain-Teil schreiben. Initiativen wie Noir, Leo, Circom DSLs oder RISC Zeros Ansatz verbessern jedoch schnell die Zugänglichkeit. Zum Beispiel bietet RISC Zero Vorlagen und Foundry-Integration, sodass ein Entwickler seinen Off-Chain-Code lokal simulieren (zur Korrektheit) und ihn dann nahtlos über den Bonsai-Callback in Solidity-Tests einbinden kann. Im Laufe der Zeit können wir Entwicklungsframeworks erwarten, die abstrahieren, ob ein Logikteil über ZK-Beweis oder On-Chain ausgeführt wird – der Compiler oder die Tools könnten dies basierend auf den Kosten entscheiden.
FHE-VM vs. ZK-Koprozessor: Vergleich
Sowohl FHE-VMs als auch ZK-Koprozessoren ermöglichen eine Form von „Berechnung auf privaten Daten mit On-Chain-Sicherheit“, unterscheiden sich jedoch grundlegend in ihrer Architektur. Die folgende Tabelle fasst die wichtigsten Unterschiede zusammen:
Aspekt | FHE-VM (Verschlüsselte On-Chain-Ausführung) | ZK-Koprozessor (Off-Chain-Beweisführung) |
---|
Wo die Berechnung stattfindet | Direkt On-Chain (alle Knoten führen homomorphe Operationen auf Chiffretexten aus). | Off-Chain (ein Prover oder Netzwerk führt das Programm aus; nur ein Beweis wird On-Chain verifiziert). |
Datenvertraulichkeit | Vollständige Verschlüsselung: Daten bleiben jederzeit On-Chain verschlüsselt; Validatoren sehen niemals Klartext. Nur Inhaber von Entschlüsselungsschlüsseln können Ausgaben entschlüsseln. | Zero-Knowledge: private Eingaben des Provers werden niemals On-Chain offengelegt; der Beweis offenbart keine Geheimnisse über das hinaus, was in den öffentlichen Ausgaben enthalten ist. Daten, die in der Berechnung verwendet werden und den On-Chain-Status beeinflussen müssen, müssen jedoch in der Ausgabe oder im Commitment kodiert sein. Geheimnisse bleiben standardmäßig Off-Chain. |
Vertrauensmodell | Vertrauen in die Konsensausführung und Kryptographie: Wenn die Mehrheit der Validatoren dem Protokoll folgt, ist die verschlüsselte Ausführung deterministisch und korrekt. Für die Korrektheit der Berechnung ist kein externes Vertrauen erforderlich (alle Knoten berechnen sie neu). Für die Privatsphäre muss der Sicherheit des FHE-Schemas vertraut werden (typischerweise basierend auf Gitterhärte). In einigen Designs muss auch darauf vertraut werden, dass keine Kollusion von genügend Validatoren auftreten kann, um Schwellenwertschlüssel zu missbrauchen. | Vertrauen in die Sicherheit des Beweissystems (Korrektheit von SNARK/STARK). Wenn der Beweis verifiziert wird, ist das Ergebnis mit kryptografischer Sicherheit korrekt. Off-Chain-Prover können die Mathematik nicht betrügen. Es gibt eine Lebendigkeitsannahme an Prover, die Arbeit tatsächlich zu erledigen. Bei Verwendung eines Trusted Setup (z. B. SNARK SRS) muss darauf vertraut werden, dass es ehrlich generiert wurde, oder transparente/Setup-freie Systeme verwendet werden. --- |
title: "Programmable Privacy in Blockchain: Off‑Chain Compute with On‑Chain Verification" | | |
tags: [blockchain, privacy, cryptography, FHE, ZK] | | |
keywords: | | |
[ | | |
programmable privacy, | | |
blockchain, | | |
off-chain compute, | | |
on-chain verification, | | |
FHE-VM, | | |
ZK coprocessors, | | |
] | | |
description: "Explore how programmable privacy in blockchain leverages Fully Homomorphic Encryption and Zero-Knowledge Coprocessors to enable secure off-chain computation with on-chain verification, addressing privacy challenges like MEV attacks and sensitive data exposure." | | |
authors: [dora] | | |
image: "https://opengraph-image.blockeden.xyz/api/og-blockeden-xyz?title=Programmable%20Privacy%20in%20Blockchain%3A%20Off%E2%80%91Chain%20Compute%20with%20On%E2%80%91Chain%20Verification" | | |
Programmierbare Privatsphäre in der Blockchain: Off-Chain-Berechnung mit On-Chain-Verifizierung

Öffentliche Blockchains bieten Transparenz und Integrität auf Kosten der Privatsphäre – jede Transaktion und jeder Vertragsstatus ist allen Teilnehmern zugänglich. Diese Offenheit schafft Probleme wie MEV (Miner Extractable Value)-Angriffe, Copy-Trading und die Offenlegung sensibler Geschäftslogik. Programmierbare Privatsphäre zielt darauf ab, diese Probleme zu lösen, indem sie Berechnungen auf privaten Daten ermöglicht, ohne die Daten selbst preiszugeben. Zwei aufkommende kryptografische Paradigmen machen dies möglich: Fully Homomorphic Encryption Virtual Machines (FHE-VM) und Zero-Knowledge (ZK) Koprozessoren. Diese Ansätze ermöglichen Off-Chain- oder verschlüsselte Berechnungen mit On-Chain-Verifizierung, wodurch die Vertraulichkeit gewahrt und gleichzeitig die vertrauenslose Korrektheit beibehalten wird. In diesem Bericht tauchen wir tief in die Architekturen von FHE-VMs und ZK-Koprozessoren ein, vergleichen ihre Kompromisse und untersuchen Anwendungsfälle in den Bereichen Finanzen, Identität, Gesundheitswesen, Datenmärkte und dezentrales maschinelles Lernen.
Fully Homomorphic Encryption Virtual Machine (FHE-VM)
Fully Homomorphic Encryption (FHE) ermöglicht beliebige Berechnungen auf verschlüsselten Daten, ohne diese jemals zu entschlüsseln. Eine FHE Virtual Machine integriert diese Fähigkeit in Blockchain-Smart Contracts und ermöglicht so einen verschlüsselten Vertragsstatus und eine verschlüsselte Logik. In einer FHE-fähigen Blockchain (oft als fhEVM für EVM-kompatible Designs bezeichnet) bleiben alle Eingaben, der Vertragsspeicher und die Ausgaben während der gesamten Ausführung verschlüsselt. Dies bedeutet, dass Validatoren Transaktionen verarbeiten und den Status aktualisieren können, ohne sensible Werte zu erfahren, wodurch eine On-Chain-Ausführung mit Datenvertraulichkeit erreicht wird.
Architektur und Design von FHE-VM
Eine typische FHE-VM erweitert eine Standard-Smart-Contract-Laufzeitumgebung (wie die Ethereum Virtual Machine) um native Unterstützung für verschlüsselte Datentypen und Operationen. Zum Beispiel führt Zamas FHEVM verschlüsselte Ganzzahlen (euint8
, euint32
usw.), verschlüsselte Booleans (ebool
) und sogar verschlüsselte Arrays als erstklassige Typen ein. Smart-Contract-Sprachen wie Solidity werden durch Bibliotheken oder neue Opcodes erweitert, sodass Entwickler arithmetische (add
, mul
usw.), logische Operationen und Vergleiche direkt auf Chiffretexten durchführen können. Im Hintergrund rufen diese Operationen FHE-Primitive auf (z. B. unter Verwendung der TFHE-Bibliothek), um verschlüsselte Bits zu manipulieren und verschlüsselte Ergebnisse zu erzeugen.
Verschlüsselter Statusspeicher wird unterstützt, sodass Vertragsvariablen im Blockchain-Status verschlüsselt bleiben. Der Ausführungsfluss ist typischerweise:
- Client-seitige Verschlüsselung: Benutzer verschlüsseln ihre Eingaben lokal mit dem öffentlichen FHE-Schlüssel, bevor sie Transaktionen senden. Der Verschlüsselungsschlüssel ist öffentlich (für Verschlüsselung und Auswertung), während der Entschlüsselungsschlüssel geheim bleibt. In einigen Designs verwaltet jeder Benutzer seinen eigenen Schlüssel; in anderen wird ein einziger globaler FHE-Schlüssel verwendet (unten diskutiert).
- On-Chain homomorphe Berechnung: Miner/Validatoren führen den Vertrag mit verschlüsselten Opcodes aus. Sie führen dieselben deterministischen homomorphen Operationen auf den Chiffretexten durch, sodass ein Konsens über den verschlüsselten neuen Status erzielt werden kann. Entscheidend ist, dass Validatoren niemals Klartextdaten sehen – sie sehen nur „Kauderwelsch“-Chiffretext, können ihn aber dennoch konsistent verarbeiten.
- Entschlüsselung (Optional): Wenn ein Ergebnis offengelegt oder Off-Chain verwendet werden muss, kann eine autorisierte Partei mit dem privaten Schlüssel den Ausgabechiffretext entschlüsseln. Andernfalls bleiben die Ergebnisse verschlüsselt und können als Eingaben für weitere Transaktionen verwendet werden (was aufeinanderfolgende Berechnungen auf persistentem verschlüsseltem Status ermöglicht).
Eine wichtige Designüberlegung ist das Schlüsselmanagement. Ein Ansatz sind benutzerspezifische Schlüssel, bei denen jeder Benutzer seinen geheimen Schlüssel besitzt und nur er die für ihn relevanten Ausgaben entschlüsseln kann. Dies maximiert die Privatsphäre (niemand sonst kann Ihre Daten jemals entschlüsseln), aber homomorphe Operationen können Daten, die unter verschiedenen Schlüsseln verschlüsselt sind, nicht ohne komplexe Multi-Schlüssel-Protokolle mischen. Ein anderer Ansatz, der von Zamas FHEVM verwendet wird, ist ein globaler FHE-Schlüssel: Ein einziger öffentlicher Schlüssel verschlüsselt alle Vertragsdaten und eine verteilte Gruppe von Validatoren hält Anteile des Schwellenwert-Entschlüsselungsschlüssels. Die öffentlichen Verschlüsselungs- und Auswertungsschlüssel werden On-Chain veröffentlicht, sodass jeder Daten an das Netzwerk verschlüsseln kann; der private Schlüssel wird unter Validatoren aufgeteilt, die bei Bedarf im Rahmen eines Schwellenwertschemas gemeinsam entschlüsseln können. Um zu verhindern, dass die Kollusion von Validatoren die Privatsphäre gefährdet, verwendet Zama ein Schwellenwert-FHE-Protokoll (basierend auf ihrer Forschung Noah’s Ark) mit „Rauschflutung“, um partielle Entschlüsselungen sicher zu machen. Nur wenn ein ausreichendes Quorum von Validatoren kooperiert, kann ein Klartext wiederhergestellt werden, zum Beispiel um eine Leseanfrage zu bedienen. Im Normalbetrieb sieht jedoch kein einzelner Knoten jemals Klartext – Daten bleiben jederzeit On-Chain verschlüsselt.
Zugriffskontrolle ist eine weitere entscheidende Komponente. FHE-VM-Implementierungen umfassen detaillierte Kontrollen, um zu verwalten, wer (falls überhaupt) Entschlüsselungen auslösen oder auf bestimmte verschlüsselte Felder zugreifen kann. Zum Beispiel unterstützt Cyphers fhEVM Access Control Lists für Chiffretexte, die es Entwicklern ermöglichen, anzugeben, welche Adressen oder Verträge mit bestimmten Daten interagieren oder diese erneut verschlüsseln können. Einige Frameworks unterstützen die Neuverschlüsselung: die Fähigkeit, einen verschlüsselten Wert von einem Benutzerschlüssel auf den eines anderen zu übertragen, ohne Klartext preiszugeben. Dies ist nützlich für Dinge wie Datenmarktplätze, bei denen ein Datenbesitzer einen Datensatz mit seinem Schlüssel verschlüsseln und nach dem Kauf auf den Schlüssel des Käufers neu verschlüsseln kann – alles On-Chain, ohne jemals öffentlich zu entschlüsseln.
Gewährleistung von Korrektheit und Privatsphäre
Man könnte fragen: Wenn alle Daten verschlüsselt sind, wie setzen wir die Korrektheit der Vertragslogik durch? Wie kann die Kette ungültige Operationen verhindern, wenn sie die Werte nicht „sehen“ kann? FHE allein liefert keinen Korrektheitsbeweis – Validatoren können die homomorphen Schritte ausführen, aber sie können nicht von Natur aus erkennen, ob die verschlüsselte Eingabe eines Benutzers gültig war oder ob eine bedingte Verzweigung genommen werden sollte usw., ohne zu entschlüsseln. Zero-Knowledge Proofs (ZKPs) können FHE ergänzen, um diese Lücke zu schließen. In einer FHE-VM müssen Benutzer typischerweise einen ZK-Beweis für bestimmte Klartextbedingungen liefern, wann immer dies erforderlich ist. Zamas Design verwendet zum Beispiel einen ZK Proof of Plaintext Knowledge (ZKPoK), der jede verschlüsselte Eingabe begleitet. Dies beweist, dass der Benutzer den Klartext kennt, der seinem Chiffretext entspricht, und dass er die erwarteten Kriterien erfüllt, ohne den Klartext selbst preiszugeben. Solche „zertifizierten Chiffretexte“ verhindern, dass ein böswilliger Benutzer eine fehlerhafte Verschlüsselung oder einen Wert außerhalb des Bereichs übermittelt. Ähnlich können Benutzer für Operationen, die eine Entscheidung erfordern (z. B. sicherstellen, dass Kontostand ≥ Abhebungsbetrag), einen ZK-Beweis liefern, dass diese Bedingung für die Klartexte erfüllt ist, bevor die verschlüsselte Operation ausgeführt wird. Auf diese Weise entschlüsselt oder sieht die Kette die Werte nicht, gewinnt aber die Gewissheit, dass die verschlüsselten Transaktionen den Regeln folgen.
Ein weiterer Ansatz bei FHE-Rollups besteht darin, die Off-Chain-Validierung mit ZKPs durchzuführen. Fhenix (ein L2-Rollup, das FHE verwendet) opts für ein optimistisches Modell, bei dem eine separate Netzwerkkomponente namens Threshold Service Network verschlüsselte Ergebnisse entschlüsseln oder verifizieren kann, und jede falsche Berechnung mit einem Betrugsbeweis angefochten werden kann. Im Allgemeinen stellt die Kombination von FHE + ZK oder Betrugsbeweisen sicher, dass die verschlüsselte Ausführung vertrauenslos bleibt. Validatoren entschlüsseln entweder nur gemeinsam, wenn sie dazu autorisiert sind, oder sie verifizieren Beweise, dass jeder verschlüsselte Statusübergang gültig war, ohne Klartext sehen zu müssen.
Leistungsüberlegungen: FHE-Operationen sind rechenintensiv – um viele Größenordnungen langsamer als normale Arithmetik. Zum Beispiel kostet eine einfache 64-Bit-Addition auf Ethereum ~3 Gas, während eine Addition auf einer verschlüsselten 64-Bit-Ganzzahl (euint64) unter Zamas FHEVM grob 188.000 Gas kostet. Selbst eine 8-Bit-Addition kann ~94k Gas kosten. Dieser enorme Overhead bedeutet, dass eine einfache Implementierung auf bestehenden Knoten unpraktisch langsam und kostspielig wäre. FHE-VM-Projekte begegnen dem mit optimierten kryptografischen Bibliotheken (wie Zamas TFHE-rs-Bibliothek für binäres Gate-Bootstrapping) und benutzerdefinierten EVM-Modifikationen zur Leistungssteigerung. Zum Beispiel fügt Cyphers modifizierter Geth-Client neue Opcodes hinzu und optimiert die Ausführung homomorpher Anweisungen in C++/Assembly, um den Overhead zu minimieren. Dennoch erfordert das Erreichen eines nutzbaren Durchsatzes Beschleunigung. Laufende Arbeiten umfassen die Verwendung von GPUs, FPGAs und sogar spezialisierten photonischen Chips, um FHE-Berechnungen zu beschleunigen. Zama berichtet, dass sich ihre FHE-Leistung seit 2024 um das Hundertfache verbessert hat und Tausende von TPS mit GPU/FPGA-Beschleunigung anstrebt. Dedizierte FHE-Koprozessor-Server (wie Optalysys’ LightLocker Node) können an Validatorknoten angeschlossen werden, um verschlüsselte Operationen auf Hardware auszulagern, und unterstützen >100 verschlüsselte ERC-20-Transfers pro Sekunde pro Knoten. Mit der Verbesserung von Hardware und Algorithmen wird sich die Lücke zwischen FHE und einfacher Berechnung verringern, wodurch private Verträge praktischere Geschwindigkeiten erreichen können.
Kompatibilität: Ein Hauptziel von FHE-VM-Designs ist es, mit bestehenden Entwicklungsworkflows kompatibel zu bleiben. Cyphers und Zamas fhEVM-Implementierungen ermöglichen es Entwicklern, Verträge in Solidity mit minimalen Änderungen zu schreiben – unter Verwendung einer Bibliothek zur Deklaration verschlüsselter Typen und Operationen. Der Rest der Ethereum-Toolchain (Remix, Hardhat usw.) kann weiterhin verwendet werden, da die zugrunde liegenden Modifikationen hauptsächlich auf Client-/Knotenebene erfolgen. Dies senkt die Eintrittsbarriere: Entwickler müssen keine Kryptografieexperten sein, um einen vertraulichen Smart Contract zu schreiben. Zum Beispiel kann eine einfache Addition zweier Zahlen als euint32 c = a + b;
geschrieben werden, und die FHEVM kümmert sich im Hintergrund um die verschlüsselungsspezifischen Details. Die Verträge können sogar mit normalen Verträgen interoperieren – z. B. könnte ein verschlüsselter Vertrag bei Bedarf ein entschlüsseltes Ergebnis an einen Standardvertrag ausgeben, was eine Mischung aus privaten und öffentlichen Teilen in einem Ökosystem ermöglicht.
Aktuelle FHE-VM-Projekte
Mehrere Projekte sind Pioniere in diesem Bereich. Zama (ein Pariser FHE-Startup) entwickelte das Kernkonzept und die Bibliotheken der FHEVM (TFHE-rs und eine fhevm-solidity
-Bibliothek). Sie beabsichtigen nicht, eine eigene Kette zu starten, sondern Infrastruktur für andere bereitzustellen. Inco ist eine L1-Blockchain (aufgebaut auf Cosmos SDK mit Evmos), die Zamas FHEVM integriert hat, um eine modulare vertrauliche Kette zu schaffen. Ihre Testnetze (Gentry und Paillier genannt) zeigen verschlüsselte ERC-20-Transfers und andere private DeFi-Primitive. Fhenix ist ein Ethereum Layer-2 Optimistic Rollup, das FHE für die Privatsphäre verwendet. Es entschied sich für einen optimistischen (Betrugsbeweis-)Ansatz anstelle eines ZK-Rollups aufgrund der hohen Kosten, FHE und ZK für jeden Block zusammen zu verwenden. Fhenix verwendet dieselbe TFHE-rs-Bibliothek (mit einigen Modifikationen) und führt ein Threshold Service Network zur dezentralen Handhabung von Entschlüsselungen ein. Es gibt auch unabhängige Teams wie Fhenix (jetzt umbenannt) und Startups, die MPC + FHE-Hybride erforschen. Darüber hinaus baut Cypher (von Z1 Labs) ein Layer-3-Netzwerk auf, das sich auf KI und Privatsphäre konzentriert und eine fhEVM mit Funktionen wie geheimen Speichern und Unterstützung für föderiertes Lernen verwendet. Das Ökosystem ist noch jung, wächst aber schnell, angetrieben durch erhebliche Finanzierungen – z. B. wurde Zama bis 2025 mit über 130 Millionen US-Dollar zu einem „Einhorn“, um die FHE-Technologie voranzutreiben.
Zusammenfassend ermöglicht eine FHE-VM datenschutzfreundliche Smart Contracts, indem sie die gesamte Logik auf verschlüsselten Daten On-Chain ausführt. Dieses Paradigma gewährleistet maximale Vertraulichkeit – nichts Sensibles wird jemals in Transaktionen oder im Status offengelegt – während der bestehende Blockchain-Konsens für die Integrität genutzt wird. Die Kosten sind eine erhöhte Rechenlast für Validatoren und Komplexität im Schlüsselmanagement und der Beweisintegration. Als Nächstes untersuchen wir ein alternatives Paradigma, das die Berechnung vollständig Off-Chain auslagert und die Kette nur zur Verifizierung verwendet: den Zero-Knowledge-Koprozessor.
Zero-Knowledge-Koprozessoren (ZK-Koprozessoren)
Ein ZK-Koprozessor ist ein neues Architekturmuster für Blockchains, bei dem aufwendige Berechnungen Off-Chain durchgeführt und ein prägnanter Zero-Knowledge Proof ihrer Korrektheit On-Chain verifiziert wird. Dies ermöglicht Smart Contracts, eine weitaus größere Rechenleistung und Datenmenge zu nutzen, als die On-Chain-Ausführung zulassen würde, ohne die Vertrauenslosigkeit zu opfern. Der Begriff Koprozessor wird in Analogie zu Hardware-Koprozessoren (wie einem mathematischen Koprozessor oder einer GPU) verwendet, die spezialisierte Aufgaben für eine CPU übernehmen. Hier delegiert die „CPU“ der Blockchain (die native VM wie EVM) bestimmte Aufgaben an ein Zero-Knowledge-Beweissystem, das als kryptografischer Koprozessor fungiert. Der ZK-Koprozessor liefert ein Ergebnis und einen Beweis, dass das Ergebnis korrekt berechnet wurde, den der On-Chain-Vertrag verifizieren und dann verwenden kann.
Architektur und Workflow
In einem typischen Setup identifiziert ein dApp-Entwickler Teile seiner Anwendungslogik, die für die On-Chain-Ausführung zu teuer oder komplex sind (z. B. große Berechnungen über historische Daten, aufwendige Algorithmen, ML-Modellinferenz usw.). Er implementiert diese Teile als Off-Chain-Programm (in einer Hochsprache oder einem Schaltungs-DSL), das einen Zero-Knowledge Proof seiner Ausführung erzeugen kann. Die On-Chain-Komponente ist ein Verifizierer-Smart-Contract, der Beweise prüft und die Ergebnisse dem Rest des Systems zur Verfügung stellt. Der Ablauf lässt sich wie folgt zusammenfassen:
- Anfrage – Der On-Chain-Vertrag löst eine Anfrage für eine bestimmte Off-Chain-Berechnung aus. Dies kann durch eine Benutzertransaktion oder durch einen Vertrag, der die Schnittstelle des ZK-Koprozessors aufruft, initiiert werden. Zum Beispiel könnte ein DeFi-Vertrag „proveInterestRate(currentState)“ aufrufen oder ein Benutzer „queryHistoricalData(query)“.
- Off-Chain-Ausführung & Beweiserstellung – Ein Off-Chain-Dienst (der je nach Design ein dezentrales Netzwerk von Provern oder ein vertrauenswürdiger Dienst sein könnte) nimmt die Anfrage entgegen. Er sammelt alle erforderlichen Daten (On-Chain-Status, Off-Chain-Eingaben usw.) und führt die Berechnung in einer speziellen ZK Virtual Machine (ZKVM) oder Schaltung aus. Während der Ausführung wird eine Beweisspur generiert. Am Ende erstellt der Dienst einen prägnanten Beweis (z. B. einen SNARK oder STARK), der bescheinigt, dass „die Berechnung der Funktion F auf der Eingabe X das Ergebnis Y liefert“ und optional die Datenintegrität bescheinigt (mehr dazu unten).
- On-Chain-Verifizierung – Der Beweis und das Ergebnis werden an die Blockchain zurückgegeben (oft über eine Callback-Funktion). Der Verifizierer-Vertrag prüft die Gültigkeit des Beweises mittels effizienter kryptografischer Verifizierung (Pairing-Checks usw.). Wenn gültig, kann der Vertrag nun dem Ergebnis Y als korrekt vertrauen. Das Ergebnis kann im Status gespeichert, als Ereignis ausgegeben oder in weitere Vertragslogik eingespeist werden. Wenn der Beweis ungültig ist oder nicht innerhalb einer bestimmten Zeit bereitgestellt wird, kann die Anfrage als fehlgeschlagen betrachtet werden (und möglicherweise wird eine Fallback- oder Timeout-Logik ausgelöst).
Kritisch ist, dass die On-Chain-Gaskosten für die Verifizierung konstant sind (oder sehr langsam wachsen), unabhängig davon, wie komplex die Off-Chain-Berechnung war. Die Verifizierung eines prägnanten Beweises kann in der Größenordnung von einigen Hunderttausend Gas liegen (ein Bruchteil eines Ethereum-Blocks), aber dieser Beweis könnte Millionen von Off-Chain durchgeführten Rechenschritten repräsentieren. Wie ein Entwickler witzelte: „Möchten Sie eine digitale Signatur beweisen? ~15 .Mo¨chtenSieeineMillionSignaturenbeweisen?Auch 15.“. Diese Skalierbarkeit ist ein großer Gewinn: dApps können komplexe Funktionalitäten (Big-Data-Analysen, aufwendige Finanzmodelle usw.) anbieten, ohne die Blockchain zu überlasten.
Die Hauptkomponenten eines ZK-Koprozessor-Systems sind:
-
Beweisgenerierungsumgebung: Dies kann eine allgemeine ZKVM (die beliebige Programme ausführen kann) oder benutzerdefinierte Schaltungen sein, die auf spezifische Berechnungen zugeschnitten sind. Ansätze variieren:
- Einige Projekte verwenden handgefertigte Schaltungen für jede unterstützte Abfrage oder Funktion (maximale Effizienz für diese Funktion).
- Andere bieten eine Domain-Specific Language (DSL) oder eine Embedded DSL an, die Entwickler verwenden, um ihre Off-Chain-Logik zu schreiben, die dann in Schaltungen kompiliert wird (Balance zwischen Benutzerfreundlichkeit und Leistung).
- Der flexibelste Ansatz ist eine zkVM: eine virtuelle Maschine (oft basierend auf RISC-Architekturen), in der Programme in Standardsprachen (Rust, C usw.) geschrieben und automatisch bewiesen werden können. Dies opfert Leistung (die Simulation einer CPU in einer Schaltung fügt Overhead hinzu) für maximale Entwicklererfahrung.
-
Datenzugriff und Integrität: Eine einzigartige Herausforderung besteht darin, die Off-Chain-Berechnung mit den richtigen Daten zu versorgen, insbesondere wenn diese Daten auf der Blockchain liegen (vergangene Blöcke, Vertragszustände usw.). Eine naive Lösung besteht darin, den Prover von einem Archivknoten lesen zu lassen und ihm zu vertrauen – dies führt jedoch zu Vertrauensannahmen. ZK-Koprozessoren beweisen stattdessen typischerweise, dass alle verwendeten On-Chain-Daten tatsächlich authentisch waren, indem sie auf Merkle-Beweise oder Status-Commitments verweisen. Zum Beispiel könnte das Abfrageprogramm eine Blocknummer und einen Merkle-Beweis eines Speicherplatzes oder einer Transaktion entgegennehmen, und die Schaltung wird diesen Beweis gegen einen bekannten Block-Header-Hash verifizieren. Es gibt drei Muster:
- Inline-Daten: Die benötigten Daten On-Chain ablegen (als Eingabe für den Verifizierer), damit sie direkt überprüft werden können. Dies ist für große Daten sehr kostspielig und untergräbt den ganzen Sinn.
- Einem Orakel vertrauen: Einen Orakel-Dienst die Daten an den Beweis liefern lassen und dafür bürgen. Dies ist einfacher, führt aber das Vertrauen in eine dritte Partei wieder ein.
- Dateninklusion über ZK beweisen: Beweise für die Dateninklusion in der Kettengeschichte innerhalb der Zero-Knowledge-Schaltung selbst integrieren. Dies nutzt die Tatsache, dass jeder Ethereum-Block-Header den gesamten vorherigen Status (über den Status-Root) und die Transaktionshistorie festschreibt. Durch die Verifizierung von Merkle-Patricia-Beweisen der Daten innerhalb der Schaltung versichert der Ausgabebeweis dem Vertrag, dass „diese Berechnung echte Blockchain-Daten von Block N verwendet hat“ ohne zusätzliche Vertrauenswürdigkeit.
Der dritte Ansatz ist der vertrauensloseste und wird von fortgeschrittenen ZK-Koprozessoren wie Axiom und Xpansion verwendet (er erhöht zwar die Beweiskosten, ist aber aus Sicherheitsgründen vorzuziehen). Zum Beispiel modelliert Axioms System die Blockstruktur, den Status-Trie und den Transaktions-Trie von Ethereum in seinen Schaltungen, sodass es Aussagen wie „das Konto X
hatte zum Block N
den Saldo Y
“ oder „eine Transaktion mit bestimmten Eigenschaften erfolgte in Block N“ beweisen kann. Es nutzt die Tatsache, dass man, gegeben einen kürzlich vertrauenswürdigen Block-Hash, die Inklusion historischer Daten rekursiv beweisen kann, ohne einer externen Partei zu vertrauen.
-
Verifizierer-Vertrag: Dieser On-Chain-Vertrag enthält den Verifizierungsschlüssel und die Logik zum Akzeptieren oder Ablehnen von Beweisen. Für SNARKs wie Groth16 oder PLONK könnte der Verifizierer einige elliptische Kurvenpaarungen durchführen; für STARKs könnte er einige Hash-Berechnungen durchführen. Leistungsoptimierungen wie Aggregation und Rekursion können die On-Chain-Last minimieren. Zum Beispiel verwendet RISC Zeros Bonsai einen STARK-zu-SNARK-Wrapper: Es betreibt eine STARK-basierte VM Off-Chain für Geschwindigkeit, generiert dann aber einen kleinen SNARK-Beweis, der die Gültigkeit des STARK bescheinigt. Dies reduziert die Beweisgröße von Hunderten von Kilobytes auf wenige Hundert Bytes, wodurch die On-Chain-Verifizierung machbar und kostengünstig wird. Der Solidity-Verifizierer prüft dann einfach den SNARK (was eine Operation mit konstanter Zeit ist).
In Bezug auf die Bereitstellung können ZK-Koprozessoren als Layer-2-ähnliche Netzwerke oder als reine Off-Chain-Dienste fungieren. Einige, wie Axiom, begannen als spezialisierter Dienst für Ethereum (mit Unterstützung von Paradigm), bei dem Entwickler Anfragen an Axioms Prover-Netzwerk senden und Beweise On-Chain erhalten. Axioms Slogan war, Ethereum-Verträgen „vertrauenslosen Zugriff auf alle On-Chain-Daten und beliebige expressive Berechnungen darüber“ zu ermöglichen. Es fungiert effektiv als Abfrageorakel, dessen Antworten durch ZKPs anstelle von Vertrauen verifiziert werden. Andere, wie RISC Zeros Bonsai, bieten eine offenere Plattform: Jeder Entwickler kann ein Programm (kompiliert zu einer RISC-V-kompatiblen ZKVM) hochladen und Bonsais Beweisdienst über einen Relay-Vertrag nutzen. Das Relay-Muster, wie in Abbildung 1 dargestellt, beinhaltet einen Vertrag, der Anfragen und Antworten vermittelt: Der dApp-Vertrag ruft das Relay auf, um einen Beweis anzufordern, der Off-Chain-Dienst lauscht darauf (z. B. über Ereignis oder direkten Aufruf), berechnet den Beweis, und dann ruft das Relay eine Callback-Funktion auf dem dApp-Vertrag mit dem Ergebnis und dem Beweis auf. Dieses asynchrone Modell ist notwendig, da die Beweiserstellung je nach Komplexität Sekunden bis Minuten dauern kann. Es führt eine Latenz ein (und eine Lebendigkeitsannahme, dass der Prover antworten wird), während FHE-VM-Berechnungen synchron innerhalb eines Blocks stattfinden. Die Gestaltung der Anwendung zur Handhabung dieses asynchronen Workflows (möglicherweise ähnlich wie bei Oracle-Antworten) ist Teil der Verwendung eines ZK-Koprozessors.
Bemerkenswerte ZK-Koprozessor-Projekte
-
Axiom: Axiom ist ein ZK-Koprozessor, der auf Ethereum zugeschnitten ist und sich ursprünglich auf das Beweisen historischer On-Chain-Datenabfragen konzentrierte. Es verwendet das Halo2-Beweis-Framework (ein Plonk-ähnlicher SNARK), um Beweise zu erstellen, die Ethereums kryptografische Strukturen integrieren. In Axioms System kann ein Entwickler Dinge abfragen wie „wie war der Status von Vertrag X in Block N?“ oder eine Berechnung über alle Transaktionen in einem Bereich durchführen. Unter der Haube mussten Axioms Schaltungen Ethereums Status-/Trie-Logik implementieren, sogar elliptische Kurvenoperationen und SNARK-Verifizierung innerhalb der Schaltung durchführen, um Rekursion zu unterstützen. Trail of Bits bemerkte in einem Audit die Komplexität von Axioms Halo2-Schaltungen, die ganze Blöcke und Zustände modellieren. Nach dem Audit verallgemeinerte Axiom ihre Technologie zu einer OpenVM, die die Beweisführung beliebigen Rust-Codes mit derselben Halo2-basierten Infrastruktur ermöglicht. (Dies spiegelt den Trend wider, von domänenspezifischen Schaltungen zu einem allgemeineren ZKVM-Ansatz überzugehen.) Das Axiom-Team demonstrierte ZK-Abfragen, die Ethereum nativ nicht durchführen kann, wodurch ein zustandsloser Zugriff auf beliebige historische Daten mit kryptografischer Integrität ermöglicht wird. Sie haben auch die Sicherheit betont, indem sie unterbeschränkte Schaltungsfehler gefunden und behoben und die Korrektheit sichergestellt haben. Obwohl Axioms ursprüngliches Produkt während ihrer Neuausrichtung eingestellt wurde, bleibt ihr Ansatz ein Meilenstein bei ZK-Koprozessoren.
-
RISC Zero Bonsai: RISC Zero ist eine ZKVM, die auf der RISC-V-Architektur basiert. Ihre zkVM kann beliebige Programme (geschrieben in Rust, C++ und anderen Sprachen, die nach RISC-V kompiliert werden) ausführen und einen STARK-Beweis der Ausführung erzeugen. Bonsai ist RISC Zeros Cloud-Dienst, der diese Beweiserstellung bei Bedarf bereitstellt und als Koprozessor für Smart Contracts fungiert. Um es zu verwenden, schreibt ein Entwickler ein Programm (z. B. eine Funktion, die komplexe Mathematik ausführt oder eine Off-Chain-API-Antwort verifiziert), lädt es in den Bonsai-Dienst hoch und stellt einen entsprechenden Verifizierer-Vertrag bereit. Wenn der Vertrag diese Berechnung benötigt, ruft er das Bonsai-Relay auf, das die Beweisgenerierung auslöst und das Ergebnis über einen Callback zurückgibt. Eine demonstrierte Anwendungsbeispiel war die Off-Chain-Governance-Berechnung: RISC Zero zeigte eine DAO, die Bonsai verwendete, um Stimmen zu zählen und komplexe Abstimmungsmetriken Off-Chain zu berechnen, und dann einen Beweis zu veröffentlichen, damit der On-Chain-Governor-Vertrag dem Ergebnis mit minimalen Gaskosten vertrauen konnte. Die Technologie von RISC Zero betont, dass Entwickler vertraute Programmierparadigmen verwenden können – zum Beispiel eine Rust-Funktion schreiben, um etwas zu berechnen – und die schwere Arbeit der Schaltungserstellung von der zkVM übernommen wird. Allerdings können Beweise groß sein, daher implementierten sie, wie bereits erwähnt, eine SNARK-Kompression für die On-Chain-Verifizierung. Im August 2023 verifizierten sie erfolgreich RISC Zero-Beweise im Ethereum Sepolia Testnet, was in der Größenordnung von 300.000 Gas pro Beweis kostete. Dies öffnet die Tür für Ethereum-dApps, Bonsai heute als Skalierungs- und Datenschutzlösung zu nutzen. (Bonsai ist noch in der Alpha-Phase, nicht produktionsreif und verwendet ein temporäres SNARK-Setup ohne Zeremonie.)
-
Andere: Es gibt zahlreiche weitere Akteure und Forschungsinitiativen. Expansion/Xpansion (wie in einem Blog erwähnt) verwendet einen eingebetteten DSL-Ansatz, bei dem Entwickler Abfragen über On-Chain-Daten mit einer spezialisierten Sprache schreiben können, und es die Beweisgenerierung intern handhabt. StarkWares Cairo und Polygons zkEVM sind allgemeinere ZK-Rollup-VMs, aber ihre Technologie könnte für koprozessorähnliche Anwendungen wiederverwendet werden, indem Beweise in L1-Verträgen verifiziert werden. Wir sehen auch Projekte im Bereich ZKML (ZK Machine Learning), die effektiv als Koprozessoren fungieren, um ML-Modellinferenzen oder Trainingsergebnisse On-Chain zu verifizieren. Zum Beispiel kann ein zkML-Setup beweisen, dass „eine neuronale Netzwerk-Inferenz auf privaten Eingaben die Klassifizierung X erzeugt hat“, ohne die Eingaben offenzulegen oder die Berechnung On-Chain durchzuführen. Dies sind Sonderfälle des Koprozessorkonzepts, die auf KI angewendet werden.
Vertrauensannahmen: ZK-Koprozessoren verlassen sich auf die Korrektheit der kryptografischen Beweise. Wenn das Beweissystem sicher ist (und ein eventuelles Trusted Setup ehrlich durchgeführt wird), dann garantiert ein akzeptierter Beweis, dass die Berechnung korrekt war. Es ist kein zusätzliches Vertrauen in den Prover erforderlich – selbst ein böswilliger Prover kann den Verifizierer nicht von einer falschen Aussage überzeugen. Es gibt jedoch eine Lebendigkeitsannahme: Jemand muss die Off-Chain-Berechnung tatsächlich durchführen und den Beweis erbringen. In der Praxis könnte dies ein dezentrales Netzwerk (mit Anreizen oder Gebühren für die Arbeit) oder ein einzelner Dienstbetreiber sein. Wenn niemand den Beweis liefert, bleibt die On-Chain-Anfrage möglicherweise ungelöst. Ein weiterer subtiler Vertrauensaspekt ist die Datenverfügbarkeit für Off-Chain-Eingaben, die nicht auf der Blockchain liegen. Wenn die Berechnung von privaten oder externen Daten abhängt, kann der Verifizierer nicht wissen, ob diese Daten ehrlich bereitgestellt wurden, es sei denn, es werden zusätzliche Maßnahmen (wie Daten-Commitments oder Orakel-Signaturen) verwendet. Aber für rein On-Chain-Datenberechnungen stellen die beschriebenen Mechanismen eine Vertrauenslosigkeit sicher, die der Kette selbst entspricht (Axiom argumentierte, dass ihre Beweise für historische Abfragen „kryptografisch äquivalente Sicherheit wie Ethereum“ bieten).
Privatsphäre: Zero-Knowledge Proofs unterstützen auch von Natur aus die Privatsphäre – der Prover kann Eingaben verborgen halten, während er Aussagen darüber beweist. Im Kontext eines Koprozessors bedeutet dies, dass ein Beweis einem Vertrag ermöglichen kann, ein Ergebnis zu verwenden, das aus privaten Daten abgeleitet wurde. Zum Beispiel könnte ein Beweis zeigen: „Der Kredit-Score des Benutzers > 700, also Kredit genehmigen“, ohne den tatsächlichen Kredit-Score oder Rohdaten preiszugeben. Axioms Anwendungsfall betraf eher öffentlich bekannte Daten (Blockchain-Historie), daher lag der Fokus dort nicht auf der Privatsphäre. Aber RISC Zeros zkVM könnte verwendet werden, um Behauptungen über geheime Daten zu beweisen, die von einem Benutzer bereitgestellt werden: Die Daten bleiben Off-Chain, und nur das benötigte Ergebnis geht On-Chain. Es ist erwähnenswert, dass ein ZK-Beweis im Gegensatz zu FHE normalerweise keine fortlaufende Vertraulichkeit des Status bietet – es ist ein einmaliger Beweis. Wenn ein Workflow die Aufrechterhaltung eines geheimen Status über Transaktionen hinweg erfordert, könnte man dies aufbauen, indem der Vertrag ein Commitment auf den Status speichert und jeder Beweis einen gültigen Statusübergang vom alten Commitment zum neuen zeigt, wobei Geheimnisse verborgen bleiben. Dies ist im Wesentlichen die Funktionsweise von zk-Rollups für private Transaktionen (wie Aztec oder Zcash). ZK-Koprozessoren können also vollständig private Zustandsmaschinen ermöglichen, aber die Implementierung ist nicht trivial; oft werden sie für einmalige Berechnungen verwendet, bei denen entweder die Eingabe oder die Ausgabe (oder beides) bei Bedarf privat sein kann.
Entwicklererfahrung: Die Verwendung eines ZK-Koprozessors erfordert typischerweise das Erlernen neuer Tools. Das Schreiben benutzerdefinierter Schaltungen (Option (1) oben) ist ziemlich komplex und wird normalerweise nur für eng definierte Zwecke durchgeführt. Höherwertige Optionen wie DSLs oder zkVMs erleichtern das Leben, fügen aber dennoch Overhead hinzu: Der Entwickler muss Off-Chain-Code schreiben und bereitstellen und die Interaktion verwalten. Im Gegensatz zur FHE-VM, wo die Verschlüsselung größtenteils im Hintergrund abläuft und der Entwickler normalen Smart-Contract-Code schreibt, muss der Entwickler hier seine Logik partitionieren und möglicherweise in einer anderen Sprache (Rust usw.) für den Off-Chain-Teil schreiben. Initiativen wie Noir, Leo, Circom DSLs oder RISC Zeros Ansatz verbessern jedoch schnell die Zugänglichkeit. Zum Beispiel bietet RISC Zero Vorlagen und Foundry-Integration, sodass ein Entwickler seinen Off-Chain-Code lokal simulieren (zur Korrektheit) und ihn dann nahtlos über den Bonsai-Callback in Solidity-Tests einbinden kann. Im Laufe der Zeit können wir Entwicklungsframeworks erwarten, die abstrahieren, ob ein Logikteil über ZK-Beweis oder On-Chain ausgeführt wird – der Compiler oder die Tools könnten dies basierend auf den Kosten entscheiden.
FHE-VM vs. ZK-Koprozessor: Vergleich
Sowohl FHE-VMs als auch ZK-Koprozessoren ermöglichen eine Form von „Berechnung auf privaten Daten mit On-Chain-Sicherheit“, unterscheiden sich jedoch grundlegend in ihrer Architektur. Die folgende Tabelle fasst die wichtigsten Unterschiede zusammen:
Aspekt | FHE-VM (Verschlüsselte On-Chain-Ausführung) | ZK-Koprozessor (Off-Chain-Beweisführung) |
---|
Wo die Berechnung stattfindet | Direkt On-Chain (alle Knoten führen homomorphe Operationen auf Chiffretexten aus). | Off-Chain (ein Prover oder Netzwerk führt das Programm aus; nur ein Beweis wird On-Chain verifiziert). |
Datenvertraulichkeit | Vollständige Verschlüsselung: Daten bleiben jederzeit On-Chain verschlüsselt; Validatoren sehen niemals Klartext. Nur Inhaber von Entschlüsselungsschlüsseln können Ausgaben entschlüsseln. | Zero-Knowledge: private Eingaben des Provers werden niemals On-Chain offengelegt; der Beweis offenbart keine Geheimnisse über das hinaus, was in den öffentlichen Ausgaben enthalten ist. Daten, die in der Berechnung verwendet werden und den On-Chain-Status beeinflussen müssen, müssen jedoch in der Ausgabe oder im Commitment kodiert sein. Geheimnisse bleiben standardmäßig Off-Chain. |
Vertrauensmodell | Vertrauen in die Konsensausführung und Kryptographie: Wenn die Mehrheit der Validatoren dem Protokoll folgt, ist die verschlüsselte Ausführung deterministisch und korrekt. Für die Korrektheit der Berechnung ist kein externes Vertrauen erforderlich (alle Knoten berechnen sie neu). Für die Privatsphäre muss der Sicherheit des FHE-Schemas vertraut werden (typischerweise basierend auf Gitterhärte). In einigen Designs muss auch darauf vertraut werden, dass keine Kollusion von genügend Validatoren auftreten kann, um Schwellenwertschlüssel zu missbrauchen. | Vertrauen in die Sicherheit des Beweissystems (Korrektheit von SNARK/STARK). Wenn der Beweis verifiziert wird, ist das Ergebnis mit kryptografischer Sicherheit korrekt. Off-Chain-Prover können die Mathematik nicht betrügen. Es gibt eine Lebendigkeitsannahme an Prover, die Arbeit tatsächlich zu erledigen. Bei Verwendung eines Trusted Setup (z. B. SNARK SRS) muss darauf vertraut werden, dass es ehrlich generiert wurde, oder transparente/Setup-freie Systeme verwendet werden. |