Every anti-overfitting statistic in quantitative finance divides by one input — how many strategies were tried before the one being shown. For a century that number has been typed in by the person being judged. MIZAN makes it the leaf count of a committed Merkle tree, recomputed inside a zero-knowledge proof. What comes out is a 225 KB receipt any allocator checks offline in ~81 milliseconds — while the strategy never leaves its maker's machine.
A deflated Sharpe ratio asks: given how many strategies you tried, how surprised should I be that this one looks good? Answer honestly and most edges evaporate. So the number of tries — N — has always been the one input nobody could check, and the one input everyone rounds down.
In MIZAN, N is a Merkle leaf count. Each strategy you evaluate is a committed leaf; the tree is fixed before the gate runs; the proof reads the leaf count and cannot be handed a smaller one. You cannot try a thousand and report three. The deflation is computed against what you actually did — and this is enforced maximally: the statistic uses the full committed count, not a subset. The number that was always a confession is now a fact the proof carries.
The gate runs inside a RISC Zero zero-knowledge virtual machine — the sealed room. The order of operations is the guarantee: the strategy and its data are committed first, as a cryptographic fingerprint, and only then does anything run. You cannot see the result, dislike it, and change the inputs — the inputs were sealed before the result existed.
Each seal is its own credential on the same committed strategy, so an allocator reads exactly which tests a record passed and which it did not. This is the live v11 battery — the both-schools composite, in-circuit.
A credential is a 225 KB receipt. Verifying it is a local cryptographic check — ~81 milliseconds, offline, no server call to us, no account. The verifier confirms the proof is valid and the committed hashes match; it never needs the strategy, and neither do you.
If checking the proof isn't enough, reproduce the numbers. About two hundred lines of dependency-free Python recompute every committed statistic to the digit from the public inputs. The standard that lets you do this — VTR-1 — is frozen and published on SSRN, free for anyone to implement, including competitors. The verifier is not something you have to trust us to run; it is something you run.
The asymmetry is the security. Verifying is cheap — ~81 ms on a laptop, trusting no one. Minting is not: each credential is a real STARK proved on an NVIDIA H100 or comparable GPU — minutes of GPU work per mint, not milliseconds. That gap is deliberate and it cannot be closed: a forger gets no shortcut, because to fake a verdict they must run the same heavy, honest proving the wall demands, on the same locked circuit, against the same committed inputs. The check is trivial for everyone; the forgery is expensive for the claimant. That is the trade the cryptography buys — and the reason a credential means something. The adversarial review of the whole construction is public: the security model, in full →
The registry is append-only. Every credential is a permanent, ordered entry; nothing is ever deleted or reordered; earlier is senior. The whole registry commits to a single registration root — one Merkle root over every entry — so the state of the wall itself is a number you can check.
The record is anchored in time. Anchor state is printed per credential — Bitcoin via OpenTimestamps, plus RFC-3161 where stamped. The rule is stated on the face of it: no anchor shown, no claim made. A record chained forward extends past each anchor, so it reads LIVE — a pulse that can only have been built forward, never backfilled.
A version of the gate is identified by its image id — the cryptographic hash of the exact circuit that ran. That is what an era is: a specific image id. When the gate improves, a new era begins, but the old one is never revoked. A credential minted under an earlier era verifies against that era's image id forever — the rules it was judged under are pinned to it and cannot be quietly changed after the fact.
Some strategies don't fit a declarative rule language — bracket exits, a machine-learning model, a black box. The sealed path handles them: your bot emits its committed positions, and the proof runs the gate over that committed position stream. Your code, your model, your parameters — none of it enters the room. What the strategy did becomes checkable; what it is stays sealed. This is also how a trading AI proves conduct: a compact model can be recomputed in-circuit, and any model can prove its behaviour through the sealed path. Verifiable AI →
A referee that overstates its reach is worth nothing. Here is the line, drawn plainly — because the honesty is the product.
| Proof system | RISC Zero zkVM — STARK-based zero-knowledge proof of correct execution of the committed guest program. |
| Proving | NVIDIA H100 (sm_90) or comparable GPU, minutes of GPU work per mint — the heavy, unshortcuttable side of the asymmetry; concurrency is cost-guarded. Verifying the result stays ~81 ms on any laptop. |
| Trial count (N) | Merkle leaf count, committed before evaluation; deflation computed against the full committed count (enforced maximally). |
| Statistical battery | DSR, PBO (12,870 splits, C(16,8) at S=16), purged CPCV, PSR, SPA in-circuit (DSR carries the Harvey–Liu / Bailey–López de Prado deflation); MinBTL and the window/annualization-basis check verifier-side. |
| Receipt | ~225 KB, verified in ~81 ms offline — no server call, no account. |
| Independent reproduction | ~200 lines of dependency-free Python recompute every committed statistic to the digit. |
| Registry | Append-only, ordered by seniority, committing to one registration root (Merkle root over all entries). |
| Time anchor | Bitcoin via OpenTimestamps, plus RFC-3161 where stamped — no anchor shown, no claim made. |
| Versioning | Each era is an image id (circuit hash); superseded eras are never revoked; credentials pin to their era forever. |
| Standard | VTR-1 — frozen, published on SSRN, CC BY. Verifier open; the prover is the private part. |
Every credential on the public wall came out of the room above — including the refusals. Reproduce any of them to the digit, read the frozen standard, or bring your own strategy and watch the gate decide. Free while open testing lasts.
Research and verification artifacts. Not investment advice; no offer or solicitation. Backtested and hypothetical performance is not indicative of future results and is net of committed trading costs only. A strategy submitted for proof is never transmitted, stored, or revealed by MIZAN. Figures (receipt size, verification time, split count) describe the current engine era and are reproducible from the public inputs.