ВОССТАНОВЛЕНИЕ ЗАШИФРОВАННОЙ ИНФОРМАЦИИ ТРАНЗАКЦИЙ В КОНФИДЕНЦИАЛЬНЫХ ТРАНЗАКЦИЯХ С ЦЕПОЧКАМИ БЛОКОВ Российский патент 2020 года по МПК H04L9/08 H04L9/32 H04L29/06 

Описание патента на изобретение RU2726157C1

Уровень техники

[0001] Системы распределенных реестров (DLS), которые также могут упоминаться как консенсусные сети и/или сети цепочек блоков (блокчейн), позволяют участвующим субъектам защищенно и неизменно сохранять данные. DLS обычно упоминаются как сети цепочек блоков независимо от конкретных пользовательских вариантов использования (например, криптовалют). Примерные типы сетей цепочек блоков могут включать в себя открытые сети цепочек блоков, закрытые сети цепочек блоков и консорциальные сети цепочек блоков. Открытая сеть цепочек блоков является общедоступной для всех субъектов в плане использования DLS и участия в консенсусном процессе. Закрытая сеть цепочек блоков предоставляется для конкретного субъекта, который централизованно управляет разрешениями на считывание и запись. Консорциальная сеть цепочек блоков предоставляется для выбранной группы субъектов, которые управляют консенсусным процессом, и включает в себя уровень управления доступом.

[0002] Цепочки блоков используются в криптовалютных сетях, которые позволяют участникам проводить транзакции, чтобы покупать/продавать товары и/или услуги с использованием криптовалюты. Общая криптовалюта включает в себя биткоин. В криптовалютных сетях, модели ведения записей используются для того, чтобы записывать транзакции между пользователями. Модели ведения записей примера включают в себя модель на основе непотраченного вывода по транзакциям (UTXO) и модель на основе счетов (также называемую "моделью на основе счетов" или "моделью на основе счетов/балансов").

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

[0004] Модель на основе счетов приспосабливается посредством эфириума. Модель на основе счетов выполняет ведение записей и управляет балансом счетов аналогично традиционному банку. Согласно этой модели, счет может иметь адрес и соответствующий баланс счета. Активы в цепочке представляются как баланс счета. Каждая транзакция перевода может иметь адрес счета переведенного актива и адрес счета принимаемого актива. Сумма транзакции непосредственно обновляется на балансе счета. Модель на основе счетов является эффективной, поскольку каждая транзакция, возможно, должна только проверять достоверность того, что отправляющий счет имеет достаточный баланс для того, чтобы оплачивать транзакцию. В дополнение к поддержке функции проверки достоверности и доказательства транзакций, модель на основе счетов может полностью поддерживать смарт-контракты, в частности, смарт-контракты, которые требуют информации состояния или заключают в себе несколько сторон.

Сущность изобретения

[0005] Реализации настоящего раскрытия включают в себя машинореализуемые способы для конфиденциальных транзакций на основе технологий работы с цепочками блоков (называемых "конфиденциальными транзакциями с цепочками блоков" либо просто "конфиденциальными транзакциями"). Более конкретно, реализации настоящего раскрытия направлены на восстановление зашифрованной информации транзакций в конфиденциальных транзакциях с цепочками блоков.

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

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

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

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

[0010] Эти и другие реализации в необязательном порядке могут включать в себя один или более следующих признаков:

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

[0012] Второй признак, комбинируемый с любым из предыдущих или последующих признаков, в котором одно или более доказательств с нулевым разглашением данных транзакции включают в себя одно или более доказательств по диапазону с нулевым разглашением касательно того, что значения данных транзакции находятся в пределах соответствующих диапазонов.

[0013] Третий признак, комбинируемый с любым из предыдущих или последующих признаков, в котором криптографическая схема обязательств включает в себя схему обязательств Педерсена; при этом формирование одного или более значений удостоверения конфиденциальной транзакции клиентского узла посредством применения криптографической схемы обязательств к данным транзакции включает в себя формирование одного или более значений удостоверения конфиденциальной транзакции клиентского узла на основе данных транзакции и случайных чисел, соответствующих данным транзакции; и при этом формирование зашифрованной информации транзакции для конфиденциальной транзакции включает в себя формирование зашифрованной информации транзакции для конфиденциальной транзакции посредством шифрования данных транзакции и случайных чисел, соответствующих данным транзакции, с использованием секретного ключа.

[0014] Четвертый признак, комбинируемый с любым из предыдущих или последующих признаков, в котором пороговая схема совместного использования секретов включает в себя схему совместного использования секретов Шамира.

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

[0016] Шестой признак, комбинируемый с любым из предыдущих или последующих признаков, в котором верификация одного или более доказательств с нулевым разглашением данных транзакции включает в себя: определение того, что баланс счета клиентского узла перед конфиденциальной транзакцией превышает нуль; и определение того, что сумма транзакции для конфиденциальной транзакции меньше или равна балансу счета клиентского узла перед конфиденциальной транзакцией.

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

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

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

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

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

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

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

Описание чертежей

[0024] Фиг. 1 иллюстрирует примерное окружение, которое может использоваться для того, чтобы выполнять реализации настоящего раскрытия.

[0025] Фиг. 2 иллюстрирует примерную концептуальную архитектуру в соответствии с реализациями настоящего раскрытия.

[0026] Фиг. 3 иллюстрирует примерный процесс 300 для подготовки конфиденциальной транзакции в соответствии с реализациями настоящего раскрытия.

[0027] Фиг. 4 иллюстрирует примерный процесс 400 восстановления информации транзакции для конфиденциальной транзакции в соответствии с реализациями настоящего раскрытия.

[0028] Фиг. 5 иллюстрирует примерный процесс, который может выполняться в соответствии с реализациями настоящего раскрытия.

[0029] Аналогичные ссылки с номерами на различных чертежах указывают аналогичные элементы.

Подробное описание изобретения

[0030] Реализации настоящего раскрытия включают в себя машинореализуемые способы для конфиденциальных транзакций на основе технологий работы с цепочками блоков. Более конкретно, реализации настоящего раскрытия направлены на восстановление зашифрованной информации транзакций в конфиденциальных транзакциях с цепочками блоков.

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

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

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

[0034] Чтобы предоставлять дополнительный контекст для реализаций настоящего раскрытия, и как представлено выше, системы распределенных реестров (DLS), которые также могут упоминаться как консенсусные сети (например, состоящие из узлов между равноправными узлами) и сети цепочек блоков, позволяют участвующим субъектам защищенно и неизменно проводить транзакции и сохранять данные. Хотя термин "цепочка блоков", в общем, ассоциирован с криптовалютной сетью биткоинов, цепочка блоков используется в данном документе, чтобы, в общем, означать DLS независимо от конкретных вариантов использования. Как представлено выше, сеть цепочек блоков может предоставляться в качестве открытой сети цепочек блоков, закрытой сети цепочек блоков или консорциальной сети цепочек блоков.

