В экосистеме Биткоина нарастает новый кризис, на этот раз вызванный уже не демонстрациями и экспериментами, а вполне естественными причинами. В последнее время отправить транзакцию с низкой или даже стандартного размера комиссией стало затруднительно. Проблемы начались еще в конце февраля.
"Совершенно неожиданно" выяснилось, что практически все добытые 29 февраля блоки заполнены до отказа, и места для дополнительных транзакций не осталось. Это в очередной раз подтверждает, что необходимо как можно скорее начать принимать реальные меры по масштабированию сети Биткоина, и это нужно сделать до того, как сеть окончательно выйдет из-под контроля.
Транзакции Биткоина зависают
При отправлении транзакций с нормальным размером комиссии оправдана только небольшая задержка. Майнинг Биткоина устроен так, что предпочтение отдается транзакциям, основанным на уплате комиссионных. Низкие комиссионные за транзакцию или их отсутствие обычно вызывают задержку, которая связана с ожиданием включения транзакции в ближайшие блоки.
Однако в последние дни с задержкой подтверждения сталкиваются не только транзакции с низкими комиссионными, но и те, которые имеют стандартный и даже большой размер комиссий. Это создает в пространстве Биткоина очень затруднительную ситуацию. На 1 марта огромной комиссии в размере 0.001 BTC, которая на момент написания равняется примерно 43 американским центам, уже недостаточно, чтобы получить гарантированное подтверждение за несколько следующих блоков в сети Биткоина.
В пиках загрузки подтверждение получали только самые приоритетные транзакции с комиссионными, составляющими примерно 0.0044 BTC за килобайт, или 1.90 доллара США! Такая ситуация без влияния искусственных факторов в сети Биткоина создалась впервые.
Повышение комиссионных за транзакцию исключительно ради перемещения финансов в сети Биткоина еще больше свидетельствует о том, как сильно споры о размере блока вредят экосистеме. Непрогнозируемые задержки и оплата комиссионных размером почти в 2 доллара за простую транзакцию совершенно неприемлема, так как в этом случае Биткоин теряет всю привлекательность в сравнении с другими электронными платежными системами и даже обычными банковскими переводами.
Судя по сложившейся ситуации, быстрого и радикального улучшения пока не предвидится. Пулы памяти майнеров заполнены транзакциями, ожидающими подтверждения сети, и их число продолжает оставаться высоким, падая только на непродолжительное время. Некоторые могут отнести это к росту популярности Биткоина, однако такие задержки подтверждения никому не нужны.
На данный момент нет никаких признаков того, что происходит очередной стресс-тест сети Биткоина, как это случалось не менее трех раз в прошлом году. Некоторые связывают эти события с раскруткой проекта Bitcoin XT, сторонники которого не пожалели потратить сотни BTC на доказательство того, что сеть нуждается в улучшении. Однако, никто не объявил о своей ответственности за проведение этих стресс-тестов.
Алекс Петров из Bitfury написал 1 марта в Твиттере, что происходит спам-атака на сеть Биткоина, но конкретные доказательства приведены не были, и вероятно широкомасштабная атака, подобная прошлогодним, не проводилась. Тем более, что атака, способная повлиять на сеть и затруднить транзакции с высокими комиссиями, стоит очень дорого. Если... ее не проводит один из крупных пулов, который может получить часть потраченного обратно в виде комиссий. Но ни один из ведущих пулов не заинтересован в проведении таких атак, скорее, наоборот.
Разбор ситуации 29 февраля
Итак, давайте посмотрим, почему кризис обострился именно 29 февраля, и что привело к росту необходимой комиссии в несколько десятков раз, пусть и на короткое время. За сутки было добыто 133 блока, из которых:
- 8 блоков были размером менее 10 Кб. Это могут быть (но не обязательно) SPV-блоки, добываемые по упрощенной схеме. Они содержат только собственные транзакции майнера и приносящую 25 BTC так называемую "coinbase" транзакцию, которая есть в каждом блоке и за которую, собственно, и работают все майнеры.
- 7 блоков ограничены примерно 750 Кб - это программный предел, устанавливаемый некоторыми пулами для ускорения обработки и отправки блока в сеть.
- Все остальные 118 блоков были более 930 Кб, причем большинство превышали 998 Кб - иными словами, были "забиты под завязку".
Вы можете увидеть конкретные цифры в обсуждении на форуме или провести собственный анализ.
Это значит, что сеть Биткоина уже на самом деле приближается к техническому пределу заполнения блоков, и даже увеличение комиссий не становится гарантией быстрой доставки биткоинов получателю. Почему же пик кризиса пришелся именно на 29 февраля? Причина очень проста. Как вы наверно знаете, средняя дистанция между блоками Биткоина программно установлена на 10 минут, а значит, в сутки должно добываться в среднем 144 блока. Но когда вычислительная мощность майнеров непрерывно растет, то блоки добываются несколько быстрее, а значит в сутки создается не 144 блока, а больше.
Например, при росте мощности на 10% в сутки в среднем будет генерироваться 144 + 14 = 158 блоков. В последние несколько месяцев наблюдался постоянный рост сложности, поэтому за счет большего количества блоков пропускная способность сети также взорастала примерно на 10%.
Но именно 29 февраля мощность майнинга значительно упала, и, как уже указано выше, было добыто всего 133 блока - на 11 меньше среднего значения. Неизвестно, что послужило причиной - отключение какого-то крупного датацентра с ASIC-майнерами, или обычная флуктуация, то есть "неудача" для майнеров, что время от времени происходят в сети. Однако, именно совпадение снижения добычи с ростом количества транзакций послужили главной причиной обострения кризиса.
Программные лимиты майнеров
Еще одной причиной недостаточной эффективности сети служат ограничения на объем транзакций, устанавливаемые самими майнерами - они помещают в блок транзакции не на 1Мб, а на меньшую величину - например, на 750, 940 или 950 Кб - "на всякий случай" или для получения небольшого конкурентного преимущества. Но сейчас многие пулы, озабоченные "пробками" в сети, начали поднимать или вовсе убирать этот лимит.
Ситуация на момент написания статьи по основным пулам такова (по убыванию производительности):
- DiscusFish/F2Pool (26%) - лимита нет, редкие пустые блоки.
- AntPool (23%)- на разных серверах прослеживаются лимиты в 750 и 935Кб, кроме того, много пустых блоков - до 20% в последние дни. Самый неаккуратный пул.
- BTCC (15%) - с 1 марта установлен лимит в 990 Кб, небольшое количество пустых блоков.
- Bitfury (11%) - лимит 999 Кб или отсутствует. Пустых блоков нет.
- BitClub Network (4-5%)- лимит 999 Кб или отсутствует. Пустых блоков нет.
- KNCMiner (4-5%) - лимит 935 Кб, редкие пустые блоки.
- BW Pool (4-5%)- лимит 950 Кб, редкие пустые блоки.
- Slush (4-5%) - лимит 999 Кб или отсутствует. Пустых блоков нет.
- Kano CKPool - лимит 990 Кб. Пустых блоков нет.
- Solo CKPool - лимит 999 Кб или отсутствует. Пустых блоков нет.
- GHash.IO - лимит 750 Кб. Пустых блоков нет.
- Telco 214 - лимит 750 Кб. Пустых блоков нет.
- Eligius - лимит 930 Кб, редкие пустые блоки.
- BitMinter - лимит 990 Кб. Пустых блоков нет.
Нарастание кризиса
Как можно видеть, большинство крупных пулов (за исключением Antpool), контролирующих около 90% мощностей, ответственно подошли к своим обязанностям. Заполнение блоков близко к теоретическому пределу и рассчитывать на значительный резерв здесь не приходится. Это значит, что даже небольшие изменения в объемах транзакций и случайные факторы в майнинге начинают оказывать значительное влияние на пропускную способность сети Биткоина.
Это увеличивает операционные расходы и риски в сроках доставки денег для всех пользователей сети. Кризис реален и обусловлен не временными или искусственными факторами, которые можно быстро устранить или надеяться на их исчезновение. От него нельзя просто так отговориться, пользователи испытывают все трудности на собственных кошельках.
Это значит, что разработчикам необходимо ускорить разработку по принятым решениям, иначе Биткоин понесет ощутимые репутационные потери. От этого проиграют все, если технические проблемы не будут устранены быстро и эффективно.
Устранят ли проблему SegWit и блок 2 Мб?
К сожалению, на данный момент нет четкого ответа на этот вопрос. Использование SegWit и блока размером в 2 Мб позволят включать в блок больше транзакций, что приведет и к снижению комиссий. Однако, на какое время хватит эффекта двух- или трехкратного увеличения пропускной способности, прогнозировать трудно. Если популярность Биткоина будет продолжать расти, увеличение объема транзакций непредсказуемо, и мы можем вскоре получить аналогичную ситуацию уже с большими блоками.
Последний релиз Bitcoin Core содержит возможность повторной отправки транзакций с высокими комиссионными по желанию пользователя, и это частично решает проблему задержек подтверждения сети для тех, кому важна срочность. Однако, во-первых это убивает микротранзакции, которые преподносятся как одно из преимуществ криптовалют. А во-вторых, всем понятно, что пользователям Биткоина необходимо более долгосрочное решение, и эта задача должна стать первоочередной для разработчиков.