Дубликаты транзакций в биткоине: интересный и малорисковый недостаток
Обзор
Биткойн-транзакции обычно используют необработанные выходы, ссылаясь на ID предыдущей транзакции. Эти выходы можно использовать только один раз, иначе это приведет к проблеме двойного расходования. Тем не менее, в истории Биткойна действительно были случаи двух полностью идентичных транзакций. Это может произойти потому, что транзакции coinbase не имеют входов, а создают новые токены напрямую. Таким образом, две разные транзакции coinbase могут отправить одинаковое количество на один и тот же адрес, построенные совершенно одинаково, что приводит к созданию одинаковых ID транзакций.
Эти две группы повторных транзакций произошли между 14 и 15 ноября 2010 года, продолжительность составляет примерно 16 часов. ID первой группы повторных транзакций - d5d2....8599, хотя она впервые появилась в блокчейне позже другой повторной транзакции e3bf....b468.
Эти две группы повторяющихся транзакций появляются в четырех разных блоках. Блокчейн браузеры имеют разные настройки по умолчанию при отображении этих транзакций, некоторые показывают более ранние блоки, другие - более поздние.
В этих четырех связанных блоках только один блок (91,812) содержит другие транзакции, объединяя 1 Бит и 19 Бит в один вывод на 20 Бит.
Каждая повторная транзакция имеет стоимость 50 Биткойн, всего задействовано 200 Биткойн( или 100 Биткойн, в зависимости от способа понимания). На данный момент эти 200 Биткойн не были использованы. Теоретически, владелец соответствующего приватного ключа может использовать эти Биткойн, но как только они будут использованы, повторные 50 Биткойн не могут быть использованы снова и будут потеряны, поэтому фактически возможно вернуть только 100 Биткойн.
Повторные транзакции могут привести к путанице в кошельках и блокчейн-обозревателях, а также могут сделать источники Биткойн неопределенными. Это также может быть использовано для некоторых атак и уязвимостей, например, для мошеннических депозитов на биржах.
Решение
Чтобы решить проблему повторных транзакций, в марте 2012 года был реализован мягкий форк BIP30, запрещающий использование повторяющихся идентификаторов транзакций, если предыдущая транзакция не была использована. В сентябре того же года это правило было дополнительно изменено и применено ко всем блокам.
В марте 2013 года BIP34 мягкий хард-форк потребовал, чтобы транзакции coinbase содержали высоту блока, что на самом деле решало проблему дублирования транзакций. После этого программное обеспечение Bitcoin Core прекратило проверку BIP30, поскольку она больше не была необходима.
Несмотря на то, что BIP34 решает большинство проблем, в некоторых блоках до активации BIP34 первый байт scriptSig coinbase-транзакции совпадает с будущей действительной высотой блока. Это означает, что на некоторых конкретных высотах блока в будущем все еще может возникнуть повторная транзакция.
Следующий блок, в котором могут возникнуть повторяющиеся транзакции, - это 1,983,702, который, как ожидается, будет создан около января 2046 года. Однако использование этой уязвимости стоит очень дорого, требуется сжечь огромное количество Биткойн, и это почти не приносит никакой практической выгоды для злоумышленников.
Учитывая сложность копирования транзакций, затраты и редкость возможностей, этот уязвимость не представляет собой главную угрозу безопасности Биткойна. Тем не менее, из-за своей уникальности и потенциальной долгосрочной существования, это все еще представляет интересную техническую проблему. Разработчики, возможно, будут стремиться к окончательному решению этой проблемы до 2046 года, возможно, через софт-форк. Потенциальным решением является принудительное выполнение обязательств SegWit.
На этой странице может содержаться сторонний контент, который предоставляется исключительно в информационных целях (не в качестве заявлений/гарантий) и не должен рассматриваться как поддержка взглядов компании Gate или как финансовый или профессиональный совет. Подробности смотрите в разделе «Отказ от ответственности» .
14 Лайков
Награда
14
2
Поделиться
комментарий
0/400
SmartMoneyWallet
· 07-22 07:33
Данные в блокчейне никогда не лгут, 97% риска уже заблокированы BIP34.
Посмотреть ОригиналОтветить0
AltcoinOracle
· 07-22 07:28
удивительно, как протокол развивается... мои собственные метрики показывают 0.0021% вероятность фактической эксплуатации, если честно
Повторные уязвимости в транзакциях Биткойна: причины, последствия и анализ будущих рисков
Дубликаты транзакций в биткоине: интересный и малорисковый недостаток
Обзор
Биткойн-транзакции обычно используют необработанные выходы, ссылаясь на ID предыдущей транзакции. Эти выходы можно использовать только один раз, иначе это приведет к проблеме двойного расходования. Тем не менее, в истории Биткойна действительно были случаи двух полностью идентичных транзакций. Это может произойти потому, что транзакции coinbase не имеют входов, а создают новые токены напрямую. Таким образом, две разные транзакции coinbase могут отправить одинаковое количество на один и тот же адрес, построенные совершенно одинаково, что приводит к созданию одинаковых ID транзакций.
Эти две группы повторных транзакций произошли между 14 и 15 ноября 2010 года, продолжительность составляет примерно 16 часов. ID первой группы повторных транзакций - d5d2....8599, хотя она впервые появилась в блокчейне позже другой повторной транзакции e3bf....b468.
! Дубликаты транзакций биткоина: интересная ошибка с минимальным риском
Подробности повторной сделки
Эти две группы повторяющихся транзакций появляются в четырех разных блоках. Блокчейн браузеры имеют разные настройки по умолчанию при отображении этих транзакций, некоторые показывают более ранние блоки, другие - более поздние.
В этих четырех связанных блоках только один блок (91,812) содержит другие транзакции, объединяя 1 Бит и 19 Бит в один вывод на 20 Бит.
! Дубликаты транзакций биткоина: интересная ошибка с минимальным риском
Эти выводы могут быть использованы?
Каждая повторная транзакция имеет стоимость 50 Биткойн, всего задействовано 200 Биткойн( или 100 Биткойн, в зависимости от способа понимания). На данный момент эти 200 Биткойн не были использованы. Теоретически, владелец соответствующего приватного ключа может использовать эти Биткойн, но как только они будут использованы, повторные 50 Биткойн не могут быть использованы снова и будут потеряны, поэтому фактически возможно вернуть только 100 Биткойн.
! Дубликаты транзакций биткоина: интересная ошибка с минимальным риском
Проблема повторных транзакций
Повторные транзакции могут привести к путанице в кошельках и блокчейн-обозревателях, а также могут сделать источники Биткойн неопределенными. Это также может быть использовано для некоторых атак и уязвимостей, например, для мошеннических депозитов на биржах.
Решение
Чтобы решить проблему повторных транзакций, в марте 2012 года был реализован мягкий форк BIP30, запрещающий использование повторяющихся идентификаторов транзакций, если предыдущая транзакция не была использована. В сентябре того же года это правило было дополнительно изменено и применено ко всем блокам.
В марте 2013 года BIP34 мягкий хард-форк потребовал, чтобы транзакции coinbase содержали высоту блока, что на самом деле решало проблему дублирования транзакций. После этого программное обеспечение Bitcoin Core прекратило проверку BIP30, поскольку она больше не была необходима.
! Дубликаты транзакций биткоина: интересная ошибка с минимальным риском
Потенциальные проблемы будущего
Несмотря на то, что BIP34 решает большинство проблем, в некоторых блоках до активации BIP34 первый байт scriptSig coinbase-транзакции совпадает с будущей действительной высотой блока. Это означает, что на некоторых конкретных высотах блока в будущем все еще может возникнуть повторная транзакция.
Следующий блок, в котором могут возникнуть повторяющиеся транзакции, - это 1,983,702, который, как ожидается, будет создан около января 2046 года. Однако использование этой уязвимости стоит очень дорого, требуется сжечь огромное количество Биткойн, и это почти не приносит никакой практической выгоды для злоумышленников.
! Дубликаты транзакций биткоина: интересная ошибка с небольшим риском
Заключение
Учитывая сложность копирования транзакций, затраты и редкость возможностей, этот уязвимость не представляет собой главную угрозу безопасности Биткойна. Тем не менее, из-за своей уникальности и потенциальной долгосрочной существования, это все еще представляет интересную техническую проблему. Разработчики, возможно, будут стремиться к окончательному решению этой проблемы до 2046 года, возможно, через софт-форк. Потенциальным решением является принудительное выполнение обязательств SegWit.
! Дубликаты транзакций биткоина: интересный баг с минимальным риском