Основы блокчейна книга

О чем читают в книге Даниэля Дрешера "Основы блокчейна: вводный курс для начинающих в 25 небольших главах":

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

Основы блокчейна СКАЧАТЬ

Об авторе

О Техническом рецензенте

Лоренс Керк (Laurence Kirk) после успешной карьеры автора оперативного финансового прикладного программного обеспечения для делового центра Сити в Лондоне заинтересовался потенциальными возможностями технологии создания распределенного программного обеспечения для финансового учета. Он поступил в Оксфордский университет для получения степени магистра и основал компанию Extropy.io, консультирующую стартапы по разработке прикладных программ для платформы Ethereum. Увлеченный возможностями технологии распределенного программного обеспечения, сейчас он является разработчиком, экспертом-консультантом и инструктором по вопросам использования платформы Ethereum.

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

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

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

Чего не следует ждать от этой книги

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

Чего следует ожидать от этой книги

• диалоговый («разговорный») стиль; • отсутствие математических выкладок и формул; • постепенное продвижение по проблемной области; • использование метафор и аналогий.

Отсутствие математических выкладок и формул
Постепенное продвижение по проблемной области
Использование метафор и аналогий

Как организована эта книга

Часть I: Терминология и основы технологии
Часть II: Зачем нужна технология блокчейна
Часть III: Как работает блокчейн
Часть VI: Ограничения и способы их преодоления
Часть V: Использование технологии блокчейна, общие выводы и перспективы

Дополнительные материалы

Часть I Терминология и основы технологии

Глава 1 Понимание уровней и аспектов Анализ систем посредством разделения их на уровни и аспекты

Метафора

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

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

• разделение на функциональные и нефункциональные аспекты.

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

Различие между тем, что система делает и как она это делает, приводит к разделению функциональных и нефункциональных аспектов. Примерами функциональных аспектов являются: передача данных по сети, воспроизведение музыки, фотографирование и редактирование отдельных пикселов в изображении. Примеры нефункциональных аспектов: удобный графический пользовательский интерфейс, быстрое программное обеспечение, возможность безопасного хранения пользовательских данных и защита их приватности. Другими важными нефункциональными аспектами системы являются безопасность и целостность. Целостность (integrity) означает, что система ведет себя именно так, как от нее ожидают, в то же время понятие целостности включает в себя и многие другие аспекты, такие как, например, безопасность (защищенность) и корректность [8]. Эффективным способом запоминания различий между функциональными и нефункциональными аспектами системы является аналогия с грамматикой русского или английского языка: глаголы описывают действия (что делается), а наречия – как выполняются эти действия. Например, человек может идти быстро или медленно. В обоих случаях действие «идти» одинаково, но способы выполнения этого действия различны. Поэтому в качестве практического правила можно предложить аналогию: функциональные аспекты соответствуют глаголам, нефункциональные аспекты соответствуют наречиям.

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

Целостность

• целостность данных (data integrity): данные, используемые и сопровождаемые системой, должны быть полными, корректными и непротиворечивыми;

• безопасность (защита) (security): система способна ограничить доступ к своим данным и функциональным возможностям, разрешая его только авторизованным пользователям.

Перспектива
Резюме

– на уровень приложения и уровень реализации;

• Уровень приложения сосредоточен на потребностях пользователя, уровень реализации – на способах удовлетворения этих потребностей.

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

– целостность данных;

– безопасность (защита).

Глава 2 Более подробная картина Архитектура программного обеспечения и ее связь с технологией блокчейна

Метафора

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

Применим концепцию разделения на уровни к платежной системе. В табл. 2.1 показаны некоторые потребности пользователей и некоторые нефункциональные аспекты на уровне приложения и на уровне реализации.

Два типа архитектуры программного обеспечения

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

Рис. 2.1 Распределенная (слева) и централизованная (справа) архитектуры системы

Преимущества распределенных систем

• более высокая вычислительная мощность;

• более высокая надежность;

Более высокая вычислительная мощность

Снижение стоимости (накладных расходов, издержек)

Более высокая надежность

Возможность естественного роста

Недостатки распределенных систем

• издержки на координацию работы;

• зависимость от сетевой среды;

• проблемы безопасности.

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

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

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

Для выполнения вычислительных (и прочих) задач требуется написание отдельных программ и комплексного программного обеспечения. Из-за проблем, описанных выше, программное обеспечение для распределенных систем обязательно должно обеспечивать решение вспомогательных задач, таких как координация, обмен информацией и поддержка работы в сетевой среде. Это увеличивает сложность программного обеспечения.

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

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

