Network Sustainability Mechanism (NSM)

This extra little wrinkle seems unnecessary at first glance, but I believe it is actually pretty important for the security and sustainability of the ZSF system, so I’m going to dig into it in depth:

No ZSF, or 0% txn fee deposits

In both the current protocol, or if there is a ZSF but 0% of txn fees get deposited into the ZSF, there is an important security flaw when transaction fees are large enough compared to the issuance (or ZSF payout).

When issuance becomes too low, there is a risk to the entire protocol in making “progress” towards finalizing transactions. If the new issuance reward is 0 and the only income is transaction fees, then when a miner sees a new block with large fees in it, they have an incentive to roll it back in order to take the high-fee transactions out of it for their own new block! But then, if they do that and produce a new block which rolled back the one they saw, then the next miner has the same incentive! So there is a serious risk that miners will actually stop extending the chain![1]

BTW- this flaw exists in Bitcoin, too, so if you see folks suggesting that future BTC fees will be enough to pay for mining, that would require some protocol change to avoid this flaw.

100% ZSF deposits

Meanwhile, let’s support we have ZSF and 100% of txn fees go into ZSF deposits. Now the problem is that miners get paid only from ZSF for their block and none from txns they put into their block. It’s easier and cheaper not to include txns. But, if they don’t include txns, then the fees from those transactions won’t get deposited into ZSF! So there’s a “bootstrapping problem”.

Splitting fees to miners and ZSF deposits

So, the “90% / 10%” split is an attempt to balance between these.

BTW- the actual proportion, 90% / 10% are total guesswork on my part. It would be prudent to analyze how different proportions may impact security as well as the whole ZSF economic flow.

Anyway, the idea is by splitting fees this way, we get two mutually-reinforcing behaviors:

  • Because a miner will receive 10% of txn fees, they have a financial incentive to include that transaction into their block.[2]
  • Since they do include the transaction, the other 90% will be deposited into ZSF.

This combination would seem to provide a virtuous cycle: since they are incentivized to do something that leads to ZSF deposits, the ZSF balance should grow (as long as there is txn activity), and when it grows, it provides a consistent stream for future miners, making mining more appealing, thus sustaining network security.

Now this argument really needs better modeling with concrete numbers to answer a few questions:

  • If the ZSF balance is Xⓩ, and the latest block has some high-fee transactions worth Yⓩ, and the proportion of txn fees that pay directly to a block miner is M%, and a miner has C% of the total network capacity, when would a miner be incentivized to rollback the block to “poach” the large-fee transactions?
  • If we expect a users to pay a total of Tⓩ in transaction fees per block (on average over a large enough time window), then what proportion between ZSF deposits and direct-to-miner fees will cause the ZSF balance to increase (thus support network sustainability) vs decrease (thus deplete network sustainability)? (Or we could flip this around and ask "given these parameters, how many txn fees would we need to see for sustainability?)
  • If we have some target rate of fees, and some proportion of direct-to-miner fees, are those fees large enough to incentivize miners to include the txns?

Whew!

And finally:

If there other sources of ZSF deposits (maybe different kind of ZSA fees, Namada deposits, etc…) those all change the modeling above! It seems like any more deposits will generally be good for sustainability, and sustainability could work with fewer txn fees, which might be better for adoption. So with all of this there’s a complex balancing act to build something that everyone can be confident can keep running indefinitely.


  1. I’m simplifying a bit here about mining capacity: a tiny miner may not do this, because the chance that their 1 block rollback will win is maybe too small to make it worth it. It’s more worth it for larger miners. But even for small miners, if the fee is large enough, it may be worth it. ↩︎

  2. Part of the analysis we should do is figure out how large fees have to be to make it worthwhile to include in a block. If it takes a miner some amount of bandwidth, memory, and CPU resources to validate transactions, that adds up to some cost, so the fees would need to be larger than that to make it worthwhile. ↩︎

6 Likes