Защита данных цепочек блоков на основе модели банкнот на счетах с доказательством с нулевым разглашением

Изобретение относится к проверке достоверности согласно модели на основе банкнот на счетах. Технический результат заключается в возможности записи транзакций без раскрытия информации о суммах, связанных со счетами пользователя. Указанный результат достигается за счет приема, с первого счета, копии с цифровой подписью множества банкнот, обязательства суммы транзакции для транзакции между первым счетом и вторым счетом, оплаченной посредством, по меньшей мере, части из множества банкнот, обязательства сдачи из вычитания суммы транзакции из полной стоимости множества банкнот и доказательства с нулевым разглашением, сформированного на основе одного или более выбранных случайных чисел. Определяют то, что полная стоимость множества банкнот равна сумме суммы транзакции и сдачи, проверяют достоверность транзакции и обновляют первый счет и второй счет на основе множества банкнот, суммы транзакции и сдачи. 3 н. и 15 з.п. ф-лы, 5 ил.

 

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

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

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

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

[0004] Согласно модели на основе баланса счетов схемы обязательств могут использоваться для того, чтобы маскировать значения, на которые обе стороны транзакции дают обязательства. Схемы обязательств могут возникать в силу потребности для сторон давать обязательства выбора или значения и впоследствии передавать это значение другим участвующим сторонам. Например, в интерактивной схеме Обязательств Педерсена (PC), первый пользователь может давать обязательство на сумму t транзакции посредством отправки значения PC(t, r) обязательств, которое формируется на основе случайного значения r. Значение обязательств формируется, и второй пользователь может раскрывать сумму t транзакции только посредством получения случайного числа r. Чтобы обеспечивать то, что сумма транзакции является достоверной, доказательство по диапазону может создаваться, чтобы доказывать то, что сумма транзакции превышает или равна нулю и меньше или равна балансу счета.

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

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

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

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

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

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

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

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

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

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

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

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

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

[0016] Фиг. 4 иллюстрирует примерную транзакцию с цепочками блоков на основе модели на основе банкнот на счетах в соответствии с реализациями настоящего раскрытия сущности.

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

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

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

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

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

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

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

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

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

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

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

[0027] Чтобы проверять достоверность транзакции между пользователем A (узлом) и пользователем B (узлом), например, сумма транзакции и случайное число могут шифроваться пользователем A с использованием схемы шифрования с открытым ключом (например, Эль-Гамаля) или схемы интегрированного шифрования (например, ECIES) на основе открытого ключа пользователя B. Сумма транзакции и случайное число также могут использоваться для того, чтобы формировать доказательство с нулевым разглашением (ZKP) для проверки достоверности транзакции. Обязательство транзакции, зашифрованной суммы транзакции, зашифрованного случайного числа и ZKP может использоваться посредством узла цепочки блоков для того, чтобы верифицировать то, является или нет транзакция достоверной. Во время процесса проверки достоверности, баланс счета, сумма транзакции или случайное число не должны обязательно раскрываться или отправляться пользователю B.

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

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

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

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

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

[0033] Фиг. 3 иллюстрирует примерный способ 300 проверки достоверности с защитой конфиденциальности транзакции с цепочками блоков на основе модели на основе банкнот на счетах в соответствии с реализациями настоящего раскрытия сущности. На высоком уровне, примерный способ 300 осуществляется посредством пользовательского узла A 302, пользовательского узла B (не показан на фиг. 3) и узла 304 цепочки блоков, также называемого консенсусным узлом. Как счет пользовательского узла A 302, так и счет пользовательского узла основаны на модели на основе банкнот на счетах. То есть, валюты пользовательского узла A 302 и пользовательского узла B сохраняются в качестве множества банкнот. Транзакция, такая как перевод стоимости, может проводиться из пользовательского узла A 302 в пользовательский узел B. Пользовательский узел A 302 может выбирать набор банкнот со своего счета для того, чтобы покрывать сумму транзакции. Разность между полной стоимостью набора банкнот и суммой транзакции может вычисляться как сдача пользовательского узла A 302.

