Проблема масштабируемости биткойна

11.03.2021

Проблема масштабируемости биткойна связана с изначальным ограничением разработчиками размером в один мегабайт базовой структуры для хранения данных (блока) в его блокчейне. Такое ограничение продиктовано особенностью построения блокчейна, как полностью реплицированной распределённой базы данных, что требует постоянной пересылки между всеми участниками каждого нового элемента. Уменьшение размера блока существенно ограничивает эффективность потенциальной DDoS-атаки. Если учесть среднее время на формирование блока (10 минут) и средний размер информации о транзакции, то для гарантированного помещения в блок количество транзакций не должно быть слишком велико — на уровне около трёх транзакций в секунду.

С ростом популярности Биткойна число транзакций увеличилось, но из-за ограничения максимального размера блоков не все транзакции «помещались» сразу, периодически возникала очередь. В мае 2017 года ситуация сильно ухудшилась, ожидание включения транзакции в блок достигало нескольких дней.

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

Для решения проблемы предлагались различные способы. Business Insider в 2017 году характеризовал этот спор как «идеологическую битву за будущее биткойна».

Форки

Форк блокчейна — деление непрерывной цепи на две ветви. Такое деление в сети биткойн является частью алгоритма и происходит регулярно в процессе майнинга. Новые блоки всегда содержат ссылку на предшественника. Если два блока, сформированных разными майнерами, ссылаются на один и тот же блок-предшественник, это и есть деление. Система не даёт автоматического предпочтения. Новые блоки в качестве предшественника могут указать любого из них. В результате на некоторое время сеть разделяется. В какой-то момент одна из веток станет длиннее и «отставшая» отмирает, так как система истинной считает самую длинную цепь.

Блокчейн также может разделяться, когда разработчики изменяют протокол определения того, какие блоки действительны.

«Хардфорк»

«Хардфорком» называют разбиение блокчейна на две отдельные цепи в результате использования двух разных протоколов. Новый протокол также может разделить сеть, если все участники сети не следуют за ним. Например, Ethereum Classic возник в результате «хардфорка» Ethereum из-за разного понимания необходимых действий в ответ на взлом DAO.

Сообщества Bitcoin XT, Bitcoin Classic и Bitcoin Unlimited предложили увеличение предела размера блока как способ увеличения масштабируемости. Однако поддержка обоих предложений со временем падала.

«Софтфорк»

Согласно CoinDesk, в отличие от «хардфорка», «софтфорк» — это изменение протокола, в результате которого созданные блоки признаются действительными и старым программным обеспечением. Согласно Investopedia, «софтфорк» также может разделить сеть, если необновлённое программное обеспечение будет создавать блоки, которые не будут считаться действительными по новому протоколу.

Один из основателей и разработчик Blockstream Питер Уилл в декабре 2015 года предложил изменения в виде «софтфорка», получившие название SegWit. SegWit предполагает часть данных (открытые ключи) хранить за вне блокчейна. CoinTelegraph предполагает, что SegWit позволит создавать новые решения второго уровня поверх биткойна.

«Софтфорк», активированный пользователем (User-activated soft fork (UASF)), является спорной идеей, которая позволяет понять, как выполнить обновление блокчейна, которое не поддерживается теми, кто обеспечивает мощность сети.

Предложенные решения

Были представлены различные предложения по масштабированию биткойна. В 2015 году Джефф Гарзик представил BIP 100, а Гэвин Андресен — BIP 101. В середине 2015 года некоторые корпорации поддерживали увеличение размера блока до восьми мегабайт.

  • Bitcoin XT был предложен в 2015 году для увеличения мощности обработки транзакций биткойна за счёт увеличения предела размера блока.
  • Bitcoin Classic был предложен в 2016 году, чтобы увеличить производительность обработки биткойна за счёт увеличения предела размера блока.
  • В 2016 году было заключено соглашение некоторых майнеров и разработчиков, которое в разговорной речи называлось «Гонконгским соглашением», в котором содержалось расписание, в ходе которого было бы рассмотрено как предложение SegWit, сделанное в декабре 2015 года разработчиками Bitcoin Core, так и увеличение предела размера блока до 2 МБ. Однако оба соглашения не имели успеха.
  • Bitcoin Unlimited защищает гибкость майнеров, чтобы увеличить лимит размера блока и поддерживается майнинг-пулами ViaBTC, AntPool, инвестором Роджером Вертом и главным учёным Bitcoin Unlimited Питером Ризуном. Предложение Bitcoin Unlimited отличается от Bitcoin Core тем, что параметр размера блока не является жестко запрограммированным, а скорее узлы и союз майнеров поддерживает размер, который они хотят, используя идею, которую они называют «возникающим консенсусом». Те, кто стоит за предложением Bitcoin Unlimited, утверждают, что с идеологической точки зрения майнеры должны решить вопрос о решении масштабирования, так как они те, чье оборудование поддерживает сеть.
  • BIP148 — это предложение, которое называется "Активированный пользователем «софтфорк» (UASF) или «популистское восстание». Планировалось, что он будет запущен 1 августа 2017 года, и он попытался заставить майнеров активировать SegWit. Это стало ненужным, потому что майнеры решили проголосовать за активацию SegWit, используя схему BIP91.

Реализованные решения

Segregated Witness (SegWit)

SegWit:

  • Меняет структуру хранения данных в каждом блоке биткойна.
  • Обеспечивает повышение пропускной способности транзакции, оставаясь совместимым с более ранними версиями программного обеспечения биткойна.
  • Устраняет транзакционную инертность, которая стала препятствием для других проектов биткойнов.
  • Внедрение Lightning Network стало осуществимым.

Активация

