Що таке SegWit (Segregated Witness)?

Що таке SegWitSegregated Witness (SegWit) — це оновлення протоколу, розроблене у 2015 році. Дана концепція була представлена як розв'язання проблем з масштабністю, з якою стикалися і продовжують стикатися блокчейн-мережі.

В середньому, мережа біткоїна здійснює валідацію нового блоку з транзакціями кожні 10 хвилин. Таким чином, розмір блоку впливає на кількість транзакцій, які можуть бути підтверджені в кожному блоці.

Основна ідея SegWit полягає в реорганізації даних в блоці таким чином, щоб підписи розміщувалися окремо від інформації про транзакції. Іншими словами, оновлення SegWit складається з відділення свідків (підписів) від транзакцій. Це дозволяє збільшити пропускну здатність мережі шляхом збільшення кількості транзакцій в блоці.

Оскільки біткоїн може надати тільки близько 7 транзакцій в секунду, обробка переказу в мережі іноді може використати великий проміжок часу в порівнянні з традиційними платіжними рішеннями та фінансовими мережами, які можуть обробляти тисячі транзакцій в секунду.
SegWit було розроблено у 2015 році біткоїн-розробником Пітером Віллом і іншими учасниками Bitcoin Core. У серпні 2017 року оновлення було реалізовано як софтфорк в мережі біткоїна.

Сьогодні, існує кілька криптовалютних проєктів, що використовують SegWit, в тому числі Bitcoin і Litecoin. Оновлення протоколу принесло ряд переваг, таких як підвищення швидкості транзакцій і поліпшення пропускної спроможності. Крім того, SegWit вирішує так звану помилку пластичності транзакцій.

Переваги SegWit

  • Одна з найголовніших переваг SegWit є збільшення місткості блоку. Завдяки видаленню підписів з даних про транзакції на виході, з'являється можливість вмістити більшу кількість транзакцій в одному блоці. Транзакції складаються з двох основних компонентів: вхідні дані та вихідні. Вхідні дані містять публічну адресу відправника, а вихідні — публічну адресу одержувача. Однак відправник повинен довести, що він має необхідну кількість коштів для їх переказу іншому користувачеві, і підтвердити це за допомогою цифрового підпису. Без SegWit дані підписи можуть займати до 65% всього блоку. SegWit дозволяє видаляти підписи з вхідних даних про транзакції. Це призводить до збільшення місткості блоку з 1 МБ до приблизно 4 МБ. SegWit не передбачає збільшення розміру самого блоку. Це інженерне рішення, що дозволяє залучити весь потенціал блоку без необхідності збільшення його поточного розміру, що можливо тільки в разі хардфорка. Фактичний розмір блоку, як і раніше залишається 1 МБ, але ефективний граничний розмір складе 4 МБ. 

  • Оскільки блок вміщує в себе більше транзакцій, SegWit сприяє збільшенню швидкості операцій на блокчейні. Попри те, що майнінг блоку займає таку ж кількість часу, число оброблюваних транзакцій збільшується і відповідно TPS стає вище. Збільшена швидкість транзакцій також допомогла знизити операційні витрати в мережі біткоїна. До поновлення звичайною справою було заплатити понад $30 за транзакцію. SegWit різко знизив вартість комісії до менш ніж $1.

  • Одним з основних проблемних моментів біткоїна була можливість підробити криптографічний підпис транзакції. Якщо в підпис внесли хоча б найменші зміни, це може привести до пошкодження її ідентифікатора, що відповідно вплине на всю транзакцію між двома сторонами. Оскільки дані, що зберігаються в блокчейні практично незмінні, подібні транзакції можуть назавжди залишитися в його історії. Завдяки SegWit, підписи більше не є частиною транзакцій, що у свою чергу виключає можливість зміни такого виду даних. Застосування цього виправлення дозволило реалізовувати подальші інновації для блокчейн-спільноти, включаючи протоколи другого рівня і смарт-контракти.

Недоліки SegWit

  •  Він не підтримується достатньою кількістю вузлів. Багатьом майнерам не подобається SegWit. Більш низькі збори впливають на їх прибуток, і вони також не бачать необхідність підтримувати SegWit, який знижує їх дохід від комісій. Інші біткоїн-сервіси, такі як гаманці, також не поспішають підтримувати зміни SegWit. У лютому 2018 року, майже через шість місяців після його активації, тільки 14% транзакцій біткоїна було скоєно з використанням SegWit. З того часу цифри покращилися, але мережа все ще далека від повного оновлення.

  • Це короткострокове розв'язання довгострокових проблем. Деякі розробники скаржаться на те, що протокол SegWit недостатньо розв'язує проблему масштабованості. Вони стверджують, що тільки значні зміни в розмірі блоку і способі обробки транзакцій допоможуть платформі масштабуватися в майбутньому.

  • SegWit викликав розбіжності в спільноті. Розбіжності навколо SegWit викликали кілька хардфорків. Найбільш відомим з них є Bitcoin Cash (BCH). 

Що таке SegWit2x

SegWit — це софтфорк, що передбачає зворотну сумісність. Іншими словами, вузли в мережі біткоїна, що не оновилися, можуть і далі продовжувати обробляти транзакції. Однак, також була запропонована та інша версія SegWit під назвою SegWit2x (S2X), яка має на увазі хардфорк мережі.

Основна відмінність між SegWit і SegWit2x полягає в тому, що варіант з хардфорком не тільки змінює порядок пакетування транзакцій, але також і збільшує розмір блоку (з 1 Мб до 2 Мб). Подібні зміни можуть збільшити навантаження на вузли й майнерів, через обробки більших обсягів даних.

Segwit2x з одного боку розв'язував проблему масштабованості мережі, з іншого ставив всю безпеку мережі під загрозу. Наприклад, там не було механізму захисту від подвійного витрачання, а потенційна активація могла негативно відбитися на інвесторах і навіть майнерах. Однак, 8 листопада один з ініціаторів Segwit2x і за сумісництвом керівник сервісу BitGo Майкл Белш оголосив, що запланований форк скасовується.

За його словами, учасникам не вдалося знайти між собою компроміс і Segwit2x переноситься на невизначений термін. При цьому Белш і його союзники заявили, що в майбутньому все одно проведуть хардфорк. Цю ідею на кшталт підтримує навіть наймогутніший пул BitPico.
Спільнота розробників вкрай негативно ставилося до цього форку. У Online-середовищі була запущена кампанія NO2X. І навіть деякі майнери вважали, що такий крок міг підірвати всю мережу.

Висновки

Реалізація SegWit ознаменувало собою найбільше оновлення протоколу біткоїна, а той факт, що його підтримала і здійснила децентралізована спільнота, робить його найцікавішим.

Софтфорк SegWit став важливим кроком у розв'язанні багатьох проблем пов'язаних з біткоїном і іншими блокчейн-мережами, особливо щодо масштабованості. Завдяки комбінації SegWit і протоколів другого рівня, блокчейни можуть більш ефективно обробляти більшу кількість транзакцій за меншу вартість.

Попри те, що це потужне й інноваційне рішення, на даний момент не всі учасники мережі повністю взяли оновлення. В даний час відсоток біткоїн-адрес використовують SegWit становить близько 53%.