Author

Topic: How does provably fair work? (Read 1932 times)

sr. member
Activity: 322
Merit: 250
October 02, 2013, 10:23:42 AM
#13
Hey Boelens, you can use my site, http://bitcoinmaniac.com/verify as an easy tool to verify bets on some of the top sites. It's open source javascript, so it can be verified.
legendary
Activity: 3416
Merit: 1912
The Concierge of Crypto
October 02, 2013, 08:44:06 AM
#12
Some good answers here, something else I'd like to put out there to you all

In one-off dice games, where there is a single bitcoin transaction used per game.

Would the transaction ID be an acceptable seed for generating a winning number?

Or are transaction id's predictable/manipulatable ?

Thanks!

Satoshidice also uses a daily secret. You can manipulate your transaction hash to a certain extent, such as not broadcasting one, redo it, then broadcast that one for whatever reason. But combined with a site secret, your roll effectively becomes random.

SD was one of the first blockchain based dice games. It's method is the gold standard.
full member
Activity: 238
Merit: 100
October 02, 2013, 03:33:01 AM
#11
Some good answers here, something else I'd like to put out there to you all

In one-off dice games, where there is a single bitcoin transaction used per game.

Would the transaction ID be an acceptable seed for generating a winning number?

Or are transaction id's predictable/manipulatable ?

Thanks!
legendary
Activity: 3416
Merit: 1912
The Concierge of Crypto
July 09, 2013, 11:32:59 PM
#10
Also, if the game or site uses secrets (from a third party) that they themselves do not know, but only know the hash, then that is also perfectly provably fair. Even third party sites that do not publish a hash, but publish repeatable random numbers to be used as seeds can be used, such as the randomization feature of random.org.

You can get the same sequence of random numbers or random bytes from the server of a previously revealed collection of random numbers, but you can't get future sequences that have not yet been made available. Obviously, no one can get a hash of such future secrets since they are generated completely randomly from atmospheric noise. This isn't applicable to real-time games such as dice though.

There is some research into how this can be done, so even the owner of a dice site can't know the secrets needed, but the way it is now, if attempted, is going to produce a bottleneck and slow down the site.
full member
Activity: 210
Merit: 100
July 09, 2013, 09:14:16 PM
#9
That was an excellent explanation - that should be published in a wiki or something.
legendary
Activity: 2940
Merit: 1333
July 09, 2013, 03:45:40 PM
#8
I have a question, how exactly does provably fair work? I've wondered for a while, and how can I verify if it is provably fair? It would be awesome if there was some sort of plugin for Chrome/Firefox that would automatically check if it was provably fair.

It works similarly on all provably fair sites, pretty much.

1. the server picks a random "server seed"

2. the server shows the user a hash of the server seed

3. the player picks their own seed, the "client seed"

4. the server uses the server seed and the client seed to generate the outcome of the game

5. the server publishes the server seed

Notice that it's important that 1. comes before 3.  The player picks last, so there's no way the site can influence the rolls.

Once all five steps are complete, the player can check that:

a) the server seed published in step 5 does in fact hash to the string that was shown in step 2, and
b) the client seed (step 3) and server seed (step 5) do in fact generate the shuffle, roll, spin, or whatever that happened in the game (step 4)

That's all.  Some sites (satoshidice, coinroll) change the server seed every 24 hours.  Some sites (primedice, bitzino) change it every roll.  Some sites (just-dice) change it on demand.  I prefer the last way - 24 hours is a long time to wait to verify a suspicious roll, but changing the seed every roll makes for a lot of work for the player, making a note of each hash, verifying each seed, etc.

For Just-Dice, there's a user-contributed script at http://jsfiddle.net/Zq8tL/3/ which lets you tell it the client seed and server seed, and outputs all the rolls those seeds generate.  So you can check it against the rolls you actually saw and make sure there's nothing fishy going on.

---
Edit on 28 Nov 2013: at the end of September 2013, from bet 145 million onwards, the algorithm used to generate rolls was changed and so the above-linked jsfiddle script no longer works.

There's a new verifier linked from the bottom of the 'Fair?' tab which is able to apply both the old and new algorithms, and defaults to the new one.
---
legendary
Activity: 3416
Merit: 1912
The Concierge of Crypto
July 08, 2013, 09:55:28 PM
#7
okay, on bitzino's site

regarding the roulette game, how does having the client seed and hash(secret) prove that it is a provably fair game?


how does this completely rule out other software gimmicks?

The server seed is unknown, but the hash is revealed.
The client seed is something you set, after the server seed has already been generated.

You play the game. Results are based on the server seed and the client seed.

After the game, the server seed is revealed. You can now verify that the hash of the server seed is correct.
You can now compute the result of the game because you have all the variables.

You have just proven to yourself, that the game is fair. Provably Fair.
legendary
Activity: 1736
Merit: 1029
July 08, 2013, 07:04:06 AM
#6
would the hash generated be based on anything, such as blocks mined?

How can we check this hash when the game is over, or is it kept tp the owner?
hero member
Activity: 546
Merit: 500
July 08, 2013, 06:54:26 AM
#5
The problem is that every site has a different implementation. They do have instructions on how to do it manually, and the bigger sites have third party verification scripts, where you see the source code and what it does, and how it computes.

In my lotto, for example, it is provably fair because:
1. everyone knows what I am going to do.
2. everyone knows the secrets that I will use.
3. no one knows all the secrets until the draw date.

okay, on bitzino's site

regarding the roulette game, how does having the client seed and hash(secret) prove that it is a provably fair game?


how does this completely rule out other software gimmicks?
legendary
Activity: 3416
Merit: 1912
The Concierge of Crypto
July 07, 2013, 09:22:49 PM
#4
The problem is that every site has a different implementation. They do have instructions on how to do it manually, and the bigger sites have third party verification scripts, where you see the source code and what it does, and how it computes.

In my lotto, for example, it is provably fair because:
1. everyone knows what I am going to do.
2. everyone knows the secrets that I will use.
3. no one knows all the secrets until the draw date.
hero member
Activity: 672
Merit: 500
July 07, 2013, 01:50:58 PM
#3
I have a question, how exactly does provably fair work? I've wondered for a while, and how can I verify if it is provably fair?
If you did some searching, you would know that provably fair works by publishing the hash of a secret before a game. After the game, the secret is released and can be compared to the result. Publishing the hash of the secret prevents the operator from changing the secret and by extension, the result of the game.

It would be awesome if there was some sort of plugin for Chrome/Firefox that would automatically check if it was provably fair.
no one bothers to make it

Huh, that's strange, that nobody bothers to make it. I can see there being demand for it. Thanks for the answer!
legendary
Activity: 2058
Merit: 1452
July 07, 2013, 12:24:00 PM
#2
I have a question, how exactly does provably fair work? I've wondered for a while, and how can I verify if it is provably fair?
If you did some searching, you would know that provably fair works by publishing the hash of a secret before a game. After the game, the secret is released and can be compared to the result. Publishing the hash of the secret prevents the operator from changing the secret and by extension, the result of the game.

It would be awesome if there was some sort of plugin for Chrome/Firefox that would automatically check if it was provably fair.
no one bothers to make it
hero member
Activity: 672
Merit: 500
July 07, 2013, 11:53:14 AM
#1
I have a question, how exactly does provably fair work? I've wondered for a while, and how can I verify if it is provably fair? It would be awesome if there was some sort of plugin for Chrome/Firefox that would automatically check if it was provably fair.
Jump to: