Что такое атака двойной траты

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

Создатель биткоина Сатоши Накамото несколько раз упоминает двойную трату в “Белой Книге”. Он описывает решение проблемы двойного расходования как одноранговый распределенный реестр временных меток для создания криптографического доказательства порядка следования транзакций. И еще он отмечает: “Система безопасна до тех пор, пока честные узлы коллективно контролируют большую мощность процессора, чем любая сотрудничающая группа узлов злоумышленников”.

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

Как происходит атака двойной траты?

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

Двойная трата — это использование одной и той же суммы дважды или более, чтобы оплатить несколько услуг или товаров. Это техническая уязвимость, которая дает возможность дублировать отправленные суммы. 

Криптовалюты — это всего лишь файлы в интернете. Продвинутый хакер может создать несколько копий одного и того же файла валюты и использовать его для отправки по разным адресам. 

Кроме того, известны более изощренные способы двойного расходования. Например:

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

Типы атак двойной траты

Существуют несколько вариантов атак двойного расходования.

1. Атака Финни (Finney Attack). При ней одна из сторон принимает несуществующие деньги через фейковую транзакцию. Исходный блок прячется злоумышленником с помощью атаки затмения. После того как получатель подтверждает зачисление средств, в сети появляется реальный блок, где те же деньги отправляются хакером с одного своего кошелька на другой. Такие действия может совершить только майнер, который уже взял под контроль чужой адрес и может подтвердить, как валидатор, свою мошенническую транзакцию.

2. Гоночная атака (Race attack).  Это атака, при которой происходит соревнование на скорость между двумя транзакциями. Злоумышленник отправляет одни и те же деньги с одного адреса, используя разные устройства, двум разным продавцам. Продавцы отправляют свои товары (или цифровые деньги), но та из оплат, которая принимается позже, уже является недействительной.

3. Атака 51%. Этот тип атаки распространен на блокчейнах второстепенных альткоинов. Она возможна, если более 50% вычислительной мощности принадлежит какому-то пулу или группе скомпрометированных нод. В этом случае атакующие могут использовать все уязвимости протокола, но чаще их целью является именно проведение двойной траты.
В мае 2018 года до сих пор не найденная группа лиц, имеющая доступ к критическому количеству вычислительной мощности (51%), смогла атаковать Bitcoin Gold . Тогда была проведена успешная атака двойного расходования на общую сумму около $17,5 млн.

Как защититься от атаки двойной траты

Существуют два подхода в защите от хакерских атак на блокчейн.
Решение на основе централизации — использование третьей стороны для проверки балансов участников сделки. Независимый наблюдатель маркирует транзакцию и разрешает ее проведение. Такие вертикали выстраиваются в традиционных банках и на CEX-биржах.

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

Существует еще один вариант — получать и отправлять только BTC. Алгоритм консенсуса первой криптовалюты надежен, а хакерские атаки с целью двойной траты слишком дороги в исполнении.