Beacon Chain Validators: Redundancy Risks and Failover
Editor's Note: This article comes fromEthereum enthusiasts (ID: ethfans)Ethereum enthusiasts (ID: ethfans)
Ethereum enthusiasts (ID: ethfans)
, Author: Aditya Asgaonkar, translation: A Jian, reprinted by Odaily with authorization.
first level title
Validators and Validator Clients
A verifier is a concept related to the beacon chain, and a verifier is a participant in the consensus process of the beacon chain. Verifiers are identified by public keys, and each verifier will be assigned the task of verifying the beacon chain at different times. If you successfully complete these tasks, you will be rewarded; on the contrary, if you neglect your duties, you will not only not be rewarded, but will also be severely punished. In Phase 0, these accusations are limited to proposing blocks and submitting attestations on the beacon chain.
Validators need to use a software called a validator client (VC) to perform their duties1. All beacon chain client teams use VC as one of their client software packages.
Needless to say, validators want their clients to be online 24/7 so that they can reap maximum benefits and avoid all penalties. A common way to achieve high availability is to set up redundancy and failover mechanisms. This article explains the dangers of redundancy to validators and proposes a reasonable failover for VCs in the beacon chain. Type of loss/penalty Validators face three types of losses, in ascending order of severity:
(Translator's Note: The author missed a loss here: when the beacon chain cannot obtain finality, not only will the verifiers who did not send the witness message be punished for slowing down, but the witnesses who sent the message will also suffer losses. , but the loss is smaller than the former; however, the author mainly discusses the loss related to the offline of the verifier in this article, so it is also understandable.)
Some stakers may believe that running redundant VCs is insurance against one VC going offline. But in fact, redundant VC facilities are not safe, and it is very likely that validators will be fined eventually!
image description
Note: When I say "failover", I mean manually or automatically restarting a new VC instance after a VC is stopped, however, I do not recommend using an automated failover mechanism, because if implemented poorly, it can cause you There are two VCs hanging on the line!
- Slash protection mechanism - Slash protection mechanism: All VC software developed by the beacon chain client team has a slash protection mechanism as an automatic fail-safe device for unexpected events. According to the slashing rules, only pairs of attestation messages will result in slashing, only need to check this pair of messages to judge the result. Then, VC can store all the messages and blocks signed by itself in the local slash protection database. When signing any new attestation message/block, VC only needs to check whether the new message conflicts with the old message in the database (whether it will form a slashed message pair), and only sign the new message that does not conflict. Therefore, VC needs three mechanisms to ensure correct and safe operation:
A good failover protocol must account for the failure of either mechanism. The first two are easy to guarantee - a redundant BN can be maintained for new VC connections, and the signing key can also be copied from the backup folder as a read-only file.
My suggested failover solution
image description - Initial VC settings and multi-scenario failover protocols - In this setting, a variety of errors have a distribution corresponding to the processing scheme:


