Author

Topic: Alternate Mental Poker solution? (Read 3834 times)

sr. member
Activity: 432
Merit: 251
––Δ͘҉̀░░
May 02, 2015, 08:56:38 AM
#13
I hope you find a solution without involving crypto, but I doubt that solution exists. I worked on the subject for a couple of years in 2009.

I'm currently working with 4 other people around the globe to bring MPF into practice. We improved the original protocol and we can deal cards in seconds with cryptographic security and without bloating the block-chain. We can recover from players dropping out without problem. We can handle time-outs, time-banks, and tournaments.

I don't know yet if the platform will be called QixCoin (as the original) or not, but I can say that it will be launched in 1Q of 2015 (that's our plan)

Best regards and I hope you come to play in it when it's ready.

Sergio Lerner.








Any news?
sr. member
Activity: 532
Merit: 251
September 23, 2014, 04:29:44 AM
#12
something like this:


Quote
You have 52! permutations of a deck (shuffle states) in a sequenced order.

n players (in sequential order) each pick a shuffle state between 1 and 52!

The true state of the deck is the sum of each players number.  (where the count after 52! starts at 1 again.)

If players need to reveal the nth card in the true state, they each reveal the nth card in their own respective shuffle state.

The sum of each of their nth cards will give a determinable card but not equal the nth card in the true shuffle state.

The card given (as a sum of each players nth shuffle state cards), will be off by a determinable increment.

This increment can be automatically generated without reaveling each players initial shuffle state.

This gives increment values to finally obtain each of the desired 52 true shuffle state cards (only if each player reveals their nth card).

Can the players reverse extrapolate the deck given the 52 incrementing values?


sr. member
Activity: 532
Merit: 251
September 23, 2014, 01:42:19 AM
#11
It might be that if the cumulative sum of each players "key" card gives a certain output that is off by a certain computable adjustment of the actual deck state to be used can be known by the program before hand.  It might defeat the entire purpose.
sr. member
Activity: 532
Merit: 251
September 23, 2014, 01:38:08 AM
#10
The document isn't available anymore :|
i did that thing where your buddy points out and obvious flaw, and your life is over until you have a sleep.

adding permutations of deck states results in non unique numbers

for example for 3 cards one player might choose 3,2,1 state, and player 2 chooses, 1,2,3 state.  this results in 4,4,4 which is a deck with all 1,1,1 cards

this is obviously true, so sick how hard you try to debunk your own ideas and you can't see simple flaws.  I called for deletion of the thread, however i do have a thought im developing...i'll unlock the paper.

staff
Activity: 4256
Merit: 1208
I support freedom of choice
September 22, 2014, 08:15:53 PM
#9
The document isn't available anymore :|
sr. member
Activity: 532
Merit: 251
September 22, 2014, 12:59:54 PM
#8
I hope you find a solution without involving crypto, but I doubt that solution exists. I worked on the subject for a couple of years in 2009.

I'm currently working with 4 other people around the globe to bring MPF into practice. We improved the original protocol and we can deal cards in seconds with cryptographic security and without bloating the block-chain. We can recover from players dropping out without problem. We can handle time-outs, time-banks, and tournaments.

I don't know yet if the platform will be called QixCoin (as the original) or not, but I can say that it will be launched in 1Q of 2015 (that's our plan)

Best regards and I hope you come to play in it when it's ready.

Sergio Lerner.







This particular method might not be possible in the past without ethereum

 thx sergio best of luck!
hero member
Activity: 555
Merit: 654
September 22, 2014, 12:49:07 PM
#7
I hope you find a solution without involving crypto, but I doubt that solution exists. I worked on the subject for a couple of years in 2009.

I'm currently working with 4 other people around the globe to bring MPF into practice. We improved the original protocol and we can deal cards in seconds with cryptographic security and without bloating the block-chain. We can recover from players dropping out without problem. We can handle time-outs, time-banks, and tournaments.

I don't know yet if the platform will be called QixCoin (as the original) or not, but I can say that it will be launched in 1Q of 2015 (that's our plan)

Best regards and I hope you come to play in it when it's ready.

Sergio Lerner.






