Tech/EIPs/#2327
EIP 2327카테고리 · 코어유형 · 표준 트랙상태 · 정체

BEGINDATA opcode

EIP-2327는 EVM 바이트코드에서 데이터 섹션의 시작을 명시적으로 표시하는 BEGINDATA 옵코드를 제안합니다. 코드와 데이터를 명확히 구분하여 정적 분석과 보안을 향상시키는 것이 목표입니다.

문제 배경

현재 EVM 바이트코드는 실행 코드와 데이터가 혼재할 수 있어 정적 분석이 어렵습니다. 데이터 영역에 유효한 옵코드가 포함될 경우 분석 도구가 잘못된 결론을 낼 수 있습니다. BEGINDATA는 이후의 바이트가 실행 불가능한 데이터임을 명시적으로 선언합니다.

BEGINDATA 옵코드 동작

BEGINDATA 옵코드 이후의 모든 바이트는 데이터로 간주되어 실행되지 않습니다. 런타임에 BEGINDATA에 도달하면 실행이 종료됩니다(STOP과 유사). 이를 통해 코드와 데이터의 경계를 명확히 정의할 수 있습니다.

정적 분석 이점

분석 도구가 코드 섹션과 데이터 섹션을 명확히 구분하여 더 정확한 분석 결과를 제공할 수 있습니다. 형식 검증 도구의 복잡성이 크게 줄어듭니다. 점프 목적지 검증도 더 간단해집니다.

침체 상황

EOF(EVM Object Format)가 코드/데이터 분리를 더 포괄적으로 해결하면서 이 단순한 접근의 필요성이 줄었습니다. 현재 Stagnant 상태로 독립적인 채택 가능성이 낮습니다.

공식 EIP 문서open_in_new