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

Deprecate the CALLCODE opcode

EIP-2488은 이더리움 EVM에서 레거시 오퍼코드인 CALLCODE를 더 이상 사용하지 않도록 폐기를 제안합니다. DELEGATECALL이 동일한 기능을 더 안전하게 제공하므로, CALLCODE 제거를 통해 코드베이스를 단순화하려는 시도입니다.

배경 및 목적

CALLCODE는 EIP-7(DELEGATECALL)이 도입되기 전에 사용되던 오퍼코드로, 호출자의 컨텍스트에서 외부 코드를 실행하는 기능을 제공했습니다. 그러나 DELEGATECALL이 더 명확한 시맨틱으로 동일한 기능을 수행할 수 있어 CALLCODE는 사실상 중복입니다.

폐기 제안 내용

EIP-2488은 CALLCODE(0xF2) 오퍼코드를 사용할 경우 REVERT 동작을 유발하도록 변경하는 것을 제안합니다. 이를 통해 개발자들이 DELEGATECALL로 마이그레이션하도록 유도하고, 오래된 취약한 패턴을 제거합니다.

정체 이유

기존 스마트 컨트랙트 중 일부는 CALLCODE에 의존할 수 있어 하위 호환성 파괴가 우려됩니다. 이더리움 커뮤니티에서는 CALLCODE 사용이 이미 매우 드물지만, 강제 폐기에 대한 합의가 이루어지지 않아 스태그넌트 상태로 남아 있습니다.

역사적 맥락

CALLCODE는 이더리움 초창기부터 존재했으며, Solidity 초기 버전에서 라이브러리 호출에 사용되었습니다. EIP-7로 DELEGATECALL이 도입된 이후 CALLCODE는 실질적으로 사용되지 않게 되었으나 공식 폐기 절차는 진행되지 않았습니다.

공식 EIP 문서open_in_new