Zcash Needs an EIP-1559 Style Dynamic Fee Mechanism

I’m incredibly bullish on the price of ZEC. We’ve likely seen the bottom, and the trend has now reversed with strong upward momentum. We’re at a tipping point and starting to see the beginnings of a positive feedback loop as renewed interest draws in more developers, community members, users, and holders. If the price continues to increase, Zcash adoption will accelerate, with the shielded pool seeing massive growth. Higher adoption will naturally bring a significant increase in transaction activity.

Sounds exciting, right? But there’s a catch. Zcash isn’t currently built to handle a big surge in growth. As it currently stands, a dramatic increase in transactions would feel a lot like the spam attacks that made wallets practically unusable. It would be incredibly embarrassing for that to happen at a time when user growth accelerates and attention on Zcash increases. While Tachyon will eventually solve scalability at the protocol level, it’s still some time away. In the meantime, we can take immediate steps to address this risk through dynamic fees that help the network stay resilient as adoption grows.

Problem

Zcash’s current architecture is not designed to handle a large increase in transaction volume, leaving the network vulnerable to congestion and performance issues. In the past, Zcash experienced spam attacks where malicious actors flooded the network with low-fee transactions, clogging nodes and slowing down the processing of legitimate transactions. These attacks exploited Zcash’s fixed-fee model, allowing attackers to disrupt the network’s functionality at minimal cost. When the network becomes congested, users can’t transact reliably, which undermines Zcash’s usability and overall experience.

ZIP 317 was introduced as a partial solution to discourage spam by increasing fees for larger or more complex transactions. However, it uses a static fee structure that doesn’t adjust based on real-time network conditions. This means that during periods of high transaction volume, whether from genuine usage spikes or targeted spam attacks, fees remain the same regardless of demand on the network. Without a dynamic fee mechanism that responds to congestion, the network cannot prioritize legitimate transactions over spam during peak times. As a result, although ZIP 317 raises the base cost of attacks, it falls short of providing the flexibility needed to maintain network reliability during periods of high demand.

Solution

Implementing a dynamic fee mechanism similar to Ethereum’s EIP-1559 would help address Zcash’s vulnerability to transaction flooding and spam. Interestingly, the idea behind EIP-1559 has its roots in discussions Vitalik Buterin first had with the Zcash community, where he outlined the need for more efficient and stable fee markets across public blockchains.

A dynamic fee mechanism would automatically adjust fees based on network congestion, increasing costs during periods of high demand and prioritizing transactions from users willing to pay more. By doing so, the network could better handle surges in transaction volume, whether from increased adoption or targeted spam, while ensuring that legitimate, higher-priority transactions are processed even when the network is under stress.

This mechanism does not solve scalability, but it offers a practical step that can be implemented relatively quickly while Tachyon is being developed. It helps reduce the impact of congestion by allowing higher-priority transactions to proceed and ensures that users willing to pay a higher fee are not bogged down by network spam or congestion. Unlike Bitcoin’s fee model, it would use a single network-wide base fee that is easier for users to understand and helps preserve privacy while simplifying wallet design.

Fee Burning

In addition to adjusting fees dynamically, incorporating a fee-burning component would enhance security by disincentivizing potential manipulation by miners. In this scenario, a portion of each transaction fee would be permanently removed from circulation, rather than going entirely to miners. The burn mechanism would limit the opportunity for miners to artificially inflate fees by creating spam transactions, as they would incur a financial cost for doing so. Combining dynamic fee adjustments with fee burning would strengthen the network’s resilience to spam and help maintain consistent performance as usage grows.

A dynamic fee burning mechanism also complements the Network Sustainability Mechanism (NSM) and supports Zcash’s long-term economic stability. Dynamic fees would adjust automatically with network demand, while the NSM’s burning mechanism would remove a share of those fees from circulation. Burned fees could later be reintroduced as future block rewards without exceeding the 21 million coin cap. Consistently high fees would signal that Zcash has room to support more legitimate users by expanding network capacity and improving scalability. Together, this combination offers a proactive strategy for supporting long-term network sustainability.

Next Steps

Shielded Labs considers implementing a dynamic fee mechanism an important priority and is prepared to allocate resources to advance this initiative. Tachyon will be a major and transformative upgrade for Zcash, but it will take time to deliver. In the meantime, dynamic fees can play a complementary role by keeping the network reliable and usable as adoption and transaction volume continue to grow.

We want to hear from the community to ensure there is broad support for prioritizing this work in a future network upgrade. Please share your thoughts, questions, and feedback to help shape the direction of this effort.


Thanks to @shielded-nate for developing and sharing the ideas that inspired this post, and for providing helpful feedback and review on earlier drafts.

33 Likes

In my opinion, it is important to have a maximum limit on fees, something that does not compromise the movement of small amounts so as not to harm people who want to buy zcash (20 dollars), without these people being tied to exchanges (preferring to leave zcash on exchanges rather than transferring it to a wallet) causing danger by keeping zcash on an Exchange instead of a wallet.

4 Likes

wouldn’t halo2’s recursion mechanism bring greater scalability?

