ERC-20은 Ethereum Request for Comment 20의 약자로써 20은 리퀘스트 숫자입니다.
이더리움의 개선안을 제안하는 EIPs 에서 관리하는 공식 프로토콜입니다. 하이픈 없이 'ERC 20' , 'ERC20' 으로 표기하기도 합니다. 이알씨이십, 이알씨이공, 이알씨트웨니, 이알씨이영 등으로 읽습니다. ERC20 은 이더리움 블록체인 네트워크에서 정한 표준 토큰 스펙입니다.
필요한 이더리움과 호환성이 있는 모든 요구사항을 충족시키는 표준으로 간주합니다. ERC20 토큰은 이더리움과 교환이 가능하며, 이더리움 지갑으로 전송이 가능합니다.
이더리움은 자체 블록체인을 기반으로 다양한 탈중앙화 된 애플리케이션들이 작동할 수 있도록 고안된 하나의 플랫폼 네트워크입니다.
디앱은 이더리움 플랫폼상에서 스마트 계약을 이용하여 빠르고 쉽게 토큰을 발행할 수 있습니다. 이더리움 블록체인에서는 이더 (ETH) 가 사용됩니다. 이더리움 블록체인상의 디앱은 또 다른 다양한 분야에 적용될 수 있는 각각의 솔루션으로 그에 맞는 토큰을 발행하는 것입니다. 이때 발행된 토큰은 독자적인 토큰인 듯 보이지만 실제로는 이더리움에서 호환되고 사용할 수 있습니다.
예를 들면, 안드로이드 및 IOS 가 하나의 플랫폼 역할을 하고 그 위에 존재하는 수많은 애플리케이션들이 있습니다. 단순하게만 보면 안드로이드 및 IOS가 이더리움 플랫폼 역할을 하고 그 위에 존재하는 애플리케이션이 디앱과 같은 것 입니다.
이때 각각의 앱을 사용하면서 발생하는 일정부분의 포인트를 통합하여 사용하는 것은 같은 회사계열의 앱이 아닌 이상 거의 불가능합니다. 하지만 이더리움 플랫폼 안에서는 각각의 디앱이 발행한 토큰을 통합하여 현금화 하는 것이 가능합니다.
디앱 내에서의 토큰 교환은 물론, 또 다른 이더리움 플랫폼을 기반으로 한 디앱의 토큰과 교환이 가능한데 이를 위하여 ERC20토큰 표준이 만들어졌습니다.
다양한 디앱에 흩어져 있는 ERC20 표준 호환 토큰들은 나중에 통합되어 한 번에 ETH로 모두 변환하여 현금화 할 수 있습니다.
ERC20은 이더리움 네트워크상에서 유통할 수 있는 토큰의 호환성을 보장하기 위한 표준 사양입니다. ERC20 토큰은 스마트 계약의 속성을 지원해야만 합니다.
스마트 계약은 온라인 환경에서 암호화폐 교환 시, 일정 행동이 불가역적으로 전개되는 기능을 통하여, 중앙관리가 배제된 서비스를 구현할 수 있는 것이 장점이며, 이더리움 블록체인에서 구현이 용이합니다. 따라서, 디앱은 이더리움 블록체인 플랫폼을 활용하여 자신의 비즈니스를 구현하고, 플랫폼 사용료, 거래체계 등을 이더리움으로 지불하는 체계를 가지고 토큰을 발행할 필요가 크며, 실제로 이를 기반으로 하는 토큰 발행이 많습니다.
즉 ERc20 토큰이 되기 위한 기준은 스마트 계약 기능의 포함 여부로 볼 수 있습니다.
또한 ERC20 은 디앱이 발행하는 토큰이 이더리움의 통화인 이더리움과의 호환성을 충족시키기 위하여 규정하고 있는 프로그래밍 기준입니다.
기준을 맞추어 디앱을 설계한 후 토큰을 발행하면, 이더리움과 쉽게 교환할 수 있고 표준 이더리움 지갑에 자유롭게 전송할 수 있게 됩니다. 결국 이더리움 블록체인을 활용하는 토큰의 경우 이 기준을 맞춰야 합니다.
ERC20이라는 표준을 사용하는 이유는 토큰끼리의 호환을 위해서 입이다.
ERC20 기반 토큰은 오미세고, 비체인, 펀디엑스 등이 있습니다.
트론, 이오스 등은 이더리움 기반으로 생성되었지만, 자체적인 메인넷을 출시와 함께 독립적인 코인으로 재탄생 되었습니다. 안드로이드 운영체제를 사용하는 네이버 지도를 카카오톡으로 바로 공유할 수 있는 것처럼 ERC20 기반으로 생성된 토큰은 상호 호환이 가능합니다. ERC20 기반 토큰들은 동일한 이더리움 지갑으로의 전송이 가능합니다.
ERC20 토큰은 스마트 계약을 통하여 생성됩니다.
스마트 계약이 싸이클린이라는 토큰을 만드는데 사용되었습니다.
스마트 계약은 싸이클린의 채굴시스템에서 중요한 역할을 합니다.
스마트 계약을 통하여 ERC20토큰을 생성하게 되면 이 토큰을 다른 주소로 보낼 수 있으며 여러 가지 역할을 해줍니다.
ERC20을 준수하기 위하여 다음 여섯 가지 기능이 필수적으로 포함되어야 합니다.
부가적으로 이름, 심볼, 소수점 등의 기능도 설정할 수 있습니다.
해당 명칭을 통하여 어떠한 기능을 하는지 알 수 있습니다.
totalSupply 함수: 총발행량 즉 전체공급량을 의미하며, 사용자 호출 시 토큰이 총 몇 개나 있는지 전달합니다.
transfer 함수 : 송금을 말하며, 이 함수를 통해 토큰을 총발행 주소에서 개인 계정으로 송금할 수 있습니다. 전송하고자 하는 주소와 금액을 제공하여야 합니다.
balanceOf 함수 : 잔액을 말하며, 계정에 있는 토큰을 반환하고, 모든 지갑의 주소를 추적합니다. 이더리움 네트워크의 계정은 공개적이기 때문에, 주소를 알면 모든 사용자의 잔고를 요청할 수 있습니다.
transferFrom 함수 : 사용자는 송금 기능을 사용하여 측정 토큰을 사용자가 전송하고 교환할 수 있습니다. transfer를 간소화한 형태입니다. 이 함수는 지갑 주소, 수령인, 송금액을 얻은 중개인처럼 작동한 다음 거래를 수행합니다.
approve 함수 : 승인 기능은 사람들이 위조 토큰을 만드는 것을 방지합니다. 토큰의 총발행 양을 확인해 트랜잭션에 제한을 두고 , 최대 토큰 수를 유지 관리하고 어떤 지갑에 어떤 토큰이 있는지 추적합니다.
allowance 함수 : 허용 기능으로 approve 함수와 함께 사용할 수 있습니다. 누군가가 시스템을 속이고 본인이 소유한 것보다 더 많은 토큰을 보내고자 하는 상황일 때, 허용 기능 덕분에 사용자들은 자신들이 가진 것보다 더 많은 토큰을 보낼 수 없습니다. 예를 들어, 여러분의 구독료에 승인된 10개의 토큰 중 22개를 사용했다면, allowance 함수를 호출하면 8개의 토큰을 사용할 수 있다는 메시지가 출력될 것입니다.
'블록체인 개발할뻔' 카테고리의 다른 글
클레이튼 시작하기 앞서 KCT 알아보기 (1) | 2022.07.06 |
---|---|
ERC20 장단점, 선택적규칙 다른 이더리움 표준 (2) | 2022.07.05 |
체인 알고리즘 방식의 문제점과 그에 대안 (0) | 2022.06.29 |
작업증명 방식의 문제점 또 그에 대안 (0) | 2022.06.28 |
블록체인의 활용 (0) | 2022.06.27 |
댓글