Decentralized Poker the Players Project
Would you like to react to this message? Create an account in a few clicks or log in to continue.

Random notes

Go down

Random notes Empty Random notes

Post by BluMnkyHugr Mon May 19, 2014 2:46 am

The game could take place off the blockchain between peer-to-peer game clients but with the blockchain/contract used to verify the fairness of the game. In the following example a player need only trust their own client in order to trust the game. Collusion can't be ruled out, but only to the extent of players showing each other cards they can already see themselves.

1. On the blockchain: The contract convenes a game, puts the game clients in touch with each other and issues chips in exchange for cash which it will hold. Players also pay a returnable deposit which they will forfeit if e.g. they "kick over the table" after losing.

2. Off the blockchain: Each game client generates but does not broadcast a large block of random bytes. It's in the player's own interests that these bytes really are random.

3. On the blockchain: Each game client sends a hash of its random number block to the contract.

Now the game can proceed between clients without further interaction with the contract until the end.

Every card for the entire game will be seeded using a few bytes from each of the players' random number supply. A card is dealt by all clients broadcasting their bytes for that card *except* for the player who is actually to see the card. Since only this player has all the bytes for the card, only this player can see it until they later reveal it by broadcasting their own bytes. (Obviously a card can be dealt in the open by just having all clients broadcast their bytes to begin with).

As gameplay and betting proceed all clients produce a signed account of the events taking place. For example if the 231st thing to happen is that player 4 bets 25 chips then all players would broadcast a hash of 231/BET/4/25/[some-of-their-random-numbers].

At the end of the game its back to the blockchain. The clients transmit their entire game transcripts including the signed accounts from the other players. They also transmit their formerly secret random number blocks. The contract verifies the random blocks against the hashes it was sent at the start, verifies the game transcripts against the random blocks, then cashes out the winners and returns deposits to all.
BluMnkyHugr
BluMnkyHugr
Admin

Posts : 57
Join date : 2014-05-18

https://decentralizedpoker.forumotion.org

Back to top Go down

Random notes Empty Re: Random notes

Post by BluMnkyHugr Mon May 19, 2014 2:50 am

http://www.reddit.com/r/poker/comments/2585hl/decentralized_poker/
7trXMk6ZKhal Nhare Haqeqqe

   1) Even a decentralised system requires trust - a consumer needs to have trust that the system works as they expect it to do. They need to trust that there aren't any bugs.

that's the purpose of open source. the code can be reviewed by all. the non-technical user can choose which person they want to trust to review the code and provide them with a safe binary.

.

   2) Decentralised systems are not the only way to generate trust.

decentralized systems aren't trying to generate trust, they attempt to remove trust wherever possible. that's why they're more trustworthy, because they're fewer places that even require trust to begin with. now obviously, unless you're fabricating your own hardware and writing your own OS in machine code, you have to trust somebody at come point, but the idea behind free and open source software is to allow you to choose how and where to place your trust. you can review the code yourself, or you can choose who you want to trust to review it for you. and because it's open source and then entire community can review it, any mistakes or malicious code can be found faster than it could in a closed source binary where nobody gets to review the code-- that's part of the "remove trust wherever possible" aspect, and it's a core facet of the open source software culture.

.

   3) If you think that the fact that anyone can play - including children - is a good thing, then I think that this whole idea simply won't have any credibility. It still might be an interesting academic/theoretical exercise.

that's entirely possible, but the purpose of decentralized systems is to remove central authority and censorship. it's what bitcoin is doing for money. the fact that bitcoin makes money laundering easier is damaging to its credibility for some people. for others, that's a sign that it actually works as money should-- fungible and indifferent, one token is just as valid as any other token. similarly, children playing cards may seem bad to many people, but playing poker for pennies doesn't seem to me to be any more dangerous than learning chess and playing chess matches for a dollar with friends. i stand by my original stance that parenting is a far bigger factor in how damaging playing poker will be for a kid. i know a handful of 15 and 16 year olds who play low limits on seals with clubs (i.e. for bitcoins), and treat it like other kids treat video games. it's a solid hobby they take seriously, and it's just as healthy as any other form of video game recreation.

