Bitcoin Forum
November 14, 2024, 03:43:07 PM *
News: Check out the artwork 1Dq created to commemorate this forum's 15th anniversary
 
   Home   Help Search Login Register More  
Pages: [1]
  Print  
Author Topic: Distributed Prediction Market  (Read 906 times)
bitfair (OP)
Sr. Member
****
Offline Offline

Activity: 362
Merit: 250


View Profile
June 04, 2013, 11:34:13 PM
 #1

I find Prediction Markets extremely interesting tools for information aggregation and forecasting. With Intrade now folded, I am really missing a good source of information, and I think a decent prediction market for Bitcoin would attract a lot of positive attention (how many journalists quoted Intrade during the presidential campaign?) and provide plenty of useful information.

[Please, don't make me explain once again what is wrong with the parimutuel BetsOfBitcoin and BitBet model!]

After coding several working examples of a Bitcoin prediction market (launch ready!), I realize that I do not have the time to operate it [even though it could probably be quite lucrative].

That is why I have been thinking a lot lately about how to take myself out of the whole equation, and I have come up with a design for distributed prediction markets. The idea is pretty simple and I have coded up the basic foundation - now I thought it would be time to throw the idea out there and see what the response is like, and get ideas of how it can be improved.

The basic idea is simple, let me illustrate with an example:
Alice wants to create a prediction market for a [binary] question with outcomes Q=0 or Q=1. She then creates 18 bitcoin addresses, and announces: if you believe there is a 10% chance Q=1 send bitcoins to ADDRESS1, if you believe there is a 10% chance Q=0 send bitcoins to ADDRESS2, etc. A simple trade matching engine matches transactions with each other when their prices (probabilities) intersect as they appear in the blockchain. Furthermore, all participants can verify the transactions, trades and see which transactions are unmatched because it is in all in the blockchain for everyone to see - as long as all the participants have agreed on how the transactions will be matched. So everybody can see and verify the trades and the order book. When the outcome is determined, the matched trades can be paid out by Alice, who controls the addresses, and the unmatched orders can be returned [all to their originating address].

It is pretty foolproof, but it has some drawbacks: (1) trades/updating book happens in blocks every ten minutes (2) not always a good idea to return funds to senders address, etc.

The code I have written so far is simply to monitor the blockchain, match trades and hold the order book. It is not quite ready to be distributed yet, it's very rudimentary.

Depending on the feedback here, I may release it pretty soon.

Any suggestions, questions or comments? Would anybody consider using such a distributed prediction market?

[If you want to see it happen faster, help me justify spending more time on it: 1LCxFUwBWchSf9nRnNNSRGDEygm5iv52p1]
bluemeanie1
Sr. Member
****
Offline Offline

Activity: 280
Merit: 257


bluemeanie


View Profile WWW
June 05, 2013, 05:13:24 AM
Last edit: June 05, 2013, 05:29:08 AM by bluemeanie1
 #2

it's possible to create a booking system using Bitcoin.

The value of Q could come from a trusted 3rd party sports outcome publishing service.  For instance you have a special authority that publishes sports outcomes in a known format, RSA signed, and they are known to be reliable.  It wouldn't be hard to do for every major sport.

ex.

  you want to bet 100BTC that Mets will win vs. Cubs on June 9th, 2013

  "METS(6/9/2013)-WIN" is published and signed by the Authority if Mets win.  "CUBS(6/9/2013)-WIN" is published and signed by the Authority if Cubs win.

  Then a TX is created with two inputs, the STAKE(coming from the betters account) and the WINNINGS(coming from the bookie)

  The scriptPubKey then checks to see if the signature for the win-code is correct, if so releases the funds to the better.

  Another TX is created with one input, the STAKE(coming from the betters account)

  The scriptPubKey then single checks for a signed win-code for "CUBS(6/9/2013)-WIN", if so released funds to the house.

  Thus the authority only signs codes according to the sports outcome.  If Mets win, then there is no signed "CUBS(6/9/2013)-WIN" ever in existence, only a signed "METS(6/9/2013)-WIN" which allows the better to redeem his winnings.

  It might be possible to do this with ONE transaction, but I'm not completely sure.

You could create similar scenarios for political outcomes.  Thus all you need to do is create a special service that publishes this information and these betting transactions could be created.  It would require practically no technology, you could do it with command line Bitcoind, GPG and Google Docs.

-bm

Just who IS bluemeanie?    On NXTautoDAC and a Million Stolen NXT

feel like your voice isn't being heard? PM me.   |   stole 1M NXT?
mrkent
Sr. Member
****
Offline Offline

Activity: 249
Merit: 256


Try Purse Instant! https://purse.io/instant


View Profile WWW
June 05, 2013, 05:19:44 AM
 #3

I would like to see any prediction market. Host it on tor if you have to.

  Spend BTCBTCBTCBTCBTCBTC @ amazon
Save 10-25% with Ƀ worldwide - PurseIO
Anonymously▃▃▃▃▃▃ ⌚Fast ⚖Safe ⓑOn Credit
Buy BTC w. Card
  Worldwide - Purse.IO
bluemeanie1
Sr. Member
****
Offline Offline

Activity: 280
Merit: 257


bluemeanie


View Profile WWW
June 05, 2013, 05:31:12 AM
 #4

I would like to see any prediction market. Host it on tor if you have to.

you dont have to host anything.  In the system I describe above, you simply need to PUBLISH the signed predefined outcome codes.  If the code that indicates a win is published, the coins can be released to the winners account.

obviously to make this fun and usable you would want to automate all these things.

Just who IS bluemeanie?    On NXTautoDAC and a Million Stolen NXT

feel like your voice isn't being heard? PM me.   |   stole 1M NXT?
bluemeanie1
Sr. Member
****
Offline Offline

Activity: 280
Merit: 257


bluemeanie


View Profile WWW
June 05, 2013, 06:09:58 AM
Last edit: June 05, 2013, 06:28:42 AM by bluemeanie1
 #5

there are distinct advantages to this 'bookie' system.

bets are irreversible, cannot be voided.

the bookie and gambler can be totally anonymous.

gambler does not need to contact bookie to redeem winnings, it is automatically redeemable when the codes are published.

Just who IS bluemeanie?    On NXTautoDAC and a Million Stolen NXT

feel like your voice isn't being heard? PM me.   |   stole 1M NXT?
bitfair (OP)
Sr. Member
****
Offline Offline

Activity: 362
Merit: 250


View Profile
June 05, 2013, 10:55:24 AM
 #6

it's possible to create a booking system using Bitcoin.

The value of Q could come from a trusted 3rd party sports outcome publishing service.  For instance you have a special authority that publishes sports outcomes in a known format, RSA signed, and they are known to be reliable.  It wouldn't be hard to do for every major sport.

ex.

  you want to bet 100BTC that Mets will win vs. Cubs on June 9th, 2013

  "METS(6/9/2013)-WIN" is published and signed by the Authority if Mets win.  "CUBS(6/9/2013)-WIN" is published and signed by the Authority if Cubs win.

  Then a TX is created with two inputs, the STAKE(coming from the betters account) and the WINNINGS(coming from the bookie)

  The scriptPubKey then checks to see if the signature for the win-code is correct, if so releases the funds to the better.

  Another TX is created with one input, the STAKE(coming from the betters account)

  The scriptPubKey then single checks for a signed win-code for "CUBS(6/9/2013)-WIN", if so released funds to the house.

  Thus the authority only signs codes according to the sports outcome.  If Mets win, then there is no signed "CUBS(6/9/2013)-WIN" ever in existence, only a signed "METS(6/9/2013)-WIN" which allows the better to redeem his winnings.

  It might be possible to do this with ONE transaction, but I'm not completely sure.

You could create similar scenarios for political outcomes.  Thus all you need to do is create a special service that publishes this information and these betting transactions could be created.  It would require practically no technology, you could do it with command line Bitcoind, GPG and Google Docs.

-bm


That would be a very clever system indeed. It's along the lines of the idea of contracts championed by Mike Hearn (https://en.bitcoin.it/wiki/Contracts#Example_4:_Using_external_state), which is currently under development. It's mind-blowing in itself, but difficult to say when it will be ready for testing/general use.

Some kind of service would need to be built around it to facilitate the matching of bettors, and "the oracle" would need to be fed regularly with event outcomes by a trusted party.

there are distinct advantages to this 'bookie' system.

bets are irreversible, cannot be voided.

the bookie and gambler can be totally anonymous.

gambler does not need to contact bookie to redeem winnings, it is automatically redeemable when the codes are published.

I see the same advantages of such a system.

The system I have in mind is a little more primitive, however, and works with existing Bitcoin features. Easier to explain by example - I can try setting up an example and running it here on the forum, anybody know of any upcoming events that would be fun to predict?
bluemeanie1
Sr. Member
****
Offline Offline

Activity: 280
Merit: 257


bluemeanie


View Profile WWW
June 05, 2013, 01:23:34 PM
 #7

Quote
That would be a very clever system indeed. It's along the lines of the idea of contracts championed by Mike Hearn (https://en.bitcoin.it/wiki/Contracts#Example_4:_Using_external_state), which is currently under development. It's mind-blowing in itself, but difficult to say when it will be ready for testing/general use.

Some kind of service would need to be built around it to facilitate the matching of bettors, and "the oracle" would need to be fed regularly with event outcomes by a trusted party.

yes that's right.  Mike Hearn's idea is a bit more complex than mine.

Quote
The system I have in mind is a little more primitive, however, and works with existing Bitcoin features. Easier to explain by example - I can try setting up an example and running it here on the forum, anybody know of any upcoming events that would be fun to predict?

you could do everything in this forum as long as you

  • Had a trusted party who would publish the right signed outcome codes according to the event in question
  • Used bitcoind to properly create the transactions

so we could technically make such 'bets' right here in bitcointalk.

maybe we should try it?

I can develop the TX codes if so.

-bm

Just who IS bluemeanie?    On NXTautoDAC and a Million Stolen NXT

feel like your voice isn't being heard? PM me.   |   stole 1M NXT?
bluemeanie1
Sr. Member
****
Offline Offline

Activity: 280
Merit: 257


bluemeanie


View Profile WWW
June 05, 2013, 06:04:17 PM
 #8

good thing Pete Rose didn't have this.

Just who IS bluemeanie?    On NXTautoDAC and a Million Stolen NXT

feel like your voice isn't being heard? PM me.   |   stole 1M NXT?
mrkent
Sr. Member
****
Offline Offline

Activity: 249
Merit: 256


Try Purse Instant! https://purse.io/instant


View Profile WWW
June 05, 2013, 07:18:26 PM
 #9

I meant that you said you have code ready to launch a centralized prediction market. I'm saying you should open business.

  Spend BTCBTCBTCBTCBTCBTC @ amazon
Save 10-25% with Ƀ worldwide - PurseIO
Anonymously▃▃▃▃▃▃ ⌚Fast ⚖Safe ⓑOn Credit
Buy BTC w. Card
  Worldwide - Purse.IO
Pages: [1]
  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!