Что такое форк, hardfork и softfork?

Часто сталкиваясь с материалами о криптовалютах можно встретить данные термины, о том что они означают и будет данная статья.

Fork или форк

Начнём с того, что "Fork" - переводится с английского языка как "вилка", в данном случае больше подходит такое определение как "ответвление". В программировании данный термин применяется в случае создания нового программного объекта на кодовой базе уже существующего.

Например криптовалюта Litecoin является форком другой криптовалюты Bitcoin.

Hardfork или хардфорк, UAHF

Хардфорк - это кардинальные изменения в протоколе, в ходе которых транзакции и блоки, считавшиеся ранее недействительными, становятся действительными или же наоборот. После проведения хардфорка все пользователи и узлы должны обновиться до последней версии программного протокола.

Иными словами хардфорк означает полный отказ от предыдущей версии блокчейна, после которого информация с узлов более ранних версий перестает приниматься.

Яркими примера можно назвать хардфорк сетей "Ethereum" и "Bitcoin".

UAHF (User Activated Hard Fork - активируемый пользователями хардфорк)

Для внесения изменений в программное обеспечение узла разработчики добавляют обязательное правило. В этом случае применение большей части мощностей хэша не потребуется так как данные изменения преобразуют ранее недействительные блоки в действительные только после указанного дня.

Softfork или софтфорк, UASF

Софтфорк - это внесение более мягких изменений в протокол, в ходе которых недействительными становятся только ранее действующие транзакции и блоки.

Новые блоки могут распознаваться старыми узлами как действительные, что делает softfork обратно совместимым изменением.

UASF (User Activated Soft Fork — активируемый пользователями софтфорк)

Это тот случай, когда softfork активируется в определенное нодами (полными узлами сети) время. Также данный концепт иногда именуют экономическим большинством, так как он требует значительной координации в отрасли и большой поддержки.

Активируемый пользователями софтфорк объединен с активацией SegWit (Segregated Witness) — обновление протокола, направленное на оптимизацию размера блока.