[0035] В открытой сети цепочек блоков, консенсусный процесс управляется посредством узлов консенсусной сети. Например, сотни, тысячи, даже миллионы субъектов могут взаимодействовать в открытой сети цепочек блоков, каждый из которых управляет, по меньшей мере, одним узлом в открытой сети цепочек блоков. Соответственно, открытая сеть цепочек блоков может считаться открытой сетью относительно участвующих субъектов. В некоторых примерах, большинство субъектов (узлов) должны подписывать каждый блок для того, чтобы блок был достоверным и добавлялся в цепочку блоков (распределенный реестр) сети цепочек блоков. Примерная открытая сеть цепочек блоков включает в себя сеть биткоинов, которая представляет собой платежную сеть между равноправными узлами. Сеть биткоинов использует распределенный реестр, называемый "цепочкой блоков". Тем не менее, как отмечено выше, термин "цепочка блоков" используется для того, чтобы, в общем, означать распределенные реестры без конкретной ссылки на сеть биткоинов.

[0036] В общем, открытая сеть цепочек блоков поддерживает открытые транзакции. Открытая транзакция совместно используется со всеми узлами в открытой сети цепочек блоков и сохраняется в глобальной цепочке блоков. Глобальная цепочка блоков представляет собой цепочку блоков, которая реплицируется по всем узлам. Таким образом, все узлы находятся в идеальном консенсусе состояния относительно глобальной цепочки блоков. Чтобы достигать консенсуса (например, соглашения с добавлением блока в цепочку блоков), консенсусный протокол реализуется в открытой сети цепочек блоков. Примерный консенсусный протокол включает в себя, без ограничения, доказательство выполнения работы (POW), реализуемое в сети биткоинов.

[0037] В общем, закрытая сеть цепочек блоков предоставляется для конкретного субъекта, который централизованно управляет разрешениями на считывание и запись. Субъект управляет тем, какие узлы имеют возможность участвовать в сети цепочек блоков. Следовательно, закрытые сети цепочек блоков, в общем, упоминаются в качестве сетей с контролируемым доступом, которые устанавливают ограничения касательно того, кому разрешается участвовать в сети, и касательно их уровня участия (например, только в определенных транзакциях). Различные типы механизмов управления доступом могут использоваться (например, существующие участники голосуют по добавлению новых субъектов, контролирующий орган может управлять допуском).

[0038] В общем, консорциальная сеть цепочек блоков является закрытой между участвующими субъектами. В консорциальной сети цепочек блоков, консенсусный процесс управляется посредством авторизованного набора узлов, причем один или более узлов управляются посредством соответствующего субъекта (например, финансового учреждения, страховой компании). Например, консорциум из десяти (10) субъектов (например, финансовых учреждений, страховых компаний) может управлять консорциальной сетью цепочек блоков, каждый из которых управляет, по меньшей мере, одним узлом в консорциальной сети цепочек блоков. Соответственно, консорциальная сеть цепочек блоков может считаться закрытой сетью относительно участвующих субъектов. В некоторых примерах, каждый субъект (узел) должен подписывать каждый блок для того, чтобы блок был достоверным и добавлялся в цепочку блоков. В некоторых примерах, по меньшей мере, поднабор субъектов (узлов) (например, по меньшей мере, 7 субъектов) должен подписывать каждый блок для того, чтобы блок был достоверным и добавлялся в цепочку блоков.

[0039] Реализации настоящего раскрытия подробнее описываются в данном документе со ссылкой на консорциальную сеть цепочек блоков. Тем не менее, предполагается, что реализации настоящего раскрытия могут быть реализованы в любом соответствующем типе сети цепочек блоков.

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

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

[0042] Технологии для защиты конфиденциальности для цепочки блоков могут включать в себя технологии для реализации конфиденциальной транзакции, чтобы защищать конфиденциальность содержимого транзакции. В конфиденциальной транзакции, содержимое транзакции является доступным или известным только для участников транзакции, но не для всех остальных посторонних субъектов. Например, конфиденциальная транзакция обеспечивает возможность только двум сторонам, принимающим участие в транзакции, иметь сведения по сумме транзакции, и внешним наблюдателям не позволяется знать эту информацию. Такие технологии для реализации конфиденциальных транзакций использованы, например, в MONERO и ZCASH.

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

[0044] Когда защита конфиденциальности добавлена в цепочку блоков (например, в контексте конфиденциальных транзакций), схема обязательств, такая как схема обязательств Педерсена, может использоваться для того, чтобы скрывать или шифровать определенную информацию транзакции клиентского узла. Информация транзакции может включать в себя, например, баланс счета пользователя перед транзакцией, сумму транзакции и/или другую информацию. Например, клиентский узел (также называемый "клиентом", "пользователем", "стороной" или "участником транзакции") может обеспечивать или удостоверять баланс a счета перед транзакцией и соответствующее случайное число r согласно схеме обязательств Педерсена. Клиентский узел может сохранять стоимость a и случайное число r. После того, как a или r, соответствующее удостоверения, потеряно, баланс на счету не может использоваться посредством клиентского узла. Например, в случае если a и r потеряны, клиентский узел не знает ни баланс a, ни случайное число r, соответствующее балансу. В случае если только r, но не a потеряно, клиентский узел может знать баланс t, но не может использовать собственный баланс, поскольку использование баланса заключает в себе операции r. В случае если a потеряно, клиент не знает собственного баланса. Клиентский узел не может реконструировать или восстанавливать сумму a в виде простого текста, если вычислительная мощность клиентского узла ограничена.

[0045] Примерные технологии описываются, чтобы разрешать вышеописанную проблему, когда схема обязательств (например, схема обязательств Педерсена) используется для сокрытия или шифрования информации транзакции. Описанные технологии могут позволять и упрощать для клиентского узла восстановление исходной информации транзакции в виде простого текста (например, удостоверенной стоимости a и/или случайного числа r) в случае, если такая информация транзакции потеряна.

[0046] Описанные технологии включают в себя схему восстановления для восстановления скрываемой информации транзакции (например, удостоверенной стоимости a транзакции, которая потеряна) в конфиденциальных транзакциях с цепочками блоков. В некоторых реализациях, описанные технологии включают в себя сохранение скрываемой информации транзакции в одну или более цепочек блоков в сети цепочек блоков. В некоторых реализациях, скрываемая информация транзакции для конфиденциальной транзакции, сохраненная в цепочке блоков, может шифроваться. Информация перед шифрованием может упоминаться как информация в виде простого текста. Результирующая информация после шифрования может упоминаться как информация в виде шифруемого или зашифрованного текста.

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

[0048] В некоторых реализациях, клиентский узел может терять данные транзакции в виде простого текста и/или секретный ключ. Например, если клиентский узел сохраняет данные транзакции в виде простого текста и/или секретный ключ локально, в устройстве хранения данных клиентского узла, клиентский узел может терять данные транзакции в виде простого текста и/или секретный ключ, когда устройство хранения данных ломается или повреждается. Описанные технологии могут помогать восстанавливать данные транзакции в виде простого текста и/или секретный ключ.

