Dicether — State-Channel Dice
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 arises 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 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. ¹
Achievements since release
- Support for Mobile devices (Coinbase Wallet (Toshi), Trust Wallet) ✔️
- Affiliate Campaign (More details) ✔️
- Allow roll over number ✔️
- Reduce transaction needed for generating game session to one ✔️
- Publication of white paper describing technical details ✔️
Details
If you are interested in implementation details you can have a look at our whitepaper, our smart contract and the source code of our front-end. If you have any questions join our Discord.
¹ 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.
