Спонсирование gas и paymaster: объяснение

·8 мин. чтения·Автор: SSP Editorial Team
Схема paymaster ERC-4337, покрывающего gas для UserOperation от имени пользователя самостоятельного хранения

Спонсирование gas и paymaster: объяснение

Каждая транзакция в Ethereum стоит gas, и в традиционном аккаунте тот, кто отправляет транзакцию, и есть тот, кто за неё платит — в нативной монете сети. Именно это единственное правило приводит к тому, что новый пользователь, у которого есть stablecoin, но нет ETH, может обнаружить, что не в состоянии переместить собственные средства. Account abstraction разрывает эту связь, а механизмом, который её разрывает, является paymaster. Эта статья объясняет, что такое paymaster в ERC-4337, где он находится в потоке и — самое главное — что спонсирование gas на самом деле означает для того, кто хранит собственные ключи.

Это четвёртая статья нашей серии об account abstraction. Если приведённые ниже термины кажутся незнакомыми, начните с Account abstraction с первых принципов; а с базовой моделью комиссий, на которой держится спонсирование gas, познакомьтесь в статье Комиссии gas в Ethereum для пользователей самостоятельного хранения.

Что такое paymaster на самом деле

Paymaster — это smart contract. Его единственная задача — согласиться покрыть gas чужой операции. В рамках ERC-4337, когда smart account выражает то, что хочет сделать, в виде UserOperation, эта операция может указать paymaster. Если paymaster согласен, то именно он — а не аккаунт — рассчитывается за стоимость gas с сетью.

Есть две разновидности этого, и они отвечают на две разные проблемы пользователя:

  • Спонсировать gas напрямую. Paymaster платит комиссию от имени пользователя, и пользователь не платит за gas ничего. Именно это люди подразумевают под словом «без gas».
  • Принять оплату в токене ERC-20. Paymaster платит сети gas в нативной монете, а затем берёт с пользователя плату в токене ERC-20 — скажем, в stablecoin. Пользователю никогда не приходится держать ETH; он рассчитывается тем токеном, которым уже владеет.

В обоих случаях сеть по-прежнему получает оплату в нативной монете. Gas не становится бесплатным; вопрос лишь в том, кто его финансирует и в какой деноминации пользователь ощущает эту стоимость.

Где paymaster находится в потоке

Чтобы понять, почему paymaster можно доверить оплату, полезно вспомнить, как путешествует операция ERC-4337. Smart account не отправляет обычную транзакцию. Он выпускает UserOperation в отдельный mempool. Bundler собирает их, упаковывает вместе и отправляет в сеть через проаудированный контракт EntryPoint, который обращается к каждому аккаунту, чтобы выполнить его логику валидации до исполнения.

Paymaster вступает в дело на этапе валидации. Когда EntryPoint обрабатывает UserOperation, в которой указан paymaster, он вызывает собственную функцию валидации этого paymaster. Paymaster изучает операцию и тут же решает, готов ли он покрыть gas. Если он соглашается, то фактически гарантирует оплату EntryPoint, и операция продолжается. Если он отказывает, операция не спонсируется — она либо возвращается к тому, что платит аккаунт, либо не проходит на этих условиях.

Важная ментальная модель такова: спонсирование — это решение, принимаемое в момент валидации, контрактом, в отношении конкретной операции. Это не обещание на все случаи. Paymaster смотрит на эту операцию и говорит «да» или «нет».

Чем полезно спонсирование gas

Отделение плательщика комиссии от отправителя открывает несколько конкретных сценариев:

  • Спонсируемый онбординг. Новый пользователь может выполнить своё первое действие — swap, mint, получение токенов — не приобретая сначала нативный токен gas на бирже. Устранение этого шага «сначала нужно купить ETH, прежде чем что-либо делать» — одно из самых больших снижений трения, которое предлагает account abstraction.
  • Комиссии, спонсируемые dApp. Приложение может выбрать оплату gas за своих пользователей как продуктовое решение — так же, как веб-приложение берёт на себя серверные расходы. Пользователь нажимает кнопку; paymaster приложения покрывает операцию.
  • Оплата комиссий в stablecoin. Вместо того чтобы держать отдельный баланс ETH только ради gas, пользователь может заплатить комиссию тем токеном, которым уже оперирует. Paymaster берёт токен и авансирует сети нативную монету.

Каждый из этих случаев — это применение одного и того же примитива (контракта, готового платить gas на устанавливаемых им условиях) к разной задаче.

«Спонсировано» — это не «бесплатно»

Об экономике стоит сказать прямо, потому что слово «без gas» располагает к недоразумению. Сеть всегда взимает gas в нативной монете. Когда транзакция «спонсирована», эта стоимость никуда не исчезла; просто кто-то согласился её на себя принять. Paymaster должен быть профинансирован, и тот, кто его финансирует — приложение, протокол, сервис, — платит реальные деньги за привилегию устранить трение.