[0049] В некоторых реализациях, секретный ключ клиентского узла может формироваться согласно пороговой схеме совместного использования секретов (например, схеме совместного использования секретов Шамира) для защищенного многостороннего вычисления (MPC). Например, закрытый секретный ключ, соответствующий удостоверения шифрования клиентского узла, может согласовываться и формироваться из общего числа участников (например, n участников) схемы совместного использования секретов Шамира. Секретный ключ может разделяться на несколько частей и сохраняться посредством общего числа участников, соответственно, за счет этого избегая утечки секретного ключа клиентского узла. В случае если клиентский узел теряет секретный ключ, клиентский узел может восстанавливать секретный ключ согласно схеме совместного использования секретов Шамира посредством приема, по меньшей мере, порогового числа частей (например, k частей) секретного ключа, по меньшей мере, от k из n участников. Соответственно, клиентский узел может восстанавливать секретный ключ и использовать секретный ключ для того, чтобы дешифровать данные транзакции в виде простого текста из зашифрованной информации транзакции с использованием секретного ключа.

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

[0051] Фиг. 1 иллюстрирует примерное окружение 100, которое может использоваться для того, чтобы выполнять реализации настоящего раскрытия. В некоторых примерах, примерное окружение 100 обеспечивает возможность субъектам участвовать в консорциальной сети 102 цепочек блоков. Примерное окружение 100 включает в себя вычислительные устройства или системы 106, 108 и сеть 110. В некоторых примерах, сеть 110 включает в себя локальную вычислительную сеть (LAN), глобальную вычислительную сеть (WAN), Интернет либо комбинацию вышеозначенного и соединяет веб-узлы, клиентские устройства (например, вычислительные устройства) и внутренние интерфейсные системы. В некоторых примерах, к сети 110 может осуществляться доступ по линии проводной и/или беспроводной связи.

[0052] В проиллюстрированном примере, вычислительные системы 106, 108 могут включать в себя любую соответствующую вычислительную систему, которая обеспечивает участие в качестве узла в консорциальной сети 102 цепочек блоков. Примерные вычислительные устройства включают в себя, без ограничения, сервер, настольный компьютер, переносной компьютер, планшетное вычислительное устройство и смартфон. В некоторых примерах, вычислительные системы 106, 108 размещают (хостят) одну или более машинореализуемых услуг для взаимодействия с консорциальной сетью 102 цепочек блоков. Например, вычислительная система 106 может хостить машинореализуемые услуги первого субъекта (например, клиента A), к примеру, система управления транзакциями, которую использует первый субъект для того, чтобы управлять своими транзакциями с одним или более других субъектов (например, других клиентов). Вычислительная система 108 может хостить машинореализуемые услуги второго субъекта (например, клиента B), к примеру, система управления транзакциями, которую использует второй субъект для того, чтобы управлять своими транзакциями с одним или более других субъектов (например, других клиентов). В примере по фиг. 1, консорциальная сеть 102 цепочек блоков представляется как сеть с равноправными узлами для узлов, и вычислительные системы 106, 108 предоставляют узлы первого субъекта и второго субъекта, соответственно, которые участвуют в консорциальной сети 102 цепочек блоков.

[0053] Фиг. 2 иллюстрирует примерную концептуальную архитектуру 200 в соответствии с реализациями настоящего раскрытия. Примерная концептуальная архитектура 200 включает в себя уровень 202 субъектов, уровень 204 предоставления хостящихся услуг и уровень 206 сети цепочек блоков. В проиллюстрированном примере, уровень 202 субъектов включает в себя три субъекта, субъект_1 (E1), субъект_2 (E2) и субъект_3 (E3), причем каждый субъект имеет соответствующую систему 208 управления транзакциями.

[0054] В проиллюстрированном примере, уровень 204 предоставления хостящихся услуг включает в себя интерфейсы 210 для каждой системы 208 управления транзакциями. В некоторых примерах, соответствующая система 208 управления транзакциями обменивается данными с соответствующим интерфейсом 210 по сети (например, по сети 110 по фиг. 1) с использованием протокола (например, протокола защищенной передачи гипертекста (HTTPS)). В некоторых примерах, каждый интерфейс 210 предоставляет соединение связи между соответствующей системой 208 управления транзакциями и уровнем 206 сети цепочек блоков. Более конкретно, интерфейсы 210 обмениваются данными с сетью 212 цепочек блоков уровня 206 сети цепочек блоков. В некоторых примерах, связь между интерфейсом 210 и уровнем 206 сети цепочек блоков проводится с использованием удаленных вызовов процедур (RPC). В некоторых примерах, интерфейсы 210 "хостят" узлы сети цепочек блоков для соответствующих систем 208 управления транзакциями. Например, интерфейсы 210 предоставляют интерфейс прикладного программирования (API) для доступа к сети 212 цепочек блоков.

[0055] Как описано в данном документе, сеть 212 цепочек блоков предоставляется в качестве сети с равноправными узлами, включающей в себя множество узлов 214, которые неизменно записывают информацию в цепочку 216 блоков. Хотя одна цепочка 216 блоков схематично проиллюстрирована, несколько копий цепочки 216 блоков предоставляются и поддерживаются в сети 212 цепочек блоков. Например, каждый узел 214 сохраняет копию цепочки блоков. В некоторых реализациях, цепочка 216 блоков сохраняет информацию, ассоциированную с транзакциями, которые выполняются между двумя или более субъектов, участвующих в консорциальной сети цепочек блоков.

[0056] Фиг. 3 иллюстрирует примерный процесс 300 для подготовки конфиденциальной транзакции в соответствии с реализациями настоящего раскрытия. Клиентские узлы A 302, B 304, C 306 и D 308 представляют участников пороговой схемы совместного использования секретов (также называемой "пороговой схемой совместного использования ключей"). Пороговая схема совместного использования секретов разрешает проблему управления безопасностью ключей посредством нескольких сторон. В качестве примерной схемы совместного использования секретов, схема совместного использования секретов Шамира (обозначаемая в качестве Shamir(k,n)) разделяет секретный ключ на n частей и назначает n частей для n участников, соответственно. Каждый участник имеет уникальный совместно используемую долю секретного ключа. Чтобы восстанавливать исходный секретный ключ, требуется минимальное или пороговое число частей. В пороговой схеме, это минимальное число, k, меньше общего числа частей, n. Другими словами, исходный секретный ключ может восстанавливаться, если, по меньшей мере, k частей секретного ключа собираются. Алгоритм Шамира может использовать, например, алгоритм лагранжевой разности или другие способы для того, чтобы восстанавливать секретный ключ.

[0057] Здесь, Shamir(k,n) означает то, что простой текст m шифруется и разделяется на n частей и, по меньшей мере, k частей, требуется для того, чтобы восстанавливать простой текст m. Как показано на фиг. 3, клиентский узел A 302 может формировать ключ, Akey, и разлагать Akey на четыре части. Клиентский узел A 302 может сохранять одну часть и предоставлять соответствующую часть каждому из клиентских узлов B 304, C 306 и D 308.

[0058] В некоторых реализациях, с точки зрения клиентского узла A 302, в 310, клиентский узел A 302 может согласовывать и получать секретный ключ, Akey, согласно схеме совместного использования секретов Шамира, обозначаемой в качестве Shamir(k,n), как описано выше. Значения k и n могут определяться, например, посредством клиентского узла A 302 или другой стороны на основе соображений безопасности и сложности. В примере, показанном на фиг. 3, n может быть равен 4 таким образом, что клиентские узлы A 302, B 304, C 306 и D 308 представляют собой участников схемы совместного использования секретов Шамира. В этом случае, k может быть равен 2 или 3 таким образом, что клиентский узел A 302 может восстанавливать секретный ключ, Akey, по меньшей мере, от 2 или 3 участников из всех участников, клиентских узлов A 302, B 304, C 306 и D 308. В качестве другого примера, k может быть равен 4, и n может превышать 4 таким образом, что клиентский узел A 302 может восстанавливать секретный ключ, Akey, по меньшей мере, от 4 участников из всех участников схемы совместного использования секретов Шамира.

[0059] В некоторых реализациях, клиентский узел A 302 представляет собой пример вычислительных систем 106, 108, соответствующих первому клиенту или субъекту, как описано на фиг. 1 и 2. Клиентский узел A 302 имеет соответствующий счет (например, открытый счет или закрытый счет) для транзакций по сети 350 цепочек блоков. Сеть 350 цепочек блоков может включать в себя несколько консенсусных узлов (к примеру, узлов 312 цепочки блоков на фиг. 3). В некоторых реализациях, клиентские узлы B 304, C 306 и D 308 могут представлять собой или не могут представлять собой клиентские узлы сети 350 цепочек блоков. Другими словами, клиентский узел A 302 может получать секретный ключ независимо из сети 350 цепочек блоков. Например, клиентский узел A 302 может получать секретный ключ из клиентских узлов B 304, C 306 и D 308 через связь вне сети 350 цепочки блоков.

[0060] В некоторых реализациях, клиентский узел A 302 может выполнять конфиденциальную транзакцию с другим клиентским узлом (например, клиентским узлом B 304) таким образом, что информация транзакции является просматриваемой или иным образом известной, только посредством клиентского узла A 302 и клиентского узла B 304, но не других сторон (например, клиентского узла C 306 или D 308 или узлов 312 цепочки блоков в сети 350 цепочек блоков).

[0061] На 320, клиентский узел A 302 создает конфиденциальную транзакцию, чтобы переводить сумму t в клиентский узел B 304. В некоторых реализациях, клиентский узел A 302 может конструировать содержимое конфиденциальной транзакции локально и отправлять содержимое конфиденциальной транзакции в сеть 350 цепочек блоков (например, в один или более узлов 312 цепочки блоков в сети 350 цепочек блоков).

[0062] В некоторых реализациях, конфиденциальная транзакция может конструироваться на основе схемы обязательств, чтобы скрывать данные транзакции (например, баланс счета перед транзакцией и сумму транзакции). Примерная схема обязательств включает в себя, без ограничения, схему обязательств Педерсена (PC). Например, клиентский узел A 302 формирует значение удостоверения на основе суммы t транзакции и случайного числа r с использованием PC. Например, значение удостоверения включает в себя зашифрованный текст, который может быть получен согласно PC(t)=rG+tH, где G и H могут быть генераторами эллиптической кривой, PC(t) является скалярным умножением точек кривой, t является значением, которое удостоверяется. Схема обязательств PC имеет гомоморфизм, т.е. PC(t1)+PC(t2)=PC(t1+t2). Держатели зашифрованного текста PC(t) могут верифицировать сумму t транзакции посредством использования случайного числа r. Хотя реализации настоящего раскрытия подробнее описываются в данном документе со ссылкой на PC, предполагается, что реализации настоящего раскрытия могут быть реализованы с использованием любой соответствующей схемы обязательств.

[0063] В примерной конфиденциальной транзакции, клиентский узел A 302 может удостоверять баланс a счета перед транзакцией и сумму t перевода. В некоторых реализациях, клиентский узел A 302 может формировать значение PC(a) удостоверения с использованием PC на основе баланса a счета перед транзакцией и соответствующего случайного числа ra. Аналогично, клиентский узел A 302 может формировать значение PC(t) удостоверения с использованием PC на основе баланса a счета перед транзакцией и соответствующего случайного числа rt. В некоторых реализациях, клиентский узел A 302 также может удостоверять то, он имеет достаточно денежных средств таким образом, что баланс a-t после транзакции больше или равен 0. Например, клиентский узел A 302 может формировать значение PC(a-t) удостоверения, например, на основе значений PC(a) и PC(t) удостоверения с учетом гомоморфного свойства PC. Значения удостоверения могут быть включены в содержимое конфиденциальной транзакции.

[0064] В некоторых реализациях, содержимое конфиденциальной транзакции может включать в себя одно или более доказательств с нулевым разглашением, чтобы обеспечивать возможность приемной стороне подтверждать то, что информация, которую отправляет отправляющая сторона, является достоверной. Доказательства с нулевым разглашением позволяют приемной стороне осуществлять означенное без фактического знания подтверждаемой информации. Доказательства с нулевым разглашением могут включать в себя доказательство по диапазону, к примеру, доказательство (a-t>0), доказательство (t>0) и доказательство (a>0) или другие типы доказательств. Доказательства с нулевым разглашением обеспечивают возможность приемной стороне (например, клиентскому узлу B) подтверждать то, что отправляющая сторона (например, клиентский узел A) имеет достаточно денежных средств для перевода (т.е. a-t>0), и то, что сумма перевода больше нуля, без знания либо баланса a, с которого переводится сумма, либо даже суммы t перевода.

[0065] В некоторых реализациях, для каждого удостоверения Педерсена, случайное число r и сумма t могут шифроваться с использованием секретного ключа, Akey, чтобы получать зашифрованную информацию транзакции, M=Akey(r, t). Зашифрованная информация M транзакции может быть включена в качестве части содержимого конфиденциальной транзакции.

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

[0067] После формирования содержимого транзакции, клиентский узел A 302 может отправлять содержимое конфиденциальной транзакции в сеть 350 цепочек блоков (например, в один или более узлов 312 цепочки блоков в сети 350 цепочек блоков). На 330, сеть 350 цепочек блоков может выполнять конфиденциальную транзакцию. В некоторых реализациях, конфиденциальная транзакция может выполняться посредством каждого узла 312 цепочки блоков в сети 350 цепочек блоков. Например, каждый узел 312 цепочки блоков может определять то, является или нет содержимое конфиденциальной транзакции легитимным, например, посредством верификации одного или более значений удостоверения и доказательств с нулевым разглашением, включенных в содержимое конфиденциальной транзакции. Например, каждый узел 312 цепочки блоков может верифицировать значения удостоверения посредством верификации PC(a)=PC(t)+PC(a-t), т.е. входные стоимости транзакции равны выходным стоимостям транзакции. Каждый узел 312 цепочки блоков может верифицировать доказательства с нулевым разглашением, например, на основе пуленепробиваемых доказательств, алгоритмов Monero RingCT или любых других подходящих алгоритмов.

