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