Bitcoin Forum
May 01, 2024, 11:56:04 PM *
News: Latest Bitcoin Core release: 27.0 [Torrent]
 
   Home   Help Search Login Register More  
Pages: 1 2 3 4 [All]
  Print  
Author Topic: Poker and the shared pot at the table in a decentralised network  (Read 14665 times)
genjix (OP)
Legendary
*
expert
Offline Offline

Activity: 1232
Merit: 1072


View Profile
October 18, 2010, 03:53:15 AM
Last edit: December 19, 2010, 12:51:04 AM by genjix
 #1

Hey,

Over the past days having discovered bitcoin has driven my mind wild. All this year I've been reading a lot about distributed networks. I was a programmer and I'm hugely interested in maths.

When we play Poker online, we are using a centralised network. You deposit your cash online, sit down at a game and play. You place your trust in the site to be secure; no other players can see your hands and no money is being secretly stolen from you. Even big name sites have been known to cheat and smaller sites just shut down and steal your money.

There are two well known sites- PokerStars and Full Tilt Poker. By being secure, they charge you excessive amounts to use their service. The market is monopolised by them since small sites are untrustworthy. This year I played on PokerStars and made $3k profit and payed $4.5k in rake- so I had to win $7.5k in total and hand over more than half my winnings to PokerStars. Many players hate this.

A decentralised Poker network (using bitcoin). Here's the advantages:
+ Government heavily taxes Poker sites. Decentralised networks are outside the law.
+ No rake.
+ Don't need to place your trust in a company
+ Customise your client since you own the source!
+ No tracker sites gathering statistics on your play against the rules of Poker

How could such a thing be implemented?

Mental poker is a scheme for neutrally verifying cards among players but is slow. Yet I imagine there's ways to speed it up by relying on trust/probabilistic methods.

The real problem is money put into the pot. For those unfamiliar with Poker I'll explain: People bet on the strength of hands, and put money in a pot. After so many betting rounds, both players show their hands. The strongest hand wins the money put in the middle. How can this be decentralised?

The best scheme I imagined was if the pot was stored by a third party. We want to protect against collaboration so using the other players not involved in the hand at the table is not possible (5 of the 6 players on the table could be collaborating together and just steal your money). Each player could nominate a few escrows each that hold fractional amounts of the money. Since people disconnect (bad internet .etc), the escrows would need to be dedicated services.

6 players sit down at a table. Each nominates 2 escrow services that hold the money (12 in total). Player A and B start betting and putting money in the pot. $200 goes into 12 escrows or $17 each. After they show the hand everyone agrees player A won. But one escrow refuses to award their share of the $7 to A... Everyone at the table blacklists that escrow to never trust them again and alerts everyone else in the network. If the majority of the players at the table >50% agree that an escrow is bad, then everyone blacklists them.

This would be a great boost for bitcoin. My scheme is full of holes though. Looking for ideas.
1714607764
Hero Member
*
Offline Offline

Posts: 1714607764

View Profile Personal Message (Offline)

Ignore
1714607764
Reply with quote  #2

1714607764
Report to moderator
"In a nutshell, the network works like a distributed timestamp server, stamping the first transaction to spend a coin. It takes advantage of the nature of information being easy to spread but hard to stifle." -- Satoshi
Advertised sites are not endorsed by the Bitcoin Forum. They may be unsafe, untrustworthy, or illegal in your jurisdiction.
1714607764
Hero Member
*
Offline Offline

Posts: 1714607764

View Profile Personal Message (Offline)

Ignore
1714607764
Reply with quote  #2

1714607764
Report to moderator
genjix (OP)
Legendary
*
expert
Offline Offline

Activity: 1232
Merit: 1072


View Profile
October 18, 2010, 06:23:50 AM
 #2

In an escrow:

1. A offers to sell laptop for 2000 coins, and escrows X coins as security.
2. B offers to buy and escrows X coins as security.
3. B pays 2000 coins to A.
4. If A refuses to send the laptop, both A and B have lost X coins. Therefore, A has an
     incentive to send the laptop, and B can't use this system to put A out of business.
5. A sends the laptop to B.
6. If B refuses to acknowledge receipt of the laptop, both A and B have lost X coins.
     Therefore, B has an incentive to acknowledge receipt of the laptop.

where X > 2000 (e.g X = 2500)

In Poker here, the transaction confirmation is when the hands are revealed and the escrow confirms the winner. I'm asking about a distributed escrow in essence.
FreeMoney
Legendary
*
Offline Offline

Activity: 1246
Merit: 1014


Strength in numbers


View Profile WWW
October 18, 2010, 06:56:26 AM
 #3

I am very interested in this. It seems very hard to implement, but I really wouldn't know.

One thought:

Won't players need to send bitcoins to an 'account' so that each bet doesn't need to go through the bitcoin system and to verify for table stakes purposes? Do some multiple escrows hold this?

Play Bitcoin Poker at sealswithclubs.eu. We're active and open to everyone.
Drifter
Sr. Member
****
Offline Offline

Activity: 364
Merit: 250


View Profile
October 18, 2010, 07:54:50 AM
 #4

 I think I trust a company more in this situation than any escrow type system.  You're asking escrows to approve every round of betting, but do you think this would be done for free? The rake would have to pay them, but it wouldn't be easy at all having to approve every round of betting, and in that sense I also trust a well-polished program that detects error rather than an escrow approving bets when they never even see what's working behind the scenes and can't see face down cards.

A Bitcoin casino that allows deposits, gives people fake poker money to play with, then cashes out for real Bitcoin whenever they're finished feels like much less of a hassle, especially considering withdrawals could be made nearly instant.

A much easier system would be: Players sit at table, agree on escrows, send their money, and they're given the equivalent in play money at the poker table to play with. The players play the game normally, allowing the computer to handle bets and wins. When it's time to leave the table and they're done playing, they turn in their play money for the Bitcoin equivalent. At this point the escrow could also take a 1-2% fee, as I wouldn't expect for something like this to be entirely free. Given the fact that almost all poker sites take around 5% rake, you'd save 2-3%. Depending on your dedication, it could be worth it, but I think it's going to be a long time before the security I have with a real poker table is worth giving up for 2-3%.

grondilu
Legendary
*
Offline Offline

Activity: 1288
Merit: 1076


View Profile
October 18, 2010, 08:24:31 AM
Last edit: October 18, 2010, 08:37:46 AM by grondilu
 #5

Well, playing a fair game of poker online is a very tough subject indeed.

First, I'm not sure mental poker is already reliable.  I've red that right now it works only for two players games.

Second, how exactly do you intend to prevent collaboration ?  As I see it, the only way to prevent this, is to make sure none of the players know each other.  This is tricky, and in my opinion it can only be done in a anonymous network, such as Freenet or something.

Third, as far as an escrow service is concerned, it is also tricky.  It is not a pronlem specific to poker, though.  I didn't understand well your solution, but I think one can use a principle that would be close to the bitcoin system.  A network of anonymous nodes would offer escrow services, and the choice of the actual node for a game would be chosen in a random way.  The escrow node would have to perform some proof of work in order to gain the priviledge of being the third party.  Hopefully if honnest nodes are numerous enough, the escrow service would work fine.

Finally, I think it would be great if it was possible to create some kind of a robot on an anonymous network.  This robot would act like a virus, and would be programmed to organize poker games.  He would chose players, not letting them know each other, and would collect bets as a third party.  I don't know if such a bot would be feasible, though.  Plus, there should be a way to make sure the robot is honnest, for instance by making it open source.  But then, I don't know how could people be sure the instance they are playing with is really the one they think.

I think this subject is a little too advanced for me, but I reckon it is a very interessant and important one, as far as information technology is concerned.

I have the feeling that a good solution for online fair poker games won't be found during this century...

genjix (OP)
Legendary
*
expert
Offline Offline

Activity: 1232
Merit: 1072


View Profile
December 19, 2010, 12:27:38 AM
 #6

Hey,

Over the past days having discovered bitcoin has driven my mind wild. All this year I've been reading a lot about distributed networks. I was a programmer and I'm hugely interested in maths.

When we play Poker online, we are using a centralised network. You deposit your cash online, sit down at a game and play. You place your trust in the site to be secure; no other players can see your hands and no money is being secretly stolen from you. Even big name sites have been known to cheat and smaller sites just shut down and steal your money.

There are two well known sites- PokerStars and Full Tilt Poker. By being secure, they charge you excessive amounts to use their service. The market is monopolised by them since small sites are untrustworthy. This year I played on PokerStars and made $3k profit and payed $4.5k in rake- so I had to win $7.5k in total and hand over more than half my winnings to PokerStars. Many players hate this.

A decentralised Poker network (using bitcoin). Here's the advantages:
+ Government heavily taxes Poker sites. Decentralised networks are outside the law.
+ No rake.
+ Don't need to place your trust in a company
+ Customise your client since you own the source!
+ No tracker sites gathering statistics on your play against the rules of Poker

How could such a thing be implemented?

