개요

이더리움 PoS에서 한 트랜잭션이 네트워크에 전파되고 블록에 포함된 뒤 최종화되기까지의 핵심 흐름 정리 노드별 로컬 mempool, 슬롯 기반 제안자 선정, 검증자 attestation, 포크 선택, 최종화 순서로 진행 현실적으로 일부 제안자는 외부 빌더를 사용할 수 있으나 프로토콜 관점의 기본 흐름을 기준으로 설명

전체 흐름

1 트랜잭션 발생 및 전파

  • 사용자가 서명된 트랜잭션 전송
  • 여러 노드가 트랜잭션을 수신하고 각자 로컬 mempool에 저장
  • mempool은 전역 공유가 아닌 노드 로컬 데이터 구조

2 슬롯과 제안자 선정

  • 시간은 슬롯 단위로 진행되며 슬롯들은 에포크로 묶임
  • 매 슬롯마다 지분 가중 무작위로 1명의 검증자가 제안자로 선정됨
  • 제안자는 검증자 집합에서만 나옴 일반 노드는 선정 대상이 아님
  • 검증자 입장에서는 자기 차례 개념이 존재하지만 모든 노드의 차례는 아님

3 블록 생성과 제안

  • 제안자는 자신의 로컬 mempool에서 트랜잭션을 선택해 블록을 구성
  • 상태 전이 규칙을 적용해 블록을 만들고 서명 후 네트워크에 브로드캐스트
  • 현실에서는 일부 제안자가 외부 빌더를 통해 블록을 공급받기도 하나 기본 모델은 제안자가 직접 선택

4 검증자 검증과 attestation

  • 다른 검증자들은 수신한 블록의 구조 유효성 트랜잭션 유효성 가스 사용량 계산 부모 해시 등을 점검
  • 문제가 없으면 해당 슬롯에 대한 attestation을 생성해 전파
  • 문제가 있거나 더 적합한 체인 헤드가 있으면 해당 블록을 무시하고 다른 후보에 가중치 부여

5 포크 선택과 체인 반영

  • 노드는 수신된 attestations을 가중치로 사용해 포크 선택 규칙을 적용해 헤드 블록 결정
  • 충분한 가중치가 모이면 제안된 블록이 canonical chain의 헤드로 채택되어 연결
  • 이후 에포크 경계를 통과하며 정당화와 최종화가 진행되며 최종화 이후에는 되돌리기 어려움

6 최종화와 재구성 가능성

  • 일반적으로 두 개의 연속된 에포크 조건이 충족되면 관련 블록들이 최종화 상태에 도달
  • 최종화 이전에는 네트워크 지연이나 가중치 분포 변화에 따라 짧은 재구성 발생 가능성이 존재

중요한 오해 정리

  • 노드가 순서를 기다리다 블록을 만든다 아님 검증자만 가능하며 매 슬롯 한 명의 제안자만 블록을 제안
  • 모든 노드가 승인해야 블록이 올라간다 아님 지분 기반 다수 검증자의 attestation이 합의에 충분하면 포함
  • mempool이 하나만 존재한다 아님 노드마다 로컬 mempool 유지

역할 요약

  • 일반 노드 트랜잭션 수신과 로컬 mempool 유지 블록과 attestation 검증 포크 선택 수행
  • 검증자 슬롯에 따라 블록 제안 또는 attestation 수행 스케줄에 따라 역할이 정해짐
  • 제안자 로컬 mempool 기준 트랜잭션 선택 블록 구성 및 서명 후 전파
  • attester 블록 유효성 검토 후 투표 가중치 제공
  • 빌더 선택적 오프체인 역할 제안자가 위임해 블록을 공급받는 경우가 존재하나 프로토콜 필수 요소는 아님

핵심 요약

  • 모든 노드가 블록을 만드는 구조가 아님 검증자 집합에서 슬롯별 1명이 제안
  • 나머지 검증자는 검증과 attestation으로 가중치 제공
  • 충분한 가중치가 모이면 체인에 반영되고 에포크 진행을 통해 최종화 도달

참고자료