Объединение централизованных и распределенных систем

Схема в левой части рис. 2.2 изображает архитектуру, в которой определен центральный компонент в распределенной системе. На первый взгляд кажется, что это обычная распределенная система с обычными компонентами. Но если приглядеться, то выясняется, что все кружки-узлы соединены с одним кружком большего размера, расположенным в центре схемы. Таким образом, подобная система только кажется распределенной при поверхностном осмотре, но в действительности это централизованная система.

Рис. 2.2 Прототипы объединения распределенной и централизованной архитектур

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

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

Цель технологии блокчейна

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

Перспектива
Резюме

• Централизованная и распределенная программные архитектуры могут считаться полностью противоположными друг другу.

• Практическое правило: если в системе имеется отдельный элемент, способный полностью остановить ее работу, то можно с уверенностью утверждать, что такая система не является распределенной, вне зависимости от сложности ее архитектуры.

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

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

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

Фэннинг и его коллеги изобрели пиринговую (peer-to-peer), или одноранговую, систему для совместного использования музыкальных файлов. В конце 1990-х гг. это программное обеспечение открыло новый путь формирования бизнес-модели в музыкальной индустрии. Далее в этой главе подробно рассматривается, как появление сети Napster, снижение продаж компакт-дисков и коренные изменения в музыкальной индустрии повлияли на технологию блокчейна.

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

Потенциальные возможности пиринговых систем

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

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

Примечание

Терминология и связь с технологией блокчейна

• определение пиринговой системы;

• связь между пиринговыми системами и технологией блокчейна.

Пиринговая система (peer-to-peer system) – это распределенная программная система, состоящая из узлов (nodes) (отдельных компьютеров), которые предоставляют прямой доступ к своим вычислительным ресурсам (процессорный ресурс, объем внешней памяти и/или средства распространения информации) другим узлам. После присоединения к пиринговой сети пользователи превращают свои комьютеры в узлы этой системы, обладающие равными правами и исполняющие одинаковые роли. Несмотря на то что предоставляемые пользователями ресурсы могут быть различными, все узлы системы получают одни и те же функциональные возможности и несут равную ответственность. Таким образом, компьютеры всех пользователей одновременно являются поставщиками и потребителями ресурсов [32].

Архитектура пиринговых систем

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

В главе 2 уже отмечалось, что технология блокчейна может рассматриваться как инструментальное средство для достижения и поддержки целостности в распределенных системах. Распределенные пиринговые системы могут использовать блокчейн для обеспечения целостности системы. Следовательно, связь между полностью распределенными пиринговыми системами и технологией блокчейна означает использование последней для обеспечения целостности таких систем.

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

Перспектива
Резюме

• Преимущество пиринговых систем состоит в возможности прямого взаимодействия пользователей друг с другом вместо взаимодействия через посредников.

• Пиринговые системы могут быть централизованными или полностью распределенными.

• Сеть Napster продемонстрировала мощь пиринговых систем, так как ее система совместного использования файлов открыла эпоху новых бизнес-моделей в сложившейся годами музыкальной индустрии, которая в основном действовала как посредник между музыкантами и слушателями.

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

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

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

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

Во многих естественных языках существуют образные выражения или поговорки, описывающие ситуацию, в которой кто-либо пытается привести в порядок, организовать беспорядочную группу лиц или объектов. Например, в английском языке этой ситуации соответствует выражение «herding cats» (попытка собрать кошек в стадо) (в русском языке для подобных ситуаций могут подойти крыловские «лебедь, рак и щука» и «квартет»), описывающее трудности объединения группы упрямых, трудно контролируемых и неуступчивых животных, которые не подчиняются или даже полностью игнорируют какие-либо попытки централизованного управления ими. Вам знакомы трудности при попытках как-то организовать группу людей, не желающих подчиняться единому органу управления или игнорирующих этот орган? Вот это и есть ситуация, в которой формируется полностью распределенная пиринговая система, состоящая из отдельных независимых узлов без какого бы то ни было центрального пункта управления или координации. В данной главе рассматриваются сложная задача создания полностью распределенной пиринговой системы и ее взаимосвязь с технологией блокчейна.

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

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

• знание степени доверия (уровня надежности) между партнерами.

Угрозы целостности в пиринговых системах

• технические отказы (сбои);

Технические отказы (сбои)

Злоумышленники-партнеры в системе

Главная задача, решаемая технологией блокчейна

Примечание

Перспектива
Резюме

