Какое дизайнерское решение стояло за тем, что поле coinbase может иметь произвольные данные?

Из того, что я узнал, поле coinbase в транзакции вознаграждения за блок может содержать любые данные ( до тех пор, пока меньше 100b ).

Почему это на самом деле? Было ли проще реализовать в начале? Я бы просто определил, что транзакция coinbase может не иметь ввода. Я знаю, что сейчас полезно иметь больше информации ( см. BIP34 ). Я просто не уверен, каково было намерение Сатоши здесь, хотя он включил в себя знаменитый

The Times, 03 января 2009 г. Канцлер на пороге второй помощи банкам

Кроме того, кажется, что это отсутствует в базе данных транзакции и не может быть потрачено , но я могу здесь что-то путать.

Ответы (1)

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

В истории такое было, но всего два раза, и это усложняет неизрасходованное приложение БД, поэтому просто однажды решили, что один и тот же ID уже не будет различим как другая транзакция. Таким образом, добавлена ​​​​защита от него в формате блока версии 2, поэтому ни один майнер больше не может случайно получить неуникальный идентификатор для своей транзакции coinbase.

Хорошо, я понимаю, в этом причина: идентификатор транзакции рассчитывается на основе данных транзакции, и если бы был просто обычный биткойн-адрес как «исходящий», но ничего не как «входящий», коллизии были бы вероятны.
Вы имеете в виду бип 0034 ?
Этот ответ объясняет, как он используется сейчас (начиная с BIP 34), а не первоначальную причину наличия поля coinbase.
согласился с @PieterWuille. Это не отвечает мотивации наличия поля coinbase в первую очередь. Если бы требовался уникальный идентификатор транзакции, было бы добавлено поле последовательности вместо разрешения произвольных данных.