REP(Augur)项目白皮书.pdf
Augur a Decentralized, Open-Source Plat for Prediction MarketsDr. Jack Peterson Joseph KAugur is a trustless, decentralized plat for prediction markets. It is an extension of BitcoinCore’s source code which preserves as much of Bitcoin’s proven code and security as possible. Eachfeature required for prediction markets is constructed from Bitcoin’s /output-style transactions.I. INTRODUCTIONA prediction market is a place where individuals canwager on the outcomes of future events. Those who fore-cast the outcome correctly win money, and if they fore-cast incorrectly, they lose money. People value money, sothey are incentivized to forecast such outcomes as accu-rately as they can. Thus, the price of a prediction marketcan serve as an excellent indicator of how likely an eventis to occur [1, 2]. Augur is a decentralized plat forprediction markets.Our goal here is to provide a blueprint of a decentral-ized prediction market using Bitcoin’s /output-styletransactions. Many theoretical details of this project,such as its game-theoretic underpinning, are touched onlightly or not at all. This work builds on and is intendedto be read as a companion to the theoretical foundationestablished in [3].1A. Why decentralizeHistorically, the actions required of a prediction market{ accepting wagers, deciding on the outcome of an event,then paying the wagers back out according to the results{ have been centralized. The simplest approach to aggre-gating wagers is to have a trustworthy entity maintain aledger. The simplest way to determine the outcome of anevent is to get the answer from a wise, impartial judge,whom all participants in the market trust.Upon closer inspection, these straightforward answersfray at the edges who is this ‘someone’ who is trustwor-thy enough to maintain a ledger for everyone else Whois the judge that every participant trusts And, even ifsuch paragons were found and agreed upon, how couldparticipants be certain they will remain trustworthy oncethey are granted more power \Opportunity makes thethief, after all. And, of course, \Power corrupts. Abso-lute power corrupts absolutely. [4]In practice, a larger issue is that these trusted entitiesrepresent single points of failure. Prediction markets areoften disliked by powerful interests. As the experienceof centralized prediction markets { such as InTrade and1 Additional details and discussions on the theory behind Augurcan be found at www.truthcoin.info.TradeSports { over the past decade has shown, if govern-ments or special interest groups want to shut down a web-site, they will nd a way InTrade, after all, was an Irishcompany, shut down as a result of the U.S. CommodityFutures Trading Commissions actions [5, 6]. Even theDefense Advanced Research Project Agency and CentralIntelligence Agency were forced to end their foray intoprediction markets as a result of Congressional interfer-ence [7].Contrast this with the history of Bitcoin [8]. Bitcoinis a cryptographic currency and payment plat thathas found an enemy in powerful nation-states and nan-cial institutions. Nevertheless, Bitcoin has thrived asof November 2014, it has a market capitalization of overve billion U.S. dollars, and it is the anchor of a thrivingecosystem of startups, trade, and technological innova-tion. This is possible because Bitcoin is decentralizedonce it was released, it could not be shut down. Even itspseudonymous creator, Satoshi Nakamoto, cannot stopthe cryptocurrency. This is by design he or she or theypurposely did not make himself Bitcoin’s single point offailure.Augur is a decentralized prediction market plat.The Augur Project’s goal is to revolutionize predictionmarkets, and, in doing so, change the way that peoplereceive and verify ‘truth’.B. StrategyAugur is built as an extension to the source code ofBitcoin Core.2 It includes the features { the bettingand consensus mechanisms { required by prediction mar-kets. However, it is intentionally the same as Bitcoin inall other respects, to capitalize on Bitcoin’s security andscalability. Our intention is to use the ‘pegged sidechain’mechanism to make Augur fully interoperable with Bit-coin [9]; if this technology is not available, we will insteaduse our own internal currency as the store of value.C. TokensAugur has three types of tokens or units. To keep trackof these units, every transaction and output value2 Alternatives, such as smart contract-based implementations, arediscussed in Appendix B.2AFTER THE EVENT REPORTINGUser encryptsreport andbroadcasts ReportingQuorumreached Reportsdecrypted Consensus Reputationupdates BTC payoutsMarketopens Betting EventsmatureEventhappensEventEventEventEventEventEvent included inmarketEventcreatedBEFORE THE EVENT FORECASTINGFIG. 1. Simpli ed outline of the actions in a prediction market, separated into before and after the event.elds is accompanied by a units eld.Although there are three types of tokens, users have asingle cryptographic private key.3 Augur addresses aresimply base-58 hashes of their cryptographic public keys,to which users can send tokens. The di erent types oftoken are distinguished from one another solely throughthe ‘units’ eld. Therefore, users sign the transactiondata of a Reputation payment in exactly the same wayas they would sign a Bitcoin payment.The rst token is Bitcoin. Sidechains allow us totransfer Bitcoin by creating a transaction on the Bitcoinblockchain that locks up the Bitcoin in an address [9].Then a transaction is made on our blockchain with an that has a cryptographic proof that the lock wasmade on the Bitcoin blockchain along with the genesisblockhash of its originating blockchain. A simpli ed pay-ment veri cation SPV scheme is used to verify theselocks. A SPV has a list of block headers for proof-of-workand cryptographic proof that the locking transaction wascreated on one of the blocks in the header list.A key feature of Augur is tradeable Reputation. Thetotal amount of Reputation is a xed quantity, deter-mined upon the launch of Augur. Holding Reputation3 Augur uses the same public/private key cryptography system asBitcoin private keys are random 256-bit numbers, with a validrange governed by the secp256k1 ECDSA standard.entitles its owner to report on the outcomes of events,after the events occur. Reputation tokens are similar inother respects to Bitcoins they are divisible to eight dec-imal places, they are accounted for by summing over un-spent transaction outputs, and they can be sent betweenusers.A signi cant way that Reputation di ers from Bitcoinis that Reputation is not intended to be a stable source ofvalue Reputation tokens are gained and lost dependingon how reliably their owner votes with the consensus.Reputation holders are obligated to cast a vote everytime the network ‘checks in’ with reality by default, thisis every 8 weeks. Another signi cant di erence is thatReputation is not mined. Instead, Reputation will bedistributed by means of an auction, as proposed in [3].This solves two problems. First, it will provide fund-ing to complete the development of the Augur network.Second, it bootstraps the network with an initial groupof Reputation-holders who are invested in the network’ssuccess.Using a Bitcoin sidechain is a straightforward way topurchase shares. Users will simply transfer Bitcoins tothe Augur network and use them to buy shares of aprediction. However, this poses a problem. If two peo-ple want to make a wager on whether event X will oc-cur within a year from now, they would be exposed tothe price volatility of Bitcoin. A potential solution isa seigniorage modeled coin. This would create a new3cryptocurrency, say ‘USDCoin’, and put them on a fewexchanges to be traded. If the price were above one dol-lar, the coin algorithm would print more coins; if belowa dollar, the algorithm would discontinue printing. Thisallows the price of the coin to stay relatively close to adollar.4Another pertinent question is how to distribute thecoins used to buy shares of predictions. A few optionsare available 1 having a Bitcoin sidechain be the mecha-nism to buy shares, 2 using a seigniorage model to createa ‘Cashcoin’ or ‘USDcoin’ that maintains its value withrespect to the US Dollar, and 3 using a hybrid approachof 1 and 2.In our view, the best option is to sidechain Augur toBitcoin, and have a new seigniorage based coin to al-low users to both wager with Bitcoin, and another cur-rency which would be used more for longer term wagers inwhich volatility would become an issue. This provides thebene ts of allowing interoperability with Bitcoin holdersas well as a currency suited for holding shares of predic-tions.II. PREDICTION MARKET CREATIONThe life of a prediction market can be separated intotwo principal ‘phases’ Fig. 1 before and after the event.To walk through the life cycle of a typical prediction mar-ket, consider a user, Joe, who wants to wager on theoutcome of the 2016 U.S. Presidential Election.A. Event CreationJoe turns on his Augur program, which plugs him di-rectly into the peer-to-peer network, and clicks on the‘politics’ group. This brings up a list of all active polit-ical prediction markets, along with their current prices.No one has created a market for the 2016 election yet, soJoe decides to take the initiative. He clicks on ‘CreateEvent’. Here, he enters the necessary ination aboutthis event Fig. 2 Description a short description of the event. Type binary yes or no, scalar numeric, or cat-egorical Range of valid answers yes/no/maybe for boolean,the minimum and maximum allowed values forscalar. Topic the category the event falls into. Topics arecreated by users, and can be as ne-grained as userswant them to be { examples might be ‘politics’, ‘sci-ence’, ‘funny cat videos’, ‘serious cat videos’, andso on.4 See Nubits for an example. Fee a small fee on the order of 0.01 Bitcoin re-quired to create an event. Half of this fee goes tousers who Report on the results of the event, afterit happens details in Section IV. Maturation duration of the forecasting phase.This is the period where users buy and sell sharesof the market. In Augur, time is marked by theblock interval, which is expected to be constant, onaverage. Users have the option of entering a ‘blocknumber’ which is exact, but not intuitive or an‘approximate end time’ which is not quite exact,since the block interval is not always exactly thesame length, but is much more intuitive. Creator’s address the address of the event’s cre-ator.CreateEvent TransactionJoe pays a fee of 0.01 Bitcoin to create this event. Asshown in Fig. 2, this is the CreateEvent transaction’sonly . The CreateEvent transaction also has a singleoutput, which contains the event’s data.The output’s data includes the event’s automaticallyassigned unique ID, which is a 160-bit hash5 of the otherevent output elds. To prevent accidental duplicate eventcreation due to network latency, the same user is notpermitted to create the same event again, with the sameexpiration date and description. The value of this outputis the user’s event creation fee. The output can then bespent by including the event in a CreateMarket transac-tion see below.These s and outputs are combined into a Bitcoin-style transaction6ftype CreateEvent,vin [fn 0,value 0.01000000,units bitcoin,scriptSig g],vout [f5 SHA256 followed by RIPEMD160, usually referred to simply as‘hash-160’.6 Like Bitcoin, Augur’s transactions are broadcast and stored inserialized . A deserialized, rawtransaction-like JSON atis shown here for readability. For brevity, elds such as locktimeand sequence are omitted from our examples when they are notdirectly relevant. Also, for Script elds such as scriptSig andscriptPubKey only the asm sub eld { i.e., the to CScript{ is shown.4BTC from Joe∞ shares to E1CreateMarketTitle “Joes bizarre bazaar”Events [E1, E2, E3, E4]Loss limit 10 BTCTrading fe 1Funding 27.725872 BTCCreator Market ID M1Coinbase for sharesof allpredictions in the market∞ shares to E2∞ shares to E3∞ shares to E4BTC to M1 polBTC from E1BTC from E2BTC from E3BTC from E4BTC from JoeCreateEventEvent “Hilary Clinton wins the 2016 U.S. Presidential Election.”Binary YesTopic PoliticsValid Range [0, 1]Fee 0.01 BTCMaturation November 5, 2016Creator JoeEvent ID E2BTC to E2CreateEventBTC from Alice BTC to E1CreateEventBTC from Bob BTC to E3CreateEventBTC from Chris BTC to E4BTC from Tom Payment BTC to JoeFIG. 2. CreateEvent transactions are payments from the user’s address to a newly-generated event address. A CreateMarkettransaction is a coinbase for shares of all the events contained in the market. Any user who has created one or more Eventscan incorporate their events into a new market. In this simpli ed diagram, arrows represent s and outputs, and linesrepresent spending an unspent output. Note that events and markets have been given simpli ed IDs E1, E2, etc. here tomake the gure easier to read; actual event and market IDs are 160-bit hashes of the event or market data elds, respectively.n 0,value 0.01000000,units bitcoin,event fid ,description Hillary Clintonwins the 2016 U.S. PresidentialElection.,branch politics,is_binary True,valid_range [0, 1],expiration 1478329200,creator g,address ,script OP_DUPOP_HASH160OP_EQUALVERIFYOP_MARKETCHECKg]gThe CreateEvent output’s Script is keyed to theEvent’s ID7OP_DUPOP_HASH1607 Transaction Scripts are conventionally written left-to-right.However, we use a top-to-bottom at here for the sake ofreadability.OP_EQUALVERIFYOP_MARKETCHECKSince the event ID is the hash-160 of the Event’s data,the CreateMarket transaction’s matching Script isThe raw event data is supplied by the user to be includedin a market, then is pushed onto the stack during the sub-sequent CreateMarket transaction. OP MARKETCHECK rstcalculates the hash-160 of the market’s elds excludingthe market ID, then veri es that this hash matches theactual market ID. The CreateEvent transaction’s outputis automatically sent to the event’s address, which is abase-58 string derived from the event ID in the sameway that Bitcoin addresses are derived from the publickey’s hash-160.B. Market CreationOnce the event is created, he then clicks on ‘CreatePrediction Market’, where he can include his new Eventin a prediction market. Here he enters other inationabout the market Title label/brief description of the market. Events list event IDs to be included in the market.5 Funding up-front funding provided by the mar-ket’s creator, which covers the creator’s maximumpossible loss in this Market. This is calculated us-ing the loss limit, a parameter speci ed by the user. Loss limit this parameter is set by the market’screator. The lo