Я знаю, что у майнеров есть свобода выбора транзакций из пула памяти,
Допустим, в пуле памяти есть 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, что уже было подтверждено.
Нет, блоки из M2 и M3, скорее всего, будут отброшены. Причина в том, что как только M1 транслирует свой блок, большинство майнеров отбрасывают свой текущий блок и начинают пытаться решить следующий.
Ничто не мешает M2 и M3 транслировать свои блоки после M1 в надежде, что они также смогут сгенерировать следующий блок и взять на себя самую длинную цепочку. Проблема в том, что в наши дни стоимость генерации блока составляет десятки тысяч долларов за электроэнергию, так что пытаться решить два блока подряд — дорогая игра.
И в ответ на ваш главный вопрос, если транзакция, которая уже включена в блок, появится в последующем блоке, то новый блок будет отклонен как недействительный полными узлами и другими майнерами.
«В этом случае M2 и M3 получат вознаграждение и комиссию за транзакцию?» Простой ответ -> Да. Но награды за блоки нельзя потратить сразу . Они заблокированы на 100 блоков.
Когда это произойдет, другие майнеры подразумевают, какой из этих 3 блоков (M1, M2, M3) они принимают, накладывая на него мощность. Через пару блоков один блокчейн превзойдет два других. Награды в блоке, который сейчас находится в самой длинной цепочке, можно будет потратить И принять любой, кто следует за этой цепочкой, как только будет достигнуто ограничение в 100 блоков.
Ризстиен