Hacker News new | past | comments | ask | show | jobs | submit login
Truthcoin: Trustless, Decentralized Bitcoin Prediction Marketplace (github.com/psztorc)
140 points by poppingtonic on May 3, 2014 | hide | past | favorite | 60 comments



This could be huge in my opinion, until prediction markets become legal at least. Is there any real value in it being decentralized other than bypassing laws?

There is enormous value in prediction markets, I hate that they are illegal in the US.

When real money is at stake then people make the decision that is most rational and filter out much of their bias.

I do think prediction markets should be legal and required to be 100% transparent. The scenario where people bet on something that they have control or influence over could be dangerous.

The thing that I don't understand about a decentralized prediction market is where do the results come from? Somebody has to say, "this bet won", right?


Prediction markets that don't involve money have also had some success recently. http://www.npr.org/blogs/parallels/2014/04/02/297839429/-so-...

For an easy to join one that I work on shameless plug checkout https://scicast.org


When the event occurs (the one that people are predicting), the users themselves declare which outcome actually happened. The outcome that was voted most as being true is the one considered to be true. To stop people from gaming this system, your outcome-declaring vote is also tied to a weight based on previous outcome-declaring votes and how they relate to what was considered the true outcome.


>Is there any real value in it being decentralized other than bypassing laws

You don't have to trust the person running the market.


As Intrade reminded everyone, counterparty risk is very real, and wouldn't it be nice to have a non-centralized trustless prediction market?


The problem with this proposal is that there is single central (but non-centralized) counterparty risk. If the market grows big, there will be huge monetary incentives to try to find weaknesses in the system and find to collude.

I would like to see non-centralized single market that has protocol for multiple transparent brokers that compete with fees and have their reputation there for everyone to see and judge any way they want. This way the risk of large bets could be divided between brokers.

Broker would be just identity and the 'implementation' could be single individual (anonymous or not), multiple individuals (broker syndicate) who would vote among themselves and manage their membership. Ability to attach decentralized algorithms as brokers should be also possible if taken into account when designing the protocols.


> The problem with this proposal is that there is single central (but non-centralized) counterparty risk. If the market grows big, there will be huge monetary incentives to try to find weaknesses in the system and find to collude.

Is this a problem for Bitcoin that there's a 'central' counterparty (the network)? If it is, then multiple Truthcoin networks could be run.


[deleted]


This strikes me as the sort of thing where, if you can have it simply technically impossible to cheat, that beats any legal after-the-fact fixup you might be able to employ.

It reminds of strong typing... sure, you can unit test the heck out of your code, but even better would be simply guaranteeing up front that there's no clever way a user can jam a string in where you expected an int.


Just because the owner might go to prison doesn't mean I'm not taking a risk giving zhim my money.


That notion shows how dangerous and distortive the reliance on regulatory systems is.


Not really true, as you don't get much by suing a company that is in liquidation.


>where do the results come from?

Contract outcomes are determined in a trustless and decentralized way, through a weighted vote based on present and past consensus with a unique Nash Equilibrium where all voters report accurately on the state of markets.


Except that analysis only holds when you assume participants are honest, or there are no derivatives. What stops me from making a massively stupid bet, and then rigging the market to diverge from reality?


The same thing that prevents dishonest bitcoin miners from rigging the blockchain to say that coin X went from A->M instead of A->B.

As long as there are more nodes who would not benefit from this particular rigging as there are nodes who would, everyone can act in their own self-interest and the outcome would be correct.


> The same thing that prevents dishonest bitcoin miners from rigging the blockchain to say that coin X went from A->M instead of A->B.

Oh, so it has a built-in mining subsidy that miners are rewarded with? Because without that bitcoin suffers from an even worse version of the exact same problem and is not incentive compatible.

> As long as there are more nodes who would not benefit from this particular rigging as there are nodes who would, everyone can act in their own self-interest and the outcome would be correct.

What counts as a node? Can I spin up a million or a billion nodes on AWS and influence the vote that way?


> What counts as a node? Can I spin up a million or a billion nodes on AWS and influence the vote that way?

Proof of work? Proof of stake? It's not exactly an unsolved problem.


proof of stake seems to be hardly an answer to the problem. And maaku seems to be pointing out that proof-of-work WITH SUBSIDY so far has worked, but without subsidy the dynamics are quite different.


I think that falsifying proof-of-work in Bitcoin is probably much harder than affecting a voting outcome, which is reliant on human inputs.


> Except that analysis only holds when you assume participants are honest

Really? Where does it assume honesty on the part of all participants? If we could assume that, Truthcoin would just be a majority-vote...

> What stops me from making a massively stupid bet, and then rigging the market to diverge from reality?