[0068] В некоторых реализациях, после того, как значения удостоверения и доказательства с нулевым разглашением верифицированы, каждый из узлов 312 цепочки блоков может записывать транзакцию и обновлять счета клиентского узла A 302 и клиентского узла B 304. Например, после транзакции, клиентский узел A 302 имеет баланс a-t счета, и клиентский узел B 304 имеет баланс b+t счета. В некоторых реализациях, баланс после транзакции клиентского узла A 302 и клиентского узла B 304 может отражаться посредством прямых операций значения удостоверения вследствие гомоморфизма схемы обязательств. Например, клиентский узел A 302 теперь может иметь значение удостоверения баланса счета после транзакции PC(a-t)=PC(a)-PC(t). Клиентский узел B 304 теперь может иметь значение удостоверения баланса счета после транзакции PC(b+t)=PC(b)+PC(t).

[0069] В некоторых реализациях, каждый из узлов 312 цепочки блоков может записывать или сохранять зашифрованную информацию транзакции. Например, зашифрованная информация транзакции, соответствующая удостоверения PC(a), Ma=Akey(ra, a), и зашифрованная информация транзакции, соответствующая удостоверения PC(t) Mt=Akey(rt, t), могут записываться в цепочке блоков посредством каждого из узлов 312 цепочки блоков, при этом ra и rt представляют случайные числа, соответствующие сумме a и t, соответственно.

[0070] Фиг. 4 иллюстрирует примерный процесс 400 восстановления информации транзакции для конфиденциальной транзакции в соответствии с реализациями настоящего раскрытия. Например, в случае если клиентский узел A 302 теряет свой ключ, Akey, и в силу этого не знает сумму на соответствующем счету цепочки блоков. Клиентский узел A 302 может использовать примерный процесс 400 восстановления для того, чтобы восстанавливать сумму счета клиентского узла A 302.

[0071] На 410, клиентский узел A 302 получает зашифрованную информацию транзакции согласно схеме обязательств Педерсена (например, Ma=Akey(ra, a) и Mt=Akey(rt, t)), например, посредством загрузки или синхронизации с узлом 312 цепочки блоков. В некоторых реализациях, клиентский узел A 302 может сохранять локальную копию зашифрованной информации транзакции согласно схеме обязательств Педерсена.

[0072] На 420, клиентский узел A 302 может обмениваться данными с клиентскими узлами B 304, C 306 и D 308, например, чтобы восстанавливать ключ, Akey, согласно схеме совместного использования секретов Шамира, например, сети 350 цепочек блоков.

[0073] С восстановленным ключом, Akey, на 430, клиентский узел A 302 может дешифровать зашифрованную информацию транзакции, соответствующую каждому удостоверению Педерсена счета клиентского узла 302 (например, Ma=Akey(ra, a) и Mt=Akey(rt, t)). Затем клиентский узел A 302 может дешифровать зашифрованную информацию транзакции (например, Ma=Akey(ra, a) и Mt=Akey(rt, t)) с использованием восстановленного ключа, Akey, и получать информацию транзакции ra, a, rt и t в виде простого текста.

[0074] Фиг. 5 иллюстрирует примерный процесс 500, который может выполняться в соответствии с реализациями настоящего раскрытия. В некоторых реализациях, примерный процесс 500 может выполняться с использованием одной или более машиноисполняемых программ, выполняемых с использованием одного или более вычислительных устройств. Для ясности представления, нижеприведенное описание, в общем, описывает способ 500 в контексте других чертежей в этом описании. Например, клиентские узлы 510 могут включать в себя клиентский узел C 306 и клиентский узел D 312; узел 520 цепочки блоков может представлять собой узел 312 цепочки блоков; клиентский узел A 530 может представлять собой узел клиентский узел A 302; и клиентский узел B 540 может представлять собой узел клиентский узел B 304, как описано относительно фиг 3 и 4. Тем не менее, следует понимать, что способ 500 может осуществляться, например, посредством любой подходящей системы, окружения, программного обеспечения и аппаратных средств либо комбинации систем, окружений, программного обеспечения и аппаратных средств, надлежащим образом. В некоторых реализациях, различные этапы способа 500 могут выполняться параллельно, в комбинации, циклически или в любом порядке.

[0075] На 512, определенное число (например, n) клиентских узлов 510 формируют секретный ключ для клиентского узла (например, клиентского узла A 530) сети цепочек блоков. В некоторых реализациях, секретный ключ может согласовываться или иным образом формироваться посредством общего числа (например, n) клиентских узлов 510 согласно пороговой схеме совместного использования секретов, согласованной посредством общего числа клиентских узлов 510. В некоторых реализациях, пороговая схема совместного использования секретов содержит схему совместного использования секретов Шамира.

[0076] На 514, определенное число клиентских узлов 510 могут выдавать секретный ключ в клиентский узел A 530. Секретный ключ может использоваться посредством клиентского узла A 530 для шифрования и дешифрования информации транзакции для конфиденциальной транзакции клиентского узла A 530.

[0077] На 532, клиентский узел A 530 получает секретный ключ согласно пороговой схеме совместного использования секретов, согласованной посредством общего числа клиентских узлов 510 (например, общему числу участников схемы совместного использования секретов). Клиентский узел A 530 может использовать секретный ключ клиентского узла A 530, чтобы шифровать данные транзакции для конфиденциальной транзакции клиентского узла A 530. Конфиденциальная транзакция клиентского узла A 530, например, может представлять конфиденциальную транзакцию 535, такую как перевод суммы денежных средств со счета клиентского узла A 530 на счет клиентского узла B 540. Клиентский узел A 530 может конструировать содержимое конфиденциальной транзакции, чтобы защищать конфиденциальность данных транзакции и скрывать данные транзакции от проверки посредством других субъектов, отличных от участников транзакции (т.е. клиентского узла A 530 и клиентского узла B 540 в этом примере). В некоторых реализациях, клиентский узел A 530 может скрывать данные транзакции для конфиденциальной транзакции на основе схемы обязательств и с использованием секретного ключа, полученного согласно пороговой схеме совместного использования секретов.

[0078] В некоторых реализациях, данные транзакции для конфиденциальной транзакции содержат одно или оба из баланса счета клиентского узла A 530 перед конфиденциальной транзакцией либо суммы транзакции для конфиденциальной транзакции. В некоторых реализациях, данные транзакции для конфиденциальной транзакции могут включать в себя дополнительную информацию транзакции (например, время транзакции, стороны транзакции, тип активов (например, фондовая ценная бумага или другой тип)).

[0079] На 534, клиентский узел A 530 формирует одно или более значений удостоверения конфиденциальной транзакции клиентского узла A 530 посредством применения криптографической схемы обязательств к данным транзакции для конфиденциальной транзакции. В некоторых реализациях, криптографическая схема обязательств содержит гомоморфную криптографическую схему обязательств, к примеру, схему обязательств Педерсена или другой тип схемы обязательств.

[0080] На 536, клиентский узел A 530 формирует зашифрованную информацию транзакции для конфиденциальной транзакции посредством шифрования данных транзакции с использованием секретного ключа клиентского узла A 530, при этом зашифрованная информация транзакции выполнена с возможностью обеспечивать возможность дешифрования посредством клиентского узла A 530 с использованием секретного ключа.

