ERC-20 토큰이란 무엇입니까: 이더리움 토큰 표준에 대한 전체 가이드(2026)

— By Tony Rabbit in Tutorials

ERC-20 토큰이란 무엇입니까: 이더리움 토큰 표준에 대한 전체 가이드(2026)

ERC-20 토큰이란 무엇입니까? 이더리움 토큰 표준에 대한 전체 가이드: 6가지 필수 기능, 상위 토큰, MetaMask 가져오기, 보안(승인/취소) 및 BEP-20 차이점(2026).

이더리움에 토큰을 보유하고 분산형 거래소에서 거래한 적이 있다면 스테이블코인 USDC와 같거나 DeFi 프로토콜과 상호작용하는 경우 ERC-20 토큰을 사용했습니다. 이 단일 표준은 기본 블록체인 코인이 아닌 모든 암호화폐 자산의 대부분을 지원합니다. Tether 및 Chainlink에서 Uniswap 및 Shiba Inu에 이르기까지 Ethereum에서 이름을 지정할 수 있는 거의 모든 토큰은 ERC-20 사양과 같은 동일한 규칙 세트를 따릅니다.

ERC-20은 대체 가능한 토큰이 내부에서 어떻게 작동해야 하는지를 정의하는 기술 표준입니다. 스마트 계약 이더리움. 이는 모든 지갑, 거래소 및 DeFi 프로토콜에 토큰이 노출해야 하는 기능, 방출해야 하는 이벤트, 전송 작동 방식을 정확하게 알려줍니다. 이러한 예측 가능성은 MetaMask가 토큰 잔액을 보여줄 수 있는 이유, Uniswap이 몇 분 만에 새 토큰을 나열할 수 있는 이유, 개발자가 맞춤형 통합 코드를 작성하지 않고도 호환 자산 위에 복잡한 금융 기본 요소를 구축할 수 있는 이유입니다.

이 가이드에서는 기술 수준에서 ERC-20이 실제로 무엇인지, 필수 기능과 선택 기능의 차이점, DeFi를 지원하는 유명한 승인 및 전송 패턴, Etherscan에서 ERC-20 계약을 식별하는 방법, ERC-721 및 ERC-1155와 같은 다른 토큰 표준과 비교하는 방법, MetaMask에 맞춤형 토큰을 추가하는 방법, 승인 시 알아야 할 위험에 대해 알아봅니다. 승인. 결국 당신은 토큰 계약을 읽고, 안전성을 평가하고, 2026년 전체 이더리움 생태계에서 자신있게 사용할 수 있을 만큼 표준을 잘 이해하게 될 것입니다.

Etherscan token tracker page showing ERC-20 contract details for a popular Ethereum token with holder count and transfers
ERC-20 계약 세부정보, 보유자 및 전송 내역을 표시하는 Etherscan 토큰 추적기입니다.

ERC-20 토큰이란 무엇입니까?

ERC-20은 Ethereum Request for Comments, 20번을 의미합니다. 이는 Ethereum에서 토큰이 작동하는 방식을 표준화하는 방법으로 개발자 Fabian Vogelsteller가 2015년 11월에 제안한 것입니다. ERC-20이 존재하기 전에는 이더리움의 모든 토큰이 다르게 구현되었습니다. 즉, 지갑, 거래소 및 기타 계약이 각각 상호 작용하려면 사용자 정의 코드를 작성해야 했습니다. 그 결과 조각화, 버그 및 상호 운용성에 대한 주요 장벽이 발생했습니다.

Vogelsteller의 제안은 결국 EIP-20(Ethereum Improvement Proposal 20)이 되었고 2017년 9월에 최종 확정되었습니다. 공식적인 명칭은 EIP-20임에도 불구하고 "ERC"라는 이름이 붙어 있습니다. 표준은 의도적으로 최소화되었습니다. 이는 대체 가능한 토큰 계약이 구현해야 하는 일련의 기능과 이벤트를 정의하지만 기본 논리는 개발자에게 맡깁니다. 이는 ERC-20 토큰이 표준 인터페이스를 노출하는 한 고정 공급, 발행 가능한 공급, 소각 메커니즘, 전송에 대한 세금 또는 기타 사용자 정의 동작을 가질 수 있음을 의미합니다.

본질적으로 ERC-20 계약은 잔액 원장을 유지하는 스마트 계약입니다. 계약 내부에는 각 주소가 소유한 토큰 수를 저장하는 매핑(키-값 테이블)이 있습니다. ERC-20 토큰을 누군가에게 "보내는" 것은 실제로 어떤 객체도 전송하는 것이 아닙니다. 귀하는 귀하의 잔액을 일정 금액만큼 줄이고 수령인의 잔액을 같은 금액만큼 늘리는 토큰 계약의 함수를 호출하고 있습니다. 토큰은 계약을 떠나지 않습니다. 계약은 단순히 내부 원장을 업데이트합니다.

이것은 이해해야 할 기본 개념입니다. 달리 ETH 또는 BTC와 같은 코인, ERC-20 토큰은 의미 있는 의미로 지갑에 저장되지 않습니다. 귀하의 지갑은 귀하의 주소에 잔액이 있는 것으로 기록된 토큰 계약을 추적합니다. 토큰 계약이 파기된 경우(특정 관리 기능에서 가능) 개인 키가 유효하더라도 토큰은 사실상 사라집니다.

토큰 표준이 중요한 이유