How do you do that, given that everyone has massive incentives to vote against your rigging?


What is the consensus mechanism? There seems to be some code here but absolutely no description of what it is doing.

Is it a vote mechanism? Then how do you protect against sybil attacks?

Is it a proof of work system? Then how do you align incentives of the miners with accuracy of the prediction market?


The Truthcoin_1.1.pdf available goes over it a bit. I had the same question and had to hunt around a bit to find it.

It's a weighted vote, with loss of coin penalties for not voting or for voting against the majority and coin rewards for voting on low vote "decisions" and for voting for the outcome that ends up being the majority.

The defence here is the assumption that the usefulness of the market long term will motivate people to vote "fairly". I think that's incredibly naive but it might still work. There are strong incentives to vote for who you think the eventual winning side will be and the assumption that that will likely be the truth (for well designed questions) isn't crazy.

There are a lot of obvious ways to attack this type of system but I don't have the expertise to know how viable they are.


Sounds a lot like a "synthetic asset" which is constructed from derivatives rather than the other way around. Actually I think that is what it is, but I'll have to read the PDF to be sure.

Synthetic assets are very much vulnerable to manipulation by whales. Ultimately you are just providing some incentive structure to keep the small players honest, and hoping that the small-bit players add up to significant security in aggregate, more than any possible combination of colluding players.

Generally speaking that's not a very safe assumption to make, particularly when the underlying settlement medium is irrevocable.


"The thing that I don't understand about a decentralized prediction market is where do the results come from? Somebody has to say, "this bet won", right?"

I'm wondering about this too. In many instances this would still necessitate a form of "trust" in a third party information provider. For example, if you're betting on the Mayweather fight, then you might be relying on an API providing fight outcomes from ESPN.


How about you guys read the docs?

The decision is made by distributed consensus. Each decision maker is incentivised to vote with the consensus, so they will vote truthfully if the answer is easy to check, or vote 'void' if it isn't.

Each market creator loses money if the result is void, so it's in their interest to make bets that are easily validated.


Besides predictions on financial products I don't think Intrade was illegal but it didn't do that well except for presidential elections.


Intrade had counterparty risk, didn't offer any kind of return on deposits, had nontrivial fees, limited who it took money from, and restricted what markets could be created. Truthcoin would eliminate #1, #4, #5, seriously reduce #3, and if volume grew could offer a version of #2 through appreciation.


I don't think any of those reasons explain why the Intrade markets were unpopular. The problem wasn't a lack of markets, deposit interest or fees. I don't think there were any restrictions on customers until after the CFTC charges were filed. I have a hard time believing that counterparty risk was meaningful.

In fact Intrade realized that the only markets people were interested in were sports markets and have focused exclusively on that area since the relaunch.


> I don't think any of those reasons explain why the Intrade markets were unpopular.

It's hard to say if any of these are the fatal problem with Intrade, but it's not like we'll know until some prediction market does 'take off', and we should at least address the known problems even if they don't look like huge problems.

> I don't think there were any restrictions on customers until after the CFTC charges were filed.

They didn't make it easy on US customers well before CFTC, as I found out first hand. You had to really want to sign up. It was much harder to get my money into Intrade than, say, Bitcoin (and people claim the difficulty of fiat->Bitcoin is a major barrier to Bitcoin adoption, so...)

> I have a hard time believing that counterparty risk was meaningful.

Even if we assume customers were idiots who didn't believe in counterparty risk before, they certainly do now.

> In fact Intrade realized that the only markets people were interested in were sports markets and have focused exclusively on that area since the relaunch.

Or... those are very safe areas legally for Intrade, and that's why they ban other markets?


I'm actually interested in betting on every market except the sports markets.



One problem with these prediction markets is that they don't allow you to make predictions on margin. Many bets in prediction markets have very large time horizons. As long as your asset is tied up in the bet, you are losing out on the time-value of money.

For example, if you bet $100 on Hillary Clinton winning the 2016 election, you don't get to invest that $100 in treasury bonds or the S&P or whatever, which is a pretty significant cost. On real futures exchanges this is mitigated with margin requirements and the legal threat of suing or bankrupting you if you don't make good on your promise to pay.


That's not true. There is absolutely no reason why you can't do this sort of stuff on margin, by issuing IOUs. You can even use smart property contracts to collateralize the loan.

However collecting on a non-collateralized loan when things go bad is difficult if you also maintain pseudo-anonymity. But with some sort of KYC procedure in place it could work.



Actually, you can even argue that the blockchain itself is a similar concept. It's a Schelling-point-based system for determining consensus, except its scope is limited to the simple question of which transactions came first.


