ZSA - Can haz DAO?

Some of us have been discussing the idea of a Zcash DAO.

This got me thinking about what minimum set of features would be required to make a simple DAO. In its simplest form it would require an on chain voting mechanism that, when reaching a set threshold execute an action. Thoughts?

I suggested something similar when discussing minting/issuance of assets. It appears we might also want a similar voting mechanism for transactions too. It would require the ability for a ZSA holder(s) to have rights over ZEC (probably with no private key attached to ZEC).

As DAOs become more popular the idea of DAOs on Zcash, and possibly private voting, might be a game changer…

3 Likes

To be clear let me describe what I’m suggesting in more detail.

Transfering to an asset group

Each asset type has an address attached to it. This could simple be “zsa-[asset type number]” or something more complicated. Zcash will allow transfers into these addresses.

Transfering out of an asset group

Imagine a DAO asset where each member holds a share of the tokens. At the time the DAO asset was created the DAOs voted transfer threshold is set (e.g. 50%).

From then on any assets (ZEC or otherwise) transfer into the ZSA can only be transfered when the ZSA members initiate on-chain voting for a specific transfer action and the voting threshold is met.

I like it. As an MVP, the CAP voting could be done on it (and I think that’s a valid use case for a first-pass).

2 Likes

I decided to mention it into the ZSA proposal since I think DAOs solve some of the other issuance mechanisms that were mentioned in the proposal. For example watching other chains and minting assets accordingly.

The difference in the DAO case would be the “issuance” would be trigger by a group of nodes voting on it rather then something baked into Zcash.

ZSAs have huge potential if it’s done properly.

A private/public DAO on Zcash (transparent for legal records, shielded with signing keys for sensitive information) has the potential to function as a central bank and hopefully one day create decentralized governments where you can verifiably have voter authentication and auditing.

2 Likes

I’ve thinking about this the last few weeks since the devfund poll went live, it would be a good way to get a more accurate sentiment check on where it should head after the next halving.

Rather than using ZSAs is there a quick and dirty way it can be done using the memo field without being able to spoof the vote count?

Not currently.

I’ve brought this up a few times the idea of using the memo field to pass around ZKPs. You make a really good point about this being a really important usecase we have TODAY.

I know @ZcashGrants is looking this so who knows :person_shrugging:.

2 Likes

How about a wallet feature to delgate ZEC for voting?

Proof of funds can be done through a viewing key, for instance if you want to vote for “Outcome A” in a particular vote, the wallet app can send the number of ZEC you want to delegate for the vote to a new shielded address as to not expose the rest of your tx history, then send a shielded message to the voting address which contains the following info

  1. number of coins delegated to voting
  2. the voting choice (in this instance “outcome A”)
  3. a viewing key for that address
  4. birth height for sync effiency

So as long as the funds stay in that address until the end of the vote, (maybe even a vote window to allow more time to verify each address) the vote is provably correct and valid.

1 Like