Содержание статьи:
Что такое мемпул простыми словами
Где смотреть размер мемпула
Позиция в мемпуле биткоина
Что поднимает транзакцию в очереди
В этом руководстве мы разберем тему мемпула биткоина. Он также известен как mempool или пул памяти.
Что такое мемпул простыми словами
Если вы хоть раз совершали транзакцию в BTC, вы сталкивались с тем, что время от отправки до получения составляет до 10 минут. В момент загруженности сети это могли быть часы, а иногда и дни. Возможно, вы также слышали фразу «Транзакция застряла в мемпуле». Это именно то место, где хранятся данные в ожидании обработки нодами. В сети биткоина данные — это транзакции, поэтому мемпул также можно назвать пул транзакций.
Если размер мемпула увеличивается, это значит, что транзакций в очереди становится больше. Подтверждение будет занимать больше времени, а для ускорения транзакции придется доплачивать комиссию.
Мемпул биткоина — это место, где транзакции ждут, когда их возьмут майнеры, чтобы добавить в блок на блокчейне.
Mempool является частью BIP 35. Идея заключалась в том, что внешние узлы смогут получить доступ к мемпулам других узлов. Это важно для следующего:
кошельки могут узнать о скорости проведения транзакций до отправки (размер мемпула поделить на размер блока = сколько блоков ждать примерно по 10 минут каждый),
майнеры могут приоретизировать обработку транзакций по комиссиям,
наблюдатель может диагностировать сеть.
Где смотреть размер мемпула
Хотя блокчейн и мемпул связаны друг с другом, но сам мемпул не является какой-то частью на блокчейне. У него нет единого места. Скорее, у каждой ноды биткоина есть собственный мемпул с объемом памяти. Нодами управляют майнеры и операторы полных нод, которые запускают на своих устройствах копии блокчейна.
Чтобы узнать размер мемпула биткоина, нужно воспользоваться онлайн-сервисом: https://www.blockchain.com/ru/charts/mempool-size?timespan=24h
Позиция в мемпуле биткоина
Как транзакции попадают в мемпул, как выходят из него и как сохраняются в блокчейне?
Для попадания в мемпул транзакция должна быть инициирована.
Отправитель открывает свой кошелек, вводит адрес назначения и сумму.
Когда нажата кнопка отправки, первый этап запущен. Для построения транзакции выбираются неизрасходованные выходы и проводятся некоторые проверки.
После этого перевод попадает в список неподтвержденных биткоин-транзакций.
В мемпуле транзакция присоединяется к тысячам других. Каждая транзакция ждет указанного количества подтверждений, обычно шесть. Очередь формируется по времени поступления и размеру комиссии.
Когда первое подтверждение приходит, оно добавляет транзакцию в блок.
Когда транзакция проходит, она очищается из мемпула.
Если транзакция не принимается в течение долгого времени, ее можно вернуть из буфера. В настоящее время установлен срок в 2 недели. После их истечения, если транзакция не прошла, она отправляется обратно отправителю. Это сделано для того, чтобы мемпул не засорялся неподтвержденными транзакциями с нулевой комиссией и мелким отправлением.
Что поднимает транзакцию в очереди
Что нужно сделать, чтобы транзакция прошла за 10 минут? Есть несколько существенных факторов, наиболее важные эти два:
большая комиссия (когда мемпул пуст, можно проводить транзакции почти без комиссий, так как майнерам все равно, но когда конкуренция большая — цена растет),
количество отправлений (на хайпе люди переводят BTC быстрее, чем их могут обработать майнеры), транзакции ниже минимальной комиссии удаляются,
О том, как ускорить транзакцию биткоина.
Это из-за решений по масштабированию вне блокчейна, типа Lightning Network, небольшие платежи стало легче проводить. С ними не нужно следить за мемпулом и напряженностью в сети. Будет интересно посмотреть, как это будет меняться с течением времени.