Недавно (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 Забывчивая передача (перевод здесь)
5.10 Забывчивая оперативная память (перевод здесь)
5.11 Доказательство возможности восстановления (POR) (перевод здесь)
5.12 Постквантовая криптография (перевод здесь)
5.13 Низкоресурсная (легковесная) криптография (перевод здесь)
5.14 Верифицируемая случайная функция (VRF) (перевод здесь)
5.15 Обфускация (перевод здесь)
6 Перспективные, но еще не использованные криптографические примитивы в блокчейне
6.1 Множественная (коллективная) подпись (перевод здесь)
6.2 Шифрование на основе идентификационных данных (IBE) (перевод здесь)
6.3 Верифицируемая функция задержки (VDF)
Верифицируемая функция задержки (VDF) — это функция f: X → Y, для вычисления которой требуется заданное количество последовательных шагов; однако вывод может быть легко проверен кем угодно. Эта функция задержки не позволяет злоумышленникам вычислять случайный вывод, а также предоставляет короткое доказательство, которое используется во время проверки вывода вместе с ранее сгенерированными общедоступными параметрами. Boneh и др. описал понятие VDF [179], а также проиллюстрировал идею о том, как его можно применить к блокчейну. Верифицируемую функцию задержки можно эффективно использовать как способ добавления задержки в децентрализованных приложениях. Верифицируемую функцию задержки можно использовать в приложениях децентрализованных систем, например, в процессе выборов лидеров механизмов консенсуса, создания маяков случайности и доказательств репликации.
Функция задержки изначально была реализована в прототипе Ethereum [180], где основной идеей была проверка функций задержки посредством смарт-контракта с использованием многораундового протокола. После реализации этого прототипа понятие верифицируемой функции задержки была предложена Boneh и др. В настоящее время несколько блокчейн-проектов пытаются использовать верифицируемую функцию задержки в своих механизмах консенсуса. Chia Network [120], представляющая собой блокчейн с открытым исходным кодом, пытается использовать верифицируемую функцию задержки в своем механизме консенсуса «Доказательство пространства и времени». Ethereum также пытается разработать генератор псевдослучайных чисел с использованием верифицируемой функции задержки. Таким образом, верифицируемая функция задержки дает возможность копать глубже и быть использованным в области блокчейна.
Исследовательская проблема 15 ([181]) Поиск простой постквантовой безопасной верифицируемой функции задержки для использования блокчейна.