Skip to main content

Slasher

The Slasher module is a component of the Symbiotic protocol that handles the enforcement of slashing penalties. It’s an optional but important part of the vault system, designed to process and execute slashing requests from networks.

How the Slasher Module Works

The Slasher module operates as follows:

  • It receives slashing requests from network middlewares.
  • It verifies the validity of these requests, including checking that the operator is opted into the vault and is interacting with the network.
  • If the request is valid, it initiates the slashing process.

It’s important to note that the Slasher module does not decide whether a network should slash an operator. This decision is made by the network itself. The Slasher module’s role is to verify and execute the slashing requests it receives.

Technical overview

In the Symbiotic protocol, a slasher module is optional. However, the text below describes the core principles when the vault has a slasher module.

general slashing

Consider the network captures the stake of the operator at moment tt. To do so, it calls the stakeAtstakeAt function with a given network, operator, and timestamptimestamp (moment of capturing guarantees, which should be in the past, when the blocks are already finalized). Let SS be the resulting stake. This value is valid for dd = EPOCH_SIZE time. From this point, the pair (S,t)(S, t) is a guarantee given by the vault to the network. The guarantee is valid from the timestamptimestamp moment to timestamp+dtimestamp + d.

guarantee of slashing

Slashing in Symbiotic is implemented through separate modules connected to the vault.

Essentially, slashing is the enforcement of the guarantees described above. Currently, there are two types of slashing: instant and veto-slashing.

Instant slashing

Instant slashing is executed immediately when a request comes in.

instant slashing

Veto slashing

Veto slashing consists of two stages: the Veto Phase and the Execute Phase.

veto slashing

After submitting a slashing request, there is a period of VV time to issue a veto on the slashing. The veto can be made by designated participants in the vault, known as resolvers. Each network can either have a resolver or not, and a resolver can cancel all of the slashing or pass the slashing to the next phase. If the slashing is not resolved after this phase, there is a period of E=EPOCHV(request_timestampcapture_timestamp)E = EPOCH - V - (request\_timestamp - capture\_timestamp) time to execute the slashing. Only a network middleware can execute it. The network must consider how much time is left until the end of the guarantee before sending the slashing request.

Burners

When a slashing event occurs and is verified by the Slasher module, it triggers a call to the appropriate burner contract. The burner contract would then be responsible for actually burning the slashed collateral or redeeming and burning the underlying asset in the case of derivative assets.

To get more specific information about how the Slasher module interacts with burner contracts refer here