Stacks block and tenure dimensions: Expectations and discussion

It was really nice to see the Stacks 3.0 upgrade go live earlier today!

I wanted to open up a discussion around: congestion in Stacks. How tenures factor into this, and how the Nakamoto upgrade (Stacks 3.0) and the fast blocks advertised with it have shaped user expectations.
Let’s dive into a few key points. I believe the core teams has given much more thought to this already and a lot of optimizations are already planned, I would love to see more specific info shared with the public, I am hoping this thread can help kick that off.

Current Block Dimensions and User Expectations

As some of you have noticed, congestion can occur during periods of high demand. Transactions with low fee can remain pending for a long time. We’ve confirmed that blocks can fill up quickly within a tenure, which then requires us to wait for the next Bitcoin block. Users have expected that with faster block arrivals in Stacks 3.0 (every 5-10 seconds), these blocks would also have the same maximum size as in Stacks 2.1. However, the tenure dimensions remain similar to previous versions, despite these faster arrivals. A tenure typically changes with a new bitcoin block.

This consistency in block dimensions is intentional. Although block arrival times have changed, we’re still working within a space where we must balance blockchain size growth with ensuring enough room for protocols and high-priority transactions.

Block Dimension Flexibility and Finding the Sweet Spot

The block dimensions in Stacks are somewhat flexible, and the design philosophy has always been to find a “sweet spot”—a balance between reasonable size growth and sufficient transaction capacity. Right now, the dimensions allow protocols to operate without overloading the blockchain’s size. Here’s a breakdown of block dimensions from Stacks 2.1, which serve as the basis for Stacks 3.0:

Block Limit Read-Only Limit
Runtime 5000000000 1000000000
Read count 15000 30
Read length (bytes) 100000000 100000
Write count 15000 0
Write length (bytes) 15000000 0

If a block hits the limit on any one of these dimensions, it’s considered full. That means in times of high demand, only smaller transactions (such as STX transfers) may fit into the remaining space for a tenure.

Room for Expansion and Technical Limits

This brings up a crucial question: How much room do we have to increase block size if congestion worsens?, and do we want to?
Technically, the block dimensions are changeable. However, altering these dimensions would need careful consideration to keep Stacks accessible and manageable for those running nodes or miners. There’s also the question of whether changing block dimensions would be a consensus-breaking change—this is something to consider if adjustments are proposed.

When I spoke with Jesse recently, he estimated that transactions would need to be around 10 times the current volume before the existing dimensions would become a bottleneck. That said, a well-functioning blockchain does need a functioning fee market, and block space will always be limited by design. The idea is to allow for high-priority transactions to find room, creating a natural market in times of high demand.
Miners are not yet rationing space it seems to optimize their profits as suggested here: test: testnet with heavy mempool activity · Issue #4538 · stacks-network/stacks-core · GitHub

Next Steps: Tenure Extensions and Block Size Considerations

A planned, non-consensus-breaking change is extending tenure duration when Bitcoin blocks are delayed by more than 10 minutes. This change, which has already been agreed upon to follow the Nakamoto Upgrade, would potentially offer more space when it’s needed most. This kind of “reset” to block space could address some of the waiting issues without increasing block dimensions directly, and I’d like to highlight the importance of prioritizing this now.

Let’s open up the discussion:
1 What else of this is part of the optimization roadmap already planned?
2 What flexibility is there when it comes to increasing the block dimensions or tenure dimensions?
3 What technical or economic factors should we consider to maintain a healthy fee market?
4 How do we balance enough block space for protocols building on Stacks with keeping the blockchain accessible?

  • Should teams with protocols’ (i.e. ALEX) exceptions of user growth, and expected transactions per user factor in somehow if block dimensions are changed?

5 what are the alternatives for scaling without increasing block dimensions?

  • Alternatively should we stimulate the use of subnets (Bitcoin L3) rather than changing block dimensions on Stacks (bitcoin L2)
  • Clarity WASM upgrade, how will that influence existing protocols, does it require new contract deployments or will existing protocols benefit from this automatically?
  • What can protocols do to decrease need for “block space”?

image

5 Likes

Voting on tenure length is another possible optimization, I saw Friedger mention that. I always assumed it would be 10 minutes. And I think protocols also rely on that for timing certain actions such as the length of staking cycles on ALEX. Perhaps there are better options.

