22 дня назад

SegWit как способ увеличения масштабируемости биткоина

Технология SegWit
Технология SegWit

О том, что биткоин станет общепринятым платежным средством, говорят с самого момента его появления, то есть уже более 10 лет. Однако, стоит понимать, что с текущей пропускной способностью его сети это не представляется возможным. В среднем 3, максимум 5–7 транзакций в секунду — все, что может предложить Bitcoin в то время, как, например, у Visa этот показатель измеряется тысячами.

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

Что такое SegWit и какие задачи решает

SegWit — сокращение от словосочетания Segregated Witness, которое переводится с английского, как «отделенный (сегрегированный) свидетель». Именно такое название носит обновление протокола, изменяющее способ хранения данных в блокчейне с целью улучшения его масштабируемости и скорости работы.

Одна из основных причин вышеописанных проблем заключается в ограничении размера блока биткоина — он не может весить больше 1 MB. В каждом блоке, как известно, содержится информация обо всех добавленных в него транзакциях. При этом большую часть веса транзакции занимают данные свидетеля (witness), записанные в строке кода scriptSig. Речь идет о цифровой подписи отправителя, подтверждающей его намерение перевести указанную в транзакции сумму монет. В каждом блоке эта информация суммарно занимает около 60%!

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

SegWit решает описанные проблемы путем вынесения раздела кода с цифровой подписью за пределы базовой структуры блокчейна в сайдчейн (побочную цепь) с блоками размером 4 MB. Таким образом повышается эффективность использования полезного объёма основных блоков (их размер остается стандартным — 1MB), что означает возможность включения в них большего количества транзакций (почти в два раза).

Также исчезает явление пластичности — внесение изменений в цифровые подписи больше не приводит к замене идентификаторов. Это значит, что транзакции подтверждаются быстрее и устраняются препятствия, мешающие развертыванию скоростных платежных каналов в виде надстроек к основной сети. Еще один приятный плюс — снижение комиссий за проведение переводов вплоть до 50%.

Еще лучше понять задачи и принцип работы технологии SegWit поможет видео ниже:

Что такое SegWit

История создания Segregated Witness

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

В 2012 году группа разработчиков Bitcoin Core называла транзакционную пластичность одной из главных проблем в дальнейшем развитии сети.

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

Подготовительный этап

В 2014 году биткоин-разработчики Адам Бэк (Adam Back), Грегори Максвелл (Gregory Maxwell), Питер Уилле (Pieter Wuille) и Мэт Коралло (Matt Corallo) при участии еще нескольких человек основали компанию Blockstream, деятельность которой была сосредоточена на разработке сайдчейнов, улучшающих сеть биткоина. В ее лабораториях и родилась идея по внедрению в сеть Bitcoin обновления Segregated Witness. Концепция SegWit впервые была представлена на конференции Scaling Bitcoin в Гонконге в декабре 2015-го (Lightning Network была презентована двумя месяцами ранее на том же мероприятии в Монреале).

Это предложение по улучшению масштабируемости было встречено в основном положительно, в частности из-за того, что не требовалось изменение существующих правил консенсуса. Для внедрения SegWit достаточно было провести частичное обновление протокола через софтфорк — программное обновление блокчейна без «жесткого» разделения на отдельные цепочки. Соответствующее решение было включено в предложение по улучшению биткоина BIP141 (и последующие BIP 142–145).

В январе 2016-го состоялся запуск тестовой сети под названием SegNet, которая уже через 2 месяца полноценно поддерживала первые версии Lightning Network.   

Софтфорк, хардфорк и прочие разногласия

Хардфорки биткоина
Хардфорки биткоина

Параллельно с разработкой обновления частью биткоин-сообщества продолжала лоббироваться идея о необходимости увеличения размера блока путем хардфорка. В основном это были сторонники альтернативного клиента Bitcoin Classic.

В феврале 2016-го во время встречи в Гонконге между сторонами конфликта было достигнуто взаимное соглашение об активации SegWit с последующим проведением хардфорка по изменению размера блока до 2 MB.

В апреле апгрейд был готов к релизу, а уже в октябре 2016 года его интегрировали в клиент Bitcoin Core 0.13. Чтобы активировать обновление, разработчики должны были получить поддержку 95% майнеров. Однако, некоторые пулы для майнинга, контролирующие значительную часть мощностей сети биткоина, выступили против запуска Segregated Witness.

Процесс сдвинулся с мертвой точки в апреле 2017-го, когда было сформировано предложение UASF (BIP148), заключающееся в изменении правил проведения софтфорков — для их активации требовалась поддержка не 95% майнеров, а такого же количества полных нод.

Затем в мае состоялась очередная встреча между сторонниками софтфорка и хардфорка. Результатом стало подписание Нью-Йоркского соглашения, которое заключалось в осуществлении альтернативного устраивающего все стороны сценария под названием SegWit2x. Он состоял в активации SegWit путем софтфорка при достижении 80% поддержки участников сети и проведении хардфорка по увеличению размера блока в течение полугода после этого. Важным нюансом описанного события стало то, что в нем не участвовали представители Bitcoin Core, поэтому существовал риск технической несовместимости с самым популярным биткоин-клиентом.

Активация SegWit в основной сети биткоина и ее последствия

1 августа был проведен ранее предложенный софтфорк UASF, изменивший правила для принятия следующих обновлений. Через неделю на блоке 479708 состоялась фиксация SegWit в основной сети биткоина. Окончательная активация многострадального обновления протокола произошла 24 августа 2017 года.

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

