Pages:
Author

Topic: mutterings from mem: Provable Results vs Provably Fair - page 2. (Read 4870 times)

full member
Activity: 196
Merit: 100
For card shuffling you could let every user enter a client seed. Concatenate all client seeds alphabetically (to make it reproducible), add an own string and use this total as input for a (P)RNG; mersenne-twister for example

Then take a 52 card deck. Apply a shuffling algorithm to it with the chosen (P)RNG and for example the Fisher-Yates shuffle. Concatenate the deck (as in 2s8d9cJs....) and use some cryptographic hash on that string.

And how many people would be willing to do all this every time you got dealt a hand?

Remember, it's not just the hand you get dealt.  Then there's the flop, the burn card (generally not visible to the player), the turn, another burn card, and the river.

On each street, players are going to be dropping out.

You also have the fact that you don't get to see other people's hands unless they show down.  And nobody is going to want to play on a site where everyone knows every previous hand they have played and can basically completely profile them as a player.

And if you had read the thread you would've known this has already been pointed out.
Thanks for your completely useful addition!
legendary
Activity: 1176
Merit: 1005
For card shuffling you could let every user enter a client seed. Concatenate all client seeds alphabetically (to make it reproducible), add an own string and use this total as input for a (P)RNG; mersenne-twister for example

Then take a 52 card deck. Apply a shuffling algorithm to it with the chosen (P)RNG and for example the Fisher-Yates shuffle. Concatenate the deck (as in 2s8d9cJs....) and use some cryptographic hash on that string.

And how many people would be willing to do all this every time you got dealt a hand?

Remember, it's not just the hand you get dealt.  Then there's the flop, the burn card (generally not visible to the player), the turn, another burn card, and the river.

On each street, players are going to be dropping out.

You also have the fact that you don't get to see other people's hands unless they show down.  And nobody is going to want to play on a site where everyone knows every previous hand they have played and can basically completely profile them as a player.
legendary
Activity: 1862
Merit: 1011
Reverse engineer from time to time
newbie
Activity: 42
Merit: 0
Look further down on Wikipedia, it describes an option with 2 or more servers (then one is yours, the others are servers by random people willing to make your game more trustworthy).
Okay, something along those lines might work. This is starting to look like a lot of work, though. I'm not sure my programming chops are up to the task.
full member
Activity: 196
Merit: 100
* Brilliant
* Lag and disconnects could be a problem. Suppose Alice, Bob, and Carol are playing a game and Bob suddenly decides to disconnect because he would rather pick lint out of his belly button. How are Alice and Carol supposed to finish the game without Bob's keys?
* There could be workarounds, but right now I don't know what they are.
* Something must be done. Rampant cheating in the online poker world is killing the game, which is a shame. Let's put our heads together and see what we can do.

Look further down on Wikipedia, it describes an option with 2 or more servers (then one is yours, the others are servers by random people willing to make your game more trustworthy). Or share the keys with the server. Or put a warning on screen: LEAVING WILL RESULT IN LOSS OF ALL CHIPS PUT IN BY YOU + A FINE. On leave: everyone gets their chips back. Losing persons chips get distributed to other players, when someone just made a huge raise and the person left, calculate a fine based on that (assuming the person left because of the raise). I do not suggest the last option.
newbie
Activity: 42
Merit: 0
It looks like you are trying to invent mental poker.  Would you like some assistance with that?
Sure, I'm in. I've never heard of mental poker before, but it certainly looks like a fun problem... much trickier than I first thought. So let me see if I understand: in a properly shuffled deck, each player would hold a commutative encryption key for each and every card in the deck.  So to 'unlock' a particular card, a player would need to request keys from all of the other players in the game. Do I understand correctly? My first thoughts are:

* Brilliant
* Lag and disconnects could be a problem. Suppose Alice, Bob, and Carol are playing a game and Bob suddenly decides to disconnect because he would rather pick lint out of his belly button. How are Alice and Carol supposed to finish the game without Bob's keys?
* There could be workarounds, but right now I don't know what they are.
* Something must be done. Rampant cheating in the online poker world is killing the game, which is a shame. Let's put our heads together and see what we can do.

 
full member
Activity: 196
Merit: 100

Never heard of this. Sounds like quite a challenge to implement properly. Putting this on my todo list to try to create a pokerroom that does this.
legendary
Activity: 2940
Merit: 1333
Yes, and that is a problem when the money of the 'house' is not involved. I couldn't care less if Stunna plays his own game, but dooglus playing JD and I will refrain from visiting that site.

I have played a little Just-Dice in the past.  I make a point of never playing from an account that isn't called "dooglus", so people can see it's me playing.  Using a different name would feel wrong.  And of course I never look at the server seed, since that would allow me to cheat.

