Что произойдет, если два майнера одновременно добудут следующий блок?

Процесс майнинга, описанный в ответе на этот вопрос , одновременно повторяется несколькими майнерами.

Могут ли два майнера одновременно найти следующий блок? Если это так, что произойдет, если они это сделают?

Это даже не обязательно должно быть в одно и то же мгновение. Пока второй блок будет найден до того, как первый блок станет широко известен, будет форк.

Ответы (2)

Да, это возможно, и вы можете следить за «бесхозными блоками» здесь: https://blockchain.info/orphaned-blocks .

Биткойн-клиенты всегда доверяют самой длинной цепочке, поэтому, если два блока добываются одновременно, майнеры (51%) должны решить, какой из них будет «принят», а какой бесполезен.

Это одна из причин, по которой вы не должны доверять только нескольким подтверждениям, поскольку подтверждения могут быть потерянным блокчейном. После того, как «достаточно» подтвердится, все будут майнить на «правильной» цепочке блоков, потому что любая работа (майнинг) на осиротевшей цепочке блоков — пустая трата энергии (если вы не пытаетесь выполнить атаку 51%).

Как узнать, какой из двух блоков принят 51%? Что мешает принять два блока 50/50? В какой момент очевидно, что блок потерян?
Когда награда достается майнеру, решившему блокировку, мгновенно или после подтверждения 51%?
@Andrew Майнер принимает первый дошедший до него блок. Итак, скажем, 51% примут участие в одном блоке, а 49 – в другом. Когда в одной из этих цепочек добывается следующий блок, все майнеры переключаются на эту цепочку. Вполне вероятно, что 51% добудут следующий блок первым в своей цепочке. Таким образом, представление о том, какая цепочка принимается большинством (в данном случае 51%).
@kasa Когда одна цепочка опережает другую на много новых блоков (таким образом, рассматриваемый блок подтверждается множеством новых блоков, сложенных поверх него), мы можем быть уверены, что вознаграждение будет дано. Сколько в этом контексте определяется протоколом: вы можете потратить вознаграждение после того, как 100 блоков подтвердят его.
Действительно, кажется, что не всегда принимается самая длинная цепочка. По предоставленной вами ссылке blockchain.info/orphaned-blocks вы могли заметить, что некоторые потерянные блоки содержат большее количество транзакций, чем подтвержденные блоки!

То, что сказал Николай, не совсем верно. Сеть будет решать, какая из них является основной цепью, в соответствии со следующим добытым блоком. Предположим, что блоки A и B добываются практически одновременно. Майнеры примут первый переданный им блок, поэтому некоторые майнеры примут A, а другие примут B, и не имеет значения, принимается ли A/B 51% или более майнеров или нет. Майнеры, принимающие A, попытаются добыть следующий блок поверх A, в то время как другие майнеры, принявшие B, попытаются добыть следующий блок поверх B. Если следующий найденный блок находится поверх A, то майнеры, добывающие B обратится к цепочке A, которая является основной цепочкой. Кстати, блок B назван потерянным блоком, вы можете найти больше на https://blockchain.info/orphaned-blocks .. Конечно, может быть такое обстоятельство, что следующий блок будет добыт примерно в одно и то же время как поверх A, так и поверх B, тогда упомянутый выше процесс будет повторяться до тех пор, пока проблема не будет решена. Теперь вы можете понять, почему новые блоки нельзя будет потратить, пока поверх них не будет построено по крайней мере 120 блоков в цепочке.

«не может быть потрачено, пока поверх него не будет построено по крайней мере 120 блоков в цепочке». Применяет ли протокол определенные правила в отношении этого? Могу ли я потратить свои UTXO, если они принадлежат последнему добытому блоку? Или мне нужно подождать, пока поверх него будет добыто произвольное количество блоков (определяемое протоколом)?