Jump to content
Sign in to follow this  
stunna

[1 BTC Bounty] Improve provably fair

Recommended Posts

New Fairness

Instead of trying to teach the advanced concepts of provably fair to players we should strive to simplify the system. We could visually try and let the user 'cut the deck' or re-word certain concepts like client seed to lucky word. Provably fair is a powerful tool but it is lost on most users due to the complexity. 

 

Rewards

  • 1 BTC = If we make use of your new system on either stake.com or primedice.com
  • 0.1 BTC = If you suggest smaller changes within the current system which get utilised by stake.com or primedice.com  ex. visual changes/rewording (multiple people can win this). 
Edited by stunna

Share this post


Link to post
Share on other sites

Provably fair system is very important for every online casino.

For Primedice, there is no inbuilt Provably fair verifier. Which makes us to use third party tools to verify our bets. If there is an inbuilt verifier tool implemented then, it would be much easy for checking bets and takes away the confusion about provably fair for a techno-retard like me. FYI this tool is very helpful https://dicesites.com/primedice/verifier. I'm a guy who checks bets after every seed change. The problem is, i have to keep open a new tab for this. It would be a great help if we have something like this within the site.

For Stake, the current provably fair system is very confusing. I still don't know how it works for games like Mines and Plinko which are most popular games on Stake.com If there is a system which shows the pattern for each bets in Mines. 

P.S: Simple user interface is really helpful when explaining technical stuffs. Other than explaining coding and stuff. 

Share this post


Link to post
Share on other sites
3 hours ago, Kurian said:

For Primedice, there is no inbuilt Provably fair verifier. Which makes us to use third party tools to verify our bets. If there is an inbuilt verifier tool implemented then, it would be much easy for checking bets and takes away the confusion about provably fair for a techno-retard like me. FYI this tool is very helpful https://dicesites.com/primedice/verifier.

While the inclusion of one would be fine, the wary user wouldn't trust the in site one. Including quick access to third party ones could be the best you can do. Assuming those third party ones aren't in some malicious site.

I'd agree in that it could be explained how the results are to be interpreted in each game, but where the focus should be is in explaining how it is fair. Like in a game where where an object is juggled, before you figure out in which hand it is, that it's a matter of the user guessing right what wins the game. Things like how many decks a card game is based on should be revealed as well.

I think such explanations deserve their own place somewhere in the top bar, where it could stand out more. Unless there isn't enough room for mobiles.

ps: Sorry if unclear. Heading to bed now.

Edited by SITEst

Share this post


Link to post
Share on other sites
On 11/2/2017 at 5:46 AM, stunna said:

New Fairness

Instead of trying to teach the advanced concepts of provably fair to players we should strive to simplify the system. We could visually try and let the user 'cut the deck' or re-word certain concepts like client seed to lucky word. Provably fair is a powerful tool but it is lost on most users due to the complexity. 

 

Rewards

  • 1 BTC = If we make use of your new system on either stake.com or primedice.com
  • 0.1 BTC = If you suggest smaller changes within the current system which get utilised by stake.com or primedice.com  ex. visual changes/rewording (multiple people can win this). 

