EOS whitepaper walk-through: Governance

in #eos6 years ago

                                                        

Read the Whitepaper here 

 Governance

Governance is the process by which people in a community:
  1. Reach consensus on subjective matters of collective action that cannot be captured entirely by software algorithms;
  2. Carry out the decisions they reach; and
  3. Alter the governance rules themselves via Constitutional amendments.
An EOS.IO software-based blockchain implements a governance process that efficiently directs the existing influence of block producers. Absent a defined governance process, prior blockchains relied ad hoc, informal, and often controversial governance processes that result in unpredictable outcomes.

A blockchain has actors, and these actor affect the operation of the network. In Bitcoin the actors are the developers, miners, users, exchanges. However, there is no defined process for each of these group of actors to come to consensus on the development and the direction of the network. 

It often comes down to arguments and threats off leaving the network from one camp or another to try and sway the opinion of the miners and developers.

This messy process is best captured in the DAO hack, where an hacker took advantage of a contract weakness to drain the funds, which at the time, was 15% of the entire Ethereum tokens. 

It was obvious to everyone that the fault laid in part with the hacker and in part by the poorly tested code by the coder.

There was a huge controversy surrounding whether the funds should be return via a hard fork or not and the decision was made to do so. 

However, there was no process or place to decide whether or not to fork, leading to confusion and resentment. 

The platform ultimately forked. Although a precedent was set, there was still no clear guideline to the future of method of resolving similar issues.

The recent Parity wallet failure left hundreds of millions of dollars forever frozen, yet the consensus as of now is not to fork and retrieve the funds.

This inconsistent line of reasoning leads to uncertainty and unpredictability, a shaky foundation for applications that one day many people may depend on.

A blockchain based on the EOS.IO software recognizes that power originates with the token holders who delegate that power to the block producers. The block producers are given limited and checked authority to freeze accounts, update defective applications, and propose hard forking changes to the underlying protocol.

Block producers are given limited power, these include: freezing of account via a process of rejecting transactions from said account, updating application that might have been comprised, and proposing hard fork changes.

Embedded into the EOS.IO software is the election of block producers. Before any change can be made to the blockchain these block producers must approve it. If the block producers refuse to make changes desired by the token holders then they can be voted out. If the block producers make changes without permission of the token holders then all other non-producing full-node validators (exchanges, etc) will reject the change.

When users vote for a block producer, they are in effect giving block producers permission to sign a transaction, in this case being the changes to be made, on their behalf. If block producers tries to make changes without these signatures, then full-nodes will reject them.

Freezing Accounts

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.
The block producers on all blockchains have the power to select which transactions are included in blocks which gives them the ability to freeze accounts. A blockchain using EOS.IO software formalizes this authority by subjecting the process of freezing an account to a 15/21 vote of active producers. If the producers abuse the power they can be voted out and an account will be unfrozen.

The freezing of accounts is simply the continuous rejection of transaction sent from or to said account. Since it takes 15 out of 21 block producers to sign a block for it to be considered a valid block, it takes the same number of producers to continuously reject the account's transaction to enforce the freeze.

If token holders disagree with the decision they can vote block producers who are freezing account out, once the number drops even by 1, from 15 to 14, the account will be unfrozen.  

Changing Account Code

When all else fails and an "unstoppable application" acts in an unpredictable manner, a blockchain using EOS.IO software allows the block producers to replace the account's code without hard forking the entire blockchain. Similar to the process of freezing an account, this replacement of the code requires a 15/21 vote of elected block producers.

This is probably a reference to the DAO hack and Parity wallet failure. In the case of the DAO, DAO token holders watched as their funds were slowly drained from the account. Unable to update the contract through other means, they convinced the entire community to fork and restore the funds to their rightful owner.

The Parity wallet failure froze what amount to 500 million dollars of wealth due to a rookie programmer trigger a function that deleted the ownership of the contract. With no one being the owner, and no political will to fork the platform, the fund simply sat there.

These mistakes would destroy any business organization, even the largest one. But thanks to the irrationality of the cryptocurrency market, they are simply swept under the rug as unfortunate mishaps.

Constitution

The EOS.IO software enables blockchains to establish a peer-to-peer terms of service agreement or a binding contract among those users who sign it, referred to as a "constitution". The content of this constitution defines obligations among the users which cannot be entirely enforced by code and facilitates dispute resolution by establishing jurisdiction and choice of law along with other mutually accepted rules. Every transaction broadcast on the network must incorporate the hash of the constitution as part of the signature and thereby explicitly binds the signer to the contract.

