LOCAL BROWSER LAB

Password hashing, inside the proof.

Argon2id, bcrypt 2b, and MiMC-7 execute inside distinct Miden programs. The password is private advice; the verifier checks a credential, one-time challenge, and exact program identity.

PROGRAM HASH loading WebAssembly…
Full computationArgon2id v=19inside Miden
Private witnesspassword ≤ 64 bytesadvice map
Public bindingcredential + challengeverified
Prover pathnative recommendedalgorithm dependent
01 / WITNESS

Build the statement

Challenge = nonce. It is a fresh, single-use server value that prevents replay. It is separate from the persistent hash salt and from the STARK’s internal Fiat–Shamir challenges. The old demo used the same concept with a 256-bit value.
Expected public credential compute or paste four decimal field elements
02 / STARK

Prove or verify

initializing
VM cycles (estimated)—
Padded trace rows—
Trace RAM floor—
Argon2id proving requirement

The full RFC 9106 circuit measured 19,593,971 cycles even at the 8 KiB minimum. Its 2^25-row trace made the generic Miden prover request about 102 GiB before process overhead. Browser proving is disabled; imported proofs verify quickly.

Native prover executable

Runs the same fixed programs outside the browser and writes UTF-8 proof.json. MiMC proving is tested here; Argon2id and bcrypt still have the RAM floors shown above because native execution does not shrink the STARK trace. Imported-proof verification stays fast and local.

Get the prover from GitHub releases argon2id-zk-prover.exe prove …
Ready.