Що таке м’який форк? Пояснення оновлень блокчейну
Правила блокчейну стають жорсткішими, а не послабленими, коли відбувається м'який форк. Старі вузли, які пропустили оновлення? Вони все одно продовжують слідувати за новими блоками. Ніякої драми, жодного розколу ланцюга. Ви, мабуть, стикалися з цим терміном поруч із оновленнями Bitcoin, такими як SegWit або Taproot, і задавалися питанням, що насправді відрізняє його від хард-форку.
Ось проста версія, без жаргону. Тримаєте криптовалюту, запускаєте ноду чи просто цікавитеся, чому деякі оновлення викликають хаос, а інші проходять непоміченими? Зазвичай все зводиться до цієї однієї відмінності.
Що таке м'який форк у блокчейні?
Софт-форки роблять правила блокчейну суворішими, а не послабшими. Блок, який би пройшов за старими правилами, тепер може бути відхилений. Однак блоки, що дотримуються нових, жорсткіших правил? Старе програмне забезпечення все ще визнає їх дійсними.
Уся хитрість полягає в цій односторонній сумісності. Старі вузли не розуміють нових правил детально, та й, чесно кажучи, їм це не потрібно. Вони просто бачать блоки, які виглядають коректними, і продовжують працювати, не звертаючи уваги на те, що частина того, що раніше проходило перевірку, більше не працює.
Хардфорки перевертають це. Вони послаблюють або повністю переписують правила таким чином, що старі вузли просто не можуть їх перевірити. Посилення чи послаблення — ця єдина різниця вирішує, чи оновлення залишить усіх на одному ланцюжку, чи розділить мережу навпіл.
Ось краща уявна картина: скорочений набір правил, а не переписаний. До форку певний діапазон блоків вважається дійсним. Після цього цей діапазон трохи зменшується. Деякі блоки, які раніше проходили, тепер відкидаються оновленими вузлами. Ключова частина, однак, полягає в тому, що кожен блок, прийнятий за новими правилами, вже був прийнятний і за старими. Нічого нового не пропускається. Щось старе просто блокується. Ось вся причина, чому непатчеве програмне забезпечення продовжує працювати, ніби нічого не сталося.
Як насправді працює м'який форк?
Механіка зводиться до поведінки вузлів та перевірки правил. Ось як це працює приблизно:
- Розробники пропонують зміну, яка звужує набір дійсних транзакцій або блоків, зазвичай для виправлення обмеження або додавання нової можливості.
- Спільнота та оператори вузлів переглядають, тестують та обговорюють пропозицію, часто через формальний процес, такий як пропозиції щодо покращення біткойна (BIP).
- Майнери або валідатори починають сигналізувати про підтримку нових правил, часто через механізм, вбудований у блоки, які вони створюють.
- Як тільки сигналізація досягає порогу активації, зазвичай десь близько 90–95% нещодавніх блоків, нові правила починають застосовуватися оновленими вузлами.
- Неоновлені вузли продовжують перевіряти блоки, використовуючи свою існуючу логіку. Оскільки нові правила є підмножиною старих, блоки, які відповідають новим правилам, також відповідають старим правилам, тому неоновлені вузли приймають їх без проблем.
- Мережа продовжує працювати як єдиний ланцюг, де оновлені вузли забезпечують дотримання суворіших правил, а неоновлені вузли непомітно отримують від них вигоду, не забезпечуючи їх технічного забезпечення.
Результат: оновлення в реальному часі, яке не вимагає від усіх учасників діяти одночасно. Саме тому софт-форки є основним інструментом для більшості рутинних покращень блокчейну. Варто наголосити, що неоновлені вузли самі не застосовують активно нові правила. Вони просто користуються тим фактом, що домінуюча хеш-потужність мережі забезпечує дотримання цих правил для всіх. Саме тому впровадження майнерів настільки важливе для того, як швидко та безпечно софт-форк фактично закріпиться.

