В начале 2023 года Таскомбанк успешно протестировал украинскую национальную цифровую валюту — e-гривну. Этот проект был реализован с использованием блокчейна Stellar, обеспечивающего прозрачные и защищенные транзакции. Для нас это стало привычным явлением, поскольку страна стремится использовать новую технологию для модернизации своей финансовой системы.
Однако давайте вернемся на 15 лет назад. В октябре 2008 года Сатоши Накамото опубликовал первое описание блокчейна — технологии, лежащей в основе одноранговой платежной сети биткоин. В то время о биткоине и блокчейне знали лишь несколько десятков техно-гиков по всему миру. Большинство людей тогда было сосредоточено на недавно запущенном App Store и выходе первого смартфона на базе 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% или более узлов сети. Это позволит ему управлять добавлением и отклонением изменений в блокчейн, таких как двойные траты. Однако в крупных сетях эта атака остается трудноосуществимой из-за высоких затрат и сложности реализации.
В случае успеха атаки, злоумышленники могут создать окно в 10 минут, чтобы внести изменения в базу данных блокчейна, что может привести к разделению сети на две альтернативные цепочки. Одна из цепочек будет содержать отредактированные данные, а другая — нет, при этом оригинальная сеть продолжит работать, но с меньшим числом узлов и вычислительной мощности.
Другая угроза, известная как атака Сивиллы, связана с возможностью злоумышленника контролировать узлы, подтверждающие транзакции. Это позволяет ему влиять на процесс включения транзакций в блоки, включая возможность блокировать честные операции. Однако другие узлы сети могут отклонять его манипуляции, что также может привести к разделению сети.
На практике блокчейны остаются самыми безопасными элементами в криптоиндустрии. Основные утечки данных и взломы происходят на уровне приложений и сервисов, таких как криптобиржи и кошельки, но сама сеть блокчейн сохраняет свою целостность.
Проблемы и развитие блокчейна.
Децентрализованные сети быстро развиваются, но сталкиваются с рядом вызовов в своем внедрении. Основатель Ethereum, Виталик Бутерин, выделил эти проблемы в концепции блокчейн-трилеммы.
По его мнению, каждая распределенная сеть должна обеспечить три ключевые характеристики — децентрализацию, безопасность и масштабируемость. Однако традиционная архитектура блокчейна может обеспечить только две из этих характеристик полностью и одновременно.
По этой концепции, блокчейны могут быть либо безопасными и децентрализованными, но медленными, как биткоин, либо быстрыми и безопасными, но с избыточной централизацией, как BSC.
Эта теория блокчейн-трилеммы играет ключевую роль в развитии отрасли, так как многие проекты инфраструктуры стремятся преодолеть указанные в ней ограничения. Например, для увеличения пропускной способности биткоина была создана Lightning Network, а Ethereum разрабатывает множество вторичных сетей из-за высоких комиссий.