Из руководства разработчика :
UTXO транзакции coinbase имеет особое условие: его нельзя потратить (использовать в качестве ввода) как минимум на 100 блоков. Это временно не позволяет майнеру тратить комиссию за транзакцию и вознаграждение за блок из блока, который впоследствии может быть определен как устаревший (и, следовательно, транзакция coinbase уничтожена) после разветвления цепочки блоков.
Может кто-нибудь объяснить, почему это ограничение необходимо? Я имею в виду, чем результат транзакции coinbase (плюс комиссия за транзакцию блока) отличается от результата любой другой транзакции?
Или, другими словами, если для транзакций coinbase требуется период восстановления в 100 блоков, то и для всех остальных транзакций тоже, нет?
чем результат транзакции coinbase (плюс комиссия за транзакцию блока) отличается от результата любой другой транзакции?
Потому что ее действительность привязана к тому, в КАКОЙ блок она включена. Вы не можете взять транзакцию coinbase и включить ее, как если бы это была стандартная транзакция в другом блоке, потому что она создает больше биткойнов, чем тратит, что недопустимо для обычного биткойн-транзакции.
Эта проблема называется reorg-safe (реорганизационной безопасностью). Это общий принцип блокчейна, и это означает, что если произойдет разветвление, и вам придется отменить один или два последних блока, чтобы заменить их другими блоками, это не должно изменить то, какие транзакции действительны. С обычными транзакциями довольно легко просто добавить их в блок X вместо блока Y, когда происходит форк.
Но если у вас есть транзакции, которые зависят от недавней транзакции coinbase, вы не можете легко взять эти транзакции и поместить их в другой блок. Таким образом, правило 100 блоков заключается в том, чтобы обеспечить безопасность реорганизации блокчейна, поэтому в случае небольшого форка не произойдет ничего плохого.
морсекодер