[DIS] Community Fund DAO v1.1 Web5 优化提案/ Community Fund DAO v1.1 Web5 Optimization Proposal

Hey @david-fi5box, nice to meet you, thank you for taking your time to reply and explaining the reasoning :hugs:

Feel free to correct me, in short:

  • Binding/Delegation: Legacy standard, backward compatible v1.0 (Neuron)
  • Direct Vote: New standard (CCC-compatible wallets)

Side Note: From the Docs this distinction is not clear enough, please improve them to clearly reflect this message.

On the choice itself, I’d like to point out that this is a reasonable, yet arbitrary. That said, being myself a CCC contributor, I’m biased towards supporting it :+1:

Understood that binding is the legacy standard and direct voting is the new standard, these docs are the source to understand how voting happens: https://docs.ccfdao.org/en/docs/developer-docs/architecture/vote#casting-votes

Reading thru, it all seems pretty reasonable, except one crucial detail:

  • Each proposal is created with an associated authorized voter whitelist.
  • Each whitelist is created by the Vote Administrator at the beginning of a Vote.
  • An user lock to be able to vote directly must be in the authorized voter whitelist.

This has a few consequences:

  1. Vote Administrator has the full arbitrary power to decide who gets to vote and who doesn’t! :warning::warning::warning:
  2. New voters cannot join the vote on a proposal, after the vote already started (explained nicely in the FAQ)

The tech underpinning this whitelist is explained cleanly enough, yet the Docs do not explain the basic rules that bounds its usage by Vote Administrator, so currently the Community cannot judge if a future use of such whitelist is a misuse or not.

For example, Vote Administrator can fully ban a Voter at his own arbitrary choice. Pretty sure this doesn’t happen in US presidential elections.

So my additional questions are:

  • Why do we even need a Voter Whitelist?
  • By which rules is bound the use of an all powerful tool such as Voter Whitelist?
  • How can the Community Audit that no mismanagement is done in the Voter Whitelist administration?

Feel free to take inspirations from my previous questions/examples,
Phroi

PS: There seems to be a misunderstanding about whitelists. Team is clarifying on Telegram, so we are discussing over there Telegram: View @NervosNetwork

PPS: Copy-pasting relevant messages:

@_magicsheep :backhand_index_pointing_right: Telegram: View @NervosNetwork

Hey Phroi and Matt, thanks for the scrutiny! I’m haoyang, one of the DAO steward team member, yeah the name does sound scary :sweat_smile:, but I can assure you that this is just a naming issue, it works like this:

If you just staked your CKB, the DAO 1.1 platform needs a bit time to pull this information (currently set as once per day, UTC time); the “whitelist” is to speed up this process so testers (like me) can start testing without waiting. We just finished a meeting and agreed that the name is quite misleading, maybe “voter snapshot” would be better.

But rest assured, this does not mean only people in the whitelist can vote, everyone who staked CKB can, you can verify this once the platform is launched on testnet for community testing :slight_smile:

@phroi :backhand_index_pointing_right: Telegram: View @NervosNetwork

Hey Haoyang, nice to meet you and congratulations on the steward role :hugs: Name change is welcomed. That said, I would try to explain more the:

Why do we even need a snapshot/whitelist of voters in the first place?

Issue: potential for long-term abuse and centralization is really high, so there must be an even better reason to introduce it in the first place (V1.0 indeed doesn’t have it)

Hypothetical Example:

  1. In 2 years Cao Cao is elected in the yearly election for Community DAO v1.1 Roles as Vote Administrator and the other roles are filled by his evil lackeys
  2. Now Cao Cao is the one controlling both the Voter Snapshot tool and the on-chain cell representation.
  3. Cao Cao decides to ban all voters except for voters he controls.
  4. Cao Cao updates the on-chain representation of whitelist, cause he is the one who has the power to so and there is no rule saying that he cannot do that.
  5. Now Cao Cao fully controls CommunityDAO v1.1 until the next Community DAO v1.1 election
  6. Cao Cao wins all upcoming elections, cause they are gonna be based on Community DAO v1.1 votes he controls (right?)

Result: Cao Cao owns Community DAO v1.1 treasury :exploding_head::exploding_head::exploding_head:

I’m sure that you have pretty good reason to introduce it, so please explain to the Community your reasoning and the rules that underpins its usage. Also, what happens if these rules are violated?

Love & Peace, Phroi

@_magicsheep :backhand_index_pointing_right: Telegram: View @NervosNetwork

Hi Phroi, totally valid scenario, and I just asked the dev team, they said this feature is only there for testing purpose, and it will be removed after the mainnet launch.

Although one thing I think worth clarifying is that the current whitelist mechanism doesn’t ban anyone from voting, it’s not like only the whitelisted addresses can vote, anyone with staked CKB can, the whitelist only accelerate the speed for the current system to find the information about who has staked CKB, it doesn’t prevent any addresses from voting.

@phroi :backhand_index_pointing_right: Telegram: View @NervosNetwork

Hey Haoyang :hugs: That’s very reassuring, thank you!! So glad to see this cleared up! Just to make sure that we are all on the same page, could your team update the Docs to reflect this change?

Feel free to update:

Documentation > Developer Docs > Architecture > Vote System:

  • Vote Creation Workflow
  • Casting Votes
  • SMT Whitelist Tool
  • Vote Data Models

Documentation > Developer Docs > Architecture > Technical Overview

Documentation > User Guide > Frequently Asked Questions:

  • Voting Rights & Eligibility > Who can vote?
  • Voting Rights & Eligibility > I just registered a Web5 DID. Why can’t I participate in the current vote?

Documentation > User Guide > Getting Started:

  • Important Notes

May I additionally suggest that if something exists only for testing purpose and it will not be in production, clearly label it as non-production / testing-only in Docs. This way by reading the Docs all the Community can clearly understand how CommunityDAO v1.1 is gonna work.

Also please, remember to tag me on the progress made to clear up this misunderstanding, I’d like to keep an eye on this.

Love & Peace, Phroi

4 Likes