8 ms·
I'm not sure I've gotten a clear answer to this before, so someone please help me understand: I can see how smart contracts might be useful in contracts that i
by dperfect 6y ago
I'm not sure I've gotten a clear answer to this before, so someone please help me understand:
I can see how smart contracts might be useful in contracts that involve other assets that are directly connected in the same decentralized context (i.e., other bitcoin transactions or blockchain entities).
However, for anything else in the real world, they always (from what I've seen) require an "oracle" of some kind. True, that can be based on a consensus algorithm involving multiple parties in the real world, but it always ends up requiring trust that those real-world entities are playing by the rules. If we're relying on the good faith of real-world entities, how is a smart contract any better than a legal contract (a human would have to step in as the arbiter in either case)?
- vmception 6y agoFor onchain purposes it can just be a matter of convenience, not a panacea or cure all
- ZitchDog 6y agoIt is much cheaper to execute a smart contract.
- stocknoob 6y agoThere's value in digitizing 90% of the process and relying on as few oracles as possible. Right now your contracts are enforced by fallible, highly paid interpreters (lawyers) executing source code in printed form.
- dperfect 6y agoWouldn't that just make those few oracles an increasingly valuable target for manipulation/corruption?
- stocknoob 6y agoDo you trust Amazon, Google and Microsoft or millions of sysadmins in podunk companies to secure their infrastructure?
- dperfect 6y ago> Do you trust Amazon, Google and Microsoft or millions of sysadmins in podunk companies to secure their infrastructure? Of course not, and when they screw up, we lean on a robust (yet imperfect) legal system to intervene. One of the advertised features of smart contracts is a reduced dependency on trust, so if they don't actually have that advantage (at least in relation to real-life interactions), then it's hard to say they're any better than traditional legal contracts for those use cases.
- TheDong 6y agoRight now contracts are enforced by lawyers who can interpret code that is not fully specified. I would guess that hiring a contract developer to create a water-tight contract the computer is capable of understanding would be much more expensive than a lawyer. This is in a similar vein to the fact that it's more expensive to have programmers create a perfect NLP app to translate something than it is to just hire a translator. Translating english into other languages is not a solved problem. Whether that other language is french or a smart contract does'nt seem that material. It does seem like it will be much cheaper to make contracts in bitcoin that don't require translating thousand-line-english-documents into a smart contract. However, you can already do that without a lawyer. If me and you sign a paper saying it's a contract that "I will pay you $200 for an item delivered on date X/Y, and if you're late I pay $20 less per day it's late", that's already legal and enforceable without a lawyer. Coding that same thing in bitcoin would be harder than writing it on a paper still I think.
- stocknoob 6y agoI'm sure creating the first spreadsheet application was more expensive than hiring an accountant. But not doing it 1 million times. Someone will make "contracts as a service" and competition will drive down the cost, until it's nearly free (as spreadsheets are today).
- TheDong 6y agoI think there may be a difference. Accountants are humans that are trying to be computers. Smart-contracts are computers trying to be human. Most contracts are flawed and only really matter when things go wrong. I'd rather that a human be there when things go wrong to understand the human intent behind the contract than have a computer which does not know the human intent, but is able to enforce the (likely flawed) computational representation of that intent.
- stocknoob 6y agoThat's a tradeoff left to the contractual parties. The same human process that infers ill-specified intent can be corrupted to not execute that intent. If you want a human bootstrap, you hire a lawyer as an oracle which decides whether to process the contract specified in the blockchain.
- noman-land 6y agoSmart contracts are mathematical contracts not legal contracts. They don't even have to be about IRL things. You could interact with a smart contract to, for example, change who can be authenticated to use a smart lock. Or you could have profile information about yourself in a contract, that can be changed.
- dperfect 6y agoCool - glad you brought up the smart lock example. How does that work without trusting (presumably off-chain) software/firmware to honor the change as to who should be able to open the lock? The smart contract might be iron-clad in showing who should have access, but at some point, that has to be interpreted and executed by a real-world entity, human or machine. In other words, standard contracts work just fine (without any lawyers involved) when everything goes to plan. It's the failure cases that matter, and it's not hard to imagine a compromised lock (or an entire company's locks if they're connected to the internet for access to the blockchain) that no longer respect the smart contract. So you're back to calling your lawyer to help sort out the mess.
- toomuchtodo 6y agoYour assessment is accurate. Crypto proponents paper over this, but don’t have an answer. The part they say quietly is that the ledger supersedes the law and legal framework, and that’s clearly not how governments and their legal frameworks work.
- noman-land 6y agoThat's definitely a good example of where things get tricky, but smart contracts are not a dispute resolution mechanism, they're part of a shared infrastructure. If you use a smart contract you don't need to maintain any sort of backend at all. Your infrastructure costs are basically zero because they're baked into the cost of using the contract, which is paid on every transaction. You also get interoperability for free without having to build out any sort of API layer. Smart contracts are not the solution to all problems but I think they have some really interesting use cases.
- 6y ago
- larrysalibra 6y agoHi! Larry, Founder of New Internet Labs, building in the Stacks ecosystem here. Your understanding of smart contracts is correct - whenever smart contracts deal with stuff in the physical world you need to have an oracle. In my experience over past half decade, there's been a lot of misleading information spread by people about smart contracts with schemes like claim to be a good use for smart contracts that suffer from oracle problems. A lot of this has come from naive people that just didn't other stand, but some has been spread by people looking to make others part with their money. The way I think about smart contracts, is that if you need to trust someone in the real-world, by default you probably don't want or need a smart contract. That said, there are a subset of such instances where smart contracts that depend on trust in real world entities have proven to be very useful. Wrapped tokens and stablecoins are an example of this - Tether being the most famous.
- blackbrokkoli 6y agoTether aka the guys printing their own partially backed coin to enrich themselves with free Bitcoin, single-handedly increasing the Bitcoin volume to the current record heights in the process? They are just now disclosing their finances to the feds, you might want to change your sales pitch...