- Вернуться к меню
- Вернуться к менюЦены
- Вернуться к менюИсследовать
- Вернуться к менюКонсенсус
- Вернуться к менюПартнерский материал
- Вернуться к меню
- Вернуться к меню
- Вернуться к менюВебинары и Мероприятия
Хард-форк против софт-форка
Мероприятия хард-форка и софт-форка относятся к процессу внедрения новых изменений в код блокчейн-проекта.

Форки или их угроза, похоже, стали устоявшейся чертой Криптовалюта ландшафта. Но что это такое? Почему они так важны? И в чем разница между хард-форком и софт-форком?
«Форк» в терминах программирования — это модификация кода с открытым исходным кодом. Обычно форк-код похож на исходный, но с важными изменениями, и два «зубца» комфортно сосуществуют. Иногда форк используется для тестирования процесса, но скриптовалюты, его чаще используют для внедрения фундаментальных изменений или создания нового актива с аналогичными (но не идентичными) характеристиками, что и у оригинала.
Не все форки являются преднамеренными. При широко распространенной базе открытого исходного кода форк может произойти случайно, когда не все узлы реплицируют одну и ту же информацию. Обычно такие типы случайных форков идентифицируются и разрешаются. Большинство форков Криптовалюта происходят из-за разногласий по поводу встроенных характеристик, как мы рассмотрим ниже.
При форках ONE помнить, что у них есть «общая история». Запись транзакций в каждой из цепочек (старой и новой) до разделения идентична.
Хард-форки
Существует два основных типа программных вилок:
- Хард-форк.
- Мягкая вилка.
Хард-форк — это изменениеблокчейнпротокол, который делает старые версии недействительными. Если старые версии продолжат работать, они получат другой протокол и другие данные, чем новая версия. Это может привести к значительной путанице и возможным ошибкам.
С 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-hash, который улучшает код, не меняя структуру, также был успешно добавлен через софтфорк. Этот тип поправки обычно требует обновления только большинства майнеров, что делает его более осуществимым и менее разрушительным.
Софт-форки не несут в себе риска двойной траты, который преследует хард-форки, поскольку торговцы и пользователи, использующие старые узлы, будут читать блоки как новой, так и старой версии.
Примеры изменений, которые потребуют софтфорка, см. в разделе «список пожеланий софтфорка”.
Noelle Acheson
Ноэль Ачесон — ведущая подкаста CoinDesk "Рынки Daily" и автор информационного бюллетеня Криптo is Macro Now на Substack. Она также бывший руководитель исследований в CoinDesk и дочерней компании Genesis Trading. Социальные сети на нее в Twitter @NoelleInMadrid.
