Почему не подтверждаются транзакции и что такое мемпул

21.12.2017 | 12:40
18726
1

Каждая транзакция, проведённая в сети биткоина, должна получить как минимум 6 подтверждений. То есть транзакция должна быть включена в 6 блоков, после чего она считается подтверждённой. Время нахождения одного блока в сети биткоин — около 10 минут. Таким образом примерно через десять минут после отправления транзакция получит первое подтверждение.

Но это в идеале. Так всё работало разве что тогда, когда криптовалюта не была такой популярной, как сегодня. В наши дни на практике вы скорее всего столкнётесь с тем, что ваша транзакция может провисеть неподтверждённой несколько часов или даже дней.

Почему так происходит

Основная причина, по которой вам возможно придётся подождать подтверждения транзакции несколько часов, это популярность криптовалюты биткоин. Рост количества людей, пользующихся биткоином, привёл к тому, что сеть начала перегружаться.

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

Мемпул

Таким образом формируется очередь из неподтверждённых транзакций, что приводит нас к понятию мемпула.

Мемпул (mempool, сокращённое от memorypool) —  набор всех транзакций, которые пока что не подтвердились и ожидают своей очереди.

Понятие мемпула

Это работает следующим образом:

  1. Пользователь создаёт транзакцию и отправляет её в сеть.
  2. Транзакция попадает в мемпул и ожидает, пока майнер выберет её для включения в следующий блок.
  3. Когда транзакция включается в блок, она получает первое подтверждение.
  4. После получения подтверждения транзакция удаляется из мемпула.

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

Естественно, при снижении активности пользователей уменьшается  количество новых транзакций и сеть разгружается. В таком случае транзакции постепенно подтверждаются и мемпул становится почти пустым.

Как можно ускорить обработку транзакций

Небольшой размер блоков — одно из проблемных мест биткоин-сети. Если раньше это не было проблемой, то сейчас, когда биткоин активно используется миллионами пользователей по всему миру, порой это доставляет серьёзные неудобства.

Одна из особенностей биткоин-транзакций состоит в том, что в каждой транзакции пользователь должен указать размер комиссии (вознаграждения для майнера). А так как нет каких-либо определённых требований к её размеру, пользователи могут устанавливать минимальную комиссию, вплоть до нескольких сатоши.

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

Напрашивается не менее логичный вывод, что можно ускорить обработку своих транзакций, устанавливая больше размер вознаграждения. Так ваши транзакции будут иметь более высокий приоритет для майнеров и быстрее обрабатываться.

  • Больше размер комиссии — транзакция будет подтверждена быстрее

Недостаток такого решения

Такой подход далеко не идеален и всё равно не поможет решить проблему перегруженности сети. Вот несколько причин, по которым увеличение комиссии не сильно поможет пользователям:

  • Слишком большая комиссия. Если все пользователи начнут увеличивать размер вознаграждения, то для повышения приоритета своей транзакции придётся заплатить ещё больше. А это может привести к тому, что комиссия станет очень дорогой и невыгодной для пользователей.
  • Пропускная способность сети не меняется. Транзакции с большой комиссией будут обрабатываться быстро. Но мемпул всё равно будет заполняться транзакциями с небольшим или минимальным вознаграждением.
  • Проблема спам-атак. Работа сети может преднамеренно замедляться злоумышленниками, которые отправляют большое количество транзакций с минимальной комиссией. Это вызывает переполнение мемпула.

Как уменьшить мемпул

Проблема переполнения мемпула доставляет серьёзные неудобства пользователям, которым необходимо быстро провести транзакцию в сети биткоин.

Например, в середине августа 2017 года размер мемпула был около 82 МБ с общим количеством неподтверждённых транзакции до 100 000. Для подтверждения некоторых транзакций могло потребоваться до недели.

Самый эффективный способ решения проблемы — увеличение пропускной способности сети. Если в один блок майнеры смогут включать больше транзакций — мемпул будет разгружаться быстрее и не будет скапливаться многотысячная очередь.

Эту проблему пытались (и до сих пор пытаются) решить разными способами. Часть криптовалютного сообщества выступает за увеличение размера блоков. 1 августа 2017 года был проведён хардфорк биткоина, в результате которого образовалась новая криптовалюта — Bitcoin Cash. В этой версии протокола биткоина размер блока увеличен до 8 МБ.

По поводу оригинальной ветки Bitcoin было предложено внедрить протокол Segregated Witness (SegWit), который состоит из двух этапов:

  • Софтфорк SegWit

В данном протоколе размер блоков остаётся неизменным (1 МБ), но часть данных, а именно подписи транзакций, выносятся за размер блока и хранятся в отдельных файлах. Это позволяет разгрузить блоки и дать возможность большему количеству транзакций поместиться в блоке.

Переход на протокол SegWit был осуществлён 24 августа 2017 года. Почти сразу после перехода на новый протокол количество неподтверждённых транзакций в мемпуле биткоина упало до 5 000.

Каким образом можно уменьшить мемпул

  • Хардфорк SegWit2x

Часть разработчиков и майнеров считают, что SegWit— это лишь временное решение. Сеть рано или поздно переполнится и размер блока всё равно придётся увеличивать.

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

Аудиоподкасты по теме
Подкаст Николая Петрова
Николай Петров

Активная торговля криптовалютных инструментов

Эксперт по криптовалютам Константин Панов
Константин Панов

С чего начать майнинг криптовалюты

Николай Петров
Николай Петров

Будущее криптовалют и инвестиций

Эксперт Ольга Громова
Ольга Громова

Криптовалюты как будущее фондового рынка

Комментарии (1)

Имя

E-mail

Евгений31.01.2021 | 20:39
Спасибо, позновательно
Нравится
Ответить
create blog
Онлайн конвертер
Введите сумму

Взят средний курс по биржам

create blog trade cryptocurrency