zerokn0wledge

App-specific rollups: VM in a container versus app as state machine

Thread433 words

Distinguishes app-specific rollups that run an app inside a dedicated VM (Vistara, Caldera) from those where the app is its own state machine (Stackr). Concludes neither is better: the first is easier and general, the second allows more customization and performance.

Key claims
VM-based approach is more generalizable and easier to implement
App-as-state-machine allows more customization and performance but adds overhead
0/ the term "app-specific" rollup is gaining traction as a rollup-centric endgame of scaling is taking shape, where app-specific L3s on top of general purpose L2s enable novel scalability but app-specificity ≠ app-specificity 🧵 on two approaches to app-specific rollups (0/11) 1/ so, one way to think about app-specifity is having a dedicated state machine (VM) and to run an application within that container 2/ what that essentially means, is that a developer simply deploys a rollup with a certain VM or execution environment, on top of which he can deploy the application's smart contracts 3/ one example of this approach is #Vistara by @_mayurc, where devs simply connect their github repository, choose the execution environment (e.g. EVM if contract is written in Solidity), DA layer, settlement layer, etc & subsequently deploys the rollup👇 x.com/_mayurc/status/1658067610934865929 4/ the same is true for @Calderaxyz, an infrastructure provider for app-specific rollups, that provides a dev framework where apps can be run inside a state machine as well. Right now default is EVM/geth (others are possible as well though, similar to Vistara) 5/ with regards to the customization of the execution layer, @Calderaxyz also allows for custom precompiles to achieve the effect of running app-specific logic at the rollup/node layer 6/ however, this is still different from understanding app-specificity from a logic-centric perspective. The alternative to having an app running inside a state machine, is to have to app be its own state machine 7/ this approach allows for direct execution and a higher degree of flexibility for rollup devs as there is no VM and the rollup actually implements application-specific logic that is not constrained by a specific VM (also enabling the use of other programming languages) 8/ this requires devs to define data structures for the application’s state and state transition function, which comes with additional overhead, but also allows for a much higher degree of customization/optimization for a specific use case 9/ @0xStackr is a very exciting project that is working on an SDK for app-specific rollups that takes the second approach 10/ but what is the better approach you ask? 🤔 I don't think there is a "better" here. Both have benefits & drawbacks and while the first approach is much more generalizable and easier to implement (as any dApp can basically easily become an app-chain)... 11/ ...the second can allow for more customization & performance and might be more suitable for more complex apps however it always depends on the application and what the team wants to optimize for in any case, very excited to see all this amazing innovation happening! 🚀

2 images on X

Open on X

What came next · since 25 May 2023

zerokn0wledge avatar
Working together

Research, advisory and builds for deep-tech teams.