В рубрику "Оборудование и технологии" | К списку рубрик | К списку авторов | К списку публикаций
В данной заметке описывается универсальный подход к определению подобных систем, их компонентов и протоколов вне зависимости от предполагаемой сферы или области применения. Важно отметить, что большинство терминов и определений, необходимых для описания систем, использующих технологию блокчейн, уже введено в том или ином виде в существующие национальные и международные стандарты.
В наиболее общем виде система, использующая технологию блокчейн, может рассматриваться как информационная система, которая может быть определена в соответствии, например, с [1] как организованное множество аппаратных средств, программных средств, предметов снабжения, политик, процедур и исполнителей, которое используется для хранения информации, ее обработки и предоставления доступа к ней.
При этом одной из составляющих информационных систем рассматриваемого класса является реестр, который, в соответствии с [2], может быть определен как структура данных, в том числе в электронном виде, используемая для записи сведений о действиях пользователей информационной системы в целях учета, поиска и контроля.
Действия пользователей могут быть зарегистрированы на основе анализа существующих в системе транзакций, определенных в [3] как наименьший элемент рабочего процесса, представляющий собой обмен информацией между двумя или более участниками или системами.
Для записи в реестр одиночные транзакции удобно объединять в блоки – структуры данных элементов реестра, содержащие набор из одной или нескольких снабженных отметками времени транзакций, а также дополнительную информацию, используемую для однозначной связи текущего и предыдущего блоков.
Важно пояснить, что широко разрекламированное свойство блокчейна, заключающееся в его "неизменности", как правило, неверно интерпретируется широким кругом пользователей данной технологии. Фактически большинство используемых в настоящее время на практике вариантов реализации технологии блокчейн направлены именно на достижение указанного при определении термина "блок" свойства и позволяют выявить факт наличия или отсутствия однозначной связи между блоками, что, вообще говоря, не позволяет гарантировать неизменность последовательности блоков. Таким образом, если последовательность блоков по каким-либо причинам все-таки будет изменена, это может быть обнаружено, но пользователям придется отказаться от ее использования.
Отметим, что для некоторых систем, таких, например, как Bitcoin и Ethereum, блоки объединяются в единую последовательность однозначно связанных блоков, которую и принято называть блокчейном. В то же время уже сейчас существуют системы такие, например, как Corda [7] и IOTA [8], в которых блоки могут иметь произвольные связи (таким образом они являются вершинами некоторого графа).
Для классических, используемых в настоящее время систем характерно наличие оператора (доверенной стороны), который выполняет функции хранения основной копии реестра, ее обновления, а также, возможно, защиты и разграничения доступа. В ряде блокчейн-систем, так называемых децентрализованных, наличие такого постоянно действующего оператора не предусматривается. В этой связи появляется необходимость определения среди пользователей активного оператора, который осуществит изменение реестра в очередной момент времени. Одними из основных подходов к решению данной задачи является реализация так называемой процедуры консенсуса. В зависимости от архитектуры системы такая процедура может иметь различный вид. В настоящее время наиболее распространенными являются процедуры византийского соглашения [4]; с доказательством работы [5]; с доказательством владения, а также некоторые другие [6].
Отметим, что сейчас широко распространено мнение, что под механизмом достижения консенсуса понимается непосредственно процедура создания новых блоков и их внесение в текущую версию реестра, что является в корне неверным, в чем можно непосредственно убедиться, проанализировав какой-либо конкретный вариант подобной процедуры. Процедура консенсуса – это именно выбор активного оператора, которому делегируется право на внесение изменений в реестр. Именно поэтому, например, вознаграждение за новый блок в системе Bitcoin выделяется конкретному оператору, а не всем участвовавшим в формировании блока.
В ряде случаев в системе может предусматриваться разделение полномочий между пользователями, например, наряду с активным оператором возможно также наличие валидатора, осуществляющего проверку корректности вносимых в реестр блоков (транзакций).
Отметим, что в отсутствие доверенной стороны для обеспечения возможности работы с реестром различных операторов требуется наличие его идентичных копий у всех операторов, что приводит к системе, использующей так назы-вемые распределенные реестры. Здесь необходимо отметить не совсем удачный перевод понятия Distributed Ledger, которое для существующих информационных систем, как правило, означает территориальную разобщенность ее элементов (что, кстати, реализовано в упомянутой ранее системе Corda). В то же время применительно к технологии блок-чейн данный термин означает дублирование идентичных копий реестра у различных пользователей, в связи с чем уместнее использовать термин "дублированный, или реплици-рованный, реестр".
Представляется, что предлагаемый в данной заметке подход к формированию терминологии в области блокчейна позволяет достаточно просто описывать принципы функционирования в рамках уже существующей в настоящее время терминологии и не ограничиваться конкретными частными случаями применения рассматриваемой технологии. При этом в зависимости от свойств конкретной системы, например наличия в ней пользователей с различными ролями, требований к конфиденциальности и аутентичности информации, такой терминологический аппарат может быть очевидным образом расширен.
Литература
Опубликовано: Журнал "Information Security/ Информационная безопасность" #6, 2017