Skip to content
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

Begin private voting docs #545

Draft
wants to merge 2 commits into
base: main
Choose a base branch
from
Draft

Begin private voting docs #545

wants to merge 2 commits into from

Conversation

ValarDragon
Copy link

@ValarDragon ValarDragon commented Nov 21, 2022

Starting some documentation for how I suggest architecting private voting into the DAO DAO design.

This is very WIP. If I get more time available during the week, will write up more on circuit design / other constraints!

Rendered readme - gives higher level overview, and where its expected to sit in with other modules

Rendered Spec - Intended to go into more details of cryptographic constructions, merkle trees involved, and client side UX. Still have a ways to go on this unfortunately

Code - Not started yet

@0xekez
Copy link
Contributor

0xekez commented Nov 22, 2022

this is really cool. i like your description of zcash and the idea here. it sounds reasonably intuitive, though i'm unfamiliar with zk proofs so i'm unable to verify it. :)

one note from reading through:

So the voting power a shielded voter has, must either be frozen at proposal start time..

we do all of our voting power as a function of block height so that this is the case. from your earlier interface, this makes it:

pub trait VoteModule {
  fn voting_power_by_addr(&self, addr: Addr, height: u64) -> Option<Uint128>
}

allowing voting powers to decrease may be fine though, so long as we don't also allow increases.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants