SegWit и его влияние на протокол Bitcoin

Аватар
14 июля 2025 Updated on  Обновлено   22 декабря 2025

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

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

Это технологическое новшество исключает податливость третьих сторон и scriptSig, и немного увеличивает средний размер блоков биткоинов — с 1 Мб до 1,8 Мб. SegWit — не эксклюзивное программное обеспечение для Биткоина. Он также был реализован на других платформах, таких как Litecoin и Vertcoin.

Как и почему возник SegWit

SegWit и его влияние на Bitcoin

Два главных недостатка Биткоина связаны с гибкостью и масштабируемостью. Чтобы исправить их, были представлены и реализованы некоторые предложения. Самое важное из них — Segregated Witness. SegWit был активирован в сети Биткоина 24 августа 2017, после двух лет испытаний. Протокол запустили Эрик Ломброзо и Джонсон Лау 21 декабря 2015.

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

Масштабируемость — свойство некоторых криптографических алгоритмов, которые позволяют модифицировать код третьей стороной. В Биткоине без SegWit податливость транзакции считается типом атаки на отказ в обслуживании, что приводит к изменению идентификатора транзакции, известного как txid, в неподтверждённых транзакциях. Это связано с тем, что хеш-типы биткоинов не защищают сценарий подписи (scriptSig), а она включает тип подписи (secp256k1), который не может быть «подписан» сам по себе. Способ вычисления txid допускает возможность того, что третья сторона с плохими намерениями или майнер могут непреднамеренно изменить идентификатор определённой транзакции.

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

Какое влияние SegWit оказывает на Bitcoin

До SegWit консенсусные правила в Биткоине включали ограничение каждого блока размером 1 Мб. Все блоки, которые не соответствовали этой норме, были отклонены. Изначально не было ограничений на размер блока в Биткоине. Затем Сатоши Накамото установил предел в 1 Мб из-за DoS-атак, по соображениям безопасности.

Чтобы сделать SegWit софтфорком (мягким ветвлением), это правило всё ещё поддерживается, а устаревшие узлы сосуществуют с узлами SegWit. Однако с SegWit было введено новое правило, которое подразумевает введение нового термина и представляет собой вес блока, который должен быть меньше или равен 4 000 000 байт. Это новое правило позволяет узлам, унаследованным от Bitcoin Core, оставаться частью сети, по-прежнему обрабатывая блоки размером не более 1 Мб, а новые или обновлённые узлы обрабатывают блоки размером 1,8 Мб. Теперь для обоих типов узлов вес обрабатываемого блока будет не более 4 Мб.

При отправке блоков с транзакциями SegWit в устаревшие узлы, которые не были обновлены до SegWit, данные подписей устраняются. Так что эти транзакции остаются в силе, создавая экономию места в блоке, который позволяет обрабатывать больше транзакций на каждый блок. И всё это соответствует правилу 1 Мб. С другой стороны, узлы, обновлённые до SegWit, получают транзакции и блоки с данными подписей посредством альтернативных сообщений, определённых в улучшении BIP144. Эти блоки поступают на узлы SegWit с отдельной структурой, которая включает в себя подписи и может иметь размер 1,8 Мб.

Размер и вес блока

Размер блока выражается в байтах и представляет собой фактический размер. До SegWit правило консенсуса относительно размера блока диктовало ограничение в 1 Мб. Это правило поддерживается для устаревших узлов, но для узлов SegWit размер блока может быть до 1,8 Мб.

Вес блока ограничен до 4 Мб для обоих узлов (обновлённые узлы SegWit). Это новая концепция, представленная SegWit. Это ограничение для блоков вычисляется с помощью формулы: базовый размер × 3 + общий размер.

Здесь «базовый размер» — это размер блока в байтах без каких-либо данных. А «общий размер» — это размер блока в байтах с базовыми и данными маркера. Эта формула используется для вычисления как веса транзакции, так и веса блока.

Каковы преимущества SegWit для Bitcoin и его пользователей

Segregated Witness и его влияние на Bitcoin

Преимуществ, которые SegWit приносит в сеть, в основном два: он предотвращает атаки и увеличивает размер блока до примерно 1,8 Мб. Из них выделяются ещё несколько других.

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

Ещё одно преимущество SegWit заключается в том, что он позволяет отслеживать транзакции в блокчейне простым и надёжным способом через txid, так как невозможно изменить его с помощью этого обновления. Кроме того, был улучшен дизайн, понимание и контроль смарт-контрактов и решений второго уровня также облегчается с помощью SegWit.

SegWit — окончательное решение проблемы масштабируемости?

К сожалению, Segregated Witness — не окончательное решение проблем, связанных с масштабируемостью Биткоина, поскольку увеличение количества транзакций незначительно. Однако тот факт, что он исправляет серьёзные проблемы, приводит к развёртыванию других технологий, таких как Lightning Network. С исправлением масштабируемости реализация Lightning Network стала менее сложна, использование пространства в блокчейне стало более эффективно. Исправление также позволяет создавать тонкие клиенты Lightning для контролирования блокчейнов, не требуя, чтобы они были полными узлами.

map

Связаться с нами