В мае 2017 года Digital Currency Group (не путаясь с Цифровой Валютной Инициативой MIT Media Lab) объявила решение, называемое SegWit2x («Нью-йоркское соглашение»), активизирующее SegWit на 80%-й порог общего хеш-рейта биткойна, сигнализирующий на бит 4; и поднять ограничение размера блока до 2 МБ в течение шести месяцев с поддержкой, превышающей 80 % от общего хеш-рейта биткойна. В июне 2017 года предложение SegWit было ещё более осложнено утверждением о том, что оно может нарушить патенты, поданные в USIPO. По состоянию на середину 2017 года предложение SegWit2x поддерживало более 90 % хеш-рейта, однако предложение SegWit2x было спорным в том, что работа над проектом ограничивался группой разработчиков только по приглашениям. В середине июля 2017 года стало очевидно, что майнеры поддержали реализацию пункта о SegWit соглашения до 1 августа 2017 года UASF, тем самым пытаясь избежать риска «хардфорка» сети биткойн. 21 июля BIP 91 был заблокирован, что означало, что обновление SegWit активируется на блоке 477 120. К 8 августа была достигнута ещё одна ступень, когда 100 % майнинг-пулов биткойна объявили о поддержке SegWit, хотя SegWit не был полностью активирован до, как минимум, 21 августа, после чего майнеры начали отказываться от блоков, которые не поддерживают SegWit. 24 августа 2017 года (на блоке 481 824) был воплощён в жизнь. Большинство биткойн-транзакций не использовали обновление, но они и не были в состоянии это сделать, поскольку стандартизация формата адреса BIP 173 не была завершена. За первую неделю октября доля операций биткойнов с использованием SegWit выросла с 7 % до 10 %.

Bitcoin Cash

Bitcoin Cash, «хардфорк» блокчейна биткойна, появился 1 августа 2017 года (с блока 478 559). После «хардфорка» у держателей биткойнов, в дополнение к имевшимся у них биткойнам (BTC), появилось такое же количество Bitcoin Cash’а (BCH). Bitcoin Cash увеличил размер блока с одного мегабайта до восьми мегабайт без включения SegWit. К вечеру 1 августа 2017 года BCH занимал третье место по уровню капитализации среди всех криптовалют (после BTC и Ethereum). Многие криптовалютные биржи приостановили обслуживание в течение нескольких дней, включающих 1 августа 2017 года. Американцы задаются вопросом, облагается ли их приобретение Bitcoin Cash налогом в качестве дохода или нет, поскольку разделение собственности не получает никаких указаний от Налогового Управления США.

Иные предложения

SegWit2x

Реализация SegWit в августе 2017 года была только первой половиной так называемого «Нью-Йоркского соглашения», в соответствии с которым те, кто хотел увеличить эффективный размер блока SegWit, скомпрометировали тех, кто хотел увеличить размер блока «хардфорком» до большего размер блока. Вторая половина SegWit2x включает в себя «хардфорк» в ноябре 2017 года, для увеличения размера блока до 2 мегабайт.

SegWit был создан людьми, не связанными с SegWit2x, и многие из них против SegWit2x.

Тяжелая вилка SegWit2X ещё более спорна, чем «хардфорк» Bitcoin Cash. Некоторые компании, которые первоначально поддерживали Нью-Йоркское соглашение, не поддержали предложение, в том числе F2Pool, Bitwala, SurBTC и Wayniloans. «Хардфорк» в ноябре может привести к другому блокчейну биткойна в дополнение ко второму блокчейну, созданному в августе. Несколько участников Нью-Йоркского соглашения (включая Coinbase, Blockchain и Xapo) указали, что они не будут решать, какую цепочку следует называть «Биткойн» до совершения «хардфорка».

Основной проблемой является выбор разработчиков SegWit2x для реализации защиты от повторной траты в другой цепи, а не сильная защита повторной траты, реализованная «хардфорком» Bitcoin Cash. Защита от повторной траты означает, что цепочка Segwit2x по-прежнему будет принимать транзакции, предназначенные для исходной цепочки, в дополнение к транзакциям с защитой от повтора, действительным только для Segwit2x. Пользователи, отправляющие транзакции в исходной цепочке биткойнов, или которые не могут отправлять транзакции Segwit2x с защитой от повторной траты, будут уязвимы, если их транзакции будут повторены в другой цепочке. Это может привести к случайной потере средств. Это отсутствие сильной защиты от повторного воспроизведения вызвало значительные разногласия в сообществе биткойна.

Грег Максвелл, известный член Bitcoin Core и сотрудник Blockstream, заявил, что предыдущее соглашение об увеличении размера блока было сделано под давлением. Внедрение SegWit2x увеличит комиссионные сборы для майнеров и уменьшит транзакционные сборы, которые Blockstream организует на боковых цепях, а также увеличит мощность майнеров при одновременном снижении мощности основных разработчиков.

Блок № 501451, который будет добыт ориентировочно 28 декабря 2017 года, может стать определяющим для нового (старого) ответвления Segwit2x. Как стало известно, команда разработчиков заявила о возобновлении активной работы по запуску приостановленного проекта. Как говорится на сайте проекта, команда намерена осуществить «хардфорк» биткойна Segwit2x, который ожидался ещё в середине ноября. При этом, добавляют разработчики, торги фьючерсами на «хардфорк» Segwit2x на некоторых биржах, включая HitBTC, по-прежнему продолжаются.

Lightning Network

Lightning Network — это проект в разработке, целью которого является устранение проблемы масштабируемости биткойна путём масштабирования «вне сети». Он предназначен для обеспечения обновления состояния микроканала без использования каких-либо блокировок (в обычном несостязательном случае), что делает микроплатежи оправданными (и без комиссии). Lightning Network потребует, чтобы транзакция финансирования на блокчейне открыла канал. Lightning Network в настоящее время находится на альфа-стадии разработки.