v0.5.1 — pre-release hardening + docs
Hazync v0.5.1 — pre-release hardening + docs
A hardening and documentation release following an adversarial pre-release audit. The zkVM guest is unchanged — METHOD_ID is still c029cee4be0a0478af667b03d95112304e574beb93e23ffd97afb93d66742059. Every existing proof still verifies, and the version-less download URLs are unchanged. This release repackages the same guest with an improved host binary and updated docs.
Download (URLs stable across releases)
- Verify a proof (any Linux x86-64, glibc 2.39+):
releases/latest/download/hazync-host-x86_64-linux-gnu - Prove (NVIDIA GPU + CUDA 12.6):
releases/latest/download/hazync-host-x86_64-linux-gnu-cuda
What changed, by file
prover/host/src/main.rs—verify-anynow distinguishes a genuinely invalid/forged proof from a build (METHOD_ID) mismatch, using the proof's own committed guest id. A real forgery is no longer reported as a benign build mismatch. (Verification still fails closed either way — this is diagnostics, not soundness.)coordinator/server.py— DoS/abuse hardening for the public coordinator: per-IP read rate-limit + a short/api/statecache;X-Forwarded-Fortrusted only from a configured proxy + a bounded rate map (anti-spoof / anti-memory-exhaustion); reserved-handle rejection + a pubkey takedown list; and a startup guard that refuses a public bind while verification/signatures are in a permissive mode.coordinator/deploy/nginx-hazync.conf— addslimit_req/limit_conn, a 1-second/api/statemicro-cache, andclient_max_body_size 8m(so folded multi-block receipts don't 413 at the proxy).coordinator/deploy/backup.sh(new) +RUNBOOK.md— back up both the ledger DB and the proof receipts, offsite, with a documented restore drill; plus moderation notes.coordinator/hazync—run <range>fails fast when the range is outside the served witness window, instead of claiming it and then 404-ing mid-fetch.provision-vps.sh— pins Bitcoin Corev28.0and libsecp256k1v0.5.1by immutable commit hash (asserts the checkout), so a re-pointed upstream tag can't silently change the guest. Source is unchanged —METHOD_IDis unaffected.prover/ci_negative_tests.sh(new) +.github/workflows/adversarial.yml— wires the COV-1 (time-too-old) and COV-2 (CVE-2012-2459 merkle-mutation) consensus reject-paths into CI, so a future guest change can't silently regress them.- Docs —
README(glibc prereq, licence section),SECURITY.md(H2 resolved),ROADMAP.md(canonical id corrected toc029cee4),THIRD_PARTY_NOTICES.md(new), and misc currency fixes.
Soundness
Unchanged and re-verified in CI: block-170 regression, the adversarial suite (every known hole REJECTs), BIP30, the new COV negative tests, and reproducible-image-id asserting the guest builds bit-for-bit to c029cee4.