• Люди присоединяются к системе и продолжают сотрудничать с ней, если доверяют этой системе и если результаты взаимодействия постоянно подтверждают и укрепляют доверие.

• Два основных источника опасности для целостности в пиринговых системах:

– злоумышленники-партнеры в системе.

– знание количества узлов или партнеров;

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

Из предыдущих глав вы узнали о главной цели технологии блокчейна, о взаимосвязи между доверительностью и целостностью в программной системе. Это позволило с полным обоснованием дать верную оценку цели блокчейна, но сам термин «блокчейн» пока еще не был определен. В этой главе основное внимание уделено определению этого термина и объяснению различных вариантов его использования. Здесь представлено предварительное общее определение технологии блокчейна, которым мы будем руководствоваться при изучении следующих глав книги. В конце главы рассматривается, почему управление владением (собственностью) является самым широко распространенным вариантом применения технологии блокчейна.

При изложении материала данной книги термин «блокчейн» используется следующим образом:

• как имя алгоритма;

• как гипероним (обобщающее понятие) для полностью распределенных пиринговых систем с общей прикладной областью.

В информатике и программной инженерии структура данных (data structure) обозначает способ организации данных, не зависящий от конкретного информационного содержимого. Структуру данных можно сравнить с планом строящегося здания. На плане здания отображаются разделение и соединение пространства с помощью стен, этажей и лестниц независимо от способов их конкретного применения. При использовании в качестве имени структуры данных блокчейн обозначает данные, объединенные в комплекты, называемые блоками (block). Блоки данных во многом похожи на страницы в книге. Блоки соединяются друг с другом в цепочку, отсюда и название блокчейн (или цепочка блоков данных). В книге слова и предложения представляют хранимую информацию. Они записаны на отдельных страницах, а не на одном большом свитке. Страницы связаны друг с другом на основе их физического расположения в книге и соответствующих номеров страниц. Вы можете заметить, что какой-то страницы не хватает, проверяя непрерывность последовательности номеров страниц. Более того, информация на страницах книги, так же как и сами страницы, упорядочена. Такая упорядоченность является важной деталью, используемой повсеместно. Кроме того, цепочка блоков данных в структуре формируется с использованием специализированной системы нумерации, которая отличается от нумерации страниц в обычных бумажных книгах.

В программной инженерии термин алгоритм означает последовательность инструкций, выполняемых компьютером. Инструкции часто пользуются структурами данных. При использовании в качестве имени алгоритма блокчейн обозначает последовательность инструкций, обрабатывающих информационное содержимое структур данных блокчейна (blockchain-data-structures) в полностью распределенной пиринговой системе. Это несколько напоминает схему демократического голосования.

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

Термин блокчейн также может применяться в качестве гиперонима (обобщающего понятия) для полностью распределенных пиринговых программных систем, использующих набор технологий блокчейна. Отметим, что в этом контексте блокчейн обозначает полностью распределенную систему как единое целое, а не какой-то программный модуль, являющий частью распределенной системы.

На протяжении всей оставшейся части книги термин блокчейн будет использоваться для краткого обозначения гиперонима (обобщающего понятия) для полностью распределенных пиринговых программных систем, использующих набор технологий блокчейна. Если будет подразумеваться что-либо другое, то будут явно использоваться термины струтура данных блокчейна, алгоритм блокчейна и набор (стек) технологий блокчейна.

Предварительное определение термина

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

Роль управления правом владения
Область применения блокчейна, рассматриваемая в данной книге
Перспектива
Резюме

• Термин блокчейн может обозначать:

– алгоритм;

– группу полностью распределенных пиринговых систем с общей прикладной областью.

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

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

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

Размышляли ли вы когда-либо над тем, что именно делает вас владельцем вещей, принадлежащих вам? Возможно, размышляете сейчас, продолжая обдумывать рассказ о яблоке из супермаркета. Так что же именно делает вас владельцем яблока, лежащего в сумке? Как можно доказать, что оно не украдено из супермаркета?

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

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

• идентификация владельца;

• установление связи владельца с объектом.