sr. member
Activity: 532
Merit: 251
September 22, 2014, 03:52:16 AM
#6
Thank you for this, I hope someone will be able to transcript this into code Smiley
ha im not worried about that.  Does the concept seem to be technically possible?  I wonder if it covers the security issues?

I don't know if there is an issue construct a deck based on 52! permutations but I am working on an algorithmic formula for it and it seems quite simple (although now I'm thinking it might be n based math for n number of cards, not sure if thats an issue but it doesn't seem so).

something like this but im too tired to think anymore http://www.scribd.com/doc/240528386/Mental-Poker-Deck-Construction-Algorithm
staff
Activity: 4256
Merit: 1208
I support freedom of choice
September 22, 2014, 03:46:14 AM
#5
Thank you for this, I hope someone will be able to transcript this into code Smiley
sr. member
Activity: 532
Merit: 251
September 22, 2014, 01:46:22 AM
#4
I cleaned up my thoughts http://www.scribd.com/doc/240518193/Satoshi-Paper-A-Decentralized-Secure-Mental-Poker-Protocol

please pass to anyone who might have some insight

Quote
a unique approach to solving the problem of mental poker by using two predefined universal automated arbitration algorithms. Before a hand begins players agree on (1) a predefined 3d array of deck permutations and (2) a predefined Poker protocol (ie rules and gameflow). This basis for a virtual deck of cards gives players access to a shuffled deck of satisfying randomness which inherently functions in any manner a centralized virtual or real life deck of cards might. The solution is ultra fast, completely scalable and, impervious to any significant malicious attacks.

Contractual Agreements

Poker Protocol Agreement

Before beginning a virtual poker hand players are to make contractual agreements based on the conditions of the desired game-play. We take the rules and general game play protocols and immortalize them to a block-chain for the possible lifespan of a given game up until at least arbitration of the winning player and their equity is decided (for poker this might be a given hand). Because of decentralized smart contract[3] technologies such as Ethereum[4] an automated program can be used to arbitrate the winner of a given hand or game based on the predefined rule set. Players also might agree on issues such as seating arrangements in this contract which might also be important for creating a useful random deck shuffle state.

Order of Permutations

An order of permutations of different states of a shuffled deck are also agreed upon before a virtual deck is implemented (there will then be n! states n number of cards). The order of the different permutations of the deck are arbitrary as long as they are universal known and agreed upon by the players involved in the game or hand.

Shuffling

Shuffling a deck with the proposed protocol is vastly different to today's current mental poker protocols. Instead of creating a virtual deck and passing it around to players or servers, each player chooses a random number of their choice within the range of permutations of deck shuffle states. The shuffle state for the deck that players will use for their game is the sum of each players' random number, where the summation starts at zero after the sum reaches 52! (for a 52 card deck or n! For a deck of n cards). In other words if there were only 3 cards in a deck (3! = 6) and the first players' random number was 3 and the second player random number is 4, the cumulative sum is deck shuffle state 1 since we count “3 + 4” as for states higher than 3 (4,5,6,1). The individual random numbers are encrypted secretly by each respective player to a block-chain for verification of the initial “true” cumulative deck shuffle state.

Dealing

Dealing inherits a slightly different concept than conventional methods. Since the cumulative deck shuffle state is predefined (yet unknown to each individual player) we can simply think of dealing in terms of who gets which cards from which position in the deck. That is too say, for n players the first n cards are to be “dealt” in order to each player in a given hand or game, and then for a 2nd card each player respectively receives cards from n + 1 to 2n + n. In Texas hold 'em poker where each player only gets two cards, the next three cards in the deck are the flop, and then the turn, and finally the river.

In order to deal a card to a player each other player in the contract reveals the card (or number since its really programmatic) in which their random number points to. For this process there is not need for encryption and exchange of public or private keys. Cards can only be seen if all random card pointers are given so a player can be sure that no one can see ones cards without their permission. Community cards work in the same fashion except all players reveal their random card markers.

Malicious and Honest Disconnects

