Биткойн повторные транзакции: интересная, но с очень низким риском уязвимость
Биткойн-транзакции обычно используют неиспользуемые выходы, ссылаясь на ID предыдущей транзакции. Эти выходы могут быть использованы только один раз, иначе это приведет к двойным расходам, что обесценит Биткойн. Тем не менее, в истории Биткойна действительно были две группы полностью идентичных транзакций. Эта ситуация могла произойти потому, что coinbase-транзакции не имеют входов, а создают новые токены. Поэтому две разные coinbase-транзакции могут отправить одинаковое количество токенов на один и тот же адрес, построенные абсолютно идентично, тем самым создавая одинаковый ID транзакции.
Эти две группы повторяющихся сделок произошли с 14 по 15 ноября 2010 года, продолжительность составляет около 16 часов. Первая группа повторяющихся сделок была заключена между второй группой. Мы классифицируем сделки с идентификатором, начинающимся на d5d2, как первую повторяющуюся сделку, хотя она впервые появилась в блокчейне после другой повторяющейся сделки.
Появление повторяющихся транзакций создало путаницу для кошельков и блокчейн-браузеров, а также затруднило определение источника Биткойна. Это также может привести к рискам атак и уязвимостей. Например, можно сделать две повторяющиеся транзакции, чтобы заплатить кому-то дважды, но на самом деле только половина средств будет доступна.
Для решения этой проблемы в марте 2012 года был внедрен софт-форк BIP30, который запрещал использование повторяющихся идентификаторов транзакций, если только предыдущий не был потрачен. В сентябре того же года это правило было изменено, чтобы применяться ко всем блокам, за исключением только двух первоначальных групп повторяющихся транзакций. В марте 2013 года софт-форк BIP34 потребовал, чтобы транзакции coinbase содержали высоту блока, что, похоже, полностью решило проблему повторяющихся транзакций.
Однако в некоторых блоках до активации BIP34 первый байт scriptSig coinbase транзакции совпадал с будущей действительной высотой блока. Это означает, что в некоторых очень редких случаях повторные транзакции все еще могут произойти. Следующий блок, в котором могут возникнуть повторные транзакции, - 1,983,702, который, как ожидается, будет создан около января 2046 года. Однако использование этой уязвимости требует высоких затрат, так как нужно сжигать большое количество Биткойн, что почти бесполезно для злоумышленника.
Учитывая трудности и затраты на копирование сделок, а также крайне редкие возможности для этого, эта уязвимость не представляет собой основную угрозу безопасности Биткойна. Однако в долгосрочной перспективе разработчики могут стремиться к полному исправлению этой проблемы до 2046 года, что может потребовать реализации через мягкий форк. Один из возможных способов исправления – это обязательное выполнение обязательств SegWit.
На этой странице может содержаться сторонний контент, который предоставляется исключительно в информационных целях (не в качестве заявлений/гарантий) и не должен рассматриваться как поддержка взглядов компании Gate или как финансовый или профессиональный совет. Подробности смотрите в разделе «Отказ от ответственности» .
20 Лайков
Награда
20
5
Репост
Поделиться
комментарий
0/400
MercilessHalal
· 08-03 13:23
Этот уязвимость очень свежая
Посмотреть ОригиналОтветить0
RektButAlive
· 08-01 06:06
Свидетельствую исторический момент
Посмотреть ОригиналОтветить0
RunWhenCut
· 08-01 06:06
Риск нельзя игнорировать.
Посмотреть ОригиналОтветить0
LiquidityWizard
· 08-01 05:47
Я давно обратил внимание на эту уязвимость.
Посмотреть ОригиналОтветить0
ImpermanentLossFan
· 08-01 05:45
Ранние ошибки действительно были очень интересными.
Биткойн повторные транзакционные уязвимости: редкие исторические случаи и потенциальные риски в будущем
Биткойн повторные транзакции: интересная, но с очень низким риском уязвимость
Биткойн-транзакции обычно используют неиспользуемые выходы, ссылаясь на ID предыдущей транзакции. Эти выходы могут быть использованы только один раз, иначе это приведет к двойным расходам, что обесценит Биткойн. Тем не менее, в истории Биткойна действительно были две группы полностью идентичных транзакций. Эта ситуация могла произойти потому, что coinbase-транзакции не имеют входов, а создают новые токены. Поэтому две разные coinbase-транзакции могут отправить одинаковое количество токенов на один и тот же адрес, построенные абсолютно идентично, тем самым создавая одинаковый ID транзакции.
! Дубликаты транзакций биткоина: интересная ошибка с минимальным риском
Эти две группы повторяющихся сделок произошли с 14 по 15 ноября 2010 года, продолжительность составляет около 16 часов. Первая группа повторяющихся сделок была заключена между второй группой. Мы классифицируем сделки с идентификатором, начинающимся на d5d2, как первую повторяющуюся сделку, хотя она впервые появилась в блокчейне после другой повторяющейся сделки.
! Дубликаты транзакций биткоина: интересная ошибка с минимальным риском
Появление повторяющихся транзакций создало путаницу для кошельков и блокчейн-браузеров, а также затруднило определение источника Биткойна. Это также может привести к рискам атак и уязвимостей. Например, можно сделать две повторяющиеся транзакции, чтобы заплатить кому-то дважды, но на самом деле только половина средств будет доступна.
Для решения этой проблемы в марте 2012 года был внедрен софт-форк BIP30, который запрещал использование повторяющихся идентификаторов транзакций, если только предыдущий не был потрачен. В сентябре того же года это правило было изменено, чтобы применяться ко всем блокам, за исключением только двух первоначальных групп повторяющихся транзакций. В марте 2013 года софт-форк BIP34 потребовал, чтобы транзакции coinbase содержали высоту блока, что, похоже, полностью решило проблему повторяющихся транзакций.
Однако в некоторых блоках до активации BIP34 первый байт scriptSig coinbase транзакции совпадал с будущей действительной высотой блока. Это означает, что в некоторых очень редких случаях повторные транзакции все еще могут произойти. Следующий блок, в котором могут возникнуть повторные транзакции, - 1,983,702, который, как ожидается, будет создан около января 2046 года. Однако использование этой уязвимости требует высоких затрат, так как нужно сжигать большое количество Биткойн, что почти бесполезно для злоумышленника.
! Дубликаты транзакций биткоина: интересная ошибка с небольшим риском
Учитывая трудности и затраты на копирование сделок, а также крайне редкие возможности для этого, эта уязвимость не представляет собой основную угрозу безопасности Биткойна. Однако в долгосрочной перспективе разработчики могут стремиться к полному исправлению этой проблемы до 2046 года, что может потребовать реализации через мягкий форк. Один из возможных способов исправления – это обязательное выполнение обязательств SegWit.
! Дубликаты транзакций биткоина: интересный баг с минимальным риском