Размер шрифта
-
+

Введение в технологию Блокчейн - стр. 61

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

Этот тип изменений называется мягким форком, и здесь можно избежать постоянного раскола, который создает жесткий форк.

Подумайте, что произойдет, когда мы представим новую версию программного обеспечения с мягким форком.

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

При условии, что большинство узлов переключится на новое программное обеспечение, эти узлы обеспечат применение новых правил.

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

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

Это может побудить их обновить программное обеспечение.

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

Таким образом, здесь не будет жесткой развилки; вместо этого будет много маленьких временных вилок.

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

Классическим примером изменения, которое было сделано с помощью мягкого форка, является введение функции pay-to-script-hash, о котором мы говорили ранее.

В первой версии протокола биткойнов нет pay-to-script-hash.

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

С точки зрения старых узлов, скрипт прост – он хэширует одно значение данных и проверяет, соответствует ли этот хэш значению, указанном в выходном скрипте.

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

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

Что мы можем добавить с помощью мягкой вилки?

Кроме Pay-to-script-hash.

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

Мы могли бы также добавить некоторые дополнительные метаданные в параметр coinbase, которые бы что-то значили.

Страница 61