HAL vs Graph kan ses mer generellt som: När vi modellerar "beräkning", använder vi då - Shallow Embedding (skriv det direkt i värdspråket), eller - Djup inbäddning (koda den som en datastruktur)? 🧵
Från grunda → djupa finns flera designpunkter: 1. Direkt implementering i Rust / C++ 2. Inbäddad DSL i värdspråket 3. Ett helt nytt specialiserat språk Varje steg byter bekvämlighet mot struktur och analysbarhet.
I ZK räcker det inte att köra en beräkning — vi måste också översätta den till begränsningar. Så de flesta bevissystem lutar redan åt (2) eller (3): - Circom, PIL/PIL2 → anpassade begränsningsspråk + kompilatorer - Plonky2 → varje grind definierar flera semantiska funktioner
Plonky3 går längre med AirBuilder-egenskapen: samma kod kan utvärdera vittnen, beräkna verifieringsresidualer och dumpa begränsningspolynom. Många zkVM:er (SP1, Hypercube, OpenVM) antar Plonky3; Zisk är baserad på PIL2. Detta visar en tydlig trend mot djupa, grafliknande representationer av beräkningar.
1,81K