Мемпул (сокращение от «memory pool») — это область ожидания, где нода блокчейна хранит транзакции, которые уже подписаны и разосланы по сети, но ещё не включены в блок. Единого глобального мемпула не существует: каждая нода держит собственную копию и разносит её соседям по gossip-сети, поэтому «pending» на деле означает, что ваша транзакция лежит в пулах большинства хорошо связанных нод и ждёт, когда её подберут. Производители блоков выбирают из этого пула по приоритету комиссии — вот почему недоплаченная транзакция может часами ждать, быть заменённой версией с тем же nonce и более высокой комиссией либо быть вытесненной и забытой, так и не потерпев неудачу ончейн. Публичный пул доступен для чтения кому угодно, поэтому ожидающие свопы видны ботам-серчерам ещё до подтверждения. Так устроены не все сети: Solana стримит транзакции прямо будущим производителям блоков, а в EVM-сетях кошельки на ERC-4337, такие как WATS, отправляют UserOperation'ы в отдельный альтернативный мемпул, откуда бандлеры упаковывают их в обычные транзакции.
Между подписью и блоком
Когда вы нажимаете «отправить», транзакция не попадает в блокчейн. Она попадает в очередь, чтобы может быть попасть в блокчейн. Кошелёк транслирует подписанную транзакцию ноде, нода проверяет, что она корректно сформирована, правильно подписана, имеет осмысленный nonce и обеспечена балансом, — и после этого транзакция входит в мемпул, пул ожидающих транзакций, которые ждут, когда их подберёт производитель блоков. Всё, что кошелёк показывает как «pending», живёт в этом зале ожидания, и большинство сбивающих с толку вещей, которые делают транзакции — зависают, исчезают, заменяются, — это поведение мемпула, а не блокчейна.
Что такое мемпул на самом деле
Первый сюрприз: единого канонического мемпула не существует. Каждая нода держит собственный пул ожидающих транзакций и разносит их соседям по сплетням (gossip), так что сеть содержит тысячи сильно пересекающихся, но никогда не идентичных копий. «Транзакция в мемпуле» на деле означает «к этому моменту — в мемпулах большинства хорошо связанных нод». Ноды к тому же применяют локальные правила: минимальную комиссию, ниже которой транзакцию вообще не примут, потолок на число ожидающих транзакций от одного аккаунта и вытеснение самых дешёвых записей при переполнении пула, — поэтому транзакция с очень низкой комиссией может тихо испариться из сети, так и не потерпев неудачу ончейн. Ничего не потрачено, потому что ничего и не исполнялось.
Как транзакции выходят: аукцион комиссий
Блочное пространство дефицитно, и мемпул — то место, где его рынок сходится. Производители блоков собирают самый прибыльный набор ожидающих транзакций, который помещается в блок, что на практике означает: приоритет комиссии решает, кто первым покинет зал ожидания. В EVM-сетях этот приоритет — чаевые, которые вы прикладываете поверх базовой комиссии по EIP-1559: платите текущую ставку — выходите за блок-другой; занижаете — ждёте, пока спрос остынет или транзакцию вытеснят. Одно следствие ловит людей постоянно: поскольку EVM-аккаунты исполняются в строгом порядке nonce, одна дешёвая зависшая транзакция блокирует все последующие, какими бы щедрыми ни были их комиссии.
В ожидании, заменена, отброшена
Поскольку ожидающая транзакция ещё не история, её всё ещё можно отредактировать одним конкретным способом: заменить. Транслировать новую транзакцию с тем же nonce и заметно более высокой комиссией — значит велеть нодам отбросить старую: стандартное лекарство от зависшей отправки, а когда заменяющая транзакция — это перевод нулевой суммы на ваш же адрес, ещё и стандартный способ её отменить. Транзакции, которые ни подтверждаются, ни заменяются, в итоге отбрасываются: вытесняются из пулов и забываются, как будто их не отправляли. Ничего не потеряно, потому что средства никуда не двигались, — но ничего из этого не видно в типичном интерфейсе кошелька, и именно отсюда берётся большинство паник «где моя транзакция?».
Очень публичный зал ожидания
Всё в публичном мемпуле видно кому угодно до подтверждения — включая ботов, которые разбирают ожидающие свопы и действуют по увиденному. Эта видимость — сырьё фронтраннинга и сэндвич-сделок, описанных в разборе проскальзывания: ожидающая сделка объявляет, что именно вы собираетесь купить и на какую худшую цену вы согласились. Именно поэтому жёсткая толерантность к проскальзыванию — реальная защита: она ограничивает то, что может извлечь сэндвич. И именно поэтому растущая доля EVM-трафика идёт сегодня через приватные каналы подачи, минующие публичный пул и ведущие прямо к сборщикам блоков: размен прозрачности на защиту, добавляющий по пути новое допущение о доверии.
Мемпул есть не у всех
Сплетневый мемпул — это дизайнерское решение в духе Ethereum, а не закон природы. Solana его во многом пропускает: расписание лидеров известно заранее, поэтому клиенты пересылают транзакции напрямую будущим производителям блоков, а не наводняют глобальный пул, — одна из причин, почему её состояния «pending» так мимолётны. TON проводит сообщения через собственную шардированную маршрутизацию, а не через одну общую очередь. А ERC-4337 добавляет параллельную полосу в саму EVM: UserOperation'ы ждут в собственном альтернативном мемпуле, где бандлеры их подбирают и заворачивают в обычную транзакцию, — как изложено в разборе бандлеров и UserOperation. Логика зала ожидания та же, зал другой.
Где кошелёк встречается с мемпулом
Мемпул — тот слой, которым WATS занимается за вас, чтобы вам почти не приходилось о нём думать: WATS транслирует через здоровые ноды и отслеживает статус pending в Ethereum, Arbitrum, Optimism, Base, Polygon, BNB Chain, Solana и TON — трёх экосистемах с тремя разными залами ожидания — за одним интерфейсом, так что состояние pending значит для вас одно и то же, в каком бы зале ожидания оно ни застряло. В EVM-сетях действия WATS путешествуют как UserOperation'ы ERC-4337 через альтернативный мемпул, где paymaster оплачивает нативный газ, которого требует производитель блоков, а вы платите одним токеном — ATS. Это не скидка: сеть по-прежнему получает свою полную ставку, и списание в ATS следует за ней — меняется только то, каким токеном вы платите. ATS — это OFT LayerZero, поэтому один баланс покрывает все поддерживаемые сети вместо восьми балансов в нативных монетах, а собранный в виде комиссий ATS сжигается, снижая предложение со 100 000 000 к полу в 30 000 000. WATS — первый и единственный кошелёк, сочетающий единый комиссионный токен на ERC-4337 и OFT с этим сжиганием, и ничто из этого не касается хранения: WATS полностью некастодиален, ключи держите вы, а WATS не держит ни одного.
Практический вывод получается узким. Убрать мемпул нельзя, да и не нужно — это тот самый аукцион, благодаря которому вашу транзакцию вообще включают в блок. Убрать можно другой сценарий отказа, к аукциону отношения не имеющий: оказаться не в той сети без нативной монеты, которой можно сделать ставку. Если вы раз за разом натыкаетесь именно на такой «pending», решение — пополнить один баланс ATS в WATS Hot Wallet, а механика подробно расписана на странице комиссии ATS.
Часто задаваемые вопросы
Что такое мемпул, в одном предложении?
Мемпул — это область ожидания, где нода блокчейна хранит валидные подписанные транзакции, разосланные по сети, но ещё не включённые в блок. Производители блоков выбирают из него, как правило по приоритету комиссии, поэтому мемпул — одновременно и очередь, и аукцион за блочное пространство. Всё, что кошелёк помечает как «pending», ждёт именно там.
Существует ли один глобальный мемпул?
Нет. Каждая нода ведёт собственный пул ожидающих транзакций и делится им с соседями через сплетневую сеть; существуют тысячи пересекающихся локальных представлений, а не одна главная очередь. Поэтому обозреватели иногда расходятся насчёт ожидающей транзакции, и поэтому транзакция с очень низкой комиссией может присутствовать в одних пулах, быть вытесненной из других и в итоге быть забытой всеми.
Почему моя транзакция зависла в pending и можно ли её отменить?
Почти всегда она ждёт в мемпуле, потому что её комиссия ниже текущей ставки — она подтвердится, если спрос остынет, или будет ждать бесконечно. Поскольку ожидающую транзакцию можно заменить, лекарство — повторная трансляция с тем же nonce и более высокой комиссией: либо та же транзакция (для ускорения), либо нулевой перевод самому себе (для отмены). Кошельки обычно предлагают и то и другое кнопками «ускорить» и «отменить». В EVM-сетях это важно не только для одной транзакции: зависший nonce блокирует все последующие транзакции этого аккаунта.
Могут ли другие видеть мою транзакцию до подтверждения?
В публичном мемпуле — да: ожидающие транзакции полностью видны, и боты активно их разбирают — именно это делает возможными фронтраннинг и сэндвич-атаки. Жёсткая толерантность к проскальзыванию ограничивает то, что такие боты могут извлечь из свопа, а в EVM растущая доля трафика использует приватные каналы подачи, полностью минующие публичный пул, — размен той самой прозрачности на защиту.
Ждут ли UserOperation'ы ERC-4337 в том же мемпуле?
Нет. UserOperation — это не транзакция, поэтому они идут через отдельный альтернативный мемпул, где бандлеры их собирают и заворачивают в обычную транзакцию, которая затем попадает уже в обычный мемпул. WATS использует этот путь в EVM-сетях: UserOperation несёт paymaster, оплачивающий нативный газ, — именно так пользователь WATS может платить сетевые комиссии в ATS, а не в нативной монете каждой сети.
Нужна ли мне нативная монета каждой сети, чтобы транзакция вышла из мемпула?
В WATS — нет. WATS Hot Wallet списывает сетевые комиссии одним токеном, ATS, в Ethereum, Arbitrum, Optimism, Base, Polygon, BNB Chain, Solana и TON, так что вас никогда не остановит на трансляции тот факт, что в одной сети у вас нет ETH, а в другой — BNB. В EVM это работает через ERC-4337, где paymaster платит нативный газ, которого требует производитель блоков, а ATS — это OFT LayerZero, поэтому один баланс покрывает все поддерживаемые сети. Это не скидка: сеть всё равно получает свою полную комиссию, а ATS меняет лишь то, каким токеном она оплачена.

