Tuesday, April 21, 2015

P2P open source poker program proposal

Note: This is no longer a proposal, This project has already been released  as a fully functional system, details can be seen here: 
https://github.com/sacarlson/pokerth_accounting/wiki

This article now only remains as a historic document of when it was just an idea.

I was thinking about setting up a P2P open source poker game for some time and had already done much research on it's possibilities.  My original plan was to use the already running open source pokerth game with some modifications that would allow a payment module to be plugged into it.  The original plan of the payment system was to use bitcoins built in multisign scripting to allow for a completely uncentralized escrow method of payment.  I had already done some programing in bitcoin and created a branch called multicoin that would enable testing using worthless crypto currency to start to just keep score and to test out if the idea would really work for real bitcoins first?   I later had other interests and dropped out of my software development of Multicoin.  I just recently went back to look again at what we now have in open source crypto finance and found something even better than bitcoin for poker p2p finance called Ripple.  Ripple doesn't fully replace Bitcoin but it actually can be used to transact and auto convert bitcoin if desired to any desired currency at even faster speeds of 5 seconds per transaction compared to bitcoin that would take up to 1 hour at times to do a transaction.  Ripple has everything we need to both play with real money in virtually any currency at the same time.  Ripple not only provides a way to transact  funds over a no name no address accounts much like bitcion with just a big number and secrete number, but also has the built in tools of multisign to allow again for the escrow to hold the pot of a game until the winners of the game are determined and can be paid out.  Ripple being uncentralized much like Bitcoin can't be taken down or controlled by governments to sease assets and there is no central point of all assets that can just run off with all the money.    It can also be setup to play in a virtual fake money to start that can be used just to keep score in the beginning and to test for problems so we can debug and fix them.  And to also allow those to continue to play and just keep track of there score by looking at there virtual Ripple coin accounts to see there status.   If that ends up working it would only require switching to the standard Ripple network to allow for real money games at cost per game money transactions of as little as 0.0001usd per game so we are taking about playing poker for 100 years for like $6 for a lifetime.  Ripple also allows for controlled credit limit loans so you could even have poker bankers involved in the games if desired in real or fake money.   Also since the cost of the transactions are so low you can also play in micro pots of like 1 cent or less even in real money.  So at these numbers people wouldn't need to have so much trust to get started in it.  Also inside of Ripple transactions there is memo data that can be added and used to add notes of what games the transaction was used for and who the players were that you won it from and what software was used in the game.   One other thing I think that will be needed is a method of tracking trust of players.   I'm sure there will be some cheaters or attempted cheaters, but at some point there will also be reputable people that many people will get to trust.  With the cryptographic signatures you will be sure you are playing with the same people you know each time.

There are still many unanswered questions as to how all this would have to be setup to make it almost impossible to cheat or at least just work.  

One feature I would like is that it would be cool if you could exit a game at any time and take what you already won or leave with what you have left.  At this point this would be hard for me to do but not impossible.

 At the beginning to make it simple all that join a poker game would be part of the multisign escrow.   Each player would put in some random decided pot amount that would buy you some random number of chips to start the game.  Each player would play until they have no chips left or have won the entire pot.  Any number of players could play from 2 – 10 people.   When the final two players finish the game the destination address for payment is set in the escrow by the winner and each of the players signs off that he was the winner so he gets the total funds transfered into his Ripple account.  In the event that something goes wrong in the game for any reason.  There can be a dispute of the group of players that would have to conclude with more than 50% that there was a problem with software or other.  In this case all the money goes back to each of the players less a small transaction fee if needed in the Ripple transaction.  Ripple also has time values that can be added into the escrow contract, so if no one signs the transaction over some period of time that would also be concluded as something went wrong and the money again returned to the original players.  The escrow time can also be set to allow some time for the players to ether agree or setup a dispute.  In most cases this would not be seen by the players.  It would all be handled invisibly and automatically in most cases by the pokerth payment system.  At some point we could also add a third party trusted entity to some games if desired that can mediate if needed in bigger money games.  In this case the third party would most likely want some money to act in such a capacity.

On the side of cheating. How can we be sure that some players don't use a modified version of the open source game to allow them to cheat by looking at cards or changing card values in play?  I'm hoping others can figure that one out as I'm not really sure.  I haven't looked at the pokerth code that closely yet.  I don't know anyone that presently cheats in pokerth but that maybe due to the fact that it's used to play with fake money not real.   So until we get the fake money in Ripple working with pokerth, we can figure this part of the security out later if we find we need it.   The cryptographic playing card section of p2p poker might be another project in itself for all I know.   I can only say that I've played Pokerth for many hours  with very few problems to date.  It seems very stable as is.

