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

Dara86

Местный знаток
Есть ли у Биткоина проблема масштабируемости?

Да, она есть. Она не была решена раньше и положение ухудшается со временем.

Биткоин работает на программном обеспечении, которое создано программистом или группой программистов, действовавших под псевдонимом Сатоши Накамото в 2007-2009 годах. Несмотря на многие улучшения, которые вносили разработчики на протяжении всех этих лет существования Биткоина, основной код остался тем же, что и восемь лет назад.

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

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

Почему Биткоин не в состоянии обработать все сделки?

Проблема заключается в определённом параметре, который называется «предел размера блока».

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

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

В 2010 году Сатоши Накамото ограничил размер блока пределом в 1 мегабайт, а это значит, что блоки, размер которых превышает 1 мегабайт, будут автоматически отвергаться сетью как инвалидные. Это мера безопасности, которая должна предотвратить возможные DoS атаки хакеров, создающих большие и даже неограниченные размеры блоков, чтобы парализовать сеть.

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

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

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

К чему приводит не эффективный предел размера блока?

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

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

В первые годы существования сети комиссионные измерялись сотыми долями цента. Сегодня же, если вы хотите переслать монеты быстрее, вам нужно заплатить несколько центов или даже долларов.

Есть ли решение проблемы масштабирования?

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

Проблема масштабирования исследуется уже давно. Два первые серёзные предложения по её исправлению содержатся в BIP 100 и BIP 101, где BIP означает «предложения по улучшению Биткоина», (Bitcoin Improvement Proposal). Они были представлены в 2015 году разработчиками ядра Биткоина, Джефом Гарзиком и Гевином Андерсеном соответственно.

В обеих предложениях упоминается увеличение предела размера блока и оба эти решения являются хард форками, и это значит, что в случае их осуществления, более старые версии программного обеспечения Биткоина будут не совместимыми с новой сетью. Разница между ними состоит в том, что BIP 100 предлагает настраивать размер блока в зависимости от решения майнеров, в то время как BIP 101 является прямым одноразовым увеличением с 1 до 8 мегабайт.

По поводу того, какое из предложений принять, в сообществе Биткоина были жаркие споры на протяжении всего 2015 года. Однако они оказались бесплодными. Ни BIP 100, ни BIP 101 не реализованы в сети сегодня.

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

Это приведёт к увеличению централизации Биткоина; только большие компании будут в состоянии выделить такое количество места для данных, вычислительной мощности и пропускной способности сети, необходимы х для обработки таких огромных массивов данных, отбрасывая из сети узлы малых операторов. Таким образом возникает противоречие с основной идеей Биткоина как денег, которыми управляют их пользователи.

Каким образом SegWit предлагает масштабировать Биткоин?

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

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

Однако более важно, что устранение гибкости транзакций делает сеть Биткоина достаточно безопасной для того, чтобы над ней можно было надстраивать различные решения за пределами блокчейна, такие, как Lightning Network. Это позволит сделать транзакции в сети гораздо быстрее и дешевле, чем когда-либо.

Почему не внедрён SegWit?

SegWit также есть проблемы с децентрализацией. Сам по себе он увеличивает размер блока на примерно 60 процентов, чего достаточно только для краткосрочного решения проблемы. Его более важная задача состоит в устранении гибкости транзакций. Он полагается на увеличение пропускной способности сети за счёт сайдчейнов, Lightning Network, а это централизация.

Lightning Network может быть построена, как система урегулирования, действующая поверх блокчейна. Во-первых, биткоины различных пользователей депонированы на отдельный платёжный канал, что требует около 10 минут или более для подтверждения, в зависимости от степени загрузки сети. После того все сделки в платёжном канале выводятся за пределы блокчейна, где обрабатываются быстро и очень дешево, или бесплатно — если есть доверенная третья сторона.

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

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

Гонконгское соглашение

Есть возможность достижения компромисса. Есть третий путь, который возможен и потенциально может быть самым выгодным для сети. Увеличение размера блока и реализация SegWit не противоречат друг другу и в сообществе растёт чувство, что нужен компромисс между этими двумя решениями.

Фактически, соглашение о компромиссе было уже достигнуто, и как минимум один раз. Речь идёт о круглом столе, который состоялся в феврале 2016 в Гонконге, между представителями Bitcoin Core, которые являются авторами SegWit, и некоторых крупных майнинговых компаний, которые заинтересованы в неограниченном увеличении размера блока. Обе стороны стремятся достигнуть соглашения — продвинуться в реализации SegWit, и временно увеличить размер блока до 2 мегабайт.

К сожалению, Гонконгское соглашение не было выполнено — разработчики Bitcoin Core не добавили, что перед внедрением SegWit будет увеличен размер блока, таким образом, майнеры отказались принимать его.

Источник
 
Верх