BitHorse! the first Bitcoin based Virtual Horse racing game !
Bet on your favourite horse and watch her race to the finish line!
Hello and good day to you all,
We have been re-developing bithorse.co from scratch. We are introducing a new fair, provable and transparent virtual horse racing gambling system. Here we hope we will get the attraction and opinions about the technical aspect of how fair it is. So to describe the round generation, here are the steps we use:
General Information:
- A round happens every ten minutes.
- There are 5 horses
Flow:
1- Generating a random RSA pair and publishing the public key
2- Announce the starting of the round (timestamp == now())
3- At the end of the round fetch the following:
- Last litecoin block generated (Timestamp, BlockNumber and BlockHash)
4- Sign the block hash with the round private key, the one that corresponds to the public key announced at the beginning
of the round.
5- Generate this JSON array with the round information:
$round_array {
"round_timestamp": $timestamp,
"round_publickey": $publickey,
"litecoin_block": $round_block_number_match,
"litecoin_block_timestamp": $round_block_timestamp_match,
"litecoin_block_hash": $round_block_hash_match,
"litecoin_block_hash_signature": $round_signature,
"bets_detail": {[{[id_bet:xx],[user_id:xx],[satoshiamount:xx],[round_id:xx],[timestamp:xx]}]}, {[{[id_bet:xx],[user_id:xx],[satoshiamount:xx],[round_id:xx],[timestamp:xx]}]}
*JSON above is not formatted well, it is just to give the main idea.
6- Calculate SHA256Sum for the JSON array, five times, one per horse.
7- Assign each hash to the horses respectfully; 1,2,3, etc.
8- Sort them according to this compare function:
function cmp_result($a, $b)
{
if (intval(substr($a['hash'], 32, 5)) == intval(substr($b['hash'], 32, 5))) {
return 0;
}
return (intval(substr($a['hash'], 32, 5)) < intval(substr($b['hash'], 32, 5))) ? -1 : 1;
}
*Basically compare the hashes from the 32rd byte -> 37th byte.
9- The final sorted array of hashes determines who is the first, second, third, fourth and last horse to win.
We will add more info and examples and we are still in beta, The final release will include buttons on page to download such information for personal re-verification of results. Please share your opinions about how fair and random this method is. And if we can improve its fairness. Thank you for reading and good day
- Bithorse.co development team