HAL vs Graph dapat dilihat secara lebih umum sebagai: Saat memodelkan "komputasi", apakah kita menggunakan - Penyematan dangkal (tulis langsung dalam bahasa host), atau - Penyematan dalam (mengkodekannya sebagai struktur data)? 🧵
Dari dangkal → dalam, ada beberapa titik desain: 1. Implementasi langsung di Rust / C++ 2. DSL tertanam di dalam bahasa host 3. Bahasa khusus baru Setiap langkah memperdagangkan kenyamanan untuk struktur dan kemampuan analisis.
Di ZK, tidak cukup untuk menjalankan komputasi — kita juga harus menerjemahkannya menjadi kendala. Jadi sebagian besar sistem pembuktian sudah condong ke arah (2) atau (3): - Circom, PIL/PIL2 → bahasa batasan kustom + kompiler - Plonky2 → setiap gerbang mendefinisikan beberapa fungsi semantik
Plonky3 melangkah lebih jauh dengan sifat AirBuilder: kode yang sama dapat mengevaluasi saksi, komputasi residu verifier, dan polinomial batasan dump. Banyak zkVM (SP1, Hypercube, OpenVM) mengadopsi Plonky3; Zisk didasarkan pada PIL2. Ini menunjukkan kecenderungan yang jelas menuju representasi komputasi yang dalam dan seperti grafik.
1,81K