ERC(Ethrereum Request for Comments)는 이더리움 네트워크의 표준과 규칙을 말합니다. Request for Commnets는 비평을 기다리는 문서라는 뜻으로 컴퓨터 네트워크 공학 등에서 인터넷 기술에 적용 가능한 새로운 연구, 혁신, 기법 등을 정리한 문서를 말합니다. 새로운 RFC는 충분한 검증과 비평을 통해 새로운 표준으로 발전하기도 하고 혹은 폐지되거나 수정됩니다.
인터넷은 정보의 탈중화를 가져왔고, 이더리움과 같은 암호화폐는 신뢰, 가치의 탈중앙화를 가져왔습니다. 인터넷에서는 RFC를 통해 발전을 거듭했듯이 이더리움의 새로운 기술, 연구, 혁신 등은 ERC를 통해 개발되고 발전됩니다. 오늘은 이더리움 표준중에서 자주 쓰이는 ERC-20, ERC-721, ERC-1155에 대해서 알아보겠습니다.
ERC-20 (이더리움 토큰)
ERC-20은 이더리움 네트워크의 대체가능한 토큰 표준입니다. 대체 가능하다는 것은 토큰 모두가 동일하고 서로 대체할 수 있습니다. 화폐를 예를 들면, 나의 만원짜리와 다른 사람의 만원짜리기는 같은 가치를 가지고 있는 동일한 화폐입니다. 동일한 화폐로서 교환이 가능하고 대체 가능합니다. 나의 만원과 세상 모든 만원짜리는 차이점이 없습니다. 암호화폐의 출발이 기존 화폐를 대체하는 것이었기 때문에 암호화폐 또한 기존 화폐 시스템과 같이 서로 대체 가능했습니다.
다만 암호화폐는 블록체인 네트워크에서 동작하는 디지털 화폐이기 때문에 몇가지 추가적인 장점과 특징을 가집니다. 네트워크 상에서 자유롭게 전송이 가능하고 다른 사람의 잔액을 확인할 수 있어야 합니다. ERC-20 암호화폐로서 이더리움 토큰을 정의합니다. ERC-20 표준은 이더리움 토큰이 갖추어야할 총 발행량(Total Supply), 전송(transfer), 잔액(balance), 전송추적(transferFrom), 수락(approve), 허용(allowance)을 정의합니다. 이와 같은 개념들은 개인지갑을 사용하다 보면 익숙한 개념이죠. ERC-20에서 이러한 개념을 정의했습니다. 또한, ERC-20 표준을 따르기만 한다면 어느 누구나 이더리움 네트워크에서 자신만의 토큰을 만들고 배포할 수 있습니다.
- totalSupply ( ) : 전체 공급량 / 토큰의 총 발행량을 설정하는 기능
- transfer( ) : 송금 / 토큰을 한 주소에서 다른 주소로 보내는 기능
- balanceOf ( ) : 잔액 / 한 주소(지갑)에 보유한 잔액을 말하며, 어떤 주소의 지갑에 얼마가 있는지 알 수 있다.
- approve ( ) : 승인 / 다른 사람에게 토큰을 보낸 것을 허용.
- allowance () : 허용 / 수신자에게 허락한 토큰의 갯수
ERC-721(NFT)
ERC-721은 NFT(Non-Fungible Token)를 위한 표준입니다. ERC-20 처럼 대체 가능한 토큰이 있다면 반대로 대체 불가능한 토큰도 있습니다. ERC-721 토큰은 이더리움 네트워크에서 고유성을 가지는 토큰이 따라하는 특성을 정의합니다. NFT 토큰은 각자 고유성을 가지고 있으며 다른 토큰으로 대체할 수 없습니다.
사람을 예로들어 생각하면 이해가 쉽습니다. 사람은 모두 눈과 코 귀를 가지고 있고, 음식을 먹으며 걷고 뛰는 행동을 합니다. 사람을 지구에 살아있는 생물의 한 종으로 생각하면, 사람을 한명 두명으로 구분 할 수 있습니다. ERC-20 토큰으로 대체 가능한 토큰으로 표현할 수 있죠. 하지만, 사람을 전체적인 특징이 아니나 사람 고유의 외모와 존재에 집중을 하면 사람은 사람으로써의 특징을 가지지만 각자 대체할 수 없는 고유성을 가진다는 것을 알 수 있습니다. 이러한 사람의 고유성은 ERC-721 토큰으로 표현 할 수 있습니다. ERC-721 토큰은 대체가능한 토큰에 고유성을 부여할 수 있습니다.
NFT의 고유성을 디지털 자산, 혹은 실생활의 자산과 접목하면 디지털 소유권을 증명할 수 있고, 많은 다양한 활용성이 생깁니다. NFT는 블로체인 에서의 유일성을 바탕으로 디지털 신분증, 입장권, 티켓, 교환권 등 무궁무진한 활용이 가능합니다. 그리고 블록체인의 특성상 절대 해킹이 불가능하며 모든 거래가 기록되기 때문에 NFT 자체의 고유성을 보장 받습니다.
ERC-1155 (이더리움, NFT 혼합)
대체가능토큰(ERC-20)과 대체 불가능 토큰(ERC-721) 모두 잘 사용하고 있지만 문제가 있습니다. 이더리움의 가치가 점점 높아져 가스비가 너무나 비싸졌다는 건데요. ERC-20과 ERC-721은 이더리움 네트워크 안에서 상호작용은 가능하지만 표준이 다르기 때문에 각각 처리를 해야하는 트랜잭션이 필요합니다. 비싼 이더리움 가스비도 각각 필요하게 되죠. 그래서 두가지 표준을 하나의 거래로 처리하기 위해 ERC-1155가 탄생하게 됩니다. ERC-20과 ERC-721을 하나의 거래에 담아낼 수 있는 표준이고 이더리움 수수료과 병목현상을 크게 줄였습니다.
한 게임의 아이템을 생각해보겠습니다. 아이템은 고유성이 필요한 아이템과 그렇지 않은 아이템으로 구분 할 수 있습니다. 게임안에서 아이템을 사고 팔기 위해서는 게임내 화폐가 필요합니다. 게임내 화폐는 동일한 가치와 특성을 가지기 때문에 ERC-20으로 구현할 수 있습니다. 이와 동시에 무기와 갑옷 같은 아이템은 능력치와 등급이 각각 다르기 때문에 고유성을 부여해야 합니다. 따라서 무기와 갑옷 등은 ERC-721로 구현해야 하죠. 이와 같이 한 게임안의 아이템이라고 해도 대체가능한 아이템과 대체불가능한 아이템이 존재한 다는 것입니다. 따라서 이럴 때는 ERC-20과 ERC-721을 동시에 처리할 수 있는 ERC-1155를 사용하면 됩니다.
BNB 표준(BEP2, BEP-20)
ERC-20은 이더리움의 표준입니다. 코인에서는 자체적으로 독립된 네트워크를 가지는 코인들이 많습니다. 바이낸스의 BNB, 카르다노의 ADA, 솔라나의 SOL, 폴리곤 MATIC, 트론의 TRX 등 많은 코인들이 있습니다. 이들 또한 각자의 표준이 있고 선구자인 이더리움과 같은 개념을 따르기 때문에 비슷한 표준들이 있습니다.
BEP2는 바이낸스 BNB 토큰의 자체 표준입니다. BEP-20은 이더리움과 호환되도록 설계된 표준입니다. 즉 이더리움 네트워크에서 개발된 디앱들을 적용할 수 있고 이더리움이 BNB 체인안에서 유통 될 수 있도록 만들어진 표준입니다.
ERC-20 코인을 전송할 때는 꼭 이더리움 네트워크로 전송해야 합니다. 코인 전송시 다른 네트워크를 선택하게 된다면 코인을 영영 잃어버릴 수 도 있습니다.