A SpectralZK receipt proves an agent followed a named policy, without showing what that policy actually says. An auditor learns the policy was followed. A competitor learns nothing. A regulator gets a proof they can check themselves, not just a screenshot to trust.
A SpectralZK v1 proof ties three separate statements together into one object, and none of it needs any back-and-forth with the prover. A hash chain (called a Fiat-Shamir transcript) locks all three together, so changing even one bit anywhere breaks the whole proof.
The prover knows a policy P where C equals SHA-256 of the policy ID and the Merkle root of its rules. This is proven with a Schnorr signature over Ed25519, a standard way to prove you know a secret without showing it.
A rule that fits exists somewhere in the policy's Merkle tree, a structure that lets you prove something is on a list without showing the whole list. The path to it is hidden, so nobody can tell which rule actually matched.
The recorded action falls inside the range that hidden rule allows. It's locked to the same hash chain, so the action can't be swapped out after the fact.
Trade secrets, pricing tiers, customer lists, allowlists, model rules. The full rule set never leaves the issuer.
Each step of the Merkle path is scrambled with its own random value. The verifier can see how deep the tree goes but not which rule actually applied.
This is optional. The holder decides how much to reveal. Pair it with ViewKey to show details only to regulators.
The rest of the rules in the policy tree are locked in but never shown. A regulator learns nothing about the rules that didn't apply.
No backend call. No prover network to reach. Three curl commands, one pip install, one python command. About 50ms start to finish.
# 1. fetch the sample proof, the schema, and the offline verifier curl -sSL https://thehiveryiq.com/canon/spectralzk/sample-proof.json -o proof.json curl -sSL https://thehiveryiq.com/canon/spectralzk/spectralzk_v1.py -o spectralzk_v1.py pip install cryptography # 2. verify offline python3 spectralzk_v1.py verify proof.json # 3. expected output RESULT: PASS protocol: spectralzk/1 policy_commit: 2J6l5ZKt_G3BEqK0EoNF75YgOYVtfziencyZsj7gZXQ merkle_root: Cd-oNZoDQXTa5FOiraKdj0mftZmyXdOFAt4FNjMqYyc action: spend_usd_per_day = 145 issuer_pubkey: ed25519:-_HdEFXF_wfSt1n9DO41fga7B1i8Wo03R79_usXCmTA path_depth: 2 blinded nodes challenge_sha256: gkx30gXSPb0_ll5VQEfO7ILSbciHFHD-rPY_BV8ch3M verified offline. no prover network contacted. reason: all three statements verified
| Layer | Primitive | What it's for |
|---|---|---|
| Commitment | SHA-256(policy_id || merkle_root) | A public fingerprint C that hides the policy text and how many rules it has, behind one 32-byte hash |
| Inclusion | Merkle tree, SHA-256 | A fast way to prove a matching rule is in the tree without listing every rule |
| Privacy | Pedersen-style blinded path commits | Random values on each tree node stop the verifier from figuring out which rule matched |
| Knowledge | Schnorr-style sig over Ed25519 | Proves the issuer knows the real policy behind the fingerprint, locked to the same hash chain |
| Canonicalization | RFC 8785 JCS | Sorts keys, strips whitespace, uses UTF-8, so the bytes match exactly no matter who built the proof |
| Transcript | SHA-256 of canonical bytes | Ties the fingerprint, root, action, path, and issuer's public key into one challenge. Tamper with any of it and the signature breaks |
| $id | https://thehiveryiq.com/.well-known/schemas/spectralzk-v1.json |
| URN | urn:hive:spectralzk:v1 |
| Draft | JSON Schema 2020-12 |
| Status | SCHEMA LIVE · v1 |
| Patent | HIVE-2026-SZK-001 (provisional, USPTO filing in progress) |
SpectralZK is the zero-knowledge counterpart to HAHS. HAHS is a transparent receipt: the auditor can read the scope ceiling and composed scope in plain text. SpectralZK is the private version, for cases where the policy itself needs to stay secret. It shares the same receipt envelope as HAHS, ViewKey, and SHOD, so they pair cleanly.
There's no miner network to run, no staking, no outside group of provers needed. The math itself does the proving. Anyone with the schema, the verifier, and the issuer's public key can get a PASS or FAIL answer with cryptographic certainty.