증명자들은 합의 레이어의 가십 네트워크에서 새로운 실행블록을 수신한다. 합의 클라이언트는 수신한 실행블록에 포함된 트랜잭션들을 실행 클라이언트에 전달하여 로컬에서 다시 실행하여 제안된 상태 변경이 유효한지 검증하고, 블록 서명을 검증한다.
블록이 유효하다고 검증되면 증명자는 해당 블록에 찬성한다는 증명데이터를 작성하고 서브넷에 전파한다.
증명데이터(Attestation Data): 증명의 내용을 나타내는 데이터.
class AttestationData(Container): slot: Slot index: CommitteeIndex # LMD GHOST vote beacon_block_root: Root # FFG vote source: Checkpoint target: Checkpoint
LMD 고스트 투표(LMD GHOST Vote): 매 슬롯 마다 64개의 위원회들의 모든 증명자들은 제안된 블록 또는 그 이전 블록들 중 표준체인으로 지지하는 블록의 루트해시를 증명데이터에 첨부함으로써 포크를 선택하는 투표를 한다.
초다수 링크(Supermajority Link): 초다수(2/3) 이상의 표를 얻어
캐스퍼 FFG 투표(Casper FFG Vote): 매 슬롯 마다 64개의 위원회들의 모든 증명자들은 마지막으로 정당화된 체크포인트와 초다수 링크로 연결될
각 에포크마다 각 서브넷에서 16명의 검증자가 집계자(Aggregator)로 선택된다. 집계자는 가십 네트워크를 통해 자신과 동치인 데이터를 가진 모든 증명데이터를 수집한다. 동치인 각 증명데이터의 발신자는 aggregation_bits에 기록된다. 그 후 집계자는 더 넓은 네트워크에 집계된 증명서를 전파한다.
증명서(Attestation):
class Attestation(Container): aggregation_bits: Bitlist[MAX_VALIDATORS_PER_COMMITTEE] data: AttestationData signature: BLSSignature
증명자 목록(aggregation_bits): 검증자 인덱스에 매핑되는 검증자의 비트리스트, 즉 이 증명에 참여한 검증자 목록.
증명데이터(data): 증명데이터.
증명자 집계서명(signature): 모든 증명자들의 BLS 집계 서명.
수신한 노드의 검증자 클라이언트는 해당 블록이 유효하며 체인 관점에서 논리적으로 다음 블록임을 찬성하는 투표를 한다(즉, 포크 선택 규칙에 정의된 대로 가장 큰 비중의 표를 얻은 체인에 블록을 구축한다는 의미). 블록은 이에 찬성하는 각 노드의 로컬 데이터베이스에 추가된다.