Книга: Основы блокчейна: вводный курс для начинающих в 25 небольших главах
Назад: Глава 7. Двойное расходование. Использование уязвимости распределенных пиринговых систем
Дальше: Глава 9. Документирование права владения. Использование хронологической последовательности в качестве подтверждения текущего состояния прав владения

Часть III

Как работает блокчейн

Этот этап обучения является главной частью данной книги, так как здесь описываются внутреннее устройство и функционирование блокчейна. В 14 главах этой части представлены все концепции блокчейна, а также технологии, на которых они основаны. К концу этой части вы будете хорошо понимать все основные концепции блокчейна, знать, как они работают в отдельности и как взаимодействуют друг с другом для создания мощного механизма под названием блокчейн.

Глава 8

Проектирование блокчейна

Основные концепции управления правом владения с помощью блокчейна

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

Цель

Главная цель – понять концепции, заложенные в основу технологии блокчейна. Для более действенного обучения я буду последовательно демонстрировать все сложности проектирования вашей собственной системы для управления правом владения. Таким образом, вы встретитесь лицом к лицу с теми же затруднениями, с которыми уже сталкивался автор блокчейна и успешно преодолел их: проектирование программного обеспечения, управляющего правом владения в полностью распределенной пиринговой системе, которое функционирует в абсолютно открытой среде, не заслуживающей доверия.

Исходный пункт

В качестве отправного пункта можно сформулировать основные факты о рассматриваемой системе следующим образом:

• это будет полностью распределенная пиринговая система, состоящая из вычислительных ресурсов, предоставленных пользователями;

• рассматриваемая пиринговая система использует Интернет как сеть для соединения отдельных узлов;

• неизвестно ни количество узлов, ни их надежность и степень доверительности;

• цель этой пиринговой системы – управление правом владения цифровой продукцией (например, продажа бонусных баллов или цифровых денежных средств).

План проектирования и разработки

При проектировании и разработке программного обеспечения, управляющего правом владения в полностью распределенной пиринговой системе, которое функционирует в абсолютно открытой среде, не заслуживающей доверия, необходимо решить семь основных задач:

• описание права владения;

• защита права владения;

• хранение данных транзакций;

• подготовка реестров к распространению в ненадежной среде;

• распространение реестров;

• добавление новых транзакций в реестры;

• определение, в каких реестрах представлены правильные данные.



Задача 1: описание права владения

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



Задача 2: защита права владения

Описание права владения с использованием транзакций – это всего лишь исходный пункт. Далее необходим способ предотвращения доступа посторонних к частным секретным данным владельцев. В реальной жизни вы можете защитить свою машину или дом от использования посторонними людьми с помощью дверей с замками. В нашем случае криптография предоставляет способ защиты транзакций на индивидуальном уровне, подобно тому, как двери с замками обеспечивают защиту личной машины или дома.

Механизм защиты права владения включает три основных элемента: идентификация и аутентификация владельцев, а также разрешение доступа к объекту собственности только его законному владельцу. В главах 12 и 13 эти концепции описываются более подробно. Указанные выше три элемента связаны с концепцией хэш-значений (hash values). Если вы никогда не слышали о хэш-значениях, не беспокойтесь. В главах 10 и 11 вы найдете подробное объяснение хэш-значений. В этих двух главах также будет предложена интересная информация для тех, кто уже обладает некоторой технической подготовкой и кое-что знает о хэш-значениях.



Задача 3: хранение данных транзакций

Описание права владения средствами транзакций и принятие мер защиты прав владения на уровне отдельных транзакций являются важными шагами к цели проектирования программной системы, управляющей правами владения. Но необходим также определенный способ хранения полной хронологии всех транзакций, так как эта хронология (история) используется для однозначной установки права владения. Поскольку хронология транзакций представляет собой основополагающий элемент процедуры однозначной установки права владения, ее хранение должно быть надежно защищено. Мы уже выяснили ранее, что структура данных блокчейна является цифровым эквивалентом реестра. В главах 14 и 15 определяются требования, которые должна выполнять структура данных блокчейна, чтобы использоваться в качестве цифрового реестра, а также способы реализации этих требований.



Задача 4: подготовка реестров к распространению в ненадежной среде

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



Задача 5: распространение реестров

Сделав реестр доступным только для добавления новых данных, вы уже можете создать распределенную пиринговую систему реестров, разрешив копирование всем партнерам. Но простое копирование реестров с защитой от изменения хронологии не соответствует главной цели. В распределенной системе управления правами владения предполагается соответствующее взимодействие между партнерами или узлами. В главе 17 рассматривается, каким образом взаимодействуют узлы системы и какой информацией они обмениваются.



Задача 6: добавление новых транзакций в реестры

Распределенная пиринговая система формируется из участников, компьютеры которых обслуживают отдельные копии структуры данных блокчейна с единственной возможностью добавления новых записей. Поскольку структура данных позволяет только добавлять данные новых транзакций, необходимо так организовать эту процедуру, чтобы добавлялись только законные и авторизованные транзакции. Это возможно, если разрешить всем участникам пиринговой системы добавлять новые данные и сделать каждого участника пиринговой системы контролером, наблюдающим за всеми остальными партнерами. В результате все партнеры будут контролировать друг друга и обнаруживать любые ошибки в системе. В главе 18 эта методика описана более подробно, а кроме того, рассматриваются мотивы, побуждающие партнеров исполнять подобные обязанности.



Задача 7: определение, в каких реестрах представлены правильные данные

После обеспечения возможности добавления новых транзакций в отдельные реестры пиринговой системы возникает проблема, типичная для любой распределенной пиринговой системы: разные партнеры могут принимать различные транзакции, и хронология обрабатываемых разными узлами транзакций очень быстро становится несогласованной. То есть в пиринговой системе могут существовать отличающиеся друг от друга версии хронологии транзакций. Так как хронология транзакций является основой для определения законных владельцев, наличие противоречащих друг другу хронологий транзакций становится серьезной угрозой целостности всей системы. Поэтому важно найти способ предотвращения появления различных версий хронологии транзакций или методику, определяющую, в какой версии хронологии транзакций представлены правильные данные. Первый подход невозможен из-за самой сущности полностью распределенных пиринговых систем. Поэтому необходим критерий определения и выбора одной хронологии транзакций, содержащей корректные данные. Но здесь возникает другая проблема: отсутствие в полностью распределенной пиринговой системе центрального узла авторизации, который мог бы определить, какая из хронологий транзакций должна быть выбрана. Эту проблему можно решить, если предоставить каждому узлу пиринговой системы право самостоятельного выбора корректной хронологии транзакций. При таком подходе большинство партнеров независимо приходит к единому решению. К тому же оказывается, что способ, которым блокчейн обеспечивает только добавление новых транзакций в структуру данных блокчейна, уже содержит решение описанной выше проблемы. В главе 19 подробно рассматриваются критерии выбора корректной хронологии транзакций и способы их применения.

Перспектива

В этой главе определены семь задач, из которых состоит процесс проектирования в соответствии с концепциями, заложенными в основу блокчейна. После выполнения этих задач вы достигнете вершины: полного понимания технологии блокчейна. В главе 21 все эти концепции будут сведены в единое целое и позволят вам увидеть общую картину результата обучения. Глава 21 является обзорной, так же как и текущая глава, но она обобщает все технические знания, полученные вами на этом этапе обучения.

Резюме

• При проектировании и разработке программного обеспечения, управляющего правом владения в полностью распределенной пиринговой системе, необходимо решить следующие задачи:

– описание права владения;

– защита права владения;

– хранение данных транзакций;

– подготовка реестров к распространению в ненадежной среде;

– распространение реестров;

– добавление новых транзакций в реестры;

– определение, в каких реестрах представлены правильные данные.

• Задачи, кратко описанные в этой главе, будут более подробно рассматриваться в следующих двенадцати главах.

Назад: Глава 7. Двойное расходование. Использование уязвимости распределенных пиринговых систем
Дальше: Глава 9. Документирование права владения. Использование хронологической последовательности в качестве подтверждения текущего состояния прав владения