Русская Википедия:Проблема масштабируемости биткойна

Материал из Онлайн справочника
Перейти к навигацииПерейти к поиску

Шаблон:Стиль

Файл:BTC number of transactions per month.png
Количество транзакций в системе «Биткойн» за месяц
Файл:Utxo-count.svg
Неизвлечённые выходы транзакций биткойна

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

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

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

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

Форки

Файл:Blockchain.svg
Основная последовательность блоков (чёрные) является самой длинной от начального (зелёный) до текущего. Форки порождают побочные ветви (фиолетовые), которые впоследствии отсекаются

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

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

«Хардфорк»

Шаблон:See also «Хардфорком» называют разбиение блокчейна на две отдельные цепи в результате использования двух разных протоколов[8]. Новый протокол также может разделить сеть, если все участники сети не следуют за ним[7]. Например, Ethereum Classic возник в результате «хардфорка» Ethereum из-за разного понимания необходимых действий в ответ на взлом DAO[9][10].

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

«Софтфорк»

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

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

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

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

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

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

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

Segregated Witness (SegWit)

Шаблон:Главная SegWit:

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

Активация

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

Bitcoin Cash

Шаблон:Главная Bitcoin Cash, «хардфорк» блокчейна биткойна, появился 1 августа 2017 года (с блока 478 559)[33][34]. После «хардфорка» у держателей биткойнов, в дополнение к имевшимся у них биткойнам (BTC), появилось такое же количество Bitcoin Cash’а (BCH)[35]. Bitcoin Cash увеличил размер блока с одного мегабайта до восьми мегабайт без включения SegWit[36]. К вечеру 1 августа 2017 года BCH занимал третье место по уровню капитализации среди всех криптовалют (после BTC и Ethereum)[37]. Многие криптовалютные биржи приостановили обслуживание в течение нескольких дней, включающих 1 августа 2017 года[38][39][40][41]. Американцы задаются вопросом, облагается ли их приобретение Bitcoin Cash налогом в качестве дохода или нет, поскольку разделение собственности не получает никаких указаний от Налогового управления США[42].

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

SegWit2x

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

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

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

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

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

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

Lightning Network

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

См. также

Примечания

Шаблон:Примечания

Шаблон:Bitcoin

  1. Шаблон:Cite news
  2. 2,0 2,1 Шаблон:Cite news
  3. Шаблон:Книга
  4. 4,0 4,1 Шаблон:Cite web
  5. Шаблон:Cite news
  6. 6,0 6,1 Шаблон:Cite news
  7. 7,0 7,1 7,2 7,3 Шаблон:Cite news
  8. Шаблон:Cite news
  9. Шаблон:Cite news
  10. Шаблон:Cite web
  11. Шаблон:Cite news
  12. Шаблон:Cite web
  13. Шаблон:Cite news
  14. 14,0 14,1 Шаблон:Cite news
  15. Шаблон:Cite news
  16. Шаблон:Cite web
  17. Шаблон:Cite news
  18. Шаблон:Cite news
  19. 19,0 19,1 Шаблон:Cite news
  20. Шаблон:Cite news
  21. Шаблон:Cite news
  22. 22,0 22,1 22,2 22,3 Шаблон:Cite web
  23. Шаблон:Cite web
  24. 24,0 24,1 Шаблон:Cite news
  25. Шаблон:Cite news
  26. Шаблон:Cite news
  27. Шаблон:Cite web
  28. Шаблон:Cite web
  29. Шаблон:Cite web
  30. Шаблон:Cite web
  31. Шаблон:Cite web
  32. Шаблон:Cite web
  33. Шаблон:Cite web
  34. Шаблон:Cite web
  35. Шаблон:Cite web
  36. Шаблон:Cite web
  37. Шаблон:Cite web
  38. Шаблон:Cite web
  39. Шаблон:Cite web
  40. Шаблон:Cite web
  41. Шаблон:Cite web
  42. Шаблон:Cite web
  43. Шаблон:Cite web
  44. Шаблон:Cite web
  45. Шаблон:Cite web
  46. Шаблон:Cite web
  47. Шаблон:Cite web
  48. Шаблон:Cite web
  49. Шаблон:Cite web
  50. Шаблон:Cite web
  51. Шаблон:Cite web
  52. Шаблон:Cite web
  53. Шаблон:Cite web
  54. Шаблон:Cite web
  55. Шаблон:Cite web
  56. Шаблон:Cite web
  57. Шаблон:Cite web
  58. Шаблон:Cite web