Stacks Foundation tweet about Upcoming Optimizations:
https://x.com/stacksorg/status/1851304384715788297?s=61&t=B7TLNfyjJSwJ1gK4mgPe7w

1 Like

Another relevant thread on Github: Block budget usage in Nakamoto · Issue #5398 · stacks-network/stacks-core · GitHub

Some of the topics in it:

  • Improved mempool walking
  • Make signers enforce pacing the budget usage
  • Updating Cost Limits
  • Changing mining heuristics to pace out the block budget, without singer restrictions

Been thinking about blockspace constraints in Stacks. Spreading TXs across the 10-min tenure seems like a workaround, but what’s actually preventing continuous processing, especially for DeFi?

Is there something fundamental about these limitations beyond the Bitcoin anchor? Or are we working with inherited design choices that could be revisited?

Curious what’s really at stake here.

The limits ensure that the blockchain remains decentralised and nodes can be operated with a reasonable effort. Currently, it costs maybe 250$/month to run a stacks node + the api. What cost would be acceptable in 2050?

With clarity wasm, we can revisit the costs of the contract calls.

With stacks 3.0, we have all tools to increase the throughput and extend the tenure budget more often. However, I think that this is consensus breaking even though no code is changed. Miners and signers (who are backed by stackers) need to find consensus about max tenure length.

We can also build better tools to estimate fees and visualise where my tx is in the mempool and why.

Furthermore, smaller tx work better than larger. Minting 1 or 2 nakapack nfts can be confirmed later in the tenure when there is still some budget left.

Improving tools for miners as mentioned above should be also on the list. If we can show miners the fees that could have been earned…

I don’t think tenure extensions impact any protocols because tenures are usually not used for timing. Protocols could use the bitcoin block height or stacks block height as in Stacks 2.

2 Likes

:thread: Let’s break down the recent Stacks 3.0 upgrade and what it means for the ecosystem (1/13)

The Nakamoto release (Stacks 3.0) just went live with faster blocks, but there’s a lot more happening under the hood. Here’s what you need to know :point_down:

  1. The Speed Change
    • Blocks now arrive every 5-10 seconds (vs. previous ~10 minutes)
    • Faster block times = more frequent transaction processing
    • BUT total capacity per tenure (Bitcoin block) remains similar

  2. Think of it like a parking garage:
    • Gates open more frequently
    • But total parking spaces haven’t increased
    • Once full, you wait for next Bitcoin block
    • This creates an interesting dynamic for transaction fees

  3. Current Block Limits:
    • Runtime caps
    • Read/Write operation limits
    • Data size restrictions
    These limits keep the blockchain manageable and decentralized. Running a node costs ~$250/month - keeping this affordable is crucial.

  4. The team is exploring several optimization paths:
    • Tenure extensions when Bitcoin blocks are delayed
    • Improved miner tools for space management
    • Better fee market mechanics
    • Subnet scaling solutions (Bitcoin L3)

  5. The WASM Upgrade :fire:
    This is a game-changer coming to Stacks:
    • Makes contracts run more efficiently
    • Reduces computational costs
    • Enables more languages
    • Better developer experience

  6. Think of WASM like installing a new, efficient engine:
    • Same functionality
    • Less resource usage
    • Better performance
    • But requires some retooling for existing apps

  7. The Balancing Act:
    Teams are carefully weighing:
    • Transaction capacity vs. node costs
    • Speed vs. security
    • Growth vs. sustainability
    These aren’t easy trade-offs!

  8. What’s Next?
    • Tenure extension implementations
    • WASM integration
    • Enhanced miner tooling
    • Improved fee market dynamics

  9. For Developers:
    • Consider subnet solutions for scaling
    • Watch for WASM upgrade opportunities
    • Optimize contract efficiency
    • Plan for potential contract redeployments

  10. For Users:
    • Faster blocks are live
    • Fee market is evolving
    • More optimizations coming
    • Better tools for fee estimation ahead

  11. The Big Picture:
    Stacks is evolving while maintaining its core promise:
    • Bitcoin’s security
    • Scalable smart contracts
    • Sustainable growth
    • Decentralized accessibility

  12. Want to get involved?
    • Run a node
    • Join development discussions
    • Test new features
    • Provide feedback on Github

  13. Follow for more updates as Stacks continues to evolve! This is just the beginning of a more scalable, efficient, and developer-friendly Bitcoin L2.

End :thread:

Remember to follow and retweet if you found this helpful! #Stacks #Bitcoin #Web3 #BlockchainDev