검수요청.png검수요청.png

ERC-20

위키원
이동: 둘러보기, 검색
이더리움(Ethereum)

ERC-20Ethereum Request for Comment 20의 약자이다. 20은 리퀘스트 숫자다. 이더리움 네트워크의 개선안을 제안하는 EIPs(Ethereum Improvement Proposals)에서 관리하는 공식 프로토콜이다. 옆줄(-) 없이 'ERC20', 'ERC 20'이라고 쓰기도 한다. 이알씨이십, 이알씨이영, 이알씨이공, 이알씨트웨니 등으로 읽는다. ERC-20은 이더리움 블록체인 네트워크에서 정한 표준 토큰 스펙이다. 필요한 이더리움과 호환성이 있는 모든 요구 사항을 충족시키는 표준은 ERC-20으로 간주된다. ERC-20 토큰은 이더리움과 교환 가능하며 이더리움 지갑으로 전송이 가능하다.

개요[편집]

이더리움은 자체 블록체인을 기반으로 다양한 탈중앙화 된 애플리케이션들이 작동할 수 있도록 고안된 하나의 플랫폼 네트워크이다. 디앱은 이러한 이더리움 플랫폼 상에서 스마트 계약을 이용하여 쉽고 빠르게 토큰을 발행할 수 있다. 이더리움 블록체인에서는 이더(ETH)가 사용되고, 이더리움 블록체인 상의 디앱은 또 다른 다양한 분야에 적용될 수 있는 각각의 솔루션으로 그에 맞는 토큰을 발행하는 것이다. 이 때 발행된 토큰은 독자적인 토큰인 듯 하지만 실제로는 이더리움 생태계에서 호환 및 사용 가능하다.

예를 들어, 안드로이드iOS가 하나의 플랫폼 역할을 하고 그 위에 존재하는 수많은 앱들이 있다. 단순 비교해보면, 안드로이드 및 iOS가 이더리움 플랫폼 역할을 하고 그 위에 존재하는 앱이 디앱과 같은 것이다. 이때 각각의 앱을 사용하면서 발생되는 일정부분의 포인트를 통합하여 사용하는 것은 같은 회사계열의 앱이 아닌 이상 거의 불가능하다. 하지만 이더리움 플랫폼에서는 각각의 디앱이 발행한 토큰을 통합하여 현금화하는 것이 가능하다. 디앱 내에서의 토큰 교환은 물론, 또 다른 이더리움 플랫폼을 기반으로 한 디앱의 토큰과 교환 가능한데 이를 위해서 ERC-20 토큰 표준이 만들어졌다. 다양한 디앱에 흩어져있는 ERC-20 표준 호환 토큰들은 나중에 통합되어 한 번에 이더로 모두 바꾸어 현금화 할 수 있다.

ERC-20은 Ethereum Request for Comments 20의 약자로 이더리움 네트워크 상에서 유통할 수 있는 토큰의 호환성을 보장하기 위한 표준 사양이다. ERC-20 토큰은 스마트 계약의 속성을 지원해야만 한다. 스마트 계약은 온라인 환경에서 암호화폐 교환 시, 일정 행동이 불가역적으로 전개되는 기능을 통해, 중앙관리가 배제된 서비스를 구현할 수 있는 것이 바로 스마트 계약의 강점이며, 이더리움 블록체인에서 구현이 용이하다. 따라서, 디앱은 이더리움 블록체인 플랫폼을 활용해 자신의 비즈니스를 구현하고, 자금모집 및 거래체계, 플랫폼 사용료를 이더리움으로 지불하는 체계를 가지고 토큰을 발행할 필요가 크며, 실제로 이더리움 기반으로 토큰 발행이 많다. 즉, ERC-20 토큰이 되기 위한 기준은 스마트 계약 기능이 포함이 되었나, 되지 않았나로 볼 수 있다. 또한 ERC-20은 디앱이 발행하는 토큰이 이더리움의 통화인 이더리움과 호환성을 충족시키기 위해서 규정하고 있는 프로그래밍 기준이다. ERC-20 기준을 맞춰 디앱을 설계한 후 토큰을 발행하면, 이더리움과 쉽게 교환할 수 있고, 표준 이더리움 지갑(My Ether Wallet, Meta Mask, Mist 등)에 자유롭게 전송할 수 있게 된다. 결국 이더리움 블록체인을 활용하는 토큰의 경우 ERC-20 기준을 맞춰야 한다.

ERC-20이라는 표준을 사용하는 이유는 토큰끼리의 호환을 위해서이다. ERC-20 기반 토큰은 펀디엑스(NPXS), 오미세고(OMG), 비체인(VEN) 등이 있다. 이오스(EOS), 트론(TRX) 등은 이더리움 기반 토큰으로 생성되었지만, 자체 메인넷을 출시와 함께 독립적인 코인으로 재탄생했다. 안드로이드 운영체제를 사용하는 네이버 지도를 카카오톡으로 바로 공유할 수 있는 것처럼 ERC-20 기반으로 생성된 토큰은 상호 호환이 가능하다. ERC-20 기반 토큰들은 동일한 이더리움 지갑으로 전송이 가능하다.[1]

ERC-20 토큰은 스마트 계약을 통해 생성된다. 스마트 계약이 싸이클린(CyClean) 토큰을 만드는 데 사용되었고, 스마트 계약은 싸이클린의 채굴 시스템에서 중요한 역할을 한다. 스마트 계약을 통해 ERC-20 토큰을 생성하면 이 토큰을 다른 주소로 보낼 수 있으며, 토큰은 여러 가지 역할을 해준다.[2]

특징[편집]

규칙[편집]

  • totalSupply () 함수: 총발행량을 말하며, 총발행량은 토큰이 총 몇 개나 있는지 알려주고 생성되어 순황에 사용할 수 있는 토큰 수를 지정한다.
  • transfer() 함수 : 송금을 말하며, 이 함수를 통해 토큰을 총 발행 주소에서 개인 계정으로 송금할 수 있다. 초기 토큰 배포를 지정된 지갑으로 실행한다. 이 함수는 ICO 토큰이 일반적으로 ERC-20 토큰이다.
  • balanceOf () 함수 : 잔액을 말하며, 계정에 있는 토큰을 반환하고, 모든 지갑의 토큰 균형을 추적한다.
  • transferFrom () 함수 : 사용자는 송금 기능을 사용하여 측정 토큰을 사용자가 전송하고 교환한 수 있다. 이 함수는 지갑 주소, 수령인, 송금액을 얻은 중개인처럼 작동한 다음 거래를 수행한다.
  • approve () 함수 : 승인 기능은 사람들이 위조 토큰을 만드는 것을 방지한다. 토큰의 총 발행 양을 확인해 트랜잭션을 허용하거나 거부하고, 최대 토큰 수를 유지 관리하고 어떤 지갑에 어떤 토큰이 있는지 추적한다.
  • allowance () 함수 : 허용 기능으로 누군가가 시스템을 속이고 본인이 소유한 것보다 더 많은 토큰을 보내고자 하는 상황일 때, 허용 기능 덕분에 사용자들은 자신들이 가진 것보다 더 많은 토큰을 보낼 수 없다. 거래가 이루어지면 취소된다. 모든 트랜잭션은 트랜잭션이 실행되기 전에 유효한지 이중으로 확인된다.[3]

선택적 규칙[편집]

선택적 규칙은 모든 사람의 편의를 위해 존재한다. 이 옵션들은 토큰, 심볼 및 10진법 규칙이다. 토큰의 이름은 사람들이 어떤 토큰을 다루고 있는지 알 수 있도록 도와주는 역할을 한다. 싸이클린의 ERC-20 토큰 이름은 CyClean이다. 싸이클린의 심볼은 CCL이며, Dobitrade와 HitBTC에서 이러한 방식으로 표시되어 있다. 마지막으로 10진법 규칙이 있다. 이는 토큰을 몇 개의 10진수로 나눌 수 있는지를 알려준다. 싸이클린 토큰은 18개의 소수점으로 나눌 수 있다. 10진수 값이 0이면 토큰이 분리되지 않는다.

코인[편집]

이더리움 네트워크에서 이더는 자유롭게 거래된다. 이더는 모든 종류의 거래에 사용되는 토큰이나 암호화폐로 간주한다. 이더리움 네트워크에는 이더와 교환 가치에 기반해 사용되는 다른 토큰들도 존재한다. 이더리움 블록체인에서 또 다른 토큰을 실행하려면 ERC-20이라고 불리는 스마트 계약에서 코드나 기술 표준을 설정해야 한다.[4]

다른 이더리움 표준[편집]

ERC-223[편집]