ERC-20이 암호화폐 역사상 가장 중요한 표준 중 하나가 된 이유는 상호 운용성입니다. 모든 호환 토큰은 동일한 6가지 기능을 노출하고 동일한 2가지 이벤트를 발생시키기 때문에 지갑, 거래소, 오라클, 인덱서 또는 DeFi 프로토콜은 해당 토큰에 대한 사전 지식 없이도 ERC-20 토큰과 상호 작용할 수 있습니다. Uniswap은 특정 토큰이 내부적으로 무엇을 하는지 알 필요가 없습니다. 계약 주소만 알면 바로 호출이 가능합니다. transferFrom() 스왑 중에 토큰을 이동합니다.

이 표준화는 2020년부터 분산형 금융의 폭발적인 증가를 가능하게 했습니다. Aave 및 Complex와 같은 대출 프로토콜은 모두 인터페이스 수준에서 동일한 방식으로 작동하기 때문에 수천 개의 서로 다른 토큰과 함께 작동합니다. 토큰경제학 그리고 새로운 토큰을 배포하려면 전투 테스트를 거친 코드만 복사하면 되기 때문에 경제적 실험을 실행하는 것이 저렴해졌습니다. 블록 탐색기, 포트폴리오 추적기, 세금 소프트웨어 및 분석 대시보드는 모두 동일한 표준화된 이벤트를 수신하여 ERC-20 토큰을 자동으로 색인화할 수 있습니다.

토큰 표준이 없었다면 우리가 알고 있는 이더리움 생태계는 존재하지 않았을 것입니다. 각 토큰에는 맞춤형 지갑 통합이 필요하고, 각 DEX에는 자산당 맞춤형 코드가 필요하며, 새 프로젝트를 시작하는 데 따른 마찰은 엄청날 것입니다. ERC-20은 6개의 필수 기능과 2개의 필수 이벤트라는 매우 간단한 인터페이스로 이 문제를 해결했습니다.

6가지 필수 ERC-20 기능

ERC-20 사양은 모든 호환 토큰 계약이 구현해야 하는 6가지 기능을 정의합니다. 이러한 함수는 모든 외부 코드와 상호 작용하는 공용 인터페이스입니다. 계약에 이들 중 하나라도 누락된 경우 기술적으로 ERC-20을 준수하지 않으며 많은 지갑이나 프로토콜이 해당 계약의 작동을 거부할 수 있습니다.

기능 1
총공급()

현재 존재하는 총 토큰 수를 반환합니다. 탐험가, 시가총액 계산기, 감사 도구에서 사용됩니다.

기능 2
BalanceOf(주소)

특정 이더리움 주소에 대한 토큰 잔액을 반환합니다. 이것이 당신의 지갑이 당신이 보유하고 있는 토큰의 양을 아는 방법입니다.

기능 3
이체(대상, 금액)

특정 양의 토큰을 호출자의 주소에서 다른 주소로 직접 이동합니다. 가장 간단한 보내기 작업.

기능 4
승인(지출자, 금액)

다른 주소(종종 스마트 계약)를 승인하여 귀하를 대신하여 특정 금액까지 토큰을 지출할 수 있도록 합니다.

기능 5
수당(소유자, 지출자)

지출자가 소유자 잔액에서 인출할 수 있는 남은 금액을 반환합니다. 활성 승인을 추적하는 데 중요합니다.

기능 6
transferFrom(from, to, amount)

이전에 승인된 허용량을 사용하여 한 주소에서 다른 주소로 토큰을 이동합니다. 모든 DEX 스왑 및 DeFi 예금의 기초입니다.

처음 세 가지 기능은, totalSupply(), balanceOf()transfer()은 토큰 회계의 기본입니다. 누구나 공급량을 읽고, 잔고를 확인하고, 토큰을 직접 보낼 수 있습니다. ERC-20에 이 세 가지만 있었다면 이미 유용했을 것입니다. 그러나 우리가 알고 있는 DeFi는 불가능할 것입니다.

다음 세 가지 기능은, approve(), allowance()transferFrom(), 위임된 지출 패턴을 형성합니다. 이를 통해 사용자는 정의된 한도까지 지갑에서 토큰을 가져오도록 스마트 계약을 승인할 수 있습니다. 이것이 바로 토큰을 미리 보유하지 않고도 DEX, 대출 프로토콜, 스테이킹 계약 및 브릿지가 작동할 수 있게 하는 것입니다. 이 패턴은 대부분의 ERC-20 관련 보안 사고의 원인이기도 하기 때문에 나중에 자세히 살펴보겠습니다.

3가지 선택 함수: name(), 기호(), 소수()

ERC-20 사양에서는 6가지 필수 기능 외에도 3가지 선택 기능을 정의합니다. 규정 준수를 위해 기술적으로 요구되는 것은 아니지만 실제로는 지갑과 거래소가 표시 목적으로 이에 의존하기 때문에 모든 최신 토큰이 이를 구현합니다.

이름() "USD 코인" 또는 "체인링크 토큰"과 같이 사람이 읽을 수 있는 토큰 이름을 반환합니다. 이는 MetaMask 및 기타 지갑에서 볼 수 있는 문자열입니다. 기호() 은 "USDC" 또는 "LINK"와 같은 짧은 티커를 반환하며 일반적으로 3~5자입니다. 소수() 은 토큰이 사용하는 소수 자릿수를 반환합니다. 이는 계약이 내부적으로 저장하는 정수 값과 프런트 엔드에 표시되는 사람이 읽을 수 있는 양 사이를 변환하는 방법입니다.

