Current dice games

Currently there are mainly two types of dice games implementations, one is using the provably fair algorithm. A user can verify his bet result, but the win payout is not guaranteed.

The other one is using smart contracts to implement the game logic. The main downside of implementing the whole game logic is the slow gambling experience. The player has to wait a few minutes for every single dice roll. Furthermore, currently there is no reliable smart contract random number generating possible. So third party services like random.org and oraclize.it must be used.

Our Vision

Our goal is to combine the advantages of both approaches without their disadvantages to create a better and securer overall gambling experience. We want to create the safest and fastest dice game in the Ethereum Net.

Our main goals

a fast gaming experience (the player should not have to wait minutes to see his results)

secure (players guaranteed get back their winnings)

no third-party dependency (random.org, oraclize.it)

How it’s achieved

We are using state channels to implement the game logic. Only for creating and ending game sessions which comprise many bets or when a conflict occurs an interaction with the smart contract is necessary. So, our bets can be processed really fast. Nevertheless, it is secure and fair as all conflicts are handled by the smart contract.

Starting the game session

For starting the game session both the player and the server have to generate a random number. The number is used to generate a hash chain. Both publish the last entry of hash chain to the smart contract.

Placing bets

Both Server and Player sign the bet and the previous game state. Afterwards they exchange their seeds (previous entry of hash chain) for random number generation. ¹

Outlook

Support for Mobile devices (waiting eth_signedTypeData adoption)

Allow roll over number

Reduce transaction needed for generating game session (Currently three transactions are needed, but can be done with only two transactions)

Publication of white paper describing technical details of implementation

¹ The bet is placed by the player by signing the current bet state and profit balance of previous bets. The signed data is send to the server, verified, signed and send back to the player. The player verifies the signature of the server. Now the player sends his seed (previous entry of hash chain) to the server. Now the sever verifies the seed and if valid combines it with its own seed, to generate the random number and sends it seed back to the player. In the last step the player verifies the seed of the server and the new balance.

Links