1. The Client first starts a new game round in order to get a Server Hash from the Game Server.
2. The casino generates a random server number and server salt.
3. The server assigns a game round id and replies with a SHA256 hash from the server number and server salt.
4. The player can use a pre-generated client number that the game client provides for you. When you click Roll Dice, the number in the client number area is now sent to the casino, together with bet details such as bet amount and the “Roll Under To Win”.
5. The house now uses the client number and server number into a resulting number.
6. The server number, resulting number and server salt are sent to the player. The player now can check that the server number and server salt are hashing in the same way as in the third step. The casino player can also verify that the resulting number is producing the correct outcome of the game round.
The provably fair system above is the one used by Satoshi Dice. Other Bitcoin dice sites like Primedice use slight variations of the same system.