Что касается второй запланированной фазы SegWit2x, которая должна была увеличить размер блока биткоина до 2 MB, ее сторонники 8 ноября 2017-го объявили об отмене хардфорка. В качестве официальной причины было указано нежелание осуществлять очередной раскол сообщества, т.к. поддержка была на уровне всего 30%.

Некоторые отдельные группы разработчиков впоследствии заявляли о намерении самостоятельно реализовать хардфорк и 28 декабря это вроде как было сделано. Но по факту, кроме названия SegWit2x, у этого проекта было мало общего с оригинальной задумкой. В итоге появилась монета B2X, которая за последние полтора года обесценилась и сейчас почти нигде не торгуется.

Segregated Witness в других криптовалютах

Технологии криптовалют
Технологии криптовалют

После того, как в 2016 году стало известно о завершении разработки технологии Segregated Witness, ее внедрением заинтересовались разработчики многих альткоинов. И поскольку многие из них были основаны на коде биткоина, реализовать это было не так уж и сложно.

Первым проектом, внедрившим SegWit, стал Groestlcoin в январе 2017 года. Немногим позже это обновление было активировано в блокчейнах Emercoin, Vertcoin, Syscoin, DigiByte, Viacoin и Monacoin.

Кроме того, 10 мая 2017 года обновление протокола было внедрено в сеть криптовалюты Litecoin. Именно тогда впервые была показана жизнеспособность модели UASF (активируемых пользователями софтфорков), благодаря которой и состоялся запуск SegWit в опекаемом Чарли Ли блокчейне.

SegWit два года спустя

В данный момент эта технология используется в 40% всех совершаемых BTC-транзакций. Неполное принятие объясняется тем, что значительное количество участников сети все еще не обновили свое программное обеспечение до версии с поддержкой SegWit и, по сути, продолжают взаимодействовать с блокчейном по старым правилам.

Статистика по использованию технологии SegWit в биткоин-транзакциях
Статистика по использованию технологии SegWit в биткоин-транзакциях

Для сравнения — в сети Litecoin использование Segregated Witness в транзакциях сейчас находится на уровне 55–60%. То есть принятие новой технологии почти в 1,5 раза выше, чем у биткоина, но полного перехода тоже еще не состоялось.

Когда состоится абсолютное принятие SegWit в сети Bitcoin (если это вообще случится), предсказать невозможно, поскольку модель софтфорка не предполагает обязательного перехода всех участников сети на новую версию используемого ПО.

SegWit или Legacy?

Поскольку полного принятия SegWit еще не состоялось, в блокчейне биткоина продолжают существовать три разных вида адресов:

  • legacy — старый формат, начинаются с «1…»;
  • compatibility (P2SH) — совместимы одновременно с новым и старым ПО, начинаются с «3…»;
  • default segwit (bech32) — могут использоваться только теми, кто перешел на SegWit, начинаются с «bc1…».
Примеры BTC-адресов разных типов
Примеры BTC-адресов разных типов

Первый тип является оригинальным, т.е. изначально поддерживаемым сетью Bitcoin. Однако, с legacy-адресов нельзя пересылать средства на адреса формата bech32. А значит нет возможности использовать открываемые обновлением преимущества — а это, как минимум более быстрые и дешевые, транзакции.

Compatibility-адреса являются «всеядными», т.е. могут быть использованы как в кошельках и приложениях, которые еще не перешли на Segregated Witness, так и в тех, которые поддерживают эту технологию.

Третий вариант позволяет отправлять средства на адреса любого типа, используя все преимущества SegWit.

Поэтому, вывод напрашивается сам собой — лучше всего использовать нативные segwit-адреса. При этом стоит помнить, что далеко не все биткоин-кошельки поддерживают взаимодействие с ними.

Кошельки, поддерживающие технологию Segregated Witness

Кошельки с поддержкой Segregated Witness
Кошельки с поддержкой Segregated Witness

На сегодняшний день работа с SegWit-адресами поддерживается во всех линейках аппаратных кошельковLedger, Trezor и KeepKey.

Также о поддержке Segregated Witness объявили почти все популярные десктопные и мобильные кошельки, среди которых Exodus, Electrum, Samourai Wallet, Green Address, Jaxx и Coinbase Wallet.

Конечно же, работа с новыми адресами по умолчанию доступна во всех версиях клиента Bitcoin Core, выпущенных после августа 2017-го.

А вот известный сайт Blockchain.com, который является старейшим онлайн-кошельком, все еще не работает с SegWit.

Плюсы и минусы технологии

К основным преимуществам SegWit относится:

  • Увеличение количества транзакций в блоке почти в 2 раза;
  • Повышение пропускной способности сети;
  • Снижение комиссионных сборов за проведение транзакций;
  • Уменьшение размера блокчейна и, как следствие, времени его загрузки полными нодами (места на жестком диске также нужно меньше);
  • Устранение пластичности транзакций, которая является основным препятствиям к внедрению решений второго уровня;
  • Исключение возможности изменения цифровых подписей сторонними лицами.

Недостаток у обновления Segregated Witness, по сути, всего один — кратковременный эффект. Ведь даже если в будущем будут реализованы планы по увеличению размера блока до 2 MB, этого все равно может оказаться мало для поддержания приемлемой пропускной способности сети, которая, несомненно, будет пополняться новыми участниками с ростом популярности биткоина. 

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


Читайте также:

История курса биткоина: как менялась цена «цифрового золота»

Холодный кошелек биткоина: понятие, виды, особенности использования

Использование технологии Plasma для масштабирования Ethereum


© Coin Post, 2017-2019. Все материалы данного сайта являются объектами авторского права. Запрещается копирование, распространение (в том числе, путем копирования на другие сайты и ресурсы в Интернете с указанием источника) или любое иное использование информации без предварительного согласия правообладателя.