A commitment scheme is a cryptographic sealed envelope. You publish c = H(m, r) — a hash of your message with a random nonce — and it does two opposing things at once: it hides m (c leaks nothing about it) yet it binds you (you cannot later find a different m’ that also hashes to c). Later you reveal (m, r) and anyone recomputes the hash to check. It is how you play poker over the phone, run fair coin-flips, and build zero-knowledge proofs — promise first, prove honesty after.
The demo commits to message 42 with a nonce, verifies the reveal, and shows a different message gives a different commitment (binding): live demo
“You must show your move to prove you didn’t change it.” — commit to its hash first; reveal later; the hash both hides and binds. cited
A promise you cannot see into and cannot take back — two opposite guarantees carried in one hash. binding+hiding
On the canonical compiler, committing to 42 gives c=98552; the reveal verifies, and committing to 43 gives a different c (binding):