Открыть сервис

ERC

ERC — это аббревиатура, используемая в блокчейн-индустрии для обозначения «Ethereum Request for Comments» (Запрос комментариев Ethereum). ERC представляет собой технические стандарты и протоколы, которые определяют правила создания и взаимодействия токенов, смарт-контрактов и других цифровых активов в сети Ethereum. Данные стандарты разрабатываются сообществом разработчиков через процесс предложений по улучшению Ethereum (Ethereum Improvement Proposals, EIP) и, после принятия, становятся обязательными для соблюдения при создании совместимых решений. ERC обеспечивают единообразие, безопасность и взаимозаменяемость токенов, что позволяет им свободно обращаться в децентрализованных приложениях (dApps), кошельках и биржах.

История и происхождение

Процесс стандартизации токенов в Ethereum начался вскоре после запуска сети в 2015 году. Первоначально разработчики создавали токены с уникальными, несовместимыми друг с другом характеристиками, что затрудняло их обмен и интеграцию. В 2015 году разработчик Фабиан Фогельстеллер предложил стандарт, который впоследствии стал известен как ERC-20. Этот документ, оформленный как Ethereum Improvement Proposal (EIP-20), был принят сообществом в 2017 году и стал основой для большинства токенов на платформе Ethereum.

Название «ERC» происходит от практики, принятой в сообществе Ethereum: любой разработчик может опубликовать предложение по улучшению сети, и если оно набирает достаточную поддержку, оно получает статус ERC. Процесс регулируется через репозиторий Ethereum Improvement Proposals на платформе GitHub. В отличие от официальных спецификаций, ERC не являются законами, но их соблюдение считается необходимым для обеспечения совместимости и безопасности.

Классификация и виды ERC

Стандарты ERC охватывают различные аспекты работы смарт-контрактов и токенов. Наиболее распространённые из них делятся на несколько категорий:

Стандарты токенов

  • ERC-20 — самый распространённый стандарт для взаимозаменяемых (fungible) токенов. Он определяет базовый набор функций: передача токенов между адресами, проверка баланса, получение общего количества токенов и разрешение на использование токенов третьими лицами. Примеры: USDT (Tether), UNI (Uniswap), LINK (Chainlink).
  • ERC-721 — стандарт для невзаимозаменяемых токенов (NFT). Каждый токен уникален и не может быть разделён на части. Используется для цифрового искусства, предметов коллекционирования, игровых активов. Примеры: CryptoKitties, Bored Ape Yacht Club.
  • ERC-1155 — мульти-токен-стандарт, позволяющий в одном смарт-контракте создавать как взаимозаменяемые, так и невзаимозаменяемые токены. Это снижает затраты на газ и упрощает управление активами в играх и метавселенных.
  • ERC-4626 — стандарт для токенизированных хранилищ (vaults), используемых в децентрализованных финансах (DeFi). Он унифицирует интерфейсы для депозитов и вывода средств, что упрощает интеграцию различных протоколов.

Стандарты для смарт-контрактов и кошельков

  • ERC-4337 — стандарт для абстракции аккаунтов (account abstraction). Позволяет создавать смарт-контракты, которые могут выступать в роли пользовательских кошельков, поддерживая такие функции, как мультиподпись, социальное восстановление и оплату газа другими токенами.
  • ERC-1271 — стандарт для проверки подписей смарт-контрактами. Используется для верификации сообщений, подписанных контрактами, а не только аккаунтами пользователей.

Стандарты для децентрализованных финансов (DeFi)

  • ERC-2612 — стандарт для разрешений (permit), позволяющий выполнять операции с токенами без отдельной транзакции на одобрение (approve). Это снижает количество шагов и затраты на газ.
  • ERC-4626 (упомянутый выше) также относится к DeFi, так как стандартизирует работу с доходными пулами.

Устройство и характеристики

Каждый стандарт ERC представляет собой набор правил, которые должны быть реализованы в коде смарт-контракта. Например, для ERC-20 обязательными являются следующие функции:

  • totalSupply() — возвращает общее количество токенов.
  • balanceOf(address) — возвращает баланс указанного адреса.
  • transfer(address, uint256) — переводит токены на другой адрес.
  • approve(address, uint256) — разрешает третьему лицу тратить токены от имени владельца.
  • allowance(address, address) — проверяет, сколько токенов разрешено тратить третьему лицу.
  • transferFrom(address, address, uint256) — выполняет перевод от имени владельца.