Mental poker is a scheme for neutrally verifying cards among players but is slow. Yet I imagine there's ways to speed it up by relying on trust/probabilistic methods.

The real problem is money put into the pot. For those unfamiliar with Poker I'll explain: People bet on the strength of hands, and put money in a pot. After so many betting rounds, both players show their hands. The strongest hand wins the money put in the middle. How can this be decentralised?

The best scheme I imagined was if the pot was stored by a third party. We want to protect against collaboration so using the other players not involved in the hand at the table is not possible (5 of the 6 players on the table could be collaborating together and just steal your money). Each player could nominate a few escrows each that hold fractional amounts of the money. Since people disconnect (bad internet .etc), the escrows would need to be dedicated services.

6 players sit down at a table. Each nominates 2 escrow services that hold the money (12 in total). Player A and B start betting and putting money in the pot. $200 goes into 12 escrows or $17 each. After they show the hand everyone agrees player A won. But one escrow refuses to award their share of the $7 to A... Everyone at the table blacklists that escrow to never trust them again and alerts everyone else in the network. If the majority of the players at the table >50% agree that an escrow is bad, then everyone blacklists them.

This would be a great boost for bitcoin. My scheme is full of holes though. Looking for ideas.
HostFat
Staff
Legendary
*
Offline Offline

Activity: 4214
Merit: 1203


I support freedom of choice


View Profile WWW
November 29, 2011, 10:27:47 AM
 #7

Are there any news about this project?
It seems an atomic bomb Grin

NON DO ASSISTENZA PRIVATA - http://hostfatmind.com
BTCurious
Hero Member
*****
Offline Offline

Activity: 714
Merit: 504


^SEM img of Si wafer edge, scanned 2012-3-12.


View Profile
November 29, 2011, 10:37:36 AM
 #8

We probably can't assume at least half of the table is genuine, can we? That would make things easier… Maybe half of the table's processing power? Or half of the poker network's processing power?

dogisland
Sr. Member
****
Offline Offline

Activity: 262
Merit: 250



View Profile
November 29, 2011, 12:30:08 PM
 #9

Could the M of N contracts be used for this ? https://en.bitcoin.it/wiki/BIP_0011

You would 2 people out of the N to transfer payment i.e. the winner and the site operator.
DeathAndTaxes
Donator
Legendary
*
Offline Offline

Activity: 1218
Merit: 1079


Gerald Davis


View Profile
November 29, 2011, 02:11:56 PM
 #10

I think I trust a company more in this situation than any escrow type system.  You're asking escrows to approve every round of betting, but do you think this would be done for free? The rake would have to pay them, but it wouldn't be easy at all having to approve every round of betting, and in that sense I also trust a well-polished program that detects error rather than an escrow approving bets when they never even see what's working behind the scenes and can't see face down cards.

A Bitcoin casino that allows deposits, gives people fake poker money to play with, then cashes out for real Bitcoin whenever they're finished feels like much less of a hassle, especially considering withdrawals could be made nearly instant.

A much easier system would be: Players sit at table, agree on escrows, send their money, and they're given the equivalent in play money at the poker table to play with. The players play the game normally, allowing the computer to handle bets and wins. When it's time to leave the table and they're done playing, they turn in their play money for the Bitcoin equivalent. At this point the escrow could also take a 1-2% fee, as I wouldn't expect for something like this to be entirely free. Given the fact that almost all poker sites take around 5% rake, you'd save 2-3%. Depending on your dedication, it could be worth it, but I think it's going to be a long time before the security I have with a real poker table is worth giving up for 2-3%.

If you are going to use an escrow this is the way to do it. 

Essentially when you sit down with $x the $x gets escrowed and you get x play money chips.  The network of players can manage the play money chips.  When you leave whatever you final chip count (checked by getting consensus of all other players) is what the escrows pays out.  Same thing happens for any rebuys.

Thus at any particular time the amount in escrow = amount of play chips in play. 

I think an escrow could do it for 1% or maybe less as it wouldn't require any manual intervention just smart programming to avoid tricking the escrow.  That is the weakest link.  If I can trick the escrow into letting me cashout more chips than I have well I can rob the other players blind.


Having all players in the hand sign each hand (including a ledger of current balances) would go a long way towards ensure the escrow computer isn't "tricked".  The details on exactly how to do that should be subject to open and robust debate as that is the most likely point of attack.
HostFat
Staff
Legendary
*
Offline Offline

Activity: 4214
Merit: 1203


I support freedom of choice


View Profile WWW
November 29, 2011, 02:24:23 PM
 #11

I hope that will be found a way to totally avoid escrows ( totally decentralized and disconnected from thirty party ).
Is BIP_0011 the first step?

NON DO ASSISTENZA PRIVATA - http://hostfatmind.com
DeathAndTaxes
Donator
Legendary
*
Offline Offline

Activity: 1218
Merit: 1079


Gerald Davis


View Profile
November 29, 2011, 02:28:32 PM
 #12

how exactly do you intend to prevent collaboration ?  As I see it, the only way to prevent this, is to make sure none of the players know each other.  This is tricky, and in my opinion it can only be done in a anonymous network, such as Freenet or something.

That is a harder problem.  This is actually where a good poker network earns it rake.  Catching cheaters can't be done w/ software alone.  It requires human fraud specialists and the ability for the poker operator to acts as final judge.  Yes cheaters do get through and sometimes innocent persons are wrongly accused of cheating but the combinations of heuristic software and good fraud detection employees is the biggest benefit a poker network can provide.

The only way I see a decentralized network being able to handle collusion is w/ a game like "Rush poker".  For those who don't know Rush poker (an invention by Full Tilt Poker) works on the premise of each hand you play w/ different players.  You join a Rush "pool" and are assigned tables randomly.  When you fold or the hand ends you are immediately assigned to another random table.  I hate it but it is very popular.  The popularity comes from the speed.  Since when you fold you go into a new hand almost instantly you get to do more playing and less waiting.

Rush poker would make collusion very difficult assuming the number of legit players is large relative to the number of players in the largest collusion gang.  Say a gang of 8 colluders tries to cheat the network which has 100 players at a particular stakes.  They have a decent chance.  Now the same 8 into a pool of 8,000 players makes colluding essentially useless.  Rush tournaments could also be created although if the colluders survive long enough (or starting pool is too small) then as the field narrows the risk of collusion rises.

Normal poker when players can choose their seats likely can't be properly policed by a decentralized network.  Poker is at its most basic a game of incomplete information.  Player gain (legitimate) advantage over other players by using proper deductive reasoning to fill in the games.  Information is the most value asset in the game and those who can/will share information have an unfair advantage which is difficult to detect.
DeathAndTaxes
Donator
Legendary
*
Offline Offline

Activity: 1218
Merit: 1079


Gerald Davis


View Profile
November 29, 2011, 02:30:33 PM
Last edit: November 29, 2011, 02:50:53 PM by DeathAndTaxes
 #13

I hope that will be found a way to totally avoid escrows ( totally decentralized and disconnected from thirty party ).
Is BIP_0011 the first step?

I think BIP_0011 is a way to make escrows more honest.  To cashout a player would require 51% of players PLUS the escrows consent.  Just relying on BIP_0011 would be very dangerous though as if you sit down w/ a table with 51% cheaters they could use the network to rob you blind.  If someone can they will.  Any network where you sit down and instantly lose unless you cheat will only be popular among cheaters.  Smiley

Alternatively you could use BIP_0011 to require 100% consensus before releasing funds from mutual escrow but "greifers" will ruin that.  If I lost all my money I can just be an asshole and vote against releasing any funds.  Granted I likely will never get my lost money back but I can ruin the game for everyone else.

I don't see a way around the need for an escrow but if the network supports multiple independent escrows and uses multi-party signing I think the risk of a "bad" escrow can be reduced.  Even at an escrow fee of 0.5% poker is a high cashflow business.  You are essentially collecting 0.5% of average player's stake every day.  

How much is that?  A lot.  Take a site like PokerStars. Has about 7,000 players online and playing at any particular time.  Average buy-in is probably $25.  Say average player sits down to 10 games per week.  That's 0.5% * $25 * 10 * 7000 * 52 =  ~half a million per year.  Even at a 0.1% escrow we are talking a hundred grand.  Obviously for a smaller poker rooms room revenue would be lower but at any particular time the escrow only has the funds currently in play.  If the escrow involves multi-sig then the amount of assets at risk would be a fraction of total assets (depends on how you setup the multi-sig).  This limits the amount they escrow can steal while being legit is still lucrative and would continue to grow with popularity (the whole risk vs reward).  Ironically pushing escrow fees too low actually upsets risk vs reward and makes stealing more likely.
btc_artist
Full Member
***
Offline Offline

Activity: 154
Merit: 101

Bitcoin!


View Profile WWW
November 29, 2011, 02:48:20 PM
 #14

Decentralized poker.  This needs some thought.

BTC: 1CDCLDBHbAzHyYUkk1wYHPYmrtDZNhk8zf
LTC: LMS7SqZJnqzxo76iDSEua33WCyYZdjaQoE
etotheipi
Legendary
*
expert
Offline Offline

