cryptographydistributedpoker

Mental Poker Toolkit


Can anyone suggest a toolkit or framework (or maybe an idea) that can be useful to implement secure and cheat-resistant online poker (texas hold'em) client without trusted third party server?


Solution

  • What you're asking about is called mental poker, described in this fascinating paper(PDF) by cryptographic greats Adi Shamir, Ron Rivest, and Leonard Adleman. Per their summary of results:

    We present two solutions to the problem of playing Mental Poker:

    1. A rigorous proof that it is theoretically impossible to deal the cards in a way which simultaneously ensures that the two hands are disjoint and neither player has any knowledge of the other player's hand (other than that the opponent's hand is disjoint from his).
    2. An elegant protocol for dealing the cards that permits one to play a fair game of Mental Poker as desired.

    The blatant contradiction between our two results is not due to any tricks or faults in either result. In fact, we will leave to the reader the enjoyable task of puzzling out the differences in the underlying assumptions that account for our seemingly contradictory results.

    Note that their result only applies to two player games of poker. The paper Mental poker with three or more players extends this result to multiple players.

    In short, can it be done? Probably, yes. Is it practical? Almost certainly not. You should establish or find a trusted third party instead.