Метод сокрытия приватных данных для блокчейн-системы проведения тендеров | ПДМ. Приложение. 2020. № 13. DOI: 10.17223/2226308X/13/26

Метод сокрытия приватных данных для блокчейн-системы проведения тендеров

Предложен новый метод, позволяющий решить проблему приватности информации в открытых блокчейн-системах с использованием криптографического протокола доказательства с нулевым разглашением zk-SNARK. Метод реализован в виде криптографической схемы на основе библиотеки libsnark и интегрирован в модифицированный Ethereum С++ клиент.

Method for hiding private data in the block-chain tender system.pdf На сегодняшний день большинство конкурсных закупок и электронных торгов проводятся через специализированные информационные системы. В таких системах участники должны быть уверены в том, что никто не имеет возможности нарушить правила проведения тендера или получить доступ к конфиденциальной информации. Решить проблему доверия при проведении тендеров позволяет блокчейн. Однако при использовании этой технологии все данные сохраняются в открытом виде и доступны всем участникам. В случае с тендерами открытость информации нарушает тайну заявок, которая должна быть сохранена до окончания этапа запроса предложений. Ранее была разработана блокчейн-система для проведения тендеров с шифрованием заявок [1]. Однако такой подход не позволяет проверить корректность зашифрованной заявки в момент её подачи. Ещё одним недостатком является то, что все участники могут наблюдать факт подачи заявки пользователем. В данной работе предложена и реализована система тендеров, которая удовлетворяет критериям безопасности, открытости и конфиденциальности. Вопрос доверия решён с помощью технологии блокчейн, а сокрытие приватной информации - с помощью криптографического протокола неинтерактивного доказательства знания с нулевым разглашением zk-SNARK [2]. Система основана на платформе Ethereum. Вся ключевая информация о тендерах сохраняется в блокчейне, а проверка правил и отслеживание выполнения условий участниками реализованы в виде кода смарт-контрактов. Для реализации алгоритма сокрытия информации о заявках в Ethereum C+-+ клиент добавлен отдельный модуль tenderzkp. Он построен на базе протокола zk-SNARK с предобработкой для NP-полного языка системы ограничений ранга 1. Протокол использует эллиптическую кривую Баррето - Наерига. Реализация криптографической схемы предоставлена библиотекой libsnark [3]. В модуле tenderzkp реализованы функции создания и верификации доказательства о корректности заявки. Доказательство строится на основе ограничений на приватные и открытые входные данные заявки, выраженных с помощью базовых схем библиотеки libsnark. Для работы с добавленной криптографической схемой в Ethereum C++ клиент созданы новые предкомпилированные контракты с адресами 0x00... 09 и 0x00... 0a и разработана Solidity-библиотека, которая инкапсулирует низкоуровневое взаимодействие с предкомпилированными контрактами и предоставляет интерфейс для работы с ними в виде Solidity-функций. Чтобы добавить возможность вызывать методы разработанной криптографической схемы из сторонних приложений, расширен JSON-RPC API Ethereum клиента. Предложенный метод может быть использован не только для тендеров, но и в других системах, где есть необходимость скрывать часть информации в открытой блокчейн-сети. Он расширяет область применения технологии блокчейн в промышленных программных комплексах.

Ключевые слова

тендеры, распределённые системы, блокчейн, доказательство с нулевым разглашением, zk-SNARK, платформа Ethereum, tenders, distributed systems, blockchain, zero-knowledge proof, zk-SNARK, Ethereum platform

Авторы

ФИООрганизацияДополнительноE-mail
Кондырев Дмитрий ОлеговичНовосибирский государственный университет ; Лаборатория криптографии JetBrains Research; Институт математики им. С. Л. Соболева СО РАНаспирант факультета информационных технологий; исследователь; младший научный сотрудникdkondyrev@gmail.com
Всего: 1

Ссылки

Hardwick F. S., Akram R. N., and Markantonakis K. Fair and transparent blockchain based tendering framework - A step towards open governance // IEEE Intern. Conf. TrustCom/BigDataSE, New York, USA, 2018. P. 1342-1347.
Ben-Sasson E., Chiesa A., Genkin D., et al. SNARKs for C: Verifying program executions succinctly and in zero knowledge // CRYPTO'2013. LNCS. 2013. V.8043. P. 90-108.
https://github.com/scipr-lab/libsnark - libsnark: a C++ library for zkSNARK proofs.
 Метод сокрытия приватных данных для блокчейн-системы проведения тендеров | ПДМ. Приложение. 2020. № 13. DOI: 10.17223/2226308X/13/26

Метод сокрытия приватных данных для блокчейн-системы проведения тендеров | ПДМ. Приложение. 2020. № 13. DOI: 10.17223/2226308X/13/26