Мемпул: где ваша транзакция ждёт, прежде чем стать реальной

·5 мин. чтения·Автор: SSP Editorial Team
Обложка SSP Academy: что такое мемпул

Мемпул: где ваша транзакция ждёт, прежде чем стать реальной

Вы нажимаете «Отправить», и кошелёк сообщает, что транзакция отправлена в сеть. Обозреватель её показывает, но как «ожидающую», а не подтверждённую. Несколько секунд, минут, а иногда и часов ваша транзакция одновременно существует и не существует.

Место, где она находится в этот промежуток, называется мемпулом. Понимание того, как он устроен, объясняет, почему комиссии меняются от минуты к минуте, почему некоторые транзакции застревают и почему ожидающая транзакция — это обещание, а не платёж.

Что такое мемпул на самом деле

«Мемпул» (mempool) — сокращение от memory pool, «пул памяти». Это набор действительных неподтверждённых транзакций, которые узел держит в памяти, ожидая, пока их заберёт производитель блоков.

Первый сюрприз: единого мемпула не существует. У каждого узла он свой. Когда вы отправляете транзакцию, кошелёк передаёт её узлу, тот проверяет её и пересылает своим пирам, а они — дальше. За считаные секунды копия есть у большей части сети, но пул каждого узла может немного отличаться в зависимости от того, что до него дошло, от его ограничений по размеру и собственных правил.

Транзакция в мемпуле прошла базовые проверки: подписи действительны, а монеты, которые она тратит, существуют. Но она ещё не включена в блок, и пока этого не произошло, она всё ещё может так и не состояться.

Как выбираются транзакции

Место в блоке ограничено, а производители блоков — майнеры в сетях с доказательством работы, валидаторы в сетях с доказательством доли — получают вознаграждение отчасти за счёт комиссий. Поэтому в целом они заполняют блоки транзакциями, которые платят больше всего за занимаемое место.

В Bitcoin и похожих сетях это означает ставку комиссии: сатоши за виртуальный байт, а не общую сумму комиссии. Небольшая транзакция со скромной комиссией может обойти крупную, которая в сумме платит больше. В Ethereum и других EVM-сетях это означает чаевые за приоритет сверх базовой комиссии, которую сеть сама корректирует от блока к блоку.

Вот почему комиссии растут и падают вместе со спросом. Когда в мемпуле спокойно, почти любая разумная комиссия попадает в следующий блок. Когда там тесно — популярный запуск, паника на рынке, волна активности, — транзакции перебивают ставки друг друга, а транзакции с низкой комиссией стоят и ждут.

Почему транзакции застревают

Транзакция, заплатившая слишком мало для текущих условий, не проваливается — она ждёт. Если спрос остаётся высоким, она может долго висеть в мемпуле. Однако узлы не хранят транзакции вечно: когда их пулы заполняются, они выбрасывают самые низкооплачиваемые, а многие удаляют всё, что старше пары недель.

Выброшенная транзакция так и не была подтверждена, значит, средства никуда не перемещались, — но пока она не исчезла отовсюду, её всё ещё могут подтвердить позже. Это и есть неприятное промежуточное состояние: платёж ни выполнен, ни отменён.

Обычно решение — заплатить больше. Replace-by-fee и похожие приёмы позволяют отправить в сеть новую версию той же транзакции с более высокой комиссией, которая заменит старую в мемпуле.

Ожидающее — значит публичное

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

Для большинства переводов это почти не важно. Для торговли — может быть очень важно. Боты следят за мемпулом в поисках крупных свопов и размещают вокруг них собственные транзакции, чтобы заработать на движении цены: и фронтраннинг, и сэндвич-атаки основаны на том, что вашу транзакцию видно, пока она ожидает подтверждения.

Это важно и для всех, кто получает средства. Ожидающая входящая транзакция ещё может быть заменена или выброшена. Это пока не ваши деньги.

От ожидания к окончательности

Включение в блок — это первое подтверждение: транзакция покинула мемпул и вошла в цепочку. Каждый блок, построенный поверх, делает её отмену всё труднее. Сколько подтверждений достаточно, зависит от сети и суммы, но правило везде одно: ожидающая — значит возможная, подтверждённая — вероятная, глубоко подтверждённая — окончательная.

Как это выглядит в SSP

Отправляя средства из SSP, вы выбираете, за какой приоритет платить. Экран отправки предлагает варианты «медленно», «обычно» и «быстро» на основе текущего состояния сети, с оценкой того, сколько времени, скорее всего, займёт каждый, а в EVM-сетях — ещё и пользовательский вариант, если вы хотите задать комиссию сами.

И SSP Wallet, и SSP Key должны одобрить транзакцию, прежде чем что-либо будет отправлено в сеть. Как только транзакция попадает в сеть, мемпул работает для SSP так же, как для всех остальных: выбранная вами комиссия определяет, насколько быстро её заберут, и пока она не подтверждена, она остаётся ожидающей.

Честный итог

Мемпул — это зал ожидания между «отправлено» и «готово». Это много залов, а не один; он публичен; и приоритет в нём получает тот, кто больше платит за место в блоке.

Выбирайте комиссию в зависимости от того, как быстро вам нужно подтверждение, не считайте ожидающую транзакцию — свою или чужую — окончательной и помните, что всё, что вы отправляете в сеть, видно всей сети ещё до завершения расчёта.

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

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

Квадратная обложка SSP Academy: застрявшие криптотранзакции и замена по комиссии

Застрявшие транзакции: почему это происходит и как вытаскивает замена по комиссии

Неподтверждённая транзакция не сломана — вы недоставили на аукционе, который всё ещё идёт. Почему нет тайм-аута, как на самом деле работает замена по BIP 125, какой порог комиссии всех подводит и какие сети вовсе не дают это исправить.

6 min
Квадратная обложка SSP Academy: подтверждения, реорганизации и окончательность в блокчейне

Подтверждения и реорганизации: насколько окончательным бывает окончательное?

Короткие реорганизации — обычное дело, шесть подтверждений — соглашение масштаба биткоина, а не закон, и глубина что-то значит лишь по отношению к стоимости производства блока. Почему они важны при получении и почти не важны при отправке.

7 min
Квадратная иллюстрация, показывающая паттерн MEV сэндвич-атаки

MEV: фронтраннинг, сэндвичинг и как себя защитить

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

7 min