Validator & Governance System

In most Cosmos SDK-based chains, validator and governance systems are built using x/staking, x/distribution, and x/gov modules provided by Cosmos SDK. However, Mitosis takes a different approach.

Instead, Mitosis implements most of the necessary logic as smart contracts in the EVM (execution layer). For example:

  • A user stakes MITO to a validator on EVM
  • An operator creates and manages a validator on EVM
  • Staking rewards are distributed on EVM
  • Users cast votes and proposals are executed on EVM

Information Flow

The contracts manage all user flows and serve as the source of truth. Some information from the contracts is delivered to the consensus layer through EVM logs on:

Once an EVM block is created and finalized on the consensus layer, the consensus layer parses and processes the EVM logs in the block.

For more detailed information:

Custom Modules

There are three custom modules that enable the EVM-consensus integration:

x/evmengine

Forked from Octane

  • Communicates with an execution client through Engine API
  • Wraps an EVM block into one transaction in the consensus layer
  • There can only be one transaction wrapped from an EVM block
  • Other types of transactions are prohibited in a consensus block

x/evmvalidator

This module manages a validator set on the consensus layer. Note that there are no features such as delegation and reward distribution because those features are implemented in contracts on EVM. Most states are managed in the EVM contracts, and this module simply applies validator set changes and consensus voting power updates delivered from ConsensusValidatorEntrypoint. We could say this module is a lightweight version of x/staking that has EVM contracts as the source of truth.

Key Features:

  • Validator set management based on EVM contract state
  • Consensus voting power calculation with leverage limits
  • Jailing and slashing mechanisms for validator penalties
  • Integration with x/slashing and x/evidence modules

This module also implements some parts of interfaces of x/staking to integrate with x/slashing and x/evidence. Unlike traditional Cosmos chains where slashing directly affects delegator stakes, in Mitosis only validator collateral is subject to slashing, protecting user staked tokens.

x/evmgov

This module provides arbitrary message execution from EVM. Governance on EVM can trigger arbitrary message execution against consensus layer modules. It can be used for cases such as module parameter changes.

It is very lightweight compared to x/gov because there are no concepts such as proposals and voting power. These concepts are implemented in EVM contracts, and this module simply executes arbitrary messages delivered from ConsensusGovernanceEntrypoint.

Key Features:

  • Receives governance messages from EVM through event logs
  • Executes arbitrary consensus layer module messages
  • Supports parameter updates and module configuration changes

Basic Modules

Besides the three custom modules above, we use these Cosmos SDK modules without modifications:

  • x/auth
  • x/tx
  • x/bank
  • x/consensus
  • x/slashing (fork)
  • x/genutil
  • x/evidence (fork)
  • x/upgrade

Important: Mitosis does not use x/staking, x/distribution, and x/gov modules as mentioned above.