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, включают:
- DAI (стабильная монета проекта MakerDAO)
- USDC (стейблкоин от Circle)
- UNI (токен управления протокола Uniswap)
- AAVE (токен управления протоколом Aave)
Интересные факты
- ERC-2612 часто называют «стандартом для разрешений с подписью» (permit-based standard).
- Идея использования оффлайн-подписей для одобрения была впервые предложена в контексте EIP-712 (стандарт для структурированных данных), который также используется в ERC-2612.
- Некоторые протоколы, такие как MetaMask, автоматически поддерживают ERC-2612, что упрощает его использование для конечных пользователей.
Источники
- Ethereum Improvement Proposals (EIP-2612)
- Документация Ethereum по стандартам токенов
- Статьи на Ethereum Stack Exchange и в блогах разработчиков
BFOmetr — база данных и аналитика по компаниям России.
На главную BFOmetr →