십진법 함수는 자주 혼동되는 원인이므로 더 깊이 설명할 가치가 있습니다. Ethereum 스마트 계약은 기본적으로 분수를 처리할 수 없습니다. 모든 잔액은 정수로 저장됩니다. 분수를 표현하기 위해 ERC-20 토큰은 소수 값으로 정의된 승수를 사용합니다. 이더리움 규칙은 ETH 자체가 wei에서 사용하는 것과 동일한 십진수 18자리입니다. 따라서 1 LINK의 잔액이 표시되면 계약은 실제로 정수 1,000,000,000,000,000,000을 저장합니다. 귀하의 지갑은 표시되기 전에 10의 18승으로 나눕니다.

모든 토큰이 소수점 18자리를 사용하는 것은 아닙니다. 예를 들어 USDC와 USDT는 미국 달러에 고정되어 있고 극도의 정밀도가 필요하지 않기 때문에 소수점 6자리만 사용합니다. WBTC는 비트코인의 사토시 정밀도와 일치시키기 위해 소수점 8자리를 사용합니다. 일부 실험용 토큰은 소수점 이하 0자리를 사용하여 나눌 수 없게 만듭니다. 이것이 바로 원시 토큰 잔액을 계산하기 전에 항상 소수점 값을 확인하는 것이 중요한 이유입니다. 초기 DeFi의 일반적인 버그는 실제 토큰이 6 또는 8을 사용할 때 소수점 이하 18자리를 가정하여 전송이 1,000억 개 이상 지연되는 것이었습니다.

ERC-20 이벤트: 전송 및 승인

함수는 외부 코드가 계약을 호출하는 방식입니다. 이벤트는 계약이 어떤 일이 발생했음을 외부 세계에 알리는 방법입니다. ERC-20 표준은 모든 토큰이 내보내야 하는 두 가지 필수 이벤트를 정의합니다. 이러한 이벤트는 블록 탐색기, 인덱서 및 분석 도구가 토큰 활동을 추적하는 방법의 기초입니다.

첫 번째는 event Transfer, 발행(0 주소에서) 및 소각(0 주소로)을 포함하여 토큰이 두 주소 사이를 이동할 때마다 방출됩니다. 토큰 전체 기록의 모든 전송은 이러한 로그에 의해 캡처되며, 이것이 바로 Etherscan과 DexTools가 전체 블록체인을 크롤링할 필요 없이 모든 ERC-20 토큰에 대한 전체 전송 기록을 표시할 수 있는 방법입니다. 그들은 단순히 각 토큰 계약의 전송 이벤트를 구독하고 이를 인덱싱 가능한 데이터베이스에 저장합니다.

두 번째는 event Approval, 소유자가 승인 기능을 통해 지출자를 승인할 때마다 발생합니다. Revoke.cash, Etherscan의 토큰 승인 검사기 및 다양한 지갑 보안 확장과 같은 도구는 모두 이러한 이벤트를 사용하여 현재 토큰을 사용할 권한이 있는 계약의 전체 목록을 표시합니다. 표준화된 이벤트가 없으면 이러한 종류의 프로토콜 간 모니터링은 불가능합니다.

이 이벤트 중심 아키텍처에는 아름다운 부작용이 있습니다. 이벤트는 온체인으로 방출되고 거래 영수증에 저장되기 때문에 영구적이고 투명하며 암호화 방식으로 검증 가능합니다. 모든 분석 도구는 계약 배포 블록의 이벤트를 재생하여 토큰의 전체 기록을 독립적으로 재구성할 수 있습니다. 이는 퍼블릭 블록체인의 과소평가된 초능력 중 하나이며, 그 위에 구축된 표준입니다.

MetaMask wallet interface showing custom ERC-20 token import flow with contract address symbol and decimals fields
계약 주소, 기호 및 소수점이 포함된 맞춤형 토큰 가져오기 화면을 보여주는 MetaMask 지갑.

승인() / transferFrom() 패턴

ERC-20에 대해 딱 한 가지만 깊게 배운다면 이 패턴으로 만들어보세요. 승인 및 전송 흐름은 DeFi가 존재할 수 있도록 하며, 부주의하게 사용될 경우 대부분의 지갑 유출 및 승인 악용을 유발하는 원인이기도 합니다.

패턴이 해결하는 문제는 이것이다. 스마트 계약은 지갑에 접근하여 토큰을 가져갈 수 없습니다. 허가가 필요합니다. 하지만 계약에 토큰을 보내고 계약이 어떻게 해야 할지 알 것이라고 기대할 수도 없습니다. transfer() 함수는 콜백을 실행하지 않거나 자금이 도착했음을 수신자에게 알리지 않습니다. 해결책은 2단계 위임 인증 모델입니다.

1단계에서 사용자는 approve() 토큰 계약에서 특정 지출자(종종 DEX 라우터 또는 대출 풀)에게 정의된 토큰 금액까지 지출할 수 있는 권리를 부여합니다. 이것은 MetaMask가 첫 번째 스왑 전에 새 토큰을 승인하도록 요청할 때 서명하는 것입니다. 2단계에서 실제로 스왑을 트리거하면 DEX 계약이 호출됩니다. transferFrom() 토큰 컨트랙트에서 허용량을 확인하고 DEX가 필요한 곳으로 토큰을 한 번의 원자 트랜잭션으로 이동합니다. 이 서명 단계에 대한 자세한 내용은 다음 내용에 대한 심층 분석을 읽어보세요. 승인 거래.

