EIP-5920는 EVM에 새로운 PAY 옵코드를 추가하여 코드 실행 없이 이더를 전송할 수 있게 하는 Stagnant 상태의 Core EIP입니다. 단순 이더 전송의 효율성과 명확성을 높이기 위해 제안되었습니다.
동기
CALL 옵코드를 0 가스로 호출하여 이더를 전송하는 현재 방식은 수신 컨트랙트의 폴백 함수를 실행시킬 수 있어 재진입 공격 벡터가 됩니다. PAY 옵코드는 코드 실행 없이 순수하게 잔액만 이전합니다.
동작 방식
PAY(addr, value) 형태로 호출되며, 수신 주소의 이더 잔액만 증가시키고 어떠한 코드도 실행하지 않습니다. CALL보다 낮은 가스 비용으로 안전한 이더 전송이 가능합니다.
보안 이점
재진입 공격의 주요 원인 중 하나인 이더 전송 시 코드 실행을 원천 차단합니다. checks-effects-interactions 패턴 없이도 안전한 이더 분배 패턴을 구현할 수 있게 됩니다.
침체 원인
기존 transfer()와 send() 함수가 제공하던 2300 가스 제한 방식과의 비교, 그리고 EVM 변경에 따른 하드포크 필요성으로 인해 합의 도달이 어려웠습니다. 현재 Stagnant 상태입니다.