In June we shared a summer update on the 2024 roadmap. Time for another update!
The prioritization of UX has been a major success with the reduction of confirmation times to 1-2 seconds for most transactions.
However, there’s been a new development on the fees and costs front: demand for Ethereum blobs has been steadily increasing to the point of being non-negligible. Many builders and developers have expressed related concerns, so it was really a no brainer: fee reduction is back on the menu, and with a high priority!
In a nutshell, there is some reshuffling that promotes fee reduction at the expense of performance.
As tradition dictates, let us return to the loving hands of the beloved table. Details after and even more details even more after.
Wen mainnet | Content | Effect | |
---|---|---|---|
v0.13.3 | Nov 20 | Stateless compression & squash-pricing | fee reduction |
v0.13.4 | Feb 20 | Stateful compression, L2 gas, try/catch for function call failures; TBD: Cairo-native (Sierra → LLVM), nonce channels | fee reduction, UX & devX; TBD: performance |
v0.14.0 | April '25 | 2 second blocks, mempool & fee market, Stwo integration | TBD |
Now some more words, but we’ll keep it short since @FeedTheFed is writing a more detailed post about the features.
v0.13.3
Right now, Starknet sends blobs that contain uncompressed state-diffs, which are lists of key-value pairs. Stateless compression means that blobs will contain a compressed version of the state-diffs, allowing us to pack more state-diffs into each blob.
Block-packing will also be optimized with more efficient squashing. Currently, a tree is closed once the sum (disjoint union) (coproduct for you, m’lady) of the blocks’ state-diffs reaches k blobs. In v0.13.3, trees will be closed once the union reaches k blobs. This means more Starknet blocks will enter each applicative tree, which brings two benefits:
- The fixed L1 state update costs will be amortized over more Starknet blocks.
- There will be more squashing, since there is a long time period over which repeated storage writes are squashed together.
The above features reduce operating costs, which will justify a reduction of tx fees. In fact, there’s already some justification for fee reduction: currently Starknet charges a fee per every DA felt regardless of repeated writes. The fee reductions in v0.13.3 will improve on this inaccuracy as well!
All breaking changes planned for v0.13.3 are deferred to v0.13.4: new RPC version alongside termination of RPC versions <0.7, ERC-20 event changes, and wallet⇄dapp API changes.
v0.13.4
In this version we’ll continue reducing costs by improving the compression mechanism from stateless to stateful. What does this mean? Well, key-value are tough to compress because keys are hashes and therefore quite random. We’ll remedy this by encoding keys using a small sequence number; such a number will have a suffix of zeros, which is very compressible. In essence we’ll re-encode state-diffs in a more compressible way.
Beyond fee reduction, we’ll improve devX by supporting try/catch patterns. We’ll also introduce L2 gas as a protocol level resource to encapsulate all L2-native computation, storage, and bandwidth – all without coupling to L1 resource markets.
We hope Cairo-native will also be ready for this version, resulting in a phat performance improvement.
All changes planned for v0.13.3 are deferred to v0.13.4: new RPC version alongside termination of RPC versions <0.7, ERC-20 event changes, and wallet⇄dapp API changes.
v0.14.0
More on this one soon!
Summary
To summarize, the terms ‘sum’ and ‘coproduct’ are much cooler than ‘disjoint union’. If you disagree, please write down your reasoning on paper and throw it away – you are wrong.