Public verify link

Blind Policy Verification

This page confirms that the policy was satisfied with a Groth16 proof while private inputs and policy thresholds remain hidden.

Verification result

Verification Passed

The proof package was recomputed independently.

The recomputed hash matches the original hash.

The policy-satisfied decision has not been modified.

Private inputs and internal policy thresholds remain hidden.

Check
Result
Private data imported
Policy committed
Inputs committed
Policy satisfied
ZK policy proof lane committed
REFHE lane committed
Ika / Encrypt lane committed
MagicBlock session lane committed
Proof recomputed
Hash matched
Public verification
Policy existed
Required checks completed
Policy satisfied
Provider lanes committed
Proof hash matched
Still private

These values were used to make the policy decision but are not revealed.

Raw subject identity
Private record values
Average private amount
Risk score
Liability ratio
Policy thresholds
Internal policy formula
Tamper check

If the proof package changes, verification fails.

This example changes one public check after the original proof was created. The recomputed hash no longer matches.

Original hash: checking...
Recomputed hash: checking...
Result: Mismatch
Show Technical Details
Hash comparison
Original hash: checking...
Recomputed hash: checking...
Result: Mismatch
{
  "proofId": "blind-policy-demo",
  "workflowId": "blind_policy_customer_capacity_demo",
  "originalProofHash": "c6762871fcf36a7c43954b981864e0b379c8f92bb82515f8b59f282d094fc240",
  "publicOutcome": "policy-satisfied",
  "policySatisfied": true,
  "decision": "Policy satisfied. The decision can be verified without revealing the policy inputs.",
  "policyCommitment": "d0a67fd08964ee7aa75a01381e9d0edab052c4ef316ca1b3c7c8827134c1e524",
  "inputCommitment": "90f6db861e6e74047f129a96b0eb06dd8a1befcf648a240bfd37ea6b5b916860",
  "completedStages": [
    {
      "id": "data-import",
      "label": "Private data imported",
      "status": "completed"
    },
    {
      "id": "policy-evaluation",
      "label": "Blind policy evaluated",
      "status": "completed"
    },
    {
      "id": "zk-policy-proof",
      "label": "ZK policy proof generated",
      "status": "completed"
    },
    {
      "id": "public-verification",
      "label": "Public verifier package created",
      "status": "completed"
    }
  ],
  "publicChecks": [
    {
      "id": "membership",
      "label": "Membership verified",
      "satisfied": true
    },
    {
      "id": "records",
      "label": "Required private records imported",
      "satisfied": true
    },
    {
      "id": "capacity",
      "label": "Capacity policy satisfied",
      "satisfied": true
    },
    {
      "id": "liability",
      "label": "Liability policy satisfied",
      "satisfied": true
    },
    {
      "id": "risk",
      "label": "Risk policy satisfied",
      "satisfied": true
    }
  ],
  "groth16Proof": {
    "provingSystem": "groth16",
    "circuit": "private_dao_blind_policy_overlay",
    "verificationMode": "groth16-snarkjs",
    "verified": true,
    "publicSignals": [
      "20260619",
      "4227425116685600148308600398751201516642343030171967771848802133386595410664",
      "4251015854769619970066732661855342825599621020041277924743199448358671370219",
      "1"
    ],
    "proof": {
      "pi_a": [
        "1440881962663469400126315123971584253335841526816105466658734293530682955801",
        "10739662029999788175695992253764994563952776383383391545320287620189595906034",
        "1"
      ],
      "pi_b": [
        [
          "6987230851511416411751446374340044357263075904846205878506647856101247775496",
          "945439504986220881604387722348932857247743025370599740593214264921253957499"
        ],
        [
          "9520649326484098967950074546640892985979457879446943446565931222764646693528",
          "14239106699349554667501550294323817538474701827045484578660891274555116837726"
        ],
        [
          "1",
          "0"
        ]
      ],
      "pi_c": [
        "14698665846037966845506653843327911628337837611590705207455891911936291854724",
        "21354903901583110273001602174992493207067903168035975098442889519174902370380",
        "1"
      ],
      "protocol": "groth16",
      "curve": "bn128"
    },
    "proofHash": "b2b99c095341fe5af7e56427ac989e3a3361c0f9b996817d7c9d88674f2cc233",
    "publicSignalsHash": "73f1df38334c5b9c959403ed28555787261ce2cb7f4c1da01e7e5802c3ba4ce7",
    "verificationKeyHash": "1318713b3d9bdfd9cbb27d3c5ef3d763e01a9b922404b2cc1d53765a9f2b809e"
  },
  "providerLanes": [
    {
      "id": "zk-policy-proof",
      "label": "ZK policy proof",
      "status": "verified",
      "publicCommitment": "5ad52dd0f879800ecdf75fd129c428fc42dd6466ff21da32355d35ff1291df7c",
      "verifierNote": "Groth16 verifies the private witness against public signals: policy id, policy commitment, input commitment, and satisfied claim."
    },
    {
      "id": "refhe-encrypted-evaluation",
      "label": "REFHE encrypted evaluation lane",
      "status": "verified",
      "publicCommitment": "fbe901992a13f8066da79ea88bd201eb14be53ed38f01fc9d339ee95e0b69cec",
      "verifierNote": "Encrypted evaluation metadata is committed without exposing the private values."
    },
    {
      "id": "ika-encrypt-2pc-boundary",
      "label": "Ika / Encrypt 2PC-MPC boundary",
      "status": "verified",
      "publicCommitment": "f23ba03465cb39d24c6d9539e1c53e1296332625859e6ce48e65b6484696f387",
      "verifierNote": "Policy material is represented as encrypted authorization metadata, not raw inputs."
    },
    {
      "id": "magicblock-fast-session",
      "label": "MagicBlock fast policy session",
      "status": "verified",
      "publicCommitment": "5f9b747b7c60ae9157180fbc6b0eba623b900bfd1d8a64ea942af2eceb3ae243",
      "verifierNote": "The policy session commitment supports fast customer-facing verification."
    }
  ],
  "valuesUsedButNotRevealed": [
    "Raw subject identity",
    "Private record values",
    "Average private amount",
    "Risk score",
    "Liability ratio",
    "Policy thresholds",
    "Internal policy formula"
  ],
  "verifierStatement": "We recompute the proof package and compare it with the original hash. If the policy result, commitments, or provider lanes change, verification fails."
}