Софт-форк проти хард-форку: у чому справжня різниця?
Питання про м’який форк та хард форк виникає постійно, і коротка відповідь — напрямок сумісності. М’який форк звужує правила таким чином, що старе програмне забезпечення все ще приймає. Хард форк змінює правила таким чином, що старе програмне забезпечення повністю відкидає.
| Аспект | М'який форк | Хард-форк |
|---|---|---|
| Напрямок правила | Суворіший, звужує кількість допустимих блоків | Більш вільний або фундаментально змінений |
| Зворотна сумісність? | Так, старі вузли приймають нові блоки | Ні, старі вузли відхиляють нові блоки |
| Потрібне універсальне оновлення? | Ні | Так, або ланцюг розривається |
| Ризик розриву ланцюга | Низький | Високий, якщо консенсус не є одностайним |
| Потрібна координація | Сигналізація майнера/валідатора | Повна мережева угода |
| Приклад | SegWit, стрижневий корінь | Bitcoin Cash відокремився від Bitcoin |
М'які форки, як правило, є менш драматичним варіантом, оскільки мережа не зобов'язана одностайно та негайно погоджуватися. Хард-форки є більш руйнівними за своєю природою, оскільки той, хто не оновлюється вчасно, фактично залишається з іншим, несумісним блокчейном.
Ось чому хардфорки зазвичай потрапляють у заголовки газет, тоді як софтфорки — рідко. Хардфорк часто супроводжується новим тікером, новим лістингом на біржі та публічною суперечкою про те, який блокчейн представляє «справжній» проект. Софтфорк зазвичай проявляється лише як підвищення номера версії у вашому програмному забезпеченні гаманця, причому більшість користувачів взагалі не помічають змін у правилах.
Реальні приклади м'яких форків у Bitcoin та не тільки
Софт-форки — це не теоретична концепція. Біткойн неодноразово використовував їх для додавання функціональності, ніколи не розділяючи мережу силою.
- SegWit (2017): Segregated Witness реструктуризував спосіб врахування даних транзакцій у розмірі блоку, виправив помилку під назвою «пластичність транзакцій» та заклав основу для Lightning Network. Це залишається найчастіше цитованим прикладом софтфорку в історії Bitcoin.
- Taproot (2021): запровадив підписи Шнорра та покращив конфіденційність і ефективність складних транзакцій, водночас зберігаючи сумісність з вузлами, які не оновлювалися.
- P2SH (2012): Pay-to-Script-Hash спростив представлення мультипідписних гаманців та скриптів, подібних до смарт-контрактів, у блокчейні, знову ж таки без примусового розділення мережі.
- BIP66 (2015): Запроваджено суворе кодування DER для цифрових підписів, що усунуло технічну лазівку, яка могла спричинити невідповідності у перевірці.
Кожна з них посилювала правила Bitcoin певним, навмисним чином, і кожна з них була випущена без розділення спільноти на дві конкуруючі монети.
Чому розробники обирають м’які форки замість хард-форків
Маючи вибір, більшість розробників ядра Bitcoin та Ethereum спочатку звертаються до м’якого форку, і не лише з технічних уподобань. Причини досить практичні.
По-перше, нікого не змушують оновлюватися в один день. Гаманці, біржі, майнінгові пули – всі вони можуть мігрувати за власним графіком, замість того, щоб гнатися за жорсткими дедлайнами. У великих масштабах така гнучкість має велике значення, оскільки змусити тисячі незалежних операторів координувати одночасне оновлення справді важко.
А ще є єдність. Софт-форк зберігає мережу та монету в одному шматку. Не з'являється конкуруючий токен. Жодній біржі не потрібно вибирати, який ланцюг є «справжнім». Спільнота не розділяється на табори, які сперечаються про легітимність. Зокрема, для платіжної мережі така стабільність має чимало значення.
Оборотність також має значення. Оскільки старі вузли ніколи повністю не зобов'язуються самостійно застосовувати нові правила, невдалий софт-форк іноді можна відремонтувати набагато легше, ніж розкручування хард-форку, який вже породив другу, незалежно торгуєму монету.
Ризики та обмеження м'яких форків
М'які форки не є безризиковими, хоча загалом вважаються безпечнішим шляхом. Варто знати про кілька реальних обмежень.
- Неоновлені вузли все ще перевіряють блоки за старими правилами, тобто вони не можуть самостійно перевірити, чи умови, специфічні для нових правил, насправді застосовуються правильно, вони довіряють більшості.
- Якщо достатньо велика меншість майнерів відмовиться від оновлення та продовжать виробляти блоки лише за старими правилами, все одно можуть виникати суперечливі ситуації, що іноді призводять до фактичного розколу, навіть якщо технічно форк був «м’яким».
- Значна залежність від сигналізації майнерів означає, що на активацію soft fork може впливати концентрація майнінгового пулу, що викликає справедливі питання про те, наскільки децентралізованим є цей процес на практиці.
- Деякі софт-форки складніші для безпечної реалізації, ніж здаються, оскільки розробники повинні переконатися, що нові правила справді є суворою підмножиною старих, будь-яка помилка там може створити неочікувані прогалини у валідації.
Ніщо з цього не робить м'які форки небезпечними. Це просто означає, що «зворотна сумісність» не те саме, що «безризикова», і координація все ще важлива, навіть коли жорсткого спліту немає.

Як активується м'який форк у блокчейні
Сам по собі новий код не забезпечує запуску софт-форку. Хтось має підтвердити, що мережа справді готова, і це завдання координації.
Біткойн випробував кілька методів для цього. Класика — сигналізація в стилі BIP9: майнери кидають невеликий маркер у блоки, які вони майнять, фактично піднімаючи руку. «Готові». Як тільки достатня кількість свіжих блоків, зазвичай близько 95%, піднімають цю руку протягом встановленого вікна, нові правила фіксуються. Далі йде виконання.
Новіші методи активації, такі як Speedy Trial та різні форми м’яких форків, що активуються користувачем, з’явилися частково тому, що чиста сигналізація майнерів може зупинитися, якщо майнінгові пули реагують повільно або політично неохоче. Ці альтернативні механізми надають операторам вузлів та ширшій спільноті більш прямий вплив на те, чи дійсно відбудеться оновлення, а не залишають рішення повністю за майнерами.
Активація Taproot у 2021 році є гарною ілюстрацією того, як ці методи можуть працювати разом. Він використовував модифікований процес сигналізації під назвою Speedy Trial, який встановлював коротший, визначений період для сигналізації готовності майнерів, з резервним шляхом, який дозволив би спільноті активувати оновлення навіть без повної підтримки майнерів. Цей резервний варіант мав менше значення на практиці, оскільки сигналізація проходила комфортно, але його існування показує, наскільки далеко просунувся дизайн активації з часів попередніх, виключно майнерами керованих софт-форків Bitcoin.
Заключні думки
Тихо, поступово, без розривів на частини – саме так насправді розвивається більшість блокчейн-мереж. Посиліть правила замість того, щоб їх послаблювати, і мережа зможе додавати функції, усувати помилки, працювати більш економно, залишаючись при цьому зручною для тих, хто ніколи не оновлювався. Бізнеси, які обирають криптоінфраструктуру, повинні бажати того ж. Покращень, побудованих на стабільній, єдиній основі, а не на руйнівних перервах. Plisio також схиляється до цього: стабільна, сумісна, створена для безперервної роботи, поки мережі під нею постійно змінюють форму.