[이더리움][Ethereum] ERC-20

근상·2024년 12월 20일

기사나 다양한 매체들을 통해 ERC-20을 보거나 들어본 적이 많을 것이다.
이는 Smart Contract로 구현할 수 있는 것 중 가장 대표적이다.

Initial Coin Offering

ERC-20을 알기 전에 설명할 것들이 있다.

ERC(Ethereum Request for Comments)-20
즉 이더리움 내에 제안된 20번째 내용이다.

그래서 현시점 기준으로 나온지 시간이 됐지만 아직도 왜 이렇게 활발할까?
그 원인을 찾아가보자.

ICO란 Initial Coin Offering의 약자로
블록체인 플랫폼 개발 자금 확보를 위해 투자자들이 개발 자금을
투자하면 해당 금액만큼 토큰을 먼저 발행하는 것이다.

주식시장에는 IPO가 있는데, 해당하는 주식에 일정 금액 지불을 하고 상장하면서
거기에 해당하는 만큼의 주식을 발행을 해주는 것처럼

ICO도 방법은 같지만 주식대신 토큰인 것이다.

ICO의 사용 이유는, Dapp이나 블록체인 서비스 개발을 위해서는
개발자 임금이나, 서버 구축 비용 등
비용이 필요한데, 그 비용을 투자자들이 먼저 투자를 하고
운영하면서 나오는 수익금을 배분 해주는 구조라고 보면 된다.

😂 하지만 ICO를 진행 한다고 일정 금액을 내가 투자한다고 토큰을 무조건 받는 것이 아니다.

그 이유는 Soft Cap, Hard Cap등의 기준에 의해 자동 취소되는 현상이 발생할 수 있다.

투자자들이 암호화폐(보통 ETH)를 ICO를 위한 Smart Contract 주소에 전송하고
모인 금액은 이더리움 네트워크를 통해 Smart Contract 잔고를 확인할 수 있다.

예를들어)
개발하며 백서를 작성하다보면, 어느정도 개발자금이 필요한데
그 예상금액이 3M달러라면, 이 돈은 Soft Cap이된다.

그런데, 이 서비스 인기가 높아져 많은 사용자들이 모이게 된면,
많은 자본이 들어와 발행되는 토큰의 발행량 또한 많이 늘다가
투자자에게 지급할 수 있는 토큰의 수가 제한될 수 있어서 Hard Cap나오게 됐다.

이것은 투자자들이 투자할 수 있는 최대의 금액이다.
10M달러이상되면 투자하는 사람이 토큰을 못받게 되는 경우가 발생할 수 있다.
그래서 10M달러이상은 모집하지 않겠다는 것이 최대 기준 수치가 Hard Cap이다.

2017년에 가상자산 시장이 매우 활발했다. ICO 때문이다.
1M ETH를 투자해서 1M ERC-20토큰을 받게 됐는데,
이 토큰이 천만원이 되는 사례가 많아서 무분별한 ICO가 발생했다.
이 ICO에 투자하기 위해 BTC, ETH 구매량이 급격히 늘어 가격 인상 요인이 발생했었다.


Token Distribution

ICO 백서를 볼 때 중요하게 봐야하는 부분이 Token Distribution이다.
일반적으로 모든 백서는 일정 투자금을 받기 때문에 그 금액에 대해서
어떻게 토큰을 분배하고 사용할 지에 대한 내용을 백서에 작성한다.

위 자료를 보면 Distribution & Usage 그래프처럼
분배와 사용에 관한 비율을 백서에 작성해 공개한다.

Dirtribution
Team - 서비스의 주축이돼 서비스에 대한 열정 갖기 위한 지분

많이 public으로 분배를 하지만 서비스에 대한 확신이 있어 소수의 투자자들에게
Private - 제공하는 것이 이 부분에 해당한다.

Marketing과 Ecosystem은 따로 설명할 필요는 없지만
매우 높은 비율을 Ecosystem에 사용된다고 보면 된다.

Usage
Private 투자로 받은 금액에 대해서 어떻게 사용을 할 지를 보여주는 그래프.

Plaform, Community는 말 그대로라 설명을 하지 않아도 되겠다.
Investment는 받은 금액 중 일부를 재투자 하는 것이다.
Partnership은 함께하는 인원에 해당하는 부분이다.

2017년 붐이 일어나면서 많은 개발자들이 등장했고
후에 시도하는 ICO들이 자연스럽게 망해가다가
2018년에 코인의 암흑기가 왔다.

토큰이 발행되고 개발자들이 신속하게 매도를 하는 경우아 잦아져
ERC-20 Lock기능이 생겼다.
이것은 ICO로 토큰을 받으면 개발사가 일정 기간 후에 매도가
가능하도록 제한하는 기능이다.


ICO의 대안

ICO의 인기가 폭발하면서 무분별하게 생겨났다.
백서만 작성하고 사이트를 등록하면 누구든지 그 때는 많은 금액을 모을 수 있는 환경이었다.