// 1단계: 사용자는 DEX 라우터가 최대 1000 USDC를 지출하도록 승인합니다.
USDC.승인(uniswapRouter, 1000 * 10**6);
// 2단계: 사용자가 교환을 트리거합니다. 라우터는 transferFrom을 통해 토큰을 가져옵니다.
uniswapRouter.swapExactTokensForTokens(금액, ...);
// 내부적으로 라우터는 다음을 실행합니다.
USDC.환승에서(사용자, 풀, amountIn);
// 토큰 컨트랙트는 허용량[user][router] >= amountIn을 확인합니다.
// 해당 허용량을 줄이고 잔액을 풀로 옮깁니다.
⚠ 보안 참고 사항: 많은 DEX는 향후 스왑 시 가스를 절약하기 위해 무제한 승인(2^256 - 1)을 요청합니다. 지출 계약이 악용되는 경우 해당 유형의 지갑에 있는 모든 토큰이 추가 동의 없이 유출될 수 있습니다. 항상 승인 금액을 검토하고 오래된 승인을 취소하십시오.

이 패턴은 인증과 실행을 분리하므로 우아합니다. 한 번 승인하면 해당 허용량이 완전히 소비되거나 취소될 때까지 해당 허용량에 대해 원하는 만큼의 작업이 발생할 수 있습니다. 또한 재사용이 가능합니다. 즉, 취소할 때까지 다음 스왑, 다음 대출 예금 등에 대해 동일한 승인이 적용됩니다. 위의 경고에서 언급한 것처럼 단점은 승인이 프로토콜 사용을 완전히 중단하더라도 명시적으로 취소할 때까지 지속되는 허가 전표라는 것입니다.

Etherscan에서 ERC-20 토큰을 식별하는 방법

Etherscan은 이더리움에서 가장 널리 사용되는 블록 탐색기이며 ERC-20 계약을 검사하기 위한 강력한 도구를 제공합니다. 토큰의 Etherscan 페이지를 읽는 방법을 아는 것은 밈 코인을 구입하든, 새로운 DeFi 출시를 조사하든, 포트폴리오를 감사하든 관계없이 새 토큰과 상호 작용하는 모든 사람에게 가장 귀중한 기술 중 하나입니다.

토큰 컨트랙트 주소를 Etherscan에 붙여넣으면 토큰 추적 페이지로 이동됩니다. 이 페이지에는 토큰 이름, 기호, 총 공급량, 보유자 수 및 총 전송량이 자동으로 표시되며, 이 모든 것은 Etherscan이 위에서 논의한 표준 ERC-20 기능 및 이벤트에서 파생됩니다. 페이지는 프로젝트 팀의 수동 개입 없이 ERC-20 계약을 준수하는 경우 자동으로 생성됩니다. 그것이 표준의 힘이다.

계약 탭에는 가장 유용한 정보가 있는 곳입니다. 개발자가 소스 코드를 검증했다면 실제 내용을 읽을 수 있습니다. Solidity 토큰의 동작을 정의하는 코드입니다. 표준은 각 기능 내에서 발생하는 일이 아니라 인터페이스만 적용하기 때문에 이는 매우 중요합니다. 토큰으로 구현할 수 있음 transfer() 10%의 세금을 징수하거나 특정 주소를 블랙리스트에 추가하거나 이체를 완전히 일시 중지하거나 더 나쁜 방식으로 진행됩니다. 확립되지 않은 토큰과 상호 작용하기 전에 항상 검증된 소스 코드를 확인하십시오.

계약 읽기 섹션을 사용하면 트랜잭션 없이 브라우저에서 직접 보기 기능을 호출할 수 있습니다. 총 공급량을 확인하고 주소의 잔액을 확인하거나 허용량을 쿼리할 수 있습니다. Write Contract 섹션에서는 지갑을 연결하면 상태 변경 기능을 호출할 수 있지만 대부분의 사용자는 직접보다는 DEX 또는 지갑 인터페이스를 통해 이를 트리거합니다. 보유자 탭에는 새 토큰을 구매하기 전에 집중 위험을 평가하는 데 필수적인 토큰 소유권 분포가 표시됩니다. 상위 10개 지갑이 공급량의 90%를 보유하고 있다면 이는 위험 신호입니다.

ERC-20과 기타 토큰 표준 비교

ERC-20은 가장 유명한 이더리움 토큰 표준이지만 유일한 표준은 아닙니다. 다양한 사용 사례에는 다양한 속성이 필요하며 Ethereum 커뮤니티는 관련 표준 제품군을 개발했습니다. 비교 방법을 이해하면 ERC-20이 무엇인지, 아닌지를 명확히 하는 데 도움이 됩니다.

표준 유형 사용 사례 예시
ERC-20 대체 가능 통화, 스테이블코인, 거버넌스, 유틸리티 토큰 USDC, UNI, LINK
ERC-721 대체 불가능 고유한 디지털 자산, 예술품, 수집품, 신원 크립토펑크스, BAYC
ERC-1155 멀티 토큰 단일 계약에 대체 가능 및 비 대체 가능 혼합 게임 아이템, 에디션
ERC-4626 토큰화된 볼트 수익률 자산 및 주식회계 그리움 볼트, sDAI

