[ZIP 227] Should there be a limit on total issuance of an asset lower than 2^96?
@arya2 asked:
Is there meant to be a maximum total supply of issued assets? (e.g.
u64::MAX)
Currently, the only limit on the total issuance of a given asset is the one implied by the maximum value of a note ($2^{64} - 1$ units of that asset) and the maximum size of the Orchard note commitment tree ($2^{32}$, if all notes were of that asset — although obviously some notes already exist). This gives an upper bound of just under $2^{96}$. However, there is no implementation guidance on how amounts of an asset should be represented, and so an implementor might naively assume that a u64 is sufficient. ZIP 227 does not explicitly state the type of asset balances (it would be in Specification - Global Issuance State).
Should there be a consensus rule limiting issuance for a given asset? It does not appear to be necessary for the rest of the protocol to function correctly; the argument for balance in § 4.14 Balance and Binding Signature (Orchard), adapted to allow multiple value bases, does not need it.
Whether or not there is such a consensus rule, the type of asset balances should be given.
https://github.com/QED-it/zips/pull/83 adds to the specification a maximum supply value of $$2^{64} - 1$$. That PR has been merged into #960.
This limit is present at https://zips.z.cash/zip-0227#global-issuance-state and was originally merged in #974.