-
Notifications
You must be signed in to change notification settings - Fork 374
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
GOR — Governance Module #409
Comments
I am not sure wether I'll actually try giving a crack at this, but I was pondering about it and I wanted to share a few questions and observations I had, as I think they might help in scoping out the task. Voting power determinationIn the Cosmos Hub governance voting power is determined from the amount of bonded ATOMs. The relation is 1 token 1 vote. @moul: How does Gno.land modified version of Proof of Stake (Proof of Contribution) works in practice? I am asking because I am trying to understand whether the system can be used to also determine somehow the voting power for governance. From what I can see Tendermint voting power is currently statically defined as there is no module to handle dynamic voting power based on bonded tokens (i.e. no However, for both systems I would argue that having delegators inherit the validator's vote if they don't vote themselves is not the right path. This - I argue - will provide a platform for more politically-aligned governance delegations to exist, but mitigate the influence that this can have on the validator set (which should be chosen using different criteria). Not every network participant is always able to dedicate the necessary time to engage in governance, or the knowledge or expertise to judge fairly on every matter. I believe in this sense some form of (always overridable) delegation is beneficial. To this end, the GOR governance smart-contract suite should allow for delegations that are independent from the underlying security mechanism. Users that have governance voting power (how this is determined is to be specified) should be able to delegate it to elegible entities, i.e. delegates. This is similar to how, for instance, Optimism works (interestingly enough, Optimism also has a constitution). Anyone can permissionlessly propose themselves as a delegate to be elegible to receive governance delegations. Delegates are supposed to be public (but not necessarily doxed) figures, in a similar way to validators, and should engage actively in public discussions and debates. Users should always be able to override their delegate(s) vote, as well as re-delegate their governance voting power. As this system is not tied with the blockchain security model, re-delegations and un-delegations should always be possible and instant. Un-delegations do not necessarily "unbond" tokens (with a specific reference to the Cosmos Hub, since it is not completely clear to me how Proof of Contribution works) but simply remove the existing governance delegation(s). On the Cosmos Hub, this feature might be achievable without modifications to Votes and Vote TallyingThe protection of minority interest remains a foundational aspect for any truly equitable, fair and abuse-resistant governance system. It's important that the network possesses the correct mechanisms to protect every current participant. This is especially true as sub-communities have always the right to fork the original network should they feel the need, and leave the current network if it's not going in the direction they agree with. But the other way around - i.e. "coercion" of a relevant minority - is inadmissible. For this reason, the no with veto vote option currently present in the
Moreover, in my opinion the controversy regarding how currently no with veto votes are counted on the Cosmos Hub (stemmed out of Cosmos Hub's prop82 discussions) is to be brought up, and addressed. In general, abstain votes should never be counted when tallying. The intent of an abstain vote, as stated in the No and No With VetoThe original Cosmsos Whitepaper presents a different specifications than what has been ultimately implemented in A few considerations:
Two-thirds supermajoritySome types of proposals (e.g. constitution amendments) should also only pass if a strict supermajority of yes is achieved (as also mentioned in the Atom One constitution). This is to remove both the social pressure that minorities might subject themselves to for openly challenging these proposals with no with veto votes (as it arguably happened [1, 2] during Cosmos Hub's prop82), as well as the need to incur in penalties by using no with veto in these cases. For these proposals, the no with veto option would be absent. These proposals should also have a longer voting period. If - for example - deliberation for a "normal" proposal is 2 weeks, for these proposals the voting period should be 3 or 4 weeks. However, having this mechanism does not preclude the need to preserve no with veto as an option for other proposals. Signaling proposals (i.e text proposals) might not include a supermajority threshold for passing, but they might be equally risky. We have had multiple examples of this happening on the Cosmos Hub. Depoist refund and burnI don't see as correct the automatic burning of the deposit that happens currently in Cosmos Hub's I argue that in the case when either no or no with veto are selected as vote, the voter should also specify (as a corollary preference) whether he considers necessary to punish the proposal by burning the deposit, in a binary way (yes or no). At vote tallying, deposits for rejected proposals are burned if and only if a majority of no votes opted for burning the deposit (assuming again no with veto are aggregated to no votes with a 1.5x weight). This would still mitigate spam, but prevent unduly punishing of controversial but clearly not spam proposals. In general, when a proposal is deemed to be spam, no with veto votes are usually well above the 1/3+ threshold. Deposit period, UX and
|
Hey, thank you @giunatale 🙏 FYI: This kind of public retrospective is very helpful and can count as a contribution when being reviewed. I'll take the time to make a longer answer soon.
|
Thank you for your reply! Looking forward for a more in depth answer. Feel free also to comment on everything I wrote.
I understood this, I made some comments that could also translate to the Cosmos Hub due to it being referred to in the description of this issue. The primary goal is the GOR smart-contract suite, but I found interesting to envision how this could also translate for changes/improvements for the broader Cosmos governance
Sounds reasonable. But with the system I had in mind, the veto option should have some sort of associated cost, so that's also why I was interested in understanding. Yet I agree it's not necessarily a blocker. |
Hey Gnomes! We would like to share our ideas at Onbloc so far in regards to this challenge. Your feedback is much appreciated to refine and complete our initiative through the power of collective intelligence. We look forward to seeing discussions & debates around this draft as an effort to design the most effective governance module in the space! A TL;DR of our ideationA fork of the
On-chain Managed Membership System for Proof of ContributionGnoland Team, as previously discussed, is proposing the creation of a PoA-based consensus mechanism for Governance and Chain Validation. To achieve this, we need an on-chain managed tiered membership system for Contributors. It makes sense to issue these memberships as NFTs, specifically SBTs or other non-transferable token specifications, to prevent selling and maintain the spirit of Proof of Contribution. All Contributors would have equal voting rights, but differentiating them by tiers is necessary. One important consideration is the ability to "slash" memberships if necessary. A potential solution is to add a proposal function that can modify the NFT's metadata to mark it as invalid. Removal of delegation-based
|
Thanks for sharing your thoughts openly @adr-sk. I am definitely interested in collaborating on converging on a common design if this sounds interesting for you too. I'll try to comment on a few things. It's important to remark - as also done by Manfred earlier - that the result of this challenge should be a suite of smart-contracts. We can't resort to forking On the bicameral governance structureI always thought this was an interest idea to explore, and that's also why I am fascinated by the Optimism governance experiment. After also reading Moving beyond coin voting governance by Vitalik I am very much of the idea this is the correct path forward. PoC is more akin to PoA than PoS, but I believe it's not through NFTs or SBTs (seen as non transferrable NFTs) that membership is acquired, but by through $GNOSH (if I recall correctly), and $GNOSH are fungible (you can have more $GNOSH based on how much you contribute) but you can't transfer them. I believe this is how you achieve the tiered system (more $GNOSH = higher tier). But I am just trying to reconcile info from scattered discussions with Manfred and stuff I've heard or read online so I might be wrong. In any case, it still makes sense that 1 account (i.e. 1 member) = 1 vote for the Contributors' House. And to that extent, that some mutable metadata about contributors is kept (akin to storing metadata in their "soulbound token")
So here 1 member = 1 vote (almost). However with an associated actual "weight" in [1, 0] that accounts for slashing (for penalties due to absenteism as you mention).
The penalization mechanism you propose later in your document makes sense for the Contributors House, and I agree this functionality should be implemented. Slashing should be up to having your VP go to 0 and stay at 0, but I am not sure what you meant by marking it as "invalid" here ($GNOSH should still entitle you for rewards for your previous contributions, you just can't vote anymore) For the Token House, a delegates system still makes sense to exist. It's a bit more tricky for the Token House to properly establish rules around slashing for absenteism or usage of NWV (should voting power slashes affect the underlying tokens? I argue they should not, but how this can be done efficiently - also from an actual implementation point-of-view ?). While I agree that separation of powers (and competences) for the 2 houses is ultimately what makes this system powerful (and I like the one you propose), I also think there should be a way for more direct interaction of these two houses, and in particular the ability for the Token House to veto the Contributors' House on a specific proposal (while I don't think the other way around makes as much sense given the separation you propose). On Supermajority Votes and No With VetoAs we also discussed on Discord, I very much agree and am in support of having 2/3+ supermajority for certain proposals, however this does not completely mitigate the issue. While I think we will get rid of most points of friction from the re-envision of the governance system with a bicameral setup (so situations like prop82 will be next to impossible to happen), the issue with the no with veto option still remains. We should keep this in mind as progress is made on this task On optionsOptions could be a very interesting incentivization mechanism, they are used pretty regularly in traditional corporations. I've been tinkering with options as well as an idea and I find interesting you mentioned them too. It's a powerful derivative that can offer many benefits. However, it can't really be used for funding the way you propose, since the contract you have in mind is not exactly an option (which is price-based). But keep pushing on the idea cause it's worth exploring. In some way or another, alternative incentivization schemes and funding mechanisms are required in my opinion. |
Hey @giunatale, thanks for your reply! I’ll try to address your questions/concerns below:
I first want to clarify here that “the NFTs/SBTs as memberships” is a new idea, partially inspired by POAP. This is not something that was officially announced or suggested by the Gnoland team (unless I missed something). There are two reasons why I believe this approach could work well:
I believe this is a challenge faced by Proof-of-Authority consensus mechanisms in general. A potential solution would be to introduce some form of identity verification for Contributors, similar to what Optimism has implemented with their delegate profile verification using Twitter/Tally, but with no external dependencies (in terms of outsourcing something outside of Gnoland). To ensure authenticity of addresses, I suggest we incorporate a relatively high requirement for GNOSH holdings to prevent the creation of pseudonymous profiles by spreading Contributions across multiple wallets.
As discussed on Discord, I agree that implementing a delegate system, similar to Optimism or Uniswap, for the Token House would be a viable solution and deserves further exploration. Regarding the voting weight (NWV) and slashing for the Token House, it makes sense to have a supermajority requirement for all proposals put to a vote. This reflects the higher level of coordination and commitment required from the community for significant decisions such as dismissing Contributors, amending the Constitution, or vetoing proposals from the Contributors' House (as suggested in your comment).
The term “option” is simply a placeholder for a name of the proposed mechanism – it can be replaced with a more appropriate name. The temporary name “OPTION” was chosen, as by purchasing OPTIONs, supporters are basically speculating on the completion of the project which is similar to a “call option”. If anyone has a better name for this, we’re open to suggestions.
The proposed system is where speculators or supporters of grantees purchase OPTION tokens, akin to an angel investment. For instance, if a grantee proposes a community pool funding request for developing a frontend for r/boards and the community deems the grantee to be capable, the price per OPTION in GNOT would be relatively higher (as it's likely that the deliverables would be completed before the deadline). Conversely, if the grantee has a low track record and proposes a complex project like a rollup chain in Gnolang (or whatever else that could be complicated) the price per OPTION would be lower due to the uncertainty of completion. In the event that the grantee completes the task, the supporters who bought the OPTION at a low price could potentially see a high return (high risk / high return). This mechanism aims to facilitate more daring proposals while safeguarding the community pool funds from being spent on incomplete projects. The only risk would be if the Contributors refuse to vote the deliverables as complete, which I guess could be perceived as an "oracle issue". However, this is unlikely as the Gnoland ecosystem would not attract contributors or new projects if grantees are not fairly rewarded. I'll try to explain more on this on the formal proposal that we plan to release by the end of this week. As we've both agreeed that the bicameral system is worth further developing, the next step for us could be to specify the responsibilites of each House. I think the fundamentals should be defined as the Contributors' House having the "power to execute" and the Token House having the "power to veto". From the implementation point-of-view, we could incorporate a timelock that allows the Token House to run a veto proposal, which can be seen as something similar to the concept of challenge periods in rollups. What are your thoughts? |
I think we are converging to some common design :) cool @adr-sk
What I was arguing is that a
Contributors are $GNOSH holders, tier is determined by amount of $GNOSH. I think this is irrespective of governance participation and more related to the underlying PoC.
Updating entries in the
The
Access to the House of Contributors should not be gated, or at the very least this should be configurable. The issue with sybil resistance is out of scope for this task and I was more asking to @moul. We should have this in the back of our minds but should not be our focus here.
Giving the proposed separation of competences, I was actually thinking the same. This might be an easy "fix" and makes a lot of sense for the Token House. Regarding options, I would leave this on the side for now as it is relatively out of scope (at least to get to an initial design). I am in favor of the proposed separation of powers. I also like how you defined them (power to execute, and power to veto). The Token House would exist primarily for three reasons (taking inspiration from input from @adr-sk and the discussion we had. I argue btw that additional minting of tokens in an unscheduled way should never be allowed)
Anyone, however, should be able to submit proposals, irrespectively of which House would be responsible to vote them.
So, in essence any proposal up for vote for the House of Contributors can be challenged by a sufficient number of votes from the Token House. During the voting period Token House voters can actually cast votes, but the only voting option for them is "veto". They can only decide either to veto or not vote at all. If a set threshold is reached when votes are tallied the proposal is vetoed. |
I've gathered our discussions so far and uploaded a proposal in a separate issue. I'm looking for members from the community who can help complete/implement the proposal. If our ideas sound interesting to you and you'd like to contribute by providing insight, please leave a comment on the issue so we can discuss further! |
To make the challenge more manageable, we've isolated a simpler part that's maybe more appropriate to get started. Please check out #728. However, working on the complete task is still worthwhile. |
Hey everyone :). Thanks for inspiring me to finally start writing and capturing some thoughts for a project I've been prodding forward largely in stealth mode until the past few days linking to it from Gno.land related posts. My project has no relationship to the Cosmos world/governance system, but I wanted to capture my thoughts even if only in rough draft before diving into x/gov. I've aimed to highlight some of the concepts, principles and constructs I see needing consideration with my own project, which may be relevant to a DAO-of-DAOs model more generally. I'll aim to dig through the Cosmos governance model to see where there's overlap/conflicts/divergent conceptual approaches to try to refine some feedback more relevant to this issue if I can think of any suggestions after a deeper dive. In the meantime, the initial draft is captured at Proof-Of-Reciprocity: Social Capital Derived Governance. It represents an incomplete, largely top of mind brain dump of the loose model I've had in mind for my project that seems most applicable to the problem being solved for here. Would love any feedback on any of the thoughts found there :) |
Adding to my last post, I didn't exactly intend to start playing with code for the still super loosely defined model I'm chasing, but as it turns out... Gno is too fun so I ended up starting to pick at it lol. Another blog post covering the escapade so far, and I've tossed the WIP at GH in a commune branch. It's made up of a Definitely 100% a toy still, but I want to say thanks to this project for finally inspiring me to both write more, and to finally put some code to the part of my project I hadn't started coding. Guess I was just waiting for the right layer1 project to come along :P lol |
I haven't quite gotten around to pulling the changes up into the Realms so I don't have a wrap up of this written, but I've just pushed some updates to a I've better fleshed out the imagined identity package, and pulled it into the previously defined dao package with The identity package defines Next up I think I'm going to dive into expanding on the Any feedback welcome. It's been fun massaging this out :) Edit: Editing rather than spamming more. The |
Note: this issue will be updated to keep track of changes in rules.
Challenge Description
Define and Implement a Governance smart-contract suite capable of competing with existing chains’ governance modules. If you think you can improve the governance system of Cosmos Hub, this is your chance to show us how!
What we look for in the submissions / suggestion on what could work for addressing the challenge
What wins points
The text was updated successfully, but these errors were encountered: