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

Designated invalid EVM instruction

EIP-141은 EVM에서 유효하지 않은 명령어로 지정된 공식 옵코드를 정의하는 제안으로, 최종 승인되었습니다. 0xFE 옵코드를 INVALID로 지정하여 예기치 않은 코드 실행 중단에 대한 표준화된 방법을 제공합니다.

제안 배경

이전에는 정의되지 않은 옵코드에 도달하면 구현에 따라 다른 동작을 보일 수 있었습니다. 어설션 실패, 접근 불가 코드, 의도적 트랩 등을 표준화된 방식으로 표현할 방법이 없었습니다.

기술적 내용

0xFE 바이트가 공식 INVALID 옵코드로 지정되었습니다. 이 명령어에 도달하면 남은 가스를 모두 소진하고 예외를 발생시켜 실행을 중단합니다.

Solidity assert()와의 관계

Solidity의 assert() 함수는 내부 불변 조건 위반을 감지할 때 INVALID(0xFE)를 사용합니다. require()가 REVERT를 사용하는 것과 달리 assert()는 INVALID를 통해 가스를 완전히 소진시켜 더 심각한 오류임을 나타냅니다.

표준화의 중요성

정의된 INVALID 옵코드는 EVM 구현 간의 일관된 동작을 보장합니다. 툴링, 정적 분석기, 공식 검증 도구들이 이 명확한 의미론에 의존합니다.

공식 EIP 문서open_in_new