Недавно (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 Схема обязательств (перевод здесь)
5.8 Аккумулятор (перевод здесь)
5.9 Забывчивая передача
Забывчивая передача — это двухсторонний протокол между отправителем S и получателем R. Общий тип забывчивой передачи — это k-из-n забывчивая передача -OT, где k < n, в котором S содержит n сообщений и R извлекает одновременно k из них, не сообщая S о том, какие k из n сообщений R получил. Забывчивая передача введена Рабином [157], в которой отправитель посылает сообщение получателю с вероятностью . Протокол называется -OT и выглядит следующим образом:
1. Отправитель S выбирает два больших простых числа p, q и вычисляет N = pq, а затем отправитель генерирует открытый ключ RSA (e, N ), такой, что e взаимно простое с (p - 1)(q - 1).
2. S вычисляет зашифрованный текст c сообщения M как и посылает e, N, c к получателю R.
3. R выбирает случайное и отправляет S.
4. S вычисляет четыре квадратных корня a по модулю N, случайным образом выбирает один из корней y и отправляет его R.
5. R проверяет, является ли , и если , то R сможет разложить N на множители и, следовательно, сможет расшифровать c, чтобы восстановить M.
-OT является полной для безопасных многосторонних вычислений. Забывчивая передача была реализована в безопасных многосторонних вычислениях для создания частных и проверяемых смарт-контрактов на блокчейне [158]. Забывчивая передача также может использоваться для обмена секретами, поиска частной информации и создания протоколов для подписания контрактов. Было проделано много работы по забывчивой передаче, и некоторые из этих работ были применены в блокчейнах, таких как Searchain [107] и APDB [108] (для автоматического наказания за утечку данных с использованием криптодополненных смарт-контрактов).