Tech/EIPs/#6913
EIP 6913카테고리 · 코어유형 · 표준 트랙상태 · 철회됨

SETCODE instruction

EIP-6913은 컨트랙트의 코드를 런타임에 직접 교체할 수 있는 SETCODE 명령어를 EVM에 추가하자는 제안입니다. 프록시 패턴 없이 컨트랙트 코드를 업그레이드하는 네이티브 방법을 제공하려 했으나 철회되었습니다.

제안 내용

SETCODE 명령어를 통해 컨트랙트가 자신의 코드를 새로운 바이트코드로 교체할 수 있게 합니다. 프록시 패턴과 달리 주소 변경 없이 코드만 직접 업데이트하는 방식입니다.

철회 이유

EVM의 코드 불변성 가정을 깨뜨려 분석 도구, 정적 분석기, 보안 감사 방법론에 심각한 영향을 미칩니다. 컨트랙트 코드가 언제든 바뀔 수 있다는 가정은 전체 스마트 컨트랙트 보안 모델을 복잡하게 만듭니다.

역사적 맥락

EIP-1702, EIP-2937 등 컨트랙트 코드 변경 관련 여러 제안들이 있었으나 모두 강한 반대에 부딪혔습니다. EIP-6913 역시 같은 기술적·철학적 장벽을 넘지 못하고 철회되었습니다.

대안

업그레이드 가능한 컨트랙트가 필요한 경우 UUPS 또는 투명 프록시 패턴이 표준 대안으로 사용됩니다. EIP-7702 등 계정 코드 관련 새로운 접근도 논의되고 있습니다.

공식 EIP 문서open_in_new