Introducing Coinperson Voting: One vote per coinholder

No country lets people determine elections with their money. Zcash does.

Coinholders are not sufficiently represented today. Sign up for our upcoming poll in which we will do our best to only allow one vote per coinholder-person.

Introducing Coinperson Voting

Zec.rocks will conduct a parallel coinholder poll this December, doing our best to ensure that each person only votes one time. We are still iterating on the least-worst approach to verifying personhood for this first round.

While we build the process, please sign up if you are interested in voting.

We will solicit feedback from the community over the coming weeks on the least-worst potential approaches. We would love to collaborate with anyone here who is passionate about privacy and fair coinholder representation, on ideas to verify personhood.

Why another polling method?

Zcash coinholders are not provably represented today.

The word “coinholder” is not even defined in a ZIP, nor is what counts as a “simple majority” (do abstains count as participation? is it a majority of funds voted, or the number of ballots cast?).

This uncertainty is placing our keyholder organizations and ZIP editors at unnecessary legal risk, as our de-facto vote certification and governance/ZIP ratification bodies.

We have a very low voter turnout managing tens of millions of dollars.

Wealth-based voting is immensely discouraging to voter turnout. Today, Zcash coinholders can only vote with their money when determining coinholder retroactive grants.

Unless you own tens of millions of dollars worth of Zcash, your vote does not matter today. Have you felt like voting?

Should a normal person care to vote, knowing that one wealthy voter can determine an entire election?

Two Wall Street entities already have over 325,000 ZEC (~$400m) each.

At least one entity can single-handedly meet the minimum 420,000 ZEC turnout threshold for a valid coinholder-amount vote, according to ZIP 1016, §Disbursement process: “a minimum of 420,000 ZEC (2% of the total eventual supply) MUST be voted, with a simple majority cast in favor, for a grant proposal to be approved."

Holder ZEC held Value at vote Share of the 420,000 ZEC voting threshold
Grayscale Zcash ETF (ZCSH) 594,293 ~$750 million 141%
Cypherpunk Technologies (Nasdaq: CYPH) 326,417 ~$412 million 78%

It is unknown whether either entity has voted with its ZEC, but nothing in ZIP 1016 stops them - nor can any anonymous voting system. If they vote, their duties run to their own shareholders, not to Zcash users, and they could reasonably be expected to vote in their shareholders’ interest, whether or not that matches the interests of the broader community.

Voter registration anonymity might be an anti-feature for us.

Coinholders are not provably represented.

I believe that less than ten people have the ability to dictate wealth-based Zcash governance today.

In the last coinholder voting round (Q3 2026), $3.1 billion dollars worth of ZEC voted.

There is no current method to determine how many actual humans cast ballots.

We can do better.

Coinholder-person (“coinperson”) voting will be an additional data point for ZIP editors and keyholder organizations to reference when making legally-consequential decisions.

Let’s work together to ensure that large ZEC holders and normal Zcash users all have a voice.

Sign up to participate in the first Zcash coinholder-person vote.

9 Likes

Love the initiative. Curious how you plan on preventing Sybil attacks - got anything deeper to look at ?

3 Likes

This is an idea I support. The process of building a voting method for zec governance is important, however I believe if someone is able to delivery a clean, easy method for voting, increases the potential of zec adoption.
Please keep us informed.

Side note: I support zec.rocks

1 Like

… So the large coinholders send 0.0001 ZEC to another address, vote from it? And again. And again. And again. Suddenly, 100,000 ZEC can buy you 100/0.0001 = 1,000,000 votes provided you elect to spend 100 ZEC in transaction fees. 1,000 ZEC? 10,000,000 votes.

This can so easily be gamed. Remember, voting is shielded, and address history is impossible to view. One transaction can fund as many addresses as you like.

This is called a Sybil attack, and it’s a classic!

If you add barriers such as 1 ZEC per 1 vote, you’re back to the same issue again, but with a voting tax, which amounts to around 0.0002 (0.0001 to send in, 0.0001 to send back) ZEC per ZEC, which is 66 ZEC for a coinholder with 330,000 ZEC.

If voting for a proposal that nets them, say, $13M a year (yes, Cypherpunk earns this much extra if ZCG shuts down this coinholder vote), 66 ZEC is NOTHING. They piss that away every few weeks anyways.

Further, since they own the miners, they can just put these transactions inside their own block templates, getting back 40% of what they paid as transaction fees (66 ZEC) as miners of the block!

Last thing, even if a proper proof-of-personhood WERE to be implemented, such as KYC, that can also easily be gamed. Identities and “KYC services” from third world countries sell for what, 30 cents each? 30 cents per 330,000 ZEC is $99k, which is equally cheap or slightly more expensive than the 66 ZEC they spent moving the ZEC to 330,000 addresses!

Finally, I would just like to hear some nice ideas to mitigate this. I know my concerns often come across as bossy, I’m very sorry, but I would still love to talk about this! Love systems engineering!

2 Likes

Finally “one person, one vote”, one of the foundation of modern democracy (american and french revolution and so on).

Lot of experts have been debating electronic voting for years without success… Let’s see the details you have in mind!

I very much like this proposal, though there are a myriad of issues with this, which all come to the same question: how do we prevent Sybil attacks?

