블록체인 기술에 처음으로 들어오게되면 마주하게되는 ERC-20 ERC-20이란 뭘까?
ERC 20(Ethereum Request for Comment 20)의 약자이다.
즉, 이더리움 프로토콜 개발을 위한 표준을 제안하는 문서의 집합이다.
ERC-20 외에 ERC-223, 621, 827등 여러 다른 종류가 있다.
위에 적힌 이들은 대부분은 ERC-20을 기반으로 뻗어나간 형태이기에 ERC-20을 분석해 보도록 하겠다.
그 외에 많은 ERC-000가 있으니 여기를 클릭해 확인해보자
ERC를 알기 위핸 먼저 Ethereum, EIPs를 알아야한다
이더리움은 자체 블록체인을 기반으로 탈중앙화된 애플리케이션들이 작동할 수 있도록 고안된 하나의 플랫폼 네트워크이다.
디앱(Decentralized Application의 약자 플랫폼 코인 위에 작동되는 탈중앙화 분산 애플리케이션)은 이러한 이더리움 플랫폼 상에서 스마트 계약을 이용하여 쉽고 빠르게 토큰을 발행할 수 있다.
이더리움 블록체인에서는 이더(ETH)가 사용되고, 이더리움 블록체인 상의 디앱은 또 다른 다양한 분야에 적용될 수 있는 각각의 솔루션으로 그에 맞는 토큰을 발행하게된다.
이때 발행된 토큰은 독자적인 토큰인 듯 하지만 실제로는 이더리움 생태계에서 호환 및 사용 가능하다.
[출처] 이더리움
EIPs(Ethereum Improvement Proposals)는 이더리움 개선 제안을 의미한다.
EIP는 이더리움 커뮤니티에 정보를 제공하거나 이더리움 프로세스 , 환경에 대한 새로운 시능을 설명하는 설계 문서이다.
먼저 ERC-20에서 20은 리퀘스트 숫자이다.
ERC-20은 이더리움 블록체인 네트워크에서 정한 표준 토큰 스펙이다.
이더리움 블록체인을 사용하여 생성된 대체 가능한 토큰에 대한 기술 표준이고, ERC-721의 대체 불가능 토근(NFT)와는 다릅니다.
ERC-20은 이더리움 블록체인의 스마트 계약 표준에 대한 필요성을 해결이 필요했다.
이에 개발자 Fabian Vogelsteller가 2015년에 Vogelsteller는 프로젝트의 Github 페이지를 통해 이더리움 의견 요청(ERC)를 제안서를 제출했다.
20번째 comment이므로 ERC-20이라는 명칭이 지정되었다.
totalSupply()
transfer(address _to, uint256 _value)
balanceOf(address _owner)
transferFrom(address _from, address _to, uint256 _value)
approve(address _spender, uint256 _value)
allowance(address _owner, address _spender)
totalSupply()
transfer(address _to, uint256 _value)
balanceOf(address _owner)
transferFrom(address _from, address _to,
approve(address _spender, uint256 _value)
allowance(address _owner, address _spender)
선택적 규칙은 모든 사람의 편의를 위해 존재한다.
이 옵션들은 토큰, 심볼 및 10진법 규칙이다.
토큰의 이름은 사람들이 어떤 토큰을 다루고 있는지 알 수 있도록 도와주는 역할을 한다.
예를들어 싸이클린의 ERC-20 토큰 이름은 CyClean이다.
싸이클린의 심볼은 CCL이며, Dobitrade와 HitBTC에서 이러한 방식으로 표시되어 있다.
마지막으로 10진법 규칙이 있다.
이는 토큰을 몇 개의 10진수로 나눌 수 있는지를 알려준다.
싸이클린 토큰은 18개의 소수점으로 나눌 수 있다.
10진수 값이 0이면 토큰이 분리되지 않는다.
이더리움 네트워크에서 이더는 자유롭게 거래된다.
이더는 모든 종류의 거래에 사용되는 토큰이나 암호화폐로 간주한다.
이더리움 네트워크에는 이더와 교환 가치에 기반해 사용되는 다른 토큰들도 존재한다.
이더리움 블록체인에서 또 다른 토큰을 실행하려면 ERC-20이라고 불리는 스마트 계약에서 코드나 기술 표준을 설정해야 한다.
스마트 계약 결제 수단으로 ERC-20 토큰을 사용할 경우 토큰이 파괴되는 현상이 나타난다.
ERC-20 토큰은 다른 이더리움 주소 사이에서 이동할 수 있는데,
그러나 이더리움 블록체인의 일반적인 에테르 거래는 근본적으로 다르다.
트랜잭션 양 및 추가 정보에 대한 트랜잭션 필드, 정보 필드의 필드를 포함하는 이더넷을 전송한다. 그러나 이때 토큰 트랜잭션에서 보낼 토큰 수에 대한 정보는 두 번째 필드에 있다.
따라서 양쪽의 당사자의 주소 간에 전송이 가능하지만 다른 스마트 계약 기능의 트리거로 토큰을 사용하면 작동하지 않는다.
사용자가 트랜잭션을 스마트 계약으로 보내고 스마트 계약이 인식되지 않으면 트랜잭션의 에테르가 영구적으로 손실된다.
이더로만 결제해야 하는 버그가 존재하게 되어, 현재까지 이 버그 때문에 약 3백만 달러어치의 토큰이 사라져버렸다고 한다.