Шансы на успешное выполнение двойной граты биткойнов практически равны нулю. Нет системы, которая полностью устойчива к взломам, но протокол биткойна – это другая разновидность технологии, которая потребовала бы достаточно больших усилий для обеспечения успешности атаки двойной траты. Ввиду вышесказанного существует пять потенциальных форм атак, связанных с двойной тратой. О них говорится в следующих подразделах.
“Гонка” (Race attack)
Торговцы и поставщики, принимающие платеж незамедлительно после тою, как заметят “0/unconfirmed”-транзакцию в своем кошельке, открыты к атаке двойной траты, если имела место мошенническая попытка успешно переслать торговцу одну транзакцию, одновременно отправив другую транзакцию, которая тратит ту же монету, запись о передаче которой естественным образом должна была первой попасть в блокчейн.
“Атака Финни” (Finney attack)
Атака Финни – это ложная двойная трата, которая требует участия майнера, как только блок был найден. Риск атаки Финни нельзя ликвидировать, вне зависимости от предосторожностей, предпринятых торговцем, однако необходимы участие майнера и особая последовательность обстоятельств. Таким образом, эта атака не тривиальна, не дешева в исполнении и имеет смысл для атакующего только в том случае, если его ждет существенная добыча.
Атака Вектор76 (Vector76 attack)
Вариант Вектор76 также иногда называют атакой одного подтверждения. Это комбинация атак Гонка и атаки Финни, при которой транзакция, имеющая одно подтверждение, все еще может быть потрачена дважды. Те же защитные действия, которые используются против атаки Гонка, заметно уменьшают риск успешности этой операции.
Брутфорс-атака (Brute force attack)
Атака грубой силы заключается в следующем. Атакующий присылает торговцу/сети транзакцию, которая платит торговцу, и в то же время тайно майнит форк (разветвление, создание ложного дубликата) блокчейна, в котором транзакция двойной траты включается вместо настоящей. После ожидания n подтверждений торговец отправляет товар. Если атакующий сможет найти больше чем n блоков к этому моменту, он останавливает свой форк и получает свои монеты обратно: в другом случае он может продолжить расширять свой форк с надеждой, что сможет поспевать за сетью.
Атака >50 (>50 percent attack)
Также известна как атака 51 процента. Если атакующий заполучил контроль более чем над 50 % мощности сети биткойна, вышеописанная брутфорс-атака имеет гарантированный шанс на успех. Так как атакующий может генерировать блоки быстрее, чем остальные участники сети, он может упорно развивать свой личный форк до тех пор, пока его ветка не станет длиннее, чем та, которая ведется честной сетью, преодолев любые препятствия. Больше деталей по этому вопросу можно найти по адресу: https://en.bitcoin.it/wiki/Double-spending.
В мире биткойна назрел тренд: продавцы зачастую даже не беспокоятся о шести подтверждениях, сразу помечая транзакцию как завершенную. Такой отказ от ожидания шести подтверждений повышает шанс стать жертвой атаки двойной траты. Пока сама сеть биткойна не покажет подтверждения для транзакции, считать ее “выполненной” рискованно.
Тем не менее торговцы и платежные процессоры имеют право определять количество подтверждений, необходимое для подтверждения подлинности биткойн-транзакции. Тогда как большинство сервисов видят это число в пределах трех-шести подтверждений, остальные сервисы действуют, как только транзакция начинает распространяться по сети в своем неподтвержденном состоянии. Это не только позволяет быстрее завершить покупку на вебстраничке, но и вообще ускоряет завершение заказов.
Большинство торговцев, завершающих сделку при нуле подтверждений, продают недорогие или цифровые активы. Например, большинство баров и ресторанов будут считать транзакцию “завершенной” после нуля подтверждений, так как они защищены платежным процессором на случай двойной траты. Платежные процессоры вроде BitPay, BitKassa или Coinbase предоставляют торговцам некоторый вид защиты от двойной траты, даже если установлено нулевое число подтверждений для завершения транзакции.