The idea of a constitution is one innovation, and experiment, that is most interesting aspects of the EOS blockchain. 

This idea of constitution is obviously inspired by the American conception of constitutional law. As the American Constitution starts with "We the people", the idea that it is the citizens of the country that is the ultimate root of power, EOS extends that concept to users of the network, who has the ultimate say over how the network is governed.

The constitution establishes a process of which disputes and its resolutions can be carried out. It also separates the intention of code versus its actuation.  

The constitution also defines the human-readable intent of the source code protocol. This intent is used to identify the difference between a bug and a feature when errors occur and guides the community on what fixes are proper or improper.

Unlike the "Code is Law" ethos of Ethereum, where how the code is executed, regardless of its stated intention, is the final arbitrator of rightness. This is akin to a strictly bureaucratic state where the process is the law. 

EOS takes recognizes the fallibility of humans and their ability to write perfect code. Instead, it relies on human language to capture the essence of what a program is meant to do and behave.

For example, had the Parity wallet been implement on EOS with a stated purpose of 

"Persevering private property of token holders and enable a secure and easy method of sharing account access". 

Then it would be obvious that no one participating in that wallet contract either the coders or the users intended to have their funds frozen for eternity.  

Upgrading the Protocol & Constitution

The EOS.IO software defines the following process by which the protocol, as defined by the canonical source code and its constitution, can be updated:
  1. Block producers propose a change to the constitution and obtains 15/21 approval.
  2. Block producers maintain 15/21 approval of the new constitution for 30 consecutive days.
  3. All users are required to indicate acceptance of the new constitution as a condition of future transactions being processed.
  4. Block producers adopt changes to the source code to reflect the change in the constitution and propose it to the blockchain using the hash of the new constitution.
  5. Block producers maintain 15/21 approval of the new code for 30 consecutive days.
  6. Changes to the code take effect 7 days later, giving all non-producing full nodes 1 week to upgrade after ratification of the source code.
  7. All nodes that do not upgrade to the new code shut down automatically.
By default, configuration of the EOS.IO software, the process of updating the blockchain to add new features takes 2 to 3 months, while updates to fix non-critical bugs that do not require changes to the constitution can take 1 to 2 months.

Outlines the requirements for updating the constitution.

Emergency Changes

The block producers may accelerate the process if a software change is required to fix a harmful bug or security exploit that is actively harming users. Generally speaking it could be against the constitution for accelerated updates to introduce new features or fix harmless bugs. 

This is obviously something that can be used to by block producers to abuse their power. I think more safety precaution needs to implemented to prevent this.

Useful links:

https://steemit.com/eos/@dantheman/what-could-a-blockchain-constitution-look-like

https://steemit.com/eos/@dantheman/how-to-create-a-meaningful-blockchain-constitution

https://steemit.com/blockchain/@dan/why-every-blockchain-needs-a-constitution

https://steemit.com/steem/@dan/draft-steem-constitution

https://steemit.com/blockchain/@dan/enforceability-of-constitutions


------------------------------------------------------------------------------------------------------------------

If you would like to know more about me and what I'm doing you can read my introduction post here.

Read my series on the Steem blockchain:

Steem: Welcome to the Matrix. Part One

Steem: Operating in the Matrix. Part Two

Steem: Construction of the Matrix. Part Three

Read my series on the EOS blockchain:

EOS whitepaper walk-through. Abstract

EOS whitepaper walk-through. Note and Disclaimer

EOS whitepaper walk-through. Overview

EOS whitepaper walk-through. Background

EOS whitepaper walk-through. Requirement.

EOS whitepaper walk-through. Consensus Algorithm. Part One, Part Two, Part Three.

EOS whitepaper walk-through. Account construct of EOS. Part One, Part Two, Part Three, Part Four.

EOS whitepapre walk-through. Parallel execution of applications. Part One, Part Two, Part Three, Part Four, Part Five.

And you can contact me in the following way:

Twitter

@bluabaleno on Steem.chat

bitadco@gmail.com  

Sort:  

Another great commentary. Yes the emergency code-fix could be a bit problematic. But with a working arbitration systems, bp who abuse this possibility might be well sanctionable....

Coins mentioned in post:

CoinPrice (USD)📉 24h📈 7d
BTCBitcoin9170.160$-2.36%1.73%
EOSEOS18.264$0.38%3.14%
ETHEthereum737.764$-1.12%11.57%
STEEMSteem3.576$0.8%-5.65%

Coin Marketplace

STEEM 0.20
TRX 0.12
JST 0.029
BTC 61215.97
ETH 3350.38
USDT 1.00
SBD 2.49