Что такое Race Attack?
Race Attack это когда кто-то рассылает две конфликтующие криптотранзакции почти одновременно в надежде, что будет принята та, которая выгодна атакующему. Это классический приём против продавцов, принимающих платежи без подтверждений. Представьте, что вы посылаете два чека с одного счёта и ставите на то, что кассир обработает нужный вам.
«Для Race Attack нужен Replace by Fee.» Не совсем. Хотя RBF связан с этим, Race Attack может случиться и без явных правил замены транзакций, поэтому это не то же самое, что атака замены транзакции.
Как работает Race Attack
Представьте, что кто-то расплачивается в магазине криптовалютой у прилавка. Он хочет получить товар и сохранить свои монеты. Вот как это происходит.
- Шаг 1: Злоумышленник создаёт две транзакции, расходующие одни и те же монеты, но с разными получателями.
- Шаг 2: Одну транзакцию он отправляет продавцу и одновременно рассылaет другую по разным узлам, надеясь, что она распространится быстрее.
- Шаг 3: Продавец видит первую поступившую транзакцию, считает платёж произведённым и отдаёт товар.
- Шаг 4: Майнеры подтверждают одну из конфликтующих транзакций. Другая отклоняется сетью, как только появляется блок.
- Шаг 5: Если подтверждённой окажется версия, выгодная атакующему, продавец остаётся без денег и с уроком.
Да, всё так просто, и да, вопрос здесь в тайминге.
Почему Race Attack имеет значение
Что произойдёт, если кто-то попытается это сделать?
- Польза: Знание о Race Attack помогает установить адекватные правила приёма платежей, чтобы не отдавать товар за обещание, которое не подтвердится.
- Вид: Это одна из форм более широкой атаки двойной траты, но для неё не нужны дорогие устройства или большие ресурсы.
- Актуальность: Тему встретите в обсуждениях кошельков для оплаты в точке продаж, электронной коммерции и любых сервисов, рассматривающих платежи без подтверждений.
Если вы продаёте товар, который отгружается или имеет реальную ценность, дождитесь одного или нескольких подтверждений транзакции перед передачей. Для небольших покупок вживую установите лимиты и используйте кошельки, которые отмечают конфликты.
Ключевые характеристики Race Attack
Что выделяет Race Attack:
- Мгновенность: Случается до первого подтверждения блока.
- Конфликтность: Две транзакции расходуют одни и те же входы, подтвердиться может только одна.
- Скорость: Победителя определяют распространение транзакций по сети и выбор майнеров, а не дорогая техника.
- Отличие: Для этого не требуются атаки 51% или контроль над майнингом.
Варианты
У Race Attack есть несколько родственников, с которыми можно столкнуться:
- Классический: Две конфликтующие транзакции рассылаются почти одновременно.
- Finney: Майнер заранее майнит блок с тратой, платит продавцу, затем публикует блок.
- Vector76: Сочетает элементы заранее замайненного блока и тайминга, чтобы обмануть биржи.
- RBF: Схожая цель, но опирается на правила замены по комиссии вместо чистой гонки распространения.
Топология сети важна. У атакующих шансы выше, если они контролируют много пиров или используют поддельные идентичности, поэтому в обсуждении защиты от Race Attack часто упоминают атаки Sybil.
Пример
Мошенник платит на киоск транзакцией без подтверждений, затем гонит конфликтующую транзакцию к майнерам и побеждает, из-за чего киоск остаётся без оплаты, хотя на экране кратко было написано «оплачено».
Интересный факт
Race Attack обсуждали ещё на первых биткоин‑форумах, и старый совет Сатоши ждать несколько подтверждений по‑прежнему остаётся рабочим решением. Rolex встречает Reddit‑треды.
Итог
В двух словах: Race Attack это ход по таймингу против платежей без подтверждений, так что немного терпения делает эту проблему неактуальной.
