Мемпул биткоина


Когда биткоин-транзакция передается в сеть, то сначала ее проверяют ноды (узлы) — компьютеры-участники сети Bitcoin. Пройдя проверку, она помещается в область неподтвержденных транзакций данного узла и хранится там в ожидании, пока какой-нибудь майнер не включит ее в блок. Вот этот «зал ожидания» и есть mempool.

Что такое Bitcoin Mempool?

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

Отдельных мемпулов существует столько же, сколько и узлов. Из-за того, что сеть Биткоина распределена, не все узлы получают одинаковые транзакции одновременно. Поэтому некоторые узлы хранят больше транзакций, чем другие. А в каждый блок, размер которого составляет 1 МБ, потом их помещается уже 2-3 тысячи.

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

Принцип работы мемпула

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

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

На получение первого подтверждения в среднем должно уходить 10 минут, что соответствует времени добычи блока. Но на практике, в зависимости от количества ожидающих транзакций в мемпуле в любой момент времени, этот период может быть растянут. Такие случаи вызывают значительные задержки при подтверждении. Это происходит потому, что майнеры тоже не берутся подтверждать транзакции с маленькой комиссией. Диаграмма №2 показывает актуальные комиссионные.

Размер мемпула

Запустить собственный узел на имеющемся оборудовании может кто угодно. Это объясняет разнообразие размеров мемпулов в сети Bitcoin, ведь каждый узел имеет уникальную емкость памяти. Размеры обычно представлены как единица памяти и измеряются в МБ.

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

Сейчас размер мемпула ~4 МБ. Значит большинству транзакций придется ждать генерации как минимум 3 блоков, пока они не будут подтверждены в составе следующего блока. С учетом 10 минут на блок в теории, получится ~30 минут ожидания в очереди. Диаграмма №3 показывает текущий размер мемпула.

USD-счет пользователя в личном кабинете, покупка и продажа долей индексов, а также прибыль или убытки по ним являются виртуальной симуляцией. Мы не проводим никакие операции с настоящей валютой.