Что если одна и та же транзакция будет добавлена ​​более чем в один блок разных майнеров?

Я знаю, что у майнеров есть свобода выбора транзакций из пула памяти,

Допустим, в пуле памяти есть 5 транзакций Tx1 Tx2 Tx3 Tx4 и Tx5,

Есть 3 майнера M1 M2 и M3

M1 создал блок с Tx1 Tx2 и Tx3

M2 создал блок с Tx2 Tx3 и Tx4

M3 создал блок с Tx2 и Tx5

==

M1 успешно решает блок и получает вознаграждение в виде биткойнов и комиссии за транзакцию.

в то же время M2 и M3 успешно решают блок. В этом случае получат ли M2 и M3 вознаграждение и комиссию за транзакцию? поскольку Tx2 уже был частью блока M1, что уже было подтверждено.

Ответы (2)

Нет, блоки из M2 и M3, скорее всего, будут отброшены. Причина в том, что как только M1 транслирует свой блок, большинство майнеров отбрасывают свой текущий блок и начинают пытаться решить следующий.

Ничто не мешает M2 и M3 транслировать свои блоки после M1 в надежде, что они также смогут сгенерировать следующий блок и взять на себя самую длинную цепочку. Проблема в том, что в наши дни стоимость генерации блока составляет десятки тысяч долларов за электроэнергию, так что пытаться решить два блока подряд — дорогая игра.

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

Что произойдет с Tx4 и Tx5 в этом случае? поскольку блоки M2 и M3 отклоняются.

«В этом случае M2 и M3 получат вознаграждение и комиссию за транзакцию?» Простой ответ -> Да. Но награды за блоки нельзя потратить сразу . Они заблокированы на 100 блоков.

Когда это произойдет, другие майнеры подразумевают, какой из этих 3 блоков (M1, M2, M3) они принимают, накладывая на него мощность. Через пару блоков один блокчейн превзойдет два других. Награды в блоке, который сейчас находится в самой длинной цепочке, можно будет потратить И принять любой, кто следует за этой цепочкой, как только будет достигнуто ограничение в 100 блоков.