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

Настоящее изобретение относится к области сетей цепочек блоков. Технический результат заключается в повышении безопасности данных мобильного вычислительного устройства. Способ включает: прием, посредством консенсусного узла с первого счета, подписанной цифровым образом копии значения удостоверения суммы транзакции, второго случайного числа, зашифрованного с использованием общедоступного ключа первого счета, третьего случайного числа, зашифрованного с использованием общедоступного ключа второго счета, одного или более доказательств по диапазону и набора значений, сформированного на основе одного или более выбранных случайных чисел. Консенсусный узел верифицирует цифровую подпись с использованием общедоступного ключа первого счета, соответствующего секретному ключу, использованному для формирования этой цифровой подписи. Он также обновляет баланс первого счета и баланс второго счета на основе суммы перевода баланса, если первое случайное число, второе случайное число и третье случайное число являются идентичными. 3 н. и 9 з.п. ф-лы, 8 ил.

 

ОПИСАНИЕ ИЗОБРЕТЕНИЯ

2420-556475RU/081

ЗАЩИТА ДАННЫХ ЦЕПОЧЕК БЛОКОВ С ИСПОЛЬЗОВАНИЕМ ГОМОМОРФНОГО ШИФРОВАНИЯ

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

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

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

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

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

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

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

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

[0007] Эти и другие реализации в необязательном порядке могут включать в себя один или более следующих признаков: значение удостоверения формируется с использованием схемы обязательств, которая является гомоморфной; схема обязательств представляет собой схему обязательств Педерсена; второе случайное число и третье случайное число шифруются на основе детерминированной схемы гомоморфного шифрования (HE), которая имеет линейные свойства HE(a+b)=HE(a)*HE(b) и HE(ab)=HE(b)a, где a и b являются простым текстом, используемым для HE; выбранные случайные числа представляются посредством r1 и t1, и выбранные случайные числа используются для того, чтобы формировать r2 и t2, где r2=r1+xr, t2=t1+xt, где r1 и t1 представляют одно или более выбранных случайных чисел, r является первым случайным числом, t является суммой перевода баланса, x является хеш-значением; набор значений дополнительно формируется на основе T1, T1' и T1'', где T1=gr1ht1, T1'=HE_A(r1), T1''=HE_B(r1), где g и h являются генераторами эллиптической кривой, и при этом HE_A(r1) формируется на основе HE r1 с использованием открытого ключа первого счета, и HE_B(r1) формируется на основе HE r1 с использованием открытого ключа второго счета, и при этом x формируется на основе хеширования T1, T1' и T1''; первое случайное число, второе случайное число и третье случайное число определяются как идентичные на основе свойств детерминированного HE; первое случайное число, второе случайное число и третье случайное число определяются как идентичные, если gr2ht2=TxT1, HE_A(r2)=T'xT1' и HE_B(r2)=T''xT1'', где T=grht, T'=HE_A(r) и T"=HE_B(r), и при этом HE_A(r) и HE_A(r2) формируются на основе HE r и r2, соответственно, с использованием открытого ключа первого счета, HE_B(r) и HE_B(r2), формируются на основе HE r и r2 с использованием открытого ключа второго счета; T, T' и T" формируют зашифрованный текст суммы t транзакции; и обновление баланса первого счета и баланса второго счета выполняется на основе гомоморфного шифрования.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

[0032] Фиг. 3 иллюстрирует примерный способ 300 проверки достоверности с защитой конфиденциальности транзакции с цепочками блоков на основе HE в соответствии с реализациями настоящего раскрытия. На высоком уровне, примерный способ 300 осуществляется посредством пользовательского узла A 302, пользовательского узла B (не показан на фиг. 3) и узла 304 цепочки блоков, также называемого "консенсусным узлом". Транзакция, такая как перевод стоимости, может проводиться из пользовательского узла A 302 в пользовательский узел B. Чтобы защищать конфиденциальность счета, пользовательский узел A 302 может формировать удостоверение суммы t транзакции с использованием схемы обязательств, такой как PC, на основе случайного числа r. Удостоверение, сформированное с использованием PC, может выражаться как PC(r, t). Пользовательский узел A 302 также может шифровать случайное число с использованием HE на основе открытого ключа пользовательского узла B. Это может выражаться как HE(r). Зашифрованный текст суммы t транзакции, выражаемый как (PC(r, t), HE(r)), может передаваться в пользовательский узел B. После приема зашифрованного текста, пользовательский узел B может дешифровать случайное число r с использованием закрытого (секретного) ключа. Пользовательский узел B может использовать случайное число r для того, чтобы дешифровать сумму t транзакции. Чтобы доказывать достоверность транзакции, узел 304 цепочки блоков может сравнивать случайное число в удостоверения и случайное число, зашифрованное с использованием HE. Если случайные числа совпадают, транзакция определяется как достоверная посредством узла 304 цепочки блоков с нулевым разглашением из данных транзакции. В дальнейшем поясняются дополнительные сведения по примерному способу 300 в нижеприведенном описании по фиг. 3.

