Что такое хардфорк?

Говорят, что переход от Frontier к Homestead будет осуществлен путем хардфорка . Что это значит? Ожидается ли, что хардфорки также будут использоваться в будущих обновлениях Ethereum?

Ответы (3)

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

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

Посмотрите на --illegal-code-hashes в geth pull. Блоки, добытые с использованием смарт-кода с этими хэшами, будут игнорироваться. Майнинг со старой версией программного обеспечения будет производить игнорируемые блоки.

Хардфорк — это ситуация, когда участники Эфириума консенсусом соглашаются изменить спецификацию протокола блокчейна для определенного номера блока. Выпуск Homestead был жестко запрограммирован в текущих клиентах ethereum, чтобы он происходил в блоке номер 1 150 000. Узлы должны быть обновлены до последней версии, чтобы продолжать нормально работать после хардфорка Homestead с номером блока 1 150 000. Для Geth вам необходимо установить версию 1.3.5 на момент публикации:

https://github.com/ethereum/go-ethereum/releases/tag/v1.3.5

Что касается вашего второго вопроса, да, хардфорки определенно будут использоваться в будущем. Например, когда Ethereum переходит на майнинг Proof of Stake.

Краткое и точное определение дано BIP 123:

Хардфорки

При хардфорке структуры, которые были недействительны по старым правилам, становятся действительными по новым правилам.

Софт Форкс

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

Статья в журнале Биткойн объясняет дальше, и вот фрагменты:

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

Изменение консенсусного правила, которое удаляет правила из протокола (делает ранее недействительные блоки действительными), называется хардфорком. Хард-форк требует принятия всех полных узлов в сети. Любой узел, который не реализует изменение, может вообще не следовать самой длинной цепочке, поскольку он может счесть эту цепочку недействительной и вместо этого остаться в «старой» цепочке.

В статье упоминается Биткойн, но также относится и к Эфириуму, включая вывод:

Изменения хард-форка в правилах консенсуса без консенсуса могут — в худшем случае — расколоть сеть Биткойн.

Ожидается, что хардфорк будет использоваться в будущих обновлениях Ethereum, таких как удаление Proof of Work и замена его алгоритмом Casper Proof of Stake.

РЕДАКТИРОВАТЬ:

Эфириум, как правило, трудно поддается софт-форку; причина в том, что в отличие от биткойна, где скрипты возвращают 0 или 1, чтобы показать, действительна ли транзакция, и поэтому вы всегда можете просто добавить правило, чтобы превратить некоторые 1 с в 0, в ethereum скрипты выполняют изменения состояния, так что это не имеет значения между действительными и недействительными транзакциями, поскольку речь идет о транзакциях, имеющих разные последствия.