[0034] Чтобы защищать конфиденциальность счета, пользовательский узел A 302 может формировать обязательство суммы t транзакции с использованием схемы обязательств, такой как PC, на основе случайного числа r. Пользовательский узел A 302 может шифровать сумму транзакции и случайное число с использованием схемы шифрования с открытым ключом или схемы интегрированного шифрования на основе открытого ключа пользовательского узла B. Пользовательский узел A 302 также может шифровать сдачу и случайное число, соответствующие сдаче, с использованием схемы шифрования с открытым ключом или схемы интегрированного шифрования на основе открытого ключа пользовательского узла A. Чтобы верифицировать законность транзакции, узел 304 цепочки блоков может верифицировать зашифрованную сумму транзакции и случайное число с соответствующей суммой транзакции и случайным числом в обязательстве на основе ZKP. Если суммы транзакций и случайные числа совпадают, транзакция определяется в качестве достоверной посредством узла 304 цепочки блоков. Дополнительные сведения по примерному способу 300 пояснены в нижеприведенном описании по фиг. 3.

[0035] На этапе 306 пользовательский узел A 302 выбирает множество банкнот для перевода суммы транзакции в пользовательский узел B. Пользовательский узел A 302 и пользовательский узел B могут представлять собой консенсусный узел цепочки блоков или пользовательские узлы, которые используют сеть цепочек блоков без участия в консенсусном процессе. Как пояснено выше, пользовательский узел A 302 может использовать модель на основе банкнот на счетах для того, чтобы вести записи. Вместо ведения баланса счета для записи согласно модели на основе баланса счетов, стоимость счета пользовательского узла A 302 измеряется посредством полной стоимости его банкнот. Пользовательский узел A 302 может выбирать множество банкнот из банкнот, которые он имеет, которых достаточно для того, чтобы покрывать сумму транзакции. Например, если сумма транзакции составляет 7,5 биткоинов, пользовательский узел A 302 может выбирать три банкноты, которые стоят 5, 2 и 1 биткоин, соответственно, чтобы покрывать сумму транзакции.

[0036] В некоторых реализациях каждая банкнота может иметь тип банкнот, который идентифицирует тип валюты или актив банкноты. Каждая банкнота также может иметь идентификатор банкноты, который включает в себя идентификатор транзакции и числовой индекс. Идентификатор транзакции может представлять собой хэширование информации транзакций. Индекс может указывать порядок соответствующей банкноты в выводе по транзакциям. Например, при отправке трех сообщений с суммой банкноты в 5, 2 и 1 биткоин, банкнота в 2 биткоина может представлять собой второй вывод по транзакциям с числовым индексом в 2. В некоторых примерах, k банкнот выбираются, их типы банкнот и идентификаторы банкнот могут выражаться как NoteType1, NoteIda1,..., NoteTypek, NoteIdak. В некоторых примерах, идентичный тип банкнот может выбираться, чтобы выполнять перевод суммы транзакции. В некоторых случаях, идентификаторы банкнот, соответствующие сдаче и сумме транзакции, не могут получаться до того, как создается транзакция. В таких случаях, упомянутые идентификаторы банкнот могут формироваться на основе контракта на использование цепочек блоков, который позволяет выполнять обновления консенсуса и контрактов.

[0037] На этапе 308 пользовательский узел A 302 вычисляет сдачу на основе полной стоимости множества банкнот и суммы транзакции. Поскольку банкноты выбираются таким образом, чтобы иметь полную стоимость, превышающую сумму транзакции, сдача может вычисляться как полная стоимость выбранных банкнот, из которой вычтена сумма транзакции. С использованием t для того, чтобы представлять сумму транзакции, и t0 для того, чтобы представлять сдачу, вычисление сдачи может выражаться как t0=a1+...+ak-t, где a1,..., ak являются стоимостями банкнот для k банкнот, выбранных посредством пользовательского узла A 302 для того, чтобы покрывать сумму t транзакции.

