💡 suppose we want to communicate message A if event E happens, and message B if event E does not happen.

We calculate three checksums: MD5(A), MD5(B), and MD5( "{} if E else {}" % (MD5(A), MD5(B)) ).

⚙️ the MD5 algorithm is perhaps more reversible and collisionable than desired. If you understand those concerns, you must also know how to remedy them.

As a pre-commitment, we send the three checksums, without identifying which is which. After the event occurs (or does not occur), we reveal the message we want to communicate - which also reveals which of the checksums is the MD5 of that message.

🔥 the Interactive element is whether we must reveal a second message.

💡 interactive proofs are beyond this channel. The more relevant concern is how to construct predicates E such that "E did not happen" is substantively different from "E has not happened yet".