As far as I'm aware the oracle problem still exists, the problems of having to get data onto the blockchain from external, trusted sources.
In real-world contracts the problems don't arise over the simple execution of contract, they arise when intent is muddied or missed by words, when terms are unfair, overly onerous or legally unenforceable. Given this, there are very, very few situations in which smart contracts appear to be a good idea, particularly as you talk about anything more than trivial amounts of money.
The world just isn't that black and white.
Most transactions that occur daily across the whole world involve trivial amounts of money.
If I want to sell you a 300€ dishwasher, for example, I can either require cash, ask for a check/bank transfer and pray it doesnt bounce, or involve a 3rd party whom i trust in which case I will have to forego a % fee for their escrow service, maybe 30€. With a smart contract, I can now be sure the buyer's funds exist and are locked before we meet. Then we shake hands, we load the dishwasher in their car and we both release the funds before parting way. I just saved myself a 10% fee and the buyer wasn't forced to get cash from an atm.
Why would a bank transfer bounce? These are free and effectively instant in most places I know of now.
> I just saved myself a 10% fee
You probably had to pay network fees though.
Once again, the blockchain-positive argument seems to stem from outdated ideas about traditional banking.
--edit-- I'm going to reply here to the comment below then I shall bow out of this discussion because HN has me rate limited.
> Bank transfers are reversible.
Good, this is a form of buyer protection. Much like credit-card chargebacks. We have literally thousands of years of history of sellers ripping off buyers to show us what a great idea this is.
> Network fees will be infinitesimal compared to the fees a human wants to extract.
There are existing, non-blockchain ones with a flat fee of under £3 in the UK I could find with a quick search. Network fees have gone over this on various cryptocurrencies at various times.
2. Network fees will be infinitesimal compared to the fees a human wants to extract.
2. How do you know this? Typical POS Credit card processing fees are 2-2.5%. Paypal is 3%. Bitcoin transaction fees can be as high as $50! Unless your typical transaction is 4 digit dollar amounts, credit card processing is cheaper.
1. This isn't bitcoin
2. They were that high once, and have not been again
3. Point 2 really doesn't hold since they will be that high again if it ever gains mass appeal, however:
4. there are solutions to even that problem that are being tested and rolled out now called Lightning Network.
You can think it's all snakeoil or a scam or whatever, but building a little strawman to make it sound like it's pointless isn't helping anyone. There are plenty of things about bitcoin and cryptocurrencies in general that are still unsolved problems, but harping on the fees is silly at this point because it's the one that people are actively trying to solve in just about all cryptocurrencies, and I honestly believe that they have it figured out, and the road forward is just one of adoption and hardening.
Stellar uses a system that is pretty much designed to have low fees from the start, and Lightning Network is a pretty damn good way of scaling a blockchain system off the blockchain for the vast majority of transactions making fees a fraction of what they are even now.
For example, a single transaction in Stellar right now costs about $0.000002 USD. And that fee is expected to not change significantly, and unlike bitcoin is not variable but is fairly fixed, and will not go up with more activity.
What does locking funds entail?
I'm not being facetious. I'm trying to understand why one would need to use an escrow service for something like this.
A day before the contract expires, buyer and seller meet up to inspect the goods. Upon inspection, seller hands over the goods and buyer validates the release order in front of him before departing, thus completing the contract before its expiration.
Infinitesimal cost, infinitesimal risk.
Doesn't that require you to trust that they release the funds? Do smart contracts have a way to dispute an outcome?
Yes, but you have to write code to implement dispute resolution, which in turn implies you have to devise a form of "proof" to be presented to the contract. This can be tricky (or impossible).
Derivatives contracts dwarf this market. Not aiming high enough lads.
https://www.investopedia.com/ask/answers/052715/how-big-deri...
The oracle problem is not a problem. The data quality is not a concern of the blockchain protocol, only what happens to it once it enters the state trie.
Cases where the external data that must be "truthful" can be done trustlessly with prediction markets for instance or Token Curated Registries among other cryptoeconomic primitives. For cases where the data feed needs an extra layer of validation there are options around using TLS notary, secure enclaves, etc.
In the majority of use cases where the app / smart-contract users are responsible for the data they enter and that's good enough.
Yes, it really is, where human motivations to pollute input data exist at all it's a huge problem.
All of the above require external, trusted systems, or fuzzy, imprecise arguments based around the honest, enlightened economic self-interest of actors who, throughout history, have shown themselves to unenlightened, dishonest and not to act in economically rational ways.
You have to take the use case of the smart-contract / app and see what is the incentive to pollute input data. Then you can use mechanism design to motivates users to input high quality data and have trustless curated list of the best data sources.
Just in case you are not familiar with cryptoeconomics and game theory, here's an example of mechanism design I used at an interview I gave a few days ago:
> Imagine you and your sister both want the last piece of cheesecake left, so you agree to split it in half but can't agree on who should do the cut because both of you are cheaters and would take the bigger slice for yourselves. One way of solving this is to have your sister take the knife but you get to pick your half first, since you would both be motivated to find the perfect balance and would stand to lose if either tries to cheat.
You have literally just described a very shit version of Chainlink.
Let me elaborate. Chainlink will make any API feed availible to trigger a smart contract. The problem is not trusting the API, its trusting the data returned from the API/Data source has not been tampered with before it triggers a smart contract.
I think my description might failed to capture how interesting I find TCRs and cryptoeconomics in general but I obviously disagree with you here.
Are you familiar with Town Crier? It offers a solution to the trusted data source problem you mention: http://www.town-crier.org/what-is-tc.html
Checkout Sergey Talking about it a few days ago. https://youtu.be/G5TQzHIFV-A?t=930
A recommendation from 4-chan and a PoC and a talk at a blockchain hype-conference? Think I'll steer clear.