Right - I guess the open question at this point is how much weight those mechanisms can bear. Bitcoin has a very easy version of the problem, because all they need to do is time-stamping, where you just have to follow the rules and run your software without hacking it to stay in line with the consensus.

As described the problem TruthCoin is trying to solve puts a lot more stress on the consensus mechanism, because it requires the participants to do more work to stay in line with the consensus.

In practice I think what ends up happening is that somebody publishes a feed and everybody pulls their results from that and "votes" as they're told to by the feed. This may not be too bad in itself as the feed is probably not too bad, and the people publishing it probably have an incentive to keep publishing good data. But I do worry that this system will make it hard to get off the de-facto default data feed if it starts producing bad data, since it's designed to punish people who step outside the consensus...



https://github.com/psztorc/Truthcoin/blob/master/docs/3_PM_A...

"Public Bads, for example “The ‘New Haven Lighthouse Point Park’ lighthouse to be destroyed before date X” are unlikely to be funded this way, because the Winning State must be made public somehow, and criminals must remain private. Attempts to shift the Schelling-indicator from “Number 1/2/3” to something else, such as “on a Monday/Tuesday/Wednesday evening”, have the disadvantage of alerting law enforcement in advance of the likelihood and manner of a future crime. Trades made just before the crime would, for free, alert law enforcement to an imminent threat of crime. Such ‘tip-off trades’ would be made by any profit-seeking members of the crime group themselves. Therefore, (surprisingly and fortunately) this feature cannot fund anonymous goods such as crimes"


This is absolutely not true. Unfortunately, a well-designed claim can circumvent this restriction: "The lighthouse will be destroyed in 2015 and the criminal group will broadcast a string hashing to 'cc9a1595600ebb745ec2cea73e80aad5' one second before the explosion".

This gives no useful information to the police, but it's enough for the criminal to unambiguously identify himself.

I'm disappointed that they didn't consider such scenarios.


Who would be the counter-party in that bet? If someone said, "I'll bet you a hundred thousand dollars that I won't blow up that lighthouse", I'd say, "No thanks.", since the outcome of the bet is entirely in the hands of the person making it.

Not to mention the fact that the objection still holds true to the extent that information is revealed. If you say the lighthouse is going to be destroyed in 2015, the police can still give the lighthouse additional security measures in advance of 2015, if not at the specific time. The less information you reveal, the less money you'll make from the market (since you're only trading on part of your private information).

Additionally, while there's nothing stopping a distributed system from allowing death contracts to pay out in the event of a murder or forbidding death contracts in general, it's quite possible that the participants in a market could develop social norms which prevent this from happening (e.g. everyone votes "void" when a dead person is murdered, or everyone votes "void" on all death contracts). I'm not saying I'd rely on it, but I think in mature markets of this nature, you'd actually see some of that behavior.


Who would be the counter-party in that bet? If someone said, "I'll bet you a hundred thousand dollars that I won't blow up that lighthouse", I'd say, "No thanks.", since the outcome of the bet is entirely in the hands of the person making it.

Well of course. Why do you care if the lighthouse is destroyed? The counter-party to the bet is anyone who actually wants the lighthouse destroyed and are willing to pay to see it through.


The other problem when you try to censor this is that the illegality and immorality of these contracts actually depends on the intention, which you can't see on a public network. TruthCoin (or any other anonymous system for doing this) wouldn't be able to tell the difference between a payment to somebody to burn down the lighthouse and an insurance contract to help you rebuild the lighthouse if it burns down.

Likewise, for all you'll know looking at the transactions, a payment conditional on someone's death could be a will, a life insurance policy, a political bet or an assassination contract. These all look the same to the network; What matters is the intention behind them.


wouldn't be able to tell the difference between a payment to somebody to burn down the lighthouse and an insurance contract

A prediction market provides trust that a payment will happen if a specific event happens.

But insurance also requires another kind of trust. If you want to insure your goods, the insurer needs to evaluate the moral hazard in order to determine his rate. But here, he doesn't know if the buyer of the contract is the owner of the lighthouse, so there's no way he can do that: maybe the buyer turns out to be someone who won't suffer from the loss of the lighthouse and who can easily commit a crime. Because the moral hazard is huge, the insurer can't provide insurance at competitive rates.

Insurance contracts where the buyer of the insurance is anonymous to the insurer don't seem desirable to me. They enable assassination markets but have no real use (except for small amounts that won't create moral hazard, but I'd call that betting rather than insurance).


The less information you reveal, the less money you'll make from the market (since you're only trading on part of your private information).

