[그게 뭔가요] 블록체인 개발자라면 꼭 알아야하는 이더리움 토큰 표준, ERC
- ERC-20 : 코인을 발행하고 싶어요
- ERC-721 : NFT를 발행하고 싶어요
- ERC-1155 : 코인과 NFT 모두 발행하고 싶어요
대부분의 탈중앙화 애플리케이션(Dapp, 디앱)은 코인을 발행하거나 대체불가토큰(NFT) 발행할 때 이더리움 메인넷을 사용한다. 이더리움이 가장 보편적이면서 안정적인 블록체인 네트워크이기 때문이다.
이더리움 네트워크는 마치 소프트웨어와 같다. 모바일 애플리케이션을 개발할 때 안드로이드나 iOS 에 맞게 개발하는 것처럼 블록체인 프로그램 또한 이더리움, 바이낸스, 솔라나, 아발란체, 폴리곤 등 각각의 블록체인 메인넷에 맞춰 서비스를 개발한다.
수많은 블록체인 메인넷이 존재하지만 가장 대표적인 것은 이더리움이다. 초기 메인넷인만큼 가장 탈중앙화에 가까운 성격을 띠고, 범용성과 활용도가 높기 때문이다. 그런 측면에서 대부분의 디앱들은 이더리움 네트워크에서 활동하며 이에 맞는 기술 표준을 따르고 있다.
이더리움의 토큰 기술 표준(이하 토큰 표준)은 ERC라고 부른다. 이더리움 요청에 대한 코멘트( Ethereum Request for Comment, ERC)’의 약자로, 이더리움 개발을 위한 요구사항을 담은 문서 규약이라는 뜻이다. 이는 크게 ERC-20, ERC-721, ERC-1155로 나눌 수 있다. ERC 20은 토큰을 발행할 때, ERC-721은 NFT를 발행할 때, ERC-1155는 코인과 NFT 모두를 발행하고 싶을 때 사용하는 토큰 표준이다.
1. ERC-20 : 코인을 발행하고 싶어요
ERC-20은 이더리움 네트워크에서 토큰을 만들 때 사용하는 토큰 표준으로, 이더리움의 통화인 ETH와 호환성을 충족시키기 위한 프로그래밍 기준이다. 지난 2015년 이더리움 프로젝트 제안 중 20번째로 채택됐으며, 이더리움 개발자인 ‘파비안 보글스텔라’가 제안했다. 각각의 코인들의 상호작용을 가능하게 하는 것이 특징이다. 이더리움에 따르면 16일 현재까지 약 4000개의 프로젝트가 이더리움 네트워크에 참여하고 있다.
현재 유통되고 있는 코인의 90%가 ERC-20 표준에 맞추고 있는 것만큼 많은 가상자산 프로젝트의 ICO의 표준이 되고 있다. ERC-20은 이더리움 토큰에 대한 공통 규칙 목록을 정의해 개발자가 토큰 간의 상호 작용을 예측할 수 있고 토큰의 생성부터 발행, 배포 방법에 대한 방법을 제공해 상대적으로 개발자들이 개발하기 쉬운 환경이다.
ERC-20의 규칙(함수)
ERC-20의 표준은 총 9개의 규칙을 갖고 있다. 그중 6개가 필수적으로 적용이 돼야 하며, 나머지 3개는 옵션이다.
1. 필수 개발 규칙(함수)
– totalSupply (총발행량) : 토큰이 총 몇 개 있는지 알려준다
– balanceOf (잔액) : 계정에 얼마의 토큰을 보유하고 있는지 알려준다
– transfer(송금) : 토큰을 개인 계정으로 송금할 수 있음
– transferFrom (유저간 송금) : 사용자 간 송금 기능으로, 다른 사용자가에게 토큰을 송금할 수 있다.
– approve (승인) : 어떤 지갑에 어떤 토큰이 추적해 위조 토큰 생성을 방지하며, 토큰의 총 발행량을 확인해 트랜잭션을 승인할 지 거부할 지 결정한다.
– allowance (허용) : 트랜잭션 실행 전 유효성 검사를 하는 것으로, 본인이 소유한 것보다 더 많은 토큰을 보내는 것을 방지한다
2. 선택 개발 규칙(함수)
– name(토큰명) : 토큰 발행자는 사용자들이 본인의 토큰을 식별할 수 있도록 토큰 명을 기입할 수 있다.
– decimals(10진법) : 각 토큰을 분수 단위로 표시할 수 있다.
– symbol(심볼) : 거래소에서 대개 티커를 통해 토큰을 명칭하기 때문에 이를 기입할 수 있다.
- ERC-20 장점
–상호 호환성 : ERC-20 코인은 이더리움 생태계 전반에서 원활한 상호작용을 가능하게 하며, 다양한 거래소 및 지갑, 디앱과 쉽게 호환이 된다. 쉽게 호환이 되기 때문에 다른 코인을 대체할 수도 있으며, 빠르고 안전하게 코인을 다른 지갑으로 전송할 수 있다.
-표준화와 큰 범용성: 공통 표준을 채택하고 있기 때문에 개발자가 새로운 코인을 만들었을 때 기존 플랫폼에 통합하는 것이 쉽다. 현재 발행된 코인의 90% 이상이 ERC-20 코인을 기반으로 하고 있어 활용도나 상호 운용성 측면에서도 이점을 가진다.
- ERC-20 단점
-높은 혼잡성에 따른 비싼 거래 비용(가스비) :다만 이더리움 블록체인 위에서만 작동하기 때문에, 이더리움 네트워크의 혼잡성이 코인의 성능에 영향을 미칠 수 있다. 예컨대 트랜잭션 처리가 늦어지거나, 가스비가 급등하는 경우가 그러하다. 가스비는 거래의 복잡성에 따라 변동되며, 네트워크가 혼잡할 때 그 비용이 높아진다.
-취약한 스마트 컨트랙트 : 스마트 컨트랙트 [1]결제 수단으로 ERC-20을 사용할 경우 파괴되거나 사라질 수 있다. 무조건 ETH로만 결제 해야하기 때문이다. -느린 트랜잭션 속도: 네트워크 내에서 만들어진 디앱들이 많다는 특징 상, 트랜잭션 속도가 느리다는 특징이 있다.
2. ERC-721 : NFT를 발행하고 싶어요
이러한 ERC-20의 한계를 해결하기 위해 ERC-721, ERC-1155 등의 새로운 토큰 표준들이 생겨났다. 그중 ERC-721은 NFT의 기본 규격으로 사용되고 있으며, ERC-20과 마찬가지로 이더리움 네트워크에서 널리 사용되는 표준안이다.
- ERC-721와 ERC20의 차이점
코인의 경우에는 ERC-20이라는 토큰 표준 아래 각자 동일한 가치를 지니며 대체와 호환이 가능한데 NFT는 그렇지 않다. 각각 하나하나의 고유한 가치를지니고 있어 다른 자산들과 대체와 호환이 불가능하다.
ERC-721은 이런 NFT 특징에 특화된 토큰 표준이다. 발행자와 거래 내역 외에도 개별 ID라는 속성이 추가됐기 때문에 ERC-721을 기반으로 NFT를 만들면 하나의 NFT를 만들더라도 각각의 NFT들은 고유의 값을 가지게 된다. 그렇기 때문에 동일한 값을 갖는 복수의 소유자도 나올 수 없다. ERC-20이 특정 주소에 잔액이 얼마가 있는지 확인하는 구조라면 ERC-721은 토큰의 ‘소유자’가 누구인지에 더 집중하는 구조인 것이다.
다만, 이더리움 메인넷의 고질적인 문제인 느린 트랜잭션 처리에 따른 높은 가스비는 공통적인 문제로 지적되고 있다. 이에 따라 많은 개발사, 특히 이용자 편의성이 중요한 게임 개발사들은 NFT의 사용자 편의성을 높이기 위해 자사 메인넷 등 프라이빗 블록체인을 이용하고 있다.
- ERC-721의 함수
ERC-721에서는 총 9개의 필수 개발 함수를 기입해야 한다. ERC-721 함수는 크게 ▲소유자가 누구인지 확인하는 기능 ▲전송 기능 ▲대리 전송을 승인할 것인지에 대한 여부를 파악할 수 있다.
1. 소유자 확인
– balanceOf() : 특정 주소가 가지고 있는 토큰의 개수 파악
– ownerOf() : 토큰 소유자가 누구인지 파악
2. 전송
– transfer() :NFT 소유권을 다른 계정에게 전송하는 기능
– safeTransferFrom() : 주소가 NFT를 받을 수 있는지 확인하고 NFT 소유권 전송하는 기능
3. 승인
– approve() : 특정 계정에게 자신이 소유한 NFT를 사용하도록 허용
– getApproved() : 특정 NFT가 다른 계정에게 사용 승인됐는지 여부 파악
– setApprovalForAll() : 특정 계정에게 자신이 소유한 모든 NFT에 대한 사용
– isApprovedForAll() : 토큰의 소유자가 특정 계정에게 자신의 NFT에 대한 사용을 허용했는지 여부 파악
- ERC-721 활용 사례
ERC-721은 ERC-20과는 다르게 무조건 이더리움 네트워크 상에서만 거래되거나 사용되지는 않는다. 그렇기에 게임 아이템, 주택 증서, 미술 작품 등 다양한 조건에서 제약없이 활용되고 있다.
대표적인 사례로 지난 2017년 개발된 ‘크립토 키티’라는 고양이 게임을 들 수 있다. NFT 시장 초창기 시절, 대체불가하다는 특성을 이용해 ‘희소성’이라는개념을 처음 가시화한 게임이다. NFT 기능을 수행하는 ‘고양이’는 색, 종 등 고유의 특징을 가지고 있어 특징의 조합을 이용자들이 직접 조합시킬 수 있다. 그렇게 이용자들은 자신만이 가지고 있는 고양이, 즉 NFT를 갖게 되는 것이다.
이 NFT들의 가격은 매력도에 따라 달라진다. 2018년 당시 한 크립토키티 고양이 캐릭터 하나가 약 17만 달러(약 2억원)에 거래된 바 있다.
3. ERC-1155 : 코인과 NFT 모두 발행하고 싶어요
ERC-1155는 지난 2018년 글로벌 온라인 게임 커뮤니티 플랫폼 기업인 엔진의 공동창업자 겸 CTO인 ‘비텍 라돔스키’가 ERC-20과 ERC-721의 특징(대체 가능성과 대체 불가능성)들을 하나로 결합해 만든 토큰 표준이다.
이더리움의 고질적 문제인 높은 가스비와 낮은 편의성을 개선하기 위해 개발됐으며, 기존 대규모의 저장 공간과 처리 용량이 필요한 ERC-20이나 ERC-721과는 다르게 적은 저장 공간으로도 많은 데이터를 담을 수 있도록 한 것이 특징이다.
ERC-1155는 코인과 NFT를 모두 발행할 수 있다는 특징으로 최근에는 ERC-1155를 활용하는 사례드이 많아지고 있다.
- ERC-1155 장점
– 높은 효율성과 낮은 가스비 : 각 토큰 별로 하나의 전송만을 할 수 없는 ERC-721과 다르게 ERC-1155는 하나의 전송으로 여러 토큰을 전송할 수 있어 효율적인 작업이 가능하다. 또, 토큰의 일괄전송이 가능하기 때문에 가스비를 절감할 수 있다.
– 거래 내역 수정 : ERC-20과 ERC-721은 잘못된 지갑 주소로 토큰을 보냈을 경우 해당 트랜잭션을 돌릴 수 없지만, ERC-1155는 되돌릴 수 있다. 보안성 향상 및 안전 장치 역할을 수행하는 기능이 있는 것이다.
– 전력 절감 : 불필요한 코드 저장을 하지 않기에 고전력 소모를 줄일 수 있다.
[1] 스마트 컨트랙트(스마트 계약, smart contract): 제3의 인증기관 없이 개인 간 계약이 이뤄질 수 있도록 하는 블록체인 기술이다. 블록체인의 주요한 가치 중 하나로, 완벽한 투명성을 보장하며, 중개비가 들지 않는다는 특징이 있다. 계약 당사자 간의 계약 내용을 코드로 기록해 블록체인 네트워크에 올려 두면, 블록체인 기술이 관련 계약 조건의 충족 여부를 판단해주는 방식이다. 조건이 모두 충족되면 자동으로 계약 내용이 실행되도록 한다.