1.5 KiB
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