I figure if I was dishonest I could use random other accounts and slowly bleed the site dry, so investors have to trust that I won't do that, or not invest.

My stats:

bets:1,614
wins:652
losses:962
luck:101.25%
wagered:36.32049978
(profit):0.89308763
legendary
Activity: 2940
Merit: 1333
Any card that isn't specifically mucked by another player could be audited... I think. So that would be: the players own cards, the burn card, the flop, turn, and rivier cards (maybe), any card that makes it to a showdown, plus any remaining undealt cards in the deck. That's quite a few cards that could be audited. The audit wouldn't be airtight, but I see it as a step in the right direction.

It looks like you are trying to invent mental poker.  Would you like some assistance with that?
newbie
Activity: 42
Merit: 0
Any card that isn't specifically mucked by another player could be audited... I think. So that would be: the players own cards, the burn card, the flop, turn, and rivier cards (maybe), any card that makes it to a showdown, plus any remaining undealt cards in the deck. That's quite a few cards that could be audited. The audit wouldn't be airtight, but I see it as a step in the right direction.
Something else to think about: In a head's up situation, a comprehensive audit of all un-mucked cards would allow a sharp player to figure out the hole cards of their opponent (from the previous round) by process of elimination. Maybe that's OK if both players are privy to the same information, but it certainly changes the character of the game.
legendary
Activity: 1136
Merit: 1001

Let me use my favourite game roulette as an example.
I as an operator silently observe the bettors and pick their patterns (red/ martingale/ singles/ whatever).
I pre-generate a huge sample of site seeds and client seeds (remember the client cannot set their own) and then cherry pick the results I want.

Say we had a player martingaling their bets on red, to fucking easy throw out 10 blacks and then insist they were randomly selected where in actual fact there is no proof of randomness only proof of result.


This is exploitable by a sharp player. I don't think a crooked casino wouldn't do this.
newbie
Activity: 42
Merit: 0
However, you at least want to know that the cards you got were fairly given, and provably so.

Any card that isn't specifically mucked by another player could be audited... I think. So that would be: the players own cards, the burn card, the flop, turn, and rivier cards (maybe), any card that makes it to a showdown, plus any remaining undealt cards in the deck. That's quite a few cards that could be audited. The audit wouldn't be airtight, but I see it as a step in the right direction.
hero member
Activity: 756
Merit: 522
I think people need to revisit the concept of provably fair.

First, lets give some examples of my gold standard for provably fair:

1: blockchain games that user the players txid (or another input they have no control over) and a daily site secret.
This imho is still as good as it gets, the entire betting history is public and anyone could choose perform an audit to verify outcomes.

2: Any site that shows you a hash of the site seed used for the next round and allows for users to provide their own seed or randomly generates one for them.
This is as good as it gets without a publically auditable db. Bonus points for no blockchain spam as well.

Now lets look @ 'Provable Results'.

2: Any site that shows you a hash of the site seed used for the next round and does not allow users to provide their own seed.

This is not provably fair, this is only provable results.

What is the difference you ask and why are you such a prick about these things site operators ask ?

Let me use my favourite game roulette as an example.
I as an operator silently observe the bettors and pick their patterns (red/ martingale/ singles/ whatever).
I pre-generate a huge sample of site seeds and client seeds (remember the client cannot set their own) and then cherry pick the results I want.

Say we had a player martingaling their bets on red, to fucking easy throw out 10 blacks and then insist they were randomly selected where in actual fact there is no proof of randomness only proof of result.

I have previously been to lenient on this and will be revisiting and speaking with casino operators who have (conveniently ?) overlooked this.

Flu meds wearing off, back to the tv and my heater.

This is an excellent point actually.

I think this discussion has been here a few times already and I completely agree with you.

http://v20.nl/primedice/

Very nice.
full member
Activity: 196
Merit: 100
That still leaves the house being able to cheat by knowing all the cards and telling the players which cards they have. I'm not sure we can do anything about that. It's the same problem with dice sites. The owners (who know the server seeds) can play as a player and win or lose the game on purpose.

Yes, and that is a problem when the money of the 'house' is not involved. I couldn't care less if Stunna plays his own game, but dooglus playing JD and I will refrain from visiting that site.

Also I forgot about the part where you have to be able to muck your cards... I will think about this today and hopefully come up with a way (just woke up so had problems understanding your text)
legendary
Activity: 3416
Merit: 1912
The Concierge of Crypto
Ok, how do you fairly shuffle a deck, and provably show a player's own cards are fairly drawn, without showing other player's cards or hands? Poker specifically has this problem.

