EIP-3860는 EVM에서 컨트랙트 생성 시 사용되는 initcode의 최대 크기를 제한하고 가스 비용을 부과하는 Final 상태의 Core EIP입니다. Shanghai 업그레이드에 포함되었습니다.
배경
기존 EVM은 initcode의 크기에 대한 명시적인 제한이 없었으며, 이는 잠재적인 DoS 취약점과 클라이언트 구현 간 불일치를 야기했습니다. 런타임 코드 크기는 24576바이트로 제한되어 있었지만 initcode는 그렇지 않았습니다.
제한 내용
EIP-3860은 initcode의 최대 크기를 49152바이트(2 * 24576)로 제한합니다. 또한 initcode의 32바이트 청크당 2가스의 추가 비용을 부과하여 큰 initcode 처리 비용을 반영합니다.
보안 강화
크기 제한과 가스 비용 부과를 통해 대용량 initcode를 이용한 DoS 공격을 방지합니다. 모든 클라이언트가 동일한 규칙을 따르게 되어 클라이언트 간 합의 불일치 가능성도 줄어듭니다.
상하이 업그레이드
EIP-3855와 함께 2023년 4월 Shanghai 업그레이드에서 활성화되었습니다. 컨트랙트 팩토리 패턴 및 대규모 컨트랙트 배포 시나리오에 직접적인 영향을 미쳤습니다.