CAIN-42 Verification Lab

Everything on this page runs against public data. The signature checks run in your browser with WebCrypto: this server is not asked whether the evidence is valid. Only verdicts and signed evidence are exposed here; the runtime's source is not.

Scope, stated up front. A pass shows that signatures, hashes and recorded agreement are mathematically consistent. It does not show independent failure domains (all three domains and the 4 nodes run on one machine), network-partition behaviour, security, or third-party review. Status: PRE-PRODUCTION.

1. Verify a published bundle in your browser

Fetches the 4-node PBFT fault-test bundle, checks its SHA-256 against the value in AI_VERIFY.json, then verifies every Ed25519 node state proof and quorum-certificate signature and the cross-node agreement of state roots (port of verify_cluster_evidence.py).

2. Check a live node's signed state

Requests the public node's current signed state proof (freshly sealed on each call) and verifies its signature here. The key is the one the node presents; trusting that key requires pinning it to a source you obtained independently.

3. Decision sandbox (no account, no key)

Runs the real decision path on a fixed scenario against a throwaway tenant. Scenarios are fixed (this is not a probing oracle) and limited to 20 decisions per hour per address.

4. Byzantine scenario runs (download and verify offline)

Seven multi-process 4-node runs with the raw signed messages each node exported: honest, wrong commitment, equivocation, forged votes, crash 1, crash 2, and a pre-fix crash run kept on purpose. The standalone verifier re-derives signatures, quorum backing, safety, and equivocation/deviation proofs. It ran the CAIN 23.0 test node service, not the production engine; one host; no partitions or view change.

5. Machine-readable entry points