Title: New Admins Tips - generating fair results, avoiding scams etc Post by: mem on June 27, 2012, 01:35:32 PM I get some new site owners contact me in regards to improving their sites and making it more attractive.
This proof of not cheating that are used by sites such as: bitcoindarts probiwon bitjack21 bitlotto satoshidice - have really impressed gamers and as a result draws gamers in (often like myself with their dreams of making a gambling system finally work). Bitlotto and satoshidice arguably have the most impressive systems as they use a hash from the bitcoin network (txid for satoshidice and BitLotto will use the first block with a timestamp after 00:00:00). So the general question is, how do I apply this to my game/raffle fairly and prove I am not cheating. The basic concept is (in my crappy pseudo code): (be prepared for multiple edits here) Code: $player_hash = players TX id / address / hash of block containing tx; Using public verifiable strings (ie lotto numbers) means the players can confirm before the website updates (depending how quickly it updates of course). You could also use a public verifiable string as the games secret (instead of supplying your own). Using your own secret is fine if you provide the hashes, but players will trust the game more if you do not have any control over the results (gamers and their voodoo). and tada, you have a very attractive FAIR game system. Here is a quick example section from my perl clone of satoshidice (dont worry guys, Im not getting into the business I just like new projects and yours was inspiring). Code: our $number_lucky = 31456.8; # the number that their result must be lower than to win Its perl, it works well enough but required more testing and simulations. For instance, Id like to do more testing on picking a section of the hash like I do, (I take the last 4 digits and convert it to hex). Title: Re: generating fair results Post by: mem on June 27, 2012, 03:35:37 PM Quote Subbed. I like verifiable results. I think you have a typo here $player_number = sha256($player_hash, $secret); $game_result = sha256($player_hash, $secret); Fixed ;) |