ERC-20 토큰은 대체 가능합니다. 즉, 모든 단위가 동일하고 상호 교환 가능하다는 의미입니다. 하나의 USDC는 다른 USDC와 동일합니다. ERC-721의 표준 NFT, 그 반대입니다. 각 토큰에는 고유한 ID와 고유한 속성이 있습니다. CryptoPunk는 상호 교환이 불가능하므로 명시적인 동의 없이 다른 CryptoPunk로 교체할 수 없습니다. ERC-1155는 단일 계약으로 대체 가능 토큰과 대체 불가능 토큰을 모두 관리할 수 있도록 하는 하이브리드로, 단일 계약으로 전설적인 검(대체 가능)과 함께 금화(대체 가능)를 처리할 수 있는 게임에서 특히 인기가 있습니다.

ERC-4626은 최신 표준 중 하나로 2022년에 확정되어 2024년까지 널리 채택되었습니다. ERC-20을 기반으로 구축된 래퍼 표준입니다. 4626 금고는 특정 ERC-20 토큰의 예금을 허용하고 기본 풀의 소유권을 나타내는 주식을 발행합니다. Yearn Finance 금고, MakerDAO의 sDAI 및 많은 대출 시장 영수증 토큰이 이 패턴을 따릅니다. 4626은 ERC-20에서 상속되기 때문에 모든 볼트 공유 자체는 완전히 양도 가능한 ERC-20 토큰입니다. 즉, 수익률이 있는 영수증을 Uniswap 풀에 넣고 다른 곳에서 담보로 사용할 수 있다는 의미입니다.

2026년 최고의 ERC-20 토큰

ERC-20 생태계에는 수만 개의 토큰이 포함되어 있지만 그 중 작은 세트가 대부분의 가치와 양에 집중되어 있습니다. 2026년에 알아야 할 가장 중요한 ERC-20 토큰은 다음과 같습니다.

USDC

Circle의 규제된 USD 스테이블코인, 현금과 단기 국고로 1:1로 보장됩니다.

USDT

일일 거래량 기준으로 세계에서 가장 많이 거래되는 스테이블 코인인 테더.

다이

MakerDAO의 분산형 스테이블 코인으로, 담보 부채 포지션을 통해 USD에 소프트 고정됩니다.

유니

Uniswap 거버넌스 토큰은 수수료 전환 및 프로토콜 업그레이드를 제어합니다.

AAVE

Aave 프로토콜 거버넌스는 안전 모듈의 스테이킹에도 사용됩니다.

링크

DeFi 전반에 걸쳐 가격 피드의 백본인 Chainlink oracle 네트워크 토큰입니다.

SHIB

시바견은 시가총액과 보유자 수 기준으로 가장 큰 밈 코인 중 하나입니다.

페페

개구리 테마 밈 토큰은 2023년에 출시되었으며 현재 이더리움 밈 문화의 주력 제품입니다.

다양성에 주목하세요. USDC, USDT, DAI와 같은 스테이블코인은 온체인 결제의 핵심입니다. UNI 및 AAVE와 같은 거버넌스 토큰은 주요 프로토콜의 제어를 분산합니다. LINK는 중요한 인프라를 강화합니다. SHIB와 PEPE는 공식적인 유용성이 없는 토큰이라도 밈이 관심을 끌면 수십억 달러의 시가총액에 도달할 수 있음을 증명합니다. 이들 모두는 정확히 동일한 ERC-20 인터페이스를 사용하므로 맞춤 통합 없이 모두 MetaMask, Uniswap 및 DexTools에서 작동합니다.

MetaMask에 사용자 정의 ERC-20을 추가하는 방법

MetaMask는 가장 인기 있는 ERC-20 토큰을 자동으로 표시하지만, 새로운 토큰이나 덜 일반적인 토큰은 수동으로 가져와야 합니다. 단계를 알면 프로세스가 빨라지며 Ethereum 또는 EVM 호환 네트워크의 모든 호환 ERC-20에 대해 동일한 방식으로 작동합니다.

먼저 신뢰할 수 있는 출처에서 공식 계약 주소를 찾으세요. 토큰의 공식 웹사이트, 프로젝트의 검증된 Etherscan 페이지, DexTools 또는 CoinGecko는 모두 신뢰할 수 있습니다. 임의의 텔레그램 메시지나 트위터 응답에서 계약 주소를 복사하지 마십시오. 사기꾼들은 사용자가 잘못된 계약을 가져오고 자금을 잃을 것이라고 기대하면서 합법적인 토큰과 동일한 이름을 가진 가짜 토큰을 정기적으로 배포합니다.

다음으로 MetaMask를 열고 올바른 네트워크에 있는지 확인하세요. Ethereum 메인넷의 ERC-20 토큰은 Arbitrum, Base 또는 Polygon의 해당 토큰과 다른 계약입니다. 토큰 탭을 클릭한 다음 목록 하단에 있는 "토큰 가져오기"를 클릭하세요. 주소 필드에 계약 주소를 붙여넣습니다. MetaMask는 계약을 쿼리하여 기호와 소수점을 자동으로 채워야 합니다. 해당 필드가 비어 있으면 계약이 ERC-20을 완전히 준수하지 않을 수 있으며 이는 그 자체로 조사할 가치가 있는 경고 신호입니다.

가져오기를 확인하세요. 이제 토큰이 지갑의 토큰 목록에 나타나고, 현재 계약 상태에 따라 잔액이 표시됩니다. 토큰을 가져오더라도 잔액에는 영향을 미치지 않습니다. 토큰은 귀하의 주소 아래 계약에 이미 존재합니다. 가져오기는 MetaMask에게 어떤 계약을 쿼리하고 표시할지 알려줄 뿐입니다. 토큰은 애초에 MetaMask에 존재하지 않았기 때문에 아무것도 잃지 않고 언제든지 사용자 정의 토큰을 제거할 수 있습니다.