[0033] На 306, пользовательский узел A 302 формирует значение удостоверения суммы транзакции на основе первого случайного числа и шифрует, на основе HE, второе случайное число с использованием открытого ключа пользовательского узла A 302 и третье случайное число с использованием открытого ключа пользовательского узла B. Первое случайное число, второе случайное число и третье случайное число могут быть идентичным случайным числом r, используемым для того, чтобы формировать удостоверение суммы t транзакции с использованием схемы обязательств. В некоторых реализациях, схема обязательств может иметь двойную экспоненциальную форму, такую как PC. С использованием PC в качестве неограничивающего примера, значение удостоверения, сформированное посредством первого случайного числа r, может выражаться как PC(r, t)=grht, где g и h могут быть генераторами эллиптической кривой, PC(r, t) является скалярным умножением точек кривой, и t является суммой транзакции, которая удостоверяется. Следует понимать, что другие схемы обязательств на основе HE, такие как HE Окамото-Учиямы (OU) и HE Бонеха-Го-Ниссима, также могут использоваться для того, чтобы формировать значение удостоверения.

[0034] Шифрование второго случайного числа r, зашифрованного с использованием открытого ключа пользовательского узла A 302, может выражаться как HE_A(r). Шифрование третьего случайного числа r, зашифрованного с использованием открытого ключа пользовательского узла B, может выражаться как HE_B(r).

[0035] В некоторых реализациях, HE-шифрование с открытым ключом может представлять собой детерминированное HE, которое может получаться из вероятностных HE-схем, таких как HE Пэйе, HE Бенало, HE OU, HE Накаша-Штерна, HE Дамгарда-Юрика или HE Бонеха-Го-Ниссима, посредством задания случайного числа равным фиксированному значению. В некоторых реализациях, детерминированные HE-схемы, которые удовлетворяют таким линейным свойствам, что HE(a+b)=HE(a)+HE(b) и HE(ab)=HE(b)a, где a и b являются простым текстом, используемым для HE, могут использоваться для настоящего раскрытия.

[0036] В некоторых примерах, T=PC(r, t), T'=HE_A(r) и T"=HE_B(r) и зашифрованный текст суммы транзакции могут выражаться как (T, T' и T"). Транзакция может определяться как достоверная, если удовлетворяются примерные условия. Во-первых, сумма t транзакции превышает или равна 0 и меньше или равна балансу s_A счета пользовательского узла A 302. Во-вторых, транзакция снабжается цифровой подписью посредством закрытого ключа закрытого ключа пользовательского узла A 302, чтобы доказывать то, что транзакция авторизуется посредством пользовательского узла A 302. В-третьих, случайное число r в удостоверения PC(r, t) является идентичным r, зашифрованному в зашифрованном тексте HE_A(r) и HE_B(r) с использованием открытых ключей пользовательского узла A 302 и пользовательского узла B, соответственно.

[0037] В некоторых реализациях, зашифрованный текст также может разделяться в качестве зашифрованного текста отправленной суммы (t'), который может выражаться как (PC (r', t'), HE_A r')), и зашифрованного текста принимаемой суммы (t''), который может выражаться как (PC (r'', t''), HE_B(r'')). В таких случаях, отправленная сумма t' также должна определяться как идентичная принимаемой сумме t'', чтобы проверять достоверность транзакции.

[0038] На 308, пользовательский узел A 302 формирует одно или более доказательств по диапазону. В некоторых реализациях, доказательства по диапазону могут включать в себя доказательство RP1 по диапазону, чтобы показывать то, что сумма t транзакции превышает или равна нулю, и доказательство RP2 по диапазону, чтобы показывать то, что сумма t транзакции меньше или равна балансу счета пользовательского узла A.

