Overview
Advancing interoperability
Ethereum’s rollup-centric roadmap has led to the proliferation of blockchains at Layer 2. Most aim to achieve some level of Ethereum equivalence. While this may be sufficient for many use cases, application-specific blockchains enable developers to deliver vertically-integrated user experiences at lower costs.
The Cosmos SDK is a framework for building application-specific blockchains. Applications built using the Cosmos SDK are composed of modules, many of which are available out-of-the box, allowing developers to easily build their own. For example, the widely-used IBC (Inter-Blockchain Communication) modules facilitate trust-minimized bridging.
By deploying a Cosmos SDK app on Ethereum, developers get the best of both worlds: direct access to Ethereum’s vast liquidity and user base, coupled with state-of-the-art app chain tooling in the Cosmos SDK.
Deploying Cosmos SDK applications on the OP stack
The OP Stack is a set of independent components used to build rollups on Ethereum. Broadly speaking, the components are separated into consensus and execution layers. The consensus layer components control the execution layer’s fork choice via the Engine API.
From a user’s perspective, the execution layer is the interesting part. Many OP Stack rollups, such as Optimism and Base, use OP-Geth application as their execution layer. OP-Geth is a slightly modified version of go-ethereum, an Ethereum execution layer client.
Currently, most Cosmos SDK applications are deployed on top of CometBFT, an implementation of the Tendermint consensus algorithm. Unlike the OP Stack which uses the Engine API, CometBFT sends fork choice updates to the application using the Application BlockChain Interface (ABCI).
Monomer allows us to take any Cosmos SDK application and deploy it as the execution layer on the OP stack. It can be thought of as a translator between the consensus layer that speaks the Engine API and the execution layer that understands the ABCI.
Architecture at a Glance
From the OP stack's perspective, Monomer replaces the default Ethereum compatible execution engine. From the Cosmos application's perspective, Monomer replaces the CometBFT consensus layer.
In order to achieve this, Monomer performs three primary tasks:
- It translates between Ethereum's
EngineAPI
and the CosmosABCI
standards forconsensus<>execution
communication - It provides a custom Cosmos SDK module for handling rollup-specific logic and state
- It defines a hybridized block head structure, and build process, where the Cosmos AppHash is stored as data in an EVM state tree
Why Monomer Matters
Cosmos is recognized for its advanced technology, ready for broader adoption among developers. Monomer is designed to extend the reach of Cosmos technology to a wider developer and user base.
Key Features of Monomer:
- Cosmos SDK and ABCI Compatibility
- Monomer allows any Cosmos SDK or ABCI-compatible app chain to be deployed as a rollup on Ethereum.
- Customization and Flexibility
- Unlike most Ethereum rollup frameworks that focus on EVM compatibility, Monomer supports extensive customization options through the Cosmos SDK, including swapping out the underlying key-value store and state commitment data structures.
- Advanced Developer Support
- The Cosmos tech stack is backed by extensive documentation and resources, making it easier for developers to adopt and innovate.
- Innovation Import
- Monomer facilitates the integration of unique Cosmos innovations into the Ethereum ecosystem, such as Skip’s Block SDK, enhancing the technological toolbox available to Ethereum developers.
- Diverse Virtual Machine Support
- Developers can deploy rollups using different types of VMs, including EVM and CosmWasm, and write app-specific logic in Go without relying on a VM.