ERC20이란?
ERC 20은 Ethereum Request for Comments 20의 약자입니다. ERC(Ethereum Request for Comment)는 이더리움 네트워크의 개선을 제안하는 공식 프로토콜의 이름이고 20은 제안서의 일련번호입니다. 이더리움 네트워크 상에서 유통할 수 있는 토큰의 호환성을 보장하기 위한 표준 사양입니다. 이러한 표준 사양을 만든 이유는 이더리움 플랫폼 상에서 스마트 컨트랙트를 이용하여 다양한 디앱(Dapp)이 만들어지고 디앱마다 각각 적용될 수 있는 토큰들이 발행이 되는데 독자적인 토큰이 아닌 이더리움 생태계에서 호환 및 사용이 가능하도록 하기 위한 표준을 만든 것입니다. 따라서 ERC20 기준을 맞춰 디앱을 설계하여 토큰을 발행하게 된다면 이더리움과 쉽게 교환이 될 수 있고 표준 이더리움 지갑에 자유롭게 전송할 수 있습니다.
ERC20의 규칙
규칙은 크게 선택적 규칙과 필수 규칙으로 나뉩니다. 선택적 규칙은 모든 사람의 편의를 위해 존재합니다. 필수 규칙은 표준을 준수하여 토큰의 자격을 받으려면 반드시 포함되어야 합니다.
필수 규칙
totalSupply - 토큰의 총발행량을 알려주고 생성되어 사용할 수 있는 토큰 수를 지정합니다.
balanceOf - 계정에 있는 토큰을 알려줍니다.
transfer - 송금을 합니다.
approve - 거래 시 토큰 이동을 승인합니다.
allowance - 허용 기능이지만 사실상 효율적인 사전 승인입니다. 기본적으로 0으로 정의되어 있지만 쿼리시 허용량에 남아있는 토큰 수를 반환합니다.
transferFrom - 토큰 자동 결재를 위하여 프로그래밍될 수 있도록 허용하고 전송 이벤트를 시작하여 허용량에서 토큰을 이동합니다.
선택 규칙
name - 사람들이 어떤 토큰을 다루고 있는지 알 수 있도록 토큰의 이름을 정합니다.
symbol - 심벌은 어떤 토큰인지 연상되기 편하게 지정을 합니다.
decimal - ERC20 토큰을 10진수로 나눌 수 있는지를 알려줍니다.
위 3가지 법칙은 선택이지만 거의 모두 사용합니다. 토큰의 이름이 직관적이고 이해가 되어야 사람들이 사용하기 편하기 때문에 이름도 사용하고 거래를 할 때 심벌로 간략하게 표현하여 알아보기 편하게 설정을 하며 10진법으로 나누어져야 계산이 편하기에 선택이지만 거의 모두 사용하고 있습니다.
ERC20의 장단점
장점
- 대체가 가능합니다. ERC20 토큰은 표준에 맞춰두었기 때문에 각각의 Dapp 간에 교환하기가 편리합니다. 현금과 마찬가지로 통화를 지향할 때 이상적입니다.
- 유연합니다. 표준에 맞추기만 한다면 다양한 애플리케이션을 위해 맞춤제작할 수 있습니다.
- 대중성이 있습니다. 이미 많은 곳에서 스마트 컨트랙트를 통하여 많은 개발이 이루어져 있어서 대중화되어 있습니다.
단점
- 스캠에 대한 문제가 있습니다. 토큰을 쉽게 발행할 수 있기 때문에 오히려 단점이 될 수 있습니다. 크게 어렵지 않게 토큰을 생성하기 때문에 누구나 생성이 가능하여 나쁜 목적으로 사용될 수 있습니다.
다른 이더리움 표준
ERC223
ERC20 토큰 표준의 개선입니다. 토큰 전송 사고를 방지하기 위한 안전장치를 사용합니다.
ERC721
NFT 토큰에 대한 표준으로 사용자에게 API를 제공하여 자신만의 대체 불가능한 토큰을 주조하고 메타 데이터를 표현할 수 있게 했습니다. 본질적으로 토큰이 디앱 내에서 공유될 수 있고 미래 NFT 생성에 영향을 미칠 수 있는 수집물이 되도록 합니다.
ERC777
모든 사람에게 스마트 계약 주소를 볼 수 있게 하고 그것들의 기능을 체크할 수 있게 합니다. 트랜잭션이나 요구된 액션들을 검증하는 데 사용합니다.
ERC998
ERC721과 함께 사용되는 기술입니다.