История Bitcoin отмечена критическими обновлениями, которые определили его развитие как глобальной цифровой валюты. Среди этих технических вех мало какие были столь же трансформационными или горячо обсуждаемыми, как внедрение Segregated Witness. Часто называемое своей аббревиатурой SegWit, это обновление протокола было активировано в августе 2017 года после периода интенсивных обсуждений в сообществе и достижения консенсуса. Оно стало поворотным моментом для сети, решив давние проблемы, связанные с масштабируемостью и безопасностью.
До SegWit сеть Bitcoin испытывала нарастающее давление от растущей базы пользователей. По мере роста adoption ограничения исходного размера блока стали узким местом, приводя к перегрузке сети и росту комиссий за транзакции. Разработчики и заинтересованные стороны искали решение, которое могло бы облегчить это давление, не нарушая децентрализованную природу блокчейна. Segregated Witness появился как умное инженерное решение, оптимизировавшее способ хранения данных, вместо простого увеличения лимита размера блока.
Обновление сделало больше, чем просто улучшило пропускную способность. Оно фундаментально изменило механику обработки транзакций, решив техническую уязвимость, известную как transaction malleability. Исправив эту проблему, SegWit заложил необходимую основу для решений второго уровня, таких как Lightning Network. Это проложило путь для мгновенных платежей с низкими комиссиями, которые ранее было сложно реализовать безопасно.
Понимание SegWit требует взгляда за пределы чисто технических спецификаций. Оно включает изучение модели управления Bitcoin, экономики пространства блоков и динамики сообщества, которая движет эволюцией протокола. Это обновление продемонстрировало, что Bitcoin может адаптироваться и масштабироваться через soft forks, сохраняя обратную совместимость и вводя радикальные улучшения эффективности и полезности.
Проблема масштабируемости
Bitcoin изначально был спроектирован с ограничением на размер блоков, которые можно добавлять в блокчейн. Это ограничение в 1 мегабайт (MB) служило защитной мерой против спам-атак в ранние дни сети. Однако по мере роста Bitcoin от obscure эксперимента до глобально признанного актива эта функция безопасности начала действовать как ограничение роста.
Узкое место размера блока
Каждая транзакция Bitcoin состоит из данных, которые должны обрабатываться и храниться майнерами. Эти данные включают входы, выходы и цифровые подписи, подтверждающие право собственности на средства, которые тратятся. В эпоху до SegWit вся эта информация конкурировала за место в жестком лимите 1 МБ блока.
По мере всплеска популярности сети спрос на пространство блоков часто превышал предложение. Пользователи оказались в ценовой войне, прикрепляя более высокие комиссии к своим транзакциям, чтобы побудить майнеров включить их в следующий блок. Эта динамика приводила к более медленному времени подтверждения для пользователей, плативших стандартные комиссии.
В периоды пиковой нагрузки сеть перегружалась, делая мелкие платежи или микротранзакции непрактичными. Сообщество осознало, что для эффективной работы Bitcoin как хранилища ценности и средства обмена пропускная способность сети должна быть увеличена. Дебаты сосредоточились на том, как добиться этого масштабирования без ущерба для безопасности или децентрализации.
Дилемма hard fork
Одним из предлагаемых решений проблемы масштабируемости был hard fork. Hard fork — это радикальное изменение протокола, которое делает ранее недействительные блоки/транзакции действительными или наоборот. В контексте масштабирования это означало бы просто переписать код для разрешения больших блоков, таких как 2 МБ или 8 МБ.
Однако hard forks несут значительные риски. Они требуют одновременного обновления ПО всеми узлами сети. Если часть сообщества отказывается обновляться или не согласна с изменениями, блокчейн может разделиться на две отдельные цепи. Это произошло с созданием Bitcoin Cash, который выбрал увеличить размер блока через hard fork.
Разработчики Bitcoin Core отдали предпочтение более безопасному подходу, известному как soft fork. Soft fork — это обновление с обратной совместимостью, означающее, что узлы с более старыми версиями ПО все еще могут участвовать в сети. SegWit был спроектирован как soft fork, чтобы обеспечить единство сети при доставке необходимых улучшений пропускной способности.
Консенсус и управление
Путь к активации SegWit подчеркнул уникальную природу управления Bitcoin. В отличие от централизованных систем, где лидер диктует изменения, Bitcoin полагается на консенсус среди разнообразной группы участников. Это включает майнеров, разработчиков, операторов узлов и конечных пользователей.
Предложение по SegWit, известное как Bitcoin Improvement Proposal (BIP) 141, требовало очень высокого порога поддержки от майнеров для активации. Конкретно, 95% хэшрейта майнинга должны были сигнализировать готовность в течение двухнедельного периода. Эта высокая планка обеспечивает, что обновления имеют подавляющую поддержку перед принудительным внедрением, минимизируя риск нестабильности сети.
Как работает SegWit под капотом
Основное нововведение Segregated Witness подразумевается в его названии. «Segregated» означает разделять, а «Witness» относится к цифровым подписям, которые верифицируют транзакцию. В legacy транзакциях Bitcoin данные цифровой подписи были переплетены с данными транзакции, занимая значительную часть ценного пространства 1 МБ блока.
Разделение свидетельских данных
SegWit реструктурировал формат транзакции, переместив свидетельские данные (подписи) из основной структуры блока. Хотя эти данные все еще записываются и валидируются, они хранятся в отдельной структуре, параллельной базовому блоку транзакций. Это разделение стало ключом к увеличению пропускной способности без технического увеличения лимита 1 МБ для старых узлов.
Чтобы визуализировать это, представьте поезд, представляющий блок Bitcoin. В legacy системе пассажиры (детали транзакций) и их багаж (подписи) были все запихнуты в одни и те же вагоны. У поезда был строгий лимит на объем груза.
SegWit эффективно добавил специализированный грузовой вагон в конец поезда специально для багажа. Переместив тяжелый багаж из пассажирских вагонов, поезд мог внезапно перевезти значительно больше пассажиров в тех же основных отсеках. «Багаж» все еще едет с поездом, но больше не занимает премиальное пространство, необходимое для самих пассажиров.
Вес блока против размера блока
Для внедрения этого изменения SegWit ввел новый концепт под названием «block weight». Старая метрика размера блока в простых байтах была заменена системой, которая присваивает разные «веса» разным частям транзакции. Это позволило сети различать критические данные транзакции и свидетельские данные.
В этой новой системе базовые данные транзакции учитываются по полному размеру, в то время как свидетельские данные дисконтируются. Конкретно, свидетельские данные весят значительно меньше, чем данные транзакции, в расчете лимита блока. Это изменение эффективно увеличило лимит размера блока с 1 МБ до теоретических 4 МБ «единиц веса».
Этот сдвиг мотивировал пользователей и провайдеров кошельков принимать адреса SegWit. Транзакции, использующие новый формат, были дешевле в отправке, поскольку потребляли меньше «веса» в блоке по сравнению с legacy транзакциями. Эта экономическая мотивация помогла распространить обновление по экосистеме.
Виртуальные байты (vBytes)
С введением веса блока концепция комиссий за транзакции также эволюционировала. Комиссии начали рассчитываться в «виртуальных байтах» (vBytes), а не в сырых байтах. vByte — это единица измерения, производная от веса транзакции.
Поскольку свидетельские данные дисконтируются, SegWit транзакция имеет меньший размер в vBytes, чем legacy транзакция того же сырого размера. Это означает, что при той же ставке комиссии (сатоши за байт) SegWit транзакция стоит меньше в общих комиссиях.
Этот прирост эффективности был немедленным для пользователей, перешедших на кошельки, совместимые с SegWit. Он позволил сети обрабатывать больше транзакций в секунду, эффективно увеличивая пропускную способность без опасностей, связанных с hard fork. Оптимизация доказала, что умная инженерия может выжать больше производительности из существующей инфраструктуры.
Решение проблемы transaction malleability
Хотя масштабирование было главной особенностью SegWit, обновление решило еще одну критическую техническую проблему, известную как transaction malleability. Эта проблема мучила Bitcoin с момента его создания и служила серьезным барьером для разработки продвинутых протоколов второго уровня.
Malleability относится к способности третьей стороны изменить уникальный идентификатор (TXID) транзакции до ее подтверждения в блокчейне. Важно, что это изменение могло быть сделано без инвалидации самой транзакции или изменения фундаментальных деталей, таких как отправитель, получатель или сумма.
В legacy системе цифровая подпись включалась в расчет хэша транзакции (TXID). Однако криптографические подписи могут быть математически представлены немного по-разному, оставаясь действительными. Атакующий или релейный узел мог слегка изменить данные подписи, что привело бы к совершенно другому TXID.
Если TXID изменялся, отправитель мог поверить, что транзакция провалилась, в то время как получатель (или атакующий) подтвердил измененную версию. Это создавало путаницу и делало опасным цепочки неподтвержденных транзакций. Если ID первой транзакции в цепочке изменялся, любая последующая транзакция, ссылающаяся на этот ID, становилась недействительной.
SegWit исправил это, удалив данные подписи из части транзакции, используемой для генерации TXID. Поскольку «witness» был сегрегирован, любые изменения данных подписи больше не влияли на ID транзакции. Это сделало ID транзакции неизменяемым с момента создания.
Включение Lightning Network
Исправление transaction malleability стало катализатором для Lightning Network. Lightning Network — это решение масштабирования второго уровня, которое сильно полагается на возможность безопасно создавать цепочки неподтвержденных транзакций.
Основа для второго уровня
Для работы платежных каналов две стороны эффективно открывают совместный счет в блокчейне, а затем обмениваются подписанными транзакциями off-chain. Эти off-chain транзакции обновляют баланс канала без обращения к основному блокчейну.
Однако эти off-chain транзакции зависят от того, чтобы начальная «funding transaction» была надежно закреплена. Если transaction malleability все еще была возможна, злоумышленник мог потенциально изменить ID funding transaction. Это инвалидировало бы всю последующую off-chain логику, на которой договорились стороны.
Защищая ID транзакции, SegWit предоставил твердую основу, необходимую для этих смарт-контрактов. Он позволил узлам Lightning доверять, что транзакции, которые они подписывают off-chain, останутся действительными при окончательном расчетах в основной сети Bitcoin.
Мгновенные расчеты
С устранением риска malleability Lightning Network мог быть развернут безопасно. Это позволило практически мгновенные расчеты платежей между пользователями по всему миру. Хотя SegWit предоставил скромное увеличение on-chain пропускной способности, включение Lightning предложило потенциал практически неограниченного off-chain масштабирования.
Пользователи теперь могли проводить миллионы транзакций без нагрузки на основной блокчейн, рассчитывая только окончательный результат. Эта комбинация on-chain эффективности (через SegWit) и off-chain масштабирования (через Lightning) представляет основную стратегию Bitcoin для обработки глобального объема транзакций.
Сага активации: BIP 141 и UASF
Развертывание SegWit было не просто техническим обновлением; это было историческим событием в децентрализованном управлении. Процесс раскрыл сложные динамики власти между майнерами, разработчиками и пользователями в экосистеме Bitcoin.
Предложение (BIP 141)
Обновление SegWit было официально предложено как Bitcoin Improvement Proposal 141. Для плавной активации разработчики установили порог, требующий 95% блоков сигнализировать поддержку обновления в течение двухнедельного эпохи сложности. Это было предназначено для обеспечения отсутствия разделения сети.
Однако достижение этого консенсуса оказалось сложным. Различные политические и экономические интересы среди крупных майнинг-пулов привели к тупику. Некоторые майнеры предпочитали hard fork для прямого увеличения размера блока, в то время как другие колебались с обновлением инфраструктуры.
Месяцами сигнализация активации держалась значительно ниже требуемого порога. Казалось, что обновление может застопориться на неопределенный срок, подчеркивая потенциальный недостаток в зависимости от сигнализации майнеров для обновлений протокола.
User Activated Soft Fork (BIP 148)
Раздосадованные отсутствием прогресса, в сообществе возникло grassroots движение. Эта инициатива была известна как User Activated Soft Fork (UASF), или BIP 148. Концепция была революционной: вместо ожидания голосования майнеров экономическое большинство узлов (пользователи, биржи и бизнесы) сами навязывали бы обновление.
Участники UASF запускали версию ПО Bitcoin, которая отвергала любые блоки, не сигнализирующие поддержку SegWit после определенной даты. Это эффективно провело черту. Если майнеры продолжали игнорировать SegWit, их блоки были бы отвергнуты значительной частью сети, вызывая потерю дохода.
Угроза User Activated Soft Fork сдвинула баланс сил. Она продемонстрировала, что хотя майнеры обрабатывают транзакции, пользователи определяют правила протокола. Столкнувшись с экономическим давлением UASF, майнеры капитулировали, и SegWit был заблокирован и активирован в августе 2017 года.
Типы адресов и совместимость
После активации SegWit в экосистеме Bitcoin появились разные форматы адресов. Понимание этих форматов необходимо для пользователей, желающих воспользоваться более низкими комиссиями и преимуществами эффективности SegWit.
Legacy адреса
Оригинальный формат адресов Bitcoin известен как Legacy. Эти адреса обычно начинаются с числа 1. Транзакции, отправленные с Legacy адресов, больше по размеру, поскольку не используют разделение свидетельских данных. Следовательно, они самые дорогие в плане комиссий за транзакции.
Nested SegWit (P2SH)
Для обеспечения плавного adoption разработчики ввели слой совместимости, известный как Pay to Script Hash (P2SH). Эти адреса начинаются с числа 3. Они позволяли пользователям отправлять SegWit транзакции, даже если кошелек отправителя не полностью поддерживал новый нативный формат.
Nested SegWit предоставил промежуточный вариант. Он предлагал значительную экономию комиссий по сравнению с Legacy адресами, хотя и не такую большую, как полная нативная реализация. Долгое время это был стандарт для многих бирж и провайдеров кошельков по мере обновления систем.
Native SegWit (Bech32)
Самый эффективный формат — Native SegWit, также известный как Bech32. Эти адреса начинаются с bc1. Native SegWit адреса отличаются тем, что нечувствительны к регистру, снижая риск ошибок ввода.
Более важно, Native SegWit транзакции меньше по виртуальным байтам, чем их Nested аналоги. Это приводит к самым низким возможным комиссиям за транзакции для пользователей. По мере созревания экосистемы Native SegWit стал стандартом по умолчанию для большинства современных кошельков и сервисов.
| Тип адреса | Префикс | Эффективность комиссий | Совместимость |
|---|---|---|---|
| Legacy | 1... | Низкая | Универсальная |
| Nested SegWit | 3... | Средняя | Высокая |
| Native SegWit | bc1... | Высокая | Современные кошельки |
За пределами SegWit: Taproot и Ordinals
Успешное внедрение SegWit доказало, что Bitcoin может проходить сложные обновления без нарушения своей основной ценностной пропозиции. Этот успех проложил путь для последующих инноваций, которые еще больше расширили возможности сети.
Taproot и Schnorr подписи
В ноябре 2021 года Bitcoin активировал обновление Taproot. Taproot строилось непосредственно на основе, заложенной SegWit. Оно ввело Schnorr подписи, которые позволили еще большую эффективность и приватность.
Как и SegWit, Taproot изменило способ хранения данных в блокчейне. Оно позволило агрегацию подписей, где несколько подписей в сложной транзакции могли быть объединены в одну подпись. Это сделало сложные смарт-контракты неотличимыми от обычных транзакций, повышая приватность и экономя пространство блока.
Без структурных изменений, введенных SegWit, конкретно системы версионирования скриптов, обновления вроде Taproot были бы значительно сложнее в развертывании. SegWit установил четкий путь для будущей расширяемости.
Восхождение Ordinals
Недавно введение Bitcoin Ordinals использовало инфраструктуру SegWit неожиданными способами. Ordinals позволяют пользователям наносить произвольные данные — такие как изображения, текст или код — непосредственно на отдельные сатоши.
Это возможно, потому что SegWit дисконтировал «вес» свидетельских данных. Инаскрайберы осознали, что могут хранить большие объемы данных в поле witness транзакции за долю стоимости хранения в основной области блока. Хотя это спорно для некоторых, кто видит в этом спам, Ordinals продемонстрировали гибкость пространства свидетельских данных.
Этот неожиданный сценарий использования подчеркивает надежность дизайна SegWit. Создав отдельную, дисконтированную полосу для данных, обновление непреднамеренно создало холст для цифровых артефактов, еще больше диверсифицируя полезность блокчейна Bitcoin.
Заключение
Segregated Witness стоит как свидетельство стойкости и адаптивности сети Bitcoin. Столкнувшись с критическим узким местом, угрожавшим задушить рост, сообщество объединилось вокруг элегантного, обратно совместимого и дальновидного решения. Переосмыслив структуру данных транзакций, SegWit обеспечил немедленное облегчение от высоких комиссий, сохраняя децентрализацию, которая придает Bitcoin ценность.
Наследие SegWit простирается далеко за пределы простых расчетов веса блока. Оно решило persistent уязвимость transaction malleability, разблокировав потенциал решений масштабирования второго уровня, таких как Lightning Network. Более того, оно установило прецедент для управления, driven пользователями, доказав, что экономическое большинство может эффективно сдерживать власть майнинговых сущностей.
По мере эволюции Bitcoin структуры, построенные SegWit, остаются центральными для его работы. От эффективности Native SegWit адресов до продвинутых возможностей Taproot и Ordinals, обновление переопределило возможное на блокчейне. Оно обеспечило, что Bitcoin может масштабироваться для удовлетворения глобального спроса без компромиссов принципов, на которых он был основан.
SegWit революционизировал Bitcoin, разделив подписи от данных транзакций, эффективно увеличив пропускную способность блока и исправив критические баги для включения будущего масштабирования.