Tech/EIPs/#2124
EIP 2124카테고리 · 네트워킹유형 · 표준 트랙상태 · 최종

Fork identifier for chain compatibility checks

EIP-2124는 이더리움 노드가 피어 간 체인 호환성을 빠르게 확인할 수 있도록 포크 식별자(fork identifier)를 도입하는 제안으로, 현재 최종 확정된 상태입니다. 이를 통해 서로 다른 포크에 있는 노드 간의 불필요한 연결 시도를 방지합니다.

제안 배경

메인넷, 테스트넷, 다양한 하드포크 버전의 노드들이 P2P 네트워크에서 혼재할 경우 호환되지 않는 노드끼리 연결을 시도하는 문제가 발생합니다. 포크 식별자를 통해 핸드셰이크 단계에서 빠르게 호환성을 확인할 수 있습니다.

기술적 내용

포크 식별자는 FORK_HASH(4바이트)와 FORK_NEXT(8바이트)로 구성됩니다. FORK_HASH는 제네시스 해시와 포크 블록 번호를 CRC32로 해싱한 값이며, FORK_NEXT는 다음 예정 포크 블록 번호입니다.

네트워크 보호

이 메커니즘은 노드가 의도적으로 다른 포크의 피어에 연결하는 것을 방지하고, 네트워크 분리(network split) 상황에서 올바른 체인의 피어를 찾는 데 도움이 됩니다. ETH 핸드셰이크 프로토콜(devp2p)에 통합되었습니다.

채택 현황

EIP-2124는 Geth, Besu, Nethermind 등 주요 이더리움 클라이언트에서 구현되어 실제 네트워크에서 사용됩니다. ENR(Ethereum Node Records, EIP-778)에도 포크 ID가 포함되어 피어 발견에 활용됩니다.

공식 EIP 문서open_in_new