Двойная трата — это попытка потратить одни и те же единицы криптовалюты более одного раза. Проблема возникает из-за цифровой природы активов: в отличие от физической монеты, цифровую информацию можно скопировать, поэтому блокчейну необходимо определить, какая из конфликтующих транзакций считается действительной.

Для предотвращения двойной траты блокчейн использует консенсус. Узлы сети проверяют, существуют ли доступные средства, и принимают транзакции в соответствии с правилами протокола. После включения транзакции в блок и получения достаточного количества подтверждений вероятность успешной альтернативной истории обычно уменьшается.

Как возникает двойная трата

Атакующий может попытаться одновременно отправить одну сумму двум получателям или создать альтернативную историю блокчейна после совершения платежа. В обычной сети конфликтующие транзакции не могут одновременно расходовать один и тот же ресурс: одна из них должна быть отклонена или стать неактуальной.

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

Двойная трата отличается от обычной ошибки пользователя. Если пользователь случайно отправил средства не на тот адрес кошелька, это не является double-spending: речь идет о корректной транзакции, которую пользователь хотел бы отменить. Двойная трата подразумевает именно попытку получить признание нескольких расходований одного и того же баланса.

Механизмы предотвращения двойной траты являются одной из фундаментальных задач блокчейна. Именно поэтому безопасность механизма консенсуса, распределение участников и правила финальности непосредственно влияют на надежность цифрового актива.