Вы наверняка замечали, что во время проведения транзакции, она не проходит сразу: происходит небольшая задержка. Когда транзакция подтверждена, но еще не проведена, она находится в мемпуле. И нет, это никак не связано с мемами. Мемпул — это незаметная, но чрезвычайно важная часть блокчейн-технологии, которая управляет транзакциями, обеспечивая их отправку и подтверждение в сети. В этой статье мы познакомимся с этим механизмом и разберемся, как он работает.
Мемпул — это временное хранилище для всех неподтвержденных транзакций в блокчейне. Его также можно назвать «комнатой ожидания», расположенной на узле блокчейна (нода). В этом виртуальном хранилище содержатся транзакции, которые были подтверждены, но еще не были обработаны. Этот термин произошел от английских слов «memory» (память) и «pool» (общий фонд).
К примеру, когда кто-то отправляет биткоины, транзакция сначала попадает в мемпул. Там она ждет, пока майнеры примут ее, включат в новый блок и добавят в блокчейн.
Мемпул функционирует по принципу «первым пришел, первым ушел» (First-In-First-Out, FIFO). Транзакции, поступившие в мемпул раньше, имеют более высокий приоритет на подтверждение, чем поступившие позже. Это означает, что майнеры обычно выбирают транзакции с более высокими комиссиями, чтобы включить их в следующий блок.
Таким образом, если вы хотите, чтобы ваша транзакция была обработана быстро, вы можете увеличить комиссию.
Стоит уточнить, что в одной блокчейн-сети может существовать множество мемпулов. Каждый узел сети имеет свое собственное цифровое пространство, выделенное для хранения транзакций, ожидающих проверки и включения в блокчейн. Все эти мемпулы блокчейна, разбросанные по разным узлам, объединяются в один общий коллективный мемпул.
Рассмотрим принцип работы мемпула на примере одной транзакции:
Создание транзакции Представим, что Алиса хочет отправить эфиры Стиву. Она создает транзакцию, указывая адрес получателя (Стива), сумму, которую она хочет отправить. Далее Алиса оплачивает комиссию. После этого, транзакция отправляется в сеть блокчейна.
Попадание в мемпул Транзакция Алисы сначала попадает в мемпул одной из нод сети. Транзакция ожидает в этом мемпуле своей очереди на обработку.
Валидация Сетевая нода, владеющая мемпулом, начинает валидацию транзакции. Она проверяет, достаточно ли средств на счету Алисы для осуществления этой операции, и убеждается, что транзакция соответствует правилам блокчейна.
Ожидание в мемпуле После успешной валидации транзакция переходит в режим ожидания в мемпуле ноды. Теперь она готова к включению в следующий блок, который будет добавлен в блокчейн.
Выбор майнером Майнеры выбирают транзакции из мемпула для включения в новый блок. Обычно они выбирают транзакции с более высокими комиссиями, так как это для них более выгодно.
Включение в блок Транзакция Алисы выбрана майнером и включена в новый блок. Этот блок затем добавляется в цепь блоков. Транзакция Алисы становится видимой всем участникам сети.
Распространение информации Информация о новом блоке и транзакции Алисы распространяется по всей сети блокчейна.
Загруженность мемпула может варьироваться в зависимости от активности в сети. Перегрузка сети происходит, когда увеличение числа транзакций вызывает недостаток места в блоках, что становится причиной переполнения мемпула.
Например, среднее количество транзакций, которые могут поместиться в одном блоке блокчейна биткоина, составляет около 3150. Если количество ожидающих транзакций значительно превышает данное число в течение нескольких часов, это приводит к перегрузке сети.
Мемпул — это важнейшая часть инфраструктуры блокчейна, которая обеспечивает работу сети и обработку транзакций. Понимание того, как он функционирует, и как комиссии влияют на его работу, помогает пользователям принимать грамотные решения о том, как выгодно совершать транзакции.