Урок 2: Что такое блокчейн и как он работает
В начале 2023 года Таскомбанк успешно протестировал украинскую национальную цифровую валюту — e-гривну. Проект реализован с использованием блокчейна Stellar, который обеспечивает прозрачные и защищенные транзакции. Сейчас для нас это нормальная ситуация, — просто страна планирует использовать новую технологию для модернизации своей финансовой системы.
Но давайте перенесемся на 15 лет назад. В октябре 2008 года Сатоши Накамото публикует первое описание блокчейна — технологии, которая лежит в основе одноранговой платежной сети биткоин. О биткоине и о блокчейне знало несколько десятков техно-гиков во всем мире. Внимание же большинства людей было приковано к недавно запущенному AppStore и выходу первого смартфона под управлением Android.
Теперь опять перемотаем в наше время и увидим, что на различных блокчейнах хранится корпоративная и персональная информация, развлекательный контент, а самое главное — миллионы транзакций с использованием криптовалют и традиционных финансовых активов.
В этом уроке мы разберем, что такое технология блокчейн, как она работает и чем принципиально отличается от других решений для записи и хранения данных.
Что такое блокчейн
Блокчейн (blockchain) — это распределенная база данных, в которой содержится информация обо всех действиях (транзакциях), совершенных пользователями. Впервые эта технология была использована в платежной сети биткоина в 2008 году.
Основное отличие блокчейна от других решений для распределенного хранения данных (DLT) — это его уникальная архитектура. Ее особенности заложены в самом названии технологии: block — блок, и chain — цепь, где:
- блок — это «пакет» информации. В случае с криптовалютой речь идет о конкретном типе данных, а именно — транзакциях;
- цепь — связь между блоками. Каждый следующий блок включает информацию о предыдущем, поэтому следуя от блока к блоку можно просмотреть все действия в сети, вплоть до первой (генезис) транзакции.
Чтобы лучше понять общее устройство децентрализованной сети, представьте блокнот, в котором каждая страница — это блок с записями о транзакциях. А блокнот представляет собой набор связанных блоков, то есть блокчейн.
Информация в блокчейне хранится публично и распределенно. Вместо единого сервера, как в традиционных базах данных, существует сеть из нескольких узлов (нод), каждый из которых управляет своей копией реестра транзакций, периодически синхронизируясь с другими. Таким образом:
- полный перечень транзакций находится в свободном доступе;
- копии этого реестра записаны на множество серверов с равными правами;
- все эти серверы (узлы) постоянно синхронизируются.
Любой пользователь может стать частью такой сети — достаточно установить специальное приложение (клиент) и загрузить копию базы данных на свое устройство.
Благодаря такой архитектуре изменить информацию в одностороннем порядке невозможно, чтобы записать в блокчейн новые транзакции или отредактировать существующие нужно согласование (консенсус) всех подключенных к сети узлов.
Кроме того, распределенное хранение данных обеспечивает устойчивость ко взлому — даже если хакер получит доступ к одному из узлов и отредактирует хранящуюся на нем копию реестра, то во время следующей синхронизации эти изменения будут отклонены другими участниками сети и измененная копия откатится к согласованной версии.
Однако отметим, что описанное выше касается только публичных блокчейнов, децентрализованных на техническом и организационном уровнях и работающих по изначально установленным правилам. Кроме них также есть частные сети, в которых владелец решает, кто может загружать копию реестра, а также добавлять, хранить и просматривать данные. Впрочем, в криптоиндустрии частные блокчейны скорее исключение, чем правило.
Блокчейн и криптография
Чтобы гарантировать безопасность и неизменность записи о транзакции, алгоритм блокчейна преобразует ее в специальный криптографический шифр — хеш. Каждый блок состоит из заголовка и списка транзакций. Заголовок содержит:
- свой хеш;
- хеш предыдущего блока;
- хеш каждой транзакции;
- временную метку, которая показывает, когда он был сформирован.
Сам хеш выглядит как случайный набор символом и, по сути, это зашифрованная информация транзакциях. Шифрование проводится при помощи так называемой хеш-функции — специального алгоритма, который может преобразовать любое количество данных в одну строку кода из букв и цифр.
Хэш гарантирует целостность информации, поскольку любое изменение во входных данных приведет к созданию нового хэша, отличающегося от изначально. Насколько сильно может трансформироваться хэш, созданный алгоритмом SHA-256 (используется в биткоине), при изменении всего одной буквы показано ниже.
Другим ключевым компонентом системы хранения данных в блокчейне является так называемое Древо Меркла, представленное в конце 1970-х годов ученым-информатиком Ральфом Мерклом.
Это «дерево» отображает структуру данных, хранящихся в блоках в виде зашифрованных через хеш-функцию транзакций.
Основная ценность Древа Меркла в том, что оно позволяет создать многоуровневую структуру данных, в которых невозможно изменить информацию нижних уровней, не повлияв на верхние.
В конце 1990-х годов Стюарт Хабер и У. Скотт Сторнетта использовали Деревья Меркла безопасного хранения цифровых документов. А в 2008 году в технической документации биткоина было описано применение этой технологии для защиты от подделок и изменений данных, хранящихся в децентрализованной сети.
Сейчас существует множество модификаций и типов Деревьев Меркла с различной архитектурой и на различных алгоритмах хеширования. К примеру, анонимная криптовалюта Monero использует бинарные хеш-древа, а команда Ethereum разработала собственную версию технологии под названием Merkle Patricia Trie.
Разновидности блокчейнов
Главным критерием, по которому децентрализованные сети делят на различные типы, является алгоритм консенсуса, определяющий способ взаимодействия между узлами для согласования изменений в блокчейне.
Наибольшее распространение получили два алгоритма:
- Proof-of-work (PoW) — блок с данными может добавить тот узел, который первым выполнил сложные математические вычисления в процессе майнинга. Эти вычисления энергоемкие и требуют от владельца узла материальных расходов, тем самым обеспечивая его лояльность. На PoW-алгоритме работает биткоин и несколько других сетей;
- Proof-of-stake (PoS) — информацию добавляют специальные узлы-валидаторы, которые в качестве доказательства своей лояльности вносят залог в криптовалюте. Если валидатор попытается внести информацию, нарушающую правила сети, то его задаток будет конфискован. Этот алгоритм в различных модификациях (PoS, DPoS, LPoS) использует Ethereum и большинство новых блокчейнов.
Однако наряду с PoW и PoS существует ряд других концепций, использующихся отдельными криптовалютными проектами. Среди них Proof-of-Authority (PoA), Proof of Capacity (PoC) и другие
Кроме алгоритма консенсуса децентрализованные сети также могут отличаться поддерживаемыми языками программирования, требованиями к узлам, способами передачи данных и многими другими параметрами. Поэтому различные блокчейны могут предложить разную стоимость транзакций, скорость их обработки и защищенность. Мы подробнее разберем биткоин и другие сети в наших следующих уроках.
Где используется блокчейн
С технической точки зрения блокчейн — это просто новый способ хранения информации, который может заменить любую централизованную базу данных. Однако приведенные выше особенности архитектуры и принципы работы делают это решение наиболее подходящим для некоторых сфер и технологий.
Платежные операции
Криптовалюты — это в первую очередь платежные сети, они позволяют пользователям безопасно переводить друг другу цифровые активы, а их обслуживание стоит дешевле, чем традиционных решений вроде SWIFT.
Смарт-контракты
Современные децентрализованные сети вроде Ethereum могут хранить не только записи о переводах, но и сложные наборы кода — так называемые смарт-контракты. Смарт-контракт содержит алгоритм действий и является основой для сложных приложений, полностью хранящихся и выполняющихся на блокчейне.
Публичные реестры
Некоторые страны тестируют блокчейн как основу для ведения общедоступных земельных реестров, хранения медицинских данных и даже операций с цифровой национальной валютой. Хороший пример — упоминаемый в начале статьи пилотный проект е-гривны.
Подтверждение прав собственности и авторских прав
Записанные в блокчейн данные нельзя подделать или изменить, поэтому он значительно эффективнее и безопаснее существующих систем патентов и реестров, построенных на основе бумажных или оцифрованных архивов, хранящихся централизованно и не поддающихся проверке.
Насколько безопасен блокчейн?
За счет своей архитектуры блокчейны устойчивы ко взломам и несанкционированным изменениям, нацеленным на хищение, удаление или редактирование данных. Однако публичные децентрализованные сети все же потенциально уязвимы перед некоторыми угрозами.
Атака 51%
Если злоумышленнику удается захватить 51% или более узлов, он сможет утверждать или отвергать вносимые в сеть изменения, одобряя, например, двойное расходование актива. Впрочем, до сих пор ни в одной крупной сети эта атака не была осуществлена из-за ее дороговизны и сложности реализации.
Так, говоря о безопасности биткоина еще в 2015 году, Андреас Антонопулос отметил, что для захвата сети понадобится миллиарды долларов и скоординированные усилия целой страны по изготовлению вычислительного оборудования для майнинга.
В случае успеха злоумышленники смогут открыть 10 минутный «коридор», чтобы внести изменения в базу данных, которые приведут к разделению блокчейна на две альтернативные цепочки. В одной из них будет содержаться блок с отредактированными данными, а в другой — нет. При этом оригинальная сеть продолжит работать, как и раньше, хоть и будет располагать меньшим количеством узлов и вычислительных мощностей.
Атака Сивиллы
Чтобы транзакция была записана в блокчейн, она должна получить подтверждение от нескольких узлов. Так, в сети биткоина транзакция не попадает в блок, пока не получит хотя бы шесть подтверждений.
Ноды, которым алгоритм отправляет запросы на подтверждение, выбираются случайно, но если общее количество узлов небольшое, существует вероятность, что злоумышленник может контролировать все узлы, получившие запрос на подтверждение. Это даст ему возможность включить в блок транзакцию, нарушающую правила, или же отказаться принимать честные операции, чтобы заблокировать или затормозить работу блокчейна.
Другие ноды могут отклонить злонамеренную операцию, что опять же приведет к разделению сети. Впрочем, пока неизвестно об успешных атаках Сивиллы на пользующиеся спросом публичные блокчейны.
На практике блокчейны — это самый защищенный элемент инфраструктуры криптоиндустрии. Основные взломы, утечки данных и хищения происходят при взаимодействии с различными приложениями и сервисами, такими как криптобиржи или кошельки, но целостность самой сети при этом не нарушается.
Проблемы и развитие блокчейна
Децентрализованные сети быстро развиваются, однако это относительно новая технология и ее внедрение связано с рядом проблем. Основатель Ethereum Виталик Бутерин выделил эти слабые места в так называемой трилемме блокчейна.
Она гласит, что у каждой распределенной сети есть три основных характеристики — децентрализованность, безопасность и масштабируемость. Однако традиционная архитектура блокчейна одновременно и в полной мере может обеспечить только две из них.
Согласно этой теории, блокчейны могут быть либо безопасными и децентрализованными, но медленными, как биткоин, либо быстрыми и безопасными, но излишне централизованными как BSC.
Именно трилемма блокчейна во многом определяет направление развития отрасли, поскольку большинство инфраструктурных проектов нацелены на преодоление описанных в ней ограничений. Так, чтобы компенсировать низкую пропускную способность биткоина, была разработана Lightning Network, а Ethereum «оброс» десятками сетей второго уровня из-за высоких комиссий.
На следующем уроке мы поговорим о первой криптовалюте — биткоине. Разберем, как она работает и почему ей до сих пор удается удерживать лидирующие позиции на криптовалютном рынке, несмотря на технологическое отставание и растущую конкуренцию.