Activity: 1428
Merit: 1093


Core Armory Developer


View Profile WWW
November 29, 2011, 09:22:10 PM
 #15

I have given a lot of thought to this problem in the past, starting with commutative encryptions for decentralized deck-shuffling (which is possible, btw).  When Bitcoin came out, I thought it was the final piece of the puzzle to creating completely anonymous, decentralized poker for "real" money.  However, the one part I couldn't figure out was how to stop players from colluding with themselves.   The more focus there is on anonymity, the less possible it is to prevent someone from filling 7 seats of a poker table themselves.  Forget other people...if I have 7 windows open at the same poker table, I'm going to run over the other 3 players no problem, and it's going to be more profitable with the near-zero rake of a decentralized service. 

Sure, you can try doing IP filtering, or various kinds of magic, but smart players will get around it, and a poker site with "real money" needs strong credibility and a customer support system.  The more anonymous you make it, the less credible it's going to be.  To make it credible enough, I believe you're going to have to add centralization and remove anonymity -- which destroys the whole spirit of this discussion.

I do find DeathAndTaxes' comment about Rush Poker to be an interesting one.  I used to play a lot of poker, and that was an interesting experiment....arguably I didn't care much for it either, but it does offer a very narrow, niche solution here.  If you can force players to constantly cycle tables, and the player pool is large enough to generally dilute collaboration that exists at any one table, then it will work for those that want to play Rush Poker....

But unfortunately, that's a serious niche.  Part of the edge of a good poker player is being able to sit down at a table (virtual or real) and start figuring out which players are weak and how to exploit them, not tangle with other good players, etc.  Playing a completely generic game with different players every hand is really not going to satisfy any generalized "online poker" market.

I looked at this very seriously about 6 months ago when I stopped playing so much poker and started getting into Bitcoin.  It's a fantastic thought experiment, but I think it's just that.  There's just too many pitfalls to make it actually viable.

Founder and CEO of Armory Technologies, Inc.
Armory Bitcoin Wallet: Bringing cold storage to the average user!
Only use Armory software signed by the Armory Offline Signing Key (0x98832223)

