Hacker News new | ask | show | jobs
by m3nu 1638 days ago
> The very mechanical understanding of a contract means that we cannot tell the difference between a transaction that abides by the rules and one that exploits a bug in the system, respecting the letter of the law but not its spirit.

This is really the key issue, which is difficult to change. I can't think of many important systems where we wouldn't expect human intervention if something goes wrong.

2 comments

I'm not sure having humans in the pipeline ameliorates this issue as much as you think it does.

Take the existing legal system in the US – laws are interpreted by courts/judges/etc, who AFAICT generally choose to interpret laws by their letter rather than their spirit.

As an example, you can look at the recent Kyle Rittenhouse trial with regards to whether or not it was legal for Rittenhouse to be carrying his firearm. The way the law was written, it basically carved out an exception so that 17 year olds can open carry, even though that was unlikely to be the intent of the law's drafters. But of course the judge found Rittenhouse to be not in violation because that's how the law was written. Smart contracts don't seem much different, except you're removing the inefficiency of someone having to judge what the letter of the law is.

That sort of law and a business contract are quite different though. But if the legal system was immutable code we couldn’t fix that law whereas with a softer humans in the loop system we can.

For contracts you don’t know what you want up front. Same issue in a lot of programming where you don’t know all the requirements up front. You horse trade towards mutual agreement but things are usually always open for renegotiation. There was a very dry article published yesterday that had this great insight:

“A key tenet of economic analysis is that enterprises are unable to devise contracts that cover all possible eventualities, eg in terms of interactions with staff or suppliers. Centralisation allows firms to deal with this "contract incompleteness" (Coase (1937) and Grossman and Hart (1986)). In DeFi, the equivalent concept is "algorithm incompleteness", whereby it is impossible to write code spelling out what actions to take in all contingencies.”

https://www.bis.org/publ/qtrpdf/r_qt2112b.htm

> Take the existing legal system in the US – laws are interpreted by courts/judges/etc, who AFAICT generally choose to interpret laws by their letter rather than their spirit.

The US legal system is based on English Common Law, where precedent and interpretation by a judge have force of law. This is in contrast with Civil Law where the law must be executed as written and judges have very little room for interpretation. Note that in North America, both Quebec and to an extent Louisiana continue to follow the Napoleonic code.

There still is human intervention and we've already seen it. The ETH vs. eth classic fork was one example where humans stepped in and decided to follow the spirit rather than the letter of the law. Both chains are still going but it's pretty clear which won the majority consensus and lions-share of the value.

Basically while code is law for these blockchains, human attention and usage still dictates the value.