Achronyme 0.1.2 publicado: la verificacion separada conserva errores operativos y salida JSON global arrow_right_alt
Achronyme 0.1.2

Escribe código.
Limita acceso.
Genera pruebas.

Programas concurrentes y circuitos zero-knowledge, con autoridad y confianza de proving explícitas.

$ curl -fsSL https://achrony.me/install.sh | sh
Un source, rutas de ejecución explícitas.
IntérpreteLLVM JITAOT nativoR1CSGroth16
La tri-arquitectura

Tres máquinas, un pipeline explícito.

Cada VM posee una responsabilidad distinta en lugar de ocultar ejecución, witness y constraints detrás de un solo runtime.

A
Akron VM de host y superficie

Ejecuta el lenguaje, tareas estructuradas, recursos con propietario, closures y bloques de prueba. Intérprete, JIT y AOT comparten el mismo límite de autoridad.

Tareas estructuradas I/O con propietario JIT + AOT Pruebas como valores
A
Artik VM de witness

Ejecuta programas deterministas de witness, incluyendo lowering Circom multi-subprograma y operaciones bigint nativas para circuitos a escala ECDSA.

Witness determinista Bigint nativo Multi-subprograma Multi-prime
L
Lysis VM de instanciación

Escalona la expansión de templates, deduplica cuerpos compartidos y emite IR de constraints sin cargar cada subgrafo repetido a la vez.

Expansión por etapas Hash-consing Cuerpos compartidos IR de constraints
ACH RUN

Programas de host concurrentes

Closures, colecciones, tareas estructuradas, canales acotados y recursos de archivo o TCP corren bajo grants y límites explícitos.

algorithms.ach
VM
// Binary search — full VM mode
fn binary_search(arr, target) {
    mut lo = 0
    mut hi = len(arr) - 1
    while lo <= hi {
        let mid = (lo + hi) / 2
        if arr[mid] == target { return mid }
        if arr[mid] < target {
            lo = mid + 1
        } else {
            hi = mid - 1
        }
    }
    return -1
}

let sorted = [2, 5, 8, 12, 16, 23, 38]
assert(binary_search(sorted, 23) == 5)
terminal
CLI
$ ach circuit vote.ach --inputs "..." --backend r1cs

Compiling vote.ach...
    IR: 18 instructions
    Optimized: 3 eliminated (constant folding + DCE)
    Boolean propagation: 2 proven

R1CS generated:
    Constraints:    2,179
    Public inputs:  4
    Private inputs: 5
    Wrote vote.r1cs (932 bytes)
    Wrote witness.wtns (236 bytes)  verified OK
ACH CIRCUIT

Artefactos de circuito exactos

Compila Achronyme y Circom a constraints y witnesses optimizados que pueden comprobarse con tooling estándar independiente.

DEPLOY

Verificación separada y on-chain

Exporta artefactos compatibles con snarkjs, genera verificadores Groth16 en Solidity o verifica JSON BN254 y BLS12-381 desde el CLI.

--solidity Groth16 EVM-ready snarkjs-compat
terminal
CLI
$ ach run proof.ach --prove-backend r1cs --insecure-dev-setup
Development key selected (not for production)
Proof generated (Groth16)
Proof verified — 5 constraints

$ ach circuit proof.ach --solidity Verifier.sol
    Wrote Verifier.sol (Solidity Groth16 verifier)

// Deploy and verify on-chain
commitment.ach
ZK
let secret = 0p12345
let blinding = 0p98765
let commitment = poseidon(secret, blinding)

let proof = prove(commitment: Public) {
    assert_eq(poseidon(secret, blinding), commitment)
}

// proof is a first-class value
let json = proof_json(proof)
assert(verify_proof(proof))
PROVE {}

Pruebas con fuente de llave explícita

Los bloques prove siguen siendo valores first-class, pero fallan si no se selecciona setup de desarrollo o un store confiable ligado al circuito.

prove {} proof_json() verify_proof()
Modos de confianza

Velocidad de desarrollo sin ambigüedad en producción

Usa setup local explícito al iterar y cambia al store exacto ligado por ceremonia para producción.

Desarrollo
explícitamente inseguro
# Local iteration only
$ ach run commitment.ach \
    --insecure-dev-setup

Development key selected
Single-party setup is explicit.
The resulting artifacts are not
trusted for production.

Proof generated (Groth16)
Proof verified
Producción
ligado por ceremonia
let secret = 0p12345
let blinding = 0p98765
let commitment = poseidon(secret, blinding)

prove(commitment: Public) {
    assert_eq(poseidon(secret, blinding), commitment)
}

// Proof generated + verified (Groth16)
terminal
output
$ ach run commitment.ach \
    --trusted-key-dir ./keys/commitment

Circuit-bound key accepted
Proof generated (Groth16)
Proof verified — 361 constraints
v0.1.2 Core estable
cd7a6e66 Revisión del core
v0.3.1 Editor estable
v0.1.2 Web estable