ERC-5313 가벼운 컨트랙트 소유권 조회 (Light Contract Ownership)

Final · 계정·지갑 · 2022-07-22 작성

컨트랙트를 소유한 계정의 주소를 owner() 함수 하나로 조회할 수 있게 하는 최소 인터페이스 표준입니다.

왜 필요한가

컨트랙트에도 주인이 있습니다. 예를 들어 NFT 컬렉션 컨트랙트를 만든 사람은 그 컨트랙트의 설정을 바꾸거나 마켓플레이스에서 컬렉션 페이지를 관리할 권한이 있습니다. 그런데 외부에서 어떤 계정이 그 컨트랙트의 주인인지 확인하는 공통된 방법이 없다면, 웹사이트나 마켓플레이스마다 다른 방식으로 소유자를 알아내야 합니다. 기존에도 소유권 표준(EIP-173)이 있었지만 소유권 이전 함수와 이벤트까지 요구해서 소유자를 확인만 하면 되는 경우에는 필요 이상으로 무거웠습니다. 이 표준은 소유자 주소를 돌려주는 함수 하나만 요구해서 더 단순한 소유권 구현도 표준을 따를 수 있게 합니다.

구현해야 하는 것

심층 설명

필수 요구사항은 EIP5313 인터페이스 하나

이 표준을 따르는 모든 컨트랙트는 EIP5313 인터페이스를 반드시(MUST) 구현해야 합니다. 인터페이스에는 owner() 함수 하나만 있으며 view external로 선언되고 address를 반환합니다. 컨트랙트를 제어하는 계정을 식별하는 데 필요한 최소 인터페이스만 정의한 것입니다. MUST는 RFC 2119의 정의를 따릅니다.

EIP-173의 경량 대안

이 표준은 EIP-173의 슬림한 대안으로 만들어졌습니다. 설계에서는 인터페이스의 함수 수를 최소화하는 것과 기존 컨트랙트와의 하위 호환성을 중시했습니다. 범위가 작기 때문에 더 많고 더 단순한 소유권 구현이 가능하며 다른 표준이 이 표준을 확장해 추가 소유권 기능을 더할 수 있고 실제로 그렇게 확장되어 왔다고 원문은 설명합니다.

EIP-165를 요구하지 않는 이유

인터페이스 지원 여부를 알리는 EIP-165를 구현하면 이 명세에 가치 있는 추가가 될 수 있다고 원문은 인정합니다. 그러나 이 표준은 컨트랙트(주로 NFT)와 서드파티 웹사이트(주로 잘 알려진 NFT 마켓플레이스)를 연결하는 기존 프로토콜을 성문화하기 위해 작성되었기 때문에 EIP-165를 필수로 요구하지 않습니다.

EIP-173과의 하위 호환성

EIP-173을 구현한 모든 컨트랙트는 이미 이 명세를 구현한 것입니다. EIP-173의 owner() 함수가 이 표준이 요구하는 유일한 함수와 같기 때문입니다. 따라서 기존 EIP-173 컨트랙트는 변경 없이 이 표준을 만족합니다.

쓸 때 주의할 점

ERC 원문 · ← ERCs