We continuously change the perception of online gambling by applying the revolutionary concept of provably fair gambling.
OVERVIEW
Luckydice is a provably fair online crypto casino. We introduce a new generation of online casinos where players can be sure that the results are not manipulated. Luckydice's verification procedure allows users to verify the integrity of every bet.
COMPONENTS
The Server Seed is generated before the Client Seed, ensuring that it is impossible to generate a Server Seed in favor of Luckydice. This procedure is not possible to prove if the user is visiting the website for the first time. We advise users to randomize (change) the Client Seed during their first visit. At the moment of the bet, the current Server Seed is hidden from the user in order to prevent a prediction of the result. Before the bet, a Hash (SHA256) is shown instead of the Server Seed to guarantee that it will not be replaced by Luckydice. The Current Server Seed is used for all the bets that were made after the last Server Seed randomization and it will still be used until the user decides to verify the bet(s). Before the user starts the verification, he must also randomize the current Server Seed to generate a new one for the next bet(s). After the randomization is over, the previous Server Seed will be opened and all bets made with that Server Seed can be checked. After that, the user doesn't have to change the Client Seed, but it is recommended. Server Seed is a random sequence of 64 symbols (numbers and letters) generated by a server. The Client Seed is a random sequence of symbols specified by the user (or generated by the user's browser). A nonce is a number of bets made with a certain Server Seed. This number is initially 0 and increases by one after each bet. After Server Seed is changed the Nonce resets to 0. The row number of every ticket starts at 0 and increases by one with every row in a ticket.
GENERATING RANDOM OUTCOMES
Server seed, Client seed, Nonce, Round number and Zero are used to create provably fair randomly generated outcomes. The output of random number generation is 32 random bytes, generated using the HMAC_SHA256(K,m) function. This function uses a given Server Seed (K) and a message (m). The message is created by concatenating Client seed, Nonce, Round number of the bet and zero. m = "{client_seed}:{nonce}:{round_number}:0".
CREATING RESULTS
To create random results (events) that happen during the game a special formula is used.
CLASSIC DICE
First eight bytes of HMAC_SHA256(K,m) function's result need to be converted into decimal values (0-255 each). First byte is divided by 256 (256 raised to power of 1), second byte is divided by 65,256 (256 raised to power of 2), third byte is divided by 16,777,216 (256 raised to power of 3), fourth byte is divided by 4,294,967,296 (256 raised to power of 4). The sum of the divisions is an equally distributed value greater than or equal to zero, but smaller than one. First dice result is calculated by multiplying that value with 6 and taking only full part (floor) of that figure and then adding 1. Operation is repeated with next four bytes to get result of the second dice.
DIGITAL DICE
First four bytes of HMAC_SHA256(K,m) function's result need to be converted into decimal values (0-255 each). First byte is divided by 256 (256 raised to power of 1), second byte is divided by 65,256 (256 raised to power of 2), third byte is divided by 16,777,216 (256 raised to power of 3), fourth byte is divided by 4,294,967,296 (256 raised to power of 4). The sum of the divisions is an equally distributed value greater than or equal to zero, but smaller than one. Final game result is calculated by multiplying that value with 10,000 and taking only full part (floor) of that figure and then dividing by 100.
BEST PRACTICE