EOS concept: Code is not law.
EOS White Paper: “Sometimes a smart contact behaves in an aberrant or unpredictable manner and fails to perform as intended; other times an application or account may discover an exploit that enables it to consume an unreasonable amount of resources. When such issues inevitably occur, the block producers have the power to rectify such situations.”
Human judgement > Code.
If you are familiar with EOS.io project you probably know that one of the main differences with competitors such as Ethereum is the “Code is not law” principle.
As explained by Dan Larimer himself in this Interview (https://www.youtube.com/watch?v=eftctVXiFJQ&t=30s) with this possibility we could have avoided a DAO or the multisig “bug” scenarios on EOS, without having to hardfork and/or rollback the entire blockchain.
“Rather than say we will write perfect codes, we will create a system that allows us to heal imperfect code”
EOS is clearly taking a new path. If a smart contract doesn’t work as it should, and block producers (which are elected) agree on that, accounts can be frozen, code can be fixed.
Humans over Code. Make sense. Me think.
EOS “The Governed Blockchain”.
Since we’ve this incredible possibility to freeze accounts and revert transactions (without affecting the whole chain), why not extend this “right” to recover “inappropriate” (we are starting the subjectivity) loss of funds?
Let’s take an understandable and EASY example that we’ve seen in a recent past:
Someone is doing an ICO and is outrageously lying to scam people: Fake the team members, Fake partnerships, fake everything. They raise money with their promises, and they disappear.
On Ethereum nothing you can do about that, your ETH are lost, you will probably never see them again, good luck with the traditional justice.
On EOS it could be different, why not have an arbitrage, a court system directly on the blockchain that can freeze account, and give scammed money back to investors.
Problems are starting. Me think.
The smart contract worked properly, but now we are judging an human behavior.
The scenario is very simple: No doubt that the ICO team scammed people. Even if the decision seems logic, at this point we have opened the Pandora box, by judging human behavior and not the execution of the code, we are entering into what Ian Grigg seem to call the “The Governed Blockchain”.
At this point I don’t even know if Dan Larimer support that, or if block.one achieved consensus internally. Which is even more problematic to me. Even if EOS claim to be a “community project”.
My question on https://t.me/EOSGov: “I’ve followed your debate about arbitration. In the case where an ICO is done by lying to investors for example with a fake team, and this is discovered after the Token Sale, do you think we can prevent that with the arbitration system?”
Answer from Ian Grigg AKA Sun Tzu:
The last sentence is really important, Code is always 1 or 0, and it’s why we are using it in the first place?
Infinite questions can come out of this:
What if the ICO partially lied? What if a competitor of this ICO created some credible fake news? How do you measure the gravity of the lie?
How do you guarantee “judges” are not corrupted? How do you guarantee “judges” security?
How do you know if investors wasn’t aware it was a lie? And invested anyway because they thought they could make a profit? Of course, if they were able to resell their token at a higher price, no one would have complained.
As a company will I take the risk to run my ICO on a chain like EOS? If they revert my ICO for millions of dollars, I guess this will end to a tradtional court? Or is EOS software superior to local justice?
Well, maybe for millions of dollars, many persons losing money, clear scam, it could make sense for you, even if it seems to me extremely touchy.
Let’s destroy the fungibility
So now we can even go further: What if EVERY transaction on EOS could be contested, reverted, changed, canceled, what if EVERY accounts on EOS could be frozen?
This is becoming insanity :). Me think.
In reality it’s where all my research started about that… After watching 3 hours of Thomas Cox Q&A with EOS GO.
This topic is way too important to be ignored, it affects many principles, and one that is central the Fungibility.
Question: “Party A is scammed by Party B for selling a crypto doggy, and then this crypto doggy is sold to party C, does that party C gets involved in the arbitration?”
Answer from Thomas Cox: “Well, off the chain the law says, if you buy a stolen property you have no title to it, and it gets back to the original owner and you get nothing, and I don’t know why it should be different on EOS or any other blockchain, which is why when you buy something you need to make sure that you getting a clean title of it”
He is then adding to clarify his vision: “Did I mention that arbitrage can change ANYTHING on the blockchain?”
ANY transaction on EOS is possibly reversible. We are not talking about Smart contract that bug, or pure scam.
The part that is the most shocking to me is that Thomas Cox mentions “why it should be different on any other blockchain?” Even if you want to build something different, the answer is very clear: Immutability and Fungibility. Core principles that try to achieve most blockchains.
If I need to make sure that anything I’m receiving, have not been previously used reprehensibly, let me tell you that I will never transact on EOS and take this type of risk. Especially for larger amount.
“Code is not law” as explained by Dan larimer seemed like an elegant way to deal with an extreme case scenario about smart contracts bugs.
It’s easier to judge code behaviors than humans ones.
Some persons are extending this concept to the point where it does more harm than good IMO, I’ve no problem with the sacrifice of the immutability for a business oriented Blockchain (Note 13 April: as corrected by the EOS commuity, the ledger is not affected by any decision, a new transaction is made, the immutability is intact on EOS), but fungibility is another topic and should be considered very carefully.
If the need of arbitration is needed in some type of transactions, why not, but this should remain an option. And it’s simply what we call escrow, nothing revolutionary in it, it would be great to have this type of service tied to a Blockchain thought.
EOS community need to decide what kind of constitution the software will use, and it’s probably what they will answer to this article, and that’s why I’m writting this article. Raise awareness about this topic.
As a community you need to stay aware about what’s going on EOS, Block.one doesn’t have internal consensus on everything, don’t count on them to strongly show the way IMO.
Some will try to centralize it Read this very important article by Evolution: https://medium.com/@evolutionos/evolutions-response-to-vitalik-c54ef0304e47
Some will try to get more influence on it: Block.one want use their 10% vested stake to vote…
Some will try to implement features that no one really understand or thought about…
Most topics are not even on the table yet and promise to be hot! Like EOS anonymity, Daniel Larimer is for total transparency https://steemit.com/eos/@dan/does-freedom-require-radical-transparency-or-radical-privacy
As a community and as voters you need to be well informed about what’s going on EOS because important decisions will need to be taken soon. My opinion on this would be to keep a small and clean first constitution.
It’s always easier to add than to remove something.
Don’t accept to add something that has no clear intention and/or well defined, that not has been well debated or that you don’t clearly understand.