9. Одноранговая сеть (Р2Р)
В блокчейнах нет никакого «центра». Архитектурно базовым уровнем блокчейна является одноранговая сеть. Блокчейн подталкивает к децентрализации благодаря своим одноранговым узлам. Сеть в действительности – это компьютер. Вы проверяете транзакции друг друга на уровне одноранговой сети. По существу блокчейн может рассматриваться как вычислительное множество, которое действительно децентрализовано.
Любой пользователь может мгновенно связаться с другим пользователем, независимо от того, в какой точке вселенной тот находится, и независимо от его часов работы. Для фильтрации, блокировки или задержки транзакции между двумя или более пользователями или между узлами, которые осуществляют транзакцию, не требуется никакого посредника. Любой узел в сети может предлагать услуги на основе своих знаний о транзакциях, где бы в этой сети они ни находились.
В дополнение к созданию технической сети P2P, блокчейн также создает рынок пользователей. Блокчейн-сети и приложения на их основе формируют свою собственную (распределенную) экономику с разными показателями и динамичностью. Таким образом, блокчейны приносят с собой экономическую модель, и эту их ключевую функцию мы рассмотрим далее в этой книге.
10. Уровень служб доверия
Всем блокчейнам обычно доверяют как базовым единицам обслуживания. По сути, это и функция, и предоставляемые услуги. Но доверие не ограничивается только транзакциями. Оно распространяется на данные, услуги, процессы, идентичность, бизнес-логику, условия соглашения или физические объекты. Это относится практически ко всему, что может быть оцифровано как (интеллектуальный) актив с присущей ему или связанной с ним ценностью.
А теперь представьте себе возможный гибрид инноваций, который появится на вершине этих десяти мощных функций и характеристик. Объединив их вместе, вы начнете представлять себе невероятные возможности блокчейнов.
Переходы состояний / Машина состояний. Что это?
Блокчейн годится не для всего. И не все соответствует парадигме блокчейна. Блокчейн – это «машина состояний», еще одно понятие, которое необходимо усвоить. В техническом плане состояние просто означает «сохраненная информация» в определенный момент времени. Стейт-машина – это компьютер или устройство, которое запоминает состояние чего-либо в данный момент времени. По отношению к некоторым исходным данным этот статус может измениться, и блокчейн обеспечивает итоговый результат для этих внесенных изменений. Отслеживание переходов этих состояний важно, и с этим блокчейн справляется хорошо, причем неизменным образом. Напротив, запись базы данных изменчива, потому что ее можно многократно переписывать. Не все базы данных имеют аудиторские следы, и даже в тех, что имеют, аудиторский след может быть уничтожен или потерян, поскольку он не защищен от несанкционированного доступа. В блокчейне история перехода является постоянной частью информации о состоянии. В блокчейне Ethereum хранится особое «дерево состояний», представляющее текущий баланс каждого адреса, и «список транзакций», представляющий транзакции между текущим блоком и предыдущими в каждом блоке.
Машины состояний подходят для имплементации распределенных систем, которые должны быть отказоустойчивыми.
Алгоритмы консенсуса
В основе понимания тягот смещения парадигмы блокчейна лежит понимание концепции «децентрализованного согласия», ключевой принцип компьютерной революции, основанной на криптографии.
Децентрализованный консенсус нарушает старую парадигму централизованного консенсуса, когда для управления валидностью транзакции используется одна центральная база данных. Децентрализованная схема (на которой основаны протоколы блокчейна) передает полномочия и доверие децентрализованной виртуальной сети и позволяет ее узлам непрерывно и последовательно регистрировать транзакции в публичном «блоке», создавая уникальную «цепочку», блокчейн. Каждый последующий блок содержит «хэш» (уникальный отпечаток пальца) предыдущего кода, поэтому криптография (через хэш-коды) используется для обеспечения безопасной аутентификации источника транзакции и устраняет необходимость в центральном посреднике. Комбинация криптографии и технологии блокчейна гарантирует, что никогда не будет повторяющейся записи одной и той же транзакции. Важно то, что при такой степени разделения консенсусная логика отделена от самого приложения, поэтому приложения могут быть созданы децентрализованными, и это послужит толчком для ряда системных изменений в программной архитектуре приложений, независимо от того, связаны они с деньгами или нет.
Можно воспринимать консенсус как первый слой децентрализованной архитектуры. Это основа базового протокола, управляющего работой блокчейна. Консенсусный алгоритм – это ядро блокчейна, представляющего метод или протокол, который совершает транзакцию. Это важно, потому что мы должны доверять этим транзакциям. Будучи бизнес-пользователем, вы не должны понимать, как именно работают эти алгоритмы, но вы должны верить в их безопасность и надежность.
Биткоин инициировал консенсусный метод доказательства работы (Proof-of-Work, POW), и его можно считать дедушкой этих алгоритмов. POW опирается на популярный алгоритм Practical Byzantine Fault Tolerant (9), который позволяет безопасно совершать транзакции в соответствии с данным состоянием. Альтернативой POW для достижения согласия является Доказательство доли владения (10). Существуют и другие согласованные протоколы, такие как RAFT, DPOS и Paxos, но мы не будем вставать на скользкую дорожку, сравнивая их друг с другом, потому что с течением времени все они отправятся в утиль. Более важна надежность инструментов и технологий промежуточного программного обеспечения, которые надстраиваются над алгоритмами, а также экосистемы игроков с добавленной стоимостью, которые их окружают.
Один из недостатков алгоритма POW заключается в том, что он не является экологически чистым, поскольку он требует большой вычислительной мощности от специализированных машин, которые генерируют дополнительную энергию. Сильным соперником POW будет алгоритм Proof-of-Stake (POS), который опирается на концепцию виртуального майнинга и голосований на основе токенов, процесс, который не требует такой интенсивной компьютерной обработки, как POW, и обещает обеспечить безопасность более экономичным способом.
Блокчейн изменит роль существующих посредников, создавая новых посредников, но это нарушит традиционные границы стоимости.
Наконец, при обсуждении консенсусного алгоритма нам необходимо рассмотреть метод «разрешения», который определяет, кто контролирует и участвует в процессе консенсуса. Три популярных варианта выбора типа разрешения:
1. Общедоступный (например, POW, POS, делегированный POS).
2. Частный (использует секретные ключи для установления полномочий в ограниченном блокчейне).
3. Получастный (например, на основе консорциума, использует традиционную BFT-отказоустойчивость, обеспечиваемую участниками соглашения).