Authors: Lexa Michaelides, Mai Ishikawa Sutton, Sacha Saint-Leger, Sam Hart, Udit Vira
Change log
- 2022-08-12 Minor edits for clarity and typos before going on-chain
- 2022-08-11 Set last-call for 2022-08-12
2022-08-05 Adjusted title format, added target on-chain date of 2022-08-12 - 2022-07-27 Refined language around rules/social protocols, moved ‘background’ into an off-chain appendix
- 2022-07-15 Created initial post
Target on-chain date: 2022-08-12
Summary
This proposal aims to put forward a clear definition of ‘NoWithVeto’ that provides a stand-alone reference for future Cosmos Hub votes. We examine the technical context and existing discussion on ‘NoWithVeto’, and the range of ways the community understands NoWithVeto. We bridge these ideas into a coherent and thorough definition proposed below.
If passed, changes will be made to the Cosmos Hub documentation and Cosmos Hub Forum templates to reflect the newly accepted definition.
Proposed Definition for NoWithVeto
“A ‘NoWithVeto’ vote indicates a proposal either (1) is deemed to be spam, i.e., irrelevant to Cosmos Hub, (2) disproportionately infringes on minority interests, or (3) violates or encourages violation of the rules of engagement as currently set out by Cosmos Hub governance.”
Note: In this definition we use the term “rules of engagement” to refer to practices adopted by the Cosmos Hub community through governance. These may include decision-making processes and social protocols that have passed governance and thus been accepted as rules.
The following is factually correct about how ‘NoWithVeto’ currently operates and will continue to operate regardless of this proposal’s outcome: If quorum is met and greater than 1/3 of participating voting power have voted ‘NoWithVeto’, the proposal fails and is considered to be vetoed. In this case the proposal deposit is burned rather than being returned to respective depositors.
Discussion
Summary of existing definitions
This list summarises the range of ways community members understand the definition of ‘NoWithVeto’. Definitions 2, 3, and 4 are represented in our proposed definition.
- As a stronger No: ‘NoWithVeto’ allows voters to show stronger disagreement than simply voting No.
- As a spam filter: It provides a means for the community to impose a cost on the depositor for putting forward irrelevant material.
- As a protection of minority interests: ‘NoWithVeto’ allows a 1/3+ minority who is against the proposal require a 2/3 ‘Yes’ supermajority (rather than a simple >1/2 majority) to pass a proposal, which protects minorities from rule changes they didn’t sign up for when joining the community. However this introduces the possibility of gridlock where a minority blocks a governance proposal that the majority wants to pass. Because voting is not private, ‘NoWithVeto’ voters (who likely hold a minority opinion) make themselves potential targets for being forked out of the chain in order for the majority to pass a proposal. Therefore protection of minority interests comes with the acceptance of the risk of being forcibly forked out of the protocol.
- As a means of introducing a cost for proposals made in bad faith: ‘NoWithVeto’ imposes a consequence for a proposal that does not follow the rules of engagement by ensuring the proposer’s deposit is burned (e.g., a proposal where the description text knowingly misrepresents what the code does).
- As a way to safeguard against censorship: Since 1/3+ voting power can always block a proposal from passing by censoring transactions as per the underlying consensus mechanism, ‘NoWithVeto’ provides an accountable “in-protocol” method for 1/3+ of the voting power to prevent a proposal from passing. In this way it upholds a core value of blockchain technology: censorship resistance.
- As a way to protect against community divisions: It allows voters to signal that they would rather exit the network than see the proposal pass. If a significant proportion of the community (i.e., 1/3+ of the participating voting power) are considering leaving the network, the proposal fails, thereby leaving the community intact.
Censorship
It may not always be correct to invoke the underlying consensus mechanism as justification for the 1/3+ ‘NoWithVeto’ threshold: In particular, consensus can be threatened by one third of the total voting power (i.e., all staked ATOM) while a proposal can be vetoed by one third of the participating voting power (i.e., quorum of 40% of all staked ATOM). Thus the consensus threat requires at least 33.3% of the total voting power to censor transactions or halt the chain, but a governance proposal can be vetoed by only 13.2% of the total voting power when voter turnout is low.
Financial and social cost
‘NoWithVeto’ has no immediate additional financial cost to the voters, who can veto a proposal (and thus burn deposits) with a minimum of 13.2% of the voting power. An overuse of ‘NoWithVeto’ may discourage good proposals from being put to a vote as proposers will fear their deposits could be burned.
Consequently voters need social consensus on the meaning of ‘NoWithVeto’ beyond representing a particularly strong ‘No’ vote because in absence of this, there may be no reason to ever vote ‘No’ instead of ‘NoWithVeto’ aside from reputational cost.
While there is no financial cost to casting a ‘NoWithVeto’ vote instead of ‘No’, there are potential social and reputational costs in the form of scrutiny and questioning from the community. Since voting isn’t private, ‘Yes’ voters can always coordinate off-chain to remove the stake of those voters who’ve revealed their ‘NoWithVeto’ preference, thereby shutting them out of the chain. In this way, a minority of voters are only able to veto an idea for so long before it becomes potentially attractive to the majority to remove them.
Conclusion
We are proposing that ‘NoWithVeto’ is not “a stronger No” but neither is it a “signal for exit.” Its purpose is to encourage the sharing of ideas and discussion in good faith. Additionally the burn process is intended to impose a cost on spam proposals or those that would cause significant negative impact by way of infringing on minority interests or violating the rules of engagement.
Cosmos Hub has a vibrant but young governance system. We hope that ‘NoWithVeto’ can continue to be a valuable tool for good governance.
Voting options
We propose the following definition for ‘NoWithVeto’:
“A ‘NoWithVeto’ vote indicates a proposal either (1) is deemed to be spam, i.e., irrelevant to Cosmos Hub, (2) disproportionately infringes on minority interests, or (3) violates or encourages violation of the rules of engagement as currently set out by Cosmos Hub governance.”
Your vote on this proposal indicates the following:
“A ‘NoWithVeto’ vote indicates a proposal either (1) is deemed to be spam, i.e., irrelevant to Cosmos Hub, (2) disproportionately infringes on minority interests, or (3) violates or encourages violation of the rules of engagement as currently set out by Cosmos Hub governance.”
Your vote on this proposal indicates the following:
- YES - You agree with the definition of ‘NoWithVeto’ established in this proposal.
- NO - You disagree with the definition of ‘NoWithVeto’ established in this proposal. Please indicate why in the Cosmos Hub Forum post.
- NO WITH VETO - ¯\__(ツ)_/¯ If the number of ‘NoWithVeto’ votes is greater than a third of total votes, the proposal is rejected and the deposits are burned.
- ABSTAIN - You wish to contribute to quorum but you formally decline to vote either for or against the proposal.
Off-chain appendix
The following content will stay on the forum and IPFS pin for posterity but will not be included in the on-chain version of this proposal due to character limits.
Background
Technical context
- Voting power refers to the staked ATOMs at the end of the voting period, where all voting options including ‘Abstain’ and ‘NoWithVeto’ count towards reaching quorum.
- Quorum is the minimum percentage of voting power that needs to be cast on a proposal for the result to be valid, currently set at 40% of voting power.
- Participating voting power refers to the voting power that has voted on a particular proposal.
Deposits for proposals are held in the governance module until the proposal either passes or fails. All deposits represent an opportunity cost for the depositor. A proposal that fails due to >1/3 of the participating voting power vote ‘NoWithVeto’ has its deposit burned rather than returned to respective depositors. Currently, the deposits are only burned when proposals are vetoed. They are not burned when quorum is not reached, nor if the deposit is insufficient. Thus ‘NoWithVeto’ imposes a cost on the depositors for a failed proposal. Irrespective of the proposal outcome, there is never an additional cost for a voter who votes ‘NoWithVeto’.
Cosmos Hub whitepaper
The Cosmos Hub whitepaper specifies five theoretical voting options: Yea, YeaWithForce, Nay, NayWithForce, and Abstain. In this model a simple majority of Yea + YeaWithForce or Nay + NayWithForce is required for the proposal to pass or fail as decided. However 1/3+ of the participating voting power can veto the simple majority by voting ‘with force’ (i.e., 1/3+ NayWithForce will cause a proposal to fail even if a majority of votes are Yea/YeaWithForce). This deference towards a ⅓ minority is intended to reflect the underlying BFT consensus method used in the Cosmos Hub: 1/3+ of the total voting power in the consensus mechanism can always choose to halt the chain or censor.
Note: YeaWithForce was never implemented in the Cosmos SDK.
Proposal #6
In 2019 Proposal #6 passed, signalling that deposits should not be burned for proposals which fail to pass due to a simple majority of ‘No’ votes. This proposal suggested that burning deposits for non-vetoed failed proposals disincentivized anyone from putting forward contentious but legitimate proposals due to fear of having their deposit burned. After Proposal #6 deposits continued to be burned for failing to reach the minimum deposit (512 ATOM at the time), failing to meet quorum, or if the number of ‘NoWithVeto’ votes was greater than 1/3 of the total votes cast. In January 2022 the default SDK behaviour changed to remove the deposit burn for proposals that fail to meet minimum deposit or quorum.
Discussion about Proposal #6 on the Cosmos Hub Forum included deliberation about the utility of ‘NoWithVeto’ as a spam filter, a signal that the voter would rather leave the chain than see the proposal pass, and a way of indicating that a validator would rather fork the chain than pass the proposal.
Proposal #6 uses the terms ‘spam’ and ‘negative externalities’ which are clarified through this current proposal where we introduce the notions of minority interests and rules of engagement.
Further proposals and proposal #69
Further proposals have included the language ‘You are strongly opposed to this change and will exit the network if passed’, including #47, #49, #63, and #69.
In the discussion of Proposal #69 “Include CosmWasm in Rho Upgrade” the exact wording and intention of a ‘NoWithVeto’ vote became a point of debate.