Когда 2 или более блоков раздаются одновременно, но самый длинный из них задерживается

У меня проблема с пониманием концепции обработки двух или более блоков, которые распределяются одновременно (в сети блокчейн).

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

Но что, если пользователь 1 получил БлокА и Блок Б (Блок Б самый длинный), а пользователь 2 получил Блок А, а Блок Б задерживается (на отправку этого блока пользователю 2 требуется время по многим причинам), поэтому в итоге пользователь 2 в данный момент видит только Блок А , и начинает строить блок поверх этого блока, в то время как user1 строит блок поверх BlockB.

Я не совсем понимаю, как блокчейн правильно синхронизирует блоки. Мне нужно лучшее объяснение.

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

Ответы (1)

Пользователь 2 может начать майнить поверх Блока А, но у него будет намного меньше мощности майнинга, чем у остальной части сети, поэтому ему потребуется много времени, чтобы найти блок. В конце концов, когда он снова подключится к сети, он увидит, что более длинная цепочка отходит от BlockB, и отбросит свою меньшую цепочку, чтобы снова присоединиться к сети. Обратите внимание, что самая тяжелая цепь по определению является «настоящей» цепью. Это называется реорганизацией цепочки, и это происходит время от времени, поэтому вам нужно дождаться нескольких подтверждений, прежде чем рассматривать какой-либо блок как окончательный. Блоки, которые пользователь2 добыл до того, как понял, что попал не в ту цепочку, называются сиротами, и их можно включить в основную цепочку как дяди, так что он все равно получит немного вознаграждения.