다른 체인의 ERC-20

ERC-20은 이더리움에서 시작되었지만 그 디자인은 매우 간단하고 유용하여 존재하는 모든 이더리움 가상 머신 호환 블록체인에 복사되었습니다. BNB 스마트 체인은 버전을 BEP-20이라고 부르지만 기능적으로는 동일하며 6가지 기능과 2가지 이벤트가 동일합니다. Polygon, Arbitrum, Optimism, Base, Avalanche C-Chain, Fantom 및 기타 수십 개의 EVM 체인은 모두 기본적으로 ERC-20 표준을 사용합니다.

USDC와 같은 토큰이 Ethereum, Arbitrum, Base, Polygon, Optimism, Avalanche 및 기타 여러 체인에 존재할 수 있는 이유입니다. 각 버전은 해당 체인에 있는 별도의 ERC-20 계약으로, 흔히 정식 이더리움 메인넷 계약과 연결되지만 그 외의 방식은 동일하게 작동합니다. MetaMask와 같은 지갑은 각 버전을 별도로 처리하므로 전송하기 전에 항상 토큰이 어떤 체인에 있는지 확인해야 합니다. 체인 전체에 걸쳐 토큰을 브리징하는 것은 완전히 다른 메커니즘을 사용하며, 종종 브리지 튜토리얼에서 다루는 잠금 및 민트 패턴을 포함합니다.

TRON 블록체인에는 USDT 버전도 있습니다. TRC-20, ERC-20과 유사한 목적을 제공하지만 기술적으로 호환되지 않습니다. TRON은 EVM 체인이 아니므로 스마트 계약은 다른 바이트코드와 ABI 규칙을 사용합니다. 결과적으로 USDT TRC-20과 USDT ERC-20은 상호 교환이 불가능합니다. TRC-20을 ERC-20 주소로(또는 그 반대로) 보내면 일반적으로 자금 손실이 발생합니다. 이러한 종류의 체인 간 혼란은 사용자가 암호화폐에서 돈을 잃는 가장 일반적인 방법 중 하나입니다.

보안: 승인 악용 및 이전 승인을 취소해야 하는 이유

승인 패턴은 ERC-20의 가장 강력한 기능 중 하나이자 가장 큰 보안 약점이기도 합니다. DEX를 교환하거나, 대출 프로토콜에 입금하거나, DeFi 스마트 계약과 상호작용할 때마다 해당 계약에 토큰 이동 권한을 부여하게 됩니다. 이러한 승인은 명시적으로 취소하지 않는 한 무기한 지속됩니다. 많은 사용자는 몇 년 전에 사용했던 프로토콜에서 수백 개의 승인을 잊어버렸습니다.

Revoke cash dashboard listing active ERC-20 token approvals across multiple Ethereum dapps with revoke buttons
여러 DeFi 프로토콜에 걸쳐 활성 ERC-20 승인을 보여주는 Revoke.cash 대시보드.
⚠ 중요한 보안 경고: 무한 승인

대부분의 DeFi 프로토콜은 향후 작업에 소요되는 가스를 절약하기 위해 가능한 최대 금액(2^256 - 1)에 대한 승인을 요청합니다. 나중에 프로토콜 계약이 악용되거나 해킹되거나 취약성이 포함되는 경우 공격자는 이를 승인한 모든 지갑에서 해당 유형의 모든 토큰을 빼낼 수 있습니다. 이런 일이 반복적으로 일어났습니다. 항상 주기적으로 기존 승인 취소 Revoke.cash 또는 Etherscan의 토큰 승인 검사기를 사용합니다.

좋은 소식은 승인 취소가 간단하다는 것입니다. Revoke.cash와 같은 도구는 모든 주요 EVM 체인에 걸쳐 지갑의 모든 활성 승인을 표시하며 한 번의 클릭으로 허용량을 0으로 재설정하는 트랜잭션을 보냅니다. 나쁜 소식은 취소에는 가스 비용이 들기 때문에 사용자는 너무 늦을 때까지 이를 무시하는 경향이 있다는 것입니다. 합리적인 습관은 특히 새롭거나 실험적인 프로토콜을 사용한 후에는 몇 달에 한 번씩 승인을 검토하고 완전히 신뢰하지 않는 프로토콜에 대해서는 무제한 금액을 승인하지 않는 것입니다.

승인 관련 위험의 두 번째 등급에는 피싱 서명 공격이 포함됩니다. EIP-2612 허가 확장(다음 섹션에서 다루겠습니다)을 통해 사용자는 온체인 거래 대신 오프체인 서명으로 토큰을 승인할 수 있습니다. 피싱 사이트는 사용자를 속여 무해해 보이지만 실제로는 공격자에게 토큰을 빼낼 수 있는 권한을 부여하는 허가서에 서명하도록 합니다. 항상 서명하는 내용을 읽고 "무료 청구" 또는 "지갑 확인" 프롬프트를 극도로 의심해 보십시오.

진화: ERC-777, ERC-1363, EIP-2612, ERC-4626

ERC-20은 의도적으로 최소화되었으며, 수년에 걸쳐 커뮤니티는 한계를 해결하기 위해 확장 기능을 개발해 왔습니다. 이들 중 어느 것도 ERC-20을 완전히 대체하지는 못했지만 모두 현대 이더리움 토큰 환경을 이해하는 데 중요한 맥락입니다.

