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

ERC-2612

ERC-2612 — это стандарт токенов на блокчейне Ethereum, расширяющий функциональность токенов стандарта ERC-20 за счёт внедрения механизма разрешений (permit), позволяющего проводить транзакции без необходимости отправки отдельной транзакции с подписью для одобрения расхода средств. Этот стандарт был предложен в 2020 году и принят как часть Ethereum Improvement Proposals (EIP).

История

Стандарт ERC-2612 был предложен разработчиками под руководством Мартина Кёппельмана (Martin Köppelmann) и других участников сообщества Ethereum. Основная цель заключалась в решении проблемы, связанной с необходимостью двух отдельных транзакций для выполнения операций с токенами ERC-20: сначала пользователь должен был отправить транзакцию для одобрения расхода средств (approve), а затем — основную транзакцию (например, transferFrom). Это приводило к дополнительным затратам газа и усложняло взаимодействие с децентрализованными приложениями (dApps). ERC-2612 был принят как часть EIP-2612 в 2020 году и стал частью официальной спецификации Ethereum.

Механизм работы

Основная инновация ERC-2612 заключается в введении функции permit, которая позволяет пользователю подписывать сообщение вне сети (off-chain) с помощью своей криптографической подписи, а затем передавать эту подпись в смарт-контракт. Смарт-контракт проверяет подпись и, если она действительна, автоматически выполняет одобрение расхода средств. Таким образом, пользователь может подписать разрешение один раз, а затем отправить одну транзакцию, которая включает как одобрение, так и саму операцию.

Функция permit

Функция permit принимает следующие параметры:

  • owner — адрес владельца токенов.
  • spender — адрес, которому разрешается тратить токены.
  • value — количество токенов, разрешённое для траты.
  • deadlineвременная метка, после которой разрешение становится недействительным.
  • v, r, s — компоненты криптографической подписи ECDSA (стандарт цифровой подписи на эллиптических кривых).

Подпись генерируется владельцем токенов с использованием его закрытого ключа и хеша, содержащего параметры функции. Смарт-контракт проверяет подпись с помощью открытого ключа владельца, который восстанавливается из подписи.

Преимущества перед стандартным ERC-20

  • Снижение затрат газа: Вместо двух транзакций (approve + transferFrom) выполняется одна, что уменьшает общие затраты на газ.
  • Улучшение пользовательского опыта: Пользователю не нужно отправлять отдельную транзакцию для одобрения, что упрощает взаимодействие с dApps, особенно в мобильных кошельках.
  • Поддержка оффлайн-подписей: Подпись может быть сгенерирована без подключения к блокчейну, что позволяет использовать аппаратные кошельки и другие методы безопасного хранения ключей.

Применение

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

  • Обменные протоколы: Например, Uniswap и SushiSwap, где пользователи могут обменивать токены без предварительного одобрения.
  • Кредитные протоколы: Aave и Compound, где заёмщики и кредиторы могут вносить и снимать средства с использованием одной транзакции.
  • Стейкинг и фарминг: Протоколы, такие как Curve Finance, где пользователи могут блокировать токены для получения вознаграждений.

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

Несмотря на преимущества, ERC-2612 имеет некоторые ограничения:

  • Зависимость от временных меток: Использование deadline требует синхронизации времени между пользователем и блокчейном, что может быть проблематично при задержках в сети.
  • Сложность реализации: Разработчики смарт-контрактов должны корректно реализовать проверку подписи и обработку ошибок, что может быть сложнее, чем в стандартном ERC-20.
  • Безопасность: Если подпись перехвачена злоумышленником до её использования, она может быть использована для несанкционированного одобрения. Однако это маловероятно, так как подпись содержит параметры, включая spender и value, и может быть использована только для конкретной операции.

Совместимость

ERC-2612 обратно совместим с ERC-20, то есть токены, реализующие ERC-2612, могут использоваться в любых протоколах, поддерживающих стандартный ERC-20. Однако для использования функции permit необходимо, чтобы протокол явно поддерживал этот стандарт.

Примеры токенов

Некоторые известные токены, реализующие ERC-2612, включают:

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

  • ERC-2612 часто называют «стандартом для разрешений с подписью» (permit-based standard).
  • Идея использования оффлайн-подписей для одобрения была впервые предложена в контексте EIP-712 (стандарт для структурированных данных), который также используется в ERC-2612.
  • Некоторые протоколы, такие как MetaMask, автоматически поддерживают ERC-2612, что упрощает его использование для конечных пользователей.

Источники

  • Ethereum Improvement Proposals (EIP-2612)
  • Документация Ethereum по стандартам токенов
  • Статьи на Ethereum Stack Exchange и в блогах разработчиков

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

На главную BFOmetr →