ERC-223은 ERC-20의 토큰 표준 개선이다. 대부분의 사람은 ERC-20 표준에 지갑과 유사한 방식으로 스마트 계약서로 전송된 모든 전송이 유실될 수 있는 주요 결함이 있음을 알지 못한다. 즉, 트랜잭션이 무효로 등록되는 대신 토큰이 사라지고 회복할 수 없게 된다.[3] 이더리움 커뮤니티가 ERC-20에 있는 결정, 즉, 토큰들이 우연히 사라질 수 있는 오류에 대해 손 놓고 있는 것은 아니다. 그럼에도 많은 디앱 프로젝트들이 ERC-20을 수행했기 때문에 토큰들이 사라졌다. 손실이 70만 달러에서 100만 달러 정도로 추정이 가능하다. ERC-223은 토큰 스마트 계약에서 직접 보냈을 때 토큰 손실이 될 수 있다는 ERC-20의 문제를 수정한 것이다. ERC-223의 또 다른 혜택은 본질적으로 토큰들이 스마트 계약에서 한 번에 다른 지갑으로 보내질 수 있도록 지원한다. 이 기능 때문에 지갑은 원장 업데이트를 위해 토큰 스마트 계약을 필요로 하지 않는다. 이 새로운 기능에 따른 부산물은 두 개가 아니라 하나의 기능을 확인하는 것이기 때문에 가스비가 절반 정도밖에 안 된다는 것이다. 가스비는 소액 결제로 스마트 계약이나 간단한 거래를 실행할 때 필요하다. 거래를 실행할 때마다 이더리움 네트워크 채굴자들에게 보상을 주기 위해 지불하는 소액 수수료 개념이다.[4]

ERC-777[편집]

ERC-20의 버그를 위한 또 다른 해결책이 2017년 11월 20일에 제안됐다. 이더리움 커뮤니티에는 ERC-777로 제출됐고, ERC-20에 대한 해결책이면서 ERC-223과 같이 고유의 혜택도 제공한다. ERC-777은 ERC-820의 기능을 가져와 모든 사람에게 스마트 계약 주소를 볼 수 있게 하고, 그것들의 기능을 체크할 수 있게 한다. 그리고 이를 트랜잭션이나 요구된 액션들을 검증하는 데 사용한다. ERC-20의 간단한 전송과 확인에서, ERC-777의 보내기 기능으로 본질을 바꾸면서, 토큰과 스마트 계약 그 자체로 더욱 많은 것들을 할 수 있게 된다. 새로운 기능으로 ERC-777은 실행하려는 행동들의 본성을 체크하고 액션을 실행할지 말지 결론을 내릴 수 있다. 그러나 아쉽게도 ERC-777은 당장 ERC-20을 사용하는 모든 프로젝트에 적용되는 것은 아니다. 하지만 전체적인 이더리움 커뮤니티 합의는, 결과적으로 시간이 걸리겠지만, 결국 ERC-777은 수행될 것이다.[4]

ERC-721[편집]

ERC-721은 NFT(Non-Fungible Token)이다. ERC-721은 개발자들이나 복수의 소유자들 사이에서 공유될 수 없는 토큰을 개발할 수 있게 한다. 개별적인 각각의 NFT를 위한 기능과 상태를 포함하게 해준다. ERC-721 기능은 디앱 게임들에 광범위하게 적용됐다. 캐릭터나 아이템을 나타내기 위해 NTF를 구현한 게임들이 있다. 대표적인 사례가 이더몬이다. [4] ERC-721은 본질적으로 토큰이 디앱 내에서 공유될 수 있고 미래 NFT 생성에 영향을 미칠 수 있는 수집물이 되도록 한다. NFT는 무제한으로 공급이 가능하다. 하지만 NFT의 가치가 떨어지지 않게 하려고 대부분의 디앱 프로젝트는 전체 공급량을 제한한다.[4]

  • 이더몬 : 각각의 이더몬은 ERC-721의 기능을 수행하는 NFT다. 플레이어들은 서로 자신들의 이더몬을 거래할 수 있고, 이더몬의 한 조작을 공유할 수는 없다. 누군가가 다른 사람에게 전송할 경우에 전체 NFT로서만 전송이 가능하다. 반면, 게임에서 플레이어들은 그들의 이더몬을 훈련하고 싸우게 할 수 있다. 이것은 이더몬의 상태를 늘리거나 줄이는 결과로 이어진다. 게임에서 육성 기능의 경우 새로운 이더몬이 생성됐을 때 새 NTF가 이더리움 네트워크에 생성된다. 소유권은 자동적으로 액션을 요구한 개인에게 돌아간다.[4]

ERC-998[편집]

