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

Биткойн система中的重复交易:一个罕见而有趣的漏洞

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

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

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

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

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

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

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

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

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

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

Следующий блок, в котором могут произойти повторные транзакции, это 1,983,702, который, как ожидается, будет создан около января 2046 года. Чтобы воспользоваться этой уязвимостью, майнерам потребуется понести огромные затраты, включая сжигание большого количества Биткойн в качестве комиссионных за транзакции. Учитывая затраты и сложности, эта уязвимость не представляет собой основную угрозу безопасности системы Биткойн.

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

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

Посмотреть Оригинал
This page may contain third-party content, which is provided for information purposes only (not representations/warranties) and should not be considered as an endorsement of its views by Gate, nor as financial or professional advice. See Disclaimer for details.
  • Награда
  • 6
  • Поделиться
комментарий
0/400
BlockchainBouncervip
· 16ч назад
Баг 2010 года действительно вызывает ностальгию.
Посмотреть ОригиналОтветить0
RiddleMastervip
· 19ч назад
Этот баг следовало исправить давно.
Посмотреть ОригиналОтветить0
¯\_(ツ)_/¯vip
· 19ч назад
Этот баг довольно интересный.
Посмотреть ОригиналОтветить0
FUD_Vaccinatedvip
· 19ч назад
Ну и дела, баги начали взрываться еще в 2010 году.
Посмотреть ОригиналОтветить0
FlashLoanPrincevip
· 19ч назад
Неужели токены могут быть повторно проданы?
Посмотреть ОригиналОтветить0
  • Закрепить