Блокчейн. Принципы и основы

Александр Цихилов
100
10
(1 голос)
0 0

Аннотация: Большая часть информации, представленная на сегодняшний день по блокчейн, страдает отрывочностью, однобокостью или сложностью терминологии. Перед вами– первое систематизированное изложение темы блокчейн на русском языке, в котором автор технологически сложные концепции объясняет понятным языком. Помимо истории возникновения и описания технологии, в книге рассмотрены наиболее популярные проекты, реализованные на блокчейн, уже существующее и потенциальное применение в различных отраслях, а также проблематика взаимоотношений блокчейн-проектов и государств. Наконец, автор подробно разбирает самые востребованные и популярные темы– инвестиции в криптоактивы, связанные с ними риски и перспективы развития блокчейн. Книга адресована широкому кругу читателей и будет интересна как техническим специалистам, так и аудитории, далекой от финансовых и IT-технологий.

Книга добавлена:
18-11-2022, 00:46
0
557
65
Блокчейн. Принципы и основы

Читать книгу "Блокчейн. Принципы и основы"



Цифровая электронная подпись

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

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

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

Для формирования цифровой электронной подписи необходимо в первую очередь выбрать достаточно криптостойкий алгоритм асимметричной криптографии. Затем сформировать на его базе пару ключей – секретный и публичный. После чего вычислить хеш подписываемого блока данных, например, какого-то документа, предварительно выбрав подходящий алгоритм хеш-функции. Хеширование преследует две цели: защиту целостности исходных данных и создание их цифрового отпечатка в стандартизированной форме. После чего, имея хеш данных и закрытый ключ, мы запускаем алгоритм формирования ЭЦП и получаем на выходе результат в виде строки данных. Проверка подлинности подписи и целостности подписанных данных в различных алгоритмах шифрования математически отличается друг от друга. Однако общим принципом проверки является вычисление двух результатов, полученных разными способами, при этом для получения одного из них в обязательном порядке используется открытый ключ подписанта. Затем эти результаты сравнивают и в случае их неравенства делают вывод, что подпись подделана либо исходные данные претерпели изменения после подписания.

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

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

Помимо стандартной цифровой подписи, в различных реализациях блокчейн-проектов применяются некоторые экзотические ее формы. Например, «слепая подпись», которую еще называют «доказательством с нулевым разглашением». Алгоритм слепой подписи прост: один участник системы шифрует свое сообщение и посылает его другому участнику, который является доверенным узлом (доверенным для некоторого множества других узлов) в системе. Этот доверенный участник ставит свою подпись на зашифрованном сообщении, при этом фактически не имея понятия о его содержимом. После чего подписанное сообщение возвращается его исходному отправителю, который обратно дешифрует его, оставляя только подпись доверенного узла. Это можно было бы сравнить с ситуацией, когда доверенный участник получает заклеенный конверт, внутри которого, помимо листа с сообщением, находится также и копировальный лист. Получатель, не вскрывая конверт, ставит на него свою подпись, которая через копировальный лист автоматически отпечатывается на листе с сообщением. По возвращении конверта отправителю тот изымает из него подписанное сообщение, достигнув таким образом желаемого – получить подпись доверенного узла, не разглашая ему само сообщение. Подобную операцию можно провести и чисто математически, используя протоколы асимметричной криптографии, например, при помощи алгоритма факторизации RSA.

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

Еще одним интересным способом формирования ЭЦП является так называемая «кольцевая подпись». Еще в XVII столетии британские военные, подавая различные петиции с жалобами своему начальству, подписывали ее вокруг текста самого заявления. Столь необычная форма подписи использовалась для того, чтобы невозможно было выявить первого подписанта, которого командование всегда квалифицировало как главного зачинщика. Впоследствии этот способ переняли и американские военные, в частности, в конце XIX века во время войны с Испанией на Кубе. Когда появились электронные системы, позволяющие подписывать различные блоки данных, одновременно возникла необходимость в некоторых случаях маскировать конкретного подписанта в списке прочих потенциальных кандидатов. Для этого был разработан специальный математический алгоритм, формирующий определенный набор публичных ключей, связанных с различными участниками системы.

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

Наконец, существует система консолидации электронных подписей от различных участников, которая называется «мультиподпись». Бывают ситуации, когда возникает необходимость управлять цифровыми активами на базе принятия решения несколькими участниками системы одновременно. Например, имеется некий электронный счет, на котором лежит существенная денежная сумма, принадлежащая группе участников или даже юридическому лицу. Правилами системы задается общее количество управляющих счетом, а также процентное значение веса подписи каждого из них. Как вариант предполагается, что любой перевод с данного счета должен быть подтвержден не менее чем 60 % весового участия всех управляющих. В случае трех управляющих с равным весом подписи (у каждого по 33,3 %) необходимо не менее двух участников, которые бы поставили свою электронную подпись под транзакцией, пересылающей денежные средства (33,3 % × 2 = 66,6 % > 60 % – пороговое условие считается выполненным). Подобная практика в блокчейн-системах обусловлена технологической невозможностью отозвать совершенные транзакции. Поэтому каждое решение по переводу значительных сумм, находящихся в коллективном владении, должно исключать возможность злоупотреблений со стороны какого-то конкретного лица, допущенного к управлению счетом. Мультиподпись может быть реализована в блокчейн-проектах различными математическими методами на базе алгоритмов асимметричной криптографии.


Скачать книгу "Блокчейн. Принципы и основы" - Александр Цихилов бесплатно


100
10
Оцени книгу:
0 0
Комментарии
Минимальная длина комментария - 7 знаков.
Книжка.орг » Бизнес » Блокчейн. Принципы и основы
Внимание