See the references below for more details on the proposed multisign features of Ripple:
https://ripple.com/
https://www.stellar.org    we switched to stellar.org

https://wiki.ripple.com/Multisign
https://wiki.ripple.com/Contracts
https://wiki.ripple.com/Main_Page
and the pokerth site:
http://pokerth.net/


Present links to the now completed pokerth_accounting project:
https://github.com/sacarlson/pokerth_accounting/wiki

Method to contact us to feedback your thoughts in real time chat:
https://kiwiirc.com/client/irc.freenode.net/#pokerth

Also note that some of these multisign and contract features of Ripple are said to be future features.  I'm looking to see if the code in any of the Github branches  already has some at least partly working version of  these features that we can start to test with.  I see them speaking about it months ago that sounds like they almost had something.  So we might just have to wait and see.
by Scott Carlson (c) Apr 21 2015

Update Jul 10, 2015
We now have a working prototype of our dream software that is now published on github: https://github.com/sacarlson/pokerth_accounting  also see the more up to date wiki for more details https://github.com/sacarlson/pokerth_accounting/wiki that also contain links to screen shots .  We have now tested the software with over 2300 transactions without any noticable problems.  Added voice status so you can play poker and know what the accounting is doing and what your recieveing.  We still need to integrate Stellars built in escrow system and the mental poker shuffle algorithum and then it will be complete.

