ERC란?
ERC란 ‘Ethereum Request for Comments’의 줄임말로 이더리움 개선 제안(EIP, Ethereum Improvement Proposals)의 하위 항목입니다. 가상화폐 세계에서 두 번째로 큰 블록체인인 이더리움은 탈중앙화되어 있습니다. 그러나 이더리움 생태계가 블록체인의 다양한 가능성을 선보이기 위해서는 표준을 설정하고, 이를 개선할 필요가 있습니다. 이를 달성하기 위해 이더리움 생태계 사용자들은 스스로 이를 만들어 나가고 있습니다.
EIP는 이더리움의 새로운 프로세스 또는 기능을 정한 일종의 표준입니다. 이더리움의 핵심 개발자들은 다양한 추가 및 개선기능을 이더리움의 표준에 포함시키기 위해 이를 EIP의 형태로 제안합니다.
여기에는 변경 사항에 대한 상세한 기술 정보가 함께 제공됩니다. 이더리움 생태계는 이 제안에 대해 논의하고 투표를 통해 이를 구현할지, 혹은 거부할지를 결정합니다. 이러한 EIP에는 매우 다양한 것들이 있습니다. 대표적으로 스마트 컨트랙트, 이더리움 지갑, 디앱, 토큰 생성 등에 대한 것들입니다.
특히 이더리움에서 가장 많이 사용되는 ERC 항목들은 ERC-20, ERC-1155 및 ERC-721입니다. ERC 뒤의 숫자는 이를 제안한 문서의 일련번호를 의미합니다. 이 ERC들은 이더리움 토큰 생성과 관련된 항목들로 이더리움 토큰들의 대다수는 이 ERC 표준에 따라 생성되고 있습니다.
ERC-20이란?
ERC-20은 이더리움에서 가장 유명하고 대표적인 ERC로, ‘대체 가능한 토큰’을 만드는 데 사용되는 기술 표준입니다. 개발자가 ERC-20 표준을 준수해 생성된 토큰은 스마트 컨트랙트 기능을 사용할 수 있고, 다른 서비스나 제품에서 활용할 수 있습니다. ERC-20 토큰은 자산 그 자체이면서 특정 자산의 소유권이나 특정 서비스에 대한 접근 권한, 또는 그 자체로는 고유하지 않지만 양도 가능한 모든 것을 표현할 수 있습니다.
ERC-20의 역사
이더리움 블록체인이 탄생하고, 스마트 컨트랙트가 사용되기 시작한 것은 2015년이었지만 여전히 해결해야 할 문제가 많았습니다. 당시 누구나 디앱을 만들고 여기서 사용할 이더리움 기반 토큰을 만들 수 있었지만 이와 관련한 표준화된 방법이 없었기 때문에 모든 디앱에서 고유한 토큰이 필요했고 토큰 간의 교환 역시 불가능에 가까웠습니다. 개발자들은 다양한 서비스 간에 사용되는 토큰을 교환하는 것에 많은 에너지를 소모해야 했습니다.
2015년, 파빈 포겔스텔라는 토큰 생성과 관련한 스마트 컨트랙트 기능의 표준을 Github 페이지를 통해 제안합니다. 이것은 20번째 댓글이었기 때문에 ‘ERC-20’이라는 명칭이 붙었습니다. 그리고 2017년 이더리움 개발자 커뮤니티는 적절한 절차를 거쳐 이 기능을 ‘EIP-20’으로 구현했습니다. 그러나 이는 여전히 ‘ERC-20’으로 불립니다. 이 명칭을 사용함으로써 이더리움 생태계의 의사결정 과정을 이해할 수 있기 때문입니다.
ERC-20이 표준으로 승인됨에 따라 개발자들은 이더리움 기반 토큰을 생성할 때 ERC-20 표준을 준수하기만 하면 이더리움 블록체인에서 다른 토큰과 스마트 컨트랙트 기능의 호환이 가능합니다.
ERC-721이란?
ERC-721은 대체 불가능한 토큰(NFT, Non-Fungible Token)을 발행하기 위한 표준입니다. ERC-721은 ERC-20과 마찬가지로 이더리움 블록체인의 기술 표준으로, 이더리움 기반 개발자들이 NFT를 더 쉽게 생성하고 발행하기 위해 준수해야 하는 일련의 규칙과 고유 형식을 포함합니다.
개발자들이 ERC-721과 같은 표준을 따르면 더 쉽게 코드를 작성하고 이를 재사용할 수 있으며 작성된 코드가 가져올 결과에 대한 예측도 가능합니다. 또, 다양한 가상화폐 지갑, 거래소, 디앱 역시 이 표준을 따르고 있기 때문에 높은 호환성이 수반됩니다.
ERC-721은 초기에는 ERC-20보다 덜 유명한 친척에 가까웠습니다. 그러나 이더리움 블록체인 생태계가 성장하고, ERC-721를 통해 생성된 NFT들이 수십억 달러의 가치를 지니게 되면서 이더리움 생태계를 떠받치는 하나의 기둥이 됐습니다.
‘대체가능’은 하나의 토큰을 다른 코인으로 완전히 교체하거나 교환할 수 다는 의미입니다. 예를 들어 모든 비트코인은 다른 비트코인으로 대체될 수 있습니다. 그러나 NFT는 각각이 완전히 고유한 값을 저장하고 있기 때문에 하나의 NFT는 다른 NFT를 대체할 수 없습니다.
ERC-721A란?
ERC-721A는 하나의 트랜잭션 내에서 여러 NFT를 생성할 수 있도록 하는 표준 방식입니다. NFT 시장 초기에는 NFT 발행량과 거래량이 많지 않았기 때문에 가스 비용이 문제 되지 않았습니다. 그러나 NFT의 인기가 높아지고, 발행량이 많아지면서 이는 전체 이더리움 블록체인 네트워크에 큰 부담이 됐습니다.
ERC-721를 사용하면 하나의 트랜잭션에서 하나의 NFT만을 발행할 수 있었기 때문에 다량의 NFT를 발행 시에는 이더리움 블록체인의 수수료인 ‘가스‘가 많이 소모됐습니다. ERC-721A를 사용해 NFT를 발행하면, 같은 시간에 여러 개의 NFT를 발행해도 하나의 트랜잭션만 사용하기 때문에 가스 비용을 크게 절감할 수 있습니다.
ERC-1155란 무엇입니까?
ERC-1155는 하나의 트랜잭션 내에서 대체 가능한 토큰과 대체 불가능한 토큰(NFT)을 한꺼번에 전송하기 위한 표준입니다. ERC-20 토큰과 ERC-721 토큰은 가장 대표적인 이더리움 기반 토큰들입니다. 그러나 이들을 하나의 스마트 컨트랙트에 포함하는 것이 불가능했고, 트랜잭션 역시 각각 수행해야 하는 문제가 있었습니다. 이는 트랜잭션 비용의 상승과 블록체인 네트워크 속도 저하의 원인이 됐습니다.
ERC-1155는 이 두 가지 토큰 표준을 결합해 문제를 해결했습니다. 특히 블록체인을 기반으로 하는 게임에서 개발자와 사용자들이 직면한 문제를 해결하기 위해 탄생했습니다. 온라인 게임에는 일반적으로 게이머가 수집하고 교환할 수 있는 수백 가지 항목이 있습니다. 그러나 이들 모두가 같은 것은 아닙니다. 금화나 재료, 소모품 같은 것들은 일반적이지만, 무기나 방어구 등은 고유한 것으로 취급해야만 합니다.
블록체인을 기반으로 하는 게임에서는 모든 것이 토큰으로 표시됩니다. 때문에 ERC-1155 이전에는 모든 항목에 스마트 계약이 필요했습니다. 금화를 예로 들면 금화 1개당 스마트 컨트랙트가 1개 필요했고, 만약 금화가 1,000개 있다면 스마트 컨트랙트 역시 1,000개가 필요하다는 의미였습니다. 만약 상점에서 금화를 500개 소모했다면 각각의 금화에 대해 트랜잭션이 500회 필요하다는 계산이 나옵니다. 이는 중복된 요소로 네트워크를 매우 비효율적으로 만드는 것이었습니다.
그래서 만들어진 것이 ERC-1155 표준입니다. ERC-1155 토큰을 사용하면 하나의 스마트 계약 내에 여러 항목을 보유할 수 있고, 한 번의 거래 내에서 여러 항목을 두 명 이상의 수신자에게 전송할 수 있습니다. 단 한 번의 거래로 친구에게 검과 금화 100개를 주고, 방패는 다른 사람에게 양도하는 것이 가능합니다.
이더스캔이란?
이더스캔(Etherscan)은 이더리움 블록체인 네트워크에서 지갑 주소, 트랜잭션 데이터, 스마트 컨트랙트 등 모든 공개 데이터를 탐색할 때 가장 신뢰할 수 있는 도구입니다. 이더스캔은 이더리움 재단(Ethereum Foundation)이 관리하거나 후원하지 않는 독립된 앱으로 다양한 전문가와 개발자들이 만들고 유지하고 있습니다.
이더스캔을 사용해 사용자들은 이더리움 블록체인 네트워크를 손쉽게 탐색할 수 있습니다. 예를 들어 가스 추적기를 사용하여 이더리움 네트워크에서 트랜잭션 시 수수료인 가스 요금을 계산하거나 스마트 컨트랙트를 검색 및 확인하고, 지갑을 사용해 승인한 스마트 컨트랙트의 숫자를 모니터링하는 등 다양한 작업을 수행할 수 있습니다.
Ethers.js란?
Ethers.js는 2016년 출시 이후 수백만 건의 다운로드를 기록한 이더리움용 오픈소스 자바스크립트 라이브러리입니다. 개발자들을 위한 다른 라이브러리와 마찬가지로 Ethers.js는 중요한 기능을 실행하는 데 재사용할 수 있는 미리 작성된 코드 등을 포함한 ‘스니펫’들로 구성됩니다.
Ethers.js는 처음에는 ‘ethers.io’를 개발하기 위해 만들어졌지만 점차 범용 라이브러리로 성장했습니다. Ethers.js는 TypeScript로 작성됐으며 사용자 친화적인 API 구조를 가지고 있습니다. 또, 간단하면서도 광범위한 개발 지원 문서와 함께 제공됩니다.
Ethers.js는 간단하고 직관적인 특성으로 인해 여러 Web3 개발자가 많이 찾는 라이브러리가 되었습니다. 개발자는 이더리움 블록체인과 상호 작용하거나 통신하려는 경우 Ethers.js를 사용해 이를 쉽게 구현할 수 있습니다.
자주 묻는 질문(FAQs)
ERC란?
이더리움의 새로운 프로세스 또는 기능을 정한 일종의 표준입니다. 이더리움의 핵심 개발자들은 다양한 추가 및 개선기능을 이더리움의 표준에 포함시키기 위해 이를 제안하고, 이 제안들에 대해 커뮤니의 협의를 거쳐 반영됩니다. ERC는 제안된 순서에 따라 ERC-20과 같은 일련번호가 붙게 됩니다.
ERC-20이란?
이더리움에에서 대체 가능한 토큰 발행 시 서로 다른 토큰 간에 교환이 가능하도록 하는 기술 표준입니다. 개발자가 ERC-20을 준수해 토큰을 생성하면, 이는 다른 개발자가 만든 ERC-20 기반 토큰과 교환 및 거래가 가능합니다. 또 ERC-20 표준을 준수하는 거래소, 지갑, 디앱 등 다른 서비스에서도 사용할 수 있습니다.
ERC-721이란?
이더리움 기반 NFT를 발행하기 위한 표준입니다. 이더리움 기반 개발자들이 NFT를 더 쉽게 생성하고 발행하기 위해 준수해야 하는 일련의 규칙과 고유 형식을 포함합니다. 다양한 가상화폐 지갑, 거래소, 디앱이 표준을 따르고 있기 때문에 높은 호환성을 갖습니다.