TE
TechEcho
Home24h TopNewestBestAskShowJobs
GitHubTwitter
Home

TechEcho

A tech news platform built with Next.js, providing global tech news and discussions.

GitHubTwitter

Home

HomeNewestBestAskShowJobs

Resources

HackerNews APIOriginal HackerNewsNext.js

© 2025 TechEcho. All rights reserved.

Many Smart Contract Use Cases Are Impossible (2016)

134 pointsby flaviojuvenalalmost 8 years ago

8 comments

Animatsalmost 8 years ago
This article outlines the basic problem. If you want smart contracts that do anything off chain, there have to be connections to trusted services that provide information and take actions. If you have trusted services available, you may not need a blockchain.<p>The article points out that you can&#x27;t construct an ordinary loan on chain, because you have no way to enforce paying it back short of tying up the loaned funds tor the duration of the loan. Useful credit fundamentally requires some way of making debtors pay up later. It&#x27;s possible to construct various speculative financial products entirely on chain, and that&#x27;s been done, but it&#x27;s mostly useful for gambling, broadly defined.
评论 #14946794 未加载
评论 #14945368 未加载
评论 #14947257 未加载
评论 #14951294 未加载
libertymcateeralmost 8 years ago
I have been saying this for quite sometime on this forum - contracts have to deal with ambiguous circumstances and expressly contemplate being resolved in courts. Ambiguity of contracts is a <i>feature</i>, not a bug, as it is in the interest of <i>both</i> parties to be able to argue about certain unanticipated events when they occur.<p>Quoting my own comments from a while back:<p>&gt; The vast majority of contracts do not have syntactically testable conditions. They just don&#x27;t. Whether the conditions in a contract have been met is very often a matter of huge debate - this is what &quot;law suits&quot; are about. Unless you can create a condition that is testable by code, you cannot have a contract that self-enforces with the block chain. The conditions set forth in contracts are extremely complex and reasonable people can differ. I cannot imagine how you would have a contract be triggered on the insolvency of a privately held corporation - good luck defining insolvency and good luck getting access to the underlying books. Copyright infringement is also a preposterous idea - the amount of semantic judgment that must be made to determine if a work is infringing is enormous. Only the very simplest of conditions - comparing numbers, checking the time, can be reliably automated, and if you are getting a lawyer to write your contracts, odds are there is substantially more complexity in the agreements than this, which is why you hired the lawyer in the first place. In addition, a fair portion of contracts that can actually be set up to work this already are - and the blockchain is not necessary. They are things like credit cards and they work pretty good without the blockchain.
评论 #14945072 未加载
评论 #14945283 未加载
raghavtoshniwalalmost 8 years ago
Even for things that smart contracts are capable of doing, the cost of doing them on a decentralised blockchain is often prohibitively expensive. For instace the Oraclize service, that does get external data into the contract, costs around $0.02, per API call. Which isn&#x27;t much on its own, but they add up when compared to the number of API calls an average &#x27;centralized&#x27; application makes.<p>I&#x27;ve often found that for quite a few applications, the cost of executing the contract on a blockchain outweigh the benefits of decentralisation.
srikualmost 8 years ago
This article is dated Apr 2016. &quot;Oracles&quot; seem to be the way now to inject external data. Oraclize[1] can apparently be provably kept trustable. Anyone with deeper knowledge of this?<p>[1] <a href="http:&#x2F;&#x2F;www.oraclize.it&#x2F;" rel="nofollow">http:&#x2F;&#x2F;www.oraclize.it&#x2F;</a>
评论 #14945436 未加载
burritofanaticalmost 8 years ago
It&#x27;s one of the reasons why the use of the term contract is a misnomer and leads to awkward expectations as to what is possible.<p>Legally speaking, a contract is merely a promise enforceable in court.
max_almost 8 years ago
The writer is lagging way behind bleeding edge blockchain research.<p>&gt;1. Contacting external services ..Often, the first use case proposed is a smart contract that changes its behavior in response to some external event. For example, an agricultural insurance policy which pays out conditionally based on the quantity of rainfall in a given month.<p>The imagined process goes something like this: The smart contract waits until the predetermined time, retrieves the weather report from an external service and behaves appropriately based on the data received.<p>This all sounds simple enough, but it’s also impossible. Why? Because a blockchain is a consensus-based system, meaning that it only works if every node reaches an identical state after processing every transaction and block.<p>(see <a href="https:&#x2F;&#x2F;github.com&#x2F;ethereum&#x2F;wiki&#x2F;wiki&#x2F;Sharding-FAQ" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;ethereum&#x2F;wiki&#x2F;wiki&#x2F;Sharding-FAQ</a>)<p>&gt;3. Hiding confidential data ..Because even if one smart contract can’t read another’s data, that data is still stored on every single node in the chain. For each blockchain participant, it’s in the memory or disk of a system which that participant completely controls. And there’s nothing to stop them reading the information from their own system, if and when they choose to do so.<p>(see <a href="https:&#x2F;&#x2F;blog.ethereum.org&#x2F;2017&#x2F;01&#x2F;19&#x2F;update-integrating-zcash-ethereum&#x2F;" rel="nofollow">https:&#x2F;&#x2F;blog.ethereum.org&#x2F;2017&#x2F;01&#x2F;19&#x2F;update-integrating-zcas...</a>)
skilesarealmost 8 years ago
This is a really good article to give to my clients who want the blockchain to do the impossible.
clamprechtalmost 8 years ago
(2016)