그로 악행을 저지르는 이들이 많이 나타났다.

그래서 이를 막기 위한 대안들이 등장했다.

대표적으로 IEO, IDO가 있다.

  • IEO - 중앙화된 거래소(바이낸스, 업비트 등)에서 초기 발행을 도와준다.
    장점으로 무분별한 발행 시장에서 발행된 형태의 토큰이 아니라
    중앙화된 거래소에서 ICO의 성공 여부, 개발 인력 소유 등을 확인해 선별하고
    거래소에서 바로 거래를 할 수 있도록 하기 때문에 초기에 ICO에 투자한 사람들이 상장까지 기다리지 않고 ICO를 진행하자마자 지급받은 토큰을 바로 거래할 수 있다.

이 방식의 문제로, 같은 거래소를 이용하는 지인의 사기같은 문제가 발생한다.

  • IDO - 그래서 등장한 방안이다. 이는 UniSwap같은 중앙화 거래소가 아닌,
    사용자들끼리 직접적인 탈중앙화 거래 방식이다.
    해당 Dex투표를 통해 지원여부를 결정한다. 믿을 수 없는 중앙화 거래소에서의
    밀실상장같은 문제를 걱정하지 않아도 되고 모두가 보고 투표하는 곳에서
    상장되었음을 통해 신뢰가 보장된다.

ERC-20의 장점

이것이 등장하기 전에,
코인을 발행한다면 꼭 메인넷이 개발되어야 보상을 할 수 있었다.

이더리움 Genesis Block에서 본 것처럼
이더리움 ICO에 참여한 사람들은 네트워크가 Genesis Block이 시작할 때까지
본인이 투자한 금액을 받을 수 없다.
(위 문장과 같은 말임)

  1. 쉬운 발행 과정 - ERC-20은 메인넷을 개발하지 않아도
    사용자가 거래를 하거나 가치를 가질 수 있는 토큰을
    Smart Contract상에 개발하고 배포해 메인넷 출시 전에
    본인이 확인 가능한 지분을 미리 확보해 신뢰를 제공할 수 있다.

  2. 발행량과 초기관리 - 이는 관리자의 측면에서 중요한 내용이다.
    예로 블록체인 서비스에서 초기 서비스를 준비하는 입장에서
    비트코인처럼 2100만개만 발행한다 하고 막상 서비스를 운영하니까
    사용자가 너무 많아져 막 10억개로 조절할 필요가 있을 수 있다.
    그래서 ERC-20같은 경우 발행량이 제한되고 수정하기 어려운 토큰과 달리
    초기 발행량 조절을 마음대로 할 수 있는 장점이 있다.
    또 탈중화된 서비스에서 사용자 관리가 불편한 점이 있는데 제한할 수 있는
    블랙리스트, 특정 관리자 선임 등을 코드상에서 구현 가능한 함수들을 만들 수 있다.

  3. ETH와 동일한 보안성 - ETH경우, EOA State값으로 보안성이 관리되고
    ERC-20경우, CA State값으로 보안성이 관리된다.
    같은 네트워크에서 관리하므로 이더리움과 동일한 선상에 있게 돼서
    안정성과 투명성을 이더리움 네트워크에 있는 그대로 가져가는 장점이 있다.
    단점으로, Contract상에 취약점이 있는 경우 매우 심각한 보안 취약성을 갖게된다.
    예로 해커가 관리자를 공격해 토큰 발행, 서비스 중지 등의 문제가 있다.

또 중요한 부분인데 많은 사람들이 헷갈려한다.

이더리움 EOA의 Balance는 잔고가 관리되는 형태고,
ERC-20의 특정 주소 잔고는 EOA's State 중 포함되는 필드는 없다.

그러면 어디에 들어가는 것일까? CA의 Storage상에 저장된다.

이 Contract를 selfDestruct호출하면 잔고가 사라질 수 있는 중앙화된 취약점이 있다.


ERC-20 표준

ERC-20을 다시 언급해보면
토큰을 지칭하는 것이 아니라, EIP-20으로 제안된 새로운 표준 스펙이다.

기본적으로 9개의 함수와, 2개의 Event를 포함해야지만
구현을 하는 과정에서 반 정도 포함하고 구조가 비슷하면
Etherscan.io에서 Contract가 ERC-20임을 인식한다.

Function
1~4는 Constructor에 들어가는 내용들이다.
5 특정인의 잔액조회
6 토큰 전송
7 특정 주소에서 특정 사람에게 대행 전송 함수다. Aprrove(8)을 진행해야 이용가능
8 토큰 전송의 권한을 승인해주는 함수

5, 6은 독립적으로 사용한 반면 7, 8은 함께 사용됨.

9 누가 누구에게 얼만큼 approve를 했는지 조회하는 함수

Event
Smart Contract에서 유저에게 알리고 싶은 정보가 필요할 때 사용

1 사용자가 토큰 전송 한 경우
2 전송 권한을 승인했을 경우

