Вы здесь

Хард-форки и софт-форки. Что это такое и чем они отличаются?

В мире криптовалют перспективы хард-форков и софт-форков всегда являются предметом бурных обсуждений среди экспертов, а также причиной для беспокойства и неопределенности среди трейдеров и спекулянтов. Но что на самом деле означают эти термины?

Хард-форки и софт-форки. Что это такое и чем они отличаются?

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

Программное обеспечение, которое реализует протокол консенсуса в блокчейне (например, программное обеспечение, которое работает в сети Биткоин), обычно курируется сообществом разработчиков, которые постоянно работают над определением, предложением и внедрением самых лучших кодовых решений и реализаций. Когда это сообщество вводит обновление программного обеспечения, блокчейн, как говорится, осуществляет «форк» (в переводе с английского fork – это «ответвление», «вилка»).

Когда речь заходит об обновлениях общих компьютерных программ, все мы знакомы с понятием обратной совместимости (или несовместимости). Если обновление таково, что файлы, созданные в новой версии программы, все еще могут открываться и работать с использованием старой версии, то мы имеем дело с обратно совместимым обновлением, в противном случае обновление считается обратно несовместимым. Для протоколов консенсуса блокчейна это работает почти так же. Софт-форк – это обновление протокола блокчейна, которое является обратно совместимым, т.е. он вводит некоторые изменения в коде, которые не ухудшают функциональную целостность в сравнении с его предыдущей версией. Напротив, смысл хард-форка состоит в том, чтобы изменить протокол блокчейна способом, который не является обратно совместимым; следовательно, он обрывает связь с предыдущей версией.

Итак, что все это значит на практике? Попробуем ответить на этот вопрос, используя одни и те же примеры.

Пример софт-форка. Внедрение SegWit

Прежде всего, давайте проясним один момент. Вопреки тому, что может подсказывать наша интуиция,

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

Рассмотрим известный пример софт-форка – внедрение SegWit. Биткоин-сообщество уже давно обсуждало, какой способ увеличения скорости биткоин-транзакций является лучшим. Поскольку новый блок транзакций добывается в среднем каждые 10 минут (и этот момент не был обсужден), идея заключалась в том, чтобы увеличить количество транзакций, которые могут быть включены в каждый блок. Для этого сообщество предложило решение под названием Segregated Witness (сокращенно SegWit). Основная идея заключалась в том, чтобы освободить место в каждом блоке, которое можно использовать для включения большего количества транзакций. Это было достигнуто путем удаления из блока открытого ключа и подписи, связанной с каждой транзакцией, и отправки их через другой канал обмена сообщениями. Поскольку открытый ключ и подпись занимают около 60% от всего размера транзакции, то за счет их отдельной отправки можно было удвоить количество транзакций в каждом блоке. Причина, по которой этот подход был назван Отделенным свидетелем, заключается в том, что «свидетель» (альтернативное название для подписи) транзакции был отделен (т.е. отправлен отдельно) от самой транзакции.

Это изменение в протоколе было реализовано таким образом, чтобы блоки, «выкованные» по-старому, также были правильно распознаны и обработаны (в этом смысле новый протокол является более «либеральным», поскольку он допускает как новые, так и старые блочные форматы). Другими словами, обновление протокола было обратно совместимым.

Пример хард-форка. Рождение Bitcoin Cash

Показательным примером хард-форка является разделение между биткоинами (BTC) и Bitcoin Cash (BCH), произошедшее 1 августа 2017 года. Разделение было вызвано фундаментальным разногласием по поводу того, является ли SegWit лучшим подходом для увеличения количества обрабатываемых транзакций на блок. Те, кто был недоволен SegWit, решили реализовать другое решение, состоящее в увеличении максимального размера блока от 1 до 8 МБ. Это решение не было обратно совместимым, как мы скоро увидим, и поскольку не было единодушного согласия о его принятии, это привело к разделению блокчейна на две ветви. Ветвь, которая реализовала это изменение, изменила название блокчейна на Bitcoin Cash, в то время как ветвь, не реализовавшая это изменение, сохранила первоначальное название Биткоин.

Причину, по которой изменение, предложенное сторонниками Bitcoin Cash, не является обратно совместимым, легко понять. С одной стороны, любой блок размером меньше или равным 1 МБ считается действительным как по обновленному протоколу BCH, так и по протоколу BTC. С другой стороны, любой блок размером больше 1 МБ считается действительным только по протоколу BCH. Эта обратная несовместимость является результатом ослабления ограничения на максимальный размер блока в протоколе BCH. Как следствие, со времени реализации этого изменения история двух блокчейнов начала расходиться.


Рисунок 1 —  Хард-форк произошел 1 августа 2017, что привело к разделению между Биткоином (BTC) и Bitcoin Cash (BCH).

Обновленная версия протокола, реализованная BCH, позволила увеличить предельные размеры блоков.
На этом этапе важно отметить, что когда происходит разделение блокчейна, происходит и разделение его базовой валюты. Если бы это было не так, то любой блок размером, совместимым с обоими протоколами, обрабатывался бы обоими блокчейнами, что привело бы к проблеме «двойной траты». Эту проблему можно избежать, создав новую валюту, которая имеет ту же историю, что и старая, до момента разделения и которой впоследствии можно независимо управлять и осуществлять транзакции. Это означает, что на момент разделения любому держателю биткоинов было предоставлено такое же количество монет в BCH, с которыми потом можно (и надо) было осуществлять транзакции независимо от оригинальных монет.

Некоторые заключительные замечания

Является ли хард-форк синонимом Разделения?
Нет. Хард-форк не должен приводить к разделению. Если будет достигнут общий консенсус о внесении изменения в протокол блокчейна, которое не является обратно совместимым, то новый протокол заменит старый без разделения блокчейна на две ветви или создания новой валюты.

Может ли софт-форк привести к разделению, если не будет достигнут консенсус?
В случае софт-форка нет причин для разделения. Ключевым аспектом, который нужно иметь в виду, является то, что софт-форк инициируется только тогда, когда подавляющее большинство сообщества соглашается с новыми правилами.

Напомним, что суть софт-форка заключается в ужесточении некоторых правил существующего протокола. Это означает, что все блоки, совместимые с новым протоколом, также совместимы со старым. Напротив, некоторые блоки, намайненные по старому протоколу, не будут действительны согласно новому своду правил. Теперь, поскольку большинство узлов в сети согласились работать по новому протоколу, блокчейн, созданный по более жестким правилам, будет «удлиняться» быстрее, чем другой. Как мы знаем из моей статьи о Протоколах консенсуса на базе PoF, самая длинная цепочка заменяет более короткую, когда две разные версии реестра обнаруживаются сетью. Это приводит к тому, что ряд потерянных блоков изначально добывался по старому протоколу. Эта ситуация заставляет меньшинство узлов, все еще использующих старый протокол, принять новый. Если они этого не сделают, они потеряют деньги за счет сокращения майнинга блоков, которые в конечном итоге окажутся невостребованными (и за которые они не получат никакого вознаграждения). На рисунке ниже показано, что происходит в воображаемом софт-форке, где обновление протокола состоит в уменьшении предельного размера блока с 1 МБ до 0,5 МБ.


Рисунок 2 —  Софт-форк инициируется только тогда, когда большинство сообщества соглашается на обновление протокола.

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

Другие известные форки

Внедрение SegWit и рождение Bitcoin Cash являются одними из самых заметных примеров софт- и хард-форка соответственно. Однако есть и другие форки, которые стоит отметить; некоторые из них тоже связаны с блокчейном биткоина, некоторые – с другими криптовалютами или даже смарт-контрактами. Для ознакомления со списком таких форков сделайте запрос в сети. Существует огромное количество ресурсов, которые вы можете использовать. Вот некоторые из них:

Категория: 
Биткоин для "чайников"
4
Ваша оценка: Нет Средняя: 3.5 (2 оценок)
22745 / 1
Аватар пользователя Анонимус
Публикацию добавил: Анонимус
Дата публикации: вт, 03/26/2019 - 10:57

Что еще почитать: