Author

Topic: Decentralizing prediction markets (Read 1735 times)

hero member
Activity: 950
Merit: 1001
January 11, 2012, 04:24:21 PM
#8
I've been thinking about how to structure a multisignature transaction for bets. This is what I've got so far, please let me know if it's feasible.

I'm a public, non-anonymous person. As an American citizen, I have the first amendment right (IANAL) to publish private keys C or D based on the outcome of an event. What people do with this information is out of my control. Meanwhile in cypherspace, Alice and Bob want to bet on this event, but they don't trust each other. For liability reasons I can never contact either of them directly, sign their transactions myself, etc. So Alice and Bob create their own set of two multisignature transactions:
  • First, they both enter their funds into (A AND B) so they both have money on the line. If Alice is worried that Bob won't deposit his share they can use an escrow, or pay in many small increments tit-for-tat to share the risk.
  • Once full, Alice and Bob sign the first transaction to pay into ((A AND C) OR (B AND D) OR (A AND B)).
  • When either the event happens or the deadline elapses, I publish key C or D. If I release key C, Alice can claim the winnings. If I release key D, Bob can claim the winnings. A week or so after the winning key, I will release the losing key.

Failure scenarios:
  • If I disappear, the loser can still release their key just to be fair. If the loser really wants to be a dick they might demand some of it back.
  • If the winner disappears, then the loser can claim the pot a week later. (I hate to see coins wasted)
  • If the loser disappears, it shouldn't be an issue since no action is required on their part after the 3-person transaction has been funded.

Weaknesses:
  • Alice and Bob can't sell their shares to people who don't trust them, since payment is tied to their private keys. This will eventually be fixable with smart contracts.
  • Alice or Bob could bribe me to release the wrong key. I might even secretly BE Alice or Bob. This should be fixable by adding more "bookies" and requiring the winner plus a majority of bookies to release funds. In the meantime Alice and Bob will need to use a bookie with at least SOME integrity, reputation, or fear of random angry hackers.

This would allow for an infinite number of Alices and Bobs to bet on if I release key C or D with minimal computer skills required by anyone.
sr. member
Activity: 462
Merit: 250
October 23, 2011, 04:37:51 PM
#7
Thanks for the github references.  Interesting.
hero member
Activity: 950
Merit: 1001
October 23, 2011, 12:05:20 PM
#6
I've been doing a little more homework on this. Not only are the devs already working hard on multisignature transactions, but in the future we might have support for contracts enforced by the Bitcoin network.

Forgive my newb ignorance of the subject thus far, but this opens up a LOT of doors. Examples:
  • Potential winnings from a prediction could be sold by one of the original bettors as smart property, this helps a lot for long-term bets
  • The contract could award the pot to a default winner if for some reason 51% of bookies are unavailable by a certain date
  • If your receiving address becomes compromised, you could quickly transfer ownership of your bet to a new private key without any action required by your bookies
  • (Not sure about this one) The bet could be made impossible to close early, eliminating the perverse incentive for bookies to get their commissions sooner

And that's just the tip of the iceberg. Please correct me if I'm wrong about any of this stuff, since it looks like magic from where I'm sitting.
hero member
Activity: 950
Merit: 1001
October 14, 2011, 09:07:39 PM
#5
If you worry about a site getting taken down, convince them to register it as a .bit domain.

I'm thinking this could even be done with a p2p program, no websites required. I lack the programming skill myself, but if anyone knows of bounties related to this sort of stuff I'd be happy to pitch in.
sr. member
Activity: 294
Merit: 252
October 14, 2011, 05:40:28 PM
#4
3) Multisigned transactions may also be useful. It's basically escrow built in to the software, requiring multiple private keys to release funds. By sending all bets as multisigned transactions to multiple bookies/agents, lone defectors wouldn't be able to steal the pot. This reduces the risk of theft but increases the risk of accidental loss.

I really like this idea. Make it so 50% of the bookies must sign the transaction in order to spend it. It adds incentive for them to stay honest with the predictor and with each other.
legendary
Activity: 966
Merit: 1004
Keep it real
October 14, 2011, 05:27:33 PM
#3
If you worry about a site getting taken down, convince them to register it as a .bit domain.
hero member
Activity: 950
Merit: 1001
October 14, 2011, 12:23:10 PM
#2
3) Multisigned transactions may also be useful. It's basically escrow built in to the software, requiring multiple private keys to release funds. By sending all bets as multisigned transactions to multiple bookies/agents, lone defectors wouldn't be able to steal the pot. This reduces the risk of theft but increases the risk of accidental loss.
hero member
Activity: 950
Merit: 1001
October 06, 2011, 10:05:10 PM
#1
Lately I've been checking out prediction markets like Bets of Bitcoin and BTfuture. While they are a great start, what if some day they become unavailable like Moonco.in? I think one possible direction this could go is to further decentralize prediction markets. So far I've got two ideas:

1) Many compatible markets, so bettors can spread out the same bet over multiple bookies. For example, an open-source prediction market like bitpredict would spawn many identical sites. Skilled traders or an automated script could place 1/100th of a bet with 100 bookies, thus averaging out the risk of loss. Right now every market operates differently so spreading out bets can be inconvenient.

2) Offline signed transactions could be distributed by bookies to trusted agents. For example, a bookie could manage a bet with three outcomes (yes, no, cancel) so he creates three signed transactions and sends them to his friend. If the bookie becomes unavailable to resolve the bet, this agent would broadcast the winning transaction. This is preferable to sharing private keys because it has a smaller risk of theft.

What I'm hoping for is a long-term solution for prediction markets that isn't vulnerable to the loss of one person or organization. Large webs of trust could even enable a market on a single event to have hundreds of bookies, each with multiple agents who can settle their small percentage.
Jump to: