Введение
Прежде чем углубиться в детали, давайте вспомним, что такое непосредственно Блокчейн. Простым языком, блокчейн — это база данных, но необычная. Как выглядит “обычная” база данных? Это файл в определенном формате, в зависимости от программного обеспечения, посредством которого пользователи взаимодействуют с этой базой данных. В файле содержится массив данных, структурированный определенным образом, с помощью какой-либо логики (в иерархическом порядке, хронологическом или каком-либо другом). Простейший пример — домашняя бухгалтерия в Excel, где ведётся учёт доходов и расходов. Элементом базы данных в этом случае служит одна транзакция. У этой транзакции есть несколько атрибутов, например дата, сумма и источник/цель. Совокупность многих таких транзакций и формирует базу данных.
От простой базы данных к сложной
Для целей ведения домашней бухгалтерии, тем более, если её ведет вообще один человек, никакой блокчейн не нужен, можно обойтись любой простейшей базой данных, например в Excel. Но что, если задача более сложная? Усложним наш пример с учёта личных финансов до банковского учреждения. База данных банка уже не одна, их несколько, они взаимодействуют между собой, с этими базами данных работает большое количество пользователей, причём одновременно. Базы содержат огромное количество информации о клиентах и их транзакциях и в дополнение ко всему находятся в состоянии постоянного обновления.
В этом контексте возникает несколько новых и принципиально важных задач, которые должна быть в состоянии решить база данных в частности:
- масштабирование. Обычный Excel на домашнем компьютере не справится с большим объёмом данных, да и скорость ввода пользователя имеет вполне понятные ограничения
- безопасность от воздействия извне. Ваша домашняя бухгалтерия никому не нужна, а вот IT-инфраструктура банка — это вполне себе заманчивая цель для хакеров и мошенников
- безопасность от воздействия изнутри. Важно уберечь целостность базы данных от случайных ошибок операторов и от целенаправленного вредоносного воздействия, например, если сотрудник захочет присвоить деньги клиентов
Все эти задачи с переменным успехом банк решает централизованно, используя различные службы, специалистов, IT-инфраструктуру и прочее. Основная проблема состоит в том, что такое администрирование структуры очень дорого стоит (эти расходы, естественно, перекладываются на клиентов), а также гарантия безопасности далеко не 100%, особенно для клиента. Есть множество примеров, когда руководства банков выводили средства в оффшоры, намеренно банкротили свои банки и убегали за рубеж. Как вы понимаете, базы данных работали, службы безопасности тоже, но тем не менее клиенты потеряли деньги. Виной всему человеческий фактор, он всегда есть, его никак нельзя убрать из системы. Или можно?
Блокчейн
Блокчейн — это как раз попытка создания такой системы, из которой будет изначально исключён человеческий фактор, при этом она сможет с лёгкостью решать описанные выше задачи и превосходить обычные базы данных в эффективности.
Блокчейн — это распределенная база данных, основанная на криптографии [подробнее о том, как работает блокчейн], он решает многие традиционные задачи более эффективно, и обладает следующими важнейшими характеристиками:
Масштабируемость
В сети участвует множество компьютеров, обладающих теоретически любой неограниченной вычислительной мощностью, которая нужна для решения различных задач. При этом принципиально важным параметром является пропускная способность сети, то есть количество транзакций, обрабатываемых в единицу времени
Безопасность
Безопасность от воздействия извне основана на шифровании. Алгоритмы блокчейна используют современную криптографию. Все транзакции (записи в блокчейне) верифицируются через процедуру майнинга (при алгоритме консенсуса Proof-of-Work), то есть каждая транзакция шифруется перед попаданием в блокчейн. На сегодняшний день просто не существует таких мощностей, чтобы взломать закрытые криптографические ключи, учитывая тот факт, что злоумышленнику это необходимо сделать ещё и в ограниченный промежуток времени.
Децентрализация
Эта характеристика обеспечивает безопасность от воздействия изнутри. База данных (блокчейн) хранится одновременно на всех компьютерах участников. Это одно из главных свойств блокчейна. Оно заключается в отсутствии какого-либо одного централизованного органа, лица, службы, которое принимает решения в сети. Работа в сети распределена между узлами и полностью децентрализована. Алгоритм сети предусматривает процедуру согласия отдельных узлов между собой о текущем состоянии данных в сети — это называется механизмом консенсуса. Для того, чтобы изменить какую-либо информацию “задним числом” необходимо поменять информацию одновременно на более 50% этих узлов. Такой одновременный взлом, конечно, теоретически возможен, но на практике совершенно нереализуем.
Трилемма блокчейна
Может сложиться впечатление, что блокчейн — это идеальная база данных. И да, и нет. Блокчейн лишён многих недостатков обычных баз данных и более совершенен, чем многие распределенные базы данных, но тем не менее тоже имеет узкие места. Здесь впору поговорить о трилемме.
Широко известный термин “дилемма” предполагает ситуацию с необходимостью выбора между двумя разными исходами/возможностями, которые нередко противоречат друг другу или характеризуются противоположными по влиянию последствиями. Трилемма подразумевает три таких исхода/возможности, и, применительно к блокчейну, относится к трём его основным свойствам, описанным выше: масштабируемости, децентрализации и безопасности.
Дело в том, что для обеспечения безопасности необходимо шифрование, эта процедура (процесс майнинга, алгоритм консенсуса Proof-of-Work) занимает определенное время, каждый узел владеет копией всего блокчейна и шифрует все транзакции. Пропускная способность такой сети очень низкая, а значит страдает маштабируемость.
Можно уйти от шифрования в сторону валидации транзакций несколькими надежными нодами (Deligated Proof-of-Stake), но так как нодой не может стать любой желающий, участников в сети гораздо меньше, чем при алгоритме PoW, таким образом страдает децентрализация.
В ходе развития технологии блокчейн и применения новых алгоритмов стали появляться различные мультичейны, в них осуществляется связь с различными блокчейнами через протоколы кроссчейн-коммуникации. Такие сети быстрые, (то есть масштабируемые), вполне себе децентрализованные, но их безопасность существенно ниже, чем у классических блокчейнов с алгоритмом консенсуса PoW.
Таким образом трилемма блокчейна состоит в том, что невозможно одновременно добиться высоких показателей основных характеристик сети: масштабируемости, децентрализации и безопасности. Усиление одной характеристики автоматически ослабляет другую. При создании блокчейна приходится выбирать, чем жертвовать.
Одна из первых работ на эту тему была опубликована еще в 90-х годах прошлого века Эриком Брюэром, профессором в Беркли, он сформулировал «теорему CAP», которая гласила, что у распределенного реестра (частным случаем которого и является блокчейн) может быть только две характеристики их трёх основных, это — Последовательность (Consistency), Доступность (Availability) и Делимость (Partition).
Как разрешается трилемма?
Споры на тему трилеммы блокчейна не утихают и по сей день, однако скорее всего трилемма неразрешима в принципе, то есть идеального её решения не существует. Тем не менее на практике используются различные подходы для поиска баланаса между характеристиками сети.
1. Смена алгоритма консенсуса
На сегодняшний день существуют различные алгоритмы консенсуса блокчейнов, все они только частично решают трилемму, в той или иной степени сочетая между собой характеристики масштабируемости, децентрализации и безопасности. Кроме самого известного Proof-of-Work (PoW) существуют еще PoS, DPoS, PoB, PoC, PoI, PoA, DAG, LPoS,PoT, PoET, PoST, SBFT, DBFT и другие. Создатели блокчейнов выбирают определенный алгоритм в соответствии с целями и задачами, которые они считают приоритетными для своей сети.
2. Решения первого уровня
Это решения, непосредственно связанные с модификацией самого блокчейна, то есть связанные с внесением изменений в его архитектуру. Разработчики предлагают разные подходы и варианты решения «трилеммы блокчейна», например использование тех же мультичейнов, применение новых методов криптографии, шардинг и другие.
Шардинг является, наверное, самым популярным подходом. При использовании шардинга основной блокчейн разделяется на сегменты, каждый из которых управляет собственной частью реестра. Каждый такой отдельный сегмент называется шардом. При такой организации сети каждый шард обрабатывает свой пул транзакций, таким образом увеличивая общую пропускную способность сети, а глобальная координация работы шардов производится основным блокчейном.
3. Решения второго уровня
Решения второго уровня называются так, потому что не затрагивают архитектуру основного блокчейна, а строятся “над” ним, то есть “на втором уровне”. Они представляют собой отдельные блокчейны, соединенные с основным различными алгоритмами. Блокчейны второго уровня обычно называются “сайдчейнами”, взаимодействие пользователей в них происходит посредством смарт-контрактов, без непосредственного участия в основном блокчейне.
Заключение
Итак, на нашем пути к тотальной цифровой нирване стоит трилемма блокчейна. Избавиться от неё не получится, так как это фундаментальная проблема технологии. Но не стоит об этом сильно переживать, может нам и не нужна цифровая нирвана… Множество IT-специалистов трудятся над созданием и совершенствованием блокчейн алгоритмов. В конечном итоге сообществу просто нужен прогресс, который будет предоставлять дополнительные возможности и менять качество жизни к лучшему. И если мы двигаемся по этому пути, то не так уж и важно с какой скоростью.