19 / 736BIP141

SegWit

Segregated Witness; отделение данных проверки платежа

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

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

При отправке кошелёк указывает, какие ранее полученные средства расходует и какие новые суммы должны появиться у получателя и при необходимости у вас как сдача. Он также должен доказать право потратить эти средства. Для этого нужны подписи и другие проверочные данные. SegWit поместил их в часть под названием witness. Здесь это доказательство выполнения условий расходования, а не человек, наблюдающий за платежом. Данные не выбросили и не вынесли за пределы Bitcoin: узлы, применяющие правила SegWit, по-прежнему их проверяют. [1]

Кошелёк отслеживает платёж по txid. Следующая транзакция тоже ссылается этим идентификатором на средства, которые хочет потратить. Раньше изменение некоторых данных подписи могло менять txid, хотя получатели и суммы оставались прежними. Это усложняло цепочки ещё не подтверждённых платежей. SegWit рассчитывает txid без witness, поэтому изменение только witness его не меняет. Для защиты всей транзакции от этой проблемы все её входы должны использовать SegWit. Изменение получателей или входов всё ещё может менять txid. Более стабильные ссылки помогли и Lightning Network — сети платежей через платёжные каналы. Второй идентификатор, wtxid, напротив, включает witness. [1] [4]

SegWit ввёл вес вместо одинакового подсчёта всех байтов. Байт основных данных стоит 4 единицы веса, дополнительный байт witness — 1. Лимит всего блока составляет 4 000 000 единиц. Например, транзакция со 100 основными байтами и дополнительными 100 байтами witness весит 500 единиц и имеет виртуальный размер 125 vB. По нему рассчитывается комиссия при выбранной ставке sat/vB. Экономия зависит от устройства транзакции, а спрос на место по-прежнему влияет на ставку. Лимит веса не означает ни одинакового размера всех блоков в мегабайтах, ни того, что любой платёж SegWit дешевле. [1]

В основной сети Bitcoin нативные адреса SegWit версии 0 начинаются с bc1q. P2WPKH и P2WSH различают два вида условий расходования: обычный платёж под контролем ключа и платёж со скриптом, то есть набором правил. SegWit можно также обернуть в старый формат P2SH с адресом на 3; сама тройка, однако, не доказывает использование SegWit. Taproot использует witness версии 1 и адреса bc1p. Поэтому префикс bc1 не обозначает единственный вид платежа. В повседневном использовании проверяйте поддержку формата отправляющим кошельком и полный адрес получателя; ни один из этих префиксов сам по себе не обещает анонимности. [1] [2] [3]

Изменение спроектировали как Soft Fork — более строгие правила, совместимые со старыми. Но старый узел сам не проверяет полностью новые условия SegWit. Witness криптографически привязан к блоку через witness commitment в coinbase, первой транзакции блока. Поэтому подписи не являются необязательным приложением, которое полная проверка может игнорировать. BIP 141 также выражает вес как тройной основной размер плюс полный размер; виртуальный размер — вес, делённый на четыре с округлением вверх. Это описания одного учёта, а не два разных лимита. [1]

Для полной картины прочитайте эту статью вместе с Транзакция, Transaction Fees, Lightning Network, Taproot. На эту статью также ссылаются Транзакция, Transaction Fees, Taproot, Lightning Network.

DOC · 001BIP 141: Segregated WitnessПервичный источник DOC · 002BIP 341: witness version 1Первичный источник DOC · 003BIP 350: Bech32m for witness version 1 and laterПервичный источник DOC · 004Bitcoin Core: Segregated Witness benefitsПервичный источник
Обновлено: Сначала источники · Не является инвестиционной рекомендацией