[0038] На этапе 310 пользовательский узел A 302 формирует множество случайных чисел, соответствующих множеству банкнот, и вычисляет случайное число, соответствующее сдаче. Множество случайных чисел могут формироваться для того, чтобы формировать обязательства стоимостей банкнот. Например, a1,..., ak являются стоимостями банкнот, и случайные числа, которые соответствуют стоимостям банкнот, могут выражаться как ra1,..., rak. Обязательства банкнот могут выражаться как PC(ra1, a1),..., PC(rak, ak).

[0039] В некоторых реализациях случайное число r0 может вычисляться таким образом, что оно соответствует сдаче t0. Вычисление может выражаться как r0=ra1+...+rak-r, где r является случайным числом, сформированным с возможностью формировать обязательство для суммы t транзакции. Посредством вычисления r0, пользовательский узел A 302 не должен формировать дополнительное ZKP, чтобы показывать то, что полная стоимость переведенных банкнот равна полной стоимости принимаемых банкнот.

[0040] На этапе 312 пользовательский узел A 302 формирует обязательства и зашифрованные с открытым ключом зашифрованные тексты суммы транзакции и сдачи. Чтобы защищать конфиденциальность данных, денежные стоимости, включающие в себя стоимость банкнот, сумму транзакции и сдачу, могут маскироваться посредством обязательств на основе схем обязательств. Цепочка блоков может сохранять обязательства в качестве записи. В некоторых реализациях гомоморфные схемы обязательств, такие как PC, могут использоваться для того, чтобы формировать обязательства. С использованием PC в качестве неограничивающего примера, PC транзакции t может формироваться посредством использования случайного числа r, которое может выражаться как T=PC(r, t)=grht, где g и h могут быть генераторами эллиптической кривой, и PC(r, t) является скалярным умножением точек кривой. Следует понимать, что другие схемы обязательств на основе HE, такие как схема обязательства Фуджисаки-Окамото, также могут использоваться для того, чтобы формировать значение обязательства.

[0041] Сумма транзакции и случайное число также могут шифроваться с использованием открытого ключа пользовательского узла B. Шифрование может быть основано на схеме шифрования с открытым ключом, такой как алгоритм Пэйе или Эль-Гамаля, или на схеме интегрированного шифрования, такой как ECIES. В связи с этим, пользовательский узел B может использовать свой соответствующий закрытый ключ для того, чтобы раскрывать сумму транзакции и случайное число. Зашифрованное с открытым ключом случайное число и сумма транзакции могут выражаться как PB=E(PkB, r), QB=E(PkB, t), соответственно, где PkB представляет открытый ключ пользовательского узла B.

[0042] Аналогично, обязательство сдачи может выражаться как T0=PC(r0, t0). Случайное число r0 и сумма сдачи t0 также могут шифроваться посредством открытого ключа пользовательского узла A 302, выражаемого как PA=E(PkA, r0), QA=E(PkA, t0), соответственно, где PkA представляет открытый ключ пользовательского узла A 302.

[0043] На этапе 314 пользовательский узел A 302 формирует одно или более доказательств по диапазону. В некоторых реализациях первое доказательство по диапазону, RP1, может формироваться для того, чтобы показывать, что сумма транзакции t≥0. Второе доказательство по диапазону, RP2, может формироваться для того, чтобы показывать, что сдача t0≥0, или другими словами, то, что полная стоимость множества банкнот превышает или равна сумме транзакции.

[0044] На этапе 316 пользовательский узел A 302 формирует ZKP. В некоторых реализациях ZKP может использоваться для того, чтобы доказывать, что случайное число r и сумма t транзакции, включенные в PB и QB, равны соответствующему случайному числу и сумме транзакции, включенным в обязательство T. В некоторых реализациях ZKP может формироваться с использованием сжатого неинтерактивного аргумента знаний с нулевым разглашением (zk-SNARK).

