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

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

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

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

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

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

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

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

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

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

[0007] Эти и другие реализации необязательно могут включать в себя один или более следующих признаков: значение обязательств формируется с использованием схемы обязательств, которая является гомоморфной; схема обязательств является схемой обязательств Педерсена; первая сумма перевода баланса и первое случайное число шифруются с использованием открытого ключа первого счета на основе алгоритма вероятностного гомоморфного шифрования (HE), и при этом вторая сумма перевода баланса и второе случайное число шифруются с использованием открытого ключа второго счета на основе вероятностного алгоритма HE; вероятностный алгоритм HE представляет собой алгоритм HE Окамото-Учиямы; выбранные случайные числа представляются посредством r*, t*, z1* и z2*, и выбранные случайные числа используются для того, чтобы формировать a, b, c и d, где a=r*+xr, b=t*+xt, c=z1*+xz1 и d=z2*+xz2, r является первым случайным числом, t является первой суммой перевода баланса, x является хэш-значением; набор значений дополнительно формируется на основе C, D и E, где C=gr*ht*, D=u2r*v2z1*, E=u2t*v2z2*, где g, h, u2 и v2 являются генераторами эллиптической кривой, и при этом x формируется на основе хэширования C, D и E; первая сумма и вторая сумма определяются как идентичные, и первое случайное число и второе случайное число определяются как идентичные, на основе свойств вероятностного гомоморфного шифрования (HE); первая сумма и вторая сумма определяются как идентичные, и первое случайное число и второе случайное число определяются как идентичные, если gahb=CTx, u2av2c=DZ_B1x u 2bv2d=EZ_B2x, где T=grht является значением обязательств суммы перевода баланса, Z_B1=u2rv2z1, Z_B2=u2tv2z2, и при этом z1 и z2 являются случайными числами, используемыми для того, чтобы шифровать вторую сумму перевода баланса и второе случайное число на основе вероятностной схемы HE; и обновление баланса первого счета и баланса второго счета выполняется на основе HE.

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

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

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

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

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

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

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

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

- принимают с первого счета:

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

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

одно или более доказательств по диапазону; и

набор значений, сформированный на основе одного или более выбранных случайных чисел;

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

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

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

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

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

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

4. Машинореализованный способ по п. 1, в котором вероятностный алгоритм HE представляет собой алгоритм HE Окамото-Учиямы.

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

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

7. Машинореализованный способ по п. 6, в котором первая сумма и вторая сумма определяются как идентичные и первое случайное число и второе случайное число определяются как идентичные, если gahb=CTx, u2av2c=DZ_B1x и u2bv2d=EZ_B2x, где T=grht является значением обязательств суммы перевода баланса, Z_B1=u2rv2z1, Z_B2=u2tv2z2.

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

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

- прием с первого счета:

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

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

одного или более доказательств по диапазону; и

набора значений, сформированного на основе одного или более выбранных случайных чисел;

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

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

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

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

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

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

12. Энергонезависимый машиночитаемый носитель хранения данных по п. 9, в котором вероятностный алгоритм HE представляет собой алгоритм HE Окамото-Учиямы.

13. Энергонезависимый машиночитаемый носитель хранения данных по п. 9, в котором набор значений дополнительно формируется на основе C, D и E.

14. Энергонезависимый машиночитаемый носитель хранения данных по п. 13, в котором первая сумма и вторая сумма определяются как идентичные и первое случайное число и второе случайное число определяются как идентичные на основе свойств вероятностного HE.

15. Энергонезависимый машиночитаемый носитель хранения данных по п. 14, в котором первая сумма и вторая сумма определяются как идентичные и первое случайное число и второе случайное число определяются как идентичные, если gahb=CTx, u2av2c=DZ_B1x и u2bv2d=EZ_B2x, где T=grht является значением обязательств суммы перевода баланса, Z_B1=u2rv2z1, Z_B2=u2tv2z2.

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

один или несколько компьютеров; и

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

- прием с первого счета:

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

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

одного или более доказательств по диапазону; и

набора значений, сформированного на основе одного или более выбранных случайных чисел;

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

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

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

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

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

CN 108764874 A, 06.11.2018
CN 108632293 A, 09.10.2018
CN 107240018 A, 10.10.2017
US 7434726 B2, 14.10.2008
CN 108377189 A, 07.08.2018
CN 106910072 A, 30.06.2017
Способ получения цианистых соединений 1924
  • Климов Б.К.
SU2018A1
Токарный резец 1924
  • Г. Клопшток
SU2016A1
СПОСОБЫ И СИСТЕМЫ ДЛЯ ОБРАБОТКИ ЭЛЕКТРОННЫХ ВЫПЛАТ 2013
  • Кимберг Дебора
  • Хагмайер Шон
  • Дюшарм Брайан
RU2647663C2

RU 2 727 161 C1

Авторы

Ма, Баоли

Чжан, Вэньбинь

Даты

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

2018-11-07Подача