4 ms·
Even if there were perfect, reliable oracles, ‘smart’ contracts still are terrible. When something unexpected happens, the contract is guaranteed to screw up, w
by joosters 8y ago
Even if there were perfect, reliable oracles, ‘smart’ contracts still are terrible. When something unexpected happens, the contract is guaranteed to screw up, with no chance for human compromise.
- tyre 8y agoI mean, that’s just kind of argument against…computers? Code is itself a compromise. Do this thing for me, and in exchange for not having to do the thing you lose flexibility.
- foepys 8y agoIf any (No)SQL database contains a mistake, you can either fix the mistake or change the program working with the data to either ignore or override the mistake. Smart contracts are running on an immutable database, the blockchain. If anything is landing there because of an error in the contract, you will never get the mistake out. It's engraved forever. Updating a smart contract should never happen because once you can update it, you can change its contents and its rules in a way that might benefit only one side. Even if you create rules to update the contract, finding 100% consensus (everything below 100% is unacceptable if you are explicitly using smart contracts to disallow cheating) to update the contract takes time in which more mistakes might happen and make the whole contract unusable.
- TeMPOraL 8y ago> I mean, that’s just kind of argument against…computers? No, it's an argument from programmers' common sense. Smart contracts are code, and we all know that any program more complex than hello world will contain bugs, due to both coding mistakes and errors in modeling the relevant aspects of reality. Given that, binding people with (immutable!) code seems like an extraordinarily bad idea.
- derefr 8y agoI've never understood smart contracts as binding people to anything in particular. People can cash out of the cryptosystem and go do whatever. Smart contracts are binding against machine agents, who have no alternative economy to participate in.
- wrs 8y agoContracts (smart or not) that aren’t ultimately binding some people to some behavior are pointless. Computers do not (yet) have their own independent desires and economy.
- michaelscott 8y agoIf it's exclusive to machine agents there are plenty of consensus-oriented protocols already in existence that could accomplish the same goal without relying on a blockchain. Machine agents are already bound by the code that executes and models them, all you'd be doing is adding a layer of consensus-driven redundancy for security reasons (both technical and social).
- derefr 8y ago> there are plenty of consensus-oriented protocols already in existence that could accomplish the same goal without relying on a blockchain Assume: 1. a distributed system where the consensus algorithm is state-dependent (in the sense that an SQL RDBMS that exposes the ability to insert rules/triggers has state-dependent consensus—different MVCC states will see different transactions as valid/invalid); 2. malicious machine-agents (bot oracles) supplying arbitrary input into the distributed system; 3. the distributed system being open-membership, such that malicious people are running auditing nodes (and so you can't really do Raft consensus); 4. the distributed system being large enough that you can't really do Paxos consensus in any efficient way. Is there any other solution to this problem, than to use the consensus algorithm of: 1. have many nodes redundantly, eagerly audit a block of new inputs; 2. on each step, choose of those blocks essentially by lottery (specifically, a lottery no individual node on the distributed system can predict or cheaply craft an input to win); 3. allow anyone who wants to, to configure their node to fully verify past blocks, such that enough nodes doing this will create "herd immunity", diverging the system away from maliciously-crafted blocks. Step 2 of the algorithm requires Proof-of-Work (so far as we know); step 3 of the algorithm requires an accessible chain of signed proofs to audit. Together, those spell "blockchain."
- jimmaswell 8y agoA smart contract can easily have a "both/two thirds(if a 3rd party is used as an unbiased arbiter) parties agree something went wrong, cancel the contract" function.
- HarryHirsch 8y agoThat's the biggest sticking-point, one contract party not performing. What's next? Are you talking contractual penalty, or can you compel the other party to perform? In the Anglo-American legal sphere you usually settle for compensation, it's the only means at your disposal, whereas in continental Europe (Code civil or BGB) there are legal ways to compel performance as written. Price of strawberries went up, but someone bought strawberry futures cheaply? An American will settle for money, but a Frenchman or German will show up at the warehouse with the bailiff and seize the goods. You'll find people who hate dealing with Americans. They squirm and won't perform if pressed, it's like nailing pudding to the wall! You have commitments yourself and don't want to scramble for strawberries, otherwise the bailiff will show up at your own offices. You can say that Bitcoin is Anglo-American because they want Bitcoin to be independent of the real world, no law, just "smart contracts". No wonder that some people shake their heads.
- vageli 8y ago> In the Anglo-American legal sphere you usually settle for compensation, it's the only means at your disposal, whereas in continental Europe (Code civil or BGB) there are legal ways to compel performance as written. Price of strawberries went up, but someone bought strawberry futures cheaply? An American will settle for money, but a Frenchman or German will show up at the warehouse with the bailiff and seize the goods. Specific performance [0] does in fact exist in the U.S, so I'm not sure what you mean. [0]: https://en.m.wikipedia.org/wiki/Specific_performance https://en.m.wikipedia.org/wiki/Specific_performance
- HarryHirsch 8y agoFrom the Wikipedia article that you quoted: It is typically available in the sale of land, but otherwise is not generally available if damages are an appropriate alternative. Specific performance is almost never available for contracts of personal service It's a problem, I can tell you. If you've been brought up in a world where people usually perform and you encounter an American who underperforms and then wants to haggle you are going to be angry. Right now I'm involved in a dispute with my former landlord who rented out substandard housing, and it looks as if my remedies are very limited. Moving is a great hassle and isn't cheap.
- erikpukinskis 8y agoPeople compare (smart contracts + no social insitutions) to (paper contracts + the entire legal and political system). But that’s not a fair comparison. Start by imagining the exact system we have now: police, district attorneys, private attorneys, judges, appellate courts, senate, representatives, and executive... all of that in exactly the same configuration, except nothing is considered settled law until it is finalized by those people on the blockchain. No changes in law or consequences, just a replacement of the existing ad-how bookkeeping with blockchain-based bookkeeping. That would seemingly function, given the current system functions, right? We would probably need some additional laws on how to deal with lost keys and such. But that would be resolved through existing structures. Someone starts impersonating a senator, the FBI investigates, there is a criminal trial, new keys are issued by the executive branch eventually. Now imagine a slightly different setup, say... the same thing except no legislative branch. Non criminal law. Just the courts and the executive branch, and the executive branch is charged only with carrying out court orders that result from civil contract disputes. Would that work? We don’t know. But in this blockchain world, people would be free to try that too. Now imagine every possible variation between those two scenarios also being played out, in little communities who opt into them. That’s the idea.
- abdullahkhalids 8y ago> except nothing is considered settled law until it is finalized by those people on the blockchain. This seems like a really good idea. I wonder if someone has already done something like this on any of the systems out there i.e.\ a system where some nodes are designated as the Executive and have the power to change contracts in case of disputes.
- ItsMe000001 8y agoI admit I don't even understand what that is supposed to mean. He writes that laws(!) are not considered "law" until "the people on the blockchain" - whatever that means, agree to it? So the making of laws somehow, obscurely, depends on "the blockchain"? How? Why? It makes no sense to me. What exactly does that mean? A vote of the people over each law, by blockchain? That's the only interpretation I can think of, and it still makes no sense. To me, and I admit my brain is quite limited, every explanation involving "blockchain" sounds surreal at best. I actually took two technical/programming courses (on edX and somewhere else) on "blockchains" so I think I understand the technology, but I'm still puzzled each time somebody explains something that involves this thing. IT seems understanding the technology is of no use - at least to me - when trying to understand the proposed use cases. How exactly the world is supposed to be changed in these scenarios remains a mystery to me, all I read is "magic".