Что такое SegWit

Что такое SegWit

Segregated Witness, или SegWit — это софтфорк сети биткоина, который предназначен для увеличения пропускной способности блокчейна путем удаления данных подписи из транзакций. Софтфорк — это метод обновления блокчейна, который совместим с предыдущими версиями программного обеспечения.

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

Что такое форк, и что делает форк SegWit

Софт форк — это обновление блокчейна, выполненное без разделения цепочки на две части, и SegWit увеличил количество транзакций в любом блоке биткоина.

Форк — это, в основном, модификация, сделанная для открытого исходного кода. Он вводит отклонения от того, как базовый проект работает с этого момента, и он может быть как софт-форком, так и хард-форком. Жесткие форки заставляют блокчейн делиться на две части, требуя, чтобы участники выровняли блоки, несовместимые с новым программным обеспечением: новая цепочка отделена от старой. SegWit был программным форком, означающим, что всё еще будет один блокчейн Bitcoin для приема блоков от пользователей, которые еще не включили SegWit в своем программном обеспечении.

SegWit устранил проблему, называемую изменчивостью транзакций, которая позволяла изменять данные транзакций BTC до того, как сеть обработала их. Это создало бы бухгалтерский кошмар. Позволяя хранить информацию о подписи (то есть, «свидетель») вне (то есть «отделяя» от) блока релевантных транзакций, но все же проверять их, SegWit позволяет Биткоину сохранять целостность транзакций, в то же время упаковывая больше их в любой 1-мегабайтный блок. Результат — более быстрый и безопасный биткоин.

Что делает Segregated Witness, перевод слова «Segwit»

Перевод термина Segwit, или Segregated Witness — это «распределенный свидетель». Имеется в виду, что подписи не хранятся в самом блоке, а распределяются по компьютерам, что позволяет уменьшить размер блока.

Если коротко, Segwit позволяет увеличить эффективность блокчейна без увеличения размера блока. Положительное качество Segregated Witness заключается в том, что исключение подписей из блока в 1Мб может эффективно увеличить размер блока биткоина. Это значит, что в каждый блок можно будет записать большее количество транзакций или, другими словами, повысить пропускную способность блокчейна. Всё это происходит без нарушения существующих правил консенсуса.

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

Данные блока плюс «четверть» Segregated Witnesses не должны превышать 1 Мб. В таком случае, все блоки покажутся старым нодам меньше 1 Мб, поскольку четверть Segregated Witness (которую они не видят) должна быть установлена в тот же самый 1 Мб. При этом новые ноды увидят блоки, превышающие 1 Мб, так как фактический размер Segregated Witness больше того, что считается одной четвертью.

Точное количество дополнительного пространства, предоставляемого Segregated Witness, зависит от типов транзакций, входящих в новые блоки. Если больше транзакций хранят большее количество данных в Segregated Witness, как происходят в транзакциях с мультиподписью, эффективный размер блока увеличивается. Это добавляет около 1,75 Мб в максимальный размер блока для нормальных транзакций, и размер в 4 Мб устанавливается в качестве жесткого ограничения, которое невозможно превысить, даже если в Segregated Witness вместились (почти) все данные.

Проблемы, которые решает SegWit

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

SegWit совершенствует процесс переводов, создавая условия для увеличения размера блока. Вот основные проблемы, которые позволяет решить обновление:

  • Технология увеличивает размер блока и повышает пропускную способность всей сети.
  • Вынос цифровых подписей за пределы транзакций позволяет уменьшить их размер почти вдвое. Следовательно, в один блок будет помещаться в 2 раза больше платежей.
  • Уменьшение транзакций автоматически уменьшит размер блокчейна. Ноды смогут сэкономить значительную часть дискового пространства.
  • Появится возможность мгновенного обмена виртуальных активов на реальные без помощи посредников (бирж и обменников).
  • Сеть сможет взаимодействовать с протоколами второго уровня, например, Lightning Network. В перспективе возможна реализация кроссчейновых платежей.
  • Упрощаются проверки транзакции, на синхронизацию и запуск ноды будет уходить значительно меньше времени.
  • Увеличится стойкость сети к спам-атакам.

Таким образом, SegWit улучшает многие аспекты в сети Биткоин, в частности улучшает взаимодействие с новыми протоколами, улучшает масштабируемость и уровень защиты.

Почему SegWit все еще не завершен

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

Несмотря на преимущества SegWit, не все участники сети Биткоин внедрили его. Чтобы понять причину, требуется знание многих ролей, которые люди играют в экосистеме Биткоин, и того, как иногда стоящие за ними стимулы противоречат друг другу.

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

К тому времени когда появился SegWit, в биткоин уже не вкладывались миллиарды, поэтому только небольшая часть этих компаний действует сколько-нибудь проворно. Окончательное решение о том, «качать ли лодку» с помощью новых обновлений программного обеспечения и экономики или сохранить статус-кво, остается за неохотно действующими руководителями, а не энтузиастами. Другим несбалансированным стимулом является стимул майнеров, которые предпочли использовать прошивку AsicBoost, несовместимую с SegWit, но якобы помогающую им проверять транзакции на 20% быстрее.

Выбор между Segwit и Legacy, положительные стороны технологии Segwit

