Русский
Русский
English
Статистика
Реклама

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

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

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

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

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

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

image

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

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

Особенности использования Протокола с нулевым разглашением секрета

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

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

Шаги раунда:
1. Доказывающий производит генерацию одноразового секретного ключа, а также одноразового открытого ключа, который затем отправляет Проверяющему;
2. Проверяющий получает одноразовый открытый ключ от Доказывающего и затем производит генерацию случайного бита, который затем посылает Доказывающему;
3. Доказывающий получает бит информации и производит над ним вычисления.

Получившийся результат Доказывающий отправляет Проверяющему для проверки.

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

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

Основными проблемами при использовании протоколов с нулевым разглашением секрета являются:
1. Требуемая длина открытого ключа;
2. Уверенность в том, что секрет не был разглашен каким-то другим способом.

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

Протокол zkSNARKs

zkSNARKs означает неинтерактивный аргумент знания с нулевым разглашением.

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

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

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

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

zkSNARKs состоит из 3 алгоритмов: G, P и V.

Генератор (C программа, input, которая не должна раскрываться (конфиденциально)):

(pk,vk) = G(,C)

Доказывающий (x общедоступный input, w секретное заявление, которое нужно доказать, но не рассказывать):

= P(pk,x,w) доказательство prf

Проверяющий:

V(vk,x,) == ( w s.t.C(x,w)) true или false

G является генератором ключей, принимающим input (который не должен раскрываться ни при каких обстоятельствах) и программу C. Затем генерируется два общедоступных ключа: ключ проверки pk (для пруфера) и доказательный ключ vk (для верификатора). Эти ключи являются доступными для любой из заинтересованных сторон.

P это тот, кто будет использовать 3 элемента в качестве входных данных. Проверяющий ключ pk, случайный input x, который является общедоступным, и заявление, которое нужно доказать, но не рассказывать, что это на самом деле. Назовем этого оператора w. Алгоритм P порождает доказательство prf такое, что: prf = P (pk,x,w).

Алгоритм верификатора V возвращает логическую переменную. Логическая переменная имеет только два варианта: она может быть TRUE (правда) или FALSE (ложь). Итак, верификатор принимает ключ, input X и доказательство prf в качестве входных данных, таких как: V(vk,x,prf). А затем определяет, правда это или ложь.

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

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

Протокол zkSTARKs

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

zkSTARKs не полагаются на пары закрытых и открытых ключей (такие как ECDSA), но полагаются на хеширование для интерактивных решений, устойчивое к столкновениям,, и случайную модель оракула (которая обычно используется вместо общих криптографических хеш-функций, где для вывода оракула требуются строгие предположения о случайности) для неинтерактивных доказательств (zknSTARKs, n = неинтерактивный), поэтому zkSTARKs могут быть устойчивы к атакам квантовых компьютеров.

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

