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…
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 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.
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.
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?
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 .