ERC-998은 ERC-721과 함께 사용되는 기술로 플레이어들이 모든 통계와 항목 및 토큰을 포함한 전체 캐릭터를 한 번에 전송할 수 있게 한다.[4]

사례[편집]

선거 캠페인 자원봉사자 지급 사례[편집]

플로리다 의회 선거의 후보가 자신의 캠페인 자원봉사자에게 토큰을 지급할 예정이다. 2019년 07월 10일 블록체인 전문 매체 코인데스크에 따르면, 플로리다주 22구역에 무소속으로 출마한 오마르 레이예스는 "잠재적 자원봉사자와 우리의 암호화폐 실험에 참여하고자 하는 유권자에게 토큰을 배분하려 한다. 연방 선거위원회(FEC)의 승인을 구하고 있다."고 밝혔다. FEC는 이 같은 토큰이 여러 유형의 선거 기념품과 유사해 연방 법령을 위배하지 않는다고 입장을 밝혔다. ERC-20 규격에 맞춰 생성된 토큰 OMR은 다음과 같이 활용된다. 오마르 레이예스 캠프가 선거 당국에 보낸 서한에 따르면 Omar2020 위원회는 총 1,000만 개의 OMR 토큰을 발생한다. 이 토큰은 금전적 가치를 지니지 않고 마치 기념품 혹은 점수와 같은 기능을 갖는다. 암호화폐 튜토리얼 이벤트에 참여하면 1ORM, 이벤트에 등록하면 10ORM을 지급하는 방식으로 토큰을 활용한다. 캠페인 자원봉사자로 등록하면 50ORM이 지급되고, 다른 자원봉사자를 추천할 때마다 75ORM이 주어진다. 메일링 리스트에 등록하거나 캠페인 이벤트에 참석해도 각각 다른 규모의 ORM이 사람들에게 배포된다. 이처럼 ORM을 지급한 후 선거 캠페인 막바지에 캠프는 많은 ORM을 보유한 사람에게 보상을 지급할 예정이다.[5]

문제점[편집]

스마트 계약 결제 수단으로 ERC-20 토큰을 사용할 경우 토큰이 파괴되는 현상이 나타난다.[2]ERC-20 토큰은 다른 이더리움 주소 사이에서 이동할 수 있다. 그러나 이더리움 블록체인의 일반적인 에테르 거래는 근본적으로 다르다. 트랜잭션 양 및 추가 정보에 대한 트랜잭션 필드, 정보 필드의 필드를 포함하는 이더넷을 전송한다. 그러나 토큰 트랜잭션에서 보낼 토큰 수에 대한 정보는 두 번째 필드에 있다. 따라서 양쪽의 당사자의 주소 간에 전송이 가능하지만 다른 스마트 계약 기능의 트리거로 토큰을 사용하면 작동하지 않는다. 사용자가 트랜잭션을 스마트 계약으로 보내고 스마트 계약이 인식되지 않으면 트랜잭션의 에테르가 영구적으로 손실된다.[6] 이더로만 결제해야 하는 버그가 존재하게 되었다. 현재까지 이 버그 때문에 약 3백만 달러어치의 토큰이 사라져버렸다.[2]

각주[편집]

  1. 김승현 기자, 〈'코린이 상식백과' 가깝지만 생소한 그대, 'ERC-20'〉, 《데일리토큰》, 2019-02-11
  2. 2.0 2.1 2.2 CyClean, 〈ERC-20토큰이라는 건 정확히 무엇일까요?〉, 《미디엄》, 2018-09-17
  3. 3.0 3.1 이더리움, 〈ERC-20, ERC-223, ERC-721 및 ERC-777 Ethereum (ETH) 토큰 유형〉, 《코인뉴스텔레그래피》, 2018-04-08
  4. 4.0 4.1 4.2 4.3 4.4 4.5 4.6 황치규, 〈ERC20은 뭐고 777은 뭐지? ERC토큰의 모든것〉, 《브런치》, 2018-11-30
  5. 심두보 기자, 〈미국 정치인이 ERC-20 토큰을 선거에 활용하는 방법〉, 《디센터》, 2019-07-11
  6. 에테르, 〈ERC777 – 새로운 토큰 표준이 ERC20을 대체합니까?〉, 《블록체인뉴스》, 2019-04-17

참고자료[편집]

같이 보기[편집]


  검수요청.png검수요청.png 이 ERC-20 문서는 블록체인 기술에 관한 글로서 검토가 필요합니다. 위키 문서는 누구든지 자유롭게 편집할 수 있습니다. [편집]을 눌러 문서 내용을 검토·수정해 주세요.