[0039] На 310, пользовательский узел A 302 формирует набор значений с использованием HE на основе одного или более выбранных случайных чисел. Набор значений, обозначаемый в качестве Pf, может включать в себя доказательства, используемые для того, чтобы доказывать то, что случайное число r в удостоверения PC(r, t) является идентичным r, зашифрованному в зашифрованном тексте HE_A(r) и HE_B(r) с использованием открытых ключей пользовательского узла A 302 и пользовательского узла B, соответственно. В некоторых реализациях, два случайных числа r1 и t1 могут выбираться, чтобы вычислять другой набор зашифрованных текстов t1, обозначаемых в качестве (T1, T1', T1''), где T1=gr1ht1, T1'=HE_A(r1), T1''=HE_B(r1). Два дополнительных доказательства r2 и t2 могут вычисляться как r2=r1+xr, t2=t1+xt, где x является хешем T1, T1' и T1''. Набор значений может обозначаться как Pf=(T1, T1', T1'', r2, t2).

[0040] На 312, пользовательский узел A 302 использует свой закрытый ключ для того, чтобы снабжать цифровой подписью зашифрованный текст (T, T', T"), зашифрованный текст (T1, T1', T1''), r2, t2, доказательства RP1 и RP2 по диапазону и открытые ключи пользовательского узла A 302 и пользовательского узла B. Цифровая подпись, добавленная посредством пользовательского узла A 302, может использоваться для того, чтобы показывать то, что транзакция авторизуется посредством пользовательского узла A 302. Копия с цифровой подписью отправляется в сеть цепочек блоков на 314.

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

[0042] На 318, узел 304 цепочки блоков верифицирует одно или более доказательств по диапазону. Например, доказательство RP1 по диапазону может использоваться для того, чтобы доказывать то, что сумма t транзакции превышает или равна нулю, и доказательство RP2 по диапазону может использоваться для того, чтобы доказывать то, что сумма t транзакции меньше или равна балансу счета пользовательского узла A 302.

[0043] На 320, узел 304 цепочки блоков определяет то, что первое случайное число, второе случайное число и третье случайное число являются идентичными, на основе набора значений. В некоторых реализациях, определение включает в себя определение того, являются или нет примерные условия gr2ht2=TxT1, HE_A(r2)=T'xT1' и HE_B(r2)=T''xT1'' истинными, на основе свойств детерминированного HE, как пояснено выше. Если это правда, можно указывать то, что случайное число в удостоверения является идентичным случайным числам, гомоморфно зашифрованным с использованием открытых ключей пользовательского узла A 302 и пользовательского узла B, и транзакция является достоверной.

[0044] На 322, узел 304 цепочки блоков обновляет баланс счетов пользовательского узла A 302 и пользовательского узла B. Обновления баланса могут выполняться на основе свойств HE без раскрытия баланса счетов пользовательского узла A 302 или пользовательского узла B. В дальнейшем подробнее описывается обновление баланса счетов в данном документе со ссылкой на фиг. 4.

[0045] Фиг. 4 иллюстрирует примерную транзакцию 400 с цепочками блоков на основе HE в соответствии с реализациями настоящего раскрытия. Как показано в примерной транзакции 400 с цепочками блоков, пользовательский узел A 402 переводит сумму t транзакции в пользовательский узел B 406. Перед транзакцией, пользовательский узел A 402 имеет баланс s_A счета, и пользовательский узел B 406 имеет баланс s_B счета.

[0046] С использованием схем шифрования и процесса проведения транзакций, описанных в данном документе со ссылкой на фиг. 3, в качестве примера, баланс s_A счета может шифроваться с использованием случайного числа r_A на основе PC, и случайное число r_A может шифроваться на основе HE. Зашифрованный текст баланса s_A счета может выражаться как (S_A, S'_A)=(gr_Ahs_A, HE_A(r_A)), где g и h могут быть генераторами эллиптической кривой для формирования PC баланса s_A счета. Аналогично, баланс s_B счета пользовательского узла B 406 может шифроваться с использованием случайного числа r_B на основе PC. Зашифрованный текст баланса s_B счета может выражаться как (S_B, S'_B)=(gr_Bhs_B, HE_A(r_B)).

