A key feature of NEAR’s Sputnik DAO is voting on proposals, but currently the votes are all publicly visible on the blockchain. The Cypherpunk Guild is interested in sponsoring a private-voting feature, and would welcome proposals.
Sputnik 2 enables DAO members to be assigned roles, and then have role-dependent voting privileges. Votes should be selectively visible to four tiers of roles: public, DAO members, role members, and no one (anonymous).
This would require:
Zero-knowledge proofs (for set inclusion or token ownership via state roots).
Sending transactions anonymously, probably via a relayer that would:
a. be discoverable
b. be pre-paid
c. validate proofs
d. relay proofs to the chain
It will likely be necessary to build on one of the ZKP infrastructure projects that are currently under way, e.g. ZeroPool.
MACI is an inspiring bit of software that uses ZKPs to implement an interesting aspect of private voting on Ethereum’s CLR.fund. Here’s a recent discussion with creator Koh Wei Jie: