🟦Symbiosis Relayer

Relayer is a unit of the relayers network. How to stake/unstake and run a relayer node.

Introducing Relayer

A relayer is a node with special software running on it with two requirements for that entity:

  1. The node and staker addresses are registered in the Staking contract. The node address corresponds to the node’s private key; the staker address is used to manage staked SIS tokens and withdraw rewards. All addresses in the Staking contract are unique: one staker address can only be associated with one node address and vice versa.

  2. A stake of a certain size is deposited from the staker address into the Staking contract for that entity.

If the requirements are met, the node can participate in the Symbiosis relayers network, and the staker associated with that node can receive rewards for the node’s work. From now on, we will refer to such an entity as (a) relayer.

Registering and Managing a Relayer

We are in the process of making staking for relayers public. Once we have all the details worked out, we will publish information about the minimum stake size, rewards, and user guides: how to stake, and how to run a relayer node.

Symbiosis provides a web application that helps node runners to:

  • Register a relayer in the Staking contract. The registration includes:

    • Registering the node and staker addresses: the node’s address is used to authenticate the relayer node in the relayers network, and the staker’s address is used to withdraw rewards and staked SIS tokens.

    • Staking SIS tokens as a security guarantee.

  • Change the node address,

  • Check and withdraw rewards,

  • Manage the stake (adding, withdrawing),

  • Exit staking, which includes the complete withdrawal of accumulated rewards and staked SIS tokens.

Managing Staked SIS tokens

A node runner can add SIS tokens to their stake and withdraw staked tokens. However, because the size of the stake is taken into account in the operation of the relayers network, adding/withdrawing SIS tokens cannot be instantaneous (Scheme 1).

A node runner claims to add/withdraw SIS tokens first and when the current epoch changes:

  • The adding tokens join the stake of the relayer,

  • The withdrawing tokens are subtracted from the staked tokens and become available for actual withdrawal.

tiβˆ’1,tit_{i-1}, t_i are timestamps when epochs are changed in the Staking contract.

For more information about the epoch change procedure, please refer to Epoch Change.

Rewards

There are currently two types of rewards:

  1. For participating in MPC group activities,

  2. For participating in the epoch change.

When the epoch changes, the rewards are calculated and added to the amount of SIS tokens staked by each relayer. Staked SIS tokens can be withdrawn with one condition: the number of remaining SIS tokens must not be less than a certain value (the threshold).

For more information on reward distribution, please refer to #3.-epoch-shange-in-the-staking-contract.

Blocking a Relayer

A relayer can be blocked for protocol violations or other malicious activity. While being blocked, a relayer cannot participate in the relayers network and cannot receive new rewards. The available functionalities for the node runner of the blocked relayer are:

  1. Withdraw accrued rewards,

  2. Exit staking.

Currently, the Symbiosis sysadmins are responsible for monitoring relayers and blocking them if necessary. In the future, however, the relayers network will perform this task in a decentralized manner.

Blocking occurs in the Staking contract: a special flag is added for the relayer.

Relayer Node Keys

Each relayer node always has its own private key, and may have fragments of MPC keys for different epochs.

The relayer node’s private key

The address that matches the key is registered in the Staking contract. The key is used in two cases:

  1. To authenticate the relayer to the relayer’s network,

  2. To sign transactions that change epochs.

MPC keys

When a relayer is a member of an MPC group, the relayer has a fragment of the MPC key for that epoch. The key is used to:

  1. Sign data about cross-chain operations between blockchains during the epoch, in which the key is active,

  2. Change the MPC address stored in the BridgeV2 contracts to a new one when the epoch changes and the relayer has a fragment of the MPC key corresponding to the MPC address stored in the BridgeV2 contract.

Each relayer can have multiple MPC key fragments for different epochs.

For more information about the generation of MPC keys, please refer to Epoch Change.

Last updated