Let's Make the EOS Constitution an Actual Contract

in #eos6 years ago (edited)

One of the things many of us love most about EOS is the promise of on-chain governance. Every smart contract on the EOS blockchain is connected to a Ricardian Contract according to the EOS Smart Contract wiki:

Each Smart Contract must be accompanied by a Ricardian Contract that defines the legally binding terms and conditions of the contract.

According to wikipedia:

A contract is a promise or set of promises that are legally enforceable and, if violated, allow the injured party access to legal remedies. Contract law recognises and governs the rights and duties arising from agreements. In the Anglo-American common law, formation of a contract generally requires an offer, acceptance, consideration, and a mutual intent to be bound. Each party must have capacity to enter the contract. Although most oral contracts are binding, some types of contracts may require formalities, such as being in writing or by deed.

Right now, people are interacting with the EOS blockchain without agreeing to the EOS Constitution.



If you're using the EOS blockchain, you should be familiar with the EOS Constitution:


This Constitution is a multi-party contract entered into by the Members by virtue of their use of this blockchain.

Article I - No Initiation of Violence

Members shall not initiate violence or the threat of violence against another Member. Lawful prosecution of crimes with the goal of preserving life, liberty and property does not constitute initiation of violence.

Article II - No Perjury

Members shall be liable for losses caused by false or misleading attestations and shall forfeit any profit gained thereby.

Article III - Rights

The Members grant the right of contract and of private property to each other, therefore no property shall change hands except with the consent of the owner, by a valid Arbitrator’s order, or via community referendum. This Constitution creates no positive rights for or between any Members.

Article IV - No Vote Buying

No Member shall offer nor accept anything of value in exchange for a vote of any type, nor shall any Member unduly influence the vote of another.

Article V - No Fiduciary

No Member nor EOS token holder shall have fiduciary responsibility to support the value of the EOS token. The Members do not authorize anyone to hold assets, borrow, nor contract on behalf of EOS token holders collectively. This blockchain has no owners, managers or fiduciaries; therefore, no Member shall have beneficial interest in more than 10% of the EOS token supply.

Article VI - Restitution

Each Member agrees that penalties for breach of contract may include, but are not limited to, fines, loss of account, and other restitution.

Article VII - Open Source

Each Member who makes available a smart contract on this blockchain shall be a Developer. Each Developer shall offer their smart contracts via a free and open source license, and each smart contract shall be documented with a Ricardian Contract stating the intent of all parties and naming the Arbitration Forum that will resolve disputes arising from that contract.

Article VIII - Language

Multi-lingual contracts must specify one prevailing language in case of dispute and the author of any translation shall be liable for losses due to their false, misleading, or ambiguous attested translations.

Article IX - Dispute Resolution

All disputes arising out of or in connection with this Constitution shall be finally settled under the Rules of Dispute Resolution of the EOS Core Arbitration Forum by one or more arbitrators appointed in accordance with the said Rules.

Article X - Choice of Law

Choice of law for disputes shall be, in order of precedence, this Constitution and the Maxims of Equity.

Article XI - Amending

This Constitution and its subordinate documents shall not be amended except by a vote of the token holders with no less than 15% vote participation among tokens and no fewer than 10% more Yes than No votes, sustained for 30 continuous days within a 120 day period.

Article XII - Publishing

Members may only publish information to the Blockchain that is within their right to publish. Furthermore, Members voluntarily consent for all Members to permanently and irrevocably retain a copy, analyze, and distribute all broadcast transactions and derivative information.

Article XIII - Informed Consent

All service providers who produce tools to facilitate the construction and signing of transactions on behalf of other Members shall present to said other Members the full Ricardian contract terms of this Constitution and other referenced contracts. Service providers shall be liable for losses resulting from failure to disclose the full Ricardian contract terms to users.

Article XIV - Severability

If any part of this Constitution is declared unenforceable or invalid, the remainder will continue to be valid and enforceable.

Article XV - Termination of Agreement

