EIP-1967은 업그레이드 가능한 프록시 컨트랙트에서 구현 주소와 관리자 주소를 저장하는 표준 스토리지 슬롯을 정의합니다. 스토리지 충돌을 방지하고 프록시 도구들의 상호운용성을 높인 최종(Final) 표준입니다.
문제 배경
업그레이드 가능한 프록시 패턴에서 구현 주소를 어떤 스토리지 슬롯에 저장할지 표준이 없었습니다. 무작위 슬롯 사용은 구현 컨트랙트 변수와의 충돌 위험이 있었습니다.
해결책
특수 목적 슬롯(keccak256 해시 기반)에 구현 주소, 관리자 주소, 비콘 주소를 저장합니다. 이 슬롯들은 일반적인 컨트랙트 변수 슬롯과 충돌할 가능성이 매우 낮습니다.
표준 슬롯
구현 주소: `0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc`, 관리자 주소: `0xb53127684a568b3173ae13b9f8a6016f243e3b46` 등이 지정됩니다.
채택 현황
OpenZeppelin, Hardhat 등 주요 프레임워크에 구현되어 있으며, 대부분의 업그레이드 가능한 컨트랙트가 이 표준을 따릅니다. 블록 탐색기들도 이 슬롯을 인식하여 프록시 관계를 표시합니다.
의의
이더리움 업그레이드 가능 컨트랙트 인프라의 핵심 표준으로 자리잡았습니다. EIP-1822(UUPS)와 함께 안전하고 표준적인 프록시 패턴의 기반이 됩니다.