Из этого следуют два вывода, которые пользователю самостоятельного хранения стоит держать в уме:

  • Paymaster может отказать. Поскольку спонсирование — это решение по каждой операции, нет гарантии, что какая-либо конкретная операция будет покрыта. У программ спонсирования могут быть правила соответствия требованиям, лимиты расходов или они просто могут исчерпать средства. «Без gas» — это особенность конкретного потока, а не свойство сети.
  • Вам следует знать, какой paymaster задействован. Paymaster — это контракт, участвующий в вашей транзакции. Как и с любым контрактом, с которым вы взаимодействуете, стоит понимать, чей это paymaster и что он делает: спонсировать комиссию безобидно, но доверие всё равно имеет значение. Когда вы платите комиссии токеном, вы также принимаете тот обменный курс, который paymaster применяет между этим токеном и нативной монетой.

Ничто из этого не повод избегать paymaster. Это повод их понимать: спонсированная транзакция — это услуга, которую кто-то оказывает, а не бесплатный обед, раздаваемый протоколом.

Что это значит для самостоятельного хранения

Вот часть, которая важнее всего для того, кто хранит собственные ключи, и её легко понять наоборот. Спонсирование gas меняет то, кто платит комиссию. Оно не меняет того, кто контролирует средства.

Когда paymaster покрывает ваш gas, вы по-прежнему подписываете операцию собственными ключами. Paymaster не может переместить ваши активы, перенаправить вашу транзакцию или авторизовать что-либо от вашего имени — он может лишь согласиться оплатить комиссию за операцию, которую авторизовали вы. Хранение остаётся нетронутым. Вы по-прежнему единственная сторона, способная одобрить перевод ваших средств; paymaster просто вызвался оплатить проезд за поездку, которую вы решили совершить.

Применительно к SSP это естественно согласуется с моделью безопасности. SSP — это кошелёк самостоятельного хранения, построенный вокруг multisig 2-of-2: один ключ — в браузерном расширении SSP Wallet, второй — в мобильном приложении SSP Key, и оба нужны для одобрения каждой транзакции. На EVM-сетях SSP является smart account ERC-4337, проверяющим Schnorr-агрегированную подпись 2-of-2, проаудированным Halborn в 2025 году. Поскольку это аккаунт ERC-4337, механика gas этого стандарта — включая возможность того, что UserOperation оплачивается paymaster, — применяется к нему так же, как к любому аккаунту ERC-4337. Полный дизайн рассматривается в архитектуре account abstraction SSP.

Чтобы быть точным в том, что это обещает, а что нет: ERC-4337 делает возможными спонсирование gas и потоки оплаты токеном, и аккаунты SSP существуют внутри этого стандарта. Будет ли конкретная совершаемая вами транзакция спонсирована или оплачиваема токеном, зависит от приложения или потока кошелька, который вы используете, и от того, задействован ли paymaster для этой операции. Гарантия же хранения с двумя ключами, напротив, действует всегда, независимо от того, кто платит gas.

Вывод

Paymaster — это контракт, который может оплатить gas некоторой UserOperation от имени пользователя или позволить оплатить этот gas в токене ERC-20 вместо нативной монеты. Он соглашается на это во время валидации, по каждой операции, и может отказать. Он делает возможными онбординг без gas, спонсируемые dApp комиссии и gas в stablecoin — реальные удобства, снижающие барьер для совершения транзакций. Но «спонсировано» означает «профинансировано кем-то», а не «бесплатно», и paymaster никогда не получает никакого контроля над вашими активами. Для пользователя самостоятельного хранения краткое резюме таково: paymaster могут изменить, кто платит за поездку, но ключи от машины по-прежнему у вас.

Остальная часть этой серии

  1. Account abstraction с первых принципов — почему EOA ограничивают и что означает account abstraction.
  2. EOA против smart account: различия, которые имеют значение — прямое сравнение двух моделей аккаунтов.
  3. Архитектура account abstraction SSP — как SSP встраивает ERC-4337 в кошелёк 2-of-2.
  4. Спонсирование gas и paymaster: объяснение — эта статья: как paymaster отделяют того, кто платит, от того, кто отправляет.
  5. Account abstraction в сетях, отличных от Ethereum — как та же идея путешествует за пределы Ethereum.

Что касается самого стандарта, авторитетный источник — это EIP-4337, а дорожная карта account abstraction Ethereum отслеживает, куда движутся более широкие усилия. Если вы хотите сперва ознакомиться со стандартом отдельно, прочитайте Что такое account abstraction (ERC-4337)?.

Поделиться статьёй

Похожие статьи