ERC-777 는 보다 발전된 대체 가능 토큰 표준으로 2017년에 제안되었습니다. 계약이 들어오는 토큰에 반응할 수 있는 후크를 도입하여 두 단계 승인 및 전송이 필요하지 않습니다. 디자인은 우아했지만 결국 논란의 여지가 있었습니다. 재진입 후크는 순진한 DeFi 계약과 결합될 때 위험한 것으로 판명되었으며, ERC-777 토큰과 관련된 주목할만한 Uniswap V1 익스플로잇으로 인해 대부분의 주요 프로토콜이 777 토큰을 명시적으로 허용하지 않게 되었습니다. 결과적으로 입양은 결코 이루어지지 않았습니다.

ERC-1363 는 다음을 추가하는 지불 가능한 토큰 확장입니다. transferAndCall 함수를 사용하면 단일 거래로 토큰을 전송하고 수신 계약에 대한 작업을 실행할 수 있습니다. ERC-20은 위에 새로운 기능을 추가하기 때문에 이전 버전과 완벽하게 호환됩니다. 채택률은 미미했지만 최신 프로토콜에서는 증가하고 있습니다.

EIP-2612 온체인 거래 대신 오프체인 서명을 통해 승인을 부여하는 방법인 허가 기능을 도입했습니다. 이는 사용자가 지갑에서 메시지에 서명할 수 있고 제3자가 해당 서명을 실제 전송과 함께 토큰 계약에 제출할 수 있음을 의미합니다. 사용자는 승인을 위해 가스를 지불하지 않습니다. Permit은 DAI, USDC 등을 포함한 최신 토큰에서 널리 지원됩니다. 이는 편리하지만 사용자가 지갑에서 명확한 승인 거래를 볼 수 없기 때문에 위에서 언급한 피싱 벡터를 도입합니다.

ERC-4626 위에서 이미 다루었습니다. 이는 수익률을 지닌 금고가 주식을 발행하는 방식을 표준화하여 모든 금고를 모든 DeFi 프로토콜에 연결할 수 있도록 합니다. 입금, 출금, 발행, 상환, totalAssets, ConvertToShares 및 ConvertToAssets 기능은 모든 저장소에서 구현할 수 있는 통합 인터페이스를 형성합니다.

나만의 ERC-20 토큰 만들기

ERC-20 토큰을 생성하는 것은 스마트 계약을 전달하는 가장 쉬운 방법 중 하나입니다. OpenZeppelin 계약 라이브러리는 단 몇 줄의 Solidity로 확장할 수 있는 표준의 검증되고 감사된 구현을 제공합니다. Ethereum의 거의 모든 주요 토큰은 OpenZeppelin을 직접 사용하거나 OpenZeppelin에서 포크됩니다.

OpenZeppelin을 사용하는 최소 ERC-20 토큰은 대략 20줄의 코드입니다. ERC20 기본 계약에서 상속하고 생성자에서 토큰에 이름과 기호를 지정하고 선택적으로 배포자에게 초기 공급을 생성하면 작업이 완료됩니다. 선택적 확장에는 사용자가 자신의 토큰을 소각할 수 있는 ERC20Burnable, 최대 공급량을 적용하는 ERC20Capped, 긴급 일시 중지를 위한 ERC20Pausable, 체크포인트를 통한 거버넌스 지원 투표권 추적을 위한 ERC20Votes가 포함됩니다.

배포 워크플로는 일반적으로 Foundry, Hardhat 또는 Remix를 사용합니다. Foundry는 속도 때문에 진지한 개발자들이 선호하는 프레임워크로 떠올랐지만, Remix는 전적으로 브라우저에서 실행되기 때문에 초보자가 사용하기 가장 쉬운 진입점으로 남아 있습니다. 계약을 작성하고 컴파일한 후 대상 네트워크에 배포한 다음 모든 사람이 코드를 보고 읽을 수 있도록 Etherscan에서 소스 코드를 확인합니다. 검증은 신뢰 구축에 매우 중요합니다. 특히 유동성과 상장을 원하는 토큰의 경우 더욱 그렇습니다.

하지만 토큰 배포는 첫 번째 단계일 뿐입니다. 성공적인 토큰을 위해서는 DEX의 유동성, 커뮤니티, 명확한 설명, 이상적으로는 정직한 배포 관행이 필요합니다. 매달 수만 개의 토큰이 배포되며, 그 중 대다수는 의미 있는 거래량을 유치하지 못합니다. 강력한 토큰경제학, 투명한 베스팅, 고정된 유동성, 소유권 포기 등은 합법적인 팀이 사기와 사기로부터 자신을 구별하기 위해 사용하는 일반적인 신호입니다.

자주 묻는 질문

ERC-20은 무엇을 의미하나요?

ERC-20은 Ethereum Request for Comments, 20번을 의미합니다. 이는 Ethereum Request for Comments 프로세스에 따라 제출된 20번째 제안을 의미하며, 이는 Ethereum 프로토콜에 대한 기술 표준이 공식적으로 제안되고 논의되는 방식입니다. 표준은 결국 Ethereum Improvement Proposal 20 또는 EIP-20으로 공식화되었지만 ERC-20 이름은 일상적으로 사용되는 구어체 용어로 남아 있습니다.

USDC는 ERC-20 토큰인가요?

