-By Milly Bitcoin – Feb 26, 2013.
Many Bitcoin gambling sites use a scheme to verify their games are fair. For instance if you go to SatoshiDice.com and click “verification” an explanation is provided. BitZino.com has an explanation of their scheme which is a little easier to follow but for those not familiar with cryptography it is pretty confusing. These verification schemes can be implemented with or without Bitcoin but the methods use cryptography which is the basis of Bitcoin..
There is an easy way to think about it. Suppose the casino dealer goes in the back room and lays out all the cards in the exact order they will be dealt. The dealer then prints a picture of the cards, cuts it into little puzzle pieces, and then gives it to the player. Once the players finish the hand they can then put the puzzle together and see that the cards were dealt fairly.
Instead of a picture what is used is a “cryptographic hash.” This works by inputting a string of any length and the output is a fixed length (see web-based tool). Some common uses of hashes are software distributions. If the software program is changed in any way the hash will change. If you have the hash you cannot tell what the original string was. In other words, if you have the hash you cannot reproduce the software program. If the hash changes you cannot tell what was changed, only that it was changed.
Note that a verifiable system does not completely eliminate cheating if a casino wants to cheat you. For instance, using these verifiable systems usually means the casino knows the result before they display it so they could simply “stall” your connection and your web page would hang. A player may never know they had a jackpot coming. Some systems require the user to input a string or “seed.” If a player leaves the same “seed” in place from play to play the casino can predict future plays and adjust the outcome. Complex cheating schemes are discussed at http://www.reddit.com/r/Bitcoin/comments/1frm4x/provably_fair_by_bitzino_not_provable_with/
When a hash is produced it verifies the contents of a string but does not verify the time it was produced. For example, if someone invents something they not only want to verify the contents of their inventions but they also want to prove the time it was created. This is normally done by sending the hash to a trusted third party who put a time stamp on it. However, someone wrote a free program that allows Bitcoin to put the timestamp on it for free. It works by creating a series of transactions in Bitcoin that reproduces the hash. The timestamp is automatic in Bitcoin and the transitions are publically available. This can be done by sending funds to different addresses owned by the same person so they are just transferring Bitcoin to themselves in specific amounts to reproduce the hash so it is free. Note that timestamps for Bitcoin are only approximate but they may be good enough for some purposes where the exact time is not needed.