Внедрение SegWit в Биткоин имеет ряд качеств:

  • Третьи стороны не смогут вносить какие-либо изменения в подписи транзакций, что упрощает разработку новых смарт-контрактов, подобных тем, которые используются в Lightning Network.
  • Размер транзакции уменьшается, но количество данных, передаваемых во время ее проведения, не меняется, поскольку применяется перемещение цифровых подписей. Блоки сегвит имеют размер 1.7-2 Мб. Такое решение значительно ускоряет пропускную способность сети.
  • Упрощается имплементация софт-форков, и повышается безопасность системы. Подписи ECDSA будут заменены более надежным форматом Schnorr.
  • Функция sighash переформатируется с экспоненциальной в линейную. Это положительно отразится не только на безопасности транзакций, но и на скорости подтверждения блоков. Упростится взаимодействие с аппаратными кошельками, что откроет новые возможности для разработчиков данного сегмента.
  • Переводы в сети могут осуществлять и участники сегвит и те, кто не использует технологии. Разница будет только в комиссиях. Участники SegWit будут платить меньше.

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

Главные недостатки SegWit

Технология SegWit до сих пор не интегрирована в Биткоин в полной мере. Многие аналитики считают, что на это уйдут годы, поскольку количество нод в сети превышает 10 000.

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

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

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

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

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

Таким образом, недостатками SegWit считаются:

  • Протокол может негативно отразиться на безопасности сети. Поскольку проверку валидности транзакций смогут осуществлять только ноды, принявшие SegWit, количество проверяющих резко сократится.
  • Протокол SegWit нельзя отменить. При его откате или отмене segwit-выходы станут общедоступными.
  • SegWit – это софтфорк, поэтому обновятся не все клиенты. Это значит, что в сети одновременно будут находиться 2 группы UTXO. Важные изменения сети не смогут применяться не к сегвитовским выходам. Таким образом, риск атак, основанных на неизменяемых id транзакциях, не только сохраняется, но и увеличивается.
  • Протокол пытается решить все проблемы сразу, в результате меняется огромная часть кода. Это приводит к затруднению работы сети и повышает вероятность багов, которые будет сложно устранить.

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

Получаем SegWit-адрес биткоин в Bitcoin Core. Segwit или Native Segwit?

Создать собственный SegWit-адрес биткоин в Bitcoin Core можно через консоль программы. Для этого нужно ввести всего лишь одну команду:

addwitnessaddress XXXX

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

SegWit-адрес биткоин в Bitcoin Core может иметь один из двух форматов на выбор:

  • P2SH-тип. Такие адреса начинаются с цифры 3 и могут взаимодействовать со стандартными адресами биткоин, позволяя отправлять и получать монеты.
  • bech32 P2WPKH. Адреса данного формата начинаются с bc1. Они являются новым типом SegWit-адресов, а их ввод не требует учета регистра (можно писать заглавными или строчными буквами – адрес от этого не меняется), что несколько упрощает работу с ними. Это так называемый Native Segwiit (природный, прирожденный Segwit). Теоретически такие типы адресов могут не взаимодействовать со старыми биткоин-адресами. Основная разница состоит в кодировании блокчейна. Native Segwit ещё легче, быстрее, и требует меньших затрат на транзакции, но в меньшей степени распространен. Все адреса в Native Segwit записываются строчные буквами для повышения удобочитаемости. Эти Segwit и Native Segwit полностью совместимы, но отдельные кошельки и обменники могут не поддерживать отправку средств на адрес другого формата.

Создать SegWit-адрес биткоин в Bitcoin Core достаточно просто. Всего за несколько кликов и пару минут времени вы сможете получить возможность оплачивать меньшие комиссии и быстрее осуществлять любые транзакции.

Кошельки с Segwit: список и настройка Segwit Address

Segwit популярна, что во многом обусловлено добавлением его в Bitcoin Core. Далее рассматриваются другие кошельки с Segwit, а также инструкции по созданию новых адресов для некоторых из них.

Кошельки с Segwit: Ledger Wallet

Данный аппаратный кошелек пополнил ряды поддерживающих адреса Segwit еще в августе 2017 года и стал одним из первых. Чтобы перейти на сегвит, следует выполнить следующие действия:

  • Запускаем программу Ledger Wallet Bitcoin, установленную на вашем ПК.
  • Вставляем кошелек в USB-порт и вводим PIN для разблокировки.
  • В приложении выбираем кнопку BTC.
  • На экране должно появиться окошко, где предлагается выбрать Legacy или SegWit. Собственно, выбираем второй вариант.
  • Откроется кошелек с новым адресом, который должен начинаться с цифры 3. Копируем его.
  • Теперь вернитесь к экрану с выбором адресов, войдите в Legacy и отправьте битки на новый SegWit-адрес.

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

Кошельки с Segwit: Trezor

Аппаратный кошелек Trezor был вторым из тех, кто поддержал Segwit. При этом новые аккаунты генерировались для пользователей автоматически с момента внедрения протокола. Для их использования достаточно зайти в приложения Trezor Wallet и перевести свои биткоины или лайткоины на новый счет.

Кошельки с Segwit: Electrum

Electrum – один из самых популярных криптовалютных кошельков с поддержкой Segwit. Но, в отличие от других вариантов, он генерирует Bech32-ключи, поэтому ваш адрес будет начинаться с bc1. Для его получения необходимо:

  • Зайдите в кошелек и сгенерируйте bip39 и seed-фразу, состоящую из 12 слов.
  • Затем в интерфейсе кошелька проследуйте по следующему направлению: Файл -> Создать/Восстановить -> Стандартный кошелек -> У меня уже есть seed -> выберите Параметры -> bip39.
  • Параметр derivation path установите вручную, прописав: m / 49 ‘/ 0’ / 0 ‘/ 0.

Теперь ваш новый Segwit-адрес готов к работе.

Другие кошельки с Segwit

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

Также неплохим вариантом является GreenAddress, который также работает как с ПК, так и с мобильными устройствами. Стоит отметить, что добавить новый адрес можно только с использованием домашней сети. Такое ограничение введено для повышения безопасности средств.