Продолжаем говорить о ПО, сеть, майнинге и цепочке

…С теоретической точки зрения мы можем интерпретировать устойчивое разветвление как разработку в четырех стадиях: программное разветвление (разветвление версий ПО), разветвление сети, разветвление майнинга и разветвление цепочки.

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

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

Сначала произойдет разветвление сети. Узлы, использующие первоначальную реализацию правил консенсуса, будут отбрасывать все транзакции и блоки, созданные по новым правилам. Более того, узлы, соблюдающие старые правила консенсуса, будут временно блокировать и разрывать соединения со всеми узлами, которые посылают им эти «некорректные» транзакции и блоки. В результате сеть разделится на две части: старые узлы сохранят соединения только со старыми узлами, а новые узлы будут соединены только с новыми узлами. Единственная транзакция или блок на основе новых правил вызывает «волнение» во всей сети и в итоге делит ее на две части (на две сети).

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