In typical approaches to mental poker procedures a problem arises when an individual player drops out of a game or hand either intentionally or accidentally. This can cause a problem for two reasons. First if such a player is unable or unwillingly to reveal their random card marker the other players remaining are stuck with an inability to reveal more individual or community cards. The issue is further compounded because the remaining players cannot reshuffle the deck without telling each other which cards they should hold that shouldn't be found back in the deck of unrevealed cards. With the proposed solution here these issues are seemingly resolved. Upon finding themselves in a situation where a given players' cards need to be either killed (tossed aside) or shuffled back into the deck, the remaining players can recreate the current scenario using a range of deck shuffle states in which certain card positions remain the same while no player is able to identify the card in that position without already knowing the previous cumulative deck shuffle state. In other words, if a set of S cards from the deck needs to remain intact but a set of K cards must be reshuffled, each individual player can choose a new random shuffle state marker which full-fills these requirements. This method of reshuffling gives each player the same cards, revealing the same community cards to the remaining players, while not revealing an information to any play
sr. member
Activity: 532
Merit: 251
September 21, 2014, 04:28:50 AM
#3
It seems there would be no reason to "encrypt" the cards.  Each players has their individual chosen deck state.  The true state of the deck is the addition of each state in the order the players are seated written to the block chain.  If player 1 needs to be "dealt" the first card each player gives the first card of their state and only player 1 with his last C1 card from his state can find the vale of the true deck state at C1.  Cards are ordered from 1-52 where for example 48 + 5 would equal 3 (starting over after 52).
sr. member
Activity: 532
Merit: 251
September 21, 2014, 03:10:40 AM
#2
Actually I think this solves the problem of killing hands:

Quote
If we imagine all 52! permutations as an arrary of arrays representing all deck combination, you might actually be able to reshuffle without putting the cards back in the deck in the case that one of the player keys is failing to be presented (obviously while folding/killing their hand).

Lets say the random choice for deck permutations between 3 players lands on sate Sx and player 3 has broken protocol and must be booted from the hand.  The first 6 cards of the deck state were dealt to the players and the next 5 belong to the flop/turn/river.

Players 3 cards reside at C3 and C6.  Let's say for this example only the flop was dealt which is C7-C9.  Then upon player 3 forfeiting his hand (dead), the new shuffle procedure only needs to be changed to consider a range of states in C1-C9 remain the same (without revealing what actual cards reside at those ranges).
sr. member
Activity: 532
Merit: 251
September 21, 2014, 02:05:55 AM
#1
A person more technical than me thought this might be worth asking around about.  The best solution so far is here www.dc.uba.ar/inv/tesis/licenciatura/2010/lerner  but it doesn't seem any projects have solidly implemented the protocol.  I still wonder if it can be done without a block-chain and have yet to hear anyone describe an implementation I can subscribe to.  Sorry if its a waste of time, I'd just like to know if i should pursue the line of thought or if their is a hole in it. thx! Sorry I have essentially zero formal technical skills or knowledge so I had to make my own language for the explanation, here is the cliffs:

The changes from anything I've seen so far are:

-use of blockchain for a non-commutative "shuffle-vote" process
-a universal standard for deck states external to the shuffle procedure and game play
-A fair process for dealing with honest disconnection issues in a decentralized poker game.
-A reasonable solution for dealing with malicious players who won't give their "keys" at opportune times.

I suspect there might be some speed advantages if this process holds valid. I have some more ideas but i should make sure their is something worthwhile to pursue first

Quote
The hand starts with a timelock transaction escrow with %'s release to each player based on the final line of a hand within a time period greater than the possible time period in which the hand might last.

For n players, each player Pn chooses a number Xn between 1 and 52! We “label” each card in the deck universally between 1 and 52, and have a universally known 'order of permutations' in regards to ways the deck can be arranged and agreed on.

This number is encrypted by each player and written the block chain in a particular order related to the position each player sits in the hand. That is to say order seems to matter in some respect and so it is not commutative.

The shuffled state of the deck then is P1 + P2(X2) .....Pn(Xn) = Si, Where the highest possible number (52!) + 1 returns the first permutation of shuffle states.

In this way the deck can now be understood in its “shuffled” state Si,

We now have a shuffled deck in the form of a number that represents a certain permutation between 1 and 52! permutations.

We don't need a common random trust-able seed or to “draw” cards, but rather it can be seen for any state Sx “C1” is to be “dealt” to the first player to receive a card, C2 the next person and so on. Since the state of the deck is random to everyone it really matters not the “order” in which who receives which card, yet it is important for future verification that everyone has previously agreed to this order.

