본문으로 건너뛰기
0%

ERC-20 토큰과 Solidity 완벽 가이드 (2025)

작성자 Turja

2022년 10월 4일에 게시됨3분 읽기

Ethereum 생태계에는 스마트 컨트랙트의 생성부터 배포까지의 기능을 나타내는 다양한 표준이 존재한다. 가장 일반적인 표준으로는 ERC-20, ERC-721, ERC-777, ERC-1155가 있으며 각각 고유한 목적을 갖는다.

이 글에서는 ERC-20 토큰을 정의하고 그 용도 몇 가지를 소개하며, 개발자가 이 표준을 준수하기 위해 사용해야 하는 Solidity 프로그래밍 언어의 필수 함수 일부를 설명한다. Solidity를 사용해 직접 ERC-20 토큰을 만들고자 한다면, 이 글에서 다루는 가이드라인과 정의를 통해 그 방법을 더 잘 이해할 수 있을 것이다.

ERC-20 토큰이란?

ERC-20은 Ethereum 또는 EVM 호환 블록체인과 호환되는 대체 가능한(fungible) 암호화폐 토큰 표준이다. 이는 블록체인 상에서 무엇이든 나타낼 수 있는 디지털 자산 역할을 하며, 이를 통해 다양한 사용 사례에 유연하게 대응할 수 있다.

이 사전 정의된 스마트 컨트랙트는 개발을 위한 기술 표준으로 사용될 수 있는 특정 인터페이스를 포함한다. 개발자는 ERC-20 토큰과 이에 연관된 토큰 규칙을 활용해 더 쉬운 개발 경험을 얻을 수 있다. Uniswap이나 SushiSwap 같은 인기 있는 탈중앙화 거래소 프로토콜들은 모두 ERC-20 토큰 표준을 자신들의 생태계에 매끄럽게 통합하기 위한 구성 요소로 활용하고 있다.

ERC-20 토큰은 어떻게 사용되는가?

ERC-20 토큰은 무엇을 나타낼지에 제약이 없기 때문에 일반적인 암호화폐(예: ETH)를 넘어서는 범위까지 확장될 수 있다. 요구 사항으로서 ERC-20 자산은 대체 가능하고 전송 가능하며, 최대 공급량으로 제한될 수 있다. 이는 리워드, 실물 자산, 회사 지분 등을 만들 때 유용하다.

토큰 개발을 표준화하기 위해 설계된 ERC-20 토큰은 Ethereum 블록체인 상의 어떤 대체 가능 자산이든 나타낼 수 있다. 특정 자산을 나타내는 몇 가지 변수(예: 이름, 심볼, 공급량)만 제공하면 누구나 표준 동작과 인터페이스를 갖춘 ERC20 토큰을 발행할 수 있다.

ERC-20 토큰은 각 토큰이 다른 토큰과 정확히 동등하다는 점에서 대체 가능하다. 개별 토큰에 특별한 권리나 동작이 부여되지 않기 때문에, ERC-20 토큰 간의 이러한 가치의 동등성은 교환 수단, 화폐, 투표권, 스테이킹 등의 응용에 유용하다.

ERC-20 토큰 표준은 왜 중요한가?

ERC-20 토큰 표준은 대체 가능 토큰에 대한 특정 접근 방식을 도입하여 모든 토큰이 유사한 속성을 공유하도록 보장한다.

2015년에 제안된 이후, ERC-20 토큰 표준의 개발 덕분에 다른 프로토콜, 플랫폼, 개발자들은 새로운 토큰마다 별도의 로직을 만들 필요 없이 이 표준을 따르는 어떤 토큰이든 사용할 수 있는 스마트 컨트랙트를 만들 수 있게 되었다. 스마트 컨트랙트의 표준화는 개발 과정을 개선하며, 이는 결과적으로 전체 암호화폐 생태계에 큰 이익을 가져다준다.

모든 ERC-20 토큰에 필수적인 Solidity 함수는 무엇인가?

ERC-20 표준에는 표준의 모든 구현체에 반드시 존재해야 하는 메서드와 이벤트 집합이 포함되어 있으며, 여기에는 가치를 전송하는 메서드, 주소별 잔액을 조회하는 메서드, 기타 메타데이터를 가져오는 메서드가 포함된다.

