Атаки на криптовалюты

Блокчейн Биткойна по праву считается самой безопасной и надежной системой, в основе которой лежит технология блокчейн, где целостность достигается за счет криптографии. Именно появление Биткойна позволило решить проблему так называемой двойной траты (англ. Double-spending) одних и тех же средств.

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

В этой статье мы поговорим о самых популярных реальных и гипотетических атаках на сети криптовалют.

Потенциально опасными являются атаки:
1) Атака 51%
2) Эгоистичный майнинг
3) Атака Сивиллы
4) Атака Финни
5) Атака одного подтверждения

Атаки на криптовалюты

Атака 51%

Каждый, кто хоть немного погружался в крипто-пространство, слышал о том, что такая атака способна уничтожить всю сеть. Сатоши Накамото, еще в октябре 2008 года в WhitePaper Биткойна указал на возможность развития таких событий и описал, почему в сети Биткойна провернуть такое будет невыгодно самому атакующему. За все время существования криптовалют, все же были случаи успешных реализаций этой уязвимости. Это указывает на высокий уровень угрозы и масштаб последствий, случись такое с главной криптовалютой.

Функционирование сети Биткойна и любого другого блокчейна, построенного на PoW (Proof of Work), поддерживается майнерами. Майнеры в сети используют вычислительные мощности своих устройств, чтобы поддерживать сеть, получая за это награду в виде новых монет. При чем майнинг - это единственный способ увеличить количество монет в обращении.

Майнинг, как процесс, предназначен, чтобы создавать новые блоки в сети, в которые записывается вся информация о совершенных транзакциях. Созданные блоки выстраиваются в цепочку и формируют блокчейн (англ.blockchain).

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

Именно наличие вычислительных ресурсов более 50% и дает возможность майнеру, взять под контроль всю сеть, т.е. атакующий владеет "контрольным пакетом мощностей" и может:

  • создавать блоки;
  • перестать добавлять информацию о транзакциях;
  • отменять транзакции;
  • проводить двойную трату средств;
  • разделять цепочки блоков;
Атака 51%

В истории были случаи успешного проведения атаки 51% в других криптовалютах, построенных на PoW. Только в 2018 году, с мая по июнь, было совершенно 6 атак на такие криптовалюты как: Zencash (ZEN), Litecoin Cash (LCC), 2 атаки на Verge (XVG), Bitcoin Gold (BTG), Monacoin (MONA).

Эгоистичный майнинг

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

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

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

Эгоистичный майнинг подразумевает действия при которых атакующий некоторое время зарабатывает больше других участников, не распространяя свой блок по сети быстрее всех. Такая атака на сеть является разновидностью атаки "Двойного расходования".

Атака Сивилы

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

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

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

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

За пределами криптовалют, в 2014 году, такую атаку удалось осуществить в сети Tor.

Атака Финни

Предположение о возможности проведения такой атаки высказал первый получатель биткоин-транзакции в 10BTC от Сатоши Накамото - программист Хэлл Финни (Hal Finney). Она имеет несколько разновидностей.

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

Чем больше доля вычислительной мощности у атакующего, тем выше вероятность совершения такой атаки.

Атака Финни

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

Атака "одного подтверждения" или Vector 76

Это тоже тип двойного расходования, который описал на форуме bitcointalk пользователь под ником vector76. Она сочетает в себе атаку Финни и атаку типа "гонки" (Race Attack).

Race Attack

Принцип Race Attack довольно прост: отправляются две транзакции, которые тратят одни и те же средства, и они находятся в гонке друг против друга. Какая из транзакций будет подтверждена первой та и войдет в блок и станет верной.

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

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

Выводы

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

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