Что такое метатранзакции?
Метатранзакции — это транзакции в блокчейне, при которых пользователь подписывает сообщение вне блокчейна, а другая сторона отправляет за него фактическую транзакцию в блокчейн.Проще говоря, метатранзакции позволяют взаимодействовать с децентрализованным приложением, не оплачивая комиссию за газ напрямую из собственного кошелька.Пользователь подписывает инструкцию, а ретранслятор, форвардер, пеймастер или серверная часть приложения оплачивает сетевую комиссию и отправляет транзакцию в блокчейн.Поэтому метатранзакции часто называют транзакциями без газа (gasless), хотя на уровне сети транзакция не является действительно бесплатной.Кто-то все равно оплачивает комиссию за газ, но ее может платить dApp, спонсор, ретранслятор или другой аккаунт, а не конечный пользователь.Стандарт ERC-2771 определяет протокол на уровне контракта, который позволяет смарт-контрактам принимать метатранзакции через доверенные контракты-форвардеры.
Метатранзакции важны для криптоиндустрии, поскольку могут сделать Web3-приложения удобнее для начинающих пользователей.Они снижают необходимость заранее хранить в кошельке нативный токен сети для оплаты газа, чтобы попробовать приложение.Это может упростить подключение пользователей к инструментам DeFi, NFT-приложениям, блокчейн-играм, голосованию DAO, программам лояльности и платформам метавселенной.Как работают метатранзакции
Обычную транзакцию в блокчейне пользователь подписывает и отправляет непосредственно из своего кошелька.Пользователь оплачивает газ нативным токеном сети, после чего блокчейн обрабатывает транзакцию.Метатранзакция отделяет подписание от оплаты газа.Сначала пользователь подписывает сообщение с описанием нужного действия.Подписанное сообщение может включать целевой контракт, вызов функции, адрес пользователя, nonce, срок действия и другие сведения.Затем ретранслятор получает подписанное сообщение и отправляет его в блокчейн как транзакцию.Комиссию за газ оплачивает ретранслятор.Перед выполнением запрошенного действия смарт-контракт проверяет подпись пользователя.Если подпись действительна, а запрос еще не использовался, контракт считает, что действие исходит от первоначального пользователя.Такая схема позволяет пользователям подтверждать действия, не отправляя итоговую транзакцию в сеть напрямую.Зачем нужны метатранзакции в криптоиндустрии
Метатранзакции важны, поскольку комиссии за газ — одно из главных препятствий для удобного использования криптовалют.Многие новые пользователи получают токен или NFT, но не могут им воспользоваться, поскольку у них нет нативного токена сети для оплаты газа.Метатранзакции помогают решить эту проблему: приложение может оплатить первые действия пользователя.Это полезно для подключения новых пользователей, игр, получения NFT, голосования DAO, сообществ с доступом по токену и программ вознаграждений.Например, блокчейн-игра может позволить новому игроку получить предмет, не покупая предварительно токен для оплаты газа.DAO может позволить участникам голосовать, не требуя, чтобы каждый из них напрямую оплачивал газ.Приложение метавселенной может позволить пользователям получить значок мероприятия с помощью спонсируемой транзакции.Метатранзакции могут сделать криптоприложения похожими на обычные веб-приложения, сохраняя при этом расчеты в блокчейне в фоновом режиме.Основные составляющие метатранзакции
Подпись пользователя
Подпись пользователя — это подтверждение вне блокчейна, которое разрешает выполнить действие.На этом этапе пользователь не отправляет обычную транзакцию в блокчейн.Вместо этого пользователь подписывает структурированные данные или сообщение, которое смарт-контракт позднее сможет проверить.Стандарт EIP-712 определяет способ хеширования и подписания типизированных структурированных данных, благодаря которому кошельки могут отображать более понятные сведения о подписи.
Ретранслятор
Ретранслятор — это сервис или аккаунт, который отправляет подписанный запрос в блокчейн.Ретранслятор оплачивает газ и передает транзакцию в сеть.Ретрансляторы избавляют пользователя от необходимости держать токены для оплаты газа, но могут создавать риски, связанные с доверием, цензурой и доступностью.Форвардер
Форвардер — это смарт-контракт, который получает запрос метатранзакции, проверяет подпись и перенаправляет вызов целевому контракту.В ERC-2771 контракт-получатель доверяет форвардеру и полагается на него при передаче достоверной информации об исходном отправителе.В документации OpenZeppelin по метатранзакциям представлены инструменты ERC2771Context и ERC2771Forwarder для создания контрактов, совместимых с ERC-2771.
Контракт-получатель
Контракт-получатель — это смарт-контракт, который получает перенаправленный вызов.Его необходимо спроектировать так, чтобы он учитывал: фактический пользователь может отличаться от непосредственного отправителя транзакции.Поэтому для поддержки метатранзакций обычно требуется специальная логика контракта.Nonce
Nonce — это число, используемое для предотвращения атак повторного воспроизведения.Если подписанное сообщение можно использовать многократно, злоумышленник может без разрешения повторить одно и то же действие.Nonce помогает гарантировать, что каждый подписанный запрос используется только один раз.Метатранзакции и транзакции без газа
Метатранзакции часто называют транзакциями без газа, поскольку конечный пользователь не оплачивает комиссию за газ напрямую.Однако блокчейн по-прежнему требует оплаты газа.Разница заключается в том, кто платит.dApp может оплатить комиссию, рассматривая это как расходы на привлечение пользователей.Ретранслятор может оплатить комиссию, а затем получить возмещение от протокола.Проект может разрешить пользователям незаметно оплачивать комиссии другим токеном.Это означает, что отсутствие затрат на газ не равно отсутствию расходов.Это означает лишь, что оплата газа не возлагается непосредственно на пользователя.Качественные криптоприложения должны ясно сообщать, кто оплачивает комиссию и включены ли какие-либо скрытые расходы в цены, спреды, вознаграждения или условия обслуживания.ERC-2771 и доверенные форвардеры
ERC-2771 — один из важнейших стандартов нативных метатранзакций.Он определяет, как контракт-получатель может работать с доверенным форвардером, чтобы определить исходного пользователя.В обычной транзакции msg.sender — аккаунт, который напрямую вызывает контракт.В метатранзакции непосредственным вызывающим может быть форвардер, а не пользователь.ERC-2771 решает эту проблему: контракт-получатель может определить эффективный адрес пользователя по пересланным данным вызова.Благодаря этому смарт-контракты могут поддерживать метатранзакции без изменения самого протокола блокчейна.Главный компромисс заключается в том, что контракт-получатель должен доверять форвардеру.Если доверенный форвардер плохо спроектирован или скомпрометирован, пользователи и приложения могут столкнуться с рисками.Метатранзакции и EIP-712
EIP-712 часто используют вместе с метатранзакциями, поскольку этот стандарт делает подписываемые сообщения более структурированными и понятными.Если типизированные данные не представлены ясно, пользователям могут предложить подписать запутанное сообщение, которое трудно понять.При использовании EIP-712 кошельки могут более понятным образом отображать такие поля, как контракт, действие, сумма, срок действия, nonce или расходующий средства адрес.Это повышает безопасность, поскольку пользователям проще понять, что именно они подписывают.Однако понятное отображение данных при подписании не устраняет все риски.Перед подписанием пользователям следует проверять сайт, контракт, сеть и запрашиваемые разрешения.Метатранзакции и абстракция аккаунта
Метатранзакции тесно связаны с абстракцией аккаунта, но это не одно и то же.Обычно метатранзакции предполагают, что пользователь подписывает запрос, который другая сторона отправляет в блокчейн.Абстракция аккаунта — более широкий подход к созданию кошельков. Он может поддерживать смарт-аккаунты, гибкие механизмы проверки, спонсирование газа, ключи сеансов, лимиты расходов и альтернативные способы оплаты комиссии.Стандарт ERC-4337 вводит объекты UserOperation и более высокий уровень взаимодействия для абстракции аккаунта, не требующий изменений на уровне консенсуса.
В системах ERC-4337 пеймастеры могут оплачивать газ или разрешать альтернативную логику оплаты.Это позволяет реализовать более продвинутый пользовательский интерфейс, к созданию которого стремятся метатранзакции.Обе концепции направлены на снижение препятствий и упрощение использования блокчейн-приложений.Распространенные способы использования метатранзакций
Один из распространенных сценариев — упрощенное подключение пользователей без необходимости оплачивать газ.dApp может позволить новым пользователям выполнить первое действие, не покупая предварительно токены для газа.Другой сценарий — выпуск или получение NFT.Проект может оплатить газ, чтобы пользователям было проще получить значки, билеты, вознаграждения или коллекционные активы.Еще один сценарий — голосование в DAO.Метатранзакции могут сделать голосование для участников дешевле или бесплатным, что может повысить их активность.Еще один сценарий — блокчейн-игры.Игры могут скрыть сложность оплаты газа, чтобы игроки могли сосредоточиться на игровом процессе, а не на комиссиях за транзакции.Еще один сценарий — повышение удобства использования DeFi.Некоторые протоколы могут применять метатранзакции, чтобы упростить подтверждения, депозиты, получение вознаграждений или регулярные действия.Преимущества метатранзакций
Первое преимущество — более простое подключение пользователей.Пользователи могут попробовать приложение, не покупая предварительно нативный токен сети для оплаты газа.Второе преимущество — удобство использования.Если оплата газа происходит в фоновом режиме, приложения могут казаться менее технически сложными.Третье преимущество — более активное участие.Голосование, получение активов и вознаграждений без оплаты газа могут повысить активность пользователей.Четвертое преимущество — гибкий подход к комиссиям.Проекты могут оплачивать газ за пользователей, взимать комиссии в другом токене или использовать другие модели оплаты.Пятое преимущество — улучшение продукта.Разработчики могут создавать криптоприложения, более похожие на привычные приложения, сохраняя при этом расчеты в блокчейне.Риски метатранзакций
Первый риск — зависимость от ретранслятора.Если ретранслятор перестанет работать, пользователи могут потерять возможность отправлять спонсируемые транзакции.Второй риск — цензура.Ретранслятор может отказаться отправлять определенные запросы пользователей.Третий риск — фишинг подписей.Злоумышленники могут обманом заставить пользователей подписать вредоносные сообщения, которые выглядят безобидными.Четвертый риск — атаки повторного воспроизведения.Если nonce, сроки действия или разделение доменов спроектированы неправильно, подписанное сообщение могут повторно использовать нежелательным образом.Пятый риск — доверие к форвардеру.Если контракт-получатель доверяет ненадежному форвардеру, он может обрабатывать некорректную информацию об отправителе.Шестой риск — непрозрачные расходы.Пользователи могут не оплачивать газ напрямую, однако расходы все равно могут быть скрыты в комиссиях приложения, спредах, системе вознаграждений или условиях обслуживания.Рекомендации по безопасности метатранзакций
Разработчикам по возможности следует использовать понятные типизированные подписи.Им следует добавлять nonce для предотвращения атак повторного воспроизведения.Им следует устанавливать сроки действия, чтобы старые подписи нельзя было использовать бесконечно.Им следует применять разделение доменов, чтобы подписи нельзя было повторно использовать в других контрактах, сетях или приложениях.Им следует тщательно выбирать доверенные форвардеры и проводить их аудит.Перед запросом подписи им следует показывать пользователям ясную информацию о подписываемом сообщении.Пользователям не следует подписывать сообщения на незнакомых сайтах.Перед подтверждением необходимо проверять домен, приложение, запрос кошелька, запрашиваемое действие и сеть.Даже транзакция без газа может быть опасной, если подписываемое сообщение разрешает перемещать активы или взаимодействовать с вредоносным контрактом.Метатранзакции и Permit
Метатранзакции и подтверждения в формате Permit связаны между собой, но отличаются друг от друга.Permit позволяет пользователю одобрить расходование токенов с помощью подписи вне блокчейна, а не отдельной транзакции подтверждения.Метатранзакция позволяет с помощью подписи вне блокчейна авторизовать более широкий спектр действий в контракте, которые другая сторона отправляет в блокчейн.Оба механизма могут сократить число транзакций, которые пользователь должен отправлять напрямую.Оба требуют тщательной проработки механизма подписания.Главное различие заключается в том, что Permit обычно предназначен для подтверждения операций с токенами, тогда как метатранзакции могут поддерживать разные действия в приложении.Метатранзакции и обычные транзакции
При обычной транзакции пользователь подписывает ее и отправляет напрямую.Пользователь оплачивает газ из собственного кошелька.Смарт-контракт видит адрес пользователя в поле msg.sender.При метатранзакции пользователь подписывает запрос вне блокчейна.Ретранслятор отправляет транзакцию в сеть и оплачивает газ.Смарт-контракт должен проверить подпись и определить исходный адрес пользователя.Такая дополнительная схема может улучшить удобство использования, но также усложняет систему и добавляет новые предположения о безопасности.Распространенные заблуждения о метатранзакциях
Одно из распространенных заблуждений — метатранзакции полностью устраняют комиссии за газ.Они не отменяют комиссии за газ, а переносят оплату газа с пользователя на другую сторону.Другое заблуждение — отсутствие расходов на газ означает отсутствие риска.Пользователь все еще может подписать вредоносное сообщение или взаимодействовать с опасным контрактом.Третье заблуждение — любой смарт-контракт поддерживает метатранзакции.Для корректной поддержки перенаправленных вызовов контрактам обычно требуется специальная логика.Четвертое заблуждение — метатранзакции и абстракция аккаунта означают одно и то же.Они связаны между собой, но абстракция аккаунта — более широкая модель устройства кошельков и транзакций.Часто задаваемые вопросы
Что такое метатранзакции?
Метатранзакции — это транзакции, при которых пользователь подписывает запрос вне блокчейна, а другая сторона отправляет транзакцию в блокчейн за него.Метатранзакции не требуют оплаты газа?
Для пользователя они могут выглядеть как транзакции без газа, но блокчейн по-прежнему требует оплатить газ. Это делает ретранслятор, спонсор, пеймастер или приложение.Что такое ретранслятор в метатранзакции?
Ретранслятор — это сервис или аккаунт, который отправляет подписанный запрос пользователя в блокчейн и оплачивает комиссию за газ.Что такое ERC-2771?
ERC-2771 — стандарт, который позволяет смарт-контрактам принимать метатранзакции через доверенные контракты-форвардеры.Что такое доверенный форвардер?
Доверенный форвардер — это контракт, который проверяет или перенаправляет запросы метатранзакций и помогает контракту-получателю определить исходного пользователя.Как EIP-712 помогает метатранзакциям?
EIP-712 позволяет пользователям подписывать структурированные данные, которые кошельки могут более понятно отображать. Это упрощает понимание подтверждений вне блокчейна.Безопасны ли метатранзакции?
При правильной реализации метатранзакции могут быть безопасны, но они по-прежнему связаны с такими рисками, как фишинг, атаки повторного воспроизведения, цензура со стороны ретранслятора и ошибки при проектировании форвардера.Можно ли использовать метатранзакции для NFT?
Да. Их можно использовать для выпуска и получения NFT, переводов, вознаграждений, значков мероприятий и доступа к сервисам по токену.Метатранзакции и абстракция аккаунта — это одно и то же?
Нет. Метатранзакции — один из способов упростить работу с транзакциями, а абстракция аккаунта — более широкая модель смарт-кошельков, которая может включать спонсирование газа и гибкие механизмы проверки.Зачем dApp используют метатранзакции?
dApp используют метатранзакции, чтобы упростить подключение пользователей, спонсировать их действия, облегчить оплату газа и сделать работу с Web3 удобнее.Заключение
Метатранзакции — важное понятие в криптоиндустрии: они упрощают использование блокчейн-приложений, отделяя подтверждение действия пользователем от оплаты газа.Пользователь может подписать действие вне блокчейна, а ретрансляторы, форвардеры, пеймастеры или приложения отправят фактическую транзакцию в блокчейн.Это может упростить подключение пользователей, игры, получение NFT, голосование DAO, работу в метавселенной и использование DeFi.Такие стандарты, как ERC-2771 и EIP-712, помогают повысить безопасность метатранзакций и упростить их внедрение разработчиками.Абстракция аккаунта на основе ERC-4337 развивает ту же общую идею, позволяя использовать более гибкие модели кошельков и спонсирования газа.Однако метатранзакции не лишены рисков.Пользователям по-прежнему необходимо внимательно проверять подписи, а разработчикам — защищаться от атак повторного воспроизведения, ненадежных форвардеров, сбоев ретрансляторов и непрозрачных моделей оплаты комиссий.Метатранзакции лучше использовать не для того, чтобы полностью скрыть блокчейн, а для устранения лишних препятствий при сохранении ясных согласия пользователя, прозрачности и безопасности.Вам также может быть интересно
ZK-Rollup
ZK-Rollup-as-a-Service
zk-SNARK
В тренде
Трендовые криптовалюты, которые в настоящее время привлекают значительное внимание рынка
ТОП по объему
Криптовалюты с наибольшим объемом торгов
Недавно добавленные
Криптовалюты недавно внесенные в листинг и доступные для торговли

