Название | Введение в технологию Блокчейн |
---|---|
Автор произведения | Тимур Сергеевич Машнин |
Жанр | Компьютеры: прочее |
Серия | |
Издательство | Компьютеры: прочее |
Год выпуска | 2021 |
isbn |
Последствия обновления большинства узлов, в то время как некоторые узлы будут использовать старую версию, во многом зависят от характера изменений в программном обеспечении.
Мы можем различать два типа изменений: те, которые вызовут жесткий форк, и те, которые вызовут мягкий форк.
Жесткий форк, это когда вводятся новые функции, которые раньше считались бы недействительными.
То есть новая версия программного обеспечения распознает блоки как действительные, однако старое программное обеспечение эти блоки отбросит.
Теперь рассмотрим, что произойдет, когда большинство узлов обновятся, а некоторые узлы не обновятся.
Очень скоро самая длинная ветвь будет содержать блоки, которые не обновленные узлы считают недействительными.
Поэтому не обновленные узлы будут отбрасывать эту ветвь и будут работать с веткой цепочки блоков, которая не содержит блоки с новой функцией.
Пока они не обновят свое программное обеспечение, они будут считать, что их, более короткая ветка является самой длинной валидной веткой блокчейна.
Этот тип изменений называется жестким форком, поскольку он жестко разделяет цепочку блоков.
Каждый узел в сети будет находиться на той или иной стороне, в зависимости от того, какая версия протокола на нем запущена.
Конечно, при этом ветки никогда не смогут объединиться снова.
Это считается неприемлемым для сообщества, поэтому старые узлы будут эффективно отключены от сети Bitcoin, если они не обновят свое программное обеспечение.
Второй тип изменений или мягкий форк, которые мы можем внести в биткойн, – это добавление функций, которые делают правила проверки более строгими.
То есть они ограничивают набор допустимых транзакций или набор допустимых блоков, так что старая версия будет принимать все блоки, тогда как новая версия будет отбрасывать некоторые блоки.
Этот тип изменений называется мягким форком, и здесь можно избежать постоянного раскола, который создает жесткий форк.
Подумайте, что произойдет, когда мы представим новую версию программного обеспечения с мягким форком.
Узлы, на которых запущено новое программное обеспечение, будут применять новый, более жесткий набор правил.
При условии, что большинство узлов переключится на новое программное обеспечение, эти узлы обеспечат применение новых правил.
Существует риск того, что не обновленные майнеры могут использовать недействительные блоки, поскольку они будут включать некоторые транзакции, которые недействительны в соответствии с новыми, более строгими правилами.
Но не обновленные узлы, по крайней мере, поймут, что некоторые из их блоков отклоняются, даже если они не понимают причину этого.
Это может побудить их обновить программное обеспечение.
Кроме того, если их ветку обгонят обновленные майнеры, не обновленные майнеры переключаются на новую