Transparent ZEC voting mechanism

“I’m inclined to say that we should establish a process to ensure transparent voting is included alongside shielded voting if coinholders are going to have a greater role in governance and funding decisions. If a proposal like the Community & Coinholder (C&C) model is implemented, we should aim to maximize participation by allowing users of wallets like Trust Wallet and Trezor to take part, even if exchange-held ZEC is out of scope for now.” – Community Polling on Funding Model ZIPs - #87 by aquietinvestor

I absolutely agree. Let’s clarify how we can make this happen.

Hello @elenita. Given last time you were part of the people in charge of organizing this poll (Coin Holder Polling - Instructions), would you accept to help out with the new one? I would gladly spend some time to organize part of this but I am not sure how to proceed technically, is there a guide somewhere?

This may be the best possible design to vote with transparent address, but I would like to suggest one that, to me, seems a lot easier. Maybe it’s flawed somewhere, in which case hopefully someone can point out where:

  1. Sign a message with a user wallet and post it on the forum between a specific date and time window; like your example ( Sample Answer: 1A; 2E Let’s make more Zcash Swag; 3Y). On future votes, signed messages should be published on a more neutral place.

  2. Using the API of a Zcash blockchain explorer, we find out what is the lowest amount of ZEC stored on each ZEC address that has signed a message, between the dates of the vote.

And that’s it! It’s not written on chain but what does it change really? The checking for the lowest amount of ZEC stored on each ZEC address is to prevent voting twice with the same tokens.

This method seem very simple to implement and is not bothering participants with any particular limitations or complexities. But again, I may be missing the obvious and this idea is worthless; no problem.

Thanks to anyone that can assist giving a voice to ZEC holders not yet comfortable using methods, that although absolutely awesome and audited, have not yet passed the test of time. I too, will try the shielded vote with my 10 ZEC hot wallet, but people need to understand that you don’t handle 10 ZEC the same way you handle several thousands of ZEC tokens. Some people may be comfortable with the risk, some others may not, and we absolutely have to respect that. And not to forget, some people would have tax implications with the moving of their tokens, or even potentially renewed KYC/AML once they shield their tokens even for a short time.

3 Likes

This exactly, particularly given new rules about Universal wallet accounting.

2 Likes

I have quickly checked the three Zcash blockchain explorers displayed on https://z.cash/ecosystem/zec-block-explorer/; zcashexplorer.app, blockchair.com and bitquery.io. None of them seem to be providing API access to explore the Zcash blockchain. :person_facepalming: Am I missing something?

The alternative way to approach this is working directly with a Zcash node. If I have to spend time on this I’d rather spend it understanding the node that is supposed to be the most common in the future; Zebra.

Using the Kibana blockchain explorer may have some potential in getting us what we need but when I try to follow the compilation instructions I am stuck with an error.

Ok here’s a solution that can be done manually for now and scripted later whenever we have API access:

Once the vote is over, we use zcashexplorer.app to check two things:

  1. That no transfer has been done during the voting period
  2. The balance

Example: https://mainnet.zcashexplorer.app/address/t1VydNnkjBzfL1iAMyUbwGKJAF7PgvuCfMY?s=2821396&e=2843789

Take note of the s=2821396&e=2843789 representing the starting and ending points of the vote.

With API access we could allow transfers during the vote and just use the lowest balance during the voting period but given we may have to check things manually, for this one we would need to ask for no balance transfers to make it easier to review manually.

If 100 people vote using their transparent address, with about 30 seconds per address check, the process would take less than an hour to review. Three people could do this for good measure and ideally report identical results.

I think that’s it. Looking forward to the flaws of this suggested process. cc: @aquietinvestor

2 Likes

There is a privacy drawback with this suggested mechanism: Anyone posting a message signed with their wallet would link their forum user (and therefore potentially legal identity) with to their wallet.

Two suggestions to address this, there are certainly more:

  • Participants could create a new forum user with a disposable email address.

  • Someone could create a shielded wallet dedicated for voting and share the public address and viewing key, so that anyone can send their signed message fully anonymously and anyone can verify the signed votes.

imo this way would make the most sense to not have forum users dox their wallets - creating security problems for themselves

1 Like