이더리움 상태 트리 교체안, 증명 부담 줄이는 설계
EIP-8297은 계정과 컨트랙트 데이터를 PBT에 구역별로 담는 방안을 제시했다. 제안은 초안이며 메인넷 적용 일정은 정해지지 않았다.
토포AI로 이 기사 더 깊이 읽기
이더리움(ETH)의 상태 구조를 머클 패트리샤 트리(MPT)에서 파티션드 바이너리 트리(PBT)로 바꾸는 방안이 제안됐다. EIP-8297은 상태 증명 부담을 줄이는 것이 목표지만, 메인넷 적용 일정은 정해지지 않았다.
2026년 6월 11일 작성된 EIP-8297은 11월 6일 현재 초안 상태다. 제안서는 계정 정보와 저장 데이터를 하나의 이진 트리에 담고, 계정·컨트랙트 코드·저장 데이터를 구역별로 배치하는 설계를 제시한다.
상태 트리는 이더리움의 계정과 컨트랙트 정보가 어떻게 기록됐는지 확인하는 구조다. 블록 검증에는 필요한 데이터가 트리에 포함돼 있음을 보여주는 상태 증명도 쓰인다.
EIP-8297은 계정 데이터와 저장 데이터의 트리를 합치고 기존 RLP 인코딩을 없애는 방안을 담았다. 데이터를 이진 트리 안의 구역별로 정리해 상태 증명을 다루기 쉽게 만드는 것이 설계의 한 축이다.
컨트랙트 코드는 코드 해시를 기준으로 나눠 저장하도록 했다. 같은 바이트코드를 사용하는 컨트랙트는 코드 해시를 기준으로 코드 데이터를 공유하도록 설계됐다.
제안서가 내세운 기술적 목표는 블록 검증에 필요한 상태 증명을 줄이는 것이다. 다만 EIP-8297은 가스 요금표를 변경하지 않는다고 명시한다.
PBT의 구역 구조는 향후 상태 만료와 부분 무상태성 연구에 활용될 수 있다. 상태 만료 방식 자체는 별도 제안으로 남아 있어, 이 초안만으로 노드가 상태 데이터를 저장하지 않아도 되는 단계에 들어가는 것은 아니다.
기존 상태를 새 구조로 옮기는 절차는 별도 초안인 EIP-8347이 다룬다. 확정된 기준 블록의 상태를 오프라인에서 변환하고 검증 가능한 스냅샷을 배포한 뒤, 블록 접근 목록(BAL)을 재생해 최신 상태를 따라잡는 방식이다.
EIP-8347은 BAL 재생을 이전 절차에 포함했다. 이는 BAL이 블록별 계정과 저장공간 접근 기록을 담는다고 설명한 본지 보도와 맞닿는 내용이다.
전환 기간에는 노드가 기존 MPT와 새 PBT를 함께 유지하도록 제안했다. 기존 상태와 새 상태를 병행하는 과정에서 노드의 저장·계산 부담이 늘 수 있다.
EIP-8347은 두 트리를 유지하는 동안 상태 저장 공간이 대략 두 배로 늘 수 있다고 설명한다. 블록마다 양쪽 구조를 갱신하면서 계산과 읽기·쓰기 작업도 증가할 수 있다.
상태 증명을 검증하는 서비스도 새 형식에 맞춰 조정해야 한다. 제안서는 브리지와 라이트 클라이언트, eth_getProof를 이용하는 서비스 등을 대상으로 든다.
저장장치 부담을 살핀 분석도 공개됐다. 10월 27일 이더리움 개발자 포럼에 올라온 분석은 메인넷 데이터를 재생해 여러 디스크 저장 방식을 비교했다.
비교 대상 8개 방식 가운데 6개는 모델에 기반했다. 분석은 일반적인 리눅스 NVMe 환경의 측정도 남아 있다고 밝혀, 실제 노드 성능이 개선됐다는 실증 결과로 볼 수는 없다.
해시 함수 선택도 확정되지 않았다. EIP-8297의 참조 구현은 BLAKE3를 사용하지만, 제안서는 최종 해시 함수를 정하지 않았다.
상태 이전을 다루는 EIP-8347도 초안이며 PBT를 활성화할 하드포크 시점을 정하지 않았다. 활성화 일정은 해당 제안을 포함하는 별도 하드포크 메타 제안에서 설정하도록 했다.

정민석 기자 




Comment 0
불러오는 중…