[0045] На этапе 318 пользовательский узел A 302 использует закрытый ключ для того, чтобы формировать цифровую подпись данных транзакции. В некоторых реализациях данные транзакции могут включать в себя NoteType1, NoteIda1,..., NoteTypek, NoteIdak; T0, T, PB, QB, PA, QA, RP1, RP2 и ZKP.

[0046] На этапе 320 пользовательский узел A 302 отправляет копию с цифровой подписью данных транзакции в сеть цепочек блоков.

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

[0048] На этапе 324 узел 304 цепочки блоков верифицирует тип банкнот из множества банкнот. Другими словами, узел 304 цепочки блоков верифицирует, что NoteType1 - NoteTypek являются идентичными.

[0049] На этапе 326 узел 304 цепочки блоков верифицирует то, что полная стоимость выбранного множества банкнот равна сумме суммы транзакции и сдачи. Другими словами, цепочка блоков верифицирует то, что a1+...+ak=t+t0. Как пояснено выше, согласно модели на основе банкнот на счетах, банкноты могут сохраняться в цепочке блоков в качестве PC, чтобы защищать конфиденциальность данных. На основе гомоморфизма PC, PC(ra1, a1)+...+PC(rak, ak)=PC(ra1+...+rak, a1+...+ak) и PC(r, t)+PC(r0, t0)=PC(r+r0, t+t0). Следовательно, посредством показа того, что PC(ra1, a1)+...+PC(rak, ak)=PC(r, t)+PC(r0, t0), можно доказывать то, что a1+...+ak=t+t0.

[0050] На этапе 328 узел 304 цепочки блоков верифицирует одно или более доказательств по диапазону.

[0051] На этапе 330 узел 304 цепочки блоков верифицирует ZKP, если ZKP успешно верифицируется, сумма транзакции и случайное число, зашифрованные с использованием открытого ключа пользовательского узла B, доказываются как идентичные соответствующей сумме транзакции и случайному числу, маскированным посредством PC. Как пояснено выше, ZKP может формироваться с использованием zk-SNARK.

[0052] В некоторых реализациях ZKP также может формироваться на основе сигма-протоколов. С использованием шифрования с открытым ключом Пэйе в качестве примера, PB и QB могут выражаться как PB=E(PkB, r)=uryn, QB=E(Pk, t)=utzn, соответственно, где u и n являются открытыми ключами, y, и z являются случайными числами.

[0053] Чтобы формировать ZKP на основе сигма-протоколов, пользовательский узел A 302 может формировать четыре дополнительных случайных числа, r*, t*, y* и z*, чтобы вычислять три зашифрованных текста C, D и E. C, D и E может выражаться как C=gr*ht*, D=ur*y*n и E=ut*z*n. Хэшированное значение x может вычисляться посредством хэширования T, PB, QB, g, h, u, n, C, D и E, что может выражаться как x=Hash(T, PB, QB, g, h, u, n, C, D, E). Четыре дополнительных зашифрованных текста a, b, c и d могут вычисляться как a=r*+xr, b=t*+xt, c=y*yx, d=z*zx. В завершение, ZKP может формироваться в качестве ZKP=(C, D, E, a, b, c, d).

[0054] Чтобы верифицировать ZKP, узел 304 цепочки блоков может сначала вычислять x=Hash(T, PB, QB, g, h, u, n, C, D, E). Узел 304 цепочки блоков может верифицировать то, удовлетворяется или нет gahb=CTx, uacn=DPx и ubdn=EQx. Если да, ZKP верифицируется, и доказано то, что сумма транзакции и случайное число, зашифрованные с использованием открытого ключа пользовательского узла B, являются идентичными соответствующей сумме транзакции и случайному числу, маскированным посредством PC.

[0055] В другом примере OU-шифрование с открытым ключом может использоваться для того, чтобы шифровать сумму транзакции и случайное число. PB и QB могут выражаться как PB=E(PkB, r)=urvy, QB=E(Pk, t)=utvz, соответственно, где u, v и n являются открытыми ключами, r, y, и z являются случайными числами.

