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

Ruslan Ospanov 24 November 2022 Применение application, blockchain, cryptocurrencies, cryptography, алгоритм, алгоритмы, блокчейн, применение, криптография, криптографические протоколы 594

Недавно (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. Обзор используемых криптографических понятий в блокчейне

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

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

Ниже приведены некоторые из криптографических понятий, которые уже были хорошо проанализированы и реализованы в блокчейне.

Криптографическое понятие

Свойства

Реализация (ссылка)

Контроль доступа

Приватность данных

Hyperledger Fabric [62], FairAccess [92], [93]

Аккумулятор

Обеспечивает доказательство принадлежности, анонимность

Методы пакетной обработки для аккумуляторов в блокчейне [94]

Множественная (коллективная) подпись

Быстрая проверка подписи

Протестировано в Bitcoin [95]

 

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

Неотказуемость

Использовано в Bullteproof [96] и в Monero [58,65]

Децентрализованная авторизация

 

Приватность данных

BlendCAC [97], WAVE [98]

 

Схема шифрования

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

Kadena [99], Hyperledger Fabric [62], Tendermint [36]

Шифрование на основе идентификации

Нет инфраструктуры распределения открытых ключей

BAVP [100], BLIC [101]

Инкрементная криптография

Повышение эффективности

Kadena [99]

Низкоресурсная (легковесная) криптография

Быстрая, с меньшим потреблением памяти/энергии

LSB [102], EVCE [103]

Обфускация

Приватность

Протестировано в Bitcoin [104]

Забывчивая оперативная память

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

Solidus [105], EVORAM [106]

Забывчивая передача

Приватность данных

Searchain [107], [108]

Постквантовая криптография

Квантовая устойчивость

Постквантовый блокчейн [109], [110], [111]

Протокол доступа к данным без раскрытия запроса

Приватность данных

Частные запросы блокчейна на основе протоколов доступа к данным без раскрыти запроса [86]

Доказательство возможности восстановления

Восстановление облачных данных

Permacoin [112], Retricoin [113], Storj [114]

Разделение секрета

Приватность данных

SHARVOT [115], Wanchain [116]

Безопасные многосторонние вычисления

Приватность пиров и смарт-контракт

Enigma [117], Hawk [118], Wanchain [116]

Схемы подписи

Целостность и аутентификация

В каждом блокчейне, например, Multichain [64], CryptoNote [119]

Верифицируемая функция задержки

Меньше параллелизма, быстрая верификация

Chia [120]

Верифицируемая случайная функция

Верифицируемый псевдослучайный выход

Algorand [37], Ouroboros Praos [121], Dfinity [122]

White-Box криптография

Приватность данных

Самозащита во время выполнения в Blockchain Ledger [123]

Доказательство с нулевым разглашением

Приватность пользователей и данных

Zerocoin [124], Zerocash [57]

Таблица 5: Сводка криптографических понятий в блокчейне.

5.1 Схема подписи

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

Схема подписи используется в блокчейне для подписания транзакции, следовательно, для аутентификации предполагаемого отправителя и обеспечения целостности транзакции, а также неотказуемости отправителя. Многие из схем подписи широко используются для обеспечения целостности и анонимности в блокчейне. Цифровая подпись — один из наиболее важных криптографических примитивов, который делает блокчейн публично проверяемым и с достижимым консенсусом. Схемы подписи используются почти в каждом блокчейне. На рисунке 5 представлен общий пример того, как пользователь блокчейна (подписывающий) создает транзакцию или блок с цифровой подписью, используя свой закрытый ключ.

 

Рисунок 5: Процесс подписания транзакции/блока блокчейна

Кроме того, на рисунке 6 показано, как другие узлы блокчейна (проверяющие) проверяют, является ли подпись в транзакции или блоке действительной или нет, используя открытый ключ подписавшего.

 

Рисунок 6: Проверка транзакции/блока с цифровой подписью

Блокчейн применяет различные схемы подписи для обеспечения дополнительных функций, таких как приватность, анонимность и невозможность установления связи. Схема подписи также может применяться для создания подписи постоянного размера с использованием агрегации подписей. Подписи Шнорра — это форма агрегации подписей, которая используется в биткойнах вместо P2SH [125] для масштабируемости [126]. Вот некоторые из схем подписи, применяемых в блокчейне:

1. Мультиподпись. В схеме мультиподписи группа пользователей подписывает одно сообщение. В сети блокчейн, когда транзакция требует подписи группы участников, может быть выгодно использовать схему с несколькими подписями. Блокчейн-платформы, такие как Openchain [127] и MultiChain [64], поддерживают схему мультиподписи M из N, которая снижает риск кражи, допуская компрометацию до M-1 криптографических ключей. Boneh и др. также разработал компактные мультиподписи для небольших блокчейнов [128].

2. Слепая подпись: в этой схеме [129] подписи используются в протоколах, связанных с приватностью, где подписывающая сторона и авторы сообщения (транзакция в случае блокчейна) являются разными сторонами. Слепые подписи используются для обеспечения несвязываемости и анонимности транзакции. В настройке блокчейна слепая подпись может быть полезна для обеспечения анонимности и невозможности установления связи, когда сторона транзакции и сторона подписи различны. Слепые подписи использовались в распределенной сети микширования BlindCoin [130] для обеспечения несвязываемости транзакций. Слепые подписи также тестируются в биткойнах, чтобы обеспечить анонимность Bitcoin on-chain и off-chain транзакций [131].

3. Кольцевая подпись: в этой схеме [132] используется протокол, в котором подпись создается для сообщения любым членом группы от имени группы c сохранением личности отдельного лица, подписавшего подпись. Кольцевые подписи используются для обеспечения анонимности подписывающей стороны в сети блокчейн. Технология CryptoNote [119] использует схему кольцевой подписи для создания неотслеживаемых платежей в криптовалютах. Платформа микширования без доверия [133] также использует кольцевую подпись для анонимности.

4. Пороговая подпись: эта схема подписи представляет собой (t; n) пороговую подпись, при которой n сторон получают часть секретного ключа для создания подписи, и t из n сторон создают подпись над любым сообщением. Поскольку стороны напрямую строят подпись из долей, ключ никогда не раскрывается во всей схеме. Пороговая подпись может быть полезна для обеспечения анонимности в сети блокчейн. CoinParty [134] использует пороговую схему подписи для многостороннего микширования биткойнов. Недавняя работа о миксере монет, ShareLock [135], использует пороговый ECDSA (алгоритм цифровой подписи на эллиптических кривых [136]), чтобы обеспечить решение, повышающее приватность для криптовалют. Однако пороговые подписи ECDSA сложны из-за сложностей алгоритма подписи. Другие схемы подписи, такие как EdDSA (алгоритм цифровой подписи на основе кривой Эдвардса [137]), использующий кривую Эдвардса25519, являются эффективными пороговыми подписями. Блокчейн Libra [43] применяет этот EdDSA во время генерации нового адреса аккаунта.

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

Исследовательская проблема 9. Разработать протоколы безопасности, объединяющие существующие стандартизированные и узаконенные системы PKI с некоторыми из разработанных систем блокчейна.

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

Что касается Исследовательской проблемы 10, недавно было повторно запущено предложение Хранилища. Его цель — защитить биткойн-кошелек от кражи без необходимости хард-форка [138]. Однако для других систем блокчейна такого предложения или решения не существует.

Related Post