babylonchain / babylon

Main repo for Babylon full node
https://babylonchain.io
Other
239 stars 165 forks source link

Incentive Conflict for Slashing Path Pre-Sigged TX #740

Closed CedMaire closed 3 weeks ago

CedMaire commented 2 months ago

https://github.com/babylonchain/babylon/blob/6dbcf44b79511873aa3840de0b3c1dc8d1b78372/docs/staking-script.md?plain=1#L245-L249

I have a question about the slashing TX. The current design suggests that it must be pre-signed by the staker and covenant committee.

However, since the finality provider is the party that could be slashed in the event of misconduct, wouldn't we require their signature in the pre-signed TX? The finality provider would have no incentive to sign a TX that could result in their own punishment or that of their delegator. Shouldn't the slashing TX be pre-signed by the staker (and potentially the finality provider, but I don't see a reason) and then finalized by the covenant committee's signatures on bad behavior? This would ensure the slashing process is enforceable and there aren't conflicts of interest.

Can you clarify if I’m missing something here?

vitsalis commented 3 weeks ago

This is by design. The only signature missing for the slashing transaction is the one from the finality provider. If the finality provider equivocates, then their private key is exposed through the EOTS mechanism. With the private key exposed, anyone can provide the missing signature to the slashing transaction and ensure the slashing of the stake. Feel free to check the litepaper for more details.

Closing this issue as it does not relate to the codebase and is an informational query.