EOSCommunity.org Forums

Common conflation of different aspects of blockchain consensus and governance

I see many people conflating different aspects of blockchain consensus and governance.

All three of the following are independent things:

  1. The consensus algorithm used to finalize blocks on a particular blockchain. Typical examples include probabilistic finality algorithms like proof of work (PoW) vs algorithmic finality algorithms like various variants of an algorithm involving two stages of signed confirmation by a super majority of some defined set of participants (e.g. variants of PBFT).

  2. The method used to select representatives who have some privileges (typically the set of participants chosen in algorithmic finality consensus algorithms but potentially other privileged governance groups like those with powers to change blockchain configurations or direct inflation funds). Examples here include: proof of stake (either with delegation or not) or just some external centralized body selecting the group by fiat (proof of authority?). Also there is so much variation possible with any of these broad classes of methods. For example with delegated proof of stake (DPoS), how is the vote weight determined (is it purely token amount or does it depend on the time frames over which the tokens are staked?) and how are the votes tallied and aggregated (cumulative voting, approval voting, voting methods that respect proportional representation, etc.).

  3. The capabilities of the selected privileged groups. Are they only allowed the power of ordering and censoring transactions? Are they also allowed to determine the resource bill of each transaction subjectively? Are they allowed to update certain important contracts (e.g. the system contract and core token contract)? Are they given superuser powers over the permission system of the blockchain to essentially act on behalf of any account regardless of actually possessing their private keys?

You can design your blockchain system to mix and match various possibilities of the above. EOSIO is currently designed with a particular hard-coded consensus algorithm and therefore all EOSIO-based blockchains inherit that consensus algorithm. However, different EOSIO blockchains have slightly different methods of selecting the representatives that get special privileges on the blockchain: particularly the privilege of ordering and censoring transactions and finalizing blocks (commonly referred to as the block producers or BPs). Some may use 1 token 30 votes, some 1 token 1 vote. Some may have top 21 highest voted candidates acting as the BPs. Some may have some rotating slots for the BPs selected based on their votes. Some may not use DPoS at all.

In addition, EOSIO is designed to be flexible regarding the other capabilities of the special elected representatives beyond ordering and censoring transactions and finalizing blocks. For example, the superuser powers of 15 of the 21 BPs on EOS could be removed without even changing the EOSIO protocol; to be clear I do not recommend doing that, but I do think it would be beneficial if we had better tooling to optionally make certain superuser actions only accepted by node operators under their explicit consent. Nevertheless, the point is that removing such superuser powers would not require giving up DPoS and its benefits over PoW.

That all said, the power to censor transactions (which all blockchain systems have regardless of their consensus algorithm or the method of choosing representatives and their privileges) is technically sufficient to obviate the need for superuser powers in order to effectively restrict access to one’s value encoded on the blockchain. This means it can happen on PoW systems like Bitcoin as well, but possibly in a more roundabout and less transparent way. However, then moving control of those frozen assets to someone else is another matter which may not be possible to do without superuser powers provided by the blockchain system.

And of course there is always the option of a hard fork. In that case anything goes. The original blockchain with the original rules may still exist, but it may no longer have any value because everyone has conveniently (and for some people even transparently) migrated over to the new blockchain and abandoned the old one. So all blockchains are ultimately governed by social consensus. But the automated consensus processes of blockchains are still incredibly valuable because they allow the inefficient social consensus processes to be limited to more extreme (and hopefully rare) situations.