Solidity 언어의 세부 사항에 대한 이해와 Ethereum 상에서 ERC-20 토큰을 생성하는 함수 사용법에 대한 실질적인 지식은 Solidity 개발자로 성장하는 과정을 앞당길 수 있다.

1. totalSupply

totalSupply 메서드는 현재 유통 중인 토큰의 총 공급량을 나타낸다. 예시는 다음과 같다:

2. balanceOf

balanceOf 메서드는 특정 지갑 주소가 보유한 토큰의 수를 계산한다. 예시는 다음과 같다:

3. Transfer

transfer 메서드는 한 주소에서 다른 주소로 토큰을 전송하며, 이때 발신자는 트랜잭션의 출처가 된다. 예시는 다음과 같다:

4. Approve

approve 메서드는 다른 주소가 자신을 대신하여 토큰을 사용할 수 있도록 허용한다. 이는 자신의 토큰에 접근이 필요한 스마트 컨트랙트와 상호작용할 때 유용하다. approve 메서드의 대표적인 사용 사례는 탈중앙화 거래소이다. 예시는 다음과 같다:

5. transferFrom

transferFrom 메서드는 approve 메서드와 함께 사용할 때 유용하다. 누군가에게 자신의 토큰 사용을 승인하면, 그 사람은 트랜잭션의 일부로 자신의 계정에서 다른 계정으로 토큰을 _transferFrom_할 수 있다. 대표적인 사용 사례는 탈중앙화 거래소이다. 예시는 다음과 같다:

6. Allowance

allowance 메서드는 한 주소가 다른 주소를 대신하여 사용할 수 있는 금액을 나타낸다. 예시는 다음과 같다:

모든 ERC-20 토큰에 선택적인 Solidity 함수는 무엇인가?

이름(name), 심볼(symbol), 소수점 자릿수(decimals)는 모두 ERC-20 토큰 컨트랙트의 기본 인터페이스에 대한 확장 역할을 하는 선택적 함수이다. 이 함수들은 필수는 아니지만 컨트랙트의 목적을 이해하는 데 도움이 되는 추가 정보를 제공한다. 이 핵심 인터페이스는 스마트 컨트랙트에 대한 추가적인 커스터마이징과 확장의 기반이 될 수 있다.

1. Name

name은 컨트랙트의 목적을 나타내는 사람이 읽을 수 있는 이름이다. 예시는 다음과 같다:

2. Symbol

symbol은 토큰을 나타내는 데 사용할 수 있는, 사람이 읽을 수 있는 티커이다. ETH, BTC 등과 유사하다. 예시는 다음과 같다:

3. Decimals

decimals는 해당 화폐의 최소 단위의 소수점 자릿수를 정의한다. 가장 일반적인 값은 18이며, 이는 ether와 동일한 단위이다(ether의 최소 단위는 wei이며, 1 ether는 1e18 wei이다).

ERC-20 데이터 구조는 무엇인가?

잔액 테이블, 허용량(allowance) 테이블과 같은 ERC-20 데이터 구조는 블록체인 상의 연산을 조직화하고 구현하는 데 도움을 준다.

Balances

토큰 잔액에 대한 내부 테이블은 지갑 주소별 전체 소유량을 추적하는 데 사용된다. 각 전송은 한 잔액에서의 차감과 다른 잔액으로의 추가로 이루어진다.

Allowances

토큰 허용량에 대한 내부 테이블은 지갑 주소가 위임한 지출 권한을 추적하는 데 사용된다. 중첩 매핑(nested mapping)을 사용하며, 기본 키는 토큰 소유자의 주소로, 이는 소비자(spender) 주소에 매핑되어 위임된 지출 가능 금액을 제공한다.

Alchemy로 개발 시작하기

ERC-20 표준은 Ethereum 생태계에서 등장한 가장 중요한 표준으로, 가장 중요한 스마트 컨트랙트 프로토콜 전반에서 널리 채택되어 사용되고 있다. 개발자라면 이 표준을 이해하는 데 시간을 투자하고 직접 ERC-20 토큰을 배포해보는 것을 강력히 권장한다.

ERC-20 토큰과 그 외 Solidity 프로그래밍 기초에 대해 배우려면, Alchemy University의 Ethereum Developer Bootcamp에 자리를 확보하라.

Background gradient

블록체인 매직을 만드세요

Alchemy는 가장 강력한 Web3 개발자 제품 및 도구를 리소스, 커뮤니티, 그리고 전설적인 지원과 결합합니다.