Что такое ERC-20
Что такое ERC-20
ERC-20 — наиболее широко распространённый стандарт токенов на блокчейне Ethereum. Он определяет общий интерфейс — набор функций и событий — который смарт-контракт должен реализовать для создания взаимозаменяемого токена. «Взаимозаменяемый» означает, что каждая единица токена идентична и взаимозаменяема, подобно тому как любая денежная купюра эквивалентна любой другой купюре того же номинала.
ERC расшифровывается как Ethereum Request for Comments, а 20 — номер предложения. Стандарт был предложен в 2015 году и стал де-факто чертежом для создания токенов на Ethereum и EVM-совместимых цепочках. Когда проект говорит, что его токен «ERC-20», это означает, что контракт токена следует стандартному интерфейсу, гарантирующему совместимость с кошельками, децентрализованными биржами, трекерами портфелей и другими смарт-контрактами по всей экосистеме Ethereum.
Коротко: ERC-20 — это технический стандарт, определяющий работу взаимозаменяемых токенов на Ethereum, гарантирующий, что любой ERC-20-токен можно отправить, получить и управлять им через любой кошелёк или приложение, поддерживающее этот стандарт.
Как работает ERC-20
Стандартный интерфейс
В своей основе ERC-20 определяет набор функций, которые каждый совместимый контракт токена обязан реализовать. Эти функции предоставляют общий язык, который внешние приложения (кошельки, биржи, другие контракты) могут использовать для взаимодействия с токеном без необходимости знать что-либо о его внутренней логике.
Ключевые функции:
| Функция | Что делает |
|---|---|
totalSupply() |
Возвращает общее количество существующих токенов |
balanceOf(address) |
Возвращает, сколько токенов хранит конкретный адрес |
transfer(to, amount) |
Отправляет токены с адреса вызывающего на другой адрес |
approve(spender, amount) |
Разрешает другому адресу (смарт-контракту или пользователю) тратить до указанной суммы токенов вызывающего |
transferFrom(from, to, amount) |
Позволяет предварительно одобренному получателю разрешения переводить токены от имени владельца |
allowance(owner, spender) |
Возвращает, сколько токенов получатель разрешения всё ещё может перевести от имени владельца |
Стандарт также определяет два события — Transfer и Approval — которые генерируются при движении токенов или изменении разрешений на расходование. Эти события позволяют внешним системам (обозревателям блоков, индексаторам, аналитическим инструментам) отслеживать активность токена без прямого запроса к контракту.
Почему стандарт важен
До широкого принятия ERC-20 каждый проект создавал собственный интерфейс. Это означало, что кошелькам, биржам и другим приложениям приходилось писать специальный код для каждого нового токена. ERC-20 решил эту проблему, создав универсальный интерфейс контракта: любое приложение, поддерживающее ERC-20, автоматически поддерживает каждый ERC-20-токен, будь он создан вчера или годы назад.
Эта компонуемость — одна из основ экосистемы Ethereum. Децентрализованной бирже не нужно знать, что представляет конкретный токен или кто его создал — если токен реализует интерфейс ERC-20, биржа может его листить, торговать им и проводить расчёты.
Развёртывание ERC-20-токена
Создание ERC-20-токена включает развёртывание смарт-контракта в сети Ethereum (или EVM-совместимой цепочке), который реализует необходимые функции. Развёртывающий указывает имя токена, символ, десятичную точность и начальное предложение. После развёртывания контракт является неизменяемым — основной интерфейс токена не может быть изменён, хотя некоторые реализации включают дополнительные функции вроде минтинга, сжигания или паузы через механизмы управления.
Низкий технический барьер для развёртывания ERC-20-токена является одновременно сильной и слабой стороной. Он обеспечивает быструю инновацию и экспериментирование, но также означает, что любой может создать токен с любым именем и любым заявленным назначением. Существование ERC-20-токена не подразумевает качество, легитимность или ценность.
ERC-20 и EVM-совместимые цепочки
Хотя ERC-20 был создан для Ethereum, стандарт работает на любом EVM-совместимом блокчейне. Цепочки вроде BNB Smart Chain, Polygon, Arbitrum One, Base и Avalanche нативно поддерживают ERC-20-токены, поскольку реализуют Ethereum Virtual Machine. На некоторых из этих цепочек стандарт может иметь другое формальное название (BEP-20 на BNB Smart Chain, например), но интерфейс функционально идентичен.
Это означает, что токен проекта может описываться как «ERC-20», даже если он развёрнут на цепочке, отличной от Ethereum. Стандарт — это технический интерфейс, а не обозначение конкретной цепочки. Важно, реализует ли контракт токена набор функций ERC-20, а не на какой сети он работает.
ERC-20 в сравнении с другими типами токенов
| Параметр | ERC-20 | ERC-721 (NFT) | ERC-1155 (мульти-токен) | Нативный токен (ETH, SOL) |
|---|---|---|---|---|
| Взаимозаменяемость | Взаимозаменяемый (все единицы идентичны) | Невзаимозаменяемый (каждый токен уникален) | И взаимозаменяемые, и невзаимозаменяемые | Взаимозаменяемый |
| Развёрнут как | Смарт-контракт | Смарт-контракт | Смарт-контракт | Встроен в протокол |
| Стандартный интерфейс | transfer, approve, balanceOf |
ownerOf, safeTransferFrom |
Пакетные операции | Нет стандартного контрактного интерфейса |
| Применение | Валюты, утилитарные токены, governance-токены | Цифровое искусство, уникальные активы, идентичность | Игровые предметы, смешанные коллекции | Газ, стейкинг, базовая валюта |
ERC-20-токены отличаются от нативных токенов, таких как ETH. В то время как ETH встроен непосредственно в протокол Ethereum и существует без смарт-контракта, ERC-20-токены создаются путём развёртывания контракта, следующего стандарту. И те, и другие можно хранить и передавать, но они имеют разные технические свойства и разные роли в сети.
Ограничения и расширения ERC-20
Хотя ERC-20 — наиболее широко используемый стандарт токенов, он имеет известные ограничения, приведшие к расширениям и улучшениям:
- Нет уведомления при получении. Когда токены отправляются на смарт-контракт, принимающий контракт не имеет автоматического способа среагировать. Это приводило к тому, что токены навсегда застревали в контрактах, не обрабатывающих ERC-20-переводы. Стандарты ERC-223 и ERC-777 были предложены для решения этой проблемы, хотя ERC-20 остаётся доминирующим.
- Двухшаговый паттерн одобрения. Перевод токенов от имени другого адреса требует двух транзакций: сначала
approve, затемtransferFrom. Это добавляет затруднения и расходы на газ. Расширение ERC-2612 (Permit) позволяет проводить одобрение без газа через офчейн-подписи. - Нет встроенных метаданных. ERC-20-токены имеют имя и символ, но не имеют стандартизированного способа включения дополнительных метаданных (описание, иконка, ссылка на документацию). Расширения и офчейн-реестры заполняют этот пробел.
Эти ограничения не умаляют практическую полезность ERC-20. Простота стандарта и его универсальная поддержка перевешивают технические несовершенства для подавляющего большинства вариантов использования.
Почему ERC-20 важен для крипто-ИИ проектов
Большинство крипто-ИИ проектов, выпускающих токен на Ethereum или EVM-совместимой цепочке, используют стандарт ERC-20. Токен может служить утилитарным токеном (оплата вычислений, доступ к ИИ-сервисам), governance-токеном (голосование по параметрам протокола) или fee-mechanism (оплата использования сети). Независимо от предполагаемой роли, использование ERC-20 гарантирует совместимость токена с более широкой экосистемой: пользователи могут хранить его в стандартных кошельках, торговать им на децентрализованных биржах и взаимодействовать с ним через известные интерфейсы.
Для читателей, оценивающих крипто-ИИ проект, знание о том, что токен является ERC-20, говорит о его техническом формате, но не о полезности, необходимости или ценности. Стандарт токена отвечает на вопрос «как токен работает технически?», но не на вопросы «зачем проекту нужен токен?» или «действительно ли токен выполняет функцию в ИИ-конвейере?»
Где это появляется в карточках проектов DecAIHub
В карточке проекта DecAIHub ERC-20 указывается в поле Token standard. Когда в карточке указано Token standard: ERC-20, это означает, что токен проекта реализован как ERC-20 смарт-контракт.
Поле Token standard носит чисто описательный характер: оно сообщает читателям технический формат токена. Его следует читать вместе с полем Token model (описывающим роль токена: utility, governance, fee mechanism) и полем Main chain (указывающим, на какой сети развёрнут токен).
Проект может иметь токены на нескольких цепочках — например, ERC-20-токен на Ethereum и бриджированную версию на L2 вроде Arbitrum. Поле Token standard обычно отражает основное развёртывание.
Что ERC-20 сам по себе не доказывает
- ERC-20 не доказывает полезность токена. Любой смарт-контракт может реализовать интерфейс ERC-20. Стандарт определяет техническое поведение токена, а не его экономическую роль или необходимость. Проект может иметь ERC-20-токен, не выполняющий никакой функции в его ИИ- или прикладном конвейере.
- ERC-20 не доказывает легитимность. Создание и развёртывание ERC-20-токена требует минимальных технических усилий и затрат. Существование токена не является доказательством того, что стоящий за ним проект реален, функционален или заслуживает доверия.
- ERC-20 не доказывает, что проект работает на Ethereum. ERC-20-токены существуют на многих EVM-совместимых цепочках. Стандарт токена не указывает, на какой цепочке развёрнут токен — для этого проверяйте поле Main chain.
- ERC-20 не доказывает ИИ-возможности. Технический стандарт токена не имеет связи с тем, есть ли у проекта реальный ИИ-компонент, работающий инференс или верифицируемые модели.
- ERC-20 не доказывает децентрализацию. Контракт токена может включать централизованные элементы управления: административные ключи для минтинга или сжигания, функции паузы, обновляемые прокси под контролем одного адреса. Стандарт определяет интерфейс, а не модель управления.
Не путать с
- Стандарт токена — общее понятие. ERC-20 — один конкретный стандарт токенов. Другие включают ERC-721 (NFT), ERC-1155 (мульти-токены), BEP-20 (BNB Smart Chain), SPL (Solana) и нативные токены.
- Нативный токен — ETH является нативным токеном Ethereum, встроенным в сам протокол. ERC-20-токены создаются путём развёртывания смарт-контрактов поверх протокола. Они сосуществуют, но технически различны.
- Модель токена — модель токена описывает роль токена (utility, governance, fee mechanism). Стандарт токена описывает технический формат. Токен может быть одновременно ERC-20 (стандарт) и утилитарным (модель).
- BEP-20 — стандарт токенов на BNB Smart Chain. BEP-20 функционально идентичен ERC-20, но является соглашением об именовании на другой цепочке.
- ERC-721 — стандарт для невзаимозаменяемых токенов (NFT) на Ethereum. ERC-721-токены уникальны; ERC-20-токены взаимозаменяемы.
Часто задаваемые вопросы
Что значит «взаимозаменяемый» в контексте ERC-20?
Взаимозаменяемый означает, что каждая единица токена идентична по ценности и функции любой другой единице. Если вы держите 100 единиц ERC-20-токена, любая из них взаимозаменяема с любой другой единицей того же токена. Это тот же принцип, по которому одна денежная купюра эквивалентна любой другой купюре того же номинала. Напротив, невзаимозаменяемые токены (ERC-721) уникальны — один NFT не взаимозаменяем с другим.
Можно ли создать ERC-20-токен на цепочках помимо Ethereum?
Да. Любой блокчейн, реализующий Ethereum Virtual Machine (EVM), поддерживает ERC-20-токены. Сюда входят такие цепочки, как Polygon, Arbitrum One, Base, BNB Smart Chain, Avalanche и многие другие. На BNB Smart Chain эквивалентный стандарт называется BEP-20, но реализует тот же интерфейс. Токен, следующий набору функций ERC-20, работает с любым EVM-совместимым кошельком, биржей или смарт-контрактом независимо от конкретной цепочки.
В чём разница между ERC-20 и нативным токеном, таким как ETH?
ETH — нативный токен Ethereum, встроенный в сам протокол и существующий без смарт-контракта. ETH используется для оплаты газовых комиссий и участия в стейкинге. ERC-20-токены, напротив, создаются путём развёртывания смарт-контрактов поверх Ethereum. Для переводов и взаимодействий с ними требуется ETH для оплаты газа. Оба типа токенов могут храниться в одном кошельке, но их техническая реализация принципиально различна.
Требует ли развёртывание ERC-20-токена высокой технической экспертизы?
Развёртывание базового ERC-20-токена требует умеренных знаний в разработке смарт-контрактов. Стандартные библиотеки (такие как OpenZeppelin) предоставляют проаудированные, готовые к использованию реализации ERC-20, которые можно развернуть с минимальной настройкой. Низкий барьер для развёртывания является одновременно преимуществом (позволяя быстро экспериментировать и внедрять инновации) и риском (позволяя кому угодно создать токен для любых целей). Существование развёрнутого токена само по себе не является доказательством технических возможностей.
Внешние ссылки
- EIP-20: Token Standard — Ethereum Improvement Proposals — оригинальная формальная спецификация стандарта ERC-20, определяющая необходимые функции и события.
- OpenZeppelin — ERC-20 Documentation — широко используемая реализация стандарта ERC-20 с объяснениями и лучшими практиками для разработчиков.
- Ethereum.org — ERC-20 Token Standard — официальная документация Ethereum, объясняющая ERC-20-токены для разработчиков и читателей.
No comments to display
No comments to display