[0081] В некоторых реализациях, криптографическая схема обязательств содержит схему обязательств Педерсена. В этом случае, формирование одного или более значений удостоверения конфиденциальной транзакции клиентского узла посредством применения криптографической схемы обязательств к данным транзакции включает в себя формирование одного или более значений удостоверения конфиденциальной транзакции клиентского узла A 530 на основе данных транзакции и случайных чисел, соответствующих данным транзакции; и формирование зашифрованной регулирующей информации конфиденциальной транзакции включает в себя формирование зашифрованной регулирующей информации конфиденциальной транзакции посредством шифрования данных транзакции и случайных чисел, соответствующих данным транзакции, с использованием общедоступного ключа регуляторного узла.

[0082] На 538, клиентский узел A 530 отправляет содержимое конфиденциальной транзакции в сеть цепочек блоков для выполнения, например, посредством передачи содержимого конфиденциальной транзакции в узел 520 цепочки блоков (например, консенсусный узел сети цепочек блоков). В некоторых реализациях, содержимое конфиденциальной транзакции может включать в себя одно или более значений удостоверения конфиденциальной транзакции, сформированной посредством клиентского узла A 530 посредством применения криптографической схемы обязательств к данным транзакции для конфиденциальной транзакции, зашифрованной информации транзакции, сформированной посредством клиентского узла A 530 посредством шифрования данных транзакции с использованием секретного ключа, и одного или более доказательств с нулевым разглашением данных транзакции.

[0083] В некоторых реализациях, одно или более доказательств с нулевым разглашением данных транзакции содержат одно или более доказательств по диапазону с нулевым разглашением касательно того, что значения данных транзакции находятся в пределах соответствующих диапазонов. Например, одно или более доказательств по диапазону с нулевым разглашением могут включать в себя доказательство по диапазону с нулевым разглашением касательно того, что баланс счета клиентского узла A 530 перед конфиденциальной транзакцией превышает нуль, доказательство по диапазону с нулевым разглашением касательно того, что сумма транзакции для конфиденциальной транзакции превышает нуль, и доказательство по диапазону с нулевым разглашением касательно того, что сумма транзакции меньше или равна балансу счета клиентского узла A 530 перед конфиденциальной транзакцией.

[0084] В некоторых реализациях, содержимое конфиденциальной транзакции дополнительно содержит цифровую подпись клиентского узла A 530. В некоторых реализациях, содержимое конфиденциальной транзакции может включать в себя дополнительную или другую информацию.

[0085] На 522, после приема содержимого конфиденциальной транзакции, узел 520 цепочки блоков может выполнять конфиденциальную транзакцию, например, посредством верификации того, что конфиденциальная транзакция является достоверной, на основе содержимого конфиденциальной транзакции. В некоторых реализациях, верификация того, что конфиденциальная транзакция является достоверной, на основе содержимого конфиденциальной транзакции может включать в себя одно или более из следующего: определение того, что одно или более значений удостоверения являются корректными, на основе схемы обязательств и/или одного или более доказательств с нулевым разглашением; или верификацию этого одного или более доказательств с нулевым разглашением данных транзакции, например, согласно алгоритмам, как описано относительно фиг. 3.

[0086] На 524, после верификации того, что конфиденциальная транзакция является достоверной, узел 520 цепочки блоков может обновлять информацию счета, осуществляемую посредством конфиденциальной транзакции (например, баланс счета клиентского узла A 530 и клиентского узла B 540). В некоторых реализациях, криптографическая схема обязательств является гомоморфной, и узел 520 цепочки блоков может обновлять информацию счета на основе гомоморфизма схемы обязательств, например, согласно технологиям, описанным относительно фиг. 3, или другим технологиям.

[0087] На 526, узел 520 цепочки блоков может сохранять зашифрованную информацию транзакции в цепочке блоков из сети цепочек блоков. В некоторых реализациях, зашифрованная информация транзакции может сохраняться более чем в одном из консенсусных узлов сети цепочек блоков, за счет этого предоставляя надежное резервирование зашифрованной информации транзакции клиентского узла A 530 в случае, если клиентский узел A 530 теряет секретный ключ. Помимо этого, хранение зашифрованной информации транзакции в цепочке блоков из сети цепочек блоков может уменьшать или исключать базирование клиентского узла A 530 на локальной или одноточечной схеме хранения, повышая безопасность и надежность доступа клиентского узла A 530 к зашифрованной информации транзакции.

[0088] На 528, клиентский узел A 530 может извлекать или иным образом получать зашифрованную информацию транзакции из узла 520 цепочки блоков (например, консенсусного узла сети цепочек блоков). Зашифрованная информация транзакции сохраняется, по меньшей мере, в одной цепочке блоков в сети цепочек блоков. Клиентский узел A 530 может дешифровать информацию транзакции в виде простого текста из зашифрованной информации транзакции с использованием секретного ключа.

[0089] На 542, клиентский узел A 530 определяет то, что теряет или иным образом не имеет доступа к секретному ключу, выполненному с возможностью дешифровать зашифрованную информацию транзакции, и секретный ключ ранее выдан в клиентский узел A 530.

[0090] На 544, в некоторых реализациях, в ответ на такое определение, клиентский узел A 530 восстанавливает секретный ключ, по меньшей мере, из порогового числа (например, k) клиентских узлов из общего числа (например, n) клиентских узлов в сети цепочек блоков, согласно пороговой схеме совместного использования секретов (например, схеме совместного использования секретов Шамира), согласованной множеством клиентских узлов, например, посредством приема, по меньшей мере, порогового числа частей секретного ключа, по меньшей мере, из порогового числа клиентских узлов из общего числа клиентских узлов в сети цепочек блоков.

[0091] На 546, клиентский узел A 530 дешифрует данные транзакции (например, данные транзакции в виде простого текста) для конфиденциальной транзакции клиентского узла A 530 из зашифрованной информации транзакции с использованием восстановленного секретного ключа. В некоторых реализациях, дешифрование данных транзакции для конфиденциальной транзакции конкретного клиентского узла из зашифрованной информации транзакции с использованием секретного ключа содержит восстановление суммы перевода конфиденциальной транзакции с использованием секретного ключа. В некоторых реализациях, дешифрование данных транзакции для конфиденциальной транзакции конкретного клиентского узла из зашифрованной информации транзакции с использованием секретного ключа содержит восстановление как суммы перевода конфиденциальной транзакции, так и случайного числа, соответствующего сумме перевода, с использованием секретного ключа, при этом сумма перевода и случайное число используются в схеме обязательств Педерсена для сокрытия информации транзакции для конфиденциальной транзакции конкретного клиентского узла.

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