In my example, the private information is the knowledge of the moment of the explosion one second before it happens, coupled with knowledge of a cryptographic secret. It's valuable on the market because you can only get this information if you published the contract and committed the crime yourself: therefore, the contract rewards the person responsible for committing the crime and only that person. The reason people who hate lighthouses will back that contract even if they don't trust the criminal is that they have nothing to lose: they will only "lose" their bet if the criminal destroys the lighthouse, which is what they wanted all along so it's actually a win from their point of view.

But the cryptographic secret is not valuable anywhere else, and the police has no use for it. The only information the police gets from the market is that the lighthouse has rich enemies willing to employ criminal means. Which they probably already knew.

It's quite possible that the participants in a market could develop social norms which prevent this from happening

The market would be even better off if those contracts were banned as soon as they appear. The fact that people can randomly decide whether a contract is valid after you've invested money is a risk for legitimate users (e.g. if you bought insurance against drought, you want to be certain that you'll get paid), and it's not necessary here. To avoid "public bad" contracts, you only need a deletion mechanism.

But for such mechanisms to exist, the possibility of "public bad" contracts must be acknowledged, not dismissed. That's the point I wanted to make.


I think the ability to make these contracts is inevitable, with or without TruthCoin, and it's futile trying to censor them.

You can get these contracts settled by any trusted party, or any combination you choose of trusted parties. There's already someone out there who is offering to escrow money if you want to assassinate a politician. The next logical step is for them to use multi-sig and act as an arbitor, but without the need to hold the funds. It's inevitable that someone will do this, if they're not doing it already.

If anything it would be better to have this activity happening on a public network so that law enforcement can find out who somebody is trying to assassinate etc.


Two potential problems:

1. People are punished for failing to rig the vote. If a collective does manage to push through a counterfactual vote, everyone who tried to stop them is punished.

2. Voters in smaller betting pools will be low-information voters. Take a local election: there may be a few dozen or hundred local participants in the prediction market, enough to support betting, but there may be only be one or two legitimate news sources. Voters outside the local area could be easily misled by fake news sources. So throw up a couple of fake websites, use them as sources in a Wikipedia edit-war, and you might be able to trick the low information voters into voting your way and drowning out the local voters with personal knowledge of the event. Your deception only has to last long enough for the bet to be settled, and there is no way to punish it within the system. (If it falls through, the dupes will be punished.)


Very cool. But this has me worried:

> through a weighted vote based on present and past consensus

How can Truthcoin protect against votestuffing?


From what I gather, in a weighted vote PM system the 'weighting' of the vote (AKA, the expected likelihood of the event occurring) is based on how much money you invest for or against the event occurring. Hence, 999 'for' votes of $1 are worth less than a single $1000 vote 'against.'


It's not quite that simple: it's not just a weight based on voting, since that's obviously gameable by anyone who can accumulate enough coins to guarantee a win on a single contract, but it's a weight based partially on how each voter reflects the majority in all the other contracts. So anyone trying to corrupt a particular contract has to deal with the combined opposition of everyone who wants weight for every other contract.


So this relies on an identity system?


No more than Bitcoin does.


Bitcoin does rely on an identity system; it's called proof-of-work. It counts hashing cycles rather than humans, but it's close enough since the final goal is decentralization and not perfect equality. Here proof-of-work or proof-of-stake are also equally necessary for bootstrap purposes; otherwise you can use whatever mechanism nodes use to get into the system in the first place ten thousand times instead of one time and thereby massively magnify your reward.

TLDR: proof of voting is a good consensus algorithm, it's not a good distribution model.


Last I looked, this seemed exciting but a little hand-wavey with regard to the ability to have a rig-proof/blockade-proof vote.

Really wish the documents were in text/markdown/HTML instead of PDFs... would be much easier to review (and help improve).


I'd call this consensus for consensus. You put your 'vote' in for a given outcome and the votes in aggregate are weighed to determine expected outcome probabilities. By tying the vote/bet to a store of value (stored POW) you might eliminate vote fraud.

I wonder what the effects of desired outcome manipulation by using large amounts of POW to vote? Ideally, you'd want 1:1 connections into the network by individuals.


What do you mean by "1:1 connections into the network by individuals"?

It would be required to have the same amount of bets bought and sold, just like the stock markets.


How do you prevent sybil attacks? Most reputation systems are vulnerable to these things, where someone can just pay for a bunch of fake ratings to boost them above the rest and pay for itself.



One should not under any circumstances deal with Mircea Popescu. See the other reply to you in order to understand why. (Mircea is the owner of BitBets, the creator of the "no refunds" policy in question, and also the owner of the MPOE-PR account that defends the policy on the forum. I think Mircea may deny that last part, I forget, but it's not actually in question.)


bitbet seems like an example of why one would want Truthcoin in the first place: https://bitcointalk.org/index.php?topic=339544.0;all



What does that have to do with Bitbet scamming its users?




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: