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

Ruslan Ospanov 03 December 2022 Применение application, алгоритм, криптография, алгоритмы, применение, blockchain, блокчейн, cryptocurrencies, cryptography, криптовалюты, криптографические протоколы 323

Недавно (20 июня 2019 года) на Cryptology ePrint Archive была опубликована статья "SoK of Used Cryptography in Blockchain". Данный пост - двадцать второй в запланированной серии, содержащей любительский перевод этой статьи.

 

Систематизация знаний по используемой криптографии в блокчейне

(перевод с английского

статьи

Mayank Raikwar, Danilo Gligoroski and Katina Kralevska

SoK of Used Cryptography in Blockchain

Cryptology ePrint Archive, Report 2019/735

https://eprint.iacr.org/2019/735)

 

Аннотация

(перевод аннотации здесь)

1 Введение (перевод введения здесь)

1.1 Наш вклад (перевод здесь)

2 Методология исследования (перевод здесь)

3 Основные понятия блокчейна

3.1 Криптографическая хэш-функция (перевод здесь)

3.2 Механизмы консенсуса (перевод здесь)

3.3 Сетевая инфраструктура (перевод здесь)

3.4 Типы блокчейна (перевод здесь)

4 Проблемы в блокчейн

4.1 Безопасность и приватность (перевод здесь)

4.2 Проблемы масштабируемости (перевод здесь)

4.3 Форкинг (перевод здесь)

4.4 Производительность (перевод здесь)

4.5 Энергопотребление (перевод здесь)

4.6 Инфраструктурные зависимости (перевод здесь)

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

5.1 Схема подписи (перевод здесь)

5.2 Доказательства с нулевым разглашением (перевод здесь)

5.3 Контроль доступа (перевод здесь)

5.4 Схема шифрования (перевод здесь)

5.5 Безопасные многосторонние вычисления (перевод здесь)

5.6 Разделение секрета (перевод здесь)

5.7 Схема обязательств

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

1. Выберите секретное значение s для привязки от 0 до p-1, где p — большое простое число;

2. Вычислить значение .

3. Опубликуйте значение c как обязательство.

В приведенном выше примере свойство связывания следует из того, что отправитель не может найти любое другое значение y, которое дает то же самое c. Здесь нахождение значения s по известным c, p и g — сложная вычислительная задача дискретного логарифмирования, но любая сторона может проверить значение обязательства c, если указано s. Существует много схем обязательств, таких как обязательство Педерсена [155] и обязательство Педерсена на эллиптической кривой. Zerocoin [124] использует обязательство Педерсена для привязки серийного номера s к Zerocoin z. Обязательство c определяется следующим образом:

.

Здесь g, h и p всем известны, а пользователь выбирает s, z, вычисляет и публикует обязательство c. Эти sz не могут быть вычислены из c, даже если оно предоставлено. Как следствие, в Zerocoin, когда публикуется серийный номер s, пользователь может подтвердить свое право собственности, предоставив z. Обязательство Педерсена также использовалось для создания ориентированной на блокчейн системы проверки диапазона, Bulletproof [96] и ее версия на эллиптических кривых также успешно реализованы в Monero [65]. Схема обязательств переключения предназначена для конфиденциальных транзакций в блокчейне [156].

Related Post