eth2.0-specs/specs/_features/eip7251/validator.md

1.5 KiB

Phase 0 -- Honest Validator

This is an accompanying document to Phase 0 -- The Beacon Chain, which describes the expected actions of a "validator" participating in the Ethereum proof-of-stake protocol.

Table of contents

Introduction

This document represents the changes to be made in the code of an "honest validator" to implement Deneb.

Beacon chain responsibilities

Attestation aggregation

Aggregation selection

Aggregator selection is now balance based. state is the BeaconState at the previous epoch of slot to allow lookahead.

def is_aggregator(state: BeaconState, slot: Slot, index: CommitteeIndex,
                  slot_signature: BLSSignature, validator: ValidatorIndex) -> bool:
    committee = get_beacon_committee(state, slot, index)
    committee_balance = get_total_balance(state, set(committee))
    balance = state.balances[validator]
    modulo = max(1, committee_balance // balance // TARGET_AGGREGATORS_PER_COMMITTEE)
    return bytes_to_uint64(hash(slot_signature)[0:8]) % modulo == 0