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.