Etherscan.io를 보면 ERC-20 토큰 전송 페이지가 있는데 페이지 같은 경우
이더리움 TX를 통해 보여주는 형태가 아니라
이 event Transfer()을 통해 보여주는 형태다.


발행량과 시가총액

유명한 coinmarketcap.com을 통해 토큰이나 메인넷 코인들의 정보 확인

여기 자료에 있는 요소들이 어떻게 계산돼서 도출됐을까?

투자자의 관점에서
발행량과 시가총액은 투자의 가장 중요한 요소다.
발행량은 ERC-20에서 totalSupply()를 통해 나온 값이다.
총 발행량은 ERC-20에 설정된 최대 발행량이다.

이미 유명한 비트코인은 총 발행량은 2100만개다
totalSupply()값은 지금까지 발행된 총량으로 발행량에 해당된다.

시가총액 계산은 발행량 * 현재가 이다.

자료에 있는
테더는 기본적으로 가격이 1달러 고정이니까(스테이블 코인 중 1등)
시가총액이 659억달러니 유통 공급량은 당연히 659억usdt이다.
테더의 경우에 총 발행량에 제한이 없다. 이더리움도 마찬가지다.
그래서 최대 공급량이 공란이다.


Stable Coin

ERC-20으로 발행했을 때

기존에는 가치 변동성 있는 코인밖에 발행할 수 없었지만,
ERC-20을 통해 조건이나 가치를 조정할 수 있는 코인을 발행하는 계기가 되었다.

앞에서 봤던 테더같은 경우도 ERC-20을 기반으로 만들어진 토큰이다.

그런 토큰 중 테표적인 것이 스테이블 코인이다. 이는 3가지가 종류가 있다.

  1. 법정화폐 담보
    테더와 같이 법정화폐 담보다. 중앙화된 서비스에 달러를 예치하면
    그 사용자에게 달러에 가치에 페깅되는 토큰을 신규 발행하고 지급한다.
    예치된 달러 금액 만큼만 토큰을 발행하기 때문에 항상 1달러를 유지하려고 한다.
    역으로 테더를 반납하고 달러를 받는것도 가능해 은행과 비슷한 역할을 한다.

  2. 암호화폐 담보
    MakerDAO의 DAI가 대표적이다.
    Defi 서비스 중 하나로 Maker 담보 관리자가 일정 수수료를 지급받으면
    담보의 가치를 조정하고 리스크 관리 업무를 진행한다.
    한 사용자가 1백만달러의 ETH을 MakerDAO에 예치하면 해당 가치만큼
    70-80만달러의 가치의 DAI토큰을 지급한다.
    이 경우는 유동성 관리를 어느정도 해야하는데, 관리자가
    담보의 가치를 지켜보며 예치자에게 지급할 토큰의 양을 정하는 형태다.

  3. 알고리즘 기반
    문제가 됐던 2022.05 테라-루나 서비스가 있다.
    코인페어의 유동성 차이를 이용한 알고리즘이다.
    테라의 가치가 떨어지면 루나가 올라가는 반비례 관계로 페어한 형태로
    둘의 가격차이를 하나로 봐 스테이블의 성격을 띠는 방식이다.
    성공사례도 없을 뿐더러 쉽지가 않은 방식이다.
    지속적으로 성장 가능성이 있어야 1달러 가치를 유지할 수 있다.


Wrapped ETH

ETH를 ERC-20으로 바꾼 것이다.

ETH로 쓰면 될 걸 왜 Wrapped ETH로 바꿨을까?

  • ERC-20
    ETH는 ERC-20 표준을 지원하지 않기 때문에
    즉, approve()나 transferFrom()을 지원 안 함.
    Defi상에서는 이 함수들이 필요하다. 따로 개발하거나 해야하는 것들이 불편하다.
    그래서 ETH를 맡기고 wETH 혹은 wBTC, wTerra등 으로 변환한다.

  • Defi 활용
    Defi 플랫폼이 Smart Contract상에서 대부분 ERC-20토큰을 기반으로
    설계 및 운영하기 때문에 이에 맞게 ETH 또한 같은 기능의 지원을 필요로 한다.

  • Unwrap
    테더의 경우 1달러에 1USDT를 지급받는데, Unwrap을 Smart Contract에
    요청하면 동일한 수량의 ETH를 wETH로 변환해 돌려준다.


결론

ERC-20같은 경우에 왜, 어떻게 이런 발전을 하게 됐는지
ICO붐 후에 어떤 모습으로 활용이 되는지를 알아봤다.

이런 배경지식 없이 ERC-20에 대한 기술적인 이해만 갖게 되면
서비스 개발(표준 9개의 기본 함수 외에도 구현)에 빠지는 부분이나 다른 서비스와 연동에서
제한점이 발생할 수 있다.

그래서 꼭 ERC-20에 대해서 알아야 한다.


출처)) 자료 및 내용: 패스트캠퍼스

1개의 댓글

comment-user-thumbnail
2024년 12월 20일

잘 읽었습니다.

답글 달기