5 ms·
Whenever someone mentions smart contracts I'm instantly reminded of that Jean Luc Picard quote: "I don't know how to communicate this, or even if it is possibl
by j-pb 6y ago
Whenever someone mentions smart contracts I'm instantly reminded of that Jean Luc Picard quote:
"I don't know how to communicate this, or even if it is possible to do so... but the question of justice has concerned me greatly of late. And so I say to any creature who may be listening: There can be no justice, so long as laws are absolute. Life itself is an exercise in exceptions."
- api 6y agoI think of it this way: - Every system will be gamed, no exceptions. - It is impossible for the architects of any system to imagine all the ways it will be gamed. That's why it's not possible to create fixed laws that are just. Inevitably someone will find a hack that turns the intent of the law around while remaining true to its letter. This seems to be what dooms both pure libertarian capitalist schemes and pure socialist command economy schemes. In the former case there is not enough structure to contain exploits and no recourse when someone finds a good scam. In the latter case it's impossible for central planners to imagine the results of their plans when they are exposed to opportunistic economic agents. The fatal flaw in both ideologies is their dogmatism. It causes them to fail to adapt when flaws and exploits in the rule system are inevitably found.
- packetlost 6y agoAny political or economic system built on the expectation that people won't be assholes to each other (and work with others to be assholes) is a flawed system.
- dmitriid 6y agoEthereum is also built on the assumption that: - people aren't assholes - all involved parties can audit blockchain transactions - all involved parties are programmers and can audit a contract written in an esoteric programming language - all involved parties voluntarily agree to be bound by these contracts despite the fact there's no way they can be enforced
- kgin 6y ago> all involved parties voluntarily agree to be bound by these contracts despite the fact there's no way they can be enforced Maybe I'm misunderstanding, but I don't think ETH contracts count on humans doing anything.
- kristianov 6y agoAll useful contracts in real world are dependent on humans, unless the machines can make and deliver a pizza, with extra cheese and no pineapples.
- cannabis_sam 6y agoNo, there are completely mechanical contracts being executed every day.
- dmitriid 6y agoIf you "don't have humans doing anything", then Ethereum is just a very slow and inefficient API and protocol layer. However, if you want to use services or exchange goods, then people are involved. A simple example: person A requests goods or services from person B. According to Ethereum website, "Customers have a secure, built-in guarantee that funds will only change hands if you provide what was agreed." Person B provides goods/services. Person A says no goods or services were provided. The assumed guarantees turn out to be fiction. Here's a real world example. A typical contract between a supplier and a chain store common in many parts of the world goes something like this: - supplier provides goods on a continuous basis - the chain store pays for goods once every three months In the real world this contract is enforceable by, well, centralised laws of the respective countries. If the chain store reneges on payment, it can be taken to court and forced to pay. In case of "smart" contracts, well, keep sending goods for three months in the hope that you get paid.
- kgin 6y agoAs far as I understand it, that's not the sort of thing Ethereum contracts would cover. The contract is just an computer agreement between trustless systems to run code. Vitalik Buterin has said he regrets the term "smart contracts" because of the usual meaning of the word contracts: https://twitter.com/VitalikButerin/status/1051160932699770882?s=20 https://twitter.com/VitalikButerin/status/105116093269977088... > To be clear, at this point I quite regret adopting the term "smart contracts". I should have called them something more boring and technical, perhaps something like "persistent scripts". > I do think that persistent scripts controlling assets compete with the legal system on some margins, but so do locks on doors. So IMO it's wrong to equate them with a specific philosophy of law privatization.
- pietjepuk88 6y agoI have to say that I'm happy that Ethereum does not do on-chain governance for this very reason. It more or less follows the IETF principle of "rough consensus". [0] As far as smart contracts are concerned; they're hardly "contracts", but you probably already knew that. Even Vitalik Buterin regrets calling them that way [1]. [0]: https://en.wikipedia.org/wiki/Rough_consensus https://en.wikipedia.org/wiki/Rough_consensus [1]: https://twitter.com/VitalikButerin/status/1051160932699770882 https://twitter.com/VitalikButerin/status/105116093269977088...
- DennisP 6y agoTrue, but on the other hand if you have options or futures contracts, you expect them to execute as specified. That's the sort of thing mainly running on Ethereum.
- ryebit 6y agoI think the big reason this happens is because smart contracts are immutable at the lowlevel. Once it's declared, it's done. I think this is very good for auditability and security. But yeah, that quote is dead on. It's not quite as hot at a higher level, because things go wrong (bugs, malfeasance, mistakes, etc). I think the current lowlevel framework is fine, because it's allowing different projects to explore how to introduce flexibility back into the system at a higher level -- but because it's being done at the level of a project within the Ethereum ecosystem, each approach can live & die on it's own, without risking the entire ecosystem on one approach. The main set of coding patterns I've seen all center around deploying contracts which act as an "upgradable proxy" -- an immutable frontend contract, which can be redirected to point to another contract that does the actual work. This "redirect" usually can only be done via txn signed by an "admin" account, which may be a single anon -- or it may be something more complex, like MakerDAO or Aave.com, where any updates are proposed by the dev team, but have to be approved by on-chain governance votes. Said votes in turn literally have $$$ staked on-chain to properly motivate them to make things work. There are also time-locks on many of these updates, giving users a last chance to run for the hills if governance does something malicious / stupid. The nice thing about that structure is that it also allows governance to let in updates which compensate users for mistakes or exploits at a meta-level, all without violating the underlying immutability of the smart contract bytecode. --- It's a pretty rapidly evolving space, and I'm sure what I described won't resemble the final form in even a few years. I think it's really great to see that there is a way to introduce justice and flexibility on top of an immutable system, rather than making the system itself become mutable. This allows the immutability of the lowlevel system to act as a source of trust between anonymous groups, that they have to act within some immutable set of ground rules, while then re-introducing the flexbility on top, so humans can act like humans when mistakes occur.
- aabhay 6y agoAll things considered, is this truly less complicated than a hand written handshake contract? The real solution is risk mitigation through deposits and payment plans. Put another way: how good is a smart contract if it’s easy to create a deceptive one?
- pattusk 6y agoThis is why human resolution layers such as Kleros exist. You can rely on human juries to resolve certain conflicts that automation could not possibly handle. The system relies on game theory to disincentivize dishonest jurors. Whether it will hold in practice remains to be seen, but a few (~100 for Kleros I think, there are also other solutions such as Aragon but I'm less familiar with them) cases have been dealt with succesfully so far.
- garmaine 6y agoThat's one reason why any reasonable smart contract includes an unconstrained everybody-signs spend path. At least for any contract in which "everybody" is reasonably defined, known upfront, and finite.