Earlier quoted context omitted.
There is no designated class of slashers. Slashing is part of the protocol and to slash somebody you have to prove it to the protocol that they broke rules of slashing. One of the rules is that you can't create two different blocks in the same slot (block number) i.e. you can't deliberately fork. There is a designated place in the block of the beacon chain where you can put signatures of the different blocks in the s…
>There is no designated class of slashers. Not true. In your defence, I also only learned this today. https://docs.prylabs.network/docs/prysm-usage/slasher https://lighthouse-book.sigmaprime.io/slasher.html
It’s just the specifics of how this works - slashing is part of the protocol in the sense that I described: when you are chosen to create a new block and you have proof that someone violated the rules then you include this proof in your proposed block and update balance. Any validator can do it including the smallest of home stakers.
More details here. https://github.com/ethereum/annotated-spec/blob/master/phase...
Here we have slashing fields in the block body where you insert your proofs of slashable offense. There are functions with a “slash” in the name that describes precise state transition.
The hard part of slashing is finding these proofs because you have to do more work than necessary to detect slashing and produce proofs - that’s what this software does. It’s more expensive to run a slasher but you need only one and it does not matter who runs it, anyone can run it. The link that you sent says that this slasher broadcasts proofs by default - that way anyone can include it.