Для ERC-721 добавляются функции, специфичные для уникальных токенов, такие как ownerOf(uint256 tokenId) (возвращает владельца токена по идентификатору) и tokenURI(uint256 tokenId) (возвращает метаданные токена, часто в виде ссылки на JSON-файл).

Стандарты ERC не накладывают ограничений на внутреннюю логику токена (например, механизмы сжигания, заморозки или налогообложения), но определяют внешний интерфейс, с которым взаимодействуют кошельки и биржи.

Применение и значение

ERC-стандарты являются фундаментом экосистемы Ethereum и децентрализованных приложений. Они позволяют:

  • Создавать совместимые токены: Любой кошелёк, поддерживающий ERC-20, может работать с любым токеном этого стандарта, что упрощает листинг на биржах и интеграцию в dApps.
  • Развивать децентрализованные финансы (DeFi): Протоколы, такие как Uniswap, Aave и Compound, используют ERC-20 для создания пулов ликвидности, займов и стейкинга. ERC-4626 стандартизирует доходные стратегии.
  • Создавать невзаимозаменяемые активы (NFT): ERC-721 и ERC-1155 стали основой для рынка цифрового искусства, игр и коллекционных предметов, объём которого в 2021 году достиг десятков миллиардов долларов.
  • Улучшать пользовательский опыт: ERC-4337 позволяет создавать кошельки с восстановлением доступа, что снижает риски потери средств.
  • Обеспечивать безопасность: Стандарты проходят рецензирование сообществом и аудиторами, что снижает вероятность ошибок в коде.

Критика и ограничения

Несмотря на широкое распространение, стандарты ERC имеют недостатки. Основные из них:

  • Неэффективность газа: Ранние стандарты, такие как ERC-20, не оптимизированы для экономии газа, что приводит к высоким комиссиям при перегрузке сети. ERC-1155 и ERC-4626 частично решают эту проблему.
  • Отсутствие обязательности: ERC являются рекомендациями, а не обязательными требованиями. Разработчики могут создавать токены, не соответствующие стандартам, что приводит к несовместимости.
  • Сложность обновлений: После принятия стандарта его изменение требует нового EIP и длительного процесса согласования. Например, ERC-20 не поддерживает механизмы восстановления токенов, отправленных на неверный адрес.
  • Уязвимости: Некоторые стандарты (например, ERC-721) не имеют встроенной защиты от распространённых атак, таких как повторное вхождение (reentrancy), что требует дополнительных мер безопасности.

Примеры известных ERC

  • ERC-20: USDT (Tether) — крупнейший стейблкоин по рыночной капитализации; UNI — токен управления протокола Uniswap.
  • ERC-721: CryptoPunks — один из первых проектов NFT; Bored Ape Yacht Club — коллекция из 10 000 уникальных обезьян.
  • ERC-1155: Enjin Coin — платформа для игровых активов, использующая этот стандарт для создания как взаимозаменяемых, так и уникальных предметов.
  • ERC-4337: Реализован в кошельках, таких как Argent и Safe (ранее Gnosis Safe), для поддержки абстракции аккаунтов.

Интересные факты

  • Первый ERC-20 токен, получивший широкое распространение, был создан в 2017 году для проекта Golem (GNT), который предлагал децентрализованный рынок вычислительных мощностей.
  • Стандарт ERC-721 был предложен в 2017 году разработчиками игры CryptoKitties, которая стала одним из первых массовых приложений на Ethereum.
  • В 2022 году сообщество Ethereum приняло ERC-4337, реализация которого заняла несколько лет из-за сложности внедрения в существующую инфраструктуру.

Источники

  • Ethereum Improvement Proposals (EIPs) — официальный репозиторий на GitHub.
  • Документация Ethereum Foundation по стандартам токенов.
  • Статья «ERC-20 Token Standard» на Ethereum.org.
  • Исследование «A Survey of Ethereum Token Standards» (Journal of Blockchain Research, 2021).
  • Материалы конференций Devcon и EthCC по стандартизации смарт-контрактов.

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →