Биткойн повторные транзакции: интересная, но с низким риском уязвимость
Обзор
Торговля Биткойном обычно осуществляется с использованием непотраченных выходов, ссылаясь на ID предыдущей транзакции. Эти выходы могут быть потрачены только один раз, иначе может произойти двойная трата. Однако в истории Биткойна действительно имелось две группы абсолютно идентичных транзакций. Это связано с тем, что транзакции coinbase не имеют входов, а генерируют новые токены. Следовательно, две разные транзакции coinbase могут отправить одинаковое количество токенов на один и тот же адрес, причем способ их построения также будет полностью идентичен, что приводит к образованию одинаковых транзакций.
Эти две группы повторных сделок произошли с 14 по 15 ноября 2010 года, временной промежуток составил около 16 часов. Первая группа повторных сделок находится между второй группой. Мы классифицируем сделки, начинающиеся с ID d5d2, как первую повторную сделку, хотя они впервые появились в блокчейне позже другой повторной сделки.
Подробности о повторной сделке
Эти повторные транзакции имеют стоимость 50 Биткойн каждая, в общей сложности затрагивают 200 Биткойн, или 100 Биткойн учитываются повторно. На данный момент эти 200 Биткойн не были потрачены. Теоретически, человек, обладающий соответствующим приватным ключом, может потратить эти Биткойн. Но как только они будут потрачены, повторные 50 Биткойн больше не смогут быть использованы. Что касается того, из какого блока эти токены будут потрачены, это может быть неопределенным.
Повторные транзакции могут вызвать путаницу в кошельках и блокчейн-браузерах, а также привести к неопределенности источника Биткойн. Это также может быть использовано для атак, например, для двойной оплаты кому-то, но на самом деле доступна только половина средств.
Чтобы смягчить эту проблему, в марте 2012 года был реализован мягкий форк BIP30, запрещающий использование дублирующихся TXID для транзакций. В сентябре 2012 года это правило было дополнительно изменено, применимо ко всем блокам.
В марте 2013 года активированный мягкий хардфорк BIP34 требует, чтобы транзакции coinbase содержали высоту блока, что в корне решает проблему повторных транзакций. С тех пор узлы прекратили дорогостоящую проверку BIP30.
Однако в некоторых coinbase-транзакциях scriptSig до BIP34 первый байт совпадает с будущей действительной высотой блока. Это означает, что все еще существует очень маленькая вероятность дублирования.
Будущие потенциальные риски
Следующий блок, в котором может произойти повторная транзакция, - это 1,983,702, который ожидается приблизительно в январе 2046 года. Однако использование этой уязвимости обойдется более чем в 15 миллионов долларов и будет практически бесполезно.
Следующий уязвимый блок, как ожидается, появится в 2078 году. Но к тому времени стоимость использования этой уязвимости может быть выше.
Учитывая сложность, стоимость и крайне малые возможности копирования сделок, этот недостаток не представляет собой основную угрозу безопасности Биткойна. Тем не менее, разработчики на протяжении многих лет по-прежнему вкладывают значительные усилия в эту проблему, и 2046 год может стать последним сроком для ее окончательного решения. Метод исправления может потребовать мягкого хард-форка, например, обязательного применения SegWit.
На этой странице может содержаться сторонний контент, который предоставляется исключительно в информационных целях (не в качестве заявлений/гарантий) и не должен рассматриваться как поддержка взглядов компании Gate или как финансовый или профессиональный совет. Подробности смотрите в разделе «Отказ от ответственности» .
8 Лайков
Награда
8
4
Поделиться
комментарий
0/400
MoonRocketman
· 15ч назад
Рекомендуется установить предупреждение RSI для мониторинга вероятности повторного вторжения по траектории.
Посмотреть ОригиналОтветить0
MetaverseHermit
· 07-30 21:17
А это двойные расходы уязвимость уже давно была обнаружена.
Посмотреть ОригиналОтветить0
MetaverseLandlord
· 07-30 19:27
Ну и дела, ты обнаружил баг из древности!
Посмотреть ОригиналОтветить0
DefiOldTrickster
· 07-30 19:16
Ё? Раньше дела с майнингом действительно заставили молодёжь вспомнить... Как думаешь, сколько арбитражного дохода было получено от этой повторной сделки тогда?
Биткойн повторные транзакции: анализ исторических уязвимостей и потенциальных рисков в будущем
Биткойн повторные транзакции: интересная, но с низким риском уязвимость
Обзор
Торговля Биткойном обычно осуществляется с использованием непотраченных выходов, ссылаясь на ID предыдущей транзакции. Эти выходы могут быть потрачены только один раз, иначе может произойти двойная трата. Однако в истории Биткойна действительно имелось две группы абсолютно идентичных транзакций. Это связано с тем, что транзакции coinbase не имеют входов, а генерируют новые токены. Следовательно, две разные транзакции coinbase могут отправить одинаковое количество токенов на один и тот же адрес, причем способ их построения также будет полностью идентичен, что приводит к образованию одинаковых транзакций.
! Дубликаты транзакций биткоина: интересная ошибка с минимальным риском
Эти две группы повторных сделок произошли с 14 по 15 ноября 2010 года, временной промежуток составил около 16 часов. Первая группа повторных сделок находится между второй группой. Мы классифицируем сделки, начинающиеся с ID d5d2, как первую повторную сделку, хотя они впервые появились в блокчейне позже другой повторной сделки.
Подробности о повторной сделке
Эти повторные транзакции имеют стоимость 50 Биткойн каждая, в общей сложности затрагивают 200 Биткойн, или 100 Биткойн учитываются повторно. На данный момент эти 200 Биткойн не были потрачены. Теоретически, человек, обладающий соответствующим приватным ключом, может потратить эти Биткойн. Но как только они будут потрачены, повторные 50 Биткойн больше не смогут быть использованы. Что касается того, из какого блока эти токены будут потрачены, это может быть неопределенным.
! Дубликаты транзакций биткоина: интересная ошибка с минимальным риском
Проблема повторных сделок
Повторные транзакции могут вызвать путаницу в кошельках и блокчейн-браузерах, а также привести к неопределенности источника Биткойн. Это также может быть использовано для атак, например, для двойной оплаты кому-то, но на самом деле доступна только половина средств.
! Дубликаты транзакций биткоина: интересная ошибка с минимальным риском
Решение
Чтобы смягчить эту проблему, в марте 2012 года был реализован мягкий форк BIP30, запрещающий использование дублирующихся TXID для транзакций. В сентябре 2012 года это правило было дополнительно изменено, применимо ко всем блокам.
В марте 2013 года активированный мягкий хардфорк BIP34 требует, чтобы транзакции coinbase содержали высоту блока, что в корне решает проблему повторных транзакций. С тех пор узлы прекратили дорогостоящую проверку BIP30.
Однако в некоторых coinbase-транзакциях scriptSig до BIP34 первый байт совпадает с будущей действительной высотой блока. Это означает, что все еще существует очень маленькая вероятность дублирования.
Будущие потенциальные риски
Следующий блок, в котором может произойти повторная транзакция, - это 1,983,702, который ожидается приблизительно в январе 2046 года. Однако использование этой уязвимости обойдется более чем в 15 миллионов долларов и будет практически бесполезно.
Следующий уязвимый блок, как ожидается, появится в 2078 году. Но к тому времени стоимость использования этой уязвимости может быть выше.
! Дубликаты транзакций биткоина: интересная ошибка с небольшим риском
Вывод
Учитывая сложность, стоимость и крайне малые возможности копирования сделок, этот недостаток не представляет собой основную угрозу безопасности Биткойна. Тем не менее, разработчики на протяжении многих лет по-прежнему вкладывают значительные усилия в эту проблему, и 2046 год может стать последним сроком для ее окончательного решения. Метод исправления может потребовать мягкого хард-форка, например, обязательного применения SegWit.
! Дубликаты транзакций биткоина: интересный баг с минимальным риском