Что такое Double Spend?
Double Spend это ситуация, когда кто-то пытается потратить одни и те же цифровые монеты в двух разных платежах. Представьте, что вы фотокопируете билет на концерт и отдаёте копию двум контролёрам. В блокчейнах попытки Double Spend сдерживает механизм консенсуса, но временные окна и уловки всё ещё можно использовать во вред.
Если платёж появляется в вашем кошельке, значит он окончателен. Не совсем. Пока сеть его не подтвердила, транзакцию всё ещё могут заменить или не включить майнеры.
Как работает Double Spend
Ниже краткая последовательность действий хитрого атакующего и ничего не подозревающего продавца.
- Шаг 1: Атакующий создаёт две транзакции, расходующие одни и те же монеты: одну продавцу, другую себе.
- Шаг 2: Сначала они отправляют платёж продавцу, чтобы он появился как ожидаемый, и продавец передаёт товар.
- Шаг 3: Затем они активно распространяют конфликтующую транзакцию с более высокой комиссией, чтобы привлечь майнеров или пул.
- Шаг 4: Если майнеры включат в блок конфликтную транзакцию первыми, ожидаемый платёж продавца будет отклонён сетью.
- Шаг 5: Более сильный злоумышленник может майнить приватную ветку и позже опубликовать её, чтобы заменить публичную историю и изменить, какой платёж будет считаться действительным.
Вот в чём суть и почему имеют значение подтверждения.
Почему Double Spend важен
Если вы принимаете криптоплатежи, это не мелочь. Это влияет на ваши доходы и спокойствие.
- Польза: Понимание риска позволяет установить разумные правила подтверждений и сделать мгновенные продажи безопаснее.
- Перспектива: Угрозы Double Spend повлияли на то, как блокчейны подходят к финальности, комиссиям и поведению майнеров.
- Актуальность: Вы встретите это в процессах оплаты на кассе, на биржах, при релизах NFT и на мостах DeFi.
Для мелких покупок используйте уровни риска и отслеживайте флаги replace by fee. Для больших сумм ждите нескольких подтверждений. Шесть подтверждений в сети Bitcoin по-прежнему считаются надёжной практикой.
Ключевые характеристики Double Spend
Основные свойства, на которые стоит обратить внимание:
- Конфликт: Две или более транзакции пытаются потратить одни и те же входы, которые сеть не может принять одновременно.
- Время: Шанс успеха уменьшается с ростом числа подтверждений.
- Стимул: Майнеры обычно предпочитают транзакции с более высокой комиссией, что может сыграть на руку атакующему.
- Риск: Double Spend процветает, когда продавцы принимают платежи без подтверждений без проверок.
Варианты
Разные приёмы, одна идея. Несколько распространённых видов:
- Атака гонки: Атакующий посылает две конфликтующие транзакции почти одновременно, надеясь, что майнеры выберут ту, которая ему выгодна.
- Атака Финни: Майнер заранее майнит блок с платёжкой себе, затем тратит эти монеты у продавца до выпуска блока.
- Атака 51%: Имея достаточную вычислительную мощность, злоумышленник может опережать честную цепь и регулярно отменять платежи.
Финальность растёт с глубиной. После достаточного числа подтверждений практически вступает в силу неизменяемость и становится чрезвычайно трудно осуществить Double Spend без серьёзных ресурсов.
Пример
Кафе принимает платёж без подтверждений, покупатель уходит с кофе, а позже подтверждается конфликтующая транзакция с более высокой комиссией, аннулируя платёж кафе.
Интересный факт
Сатоши представил Биткоин как решение проблемы двойных трат, поэтому предотвращение Double Spend было не побочной задачей, а ключевой целью.
Итог
Кратко: Double Spend связана с таймингом и консенсусом, и с ней борются подтверждения, разумные проверки и немного терпения. Rolex и темы на Reddit.
