Bitcoin Guides

Bitcoin

Как майнить биткоин

Что я могу купить с Bitcoin онлайн и оффлайн?

Bitcoin (BTC) для начинающих

Руководство для начинающих по просмотру блокчейна Bitcoin

Руководство для начинающих о том, как блокчейн относится к биткоину

Что такое приватный ключ Bitcoin?

How to manage cryptocurrency transactions on different blockchains

Что такое молниеносная сеть?

Является ли биткоин стабильным инвестированием?

Как выбрать лучшее оборудование для майнинга Bitcoin

Лучшее программное обеспечение для майнинга Bitcoin

Важность хеширования Bitcoin

Bitcoin CoinJoin: улучшение взаимозаменяемости

Технология блокчейн Биткойн: бесскриптные скрипты

Технология биткоина: Statechains

Технология блокчейн Биткойн: Taproot

Технология блокчейн Bitcoin: агрегирование подписей

Технология блокчейн Bitcoin: Graftroot

Технология Bitcoin: смарт-контракты Rootstock (RSK)

Технология Bitcoin: изолированный свидетель (SegWit)

Масштабирование Bitcoin: конфиденциальность и масштабируемость

Erlay: новый протокол ретрансляции транзакций Bitcoin

What is Bitcoin Miniscript and how does it work?

Explore other guides

Advanced

Технология Bitcoin: изолированный свидетель (SegWit)

Технология Bitcoin: изолированный свидетель (SegWit). Segregated Witness (SegWit) — это реализованная модернизация протокола, предназначенная для обеспечения защиты от податливости транзакций и увеличения емкости блока.
SegWit отделяет свидетеля от списка входов. Свидетель содержит данные, необходимые для проверки действительности транзакции, но не требуется для определения эффектов транзакции.
Чтобы по-настоящему понять, как работает SegWit, мы сосредоточимся на двух разных понятиях: вес блока и мягкие вилки.
Размер блока Bitcoin и вилки
Чтобы точно говорить о размерах блоков, важно понять, как измеряется размер блока. Размер блока - это просто размер в байтах сериализованного блока (заголовок блока, количество транзакций и сами транзакции).
Как часть правил консенсуса, каждый узел в сети Bitcoin в настоящее время проверяет, чтобы убедиться, что блок меньше 1 000 000 байт. Блок, размер которого превышает 1 000 000 байт, будет отклонен этими узлами как правило консенсуса.
Поскольку устаревшие узлы (узлы, которые не обновляются) будут отклонять блок, размер которого превышает 1 000 000 байт, любая мягкая вилка должна сохранить это правило. Но как вы можете увеличить размер блока и сохранить это правило? Возможны ли большие блоки через мягкую вилку?
Ключевое понимание заключается в том, что большая часть транзакции, scriptSig (открытый ключ), по существу не может быть отправлена на устаревшие узлы для того, чтобы транзакция считалась действительной. Тот факт, что это может быть сделано как мягкий форк и позволить больше транзакций, является инженерным прорывом.
Транзакции non-SegWit помещают scriptSig в середине транзакции. Транзакции SegWit помещают scriptSig в конце. Часть scriptSig транзакций SegWit называется “данные свидетеля”. Когда транзакции SegWit отправляются на устаревшие узлы, следственные данные удаляются. Ключ заключается в том, что эти “разделенные” транзакции по-прежнему являются действительными транзакциями на устаревших узлах, что дает нам экономию пространства над транзакциями, отличными от SegWit. Таким образом, больше транзакций может поместиться в блок, отправленный на устаревшие узлы, не превышая предел 1 000 000 байт.
Узлы SegWit получают транзакции и блоки SegWit, которые включают следственные данные с использованием альтернативных сетевых сообщений. Блоки SegWit, включающие следящий данные, могут быть более 1 000 000 байт. Как уже упоминалось, устаревшие узлы получают одни и те же блоки и транзакции, но с лишенными данными. Это способ сделать SegWit мягкой вилкой, что означает, что обновление программного обеспечения не обязательно, чтобы участвовать в консенсусе.
SegWit и вес блока
Очевидной проблемой для критика SegWit будет тот факт, что должен быть верхний предел, в противном случае размер блока может потенциально увеличиться бесконечно - что является огромной проблемой для отказоустойчивости узлов.
Чтобы ограничить блоки SegWit, создатели SegWit вместо этого придумали другое ограничение, отличное от размера. Блоки SegWit ограничены чем-то называемым весом блока. Вес блока - это новая концепция, введенная в SegWit, и она рассчитывается на основе каждой транзакции. По сути, каждая сделка имеет “вес”.
Транзакции с нулевыми данными свидетелей легче, чем транзакции с данными свидетелей. Обратите внимание, что транзакции SegWit передаются на устаревшие узлы без следящего данных, поэтому это всегда приводит к тому, что блоки передаются на устаревшие узлы, которые меньше или равны 1 000 000 байт.
Ключевая концепция, чтобы понять, заключается в том, что транзакции SegWit могут иметь много разных весов в зависимости от того, какая часть транзакции воспринимается свидетельскими данными, что дает создателям транзакций гораздо больше возможностей для игры с гибкостью транзакций.

Disclaimer: The views and opinions expressed by the author should not be considered as financial advice. We do not give advice on financial products.