Tech/EIPs/#214
EIP 214카테고리 · 코어유형 · 표준 트랙상태 · 최종

New opcode STATICCALL

EIP-214는 상태를 변경하지 못하는 정적 호출을 위한 새로운 EVM 오피코드 STATICCALL을 도입했습니다. 이 오피코드는 Byzantium 하드포크에서 Final 상태로 활성화되었습니다.

도입 배경

외부 컨트랙트를 호출할 때 그 컨트랙트가 상태를 수정하지 않는다는 보장이 없었습니다. 읽기 전용 함수를 호출하더라도 재진입 공격이나 의도치 않은 상태 변경이 발생할 가능성이 있었습니다.

오피코드 동작

STATICCALL(0xFA)은 CALL과 유사하게 동작하지만, 호출된 컨텍스트에서 상태를 변경하는 모든 연산(SSTORE, LOG, CREATE, SELFDESTRUCT, CALL with value 등)을 금지합니다. 위반 시 실행이 되돌려집니다.

보안 강화

순수 뷰 함수 호출의 안전성이 공식적으로 보장되어, 컨트랙트 설계 시 부작용 없는 외부 호출을 명시적으로 표현할 수 있게 되었습니다. Solidity의 view와 pure 함수 수식어가 내부적으로 STATICCALL을 활용합니다.

활성화 및 영향

Byzantium 하드포크에서 활성화되었으며, 이후 EVM 보안 모델의 핵심 구성 요소로 자리 잡았습니다. 스마트 컨트랙트 감사 및 형식 검증 도구들도 STATICCALL 경계를 중요한 분석 지점으로 활용합니다.

공식 EIP 문서open_in_new