Что такое двойное расходование простыми словами
Двойное расходование (double-spending) — это попытка использовать одну и ту же единицу криптовалюты в двух транзакциях одновременно. В обычных деньгах это невозможно: купюру нельзя отдать кассиру и одновременно положить в карман. В цифровых системах это потенциальная проблема, потому что данные легко скопировать. Блокчейн был изобретён в 2009 году именно для её решения через распределённый консенсус.
Когда ты отправляешь биткоин, узлы сети проверяют, что эти конкретные монеты (UTXO) ещё не были потрачены. Если кто-то одновременно создал две транзакции с одними и теми же UTXO, в блок попадёт только одна — вторая будет отвергнута. Атака на двойную трату возможна только в окне между отправкой и первым подтверждением, поэтому крупные сделки требуют 1-6 подтверждений для безопасности.
Биткоин и крупные блокчейны защищены от двойной траты на 99.9% после 1 подтверждения и на 100% после 6. Двойное расходование — реальная угроза только при работе с 0-confirm транзакциями в P2P и мелких сетях с низким хешрейтом.
Виды атак двойной траты
Существует 4 основных типа атак, каждая работает по своему сценарию и противодействует разным защитам.
| Атака | Суть | Защита |
|---|---|---|
| Race attack | Отправил две транзакции одновременно — продавцу и себе | Ждать 1+ подтверждение |
| Finney attack | Майнер скрыл блок с возвратом себе, потом купил товар | Ждать 3+ подтверждения |
| 51% атака | Контроль >50% хешрейта позволяет переписать историю | Использовать крупные сети с высоким хешрейтом |
| RBF replace | Переотправил транзакцию с большей комиссией на свой адрес | Отключить приём 0-conf или дождаться 1 блок |
Race attack и RBF replace — это атаки на «доверчивых продавцов», которые отдают товар при 0 подтверждениях. Finney и 51% — это атаки на крупные сети, требующие огромных ресурсов. На Bitcoin 51%-атаку оценивают в $1-2 млрд в час — экономически бессмысленно. На малых форках типа Bitcoin Gold или Ethereum Classic 51%-атаки происходили и стоили несколько миллионов долларов.
Как блокчейн защищает от double-spending
Защита работает на нескольких уровнях, и каждое подтверждение усиливает безопасность.
- UTXO-модель в BTC — каждая монета имеет уникальный ID и может быть потрачена только один раз.
- Account-модель в ETH — баланс пересчитывается после каждой транзакции через nonce.
- Консенсус Proof of Work / Proof of Stake — узлы голосуют за валидную цепь.
- Глубина блокчейна — чем больше блоков сверху, тем дороже переписать историю.
- Network monitoring — узлы видят попытки двойной траты и отклоняют невалидные транзакции.
Никогда не отдавай товар или фиат в P2P, если у транзакции 0 подтверждений. Мошенник может включить RBF и переотправить ту же сумму на свой адрес с большей комиссией — твой первоначальный перевод исчезнет. Жди минимум 1 подтверждение для BTC, 12 для ETH, 20 для TRC-20.
Где встречается риск double-spending
- P2P-сделки на Bybit, BingX, MEXC — escrow биржи защищает от 95% попыток.
- Личные сделки в Telegram — без escrow риск максимальный, не используй без гаранта.
- Малые альткоины с низким хешрейтом — атаки на них дешевле и реальнее.
- Обменники на 0-conf — мало кто работает без подтверждений, но если работает — риск на их стороне.
- Lightning Network — защита иная (через каналы и подписи), классический double-spend невозможен.
- NFT-маркетплейсы — при покупке NFT транзакция в блоке = безопасность.
Если занимаешься P2P, всегда жди столько подтверждений, сколько требует биржа для зачисления. Использование escrow на крупных биржах снимает риск double-spending на 100% — биржа удерживает крипту до подтверждения платежа.
Что нужно знать новичку
- В крупных сетях (BTC, ETH, Solana, Tron) одинокий пользователь не может выполнить double-spend.
- Атаки 51% реальны только на мелких форках с маленьким хешрейтом.
- Жди подтверждения по правилу: $50 = 1 conf, $500 = 2-3, $5000+ = 6 для BTC.
- Используй кошельки с поддержкой RBF — это позволит ускорить или заменить свою транзакцию.
- Не верь сообщениям «я отправил, скоро придёт» — проверяй TxID на mempool.space или etherscan.
- В P2P на бирже escrow обязателен — не выходи на личные сделки.