Please donate to the Armory project by clicking here!    (or donate directly via 1QBDLYTDFHHZAABYSKGKPWKLSXZWCCJQBX -- yes, it's a real address!)
HostFat
Staff
Legendary
*
Offline Offline

Activity: 4214
Merit: 1203


I support freedom of choice


View Profile WWW
November 29, 2011, 10:41:15 PM
 #16

Idea:
Can you add a p2p database where every user can give a +1/-1 to others?
This DB will be common between all peers, and everyone will have a private key and public key.
Then if I chose to give a +1 to another one, I will be able to see his +1 and -1. So I'll chose make my choices to enter or not in a table by seeing these votes.

I'm thinking about a community driven poker system ( decentralized/serverless/anonymous )

You wont have a perfect solution to go against the problem, but you will give to the community all the tools to protect itself and blacklisting bad players.

Example:
After the first installation, there will be some automatic filters and advice, and one can be: "Who is the first player that you trust and you want to add as a friend? Add his address"

I hope that you get the line of my idea Smiley

( I get this idea from the Osiris Anarchy forum rules )

NON DO ASSISTENZA PRIVATA - http://hostfatmind.com
etotheipi
Legendary
*
expert
Offline Offline

Activity: 1428
Merit: 1093


Core Armory Developer


View Profile WWW
November 29, 2011, 10:56:27 PM
 #17

Idea:
Can you add a p2p database where every user can give a +1/-1 to others?
This DB will be common between all peers, and everyone will have a private key and public key.
Then if I chose to give a +1 to another one, I will be able to see his +1 and -1. So I'll chose make my choices to enter or not in a table by seeing these votes.

I'm thinking about a community driven poker system ( decentralized/serverless/anonymous )

You wont have a perfect solution to go against the problem, but you will give to the community all the tools to protect itself and blacklisting bad players.

This requires people to make an "identity" system in a anonymized service.  Not only will players always choose to use a new identity for every table they sit down at, but blacklisting a player is pointless when there's trillions of other anonymous identities anyone can use.  Not only that but,
  • (1) When do you assign someone a +1?  When you win a hand against them?  When they lose all their money?  When they make a witty comment?  There are plenty of scammers who will go months looking like a regular player without any reason to suspect them.  Frequently it's only long-term statistical analysis that can identify the cheaters -- which is pretty tough when players are constantly changing their identity and there's no central authority to police it.
  • (2) There is really no way with this system to avoid having packs of colluders (or 100 identities attached to myself) all +1'ing my other identities.  In fact, almost no matter how you design this idea, the scammers will figure out how to be the ONLY ones with 100,000+ ratings...

The only answer I have been able to come up with for an actually viable pokersystem using Bitcoin is just a normal, centralized one, that accepts Bitcoins instead/in-addition to USD,etc.  That may be a great idea, but it's not what we're looking for, here.

Founder and CEO of Armory Technologies, Inc.
Armory Bitcoin Wallet: Bringing cold storage to the average user!
Only use Armory software signed by the Armory Offline Signing Key (0x98832223)

Please donate to the Armory project by clicking here!    (or donate directly via 1QBDLYTDFHHZAABYSKGKPWKLSXZWCCJQBX -- yes, it's a real address!)
btc_artist
Full Member
***
Offline Offline

Activity: 154
Merit: 101

Bitcoin!


View Profile WWW
November 29, 2011, 11:14:08 PM
 #18

However, the one part I couldn't figure out was how to stop players from colluding with themselves.
Would it not work if there is a big enough pool of players and players are assigned to tables randomly? You choose a game, but you get assigned randomly to a table. 

BTC: 1CDCLDBHbAzHyYUkk1wYHPYmrtDZNhk8zf
LTC: LMS7SqZJnqzxo76iDSEua33WCyYZdjaQoE
BTCurious
Hero Member
*****
Offline Offline

Activity: 714
Merit: 504


^SEM img of Si wafer edge, scanned 2012-3-12.


View Profile
November 29, 2011, 11:28:56 PM
 #19

However, the one part I couldn't figure out was how to stop players from colluding with themselves.
Would it not work if there is a big enough pool of players and players are assigned to tables randomly? You choose a game, but you get assigned randomly to a table.
How about I just spawn 1000 players? I guess you'd have to be forced to pay up-front though, that would solve it.

DeathAndTaxes
Donator
Legendary
*
Offline Offline

Activity: 1218
Merit: 1079


Gerald Davis


View Profile
November 29, 2011, 11:39:36 PM
 #20

However, the one part I couldn't figure out was how to stop players from colluding with themselves.
Would it not work if there is a big enough pool of players and players are assigned to tables randomly? You choose a game, but you get assigned randomly to a table.
How about I just spawn 1000 players? I guess you'd have to be forced to pay up-front though, that would solve it.

Limit it to 1 player per IP address and have a blacklist of proxies?
HostFat
Staff
Legendary
*
Offline Offline

Activity: 4214
Merit: 1203


I support freedom of choice


View Profile WWW
November 29, 2011, 11:44:18 PM
 #21

Even if I see some problems, I'm not saying that someone will be able to see all the rating of every user to another.
I mean, if I ask to see the +1 of an user, I will be able only to see the +1 of the user that I trust ( added as a friend )

Example: If a scammer create 100000 fake account/address, and +1 himself from all of them ... if I haven't any of these fake account on my friend addresses list, I wont be able to see any of these +1.
If I have one of these fake account on my friend list, than I will be able to see its +1 only!
So creating fake addresses and +1 wont be so useful to scam.
( to see 1000 +1 of this scammer I must have 1000 of his fake addresses on my "friend" list )

Example:
After that, we can give some rules as Bitcoin: less than 6 confirmation can be dangerous
Poker: less than +5 can be dangerous.

Anyway, I see the problem of the +1 as you said ... people will +1 others from many stupid and useless reasons.
I still think that a community driver system is the solution, but I'll try to find another way to get the point.

The blacklisting can still be useful as it is on market like silk road, everyone is anonymous, but they still have a reputation.

Another idea:
Instead of the +1, we can have only the -1.
All remaining statistics can be:
- Match played
- Match played with friend "A" ( from friend list )
- Match played with friend "B" ( from friend list )
- Match played with different players ( the distribution of match, to see if someone usually play only with his "friends" / fake accounts )
- How much time he played ( with the NTPs help )
- -1 ( bad votes ) received from all the community
- -1 ( bad votes ) received from friend "A" ( from friend list )

There are many other statistics that can be public ( or friend list related ) and useful to find a scammer and wont go against the anonymity.

NON DO ASSISTENZA PRIVATA - http://hostfatmind.com
DeathAndTaxes
Donator
Legendary
*
Offline Offline

Activity: 1218
Merit: 1079


Gerald Davis


View Profile
November 29, 2011, 11:49:42 PM
 #22

How would you know to -1 someone.

Done properly losing to collusion isn't detectable (by the player w/ his limited information) from just losing to bad luck or losing to a better player (who sees through your bluffs and gets out of the way of your monsters).
HostFat
Staff
Legendary
*
Offline Offline

Activity: 4214
Merit: 1203


I support freedom of choice


View Profile WWW
November 30, 2011, 12:00:48 AM
Last edit: November 30, 2011, 12:14:04 AM by HostFat
 #23

I think that it doesn't matter, it can be viewed as sign that he is a very good player ... so he makes many hungry players.

I'm trying to find a good rule to easy catch a cheater from all the statistics, and make very difficult and taking time to build a reputation.

The IP limit and proxy list ( also, with everything else ) can be another good way.
If I see a table with many warning ( many players with the same IP and/or behind proxy, from the shared proxy list ) ... than I'll think 10 times before entering on the table.

NON DO ASSISTENZA PRIVATA - http://hostfatmind.com
etotheipi
Legendary
*
expert
Offline Offline

Activity: 1428
Merit: 1093


Core Armory Developer


View Profile WWW
November 30, 2011, 06:45:38 AM
 #24

I think that it doesn't matter, it can be viewed as sign that he is a very good player ... so he makes many hungry players.

I'm trying to find a good rule to easy catch a cheater from all the statistics, and make very difficult and taking time to build a reputation.

The IP limit and proxy list ( also, with everything else ) can be another good way.
If I see a table with many warning ( many players with the same IP and/or behind proxy, from the shared proxy list ) ... than I'll think 10 times before entering on the table.

All this stuff amounts to nothing in terms of a meaningful, credible poker environment.  While there are solutions to subsets of the overall problem, I do not believe it's possible to come up with a all-around solution that won't have holes that will be exploited to hell by determined scammers, and probably end up inconveniencing regular users more than it helps.  Or rather... as solution without third-parties and some kind of centralization...

Seriously, if you even solve this problem 99%, the scammers/cheaters/colluders will figure out how to leverage that 1%, throw a bunch of resources at it, make a significant profit, and most likely cause all sorts of credibility issues for the system as a whole.  And players are skeptical enough, already of online poker...  At least a centralized poker site has the power to police itself, and promote their service with promotions and rake-back deals, etc.  A faceless, decentralized system will need to be airtight in order to survive amidst all the scandals without a PR dept.

Founder and CEO of Armory Technologies, Inc.
Armory Bitcoin Wallet: Bringing cold storage to the average user!
Only use Armory software signed by the Armory Offline Signing Key (0x98832223)

Please donate to the Armory project by clicking here!    (or donate directly via 1QBDLYTDFHHZAABYSKGKPWKLSXZWCCJQBX -- yes, it's a real address!)
FreeMoney
Legendary
*
Offline Offline

Activity: 1246
Merit: 1014


Strength in numbers


View Profile WWW
November 30, 2011, 07:01:50 AM
 #25

I hope that will be found a way to totally avoid escrows ( totally decentralized and disconnected from thirty party ).
Is BIP_0011 the first step?

Alternatively you could use BIP_0011 to require 100% consensus before releasing funds from mutual escrow but "greifers" will ruin that.  If I lost all my money I can just be an asshole and vote against releasing any funds.  Granted I likely will never get my lost money back but I can ruin the game for everyone else.


You could do an all but one rule. Also you could require players post say 20% more than they can play at the table so they always have incentive to approve even a loss.

Play Bitcoin Poker at sealswithclubs.eu. We're active and open to everyone.
FreeMoney
Legendary
*
Offline Offline

Activity: 1246
Merit: 1014


Strength in numbers


View Profile WWW
November 30, 2011, 07:10:00 AM
 #26

Re: Collusion prevention in decentralized poker.

I like the Rush idea. It doesn't even need to be one hand then shuffle. It could be 60 hands so you get a lot of the feel of a normal game. Or maybe it only assigns randomly and never moves you once in. This would let cheaters move until they bumped into each other, but if move behavior was public that might be okay. If accounts were free that history would be useless. Being required to pay an entry fee (to a random peer?) to be accepted by peers would make it free (or profitable in a sense if there were lots of multis) to play for single accounters (I'm imagining accounts being public keys) but costly for multis.

Play Bitcoin Poker at sealswithclubs.eu. We're active and open to everyone.
Akemashite Omedetou
Member
**
Offline Offline

Activity: 84
Merit: 13



View Profile WWW
December 13, 2011, 12:45:51 AM
Last edit: December 14, 2011, 10:50:35 PM by Akemashite Omedetou
 #27

I've given some thought to this and this whole thing starts to get complicated, but it seems to be possible.
(I've now added some clarifications)

Colluding
As for the problem of colluding, it is not inherently a problem of distributed poker, it is a generic problem of all forms of online poker. And Bitpoker could deal with it the same way the centralized websites do: keeping track of how often players play with each other on the same table. (More specifically, it should probably keep track of the number of hands each user has played with other users on the same table.)  This works fine if the number of players will be big enough.

There is one problem though: centralized poker platforms can enforce only one/few accounts per actual user, by requiring a real-world credit card, name, etc. This is obviously not the case with Bitpoker, if it will be anonymous in nature, there should be nothing stopping anyone from creating as many accounts as they want...
Right now I only see one way to do this and still keep everything anonymous: use the economy. It should be economically non-viable for players to create multiple accounts.

Maybe some will consider this "less" anonymous than having hundreds of accounts, or even having a new account for each table, but still, it seems anonymous enough. (A drawback of this is that unfortunately, this would make it easier to analyze each player, i.e., it would be difficult for good players for example to hide the fact that they are good, since all the history is stored in the network.)

A practical thought about how this could be done: to have a fee which will be high in the beginning of the career of each account, and will gradually get smaller and smaller, the more games the player participates in. This, together with some clever randomization of tables that someone else suggested here (for example the system could let each player choose a table only from a very small fraction of existing tables, and only change which tables are "allowed"  once a day or so. This way it would still be possible to have some choice, or get to another table if the existing one has a crazy player, or for some other reason...) should be enough to keep collusion to tolerable levels.

That said, there should probably be a mode of "private tables", so that users that know each other could join the same table, but that is a secondary problem. (Also in that case, there will be no collusion as players already trust each other.)


Now, about who is keeping the money.
When you first think of this, when several inherently hostile players play the same game, there will have to be a third party that will be handling the money, and it will also have to be trusted, because otherwise it could be suspected of colluding with some players, since they all are anonymous.

Except... this problem also comes to mind when you think of normal money, and until bitcoin came, it was the case, but not anymore...

Before in this topic, we were thinking about how to implement this *using* existing bitcoin network, how to have an account in bitcoins and manage funds on it.

But what if... we would implement another blockchain, a dedicated chain for the bitpoker chips?!
In this chain, let's say that along with "normal" addresses, there would be "hand" or "table" addresses, to which all the money is transferred as a hand progresses. And if we could incorporate secure shuffling of the cards into the chain, we could design the network in such way that funds on those "hand" accounts could only be claimed by the winning player, similar to a very complicated transaction script. (This is way too complicated to implement using the current script system of course, so my idea is not to simply start a new chain and use clever scripts, but instead to design a whole new client and protocol.)

(This needs more designing, because there basically must be 3 accounts per player and table, 1 main address, where the player has all his money away from any tables, 1 account of money on that table, and another 1 account of money currently in the pot, and all of those must be managed by the block chain in a verifiable manner.)

Now, as for how to actually deal with the shuffling of cards, this is where I haven't thought it out completely, I see two ways:
1) still use the commutative-encryption approach described in the wikipedia article. Before the hand is started, the shuffled and encrypted deck (or probably it's hash) is publicized in the block chain. Also, some kind of "proof-of-having-a-key" is publicized in the block chain, *for each player*. This can be for example arbitrary known value encrypted with the player's key, so that if you would have the key, you could do the same thing and state that yes, indeed, that is right key for that player. (this will make sense in a moment.)

As the hand progresses, cards are decrypted as required, by passing them around the players. The order of each player's actions is also recorded in the block chain as the hand progresses (let's just say for now there is a reliably way to do this, there is more about this at the end of the post). Finally, as the hand is completed and all cards must be shown to select a winner, the keys of all parties are made public in the block chain. Notice that now, using only information stored in the block chain (the initial deck, ordered decisions of each player, all the keys to decrypt the deck) it is possible to exactly determine the winner. This will be done in the same way transactions are claimed right now in the mainline bitcoin network: collaboratively. You cannot cheat, because it is the network that decides which player has won the money from the hand address. Like in bitcoin, there will be block confirmations, and to generate those, miners will check each win themselves. Think of it as a transaction with a very complicated script that needs a number of conditions to be met for someone to claim the money.

What if at the end of the hand a player has already received all the other keys, and can decrypt the cards, and sees that he has lost, but has not yet made his key available? He could in that case never make his key public, and there would not be any way to tell for sure who has won? This is where "proof-of-having-a-key" comes in. If the network sees that for a given hand, not all keys have been made public, using that proof, it can determine exactly, whose keys HAVE been made public, and thus prove which player did not provide his key. In that case, the money will go back to each individual player, except the one (or the several) that did not provide their keys. Their money is split evenly between the rest of the players, and, since we are making accounts persistent by having a fee anyway, we increase the fee of the player that did not make his key public. This should be enough to discourage anyone from doing this. (Loosing the money + getting higher fee and bad will + not really loosing anything more by just making the key public as the network wants.)

(Just a side note: since we are dealing with internet and disconnects here, there should be nothing in the design of the network to stop a player from making the key public in the last step of the hand even after a reconnect, as long as he did reconnect in the given time.)

2) instead of relying on commutative encryption, randomly choose another node from the network to act as a "hand seed" and "dealer" for each hand, and probably rewarding that player with a small percentage of the hand pot.

In the beginning of a hand, this dealer generates a random seed, a cryptographically long enough value that will be used as the seed for the random number generator for the shuffling, and makes a hash of that value publicly available in the network. As a hand progresses, player's decisions are broadcasted in the network, and when the time comes, the dealer broadcasts the cards only to those players that are supposed to see them. This is easily done by public key cryptography, i.e. the dealer encrypts the cards a player is supposed to see with that player's public key and broadcasts that into the network.

When the hand is done, the dealer broadcasts the initial seed value, which can be easily checked for validity, since it's hash was broadcasted already in the beginning of the hand.

The winner will only be able to claim the winning transaction if the hash corresponds to the seed, and if the order of players' actions given that seed (and the order of cards in the deck it implies) corresponds to the win of that player.

The dealer only gets his cut if the seed is actually made public in time, and if that seed actually corresponds to it's hash that was made public before.

The problem as I see it is this: is there a reliable enough way to make sure that none of the players can ever cooperate with or even "find" the dealer? Even if the dealer will be random each time, maybe evil-doers will create a botnet of theese dealers and get them together somehow and find a way of quickly finding and communicating with them as a player? (Thus always knowing other players' cards.) Don't know, this needs more thought.

Determining the order of the actions,
There must be a certain way to do this, something to prevent player sending two different actions (fold or call at the same time).
This is very similar to "double spending" problem the bitcoin manages to fix by waiting for confirmations. But block confirmations would be way too slow to do this. I think Geist Geld alternative cryptocurrency has used block speed of 15 seconds, and it has sort of worked, however it is still a little too fast I think, and even if we used 15 seconds, it would still be too slow for poker, because every *action* of every player during a game would have to wait for such confirmations (multiple perhaps).

But! After some thought I don't think we need to use confirmations for those small player actions after all.
There is no valid reason for any honest player to ever broadcast two conflicting actions. By conflicting i mean, say a fold and a bet *at the same stage of the hand*. Of course there will be different actions during the hand, but those can be distinguished by some system of counting.
So, if the network would ever see two conflicting actions targeted to the same stage of the hand from the same player (and since each action will be signed by the private key, that will be easy to determine), it is certain that the player has tried to cheat. In that case the network could simply rollback the hand and punish the player using the mechanism I described before using the fee, reposessing his funds in the pot to the rest of the players (or perhaps even all the funds he had on that table). This way noone could ever win anything by cheating in this way.

The confirmations will probably be used only for transferring coins between accounts, or to/from a table/pot. Most importantly, to withdraw funds that have been "won" from a pot must require confirmations. But that does not have to be superfast, if someone was to wait a couple of minutes before being able to enter a table, or before withdrawing his winnings, that is still not too bad.

Now, as for this whole "another block chain thing"
Given what I have described, this would require a lot of transactions, and thus bloating the block chain even more so than on the main bitcoin chain. Thus it seems to need a built-in clean-up mechanism. So each account in this chain would be much more short-lived. Each X number of blocks all blocks older than Y will be "truncated", forgotten. (Where Y>X.) Economically wise, a small gesell-like negative interest enforced each block seems viable (instead of randomly loosing the money that happened to be in truncated blocks).

This chain will have to be very fast, very liquid, and people will try to keep cashing out directly. It will not be used so much to store the money, but just for the games themselves. By using faster blocks, and not requiring block confirmations for every single thing that will happen in this network, we could very likely make this chain fast enough for real time poker, however that also could make it more susceptible to splitting and other forms of attacks. However I don't really consider real life splitting as an issue, because right now it would take not much less than a meteorite to reliably split a distributed network like this in two halves. It is much more difficult than to firewall some sites like China does, and i believe has not ever been done yet?
Anyway, it is also the fact that this chain will be that much faster and more liquid will also greately reduce the damage, if any kind of attack on it was successfully executed.

To actually transfer money to and from this new chain, some exchanges would have to be created. To use them, you could still remain anonymous, though.

Bitcoin Fog: Secure Bitcoin Anonymization

---
Creedy: Die! Die! Why won't you die?... Why won't you die?
V: Beneath this mask there is more than flesh. Beneath this mask there is an idea, Mr. Creedy, and ideas are bulletproof.
cunicula
Legendary
*
Offline Offline

Activity: 1050
Merit: 1003


View Profile
December 13, 2011, 01:27:23 AM
 #28

Yeah, that sounds brilliant. The software appears very complicated. There are possible exploits [nonrandom shuffling, friends at a table, chip stealing] and implementation difficulties [random p2p matching, information pruning]. A secure, usable system would be an awesome feat. Can't wait to see this.
Akemashite Omedetou
Member
**
Offline Offline

Activity: 84
Merit: 13



View Profile WWW
December 13, 2011, 01:40:01 AM
 #29

Quote
Insert Quote
Yeah, that sounds brilliant. This software appears to be very complicated. There are many possible exploits [nonrandom shuffling, friends at a table, chip stealing]. A secure, usable system would be an awesome feat.

Are you referring to the general idea or to my last post?
Because based on my design,
nonrandom shuffling is not a problem:
If we use approach 1 with commutative encryption, shuffling is always random, as each player shuffles cards themselves, and even if all but one players would shuffle in a strange way, the one shuffling truly would make their plans break. There could be a case where all the players shuffled cards in some strange way, but what do they win by that when they don't know how other players are shuffling?
If we use approach 2, that is indeed a problem. I suppose it could easily be fixed though by not using only the random value generated by the dealer as a seed, but instead a [random value from the seed + random value from each player], and a hash it, so that one would not be able to predict and thus manipulate the outcome of the shuffling.
One step further would be to first make the hash of the secret dealer value public first, THEN get the values from the users, THEN shuffle cards based on hash([those values + the secret value]). That way the seed will be made of both information from users and from the dealer, only dealer would have both pieces of information, and by the time it actually gets both pieces, it would be too late to change the first piece (hash has already been distributed). This is probably an overkill...

Friends at a table
is the same thing as colluding, I have explored this in quite a detail in the previous post, basically the idea is to fix this with a beginner-fee and keeping tack of people always playing at the same table with each other. (And also semi-random table assignment.)

Can you elaborate more on what you mean by chip stealing?

Bitcoin Fog: Secure Bitcoin Anonymization

---
Creedy: Die! Die! Why won't you die?... Why won't you die?
V: Beneath this mask there is more than flesh. Beneath this mask there is an idea, Mr. Creedy, and ideas are bulletproof.
cunicula
Legendary
*
Offline Offline

Activity: 1050
Merit: 1003


View Profile
December 13, 2011, 01:45:32 AM
 #30

Quote
Insert Quote
Yeah, that sounds brilliant. This software appears to be very complicated. There are many possible exploits [nonrandom shuffling, friends at a table, chip stealing]. A secure, usable system would be an awesome feat.

Are you referring to the general idea or to my last post?
Because based on my design,
nonrandom shuffling is not a problem:
If we use approach 1 with commutative encryption, shuffling is always random, as each player shuffles cards themselves, and even if all but one players would shuffle in a strange way, the one shuffling truly would make their plans break. There could be a case where all the players shuffled cards in some strange way, but what do they win by that when they don't know how other players are shuffling?
If we use approach 2, that is indeed a problem. I suppose it could easily be fixed though by not using a random value generated by the dealer as a seed, but instead a random value from the seed + random value from each player, and a hash of all that information, so that one would not be able to predict and thus manipulate the outcome of the shuffling.
One step further would be to first make the hash of the secret dealer value public first, THEN get the values from the users and shuffle cards based on those values + the secret value. That way the seed will be made of both information from users and from the dealer, only dealer would have both pieces of information, and by the time it actually gets both pieces, it would be too late to change the first piece (hash has already been distributed).

Friends at a table
is the same thing as colluding, I have explored this in quite a detail, basically the idea is to fix this with a beginner-fee and keeping tack of people always playing at the same table with each other. (And also semi-random table assignment.)

Can you elaborate more on what you mean by chip stealing?

Oh, by brilliant, I was referring to your post. By chip stealing, I just mean the standard issue of people needing to protect their private keys.
If you can manage this, I encourage you to actually do it. People will get excited about it.
Akemashite Omedetou
Member
**
Offline Offline

Activity: 84
Merit: 13



View Profile WWW
December 13, 2011, 02:02:41 AM
 #31

Well thanks, this is by no means a complete solution of course, I just wanted to present this idea of having own block chain exclusively for poker chips and poker hand data and examples of how that can be used to approach most of the big problems that arise in distributed poker. I hope that together with the real geniuses out there we will work out all the bugs and come up with a practically working design which will finally  get implemented!

Bitcoin Fog: Secure Bitcoin Anonymization

---
Creedy: Die! Die! Why won't you die?... Why won't you die?
V: Beneath this mask there is more than flesh. Beneath this mask there is an idea, Mr. Creedy, and ideas are bulletproof.
HostFat
Staff
Legendary
*
Offline Offline

Activity: 4214
Merit: 1203


I support freedom of choice


View Profile WWW
December 13, 2011, 02:30:34 AM
 #32

Do you think that this can become something bigger as a "totally decentralized betting framework" ?

NON DO ASSISTENZA PRIVATA - http://hostfatmind.com
ByteCoin
Sr. Member
****
expert
Offline Offline

Activity: 416
Merit: 277


View Profile
December 13, 2011, 03:10:38 AM
 #33

Do you think that this can become something bigger as a "totally decentralized betting framework" ?

It can't be done in the current Bitcoin system as the scripting language is insufficiently powerful and cannot introspect (i.e the script can't read the block chain). A Bitcoin-like system with these features could be used to faciliate secure poker games and other contracts.
As a "decentralized betting framework", it would be vulnerable to legal attempts to disable it. As a "more powerful Bitcoin" it would have "substantial non-infringing purposes".

ByteCoin
finway
Hero Member
*****
Offline Offline

Activity: 714
Merit: 500


View Profile
December 13, 2011, 09:15:51 AM
 #34

Blockchain everywhere!  Grin

markm
Legendary
*
Offline Offline

Activity: 2940
Merit: 1090



View Profile WWW
December 19, 2011, 06:58:17 PM
Last edit: September 23, 2013, 02:15:07 PM by markm
 #35

I sounds kind of strange to talk about friends playing poker together as a bad thing, whatever happened to weekly poker nights amongst friends?

Maybe one could start with two extremes: either you all agree together that you want a table, or each player plays as a lone human against a table of artificial intelligences that do not collude with each other. Basically either you want a particular group of players to play together because they all agreed exactly who they are and that they want to play together or you insulate everyone from each other with layers of artificial players.

Then you can get into securing the code of the AI players to be sure what code each is actually running.

Or you could digress into the fun game of each writing their own A.I. to do their playing for them, teaching it to recognise and collude with A.I.s written or deployed by friends or sockpuppets and so on.

You could do like blackjack, where there is a fixed set of rules the house has to play by, so examination of the hands afterward can check all the A.I. players strictly followed their rules.

Also, isn't anonymity in the sense of not having live video you can zoom in on each player's face in real time kind of against the spirit of poker? It is all very well not to know the player's real name and profession and place of birth and such, but surely a key element of poker is high resolution real time observation of body language and facial expression and so on?

Being able to cheat by keeping the other players from watching your face eyes body language mannerisms etc is surely so much of a cheat in itself that worrying about people colluding is kind of secondary, since if you cannot watch them in real time you cannot see whether they are chatting with colluders during the game?

If you eliminate the human element of actual observation of the skin tone, perspiration, respiration, eye movement, twitches and all that, then you might as well play A.I. opponents. Otherwise you are deliberately setting up almost ideal conditions for cheating then complaining that people might cheat! (You need good audio too of course, in case they try to mumble under their breath into a concealed mic or something...)

-MarkM-

Browser-launched Crossfire client now online (select CrossCiv server for Galactic  Milieu)
Free website hosting with PHP, MySQL etc: http://hosting.knotwork.com/
Sergio_Demian_Lerner
Hero Member
*****
expert
Offline Offline

Activity: 551
Merit: 621


View Profile WWW
April 09, 2012, 04:53:32 PM
 #36

Two years ago, back in 2010, I thought deeply about all this interesting things.

And I thought much needed to be done. At that time, I designed the first mental poker protocol that is both realtime and have drop out tolerance (that is required for p2p playing). By drop out tolerance I mean that if a player drops out (accidentally or intentionally) the remaining players are able to keep playing without problem. (the quitting player cards get automatically shuffled in the deck).
This is important because, if not present, a colluding player can drop out (and block the protocol) to "save" another player from loosing money.

At that time I did my thesis and wrote a patent, and both documents are online (check US patent 13086208). The main problem that I found was the requirement for a time server or better, some timestamped message exchange service to prove a message has been delivered. Since Bitcoin blockchain is not fast enough to serve as a distributed time server, I thought the the technology was not mature enough.

Recently I developed a new p2p signature protocol called MAVE (for MAssive VErifications) and a new P2P currency based on it (yes, yet another blockchain!) which can process thousands of transactions per second with an average personal computer, using 50% of the average PC resources (CPU and RAM) and almost no hard disk space.
But still is not suitable as a time server, because it still need "confirmations".

I'll be publishing the preliminary paper in my cryptocurrencies blog late this week (http://bitslog.wordpress.com) and I'll post an update here so everybody can see it and check it.

I'd like to implement the whole platform, but I have no time. Maybe crowd-funding it?  I really don't want to mess up with regulation and get notices from government agencies, so I won't host any of this work myself. But I'd love to see it working...

I'd be glad to license the patent if someone works out the rest!

BTW, I think we should standardize the block chain, so that single mined block works for different block chains of different p2p networks, something like a Meta-blockchain. Did anyone posted about it?

Sergio.




DeathAndTaxes
Donator
Legendary
*
Offline Offline

Activity: 1218
Merit: 1079


Gerald Davis


View Profile
April 09, 2012, 04:56:15 PM
 #37

The largest issue remains collusion between players a new blockchain doesn't solve that.

You sit down at a virtual table and 5 of the 9 oponents are all part of a team sharing cards, strategy, etc.  You have no hope of winning.
jtimon
Legendary
*
Offline Offline

Activity: 1372
Merit: 1002


View Profile WWW
April 09, 2012, 05:23:28 PM
 #38

Recently I developed a new p2p signature protocol called MAVE (for MAssive VErifications) and a new P2P currency based on it (yes, yet another blockchain!) which can process thousands of transactions per second with an average personal computer, using 50% of the average PC resources (CPU and RAM) and almost no hard disk space.
But still is not suitable as a time server, because it still need "confirmations".

Sounds great. Yes, please post here.
It will be free software, right?

BTW, I think we should standardize the block chain, so that single mined block works for different block chains of different p2p networks, something like a Meta-blockchain. Did anyone posted about it?

You mean something like standardizing merged mining so that there's no "father chain" ?
Maaku said that his company will launch a bunch of currencies that merge mine that way. The first, "freigeld" (very similar to my freicoin proposal) will be launched soon. You can find maaku in this forum or in freicoin's forum, in case you want to know more, but I don't think he will give you many details before the launch (which is supposedly imminent).

2 different forms of free-money: Freicoin (free of basic interest because it's perishable), Mutual credit (no interest because it's abundant)
DeathAndTaxes
Donator
Legendary
*
Offline Offline

Activity: 1218
Merit: 1079


Gerald Davis


View Profile
April 09, 2012, 05:48:49 PM
 #39

Sounds great. Yes, please post here.
It will be free software, right?

I'd be glad to license the patent if someone works out the rest!

Even if it is "free" as in free beer it won't be "free" as in free speech.
jtimon
Legendary
*
Offline Offline

Activity: 1372
Merit: 1002


View Profile WWW
April 09, 2012, 06:10:58 PM
 #40

Even if it is "free" as in free beer it won't be "free" as in free speech.

Too bad then. I don't see many people willing to accept an alternative currency that is produced through a secret process.
I thought first that the patents he was referring to were only for the poker (not that I approve them for any purpose, I'm plainly against so called "intellectual property"), but it seems that I misread him. The currency simply NEEDS to be open sourced.

Sergio, I invite you to read this:
http://www.gnu.org/philosophy/not-ipr.html
and this:
http://mises.org/journals/jls/15_2/15_2_1.pdf

Two different and strong perspectives on "intellectual property". I propose that we start calling them Intellectual Poverty laws.

Sorry for going off-topic.

2 different forms of free-money: Freicoin (free of basic interest because it's perishable), Mutual credit (no interest because it's abundant)
Sergio_Demian_Lerner
Hero Member
*****
expert
Offline Offline

Activity: 551
Merit: 621


View Profile WWW
April 09, 2012, 06:24:18 PM
 #41

The patent was applied to sell the technology to some online casinos.

I would issue a unlimited license for the open source network that solves the p2p poker problem right.
But it can't be GPL because GPL has some issues regarding patents..

The MAVE protocol is unpatented (and, anyway, it's no big deal)

Sorry for the out-of-topic response.

Sergio.



Sergio_Demian_Lerner
Hero Member
*****
expert
Offline Offline

Activity: 551
Merit: 621


View Profile WWW
April 09, 2012, 08:56:26 PM
 #42

A created a new thread for the MAVE paper just published. See https://bitcointalk.org/index.php?topic=76073.0
HostFat
Staff
Legendary
*
Offline Offline

Activity: 4214
Merit: 1203


I support freedom of choice


View Profile WWW
September 23, 2013, 08:47:00 AM
 #43

Do you think that with current knowledge this is now possible to develop it?

NON DO ASSISTENZA PRIVATA - http://hostfatmind.com
Mike Hearn
Legendary
*
expert
Offline Offline

Activity: 1526
Merit: 1129


View Profile
September 23, 2013, 09:13:02 AM
 #44

Lately I've been exploring how to use SCIP/TinyRAM with e-Passports. The idea here is that modern passports have a chip inside them that can be read using an Android smartphone. The data is signed by your government and is thus hard to forge. You could use a modified/improved version of SCIP to create a proof that you have a valid passport that hashes to X (including a public key), thus creating for yourself an anonymous identity that is nevertheless as "bannable" as a real life identity.

It could be applied to poker like so. Your software searches out other people who want to play. They are identified only by their hashes+SCIP proofs (i.e. large opaque numbers) and a nick they chose. If there was a suspicion of cheating, you could choose to add the player to your own personal blacklist. People could share or publish their blacklists of cheaters (assuming they get caught) to make it harder for them to re-offend. People are nevertheless still anonymous.

If you wanted to, you could run games alongside a group video chat to raise the bar for cheating a bit further (i.e. people are not actually sitting next to each other, you can see their hands+keyboard), and you could pay someone independent to randomly audit peoples computers using screen-sharing software to verify they weren't communicating.

All this is a lot of work though.
Dabs
Legendary
*
Offline Offline

Activity: 3416
Merit: 1912


The Concierge of Crypto


View Profile
September 23, 2013, 10:52:58 AM
 #45

I'm doing a related experiment. I have a thread in the games and rounds section for a correspondence style forum based poker with 72 hour time outs.

However, it is not strictly Mental Poker, but an implementation of what I consider as Provably Fair shuffling, with me as a non-playing dealer. Someone mentioned escrow. That's also my function.

I'll try to get the link, but I'm on an iPad now. I didn't want to necro this thread but, someone did it already.

Sergio_Demian_Lerner
Hero Member
*****
expert
Offline Offline

Activity: 551
Merit: 621


View Profile WWW
September 23, 2013, 03:40:45 PM
 #46

For an update on the feasibility of online p2p poker, I'm  working on QixCoin.com since half a year ago.
It solves all poker-related problems: collusion, pot, etc.
It does not require a TTP nor an escrow: it's pure P2P.
It's based on my patented (pending) mental poker protocol.

The problem with using an escrow is that, under many regulations, the escrow service is facilitation online gambling so it must have a license to do it.
So nobody would be able to (legally) provide such escrow service.

Since the protocol itself handles all money-related actions, legal responsibility relies solely on players.
And that it the reason why I had to create still another alt-coin, since Bitcoin scripting language could not support game specific verifications.

QixCoin is salable and performant (the block-chain is NOT cluttered with ZNPs). Bet payments are done off-chain instantaneously. Pots (new games) can be created in less than a minute (the block interval is as low as 30 seconds). QixCoin code is not based on Satoshi Bitcoin code (I think it's the first alt-coin built fully from another source tree).
 
If you have a specific question regarding how I solved some of these hard problems, please ask me here on in another forum, since it belongs to an alt-coin.

Best regards,
 Sergio.





Mike Hearn
Legendary
*
expert
Offline Offline

Activity: 1526
Merit: 1129


View Profile
September 23, 2013, 04:02:12 PM
 #47

Well, that's interesting! Looking forward to seeing what you come up with Sergio. You might get the honour of making the first alt coin that's actually technically interesting (well, NameCoin was also quite interesting I guess).

That said - a patent? Why? Do you think that's for the best?

Are you planning to implement atomic chain-trades with bitcoins to obtain your new coin?
Sergio_Demian_Lerner
Hero Member
*****
expert
Offline Offline

Activity: 551
Merit: 621


View Profile WWW
September 23, 2013, 04:18:54 PM
Last edit: September 23, 2013, 04:35:02 PM by Sergio_Demian_Lerner
 #48

Well, that's interesting! Looking forward to seeing what you come up with Sergio. You might get the honour of making the first alt coin that's actually technically interesting (well, NameCoin was also quite interesting I guess).

That said - a patent? Why? Do you think that's for the best?
I patented the protocol before I didn't know Bitcoin existed. I did it back in 2009, because I had to show my thesis to my director and I was developing the first commercial p2p poker security solution for online casinos (Certifiedplay), which was not ready,  but I wanted to publish my thesis anyway...

It's a pity that sooner or later patents will start bitting Bitcoin related companies, like it occurs for any other tech companies in Sillicon Valley. But that's how the business are done in the US, so you must protect your investment.. at least that's was what I was told at that time...

Are you planning to implement atomic chain-trades with bitcoins to obtain your new coin?
Yes, I'm using P2PTradeX, so I'm leveraging on the whole Bitcoin trading infrastructure for Qixcoin trading.

Best regards, Sergio.

PS: Mike: do you happen to have a block-chain blk0000.dat file from the 2009-2010 period? I want to analyze the evolution of orphan rates.


jl2012
Legendary
*
Offline Offline

Activity: 1792
Merit: 1093


View Profile
September 24, 2013, 03:12:47 AM
 #49

If you wanted to, you could run games alongside a group video chat to raise the bar for cheating a bit further (i.e. people are not actually sitting next to each other, you can see their hands+keyboard), and you could pay someone independent to randomly audit peoples computers using screen-sharing software to verify they weren't communicating.


In this case, cheaters will tap Morse code with toes.

Donation address: 374iXxS4BuqFHsEwwxUuH3nvJ69Y7Hqur3 (Bitcoin ONLY)
LRDGENPLYrcTRssGoZrsCT1hngaH3BVkM4 (LTC)
PGP: D3CC 1772 8600 5BB8 FF67 3294 C524 2A1A B393 6517
Mike Hearn
Legendary
*
expert
Offline Offline

Activity: 1526
Merit: 1129


View Profile
September 24, 2013, 01:11:22 PM
 #50

I lost my old Bitcoin 0.1 installation+wallet a long time ago, sorry. Otherwise I'd have had some nice 2009-era Bitcoins in my wallet. Oh well.
Peter Todd
Legendary
*
expert
Offline Offline

Activity: 1120
Merit: 1150


View Profile
September 24, 2013, 05:19:54 PM
 #51

QixCoin is salable and performant (the block-chain is NOT cluttered with ZNPs). Bet payments are done off-chain instantaneously. Pots (new games) can be created in less than a minute (the block interval is as low as 30 seconds). QixCoin code is not based on Satoshi Bitcoin code (I think it's the first alt-coin built fully from another source tree).

How will chain consensus be determined? (what proof-of-foo algorithm will be used and what are the incentives involved?)

Sergio_Demian_Lerner
Hero Member
*****
expert
Offline Offline

Activity: 551
Merit: 621


View Profile WWW
September 25, 2013, 02:06:26 PM
 #52

QixCoin is salable and performant (the block-chain is NOT cluttered with ZNPs). Bet payments are done off-chain instantaneously. Pots (new games) can be created in less than a minute (the block interval is as low as 30 seconds). QixCoin code is not based on Satoshi Bitcoin code (I think it's the first alt-coin built fully from another source tree).

How will chain consensus be determined? (what proof-of-foo algorithm will be used and what are the incentives involved?)

Currently Proof-of-work, plus merged Bitcoin-mining. Possibly allowing both scrypt and SHA-2 mining, with two different dynamically adjusted difficulties. I think scrypt will dominate most 30-secs blocks, while SHA-2 merged mining will ocurr once every 10 minutes. I have many ideas regarding innovations for the block-chain, but I cannot put all the new stuff into the QixCoin since I have to step on some firm grounds! If not, I won't be able to predict how it will work... I will post about how QixCoin works shortly. Now I'm preparing my Ekoparty 2013 talk on Bitcoin.





agent13
Newbie
*
Offline Offline

Activity: 26
Merit: 0


View Profile
September 28, 2013, 12:32:25 AM
 #53

Under a decentralized poker heads-up scenario, I would imagine that hands could be bound to some sort of contract or lock time. If one player leaves the hand for an extended period of time, the funds would be released to the opponent. However, peers would need to operate via Tor or I2P. Without this additional secure layer, one player could simply DDOS the other if they are heavily invested in a hand they can't win. They could then simply claim the other player left the table.

I would also be interested to know how collusion could be solved in a decentralized setup. Even the large poker sites have not completely solved the issue, and give a false sense of security to some degree.

I could live with pure P2P heads-up NL. However, latency may be an issue with the additional security layer. I love fast HU.
cunicula
Legendary
*
Offline Offline

Activity: 1050
Merit: 1003


View Profile
September 28, 2013, 04:25:22 AM
 #54

Under a decentralized poker heads-up scenario, I would imagine that hands could be bound to some sort of contract or lock time. If one player leaves the hand for an extended period of time, the funds would be released to the opponent. However, peers would need to operate via Tor or I2P. Without this additional secure layer, one player could simply DDOS the other if they are heavily invested in a hand they can't win. They could then simply claim the other player left the table.

I would also be interested to know how collusion could be solved in a decentralized setup. Even the large poker sites have not completely solved the issue, and give a false sense of security to some degree.

I could live with pure P2P heads-up NL. However, latency may be an issue with the additional security layer. I love fast HU.


I'd guess that you solve collusion by

a) matching people to tables randomly
b) requiring people to pay an upfront, nonrefundable fee to enter a table

Then you hope that the cost of searching for your buddy's table is higher than the profits from collusion.
Hmm... I suppose you set the fee by targeting some mean number of hands before players switch tables.
If you fall short of the target, bump up the fee.

Of course, if you only have enough players for one table you are shit out of luck. Maybe you bootstrap the system with 1v1 games?

BTW Sergio, great project. Very interested to learn about the details. Is there a white paper?
Dabs
Legendary
*
Offline Offline

Activity: 3416
Merit: 1912


The Concierge of Crypto


View Profile
September 30, 2013, 04:48:19 AM
 #55

In my version (which is semi-centralized) I plan to offer anonymous tables. This means that you don't know who you are playing against in a table of 9 other players. You can't track them, your HUDs won't work, and you can't collude (since your buddy might be on a completely different table and he can't tell you to go there.)

But, dunno if that will work, since some people like to know who they are playing against, or they want a particular set of people they have been playing with for awhile.

And ... my thread is here: https://bitcointalk.org/index.php?topic=274068.0;all

It's been a really slow game so far. I think people are just lazy to play or something. (It hasn't even started, but the deck is shuffled already and waiting for players.)

maaku
Legendary
*
expert
Offline Offline

Activity: 905
Merit: 1011


View Profile
September 30, 2013, 05:14:20 AM
 #56

Sergio, I'd be interested to hear what changes to the Bitcoin scripting system were required to make it work. I'd be interested in implementing such changes in the p2p Freimarkets, assuming the patent issue could be resolved.

I'm an independent developer working on bitcoin-core, making my living off community donations.
If you like my work, please consider donating yourself: 13snZ4ZyCzaL7358SmgvHGC9AxskqumNxP
sacarlson
Newbie
*
Offline Offline

Activity: 38
Merit: 0



View Profile
August 10, 2015, 08:32:37 AM
 #57

We already have a released open sourced P2P poker system that's fully operational and ready to play called pokerth_accounting as seen here https://github.com/sacarlson/pokerth_accounting/wiki. It's based on the fast Stellar.org system for uncentralized real asset transactions that enable real time play, and all for free.  You can also check out the demo video's https://github.com/sacarlson/pokerth_accounting/wiki/Demonstration-Videos-of-Pokerth_Accounting
HostFat
Staff
Legendary
*
Offline Offline

Activity: 4214
Merit: 1203


I support freedom of choice


View Profile WWW
September 27, 2015, 04:42:38 AM
 #58

Another project related to this topic:

Cypherpoker
Code: https://github.com/monicanagent/cypherpoker
Blog: http://patrickbay.ca/blog/?p=650
Blog2: http://www.torontocitylife.com/2015/09/19/totally-mental-poker/
Reddit: https://www.reddit.com/r/cypherpoker/

NON DO ASSISTENZA PRIVATA - http://hostfatmind.com
jordanovmkd
Newbie
*
Offline Offline

Activity: 13
Merit: 0


View Profile
October 04, 2015, 08:16:50 PM
 #59

I play poker online sometimes and most of it on Poker Stars and i notice that there are so much unlogical set up games that are not fair and confused me about how that can happend and makes me thing again about wasting my money although its fucking addictible. Your idea about decentralised network is interesting and i am with you about changing something in controling this games because it would be great step for better games and chances about the players. The truth is that we can only elaborating that here and no one will make a move about that because it is with plan and strategy predicted bussines for stealing money from fools. No one will agree with changing somenthing that can make them disfigured and unsecure, belive me. Smiley
HostFat
Staff
Legendary
*
Offline Offline

Activity: 4214
Merit: 1203


I support freedom of choice


View Profile WWW
October 11, 2015, 08:42:57 PM
 #60

Quote
It took me a little longer than I'd expected but here is the video describing how the early CypherPoker beta can be compiled to support "private" games over the internet:
https://youtu.be/KfeI7f2PD5w
This is not an ideal approach and isn't suitable for any sort of generic "public" gaming, but it will allow you to give the software a whirl using the internet to communicate rather than LAN/WLAN (the current default).

https://www.reddit.com/r/cypherpoker/comments/3o8swq/cypherpoker_building_a_custom_version_for_private/

NON DO ASSISTENZA PRIVATA - http://hostfatmind.com
kopes18
Member
**
Offline Offline

Activity: 80
Merit: 10


View Profile
November 05, 2015, 05:21:07 AM
 #61

What do you think about the website like just-dice? Is that 'fair' enough?
HostFat
Staff
Legendary
*
Offline Offline

Activity: 4214
Merit: 1203


I support freedom of choice


View Profile WWW
December 01, 2015, 02:14:40 PM
 #62

I'm adding updates about the Cypherpoker project here in this discussion:
https://bitcointalk.org/index.php?topic=1206150.0

I'm not the dev.

NON DO ASSISTENZA PRIVATA - http://hostfatmind.com
DuddlyDoRight
Sr. Member
****
Offline Offline

Activity: 318
Merit: 258



View Profile WWW
December 02, 2015, 02:36:13 AM
 #63

I have a network of UDP push servers that synchronize with PKI encrypted data on separate threads and sockets. That's for my poker app.

I actually have accounts on HTTP initially and a daemon transmits to a low-ping peer that sends it on. I use a time-stamp for the sync-check on each peer.

I have faith that one day this forum will get threads where people won't just repeat their previous posts or what others have already stated in the same thread. Also that people will stop acting like BTC is toy-money and start holding vendors accountable. Naive? Maybe.
watashi-kokoto
Sr. Member
****
Offline Offline

Activity: 682
Merit: 268



View Profile
December 02, 2015, 01:09:08 PM
 #64

your biggest problem with p2p poker is not the shared pot but to deal unique cards without central authority.

this can be solved by dealing not unique cards and cancelling the game if the same card appears twice e.g. on showdown.

but it is not texas holdem any more.
DuddlyDoRight
Sr. Member
****
Offline Offline

Activity: 318
Merit: 258



View Profile WWW
December 02, 2015, 11:02:12 PM
 #65

your biggest problem with p2p poker is not the shared pot but to deal unique cards without central authority.

this can be solved by dealing not unique cards and cancelling the game if the same card appears twice e.g. on showdown.

but it is not texas holdem any more.

I just don't allow clients to switch servers at live tables and have a delay for users at the same table on a peer with a later sync in seconds.

I have faith that one day this forum will get threads where people won't just repeat their previous posts or what others have already stated in the same thread. Also that people will stop acting like BTC is toy-money and start holding vendors accountable. Naive? Maybe.
dragansk1
Full Member
***
Offline Offline

Activity: 126
Merit: 100



View Profile
December 18, 2015, 06:43:16 PM
 #66

I play poker online sometimes and most of it on Poker Stars and i notice that there are so much unlogical set up games that are not fair and confused me about how that can happened and makes me thing again about wasting my money although its fucking addictible. Your idea about decentralized network is interesting and i am with you about changing something in controlling this games because it would be great step for better games and chances about the players. The truth is that we can only elaborating that here and no one will make a move about that because it is with plan and strategy predicted business for stealing money from fools. No one will agree with changing something that can make them disfigured and unsecure, belive me.
DuddlyDoRight
Sr. Member
****
Offline Offline

Activity: 318
Merit: 258



View Profile WWW
December 20, 2015, 12:03:20 AM
 #67

I play poker online sometimes and most of it on Poker Stars and i notice that there are so much unlogical set up games that are not fair and confused me about how that can happened and makes me thing again about wasting my money although its fucking addictible. Your idea about decentralized network is interesting and i am with you about changing something in controlling this games because it would be great step for better games and chances about the players. The truth is that we can only elaborating that here and no one will make a move about that because it is with plan and strategy predicted business for stealing money from fools. No one will agree with changing something that can make them disfigured and unsecure, belive me.

It's not really that big of a problem. It's a high risk now because certain bitcoin card game app owners have bad developers or no developers at all and are contracting with lowest-bid.. It's a stretch to expect them to put time in to network engineering.

My app and server have none of the issues mentioned here and I know cause I designed, coded, and tested all of it using cases just like these.. I've had plenty who looked like they knew what they were doing try to find a glitch too..

I have faith that one day this forum will get threads where people won't just repeat their previous posts or what others have already stated in the same thread. Also that people will stop acting like BTC is toy-money and start holding vendors accountable. Naive? Maybe.
Pages: 1 2 3 4 [All]
  Print  
 
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!