Вскоре после активного набора популярности блокчейна Биткойн стало понятно, что чем большее количество людей его использует – тем медленнее осуществляются транзакции. Можно было, конечно, повысить актуальность информации с помощью оплаты более высокой комиссии, но это был кажущийся выход. Нужно было что-то менять на программном уровне.
Дело в том, что ускорить производство новых блоков было технически нереально – это дело занимало минимум 10 минут. Нельзя было и увеличить размер блока – это потребовало бы изменения всего протокола. Но можно было поискать другие пути.
И в 2015 году был внедрён новый протокол Segregated Witness (SegWit), разработанный Питером Уиллом, совместно с другими участниками Bitcoin Core, который и должен был решить проблему с масштабируемостью, хотя бы в ближайшее время. Задуманное удалось и в августе 2017 года это обновление было реализовано, приведя к одному из первых софтфорков в истории #Биткойна.
Преимущества
- Увеличение пропускной способности. Основная идея протокола SegWit заключалась в том, чтобы разделить данные о транзакциях и цифровую подпись, повысив, тем самым, количество полезной информации, сохраняемой в блоке. Полностью отказаться от цифровой подписи было нереально – она подтверждала наличие на счету отправителя нужной суммы, но можно было реорганизовать её хранение. Благодаря новому протоколу, получилось чуть ли не в 4 раза увеличить объем полезной информации, хранимой на блоке. И это без увеличения его реального размера. Можно сказать, что теперь «практический объём» блоков начал составлять не 1 Мб, а 4 Мб.
- Повышение скорости транзакций. Поскольку каждый новый блок вмещал в себя больше транзакций, скорость обработки информации блокчейном значительно увеличилась. Кроме этого, сократились операционные расходы. И если раньше они могли доходить до 30 долларов, то после внедрения SegWit – редко превышали 1$.
- Проблема пластичности транзакций. Дело в том, что подделать цифровую подпись намного проще, нежели данные о транзакциях. И такое внесение изменений приводило к порче цифрового идентификатора. А поскольку все транзакции в сети блокчейн необратимы – деньги просто блокировались. Отделение цифровой подписи от прикладной информации позволило устранить данную проблему.
SegWit и Lightning Network
Благодаря решению проблемы пластичности транзакций, появилась возможность создания протоколов второго уровня. То есть тех, которые работали бы поверх основных протоколов блокчейна, оптимизируя некоторые операции. Именно таким и является протокол Lightning Network. В его задачу входит сбор большого количества #транзакций за малый промежуток времени, проведение их буферизации, а затем – отправка блока целиком для прохождения хэширования.
Данный протокол второго уровня серьёзно повысил продуктивность сети, доведя её скорость до 7 транзакций в секунду. Поэтому вскоре и другие блокчейны начали адаптировать Lightning Network под свои нужды. Особенно это было актуально для проектов, основанных на программном коде блокчейна Биткойн.
SegWit и SegWit2x
Протокол SegWit изначально планировался как «добровольный», а не принудительный. И те, кто не обновил своё программное обеспечение, могли продолжать использовать старую версию и довольно эффективно майнить. Однако было и альтернативное решение – SegWit2х.
Это обновление подразумевало не только внедрение новых принципов хранения информации, но и увеличение размера блока до 2 Мб. Вот только большинство #майнеров и пользователей тогда посчитало, что это увеличит нагрузку на машины и замедлит процесс работы. И создаст неравноценные условия для людей со слабыми компьютерами. Так что консенсуса достигнуть не получилось. А поскольку SegWit в принципе проблему решал, более серьёзные изменения было решено отложить до других времён.
Заключение
Внедрение нового протокола серьёзно повысило эффективность работы блокчейна Биткойн. А тот факт, что решение о его принятии осуществило децентрализованное сообщество – лишний раз подтвердил жизнеспособность подобных типов взаимодействия.
Тем не менее, не все пользователи приняли новые правила. Всего около 53 процентов перешли на протокол SegWit, а остальные работают «по старинке». Тем не менее, разделения сети не произошло, поскольку заранее было решено, что устраивать #хардфорк пока что не нужно. Впрочем, в будущем ситуация изменилась, поскольку даже несмотря на оптимизацию хранения данных, места в блоке было слишком уж мало.