Уровень техники
[0001] Сети цепочек блоков, которые также могут упоминаться как системы цепочек блоков, консенсусные сети, сети на основе системы распределенных реестров (DLS) или цепочка блоков, позволяют участвующим объектам защищенно и неизменно сохранять данные. Цепочка блоков может описываться как реестр транзакций, и несколько копий цепочки блоков сохраняются в сети цепочек блоков. Примерные типы цепочек блоков могут включать в себя открытые цепочки блоков и закрытые цепочки блоков. Открытая цепочка блоков является открытой для всех объектов в том, чтобы использовать цепочку блоков и участвовать в консенсусном процессе. Закрытая цепочка блоков предоставляется для конкретного объекта, который централизованно управляет разрешениями на считывание и запись.
[0002] Цепочки блоков используются в криптовалютных сетях, которые позволяют участникам проводить транзакции, чтобы покупать/продавать товары и/или услуги с использованием криптовалюты. Общая криптовалюта включает в себя биткоин. В криптовалютных сетях, модели ведения записей используются для того, чтобы записывать транзакции между пользователями. Примерная модели ведения записей включают в себя модель на основе непотраченного вывода по транзакциям (UTXO) и модель на основе баланса счетов. В UTXO-модели, каждая транзакция тратит вывод из предшествующих транзакций и формирует новые выводы, которые могут тратиться в последующих транзакциях. Непотраченные транзакции пользователя отслеживаются, и баланс, который должен тратить пользователь, вычисляется как сумма непотраченных транзакций. В модели на основе баланса счетов, баланс счета каждого пользователя отслеживается как глобальное состояние. Для каждой транзакции, баланс счета расходов проверяется, чтобы удостоверяться в том, что он больше или равен сумме транзакции. Это является сравнимым с традиционным банковским делом.
[0003] Цепочка блоков включает в себя последовательность блоков, каждый из которых содержит одну или более транзакций, выполняемых в сети. Каждый блок может быть аналогичным странице реестра, в то время как сама цепочка блоков является полной копией реестра. Отдельные транзакции подтверждаются и добавляются в блок, который добавляется в цепочку блоков. Копии цепочки блоков реплицируются в узлах сети. Таким образом, предусмотрен глобальный консенсус по состоянию цепочки блоков. Дополнительно, цепочка блоков является открытой для наблюдения посредством всех узлов, по меньшей мере, в случае открытых сетей. Чтобы защищать конфиденциальность пользователей цепочек блоков, реализуются технологии шифрования.
Сущность изобретения
[0004] Реализации настоящего раскрытия включают в себя реализуемые компьютером способы для защиты конфиденциальности данных открытых и закрытых транзакций согласно модели на основе баланса счетов сети цепочек блоков. Более конкретно, реализации настоящего раскрытия направлены на обеспечение возможности закрытых транзакций и открытых транзакций согласно модели на основе баланса счетов в сети цепочек блоков. Таким образом, и как подробнее описано в данном документе, пользователи могут свободно выбирать то, представляет каждая транзакция собой открытую транзакцию или закрытую транзакцию в сети цепочек блоков.
[0005] В некоторых реализациях, действия включают в себя прием, посредством консенсусного узла сети цепочек блоков, данных транзакции и цифровой подписи данных транзакции, при этом данные транзакции включают в себя значение фиксации, случайное число и сумму транзакции, которая должна переводиться с одного из открытого счета или закрытого счета первого пользовательского узла на один из открытого счета или закрытого счета второго пользовательского узла, и при этом цифровая подпись формируется посредством снабжения цифровой подписью данных транзакции с использованием закрытого ключа первого пользовательского узла, и значение фиксации формируется на основе случайного числа и суммы транзакции с использованием схемы фиксации; верификацию цифровой подписи данных транзакции с использованием открытого ключа первого пользовательского узла; и определение того, что сумма транзакции является достоверной, если значение фиксации является корректным, на основе случайного числа и схемы фиксации, и сумма транзакции меньше или равна балансу одного из открытого счета или закрытого счета первого пользовательского узла перед переводом суммы транзакции. Другие реализации включают в себя соответствующие системы, оборудование и компьютерные программы, выполненные с возможностью выполнять действия способов, кодированных на компьютерных устройствах хранения данных.
[0006] Эти и другие реализации необязательно могут включать в себя один или более следующих признаков:
[0007] Первый признак, комбинируемый с любым из следующих признаков, в котором открытый счет имеет открытый баланс, просматриваемый посредством консенсусного узла, и закрытый счет имеет закрытый баланс, просматриваемый с использованием закрытого ключа соответствующего пользовательского узла.
[0008] Второй признак, комбинируемый с любым из предыдущих или последующих признаков, в котором сумма транзакции проходит с открытого счета, ассоциированного с первым пользовательским узлом, на закрытый счет, ассоциированный со вторым пользовательским узлом.
[0009] Третий признак, комбинируемый с любым из предыдущих или последующих признаков, в котором сумма транзакции проходит с закрытого счета первого пользовательского узла на открытый счет второго пользовательского узла, и способ дополнительно содержит: прием, из первого пользовательского узла, доказательства по диапазону, чтобы доказывать то, что сумма транзакции меньше или равна балансу закрытого счета первого пользовательского узла; и при этом перевод определяется как достоверный, если сумма транзакции меньше или равна балансу закрытого счета первого пользовательского узла на основе доказательства по диапазону.
[0010] Четвертый признак, комбинируемый с любым из предыдущих или последующих признаков, дополнительно содержащий обновление баланса одного из открытого счета или закрытого счета первого пользовательского узла и баланса одного из открытого счета или закрытого счета второго пользовательского узла на основе суммы транзакции, если перевод является достоверным.
[0011] Пятый признак, комбинируемый с любым из предыдущих или последующих признаков, в котором баланс закрытого счета обновляется на основе значения фиксации суммы транзакции и фиксации баланса закрытого счета, сформированного с использованием схемы фиксации.
[0012] Шестой признак, комбинируемый с любым из предыдущих или последующих признаков, в котором схема фиксации является гомоморфной.
[0013] Настоящее раскрытие дополнительно предоставляет систему для реализации способов, предусмотренных в настоящем документе. Система включает в себя один или более процессоров и реализуемый компьютером носитель данных, соединенный с одним или более процессорами, хранящий инструкции, которые, при выполнении посредством одного или более процессоров, инструктируют одному или более процессорам выполнять операции в соответствии с реализациями способов, предусмотренных в данном документе.
[0014] Следует принимать во внимание, что способы в соответствии с настоящим раскрытием могут включать в себя любую комбинацию аспектов и признаков, описанных в данном документе. Таким образом, способы в соответствии с настоящим раскрытием не ограничены комбинациями аспектов и признаков, конкретно описанными в данном документе, но также включают в себя любую предоставленную комбинацию аспектов и признаков.
[0015] Подробности одной или более реализаций настоящего раскрытия изложены на прилагаемых чертежах и в нижеприведенном описании. Другие признаки и преимущества настоящего раскрытия должны становиться очевидными из описания и чертежей, а также из формулы изобретения.
Описание чертежей
[0016] Фиг. 1 иллюстрирует примерное окружение, которое может использоваться для того, чтобы выполнять реализации настоящего раскрытия.
[0017] Фиг. 2 иллюстрирует примерную концептуальную архитектуру в соответствии с реализациями настоящего раскрытия.
[0018] Фиг. 3 иллюстрирует примерный процесс проверки достоверности транзакции с цепочками блоков в соответствии с реализациями настоящего раскрытия.
[0019] Фиг. 4 иллюстрирует примерную транзакцию с цепочками блоков с открытого счета на закрытый счет в соответствии с реализациями настоящего раскрытия.
[0020] Фиг. 5 иллюстрирует примерную транзакцию с цепочками блоков с закрытого счета на открытый счет в соответствии с реализациями настоящего раскрытия.
[0021] Фиг. 6 иллюстрирует примерный способ, который может осуществляться в соответствии с реализациями настоящего раскрытия.
[0022] Аналогичные ссылки с номерами на различных чертежах указывают аналогичные элементы.
Подробное описание изобретения
[0023] Реализации настоящего раскрытия включают в себя реализуемые компьютером способы для защиты конфиденциальности данных открытых и закрытых транзакций согласно модели на основе баланса счетов (также называемой в данном документе "моделью счетов") сети цепочек блоков. Более конкретно, реализации настоящего раскрытия направлены на обеспечение возможности закрытых транзакций и открытых транзакций согласно модели на основе баланса счетов в сети цепочек блоков. Таким образом, и как подробнее описано в данном документе, пользователи могут свободно выбирать то, представляет каждая транзакция собой открытую транзакцию или закрытую транзакцию в сети цепочек блоков. В некоторых реализациях, действия включают в себя прием, посредством консенсусного узла сети цепочек блоков, данных транзакции и цифровой подписи данных транзакции, при этом данные транзакции включают в себя значение фиксации (обязательства), случайное число и сумму транзакции, которая должна переводиться с одного из открытого счета или закрытого счета первого пользовательского узла на один из открытого счета или закрытого счета второго пользовательского узла, и при этом цифровая подпись формируется посредством снабжения цифровой подписью данных транзакции с использованием закрытого ключа первого пользовательского узла, и значение фиксации формируется на основе случайного числа и суммы транзакции с использованием схемы фиксации; верификацию цифровой подписи данных транзакции с использованием открытого ключа первого пользовательского узла; и определение того, что сумма транзакции является достоверной, если значение фиксации является корректным, на основе случайного числа и схемы фиксации (обязательства), и сумма транзакции меньше или равна балансу одного из открытого счета или закрытого счета первого пользовательского узла перед переводом суммы транзакции.
[0024] Чтобы предоставлять дополнительный контекст для реализаций настоящего раскрытия, и как представлено выше, сети цепочек блоков, которые также могут упоминаться как консенсусные сети (например, состоящие из равноправных узлов), система распределенных реестров или просто цепочка блоков, позволяют участвующим объектам защищенно и неизменно проводить транзакции и сохранять данные. Цепочка блоков может предоставляться в качестве открытой цепочки блоков, закрытой цепочки блоков или консорциальной цепочки блоков. Реализации настоящего раскрытия подробнее описываются в данном документе со ссылкой на открытую сеть цепочек блоков, которая является открытой между участвующими объектами. Тем не менее, предполагается, что реализации настоящего раскрытия могут быть реализованы в любом соответствующем типе цепочки блоков.
[0025] В открытой цепочке блоков, консенсусный процесс управляется посредством узлов консенсусной сети. Например, сотни, тысячи, даже миллионы объектов могут участвовать в открытой цепочке блоков, каждый из которых управляет, по меньшей мере, одним узлом в открытой цепочке блоков. Соответственно, открытая цепочка блоков может считаться открытой сетью относительно участвующих объектов. В некоторых примерах, большинство объектов (узлов) должны подписывать каждый блок для того, чтобы блок был достоверным и добавлялся в цепочку блоков. Примерная открытая цепочка блоков включает в себя цепочку блоков, используемую в сеть биткоинов, которая представляет собой платежную сеть между равноправными узлами (криптовалютную сеть). Хотя термин "цепочка блоков" обычно упоминается при рассмотрении сети биткоинов, при использовании в данном документе, цепочка блоков, в общем, означает распределенные реестры без конкретной ссылки на сеть биткоинов.
[0026] В общем, открытая цепочка блоков поддерживает открытые транзакции. Открытая транзакция совместно используется со всеми узлами в цепочке блоков, поскольку цепочка блоков реплицируется по всем узлам. Таким образом, все узлы находятся в идеальном консенсусе состояния относительно цепочки блоков. Чтобы достигать консенсуса (например, соглашения с добавлением блока в цепочку блоков), консенсусный протокол реализуется в сети цепочек блоков. Примерный консенсусный протокол включает в себя, без ограничения, доказательство выполнения работы (POW), реализованное в сети биткоинов.
[0027] В дальнейшем подробнее описываются реализации настоящего раскрытия в данном документе с учетом вышеизложенного контекста. Более конкретно, и как представлено выше, реализации настоящего раскрытия направлены на обеспечение возможности закрытых транзакций и открытых транзакций согласно модели на основе баланса счетов в сети цепочек блоков. Таким образом, и как подробнее описано в данном документе, пользователи могут свободно выбирать то, представляет каждая транзакция собой открытую транзакцию или закрытую транзакцию в сети цепочек блоков.
[0028] В соответствии с реализациями настоящего раскрытия, структуры счетов на основе моделей счетов обеспечивают транзакции между открытыми счетами, транзакции между закрытыми счетами и транзакции между открытыми и закрытыми счетами. Надлежащая схема защиты конфиденциальности может реализовываться для различных типов счетов. Таким образом, пользователь (например, узел в сети) может выбирать то, следует выполнять транзакции с использованием открытого счета или закрытого счета, на основе предпочтений конфиденциальности.
[0029] Открытый счет может иметь баланс счета, просматриваемый посредством консенсусных узлов. Закрытый счет может иметь баланс счета, просматриваемый с использованием закрытого ключа владельца (пользователя) счета. Баланс закрытого счета может шифроваться с использованием гомоморфного шифрования или фиксироваться посредством схемы фиксации с гомоморфизмом. В связи с этим, баланс закрытого счета не может определяться посредством других узлов в сети цепочек блоков. Сумма транзакции, переведенная на или с закрытого счета, также может маскироваться на основе схемы фиксации, чтобы обновлять баланс закрытого счета на основе гомоморфного шифрования.
[0030] Фиг. 1 иллюстрирует примерное окружение 100, которое может использоваться для того, чтобы выполнять реализации настоящего раскрытия. В некоторых примерах, примерное окружение 100 обеспечивает возможность объектам участвовать в открытой цепочке 102 блоков. Примерное окружение 100 включает в себя вычислительные системы 106, 108 и сеть 110. В некоторых примерах, сеть 110 включает в себя локальную вычислительную сеть (LAN), глобальную вычислительную сеть (WAN), Интернет либо комбинацию вышеозначенного и соединяет веб-узлы, пользовательские устройства (например, вычислительные устройства) и внутренние интерфейсные системы. В некоторых примерах, к сети 110 может осуществляться доступ по линии проводной и/или беспроводной связи.
[0031] В проиллюстрированном примере, вычислительные системы 106, 108 могут включать в себя любую соответствующую вычислительную систему, которая обеспечивает участие в качестве узла в открытой цепочки 102 блоков. Примерные вычислительные устройства включают в себя, без ограничения, сервер, настольный компьютер, переносной компьютер, планшетное вычислительное устройство и смартфон. В некоторых примерах, вычислительные системы 106, 108 хостят одну или более реализуемых компьютером услуг для взаимодействия с открытой цепочкой 102 блоков. Например, вычислительная система 106 может хостить реализуемые компьютером услуги первого объекта (например, пользователя A), к примеру, система управления транзакциями, которую использует первый объект для того, чтобы управлять своими транзакциями с одним или более других объектов (например, других пользователей). Вычислительная система 108 может хостить реализуемые компьютером услуги второго объекта (например, пользователя B), к примеру, система управления транзакциями, которую использует второй объект для того, чтобы управлять своими транзакциями с одним или более других объектов (например, других пользователей). В примере по фиг. 1, открытая цепочка 102 блоков представляется как сеть с равноправными узлами узлов, и вычислительные системы 106, 108 предоставляют узлы первого объекта и второго объекта, соответственно, которые участвуют в открытой цепочке 102 блоков.
[0032] Фиг. 2 иллюстрирует примерную концептуальную архитектуру 200 в соответствии с реализациями настоящего раскрытия. Примерная концептуальная архитектура 200 включает в себя уровень 202 объектов, уровень 204 предоставления хостящихся услуг и уровень 206 открытых цепочек блоков. В проиллюстрированном примере, уровень 202 объектов включает в себя три объекта, объект_1 (E1), объект_2 (E2) и объект_3 (E3), причем каждый объект имеет соответствующую систему 208 управления транзакциями.
[0033] В проиллюстрированном примере, уровень 204 предоставления хостящихся услуг включает в себя DLS-интерфейсы 210 для каждой системы 208 управления транзакциями. В некоторых примерах, соответствующая система 208 управления транзакциями обменивается данными с соответствующим DLS-интерфейсом 210 по сети (например, по сети 110 по фиг. 1) с использованием протокола связи (например, протокола защищенной передачи гипертекста (HTTPS)). В некоторых примерах, каждый DLS-интерфейс 210 предоставляет соединение связи между соответствующей системой 208 управления транзакциями и уровнем 206 цепочек блоков. Более конкретно, каждый DLS-интерфейс 210 обеспечивает возможность соответствующему объекту проводить транзакции, записываемые в сети 212 цепочек блоков уровня 206 цепочек блоков. В некоторых примерах, связь между DLS-интерфейсом 210 и уровнем 206 цепочек блоков проводится с использованием удаленных вызовов процедур (RPC). В некоторых примерах, DLS-интерфейсы 210 "хостят" узлы цепочек блоков для соответствующих систем 208 управления транзакциями. Например, DLS-интерфейсы 210 предоставляют интерфейс прикладного программирования (API) для доступа к сети 212 цепочек блоков.
[0034] Как описано в данном документе, сеть 212 цепочек блоков предоставляется в качестве сети с равноправными узлами, включающей в себя множество узлов 214, которые неизменно записывают информацию в цепочку 216 блоков. Хотя одна цепочка 216 блоков схематично проиллюстрирована, несколько копий цепочки 216 блоков предоставляются и поддерживаются в цепочке 212 блоков. Например, каждый узел 214 сохраняет копию цепочки 216 блоков. В некоторых реализациях, цепочка 216 блоков сохраняет информацию, ассоциированную с транзакциями, которые выполняются между двумя или более объектов, участвующих в открытой цепочке блоков.
[0035] Настоящее раскрытие раскрывает способы, которые могут обеспечивать возможность выполнения закрытых транзакций и открытых транзакций согласно модели на основе баланса счетов в сети цепочек блоков на основе схем фиксации. Таким образом, пользователи могут свободно выбирать то, является каждая транзакция или счет, используемый для транзакции, открытым или закрытым.
[0036] Фиг. 3 иллюстрирует общую диаграмму, иллюстрирующую примерный процесс 300 проверки достоверности транзакции с цепочками блоков в соответствии с реализациями настоящего раскрытия. Для целей иллюстрации примерного процесса 300 проверки достоверности, транзакция перевода денежных средств предположительно должна выполняться посредством пользовательского узла A 302 в пользовательский узел B (не показан на фиг. 3), и транзакция отправляется посредством пользовательского узла A 302 в узел 304 цепочки блоков для проверки достоверности. Каждый из пользовательского узла A 302 и пользовательского узла B может включать в себя открытый счет и закрытый счет. Баланс открытого счета может быть просматриваемым посредством всех узлов в сети цепочек блоков. Баланс закрытого счета может быть просматриваемым только посредством владельца счета (пользователя) с использованием закрытого ключа. В соответствии с реализациями настоящего раскрытия, пользовательские узлы могут выбирать то, следует выполнять транзакции открыто или конфиденциально с использованием открытого счета или закрытого счета.
[0037] На 306, пользовательский узел A 302 формирует значение фиксации на основе суммы t транзакции и случайного числа r. Значение фиксации может формироваться посредством гомоморфной схемы фиксации. Примерная схема фиксации включает в себя, без ограничения, фиксацию Педерсена (PC). Хотя реализации настоящего раскрытия подробнее описываются в данном документе со ссылкой на PC, предполагается, что реализации настоящего раскрытия могут быть реализованы с использованием любой соответствующей схемы фиксации.
[0038] С использованием PC, например, значение фиксации представляет собой зашифрованный текст, который может обозначаться как PC(t)=rG+tH, где G и H могут быть генераторами эллиптической кривой, PC(t) является скалярным умножением точек кривой, t является значением, которое фиксируется. Схема PC-фиксации имеет гомоморфизм, т.е. PC(t1)+PC(t2)=PC(t1+t2). Держатели зашифрованного текста PC(t) могут верифицировать сумму t транзакции посредством использования случайного числа r. На 308, пользовательский узел A 302 использует закрытый ключ для того, чтобы снабжать цифровой подписью значение PC(t) фиксации, сумму t транзакции и случайное число r. Пользовательский узел A 302 отправляет значение PC(t) фиксации, сумму t транзакции, случайное число r и цифровую подпись в узел 304 цепочки блоков на 310.
[0039] В некоторых реализациях, сумма t транзакции может отправляться с закрытого счета пользовательского узла A 302. Для закрытого счета, то, имеет или нет счет достаточный баланс для того, чтобы переводить сумму t транзакции, не может непосредственно верифицироваться посредством других узлов цепочки блоков. В таких случаях, пользовательский узел A 302 может формировать одно или более доказательств по диапазону, чтобы показывать то, что сумма t транзакции больше или равна нулю и меньше или равна балансу закрытого счета пользовательского узла A 302.
[0040] На 312, узел 304 цепочки блоков верифицирует цифровую подпись значения PC(r, t) фиксации, суммы t транзакции и случайного числа r с использованием открытого ключа пользовательского узла A 302. Если цифровая подпись является корректной, примерный процесс 300 проверки достоверности переходит к 314.
[0041] На 314, узел 304 цепочки блоков верифицирует то, является или нет значение PC(t) фиксации корректным, и то, является или нет сумма t транзакции достоверной. Чтобы верифицировать то, является или нет PC(t) корректным, принимаемое случайное число r и сумма t транзакции могут использоваться для того, чтобы формировать PC, обозначаемое в качестве PC'(r, t). Если PC'(r, t) равно принимаемой фиксации PC(r, t), фиксация PC(r, t) верифицируется как корректная фиксация суммы t транзакции. В некоторых реализациях, узел 304 цепочки блоков может верифицировать то, что сумма t транзакции является достоверной, если она больше или равна 0 и меньше или равна балансу счета для счета пользовательского узла 302 A, из которого переводится сумма транзакции, на основе одного или более доказательств по диапазону.
[0042] На 316, узел 304 цепочки блоков обновляет балансы пользовательского узла A 302 и пользовательского узла B в цепочке блоков и передает в широковещательном режиме цепочку блоков остальным узлам в сети цепочек блоков. Для транзакций с открытыми счетами, сумма транзакции может непосредственно вычитаться или прибавляться из/к балансу открытого счета на основе типа транзакции. Для транзакций с закрытыми счетами, сумма t транзакции может фиксироваться с использованием PC в качестве PC(t) и вычитаться или прибавляться из/к балансу s закрытого счета, также зафиксированному с использованием PC в качестве PC(s). Поскольку PC является гомоморфным, PC±PC(t)=PC(s±t). В дальнейшем подробнее описываются подробности обновления балансов открытых и закрытых счетов в данном документе со ссылками на фиг. 4 и 5.
[0043] Фиг. 4 показывает блок-схему, иллюстрирующую примерную транзакцию 400 с открытого счета на закрытый счет в соответствии с реализациями настоящего раскрытия. Как показано в примерной транзакции 400, перед транзакцией, пользовательский узел A 402 имеет баланс u открытого счета и баланс v закрытого счета, зафиксированный с использованием PC и выражаемый как PC(v). Пользовательский узел B 406 имеет баланс x открытого счета и баланс y закрытого счета, зафиксированный с использованием PC и выражаемый как PC(y). Пользовательский узел A 402 может отправлять транзакцию со своего открытого счета на закрытый счет пользовательского узла B 406 посредством отправки копии с цифровой подписью значения PC(t) фиксации, суммы t транзакции и случайного числа, соответствующего значению фиксации, в сеть 408 цепочек блоков. После того, как значение PC(t) фиксации суммы t транзакции верифицируется с использованием процесса проверки достоверности, такого как примерный процесс 300 по фиг. 3, счета пользовательского узла A 402 и пользовательского узла B 406 могут обновляться. После того, как транзакция проходит проверку достоверности посредством сети 408 цепочек блоков, сумма t транзакции вычитается из открытого счета пользовательского узла A 402 и прибавляется к закрытому счету пользовательского узла B 406. После транзакции, пользовательский узел A 400 имеет баланс u-t открытого счета и баланс PC(v) закрытого счета. Пользовательский узел B 406 имеет баланс x открытого счета и баланс PC(y+t) закрытого счета.
[0044] Фиг. 5 показывает блок-схему, иллюстрирующую примерную транзакцию 500 с закрытого счета на открытый счет в соответствии с реализациями настоящего раскрытия. Как показано в примерной транзакции 500, перед транзакцией, пользовательский узел A 502 имеет баланс u открытого счета и баланс v закрытого счета, зафиксированный с использованием PC и выражаемый как PC(v). Пользовательский узел B 506 имеет баланс x открытого счета и баланс y закрытого счета, зафиксированный с использованием PC и выражаемый как PC(y). Пользовательский узел A 502 может отправлять транзакцию со своего закрытого счета на открытый счет открытого счета пользовательского узла B 506, посредством отправки копии с цифровой подписью значения PC(t) фиксации, суммы t транзакции, случайного числа, соответствующего значению фиксации, и одного или более доказательств по диапазону. Одно или более доказательств по диапазону могут использоваться для того, чтобы доказывать то, что 0≤t≤v, для сети 508 цепочек блоков. После того, как значение PC(t) фиксации суммы t транзакции верифицируется с использованием процесса проверки достоверности, такого как примерный процесс 300 по фиг. 3, счета пользовательского узла A 502 и пользовательского узла B 506 могут обновляться. После того, как транзакция проходит проверку достоверности посредством сети 508 цепочек блоков, сумма t транзакции вычитается из закрытого счета пользовательского узла A и прибавляется к открытому счету открытого счета пользовательского узла B 506. После транзакции, пользовательский узел A 502 имеет баланс u открытого счета и баланс PC(v-t) закрытого счета. Пользовательский узел B 504 имеет баланс x+t открытого счета и баланс PC(y) закрытого счета.
[0045] Фиг. 6 иллюстрирует примерный способ 600, который может осуществляться в соответствии с реализациями настоящего раскрытия. Для ясности представления, нижеприведенное описание, в общем, описывает примерный способ 600 в контексте других чертежей в этом описании. Тем не менее, следует понимать, что примерный способ 600 может осуществляться, например, посредством любой системы, окружения, программного обеспечения и аппаратных средств либо комбинации систем, окружений, программного обеспечения и аппаратных средств, надлежащим образом. В некоторых реализациях, различные этапы примерного способа 600 могут выполняться параллельно, в комбинации, циклически или в любом порядке.
[0046] На 602, консенсусный узел сети цепочек блоков принимает данные транзакции и цифровую подпись данных транзакции. В некоторых реализациях, данные транзакции включают в себя значение фиксации, случайное число и сумму транзакции, которая должна переводиться с одного из открытого счета или закрытого счета первого пользовательского узла на один из открытого счета или закрытого счета второго пользовательского узла. Цифровая подпись формируется посредством снабжения цифровой подписью данных транзакции с использованием закрытого ключа первого пользовательского узла. Значение фиксации формируется на основе случайного числа и суммы транзакции с использованием схемы фиксации. В некоторых реализациях, схема фиксации является гомоморфной. В некоторых реализациях, сумма транзакции проходит с открытого счета, ассоциированного с первым пользовательским узлом, на закрытый счет, ассоциированный со вторым пользовательским узлом. В некоторых реализациях, сумма транзакции проходит с закрытого счета, ассоциированного с первым пользовательским узлом, на открытый счет второго пользовательского узла. В таких случаях, консенсусный узел также может принимать, из первого пользовательского узла, доказательство по диапазону, чтобы доказывать то, что сумма транзакции меньше или равна балансу закрытого счета первого пользовательского узла.
[0047] На 604, консенсусный узел верифицирует цифровую подпись данных транзакции с использованием открытого ключа первого пользовательского узла.
[0048] На 606, консенсусный узел определяет то, что сумма транзакции является достоверной, если значение фиксации является корректным, на основе случайного числа и схемы фиксации. Консенсусный узел также определяет то, что сумма транзакции меньше или равна балансу одного из открытого счета или закрытого счета первого пользовательского узла перед переводом суммы транзакции. В некоторых реализациях, сумма транзакции проходит с закрытого счета первого пользовательского узла на открытый счет второго пользовательского узла. В таких случаях, определение того, что перевод баланса является достоверным, также включает в себя определение того, меньше или равна либо нет сумма транзакции балансу закрытого счета, ассоциированного с первым пользовательским узлом, на основе доказательства по диапазону.
[0049] В некоторых реализациях, примерный способ 600 также может включать в себя обновление баланса одного из открытого счета или закрытого счета, ассоциированного с первым пользовательским узлом, и баланса одного из открытого счета или закрытого счета, ассоциированного со вторым пользовательским узлом. Обновление может выполняться на основе суммы транзакции, если сумма транзакции является достоверной. В некоторых реализациях, баланс закрытого счета обновляется на основе значения фиксации суммы транзакции и фиксации баланса закрытого счета, сформированного с использованием схемы фиксации.
[0050] Реализации предмета изобретения, описанного в этом подробном описании, могут реализовываться таким образом, чтобы реализовывать конкретные преимущества или технические эффекты. Например, реализации настоящего раскрытия разрешают сети цепочек блоков поддерживать транзакции между открытыми счетами, транзакции между закрытыми счетами и транзакции между открытыми и закрытыми счетами. В связи с этим, надлежащая защита конфиденциальности может реализовываться независимо от типов счетов, так что пользовательский узел сети цепочек блоков может гибко выбирать то, чтобы отправлять и принимать денежные средства со своего открытого счета или закрытого счета, на основе предпочтений конфиденциальности.
[0051] Описанная технология разрешает повышение безопасности счетов/данных различного мобильного вычислительного устройства. Баланс закрытого счета может фиксироваться на основе схемы фиксации. В связи с этим, баланс закрытого счета может верифицироваться на основе фиксации без раскрытия фактического баланса счета для счета. Сумма транзакции, переведенная на или с закрытого счета, также может фиксироваться на основе схемы фиксации, чтобы обновлять закрытый счет после транзакции без раскрытия переведенной фактической суммы. Таким образом, обеспечивается большее управление безопасностью транзакций с закрытыми счетами.
[0052] Описанная технология может обеспечивать эффективное использование компьютерных ресурсов (например, циклов обработки, использования полосы пропускания сети и запоминающего устройства), посредством эффективного обновления цепочки блоков. Операции по счету могут более быстро и защищенно осуществляться через более простые консенсусные процессы.
[0053] Реализации и операции, описанные в этом подробном описании, могут реализовываться в цифровой электронной схеме или в компьютерном программном обеспечении, микропрограммном обеспечении или аппаратных средствах, включающих в себя структуры, раскрытые в этом подробном описании, либо в комбинациях одного или более из означенного. Операции могут реализовываться как операции, выполняемые посредством оборудования обработки данных для данных, сохраненных на одном или более считываемых компьютером устройств хранения данных или принимаемых из других источников. Оборудование обработки данных, компьютер или вычислительное устройство может охватывать оборудование, устройства и машины для обработки данных, включающие в себя в качестве примера программируемый процессор, компьютер, внутрикристальную систему либо несколько из вышеприведенного, либо комбинации вышеприведенного. Оборудование может включать в себя логическую схему специального назначения, например, центральный процессор (CPU), программируемую пользователем вентильную матрицу (FPGA) или специализированную интегральную схему (ASIC). Оборудование также может включать в себя код, который создает окружение выполнения для рассматриваемой компьютерной программы, например, код, который составляет микропрограммное обеспечение процессора, стек протоколов, систему управления базами данных, операционную систему (например, операционную систему или комбинацию операционных систем), кросс-платформенное окружение выполнения, виртуальную машину либо комбинацию одного или более из означенного. Оборудование и окружение выполнения могут реализовывать всевозможные инфраструктуры вычислительных моделей, такие как веб-услуги, распределенные вычислительные и сетевые параллельные вычислительные инфраструктуры.
[0054] Компьютерная программа (также известная, например, в качестве программы, программного обеспечения, приложения, программного модуля, программного блока, сценария или кода) может быть написана на любой форме языка программирования, включающей в себя компилированные или интерпретируемые языки, декларативные или процедурные языки, и она может развертываться в любой форме, в том числе в качестве автономной программы или в качестве модуля, компонента, вложенной процедуры, объекта либо другого блока, подходящего для использования в вычислительном окружении. Программа может сохраняться в части файла, который хранит другие программы или данные (например, один или более сценариев, сохраненных в документе на языке разметки), в одном файле, выделенном для рассматриваемой программы, либо в нескольких координированных файлах (например, в файлах, которые сохраняют один или более модулей, подпрограмм или частей кода). Компьютерная программа может выполняться на одном компьютере или на нескольких компьютерах, которые расположены на одном веб-узле или распределены по нескольким веб-узлам и взаимно соединяются посредством сети связи.
[0055] Процессоры для выполнения компьютерной программы включают в себя, в качестве примера, микропроцессоры общего и специального назначения и любые один или более процессоров любого вида цифрового компьютера. В общем, процессор принимает инструкции и данные из постоянного запоминающего устройства или оперативного запоминающего устройства, или из того и из другого. Существенные элементы компьютера представляют собой процессор для выполнения действий в соответствии с инструкциями и одно или более запоминающих устройств для сохранения инструкций и данных. Обычно, компьютер также должен включать в себя или функционально соединяться с возможностью принимать данные или передавать данные либо выполнять и то, и другое из/в одно или более устройств хранения данных большой емкости для сохранения данных. Компьютер может встраиваться в другое устройство, например, в мобильное устройство, персональное цифровое устройство (PDA), игровую приставку, приемное устройство на основе глобальной системы позиционирования (GPS) или портативное устройство хранения данных. Устройства, подходящие для сохранения компьютерных программных инструкций и данных, включают в себя энергонезависимое запоминающее устройство, носители и запоминающие устройства, включающие в себя, в качестве примера, полупроводниковые запоминающие устройства, магнитные диски и магнитооптические диски. Процессор и запоминающее устройство могут дополняться посредством или включаться в логическую схему специального назначения.
[0056] Мобильные устройства могут включать в себя переносные телефоны, абонентские устройства (UE), мобильные телефоны (например, смартфоны), планшетные компьютеры, носимые устройства (например, интеллектуальные часы и интеллектуальные очки), имплантируемые устройства в человеческом теле (например, биодатчики, кохлеарные имплантаты) либо другие типы мобильных устройств. Мобильные устройства могут обмениваться данными в беспроводном режиме (например, с использованием радиочастотных (RF) сигналов) с различными сетями связи (описаны ниже). Мобильные устройства могут включать в себя датчики для определения характеристик текущего окружения мобильного устройства. Датчики могут включать в себя камеры, микрофоны, бесконтактные датчики, GPS-датчики, датчики движения, акселерометры, датчики окружающего света, датчики содержания влаги, гироскопы, компасы, барометры, датчики отпечатков пальцев, системы распознавания лиц, RF-датчики (например, Wi-Fi- и сотовые радиомодули), тепловые датчики или другие типы датчиков. Например, камеры могут включать в себя обращенную по ходу движения или против движения камеру с подвижными или неподвижными линзами, флэш-памятью, датчиком изображений и процессором изображений. Камера может представлять собой мегапикселную камеру, допускающую захват деталей для распознавания лиц и/или радужной оболочки глаз. Камера наряду с процессором данных и аутентификационной информацией, сохраненной в запоминающем устройстве или доступной удаленно, может формировать систему распознавания лиц. Система распознавания лиц либо один или более датчиков, например, микрофонов, датчиков движения, акселерометров, GPS-датчиков или RF-датчиков, могут использоваться для аутентификации пользователя.
[0057] Чтобы предоставлять взаимодействие с пользователем, варианты осуществления могут реализовываться на компьютере, имеющем устройство отображения и устройство ввода, например, жидкокристаллический дисплей (ЖК-дисплей) или дисплей на органических светоизлучающих диодах (OLED)/в стиле виртуальной реальности (VR)/в стиле дополненной реальности (AR) для отображения информации пользователю и сенсорный экран, клавиатуру и указательное устройство, посредством которых пользователь может предоставлять ввод в компьютер. Другие виды устройств также могут использоваться для того, чтобы предоставлять взаимодействие с пользователем; например, обратная связь, предоставленная пользователю, может представлять собой любую форму сенсорной обратной связи, например, визуальную обратную связь, акустическую обратную связь или тактильную обратную связь; и ввод от пользователя может приниматься в любой форме, включающей в себя акустический, речевой или тактильный ввод. Помимо этого, компьютер может взаимодействовать с пользователем посредством отправки документов и приема документов из устройства, которое используется пользователем; например, посредством отправки веб-страниц в веб-браузер на клиентском устройстве пользователя в ответ на запросы, принимаемые из веб-браузера.
[0058] Реализации настоящего раскрытия могут быть реализованы с использованием вычислительных устройств, взаимно соединенных посредством любой формы или среды для проводной или беспроводной цифровой передачи данных (либо комбинации вышеозначенного), например, сети связи. Примеры взаимно соединенных устройств представляют собой клиент и сервер, в общем, удаленные друг от друга, которые типично взаимодействуют через сеть связи. Клиент, например, мобильное устройство, может выполнять транзакции непосредственно, с сервером или через сервер, например, выполнять транзакции покупки, продажи, оплаты, выдачи, отправки или ссуды либо авторизовать их. Такие транзакции могут выполняться в реальном времени таким образом, что действие и ответ являются близкими по времени; например, человек воспринимает действие и ответ как возникающие практически одновременно, разность времен для ответа после действия человека составляет меньше 1 миллисекунды (мс) или меньше 1 секунды (с), либо ответ осуществляется без намеренной задержки с учетом ограничений обработки системы.
[0059] Примеры сетей связи включают в себя локальную вычислительную сеть (LAN), сеть радиодоступа (RAN), общегородскую вычислительную сеть (MAN) и глобальную вычислительную сеть (WAN). Сеть связи может включать в себя все или часть из Интернета, другой сети связи либо комбинации сетей связи. Информация может передаваться по сети связи согласно различным протоколам и стандартам, включающим в себя стандарт долгосрочного развития (LTE), 5G, IEEE 802, Интернет-протокол (IP) либо другие протоколы или комбинации протоколов. Сеть связи может передавать голосовые, видео-, биометрические данные или аутентификационные данные или другую информацию между соединенными вычислительными устройствами.
[0060] Признаки, описанные в качестве отдельных реализаций, могут реализовываться, в комбинации, в одной реализации, в то время как признаки, описанные в качестве одной реализации, могут реализовываться в нескольких реализациях, отдельно или в любой подходящей субкомбинации. Операции, описанные и заявленные в конкретном порядке, не должны пониматься ни как требующие этого конкретного порядка, ни как то, что все проиллюстрированные операции должны выполняться (некоторые операции могут быть необязательными). Надлежащим образом, могут выполняться многозадачность или параллельная обработка (или комбинация многозадачности и параллельной обработки).
Изобретение относится к области вычислительной техники. Технический результат заключается в повышении степени защиты конфиденциальности пользователей цепочек блоков. Технический результат достигается за счет приема посредством консенсусного узла сети цепочек блоков данных транзакции и цифровой подписи данных транзакции, при этом данные транзакции включают в себя значение фиксации, случайное число и сумму транзакции, которая должна переводиться с одного из открытого счета или закрытого счета первого пользовательского узла на один из открытого счета или закрытого счета второго пользовательского узла, и при этом цифровая подпись формируется посредством снабжения цифровой подписью данных транзакции с использованием закрытого ключа первого пользовательского узла, и значение фиксации формируется на основе случайного числа и суммы транзакции с использованием схемы фиксации; верификации цифровой подписи данных транзакции с использованием открытого ключа первого пользовательского узла; и определения того, что сумма транзакции является достоверной, если значение фиксации является корректным на основе случайного числа и схемы фиксации и сумма транзакции меньше или равна балансу одного из открытого счета или закрытого счета первого пользовательского узла перед переводом суммы транзакции. 3 н. и 6 з.п. ф-лы, 6 ил.
1. Реализуемый компьютером способ для проверки достоверности транзакций с цепочками блоков на основе моделей счетов, содержащий этапы, на которых:
- принимают посредством консенсусного узла сети цепочек блоков данные транзакции и цифровую подпись данных транзакции, при этом данные транзакции включают в себя значение фиксации, случайное число и сумму транзакции, которая должна переводиться с одного из открытого счета или закрытого счета первого пользовательского узла на один из открытого счета или закрытого счета второго пользовательского узла, и при этом цифровая подпись формируется посредством снабжения цифровой подписью данных транзакции с использованием закрытого ключа первого пользовательского узла и значение фиксации формируется на основе случайного числа и суммы транзакции с использованием схемы фиксации;
- верифицируют цифровую подпись данных транзакции с использованием открытого ключа первого пользовательского узла; и
- определяют то, что сумма транзакции является достоверной, если значение фиксации является корректным на основе случайного числа и схемы фиксации и сумма транзакции меньше или равна балансу одного из открытого счета или закрытого счета первого пользовательского узла перед переводом суммы транзакции.
2. Реализуемый компьютером способ по п. 1, в котором открытый счет имеет открытый баланс, просматриваемый посредством консенсусного узла, и закрытый счет имеет закрытый баланс, просматриваемый с использованием закрытого ключа соответствующего пользовательского узла.
3. Реализуемый компьютером способ по п. 1, в котором сумма транзакции проходит с открытого счета, ассоциированного с первым пользовательским узлом, на закрытый счет, ассоциированный со вторым пользовательским узлом.
4. Реализуемый компьютером способ по п. 1, в котором сумма транзакции проходит с закрытого счета первого пользовательского узла на открытый счет второго пользовательского узла, и способ дополнительно содержит этап, на котором:
- принимают из первого пользовательского узла доказательство по диапазону, чтобы доказывать то, что сумма транзакции меньше или равна балансу закрытого счета первого пользовательского узла; и
- при этом перевод определяется как достоверный, если сумма транзакции меньше или равна балансу закрытого счета первого пользовательского узла на основе доказательства по диапазону.
5. Реализуемый компьютером способ по п. 2, дополнительно содержащий этап, на котором обновляют баланс одного из открытого счета или закрытого счета первого пользовательского узла и баланс одного из открытого счета или закрытого счета второго пользовательского узла на основе суммы транзакции, если перевод является достоверным.
6. Реализуемый компьютером способ по п. 5, в котором баланс закрытого счета обновляется на основе значения фиксации суммы транзакции и фиксации баланса закрытого счета, сформированного с использованием схемы фиксации.
7. Реализуемый компьютером способ по п. 1, в котором схема фиксации является гомоморфной.
8. Энергонезависимый реализуемый компьютером носитель данных, соединенный с одним или более процессорами и хранящий инструкции, которые при выполнении посредством одного или более процессоров инструктируют одному или более процессорам выполнять операции в соответствии со способом по одному или более из пп. 1-7.
9. Система проверки достоверности транзакций с цепочками блоков на основе моделей счетов, содержащая:
- вычислительное устройство; и
- считываемое компьютером устройство хранения данных, соединенное с вычислительным устройством и хранящее инструкции, которые при выполнении посредством вычислительного устройства инструктируют вычислительному устройству выполнять операции в соответствии со способом по одному или более из пп. 1-7.
СИСТЕМА И СПОСОБ НАДЕЖНОЙ ПРОВЕРКИ ДОСТОВЕРНОСТИ ТРАНЗАКЦИЙ | 2011 |
|
RU2580086C2 |
Автомобиль-сани, движущиеся на полозьях посредством устанавливающихся по высоте колес с шинами | 1924 |
|
SU2017A1 |
Многоступенчатая активно-реактивная турбина | 1924 |
|
SU2013A1 |
Токарный резец | 1924 |
|
SU2016A1 |
Автомобиль-сани, движущиеся на полозьях посредством устанавливающихся по высоте колес с шинами | 1924 |
|
SU2017A1 |
Авторы
Даты
2020-07-22—Публикация
2018-11-07—Подача