Криптовалюты
Биткоин: когда более двух майнеров одновременно находят блоки
58
/ 100
Рассмотрим ситуацию, когда более двух майнеров одновременно находят блоки, и как сеть биткоина справляется с таким случаем.
Представим, что у нас есть четыре майнера: А, Б, В и Г. Вот как может развиваться ситуация:
- Начальная цепочка:
- Блок 100 является текущим последним блоком в цепочке.
- Одновременное нахождение блоков:
- Майнер А находит блок 101A.
- Майнер Б находит блок 101B.
- Майнер В находит блок 101C.
- Все три блока имеют одинаковый родительский блок (блок 100), но разные нонсы и наборы транзакций.
- Распространение блоков:
- Блоки 101A, 101B и 101C распространяются по сети.
- Часть узлов принимает блок 101A, часть — блок 101B, и часть — блок 101C.
- Дальнейшее нахождение блоков:
- Майнер Г находит блок 102G и добавляет его к блоку 101B.
- Майнер Д находит блок 102D и добавляет его к блоку 101A.
- Майнер Е находит блок 102E и добавляет его к блоку 101C.
- Разветвление цепочки:
- Теперь у нас есть три ветви цепочки:
- Ветвь 1: блоки 100 -> 101A -> 102D
- Ветвь 2: блоки 100 -> 101B -> 102G
- Ветвь 3: блоки 100 -> 101C -> 102E
- Теперь у нас есть три ветви цепочки:
- Разрешение разветвления:
- Следующий блок, который будет найден, определит, какая ветвь станет основной.
- Допустим, майнер Ж находит блок 103Ж и добавляет его к ветви 2, к блоку 102G.
- Ветвь 2 становится самой длинной цепочкой, так как содержит блоки 100 -> 101B -> 102G -> 103Ж.
- Откат и переход на основную цепочку:
- Узлы, которые следовали за ветвями 1 и 3, переключаются на ветвь 2, так как она теперь самая длинная и считается основной.
- Транзакции из блоков 101A, 102D, 101C и 102E, которые не включены в основную цепочку, возвращаются в мемпул.
Этот пример показывает, как сеть биткоина автоматически разрешает разветвления цепочки, возвращаясь к единой согласованной версии блокчейна. Майнеры и узлы всегда следуют самой длинной цепочке, что обеспечивает целостность и консенсус в сети.