6 comments:

  1. pokerth_accounting is ready for testing today not tomaro!! The Mental poker upgrade is mentioned in my wiki as in a future addition that would not be hard to add. The Mental poker c++ libs are already published and tested as seen on another github project that shows times to shuffle well within reason on todays computers. At this point my project is ready for testing. In it's present state we use Stellar.org testnet STR and a trust line generated coins we call CHP (for chips). CHP are a worthless crypto currency that we will us just to keep score at this point and for testing the concept that are distributed to member players of pokerth from poker.surething.biz site in a one time 100,000 to start money. As far as other matters that can be a concern like collusion, With the Stellar uncentralized money system were all transaction can be seen by the public. We can track who was playing with who and when on every game ever played to research the possibility of collusion. From this information you can decide weather you want to play on a table with possible colluders or not. I've also added a primitive website that displays all the active members account ballances so you can compare you skills with others at http://poker.surething.biz . This site also contains the database to share your Stellar.org account numbers with other pokerth players. The pokerth_accounting program that runs in the background on your local system does everything invisibly without any added effort from the player of pokerth. After or durring the game you can analize your accounting with an sqlitebrowser to view what you paid who and when. Sqlitebrowser is also used to make changes in the configuration of the system allowing you to change currency or network to real money on a different network like Ripple or other. The software for the most part is completed ready to run but I'm sure we will be finding bugs to fix soon. That's why I need testers. There is no way I can test every function without realtime play involved. So if your willing to help us move this along take a look at our present evolving code at https://github.com/sacarlson/pokerth_accounting/wiki and https://github.com/sacarlson/pokerth_accounting. If you have any question you can find me at #pokerth IRC or even on pokerth game chat as sacarlson or leave me a note on github. Oh and again on the mater of Mental poker algorithm, the present game uses servers that no one ( should say not many) people have access to. So until we start playing with big money I'm not going to wory about it. Remember with Stellar.org that even in real money we can play with very small pots of even less than 1 cent worth of crypto currency of say STR. Transaction costs are so small even in real money (non testnet) the costs would be less than $3 for about 100 years (more than a life time) of play. On testnet in it's present default settings is completely free. I should note that the next upgrade we are pushing is implementing the built in escrow system on Stellar.org. With that and Mental poker added it should be about done. So give it a try and find out for yourself just how close we really are.

    ReplyDelete
  2. some of my older post just to keep them all in one place posted Apr 21 2015:
    P2P poker using Ripple uncentralized funding transfers
    I was thinking about setting up a P2P open source poker game for some time and had already done much research on it's possibilities. My original plan was to use the already running open source pokerth game with some modifications that would allow a payment module to be plugged into it. The original plan of the payment system was to use bitcoins built in multisign scripting to allow for a completely uncentralized escrow method of payment. I had already done some programing in bitcoin and created a branch called multicoin that would enable testing using worthless crypto currency to start to just keep score and to test out if the idea would really work for real bitcoins first? I later had other interests and dropped out of my software development of Multicoin. I just recently went back to look again at what we now have in open source crypto finance and found something even better than bitcoin for poker p2p finance called Ripple. Ripple doesn't fully replace Bitcoin but it actually can be used to transact and auto convert bitcoin if desired to any desired currency at even faster speeds of 5 seconds per transaction compared to bitcoin that would take up to 1 hour at times to do a transaction. Ripple has everything we need to both play with real money in virtually any currency at the same time. Ripple not only provides a way to transact funds over a no name no address accounts much like bitcion with just a big number and secrete number, but also has the built in tools of multisign to allow again for the escrow to hold the pot of a game until the winners of the game are determined and can be paid out. Ripple being uncentralized much like Bitcoin can't be taken down or controlled by governments to sease assets and there is no central point of all assets that can just run off with all the money. It can also be setup to play in a virtual fake money to start that can be used just to keep score in the beginning and to test for problems so we can debug and fix them. And to also allow those to continue to play and just keep track of there score by looking at there virtual Ripple coin accounts to see there status. If that ends up working it would only require switching to the standard Ripple network to allow for real money games at cost per game money transactions of as little as 0.0001usd per game so we are taking about playing poker for 100 years for like $6 for a lifetime. Ripple also allows for controlled credit limit loans so you could even have poker bankers involved in the games if desired in real or fake money. Also since the cost of the transactions are so low you can also play in micro pots of like 1 cent or less even in real money. So at these numbers people wouldn't need to have so much trust to get started in it. Also inside of Ripple transactions there is memo data that can be added and used to add notes of what games the transaction was used for and who the players were that you won it from and what software was used in the game. One other thing I think that will be needed is a method of tracking trust of players. I'm sure there will be some cheaters or attempted cheaters, but at some point there will also be reputable people that many people will get to trust. With the cryptographic signatures you will be sure you are playing with the same people you know each time. (unable to publish the full article with only 4000 chr sorry)

    ReplyDelete
  3. I continue to make more progress on pokerth_accounting now got most the bugs out with about 3000 transactions flawless over Stellar network testnet
    also added text to voice to help me test to hear what is happening in the status and transactions as I play poker
    I've also tested my ruby payment class lib on the real live Stellar network to verify it will work with real money also
    it still needs more testing with more people. I will also start work on the uncentralized built in escrow feature that will take some time to integrate into the system
    after that we will integrate mental poker algorithum into the card dec shuffle. I would also advise you all to buy some Stellar STR as it will be going viral in just a few years or less. See my last software release at: https://github.com/sacarlson/pokerth_accounting https://github.com/sacarlson/pokerth_accounting/wiki

    ReplyDelete
  4. Seems I was banned from the forum at http://forums.anandtech.com. One guy thought that my software was a SCAM due to the warnings one of my website exibits from some virus protection software on windows. This is due to some other website that uses the sub address of poker.surething.biz or something that I gave away to a dns sever. any way this is my responce to that ban:

    Pokerth_accounting is not a SCAM!! It is fully transparant open source with NO binary releases as you and the rest of the world can see the released source on github.com/sacarlson/pokerth_accounting. Your statement “it seems connected to a currency thing” . What did you think is required in P2P poker? Yes money!! although if you read the features of the program that are explained in detail at https://github.com/sacarlson/pokerth_accounting/wiki. you will find by default it does not use any real money at all. It uses a created worthless crypto currency as a score keeping method as a proof of concept. Another thing you must have failed to notice is that it doesn't run on windows at this time, it only runs on Linux systems. As you should know linux is a much more secure system that can't be hacked like you windows system can. It also explains in the instruction how to install it in a virtualbox on a windows system that would prevent it from having any contact with your windows operation. Also note that the files on the website in question poker.surething.biz are also published in the package on github. You can put the files on any other website or 1000 websites if you want. So please before you take the word of a machine saying that a website has a problem. Let people take a look at the reality of things first.

    ReplyDelete
  5. New added working features added to pokerth_accounting

    Features:

    · Local accounting of each player you play with to see how much money or chips over time you have lost to each game player on pokerth.

    · Real time Stellar.org network currency transactions done at the end of each hand (can be disabled to only do local accounting above)

    · Changeable currency to any Stellar.org supported or created currency, default is worthless CHP chips but also Bitcoin BTC or USD, EUR, YEN, GLD.... any crypto currency also can be transacted

    · Settable issurer of currency gateway on Stellar or Ripple networks

    · Auto creation of Stellar.org testnet account number and secrete number at first run that is auto credited with crypto starting cash chips of 100,000 CHP to start for FREE from http://poker.surething.biz.

    · Global score keeping of of how many CHP you made or lost and to whom that the whole world can see, for all registered poker.surething.biz players. At present it's just a simple table with the Stellar CHP and STR balances of every registered player. We will make it pretty with searches for players and stuff later.

    · Settable Stellar or Ripple or other currency networks you create can be selected

    · Chip multiple selectable (Chip_Mult) to allow 10,000 chips to be just 1 cent or .0001 BTC or any multiple.

    · Audio voice status can be enabled to hear status of Stellar transactions going in and out in real time.

    · Audits transactions received on Stellar with what was seen locally in game play

    · by default we use the completely free Stellar.org testnet with worthless but trackable CHP

    · All transactions on Stellar.org are public and trackable so you can research who won how many chips from who at what time. This is also good to research possible players that you think might be colluding

    · In Real money mode you can play for real money in any country in the world in any currency without having your assess taken away.


    · Disable Future Stellar payments to selected players in present and future games.

    · Basic tools are also included in package to allow for sending currency or chips you already have to other players or trading chips or currency for other chips or currencies on the Stellar network. These tools are not fully covered in this manul. At this time you will have to look inside each of the ruby *.rb files to get a better idea what is contained in each and how they work. If you have any questions feel free to ask me sacarlson at IRC #pokerth and I'll add your questions and my answers to this document for others to read.

    · This package also contains files and setup to create a simple AccountServerURL including php programs and mysql database setup file and instructions. This is optional not needed by most people but here as a reference for people that want to add to it and make improvements.

    ReplyDelete
  6. I found a very nice article on pokerth_accounting today that was in french. here https://translate.google.co.th/translate?hl=en&sl=fr&u=http://www.rigged-poker.info/content/2015-ann%25C3%25A9e-du-changement&prev=search

    Pokerth_accounting
    By anonymous mouse (not verified) on Tue, 08/25/2015 - 2:26 p.m..

    Pangea Poker

    If you follow the Pangea project, which seemed to me at first as a small standalone app to play poker decentralized, now looks like a huge mess, the final product to derive other very general stuff that you do not understand much, SuperNet, instantDex, crypto777. Not to mention, cash shares, the assets, which should fund the trick.
    In short, it is the gas plant and it produces so much smoke, I can not tell you more because I do not understand anyway almost nothing. My feeling is that it is unnecessarily complicated, and oddly opaque. More estimated release date, even playmoney.
    As for Bitshares Play it became apparent DAC, a complicated and general stuff, still short of poker to my knowledge.

    nxtforum.org nxtventures * * * 300 pangea-poker

    Pokerth_accounting

    For cons, I have just discovered a brand new project. It looks much simpler, but hey it's only the beginning.
    It is the addition of a small prog PokerTH, software for playing play money. Boasted on a forum of players to meet the probabilities, I had tried, I played a few games, although only tiresome NSE, but it actually had me look pretty realistic level probabilities, bad beats, etc .. . Besides, there I really found no interest to officials of rigging the program, they seem to have nothing to sell.
    Stellar Sacarlson would use real money to spend, a decentralized multi-currency platform which should actually be great if operational. Basically, you enter what you want, if necessary by a gateway, dollars, euros, bitcoins, any other crypto, and the system will take care of you out of money you want, in one or more equivalencies with no fees exchange or almost as offers from other users. Plus other features, including an escrow system used by Pokerth_accounting. Who apparently works already in play money with Stellar.
    There would also be a change of card management, not the types of original PokerTH come to rig in their interest or are hacked.

    The big problem here is that the developer appears alone, and not necessarily motivated to go after more than a passionate businessman what. So functional software and not safe for the moment, but the initiative seems much simpler and realistic as Pangea.

    Meanwhile on Thursday 32 February 3141.59 where we can play for real not fake from home in his chair, you can discover PokerTH and see if it looks or not certified ARJEL (lol). And even if you are already a good geek, Sacarlson test the system.

    github.com sacarlson * * * pokerth_accounting wiki

    stellar.org

    Note: I can not put links to spam con. Replace * with /

    ReplyDelete