Issuance
TLDR; we should consider only allow for a single issuance of assets at asset creation time. My understanding of the issuance discussion was that allowing for multiple issuance calls was one of the likely options. That might be the best option but I want to make sure the team has thoroughly thought through if there are actually any benefits or if we are just complicating ZSAs for the sake of having nice sounding “issue” function.
It might be better for users to issue large amounts of assets at ZSA creation and disperse them as needed from a single/multisig address.
There are a few concerns I have with multiple issuance:
- How does an owner of “wrapped Bitcoin” transfer the issuance keys to a new owner?
- We can barely trust certificate authorities to never leak private keys let alone a $1B wrapped Bitcoin asset.
- It adds extra consensus rules
- There’s a meaningful amount of work for providers, exchanges, explorers, wallets, developers, and users to adapt to the idea of multiple issuance.
- When we implement DAOs we have the extra complexity of DAOing transfers AND issuance.
- How does burning work?
Single issuance answers a few of these questions:
- An owner of “wrapped Bitcoin” can transfer the remaining issuance holding to a new owners address.
- If the owner of “wrapped Bitcoin” was worried about the safety of their private keys (e.g. hardware lost/compromised) they can transfer assets to new address (with their backup).
- Single issuance during asset creation simplifies implementation of ZSAs and reduces surface area for attack/audit.
- Single issuance would mean explorers/wallets don’t have to worry about the UX concerns of multiple issuance.
- Zcash DAOs might be simpler to implement if only having to deal with transactions and not issuance.
- In most cases sending an asset back to the asset disperser/DAO would be equivalent to a burn.
Unfortunately we don’t have DAO like structures yet but I imagine sometime in the future we have something similar to ZSA-addresses.
I feel like multiple issuance adds unnecessary complexity to implementing DAOs. For example could a ZSA-address control issuance?