So we might choose a standard such as players 1-n receive respectively cards C1-Cn, and then for their 2nd card (Nl hold em) players receive their 2nd card C(1+n),...C(n+n). If C(n+n) then was the last hole card to be “dealt” then C(n+n+1),...C(n+n + 5) positions would contain the flop, turn, and river respectively.

Dealing is simple. Imagine each player has 52 pieces of paper, corresponding to their own unique “color”, which is transparent only to oneself and completely opaque to each of the other players. Further picture the entire shuffled deck face up in a line (C1 to C52 but in a shuffled order) in front of the players, and each player covers each card with their own colored pieces of paper. No player has seen the order of the cards. In order to deal a card to a specific player n, each player that is not n, simply removes their colored piece of paper leaving only the card with the piece of paper on it that is transparent to n but opaque to every other player.

To show a card to the community such as the flop/turn/river, the process is identical but this time all players remove their “papers”, thus revealing the card to everyone.

We might then take another metaphorical view of this to understand further. Imagine floors to an apartment type building with n floors and each floor containing 52 rooms with the exact same layout on each floor. Each player has their own floor, player 1 is on floor 1,....player n is on floor n. Player 1 uniquely connects a pipe from each of the 52 rooms on the bottom floor through each of the 52 rooms on their own floor and up to player 2's floor in any random manner he is comfortable with. Player 2 cannot see which of the rooms from player 1's floor that each pipe comes through. Player 2 connected each of his rooms up to the next floor and the process continues until the last player n connects his pipes up through to the rooftop. Thus each player has had a chance to randomize the “flow” without being able to see the randomization scheme of any of the other players.
Since the game is played on a blockchain all previous “actions” or lines in a hand history, can be thought to as having reached “consensus”. The remaining issue in this regard then is only with the present decision to be made and accepted to the blockchain. A malicious villain may choose to either disconnect or not “reveal” a certain card needed to further game play. There might be two interesting solutions to these issues. We might think of “disconnecting” as an honest act, and not revealing a card as a malicious one.

In regards to malicious players, there cannot be much incentive to defect in this fashion, especially with even a weak single unique identifier/web of trust system in play. A villain does not stand to “gain” any more than disrupting a certain hand and causing the hand to never have been dealt in the first place (all buyins returned). Furthermore, the initial time locked escrow can be set so that no player receives their share of the equity without passing in their public key at the end of the hand. What is interesting then is that in the case of a malicious failure to facilitate the game, assuming it was the case villains equity had fallen less than an equal distribution of the equity (ie the cause of their defection), the players left in the hand might agree to arbitrate the “dispute” by running the part of the hand history that is already written to the blockchain, through a third party equity analyzer (which has little monetary incentive to defect itself or be hacked). In other words the equity in the pot can be distributed as an “all-in” case to the players in the hand, mitigating the “reward” for defection.

In the case that a certain player disconnects (whether honestly or dishonestly), the remaining players can choose to reshuffle the deck (minus any community wide known cards) and continue a new hand as a subset of the initial transaction, with the same parameters of all of the actions up until the point in which one player disconnected. This brings up a small solvable issue-how do the players remove blockers from the deck of the cards that each of them are holding in their “hole”?

This can be done by each player choosing a random number between 2 and R where R is the number of cards not yet seen by the community and secretly writes this number to the block-chain That is too say if hero holds 2 cards that should not be in the deck then there is 2 of R chances that their hole card will be dealt to the community. But hero will have to protest and ask the card be shuffled back into the deck (starting the shuffling process over), so he simply needs to balance this frequency of request with a proportional amount of “bluff” requests. This solution can be structured indefinitely for cases in which the same hole card is drawn which may or may not be the card in hero's hole, and so the “edge” to be obtained from a reshuffle request is brought down to an acceptable level.

It also might be significant to point out the encryption on each players “randomizing” number need not be stronger than the amount of time a given hand takes to play. The is to say the encryption needs only last for say 24 hours worth of brute force (where brute force harness can spend < reward of attacking) and so its possible a “softer” encryption might then allow the hand history to be revealed and “adjudicated” without the malicious player ever giving up their “key”.
Jump to: