- Повернутися до менюЦіни
- Повернутися до менюдослідження
- Повернутися до менюКонсенсус
- Повернутися до менюСпонсорський матеріал
- Повернутися до меню
- Повернутися до меню
- Повернутися до меню
- Повернутися до менюВебінари та Заходи
Hard Fork проти Soft Fork
Заходи «хардфорк» і «softfork» стосуються процесу впровадження нових змін у код блокчейн-проекту.

Форки або їх загроза, здається, є усталеною рисою Криптовалюта ландшафту. Але які вони? Чому вони такі великі? А яка різниця між твердою вилкою та м’якою?
«Відгалуження», з точки зору програмування, — це модифікація коду з відкритим кодом. Зазвичай розгалужений код схожий на оригінальний, але з важливими змінами, і два «зубці» зручно співіснують. Іноді форк використовується для перевірки процесу, але з криптовалюти, частіше використовується для впровадження фундаментальних змін або для створення нового активу зі схожими (але не такими ж) характеристиками, як оригінальний.
Не всі вилки є навмисними. З широко поширеною кодовою базою з відкритим вихідним кодом розгалуження може статися випадково, коли не всі вузли копіюють ту саму інформацію. Зазвичай такі типи випадкових розгалужень ідентифікуються та вирішуються. Більшість форків Криптовалюта відбуваються через розбіжності щодо вбудованих характеристик, як ми розглянемо нижче.
ONE , про що слід пам’ятати щодо форків, це те, що вони мають «спільну історію». Запис транзакцій у кожному з ланцюжків (старому та новому) ідентичний до поділу.
Жорсткі вилки
Існує два основних типи форка програмування:
- Жорстка вилка.
- М'яка вилка.
Хардфорк - це зміна на a блокчейн протокол, який робить старі версії недійсними. Якщо старіші версії продовжуватимуть працювати, вони матимуть інший протокол і дані, ніж у новішій версії. Це може призвести до значної плутанини та можливих помилок.
с Bitcoin, хардфорк буде необхідний для зміни визначальних параметрів, таких як розмір блоку, алгоритм складності майнінгу, обмеження додаткової інформації, яку можна додати, ETC. Зміна будь-якого з цих правил призведе до того, що блоки прийматимуться новим протоколом, але відхилятимуться старішими версіями, і це може призвести до серйозних проблем – можливо, навіть до втрати коштів.
Наприклад, якщо обмеження розміру блоку мали бути збільшені з 1 МБ до 4 МБ, блок розміром 2 МБ буде прийнятий вузлами, на яких працює нова версія, але відхилений вузлами, на яких запущено старішу версію.
Скажімо, цей блок розміром 2 МБ перевірено оновленим вузлом і додано до блокчейну. Що робити, якщо наступний блок перевірено вузлом, на якому працює старіша версія протоколу? Він спробує додати свій блок до блокчейну, але виявить, що останній блок недійсний. Таким чином, він проігнорує цей блок і прикріпить свою нову перевірку до ONE.
Раптом у вас є два блокчейни, ONE із блоками старішої та новішої версій, а інший лише з блоками старішої версії. Який ланцюжок росте швидше, залежатиме від того, які вузли отримають перевірку наступних блоків, і це може призвести до додаткових поділів. Цілком можливо, що два (або більше) ланцюги можуть розвиватися паралельно нескінченно довго.
Це хардфорк, і він потенційно безладний. Це також ризиковано, оскільки можливо, що біткойни, витрачені на новий блок, потім можуть бути витрачені знову на старий блок (оскільки продавці, гаманці та користувачі, які використовують попередній код, не виявлять витрати на новий код, який вони вважають недійсним).
Єдине рішення — відмовитися від ONE гілки на користь іншої, що призведе до втрати деяких майнерів (самі транзакції не будуть втрачені, їх просто буде перерозподілено). Або всі вузли повинні були б перейти на новішу версію одночасно, чого важко досягти в децентралізованій, широко поширеній системі.
Або Bitcoin розбивається, що сталося (привіт, Bitcoin Cash).
М'яка вилка
М'який форк, по суті, протилежний хардфорку, завдяки чому нещодавно впроваджені зміни залишаються зворотно сумісними зі старими версіями.
Наприклад, якщо протокол змінено таким чином, що посилює правила, вносить косметичні зміни або додає функцію, яка жодним чином не впливає на структуру блокчейну, то блоки нової версії будуть прийняті вузлами старої версії. Але не навпаки: новіша, «жорсткіша» версія відхиляла б блоки старої версії.
У Bitcoin, стара версія гірники зрозуміють, що їх блоки відхиляються, і будуть змушені оновити. Оскільки більше майнерів оновлюється до останньої версії, ланцюжок із переважно новими блоками стає найдовшим, що, у свою чергу, збільшує кількість створюваних блоків старої версії, що втратили чинність, і змушує більше майнерів оновлюватися. Цей процес забезпечує самокоригування системи. Оскільки блоки нової версії приймаються як старими, так і оновленими вузлами, блоки нової версії зрештою WIN.
Наприклад, скажімо, спільнота вирішила зменшити розмір блоку до 0,5 МБ із поточного теоретичного обмеження в 4 МБ (з Блоки SegWit.) Вузли нової версії відхилятимуть блоки зі старим обмеженням і створюватимуть попередній блок (якщо він був видобутий з оновленою версією коду), що призведе до тимчасового розгалуження.
Це м’яка вилка, і це вже траплялося кілька разів. Спочатку Bitcoin T мав обмежень на розмір блоку. Запровадження ліміту в 1 МБ було здійснено за допомогою софтфорка, оскільки нове правило було «суворішим» за ONE.
The хеш-функція pay-to-script, який покращує код без зміни структури, також було успішно додано через програмне розгалуження. Цей тип поправки, як правило, вимагає оновлення лише від більшості майнерів, що робить його більш здійсненним і менш руйнівним.
М'які форки не несуть ризику подвійних витрат, який турбує хард-форки, оскільки торговці та користувачі, які використовують старі вузли, читатимуть як нові, так і старі блоки версій.
Приклади змін, які вимагають soft fork, див.список бажань softfork”.
Noelle Acheson
Ноель Ачесон є ведучою подкасту CoinDesk «Ринки Daily» та автором інформаційного бюлетеня Крипто is Macro Now на Substack. Вона також колишній керівник відділу досліджень CoinDesk і дочірньої компанії Genesis Trading. Соціальні мережі за нею в Twitter за адресою @NoelleInMadrid.
