EIP-7939는 EVM에 선행 제로 비트 수를 세는 CLZ(Count Leading Zeros) 옵코드를 추가하는 코어 최종 표준입니다. 이 연산은 암호학적 계산, 비트 조작, 로그 계산 등에서 자주 사용됩니다.
개요 및 동기
CLZ 연산은 256비트 정수에서 가장 높은 세트 비트의 위치를 효율적으로 찾는 데 사용됩니다. 현재 EVM에서 이를 구현하려면 여러 옵코드를 조합해야 하며, 이는 가스 낭비와 코드 복잡성을 초래합니다. 전용 CLZ 옵코드는 이를 단일 연산으로 처리합니다.
기술 사양
CLZ 옵코드는 스택 상단의 256비트 값을 입력받아 선행 제로의 수를 반환합니다. 값이 0이면 256을 반환합니다. 하드웨어 CPU의 BSR/LZCNT 명령어와 직접 매핑되어 효율적으로 구현될 수 있습니다.
활용 사례
고정소수점 나눗셈, 비트마스크 생성, 해시 함수 최적화, 암호학적 라이브러리 등 다양한 온체인 연산에서 활용됩니다. 특히 Solidity의 내장 함수와 OpenZeppelin 라이브러리에서 즉시 활용될 수 있습니다.
채택 현황
최종 표준으로 채택되어 EVM 클라이언트에 구현될 예정입니다. 상대적으로 단순한 변경이지만 광범위한 스마트 컨트랙트 최적화에 기여합니다.