Феномен копирования биткоин-транзакций: малорисковый, но интересный частный случай
Торговля Биткойном обычно осуществляется путем ссылки на ID предыдущей транзакции для использования нерастраченных выходов. Эти выходы могут быть использованы только один раз, в противном случае это приведет к проблеме двойной траты. Однако в системе Биткойн существуют две группы совершенно идентичных транзакций. Это происходит потому, что транзакция coinbase не имеет входов, а создает новые токены. Таким образом, две разные транзакции coinbase могут отправить одинаковую сумму на один и тот же адрес, причем способ построения также совершенно идентичен, что приводит к созданию совершенно одинаковых транзакций. Поскольку содержание транзакций одинаково, их ID транзакций также совпадают, так как ID транзакции является хэш-значением данных транзакции. Если не произойдет хэш-коллизий, повторяющиеся ID транзакций невозможны, и хэш-коллизий в Биткойне или любой другой системе никогда не происходило.
Эти две группы повторяющихся транзакций произошли между 14 и 15 ноября 2010 года, с временным интервалом примерно в 16 часов. Первая группа повторяющихся транзакций (d5d2....8599), хотя и появилась на блокчейне позже другой группы, считается первым экземпляром.
Из скриншота блокчейн-обозревателя видно, что первая повторяющаяся транзакция появляется в двух разных блоках. Интересно, что разные блокчейн-обозреватели имеют разные настройки по умолчанию для отображения этих повторяющихся транзакций. Из четырех связанных блоков только один блок содержит другие транзакции.
Общая сумма Биткойна, связанная с этими повторяющимися транзакциями, составляет 200 токенов, но на самом деле только 100 токенов существуют. На данный момент эти 200 токенов не были использованы. Теоретически, если кто-то владеет соответствующим приватным ключом, он может использовать эти Биткойны. Но как только они будут использованы, повторяющиеся 50 токенов не смогут быть использованы снова. Что касается того, из какого блока будут удержаны токены при использовании, это может быть неопределенным.
Повторные транзакции могут вызвать путаницу в кошельках и блокчейн-браузерах, а также могут быть использованы для мошеннических атак. Чтобы решить эту проблему, в марте 2012 года был реализован софт-форк BIP30, запрещающий использование повторных идентификаторов транзакций, если предыдущая транзакция не была использована. В сентябре того же года это правило было дополнительно изменено, чтобы применяться ко всем блокам, но первоначальные два повторных транзакции были оставлены в качестве исключения.
BIP34, активированный в марте 2013 года, требует, чтобы транзакции coinbase содержали высоту блока, что в значительной степени решает проблему повторных транзакций. Однако в некоторых блоках, созданных до активации BIP34, первый байт scriptSig транзакции coinbase совпадает с высотой блока, которая будет действительна в будущем, что означает, что потенциально все еще существует возможность дублирования.
Следующий блок, в котором могут произойти повторные транзакции, — это 1,983,702, который ожидается примерно в январе 2046 года. Стоимость использования этой уязвимости очень высока и может превышать 15 миллионов долларов, при этом практически не принося никакой реальной выгоды для злоумышленника. Следующие потенциальные уязвимые блоки появятся только в 2078 году.
Учитывая сложность и стоимость эксплуатации этой уязвимости, а также редкость возможностей, проблема повторных транзакций не представляет собой основной угрозы безопасности Биткойна. Тем не менее, учитывая временные рамки и уникальность проблемы, это все еще является предметом размышлений. Разработчики Биткойна могут стремиться к полному решению этой проблемы до 2046 года, возможно, с помощью мягкого форка. Одно из возможных решений – это обязательное выполнение обязательств SegWit.
На этой странице может содержаться сторонний контент, который предоставляется исключительно в информационных целях (не в качестве заявлений/гарантий) и не должен рассматриваться как поддержка взглядов компании Gate или как финансовый или профессиональный совет. Подробности смотрите в разделе «Отказ от ответственности» .
13 Лайков
Награда
13
5
Репост
Поделиться
комментарий
0/400
RektDetective
· 08-12 13:26
2010 год, тогда одна монета btc стоила всего лишь несколько копеек.
Редкие повторные транзакции в истории Биткойна: обсуждение потенциальных рисков и решений в будущем
Феномен копирования биткоин-транзакций: малорисковый, но интересный частный случай
Торговля Биткойном обычно осуществляется путем ссылки на ID предыдущей транзакции для использования нерастраченных выходов. Эти выходы могут быть использованы только один раз, в противном случае это приведет к проблеме двойной траты. Однако в системе Биткойн существуют две группы совершенно идентичных транзакций. Это происходит потому, что транзакция coinbase не имеет входов, а создает новые токены. Таким образом, две разные транзакции coinbase могут отправить одинаковую сумму на один и тот же адрес, причем способ построения также совершенно идентичен, что приводит к созданию совершенно одинаковых транзакций. Поскольку содержание транзакций одинаково, их ID транзакций также совпадают, так как ID транзакции является хэш-значением данных транзакции. Если не произойдет хэш-коллизий, повторяющиеся ID транзакций невозможны, и хэш-коллизий в Биткойне или любой другой системе никогда не происходило.
! Дубликаты транзакций биткоина: интересная ошибка с минимальным риском
Эти две группы повторяющихся транзакций произошли между 14 и 15 ноября 2010 года, с временным интервалом примерно в 16 часов. Первая группа повторяющихся транзакций (d5d2....8599), хотя и появилась на блокчейне позже другой группы, считается первым экземпляром.
! Дубликаты транзакций биткоина: интересная ошибка с минимальным риском
Из скриншота блокчейн-обозревателя видно, что первая повторяющаяся транзакция появляется в двух разных блоках. Интересно, что разные блокчейн-обозреватели имеют разные настройки по умолчанию для отображения этих повторяющихся транзакций. Из четырех связанных блоков только один блок содержит другие транзакции.
! Дубликаты транзакций биткоина: интересная ошибка с минимальным риском
Общая сумма Биткойна, связанная с этими повторяющимися транзакциями, составляет 200 токенов, но на самом деле только 100 токенов существуют. На данный момент эти 200 токенов не были использованы. Теоретически, если кто-то владеет соответствующим приватным ключом, он может использовать эти Биткойны. Но как только они будут использованы, повторяющиеся 50 токенов не смогут быть использованы снова. Что касается того, из какого блока будут удержаны токены при использовании, это может быть неопределенным.
Повторные транзакции могут вызвать путаницу в кошельках и блокчейн-браузерах, а также могут быть использованы для мошеннических атак. Чтобы решить эту проблему, в марте 2012 года был реализован софт-форк BIP30, запрещающий использование повторных идентификаторов транзакций, если предыдущая транзакция не была использована. В сентябре того же года это правило было дополнительно изменено, чтобы применяться ко всем блокам, но первоначальные два повторных транзакции были оставлены в качестве исключения.
! Дубликаты транзакций биткоина: интересная ошибка с минимальным риском
BIP34, активированный в марте 2013 года, требует, чтобы транзакции coinbase содержали высоту блока, что в значительной степени решает проблему повторных транзакций. Однако в некоторых блоках, созданных до активации BIP34, первый байт scriptSig транзакции coinbase совпадает с высотой блока, которая будет действительна в будущем, что означает, что потенциально все еще существует возможность дублирования.
Следующий блок, в котором могут произойти повторные транзакции, — это 1,983,702, который ожидается примерно в январе 2046 года. Стоимость использования этой уязвимости очень высока и может превышать 15 миллионов долларов, при этом практически не принося никакой реальной выгоды для злоумышленника. Следующие потенциальные уязвимые блоки появятся только в 2078 году.
! Дубликаты транзакций биткоина: интересная ошибка с небольшим риском
Учитывая сложность и стоимость эксплуатации этой уязвимости, а также редкость возможностей, проблема повторных транзакций не представляет собой основной угрозы безопасности Биткойна. Тем не менее, учитывая временные рамки и уникальность проблемы, это все еще является предметом размышлений. Разработчики Биткойна могут стремиться к полному решению этой проблемы до 2046 года, возможно, с помощью мягкого форка. Одно из возможных решений – это обязательное выполнение обязательств SegWit.
! Дубликаты транзакций биткоина: интересный баг с минимальным риском