Соответствие между владельцами и объектами обычно устанавливается с помощью журнала (книги) учета (ledger) или реестра (register) (запись актов гражданского состояния, бухгалтерская книга, финансовый реестр и т. п.). Но это не тот документ, который остается неизменным после создания. Каждый факт передачи права владения должен быть задокументирован в подобном реестре, потому что устаревший реестр или журнал (книга) не может являться достоверным доказательством для подтверждения права владения. Важность наличия реестра, содержащего самые последние сведения и оформляемого в надлежащем порядке, привела к появлению специализирующихся на этой области деятельности учреждений во многих сообществах. Чем большую ценность имеют некоторые типы объектов, тем больше вероятность существования управляемого на государственном уровне реестра, в котором документируются права владения этими объектами. Большинство таких реестров открыто для всех, чтобы упростить проверку и доказательство прав владения. Вы сами можете проверить наличие подобных реестров в вашей стране и узнать, какие именно права они удостоверяют. Я нашел реестры, документирующие права владения недвижимостью, патентами, судами, самолетами и компаниями. Кроме того, я даже обнаружил журналы регистрации браков, рождений и смертей.

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

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

• аутентификация;

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

Идентификация означает подтверждение подлинности личности посредством установления имени или каких-либо других признаков, которые могут использоваться как идентификатор [37]. В примере с винным магазином покупатель может назвать свое имя. Идентификация еще не доказывает, что человек действительно носит то имя, которым он назвался. Идентификация не предоставляет доказательств того, что покупатель не является несовершеннолетним. Идентификация – это всего лишь объявление имени конкретного человека.

Цель аутентификации – предотвратить попытку выдать себя за другого человека. Аутентификация означает проверку или доказательство того, что вы действительно являетесь тем человеком, имя которого вы назвали [37]. Подтвердить личность может что-то или кто-то с доказательствами, значимыми с юридической точки зрения (например, служебное удостоверение, водительские права или некоторые подробности жизни человека, имя которого было названо). Важно, чтобы доказательства, подтверждающие вашу личность, были однозначно связаны с вами (например, фотография на удостоверении, отпечатки пальцев или что-то другое, характерное только для вас, не допускающее двусмысленного толкования). В примере с винным магазином вы можете подтвердить личность, показав водительские права с фотографией. Сравнение вашего лица с фотографией в правах соответствует процедуре верификации. Если вы действительно выглядите так же, как на фото, то аутентификация считается успешной. В противном случае аутентификация не пройдена. Сопоставление лица человека с фотографией в водительских правах дает возможность предотвратить попытку незаконного использования чужих документов.

Авторизация означает предоставление доступа к конкретно определенным ресурсам или услугам в соответствии с характеристиками или свойствами личности, подлинность которой установлена [37]. Авторизация представляет собой последовательность успешной процедуры аутентификации и дальнейшего определения характеристик или прав установленной личности. В примере с винным магазином авторизация означает принятие решения о возможности покупки вами бутылки вина на основе даты рождения, указанной в водительских правах. Сотрудник магазина может отказать вам, если по дате рождения в документе определит, что вы несовершеннолетний. Отметим, что в данном случае отказ происходит не из-за неудачной аутентификации. Процедуры идентификации и аутентификации были пройдены успешно, но именно благодаря корректной идентификации сотрудник магазина смог определить, что вы несовершеннолетний. Таким образом, авторизация всегда является результатом определения по некоторым заданным правилам характеристик и/или свойств личности, установленной перед этим с помощью процедуры аутентификации.

Цели и свойства регистра

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

Действительно существующие противоречия между прозрачностью и приватностью, между процедурами доказательства права владения и передачи права владения, между чтением и записью в реестр также можно обнаружить и в блокчейн-системе. Таким образом, блокчейн представляет собой огромную распределенную пиринговую систему, состоящую из структур данных, очень похожих на реестр (ledger), доступных для чтения любому желающему.

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

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

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

• целостность такой системы основывается на ее способности формировать истинные утверждения о праве владения;

Перспектива
Резюме

– идентификация владельца;

– установление связи владельца с объектом.

• Соответствие между владельцами и объектами может быть зафиксировано в реестре, который играет ту же роль, что и свидетельские показания в судебном разбирательстве.

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

• Целостность полностью распределенной пиринговой системы реестров основывается на ее способности формировать истинные утверждения о праве владения и обеспечить возможность передачи права владения только законными владельцами.

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

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

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

Уточнение термина

• проблема, связанная с копированием цифровой продукции;

• пример нарушения целостности в полностью распределенных пиринговых системах.

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

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

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

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

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

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

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

Использование термина двойное расходование в этой книге
Перспектива
Резюме

• Термин двойное расходование может обозначать следующее:

– проблему, которая может возникать в распределенных пиринговых системах реестров;

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

Если Вам понравилась книга, ее можно честно купить и продолжить чтение

Правообладателям: если Вы считаете, что размещение материала нарушает Ваши или чьи-либо права — сообщите нам об этом.

Источник