EIP-684는 컨트랙트 배포 시 대상 주소에 이미 코드나 잔액이 존재할 경우 트랜잭션을 되돌리도록 하는 규칙을 도입합니다. 이는 주소 충돌로 인한 보안 위협을 방지합니다.
문제 배경
이더리움에서 CREATE 옵코드는 주소 충돌 가능성이 낮지만 이론적으로 존재합니다. 기존 주소에 코드를 덮어쓸 수 있다면 심각한 보안 문제가 발생할 수 있습니다.
제안 내용
대상 주소에 이미 코드 또는 0이 아닌 nonce가 존재할 경우 컨트랙트 생성을 중단하고 예외를 발생시킵니다. 이 변경은 Constantinople 하드포크에서 적용되었습니다.
보안 개선
이 규칙으로 인해 의도치 않은 상태 덮어쓰기가 불가능해졌습니다. 특히 CREATE2의 도입과 함께 주소 재사용 공격 벡터를 원천 차단하는 데 기여합니다.
관련 EIP와 연계
EIP-689와 함께 주소 충돌 처리 방식을 보완합니다. EIP-684는 실제 프로토콜 변경으로 Final 상태이며, 이더리움 메인넷에 적용되었습니다.