[0093] Подходящие процессоры для выполнения программы инструкций включают в себя, в качестве примера, микропроцессоры общего и специального назначения и единственный процессор либо один из нескольких процессоров любого вида компьютера. В общем, процессор принимает инструкции и данные из постоянного запоминающего устройства или оперативного запоминающего устройства, или из того и из другого. Элементы компьютера могут включать в себя процессор для выполнения инструкций и одно или более запоминающих устройств для сохранения инструкций и данных. Обычно, компьютер также может включать в себя или функционально соединяться с возможностью обмениваться данными с одним или более устройств хранения данных большой емкости для сохранения файлов данных; такие устройства включают в себя магнитные диски, такие как внутренние жесткие диски и съемные диски; магнитооптические диски; и оптические диски. Устройства хранения данных, подходящие для материального осуществления компьютерных программных инструкций и данных, включают в себя все формы долговременного запоминающего устройства, включающие в себя в качестве примера полупроводниковые запоминающие устройства, таки как EPROM, EEPROM и устройства флэш-памяти; магнитные диски, такие как внутренние жесткие диски и съемные диски; магнитооптические диски; и CD-ROM- и DVD-ROM-диски. Процессор и запоминающее устройство могут дополняться посредством или включаться в специализированные интегральные схемы (ASIC).

[0094] Чтобы предоставлять взаимодействие с клиентом, признаки могут реализовываться на компьютере, имеющем устройство отображения, такое как монитор на электронно-лучевой трубке (CRT) или жидкокристаллический дисплей (ЖК-дисплей) для отображения информации клиентскому узлу A 302, и клавиатуру и указательное устройство, такое как мышь или шаровой манипулятор, посредством которого пользователь может предоставлять ввод в компьютер.

[0095] Признаки могут реализовываться в компьютерной системе, которая включает в себя внутренний интерфейсный компонент, такой как сервер данных, либо которая включает в себя промежуточный программный компонент, такой как сервер приложений или Интернет-сервер, либо которая включает в себя внешний интерфейсный компонент, такой как клиентский компьютер, имеющий графический клиентский интерфейс или Интернет-браузер, либо любую их комбинацию. Компоненты системы могут соединяться посредством любой формы или среды цифровой передачи данных, такой как сеть связи. Примеры сетей связи включают в себя, например, локальную вычислительную сеть (LAN), глобальную вычислительную сеть (WAN) и компьютеры и сети, формирующие Интернет.

[0096] Компьютерная система может включать в себя клиенты и серверы. Клиентский узел A 302 и сервер, в общем, являются удаленными друг от друга и типично взаимодействуют через сеть, к примеру, через описанную сеть. Взаимосвязь клиентского узла A 302 и сервера осуществляется на основе компьютерных программ, работающих на соответствующих компьютерах и имеющих клиент-серверную взаимосвязь друг с другом.

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

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

Похожие патенты RU2726157C1

название год авторы номер документа
РЕГУЛИРОВАНИЕ КОНФИДЕНЦИАЛЬНЫХ БЛОКЧЕЙН-ТРАНЗАКЦИЙ 2018
  • Лю, Чжэн
  • Ли, Личунь
  • Ван, Хуачжун
RU2720354C1
ЗАЩИТА ДАННЫХ ЦЕПОЧЕК БЛОКОВ НА ОСНОВЕ ОБЩЕЙ МОДЕЛИ НА ОСНОВЕ СЧЕТОВ И ГОМОМОРФНОГО ШИФРОВАНИЯ 2018
  • Чжан, Вэньбинь
  • Ма, Баоли
  • Ма, Хуаньюй
RU2719451C1
ЗАЩИТА ДАННЫХ ЦЕПОЧЕК БЛОКОВ С ИСПОЛЬЗОВАНИЕМ ГОМОМОРФНОГО ШИФРОВАНИЯ 2018
  • Чжан, Вэньбинь
  • Ма, Баоли
RU2708344C1
ЗАЩИТА ДАННЫХ ЦЕПОЧЕК БЛОКОВ НА ОСНОВЕ МОДЕЛИ БАНКНОТ НА СЧЕТАХ С ДОКАЗАТЕЛЬСТВОМ С НУЛЕВЫМ РАЗГЛАШЕНИЕМ 2018
  • Ма, Баоли
  • Чжан, Вэньбинь
  • Ма, Хуаньюй
  • Лю, Чжэн
  • Ли, Личунь
RU2729595C1
СИСТЕМА И СПОСОБ ЗАЩИТЫ ИНФОРМАЦИИ 2018
  • Цуй, Цзяхой
  • Ма, Баоли
  • Лю, Чжэн
  • Чжан, Вэньбинь
  • Ма, Хуаньюй
RU2716740C1
УПРАВЛЕНИЕ ПРИВАТНЫМИ ТРАНЗАКЦИЯМИ В СЕТЯХ ЦЕПОЧЕК БЛОКОВ НА ОСНОВЕ ПОТОКА ОБРАБОТКИ 2018
  • Пань, Дун
  • Чжан, Вэньбинь
  • Янь, Сюэбин
RU2723308C1
ЗАЩИТА ДАННЫХ ЦЕПОЧЕК БЛОКОВ С ИСПОЛЬЗОВАНИЕМ ГОМОМОРФНОГО ШИФРОВАНИЯ 2018
  • Ма, Баоли
  • Чжан, Вэньбинь
RU2727161C1
СИСТЕМА И СПОСОБ ДЛЯ ЗАЩИТЫ ИНФОРМАЦИИ 2018
  • Ма, Баоли
  • Чжан, Вэньбинь
RU2721959C1
СИСТЕМА И СПОСОБ ДЛЯ ЗАЩИТЫ ИНФОРМАЦИИ 2018
  • Ма, Хуаньюй
  • Чжан, Вэньбинь
  • Ма, Баоли
  • Лю, Чжэн
  • Цуй, Цзяхой
RU2735439C2
ПЕРЕКРЕСТНАЯ ТОРГОВЛЯ АКТИВАМИ В СЕТЯХ БЛОКЧЕЙНОВ 2019
  • Чжан, Вэньбинь
  • Лэй, Хао
  • Ли, Личунь
  • Хуан, Чжанцзе
RU2736447C1

Иллюстрации к изобретению RU 2 726 157 C1

Реферат патента 2020 года ВОССТАНОВЛЕНИЕ ЗАШИФРОВАННОЙ ИНФОРМАЦИИ ТРАНЗАКЦИЙ В КОНФИДЕНЦИАЛЬНЫХ ТРАНЗАКЦИЯХ С ЦЕПОЧКАМИ БЛОКОВ

Изобретение относится к машинореализуемому способу функционирования клиентского узла, участвующего в конфиденциальной транзакции с цепочками блоков (блокчейн-транзакции). Технический результат заключается в обеспечении восстановления зашифрованной информации транзакций. Способ содержит этапы, на которых: получают секретный ключ посредством клиентского узла, согласно пороговой схеме совместного использования секретов, согласованной множеством клиентских узлов; формируют одно или более значений удостоверения конфиденциальной блокчейн-транзакции клиентского узла посредством применения криптографической схемы обязательств к данным транзакции, при этом содержимое конфиденциальной блокчейн-транзакции является доступным только для участников конфиденциальной блокчейн-транзакции, но не для какого-либо другого узла сети цепочек блоков; формируют зашифрованную информацию транзакции для конфиденциальной блокчейн-транзакции посредством шифрования данных транзакции с использованием секретного ключа; и передают, в консенсусный узел сети цепочек блоков, содержимое конфиденциальной блокчейн-транзакции для выполнения, при этом содержимое конфиденциальной блокчейн-транзакции содержит: упомянутые одно или более значений удостоверения, зашифрованную информацию транзакции и одно или более доказательств с нулевым разглашением данных транзакции. 9 н. и 13 з.п. ф-лы, 5 ил.