[0056] Чтобы формировать ZKP на основе сигма-протоколов, пользовательский узел A 302 может формировать четыре дополнительных случайных числа, r*, t*, y* и z*, чтобы вычислять три зашифрованных текста C, D и E. Зашифрованные тексты C, D и E могут вычисляться как C=gr*ht*, D=ur*v*y и E=ut*v*z. Хэшированное значение x может вычисляться посредством хэширования T, PB, QB, g, h, u, v, n, C, D и E, что может выражаться как x=Hash(T, PB, QB, g, h, u, v, n, C, D, E). Четыре дополнительных зашифрованных текста a, b, c и d могут вычисляться как a=r*+xr, b=t*+xt, c=y*+xy, d=z*+xz. В завершение, ZKP может формироваться в качестве ZKP=(C, D, E, a, b, c, d).

[0057] Чтобы верифицировать ZKP, узел 304 цепочки блоков может вычислять x=Hash(T, PB, QB, g, h, u, v, n, C, D, E). Узел 304 цепочки блоков может верифицировать то, удовлетворяется или нет gahb=CTx, uavc=DPx и ubvd=EQx. Если да, ZKP верифицируется, и доказано, что сумма транзакции и случайное число, зашифрованные с использованием открытого ключа пользовательского узла B, являются идентичными соответствующей сумме транзакции и случайному числу, маскированным посредством PC.

[0058] На этапе 332 узел 304 цепочки блоков верифицирует то, что множество банкнот принадлежат пользовательскому узлу A 302. Верификация может быть основана на идентификаторах банкнот, NoteIdai, где i=1,..., k.

[0059] На этапе 334 узел 304 цепочки блоков обновляет счета пользовательского узла A 302 и пользовательского узла B. Поскольку счета пользовательского узла A 302 и пользовательского узла B сохраняют банкноты в качестве записей согласно модели на основе банкнот на счетах, после транзакции, множество банкнот, переведенных из пользовательского узла A 302, могут удаляться со счета пользовательского узла A 302. Сдача может добавляться обратно на счет пользовательского узла A. Сумма транзакции и соответствующий тип банкноты и идентификатор банкноты могут добавляться в качестве новой банкноты на счет пользовательского узла B. В дальнейшем подробнее описывается обновление счетов в данном документе со ссылкой на фиг. 4.

[0060] Фиг. 4 иллюстрирует примерную транзакцию 400 с цепочками блоков на основе модели на основе банкнот на счетах в соответствии с реализациями настоящего раскрытия сущности. Как показано в примерной транзакции 400 с цепочками блоков, пользовательский узел A 402 переводит сумму t транзакции в пользовательский узел B 404. Перед транзакцией, пользовательский узел A 402 имеет m банкнот, включающих в себя NoteIda1, PC(ra1, a1), E(PkA, ra1), E(PkA, a1); NoteIda2, PC(ra2, a2), E(PkA, ra2), E(PKA, a2);...; NoteIdam, PC(ram, am), E(PkA, ram), E(PKA, am).

[0061] С использованием схем обязательств, схем шифрования и процесса проведения транзакций, описанных в данном документе со ссылкой на фиг. 3, в качестве примера, пользовательский узел A 402 формирует данные 408 транзакции, которые могут включать в себя идентификаторы банкнот для k выбранных банкнот, и их тип, выражаемый как NoteType1, NoteIda1,..., NoteTypek, NoteIdak. Данные 408 транзакции дополнительно могут включать в себя T0, T, PB, QB, PA, QA, RP1, RP2 и ZKP. После того, как данные 408 транзакции формируются, пользовательский узел A 402 может добавлять свою цифровую подпись и отправлять данные транзакции с цифровой подписью в сеть 406 цепочек блоков для консенсуса.

