Ir al contenido

Opciones de Circuito

Ventana de terminal
ach circuit <ruta> [opciones]
BanderaDescripció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.

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"]
Ventana de terminal
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).

BanderaDescripción
--backend <backend>Backend de restricciones: r1cs (predeterminado) o plonkish

Genera archivos .r1cs y .wtns compatibles con snarkjs.

Genera puertas Plonkish, lookups y restricciones de copia. Verifica localmente (sin exportación binaria aún).

BanderaDescripción
--proveGenerar una prueba criptográfica después de compilar y verificar
--solidityGenerar un contrato verificador Solidity (solo R1CS/Groth16)
BanderaDescripción
--no-optimizeOmitir pases de optimización del IR SSA (plegado de constantes, DCE, propagación booleana)
Ventana de terminal
# 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
ArchivoDescripción
circuit.r1csSistema de restricciones R1CS (formato binario iden3 v1)
witness.wtnsValores del testigo (formato binario iden3 v2)

Ambos archivos son compatibles con snarkjs:

Ventana de terminal
snarkjs r1cs info circuit.r1cs
snarkjs wtns check circuit.r1cs witness.wtns