Биткойн повторная транзакционная уязвимость: исторические забавные случаи и будущие вызовы

robot
Генерация тезисов в процессе

Биткойн повторные транзакции: интересная, но ограниченно влияющая уязвимость

В сети Биткойн существует интересная уязвимость - повторные транзакции. В нормальных условиях транзакции Биткойн используют неиспользуемые выходы, ссылаясь на ID предыдущей транзакции. Эти выходы могут быть потрачены только один раз, в противном случае возникает проблема двойной оплаты. Тем не менее, в истории Биткойн действительно были зафиксированы две группы полностью идентичных транзакций.

! Дубликаты транзакций биткоина: интересная ошибка с минимальным риском

Эта ситуация может возникнуть, потому что coinbase-транзакция не имеет входящих данных и напрямую создает новые токены. Таким образом, две разные coinbase-транзакции могут отправить одинаковое количество Биткойн на один и тот же адрес, создавая совершенно идентичные транзакции. Поскольку содержание транзакций идентично, их идентификаторы транзакций (TXID) также будут одинаковыми.

Эти две группы повторных транзакций произошли с 14 по 15 ноября 2010 года, с временным интервалом около 16 часов. Идентификатор первой группы повторных транзакций - d5d2....8599, второй группы - e3bf....b468. Интересно, что d5d2....8599, хотя и стал копией первым, на блокчейне появился позже e3bf....b468.

! Дубликаты транзакций биткоина: интересная ошибка с минимальным риском

Эти повторяющиеся транзакции имеют стоимость 50 BTC каждая, всего вовлечено 200 BTC. С одной стороны, из них 100 BTC на самом деле не существуют. На данный момент эти 200 BTC не были потрачены. Теоретически, владелец соответствующего приватного ключа может потратить эти Биткойны, но как только они будут потрачены, повторяющиеся 50 BTC будут потеряны, поэтому на самом деле можно вернуть только 100 BTC.

Повторные транзакции, очевидно, могут вызвать путаницу как в кошельках, так и в блокчейн-обозревателях, и могут быть использованы для атак. Например, злоумышленник может внести средства на биржу с помощью двух повторяющихся транзакций, а затем сразу же вывести их, пытаясь обанкротить биржу.

Чтобы решить эту проблему, сообщество Биткойн приняло ряд мер:

  1. В марте 2012 года BIP30 мягкий форк запретил использование дублирующихся TXID для транзакций, если предыдущий TXID не был потрачен.

  2. В сентябре 2012 года Грег Ма́ксвелл изменил правила, чтобы проверка BIP30 применялась ко всем блокам, но оставил два упомянутых ранее дублирующихся транзакции.

  3. В марте 2013 года мягкий форк BIP34 потребовал, чтобы транзакции coinbase содержали высоту блока, что в основном решило проблему повторных транзакций.

  4. Ноябрь 2015 года, Биткойн-ядро прекратило выполнение проверки BIP30, так как BIP34 уже исправил эту проблему.

! Дубликаты транзакций биткоина: интересная ошибка с минимальным риском

Однако в некоторых блоках до активации BIP34 первый байт scriptSigs транзакции coinbase совпадает с высотой блока, которая будет действительна в будущем. Это означает, что проблема повторных транзакций не была решена на 100%. Следующий блок, в котором могут возникнуть повторные транзакции, - 1,983,702, который, как ожидается, будет создан около января 2046 года.

Повторные транзакции Биткойна: интересная ошибка с минимальным риском

Однако стоимость использования этой уязвимости очень высока. Например, для блока 1,983,702 злоумышленнику потребуется сжечь около 170 BTC, что при текущей цене составляет примерно 15 миллионов долларов. Кроме того, эти средства, скорее всего, не подлежат возврату. Более того, с момента обновления SegWit в 2017 году, транзакции coinbase также содержат обязательство по всем транзакциям в блоке, что дополнительно усложняет задачу атаки.

Повторные транзакции Биткойн: интересный баг с минимальным риском

Учитывая сложность и стоимость копирования сделок, а также редкость возможностей, эта уязвимость не представляет собой главную угрозу безопасности Биткойна. Тем не менее, разработчики продолжают работать над поиском решений, которые могут потребовать реализации через мягкий форк. Один из возможных методов - это принудительное выполнение обязательств SegWit.

В целом, хотя уязвимость повторной торговли и интересна, ее реальное влияние очень ограничено. Она больше отражает сложность сети Биткойн и усилия разработчиков по постоянному совершенствованию системы.

! Дубликаты транзакций биткоина: интересный баг с минимальным риском

Посмотреть Оригинал
На этой странице может содержаться сторонний контент, который предоставляется исключительно в информационных целях (не в качестве заявлений/гарантий) и не должен рассматриваться как поддержка взглядов компании Gate или как финансовый или профессиональный совет. Подробности смотрите в разделе «Отказ от ответственности» .
  • Награда
  • 6
  • Поделиться
комментарий
0/400
ArbitrageBotvip
· 5ч назад
Есть баг, значит можно заработать деньги.
Посмотреть ОригиналОтветить0
LiquidationSurvivorvip
· 5ч назад
Ты исправляешь баги, а я увеличиваю позицию~
Посмотреть ОригиналОтветить0
PebbleHandervip
· 6ч назад
До сих пор не удалось разобраться?
Посмотреть ОригиналОтветить0
ShibaMillionairen'tvip
· 6ч назад
Чанъань не очень, все равно проблемы.
Посмотреть ОригиналОтветить0
ImpermanentTherapistvip
· 6ч назад
Узел вышел из строя, люди это давно предвидели.
Посмотреть ОригиналОтветить0
BakedCatFanboyvip
· 6ч назад
Ой, этот баг как-то знаком...
Посмотреть ОригиналОтветить0
  • Закрепить