Читать цепочку · Правило из найденной ошибки
Две транзакции с одним именем: правило, которого сначала не было
Идентификатор транзакции выглядит как уникальное имя. Ранний Биткоин полагался на это свойство, но ещё не требовал его от каждого допустимого блока.
РЕДАКЦИОННЫЙ ОБЗОР · Подготовлен редакцией проекта на основе указанных источников.
Как появилось совпадение
Обычная транзакция ссылается на предыдущие выходы, поэтому точное повторение трудно создать. У coinbase-транзакции, которой майнер получает награду блока, нет обычных входов. Если её данные совпадали, совпадал и txid.
В основной цепочке сохранились два исторических случая: блоки 91 842 и 91 880 содержали coinbase-транзакции с идентификаторами, уже встречавшимися раньше. Тогда это не нарушало явного правила консенсуса.
Почему это было опасно
Старый код считал txid ключом записи о доступных выходах. Новая транзакция с тем же идентификатором могла перезаписать состояние прежней. При реорганизации цепочки узел мог восстановить его неправильно.
Исследователи показали, что проблему можно использовать, чтобы ослабить уже подтверждённую транзакцию или разделить представление сети о допустимой цепочке. Редкое совпадение превратилось в вопрос консенсуса.
Правило BIP 30
В 2012 году Pieter Wuille предложил BIP 30: блок не может содержать транзакцию с тем же txid, что и более ранняя транзакция с ещё не потраченными выходами. Два исторических блока сохранили как исключения, потому что они уже были частью цепочки.
Это аккуратное исправление не переписывало прошлое. Оно ограничило новые блоки и закрепило важный принцип: добавление и удаление блока при реорганизации не должно незаметно менять набор доступных монет.
То, что почти невозможно случайно, всё равно должно быть определено правилом, если от этого зависит состояние денег.
Источники и проверка
Исторический технический материал. «Имя» в заголовке — образное обозначение идентификатора транзакции txid.
Если не указано иное, текст, выводы, структура и редакционная компоновка созданы редакцией проекта. Факты, цитаты и материалы источников принадлежат их авторам и правообладателям.
← Вернуться к рубрике