EIP 3카테고리 · 코어유형 · 표준 트랙상태 · 철회됨

Addition of CALLDEPTH opcode

EIP-3는 EVM에 현재 콜 스택 깊이를 반환하는 CALLDEPTH 옵코드를 추가하자는 제안으로, 최종적으로 철회되었습니다. 스마트 컨트랙트가 재진입(reentrancy) 공격을 방어하는 데 활용할 수 있도록 설계되었습니다.

제안 배경

당시 이더리움 EVM은 최대 콜 스택 깊이를 1024로 제한하고 있었으나, 컨트랙트가 현재 깊이를 직접 조회할 방법이 없었습니다. 이 정보를 통해 컨트랙트가 스스로 깊이 제한에 걸리는 상황을 피할 수 있도록 하기 위해 제안되었습니다.

기술적 내용

CALLDEPTH 옵코드는 스택에 현재 콜 깊이를 정수로 푸시합니다. 컨트랙트는 이 값을 검사하여 콜 깊이 한도 초과로 인한 예기치 않은 실패를 예방할 수 있습니다.

철회 이유

EIP-150(탄주포크)에서 가스 비용 구조가 변경되면서 콜 스택 깊이 공격이 실질적으로 불가능해졌습니다. 이 변경으로 CALLDEPTH 옵코드의 필요성이 사라져 EIP-3는 철회되었습니다.

역사적 교훈

이 EIP는 이더리움 초기에 콜 스택 깊이 제한이 보안 문제로 인식되었음을 보여줍니다. 이후 가스 비용 조정이라는 다른 방법으로 더 근본적인 해결책이 적용되었습니다.

공식 EIP 문서open_in_new