The proof, in plain sight.
Run one action at a time. See the message it sends, the Python function that runs, and the checks behind the verdict.
Run a round
Connecting to the Python server…
Full colouring and unopened salts stay in the Python process.
Messages, not magic.
Each entry below is an actual protocol message. Select one to inspect its public contents and the function that produced it.
No message sent yet
Seal the answers to send the first message.
Python implementation
The actual function source will appear here.
Watch the verifier work.
Opening a room reveals its colour and salt. The verifier encodes that input, hashes it again, and compares the result with the original commitment.
Open the challenged endpoints to see the individual checks.
The verifier’s Python source
Loading…
Encoding and SHA-256 implementation
Loading…
Change one thing. Check again.
Try changing a copy of the public record. The original session stays intact. The same Python verifier checks your edited copy.
Complete one round to unlock this experiment.
Take the evidence with you.
Download the public record. It contains every completed round’s commitments, challenge and two openings—never unopened answers or session credentials.
Verify it from a separate terminal, even after the server has stopped:
python3 transcript.py transcript.json
A saved record proves its openings are consistent. It cannot prove the challenges were unpredictable or establish that a graph has a solution. That distinction is why an arranged transcript is not a successful live proof.