[0062] После транзакции k выбранных банкнот могут удаляться со счета пользовательского узла 402. Сдача может добавляться обратно в пользовательский узел A 402. Следовательно, пользовательский узел A 402 может иметь следующие банкноты, выражаемые как NoteIda(k+1), PC(ra(k+1), a(k+1)), E(PkA, ra(k+1)), E(PkA, a(k+1)),..., NoteIdam, PC(ram, am), E(PkA, ram), E(PkA, am), NoteIda(m+1), PC(r0, t0), E(PkA, r0), E(PkA, t0), где NoteIda(m+1) представляет идентификатор банкноты сдачи t0.

[0063] Перед транзакцией пользовательский узел B 404 имеет m банкнот, которые могут выражаться как NoteIdb1, PC(rb1, b1), E(PkB, rb1), E(PkB, b1); NoteIdb2, PC(rb2, b2), E(PkB, rb2), E(PkB, b2);...; NoteIdbm, PC(rbm, bm), E(PkB, rbm), E(PkB, bm). После транзакции, сумма транзакции может добавляться в пользовательский узел B 404. Пользовательский узел B 404 может иметь следующие банкноты, выражаемые как NoteIdb1, PC(rb1, b1), E(PkB, rb1), E(PkB, b1),..., NoteIdbm, PC(rbm, bm), E(PkB, rbm), E(PkB, bm), NoteIdb(m+1), PC(r, t), E(PkB, r), E(PkB, t), где NoteIdb(m+1) представляет идентификатор банкноты суммы t транзакции.

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

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

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

[0067] На этапе 504 консенсусный узел верифицирует цифровую подпись, соответствующую копии с цифровой подписью, с использованием открытого ключа первого счета.

[0068] На этапе 506 консенсусный узел определяет то, что одно или более доказательств по диапазону доказывают то, что сумма транзакции и сдача превышают или равны нулю.

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

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

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

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

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

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

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

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

[0077] Мобильные устройства могут включать в себя переносные телефоны, абонентские устройства (UE), мобильные телефоны (например, смартфоны), планшетные компьютеры, носимые устройства (например, интеллектуальные часы и интеллектуальные очки), имплантируемые устройства в человеческом теле (например, биодатчики, кохлеарные имплантаты) либо другие типы мобильных устройств. Мобильные устройства могут обмениваться данными в беспроводном режиме (например, с использованием радиочастотных (RF) сигналов) с различными сетями связи (описаны ниже). Мобильные устройства могут включать в себя датчики для определения характеристик текущего окружения мобильного устройства. Датчики могут включать в себя камеры, микрофоны, бесконтактные датчики, GPS-датчики, датчики движения, акселерометры, датчики окружающего света, датчики содержания влаги, гироскопы, компасы, барометры, датчики отпечатков пальцев, системы распознавания лиц, RF-датчики (например, Wi-Fi- и сотовые радиомодули), тепловые датчики или другие типы датчиков. Например, камеры могут включать в себя обращенную по ходу движения или против движения камеру с подвижными или неподвижными линзами, флэш-памятью, датчиком изображений и процессором изображений. Камера может представлять собой мегапикселную камеру, допускающую захват деталей для распознавания лиц и/или радужной оболочки глаз. Камера наряду с процессором данных и аутентификационной информацией, сохраненной в запоминающем устройстве или доступной удаленно, может формировать систему распознавания лиц. Система распознавания лиц либо один или более датчиков, например, микрофонов, датчиков движения, акселерометров, GPS-датчиков или RF-датчиков, могут использоваться для аутентификации пользователя.

