HAL vs Graph kann allgemeiner betrachtet werden als: Beim Modellieren von "Berechnung" verwenden wir - Shallow Embedding (direkt in der Host-Sprache schreiben) oder - Deep Embedding (als Datenstruktur kodieren)? 🧵
Von flach → tief gibt es mehrere Entwurfspunkte: 1. Direkte Implementierung in Rust / C++ 2. Eingebettete DSL innerhalb der Host-Sprache 3. Eine brandneue spezialisierte Sprache Jeder Schritt tauscht Bequemlichkeit gegen Struktur und Analysierbarkeit aus.
In ZK reicht es nicht aus, eine Berechnung durchzuführen — wir müssen sie auch in Einschränkungen übersetzen. Die meisten Beweissysteme neigen bereits zu (2) oder (3): - Circom, PIL/PIL2 → benutzerdefinierte Einschränkungssprachen + Compiler - Plonky2 → jede Gatter definiert mehrere semantische Funktionen
Plonky3 geht mit dem AirBuilder-Attribut weiter: derselbe Code kann Zeugen auswerten, Verifier-Restwerte berechnen und Einschränkungs-Polynome ausgeben. Viele zkVMs (SP1, Hypercube, OpenVM) übernehmen Plonky3; Zisk basiert auf PIL2. Dies zeigt einen klaren Trend zu tiefen, graphähnlichen Darstellungen von Berechnungen.
1,79K