A Member is automatically released from all revocable obligations under this Constitution 3 years after the last transaction signed by that Member is incorporated into the blockchain. After 3 years of inactivity an account may be put up for auction and the proceeds distributed to all Members according to the system contract provisions then in effect for such redistribution.

Article XVI - Developer Liability

Members agree to hold software developers harmless for unintentional mistakes made in the expression of contractual intent, whether or not said mistakes were due to actual or perceived negligence.

Article XVII - Consideration

All rights and obligations under this Constitution are mutual and reciprocal and of equally significant value and cost to all parties.

Article XVIII - Acceptance

A contract is deemed accepted when a member signs a transaction which incorporates a TAPOS proof of a block whose implied state incorporates an ABI of said contract and said transaction is incorporated into the blockchain.

Article XIX - Counterparts

This Constitution may be executed in any number of counterparts, each of which when executed and delivered shall constitute a duplicate original, but all counterparts together shall constitute a single agreement.

Article XX - Interim Constitution

This constitution is interim and is intended to remain in effect until a permanent constitution is written and ratified in a referendum.


Have you read this constitution and have you initated some process on-chain to agree to it? Unfortunately, there is no such process at the moment. In some ways, this is worse than a Terms and Conditions link next to a checkbox where people check the box without reading the terms. In this case, many people are interacting with the EOS blockchain without even knowing the constitution exists.

Let's pause a moment to point out @eosDAC plans to solve this problem for our members. We will have a specific membership smart contract action which eosDAC token holders will need to execute if they want to be considered members of the DAC and be protected by the eosDAC constitution. This smart contract will reference the eosDAC constitution which you can read here. If you'd like to continue to support our efforts to enable DACs and provide value to EOS, please give eosdacserver your vote.

Constitutions are important because they define and clarify the expectations of everyone involved. If we say something is "bad" or someone was defrauded or something was stolen then we need to be clear on what the rules are and what we're going to do when those rules are broken. Block Producers, like eosDAC, are required to follow the Ricardian Contract of the regproducer action. Although the dispute resolution and arbitration aspects of EOS are still being worked out, if a dispute arises and is ruled in such a way requiring a Block Producer to freeze funds or reverse a transaction or something of that nature, it may put that Block Producer at risk unless everyone involved actually agreed to follow the constitution via a voluntary contract.

We have a real-world example of this right now. Some EOS token holders for various reasons do not have access to their accounts. An initiative was started in the EOS911 Telegram to help these users protect their property, if possible. You can learn more about that here. Unfortunately, ECAF (EOS Community Arbitration Forum) has yet to make an official ruling on if BPs should freeze the accounts which may have been compromised or fraudulently obtained. ECAF may be hesitating to take action due to EOS users not actually signing a contract to follow the constitution. This puts BPs in a difficult situation where we've been shown valid evidence of fraudulent activity and cryptographic signatures from the original account holders, but are expected by many to do nothing about it without an official ruling from an arbitrator. If we delay, the funds will most likely be lost. As BPs we're stuck and ECAF seems stuck as well. Not only that, we're not yet clear on how decentralized the arbitration process will be and if consensus between 21 BPs might actually be more effective at representing the will of the token holders at this stage.

So this is a problem. How are we going to fix it?

Since the EOS blockchain is already up and running, we have to find a way to back into this. One possible option is to have each BP sign a message on the blockchain which explicitly states they will follow the EOS Constitution as of the current block and all previous blocks already signed. From there, we might get consensus from the community to modify the regproducer and claimrewards actions to include an agreement referencing the current Constitution as of that block time. We might also modify the Ricardian Contracts of these actions to reference the constitution. Article VII of the constitution implies all Ricardian Contracts should reference how disputes will be handled which is something else we'll need to improve for the system contracts we already have.

With support from the community, we might slowly expand the number of contracts which directly reference the EOS Constitution to ensure everyone involved signed an actual contractual agreement with legal protections, not just a code of conduct bad actors can freely ignore. All application developers using the EOS software could then display these contracts as part of their application. Application developers which have an on-chain agreement to abide by the constitution could then be recongized by things like the Metacert Protocol.

