This doc describes possible technical specification for a bridge-agnostic model of managing Lido staked Eth on Cosmos chains.

The aim of the spec is to solve issues of liquidity fragmentation and reduce any bridge-related issues, such as vendor lock and possible vulnerabilities. It mostly addresses this section of the previously made stETH bridging spec: https://hackmd.io/@lido/BJGOoX2hF#Ethereum-state-communication-channel

Overview

┌───────────────────┐      ┌─────────────────┐       ┌───────────────┐
│  Ethereum         │      │  Neutron        │       │Cosmos chain 1 │
│                   │      │                 │       │      ┌─────┐  │
│ ┌─────┐  ┌────┐   │      │    ┌─────┐      │   ┌───┼─────►│Users│  │
│ │Users│  │Lido│   │      │    │Users│      │   │   │      └─────┘  │
│ └──▲──┘  │DAO │   │      │    └─▲───┘      │   │   │               │
│    │     └─┬──┘   │      │      │          │   │   └───────────────┘
│    │       │      │      │      │          │   │
│    │       │      │      │ ┌────▼────┐     │   │   ┌───────────────┐
│ ┌──▼────┐  │      │      │ │Lido     │  IBC│   │   │Cosmos chain 2 │
│ │Lido   │  │      │      │ │Satellite│◄────┼───┼─┐ │      ┌─────┐  │
│ │Mission◄──┘      │      │ └────▲────┘     │   │ └─┼─────►│Users│  │
│ │Control│         │      │      │          │   │   │      └─────┘  │
│ └─▲─────┘         │      │      └───────┐  │   │   │               │
│   │               │      │              │  │   │   └───────────────┘
│   │  ┌─────────┐  │      │ ┌─────────┐  │  │   │
│   ├─►│Bridge   │◄─┼──────┤►│Bridge   ├──┤  │   │   ┌───────────────┐
│   │  │adapter 1│  │      │ │adapter 1│  │  │   │   │Cosmos chain 3 │
│   │  └─────────┘  │      │ └─────────┘  │  │   │   │      ┌─────┐  │
│   │               │      │              │  │   └───┼─────►│Users│  │
│   │  ┌─────────┐  │      │ ┌─────────┐  │  │       │      └─────┘  │
│   ├─►│Bridge   │◄─┼──────┤►│Bridge   ├──┤  │       │               │
│   │  │adapter 2│  │      │ │adapter 2│  │  │       └───────────────┘
│   │  └─────────┘  │      │ └─────────┘  │  │
│   │               │      │              │  │
│   │  ┌─────────┐  │      │ ┌─────────┐  │  │
│   └─►│Bridge   │◄─┼──────┤►│Bridge   ├──┘  │
│      │adapter 3│  │      │ │adapter 3│     │
│      └─────────┘  │      │ └─────────┘     │
│                   │      │                 │
└───────────────────┘      └─────────────────┘

High-level components

The whole thing consists of several main parts:

  1. Mission control [settled on Ethereum]
    1. holds locked wstETH on the Ethereum side
    2. allows Lido DAO to manage Satellite on the Neutron side
    3. communicates with bridge adapters in order to transfer messages through the bridges
  2. Satellite [settled on Neutron]
    1. mints wstETH on Neutron
    2. handles possible Eth-staking-on-Cosmos logic
    3. handles possible rebase of stETH-on-Cosmos
  3. Bridge adapters
    1. implement all the bridge-specific behavior

Modular system

Each component consists of several modules:

  1. Mission control:

  2. Common module

  3. Receiver module

  4. Sender module

Satellite:

  1. Common module
  2. Receiver module
  3. Sender module

Any bridge adapter: