This is a proposal directly related to @zooko’s Zcon4 talk. [link]
Tl;dw of his talk
current zcash issuance → 80% to miners; 7% to ECC; 13% to the Foundation (8% of the latter go to the Grants Committee).
The community is currently discussing between
Abolishing this funding mechanism all together
Changing it
Keeping it as is
Option 2 looks to be the most popular path forward.
Proposal
Implement a curve-like gauge mechanism that decides on the distribution percentages.
Make the vote bi-annual (twice a year), and if possible shielded.
Gauges could be added and removed through governance, this could be useful for further legal entity decentralisation; e.g. adding the swiss developer entity, Qedit, a Cayman-registered foundation, an anonymously-run micro-grants sub-dao etc.
limit the rate of change between votes, e.g. a gauge can gain/lose at most 1% of funding per voting round. This is to prevent rapid over-funding or sharp declines.
implement quadratic voting to prevent whale addresses (only partial solution, but it’s better than nothing)
making it all onchain would be the dream.
This gives:
Greater power to ZEC holders
Funding flexibility with the option to onboard more entities if needed
Looks like a good start. Im not a fan of more entities. I would like to see a more vibrant ecosystem that is not dependent on ZEC coin issuance (which is centralized funding). The only solution I can see is gas (which in reality to me looks like a transaction fee). Entities would need to come up with a business model that supports itself and can pay the gas to ZEC blockchain among other uses. Then if they can invent or create something to run on the ZEC blockchain, they don’t need to really ask for money or approval, do they?
This is arguably not a realistic path forward when it comes to endeavors like maintaining dependencies, marketing, R&D, etc.
For off-chain services that leverage the ZEC-stack yes, their revenue should be held independent from the issuance stream.
We’d absolutely need to keep issuance funding for otherwise non-profit, but crucial ecosystem task like R&D and policy advocacy.
Can you define what you mean by this gauge mechanism? I am not super familiar with Curve.
My guess is that it’s something like there’s a percentage X% destined to some recipient and in any given interval that can increase or decrease a limited amount, based on some kind of voting. Is that approximately correct?
For example, SomeOrg might receive 2% of issuance and then after an adjustment process, that grows to 3% (or shrinks to 1%).
And then it seems like there is a separate gauge for every recipient org?
Hm, so one challenge is to figure out top-level constraints. Assume we stick with BTC issuance schedule, so there’s an issuance cap.
What happens if all the gauges increase? Does the total Dev Fund v2 size go up? Is there any limit? Could it go up to 99% Dev Fund v2 and 1% mining (or staking, etc…)?
Ok, so I would advocate for having some strict bound to ensure some guarantees about consensus security based on some “tokenomic” security models and also based on “social contract”-style constraints. For example, the community may widely agree if there is a DF2 it must be ≤ 20% of current issuance, so that would be a “social contract” cap.
So if we have that cap, what happens if one gauge goes up? Then other gauges must go down. This introduces a 0-sum mechanism that we should be aware of. I don’t think that’s a show stopper, just something for us to all realize would influence politics. (We already have 0-sum trade-offs due to the issuance cap and max supply, ultimately).
I like the idea of quadratic voting. The blocker, for me, is that it requires solving the “Sybil attack” problem, because it is tied to specific individuals. So it requires having some way of identifying people. Every way I’m aware of for doing this is too flawed, IMO. I think Worldcoin is may be the biggest experiment in trying to solve this permissionlessly, and I’m quite concerned about coercion/abuse issues there. Or there are many permissioned solutions, but that introduces gate-keepers and associated abuse. Gitcoin is the best example of doing this reasonably and responsibly, but IMO their approach isn’t suitable for Zcash L1 governance.
However, maybe the perfect is the enemy of the good. What are some practical shortcuts we can take for “version 1” that we can later improve?
If gauges are set at an initial “maximum” and then can be decreased through some on-chain mechanism, this removes the “0-sum” problem because a given recipient doesn’t directly benefit if a different recipient loses funding.
According to @hloo on a governance town-hall, @amiller proposed a miner signaling mechanism that is a kind of gauge mechanism: each recipient has a max of some percentage, then miners can either choose to pay up to that amount or less. This establishes some kind of permissionless gauge and it doesn’t have the 0-sum competition problem. It’s no direct financial benefit to a miner to pay less than the maximum, so hopefully they’d use their discretion wisely.
What if we do a similar thing with coin-weighted voting? It’s not quadratic-voting (which I like) but it doesn’t have the Sybil problem. Instead it has the “whale-governance” problem, but we’re just limiting it to this gauge mechanism.
Finally, these “practical tweaks” still don’t get us to a point where it’s easy to onboard new orgs, though.
I personally like exploring this direction and hope to see more conversations around these kind of “governance structures” explorations (which I consider distinct from “governance content” discussions like which orgs should receive how much funding to accomplish what goals).
Baking in more orgs to the current Block Reward feels like a lot of contentious energy, at the risk of little return. The ZCG needs to be taken seriously (perhaps we need more members with more industry experience wrt grants evaluation and selection) on the committee, and it should be the justice to granting large funding amounts to what you could today call NewOrgs
issuance funding should eventually be eliminated and transitioned to transactions based funding. Issuance funding was good to get the ecosystem developed. But it needs to evolve into a gas based ecosystem and not a centralized blockchain issuance based system. So a model where ZEC charges a portion of the gas fee and the fee gets split to its own dev fund for only ZEC based projects. It becomes self funded. Why would we want to maintain something if no one uses it? The only way to know if people use it or value it, is to charge a gas fee.
i.e. people can vote on the weights of the dev fund distribution, total issuance will remain the same while the miner portion is an invariable (80%, for now).
Example scenario:
2024 Q1 we start with 13% of total issuance going to the ZF + Grants, 7% to ECC
2024 Q3 first vote by ZEC holders:
ECC has not made any wallet progress, PoS research is falling behind.
A Swiss-based development collective/company has meanwhile made tremendous strides in Wallet UX and needs funding to pay its engineers. That company requests its own gauge on the forum.
$ZEC holders vote to not only accept the gauge, but some go as far as to vote for them, thereby directing future issuance to them.
If we assume no sentiment change regarding ZF, then this would mean a maximum change in issuance to: 13% (ZF + Grants) + 6% ECC + 1% SwissCorp
Respective hypothetical voting results (only counting those who voted) : 65% voted for the ZF-Grants Gauge, 30% for ECC, 5% for SwissCorp
Total issuance would not increase.
We could think of many other examples:
an overly compliance hobbled ZF vetoing more and more grants
AML & KYC requirements for Grants rendering it unable to fund those Zcash ought to protect
I disagree. Comparative advantage shows that $1 spent by one entity will not result in the same output as $1 spent by another. Re-allocating funding in an open and fluid way could open the door for cheap, incentive-aligned expertise outside of our current framework.
As in: it’s 0-sum from a resource distribution perspective, but not in output.
Yes, unfortunately not a perfect solution, but maybe good enough to discourage a public company to throw their transparent ZEC into a vote.
I like the Gitcoin solution, but as you say, incompatible with Zcash.
miner signaling
I don’t think miners are incentive aligned enough to sustainably voting for the protocol’s well-being.
That would be a good start. Process has been tried in the past and gives an idea on what quorum percentages to implement for upcoming systems.
I hope this will happen one day. It’s happening on ETH, while even BTC blockspace demand is not signaling a sustainable fee-based security budget in the slightest.
Don’t forget, to fund the chain’s security budged through fees, while those remaining abundantly cheap, we’d need magnitudes higher transactional volume. While I’m all for moving away from a purely inflationary security thesis, I think we’ll need to see how things develop over the next few year before before attempting a fee-funding design. Tangentially, maybe the best talk from zcon4 (youtube link) I believe his stance on a morally agnostic Zcash needs to become foundational among the community before we can see any mainstream adoption.
I agree for anything to be successful it needs to be morally agnostic. So I hope when we say morally agnostic, it means privacy based stablecoins. Particularly the USD. Now I think its fairly clear that any wallets will need to have KYC for mainstream adoption. But that would be up to the markets wallet creators are targeting.
They can work alongside each other during a transition phase. So lower fees initially that ramp up over time.
That ZIP is a great proposal. It is depressing to see how many innovative proposals have been raised by the Zcash community in years past 2018-2020 but the authorities at Zcash Foundation and Electric Coin Company don’t seem to give them serious consideration. Is this a matter of power dynamics or is it a matter of resources or of technical capacity? Decentralization of Zcash block rewards distribution would be an entire halving cycle ahead of the current pace, if miners had been granted the discretion from ZIP 1004. Tinkering with the block reward will always be contentious which leads me to believe that it will tend always to remain as-is (this is not an innovative default mode). Perhaps with Proof of Stake on the horizon, a ZIP 1004 like upgrade could wholly place the block reward discretion into the power of the miners (or validators of the future).
That would create a direct democracy (per hashrate or staking size) sort of implementation. Inspired miners/ validators may fully allocate their 20% into block reward organizations, or uninspired miners/ validators could decide to allocate none of their 20% to block reward organizations. With 75 second blocks, over a long timeline the distribution of block rewards would trend toward an accurate representation of what the Zcash network maintainers see most appropriate.