[0047] На 404, пользовательский узел A 402 может добавлять цифровую подпись в доказательства, используемые для того, чтобы проверять достоверность транзакции, и отправлять копию с цифровой подписью в сеть цепочек блоков 408. Как описано выше со ссылкой на фиг. 3, доказательства могут включать в себя зашифрованный текст (T, T', T") суммы транзакции, одно или более доказательств (RP1, RP2) по диапазону и другие доказательства (T1, T1', T1'', r2, t2).

[0048] После транзакции, баланс счета пользовательского узла A 402 может выражаться как s_A-t', и баланс счета пользовательского узла B 406 может выражаться как s_B+t'', где t' является суммой, отправленной посредством пользовательского узла A 402, и t'' является суммой, принимаемой посредством пользовательского узла B. Зашифрованный текст баланса счета пользовательского узла A 402 после транзакции может выражаться как (S_A/T, S'_A/T') и зашифрованный текст баланса счета пользовательского узла B 406 после транзакции может выражаться как (S_B*T, S'_B*T"). Поскольку S_A, S'_A, S_B, S'_B, T, T', T" шифруются с использованием HE с двойной экспоненциальной формой, суммирование и вычитание могут выполняться в зашифрованной форме без дешифрования в значения простого текста.

[0049] Фиг. 5 иллюстрирует другой примерный способ 500 проверки достоверности с защитой конфиденциальности транзакции с цепочками блоков на основе HE в соответствии с реализациями настоящего раскрытия. На высоком уровне, примерный способ 500 осуществляется посредством пользовательского узла A 502, пользовательского узла B (не показан на фиг. 5) и узла 504 цепочки блоков, который также может называться "консенсусным узлом". Транзакция, такая как перевод стоимости, может проводиться из пользовательского узла A 502 в пользовательский узел B. Чтобы защищать конфиденциальность счета, пользовательский узел A 502 может формировать удостоверение суммы t транзакции с использованием схемы обязательств, такой как PC, на основе случайного числа r. Удостоверение, сформированное с использованием PC, может выражаться как PC(r, t). Пользовательский узел A 502 также может шифровать сумму t транзакции и случайное число r с использованием HE, которое имеет двойную экспоненциальную форму, такую как OU.

[0050] Зашифрованный текст суммы t транзакции может отправляться в сеть цепочек блоков. После приема зашифрованного текста, узел 504 цепочки блоков может определять то, совпадает или нет случайное число r, скрываемое в PC, со случайным числом r, зашифрованным в OU с использованием открытых ключей пользовательского узла A 502 и пользовательского узла B, соответственно. Дополнительно, узел 504 цепочки блоков может определять то, совпадает или нет сумма t транзакции, скрываемая в PC, с суммой t транзакции, зашифрованной в OU с использованием открытых ключей пользовательского узла A 502 и пользовательского узла B, соответственно. Если как случайные числа, так и суммы транзакций совпадают, транзакция может определяться как достоверная посредством узла 504 цепочки блоков с нулевым разглашением из данных транзакции.

[0051] На 506, пользовательский узел A 502 формирует значение удостоверения первой суммы транзакции на основе первого случайного числа и первой суммы транзакции и первое случайное число, зашифрованное с использованием открытого ключа пользовательского узла A 502. Вторая сумма транзакции и второе случайное число шифруются с использованием открытого ключа пользовательского узла B. Первая сумма транзакции и вторая сумма транзакции могут быть идентичной суммой t. Первое случайное число и второе случайное число могут быть идентичным случайным числом r, используемым для того, чтобы формировать удостоверение суммы t транзакции с использованием схемы обязательств. В некоторых реализациях, схема обязательств может иметь двойную экспоненциальную форму, такую как PC. С использованием PC в качестве примера, значение удостоверения, сформированное посредством первого случайного числа r, может выражаться как PC(r, t)=grht, где g и h могут быть генераторами эллиптической кривой, PC(r, t) является скалярным умножением точек кривой, и t является суммой транзакции, которая удостоверяется. Следует понимать, что другие схемы обязательств на основе HE, такие как HE OU и HE Бонеха-Го-Ниссима, также могут использоваться для того, чтобы формировать значение удостоверения.

[0052] Пользовательский узел A 502 также может шифровать первое случайное число и первую сумму транзакции с использованием открытого ключа пользовательского узла A 502 и шифровать второе случайное число и вторую сумму транзакции с использованием открытого ключа пользовательского узла B. В некоторых реализациях, шифрование случайных чисел и сумм транзакций может быть основано на вероятностном HE, таком как OU. С использованием OU в качестве примера, шифрование первого случайного числа и первой суммы транзакции с использованием открытого ключа пользовательского узла A 502 может выражаться как OU_A(r)=u1rv1y1 и OU_A(t)=u1tv1y2, соответственно, где u1 и v1 являются генераторами на эллиптической кривой, и y1 и y2 являются случайными числами, используемыми для того, чтобы формировать OU_A(r) и OU_A(t). Зашифрованное второе случайное число и вторая сумма транзакции могут выражаться как OU_B(r)=u2rv2z1 и OU_B(t)=u2tv2z2, соответственно, где u2 и v2 являются генераторами на эллиптической кривой, и z1 и z2 являются случайными числами, используемыми для того, чтобы формировать OU_B(r) и OU_B(t), соответственно. Вероятностный OU удовлетворяет такому свойству, что OU(a+b)=OU(a)*OU(b), где a и b являются простым текстом, используемым для OU.

[0053] Зашифрованный текст суммы t транзакции может выражаться как (PC(r, t), OU_A(r), OU_A(t), OU_B(r), OU_B(t)). Транзакция может определяться как достоверная, если удовлетворяются следующие примерные условия. Во-первых, сумма t транзакции превышает или равна 0 и меньше или равна балансу s_A счета пользовательского узла A 502. Во-вторых, транзакция снабжается цифровой подписью с использованием закрытого ключа закрытого ключа пользовательского узла A 502, чтобы доказывать то, что транзакция авторизуется посредством пользовательского узла A 502. В-третьих, случайное число r в удостоверения PC(r, t) является идентичным r, зашифрованному в зашифрованном тексте OU_A(r) и OU_B(r) с использованием открытых ключей пользовательского узла A 502 и пользовательского узла B, соответственно. В-четвертых, сумма t транзакции в удостоверения PC(r, t) является идентичной t, зашифрованному в зашифрованном тексте OU_A(t) и OU_B(t) с использованием открытых ключей пользовательского узла A 502 и пользовательского узла B, соответственно.

[0054] В некоторых реализациях, зашифрованный текст также может разделяться в качестве зашифрованного текста отправленной суммы (t'), который может выражаться как (PC (r', t'), OU_A r'), OU_A(t')), и зашифрованного текста принимаемой суммы (t''), который может выражаться как (PC (r'', t''), OU_B(r''), OU_B(t'')). В таких случаях, отправленная сумма t' также должна определяться как равная принимаемой сумме t'', чтобы проверять достоверность транзакции.

[0055] На 508, пользовательский узел A 502 формирует одно или более доказательств по диапазону. В некоторых реализациях, доказательства по диапазону могут включать в себя доказательство RP1 по диапазону, чтобы показывать то, что сумма t транзакции превышает или равна нулю, и доказательство RP2 по диапазону, чтобы показывать то, что сумма t транзакции меньше или равна балансу счета пользовательского узла A.

[0056] На 510, пользовательский узел A 502 формирует набор значений с использованием HE на основе одного или более выбранных случайных чисел. Набор значений, обозначаемый в качестве Pf, может включать в себя доказательства, используемые для того, чтобы доказывать то, что случайное число r в удостоверения PC(r, t) является идентичным r, зашифрованному в зашифрованном тексте OU_A(r) и OU_B(r), и сумма t транзакции в удостоверения PC(r, t) является идентичным t, зашифрованному в зашифрованном тексте OU_A(t) и OU_B(t). В некоторых реализациях, четыре случайных числа r*, t*, z1*и z2*могут выбираться, чтобы вычислять другой набор зашифрованных текстов, обозначаемых в качестве (C, D, E), где C=gr*ht*, D=u2r*v2z1*и E=u2t*v2z2*, где g, h, u2 и v2 являются генераторами эллиптической кривой. Четыре дополнительных доказательства a, b, c и d могут вычисляться как a=r*+xr, b=t*+xt, c=z1*+xz1 и d=z2*+xz2, где x является хеш-функцией g, h, u2, v2, C, D и E. Набор значений затем может обозначаться как Pf=(C, D, E, a, b, c, d).

[0057] На 512, пользовательский узел A 502 использует свой закрытый ключ для того, чтобы снабжать цифровой подписью зашифрованный текст (PC(r, t), OU_A(r), OU_A(t), OU_B(r), OU_B(t)), доказательства RP1 и RP2 по диапазону и набор Pf значений. Цифровая подпись, добавленная посредством пользовательского узла A 502, может использоваться для того, чтобы показывать то, что транзакция авторизуется посредством пользовательского узла A 502. Копия с цифровой подписью отправляется в сеть цепочек блоков на 514.

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

[0059] На 518, узел 504 цепочки блоков верифицирует одно или более доказательств по диапазону. Например, доказательство RP1 по диапазону может использоваться для того, чтобы доказывать то, что сумма t транзакции превышает или равна нулю, и доказательство RP2 по диапазону может использоваться для того, чтобы доказывать то, что сумма t транзакции меньше или равна балансу счета пользовательского узла A 502.

[0060] На 520, узел 504 цепочки блоков определяет то, является или нет первая сумма транзакции идентичной второй сумме транзакции, и то, является или нет первое случайное число идентичным второму случайному числу, на основе набора значений. В некоторых реализациях, определение включает в себя определение того, удовлетворяется или нет gahb=CTx, u2av2c=DZ_B1x и u2bv2d=EZ_B2x, где T=grht является значением удостоверения первой суммы транзакции t, Z_B1=u2rv2z1, Z_B2=u2tv2z2, и при этом z1 и z2 являются случайными числами, используемыми для того, чтобы шифровать вторую сумму транзакции и второе случайное число на основе вероятностной HE-схемы. Если это правда, можно указывать то, что случайное число и сумма транзакции в удостоверении, соответственно, являются идентичными случайным числам и суммам транзакций, гомоморфно зашифрованным с использованием открытого ключа пользовательского узла A 502 и пользовательского узла B, и транзакция является достоверной.

[0061] На 522, узел 504 цепочки блоков обновляет баланс счетов пользовательского узла A 502 и пользовательского узла B. Обновления баланса счетов могут выполняться на основе свойств HE без раскрытия баланса счетов пользовательского узла A 502 и/или пользовательского узла B.

[0062] Фиг. 6 иллюстрирует другую примерную транзакцию 600 с цепочками блоков на основе HE в соответствии с реализациями настоящего раскрытия. Как показано в примерной транзакции 600, пользовательский узел A 602 переводит сумму t транзакции в пользовательский узел B 606. Перед транзакцией, пользовательский узел A 602 имеет баланс s_A счета, и пользовательский узел B 606 имеет баланс s_B счета.

[0063] В некоторых примерах, баланс s_A счета может быть скрыт с использованием случайного числа r_A на основе PC с использованием схем шифрования и процесса проведения транзакций, описанных в данном документе со ссылкой на фиг. 5. Случайное число r_A и баланс счета могут шифроваться на основе OU. Зашифрованный текст баланса s_A счета может выражаться как (S_A, R_A, Q_A)=(gr_Ahs_A, OU_A(r_A), OU_A(s_A)), где g и h могут быть генераторами эллиптической кривой для формирования PC баланса s_A счета. Аналогично, баланс s_B счета пользовательского узла B 606 может шифроваться с использованием случайного числа r_B на основе PC. Зашифрованный текст баланса s_B счета может выражаться как (S_B, S'_B)=(gr_Bhs_B, OU_B(r_B), OU_B(s_B)).

[0064] На 604, пользовательский узел A 602 может добавлять цифровую подпись в доказательства, используемые для того, чтобы проверять достоверность транзакции, и отправлять копию с цифровой подписью в сеть 608 цепочек блоков. Как описано в данном документе со ссылкой на фиг. 5, доказательства могут включать в себя зашифрованный текст суммы транзакции (PC(r, t), OU_A(r), OU_A(t), OU_B(r), OU_B(t)), одно или более доказательств (RP1, RP2) по диапазону и другие доказательства (C, D, E, a, b, c, d).

[0065] После транзакции, баланс счета пользовательского узла A 602 может выражаться как s_A-t, и баланс счета пользовательского узла B 606 может выражаться как s_B+t. Зашифрованный текст баланса счета пользовательского узла A 602 после транзакции может выражаться как (S_A/T,R_A/Y_A1, Q_A/Y_A2), где Y_A1=OU_A(r) и Y_A2=OU_A(t). Зашифрованный текст баланса счета пользовательского узла B 606 после транзакции может выражаться как (S_B*T, R_B*Z_B1, Q_B*Z_B2), где Z_B1=OU_B(r) и Z_B2=OU_B(t). Поскольку S_A S_B, R_A, R_B, Q_A, Q_B, Y_A1, Y_A2, Z_B1, Z_B2 и T шифруются с использованием HE с двойной экспоненциальной формой, суммирование и вычитание могут выполняться в зашифрованной форме без дешифрования значений простого текста.

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

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

[0068] В некоторых реализациях, набор значений представляется посредством (T1, T1', T1'', r2, t2), где r2=r1+xr, t2=t1+xt, где r1 и t1 представляют одно или более выбранных случайных чисел, и r представляет первое случайное число, t представляет сумму перевода баланса. В некоторых примерах, T1=gr1ht1, T1'=HE_A(r1), T1''=HE_B(r1), где g и h являются генераторами эллиптической кривой, HE_A(r1) формируется на основе HE r1 с использованием открытого ключа первого счета, и HE_B(r1) формируется на основе HE r1 с использованием открытого ключа второго счета. В некоторых примерах, x формируется на основе хеширования T1, T1' и T1''.

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

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

[0071] На 708, консенсусный узел определяет то, являются или нет первое случайное число, второе случайное число и третье случайное число идентичными, на основе набора значений. В некоторых реализациях, первое случайное число, второе случайное число и третье случайное число определяются как идентичные, если gr2ht2=TxT1, HE_A(r2)=T'xT1' и HE_B(r2)=T''xT1'', где T=grht является значением удостоверения суммы перевода баланса, T'=HE_A(r) и T''=HE_B(r), HE_A(r), формируется на основе HE r с использованием открытого ключа первого счета, HE_B(r) формируется на основе HE r с использованием открытого ключа второго счета, HE_A(r2) формируется на основе HE r2 с использованием открытого ключа первого счета, и HE_B(r2) формируется на основе HE r2 с использованием открытого ключа второго счета, x формируется на основе хеширования g, h, T1, T1' и T1''. В некоторых реализациях, T, T' и T'' формируют зашифрованный текст суммы t суммы по транзакции.

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

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

[0074] На 802, консенсусный узел принимает, с первого счета, копию с цифровой подписью значения удостоверения первой суммы транзакции для перевода с первого счета до второго счета. В некоторых примерах, копия с цифровой подписью значения удостоверения формируется на основе первого случайного числа. Консенсусный узел также принимает первую сумму транзакции и первое случайное число, зашифрованное с использованием открытого ключа первого счета, вторую сумму перевода баланса и второе случайное число, зашифрованное с использованием открытого ключа второго счета, одно или более доказательств по диапазону и набор значений, сформированный с использованием HE на основе одного или более выбранных случайных чисел. В некоторых реализациях, значение удостоверения формируется с использованием PC-схемы. В некоторых реализациях, первая сумма перевода баланса и первое случайное число шифруются с использованием открытого ключа первого счета на основе вероятностного HE-алгоритма. В некоторых примерах, вторая сумма перевода баланса и второе случайное число шифруются с использованием открытого ключа второго счета на основе вероятностного HE-алгоритма. В некоторых реализациях, вероятностный HE-алгоритм представляет собой HE-алгоритм Окамото-Учиямы.

[0075] В некоторых реализациях, набор значений представляется посредством (C, D, E, a, b, c, d), где a=r*+xr, b=t*+xt, c=z1*+xz1 и d=z2*+xz2, где r*, t*, z1*и z2*представляют одно или более выбранных случайных чисел, r представляет первое случайное число, t представляет первую сумму перевода баланса, C=gr*ht*, D=u2r*v2z1*, E=u2t*v2z2*, g, h, u2 и v2 являются генераторами эллиптической кривой, и x формируется на основе хеширования C, D и E.

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

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

[0078] На 808, консенсусный узел определяет то, является или нет первая сумма идентичной второй сумме, и то, являются или нет первое случайное число и второе случайное число идентичными, на основе набора значений. В некоторых реализациях, первая сумма и вторая сумма определяются как идентичные, и первое случайное число и второе случайное число определяются как идентичные, если gahb=CTx, u2av2c=DZ_B1x и u2bv2d=EZ_B2x, где T=grht является значением удостоверения суммы перевода баланса, Z_B1=u2rv2z1, Z_B2=u2tv2z2. В некоторых примерах, z1 и z2 являются случайными числами, используемыми для того, чтобы шифровать вторую сумму транзакции и второе случайное число на основе вероятностной HE-схемы.

[0079] На 810, консенсусный узел обновляет баланс первого счета и баланс второго счета на основе первой суммы перевода баланса, если первая сумма и вторая сумма являются идентичными, и первое случайное число и второе случайное число являются идентичными. В некоторых реализациях, обновление баланса первого счета и баланса второго счета выполняется на основе HE.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

обновляют баланс первого счета и баланс второго счета на основе суммы перевода баланса, если первое случайное число, второе случайное число и третье случайное число являются идентичными.

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

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

4. Машинореализуемый способ по п.1, в котором второе случайное число и третье случайное число зашифрованы на основе детерминированной схемы гомоморфного шифрования (HE), которая имеет линейные свойства HE(a+b)=HE(a)*HE(b) и HE(ab)=HE(b)a, где a и b являются простым текстом, используемым для HE.

5. Машинореализуемый способ по п.4, в котором выбранные случайные числа представляются посредством r1 и t1, и выбранные случайные числа используются для формирования r2 и t2, причем r2=r1+xr, t2=t1+xt, где r1 и t1 представляют одно или более выбранных случайных чисел, r является первым случайным числом, t является суммой перевода баланса, x является хеш-значением.

6. Машинореализуемый способ по п.5, в котором упомянутый набор значений сформирован дополнительно на основе T1, T1' и T1'', причем T1=gr1ht1, T1'=HE_A(r1), T1''=HE_B(r1), где g и h являются генераторами эллиптической кривой, при этом HE_A(r1) формируется на основе HE r1 с использованием общедоступного ключа первого счета, и HE_B(r1) формируется на основе HE r1 с использованием общедоступного ключа второго счета, и при этом x формируется на основе хеширования T1, T1' и T1''.

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

8. Машинореализуемый способ по п.6, в котором первое случайное число, второе случайное число и третье случайное число определяются как идентичные, если gr2ht2=TxT1, HE_A(r2)=T'xT1' и HE_B(r2)=T''xT1'', где T=grht, T'=HE_A(r) и T''=HE_B(r), при этом HE_A(r) и HE_A(r2) формируются на основе HE r и r2, соответственно, с использованием общедоступного ключа первого счета, HE_B(r) и HE_B(r2) формируются на основе HE r и r2 с использованием общедоступного ключа второго счета.

9. Машинореализуемый способ по п.1, в котором T, T' и T'' формируют зашифрованный текст суммы t транзакции.

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

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

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

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

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



 

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Настоящее изобретение относится к технологиям мобильной связи. Технический результат - обеспечение условия получения правильной информации о функциональных возможностях UE на стороне ММЕ.

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

Группа изобретений относится к области систем защищенной беспроводной связи и предназначена для защиты беспроводных каналов связи между беспилотным летательным аппаратом (БПЛА) или аналогичным удаленно управляемым аппаратом и наземной станцией управления (НСУ).

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

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

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

Изобретение относится к количественному оцениванию риска и надежности при бурении и заканчивании скважины на основании ряда параметров, таких как непродуктивное время (НПВ).

Настоящее изобретение относится к области сетей цепочек блоков. Технический результат заключается в повышении безопасности данных мобильного вычислительного устройства. Способ включает: прием, посредством консенсусного узла с первого счета, подписанной цифровым образом копии значения удостоверения суммы транзакции, второго случайного числа, зашифрованного с использованием общедоступного ключа первого счета, третьего случайного числа, зашифрованного с использованием общедоступного ключа второго счета, одного или более доказательств по диапазону и набора значений, сформированного на основе одного или более выбранных случайных чисел. Консенсусный узел верифицирует цифровую подпись с использованием общедоступного ключа первого счета, соответствующего секретному ключу, использованному для формирования этой цифровой подписи. Он также обновляет баланс первого счета и баланс второго счета на основе суммы перевода баланса, если первое случайное число, второе случайное число и третье случайное число являются идентичными. 3 н. и 9 з.п. ф-лы, 8 ил.

Наверх