These are just ideas for discussion. At this point, I'm not giving a direct call to action other than to get the BPs and stake holders to discuss these challenges openly. Getting users to agree to the EOS Constitution may not solve much if we can't yet agree on what the EOS Core Arbitration Forum is or how it is governed.

We are in uncharted territory here trying to protect life, liberty, and property using a blockchain in ways no other system has been able to do so far. It's not perfect and probably never will be, but we can take the first steps towards something better to ensure EOS remains a leader in on-chain governance and smart contract technology.

There are many varying views on these issues, even among our own eosDAC launch team. I'm publishing this on my personal blog because it's not yet something we have consensus on as a DAC. This is just to get the conversation moving forward, and I'd love to hear your thoughts below.

Update: It seems we have our first action taken by the ECAF.

Sort:  

well, you'd need a stakeholder approved constitution to even start all this. there can be no ruling without a rulebook

What process would you suggest to get to a future where we have a stakeholder approved constitution? Can we use DPOS for this and let BPs announce their stance on the constitution (maybe ratify individual articles at a time) and let voters support BPs based on that? DPOS hasn't been a direct democracy, and I'm not convinced it would be a good thing to become one.

So we recognize things are broken. How do we fix them? What's the path forward?

Prior to the chain existing, many months of discussions happened in the forums. At what level should we value that effort?

gave this some thought, how about this:

Group certain parts of a constitution and let stakeholders vote on it.

eg.

  • non-chain related (no violence etc.) the ideological stuff.
    chain-related:

this needs to be split, eg Arbitration? if yes > what exactly?

and so on, make it a smartcontract, let people choose how long they want to support what they voted on, write this to the blockchain/display it on profiles so anyone dealing with account xyz knows what to expect from them.

edit: scatter could then show consensus between your constitution and the other party - for example

edit2: majority voted pargrahps should be no opt-out

edit3: make the smartcontract open, so anyone could add whatever they think would fit. may be spammy, but that way everyone has the chance to add and vote on what they see fit.
DApps could basically ask for you to accept certain parts of a constitution in order to allow you to participate.

I have no idea how this could happen to be honest.

Hi i'm just here to upvote and resteem long live the new way of life!

So where do I place my John Hancock! Let's get this thing in place before the price of Steem drops to zero! Great work my friend! Fully support this concept 100%

Excellent and I must say I have a most rewarding experience thus far here! And well received..your support and encouragement appreciated. We have been calling things well, imho...you may like my latest..thnx.

So interesting to watch the evolution of the EOS Project. Thanks for sharing, Luke!

I would say:

One big mess we have here.

But that's just me.

Indeed. And the greatest leaders throughout history didn't run away from the conflicts or the messes, but they engaged them and added value where they could. We have a lot of work to do and history is watching to see how we handle this and what precedent we set for the future. I'm thankful that, to my knowledge, we don't have actively malicious block producers (yet) making things even more difficult. I think everyone involved is working hard to come up with the best solution given our limited options.

Probably that's the problem with decentralization. Lack of leadership. I wish you all the best. But with all the money they raise it's a big responsibility, for sure.
Thanks for your time and opinion.

Lots of food for thought... The constitution and the way it's presented does need a lot of work. One thing I can't personally get down with, are these two words in Article I - "Lawful prosecution".

To listen to the audio version of this article click on the play image.

Brought to you by @tts. If you find it useful please consider upvoting this reply.

Hi Luke, thank you for the summary. What surprises me is that you say, there is no agreement to the constitution. Thomas Cox has repeatedly stated that the constitution would be referenced and acknowledged in every single transaction on the blockchain. To my lay understanding that meant something like it was implemented in the core eos.io software? Is this not the case? Was it never there or has it been dropped?

To my understanding, this isn't currently in place.

Very interesting post. I guess I just assumed that by staking my tokens and voting, I was agreeing to the constitution. Is it possible that is what their intent was? I can see why it would be problematic for many people.

Yes, it's looking like that's the approach people are taking. Similar to a "By using this website, you agree to our terms and conditions" type thing.

As you stated though still probably not the best approach. Some fine tuning to the process could certainly be done for sure.