Opciones de Circuito
Opciones para el comando circuit.
Uso
ach circuit <ruta> [opciones]
Valores de Entrada
| Bandera | Descripción |
|---|---|
--inputs <vals> | Pares clave=valor separados por comas (ej., --inputs "a=6,b=7,c=42") |
--input-file <ruta> | Archivo TOML con valores de entrada (arrays soportados nativamente) |
Los valores se parsean como elementos del campo BN254. Soporta decimal, hex (0xFF) y valores negativos. Las dos banderas son mutuamente excluyentes.
Archivo TOML de entradas
Para circuitos con parámetros de array, --input-file evita la convención _N:
# inputs.toml
root = "7853200120375982..."
leaf = "1"
path = ["2", "3"]
indices = ["0", "1"]
ach circuit merkle.ach --input-file inputs.toml
Los arrays TOML se expanden a path_0, path_1, etc. internamente. Se aceptan valores como string ("42") o entero (42).
Selección de Backend
| Bandera | Descripción |
|---|---|
--backend <backend> | Backend de restricciones: r1cs (predeterminado) o plonkish |
Backend R1CS (predeterminado)
Genera archivos .r1cs y .wtns compatibles con snarkjs.
Backend Plonkish
Genera puertas Plonkish, lookups y restricciones de copia. Verifica localmente (sin exportación binaria aún).
Generación de Pruebas
| Bandera | Descripción |
|---|---|
--prove | Generar una prueba criptográfica después de compilar y verificar |
--solidity | Generar un contrato verificador Solidity (solo R1CS/Groth16) |
Optimización
| Bandera | Descripción |
|---|---|
--no-optimize | Omitir pases de optimización del IR SSA (plegado de constantes, DCE, propagación booleana) |
Ejemplos
# Salida R1CS con inputs inline
ach circuit circuit.ach --inputs "x=42,y=7"
# Inputs desde archivo TOML
ach circuit circuit.ach --input-file inputs.toml
# Backend Plonkish
ach circuit circuit.ach --backend plonkish --inputs "x=42"
# Generar prueba Groth16
ach circuit circuit.ach --inputs "x=42,y=7" --prove
# Generar verificador Solidity
ach circuit circuit.ach --inputs "x=42,y=7" --solidity
# Compilación sin optimizar
ach circuit circuit.ach --inputs "x=42" --no-optimize
Archivos de Salida (R1CS)
| Archivo | Descripción |
|---|---|
circuit.r1cs | Sistema de restricciones R1CS (formato binario iden3 v1) |
witness.wtns | Valores del testigo (formato binario iden3 v2) |
Ambos archivos son compatibles con snarkjs:
snarkjs r1cs info circuit.r1cs
snarkjs wtns check circuit.r1cs witness.wtns