При перечислении характеристик Bitcoin принято упоминать, что эту криптовалюту можно использовать как платежный инструмент. Действительно, вы можете купить себе товар или какую-то услугу за биткоин.
Содержание
Однако покупка эта не будет носить мгновенный характер, как в случае с вашими пластиковыми картами VISA. Потому что сеть Bitcoin в секунду может обрабатывать лишь 3 транзакции, а VISA – 1000.
Такая ситуация возникла из-за принятой структуры транзакций и блоков в блокчейне. И в сообществе разработчиков Bitcoin начался поиск решения проблемы, в результате которого и был предложен Segwit. Его задумка заключается в оптимизации блокчейна и транзакций, что позволит увеличить пропускную способность сети без изменения цепочки блоков. То есть, без проведения хардфорка. Подробности – в обзоре от ProstoCoin.
Что такое Сегвит
Segwit – это сокращение от термина Segregated Witness, который дословно можно перевести как «отделенный свидетель». Понять значение этого термина будет легче после рассмотрения структуры транзакции в сети Bitcoin. Она (транзакция) состоит их двух частей:
- Основная информация (кто отправляет, кому, сколько);
- Информация свидетеля или witness, в которой содержится специальный криптографический код (подпись). Этот код является подтверждением того, что участник совершил транзакцию.
Часть witness и являлась/является проблемной для блокчейна, потому что формально эту подпись можно изменить уже после того, как она появилась в блоке. Это не значит, что биткоины не будут переведены от участника к участнику. Но это усложняет все новые транзакции, так как блокчейн – это цепочка блоков. Из-за неподтверждённых транзакций замедляется скорость новых транзакций, так как они «вытягивают» данные с прошлой транзакции.
Проще говоря, в Bitcoin сложно делать быстрые переводы и сложно внедрять масштабные обновления из-за особенностей текущего протокола. Эту проблемную особенность сети часто называют «ошибкой транзакционной пластичности». На фоне этого и началось движение за внедрение SegWit.
Как появился SegWit
О необходимости модернизации прокола Bitcoin начали говорить еще в 2012 году. В частности, о возможных путях решения ошибки транзакционной пластичности говорили разработчики Bitcoin-Core Рассел Оконнор, Люк Дашир, Грегори Максвелл и другие.
В августе 2014 года Максвелл, криптограф Адам Бэк и Питер Вуйле запустили компанию Blockstream, которая занималась изучением блокчейна. Именно в этой среде они нашли решение проблемы с Witness. Разработчики решили отделять эту часть данных от Базовой части транзакции. Эту функцию они назвали Segregated Witness.
Хардфорк или софтфорк?
Параллельно появилась еще одна идея по оптимизации блокчейна биткоина – через увеличение размера блока (по умолчанию – 1 мегабайт). Такой «трюк» можно было провернуть только путем хардфорка – жесткого разделения сети путем внедрения несовместимых с нынешним протоколом изменений. В то время как сегвит представлял собой софтфорк, так как протокол обновлялся лишь частично. Одним из главных сподвижников идеи увеличения размера стал Гэвин Андерсон, ранее возглавлявший команду разработчиков Bitcoin-Core.
Но изначально и команда Segwit не знала, как провести модернизацию протокола без хардфорка. В конце 2015 года в Монреале и Гонконге прошли две конференции, посвященные проблемам масштабируемости биткоина.
И между этими мероприятими Вуйле, Дашир и некоторые другие разработчики придумали как провести Segwit через софтфорк. Для этого данные о Witness необходимо поместить в новую часть блока. А их якорь (Merkle Root) записывать в транзакцию по раздаче вознаграждения майнерам. Это позволило как бы «сэкономить» место в текущем блоке и увеличить его размер без фактического увеличения. Это позволило бы решить вопрос с масштабируемостью сети. Уже в Гонконге Вуйле и компания впервые презентовали Segwit.
Был создан специальный код BIP141. Одновременно с этим группа майнеров настаивала на хардфорке и увеличении размера блока (до 2 МБ). И между сторонами было подписано компромиссное соглашение, которое включало активацию Segwit и хардфорк с увеличением размера блока.
Уже в октябре 2016 года Сигвит представили в версии Bitcoin Core 0.13.1. Для активации функции необходимо было добиться поддержки 95% майнеров, а точнее 95% вычислительной мощности сети. Однако майнеры, в частности пул ViaBTC, отказались активировать Segwit из-за возможных убытков. На время судьба Segregated Witness подвисла в воздухе.
Однако уже в апреле 2017 года было сформировано предложение UASF. Суть его такова: активация Segwit достигается в результате поддержки 95% нодов (узлов), а не 95% майнеров. Автор этой идеи презентовал свой код – BIP148. В чистом виде UASF приняли не все разработчики Bitcoin-Core, поэтому было разработано улучшенное предложение BIP149.
В мае состоялась встреча в Нью-Йорке, где было подписано "Нью-Йоркское соглашение". Этот акт должен был стать очередным компромиссом между двумя лагерями: сторонниками Segwit через софтфорк и сторонниками хардфорка. По итогам конференции было решено уменьшить порог консенсуса для активации Segwit до 80% и провести хардфорк в течение полугода после активации. При этом Вуйле и другие ведущие разработчики Bitcoin-Core не участвовали в этом мероприятии.
На фоне этого новую волну популярности получило предложение UASF (BIP148). И Bitcoin-сообществу снова потребовался компромисс. Им стало предложение инженера из Bitmain Джеймса Хилларда – BIP91, которое сочетало в себе предложения BIP148 и положения "Нью-Йоркского соглашения". В итоге, Segwit был активирован именно в формате BIP91 8 августа. За неделю до этого группой майнеров, не согласных с положениями Segwit, был проведен хардфорк, в результате чего появился Bitcoin Cash.
А потом в сети Bitcoin провалилось принятие Segwit2x и был проведен другой хардфорк в результате чего появилась криптовалюта Bitcoin Gold.
Задачи и проблемы, которые решает Segwit
Segregated Witness – это реставрация сети Bitcoin, которая должна решить проблемы пластичности транзакций и адаптировать блокчейн к новым реалиям. Количество и объем операций постоянно растет, поэтому вопрос масштабируемости всегда был одним из ключевых. Segwit оптимизирует процесс транзакций и создаст условия для последующего увеличения размера блока. Вот список «проблем» и «задач», которые должен решить Segwit:
- Удаление подписи с данными Witness из блока, что способствует увеличению его размера и повышению пропускной способности всей сети;
- Уменьшение размера транзакции в среднем на 48%. Это значит, что в один блок поместится в два раза больше транзакций даже без увеличения его объема (1 МБ);
- Уменьшение размера блокчейна, что сэкономит дисковое пространство для полноценных узлов (нодов);
- На синхронизацию и запуск ноды будет уходить меньше времени, упростится и процесс проверки статуса транзакции;
- Сеть можно будет подключать к протоколам второго уровня вроде Lightning Network, а в перспективе даже возможна реализация кроссчейновых переводов;
- Потенциальное введение мгновенных обменов криптовалюты на фиат без задействования бирж и обменных сервисов;
- Усиленный механизм защиты от спам-атак.
Так что Segwit затрагивает такие важные для Bitcoin аспекты, как масштабируемость, уровень защиты и взаимодействие с новыми протоколами.
Кто поддерживает Segwit
Главными контрибьюторами идеи сигвит все эти годы выступали разработчики основного клиента для Bitcoin – Bitcoin-Core. Позже они также начали работать в новом стартапе Blockstream, о котором мы упоминали выше. Один из продуктов этой компании – это протокол Lightning Network.
Список «основных действующих лиц» в табличном варианте:
Имя/псевдоним | Кто это и какой вклад внес в Segwit |
---|---|
Грегори Максвелл | Разработчик Bitcoin-Core и BlockStream. Одним из первых начал обсуждать проблему пластичности транзакций в сети в 2012 году. В 2015-м предложил план масштабирования. В 2017-м обнаружил, что в чипе ASIC от Bitmain используется технология, которая несовместима с майнингом Bitcoin после Segwit. |
Люк Дашир | Разработчик Bitcoin-Core. С самого начала настаивал на проведении Segwit без хардфорка. |
Питер Вуйле | Разработчик Bitcoin-Core и Blockstream. Первым презентовал концепцию Segregated Witness осенью 2015 года на конференции «Масштабируя Bitcoin» в Гонконге. |
Владимир Ван дер Лаан | Разработчик Bitcoin-Core. Первым опубликовал код Segregated Witness на Github. |
Shaolinfry | Анонимный разработчик, который ранее состоял в команде Litecoin. Предложил компромиссное решение UASF, положения которого потом использовались при подписании "Нью-Йоркского соглашения". |
Чарли Ли | Создатель Litecoin, в мае 2017 активировал Segregated Witness в сеть лайткоина. |
Джеймс Хиллард | Инженер из Bitmain, ему принадлежит код BIP91, сочетавший в себе предложения разработчиков Core и противников Segwit. В итоге этот протокол и был активирован. |
Основные преимущества Segregated Witness
Внедрение Segwit, по крайней мере, на бумаге, способно существенно улучшить сеть Bitcoin. Вот какие основные преимущества приписывают Segregated Witness:
- Благодаря внедрению нового протокола будут устранены все варианты изменения подписи транзакции третьей стороной. Это, в свою очередь, упрощает разработку новых смарт-контрактов, например тех, которые используются в Lightning Network.
- Размер транзакции становится меньшим, при этом количество данных, передаваемых во время транзакции, не меняется. Это стало возможным из-за перемещения подписи данных. В результате этого блоки в Segwit-сети фактически будут иметь объем 1,7-2,0 мегабайта. Это значительно увеличит пропускную способность блокчейна.
- Будет изменен порядок начисления комиссионных сборов, что приведет к их снижению. То есть транзакции станут дешевле, а «маржа» с них будет определяться сразу.
- После принятия Segwit имплементация новых софт-форков станет намного проще. Это позволит реализовывать новые идеи по повышению безопасности. Например, изменить подписи ECDSA на более надежный стандарт Schnorr.
- Изменится функция sighash – станет линейной, а не экспоненциальной, что с положительной стороны отобразится на скорости валидации блоков и безопасности транзакций. Это также упростит работу с аппаратными кошельками и создаст улучшенные условия для производителей в этом секторе.
- Переводы смогут делать и участники, принявшие Segwit, и те, кто отказался это сделать. При этом юзеры с обновленным протоколом будут работать с меньшими комиссиями.
Можно сказать, что Segwit улучшит экосистему Bitcoin здесь и сейчас, а также создаст плацдарм для дальнейшего развития. Это, в свою очередь, может серьезно сказаться и на курсе самой популярной в мире криптовалюты.
Аргументы против Segwit
Segwit все еще не принят полностью сетью. И критики нового протокола считают, что на это может уйти год и больше. Ведь количество нодов уже сейчас превысило 10 000.
Далеко не все уверены, что предложенные улучшения и нововведения Segregated Witness будут интегрированы. Ведь количество участников и транзакций будет увеличено, и в будущем даже 2 мегабайт реального размера блока будет мало для потребностей экосистемы.
Технологический аспект оспорить очень сложно, потому что не так много программистов на хорошем уровне разбирается в коде. Поэтому большинство аргументов против имеют экономический и политический подтекст.
Противники Segwit считают, что протокол централизует систему, так как количество неподтверждённых транзакций с увеличением размера блока также возрастет. А это, в свою очередь, оголит сеть и сделает ее уязвимой к хакерским атакам.
Пулы и отдельные разработчики считают, что принятие Segwit продиктовано экономической выгодой компании BlockStream, которой принадлежит протокол Lightning Network. Технически внедрение Lightning Network без Segwit почти невозможно, поэтому группа разработчиков BlockStream, включая Митчелла и Дашира, так активно ратовали за активацию обновления.
Кто-то пошел на радикальные меры. Как команда Bitcoin Cash, которая провела хардфорк Bitcoin и создала новую сеть с размером блока в 8 мегабайт. Биткоин кэш ударно дебютировал на криптовалютном рынке и рассматривается многими как потенциальный конкурент BTC в борьбе за лидерство по капитализации.
Совсем оголтелые противники считают, что Segwit может вызвать юридические проблемы. Это мнение ничем не подкреплено.
Что такое SegWit2x и чего от него ожидать?
Один из пунктов "Нью-Йоркского соглашения", подписанного в мае 2017 года, подразумевал проведение Segwit2x – хардфорка, после которого размер блока должен был увеличится до 2 мегабайт. Раскол был запланирован на середину ноября и грозил созданием неопределенности для криптовалютного рынка. Фактически, Bitcoin разделился бы на две сети со своей монетой, правилами и стандартами.
Segwit2x, с одной стороны, решал проблему масштабируемости сети, с другой – ставил всю безопасность сети под угрозу. Например, там не было механизма защиты от двойного расходования, а потенциальная активация могла негативно отобразиться на инвесторах и даже майнерах. Однако 8 ноября один из инициаторов Segwit2x, и по совместительству руководитель сервиса BitGo, Майкл Белш объявил, что запланированный форк отменяется.
По его словам, участникам не удалось найти между собой компромисс и Segwit2x переносится на неопределенный срок. При этом Белш и его союзники заявили, что в будущем все равно проведут хардфорк. Эту идею вроде поддерживает даже мощнейший пул BitPico.
Почему Segwit2x был отменен? Сообщество разработчиков крайне негативно относилось к этому форку. В Online-среде была запущена кампания NO2X. И даже некоторые майнеры считали, что такой шаг мог подорвать всю сеть. Глава Blockchain.info Питер Смит, который изначально поддерживал идею Segwit2x, высказался следующим образом:
«Мы вздохнули с облегчением, ведь наша цель заключалась в том, чтобы объединить сообщество и сохранить большинство пользователей в рамках одной ветки — хотя бы на какое-то время».
Вероятно, проведение Segwit2x отложено до «лучших времен». Винни Лингхэм, основатель проекта Civic, считает, что отказ от хардфорка спровоцирует рост популярности Bitcoin Cash из-за увеличенного размера блока. Это потенциально и может стать толчком для проведения Segwit2x в будущем. Оно и покажет реальные мотивы сторонников хардфорка: хотят ли они улучшить сеть или же «по-рейдерски» захватить Bitcoin.
Заключение
Термин Segwit продолжит мелькать в криптовалютных новостях и флеймах еще долгое время, наряду со словами "хардфорк", "ethereum", "блокчейн", "биткоин голд" и так далее. Теперь вы хотя бы поверхностно знаете, что это такое. Остается верить, что Segwit – это не просто красивый термин, а реальный инструмент улучшения сети Bitcoin.