Что такое мемпул?
Мемпул в контексте блокчейна относится к набору транзакций, которые ожидают подтверждения и включения в следующий блок. Когда кто-то отправляет криптовалюту или выполняет другие операции на блокчейне, эти операции сначала попадают в мемпул.
Термин «Мемпул» — производное от английских «memory» (память) и «pool» (пул, общий фонд).
Каждый узел (нода) в сети блокчейна, будь то Bitcoin или другая криптовалюта, имеет свой мемпул. В мемпуле содержатся транзакции, ожидающие проверки и включения в новый блок, который в свою очередь будет добавлен к цепочке блоков. Транзакции в мемпуле остаются в нем до тех пор, пока они не будут включены в блок.
Процесс выбора транзакций из мемпула и включения их в блок основан на механизмах консенсуса, используемых в блокчейне. Например, в блокчейне Bitcoin транзакции с более высокой комиссией имеют больший приоритет на включение в блок, так как майнеры могут выбирать транзакции с более высокой комиссией для максимизации своей прибыли.
Криптовалюта биткоин (BTC) стала проектом, который распространил популярность технологии блокчейн. Первоначально создатель монеты — Сатоши Накамото — внедрил концепцию использования мемпула для проведения транзакций, что стало новшеством на рынке. Позже этот подход был принят и адаптирован другими блокчейн-проектами, включая Ethereum.
Размер мемпула.
Каждая запись о транзакции, которая добавляется в «комнату ожидания», представляет собой сегмент информации, размером не превышающий нескольких килобайт (КБ). Общий объем данных, занимаемых всеми этими килобайтами, формирует размер мемпула.
Размер мемпула оказывается значительным, если в нем накапливается значительное количество ожидающих подтверждения транзакций.
Роль мемпула в транзакциях блокчейна.
Мемпулы играют существенную роль в механизме функционирования узлов блокчейна. Для того чтобы совершить запись о транзакции в блокчейн, сначала необходимо включить её в блок, который является составной частью цепи блоков. Однако далеко не все узлы блокчейна обладают способностью формировать новые блоки. В системах, основанных на алгоритме Proof-of-Work (PoW), таких как Bitcoin, данное право принадлежит лишь майнерам. В то время как в блокчейн-системах, построенных на алгоритме Proof-of-Stake (PoS), как, например, Ethereum, процесс добавления транзакций в блок лежит в руках валидаторов.
После того как транзакция создана, пользователь вынужден ожидать её одобрения валидатором или майнером, перед тем как она будет включена в блок и затем записана в блокчейн. Этот процесс не осуществляется мгновенно. Всё время, пока транзакция ожидает проверки и включения в блок, она находится в мемпуле.
Как работает мемпул
Для начала следует уточнить, что в рамках одного блокчейна существует возможность наличия нескольких мемпулов. У каждой ноды имеется определенное цифровое пространство, предназначенное для сохранения транзакций, которые находятся в ожидании проверки и последующего включения в блокчейн. Все индивидуальные мемпулы, которые находятся на распределенных узлах блокчейна, объединяются в единый коллективный мемпул.
Когда пользователь инициирует проведение транзакции, он направляет ее на определённую ноду. Нода добавляет данную операцию в свой собственный мемпул и ставит ее в очередь на проверку валидности данных. По завершении этой проверки транзакция помещается в статус ожидания. Такие операции позже могут быть включены майнерами и валидаторами в новые блоки с целью дальнейшего объединения с основным блокчейном.
Как только транзакция успешно интегрируется в блокчейн, информация о ней распространяется между всеми нодами. Таким образом, сетевые узлы могут убрать несущественные данные о данной операции из своих локальных мемпулов. Вот таким образом осуществляется синхронизация различных мемпулов.
Перегрузка мемпула
Перегрузки в мемпуле возникают, когда объем операций, требующих обработки, превышает вместимость доступных блоков. Ряд факторов способен вызвать замедление в работе мемпула:
- Интенсивное сетевое использование: Повышенный объем транзакций может привести к нехватке места в блоках, спровоцировав перегрузку мемпула. К примеру, стандартный размер блока в сети биткоина вмещает около 3150 транзакций. Если количество ожидающих транзакций на протяжении нескольких часов превысит это значение, сеть и мемпул могут столкнуться с перегрузкой.
- Внештатные события и новости: События, имеющие прямое отношение к криптовалютной индустрии, такие как выпуск новых токенов, проведение аирдропов или активная поддержка знаменитостями, могут спровоцировать резкий рост спроса на транзакции. Эти внезапные всплески активности могут привести к перегрузкам в мемпуле.
- Сетевые обновления и форки: Изменения в сети, такие как обновления протоколов или проведение форков, могут мгновенно нагрузить мемпул. Это происходит потому, что узлы сети заняты обработкой обновлений и адаптацией к новым условиям.
Разработчики, осведомленные о причинах перегрузок в мемпуле, могут внести необходимые изменения в проекты с целью снижения негативных последствий.
Приоритет транзакций
Один из главных факторов, определяющих порядок обработки транзакций в памяти мемпула, связан с комиссиями. Майнеры и валидаторы имеют возможность выбирать, какие транзакции следует включить в новый блок, ориентируясь на потенциальную прибыль. Другими словами, скорость проведения операции тесно связана с суммой, которую пользователь готов уплатить за её выполнение.
Таким образом, время ожидания подтверждения биткоин-транзакции зависит от текущей загруженности памяти мемпула и уровня комиссий. При низкой загруженности и высокой комиссии операция будет выполнена быстрее. В то время как перегрузка мемпула и низкая комиссия, наоборот, могут вызвать задержку в подтверждении транзакции биткоина или другой криптовалюты.