Rough exploratory ideas to see whether it is viable and valuable to align our reward/fees system with the Polkadot-Kusama bridge.

Currently our bridge charges a fee in wETH on the source chain for sending messages to Ethereum, and wDOT on Ethereum for sending messages to Polkadot.

While this simplifies the process of matching fees to rewards in a decentralized manner, it does have the following problems:

  1. wDOT and wETH tokens need to be bootstrapped by a separate non-incentivized message relay. Specifically our basic channel.
  2. Users need to obtain wDOT (on Ethereum) or wETH (on Polkadot) from a DEX before being able to use the bridge. This is especially problematic if a DEX isn’t deployed to Statemint.
  3. BridgeHub parachain does not have an assets pallet, so it cannot charge fees for messaging using arbitrary fee currencies (such as wETH). Instead, all messages to Ethereum would need to be routed somehow through Statemint, where the wETH fee can be charged, and then onto BridgeHub

Issue (3) is definitely a blocker, and plays a large role in our desire to the align with the model used for the Polkadot-Kusama bridge.

Polkadot-Kusama Bridge

For comparison purposes, this is my understanding of the fee/reward model in the Polkadot-Kusama bridge being developed by Parity

Steps for Statemint→Statemine transfers

  1. Polkadot
    1. On Statemint parachain, user pays fee in DOT to enqueue a message. This fee needs to cover:
      1. The XCM fee for forwarding the message to BridgeHub
      2. The fee charged by BridgeHub for exporting the message to Kusama
    2. Fee is paid into Statemint's treasury
    3. Statemint forwards message and bridge fee to BHP (Bridge Hub on Polkadot)
    4. BHP deposits fee to sovereign account of Statemint on BHP and exports message
  2. Kusama
    1. Relayer submits message to BHK (Bridge Hub on Kusama)
    2. Relayer's transaction fee is reimbursed using KSM from Statemint's sovereign account on BHK
    3. BHK forwards message to Statemine
    4. BHK emits delivery notification back to BHP
  3. Polkadot
    1. Relayer submits delivery notification to BHP
    2. Relayer is reimbursed and rewarded using DOT from Statemint's sovereign account on BHP

Using funds from their treasuries, parachain teams need to top-up their sovereign accounts on destination chains on a regular basis.

Polkadot-Ethereum Bridge

Each parachain will be auto-assigned a proxy contract on Ethereum, under the control of the bridge. A proxy contract essentially serves as a projection of a parachain's identity/origin into Ethereum. When XCM scripts are executed on Ethereum, they will always run under the authority of a specific proxy contract. This mirrors the way XCM scripts are executed on Polkadot.

To keep the following scenarios fairly concrete, the Statemint parachain is used, though other parachains can be substituted generically.

Steps for Statemint→Ethereum transfers

  1. Polkadot
    1. On Statemint parachain, user pays fee in DOT. This fee needs to cover:
      1. XCM fee for forwarding message to BridgeHub
      2. The fee charged by BridgeHub for exporting the message to Ethereum. This includes the cost borne by off-chain relayers to relay messages to Ethereum
    2. Fee is paid into Statemint's treasury
    3. Statemint forwards message and bridge fee to BH
    4. BH deposits fee into sovereign account of Statemint on BH and exports message