ERC-20

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

Как это работает

«Обязательный интерфейс 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:

  1. Алиса вызывает USDC.transfer(Боб, 100)
  2. Проверка контракта: баланс[Алиса] >= 100
  3. balances[Alice] -= 100
  4. балансы[Боб] += 100
  5. emit Transfer(Alice, Bob, 100)

Как работает функция approve/transferFrom (шаблон DeFi):

  1. Алиса вызывает USDC.approve(UniswapRouter, 1000)
  2. Теперь UniswapRouter может потратить до 1000 USDC от имени Алисы.
  3. Маршрутизатор вызывает USDC.transferFrom(Alice, Pool, 1000)
ФункцияЦельКто это называет?
`totalSupply()`Возвращает общее количество токенов.Любой (просмотр)
`balanceOf(addr)`Баланс адреса возвратаЛюбой (просмотр)
`transfer(to, amt)`Отправить токены от вызывающего абонентаДержатель жетона
`approve(spender, amt)`Авторизовать плательщикаДержатель жетона
`transferFrom(from, to, amt)`Перевод от имениОдобренный потребитель (DeFi)
`allowance(owner, spender)`Проверьте сумму одобренияЛюбой (просмотр)

Простыми словами

  1. Универсальный токен-языкВсе токены стандарта ERC-20 используют один и тот же интерфейс — MetaMask, Uniswap, Aave и Coinbase работают с USDC, UNI, LINK и более чем 500 000 другими токенами, поскольку все они следуют одним и тем же правилам.
  2. Остатки на счете в бухгалтерской книгеКонтракт хранит сопоставление адресов с балансами — функция `transfer()` вычитает средства у отправителя и добавляет их к балансу получателя, и все это происходит во внутреннем реестре контракта.
  3. Одобрение для DeFiФункция `approve()` позволяет протоколам DeFi тратить токены от вашего имени — когда вы «одобряете» Uniswap, вы даёте ему разрешение переместить ваши USDC для обмена.
  4. содействие проведению ICOСтандарт ERC-20 сделал создание токенов тривиальным — любой разработчик мог запустить токен за несколько часов, что подстегнуло бум ICO 2017 года, когда тысячи проектов привлекли миллиарды долларов.
  5. Примитив 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 — Создание криптоэнциклопедии

Медиа