EIP와 ERC
Ethereum 생태계는 탈중앙화되어 있지만 여전히 규칙을 설정할 주체와 업그레이드가 필요하다. 또 블록체인 상에서 무엇이 가능한지 정의하는 기준을 설정해야 한다. 이를 달성하기 위해 이더리움 사용자는 EIP(Ethereum Improvement Proposal, 이더리움 개선 제안)을 만들고 세부 사항을 논의한다. 또 제안을 거부하거나 실제 구현을 시작하기 위해 투표를 진행한다.
개선 및 추가된 사항에 따라, 현재 상이한 카테고리에 속하는 여러 유형의 EIP가 존재한다. 이러한 유형 중 하나는 이더리움 상에 토큰, 스마트 컨트랙트, 애플리케이션, 지갑 형식 등을 생성하기 위한 다양한 기술 표준을 제안, 토론, 구현하기 위한 용도로 핵심 이더리움 개발자들이 정의한 것이다.
이러한 EIP의 일종은 ERC(Ethereum Request for Comments, 이더리움 의견 요청)이라고 불린다. 지금까지 이더리움에서 생성할 수 있는 토큰의 기준을 설정하기 위한 ERC가 많이 나왔다. 따라서 이더리움에 작성된 모든 토큰은 이러한 ERC에서 설정한 표준을 따르는 것이 권장된다. 그렇기 때문에 이더리움 토큰이 ERC 토큰이라고 불리는 것이다.
EIP(Ethereum Improvement Proposal)
- 목적: EIP는 이더리움 프로토콜, 클라이언트 API, 또는 개발 환경에 대한 개선을 제안하는 문서다.
- 범위: 프로토콜 레벨의 변경, 새로운 피처, 기술 스펙 등 다양한 주제를 다룰 수 있다.
- 예시: EIP-1559 (Fee Market Change)은 트랜잭션 수수료 메커니즘이 개선된 것을 예로 들 수 있다.
ERC(Ethereum Request for Comments)
- 목적: ERC는 이더리움에서 스마트 컨트랙트나 토큰 등을 어떻게 구현할 것인지에 대한 표준을 제안한다.
- 범위: 대체로 이더리움 내의 스마트 컨트랙트와 관련된 주제에 한정되어 있다.
- 예시: ERC-20 (표준 토큰 인터페이스), ERC-721 (Non-fungible Token) 등
ERC 토큰 표준
오늘날, 이더리움에서 가장 널리 쓰이는 ERC 표준은 3가지가 있다. ERC20, ERC721, 또는 ERC1155이다. ERC 다음의 숫자는 '의견 요청'에 부여된 일련번호에 불과한다.
ERC20: 대체 가능 토큰의 표준
- 2015년 구현
- 이더리움 기반 애플리케이션이나 프로토콜에 적합한 대체 가능 토큰을 만들 수 있도록 하는 토큰 표준
- 대체 가능 토큰 === 블록체인 기반의 정규 통화
- 예: UNI, LINK와 같은 암호화폐
- 이들은 이더리움 기반 프로토콜인 유니스왑(Uniswap), 체인링크(Chainlink)의 ERC20 토큰이다.
- 하나의 UNI, LINK 토큰이 지니는 가치는 항상 다른 UNI, LINK 토큰과 같다.
- 따라서 각 토큰은 "대체 가능"하다.
ERC721: 대체 불가능 토큰의 표준
- 2018년 구현
- 배경: 블록체인 사용 사례가 확대됨에 따라 블록체인에 기록된 고유 데이터를 토큰화하고 표현할 필요가 생겼다. 이를 해결하고자 ERC721이 탄생했다.
- 각 토큰은 고유한 가치를 가지며, ERC20 토큰처럼 서로 교환하는 것이 불가능하다.
- 대체 불가능 토큰은 검증 가능한 고유 디지털 오브젝트로서 작동한다.
- ERC721 표준 토큰을 사용하여 NFT 예술 작품
- 5
- 을 생성할 수 있다.
- 디지털 예술 작품의 NFT는 손쉽게 작품의 진위 여부와 소유권 기록을 증명할 수 있다.
- 또한, 소유권 기록과 NFT 작품의 신원 정보는 블록체인에 불변의 상태로 저장된다.
- 따라서 예술가의 작품 원본을 위조하기는 거의 불가능하다!
ERC1155: 다중 토큰 표준
- 2018년 구현
- 배경: ERC20 및 ERC721 표준의 문제점은 하나의 스마트 계약이 단일 유형의 대체 가능 또는 대체 불가능 토큰만을 지원하도록 허용한다는 것이었다.
- 따라서 새 토큰을 배포하려면 항상 새 스마트 컨트랙트를 작성해야 한다.
- 또한, 위의 두 표준은 부분 대체 가능(semi-fungible) 토큰을 생성하는 방법을 제시하지 않는다.
- ERC1155는 이더리움 개발자가 동일한 표준을 사용하여 쉽게 대체 가능, 부분 대체 가능, 대체 불가능 토큰을 생성하도록 해주는 표준이다.
- 또한 ERC1155를 사용하면 하나의 스마트 컨트랙트를 작성하여 개별적으로 구성 가능한 토큰의 여러 유형을 지원할 수 있다.
- => 토큰 생성 프로세스의 간소화
- NFT 게임을 개발하고자 할 때, 단 하나의 계약만을 작성해도 게임 내 모든 종류의 토큰을 지원할 수 있다.
ERC6551: 계정을 바인딩하는 NFT
- 2023년 구현
- 배경: ERC721은 토큰의 고유성을 부여해 디지털 아트, 가상 부동산, 게임 아이템 등에 소유권 개념을 만들고, NFT의 표준이 되며 인기를 끌었다.
- 그러나 ERC721은 창작자가 NFT를 한 번에 하나씩 업데이트하고 배포해야 하는 단점이 존재한다.
- 이에 따라 다량의 아이템을 생성하는 게임에 적용하기 어려운 점이 있었다.
- 희귀 아이템은 발행 수가 적어 문제가 없지만 물약같은 기본 아이템은 발행량이 많아 동시에 처리하기가 어려웠다.
- ERC6551은 위 문제를 해결하기 위해 비허가형 레지스트리(스마트 컨트랙트)를 사용한다.
- 누구나 레지스트리의 함수를 호출해 소정의 수수료를 지불하면 모든 ERC721 NFT에 대한 토큰 바인딩 계정(TBA)를 생성할 수 있다.
- TBA는 기술적으로 ERC721이 소유한 스마트 컨트랙트지만 TBA 제어 권한이 해당 소유자에게 위임돼 소유자가 TBA를 사용할 수 있다.
- TBA는 탈중앙화거래소(DEX), 대출 플랫폼, 게임 환경 등 이더리움 네트워크의 다른 스마트 컨트랙트와 상호 작용할 수 있다.
- TBA는 토큰이나 NFT 같은 다른 자산을 보유할 수 있다.
- ERC-6551 NFT를 판매하면 그 안에 있는 모든 자산도 함께 양도된다.
- TBA를 사용해 토큰에 저장할 수 있는 게임 자산의 '인벤토리'를 구축해 웹3 게임 사용자 경험을 개선할 수 있다.
- TBA 사용 전에는 게임 내에서 수집한 NFT는 지갑에 별도의 토큰으로 존재했다.
ERC-6551이 NFT 표준이 되기까지는 어느 정도 시간이 걸릴 것으로 보인다. NFT 프로젝트 회사 및 마켓플레이스는 현재 기술적 어려움, 사업상 이유로 ERC-6551로 통합하는 데 관심이 낮다.
표준을 준수해야 하는 이유
이더리움 스마트 컨트랙트를 구현할 때 ERC 표준의 코드 인터페이스를 전부 다 구현해야 할 필요는 없다고 한다. 그러나 특정 표준을 따르겠다고 선언한 경우에는 그 표준의 필수 요소와 기능을 충족시켜야 한다. 그렇지 않으면, 스마트 컨트랙트가 표준을 준수한다고 주장하기 어렵다. 표준을 준수해야 하는 이유는 다음과 같다.
- 호환성(다양한 서비스와의 상호작용): 표준을 준수하면 다른 서비스나 앱과 쉽게 통합할 수 있다. 예를 들어, ERC-20 토큰 표준을 준수하는 토큰은 대부분의 DApp과 거래소에서 쉽게 사용할 수 있다.
- 보안(검증된 메커니즘): 표준은 커뮤니티에 의해 광범위하게 리뷰되고 검증된다. 따라서 표준을 따르면 보안 리스크를 줄일 수 있다.
- 신뢰(예측 가능한 액션): 표준을 준수하는 스마트 컨트랙트는 유저와 개발자 모두에게 예측 가능한 액션을 보장한다.
- 효율성 및 개발 속도(재사용과 표준화): 이미 검증된 표준을 사용하면, 개발 시간을 단축시키고 코드의 품질을 높일 수 있다.
표준을 준수하면 호환성, 보안, 신뢰성 등 여러 면에서 이점이 있으며, 이러한 이점들은 스마트 컨트랙트가 널리 채택되고 성공하려면 반드시 고려해야 할 요소들이다.
참고
'IT > 블록체인' 카테고리의 다른 글
[트러블슈팅] web3.js import 에러 (0) | 2023.09.24 |
---|---|
[Solidity] Overflow and Underflow in Solidity (0) | 2023.09.23 |
Truffle Suite (0) | 2023.09.06 |
[Ethereum] ERC-20 (0) | 2023.09.04 |
[Solidity] modifier (0) | 2023.09.04 |