HAL vs Graph pode ser visto de forma mais geral como: Ao modelar "cálculo", usamos - Embedding Superficial (escrevê-lo diretamente na linguagem anfitriã), ou - Embedding Profundo (codificá-lo como uma estrutura de dados)? 🧵
De raso → profundo, existem vários pontos de design: 1. Implementação direta em Rust / C++ 2. DSL embutido dentro da linguagem anfitriã 3. Uma nova linguagem especializada Cada passo troca conveniência por estrutura e analisabilidade.
No ZK, não é suficiente executar um cálculo — também devemos traduzi-lo em restrições. Portanto, a maioria dos sistemas de prova já tende para (2) ou (3): - Circom, PIL/PIL2 → linguagens de restrição personalizadas + compiladores - Plonky2 → cada porta define várias funções semânticas
Plonky3 avança ainda mais com a característica AirBuilder: o mesmo código pode avaliar testemunhas, calcular resíduos do verificador e despejar polinómios de restrição. Muitos zkVMs (SP1, Hypercube, OpenVM) adotam Plonky3; Zisk é baseado em PIL2. Isto mostra uma clara tendência para representações de computação profundas e semelhantes a grafos.
1,8K