Можно выделить четыре категории, связанные с масштабируемостью (результаты, полученные из документа zkSTARKs):
1. Сложность арифметической схемы (в системах zkSNARK и zkSTARK код для создания программ zk написан таким образом, чтобы они могли разбить на схемы, а затем вычислить фактически сложность схемы выше ее вычислительной эффективности;
2. Сложность связи (по мере роста объема вычислений растет и сложность связи zkSNARK линейным способом, в отличие от zkSTARKs, который растет незначительно с ростом размера вычислений);
3. Доказательная сложность (zkSTARKs по сравнению с zkSNARK примерно в 10 раз быстрее, чем размер вычислений);
4. Сложность верификатора (По мере роста объема вычислений zkSTARKs растут лишь незначительно по сравнению с zkSNARK, которые имеют тенденцию к линейному росту, что является существенным преимуществом zkSTARKs по сравнению с zkSNARK, когда дело доходит до установки времени).

Протокол zkSTARKs планировали использовать в Ethereum в проверяемых вычислениях и потенциально безопасных / анонимных транзакциях, а также в приложениях Dapps, где важна конфиденциальность, таких как веб-браузер Brave, использующий токен Basic Attention.

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

Технология Bulletproofs

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

Технология Bulletproofs основана на работах Джонатана Бутла (Jonathan Bootle) и других авторов от 2016 года, посвященных повышению эффективности использования дискретного логарифмирования, которое лежит в основе доказательства с нулевым разглашением. и представляет собой более эффективную форму этого самого доказательства.

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

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

По сравнению с технологией ZKP, которая требует больших вычислительных мощностей, технология Bulletproofs примерно в 10 раз быстрее, так как позволяет проводить транзакции без обмена платежными данными.
Ключевые пункты по данной технологии (протоколу):
в основе технологии Bulletproofs лежат общие принципы доказательства с нулевым разглашением (как и в zkSNARKs);
технология может использоваться для расширения многосторонних протоколов, таких как мультиподписи или условные платежи с нулевым знанием;
Bulletproofs предоставляет гораздо более эффективную версию доказательств диапазона конфиденциальных транзакций (при использовании пакетной верификации скорость проверки увеличивается более чем в 23 раза);
такие доказательства диапазона могут быть объединены внутри транзакции, при этом её размер будет расти логарифмически;
при должном агрегировании, таком как Provisions, пакетная верификация дает более чем 120-кратный прирост скорости по сравнению с прежними доказательствами.

Сравнительная таблица характеристик протоколов

Составим сравнительную таблицу с характеристиками рассмотренных протоколов с нулевым разглашением секрета

image

Выводы

1. zk-SNARKs и zk-STARKs имеют множество областей применения, в том числе для целей реализации простых электронных подписей, а также создания систем электронного документооборота, предполагающего обеспечение конфиденциальности информации.
2. В целом, протоколы с нулевым разглашением являются очень перспективными и становятся более практичными для использования в системах на основе технологии распределенного реестра. На данный момент каждая реализация по-своему выделяется, однако, все они требуют ресурсов, и существует необходимость в эффективных решениях с нулевым диапазоном знаний.
3. Одним из недостатков, на наш взгляд, выступает отсутствие реализации Протокола с нулевым разглашением секрета, использующего отечественные криптографические алгоритмы и средства криптографической защиты информации, что является существенным ограничением для применения протокола (к примеру, для обработки информации, защищаемой в соответствии с законодательством Российской Федерации).

Список литературы
1. ГОСТ 34.13-2018 Информационная технология (ИТ). Криптографическая защита информации. Режимы работы блочных шифров // docs.cntd.ru URL: docs.cntd.ru/document/1200161709 (дата обращения: 31.05.2020);
2. Recommendation for Key Management Part 1: General // nvlpubs.nist.gov URL: nvlpubs.nist.gov/nistpubs/SpecialPublications/NIST.SP.800-57pt1r5.pdf (дата обращения: 11.05.2020);
3. ГОСТ Р ИСО/МЭК 12207-2010 // docs.cntd.ru/ URL: docs.cntd.ru/document/gost-r-iso-mek-12207-2010 (дата обращения: 11.05.2020);
4. Recommendation for Cryptographic Key Generation // nvlpubs.nist.gov/ URL: nvlpubs.nist.gov/nistpubs/SpecialPublications/NIST.SP.800-133r1.pdf (дата обращения: 11.05.2020);
5. Recommendation for Key Management Part 2 Best Practices for Key Management Organizations // nvlpubs.nist.gov URL: nvlpubs.nist.gov/nistpubs/SpecialPublications/NIST.SP.800-57pt2r1.pdf (дата обращения: 11.05.2020);
6. Security Requirements for Cryptographic Modules // nvlpubs.nist.gov URL: nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.140-2.pdf (дата обращения: 11.05.2020);
7. Payment Card Industry (PCI) Data Security Standard // pcisecuritystandards.org URL: www.pcisecuritystandards.org/documents/PCI_DSS_v3-2-1.pdf?agreement=true&time=1589494129851 (дата обращения: 11.05.2020);
8. Управление ключами шифрования и безопасность сети // intuit.ru URL: www.intuit.ru/studies/courses/553/409/info (дата обращения: 11.05.2020).
9. Базовые конструкции протоколов распределения ключей // cryptowiki.net/ URL: cryptowiki.net/index.php?title=Базовые_конструкции_протоколов_распределения_ключей (дата обращения: 11.05.2020);
10. Kerberos_(protocol) // en.wikipedia.org URL: en.wikipedia.org/wiki/Kerberos_(protocol) (дата обращения: 11.05.2020)
11. RFC5280 Internet X.509 Public Key Infrastructure Certificate and Certificate Revocation List (CRL) Profile;
12. Recommendation for Key Management Part 3: Application-Specific Key Management Guidance // nvlpubs.nist.gov URL: nvlpubs.nist.gov/nistpubs/SpecialPublications/NIST.SP.800-57Pt3r1.pdf (дата обращения: 11.05.2020);
13. Blockchain reference architecture // ibm.com URL: www.ibm.com/cloud/architecture/files/blockchain-architecture-diagram.pdf (дата обращения: 24.05.2020).
14. Key management // cloud.ibm.com URL: cloud.ibm.com/docs/blockchain?topic=blockchain-ibp-security (дата обращения: 24.05.2020);
15. Воронов, Д. С. Обзор требований безопасности для криптографических модулей / Д. С. Воронов. Текст: непосредственный // Молодой ученый. 2016. 1 (105). С. 141-143. URL: moluch.ru/archive/105/24663 (дата обращения: 31.05.2020).
16. CKMS Система управления криптографическими ключами // www.cryptomathic.com URL: www.cryptomathic.com/hubfs/Documents/Product_Sheets/Cryptomathic_CKMS_-_Product_Sheet.pdf (дата обращения: 31.05.2020);
17. Аппаратные модули безопасности HSM // www.croc.ru URL: www.croc.ru/promo/insafety/design/hardware-security-module (дата обращения: 31.05.2020);
18. Функционально технические требования к HSM // cbr.ru URL: cbr.ru/Content/Document/File/104755/FT_35.pdf (дата обращения: 30.05.2020);
19. AWS Key Management Service // aws.amazon.com URL: aws.amazon.com/ru/kms (дата обращения: 30.05.2020);
20. Руководящий документ. Безопасность информационных технологий. Критерии оценки безопасности информационных технологий // zakonbase.ru URL: zakonbase.ru/content/part/1250444 (дата обращения: 31.05.2020);
21. Diffie Hellman Protocol // mathworld.wolfram.com URL: mathworld.wolfram.com/Diffie-HellmanProtocol.html (дата обращения: 31.05.2020);
22. STS Protocol // archive.dimacs.rutgers.edu URL: archive.dimacs.rutgers.edu/Workshops/Security/program2/boyd/node13.html (дата обращения: 31.05.2020);
23. The Needham-Schroeder Protocol // www.cs.utexas.edu URL: www.cs.utexas.edu/~byoung/cs361/lecture60.pdf (дата обращения: 31.05.2020);
24. Otway Rees protocol // www.lsv.fr URL: www.lsv.fr/Software/spore/otwayRees.pdf (дата обращения: 31.05.2020);
25. Payment Card Industry (PCI) PTS HSM Security Requirements // www.pcisecuritystandards.org URL: www.pcisecuritystandards.org/documents/PTS_HSM_Technical_FAQs_v3_May_2018.pdf (дата обращения: 31.05.2020);
26. Что такое zk-SNARK? // z.cash/ru URL: z.cash/ru/technology/zksnarks (дата обращения: 31.05.2020);
27. Что такое zk-SNARKs и zk-STARKs? // academy.binance.com/ru URL: academy.binance.com/ru/blockchain/zk-snarks-and-zk-starks-explained (дата обращения: 31.05.2020);
28. Bulletproofs: Short Proofs for Confidential Transactions and More // web.stanford.edu URL: web.stanford.edu/~buenz/pubs/bulletproofs.pdf (дата обращения: 31.05.2020);
29. Что такое технология распределенного реестра Автор Татьяна Чепкова // beincrypto.ru URL: beincrypto.ru/learn/chto-takoe-tehnologiya-raspredelennogo-reestra (дата обращения: 31.05.2020);
30. 12 консенсус-протоколов для распределенных систем // dou.ua URL: dou.ua/lenta/articles/12-konsensus-protocols (дата обращения: 31.05.2020);
31. СТ РК ISO/IEC 11770-1-2017. Информационные технологии Методы обеспечения безопасности Менеджмент ключей Часть 1 СТРУКТУРА // www.egfntd.kz URL: www.egfntd.kz/rus/tv/391980.html?sw_gr=-1&sw_str=&sw_sec=24 (дата обращения: 31.05.2020);
32. Consensus algorithm // whatis.techtarget.com URL: clck.ru/Nvade (дата обращения: 31.05.2020);
33. Introduction to Zero Knowledge Proof: The protocol of next generation Blockchain // medium.com URL: medium.com/@kotsbtechcdac/introduction-to-zero-knowledge-proof-the-protocol-of-next-generation-blockchain-305b2fc7f8e5 (дата обращения: 31.05.2020).
Источник: habr.com
К списку статей
Опубликовано: 13.10.2020 16:15:52
0

Сейчас читают

Комментариев (0)
Имя
Электронная почта

Блог компании россельхозбанк

Криптография

Конфиденциальность

Категории

Последние комментарии

  • Имя: Макс
    24.08.2022 | 11:28
    Я разраб в IT компании, работаю на арбитражную команду. Мы работаем с приламы и сайтами, при работе замечаются постоянные баны и лаги. Пацаны посоветовали сервис по анализу исходного кода,https://app Подробнее..
  • Имя: 9055410337
    20.08.2022 | 17:41
    поможем пишите в телеграм Подробнее..
  • Имя: sabbat
    17.08.2022 | 20:42
    Охренеть.. это просто шикарная статья, феноменально круто. Большое спасибо за разбор! Надеюсь как-нибудь с тобой связаться для обсуждений чего-либо) Подробнее..
  • Имя: Мария
    09.08.2022 | 14:44
    Добрый день. Если обладаете такой информацией, то подскажите, пожалуйста, где можно найти много-много материала по Yggdrasil и его уязвимостях для написания диплома? Благодарю. Подробнее..
© 2006-2024, personeltest.ru