Sovereign rollups on Bitcoin with Rollkit
Original article by Rollkit
Last week, we introduced Rollkit, which is a modular framework for rollup. Today, we are proud to announce that Rollkit is the first rollup framework to support Bitcoin Sovereign rollup. An earlier research implementation allowed Rollkit rollup to use Bitcoin to provide data availability.
Rollkit opens the door for developers to create rollup with arbitrary execution environments that inherit Bitcoin's data availability guarantees and reorganization resistance. With the new integration, it is now possible to run EVMs on Bitcoin as Rollkit sovereign rollup. Bitcoin's sovereign rollup not only expands the rollup possibilities, but has the potential to help guide a healthy market for Bitcoin block space fees, leading to a more sustainable security budget.
Sovereign rollup for data availability using Bitcoin is now a reality through Rollkit's new early research integration.
This is followed by a demonstration of the EVM running as a sovereign Rollkit rollup on Bitcoin.
This was made possible by the Bitcoin Taproot upgrade and Ordinals using Bitcoin to publish arbitrary data.
On February 1, 2023, the largest Bitcoin block ever mined (#774628) by Luxor Mining pool was approximately 4 MB. Most of the block space was used with Ordinals to embed a Taproot Wizards NFT, a project to implement Bitcoin NFT by publishing image data on the chain.
Bitcoin NFT uses Taproot Witness to record arbitrary data, which is made possible by Bitcoin's Taproot upgrade. Taproot witnesses offer a slightly better payload-to-data ratio than SegWit deals. A standard transaction can contain up to about 390kB of arbitrary data while still passing through the common memory pool. Non-standard transactions that miners include directly without going through the memory pool can contain arbitrary data up to 4MB. In short, with SegWit, publishing large amounts of data to the bitcoin blockchain becomes feasible.
From then on, Ordinals for NFT inscriptions and the use of Taproot began. Eric Wall found that, at the time of his tweet, publishing bitcoin data was seven times cheaper than Ethereum. With thousands of inscriptions now on Bitcoin, it's clear that a sovereign rollup and dapp ecosystem on Bitcoin could become a reality. The missing piece: a rollup framework that could easily integrate Bitcoin as a data availability layer.
Rollkit is a modular framework for rollup into which developers can insert a custom execution layer and a data availability layer. Initially, Rollkit only supports Celestia as an option for data availability and consensus. Now, thanks to early research implementations of Rollkit's Bitcoin Data Availability module, Bitcoin is an option. In this case, sovereign rollup manages its own execution and settlement, while offloading consensus and data availability to Bitcoin.
To read and write data on Bitcoin, we use Taproot transactions. To facilitate this, we implemented a Go package called Bitcoin-da, which provides a reader/writer interface for bitcoin. For details on how the interface works and how to use Taproot, see the specification. The package can be reused by any project that wants to read and write data on Bitcoin.
Rollkit is built with modularity at its core. It has a data availability interface, so developers can simply implement specific methods to add new data availability layers. To add layer data availability, implementers need to meet the defined data availability DataAvailabilityLayerClient interface client behavior, and define how the synchronized block BlockRetriever interface. These interfaces are in the da package. The most important of these interfaces are the SubmitBlock and RetrieveBlock for reading and writing blocks.
After implementing the Taproot reader interface for bitcoin (Bitcoin-da), adding it as a Rollkit data availability module took less than a day. We basically just need to implement the SubmitBlock and RetrieveBlocks functions for Rollkit to call the Read and Write methods in bitcoin-da.
Rollkit supports custom execution layers, including EVM, CosmWasm, or Cosmos SDK. To test integration, we used Rollkit to run EVM(using Ethermint) as a sovereign rollup on the local bitcoin test network. Watch the demo below.
As we move into the future, sovereign communities will form around different applications, and asking them to bear the high costs and overhead of deploying Tier 1 blockchains to become sovereign is not sustainable. Sovereign rollup solves this problem by making it possible to deploy a sovereign chain that inherits the data availability and consensus of another tier 1 chain, such as Bitcoin.
Our goal with Rollkit is to make it easy to build and customize rollup. We invite you to try Rollkit and build a sovereign rollup on Bitcoin, or customize Rollkit with different execution environments and data availability layers. For more information on how to run Rollkit using the Bitcoin Data Availability module, see the instructions here. Keep in mind that integration is an early research implementation and is not yet ready for production!
Modularity, not maximization.