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

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

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

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

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

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

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

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

В четырех задействованных блоках только один блок содержит другие транзакции, объединив выходы в 1 Биткойн и 19 Биткойн в один выход на 20 Биткойн.

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

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

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

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

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

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

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

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

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

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

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

Посмотреть Оригинал
На этой странице может содержаться сторонний контент, который предоставляется исключительно в информационных целях (не в качестве заявлений/гарантий) и не должен рассматриваться как поддержка взглядов компании Gate или как финансовый или профессиональный совет. Подробности смотрите в разделе «Отказ от ответственности» .
  • Награда
  • 6
  • Поделиться
комментарий
0/400
CafeMinorvip
· 10ч назад
Протоколов стало больше, но это не значит, что стало безопаснее~
Посмотреть ОригиналОтветить0
MEVHunterBearishvip
· 07-18 00:45
Этот баг действительно скучно исправлять...
Посмотреть ОригиналОтветить0
CompoundPersonalityvip
· 07-18 00:42
Раньше уязвимости были, и это довольно пугало людей.
Посмотреть ОригиналОтветить0
screenshot_gainsvip
· 07-18 00:42
Код всегда является ямой.
Посмотреть ОригиналОтветить0
fren_with_benefitsvip
· 07-18 00:34
Почему разработчики снова устраивают беспорядки~
Посмотреть ОригиналОтветить0
RugPullSurvivorvip
· 07-18 00:27
Странно, есть и такой баг
Посмотреть ОригиналОтветить0
  • Закрепить