Взгляд венчурного инвестора на Блокчейн | 08: Насколько Блокчейн устойчив к атакам

В предыдущих постах мы разбирались, как работают основные составные части Блокчейна (раз, два, три). Сейчас я хочу соединить все воедино и ответить на вопрос – насколько Блокчейн устойчив к атакам?

Напомню, что основные свойства Блокчейна это:

  • Прозрачность: должен быть открыт и прозрачен для всех;
  • Неизменность: никто не может изменить то, что уже записано в Блокчейне;
  • First-in-first-out: сообщения, полученные сетью, сохраняются по принципу «раньше получено – раньше записано». Таким образом устраняется проблема дупликации сообщений (Double spending).

Если вы прочитаете три моих предыдущих поста, вы согласитесь, что все свойства выполняются благодаря устройству Блокчейна как распределенной цепочки блоков (Прозрачность), благодаря механизму консенсуса (Неизменность), а также благодаря механизму разрешения коллизий (First-in-first-out).

Систему нельзя взломать

Но давайте ответим на вопрос – а насколько Блокчейн устойчив? Насколько он неизменен? Ведь не бывает неприступных замков.

Есть анекдот про неуловимого Джо:

Вопрос: Почему Джо такой неуловимый? Он настолько ловкий и осторожный?
Ответ: Нет, он просто никому не нужен.

Блокчейн неизменно следует этой парадигме: сделать взлом не просто сложным, но нецелесообразным.

Блокчейн как распределенная цепочка блоков. Все транзакции записаны в блоках, которые появляются каждые 10 минут (в Биткоине) или даже каждые 30 секунд (в Эфире). В каждом новом блоке записан хэш предыдущего блока. Если изменить хотя бы что-то в «старом» блоке (всего одну из 3 тысяч транзакций), то поменяется его хэш, а значит надо поменять его хэш в следующем блоке (иначе блокчейн перестанет быть валидным и его не примут другие узлы). Но тогда поменяется хэш и самого следующего блока – и так по цепочке. То есть чтобы изменить всего 1 транзакцию, которая была 1000 блоков назад, надо поменять всю 1000 блоков. И это надо сделать на большей части компьютеров, на которых хранится цепочка блокчейна, а таких компьютеров – десятки тысяч, и все они независимы. На практике скоординировать и провести такую атаку не представляется возможным.

Механизм консенсуса. Но даже если у какому-то супер-хакеру удастся одновременно получить доступ к 10 тысячам компьютеров, то этому хакеру придется не просто поменять хэши в 1000 блоках, но и решить криптографическую задачу для каждого из этих блоков – то есть 1000 (!) раз подряд. Для этого надо потратить энергию, которую тратит вся сеть (например, Биткоина) за 10000 минут, а это просто огромная величина.

Механизм разрешения коллизий. Но даже если (😊) у супер-хакера-миллиардера получится это сделать, сеть все равно не примет эту цепочку, т.к. она будет слишком короткой. Так, хакеру не просто надо решить криптозадачу 1000 раз подряд, но еще догнать и обогнать всю сеть. Ведь пока он переделывает эти 1000 блоков, каждые 10 минут появляется новый блок, а наш «фейковый» блокчейн успевает устареть.

Тогда мы приходим к выводу:

На практике невозможно (читай – нецелесообразно) пробовать заменить что-то в существующей цепочке блоков блокчейна

Даже если систему можно взломать, то ее нельзя взломать

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

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

В маленьких блокчейнах атака 51% гораздо проще реализуема, но только вопрос – а зачем? Если блокчейн маленький, то и оборот там не будет большим, значит «выхлоп» от такой атаки будет минимальным. Вот и получается, что там, где «игра стоит свеч», атака невозможна, а там, где она возможна, она никому не нужна. Чисто Неуловимый Джо в действии.

Есть ложку дегтя

Но не все так безоблачно для Блокчейна, как может показаться. Да, действительно, систему не получится взломать. Это так, потому что Блокчейн основан на принципах экономической теории игр и «Mechanism design». То есть в этой системе заложены такие правила, нарушать которые игрокам нецелесообразно. Но это же и таит основную проблему – эти же правила могут обернуться против самой системы, если окажется, что в дизайне системы есть «кротовая нора».

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

В следующем (бонусном) посте я расскажу об одной такой «кротовой норе» для PoW-систем типа Биткоина или Эфира. Это способ кооперации, позволяющий майнерам зарабатывать больше других майнеров за счет «умного» поведения.

Вывод

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

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

0
Комментарии
Читать все 0 комментариев
null