[PROPOSAL][DRAFT] Establishing a definition of NoWithVeto

Authors: Lexa Michaelides, Mai Ishikawa Sutton, Sacha Saint-Leger, Sam Hart, Udit Vira

Change log

  • 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.

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.

  1. As a stronger No: ‘NoWithVeto’ allows voters to show stronger disagreement than simply voting No.
  2. As a spam filter: It provides a means for the community to impose a cost on the depositor for putting forward irrelevant material.
  3. 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.
  4. 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).
  5. 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.
  6. 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 1/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 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:

  • 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.

7 Likes

At the bottom, you have to know if veto option but do not include its exact definition I believe that it’s a very good idea to include the full exact definition on the voting options.

I would also try to reduce the number of words in this proposal. The contextual discussion is important, but we should try to get it down to a paragraph, that way the text that is put on the chain can exactly match the text that is put here.

Also, I would try to make absolutely sure that none of this is left up to interpretation. That may mean striking the clauses about social protocols, because previously passed governance proposals are essentially law anyway they’re not social protocols. They’re the rules that users need to make decisions based on.

Another note is that I think that it really is appropriate to cite the consensus mechanism. In a world where all validators vote, 100% of vote power is represented. Yes, there are irresponsible delegators who choose to sit with validators who consistently make harmful choices for the network but all validators should be voting, because that is part of the designed representative role of validators in Cosmos.

3 Likes

Your post got me thinking and I would argue that all laws are actually social protocols/contracts. In society, I understand that there is this unspoken agreement that if I want to participate in my community and not be punished then I will adhere to some level of social norms and laws. Now if I were to break some of those social norms, say I steal a candy bar from a store, there isn’t actually any built-in mechanism that enforces the law around theft (it’s not like I steal a candy bar and suddenly a cage manifests around me and sends me to prison). Rather it is the duty of my local police force and community members to ensure that I am punished for breaking the law. Laws vary based on a particular geographical region associated with some culture or community and so they are very much social protocols or constructs. I think the debate around No w/ Veto perfectly encapsulates this concept since as a community we are able to give definition to our governance process and use it to hold people accountable.


General feedback.

You guys did a great job pulling in all the various historical context for considering where this debate about No w/ Veto stems from!

“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.”

I think the definition given here is great and makes the meaning of No w/ Veto very concise with little margin for confusion.

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 1/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.

This part in particular may be my favorite. It’s important to understand that PoS systems DO have a protocol level mechanism for censoring at the consensus layer and that the No w/ Veto option is really just a high level way to achieve a similar end through different means.

All in all, this proposal is great and demonstrates the dedication of various stewards of the Cosmos Hub to their commitment to ensuring process is clear and orderly for all participants.

4 Likes

Very interesting. Really appreciate the background. As an aside, I think we should probably separate out these multiple uses of NoWithVeto into separate options. In particular, add an “abstainSpam” or something like this. It seems like we are actually combining three phases of voting into one phase, maybe two phases makes more sense?

The three phases are:

  1. Is the proposal spam?
  2. Do we have quorum?
  3. Do we accept or reject the proposal?

I think either 1&2 or 2&3 makes sense, and anecdotally I think most systems don’t worry about spam so much and combine 2 and 3.

For the sake of being explicit:

“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.”

I see (1) as distinct from (2) and (3), given that one could argue (2) really should be a special case of (3).

2 Likes

Nice write up, 100%. so we can avoid “NoWithVeto = i’ll exit from the ecosystem” kinda things again.

3 Likes

Hey @jacobgadikian, @Ethereal, and @AFDudley,

Thanks for the feedback!

Exact definition in voting options

Here we figured the clearest option was to describe the on-chain behaviour of NWV in the voting options, particularly because we are suggesting a new definition. Is there anything you would specifically change or add to make the veto option clearer?

Character count

Very fair - I think we’re currently at around 11k characters and we need to get below 10k to go on-chain. We could separate the context into an appendix, pin the whole thing to IPFS and go on-chain with a shorter version.

Laws, rules, and social protocols

I really like what @Ethereal says - laws/rules are social protocols and we think it’s important to point out that people in our community are choosing to abide by accepted signalling proposals (and that’s a good thing - no one is forcing us but we are all still working together). But you’re right - something special happens to a social protocol when the community votes to accept it.

These may include decision-making processes and social protocols that have passed governance.

Would it be clearer to say something like:

These may include decision-making processes and social protocols that have passed governance and thus become accepted as rules by the community.

Consensus mechanism

It’s appropriate to cite it as a representation of what should happen in a perfect world, absolutely. Mentioning both situations (perfect world = all validators voting and 33.3% of total voting power is required to veto, reality = sometimes we just barely hit quorum and only 13.2% of total voting power is needed to veto) highlights a gap between design and reality that many people may not be aware of.

Voting phases - @AFDudley

I think spam gets lumped with veto because of the deposit burn - if we combine 1&2 of your options then you might get burned for not meeting quorum (which is not such a huge penalty in this market but when ATOM was high that would have been a big deal and maybe discouraging for governance participation). If you combine 2&3, which I think is what the Hub does, it’s just that NWV is a special case of ‘reject’ - when the community chooses to reject a proposal they might do so in a way that bring us back to 1 (it’s spam) or to a potential 4 (rejected for being actively harmful or not in line with the Hub’s rules of engagement).

1 - Is it spam? (if yes - reject and impose penalty as in phase 4)
2 - Do we have quorum? (if yes - move to phase 3; if no - reject with no penalty)
3 - Do we accept it or reject it? (if rejecting, move to phase 4 and decide if we impose a penalty)
4 - If we reject, do we also impose a penalty by vetoing?

Another member of the authorship team had more thoughts, maybe he’ll comment further :slight_smile:

3 Likes

Hey really good point about the 13.2%.

Also, @Ethereal isn’t exactly wrong, but I guess what I’m trying to say is that we should not follow non-defined protocols. Best example of this being osmosis proposal 188, I rushed it to the chain you see because I thought that it was a rather emergency situation. Now, after I rushed it to the chain, the wash traders, who were washed trading, he climbed to take incentives on their wash trading because their wash trading was intended to screw with bots that they felt were harming their pool.

In the end, I ended up being roundly criticized for violating a non -binding social convention that says hey put stuff on Commonwealth before slamming it on the chain, and okay like that’s fine, however very similar to the myth and lore that made 69 so challenging, there was a real problem with lack of clarity and definition on rules. So I figured that since the social convention was in fact very strong and I didn’t know that at the start, that it made sense to pass a governance proposal, osmosis 191, that set the expectation that proposal should be discussed on Commonwealth before putting them directly on the chain.

Likewise, I’m wondering how people would feel about a cosmos hub governance proposal laying out a similar process. The hub is different. Where osmosis values fast governance and very very frequent governance proposals, on the hub, I think that we value a slower approach we’re proposals are discussed for let’s say at least one week before being put to vote.

Another alternative is the creation of some kind of Cosmos SDK module that serves as a message board, perhaps using the ORM module that regen has put so much work into.

So I guess that I would really like to narrow the scope of rules on the hub to items that have been approved explicitly by governance.

3 Likes

We should not follow non-defined protocols

My team is definitely interested in doing the work to analyze our unnamed social protocols and put forward proposals that can be voted on to turn them into rules. This proposal itself is hopefully the first of many we put forward to enshrine. I hope that this collection of passed proposals could become the Hub’s governance constitution, made of all the agreements that the community has committed to uphold.

1 Like