Формула изобретения RU 2 726 157 C1

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

получают секретный ключ посредством клиентского узла, согласно пороговой схеме совместного использования секретов, согласованной множеством клиентских узлов;

формируют одно или более значений удостоверения конфиденциальной блокчейн-транзакции клиентского узла посредством применения криптографической схемы обязательств к данным транзакции, при этом содержимое конфиденциальной блокчейн-транзакции является доступным только для участников конфиденциальной блокчейн-транзакции, но не для какого-либо другого узла сети цепочек блоков;

формируют зашифрованную информацию транзакции для конфиденциальной блокчейн-транзакции посредством шифрования данных транзакции с использованием секретного ключа; и

передают, в консенсусный узел сети цепочек блоков, содержимое конфиденциальной блокчейн-транзакции для выполнения, при этом содержимое конфиденциальной блокчейн-транзакции содержит:

- упомянутые одно или более значений удостоверения,

- зашифрованную информацию транзакции и

- одно или более доказательств с нулевым разглашением данных транзакции.

2. Способ по п.1, в котором данные транзакции для конфиденциальной блокчейн-транзакции содержат одно или оба из баланса счета клиентского узла перед конфиденциальной блокчейн-транзакцией и суммы транзакции для конфиденциальной блокчейн-транзакции.

3. Способ по п.1, в котором упомянутые одно или более доказательств с нулевым разглашением данных транзакции содержат одно или более доказательств по диапазону с нулевым разглашением касаемо того, что значения данных транзакции находятся в пределах соответствующих диапазонов.

4. Способ по п. 1,

в котором криптографическая схема обязательств содержит схему обязательств Педерсена;

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

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

5. Способ по п.1, в котором пороговая схема совместного использования секретов содержит схему совместного использования секретов Шамира.

6. Машинореализуемый способ функционирования консенсусного узла сети цепочек блоков, содержащий этапы, на которых:

принимают содержимое конфиденциальной транзакции с цепочками блоков (блокчейн-транзакции) клиентского узла посредством консенсусного узла сети цепочек блоков, при этом содержимое конфиденциальной блокчейн-транзакции является доступным только для участников конфиденциальной блокчейн-транзакции, но не для какого-либо другого узла сети цепочек блоков и содержимое конфиденциальной блокчейн-транзакции содержит:

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

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

- одно или более доказательств с нулевым разглашением данных транзакции;

верифицируют посредством консенсусного узла сети цепочек блоков то, что конфиденциальная блокчейн-транзакция является достоверной, на основе содержимого конфиденциальной блокчейн-транзакции; и

сохраняют посредством консенсусного узла сети цепочек блоков зашифрованную информацию транзакции в цепочке блоков из сети цепочек блоков.

7. Способ по п.6, в котором данные транзакции для конфиденциальной блокчейн-транзакции содержат одно или более из баланса счета клиентского узла перед конфиденциальной блокчейн-транзакцией и суммы транзакции для конфиденциальной блокчейн-транзакции.

8. Способ по п.6, в котором упомянутые одно или более доказательств с нулевым разглашением данных транзакции содержат одно или более доказательств по диапазону с нулевым разглашением касаемо того, что значения данных транзакции находятся в пределах соответствующих диапазонов.

9. Способ по п.6, в котором верификация того, что конфиденциальная блокчейн-транзакция является достоверной, на основе содержимого конфиденциальной блокчейн-транзакции, содержит этапы, на которых:

определяют, что упомянутые одно или более значений удостоверения являются корректными, на основе схемы обязательств; и

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

10. Способ по п.9, в котором верификация одного или более доказательств с нулевым разглашением данных транзакции содержит этапы, на которых:

определяют, что баланс счета клиентского узла перед конфиденциальной блокчейн-транзакцией превышает нуль; и

определяют, что сумма транзакции для конфиденциальной блокчейн-транзакции меньше или равна балансу счета клиентского узла перед конфиденциальной блокчейн-транзакцией.

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

12. Способ по п.6, в котором пороговая схема совместного использования секретов содержит схему совместного использования секретов Шамира.

13. Машинореализуемый способ восстановления зашифрованной информации транзакции в конфиденциальных транзакциях с цепочками блоков (блокчейн-транзакциях), содержащий этапы, на которых:

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

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

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

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

15. Способ по п.13, в котором дешифрование данных транзакции конфиденциальной блокчейн-транзакции конкретного клиентского узла из зашифрованной информации транзакции с использованием секретного ключа содержит этап, на котором восстанавливают сумму перевода конфиденциальной блокчейн-транзакции с использованием секретного ключа.

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

17. Долговременный машиночитаемый носитель данных, который соединен с одним или более процессорами и на котором сохранены инструкции, которые при их исполнении одним или более процессорами инструктируют одному или более процессорам выполнять операции в соответствии со способом по одному или более из пп.1-5.

18. Долговременный машиночитаемый носитель данных, который соединен с одним или более процессорами и на котором сохранены инструкции, которые при их исполнении одним или более процессорами инструктируют одному или более процессорам выполнять операции в соответствии со способом по одному или более из пп.6-12.

19. Долговременный машиночитаемый носитель данных, который соединен с одним или более процессорами и на котором сохранены инструкции, которые при их исполнении одним или более процессорами инструктируют одному или более процессорам выполнять операции в соответствии со способом по одному или более из пп.13-16.

20. Система управления транзакциями, содержащая:

вычислительное устройство; и

машиночитаемое устройство хранения данных, которое соединено с вычислительным устройством и на котором сохранены инструкции, которые при их исполнении вычислительным устройством инструктируют вычислительному устройству выполнять операции в соответствии со способом по одному или более из пп.1-5.

21. Система управления транзакциями, содержащая:

вычислительное устройство; и

машиночитаемое устройство хранения данных, которое соединено с вычислительным устройством и на котором сохранены инструкции, которые при их исполнении вычислительным устройством инструктируют вычислительному устройству выполнять операции в соответствии со способом по одному или более из пп.6-12.

22. Система управления транзакциями, содержащая:

вычислительное устройство; и

машиночитаемое устройство хранения данных, которое соединено с вычислительным устройством и на котором сохранены инструкции, которые при их исполнении вычислительным устройством инструктируют вычислительному устройству выполнять операции в соответствии со способом по одному или более из пп.13-16.

Документы, цитированные в отчете о поиске Патент 2020 года RU2726157C1

Способ получения цианистых соединений 1924
  • Климов Б.К.
SU2018A1
Токарный резец 1924
  • Г. Клопшток
SU2016A1
Peter Linder: "DEcryption Contract ENforcement Tool (DECENT): A Practical Alternative to Government Decryption Backdoors", 15 pages, 22.03.2016, [найдено 12.02.2020], размещено в Интернет по адресу URL:

RU 2 726 157 C1

Авторы

Лю, Чжэн

Ли, Личунь

Инь, Шань

Даты

2020-07-09Публикация

2018-11-07Подача