EIP-150은 IO 집약적인 EVM 연산들의 가스 비용을 인상하는 제안으로, 최종 승인되었습니다. 탄주포크(Tangerine Whistle)에서 활성화되어 2016년 발생한 DoS 공격에 대응하기 위한 긴급 조치였습니다.
배경: 2016 DoS 공격
2016년 9월, 이더리움 네트워크는 EXTCODESIZE, CALL 등 비싸지 않은 연산을 반복적으로 호출하는 방식의 DoS 공격을 받았습니다. 이 연산들의 실제 처리 비용에 비해 가스 비용이 너무 낮게 설정되어 있었습니다.
주요 가스 비용 변경
EXTCODESIZE, EXTCODECOPY, BALANCE 등의 가스 비용이 크게 인상되었습니다. SLOAD는 50에서 200으로, CALL 계열 명령어들도 대폭 인상되어 실제 I/O 비용을 더 정확히 반영하게 되었습니다.
63/64 규칙 도입
EIP-150은 CALL 시 호출자가 보유한 가스의 최대 63/64만 자식 컨텍스트에 전달할 수 있도록 제한했습니다. 이를 통해 콜 스택 깊이를 가스 소비와 연계하여 깊은 재귀 공격을 어렵게 만들었습니다.
긴급 배포
탄주포크는 DoS 공격에 대응하기 위해 빠르게 계획되고 배포된 긴급 하드포크였습니다. 이더리움 커뮤니티가 심각한 네트워크 위협에 신속하게 대응할 수 있음을 보여준 사례입니다.
장기적 교훈
EIP-150은 EVM 가스 비용이 실제 컴퓨팅 자원 비용을 정확히 반영해야 함을 강조했습니다. 이후 EIP-1884, EIP-2929 등 지속적인 가스 비용 재조정 EIP들의 선례가 되었습니다.