Forgive me, I’m the type of person who doesn’t like to spend money, but I understand the need to create this mechanism to discourage network bottlenecks.

I hope I can buy $20 worth of zcash without getting discouraged when transferring to Wallet.

3 Likes

But you won’t be able to buy $20 worth of anything if the network is being attacked or spammed. I think a dynamic fee is the lesser of two evils.

4 Likes

I think affordability needs to be a key consideration.

If ZEC is going to be the Internet’s money, we can’t have a $30 fee on a $5 cup of coffee just because a few whales decided to move their bags around (like for a coin vote).

Anticipating the “you can put the fee you feel you can afford” comment, this would mean delaying the transaction for potentially a long period of time, making ZEC unpractical for retail purchases.

I think a fee market carries the risk of adding Bitcoin’s “it’s either expensive or slow” problem to Zcash.

5 Likes

I’ve been thinking about this all morning. From my user perspective, the “sandblasting” didn’t impact the network itself. Nodes stayed up, miners kept mining. It impacted wallets, specifically, how wallets sync the chain. The “sandblasting” forced every wallet out there to try to decode piles and piles of notes that were irrelevant to the wallet itself, beyond what wallets could handle.

I think a more direct solution to this issue may be something along the lines of detection keys, so an individual wallet is not bogged down by scanning irrelevant notes. If all our wishes come true and Zcash is used broadly, there will be a lot of irrelevant notes and we need to have a way to handle it.

A fee market throttles the flow of notes, but I think the trade-off of making Zcash expensive or slow may be a hindrance to adoption.

4 Likes

When I started using Zcash, I bought $20. I thought Zcash was amazing because it had a very low fee. If the fee increases too much, it will become unfeasible to buy $20. It will create a barrier for those starting out using Zcash and will encourage people to just speculate within the Exchange instead of encouraging self-custody.

3 Likes

Fees need to be discussed in consideration of security budgets for the network.

Artificially increase or decrease them is no better than centrally managed economies from authoritarian governments.

Bitcoin has completely failed to create a fee market so far, and over the next decades the halving of rewards will get increasingly heated spotlights.

This fee conversation belongs together with the Crosslink, POS and NSM considerations assuming Taychon and varying degrees of usage.

1 Like

Both affordability and wallet performance are important considerations, but a dynamic fee mechanism isn’t directly about either of those. It’s designed to help the network operate efficiently under varying levels of demand, whether that demand comes from legitimate users or spam activity.

Affordability is important, but a dynamic fee mechanism would not necessarily make Zcash expensive or impractical for everyday use. The goal is not to raise average fees but to keep the network usable during periods of congestion so higher priority transactions can still be processed. Without a fee mechanism, we risk ending up in the same position seen during the sandblasting attack, where most wallets became unusable. For most users, fees would remain near current levels and only rise temporarily when demand is unusually high.

Dynamic fees act as a form of surge pricing for block space. When blocks are near capacity, fees rise temporarily to prioritize higher-fee transactions and maintain orderly operation. As congestion declines, fees quickly fall back down. If fees remain consistently high, that indicates steady, sustained usage, which can only be addressed through scalability improvements like Tachyon. In that sense, dynamic fees and scalability are complementary to each other.

You’re right that earlier spam attacks primarily affected wallets rather than the core network, and improvements like detection keys could help reduce the strain of scanning irrelevant notes. That said, a dynamic fee mechanism addresses a different part of the problem. The solution to wallet performance is to improve how wallets handle scanning, which is what Tachyon is designed to achieve. The goal of the dynamic fee mechanism is to keep the network reliable so some transactions can still be processed when blocks are full.

8 Likes

What would be the implementation forecast? How high could a fee be? Will it be possible to set a fee for the transaction?

1 Like

I don’t like that txs may get more expensive until Tachyon, but what else can we do. We definitely cannot have another multiple months scenario where it is basically impossible to use ZEC.

When are we having the blocksize fight anyway? More seriously, would doubling the blocksize potentially make sense if we start seeing substantial increase of txs and until Tachyon?

6 Likes

I think higher fees (at least slightly) are a long term necessity in order to support infrastructure until the heat death of the universe, and in the short term something we’ll need to bear before Tachyon hits the streets. There’s a lot of room to go from where we are now (a few cents) to something meaningful and behavior changing (say, 10s of cents) without being onerous for most users.

3 Likes

id say the max reasonable fee is in the 5-20 cents range. anything higher and many smaller payments become expensive to use relatively.

it being said, our current fee is already at >2 cents.

zCash needs better optimization for modularity so that it can introduce app specific relaying (application nodes)

1 Like

It’s too early to give a firm implementation forecast, but the goal is to design a mechanism that can be integrated into a future network upgrade once there’s clear community support. Fees would still be user-defined, meaning wallets and applications could let users choose how much they want to pay based on current network conditions.

It’s difficult to predict an exact upper limit since fees would depend on real network conditions and the parameters defined in the ZIP. The intention is not to make transactions expensive, but to let the base fee rise temporarily when blocks are full so the network can prioritize transactions instead of stalling.