[0078] Чтобы предоставлять взаимодействие с пользователем, реализации могут реализовываться на компьютере, имеющем устройство отображения и устройство ввода, например, жидкокристаллический дисплей (ЖК-дисплей) или дисплей на органических светоизлучающих диодах (OLED)/в стиле виртуальной реальности (VR)/в стиле дополненной реальности (AR) для отображения информации пользователю и сенсорный экран, клавиатуру и указательное устройство, посредством которых пользователь может предоставлять ввод в компьютер. Другие виды устройств также могут использоваться, чтобы предоставлять взаимодействие с пользователем; например, обратная связь, предоставленная пользователю, может представлять собой любую форму сенсорной обратной связи, например, визуальную обратную связь, акустическую обратную связь или тактильную обратную связь; и ввод от пользователя может приниматься в любой форме, включающей в себя акустический, речевой или тактильный ввод. Помимо этого, компьютер может взаимодействовать с пользователем посредством отправки документов и приема документов из устройства, которое используется пользователем; например, посредством отправки веб-страниц в веб-браузер на клиентском устройстве пользователя в ответ на запросы, принимаемые из веб-браузера.

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

[0080] Примеры сетей связи включают в себя локальную вычислительную сеть (LAN), сеть радиодоступа (RAN), общегородскую вычислительную сеть (MAN) и глобальную вычислительную сеть (WAN). Сеть связи может включать в себя все или часть из Интернета, другой сети связи либо комбинации сетей связи. Информация может передаваться по сети связи согласно различным протоколам и стандартам, включающим в себя стандарт долгосрочного развития (LTE), 5G, IEEE 802, Интернет-протокол (IP) либо другие протоколы или комбинации протоколов. Сеть связи может передавать голосовые, видео-, биометрические данные или аутентификационные данные, или другую информацию между соединенными вычислительными устройствами.

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

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

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

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

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

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

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

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

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

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

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

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

4. Машинореализованный способ по п. 3, в котором определение, что полная стоимость множества банкнот равна сумме суммы транзакции и суммы сдачи, основано на сравнении суммы обязательства каждой стоимости банкноты и суммы обязательства суммы транзакции и обязательства суммы сдачи.

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

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

7. Машинореализованный способ по п. 1, в котором первое случайное число и сумма транзакции шифруются посредством открытого ключа второго счета на основе шифрования Пэйе или шифрования Окамото-Учиямы.

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

9. Невременный машиночитаемый носитель данных, хранящий одну или несколько инструкций, которые, при выполнении посредством процессора, инструктируют процессору выполнять операции содержащие:

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

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

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

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

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

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

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

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

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

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

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

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

14. Невременный машиночитаемый носитель данных по п. 9, причем операции дополнительно содержат определение, что каждый из множества идентификаторов банкнот ассоциирован с первым счетом.

15. Невременный машиночитаемый носитель данных по п. 9, причем первое случайное число и сумма транзакции шифруются посредством открытого ключа второго счета на основе шифрования Пэйе или шифрования Окамото-Учиямы.

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

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

один или несколько процессоров; и

одну или несколько машиносчитываемых запоминающих устройств, подсоединенных к одному или нескольким процессорам и имеющих инструкции, сохраненные на них, которые, при выполнении посредством одного или нескольких процессоров, инструктируют одному или нескольким процессором:

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

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

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

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

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

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

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

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

18. Система по п. 17, причем каждая из множества банкнот содержит одно или несколько из типа банкноты, обязательства стоимости банкноты, стоимости банкноты, зашифрованной посредством шифрования с открытым ключом или интегрированного шифрования, и случайного числа, используемого, чтобы формировать обязательство, зашифрованное посредством шифрования с открытым ключом или интегрированного шифрования.



 

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

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

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

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

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

Изобретение относится к вычислительной технике. Технический результат заключается в обеспечении отправки критических данных на сервер.

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

Изобретение относится к обработке данных в вычислительной среде, связанной с шифрованием и аутентификацией данных. Технический результат заключается в расширении арсенала технических средств.

Изобретение относится к области вычислительной техники. Техническим результатом является обеспечение безопасности данных при обмене данными.

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

Изобретение относится к обработке данных. Технический результат – повышение вычислительной эффективности.

Изобретение относится к средствам обработки данных в распределенной сети. Технический результат заключается в повышении эффективности обработки данных для услуги с относительно высоким приоритетом услуги.
Наверх