- Leveraging modules and other mechanisms implemented by the Cosmos SDK.
- Implementing CometBFT’s Application Blockchain Interface (ABCI) to manage the blockchain.
- Utilizing
geth
as a library to promote code reuse and improve maintainability. - Exposing a fully compatible Web3 JSON-RPC layer for interacting with existing Ethereum clients and tooling (Metamask, Remix, etc).
Cosmos SDK
Cosmos EVM enables the full composability and modularity of the Cosmos SDK. It includes standard modules from the Cosmos SDK that work side to side with EVM-specific modules. Check out the list of modules to get an overview of what each module is responsible for.CometBFT & ABCI
CometBFT consists of two chief technical components: a blockchain consensus engine and a generic application interface. The consensus engine ensures that the same transactions are recorded on every machine in the same order. The application interface, called the Application Blockchain Interface (ABCI), enables the transactions to be processed in any programming language. CometBFT has evolved to be a general-purpose blockchain consensus engine that can host arbitrary application states. Since it can replicate arbitrary applications, it can be used as a plug-and-play replacement for the consensus engines of other blockchains. Cosmos EVM is an example of an ABCI application replacing Ethereum’s PoS via CometBFT’s consensus engine. Another example of a cryptocurrency application built on CometBFT is the Cosmos network. CometBFT can decompose the blockchain design by offering a very simple API (ie. the ABCI) between the application process and consensus process.EVM Compatibility
Cosmos EVM enables EVM compatibility by implementing various components that together support all the EVM state transitions while ensuring the same developer experience as Ethereum:- Ethereum’s transaction format as a Cosmos SDK
Tx
andMsg
interface - Ethereum’s
secp256k1
curve for the Cosmos Keyring StateDB
interface for state updates and queries- JSON-RPC client for interacting with the EVM