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

Skinny CREATE2

쉬운 설명

CREATE2 옵코드를 추가해요. 컨트랙트 주소를 배포 전에 미리 계산할 수 있어서, 상태 채널, 카운터팩추얼 인스턴스화 등 다양한 패턴에 활용돼요.

EIP-1014는 CREATE2 옵코드를 도입하여 컨트랙트 주소를 배포 전에 미리 계산할 수 있게 합니다. 스테이트 채널, 카운터팩추얼 인스턴시에이션 등 다양한 레이어 2 솔루션의 핵심 기반이 되었습니다.

CREATE2 소개

CREATE2는 기존 CREATE 옵코드의 대안으로, 주소 계산에 salt 값을 추가로 사용합니다. 배포자 주소, salt, 초기화 코드 해시로 결정적(deterministic) 주소를 계산합니다.

기존 CREATE와의 차이

기존 CREATE는 배포자 주소와 nonce로 주소를 결정하여 사전 계산이 어렵습니다. CREATE2는 nonce 의존성을 제거하여 실제 배포 전에도 정확한 주소를 알 수 있습니다.

활용 사례

스테이트 채널에서 실제 자금 이동 없이 채널을 열 수 있고, 업그레이드 가능한 프록시 패턴 구현에 활용됩니다. Uniswap v2/v3의 페어 주소 계산에도 핵심적으로 사용됩니다.

생태계 영향

CREATE2는 카운터팩추얼 인스턴시에이션을 가능하게 하여 레이어 2 및 스마트 컨트랙트 월렛 설계에 혁신을 가져왔습니다. Constantinople 업그레이드를 통해 Final 상태로 배포되었습니다.

보안 고려사항

동일한 파라미터로 여러 번 배포할 경우 이전 배포 코드와 충돌 위험이 있어 salt 관리가 중요합니다. 개발자들은 CREATE2 주소의 결정성을 악용한 공격에 주의해야 합니다.

공식 EIP 문서open_in_new