One of the big topics that caught my attention when I first acquired some bitcoin was smart contracts. I didn't hear about this from bitcoiners but rather the crypto crowd. It took years for me to realize what these snake oil salesmen were up to.
As a technical person with no experience in law the idea of a smart contract sounds appealing. Over time though, the idea started to sound far fetched to me. I started to wonder how any of these contracts except for purely digital and simple agreements would be enforced. That's not to mention that vulnerability of the chains themselves. I haven't really thought about smart contracts for a long time but I came across this post from the libertarian intellectual property attorney and author Stephan Kinsella.
I recommended reading the full post but this snippet pretty much sums it up.
I don’t dismiss it(smart contract) either, just the hype and ignorance around it. I think that over time more things will become automated with forms, AI, arbitration, even automation, but it will develop incrementally and in the end its use case will be very narrow. This is because most people don’t understand a few things:
  1. most contracts are very complicated and require verbal language (words) to express the terms (and can’t be done with simple symbolic logic; if anything contractual verbiage gets more nuanced and complicated over time, not simpler) and arbitrators/judges/courts to decide when there is a dispute.
  1. most contracts involve real world assets, not digital ones, so can’t be fully automated
  1. most contracts do not have an escrow component, that is, what you owe in the future is uncertain and even when it’s certain, the thing owed doens’t exist yet and may never exist. So there is now way to automate how to handle uncertain future conditions.
Contracts just set up a framework for how to decide who owns some uncertain future assets, and who decides it, and how to enforce. This cannot be automated–or, even if or to the extent it can, it doesn’t solve any real problem that needs solving. It’s just “neat” and might attract nerds who like to watch Star Wars but no one in the real world cares about this shit
  1. most contracts do not have an escrow component, that is, what you owe in the future is uncertain and even when it’s certain, the thing owed doens’t exist yet and may never exist. So there is now way to automate how to handle uncertain future conditions
I think it is possible to automate uncertain future events. I've tried to present one way to do this in my loan shark tool. When you use that tool, you create a contract to borrow money first and, if someone accepts and loans you money, you pay off your loan later. But you don't know, at creation time, what utxo you will use to pay it off. To handle this uncertainty, I make it so that you sign a transaction with sighash_anyone_can_pay. This allows you to add a new utxo to the transaction in the future without invalidating your counterparty's signature.
As a result, you can contractually agree to give your counterparty a utxo that does not yet exist, and face a penalty if you do not. So there actually is a way to (partially) automate some future uncertain conditions.
2. most contracts involve real world assets, not digital ones, so can’t be fully automated
Agreed. You can create a physical contract (or a digital one, for that matter) that says something like "I agree that this house shall become Jerry's if X bitcoins end up in address Y before date Z." If that happens, you've got public proof on the blockchain, and if it doesn't happen you can prove that to. So you can bring that data to court if necessary, and that is a form of partial automation, but it's not full automation. Someone still has to go to court if there's a breach of contract (e.g. the seller refuses to leave the house).
  1. most contracts are very complicated and require verbal language (words) to express the terms (and can’t be done with simple symbolic logic; if anything contractual verbiage gets more nuanced and complicated over time, not simpler) and arbitrators/judges/courts to decide when there is a dispute
It seems to me that most "complex" contracts emerge from taking a simpler version and adding more text to it. Those simpler versions were, however, perfectly valid on their own, and many of them can be at least partially automated via bitcoin. His point seems to be that "most" contracts have evolved beyond simple versions, but I don't think that's a positive development. Return to simple contracts, and then automate them as much as possible (well...as much as is desirable anyway).
reply
I was saying this since 2014, when I refused to enter into Ethereum even if I had some offers to make part of the dev team.
Smart Contracts are really retarded. You should never relay on a machine to execute any kind of contracts between humans.
reply
Yeah, I'd been thinking about a lot in light of the Avi Eisenberg verdict, and all the law folks I've seen talking about it had a similar take. You can call something a "contract," but that doesn't make it one.
reply