Я заметил, что есть два хэша транзакций, которые появляются в блокчейне более одного раза. Причина этого понятна: они отправили вознаграждение за майнинг на один и тот же адрес. У этих транзакций были одинаковые входы (никаких) и одинаковые выходы (один вывод 50 BTC на указанный адрес). Однако это вызывает проблему, когда вы пытаетесь работать с данными транзакций, поскольку хэши транзакций нельзя считать уникальными идентификаторами транзакции.
Кратко это обсуждалось здесь , но обсуждение строилось больше на валидности блоков.
Фактически это приводило к ошибке, вызывавшей перезапись старой транзакции, которая была исправлена в версии 0.6.0.
Об одном из таких случаев было несколько веток BitcoinTalk: BitcoinTalk Other BitcoinTalk
В первой из этих тем Гэвин Андресен, кажется, предполагает, что вывод новой транзакции нельзя потратить, сказав: «О-о! О-о! Еще 50 биткойнов для темы «Биткойны потеряны навсегда»!».
Два хэша транзакций, которые появлялись более одного раза в блокчейне:
Итак, можно ли потратить эти выходные данные транзакций? Почему или почему нет?
РЕДАКТИРОВАТЬ: я должен упомянуть, что я проверил, и по состоянию на 5 июля 2013 года ни один из выходов транзакций не был потрачен.
Обновлено, так как мой предыдущий ответ был неправильным
Цитата из BIP 0030 :
Блоки не могут содержать транзакцию, идентификатор которой совпадает с идентификатором более ранней, не полностью израсходованной транзакции в той же цепочке.
Это правило должно применяться ко всем блокам, временная метка которых находится после определенного момента времени.
Это означает, что транзакция может иметь один и тот же хэш несколько раз, если он всегда тратится первым перед созданием новой транзакции.
Что касается более старых транзакций: они действительны, но сеть не позволит вам их потратить, потому что реализация в эталонном клиенте не позволит вам.
Майк
Том ван дер Вурдт