Why Starknet app-chains ?
That's a fair question you might be asking yourself. Why do we even need starknet app-chains in the first place ? Shouldn't Starknet be sufficient for most use cases ? How do we deal with liquidity and state fragmentation ?
Every application has their own needs and specifities which deserve their own execution environment. This has been coined as AppEtite by Gideon Kampfer and sheds light on all the different needs applications could have :
- Privacy
- TPS > 10/sec
- TPS > 100/sec
- Centralized
- Composability
- Highly customizable
- On/off boarding cost
- Self custody ?
- Fee/Congestion sensitive
- What do you need ?
Scalability
The first point we will address is scalability. As a DApp developer you can quickly reach scalability limits in current's blockchain infrastructure. Scalability comes in two flavours :
- Cheaper Fees
With native account abstraction offered by Starknet and tools like cartridge (opens in a new tab), wallets should definitely be invisible (opens in a new tab)!
If each layer achieves, for example, 1000X in cost reduction, L3 can reach 1,000,000X reduction over L1.
With recursive proving, this can grow even further and thus making it realistic to implement paymaster systems in production. There is a lot of room for creativity and optimization when dealing with recursion as not all proofs/verifiers need to be the same at each layer.
- Speed
Thanks to Madara or StarkEx, you can have high-speed applications with little on/off boarding costs.
Moreover, thanks to recursion we can be creative and projects like Sierra to MLIR (opens in a new tab) are leveraging this to enable 10,000+ transaction per second throughput on Madara by converting Sierra bytecode to x86 machine code using MLIR.
Throughput will not be impacted by activity of other applications, that means whatever happens elsewhere it won't impact you.
Better Control
Starknet itself and any general-purpose chain has to put boundaries in order to prevent DOS attacks and make the network usable to everyone. However, this is not true anymore if the execution environment is solely yours :
- Public access to controlled contracts with specific logic. If you don't like the limits of the Cairo VM, all good, just get rid of them in your custom Starknet! Want better scalability ? Missing hints ? Again, feel no worries, you can just execute cairo programs hardcoded into your chain and write Cairo 0 programs! Whitelist your own hints, do what you like! Of course then you better know what you're doing and do some forecasts on proving costs and delays.
- Specific Data Availability patterns as options
- Privacy You could prove KYC statements to a verifier on Starknet without exposing private information. Starknet is not private but your chain could be! One interesting project to look out for in that case is garaga (opens in a new tab) which could enable Starknet app-chains to run Noir (opens in a new tab) programs.