Вступ
Коли вам буде запропоновано оновити додаток цифрового банкінгу на вашому смартфоні, ви, ймовірно, навіть не подумаєте замислитись над цим. Можливо, телефон автоматично оновлюється, навіть якщо ви цього не помічаєте. Зрештою, це необхідний процес – якщо ви не встановите останню версію програмного забезпечення, ви ризикуєте отримати відмову у доступі до послуг.
Хто приймає рішення у блокчейн-мережі?
Розробники
Розробники несуть відповідальність за створення та оновлення коду. Будь-хто може зробити свій внесок у цей процес для типової монети. Через те, що код публічний, користувачі можуть надсилати зміни на розгляд іншим розробникам.
Майнери
Користувачі повних нод
Ви часто знаходитимете збіги в цих категоріях. Наприклад, ви можете бути розробником та повним користувачем ноди або майнером та повним користувачем ноди. Ви можете входити у всі три категорії або не входити в жодну. Насправді, багато хто з тих, кого ми вважаємо користувачами криптовалют, не беруть на себе жодну з цих ролей. Натомість вони воліють використовувати легкі ноди або централізовані послуги.
Розробники не вдираються у ваш будинок і не змушують вас завантажувати бінарні файли Bitcoin Core під дулом пістолета. Якщо майнери дотримуються позиції "по-моєму або ніяк", щоб нав'язати користувачам небажані зміни, що ж, користувачі просто оберуть "ніяк".
Що таке форк?
Форк програмного забезпечення виникає у момент, коли програмне забезпечення копіюється та модифікується. Початковий проєкт продовжує працювати, але тепер він відокремився від нового, який має інший напрямок. Припустимо, у команди вашого улюбленого вебсайту з криптовалютним контентом виникли серйозні розбіжності щодо подальших дій. Одна частина команди може реплікувати сайт в іншому домені. Але в майбутньому вона публікуватиме інший тип контенту, відмінний від оригінального.
Проєкти побудовані на загальній основі та мають спільну історію. Але тепер їхні шляхи та цілі розходяться.
Хард-форки проти софт-форків
Незважаючи на схожі назви і мету, хард-форки та софт-форки суттєво відрізняться. Давайте їх розглянемо.
Що таке хард-форк?
Хард-форк – це оновлення програмного забезпечення, несумісне з попередніми версіями. Зазвичай це відбувається, коли ноди додають нові правила таким чином, що це суперечить правилам старих нод. Нові ноди можуть взаємодіяти лише з іншими нодами, які використовують нову версію. В результаті блокчейн розділяється, створюючи дві окремі мережі: одну зі старими правилами та одну з новими правилами.
Під час оновлення ноди стають синіми. Старі жовті ноди відкидають їх, а сині з'єднуються одна з одною.
Таким чином, тепер дві мережі працюють паралельно. Вони обидві продовжать розповсюджувати блоки і транзакції, але вони більше не працюють в одному і тому ж блокчейні. Всі ноди мали ідентичний блокчейн до моменту форку (і ця історія залишається), але згодом у них будуть різні блоки та транзакції.
Збільшення розміру блоку потребує зміни правил. Це було до софт-форку SegWit (детальніше про це трохи пізніше), тому ноди приймали лише блоки розміром менше 1 МБ. Якщо ви створили блок розміром 2 МБ, який у всіх відносинах був дійсним, то інші ноди все одно відхилили б його.
Тільки ноди, які змінили своє програмне забезпечення, щоб дозволити блоки розміром більше 1 МБ могли приймати ці блоки. Звичайно, це зробило б їх несумісними з попередньою версією, тому взаємодіяти могли лише ноди з тими самими модифікаціями протоколу.
Що таке софт-форк
Однак це не призводить до автоматичного відключення вас від мережі. Ви, як і раніше, можете взаємодіяти з нодами, які не застосовують ці правила, але ви фільтруєте частину інформації, яку вони вам передають.
Навіть за два роки після активації SegWit не всі ноди оновилися. У цьому є свої переваги, але особливої терміновості немає, оскільки немає змін, які руйнували б мережу.
Хард-форки проти софт-форків – що краще?
По суті, обидва перераховані вище типи форків служать різним цілям. Спірні хард-форки можуть розділити спільноту, але заплановані дозволяють вільно модифікувати програмне забезпечення за згодою.
Софт-форки – більш м'ягкий варіант. В цілому, ви більш обмежені у своїх можливостях, оскільки ваші нові зміни не можуть конфліктувати зі старими правилами. Проте, якщо оновлення може бути створено таким чином, щоб воно залишалося сумісним, вам не потрібно турбуватися про фрагментацію мережі.
Заключні думки
Хард-форки та софт-форки мають вирішальне значення для довгострокового успіху блокчейн-мереж. Вони дозволяють нам вносити зміни та оновлення до децентралізованих систем, незважаючи на відсутність центральної влади.
Форки дозволяють блокчейнам і криптовалютам інтегрувати нові функції в міру їхньої розробки. Без цих механізмів нам знадобилася б централізована система з контролем "зверху вниз". Інакше ми застрягли б з одними й тими самими правилами протягом усього терміну роботи протоколу.