As I explained in my post: Fisher-Yates shuffle, create a string out of the deck, hash it. Show the hash beforehand, the entire deck afterwards.
Did you read my post?

But if you show the entire deck afterwards, and everyone knows the order the cards are handed out, everyone can know everyone else's hands. That's a problem in poker, if you do not want other players to know your cards even if you lost.

You only show your hand if you win. In fact, you don't need or you don't want to show your hand if you win because everyone else folded. However, you at least want to know that the cards you got were fairly given, and provably so.

The solution, I think is to hash each card and a nonce that indicates the position of that particular card in the deck. The player that holds the cards can see his own cards, but not the others, and can verify that his cards come from the deck in the order it was supposed to.

This is possible, but it might become unwieldy to verify. You have to create a hash for the shuffling seed, and a hash for each card. If you only use one deck, that is still 52 cards or 53 hashes. If you use multiple decks, that's a lot more hashes.

Also, it doesn't have to be Fisher-Yates, but any shuffling where everyone knows the procedure, that uses maybe SHA256 (as always) with random seeds that can be revealed after the game. (After reading about it, everything that can shuffle can fit into a Fisher-Yates variant or something similar.)

As far as players are concerned, it will be Provably Fair as well as Provable Results.

That still leaves the house being able to cheat by knowing all the cards and telling the players which cards they have. I'm not sure we can do anything about that. It's the same problem with dice sites. The owners (who know the server seeds) can play as a player and win or lose the game on purpose.
full member
Activity: 196
Merit: 100
Even though 'provably fair shuffling' != provably fair,

That is true, but as I said: if you implement this it is impossible for you to deal yourself a Royal Flush and get away with it. People would quickly look up the hashes and see that they don't match and know that you tampered with the shuffling. Of course at that moment everyone lost their money already but at least it is proven that it was rigged.

Right now you can deal anyone whatever you like and nobody will know.
newbie
Activity: 42
Merit: 0
... Fisher-Yates shuffle, create a string out of the deck, hash it. Show the hash beforehand, the entire deck afterwards.

It's certainly an interesting problem ... much trickier than I first imagined. Even though 'provably fair shuffling' != provably fair, I agree that the feature is still worth implementing. Rumors are running rampant that the shuffling algorithm on Pokerstars is rigged to favor the weaker players. See http://www.pokerscout.com/AllReviews.aspx?id=1 , and the general mood seems to be that most of these poker sites are crooked as a barrel of snakes. This would at least help to build back some trust.

I like your idea though, and I recall that libertaad wrote some excellent aricles on 'provably fair' not so long ago which I need to go back and re-read. I'll give the subject some more thought and see what I can come up with.   

full member
Activity: 196
Merit: 100
Ok, how do you fairly shuffle a deck, and provably show a player's own cards are fairly drawn, without showing other player's cards or hands? Poker specifically has this problem.

As I explained in my post: Fisher-Yates shuffle, create a string out of the deck, hash it. Show the hash beforehand, the entire deck afterwards.
Did you read my post?
sr. member
Activity: 476
Merit: 250
SatoshiDice, SatoshiCircle & SatoshiSlot Support
I think people need to revisit the concept of provably fair.

First, lets give some examples of my gold standard for provably fair:

1: blockchain games that user the players txid (or another input they have no control over) and a daily site secret.
This imho is still as good as it gets, the entire betting history is public and anyone could choose perform an audit to verify outcomes.

2: Any site that shows you a hash of the site seed used for the next round and allows for users to provide their own seed or randomly generates one for them.
This is as good as it gets without a publically auditable db. Bonus points for no blockchain spam as well.

Now lets look @ 'Provable Results'.

2: Any site that shows you a hash of the site seed used for the next round and does not allow users to provide their own seed.

This is not provably fair, this is only provable results.

What is the difference you ask and why are you such a prick about these things site operators ask ?

Let me use my favourite game roulette as an example.
I as an operator silently observe the bettors and pick their patterns (red/ martingale/ singles/ whatever).
I pre-generate a huge sample of site seeds and client seeds (remember the client cannot set their own) and then cherry pick the results I want.

Say we had a player martingaling their bets on red, to fucking easy throw out 10 blacks and then insist they were randomly selected where in actual fact there is no proof of randomness only proof of result.

I have previously been to lenient on this and will be revisiting and speaking with casino operators who have (conveniently ?) overlooked this.

Flu meds wearing off, back to the tv and my heater.

Bang on MEM!
legendary
Activity: 3416
Merit: 1912
The Concierge of Crypto
Ok, how do you fairly shuffle a deck, and provably show a player's own cards are fairly drawn, without showing other player's cards or hands? Poker specifically has this problem.
Pages:
Jump to: