Delegator
Delegators are crucial components of the Symbiotic protocol, responsible for managing stake distribution across networks and operators. They come in three primary types: FullRestakeDelegator, NetworkRestakeDelegator and OperatorSpecificDelegator. These modules connect to the Vault and interact with its active stake to determine how stakes are allocated.
Key functions of delegators:
- Setting and managing limits for operators and networks
- Calculating actual stake amounts based on set limits and the vault’s active stake
- Implementing a system to handle slashing events
Delegators use a system of limits to manage stake distribution:
- Network Limits (NL): Maximum stake a network can receive
- Operator Limits (OpL): Maximum stake an operator can receive within a network
- Max Network Limits (mNL): Set by networks, indicating the maximum possible delegation they can accept
The process of changing limits in delegators involves specific roles:
- Vault Owner: Has the authority to change limits for operators and networks
- Network Administrators: Can set and adjust Max Network Limits (mNL) for their respective networks
These roles ensure that limit changes are controlled and authorized by the appropriate parties within the Symbiotic ecosystem.
There are obvious re-staking trade-offs with cross-slashing when stake can be reduced asynchronously. Networks should manage these risks by:
- Maintaining a safe re-staking ratio.
- Choosing the right stake-capturing ratio to minimize reaction time.
Technical overview
Delegator is a separate module that connects to the Vault. The purpose of this module is to set limits for operators and networks, with the limits representing the operators’ stake and the networks’ stake. Currently, there are tree types of delegators implemented:
- FullRestakeDelegator
- NetworkRestakeDelegator
- OperatorSpecificDelegator
Here we describe common technical information for all modules.
Let be the limit of the network. This limit can be considered as the network’s stake, meaning the amount of funds delegated to the network. is set by a special role in the delegator module. However, the module normalizes it. Let the vault’s active supply be .
Then - network stake.
Additionally, the modules have a max network limit , which is set by the networks themselves. This serves as the maximum possible amount of funds that can be delegated to the network. It is guaranteed that . This limit is mainly used by networks to manage a safe restaking ratio.
If the operator is slashed by in the network his stake can be decreased:
Also, it should be mentioned that in the case of slashing, these modules have special hooks that call the method to process the change of limits. In general, we don’t need such a method to exist because all the limits can be changed manually and instantly w/o changing already given guarantees.
NetworkRestakeDelegator
The main goal of this delegator is to allow restaking between multiple networks but restrict operators from being restaked within the same network. The operators’ stakes are represented as shares in the network’s stake.
Each network’s stakes are divided across operators.
Let the operator’s share in the network be .
Then
- - the operator’s stake in the network
FullRestakeDelegator
This module performs restaking for both operators and networks simultaneously. The stake in the vault is shared between operators and networks. The designated role can change these stakes. If a network slashes an operator, it may cause a decrease in the stake of other restaked operators even in the same network. However, it depends on the distribution of the stakes in the module.
In this module, we introduce so-called limits for operators. Each operator has its own limit in every network.
Let the operator’s limit in the network be . Such a limit is considered a stake of the operators.
- the operator’s stake in the network
As already stated, this module enables restaking for operators. This means the sum of operators’ stakes in the network can exceed the network’s own stake. This module is useful when operators have an insurance fund for slashing and are curated by a trusted party.
OperatorSpecificDelegator
OperatorSpecificDelegator is a unique and specialized type of delegator that can be used for operator-specific vaults. Its essence lies in the fact that it supports only one operator within itself. Essentially, it simplifies both NetworkRestake and FullRestake delegators while providing a strict guarantee that there is a non-zero limit for only one operator inside. In other respects, it does not differ from other delegators; they share a common interface, all support a system of hooks, and so on.
A use case for such a delegator is when an operator creates a vault for itself, acts as its full or partial manager, and then specifies OperatorSpecificDelegator as the delegator module.
This model is straightforward and similar to traditional staking systems but can also include the restaking of assets across multiple networks.
Basic versions of delegators do not change the limits of operators and networks after slashing. To have the limits automatically adjusted following slashing, it is necessary to configure this in the delegator hook.
Hooks in Delegators
Hooks are an important feature in delegators, particularly in handling slashing events:
- onSlash Method: This method is called when a slashing event occurs
- Custom Hooks: Within the onSlash method, custom hooks can be triggered
- Dynamic Limit Adjustments: These hooks can modify network or operator limits in response to slashing events
Hooks provide a flexible mechanism for delegators to respond to network events and adjust stake distribution dynamically. They allow for automated risk management and can help maintain the integrity of the staking system in the face of unexpected events or malicious behavior.
To get more specific information about hooks refer here