8 ms·
The issue with smart contracts is that the people behind the idea don't seem to understand that the issue with traditional contracts does not lie in the parts t
by this_user 8y ago
The issue with smart contracts is that the people behind the idea don't seem to understand that the issue with traditional contracts does not lie in the parts that a clearly defined, but in those that are not. These are the parts where the legal system comes into play in order to reach a decision on grey areas like that.
The other problem is the obvious issue that smart contracts make the implicit assumption that we are able to write bug-free code. Evidently, that is not the case.
There clearly needs to be some sort of mechanism to sort out issues that may arise from this. But in practice Ethereum has replaced an imperfect but robust mechanism in the form of the legal system with one guy, who is accountable to no one, making discretionary decisions with no guidelines to bind him.
- s3m4j 8y agoAnd grey areas are useful to society, they allow some imprecisions.
- smokeyj 8y agoIt's not a bug, it's a feature!
- hanniabu 8y agoThe platform has more far reaching use-cases than being used to replace legal contracts, and written contracts can have "bugs" just as smart contracts can.
- TomVDB 8y agoDo these far reaching use-cases matter in practice? > ... written contracts can have "bugs" just as smart contracts can. The onus on smart contracts is to come up with use cases where they are superior to written contract, not to find examples where they are equally flawed.
- hanniabu 8y agoThe purpose is to remove the middleman to have an autonomous outcome and by that they have succeeded. However, just as contracts have evolved over time after iterations have been found to have "bugs", I'm sure these will as well.
- root_axis 8y agoIt does not cut out middlemen it only renames them to "oracle".
- IggleSniggle 8y agoRight, but the bugs in written contracts can be negotiated in litigation
- chrisco255 8y agoLitigation can be an asset or a liability depending on which way it goes for you, of course. Double edged sword for sure.
- empath75 8y agoThe second the code someone wrote cost the developers money, suddenly the code wasn’t the contract any more.
- Kiro 8y agoSmart contracts should not be compared with traditional contracts. They have very little to do with each other and it's an unfortunate name that even Vitalik himself regrets. They are just persistent scripts that run in parallell on a decentralised network. Using them for legal systems is a very niche use case.
- chrisco255 8y agoYeah, this. They can be used to replace some legal agreements. They can be used as a replacement for escrow. But that is a small slice of the capabilities of smart contracts.
- notsofastbuddy 8y agoI don't know why this is downvoted, it's completely accurate. Source: [0] [0]: twitter.com/vitalikbuterin/status/1051160932699770882
- woah 8y agoIt's downvoted because blockchains are evil
- tuesdayrain 8y agoIf you write enough tests you could probably know for a fact that your contract doesn't have any bugs.
- masklinn 8y agoTests can only prove the presence of bugs, not their absence.
- dogecoinbase 8y agoYou should probably read up on axiomatic incompleteness and the halting problem.
- FakeComments 8y agoCould you give an example of where either is a problem in a practical program — one I’m likely to write as an SDE?
- jcbrand 8y agoWriting 100% bug-free smart contracts that can't be exploited by an adversary.
- FakeComments 8y agoCould you give an example of a practical contract which demonstrates this problem? My contention is that the overlap between useful smart contracts and ones which demonstrate those theoretical problems is basically nil.
- anyfoo 8y agoCould you give me an example of a practical program (none of that "hello world" or "multiply two numbers"-grade stuff) that has entirely been proven correct, through tests or formal methods? Let's start with tests: If you don't write a test for every single possible case, you will not know if there is not an edge case in your program that you did not catch. Unfortunately, the number of cases for any program that isn't entirely trivial (and thus mostly useless) grows so enormously quickly that you simply cannot write an exhaustive amounts of tests. So instead, you have to classify your inputs and test "representative" inputs for each of those classes. However, to make the reasoning of what is a perfect classification, i.e. a classification where each input you give in your tests behaves the same (for a reasonable definition) as any other input in that class, requires proving non-trivial properties about the program. And that, the halting theorem tells us, is impossible as well. In simpler words: In even relatively simple programs, there are more tests to write than available lifetime, but theory also tells us that we can't know how to reduce the test cases to only the interesting ones.
- beaner 8y agoIMO the major shortcoming of smart contracts is that they have no tie to the real world, so the only thing they can really govern is other contracts, which themselves can only do the same thing. They can't be very interesting without oracles (e.g. Augur).
- cslarson 8y agoso is Augur an oracle that makes smart contracts interesting again? MakerDAO uses an oracle for the ETH/USD price as part of is DAI system for creating a decentralised $-pegged token. It seems like there are ways to solve the issue of getting real world information into Ethereum.
- beaner 8y agoYeah, but the point is sort of that the interesting ones are not simply "code is law," since there is an element of trust involved in them. They're code + human oracles.
- panarky 8y agoOld Thing does W, X and Y imperfectly. New Thing does W and Z imperfectly. Therefore, New Thing is doomed.
- root_axis 8y agoThis analogy doesn't tell us anything useful. It is not a logical certainty that W, X and Y render the need for W and Z useless, but it's certainly logically permissible depending on the actual values of the variables.
- lucozade 8y agoMore like... Old thing does W imperfectly. New thing does X. Proponents claim that X solves W's imperfections. Turns out that it doesn't. Opponents claim that X hasn't much value then, so it's doomed.
- ojr 8y agoThe benefit, transparent provably fair open source code that can automate financial transactions outweighs these issues. I don't think smart contracts on Ethereum not being fully autonomous and fully decentralized is a huge issue to normal consumers that might interact with them.
- mirekrusin 8y agoIt did spark some research into formally verifiable code so not all hope is lost; also other interesting spin-offs like zero-knowledge proofs in cryptography etc. are all very interesting. Now that the hype on speculation is gone, we can hope there’ll be more interesting “blockchain” news about moving research in this area forward, without recently seen nonsense.
- xorcist 8y agoSmart contracts does things like "if you replay old transactions on me I get my money back", or "you receive the corresposing private key to this public key if and only if you sign this transaction". Clearly the use case is in bypassing a third parties and avoiding risk. There is no clear value in grey areas there. In valuing technology, it is the best use case you can think of that counts, not the worst. Ethereum is a specific form of smart contracts where the use case compared to other forms is perhaps not as clear cut, but that doesn't stop people from speculating on the possibility.