EIP-7587 RIP용 프리컴파일 주소 예약 (Reserve Precompile Address Range for RIPs)

최종 확정 · EVM·실행 · 원문 상태 Final · 2023-12-21 작성

L2의 롤업 개선 제안(RIP)이 쓸 프리컴파일 주소 구간(0x0100~0x01ff)을 미리 떼어 두어 EIP가 정하는 프리컴파일과 주소가 겹치지 않게 합니다.

왜 필요한가

이더리움에는 프리컴파일(precompile)이라는 특수 계약이 있습니다. 자주 쓰이는 복잡한 연산을 정해진 주소에 내장해 빠르고 싸게 처리하는 기능입니다. 지금까지 프리컴파일 주소는 이더리움 본체(L1)의 개선 제안 절차인 EIP로만 정해 왔습니다. 그런데 이더리움 위에서 돌아가는 2층 네트워크(L2, 레이어 2)들이 롤업 개선 제안(RIP, Rollup Improvement Proposal)이라는 별도 절차로 자기들만의 프리컴파일을 배포하기 시작했습니다. 두 절차가 같은 주소를 서로 다른 기능에 배정하면 충돌이 생깁니다. 그래서 RIP가 쓸 주소 구간을 미리 예약해 충돌 가능성을 없앨 필요가 생겼습니다.

무엇이 바뀌나

지금

EIP-7587 이후

누구에게 영향이 있나

심층 설명

예약 구간 명세

주소 `0x0000000000000000000000000000000000000100`부터 `0x00000000000000000000000000000000000001ff`까지의 구간을 RIP 프로세스용으로 예약합니다. 이 구간에 속하는 주소는 256개입니다. 기존 L1 프리컴파일이 쓰는 낮은 주소 구간(0x01 이후)과 겹치지 않는, 바로 위의 연속 구간입니다. 명세 자체는 이 한 문장이 전부이며 특정 프리컴파일의 동작을 정의하지는 않습니다.

배경: L2의 RIP 배포 시작

L2들이 RIP를 실제로 배포하기 시작하면서 RIP가 쓰는 프리컴파일 주소와 EIP가 쓰는 프리컴파일 주소 사이에 충돌이 없도록 보장할 필요가 생겼습니다. 이 EIP는 그 보장을 위해 RIP 프로세스가 쓸 주소 범위를 예약하는 것이 목적입니다.

설계 의도: 레지스트리 분리

범위를 예약하면 RIP 프로세스가 자체 프리컴파일 레지스트리를 유지할 수 있습니다. 이 레지스트리의 프리컴파일들은 L1 메인넷에 반드시 배포되는 것은 아닙니다. 한편 EIP 프로세스는 RIP 프리컴파일 레지스트리를 관리할 의무에서 벗어나면서도 자기 용도로 쓸 255개 주소를 그대로 확보합니다. 즉 두 절차가 서로의 주소 배정을 조회하거나 조정하지 않아도 되는 구조를 만듭니다.

메타 EIP, 호환성과 보안

이 제안은 타입이 Meta인 EIP로, 프로토콜 코드를 바꾸는 것이 아니라 주소 배정에 관한 절차적 약속을 정합니다. 하위 호환성 문제는 발견되지 않았고(No backward compatibility issues found), 보안 고려 사항도 없음(Nil)으로 기재되어 있습니다. 상태는 Final로, 내용이 확정되어 더 바뀌지 않습니다.

EIP 원문 · ← EIPs