-
Notifications
You must be signed in to change notification settings - Fork 143
Congressional consensus
Blockchains require a consensus mechanism, a mechanism by which participants agree upon the state of the chain. Network participants build a chain of blocks; each block contains some number of transactions. Network participants add blocks to the chain, using their consensus mechanism to (1) agree upon which transactions belong in the block and (2) agreeing to finalize the block and add it to the chain.
A key consideration in consensus mechanisms in the Nakamoto coefficient: the number of discrete entities sufficient to mutate the chain's state. A perfectly centralized network would have a Nakamoto coefficient of one; as the Nakamoto coefficient decreases, the network becomes more collusion-resistant (or "decentralized," to invoke that slippery word).
Proof-of-stake (PoS) is a particular consensus mechanism that designates validators, network participants uniquely qualified to sign blocks (and thus participate in the consensus mechanism). By staking liquid tokens to validators, network participants "vote" on which validators ought to participate in the consensus mechanism. Validators stake tokens as collateral; if they act dishonestly, they suffer an economic penalty.
While proof-of-stake requires less energy than proof-of-work (PoW) consensus, and can in some conditions decrease a network's Nakamoto coefficient, PoS suffers from (and this is elsehow's own analysis) practical and ideological shortcomings. Practically, network participants likely do not deliberate or vote on validators in practice. They select validators based on economic concerns (maximizing APR, for example) and their memeworthiness.
This selection process may map to some notion of competitive democracy, but even if it does, a larger, philosophical issue remains: PoS conflates property ownership with democratic voice. People with more tokens have a bigger vote. In a network in which tokens can be bought and sold, this allows large shareholders to earn an outsized voice in the network's governance.
These issues speak to a core concern for us: "Who decides who decides?" PoS falls short in that it (1) privileges those with economic capacity to decide who decides; and (2) the system reinforces this situation by rewarding votes with economic gain. (Scenarios in which validators drop shitcoins to their stakers is an extreme example of this second dynamic). These issues may or may not map to notions of collusion-resistance or "decentralization" per se; they map to deeper, ideological questions about the purpose and role of decentralized databases in preventing tyranny (a situation in which the preferences of a minority group shape the majority experience).
In a congressional consensus (CC), a selected validator set still signs blocks. However, each validator has an equal voting weight to each other validator.
In the parlance of DAO DAO, PoS is a token-based DAO, and CC is a member-based DAO.
In the parlance of the Cosmos SDK, CC is the Cosmos staking module, but with the notion of tokens removed.
How does this model align incentives to the stability of the network? Where in PoS systems, validators stake tokens on honesty, in a PoA network, validators stake their identity. Dishonesty results in expulsion from the PoA set.
Gavin Wood proposed the term "Proof of Authority" to refer this scheme. PoA is a misleading name. There is, in fact, no proof. You might call it a proof of membership system, in that the only thing validators must prove is that they possess an identity that belongs in the membership set.
However, I propose instead the name congressional consensus (CC). In a congress, each representative has equal voting weight. That model is most similar to the model we propose here, and most crisply describes how the model works.
A key motivating question in this investigation is: who decides who decides?
In the world of CC, this question can be phrased as: how is this validator set chosen?
There is no clear specification to this answer in any formal notion of CC. However, in a world in which DAO DAO acts as the governance module, I believe CC could work as follows:
- An initial validator set (Congress) bootstraps the chain.
- Congress creates a DAO to represent the chain itself, and sets that DAO as its Admin.
- Congress distributes tokens (or membership!) to all members of the parent DAO.
With this model, the parent DAO can add or remove people to the Congress set as desired.
This model solves a key problem with PoS: ownership over tokens in the chain is one step removed from the chain governance. Whales can still manipulate governance, but their holdings are not directly tied to the chain itself's stability.
Consider the following scenario. A whale has 3% of all a network's tokens, whereas no other member has more than 1%.
In a PoS system, that gives the whale three times the say over the network's governance.
In a CC system, that gives the whale three times the say over who is in the Congress; but any member of the Congress still has an equal say. The whale has an upper hand in getting themselves elected to the congress, or can manipulate members of the Congress through indirect means such as bribery, but does not gain any more direct say over how governance works.
Also, in a PoS system, validators have the incentive to attract more delegations, which both increases their voting share and increases their economic reward. This increases incentives toward populism (including bribery).
In a CC system, there is no way for a Congress member to increase their voting share, nor their financial reward. They may be lobbied by members of the admin DAO, but such means are substantially more indirect than in a PoS system.
Finally, I submit that CC systems would have overall higher Nakamoto coefficients than PoS networks overall. Through a casual search through validator sets on Mintscan, PoS networks tend to have relatively low Nakamoto coefficients: the top ten validators control 33% of the supply at least. In a CC model, any Congress larger than 30 validators would have have a higher Nakamoto coefficient---at least at the consensus layer!
In a world of mesh security, CC chains with smaller validator sets could secure each other by sharing governance tokens in the parent DAO across IBC. That would allow cross-chain governance of other chain's congresses.
Traditionally, we have assumed that DAO DAO replacing x/gov would allow "PoS but better." In reality, a DAO DAO x/gov replacement could provide more secure, representative, and flexible chain governance. Two general approaches to experimentation come to mind:
We might try this out by attempting an x/gov replacement on a Cosmos SDK chain, then creating a CC x/staking replacement in CosmWasm.