It all comes down to being able to narrow 1 vote to 1 human.

Not one address, not one device, not one authentication layer.

Whales have the incentive to:

  • Buy multiple devices
  • Send small amounts to newly created addresses
  • Hire any number of people

All to vote on a specific ZIP, i.e. buying votes.

A solution could be tying the vote to a series of custom proofs that certify that a specific shielded address is unique and ‘organic’, like ‘this address has a shielded note that predates block H’.

I would argue, though, that this solution would only work for a single poll, because it would be easily gameable from the next poll. Probably the best solution could be a random selection of criteria chosen from a set.

Been doing research for the past few hours but still couldn’t come up with an elegant solution, it’s very hard and we all know it.

I have an idea for something cool but there’s a bunch of weird little things to figure out, I’ll just dump the gist of it

Imagine you have a 3 week voting process. One vote happens on Week 1, Week2, and the final on Week 3. You take the average to get the true count. Each week only users holding a certain amount of shielded zcash get to vote, which both bounds chosen at random. So one week maybe only accounts with 5-20 zec can vote, and of course sybilers win for holding 10 zec on a million different wallets. BUT, if you were holding 2 zec, you lost! You can’t vote. And maybe the next week you can only vote if you have >50 zec in your wallet. And so on.

It would require a lot more serious thinking to get anywhere but I haven’t seen this explored before so thought I’d share it

The issue is the omnipotent adversary. Any adversary gets to hear the rules first, and therefore gets to deterministically bypass them. Every wallet of the adversary can be set up to seem identical to a normal user.

As much as I admire the idea, I think coinperson voting is a fool’s errand. We can’t all meet in a town square and generative AI allows us to create fake people on video calls. And I’m not the first to realize that attestation services are blind to all the other times that one has already created an attestation elsewhere IRL.

I would give it up on that and just choose whichever option (do X or not X) that will maximize the value of the ecosystem at best bid upon vote completion. If anyone thinks this is worth pursuing then I can do a longer post.

Would a wallet need to hold onto their ZEC until the voting ends? I don’t think so. Holding more helps in gaming it, but I think you’re forgetting the voting window divided by transaction speed as a factor. You could run a voting relay race with the same little stick.

I think significant effort should be put into implementing a “one person, one vote system”. I’ve written before about my objections to plutocracy, so I won’t repeat that.

Here is an idea: Web of trust, a la GPG: You sign someone’s key as high/medium/low trust, or refuse to sign. Signatures are published and parameters can be adjusted to define when someone has gathered enough community trust to vote.

1 Like

“Holding more helps in gaming it, but I think you’re forgetting the voting window divided by transaction speed as a factor.”

A transaction with 330 outputs, over 1,000 blocks? Takes half a day. 10 of these transactions a block? A little over 45 minutes.

@emersonian i’m working on proof-of-personhood tech rn. wanna chat?

2 Likes

So someone not in the community is disenfranchised? Then call it a community vote, not a coinholder vote. It’s precisely why it was divided between RCG and ZCG in the first place!

1 Like

Someone not in the community should not vote on a community decision.

To clarify, when I say community, I don’t mean just the forums, or the Discord. I mean all the people that engage with each other trying to grow this project through code, education, art, outreach, etc.

If there is someone out there sitting on a pile of ZEC in a cave like Smaug, it would encourage them to engage with the community, even if just to get the signatures.

Look. I understand. Which is why ZCG was created, and a slice given. But the money in the COINHOLDER fund is a tax on miners and coinholders alike. As such, they have the constitutional and moral right to vote on what happens with their money, and this is not dependant on whether they reach out, or not.

You don’t know everyone in Congress, but they still vote on what to do with your money, right? So you get to elect your representative fairly. If I removed that right and said “eh, someone not in Congress should not vote in a Congress decision”, you’d riot.

The miners have 20% of their reward cut to redirect funds here. 40% of that is given to the community to spend. I would urge you not to touch the 60% they have never earmarked.

Plus, you risk that they pull the power. Right now, ZEC is controlled by:

  • Fortitude: 20-22% (~5 Gigasols) of mining hashrate
  • Cypherpunk: 19-20% (~4.8 Gigasols) of mining hashrate
  • ViaBTC and Antpool: 40-60% of mining hashrate

These make up nearly 80-100% of the hashrate of ZEC. You reduce their profits in a way they never. voted for, and they LEAVE.

Do not do taxation without representation, it’s what led to the American and French revolutions.

I think it would be fairly easy for a representative of each of the miners to get the signatures they would need to vote.

Aha, a classic trap. How, precisely? By… going to a voting committee? Or can people refer each other privately (ZKP-based)? In which case… they are going to refer their own shell accounts.

One the other hand, one committee can decide who votes, the vote is rigged.

By sending a message to ZODL/ZF/Shielded Labs/ZecHub/etc. saying “Hi, I’m <miner>. I want to engage with the community, can you sign my key?”. There could even be key-signing parties at Zcons.

Each member of the community can make their own mind on whether the person is who they claim to be and not a sockpuppet and sign with their level of trust.

So… centralise voting? Rig it?

And how do they do that? By default every single new account is untrusted, and if this becomes the model, tens of thousands of new accounts will show up anyways.

Further, how is this not disenfrancisement?

1 Like