We’re still in the early stages of exploring the design. I plan to meet with the rest of the team next week to begin working through the details. Once we have a concrete proposal, we’ll share it publicly for community feedback before any implementation begins.

8 Likes

Rather increase the block size, I would prefer to halve the block time and reward.

3 Likes

Pragmatically I think this possibly has 2 concrete cons:

  • Wallet churn
  • Resource allocation

The pros are mainly risk management:

  • Offers effective protection over some of the worst effects of block congestion (i.e. inability to transact).

If Zcash were to suffer from a sudden and prolonged period of block congestion that limits people, companies, exchanges, etc, ability to make Zcash transactions I think that would be the worst case scenario for everyone. So while I emotionally recoil at the idea of Zcash fees being higher at points in time I think it’s clear that these fee changes are temporary and will likely be near 0 in Tachyon. I believe allowing higher fee transactions to go through is probably necessary. This will protect Zcash not only causing issues for users but also could render Zcash unusable by entities critical for future adoption (e.g. exchanges, companies, whales, etc).

3 Likes

During the sandblasting era, my wallet took a long time to load, and my hard drive ran out of space. I used the full node and had a wallet generated by Zcashd itself. I was super worried at the time, but when things returned to normal, I felt relieved. I don’t want that to happen again, but I’m worried about the fees potentially increasing, and I don’t like spending money; government fees alone drain me. But I understand this need for the good of the Zcash ecosystem. But there needs to be a maximum limit so it doesn’t become impractical for people like me, a sardine and without money. If I’m not careful, I’m the one with the least Zcash participating in this community, but the little I have is a lot for the reality I live in. I’m poor, broke, and have a lot of bills to pay.

4 Likes

The last thing anyone wants is a return to the spam attack dark old days, so something definitely needs to be done. On the other hand, I recently welcomed a good friend to the zcash fold who comes from a background in traditional finance and their utter astonishment at the low fee they paid to move value into the zcash shielded pool was a potent reminder that for many of us, alongside censorship resistance, the protection the 21m hard cap offers against monetary debasement and the protocol’s decentralised self funding mechanism, the low fee structure is also one of the key pillars that comprise the immense value proposition that is zcash. To erode the foundation of any one of these key pillars (that together converge to support peoples’ investment thesis for migrating funds onchain with zcash) would be to erode the very foundations of what makes the value proposition so compelling and ultimately could lead to a negative feedback loop in terms of wider zcash adoption and thus in the end in terms of the token price itself.

I have been thinking a lot about ways to strengthen the foundations of these keys pillars from a community engagement and network governance perspective and recently reached out to @shielded-nate for some advice on the viability of using community engagement initiatives that incentivise the burning of tokens. I wonder now if there might be an opportunity to incorporate this notion of a dynamic fee structure into a future model that would burn a portion of fees during times of network congestion, but rather than the burned fee being simply ‘suffered’ as a transaction cost to the token holder, could there be a way of returning this value to that token holder in a different manner, such as awarding an equivalent amount of value in the form of a utility token that gave the token holder the right to perform interactions on a platform(s) designed to foster and bolster community engagement and zcash powered interactions?

I have been working on building such a platform with the aim that it would ultimately provide an additional forum for shielded discourse, socials and even in the end commerce. Zashi integrations with deep linking now provide the opportunity for viable and seamless kyc free p2p commerce and the creation of zcash Parallel Polis has never been closer within our grasp! I am intrigued by the idea that the burning of tokens might offer an opportunity to allow token holders the ability to support the zec price by reducing coins in circulation as well as assisting to ensure the avoidance of future spam-attack style slow downs, whilst still giving the token holder ‘something back’ in respect of the burned fees. In practice this might work in terms of creating a mechanism to allocate equivalent amounts of burned-fee-funding to said token holder’s community interaction account/wallet within an ecosystem that employed a utility token designed to act as a zcash-burn-powered placeholder to convert the ‘lost’ value of the burned zcash token into a new type of value that could be unlocked as the power a token holder had to engage, make posts, vote in community sentiment gathering polls, and engage in p2p transactions within a dedicated zcash powered platform for social commerce.

To my mind such a system could ultimately fuel interactions on an ecosystem wide basis and contribute to long term network sustainability. In terms of my own efforts to build something that could be an example of how this could work on a wider scale, I still need lots of guidance on the technical side of how anything like this would be possible from a implementaton perspective. And in terms of zcash integrations on the back end for the app i am working on I am definitely going to need lots of help indeed(!), in order to make any serious progress, but if anyone is interested in chatting about it further or joining in with beta testing the app just to see how it might work in practice, please DM me here and I will add you to the signal group i’ve set up to discuss this idea further.

Thank you very much for this post @aquietinvestor it has definitely inspired some insightful discourse from all sides and given me lots of food for thought for the project i am working on myself!

Onwards, Upwards But(Z) Shielded!

6 Likes

I support this proposal! It is essential to take advantage of Zcash Momentum to generate more adoption, permanence, and projection, while maintaining confidence that the network and its entire infrastructure are capable of responding to growing user demand.

3 Likes