Hi, here is some re-wording suggestions I have for the Stake Fairness page (https://stake.com/fairness/overview)

I've included the original text in italic below, and reworded suggestions in blue. I've tried to use language that most non programmers would be able to understand. 

But left the technical part unchanged, at the bottom for programmers, or tech savvy people that want to learn how the results are generated from a technical point of view. 

I've  used these translations: 

Quote

Your Lucky Phrase = client seed.
Stake’s Lucky Phrase = server seed.
Lucky Phrase Uniqueness Number = nonce.
Luck Generating Machine = HMAC_SHA256(K,m) function
Encrypted Lucky Phrase = sha256 hash 

Overview

Stakes random number generator creates provable fair random numbers that are used to determine the outcome of every game played on the site.

At Stake we believe every player should be able to trust the games they play. Every one of our games has been built with fairness in mind, at the heart of every game on Stake is a Luck Generating Machine.

The user is able to verify the outcome of every game in a fully deterministic way to ensure that Stake has not chosen random numbers in favour of the Casino. By providing one parameter, the client seed to the inputs of the random number generator, Stake is unable to manipulate the outcome in favour of the Casino.

Have you ever played the lottery? Perhaps you’ve chosen your numbers based on a loved ones birthday? In a similar way, when you play on Stake you can choose a phrase that you think might bring you luck and use this when you play the games. Here at Stake we don’t use lucky numbers, we use lucky phrases (because as humans we know that people prefer phrases, and phrases are easy to remember).

You provide Your Lucky Phrase, and Stake provides a Lucky Phrase; these are mixed together in the Luck Generating Machine each time you place a bet, to produce a random outcome.

You don't have to take our word for this. Thanks to the technology at work on the site, you can review every bet you place, to check that it was fair. You can do this using the verifiers on the right side of this page.

The stake random number generator allows each game to request any amount of random numbers from a given client seed , server seed and a nonce. Every game on Stake uses this list of random numbers to determine its outcome by converting them into:

- Cards or Diamonds (blackjack, baccarat, hilo, diamond poker)
- Shuffling a list of possible results (keno, mines)
- Numbers (roulette, dice, chartbet)
- Path (plinko)

The Luck Generating Machine at the heart of every one of our games takes Your Lucky Phrase and with some computer wizardry creates a totally random outcome by linking it to Stake's Lucky Phrase. This random outcome is then mapped into a game result, no matter if you are playing plinko, roulette, mines, or any one of the other games we have on the site. The same Luck Generating Machine is used every time you place a bet to ensure a fair and random outcome. 

You can change Your Lucky Phrase at any time by clicking the Lucky Phrase button at the bottom of every game:

image.png.458d933378eceb081c325373eaaacaab.png

Inputs

Each user has one active client seed, one active server seed and a nonce incrementing once per game.

Every time you play a game, there are three variable pieces of information that are pieced together to generate your game result. The first two we have already met: Your Lucky Phrase, and Stake's Lucky Phrase. To ensure that you do not get the same result every time you play a game, we add a number to the end of Your Lucky Phrase and every game you play we increase that number by one. We call this number the Lucky Phrase Uniqueness Number, this is the third piece of information used to generate the random game outcomes here at Stake. 

Client Seed

Your Lucky Phrase

This is the phrase that you pick and ensures that you have just as much influence over the luck in your games as we do.

Server Seed

The server seed is generated by the server and is a random generated 64 character hex (0-9,a-f) string. Stake publishes the sha256 (wikipedia) hash of the server seed for the active server seed. The user can rotate the current server seed, this generates a new random active server seed and resets the nonce to 0. The previous server seed, now inactive, is then revealed and can be verified using the sha256 that was published while the seed was active.

Stake's Lucky Phrase

Stakes Lucky Phrase isn’t a phrase that you can read easily but is a series of letters and numbers. We tell you what this is before every game, but the message we send to you is encrypted. This means you can’t predict the outcome of the game before you play it. After the game has finished you can request Stake's Lucky Phrase be changed. When you do this we will tell you the Lucky Phrase we used with your Lucky Phrase to generate your previous game outcomes. You can verify that this was the Lucky Phrase that was used in your game, thanks to the Encrypted Lucky Phrase we sent before the game.

Then using the verifiers on the site here, you calculate exactly what the game outcome should have been. Completely transparent. Completely fair. 

Nonce

The nonce is a number that increments by one every time a game is played. This generates a unique input per game, but keeps verifying multiple games simple, since the nonce is the only parameter that changes.

The Lucky Phrase Uniqueness Number

The Lucky Phrase Uniqueness Number is a number added to Your Lucky Phrase and increases by one every time a bet is placed. This ensures that each time you place a bet you get a unique and verifiable fair outcome. 

The Technical Stuff

Warning! The below is technical, but we believe in full transparency, so for those that want to know more detail about how exactly we calculate the results at Stake, you can find out below.

For the sake of simplicity we have used different terminology in the above explanations. You can map the terminology we used above with the terminology below, using the following key:

Quote

Your Lucky Phrase = client seed.
Stake’s Lucky Phrase = server seed.
Lucky Phrase Uniqueness Number = nonce.
Luck Generating Machine = HMAC_SHA256(K,m) function
Encrypted Lucky Phrase = sha256 hash 

[so they are the changes I suggest... and then to continue with the rest of the technical explanation already on the page]

But add some description about Plinko to: 

Random Items

Quote

For Keno (40 fields) and Mines (25 fields) a range with all possible elements ([0, …, 39] for keno, [0, …, 24] for mines) in the game is generated. Then the required amount of elements is picked from that List by using its position.

Because the algorithm for plinko isn't currently mentioned on the page. 

Edited by Skilful

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×