Solana has gained attention for its speed, low fees, and innovative blockchain architecture.
However, as network usage grew in 2021-2022 and somewhat slowed down in 2023, users faced issues like periodic congestion and rising fees.
Understanding Solana’s unique blockspace structure helps explain these fee dynamics.
Let's dive deep into detail.
Solana has a system of "local" fee markets, where demand for blockspace from a particular hotspot of activity like a surge of swap activity can lead to high fees just for that activity without necessarily affecting fees for unrelated transactions.
For example, let’s say there is a new AMM dex product launch on Solana. Many people want to trade tokens on it, so they send transactions to the program managing the dex. This creates a high demand for blockspace from that program.
However, Solana has per-block (48 million) and per-account (12 million) limits on compute units (CUs), which measure the amount of computation required by each transaction. These limits prevent any single program from using up all the blockspace.
So, in our example, the swap transactions quickly reach the CU limit for the accounts associated with that dex. This means that they have to pay higher fees to compete for the limited blockspace available for that program.
However, regular transactions like sending SOL or trading tokens on other DEXs aren't directly competing with the dex. So their fees don't necessarily rise (unless there is high global demand already filling up blocks). They can still pay lower fees as long as there is enough blockspace left for them.
This is what is meant by a "local fee market." One hotspot drives up fees for related transactions interacting with that hotspot. But unrelated transactions remain insulated from the mania.
In contrast, other blockchains like Ethereum have more "global" fee markets. A single dex launch could congest the entire Ethereum network, spiking fees for all transactions as they fight for scarce blockspace.
However, local fee markets are not fixed or isolated. They can change over time and be influenced by global factors. For example:
- If a new program becomes popular, it may create a new local fee market and increase fees for transactions that use it.
If an existing program loses popularity, it may lower fees for transactions that use it.
If the network is congested, the base fee per signature may increase, affecting all transactions.
If the network is fast, the per-block CU limit may increase, allowing more transactions to fit in a block.
If an account has enough SOL balance to be rent-exempt, it may get higher priority for inclusion in a block.
Solana’s fee model is designed to balance efficiency and fairness. It allows low baseline fees for most transactions but also provides flexibility and incentives for users to adjust their fees according to their needs and preferences.
---
The key technical pieces that allow Solana to have localized fee spikes are the per-block and per-account compute unit limits.
Let's break this down:
The key pieces enabling Solana's local fee markets are:
- Per-block limit of ~48 million compute units (CU). This dynamically adjusts based on network conditions.
- Per-account, per-block limit of 12 million CU. This soft cap can be exceeded by paying higher fees.
- Compute unit cost defined per-program based on transaction complexity. Simple transfers have low CU cost, complex DeFi trades are high.
Fees are paid in lamports, the smallest fraction of the SOL token.
The per-block CU limit allows many simple, low-CU transactions. But constraints complex transactions.
If an account hits its soft CU limit from a transaction hotspot, further transactions get throttled unless they pay enough extra fees to exceed the cap.
This localizes congestion. Unrelated transactions can still fit in unused blockspace without spikes.
So let's see how this prevents any single hotspot from congesting the entire network:
In our dex surge example, all the transactions rapidly consume the 12 million CU limit for the dex's accounts. The validators hit a wall even though there is likely still space in the overall block; the accounts they need to interact with are throttled.
So the dex activity is constrained to just a portion of the blockspace. It can't grow to fill up the entire 48 million per-block capacity.
These smart limits ensure that a localized spike in demand has a localized impact on fees. The mania doesn't spread to unrelated transactions, which can still get included cheaply as long as the overall blockspace isn't exhausted.
This is how Solana's technical design enables the emergence of local fee markets. The compute caps prevent any one hotspot from consuming all the scarce blockspace and driving up fees for everyone.
---
On Solana, many low-CU transactions, like simple transfers, can fit in each block.
But each transaction also has a priority fee that affects ordering. This fee matters more when overall blockspace demand is high.
Here is a detailed explanation of how simple transactions and priority fees work on Solana:
- Many simple transactions like token transfers have low compute unit (CU) costs on Solana. This allows a large number of them to fit within the per-block limit of 48 million CU.
- For example, a basic SOL transfer may only cost a few thousand CU. Conservative estimates say around 10,000 of these simple transfers could fit in a single block.
- However, each transaction on Solana also specifies a priority fee. This fee is proportional to the transaction's CU cost.
- When overall demand for blockspace is low, the priority fee does not matter much. Most transactions can fit in the block.
- But when demand is high and blockspace becomes scarce, the priority fee becomes critical.
- Transactions with higher priority fees per CU get prioritized by the network for inclusion in blocks.
- So when blocks are near full capacity, users need to specify higher priority fees to incentivize validators to select their transactions over others.
- In a congested period, a token transfer with a low priority fee could get deprioritized and wait in the mempool, while trades with high fees jump the queue.
- This priority fee mechanism allows Solana to maintain consistency in block production even when there is more demand than available blockspace.
- Transactions that pay the higher priority fees essentially outbid lower-fee transactions for inclusion in scarce blockspace.
When blockspace demand is high, there can be a "global" fee market where all transactions require a high-priority fee to get included.
Or a "local" fee market where only transactions interacting with a hotspot need very high priority fees.
Let's dive deep into this:
When overall demand for blockspace is high, there can be two types of fee market dynamics:
Global fee market:
- In a global fee spike, blockspace demand is so high that the blocks are almost entirely saturated across the board.
- Virtually all transactions on Solana need to specify very high priority fees to stand a chance of getting included in the scarce blockspace.
- It does not matter what type of transaction it is simple transfers, dex activity, NFT mints, etc. all get deprioritized if their priority fee is too low.
- This creates intense competition for the entire blockspace resource, spiking priority fees network-wide.
Local fee market (we already discussed this in detail):
- A local fee spike occurs when demand for blockspace comes mainly from a specific hotspot of activity.
- For example, an extremely popular dex promotion could drive up priority fees just for transactions interacting with that dex.
- The trading mania quickly consumes the per-account CU limit. Further transactions need to bid up priority fees to get included within that account's constrained space.
- However, other transactions not related to this dex frenzy do not necessarily need extremely high priority fees. They aren't competing directly with the hotspot.
- So only transactions associated with the dex promotion face the spiking fees, while unrelated transactions can still get by with lower priority fees if overall blockspace has availability.
So, in summary, global spikes impact all transactions, but local spikes are contained in a specific hotspot of congestion. Solana is designed to better isolate local spikes versus chains with more monolithic blockspace.
Also, Reducing the per-account limits would constrain hotspots more but could increase "global" fees.
The ideal solution is expanding the overall blockspace, which Solana developers are working on. This is how reducing per-account limits could impact fees on Solana:
- As discussed earlier, the per-account compute unit (CU) limits play a key role in containing hotspots on Solana.
- Lowering these per-account limits would make it harder for a single hotspot to dominate blockspace. The hotspot would hit the limit faster before spreading across blocks.
- For example, say the current per-account limit is 12 million CU per block. If this was reduced to 8 million CU, a hot dex promotion would throttle faster at the lower cap.
- So reducing the per-account limits does better contain fee spikes to local hotspots, preventing them from turning into global spikes as easily.
However, there are tradeoffs:
- Lower per-account limits would reduce the overall blockspace available for other transactions unrelated to the hotspot.
- Essentially, the hotspot gets constrained further at the expense of other transactions also having less space.
- This could increase competition and fees for non-hotspot transactions as they fight for the remaining blockspace.
- So, while local hotspots are further contained, it comes at the cost of putting more pressure on "global" fees.
- That's why the ideal solution is optimizing Solana's architecture to expand overall throughput and blockspace.
- More total block capacity alleviates congestion and fees across the board, both localized hotspots and global spikes.
- The Solana Labs team and community developers continue working on optimizations to improve transaction capacity and scalability.
So, in summary, reducing per-account limits does better contain hotspots but risks crunching blockspace for other transactions and pushing up global fees. Expanding blocksize is preferred to relieve fees holistically.
Conclusion
Solana’s unique technical architecture enables the emergence of localized “hotspot” fee markets, while limiting chain-wide congestion and volatility. The per-block and per-account compute unit caps play a crucial role in containing temporary spikes in demand to specific activities. This prevents manias like a hot new dex promotion from exhausting overall blockspace and hiking fees network-wide. However, further optimizations to expand Solana’s throughput and blocksize will be key for managing both local and global fee dynamics seamlessly as adoption continues growing. The nuanced balance between localized flexibility and global consistency in Solana’s fee model and blockspace design underpins its ability to offer speed, scalability, and low costs - making it a leading next-generation blockchain.
Thank you for reading, and follow me here and on Twitter for more regular post updates.
You can connect with me directly on friend.tech at 0xArhat.
Please join my telegram channel for frequent daily updates: https://t.me/onchainweb3
If you find my work resourceful, please consider donating to 0x1de17b6c736bcd00895655a177535c2a33c6feba (Ethereum/Optimism/Arbitrum/BSC chain).
Also, buy my keys at friend.tech by searching for 0xArhat
I’d also appreciate it if you shared this with your friends, who would enjoy reading this.
You can find my other research & investment thesis here: https://bit.ly/45vA04W
Thank you.