Разветвления структуры данных блокчейна. Заключение

…Проблема разветвления почти всегда решается в пределах одного блока. Часть сетевой вычислительной мощности направлена на создание нового блока поверх родительского блока-«треугольника», в то время как другая часть сетевой вычислительной мощности сосредоточена на продолжении цепочки поверх блока-«треугольника вершиной вниз». Даже если сетевая вычислительная мощность разделена почти поровну, вероятнее всего, одна группа майнеров найдет решение и начнет распространять его раньше, чем конкурирующая группа сможет найти какие-либо решения. Например, предположим, что майнеры группы блока-«треугольника» нашли новый блок-«ромб», наращивающий их цепочку (то есть звезда-треугольник-ромб). Майнеры немедленно начинают распространение нового блока, и вся сеть воспринимает это как правильное решение.

Все узлы, выбравшие блок-«треугольник» победителем предыдущего раунда, просто добавляют в основную цепочку еще один блок. Но узлы, которые предпочли блок-«треугольник вершиной вниз», теперь получают две цепочки: звезда-треугольник-ромб и звезда-треугольник_вершиной вниз. Цепочка звезда-треугольник-ромб длиннее (больше общий объем выполненной работы), чем вторая цепочка. Поэтому такие узлы принимают цепочку звезда- треугольник-ромб в качестве основной, а звезда-треугольниквершинойвниз становится вторичной цепочкой. Происходит смена статуса цепочек (chain reconvergence), так как узлы второй группы вынуждены пересмотреть свою точку зрения на структуру данных блокчейна, чтобы принять новое явное доказательство в виде более длинной цепочки. Все майнеры, пытающиеся нарастить цепочку звезда-треугольник вершиной вниз, немедленно прекращают работу, потому что их блок-кандидат теперь стал «сиротой», а родительский блок-«треугольник вершиной вниз» уже не является вершиной самой длинной цепочки. Транзакции из блока-«треугольник вершиной вниз» возвращаются в пул памяти с перспективой включения их в следующий блок, поскольку блок, содержащий эти транзакции, перестал быть частью основной цепочки. Вся сеть переходит к единой цепочке блокчейна звезда-треугольник- ромб, где «ромб» является самым последним блоком в основной цепочке. Все майнеры немедленно начинают работу с блоками-кандидатами, которые ссылаются на блок-«ромб» как на родительский, наращивая тем самым цепочку звезда -треугольник- ромб.

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

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