Presentamos Achronyme — un lenguaje para pruebas zero-knowledge. Lee el anuncio

Opciones de Circuito

Opciones para el comando circuit.

Uso

ach circuit <ruta> [opciones]

Valores de Entrada

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.

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

BanderaDescripció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

BanderaDescripción
--proveGenerar una prueba criptográfica después de compilar y verificar
--solidityGenerar un contrato verificador Solidity (solo R1CS/Groth16)

Optimización

BanderaDescripción
--no-optimizeOmitir 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)

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:

snarkjs r1cs info circuit.r1cs
snarkjs wtns check circuit.r1cs witness.wtns
Navigation