Часть II
Зачем нужна технология блокчейна
В этой части книги подробно описывается задача, которую призвана решить технология блокчейна, а также объясняется, почему решение этой задачи столь важно. Материал этой части обеспечивает более глубокое понимание проблемной области, в которой функционирует блокчейн, и среды, где эта технология может предоставить наибольшие преимущества. Кроме того, рассматривается взаимосвязь блокчейна с задачами обеспечения доверительности, целостности и управления владением (собственностью). После изучения этой части книги вы будете глубже понимать основную цель технологии блокчейна и отличительные особенности самого термина «блокчейн».
Глава 4
Исследование основной задачи
Как сформировать группу независимых компьютеров
В предыдущих двух главах была в общих чертах сформулирована главная цель технологии блокчейна и особо подчеркнута ее важность для полностью распределенных пиринговых систем. Очевидно, что обеспечение целостности в распределенных системах является главной целью технологии блокчейна. Но почему обеспечение целостности в распределенных системах вообще и в частности в полностью распределенных пиринговых системах представляет собой столь трудную и важную задачу? Данная глава отвечает на этот вопрос, исследуя трудноуловимые взаимосвязи между задачами обеспечения доверительности и целостности в полностью распределенных пиринговых системах. Материал этой главы существенно углубляет понимание важности обеспечения целостности и подробно описывает основную задачу, решаемую технологией блокчейна. В конце главы рассматривается среда, в которой технология блокчейна способна принести максимальную пользу.
Во многих естественных языках существуют образные выражения или поговорки, описывающие ситуацию, в которой кто-либо пытается привести в порядок, организовать беспорядочную группу лиц или объектов. Например, в английском языке этой ситуации соответствует выражение «herding cats» (попытка собрать кошек в стадо) (в русском языке для подобных ситуаций могут подойти крыловские «лебедь, рак и щука» и «квартет»), описывающее трудности объединения группы упрямых, трудно контролируемых и неуступчивых животных, которые не подчиняются или даже полностью игнорируют какие-либо попытки централизованного управления ими. Вам знакомы трудности при попытках как-то организовать группу людей, не желающих подчиняться единому органу управления или игнорирующих этот орган? Вот это и есть ситуация, в которой формируется полностью распределенная пиринговая система, состоящая из отдельных независимых узлов без какого бы то ни было центрального пункта управления или координации. В данной главе рассматриваются сложная задача создания полностью распределенной пиринговой системы и ее взаимосвязь с технологией блокчейна.
Доверительность и целостность – это две стороны одной монеты. В контексте программных систем целостность (integrity) является нефункциональным аспектом системы: система должна быть безопасной (защищенной), полнофункциональной, непротиворечивой, корректной и свободной от сбоев и ошибок. Доверительность (trust) – это твердая убежденность людей в надежности, честности и/или компетентности (правомочности) кого-либо или чего-либо без свидетельств, доказательств или экспертных исследований. Доверительность существует изначально и может непрерывно увеличиваться или уменьшаться в зависимости от текущих результатов взаимодействия.
С точки зрения пиринговых систем это означает, что люди присоединяются к системе и продолжают сотрудничать с ней, если доверяют этой системе и если результаты взаимодействия постоянно подтверждают и укрепляют доверие. Целостность системы необходима для удовлетворения ожиданий пользователей и укрепления доверия к системе. Если доверие пользователей не укрепляется самой системой из-за отсутствия целостности, пользователи покидают систему, и в конце концов она просто прекращает свое существование. Осознание важности доверия для существования пиринговых систем приводит к ключевому вопросу: как обеспечить и поддерживать целостность в полностью распределенной пиринговой системе?
Обеспечение и поддержка целостности в полностью распределенных пиринговых системах зависят от множества факторов, наиболее важными из которых являются:
• знание количества узлов или партнеров;
• знание степени доверия (уровня надежности) между партнерами.
Вероятность обеспечения целостности в распределенной пиринговой системе повышается, если точно известно количество узлов и степень доверительности между ними. Эту ситуацию можно сравнить с деятельностью частного клуба, установившего высокие моральные стандарты и использующего жесткие процедуры приема для новых членов. Разумеется, наихудшие условия для обеспечения целостности в распределенной пиринговой системе – неизвестное количество узлов и отсутствие информации о степени доверия между ними. Это характерно для варианта создания полностью распределенной пиринговой системы в Интернете, открытой для всех.
Для упрощения можно рассматривать два основных источника опасности для целостности в пиринговых системах:
• технические отказы (сбои);
• злоумышленники-партнеры в системе.
Технические отказы (сбои)
Пиринговые системы состоят из отдельных компьютеров, пользователи которых обмениваются информацией по сети. Для любого аппаратного и программного компонента компьютера, а также для любого компонента сети постоянно существует опасность возникновения аварийного сбоя или критической ошибки. Таким образом, в любой распределенной системе в любой момент может появиться проблема из-за отказа компонента или из-за случайного искажения результата обработки данных.
Злоумышленники-партнеры в системе
Злоумышленники-партнеры являются вторым основным источником опасности для целостности в пиринговых системах. Это не техническая проблема, это проблема, создаваемая намерениями отдельных лиц, которые решили воспользоваться системой в своих корыстных целях. Можно утверждать, что эта опасность в большей степени относится к области социальной психологии и групповой динамики, чем к технологии. Нечестные и злонамеренные партнеры создают самую большую угрозу для пиринговой системы, потому что нападают на саму основу построения пиринговой системы: на доверие. Когда пользователи перестают доверять своим партнерам, они покидают систему и прекращают предоставлять ей свои вычислительные ресурсы. Количество партнеров уменьшается, и система в целом теряет свою привлекательность для оставшихся участников, что, в свою очередь, приводит к снижению возможностей системы и в конечном итоге к прекращению ее существования.
Обеспечение целостности и доверительности при всех наилучших условиях осуществляется очень просто. Но реальная (и весьма трудная) задача состоит в обеспечении целостности и доверительности в самых наихудших условиях. Именно эту задачу призвана решить технология блокчейна. Главная задача блокчейна – обеспечение и поддержка целостности в полностью распределенной пиринговой системе, состоящей из неизвестного количества партнеров с неизвестным уровнем надежности и доверительности. Задача эта не нова, это общеизвестная и часто обсуждаемая проблема в области информационных технологий. Используя метафору из военного дела (если говорить более точно, то из области криптологии), можно в широком смысле считать ее задачей византийских генералов [20].
Примечание
Главная задача, решаемая технологией блокчейна, – обеспечение и поддержка целостности в полностью распределенной пиринговой системе, состоящей из неизвестного количества партнеров с неизвестным уровнем надежности и доверительности.
В этой главе особо выделена важность обеспечения целостности и доверительности в пиринговых системах. Далее определяется главная задача, решаемая технологией блокчейна, и подчеркивается ее важность для обеспечения целостности и доверительности в пиринговых системах. Но пока еще не было дано точное определение термина «блокчейн». Это будет сделано в следующей главе.
• Целостность и доверительность – главные характеристики, которые необходимо обеспечить в пиринговых системах.
• Люди присоединяются к системе и продолжают сотрудничать с ней, если доверяют этой системе и если результаты взаимодействия постоянно подтверждают и укрепляют доверие.
• Если доверие пользователей не укрепляется самой системой из-за отсутствия целостности, пользователи покидают систему, и в конце концов она просто прекращает свое существование.
• Два основных источника опасности для целостности в пиринговых системах:
– технические отказы (сбои);
– злоумышленники-партнеры в системе.
• Обеспечение целостности в пиринговой системе зависит от следующих основных факторов:
– знание количества узлов или партнеров;
– знание степени доверия (уровня надежности) между партнерами.
• Главная задача, решаемая технологией блокчейна, – обеспечение и поддержка целостности в полностью распределенной пиринговой системе, состоящей из неизвестного количества партнеров с неизвестным уровнем надежности и доверительности.
Глава 5
Однозначное определение термина
Четыре способа определения технологии блокчейна
Из предыдущих глав вы узнали о главной цели технологии блокчейна, о взаимосвязи между доверительностью и целостностью в программной системе. Это позволило с полным обоснованием дать верную оценку цели блокчейна, но сам термин «блокчейн» пока еще не был определен. В этой главе основное внимание уделено определению этого термина и объяснению различных вариантов его использования. Здесь представлено предварительное общее определение технологии блокчейна, которым мы будем руководствоваться при изучении следующих глав книги. В конце главы рассматривается, почему управление владением (собственностью) является самым широко распространенным вариантом применения технологии блокчейна.
При изложении материала данной книги термин «блокчейн» используется следующим образом:
• как имя структуры данных;
• как имя алгоритма;
• как имя набора (стека) технологий;
• как гипероним (обобщающее понятие) для полностью распределенных пиринговых систем с общей прикладной областью.
Структура данных
В информатике и программной инженерии структура данных (data structure) обозначает способ организации данных, не зависящий от конкретного информационного содержимого. Структуру данных можно сравнить с планом строящегося здания. На плане здания отображаются разделение и соединение пространства с помощью стен, этажей и лестниц независимо от способов их конкретного применения. При использовании в качестве имени структуры данных блокчейн обозначает данные, объединенные в комплекты, называемые блоками (block). Блоки данных во многом похожи на страницы в книге. Блоки соединяются друг с другом в цепочку, отсюда и название блокчейн (или цепочка блоков данных). В книге слова и предложения представляют хранимую информацию. Они записаны на отдельных страницах, а не на одном большом свитке. Страницы связаны друг с другом на основе их физического расположения в книге и соответствующих номеров страниц. Вы можете заметить, что какой-то страницы не хватает, проверяя непрерывность последовательности номеров страниц. Более того, информация на страницах книги, так же как и сами страницы, упорядочена. Такая упорядоченность является важной деталью, используемой повсеместно. Кроме того, цепочка блоков данных в структуре формируется с использованием специализированной системы нумерации, которая отличается от нумерации страниц в обычных бумажных книгах.
Алгоритм
В программной инженерии термин алгоритм означает последовательность инструкций, выполняемых компьютером. Инструкции часто пользуются структурами данных. При использовании в качестве имени алгоритма блокчейн обозначает последовательность инструкций, обрабатывающих информационное содержимое структур данных блокчейна (blockchain-data-structures) в полностью распределенной пиринговой системе. Это несколько напоминает схему демократического голосования.
Набор (стек) технологий
При использовании в качестве названия набора (стека) технологий блокчейн обозначает сочетание структуры данных блокчейна, алгоритма блокчейна, а также криптографических технологий и технологий обеспечения безопасности, которое в совокупности может быть использовано для обеспечения целостности в полностью распределенных пиринговых системах, независимо от их прикладной цели.
Гипероним (обобщающее понятие) для полностью распределенных пиринговых систем с общей прикладной областью
Термин блокчейн также может применяться в качестве гиперонима (обобщающего понятия) для полностью распределенных пиринговых программных систем, использующих набор технологий блокчейна. Отметим, что в этом контексте блокчейн обозначает полностью распределенную систему как единое целое, а не какой-то программный модуль, являющий частью распределенной системы.
На протяжении всей оставшейся части книги термин блокчейн будет использоваться для краткого обозначения гиперонима (обобщающего понятия) для полностью распределенных пиринговых программных систем, использующих набор технологий блокчейна. Если будет подразумеваться что-либо другое, то будут явно использоваться термины струтура данных блокчейна, алгоритм блокчейна и набор (стек) технологий блокчейна.
Примечание
Технология, обозначаемая в наши дни термином блокчейн, была предложена в 2008 году автором, скрывавшимся под псевдонимом Сатоши Накамото (Satoshi Nakamoto) [26]. Настоящее имя автора до сих пор неизвестно.
Следующее определение не является полным. В нем отсутствуют важные подробности, которые пока еще не рассматривались. Тем не менее это определение станет важным промежуточным шагом к более полному пониманию термина блокчейн:
Блокчейн (blockchain) (цепочка блоков транзакций) – это полностью распределенная пиринговая система журналов учета, использующая программный модуль, реализующий алгоритм, который обрабатывает информационное содержимое упорядоченных взаимосвязанных блоков данных как единое целое с помощью криптографических технологий и технологий защиты данных для обеспечения и поддержки целостности этой системы.
В предварительном определении, приведенном выше, ничего не говорится ни о Bitcoin, ни об управлении правом владения криптографическими денежными средствами. Это может показаться странным, поскольку многие статьи и книги о блокчейне утверждают, что основной целью блокчейна является управление правом владения цифровыми валютами. Дело в том, что управление правом владения криптографическими денежными средствами является самым широко распространенным и вполне естественным вариантом практического применения технологии блокчейна, но далеко не единственным. Диапазон применения блокчейна широк и разнообразен. И все же существуют две причины, по которым управление правом владения цифровой продукцией стало самым обсуждаемым приложением блокчейна. Во-первых, этот вариант проще всего понять и объяснить. Во-вторых, это пример практического применения с наибольшей степенью воздействия на реальную экономику. Концепция права владения собственностью и законное обеспечение прав собственности являются главнейшими элементами практически каждого сообщества людей (даже у некоторых животных существует концепция владения собственностью, и они отстаивают свое право владения в жестокой борьбе). Почти вся деятельность банков, страховых компаний, опекунских советов, юристов, судей, адвокатов и юрисконсультов сосредоточена на управлении правами собственности или на их соблюдении. Таким образом, сфера управления правами собственности представляет собой рынок с оборотом в миллиарды долларов, и любая техническая инновация, способная изменить метод управления правом владения, будет воздействовать на этот рынок с огромной силой. Поэтому можно считать, что блокчейн действительно может коренным образом изменить методики управления правом собственности.
Блокчейн как набор технологий, используемый для управления распределенных пиринговых программных систем, может обеспечить множество специализированных вариантов практического применения, таких как управление правом владения цифровой продукцией или криптографическими денежными средствами. Но в этой книге преднамеренно не рассматриваются какие-то отдельные специальные приложения блокчейна, потому что не следует отвлекать внимание читателей от основополагающих концепций, подробно описывая только один специализированный вариант приложения. Но для упрощения понимания технологии блокчейна в книге все же приводится обобщенный пример применения управления правом владения и его защиты без указания конкретного типа продукции. Таким образом, определяется общая цель управления правом собственности, весьма подходящая для предлагаемого здесь процесса обучения и помогающая создать общую мысленную схему функционирования блокчейна.
В этой главе был объяснен термин блокчейна и приведено предварительное определение этого термина. В книге рассматривается обобщенный пример применения управления правом владения и защиты без указания конкретного типа продукции для описания функциональности блокчейна, но без подробностей механизма осуществления владения. Расширенное описание права владения собственностью поможет лучше понять функционирование блокчейна. В следующей главе будут более подробно рассматриваться основы права владения собственностью.
• Термин блокчейн неоднозначен; разные люди придают ему различный смысл, зависящий от контекста обсуждения.
• Термин блокчейн может обозначать:
– структуру данных;
– алгоритм;
– набор (стек) технологий;
– группу полностью распределенных пиринговых систем с общей прикладной областью.
• Управление правом владения собственностью и его осуществление являются наиболее распространенным вариантом практического применения блокчейна, но далеко не единственным.
• Блокчейн (blockchain) (цепочка блоков транзакций) – это полностью распределенная пиринговая система журналов учета, использующая программный модуль, реализующий алгоритм, который обрабатывает информационное содержимое упорядоченных взаимосвязанных блоков данных как единое целое с помощью криптографических технологий и технологий защиты данных для обеспечения и поддержки целостности этой системы.
Глава 6
Понимание сущности права владения собственностью
Как мы осознаем, что владеем чем-либо
В главе 5 были приведены предварительное определение термина блокчейн и обоснование причин, по которым управление правом владения считается наиболее распространенным вариантом применения технологии блокчейна. В этой главе более глубоко рассматривается взаимосвязь между блокчейном и этим наиболее распространенным вариантом применения для управления правом владения. В частности, описывается связь между доверительностью и целостностью в полностью распределенных пиринговых системах, с одной стороны, и управлением правом владения – с другой. Кроме того, в этой главе также приводятся некоторые общие положения, касающиеся сущности права владения собственностью, и вводятся основополагающие концепции обеспечения безопасности.
Представьте себе следующую ситуацию. Дома вы кладете в сумку яблоко для ланча. По дороге на работу вы решаете зайти в супермаркет, чтобы купить сэндвич и немного печенья. У кассы вы открываете сумку, чтобы сложить в нее купленные товары, и тут сотрудник супермаркета видит в вашей сумке яблоко, которое совершенно случайно оказывается как две капли воды похожим на яблоки, продающиеся в этом супермаркете. О чем сразу же подумает сотрудник супермаркета? Он может сделать ошибочный вывод о том, что вы, возможно, украли это яблоко. К сожалению, в супермаркете нет видеокамер наблюдения за покупателями, нет контролеров в торговых залах, а вы в текущий момент – единственный покупатель. Как вы можете доказать, что яблоко не краденое, а ваше собственное?
Размышляли ли вы когда-либо над тем, что именно делает вас владельцем вещей, принадлежащих вам? Возможно, размышляете сейчас, продолжая обдумывать рассказ о яблоке из супермаркета. Так что же именно делает вас владельцем яблока, лежащего в сумке? Как можно доказать, что оно не украдено из супермаркета?
Теперь предположим, что вы предстали перед судом, разбирающим ошибочно предъявленное вам обвинение в краже яблока. Как доказать, что вы владелец этого яблока? Из описанного выше примера с супермаркетом мы знаем, что достаточным доказательством вашей невиновности должно являться отсутствие свидетелей, которые могут с полной уверенностью подтвердить, что вы украли яблоко. Но снятие предварительных обвинений в воровстве еще не доказывает права владения. Поэтому более подробно остановимся на рассмотрении проблемы доказательства права на владение.
Большую помощь может оказать свидетельское показание, подтверждающее, что вы купили яблоко до похода в супермаркет. К счастью, вы запомнили магазин и продавца, у которого приобрели яблоко, и теперь хотите, чтобы он подтвердил это. Но вы недооценили квалификацию обвинителя. Он устроил перекрестный допрос свидетеля и задавал очень трудные вопросы: может ли он точно вспомнить то яблоко, которое продал вам? Является ли яблоко, которое он продал, в точности тем же яблоком, которое обнаружено в вашей сумке? Может ли он определенно утверждать, что вы тот самый человек, которому он продал именно это конкретное яблоко? В конце концов, почему он вдруг сразу вспомнил все эти подробности? А может быть, вы заплатили свидетелю за подтверждение вашей невиновности? Все это сводится к основному принципу: один свидетель – хорошо, но наличие многих независимых свидетелей является главным фактором, позволяющим убедить обвинителя в вашей невиновности.
Последнее утверждение особенно важно. Чем больше независимых свидетелей подтверждают один и тот же факт, тем выше вероятность того, что этот факт действительно является правдой. Вскоре вы убедитесь, что эта идея является одной из основополагающих концепций блокчейна.
Рассматривая все изложенное в предыдущем разделе на более абстрактном уровне, можно утверждать, что доказательство права владения подразумевает три обязательных элемента:
• идентификация владельца;
• идентификация объекта владения;
• установление связи владельца с объектом.
Показание свидетеля включает все эти элементы. Исторически свидетель-очевидец часто являлся единственным источником установления перечисленных фактов. Но устные показания свидетелей отнимают слишком много времени. Поэтому их заменили документами из надежных источников, заслуживающих доверия. В наше время личность можно установить по служебным удостоверениям, свидетельствам о рождении и водительским правам. Серийные номера, даты производства, сертификаты на продукцию могут использоваться для идентификации объектов. Эти документы не изменяются после создания, потому что характерные отличительные черты людей и объектов не меняются.
Соответствие между владельцами и объектами обычно устанавливается с помощью журнала (книги) учета (ledger) или реестра (register) (запись актов гражданского состояния, бухгалтерская книга, финансовый реестр и т. п.). Но это не тот документ, который остается неизменным после создания. Каждый факт передачи права владения должен быть задокументирован в подобном реестре, потому что устаревший реестр или журнал (книга) не может являться достоверным доказательством для подтверждения права владения. Важность наличия реестра, содержащего самые последние сведения и оформляемого в надлежащем порядке, привела к появлению специализирующихся на этой области деятельности учреждений во многих сообществах. Чем большую ценность имеют некоторые типы объектов, тем больше вероятность существования управляемого на государственном уровне реестра, в котором документируются права владения этими объектами. Большинство таких реестров открыто для всех, чтобы упростить проверку и доказательство прав владения. Вы сами можете проверить наличие подобных реестров в вашей стране и узнать, какие именно права они удостоверяют. Я нашел реестры, документирующие права владения недвижимостью, патентами, судами, самолетами и компаниями. Кроме того, я даже обнаружил журналы регистрации браков, рождений и смертей.
На рис. 6.1 отображена взаимосвязь различных концепций, используемых для проектирования программного обеспечения, управляющего правами владения.
Рис. 6.1 Концепции права владения
На рис. 6.1 концепции верхних уровней являются более обобщенными по сравнению с концепциями более низких уровней. Концепции каждого уровня могут рассматриваться как реализации концепции уровней, расположенных выше. Например, доказательство права владения требует идентификации владельцев и объектов собственности, а также установления связи между владельцами и собственностью. Применение права владения требует идентификации, а также аутентификации и авторизации для полной уверенности в том, что собственностью пользуется личность, имеющая на это юридическое право. В самой нижней строке на рисунке представлен уровень реализации. Например, здесь показано, что пароль и подпись являются концепциями, используемыми для реализации процедур аутентификации и авторизации. Журнал (книга) и соответствующее программное обеспечение могут рассматриваться как конкретная реализация концепции установления связи между владельцами и их собственностью.
На рис. 6.1 отображены три главные концепции, относящиеся к задаче обеспечения безопасности, которые необходимо рассмотреть более подробно, так как их смысловое значение в контексте программных систем несколько отличается от используемого в повседневной жизни:
• идентификация;
• аутентификация;
• авторизация.
Общий смысл и взаимосвязь между этими тремя концепциями можно проиллюстрировать на примере из реальной жизни. Предположим, что вы хотите купить бутылку вина в винном магазине. Винным магазинам запрещается продавать алкогольные напитки лицам, не достигшим определенного возраста. Как сотрудники винного магазина могут удостовериться в том, что они продают вино только разрешенной категории людей? Это осуществляется с помощью идентификации, аутентификации и авторизации. Рассмотрим подробнее, как работают эти концепции на практике.
Идентификация
Идентификация означает подтверждение подлинности личности посредством установления имени или каких-либо других признаков, которые могут использоваться как идентификатор [37]. В примере с винным магазином покупатель может назвать свое имя. Идентификация еще не доказывает, что человек действительно носит то имя, которым он назвался. Идентификация не предоставляет доказательств того, что покупатель не является несовершеннолетним. Идентификация – это всего лишь объявление имени конкретного человека.
Аутентификация
Цель аутентификации – предотвратить попытку выдать себя за другого человека. Аутентификация означает проверку или доказательство того, что вы действительно являетесь тем человеком, имя которого вы назвали [37]. Подтвердить личность может что-то или кто-то с доказательствами, значимыми с юридической точки зрения (например, служебное удостоверение, водительские права или некоторые подробности жизни человека, имя которого было названо). Важно, чтобы доказательства, подтверждающие вашу личность, были однозначно связаны с вами (например, фотография на удостоверении, отпечатки пальцев или что-то другое, характерное только для вас, не допускающее двусмысленного толкования). В примере с винным магазином вы можете подтвердить личность, показав водительские права с фотографией. Сравнение вашего лица с фотографией в правах соответствует процедуре верификации. Если вы действительно выглядите так же, как на фото, то аутентификация считается успешной. В противном случае аутентификация не пройдена. Сопоставление лица человека с фотографией в водительских правах дает возможность предотвратить попытку незаконного использования чужих документов.
Авторизация
Авторизация означает предоставление доступа к конкретно определенным ресурсам или услугам в соответствии с характеристиками или свойствами личности, подлинность которой установлена [37]. Авторизация представляет собой последовательность успешной процедуры аутентификации и дальнейшего определения характеристик или прав установленной личности. В примере с винным магазином авторизация означает принятие решения о возможности покупки вами бутылки вина на основе даты рождения, указанной в водительских правах. Сотрудник магазина может отказать вам, если по дате рождения в документе определит, что вы несовершеннолетний. Отметим, что в данном случае отказ происходит не из-за неудачной аутентификации. Процедуры идентификации и аутентификации были пройдены успешно, но именно благодаря корректной идентификации сотрудник магазина смог определить, что вы несовершеннолетний. Таким образом, авторизация всегда является результатом определения по некоторым заданным правилам характеристик и/или свойств личности, установленной перед этим с помощью процедуры аутентификации.
Примечание
Идентификация означает объявление своего имени. Аутентификация означает доказательство того, что вы действительно являетесь тем человеком, именем которого назвались. Авторизация означает получение доступа к чему-либо на основании предварительно проведенной успешной процедуры аутентификации с целью подтверждения личности.
На рис. 6.2 показано, каким образом доказательство права владения и передача права владения связаны с целями и свойствами реестра (ledger).
Рис. 6.2 Концепции и основные принципы реестра
Главным на рис. 6.2 является тот факт, что реестр должен выполнять две противоположные функции. С одной стороны, реестр служит средством доказательства права владения, основываясь на чтении хронологических данных, хранимых в данном реестре. С другой стороны, в реестре должны документироваться все факты передачи права владения, что подразумевает создание новых данных и запись их в реестр. Одним из наиболее важных различий этих двух целей может стать противоположная сущность прозрачности и приватности.
Доказательство права владения упрощается, если реестр доступен всем. Таким образом, прозрачность является основой процедуры доказательства права владения подобно тому, как свидетели дают показания в открытом для публики суде. Но при передаче права владения доступ к процедуре непременно должен быть открыт исключительно для законного владельца. В этом случае обеспечение приватности становится основой передачи права владения. Поскольку запись в реестр означает изменение права владения, право на запись должно предоставляться только объектам, доверие к которым не вызывает никаких сомнений.
Действительно существующие противоречия между прозрачностью и приватностью, между процедурами доказательства права владения и передачи права владения, между чтением и записью в реестр также можно обнаружить и в блокчейн-системе. Таким образом, блокчейн представляет собой огромную распределенную пиринговую систему, состоящую из структур данных, очень похожих на реестр (ledger), доступных для чтения любому желающему.
Доказательство в форме управляемого на государственном уровне реестра является главным действующим фактором при определении права владения ценной продукцией. Но что произойдет, если такой реестр поврежден или уничтожен? Или если некто, ответственный за обновление реестра, допустит ошибки или фальсифицирует запись в корыстных целях? В этом случае реестр перестает соответствовать действительности. Это настоящая катастрофа, потому что все уверены, что реестр дает правдивую информацию, подобно свидетелю в суде.
Проблема наличия только одного реестра как источника определения права владения может быть решена тем же способом, который применяется в судебном разбирательстве. Судебное решение на основании показаний одного свидетеля является сомнительным, так как свидетель может оказаться не вполне честным. Лучше собрать показания нескольких свидетелей. Чем больше независимых свидетелей опрошено, тем выше вероятность того, что факты, подтвержденные в большинстве свидетельских показаний, действительно соответствуют истине. Это положение можно доказать с помощью методов статистики и закона больших чисел. Наличие множества свидетелей, которые независимо друг от друга рассказывают о том, что они видели, является основой такого подхода к установлению истины.
Применение подобной методики к использованию реестра для определения права владения становится очевидным: вместо обслуживания единственного реестра, который можно подделать или испортить, необходимо создать полностью распределенную пиринговую систему реестров и выполнять запросы, касающиеся права владения, в такой версии отображения реального мира, с которой согласно большинство равноправных действующих партнеров. Здесь может возникнуть вопрос: как все это связано с блокчейном? Взаимосвязь между управлением правами владения с помощью реестра и технологией блокчейна определяется следующим образом:
• отдельный реестр, используемый для сопровождения информации о правах владения, равнозначен одной структуре данных блокчейна, хранящей данные, относящиеся к правам владения;
• отдельные реестры хранятся на компьютерах (узлах) пиринговой системы;
• алгоритм блокчейна отвечает за объединение отдельных узлов в единую согласованную версию, представляющую состояние прав владения, на которой основывается окончательное юридическое решение;
• целостность такой системы основывается на ее способности формировать истинные утверждения о праве владения;
• криптография необходима для создания надежных средств идентификации, аутентификации и авторизации, а также для обеспечения защиты данных.
В этой главе рассматривались важные характеристики права владения, а также их взаимосвязь со свойствами реестров (журналов учета). Далее кратко объяснялась связь технологии блокчейна с правами владения и реестрами. В следующей главе объясняется, какие важные последствия имеет перевод управления правами владения в полностью распределенную пиринговую систему реестров.
• Доказательство права владения состоит из трех элементов:
– идентификация владельца;
– идентификация объекта владения;
– установление связи владельца с объектом.
• Служебные удостоверения, свидетельства о рождении, водительские права, а также серийные номера, даты производства, сертификаты на продукцию или подробные описания объекта могут использоваться для идентификации владельцев и объектов.
• Соответствие между владельцами и объектами может быть зафиксировано в реестре, который играет ту же роль, что и свидетельские показания в судебном разбирательстве.
• Наличие только одного реестра связано с риском, так как реестр может быть испорчен, уничтожен или подделан. В этом случае реестр перестает быть надежным средством определения права владения.
• Вместо использования единственного централизованного реестра можно воспользоваться группой независимых реестров для документирования прав владения и выполнения запросов, касающихся права владения, в такой версии отображения реального мира, с которой согласно большинство равноправных действующих партнеров.
• Возможно создание полностью распределенной пиринговой системы реестров с использованием структуры данных блокчейна. Каждая структура данных блокчейна представляет один реестр и поддерживается одним узлом системы. Алгоритм блокчейна отвечает за объединение отдельных узлов в единую согласованную версию, представляющую состояние прав владения. Криптография используется для реализации процедур идентификации, аутентификации и авторизации.
• Целостность полностью распределенной пиринговой системы реестров основывается на ее способности формировать истинные утверждения о праве владения и обеспечить возможность передачи права владения только законными владельцами.
Глава 7
Двойное расходование
Использование уязвимости распределенных пиринговых систем
В предыдущей главе вы узнали о взаимосвязи между полностью распределенными пиринговыми системами и наиболее частым вариантом практического применения технологии блокчейна в качестве средства управления правами владения. Вы также узнали, что целостность полностью распределенной пиринговой системы реестров основывается на ее способности формировать истинные утверждения о праве владения и обеспечить возможность передачи права владения только законными владельцами. Но что означает это утверждение в реальной жизни? Что происходит при нарушении целостности? Эти вопросы рассматриваются в данной главе во всех подробностях. В частности, здесь представлен один из самых важных примеров нарушения целостности в распределенных пиринговых системах: проблема двойного расходования.
Подделка денежных знаков – серьезное преступление в любой стране, поскольку это деяние подрывает экономику страны, создавая средства платежа, в действительности не обеспеченные финансовыми ресурсами. Поэтому большинство банковских билетов (купюр) снабжено средствами защиты, которые делают подделку невозможной или, по крайней мере, слишком дорогостоящей. Средства защиты, такие как уникальные серийные номера, водяные знаки, флуоресцентные волокна, вполне подходят для банковских билетов и другой материальной продукции. А если деньги и товары становятся цифровыми и управляются распределенными пиринговыми системами реестров? В этой главе рассматривается особый случай уязвимости распределенных пиринговых систем, используемых для управления правом владения, и этот случай равнозначен подделке денежных купюр. Кроме того, эта уязвимость представляет собой типичный пример нарушения целостности системы.
Рассмотрим пиринговую систему для управления правом владения недвижимостью. В такой системе реестры, отслеживающие информацию о правах владения, обслуживаются отдельными компьютерами, включенными в эту сеть, а не какой-либо централизованной базой данных. Таким образом, партнеры-участники осуществляют поддержку собственной копии реестра. Сразу после передачи права владения некоторым домом от одного человека другому все копии реестра должны быть обновлены для соответствия самым последним изменениям в реальной жизни. Но передача информации между партнерами и процедура обновления отдельных реестров требует времени. До тех пор, пока все участники системы не получат новую информацию и не обновят свою копию реестра, система не является согласованной. Некоторые партнеры уже знают о последней передаче права владения, другие еще не получили эту информацию. Тот факт, что не все реестры содержат свежую информацию, создает возможность некорректного использования этих реестров лицом, которое уже обладает такой информацией.
Представим следующую ситуацию. Лицо А продает дом лицу Б. Передача права владения от А к Б документируется в одном из реестров в пиринговой системе. Этот реестр должен проинформировать других партнеров о передаче права владения, партнеры, в свою очередь, должны передать информацию другим партнерам – и так до тех пор, пока в конце концов все партнеры в сети не будут осведомлены о передаче права владения от А к Б. Теперь предположим, что лицо А быстро получает доступ к другому реестру системы и оформляет другой документ на передачу права владения тем же самым домом: продажу лицом А лицу В. Если этому партнеру еще не известен факт передачи прав владения от А к Б, только что произведенной, то он примет и задокументирует передачу права владения тем же домом от А к В. Таким образом, лицо А продало свой дом дважды, используя тот факт, что для распространения информации о первой продаже требуется некоторое время. Но в действительности лица Б и В не могут одновременно владеть одним и тем же домом. Только один из них должен считаться новым законным владельцем. Подобная ситуация называется проблемой двойного расходования.
Как и термин блокчейн, термин двойное расходование (double spending) является неоднозначным, поскольку используется для обозначения следующих концепций:
• проблема, связанная с копированием цифровой продукции;
• проблема, которая может возникать в распределенных пиринговых системах реестров;
• пример нарушения целостности в полностью распределенных пиринговых системах.
Двойное расходование как проблема копирования цифровой продукции
В контексте копирования цифровой продукции проблема двойного расходования обозначает тот факт, что данные могут копироваться с некоторого компьютера без каких-либо заметных ограничений. Это создает проблемы использования цифровых денег или любых других данных, считающихся принадлежащими только одному владельцу в текущий момент. Копирование создает возможность размножения данных, представляющих элементы цифровых денег, и использования их более одного раза в нескольких платежных операциях. Это цифровая аналогия размножения денежных купюр на копировальной машине. Если не принимать во внимание чисто техническую возможность, то копирование цифровых денег нарушает основной принцип денежной системы: одни и те же деньги (или их элементы) не могут принадлежать одновременно различным людям. Возможность многократно копировать и тратить одни и те же цифровые деньги фактически делает такие деньги бесполезными, таким образом, возникает проблема двойного расходования.
Двойное расходование как проблема распределенной пиринговой системы реестров
При использовании для описания уязвимости распределенной пиринговой системы реестров проблема двойного расходования обозначает тот факт, что передача информации всем компонентам системы требует времени, то есть не все партнеры получают информацию о правах владения в одно и то же время. Поскольку не все партнеры обладают актуальной информацией, появляется возможность их некорректного использования неким лицом, уже обладающим самой свежей информацией. В результате это лицо может многократно передавать права владения, создавая проблему двойного расходования.
Двойное расходование как пример нарушения целостности в полностью распределенных пиринговых системах
Практическое применение распределенных пиринговых систем не ограничивается управлением права владения. Но проблема постепенной передачи информации между партнерами и неодновременное обновление данных, обслуживаемых участниками такой системы, остается неизменной, вне зависимости от конкретной прикладной области. Таким образом, на более абстрактном уровне проблему двойного расходования можно рассматривать как проблему обеспечения логической согласованности данных в распределенных пиринговых системах. Поскольку согласованность данных является одним из аспектов целостности системы, можно сказать, что проблема двойного расходования представляет собой частный пример нарушения целостности системы.
Так как термин двойное расходование может употребляться в нескольких различных смыслах, не существует единого универсального способа устранения этой проблемы. В следующих разделах рассматриваются некоторые возможные решения конкретных проблем двойного расходования.
Решение проблемы двойного расходования как проблемы копирования цифровой продукции
Проблема расходования цифровых денег или любых других цифровых активов более одного раза посредством простого копирования данных в действительности является проблемой, связанной с сущностью права владения. Любые приемлемые меры по установлению связи данных, представляющих цифровую продукцию, с их владельцами решают эту проблему независимо от конкретной реализации. Даже единый централизованный физический журнал (книга регистрации) или электронный реестр (что более реалистично в современных условиях) может обеспечить однократное расходование цифровой продукции, при условии что реестр корректно работает все время.
Решение проблемы двойного расходования как проблемы в распределенных пиринговых системах реестров
В этом контексте учитываются архитектура и прикладная область конкретной системы. Распределенные пиринговые системы реестров часто считаются классическим примером реализации технологии блокчейна. Материал главы 6 подчеркивает взаимосвязь блокчейна и распределенных пиринговых систем реестров. Таким образом, блокчейн как термин, используемый в данной книге, может рассматриваться как решение проблемы двойного расходования в распределенных пиринговых системах реестров.
Решение проблемы двойного расходования как примера нарушения целостности распределенных пиринговых систем
В этом контексте учитывается только архитектура системы, а прикладная область не рассматривается. То есть решения на этом уровне сосредоточены на обеспечении и поддержке целостности в распределенных пиринговых системах независимо от области их применения. Тем не менее конкретные варианты применения распределенных пиринговых систем определяют смысл понятия целостности. Например, аспекты определения целостности для простого приложения, обеспечивающего совместное использование файлов, могут совершенно отличаться от аспектов определения целостности для системы, управляющей правами владения цифровыми денежными средствами. Таким образом, на вопрос о том, является ли набор технологий блокчейна подходящим средством для обеспечения и поддержки целостности системы, невозможно ответить без знания конкретных целей приложения. Возможно, для обеспечения целостности в некоторых особенных прикладных областях применения распределенных пиринговых систем больше подходят другие технологии, структуры данных и алгоритмы.
Примечание
Проблема двойного расходования представляет собой типичный пример нарушения целостности распределенных пиринговых систем, а набор технологий блокчейна является инструментальным средством для решения этой проблемы.
В этой книге термин двойное расходование (double spending) используется для обозначения уязвимости, которая может возникать в полностью распределенных пиринговых системах реестров.
В этой главе рассмотрена проблема двойного расходования и подчеркнута важность технологии блокчейна для обеспечения целостности в полностью распределенных пиринговых системах. В следующей главе основное внимание будет сосредоточено на том, как блокчейн обеспечивает и поддерживает целостность системы.
• Термин двойное расходование (double spending) является неоднозначным; он используется в различных смыслах.
• Термин двойное расходование может обозначать следующее:
– проблему, связанную с копированием цифровой продукции;
– проблему, которая может возникать в распределенных пиринговых системах реестров;
– пример нарушения целостности в полностью распределенных пиринговых системах.
• В этой книге термин двойное расходование используется для обозначения уязвимости, которая может возникать в полностью распределенных пиринговых системах реестров.
• Технология блокчейна является инструментальным средством для решения проблемы двойного расходования.