ERC-20
Определение
ERC-20 (Ethereum Request for Comment 20) — это важнейший стандарт токенов в истории криптовалют, определяющий общий интерфейс, который должны реализовывать все взаимозаменяемые токены на Ethereum. Предложенный Фабианом Фогельштеллером и Виталиком Бутериным в ноябре 2015 года и окончательно утвержденный как EIP-20, стандарт ERC-20 установил шесть обязательных функций («transfer», «transferFrom», «approve», «allowance», «balanceOf», «totalSupply») и два необязательных поля («name», «symbol»), которые должны быть доступны для всех соответствующих токенов. Эта стандартизация стала революционной: любой кошелек, биржа, протокол DeFi или смарт-контракт , понимающий интерфейс ERC-20, может работать с любым токеном ERC-20 без специальной интеграции, что позволило создать совместимую, компонуемую экосистему DeFi. Все основные токены — USDC, USDT, LINK, UNI, AAVE, DAI, SHIB и тысячи других — являются токенами стандарта ERC-20. Этот стандарт положил начало буму ICO 2017 года, взрывному росту DeFi в 2020 году и остается основополагающим элементом всей экономики токенов Ethereum, а совокупный объем транзакций ERC-20 превышает триллионы долларов.
Происхождение и история
| Время | События |
| ноябрь 2015 | Фабиан Фогельштеллер предлагает проект EIP-20 на GitHub Ethereum. |
| Сентябрь 2017 | Стандарт ERC-20 официально стандартизирован; бум ICO использует это в своих интересах — в 2017 году с помощью токенов ERC-20 было привлечено 5.6 млрд долларов. |
| 2018 | Практически все новые токен-проекты запускаются в формате ERC-20; экосистема насчитывает более 100 000 токенов. |
| 2020 | Лето DeFi: токены ERC-20 обеспечивают работу Uniswap, Compound, Aave, Yearn — заблокировано более 1 млрд долларов. |
| 2021 | Доминируют стейблкоины (USDC, USDT, версия ERC-20); объем переводов ERC-20 превышает объем переводов BTC. |
| 2022 | Рыночная капитализация токенов ERC-20 превышает 200 миллиардов долларов; ежедневный объем переводов составляет сотни миллиардов долларов. |
| 2023 | Стандарт ERC-20 по-прежнему доминирует; развернуто более 500 000 уникальных контрактов токенов ERC-20. |
«ERC-20 — это самая успешная спецификация с открытым исходным кодом из когда-либо созданных. Она позволяет каждому токену говорить на одном языке».
Как это работает
«Обязательный интерфейс ERC-20:»
функция totalSupply() → uint256 функция balanceOf(address) → uint256 функция transfer(address to, uint amount) → bool функция transferFrom(address from, address to, uint amount) → bool функция approve(address spender, uint amount) → bool функция allowance(address owner, address spender) → uint256
События: событие Transfer(адрес, от которого был получен индекс, адрес, к которому был получен индекс, значение uint256) событие Approval(адрес, от которого был получен индекс, адрес, от которого был получен индекс, значение uint256)
Как работает перевод: Алиса отправляет Бобу 100 USDC:
- Алиса вызывает USDC.transfer(Боб, 100)
- Проверка контракта: баланс[Алиса] >= 100
- balances[Alice] -= 100
- балансы[Боб] += 100
- emit Transfer(Alice, Bob, 100)
Как работает функция approve/transferFrom (шаблон DeFi):
- Алиса вызывает USDC.approve(UniswapRouter, 1000)
- Теперь UniswapRouter может потратить до 1000 USDC от имени Алисы.
- Маршрутизатор вызывает USDC.transferFrom(Alice, Pool, 1000)
| Функция | Цель | Кто это называет? |
| `totalSupply()` | Возвращает общее количество токенов. | Любой (просмотр) |
| `balanceOf(addr)` | Баланс адреса возврата | Любой (просмотр) |
| `transfer(to, amt)` | Отправить токены от вызывающего абонента | Держатель жетона |
| `approve(spender, amt)` | Авторизовать плательщика | Держатель жетона |
| `transferFrom(from, to, amt)` | Перевод от имени | Одобренный потребитель (DeFi) |
| `allowance(owner, spender)` | Проверьте сумму одобрения | Любой (просмотр) |
Простыми словами
- Универсальный токен-языкВсе токены стандарта ERC-20 используют один и тот же интерфейс — MetaMask, Uniswap, Aave и Coinbase работают с USDC, UNI, LINK и более чем 500 000 другими токенами, поскольку все они следуют одним и тем же правилам.
- Остатки на счете в бухгалтерской книгеКонтракт хранит сопоставление адресов с балансами — функция `transfer()` вычитает средства у отправителя и добавляет их к балансу получателя, и все это происходит во внутреннем реестре контракта.
- Одобрение для DeFiФункция `approve()` позволяет протоколам DeFi тратить токены от вашего имени — когда вы «одобряете» Uniswap, вы даёте ему разрешение переместить ваши USDC для обмена.
- содействие проведению ICOСтандарт ERC-20 сделал создание токенов тривиальным — любой разработчик мог запустить токен за несколько часов, что подстегнуло бум ICO 2017 года, когда тысячи проектов привлекли миллиарды долларов.
- Примитив DeFiCompound, Aave, Uniswap и все протоколы DeFi построены на основе токенов ERC-20. Удалите ERC-20, и вся экосистема DeFi рухнет.
Примеры из реального мира
| Сценарий | Реализация | Результат |
| USDC стабильная монета | Circle запускает контракт ERC-20 USDC; обеспечение в долларах США в соотношении 1:1. | В обращении более 25 миллиардов долларов; принимается на всех биржах и протоколах DeFi мгновенно. |
| Обмен Uniswap | Пользователь подтверждает USDC, вызывается своп → Маршрутизатор вызывает `transferFrom(user, pool)` | Бесшовная замена с использованием шаблона ERC-20 approve/transferFrom |
| Кредитование Aave | Пользователь вносит депозит в ERC-20 USDC; получает ERC-20 aUSDC, представляющий собой сумму депозита. | Все механизмы кредитования построены на основе принципа совместимости ERC-20. |
| Сбор средств ICO | Проект запускает токен стандарта ERC-20; инвесторы отправляют ETH и получают токены. | 2017-2018: привлечено более 20 миллиардов долларов США посредством продажи токенов ERC-20. |
Преимущества
| Преимущества | Описание |
| Универсальная совместимость | Любой токен стандарта ERC-20 работает с любым совместимым кошельком, биржей или протоколом DeFi. |
| Простая реализация | 150 строк кода на Solidity для развертывания полностью функционального токена |
| компонуемости | Токены ERC-20 встраиваются в протоколы DeFi, позволяя создавать «денежные конструкторы». |
| эффекты экосистемной сети | Более 500 000 токенов; каждый инструмент и интерфейс поддерживают ERC-20. |
| Проверенные эталонные реализации | Стандарт ERC-20 от OpenZeppelin проверен в боевых условиях и имеет миллиардную ценность. |
Недостатки и риски
| Недостаток | Описание |
| approve() риск двойной траты | При изменении лимитов пользователи могут оказаться в невыгодном положении; для безопасного сброса требуется две транзакции. |
| Риск потери токенов | Стандарт ERC-20 не обеспечивает защиты от отправки токенов контрактам, которые не могут их получить. |
| Инфляционный потенциал | Отсутствует стандартный механизм ограничения предложения — проекты могут выпускать неограниченное количество токенов, если их конструкция недостаточно продумана. |
| Проблема с токенами для оплаты | Для осуществления переводов по стандарту ERC-20 требуется ETH для оплаты комиссий — одних токенов недостаточно для покрытия собственных расходов. |
Советы по управлению рисками:
- Перед утверждением Протоколы DeFiПоймите, что именно вы разрешаете — неограниченное количество подтверждений предоставляет бессрочный доступ к использованию ваших токенов.
- Используйте такие инструменты, как Revoke.cash, для проверки и отзыва старых разрешений ERC-20, чтобы уменьшить поверхность атаки.
- Проверяйте адреса контрактов токенов по официальным источникам — мошенники используют поддельные токены ERC-20 с похожими названиями.
FAQ
В чём разница между ETH и токенами ERC-20?
ETH — это собственная валюта Ethereum, а не токен стандарта ERC-20. Токены ERC-20 создаются смарт-контрактами на Ethereum. Wrapped ETH (WETH) — это версия ETH стандарта ERC-20, которая позволяет ей участвовать в протоколах DeFi, требующих соответствия стандарту ERC-20.
Сколько существует токенов стандарта ERC-20?
По состоянию на 2024 год в основной сети Ethereum было развернуто более 500 000 уникальных контрактов токенов ERC-20. Подавляющее большинство из них имеют незначительную рыночную стоимость; примерно 1,000-5,000 обладают значительной ликвидностью и востребованностью.
Что такое неограниченное одобрение в формате ERC-20?
Вызов функции `approve(dex, type(uint256).max)` предоставляет децентрализованной бирже разрешение тратить весь ваш баланс токенов бесконечно. Это распространенная практика для удобства, но она создает риск — если протокол будет взломан, все одобренные токены могут быть украдены.
Можно ли выпускать или сжигать токены стандарта ERC-20?
В самом стандарте ERC-20 не указаны правила создания и сжигания токенов — это необязательный процесс. Проекты реализуют создание (увеличение `totalSupply`) и сжигание (его уменьшение) токенов в соответствии со своей токеномической архитектурой.
Почему ERC-20 был революционным?
До появления ERC-20 каждый токен имел собственный интерфейс — биржи и кошельки требовали индивидуальной интеграции для каждого токена. ERC-20 создал универсальный язык: создайте один раз интерфейс для ERC-20, и поддержка всех токенов появится мгновенно.
Совет от UPay: Прежде чем взаимодействовать с любым протоколом DeFi, использующим токены ERC-20, воспользуйтесь Etherscan, чтобы проверить адрес контракта токена и убедиться, что он совпадает с официальным адресом проекта — мошенники создают токены с идентичными названиями и символами, чтобы украсть подтверждения у неосторожных пользователей.
Предупреждение: Данная информация предназначена исключительно для образовательных целей и не является финансовой или инвестиционной рекомендацией. Всегда проводите собственное исследование, прежде чем принимать какие-либо финансовые решения.
UPay — Создание криптоэнциклопедии









