The document mentions creating a crop-insurance application that would depend on a weather feed.
The problem is if the weather feed isn't something that's uniformly secureable the result could be bad given that the insurance application would take action automatically and no appeal to any higher authority concerning the fraud would be possible - without a "fork" as happened earlier. Hack an insecure feed, an insecure site or whatever and viola, free money.
And this seems like a problem any interface with the "real world" would face. The idea of automatically occurring, no-appeal financial transactions sounds but I would claim it's always going to be problematic - only a fool or a crook would put their money in this kind of system and the crook only puts in enough money to remove the money of the fool.
The ideal of say, money, is it belongs to you, where you is a broad but understandable concept. Something that belong to "whoever has X, Y, Z pieces of information about you" may sound great until someone beside you gets that information and there is no recourse. Indeed, the person who had the information "did nothing wrong" if the account really, really did belong to "whoever has this information" rather than belonging to you.
This to me is one of the fundamental problems (or challenges) of smart contracts - they remove humans and human judgment from the core, but they just push it to the edges.
You still end up trusting a human - an "oracle". You trust the weather feed, or you trust some exchange to give you the accurate price of some other asset. If that oracle is mistaken (bug, intentional misinformation), the smart contract can be manipulated.
This is a significant challenge for sure, at least with Ethereum there's no way around needing an external account (centralization) to feed data into the blockchain.
However, I know of at least 1 promising project on Ethereum (Augur) that provides decentralized oracles, and you can trust these oracles due to some clever game theorish mechanics.
The gist is randomized Reporters submit real-world information to the blockchain and earn a fee for their service. Reporters purchased a cryptoasset to have this priviledge, and if a certain Reporter submits information in conflict with a majority of other reporters (e.g. they lied) then they lose a portion of their cryptoasset giving them incentive to play by the rules and get paid for it.
And even further, if majority of Reporters report dishonestly then people will not use the Oracle service, the Reporters will not be able to earn fees, and the cryptoassets they purchased to allow to be reporters become worthless.
> Reporters purchased a cryptoasset to have this priviledge, and if a certain Reporter submits information in conflict with a majority of other reporters (e.g. they lied) then they lose a portion of their cryptoasset giving them incentive to play by the rules and get paid for it.
To be precise: it gives them incentive to submit the same information as majority of other Reporters. This is a huge difference.
This seems to be a massive flaw in the gambling markets that they propose. For example, let's say Augur (or any number of competitors) host a market on a football match, where team A are supremely better than team B. The odds on A will be extremely short, and there will be far far more people backing team A than team B.
Now, imagine that team B somehow win the match. How can the system prevent the overwhelming majority of team A backers from submitting a fake result claiming that their team won? They will vastly outnumber the people backing team B, and also outnumber any of the casual observers who might also contribute to the results. So the market will get settled as if team A won, thanks to the 'wisdom of the crowd'. The minority backers will be robbed.
Indeed, not only do you have a problem with corrupt backers of a particular view, you have a problem with systematic slipshodness. A whole raft of reporters would have an incentive to report "what you would expect" for any given outcome since that actually is what happens most of the time. So even if reporters can be separated from outcome bettors somehow, outcome bettors wind-up with an incentive to be on "what people expect will happen".
In a lot of ways, it seems like you could create something like a theory that it impossible to create a system that distinguishes "real world input" from "noise that I get from outside" without that system having a model of said real world.
For Augur, how it works is reporters are randomly handed events to report on. Meaning you can't buy REP and then choose to report on a specific event in order to further your financial interest.
Further even if you did that and by random chance are selected to report on your sporting event, you have to hope that majority of other reporters who were also chosen do the same thing you do (keeping in mind you don't know who they are), so if you still choose to report a lie you further risk losing a portion of the REP that you previously bought.
The only practical way to game the system is to have a majority of all REP holders collude and they would in truth control the outcome of all events. However it would be a waste of their money to do so, because the value of REP is derived from trading fees, and their trading fees would be non-existent because no one would use Augur if the reporting wasn't reliable, so the value of their REP holdings would plummet.
It's just like a 51% attack on Bitcoin, it's physically possible but you're financially incentivized against it.
That is the more precise definition, and there is reason to believe the majority will be honest as reporting events are randomly distributed, and you can't possibly know who's reporting what until the reporting results are all submitted.
The weather feed can provided by several oracles, and the contract can take the median value.
You could program whatever logic you want into the insurance. For example, some kind of dispute resolution system that appeals to a higher authority.
How do insurance companies deal with this problem today? Why do you trust the insurance company not to lie and say that the weather was fine? Whatever that mechanism is, it can be programmed into a smart contract.
A smart contract wouldn't put someone in jail(how often does that directly result from a contract dispute anyway?)...a lawsuit would he how someone resolves the issue if that remedy is available and necessary
Fraud is a criminal offense where you lie or deceive people about things. For example on contracts. Where you can end up in jail. Smart contracts don't fix this.
A contract dispute is where both parties are truthful, but disagree on the resolution of the contract. This is the part smart contracts fix.
And it's how insurance companies deal with these problems today.
Not quite. You could make it a legally punishable offense to provide incorrect information to a weather oracle. The provider would be sent to jail for defrauding the oracle.
I'm just saying that it's possible to solve the problem the same way that it is solved today.
Not really. The basic problem is "fractional reserve". Essentially an insurance company will only have about 5% of the money needed to pay out their policies (less in Europe, around 2.5%, and there's other variations across the world). (Even then significant amounts of that 5% would be either loans or shares, which are technically also loans. Most large insurers would go bankrupt if their risk assessments were off by 1%).
Since this is the exact thing that the double spending algorithm would check against this wouldn't be allowed, and therefore you can't have normal insurance in a blockchain world.
An alternativ would be that the weather "oracle" has something on stake, e.g. if it lies or is hacked, it looses a deposit. But then it goes further, maybe you need a voting mechanism, or other weather "oracles" participating in the vote ... in the end you need to get it game theorically right to incentivise honest "oracles" and punish dishonest.
In general I see two really hard challenges with smart contracts. Getting them bug free (i think formal verification which is worked on will help a lot) and getting the incentives right to punish dishonest behavior. (So far I haven't seen a lot work being done here, I also don't know how you could automise that, maybe some kind of simulation with AI based actors)
We're working on a decentralized dispute resolution mechanism to address that. You could add it into your smart contract, which would call our contract that has voting pools that make decisions when a dispute arises.
What incentive will people have to vote for the fairer outcome in a dispute?
If people even know of the existence of a dispute, it's almost certainly because they have some personal stake in the outcome, and they will vote for the outcome that benefits them.
Yes, the value of blockchains is in their 'trustlessness', however the moment you need to retrieve data from outside of the blockchain, you have to trust it. In which case, there's no point in using the blockchain at all.
Oh nonsense, it's not all or nothing. There could be value in:
* Making the trust-liability explicit
* Building a trust-less core system that can swap out 'trustful' sources of data as needed
* Streamlining the processing and accounting of something that depends on a 'trustful' source of data
Not to mention that trust-less data is potentially achievable with prediction markets. This is obviously not a trivial innovation, and they may not be practical, but writing off the whole system is unfounded at this point.
The document mentions creating a crop-insurance application that would depend on a weather feed.
The problem is if the weather feed isn't something that's uniformly secureable the result could be bad given that the insurance application would take action automatically and no appeal to any higher authority concerning the fraud would be possible - without a "fork" as happened earlier. Hack an insecure feed, an insecure site or whatever and viola, free money.
And this seems like a problem any interface with the "real world" would face. The idea of automatically occurring, no-appeal financial transactions sounds but I would claim it's always going to be problematic - only a fool or a crook would put their money in this kind of system and the crook only puts in enough money to remove the money of the fool.
The ideal of say, money, is it belongs to you, where you is a broad but understandable concept. Something that belong to "whoever has X, Y, Z pieces of information about you" may sound great until someone beside you gets that information and there is no recourse. Indeed, the person who had the information "did nothing wrong" if the account really, really did belong to "whoever has this information" rather than belonging to you.