CAIN-42 multi-process Byzantine scenario runs (2026-09-21) Verify (python3 + `cryptography`; the verifier imports nothing from CAIN): mkdir runs && cd runs && for s in honest byzantine_wrong_commitment equivocation forged_and_relabeled_votes crash_one_node crash_two_nodes crash_one_node__before_fix; do curl -sO https://cainstudio.online/proof/bundle/bft-multiprocess-2026-09-21/runs/$s.json; done; cd .. curl -s https://cainstudio.online/proof/bundle/bft-multiprocess-2026-09-21/verify_bft_evidence.py -o v.py (on clawx.click: /evidence/bft-multiprocess-2026-09-21/verify_bft_evidence.py.txt) python3 v.py runs Expected: "overall": "ALL_VERIFIED_WITH_LIMITATIONS". What it re-derives from the raw signed messages each node exported: every vote's Ed25519 signature, that all nodes pinned identical peer keys, that each COMMITTED node is backed by >= quorum distinct valid votes, safety (no two nodes committed different values), and cryptographic proofs of EQUIVOCATION (two valid signatures by one node for one phase/view/seq with different commitments) and DEVIATION. crash_one_node__before_fix.json is kept on purpose: it is the run made BEFORE a liveness fix, so the failure is visible next to the fixed run. NOT PROVEN: independent failure domains (one host, 127.0.0.1), partitions, message loss, view change (one leader, one view), long-duration behaviour, third-party observation. This ran the CAIN 23.0 TEST node service (with a documented liveness fix), NOT the production PBFT engine. Same-author evidence.