In a normal contract you agree to abide by some rules. If you break them penalties, etc.
But you don’t have to ‘just’ trust those rules to agree to the contract. You have to trust the oversight body. If you get the better of me on the text of the contract I might turn around and appeal to a judge that you are still violating the spirit of the contract.
The idea of the ‘Smart contract’ is that the code is the contract, and there is no appeal. Our ‘contract’ is just an executable which does what it does. You only have to trust it, and not some random judge.
This instance, where someone is unhappy with how their smart contract worked out in practice, and the dev/community at large are playing judge, has a lot of people wondering whether they are ending up with the worst of both worlds.
Right, except Is there a section in the code that says the parties agree to have no legal recourse? Because if not, I can still appeal to a judge. The simple fact is that in the legal eyes of the law, the code is not a contract, it is perhaps at best a vehicle to complete a contract. You cannot simply set up a new legal agreement and just say “And you don’t have any legal recourse”.
You cannot simply set up a new legal agreement and just say “And you don’t have any legal recourse”.
It depends. You probably can’t write a contract that literally says “no recourse for breach.” But you probably could achieve substantially the same effect. For example, you might define substantial performance so low that it is always met, then explicitly waive any right to good faith and fair dealing) and any injunctive relief. If a court found the contract enforcible, I’m not sure how they could fashion a remedy.
But you probably could achieve substantially the same effect.
That depends. Courts can, and on occassion do, rewrite contracts (or refuse to enforce them) because they consider the contract to be inequitable or, in simpler terms, unjust.
Though unfortunately for them once launched the particular type of smart contract in question enforces itself (since it handles the transfers itself) and re-writing it isn’t really possible without destroying the entire system so the court isn’t being asked for help enforcing the contract and a ruling asking to change it is about as enforceable as a ruling declaring the moon to be an unlicensed aircraft that needs to cease flight immediately if you can’t get your hands on both parties to physically force them to make adjustments using new transactions.
It’s complicated even more by the fact that contracts can themselves be recipients/actors within this system.
I guarantee that if they could appeal to a judge, they would be. That’s just not possible.
Ultimately, one of two things will happen.
Parties:
The attacker: They used an exploit to transfer ether from one ‘account’ to another.
The victim: They no longer have ether that they used to.
The miners: They trade electricity/computation for network tokens in order to protect history from being rewritten. They are the reason I can’t just write a program to give myself every bitcoin. They wouldn’t run it. If they did, their users would abandon them for a fork from before my patch.
The way crypto works, you can basically count on consensus winning out. Thus, ultimately one of two things will happen.
1: The miners accept an update and fork to rewrite history such that the victim retains their ether.
2: The miners accept the attacker’s bribe (or not) and do not do so. The thief keeps the ether.
In order to influence whether 1 or 2 happens a judge would have to compel the actions of the miners. That is, he would have to seize control of the currency.
It has never happened. If you think that it will in this case, I’m willing to bet you that you are wrong.
So, the theory goes:
In a normal contract you agree to abide by some rules. If you break them penalties, etc.
But you don’t have to ‘just’ trust those rules to agree to the contract. You have to trust the oversight body. If you get the better of me on the text of the contract I might turn around and appeal to a judge that you are still violating the spirit of the contract.
The idea of the ‘Smart contract’ is that the code is the contract, and there is no appeal. Our ‘contract’ is just an executable which does what it does. You only have to trust it, and not some random judge.
This instance, where someone is unhappy with how their smart contract worked out in practice, and the dev/community at large are playing judge, has a lot of people wondering whether they are ending up with the worst of both worlds.
Right, except Is there a section in the code that says the parties agree to have no legal recourse? Because if not, I can still appeal to a judge. The simple fact is that in the legal eyes of the law, the code is not a contract, it is perhaps at best a vehicle to complete a contract. You cannot simply set up a new legal agreement and just say “And you don’t have any legal recourse”.
It depends. You probably can’t write a contract that literally says “no recourse for breach.” But you probably could achieve substantially the same effect.
For example, you might define substantial performance so low that it is always met, then explicitly waive any right to good faith and fair dealing) and any injunctive relief. If a court found the contract enforcible, I’m not sure how they could fashion a remedy.
That depends. Courts can, and on occassion do, rewrite contracts (or refuse to enforce them) because they consider the contract to be inequitable or, in simpler terms, unjust.
Though unfortunately for them once launched the particular type of smart contract in question enforces itself (since it handles the transfers itself) and re-writing it isn’t really possible without destroying the entire system so the court isn’t being asked for help enforcing the contract and a ruling asking to change it is about as enforceable as a ruling declaring the moon to be an unlicensed aircraft that needs to cease flight immediately if you can’t get your hands on both parties to physically force them to make adjustments using new transactions.
It’s complicated even more by the fact that contracts can themselves be recipients/actors within this system.
I guarantee that if they could appeal to a judge, they would be. That’s just not possible.
Ultimately, one of two things will happen.
Parties: The attacker: They used an exploit to transfer ether from one ‘account’ to another.
The victim: They no longer have ether that they used to.
The miners: They trade electricity/computation for network tokens in order to protect history from being rewritten. They are the reason I can’t just write a program to give myself every bitcoin. They wouldn’t run it. If they did, their users would abandon them for a fork from before my patch.
The way crypto works, you can basically count on consensus winning out. Thus, ultimately one of two things will happen.
1: The miners accept an update and fork to rewrite history such that the victim retains their ether. 2: The miners accept the attacker’s bribe (or not) and do not do so. The thief keeps the ether.
In order to influence whether 1 or 2 happens a judge would have to compel the actions of the miners. That is, he would have to seize control of the currency.
It has never happened. If you think that it will in this case, I’m willing to bet you that you are wrong.