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

EXTCODEHASH opcode

EIP-1052는 외부 컨트랙트의 코드 해시를 반환하는 EXTCODEHASH 옵코드를 도입합니다. 전체 코드를 복사하지 않고도 컨트랙트 존재 여부와 코드 동일성을 효율적으로 확인할 수 있습니다.

EXTCODEHASH 소개

EXTCODEHASH는 주어진 주소의 컨트랙트 코드 keccak256 해시를 반환하는 새 옵코드입니다. 주소에 코드가 없으면 특정 상수 값을 반환하고, 계정이 없으면 0을 반환합니다.

기존 방법과의 비교

기존에는 EXTCODECOPY로 전체 코드를 가져온 후 해시를 계산해야 했는데 이는 가스 비용이 높았습니다. EXTCODEHASH는 단일 연산으로 동일한 결과를 훨씬 저렴하게 얻을 수 있습니다.

활용 사례

특정 구현체와의 인터랙션 전 컨트랙트 코드 동일성을 검증하거나, 화이트리스트된 컨트랙트 유형만 접근을 허용하는 보안 패턴에 활용됩니다. 업그레이드 패턴 및 프록시 검증에도 유용합니다.

상태 및 영향

Constantinople 업그레이드를 통해 Final 상태로 배포되었습니다. EIP-1014(CREATE2)와 함께 스마트 컨트랙트 개발의 새로운 패턴을 가능하게 한 중요한 EIP입니다.

가스 효율성

EXTCODEHASH의 가스 비용은 EXTCODESIZE와 동일하게 책정되어 매우 효율적입니다. 컨트랙트 검증 로직의 가스 최적화에 큰 기여를 했습니다.

공식 EIP 문서open_in_new