예, 이더리움 메인넷의 USDC는 ERC-20 토큰입니다. 계약 주소는 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48이며 2018년 출시 이후 ERC-20을 완전히 준수했습니다. USDC는 다른 많은 체인(Solana, Stellar 및 다양한 EVM 체인)에도 존재하지만 해당 버전은 로컬 토큰 표준이 적용되는 별도의 계약입니다. Ethereum 버전은 정식 ERC-20 USDC이며 전체 USDC 공급량의 큰 부분을 차지합니다.

ERC-20과 BEP-20의 차이점은 무엇인가요?

BEP-20은 BNB 스마트 체인의 토큰 표준입니다. 기능적으로는 동일한 기능 서명, 동일한 이벤트 및 동일한 승인 패턴을 사용하여 ERC-20과 본질적으로 동일합니다. 차이점은 기본 블록체인입니다. ERC-20은 이더리움에 존재하며 이더리움의 보안과 생태계의 혜택을 받는 반면, BEP-20은 BNB 스마트 체인에 존재하며 더 낮은 수수료와 더 빠른 블록의 혜택을 받습니다. USDT와 같은 토큰은 ERC-20 및 BEP-20 버전으로 존재하며 브리징 없이는 상호 교환이 불가능합니다.

나만의 ERC-20 토큰을 만들 수 있나요?

예, 누구나 OpenZeppelin과 같은 라이브러리를 사용하여 몇 줄의 Solidity만으로 ERC-20 토큰을 만들 수 있습니다. 배포 비용은 가스입니다(계약의 복잡성과 네트워크 조건에 따라 일반적으로 Ethereum 메인넷에서 20~수백 달러 정도). 그러나 토큰을 만드는 것은 쉬운 부분입니다. 실제 유틸리티를 구축하고, 보유자를 유치하고, DEX에 유동성을 제공하는 것은 토큰이 배포 이상의 가치를 갖는지 여부를 결정하는 더 어려운 과제입니다.

ERC-20 전송의 가스 비용은 얼마입니까?

이더리움 메인넷의 일반적인 ERC-20 전송 비용은 수신자가 이미 토큰 잔액을 갖고 있는 경우 약 65,000 가스 단위이고, 수신자가 새로운 주소인 경우 약 50,000 가스입니다(약간 더 높은 비용은 다른 역학으로 상쇄됩니다). 가스 가격이 20gwei인 경우 이는 전송당 대략 0.0013 ETH에 해당합니다. 실제 달러 비용은 전적으로 현재 ETH 가격과 네트워크 정체에 따라 달라집니다. Arbitrum 및 Base와 같은 레이어 2 롤업은 이러한 비용을 10배에서 100배까지 줄여줍니다.

ERC-20 토큰은 왜 소수점 이하 18자리를 사용합니까?

ETH 자체가 에테르의 100분의 1(10의 -18)인 wei로 표시되기 때문에 소수점 18자리가 관례입니다. 동일한 정밀도로 토큰을 정렬하면 스마트 계약에서 ETH와 토큰을 계산할 때 혼동을 피할 수 있습니다. 그러나 ERC-20은 소수점 이하 18자리를 강제하지 않습니다. USDC 및 USDT와 같은 스테이블코인은 달러에 고정되어 있고 극도의 정밀도가 필요하지 않기 때문에 소수점 6자리를 사용합니다. WBTC는 비트코인의 사토시 시스템을 반영하기 위해 소수점 8자리를 사용합니다. 원시 토큰 잔액에 대한 산술을 수행하기 전에 항상 소수점을 확인하십시오.

결론

ERC-20은 전체 암호화폐 경제의 알려지지 않은 영웅입니다. 믿을 수 없을 만큼 간단한 사양으로, 6개의 필수 기능과 2개의 필수 이벤트만 있으면 수조 달러의 토큰 발행, 전체 DeFi 생태계 및 기존 금융이 꿈꿀 수 있는 수준의 상호 운용성을 가능하게 했습니다. 모든 스테이블코인, 모든 거버넌스 토큰, 모든 밈 코인, 이더리움 및 모든 EVM 호환 체인의 금고를 보유한 모든 수익률은 궁극적으로 2015년 EIP-20에서 정의한 것과 동일한 언어를 사용합니다.

이 가이드에서 다룬 수준에서 ERC-20을 이해하면 실질적인 이점을 얻을 수 있습니다. 이제 Etherscan에서 토큰 계약을 읽고, 승인 표면을 평가하고, 위험 신호를 식별하고, 실수 없이 사용자 정의 토큰을 MetaMask로 가져오고, DeFi 프로토콜이 작동하는 방식에 대한 이유를 설명할 수 있습니다. 또한 표준의 가장 위험한 약점인 승인 및 전송 패턴을 이해하고 있으므로 정기적인 취소와 신중한 서명 습관을 통해 안전하게 관리할 수 있습니다.

표준은 계속 발전할 것입니다. 허가 서명, 계정 추상화 및 ERC-4626과 같은 새로운 확장 기능은 사용자가 토큰과 상호 작용하는 방식을 바꾸고 있습니다. 그러나 핵심 ERC-20 인터페이스는 모든 지갑, 거래소, 인덱서 및 프로토콜에 깊이 내장되어 있어 사실상 영구적인 인프라입니다. 암호화폐에 대한 기술 표준을 하나만 배운다면 이것을 배우십시오. 온체인에서 겪게 될 거의 모든 상호작용은 이를 통해 이루어집니다.