Что такое мемпул и как он работает
Что такое мемпул и как он работает. Мемпул — это временное хранилище для всех неподтвержденных транзакций в блокчейне. Его также можно назвать «комнатой ожидания», расположенной на узле блокчейна (нода). В этом виртуальном хранилище содержатся транзакции, которые были подтверждены, но еще не были обработаны. Этот термин происходит от английских слов «memory» (память) и «pool» (общий фонд).
Что такое мемпул Bitcoin?
Каждая транзакция, проведенная в сети Биткоина, должна получить не менее 6 подтверждений. То есть транзакция должна быть включена в 6 блоков, после чего она считается подтвержденной. Время нахождения одного блока в сети Биткоин — около 10 минут. Таким образом примерно через десять минут после отправки транзакция получит первое подтверждение. Но это в идеале. Так всё работало разве что тогда, когда криптовалюта не была такой популярной, как сегодня. В наши дни на практике вы, вероятнее всего, столкнетесь с тем, что ваша транзакция может провисеть неподтвержденной несколько часов или даже дней. Основная причина, по которой вам, возможно, придется подождать подтверждения транзакции несколько часов, это популярность криптовалюты Биткоин. Рост количества людей, пользующихся биткоином, привел к тому, что сеть начала перегружаться.
Пропускная способность сети ограничена стандартным размером блоков — 1 МБ. Если общий размер транзакций, проведенных в течение 10 минут, превышает 1 МБ — все транзакции не поместятся в блок. Оставшимся придется ждать следующего блока, а за это время может накопиться еще «пачка» новых транзакций. Таким образом формируется очередь из неподтвержденных транзакций, что приводит нас к понятию мемпула.
Мемпул (mempool, сокращенное от memorypool) — набор всех транзакций, которые пока не подтвердились и ожидают своей очереди.

Mempool — это своего рода комната ожидания для транзакций Bitcoin, которую имеет каждый полный узел для проверенных транзакций, но все еще ожидает подтверждения майнеров. Майнеры, когда им нужно создать блок Биткоина, выбирают самые удобные из них и вставляют их в блок, который они собираются добыть.
Теперь, когда мы это знаем, давайте рассмотрим подробнее, как происходит весь этот процесс, если вам интересно углубиться в эту концепцию.
Роль мемпула в блокчейн-транзакциях
Мемпулы играют важную роль в схеме работы нод блокчейна. Для записи транзакции в блокчейн нужно, чтобы её сначала добавили в блок (составляющая блокчейна). Не все ноды блокчейна могут создавать блоки. Например, в блокчейн-системах, работающих на базе алгоритма Proof-of-Work (PoW) — таких, как Биткоин, только майнеры имеют право добавлять транзакции в блок. В блокчейн-системах на базе Proof-of-Stake (PoS) — таких, как Ethereum, добавлением транзакций в блок заняты валидаторы.
После создания транзакции пользователь вынужден ждать, пока валидатор или майнер одобрит её для дальнейшего добавления в блок, с последующей записью в блокчейн. Процесс не происходит мгновенно. Всё то время, пока транзакция ждёт проверки, включения в блок и записи в блокчейн, она находится в том самом мемпуле.

Как работает мемпул биткоина?
Мемпул функционирует по принципу «первым пришел, первым ушел» (First-In-First-Out, FIFO). Транзакции, поступившие в мемпул раньше, имеют более высокий приоритет на подтверждение, чем поступившие позже. Это означает, что майнеры обычно выбирают транзакции с более высокими комиссиями, чтобы включить их в следующий блок.
Таким образом, если вы хотите, чтобы ваша транзакция была обработана быстро, вы можете увеличить комиссию.
Стоит уточнить, что в одной блокчейн-сети может существовать множество мемпулов. Каждый узел сети имеет своё собственное цифровое пространство, выделенное для хранения транзакций, ожидающих проверки и включения в блокчейн. Все эти мемпулы блокчейна, разбросанные по разным узлам, объединяются в один общий коллективный мемпул.

Рассмотрим принцип работы мемпула на примере одной транзакции:
- Создание транзакции. Представим, что Алиса хочет отправить эфиры Стиву. Она создает транзакцию, указывая адрес получателя (Стива), сумму, которую она хочет отправить. Далее Алиса оплачивает комиссию. После этого, транзакция отправляется в сеть блокчейна.
- Попадание в мемпул. Транзакция Алисы сначала попадает в мемпул одной из нод сети. Транзакция ожидает в этом мемпуле своей очереди на обработку.
- Валидация. Сетевая нода, владеющая мемпулом, начинает валидацию транзакции. Она проверяет, достаточно ли средств на счету Алисы для совершения этой операции, и убеждается, что транзакция соответствует правилам блокчейна.
- Ожидание в мемпуле. После успешной валидации транзакция переходит в режим ожидания в ноде мемпула после успешной валидации. Теперь она готова к включению в следующий блок, который будет добавлен в блокчейн.
Выбор майнера. Майнеры выбирают транзакции из мемпула для включения в новый блок. Обычно они выбирают транзакции с более высокими комиссиями, поскольку это для них выгоднее.
Включение в блок. Транзакция Алисы выбрана майнером и включена в новый блок. Этот блок затем добавляется в цепь блоков. Транзакция Алисы становится видимой всем участникам сети.
Распространение информации. Информация о новом блоке и транзакции Алисы распространяется по всей сети блокчейна.

