Блокчейн — О чём звон?

1149

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

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

Хорошим примером распределённого реестра (базы данных) может служить BitTorrent, протокол которого был разработан ещё в 2001 году. А первые опыты создания пиринговых сетей — основой распределённых реестров — проводились уже в начале 80-х.

Что касается блокчейнов (blockchains) — цепочек блоков цифровой информации, связанных электронными подписями — то они использовались, например, в криптографической системе PGP (Pretty Good Privacy), первая версия которой вышла в 1991 году.

 

Совсем по-простому

Блокчейн — это последовательное удостоверение какой-то информации.

Схема

Например, вы сделали какое-то письменное заявление и подписали его. Затем вашу подпись заверил ваш сосед, возможно, добавив к вашему заявлению какие-то свои сведения.

Далее подпись вашего соседа и своё собственное дополнение заверил следующий сосед и так далее.

В конце концов, информация, содержащаяся в документе, будет подтверждена всеми жителями многоквартирного дома.

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

 

Немного о цифровой подписи

Напомним, что это такое. Но сначала придётся чуть коснуться некоторых основ криптографии.

 

Что такое криптографический ключ

Для того, чтобы что-то зашифровать или расшифровать используется некий ключ.

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

Как известно, лучше один раз увидеть, чем сто раз услышать или прочитать. Вот пример ключа, сгенерированного программой PuTTYgen.

AAAAB3NzaC1yc2EAAAABJQAAAQEAonQzUWQ9qw//kSXzZ9uxe4UN/RK6osyfbqvk
PeYdS8Ov+f80yirmXZR4q0P18i9xcHGoM2qAbCRrzHD1Il2khOkzp5e2C2XyRdHR
8BxpTFMOCmhChzVGyXTRqgwWHsRW3WSmHsJnO8PBL5XVoWDkFnN3Y+wHrBYgqOG3
3+eCsoy3Wbp/xKblzDxjW20QcfDFomvsJauwlzpIlHKKpbEUY6CrFV42Gtken6/I
mUy4YX5ycIT5YAm+vK+QOLAp0ymVRUBCmqrpb/3FZO0Hz6YZHuvrEgE26bLsD5S4
2ChlMHZDXkyK5mDuzfkpyoxrBbyx+d97R4cp8Yo7dPEh1u2Y3w==

Исходные бинарные последовательности преобразованы в ASCII-коды читаемого текста.

 

Симметричное шифрование

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

Схема симметричного шифрования

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

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

 

Асимметричное шифрование

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

Схема ассиметричного шифрования

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

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

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

Но пока асимметричное шифрование вполне работает!

 

Электронная подпись

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

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

Электронная подпись

Зачем это нужно? — Чтобы узнать, какая информация была обработана секретным ключом. Дело в том, что алгоритм асимметричного шифрования устроен так, что даже самые незначительные изменения в исходном файле приведут к очень большим изменениям в «зашифрованном». То есть без знания секретного ключа подделать зашифрованный файл, чтобы он соответствовал изменённому исходному файлу, практически невозможно.

Электронная подпись

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

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

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

 

Чья подпись

Ну хорошо, документ подписан! — Но кем? Понятно, что тем, кто сгенерировал для себя соответствующую пару криптографических ключей. Но кто он? Или кто она, если речь идёт о какой-то организации?

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

Требуется каким-то способом подтвердить принадлежность электронной подписи.

Если вы знакомы с владельцем подписи, достаточно один раз получить его открытый ключ, чтобы иметь возможность проверить его подпись на любых документах. — А что, если незнакомы?

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

Заверитель

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

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

Сертификат состоит из трёх частей: 1) открытого ключа; 2) сведений о владельце заверяемого открытого ключа и 3) электронной подписи центра сертификации, которая одновременно фиксирует как сведения о владельце, так и сам ключ.

Схема

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

Доверие к центру сертификации требуется в пределах зоны использования его сертификатов. Если сертификаты нужно использовать по всему интернету, то и центр сертификации должен быть признан во всём интернете. Список корневых центров сертификации имеется в дистрибутивах браузеров.

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

 

Цепочка подписей

Однако есть способ обойтись без центра сертификации…

Представьте, что вы лично знаете Сергея. Сергей лично знает Константина, Константин лично знает Виталия, а Виталий лично знает Александра.

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

Схема подписи

Собственно, это и есть один из вариантов цепочки блоков.

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

Цепочку блоков можно замкнуть или превратить в сеть.

Цепочка

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

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

Нарушенная цепочка

Возможность создания цепочек подписей (блоков) была реализована, например, в ранних версиях PGP в начале 90-х.

 

Доверительные цепочки

Это — хороший способ взаимного удостоверения, неплохой пример самоорганизации зрелого сообщества.

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

Доверительные цепочки позволяют не только удостоверить подписи их участников, но и использовать эти подписи для заверки документов.

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

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

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

Цепочки блоков применимы только тогда, когда можно подтвердить все электронные подписи в ней.
 

Цепочка блоков

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

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

Но документ (пусть тот же e-mail) может быть подписан не одним человеком, а несколькими. И каждый из них может внести в документ какие-то свои дополнения. В результате образуется та самая цепочка блоков.

Например, такая.

Цепочка блоков

Или такая.

Цепочка блоков

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

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

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

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

 

Чем блокчейн не является

Некоторые из обсуждающих блокчейны используют в качестве его синонимов слова «криптовалюта» и «распределённый реестр». — Ни тем, ни другим блокчейн не является!

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

 

Криптовалюта

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

Схема криптомонеты

 

Распределённый реестр

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

Схема распределенного реестра

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

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

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

 

Юридическая сторона дела

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

Существует чёткий признак юридически значимого действия — его подтверждение должно приниматься судом.

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

Основными нормативными документами по этому вопросу являются федеральный закон «Об электронной подписи» № 63-ФЗ от 25.03.2011 и ГОСТ Р 34.10-2012 «Информационная технология (ИТ). Криптографическая защита информации. Процессы формирования и проверки электронной цифровой подписи».

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

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

Цепочка блоков сама по себе не является ни криптовалютой, ни распределённым реестром.
 

Заключение

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

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

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

Область доверия к цепочке ограничивается областью действительности электронных подписей, использованных в ней.

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

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

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

 

P. S. О чём ещё мы пишем в нашем блоге: