УПРАВЛЕНИЕ ПРИВАТНЫМИ ТРАНЗАКЦИЯМИ В СЕТЯХ ЦЕПОЧЕК БЛОКОВ НА ОСНОВЕ ПОТОКА ОБРАБОТКИ
CONTROL OF PRIVATE TRANSACTIONS IN CHAINS OF BLOCKS BASED ON PROCESSING FLOW

Уровень техники
[0001] Сети цепочек блоков, которые также могут упоминаться как системы цепочек блоков (блокчейн), консенсусные сети, сети на основе системы распределенных реестров (DLS) или цепочка блоков, позволяют участвующим объектам защищенно и неизменно сохранять данные. Цепочка блоков может описываться как реестр транзакций, и несколько копий цепочки блоков сохраняются в сети цепочек блоков. Примерные типы цепочек блоков могут включать в себя открытые цепочки блоков, консорциальные цепочки блоков и приватные цепочки блоков. Открытая цепочка блоков является открытой для всех объектов в том, чтобы использовать цепочку блоков и участвовать в консенсусном процессе. Консорциальная цепочка блоков представляет собой цепочку блоков, в которой консенсусный процесс управляется посредством предварительно выбранного набора узлов. Приватная цепочка блоков предоставляется для конкретного объекта, который централизованно управляет разрешениями на считывание и запись.
[0002] Некоторые системы цепочек блоков могут включать в себя консенсусные узлы и клиентские узлы (или пользователей), которые используют сеть цепочек блоков. С одной стороны, консенсусные узлы обмениваются данными с другими консенсусными узлами, чтобы достигать консенсуса. С другой стороны, консенсусные узлы обмениваются данными с клиентскими узлами, чтобы подтверждать и добавлять новые транзакции в блоки. В некоторых случаях, клиентские узлы могут не хотеть, чтобы данные транзакции, предоставляем в цепочку блоков для консенсуса, были просматриваемыми посредством консенсусных узлов. В некоторых случаях, консенсусные узлы также обмениваются данными с сетями предварительно выбранных узлов консорциальной системы или других базовых систем с различными уровнями безопасности. В связи с этим, границы могут задаваться для различных типов связи с тем, чтобы защищать конфиденциальность и безопасность данных.
Сущность изобретения
[0003] Реализации настоящего раскрытия направлены на управление конфиденциальными транзакциями между клиентскими узлами через сети цепочек блоков на основе потока обработки. Более конкретно, реализации настоящего раскрытия направлены на конфигурирование конфиденциальных каналов связи между узлами клиента цепочек блоков для синхронизации данных конфиденциальных транзакций.
[0004] В некоторых реализациях, действия включают в себя получение, посредством первого консенсусного узла, политики потока обработки для отправки данных транзакции между, по меньшей мере, двумя клиентскими узлами, причем политика снабжается цифровой подписью посредством каждого из, по меньшей мере, двух клиентских узлов с использованием соответствующего секретного ключа, и политика включает в себя порядок маршрутизации данных транзакции между, по меньшей мере, двумя клиентскими узлами; прием данных транзакции, предоставляемых посредством первого из, по меньшей мере, двух клиентских узлов, причем данные транзакции снабжаются цифровой подписью посредством секретного ключа первого из, по меньшей мере, двух клиентских узлов; и пересылку данных транзакции во второй консенсусный узел или второй из, по меньшей мере, двух клиентских узлов на основе политики. Другие реализации включают в себя соответствующие системы, оборудование и компьютерные программы, выполненные с возможностью выполнять действия способов, кодированных на компьютерных устройствах хранения данных.
[0005] Эти и другие реализации необязательно могут включать в себя один или более следующих признаков: прием, из последнего клиентского узла в порядке маршрутизации упомянутых, по меньшей мере, двух клиентских узлов, данных транзакции, снабжаемых цифровой подписью посредством каждого из, по меньшей мере, двух клиентских узлов с использованием соответствующего секретного ключа; определение того, что данные транзакции являются достоверными, на основе консенсусного процесса цепочки блоков; запись хешированного значения данных транзакции в цепочке блоков; первый из, по меньшей мере, двух клиентских узлов представляет собой первый клиентский узел в порядке маршрутизации; второй консенсусный узел пользуется доверием у второго клиентского узла в порядке маршрутизации; первый консенсусный узел пользуется доверием у первого из, по меньшей мере, двух клиентских узлов и второго из, по меньшей мере, двух клиентских узлов; данные транзакции снабжаются цифровой подписью посредством первого из, по меньшей мере, двух клиентских узлов; политика включает в себя адрес каждого из, по меньшей мере, двух клиентских узлов и консенсусных узлов, пользующихся доверием у, по меньшей мере, двух клиентских узлов.
[0006] Настоящее раскрытие также предоставляет один или более долговременных машиночитаемых носителей хранения данных, соединенных с одним или более процессоров и имеющих сохраненные на себе инструкции, которые, при их исполнении одним или более процессорами, предписывают одному или более процессорам выполнять операции в соответствии с реализациями способов, предусмотренных в данном документе.
[0007] Настоящее раскрытие дополнительно предоставляет систему для реализации способов, предусмотренных в настоящем документе. Система включает в себя один или более процессоров и машиночитаемый носитель данных, соединенный с одним или более процессоров, имеющий сохраненные на себе инструкции, которые, при их исполнении одним или более процессорами, предписывают одному или более процессорам выполнять операции в соответствии с реализациями способов, предусмотренных в данном документе.
[0008] Следует принимать во внимание, что способы в соответствии с настоящим раскрытием могут включать в себя любую комбинацию аспектов и признаков, описанных в данном документе. Таким образом, способы в соответствии с настоящим раскрытием не ограничены комбинациями аспектов и признаков, конкретно описанными в данном документе, но также включают в себя любую предоставленную комбинацию аспектов и признаков.
[0009] Подробности одной или более реализаций настоящего раскрытия изложены на прилагаемых чертежах и в нижеприведенном описании. Другие признаки и преимущества настоящего раскрытия должны становиться очевидными из описания и чертежей, а также из формулы изобретения.
Описание чертежей
[0010] Фиг. 1 иллюстрирует примерное окружение, которое может использоваться для того, чтобы выполнять реализации настоящего раскрытия.
[0011] Фиг. 2 иллюстрирует примерную концептуальную архитектуру в соответствии с реализациями настоящего раскрытия.
[0012] Фиг. 3 иллюстрирует примерную систему цепочек блоков с конфиденциальными каналами связи между клиентскими узлами в соответствии с реализациями настоящего раскрытия.
[0013] Фиг. 4 иллюстрирует примерный способ управления конфиденциальными транзакциями в соответствии с реализациями настоящего раскрытия.
[0014] Аналогичные ссылки с номерами на различных чертежах указывают аналогичные элементы.
Подробное описание изобретения
[0015] Реализации настоящего раскрытия направлены на управление конфиденциальными транзакциями между клиентскими узлами через сети цепочек блоков на основе потока обработки. Более конкретно, реализации настоящего раскрытия направлены на конфигурирование конфиденциальных каналов связи между узлами клиента цепочек блоков для синхронизации данных конфиденциальных транзакций.
[0016] В некоторых реализациях, действия включают в себя получение, посредством первого консенсусного узла, политики потока обработки для отправки данных транзакции между, по меньшей мере, двумя клиентскими узлами, причем политика снабжается цифровой подписью посредством каждого из, по меньшей мере, двух клиентских узлов с использованием соответствующего секретного ключа, и политика включает в себя порядок маршрутизации данных транзакции между, по меньшей мере, двумя клиентскими узлами; прием данных транзакции, предоставляемых посредством первого из, по меньшей мере, двух клиентских узлов, причем данные транзакции снабжаются цифровой подписью посредством секретного ключа первого из, по меньшей мере, двух клиентских узлов; и пересылку данных транзакции во второй консенсусный узел или второй из, по меньшей мере, двух клиентских узлов на основе политики.
[0017] Чтобы предоставлять дополнительный контекст для реализаций настоящего раскрытия, и как представлено выше, сети цепочек блоков, которые также могут упоминаться как консенсусные сети (например, состоящие из равноправных узлов), система распределенных реестров или просто цепочка блоков, позволяют участвующим объектам защищенно и неизменно проводить транзакции и сохранять данные. Цепочка блоков может предоставляться в качестве открытой цепочки блоков, приватной цепочки блоков или консорциальной цепочки блоков. Реализации настоящего раскрытия подробнее описываются в данном документе со ссылкой на открытую сеть цепочек блоков, которая является открытой между участвующими объектами. Тем не менее, предполагается, что реализации настоящего раскрытия могут быть реализованы в любом соответствующем типе цепочки блоков.
[0018] В консорциальной цепочке блоков, консенсусный процесс управляется посредством авторизованного набора узлов, причем один или более узлов управляются посредством соответствующего объекта (например, организации). Например, консорциум из десяти (10) объектов (например, компаний) может управлять консорциальной системой цепочек блоков, каждый из которых управляет, по меньшей мере, одним узлом в консорциальной цепочке блоков. Соответственно, консорциальная система цепочек блоков может считаться приватной сетью относительно участвующих объектов. В некоторых примерах, каждый объект (узел) должен подписывать каждый блок для того, чтобы блок был достоверным и добавлялся в цепочку блоков. В некоторых примерах, по меньшей мере, поднабор объектов (узлов) (например, по меньшей мере, 7 объектов) должен подписывать каждый блок для того, чтобы блок был достоверным и добавлялся в цепочку блоков. Примерная консорциальная система цепочек блоков включает в себя Quorum, разработанную компанией J.P. Morgan Chase and Co., Нью-Йорк, Нью-Йорк. Quorum может описываться как корпоративная инфраструктура цепочек блоков с контролируемым доступом, специально предназначенная для финансовых вариантов использования. Quorum вырабатывается на основе Go Ethereum, базового кода для цепочки блоков эфириума, которая предоставляется компанией Ethereum Foundation, Цуг, Швейцария.
[0019] В общем, консорциальная система цепочек блоков поддерживает транзакции между объектами, участвующими, с разрешением, в консорциальной системе цепочек блоков. Транзакция совместно используется со всеми узлами в консорциальной системе цепочек блоков, поскольку цепочка блоков реплицируется по всем узлам. Таким образом, все узлы находятся в идеальном консенсусе состояния относительно цепочки блоков. Чтобы достигать консенсуса (например, соглашения с добавлением блока в цепочку блоков), консенсусный протокол реализуется в консорциальной сети цепочек блоков. Примерный консенсусный протокол включает в себя, без ограничения, доказательство выполнения работы (POW), реализованное в сети биткоинов.
[0020] Реализации настоящего раскрытия направлены на управление конфиденциальными транзакциями между клиентскими узлами через сети цепочек блоков на основе потока обработки. Более конкретно, реализации настоящего раскрытия направлены на конфигурирование конфиденциальных каналов связи между узлами клиента цепочек блоков для синхронизации данных конфиденциальных транзакций.
[0021] Фиг. 1 иллюстрирует примерное окружение 100, которое может использоваться для того, чтобы выполнять реализации настоящего раскрытия. В некоторых примерах, примерное окружение 100 обеспечивает возможность объектам участвовать в открытой цепочке 102 блоков. Примерное окружение 100 включает в себя вычислительные системы 106, 108 и сеть 110. В некоторых примерах, сеть 110 включает в себя локальную вычислительную сеть (LAN), глобальную вычислительную сеть (WAN), Интернет либо комбинацию вышеозначенного и соединяет веб-узлы, пользовательские устройства (например, вычислительные устройства) и внутренние интерфейсные системы. В некоторых примерах, к сети 110 может осуществляться доступ по линии проводной и/или беспроводной связи.
[0022] В проиллюстрированном примере, вычислительные системы 106, 108 могут включать в себя любую соответствующую вычислительную систему, которая обеспечивает участие в качестве узла в консорциальной системе 102 цепочек блоков, для сохранения транзакций в цепочке 104 блоков. Примерные вычислительные устройства включают в себя, без ограничения, сервер, настольный компьютер, переносной компьютер, планшетное вычислительное устройство и смартфон. В некоторых примерах, вычислительные системы 106, 108 размещают (хостят) одну или более машинореализуемых услуг для взаимодействия с консорциальной системой 102 цепочек блоков. Например, вычислительная система 106 может хостить машинореализуемые услуги первого объекта (например, пользователя A), к примеру, система управления транзакциями, которую использует первый объект для того, чтобы управлять своими транзакциями с одним или более других объектов (например, других пользователей). Вычислительная система 108 может хостить машинореализуемые услуги второго объекта (например, пользователя B), к примеру, система управления транзакциями, которую использует второй объект для того, чтобы управлять своими транзакциями с одним или более других объектов (например, других пользователей). В примере по фиг. 1, консорциальная система 102 цепочек блоков представляется как сеть с равноправными узлами для узлов, и вычислительные системы 106, 108 предоставляют узлы первого объекта и второго объекта, соответственно, которые участвуют в консорциальной системе 102 цепочек блоков.
[0023] Фиг. 2 иллюстрирует примерную концептуальную архитектуру 200 в соответствии с реализациями настоящего раскрытия. Примерная концептуальная архитектура 200 включает в себя уровень 202 объектов, уровень 204 предоставления хостящихся услуг и уровень 206 цепочек блоков. В проиллюстрированном примере, уровень 202 объектов включает в себя три объекта, объект_1 (E1), объект_2 (E2) и объект_3 (E3), причем каждый объект имеет соответствующую систему 208 управления транзакциями.
[0024] В проиллюстрированном примере, уровень 204 предоставления хостящихся услуг включает в себя интерфейсы 210 цепочек блоков для каждой системы 208 управления транзакциями. В некоторых примерах, соответствующая система 208 управления транзакциями обменивается данными с соответствующим интерфейсом 210 цепочек блоков по сети (например, по сети 110 по фиг. 1) с использованием протокола связи (например, протокола защищенной передачи гипертекста (HTTPS)). В некоторых примерах, каждый интерфейс 210 цепочек блоков предоставляет соединение связи между соответствующей системой 208 управления транзакциями и уровнем 206 цепочек блоков. Более конкретно, каждый интерфейс 210 цепочек блоков обеспечивает возможность соответствующему объекту проводить транзакции, записываемые в консорциальной системе 212 цепочек блоков уровня 206 цепочек блоков. В некоторых примерах, связь между интерфейсом 210 цепочек блоков и уровнем 206 цепочек блоков проводится с использованием удаленных вызовов процедур (RPC). В некоторых примерах, интерфейсы 210 цепочек блоков "хостят" консенсусные узлы для соответствующих систем 208 управления транзакциями. Например, интерфейсы 210 цепочек блоков предоставляют интерфейс прикладного программирования (API) для доступа к консорциальной системе 212 цепочек блоков.
[0025] Система цепочек блоков может включать в себя консенсусные узлы и клиентские узлы. Консенсусные узлы могут участвовать в консенсусном процессе. Клиентские узлы могут использовать систему цепочек блоков, но не участвуют в консенсусном процессе. В некоторых реализациях, консенсусные узлы могут участвовать в консенсусном процессе при одновременном использовании системы цепочек блоков для других целей. В некоторых реализациях, консенсусные узлы могут обмениваться данными с клиентскими узлами таким образом, что пользователи могут использовать клиентские узлы для того, чтобы предоставлять транзакции в цепочку блоков. Консенсусные узлы также могут обмениваться данными между собой, чтобы достигать консенсуса, чтобы добавлять транзакции, предоставляемые посредством клиентских узлов, в цепочку блоков.
[0026] В некоторых реализациях, группа клиентских узлов может хотеть поддерживать данные транзакции, конфиденциальные относительно сети цепочек блоков. Когда новые данные транзакции формируются, синхронизация данных может выполняться, чтобы обеспечивать то, что группа клиентских узлов имеет идентичные данные. Данные транзакции могут маршрутизироваться через консенсусные узлы, пользующиеся доверием у клиентских узлов. Группа клиентских узлов и маршрутизирующих консенсусных узлов может формировать поток обработки, который устанавливает маршрутизацию данных транзакции на основе политики, подтвержденной посредством цифровых подписей всех предусмотренных клиентских узлов. Когда синхронизация данных выполняется согласно потоку обработки, каждый клиентский узел, который принимает данные транзакции, может добавлять свою цифровую подпись в данные. Он затем пересылает копию с цифровой подписью через поток обработки в следующий клиентский узел до тех пор, пока не будет достигнут последний клиентский узел в потоке обработки. Последний клиентский узел затем добавляет свою цифровую подпись и предоставляет данные транзакции в консенсусный узел для консенсуса. После того, как консенсус достигается, данные транзакции могут записываться в цепочке блоков в хеше. В связи с этим, клиентский узел может верифицировать подлинность конфиденциальных данных, принимаемых из другого клиентского узла, в потоке обработки посредством сравнения данных с хешированными данными, записываемыми в цепочке блоков.
[0027] Фиг. 3 иллюстрирует примерную систему 300 цепочек блоков с конфиденциальными каналами связи между клиентскими узлами в соответствии с реализациями настоящего раскрытия. На высоком уровне, примерная система 300 цепочек блоков включает в себя клиентский узел A 302, клиентский узел B 304, клиентский узел C 306 и клиентский узел D 308 и сеть 310 цепочек блоков. Сеть 310 цепочек блоков включает в себя консенсусный узел A 312, консенсусный узел B 314 и консенсусный узел C 316.
[0028] Три потока обработки также проиллюстрированы на фиг. 3. В качестве иллюстрации, поток AC 320 обработки соединяется посредством сплошных стрелок. Поток AC 320 обработки предусматривает клиентский узел A 302, консенсусный узел A 312, пользующийся доверием у клиентского узла A 302, консенсусный узел B 314, пользующийся доверием у клиентского узла C 306, и клиентский узел C 306. Поток AD 322 обработки соединяется посредством пунктирных стрелок. Поток AD обработки предусматривает клиентский узел A 302, консенсусный узел A 312, пользующийся доверием у клиентского узла A 302, консенсусный узел C 316, пользующийся доверием у клиентского узла D 308, и клиентский узел D 308. Поток BC 324 обработки соединяется посредством пунктирных стрелок. Поток BC 324 обработки предусматривает клиентский узел B 304, консенсусный узел B 314, пользующийся доверием у клиентского узла B 304 и клиентского узла D 308, и клиентский узел D 308. Следует понимать, что конкретные числа клиентских узлов, консенсусных узлов и потоков обработки, проиллюстрированных на фиг. 3 в качестве иллюстрации. Примерная система 300 цепочек блоков может включать в себя большее или меньше число клиентских узлов, консенсусных узлов или потоков обработки по сравнению с проиллюстрированными узлами и потоками обработки, в зависимости от конкретных реализаций.
[0029] Передача данных в потоке обработки может выполняться на основе политики, сохраненной в смарт-контракте. Политика может быть открытой для клиентских узлов и сети цепочек блоков согласно смарт-контракту. С использованием потока AC 320 обработки в качестве примера, политика может вырабатываться с возможностью включать в себя адреса клиентского узла A 302, клиентского узла C 306, консенсусного узла A 312, пользующегося доверием у клиентского узла A 302, и консенсусного узла B 314, пользующегося доверием у клиентского узла C 306. Примерный код политики может выражаться следующим образом:
"Workflow_AC": {
"client_A_addr": "client_A_trust_consensus_node_addr",
"client_C_addr": "client_C_trust_consensus_node_addr"
}
[0030] Политика может вырабатываться посредством любой стороны и подтверждаться посредством цифровых подписей всех клиентских узлов в соответствующей рабочей нагрузке, которая должна выполняться. Когда новые данные транзакции формируются и сохраняются посредством клиентского узла A 302, клиентский узел A 302 может идентифицировать политики потока обработки, с которыми они связаны. В настоящем примере 300, клиентский узел A 302 может находить политику потока AC 320 обработки и политику потока AD обработки 324. Клиентский узел A 302 затем может верифицировать то, имеет или нет политика потока AC 320 обработки корректные цифровые подписи клиентского узла A 302 и клиентского узла C 306, с использованием своих соответствующих открытых ключей. Клиентский узел A 302 также может верифицировать то, имеет или нет политика потока AD обработки 324 корректные цифровые подписи клиентского узла A 302 и клиентского узла D 308.
[0031] Для потока AC 320 обработки, если цифровые подписи для политики являются достоверными, клиентский узел A 302 может снабжать цифровой подписью данные транзакции и отправлять их на адрес консенсусного узла A 312 на основе политики потока AC 320 обработки. После того, как консенсусный узел A 312 принимает данные транзакции, он пересылает данные транзакции на адрес консенсусного узла B 314. Консенсусный узел B 314 пересылает данные транзакции в клиентский узел C 306. После приема данных транзакции, клиентский узел C 306 может верифицировать цифровую подпись клиентского узла A 302 с использованием 302 открытых ключей клиентского узла A. Если подпись является корректной, клиентский узел C 306 может сохранять копию данных транзакции в своей приватной базе данных. Клиентский узел C 306 может снабжать цифровой подписью данные транзакции и предоставлять их в сеть 310 цепочек блоков. Сеть 310 цепочек блоков может записывать данные транзакции в хеш в цепочке блоков таким образом, что фактические данные транзакции не являются публично просматриваемыми, но могут верифицироваться посредством клиентских узлов в потоке AC 320 обработки.
[0032] Аналогично, для потока AD 322 обработки, если цифровые подписи для политики являются достоверными, клиентский узел A 302 может снабжать цифровой подписью данные транзакции и отправлять их на адрес консенсусного узла A 312 на основе политики потока AD 322 обработки. После того, как консенсусный узел A 312 принимает данные транзакции, он пересылает данные транзакции на адрес консенсусного узла C 316. Консенсусный узел C 316 затем пересылает данные транзакции в клиентский узел D 308. После приема данных транзакции, клиентский узел D 308 может верифицировать цифровую подпись клиентского узла A 302 с использованием 302 открытых ключей клиентского узла A. Если подпись является корректной, клиентский узел D 308 может сохранять копию данных транзакции в своей приватной базе данных. Клиентский узел D 308 затем может снабжать цифровой подписью данные транзакции и предоставлять их в сеть 310 цепочек блоков. Передача данных потока BC 324 обработки может аналогично выполняться.
[0033] Фиг. 4 иллюстрирует примерный способ 400 управления секретными транзакциями в соответствии с реализациями настоящего раскрытия. Для ясности представления, нижеприведенное описание, в общем, описывает примерный процесс 400 в контексте других чертежей в этом описании. Тем не менее, следует понимать, что примерный процесс 400 может выполняться, например, посредством любой системы, окружения, программного обеспечения и аппаратных средств либо комбинации систем, окружений, программного обеспечения и аппаратных средств, надлежащим образом. В некоторых реализациях, различные этапы примерного процесса 400 могут выполняться параллельно, в комбинации, циклически или в любом порядке.
[0034] На 402, первый консенсусный узел получает политику потока обработки для отправки данных транзакции между, по меньшей мере, двумя клиентскими узлами. В некоторых примерах, политика снабжается цифровой подписью посредством каждого из, по меньшей мере, двух клиентских узлов с использованием соответствующего секретного ключа. В некоторых примерах, политика включает в себя порядок маршрутизации данных транзакции между, по меньшей мере, двумя клиентскими узлами. В некоторых реализациях, первый из, по меньшей мере, двух клиентских узлов представляет собой первый клиентский узел в порядке маршрутизации. В некоторых реализациях, данные транзакции снабжаются цифровой подписью посредством первого из, по меньшей мере, двух клиентских узлов. В некоторых реализациях, политика включает в себя адрес каждого из, по меньшей мере, двух клиентских узлов и консенсусных узлов, пользующихся доверием у, по меньшей мере, двух клиентских узлов.
[0035] На 404, первый консенсусный узел принимает данные транзакции, предоставляемые посредством первого из, по меньшей мере, двух клиентских узлов, при этом данные транзакции снабжаются цифровой подписью посредством секретного ключа первого из, по меньшей мере, двух клиентских узлов.
[0036] На 406, первый консенсусный узел пересылает данные транзакции во второй консенсусный узел или второй из, по меньшей мере, двух клиентских узлов на основе политики. В некоторых реализациях, первый консенсусный узел дополнительно принимает, из последнего клиентского узла в порядке маршрутизации упомянутых, по меньшей мере, двух клиентских узлов, данные транзакции, снабжаемые цифровой подписью посредством каждого из, по меньшей мере, двух клиентских узлов с использованием соответствующего секретного ключа. Первый консенсусный узел также определяет то, что данные транзакции являются достоверными, на основе консенсусного процесса цепочки блоков и записывает хешированное значение данных транзакции в цепочке блоков. В некоторых реализациях, второй консенсусный узел пользуется доверием у второго клиентского узла в порядке маршрутизации. В некоторых реализациях, первый консенсусный узел пользуется доверием у первого из, по меньшей мере, двух клиентских узлов и второго из, по меньшей мере, двух клиентских узлов.
[0037] Реализации и операции, описанные в этом подробном описании, могут реализовываться в цифровой электронной схеме или в компьютерном программном обеспечении, микропрограммном обеспечении или аппаратных средствах, включающих в себя структуры, раскрытые в этом подробном описании, либо в комбинациях одного или более из означенного. Операции могут реализовываться как операции, выполняемые посредством оборудования обработки данных для данных, сохраненных на одном или более машиночитаемых устройств хранения данных или принимаемых из других источников. Оборудование обработки данных, компьютер или вычислительное устройство может охватывать оборудование, устройства и машины для обработки данных, включающие в себя в качестве примера программируемый процессор, компьютер, внутрикристальную систему либо несколько из вышеприведенного, либо комбинации вышеприведенного. Оборудование может включать в себя логическую схему специального назначения, например, центральный процессор (CPU), программируемую пользователем вентильную матрицу (FPGA) или специализированную интегральную схему (ASIC). Оборудование также может включать в себя код, который создает окружение выполнения для рассматриваемой компьютерной программы, например, код, который составляет микропрограммное обеспечение процессора, стек протоколов, систему управления базами данных, операционную систему (например, операционную систему или комбинацию операционных систем), кросс-платформенное окружение выполнения, виртуальную машину либо комбинацию одного или более из означенного. Оборудование и окружение выполнения могут реализовывать всевозможные инфраструктуры вычислительных моделей, такие как веб-услуги, распределенные вычислительные и сетевые параллельные вычислительные инфраструктуры.
[0038] Компьютерная программа (также известная, например, в качестве программы, программного обеспечения, приложения, программного модуля, программного блока, сценария или кода) может быть написана на любой форме языка программирования, включающей в себя компилированные или интерпретируемые языки, декларативные или процедурные языки, и она может развертываться в любой форме, в том числе в качестве автономной программы или в качестве модуля, компонента, вложенной процедуры, объекта либо другого блока, подходящего для использования в вычислительном окружении. Программа может сохраняться в части файла, который хранит другие программы или данные (например, один или более сценариев, сохраненных в документе на языке разметки), в одном файле, выделенном для рассматриваемой программы, либо в нескольких координированных файлах (например, в файлах, которые сохраняют один или более модулей, подпрограмм или частей кода). Компьютерная программа может исполняться на одном компьютере или на нескольких компьютерах, которые расположены на одном веб-узле или распределены по нескольким веб-узлам и взаимно соединяются посредством сети связи.
[0039] Процессоры для исполнения компьютерной программы включают в себя, в качестве примера, микропроцессоры общего и специального назначения и любые один или более процессоров любого вида цифрового компьютера. В общем, процессор принимает инструкции и данные из постоянного запоминающего устройства или оперативного запоминающего устройства, или из того и из другого. Существенные элементы компьютера представляют собой процессор для выполнения действий в соответствии с инструкциями и одно или более запоминающих устройств для сохранения инструкций и данных. Обычно, компьютер также должен включать в себя или функционально соединяться с возможностью принимать данные или передавать данные либо выполнять и то, и другое из/в одно или более устройств хранения данных большой емкости для сохранения данных. Компьютер может встраиваться в другое устройство, например, в мобильное устройство, персональное цифровое устройство (PDA), игровую приставку, приемное устройство на основе глобальной системы позиционирования (GPS) или портативное устройство хранения данных. Устройства, подходящие для сохранения компьютерных программных инструкций и данных, включают в себя долговременное запоминающее устройство, носители и запоминающие устройства, включающие в себя, в качестве примера, полупроводниковые запоминающие устройства, магнитные диски и магнитооптические диски. Процессор и запоминающее устройство могут дополняться посредством или включаться в логическую схему специального назначения.
[0040] Мобильные устройства могут включать в себя переносные телефоны, абонентские устройства (UE), мобильные телефоны (например, смартфоны), планшетные компьютеры, носимые устройства (например, интеллектуальные часы и интеллектуальные очки), имплантируемые устройства в человеческом теле (например, биодатчики, кохлеарные имплантаты) либо другие типы мобильных устройств. Мобильные устройства могут обмениваться данными в беспроводном режиме (например, с использованием радиочастотных (RF) сигналов) с различными сетями связи (описаны ниже). Мобильные устройства могут включать в себя датчики для определения характеристик текущего окружения мобильного устройства. Датчики могут включать в себя камеры, микрофоны, бесконтактные датчики, GPS-датчики, датчики движения, акселерометры, датчики окружающего света, датчики содержания влаги, гироскопы, компасы, барометры, датчики отпечатков пальцев, системы распознавания лиц, RF-датчики (например, Wi-Fi- и сотовые радиомодули), тепловые датчики или другие типы датчиков. Например, камеры могут включать в себя обращенную по ходу движения или против движения камеру с подвижными или неподвижными линзами, флэш-памятью, датчиком изображений и процессором изображений. Камера может представлять собой мегапикселную камеру, допускающую захват деталей для распознавания лиц и/или радужной оболочки глаз. Камера наряду с процессором данных и аутентификационной информацией, сохраненной в запоминающем устройстве или доступной удаленно, может формировать систему распознавания лиц. Система распознавания лиц либо один или более датчиков, например, микрофонов, датчиков движения, акселерометров, GPS-датчиков или RF-датчиков, могут использоваться для аутентификации пользователя.
[0041] Чтобы предоставлять взаимодействие с пользователем, реализации могут реализовываться на компьютере, имеющем устройство отображения и устройство ввода, например, жидкокристаллический дисплей (ЖК-дисплей) или дисплей на органических светоизлучающих диодах (OLED)/в стиле виртуальной реальности (VR)/в стиле дополненной реальности (AR) для отображения информации пользователю и сенсорный экран, клавиатуру и указательное устройство, посредством которых пользователь может предоставлять ввод в компьютер. Другие виды устройств также могут использоваться для того, чтобы предоставлять взаимодействие с пользователем; например, обратная связь, предоставленная пользователю, может представлять собой любую форму сенсорной обратной связи, например, визуальную обратную связь, акустическую обратную связь или тактильную обратную связь; и ввод от пользователя может приниматься в любой форме, включающей в себя акустический, речевой или тактильный ввод. Помимо этого, компьютер может взаимодействовать с пользователем посредством отправки документов и приема документов из устройства, которое используется пользователем; например, посредством отправки веб-страниц в веб-браузер на клиентском устройстве пользователя в ответ на запросы, принимаемые из веб-браузера.
[0042] Реализации могут реализовываться с использованием вычислительных устройств, взаимно соединенных посредством любой формы или среды для проводной или беспроводной цифровой передачи данных (либо комбинации вышеозначенного), например, сети связи. Примеры взаимно соединенных устройств представляют собой клиент и сервер, в общем, удаленные друг от друга, которые типично взаимодействуют через сеть связи. Клиент, например, мобильное устройство, может выполнять транзакции непосредственно, с сервером или через сервер, например, выполнять транзакции покупки, продажи, оплаты, выдачи, отправки или ссуды либо авторизовать их. Такие транзакции могут выполняться в реальном времени таким образом, что действие и ответ являются близкими по времени; например, человек воспринимает действие и ответ как возникающие практически одновременно, разность времен для ответа после действия человека составляет меньше 1 миллисекунды (мс) или меньше 1 секунды (с), либо ответ осуществляется без намеренной задержки с учетом ограничений обработки системы.
[0043] Примеры сетей связи включают в себя локальную вычислительную сеть (LAN), сеть радиодоступа (RAN), общегородскую вычислительную сеть (MAN) и глобальную вычислительную сеть (WAN). Сеть связи может включать в себя все или часть из Интернета, другой сети связи либо комбинации сетей связи. Информация может передаваться по сети связи согласно различным протоколам и стандартам, включающим в себя стандарт долгосрочного развития (LTE), 5G, IEEE 802, Интернет-протокол (IP) либо другие протоколы или комбинации протоколов. Сеть связи может передавать голосовые, видео-, биометрические данные или аутентификационные данные или другую информацию между соединенными вычислительными устройствами.
[0044] Признаки, описанные в качестве отдельных реализаций, могут реализовываться, в комбинации, в одной реализации, в то время как признаки, описанные в качестве одной реализации, могут реализовываться в нескольких реализациях, отдельно или в любой подходящей субкомбинации. Операции, описанные и заявленные в конкретном порядке, не должны пониматься ни как требующие этого конкретного порядка, ни как то, что все проиллюстрированные операции должны выполняться (некоторые операции могут быть необязательными). Надлежащим образом, могут выполняться многозадачность или параллельная обработка (или комбинация многозадачности и параллельной обработки).