and when you introduce a way to detect and block certain peoples, you introduce a method of censorship that can be abused. i frimly beleive the moral course of action is to make the game available to all and to leave the options of banning and not playing up to the individual. the whole purpose of freedom is the ability to choose. you say "but what if some people choose wrong!" and i say that's their choice to make. but then, i probably am far more libertarian leaning than you are. i fundamentally disagree with the notion that it's the government's job to protect me from myself.

.

   4) Implementing this without revealing the IP addresses of the other players seems ambitious. Otherwise you have this problem: http://www.vip-cashback.net/ddos-attacks-against-poker-players-using-skype-gap/

i actually never intended to hide IP addresses, but im sure such a system could run over I2P or Tor if need be. as far as ddos attacks go, that's one of im sure hundreds of problems that need to be worked out, one by one, for the system to work. it can get in line take a number! i'll cross that bridge when i get to it.

.

   5) Are there any other decentralized card games that are currently operating? Google just links me to a bunch of academic papers

nope. there are none. this is a brand spanking new idea, only even possible very recently, thanks to bitcoin proving that distributed trustless consensus was possible.

.

   6) It seems difficult to rely on poker opponents to correctly judge rules breaking - I don't have any stats on collusion, but the vast majority of allegations of bot use (like 90%+) are incorrect reports. A simpler solution to the issue of collusion is to require that all play be heads-up only, and allow bots and automated software to play.

yeah, like i said earlier, there's a bevvy of problems that would need to be solved. it's not possible at a technical level to prevent two people from finding each other and eventually making it to the same table and then just calling each other on phones outside of their computer and coordinating. that's not something im trying to stop, because i dont think it can be stopped. but what you can do is have better and better heuristic algorithms that identify behavior that would only occur when people are colluding. good algorithms in combination with a web of trust rating system provide a good enough method of detection and prevention as far as im concerned, although i could be convinced that there are better ways im not thinking about. as far as bots go, i dont really care about bots. im all for bots. and again, because it's open source, if the community thinks they're a problem, they can help design heuristic detection algorithms and use the rating system to identify them. that's the beauty of the system being open source. you put the risk threshold at a user defined level. if i dont want to play bots, i can just edit my config file to only show me games with people with less than X% probability of being a bot based on the rating system and the community's algorithms. if i dont care about bots, i can change that threshold.

the threshold of risk can be completely decided by the user, and for non-technical users, you just make the default settings be fairly strict.

i know for a fact that algorithms can be very VERY good, because ive seen them be good on your software! it took two times of me raising more than half my stack on the river and then folding to a shove by my opponent before i got capcha'd. it took three automated folds before i got captcha'd. you guys have already proven how effective algorithms can be at detecting things! and i think good algorithms in combination with a web of trust can provide a very robust platform for cheating prevention based solely on user-defined risk probability thresholds.

you can do it without escrow. in my first model, i had a handful of random nodes basically verifying a hand, so that the players at the table couldn't cheat without enough random nodes colluding as well, but that's still iffy-at-best. i think ive fixed that though and have a model where the table can provably verify the hand itself even bad actors at it, and the final hash of the hand depends on the actions in it, and then if the players refuse to confirm it, they all lose some large chunk of their stack to mining fees -- something akin to an nlocktime tx to give away their stacks unless it's double-spent by a valid hand. basically, im trying to fix cheating by making it really REALLY costly, so even a guy who gets stacked doesn't benefit from trying to block the hand from going through. there's some other tweaks and things to worry about, but that's the direction im headed with it right now. i think you can do the entire thing in a completely distributed manner, by doing something along the lines of having your own mini table blockchain and submitting hands as merkle-roots into the main chain, and then your hand history files serve as proof to collect funds. i havent worked it out 100% yet, but im confident enough that it's actually possible, and can be done completely distributed with a "literally everything is a transaction" approach. heck you could even create new games and submit them as game-type tx's and give other players the plugin for that game, and miners can verify them without knowing or understanding (or having the plugin for) that game.
BluMnkyHugr
BluMnkyHugr
Admin

Posts : 57
Join date : 2014-05-18

https://decentralizedpoker.forumotion.org

Back to top Go down

Back to top

- Similar topics

 
Permissions in this forum:
You cannot reply to topics in this forum