Открыть сервис

Двойная трата

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

История возникновения

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

В 2008 году Сатоси Накамото в своей работе «Bitcoin: A Peer-to-Peer Electronic Cash System» предложил решение, основанное на технологии блокчейна и механизме консенсуса Proof-of-Work (доказательство работы). Это позволило впервые в истории создать децентрализованную платёжную систему, устойчивую к двойной трате без необходимости доверять третьей стороне.

Механизм двойной траты

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

  1. Создание двух конфликтующих транзакций. Злоумышленник инициирует транзакцию A (например, перевод 1 BTC продавцу за товар) и одновременно транзакцию B (перевод той же 1 BTC на свой собственный кошелёк).
  2. Публикация в сеть. Обе транзакции распространяются среди узлов сети. Обычно первая подтверждённая транзакция считается действительной, а вторая — отклонённой.
  3. Атака на консенсус. Для успешной двойной траты злоумышленник должен сделать так, чтобы вторая транзакция была включена в блокчейн вместо первой. Это достигается путём создания параллельной (форковой) цепочки блоков, содержащей транзакцию B, и попыткой сделать её длиннее основной цепи.

Виды атак на двойную трату

Существует несколько основных типов атак, направленных на реализацию двойной траты:

Атака 51% (атака большинства)

Если злоумышленник контролирует более 50 % вычислительной мощности сети (хэшрейта) в системе с Proof-of-Work, он может создать собственную цепочку блоков быстрее, чем остальная сеть. Это позволяет ему отменить уже подтверждённые транзакции и потратить те же средства повторно. Атака 51% считается наиболее эффективной, но требует значительных ресурсов. В 2018 году такая атака была успешно проведена на криптовалюту Bitcoin Gold (BTG), в результате чего злоумышленники похитили средства на сумму около 18 миллионов долларов.

Атака с опережением (Race attack)

Злоумышленник отправляет две конфликтующие транзакции почти одновременно: одну — получателю (например, продавцу), который немедленно отпускает товар, не дожидаясь полного подтверждения, а другую — на свой кошелёк. Если вторая транзакция будет включена в блок первой, то первая транзакция станет недействительной. Этот тип атаки эффективен против систем, принимающих неподтверждённые транзакции (нулевое подтверждение).

Атака Финни (Finney attack)

Названа в честь Хэла Финни, одного из первых разработчиков Bitcoin. Злоумышленник заранее майнит блок, содержащий транзакцию B (перевод средств на свой кошелёк), но не публикует его. Затем он отправляет транзакцию A получателю, дожидается её подтверждения в сети, а после этого публикует свой заранее подготовленный блок. Если его блок длиннее текущей цепочки, то транзакция A отменяется, а средства возвращаются злоумышленнику.

Атака с использованием альтернативной истории (Alternative history attack)

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

Методы защиты от двойной траты

Консенсус Proof-of-Work

Основной механизм защиты в Bitcoin и многих других криптовалютах. Для отмены транзакции злоумышленнику необходимо переделать всю работу, затраченную на создание блоков, что требует огромных вычислительных ресурсов. Чем больше подтверждений (блоков) получила транзакция, тем сложнее её отменить. Обычно рекомендуется дожидаться 6 подтверждений для Bitcoin, что делает атаку практически невозможной при достаточном хэшрейте сети.

Консенсус Proof-of-Stake

В системах с доказательством доли владения (например, Ethereum после перехода на PoS) атака 51% требует контроля не над вычислительной мощностью, а над долей криптовалюты в сети. Это делает атаку значительно более дорогой, так как злоумышленник должен приобрести значительную часть эмиссии. Дополнительные механизмы, такие как слэшинг (изъятие залога), наказывают валидаторов за попытки создать форки.

Ожидание подтверждений

Наиболее простой и надёжный способ для пользователей — дожидаться достаточного количества подтверждений транзакции в блокчейне. Для Bitcoin это 6 блоков (около 1 часа), для Ethereum — 12–30 блоков (3–7 минут). Для небольших сумм могут использоваться меньшие лимиты.

Использование централизованных решений

В некоторых платёжных системах (например, в стейблкоинах на блокчейне) применяются централизованные оракулы или мультиподписи, которые проверяют транзакции до их окончательного подтверждения. Это снижает риск, но противоречит принципам децентрализации.

Примеры из практики

  • Bitcoin Gold (2018): атака 51% привела к двойной трате на сумму около 18 миллионов долларов. Злоумышленники контролировали более 50 % хэшрейта сети, что позволило им отменить транзакции и повторно потратить средства.
  • Ethereum Classic (2020): серия атак 51% на сеть Ethereum Classic, в результате которых было похищено около 5,6 миллионов долларов. После этого сеть перешла на более защищённый алгоритм консенсуса.
  • Verge (XVG) (2018): атака с использованием уязвимости в протоколе, позволившая злоумышленникам майнить блоки с высокой скоростью и проводить двойные траты.

Значение и критика

Проблема двойной траты является фундаментальной для понимания безопасности децентрализованных систем. Её решение с помощью блокчейна и механизмов консенсуса стало одним из главных достижений технологии распределённого реестра. Однако критики отмечают, что атаки 51% остаются реальной угрозой для небольших криптовалют с низким хэшрейтом, а также что затраты на защиту (например, потребление электроэнергии в Proof-of-Work) могут быть чрезмерными.

В России двойная трата рассматривается как одна из форм мошенничества в сфере цифровых финансовых активов. Регулирование криптовалют в РФ (Федеральный закон от 31.07.2020 № 259-ФЗ «О цифровых финансовых активах») не содержит прямого упоминания двойной траты, но любые действия, направленные на незаконное создание или перевод цифровых активов, могут быть квалифицированы по статьям Уголовного кодекса РФ (например, ст. 159.3 «Мошенничество с использованием электронных средств платежа»).

Источники

  • Nakamoto, S. (2008). Bitcoin: A Peer-to-Peer Electronic Cash System.
  • Narayanan, A., Bonneau, J., Felten, E., Miller, A., Goldfeder, S. (2016). Bitcoin and Cryptocurrency Technologies. Princeton University Press.
  • Bitcoin Wiki. «Double-spending».
  • Федеральный закон от 31.07.2020 № 259-ФЗ «О цифровых финансовых активах, цифровой валюте и о внесении изменений в отдельные законодательные акты Российской Федерации».
  • Отчёты о безопасности криптовалютных сетей (CoinDesk, Cointelegraph, 2018–2023).

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →