1
The digest is fixed before anything is decided
The moment your bet lands, the contract computes a SHA-256 digest over the full bet: your address, your own bet counter, the game, your pick, the token, the stake, the chain and contract, and the placement block’s parent hash. Change any term and it is a different digest.
2
Exactly one signature exists
The house signs the digest with a 2048-bit RSA key (deterministic PKCS#1 v1.5). The public half is stored in the contract, and the contract rejects anything that does not verify. RSA has one valid signature per digest under a given key, so there is no second outcome the house could pick after seeing your bet. Signing is the house’s only move, and it is forced.
3
The outcome is arithmetic
H = keccak256(signature). Coin Flip reads the low bit of H. Dice rolls (H mod 6) + 1. Plinko reads one bit of H per row. The contract pays exactly what the rule says.What this rules out
- Outcome shopping. One digest, one signature, one result, signed before anyone knows who won.
- Replays. The digest binds your address, your bet counter, and the placement branch. A signature for one bet verifies for no other bet, chain, or reorged history.
- Rigged animations. The animation replays the signed result. The money follows the contract’s arithmetic, not the pixels.