Менеджер MEMPOOL
Проблема с механизмом хранения отложенных транзакций заключается в том, что определенные узлы имеют все неподтвержденные транзакции, включая те, которые так и не подтвердятся и останутся в подвешенном состоянии. Это приводит к возникновению ошибок из-за количества ресурсов, необходимых для его работы.
Для решения этой проблемы необходимо простое решение, которое заключается в том, чтобы mempool имел механизм удаления определенных транзакций и оставления других.
Таким образом, он работает со списком приоритетов, где устанавливает минимальную плату за транзакции, а затем устраняет другие.
Любая транзакция, имеющая меньшую плату, чем установленная узлом, удаляется, если она уже была в мемпуле, или вообще не добавляется в мемпул. Любая операция, превышающая этот нижний предел, добавляется в список вместе с другими.
Перегрузка мемпула
Перегрузка в мемпуле возникает в периоды, когда объем запрашиваемых операций превышает количество транзакций, которые могут поместиться в один блок. Вот несколько факторов, которые могут стать причиной замедления работы мемпула:
- Перегрузка мемпула. Увеличение количества транзакций приводит к нехватке места в блоках, что становится причиной перегрузки мемпула. Например, среднее количество транзакций в одном блоке блокчейна Биткоина составляет около 3150. Если количество ожидающих транзакций значительно превысит это число в течение нескольких часов, сеть, а вслед за ней и мемпулы, будут перегружены.

Среднее количество транзакций в блоке блокчейна биткоина.
- События или новости. События и новости, непосредственно влияющие на блокчейн-индустрию, такие, как запуск токенов, аирдропы или поддержка криптоиндустрии знаменитостями, могут вызвать внезапные всплески спроса на транзакции. Скачки активности способны приводить к перегрузкам мемпула.
- Форки или обновления сети. Изменения сети, такие как форки или обновления блокчейна, могут вызвать мгновенную перегрузку мемпула. Причина в том, что ноды будут заняты обновлениями. Зная о причинах перегрузок мемпула, разработчики могут вносить в проекты необходимые коррективы, чтобы минимизировать последствия.
Как можно ускорить обработку транзакций
Небольшой размер блоков — одно из проблемных мест биткоин-сети. Если раньше это не было проблемой, то сейчас, когда биткоин активно используется миллионами пользователей по всему миру, порой это доставляет серьезные неудобства.
Одна из особенностей биткоин-транзакций заключается в том, что в каждой транзакции пользователь должен указать размер комиссии (вознаграждения для майнера). А поскольку нет каких-то определенных требований к ее размеру, пользователи могут устанавливать минимальную комиссию, вплоть до нескольких сатоши.
Для пользователей это хорошо, поскольку не нужно платить фиксированный сбор и можно сэкономить. Но для майнеров такое положение дел не очень выгодно. Поэтому вполне логично, что из заполненного мемпула майнеры в первую очередь выбирают для подтверждения транзакции, у которых размер комиссии больше. Напрашивается не менее логичный вывод, что можно ускорить обработку своих транзакций, устанавливая больший размер вознаграждения. Так ваши транзакции будут иметь более высокий приоритет для майнеров и быстрее обрабатываться.
Чем больше размер комиссии — транзакция будет подтверждена быстрее. Поэтому ответ на вопрос о том, сколько ждать подтверждения транзакции биткоина, зависит от уровня нагрузки мемпула и щедрости комиссий. Чем ниже нагрузка и выше плата — тем быстрее пройдет операция. Перегрузка мемпула и низкая комиссия — наоборот, могут стать причиной замедления подтверждения транзакции биткоина или любой другой криптовалюты.
Итог
Как видим, мемпул — это очень важная часть экосистемы Bitcoin, и по этой причине его необходимо понимать. Теперь мы знаем, что происходит, когда сеть Биткоин становится перегруженной, вследствие чего транзакции занимают больше времени, чем обычно, и нам приходится платить больше комиссионных.
Мемпул — важнейшая часть инфраструктуры блокчейна, которая обеспечивает работу сети и обработку транзакций. Понимание того, как он функционирует, и как комиссии влияют на его работу, помогает пользователям принимать грамотные решения о том, как выгодно совершать транзакции.
Интересует основы криптовалюты? Напишите нам и мы Вам поможем разобраться в этом.