Уровень техники
[0001] Системы распределенных реестров (DLS), которые также могут называться консенсусными сетями и/или сетями блокчейнов, позволяют участвующим в них объектам сохранять данные защищенным и неизменяемым способом. DLS обычно называются сетями блокчейнов безотносительно к конкретным случаям использования. Примеры типов сетей блокчейнов могут включать в себя открытые сети блокчейнов, закрытые сети блокчейнов и консорциальные сети блокчейнов. Консорциальная сеть блокчейнов формируется для выбранной группы объектов, которые управляют консенсусным процессом, и включает в себя уровень управления доступом.
[0002] Смарт–контракт представляет собой набор выполняемых программных инструкций, сохраненных и выполняемых посредством сети блокчейнов. Смарт–контракты сохраняются в общем незашифрованными, и в силу этого являются видимыми для всех участников сети блокчейнов. Участники сети блокчейнов могут записывать и публиковать собственные смарт–контракты , в общем также могут вызывать смарт–контракты, которые уже развернуты в сети блокчейнов. Поскольку набор инструкций, которые могут использоваться в смарт–контрактах в общем является полным по Тьюрингу, смарт–контракты могут поддерживать сложную логику для поддержки различных бизнес–сценариев.
[0003] Сложность смарт–контрактов может обуславливать риски нарушения безопасности. Риски нарушения безопасности смарт–контрактов зачастую исходят из сбора счетов, которые они могут затрагивать. Взломщики могут использовать уязвимости в развернутых смарт–контрактах, чтобы конструировать транзакцию для перенаправления денежных средств, управляемых посредством смарт–контракта, на счет взломщика. Может быть желательным решение для уменьшения этих рисков нарушения безопасности, ассоциированных со смарт–контрактами.
Раскрытие изобретения
[0004] Реализации данного изобретения включают в себя реализуемые компьютером способы принудительной активации белых списков счета для смарт–контрактов. Более конкретно, реализации данного изобретения относятся к технологиям, позволяющим создателю смарт–контракта задавать белый список, указывающий, какие счета могут вызывать смарт–контракт.
[0005] В некоторых реализациях, действия включают в себя идентификацию посредством узла сети блокчейнов запроса на выполнение смарт–контракта, сохраненного в блокчейне, поддерживаемом посредством сети блокчейнов, причем запрос идентифицирует запрашивающий счет, который запрашивает выполнение смарт–контракта; извлечение посредством упомянутого узла белого списка из блокчейна, ассоциированного со смарт–контрактом, причем белый список идентифицирует один или более счетов, которые авторизованы для выполнения смарт–контракта; определение посредством упомянутого узла того, что запрашивающий счет авторизован для выполнения смарт–контракта, на основании включения запрашивающего счета в белый список; и в ответ на определение того, что запрашивающий счет авторизован для выполнения смарт–контракта, выполнение смарт–контракта посредством упомянутого узла. Другие реализации включают в себя соответствующие системы, устройства и компьютерные программы, выполненные с возможностью выполнения действий способов, кодированных на компьютерных устройствах хранения данных.
[0006] Эти и другие реализации при необходимости могут включать в себя один или более следующих признаков:
[0007] В некоторых случаях, запрос представляет собой первый запрос, и запрашивающий счет представляет собой первый счет, и способ включает в себя идентификацию посредством узла второго запроса на выполнение смарт-контракта, отличного от первого запроса, прием второй запрос идентифицирует второй счет, отличный от первого счета; определение посредством узла , что второй счет не авторизован для выполнения смарт-контракта, на основании невключения запрашивающего счета в белый список; и в ответ на определение, что запрашивающий счет не авторизован для выполнения смарт–контракта, отклонение посредством упомянутого узла второго запроса на выполнение смарт-контракта.
[0008] В некоторых реализациях белый список включен в набор выполняемых инструкций, ассоциированных со смарт–контрактом.
[0009] В некоторых случаях, белый список является отдельным от набора выполняемых инструкций, ассоциированных со смарт–контрактом.
[0010] В некоторых реализациях белый список включает в себя идентификационные данные одного или более счетов, которые авторизованы для осуществления доступа к смарт–контракту.
[0011] В некоторых случаях, белый список включает в себя указание на местоположение, внешнее по отношению к смарт–контракту, который сохраняет одно или более местоположений, которые авторизованы для осуществления доступа к смарт–контракту.
[0012] В некоторых случаях, белый список идентифицирует объект, ассоциированный с одним или более счетов, и определение того, что запрашивающий счет авторизован для выполнения смарт–контракта, включает в себя определение, ассоциирован ли запрашивающий счет с упомянутым объектом.
[0013] Данное изобретение также предусматривает один или более постоянных машиночитаемых носителей данных, соединенных с одним или более процессорами и имеющих сохраненные инструкции, которые при выполнении посредством одного или более процессоров предписывают одному или более процессорам выполнять операции в соответствии с реализациями способов, предусмотренными в данном документе.
[0014] Кроме того, данное изобретение предусматривает систему для реализации способов, предусмотренных в настоящем документе. Система включает в себя один или более процессоров и машиночитаемый носитель данных, соединенный с одним или более процессорами, имеющий сохраненные инструкции, которые при выполнении посредством одного или более процессоров предписывают одному или более процессорам выполнять операции в соответствии с реализациями способов, предусмотренных в данном документе.
[0015] Следует принимать во внимание, что способы в соответствии с данным изобретением могут включать в себя любое сочетание аспектов и признаков, описанных в данном документе. Таким образом, способы в соответствии с данным изобретением не ограничены сочетаниями аспектов и признаков, конкретно описанными в данном документе, но также включают в себя любое предусмотренное сочетание аспектов и признаков.
[0016] Подробности одной или более реализаций данного изобретения изложены на прилагаемых чертежах и в нижеприведенном описании. Другие признаки и преимущества данного изобретения должны стать очевидными из описания и чертежей, а также из формулы изобретения.
Краткое описание чертежей
[0017] Фиг. 1 иллюстрирует пример окружения, которое может использоваться для выполнения реализаций данного изобретения.
[0018] Фиг. 2 иллюстрирует пример концептуальной архитектуры в соответствии с реализациями данного изобретения.
[0019] Фиг. 3 иллюстрирует пример окружения для обеспечения возможности белых списков смарт–контрактов в соответствии с реализациями данного изобретения.
[0020] Фиг. 4 иллюстрирует пример последовательности сигналов, которая может выполняться в соответствии с реализациями данного изобретения.
[0021] Фиг. 5 иллюстрирует пример процесса, который может выполняться в соответствии с реализациями данного изобретения.
[0022] Фиг. 6 иллюстрирует примеры модулей устройства в соответствии с реализациями данного изобретения.
[0023] Аналогичные условные обозначения на различных чертежах указывают аналогичные элементы.
Осуществление изобретения
[0024] Реализации данного изобретения включают в себя реализуемые компьютером способы принудительной активации белых списков счетов для смарт–контрактов. Более конкретно, реализации данного изобретения направлены на технологии, позволяющие создателю смарт–контракта устанавливать белый список, указывающий, какие счета могут вызывать смарт–контракт.
[0025] Для обеспечения дополнительного контекста для реализаций данного изобретения, и как представлено выше, системы распределенных реестров (DLS), которые также могут называться консенсусными сетями (например, состоящие из узлов между равноправными узлами) и сети блокчейнов, позволяют участвующим объектам защищенным и неизменяемым способом проводить транзакции и сохранять данные. Термин «блокчейн» используется в данном документе в общем для обозначения DLS независимо от конкретных вариантов использования.
[0026] Блокчейн представляет собой структуру данных, которая сохраняет транзакции таким способом, что транзакции являются неизменными и могут впоследствии верифицироваться. Блокчейн включает в себя один или более блоков. Каждый блок в блокчейне сразу связывается с предшествующим ему блоком в блокчейне посредством включения криптографического хэша предыдущего блока. Каждый блок также включает в себя временную метку, собственный криптографический хэш и одну или более транзакций. Транзакции, которые уже верифицированы посредством узлов сети блокчейнов, хэшируются и кодируются в дерево Меркла. Дерево Меркла представляет собой структуру данных, в которой хэшируются данные в концевых узлах дерева, и все хэши в каждой ветви дерева конкатенируются в корне ветви. Этот процесс продолжается вверх по дереву вплоть до корня всего дерева, которое сохраняет хэш, который представляет все данные в дереве. Хэш, подразумеваемый в качестве транзакции, сохраненной в дереве, может быстро верифицироваться посредством определения, является ли он согласованным со структурой дерева.
[0027] Исходя из того, что блокчейн представляет собой структуру данных для сохранения транзакций, сеть блокчейнов представляет собой сеть вычислительных узлов, которые управляют, обновляют и поддерживают одну или более блокчейнов. Как представлено выше, сеть блокчейнов может быть предусмотрена в виде открытой сети блокчейнов, закрытой сети блокчейнов или консорциальной сети блокчейнов.
[0028] В общем, консорциальная сеть блокчейнов является закрытой между участвующими объектами. В консорциальной сети блокчейнов, консенсусный процесс управляется посредством авторизованного набора узлов, причем один или более узлов управляются посредством соответствующего объекта (например, финансового учреждения, страховой компании). Например, консорциум из десяти (10) объектов (например, финансовых учреждений, страховых компаний) может управлять консорциальной сетью блокчейнов, каждый из которых управляет по меньшей мере одним узлом в консорциальной сети блокчейнов. Соответственно, консорциальная сеть блокчейнов может считаться закрытой сетью относительно участвующих объектов. В некоторых примерах, каждый объект (узел) должен подписывать каждый блок для того, чтобы блок был достоверным и добавлялся в блокчейн. В некоторых примерах по меньшей мере поднабор объектов (узлов) (например по меньшей мере 7 объектов) должен подписывать каждый блок для того, чтобы блок был достоверным и добавлялся в блокчейн.
[0029] Предполагается, что реализации данного изобретения могут быть реализованы в любом соответствующем типе сети блокчейнов.
[0030] Ниже в данном документе более подробно описаны реализации данного изобретения с учетом вышеизложенного контекста. Более конкретно и как представлено выше, реализации данного изобретения направлены на технологии, позволяющие создателю смарт–контракта устанавливать белый список, указывающий, какие счета могут вызывать смарт–контракт.
[0031] Обычно смарт–контракт представляет собой набор из одной или более компьютерных инструкций, которые сохраняются в блокчейне и выполняются посредством узлов сети блокчейнов. Код для смарт–контракта в общем преобразуется в форму, которая является выполняемой посредством узлов сети блокчейнов (например, в байтовый код), и либо непосредственно байтовый код, либо байтовый код, выполненный с возможностью извлекать байтовый код смарт–контракта, сохраняется в блокчейне. Функции, определяемые в коде смарт–контракта, затем могут вызываться посредством участников в сети блокчейнов, предписывающих узлам выполнять инструкции в вызываемой функции.
[0032] В данном описании изобретения поясняются технологии, позволяющие создателю смарт–контракта указывать список счетов (белый список) в сети блокчейнов, которым разрешено вызывать смарт–контракт. Когда участник сети блокчейнов вызывает смарт–контракт, развернутый в блокчейне, управляемом посредством сети блокчейнов, участник указывает счет в качестве части вызова. Сеть блокчейнов проверяет белый список, ассоциированный со смарт–контрактом, на предмет счета участника. Если счет участника находится в белом списке, сеть блокчейнов выполняет вызов в смарт–контракт. Если счет участника не находится в белом списке, сеть блокчейнов не выполняет вызов в смарт–контракт. Сеть блокчейнов также может сохранять запись неудачной попытки участника осуществить доступ к смарт–контракту.
[0033] Фиг. 1 иллюстрирует пример окружения 100, которое может использоваться выполнения реализаций данного изобретения. В некоторых примерах, окружение 100 позволяет объектам участвовать в сети 102 блокчейнов. Окружение 100 включает в себя вычислительные устройства 106, 108 и сеть 110. В некоторых примерах, сеть 110 включает в себя локальную вычислительную сеть (LAN), глобальную вычислительную сеть (WAN), Интернет либо комбинацию вышеозначенного и соединяет веб–узлы, пользовательские устройства (например, вычислительные устройства) и внутренние интерфейсные системы. В некоторых примерах, к сети 110 может осуществляться доступ по линии проводной и/или беспроводной связи. В некоторых примерах, сеть 110 обеспечивает связь с/внутри сети 102 блокчейнов. В общем, сеть 110 представляет одну или более сетей связи. В некоторых случаях, вычислительные устройства 106, 108 могут представлять собой узлы облачной вычислительной системы (не показана), либо вычислительное устройство 106, 108 может представлять собой отдельную облачную вычислительную систему, включающую в себя множество компьютеров, взаимно соединенных посредством сети, и функционирующую в качестве системы распределенной обработки.
[0034] В проиллюстрированном примере, вычислительные системы 106, 108 могут включать в себя любую соответствующую вычислительную систему, которая обеспечивает участие в качестве узла в сети 102 блокчейнов. Примеры вычислительных устройств включают в себя, без ограничения, сервер, настольный компьютер, переносной компьютер, планшетное вычислительное устройство и смартфон. В некоторых примерах, вычислительные системы 106, 108 размещают одну или более реализуемых компьютером служб для взаимодействия с сетью 102 блокчейнов. Например, вычислительная система 106 может размещать реализуемые компьютером службы первого объекта (например, участника A), к примеру, систему управления транзакциями, которую первый объект использует для управления своими транзакциями с одним или более другими объектами (например, другими участниками). Вычислительная система 108 может размещать реализуемые компьютером службы второго объекта (например, участника B), к примеру, систему управления транзакциями, которую второй объект использует для управления своими транзакциями с одним или более другими объектами (например, другими участниками). В примере по фиг. 1, сеть 102 блокчейнов представляется как сеть с равноправными узлами, и вычислительные системы 106, 108 предусматривают узлы первого объекта и второго объекта, соответственно, которые участвуют в сети 102 блокчейнов.
[0035] Фиг. 2 иллюстрирует пример концептуальной архитектуры 200 в соответствии с реализациями данного изобретения. Пример концептуальной архитектуры 200 включает в себя системы 202, 204, 206 участников, которые соответствуют участнику A, участнику B и участнику C, соответственно. Каждый участник (например, пользователь, организация) участвует в сети 212 блокчейнов, выполненной в виде сети с равноправными узлами, включающей в себя множество узлов 214 по меньшей мере некоторые из которых неизменно записывают информацию в блокчейн 216. Хотя в сети 212 блокчейнов схематично проиллюстрирован один блокчейн 216, в сети 212 блокчейнов предусмотрены и поддерживаются множество копий блокчейна 216, как более подробно описано в данном документе.
[0036] В проиллюстрированном примере, каждая система 202, 204, 206 участников обеспечена участником A, участником B и участником C или от их имени, соответственно, и функционирует в качестве соответствующего узла 214 в сети блокчейнов. При использовании в данном документе, узел, в общем, означает отдельную систему (например, компьютер, сервер), которая соединяется с сетью 212 блокчейнов и обеспечивает возможность соответствующему участнику участвовать в сети блокчейнов. В примере по фиг. 2, участник соответствует каждому узлу 214. Тем не менее, предполагается, что участник может управлять множеством узлов 214 в сети 212 блокчейнов, и/или множество участников могут совместно использовать узел 214. В некоторых примерах, системы 202, 204, 206 участников обмениваются данными с/через сеть 212 блокчейнов с использованием протокола (например, протокола защищенной передачи гипертекста (HTTPS)) и/или с использованием удаленных вызовов процедур (RPC).
[0037] Узлы 214 могут иметь различные степени участия в сети 212 блокчейнов. Например, некоторые узлы 214 могут участвовать в консенсусном процессе (например, в качестве узлов–майнеров, которые добавляют блоки в блокчейн 216), в то время как другие узлы 214 не участвуют в консенсусном процессе. В качестве другого примера, некоторые узлы 214 сохраняют полную копию блокчейна 216, в то время как другие узлы 214 сохраняют копии только частей блокчейна 216. Например, привилегии доступа к данным могут ограничивать данные блокчейнов, которые соответствующий участник сохраняет в соответствующей системе. В примере по фиг. 2, системы 202, 204, 206 участников сохраняют соответствующие полные копии 216', 216'', 216''' блокчейна 216.
[0038] Блокчейн (например, блокчейн 216 по фиг. 2) состоит из блокчейна, причем каждый блок хранит данные. Примеры данных включают в себя данные транзакции, представляющие транзакцию между двумя или более участников. Хотя транзакции используются в данном документе в качестве неограничивающего примера, предполагается, что любые соответствующие данные могут сохраняться в блокчейне (например, документы, изображения, видео, аудио). Примеры транзакций могут включать в себя, без ограничения, обмены чем–либо, имеющим стоимость (например, активами, продуктами, услугами). Данные транзакции неизменно сохраняются в блокчейне. Таким образом, данные транзакции не могут изменяться.
[0039] До сохранения в блоке, данные транзакции хэшируются. Хэширование представляет собой процесс преобразования данных транзакции (обеспечиваются в виде строковых данных) в хэш–значение фиксированной длины (также обеспечивается в виде строковых данных). Невозможно дехэшировать хэш–значение для получения данных транзакции. Хэширование гарантирует, что даже небольшое изменение данных транзакции приведёт к совершенно другому хэш–значению. Кроме того, и как отмечено выше, хэш–значение имеет фиксированную длину. Таким образом, независимо от размера данных транзакции, длина хэш–значения является фиксированной. Хэширование включает в себя обработку данных транзакции через хэш–функцию, чтобы формировать хэш–значение. Примеры хэш–функции включают в себя, без ограничения, защищенный хэш–алгоритм (SHA)–256, который выводит 256–битовые хэш–значения.
[0040] Данные транзакции для множества транзакций хэшируются и сохраняются в блоке. Например, хэш–значения двух транзакций обеспечиваются и непосредственно хэшируются для формирования другого хэша. Этот процесс повторяется до тех пор, пока для всех транзакций, которые должны быть сохранены в блоке, не будет сформировано одно хэш–значение. Это хэш–значение называется корневым хэшем Меркла и сохраняется в заголовке блока. Изменение любой из транзакций должно приводить к изменению ее хэш–значения и, в конечном счете, к изменению корневого хэша Меркла.
[0041] Блоки добавляются в блокчейн через консенсусный протокол. Множество узлов в сети блокчейнов участвуют в консенсусном протоколе и конкурируют за то, чтобы добавлять блок в блокчейн. Такие узлы упоминаются как майнеры (или узлы–майнеры). POW, введенное выше, используется в качестве неограничивающего примера.
[0042] Узлы–майнеры выполняют консенсусный процесс, чтобы добавлять транзакции в блокчейн. Хотя в консенсусном процессе участвует множество узлов–майнеров , только один узел–майнер может записывать блок в блокчейн. Таким образом, узлы–майнеры конкурируют в консенсусном процессе за то, чтобы добавлять свой блок в блокчейн. Подробнее, узел–майнер периодически собирает отложенные транзакции из пула транзакций (например, вплоть до предварительно заданного предела для числа транзакций, которые могут быть включены в блок, если таковые имеются). Пул транзакций включает в себя сообщения по транзакциям от участников сети блокчейнов. Узел–майнер конструирует блок и добавляет транзакции в блок. До добавления транзакций в блок, узел–майнер проверяет то, включена ли уже какая–либо из транзакций в блок блокчейна. Если транзакция уже включена в другой блок, транзакция отбрасывается.
[0043] Узел–майнер формирует заголовок блока, хэширует все транзакции в блоке и комбинирует хэш–значение в пары, чтобы формировать дополнительные хэш–значения, до тех пор, пока для всех транзакций в блоке не будет сформировано одно хэш–значение (корневой хэш Меркла). Этот хэш добавляется в заголовок блока. Майнер также определяет хэш–значение последнего блока в блокчейне (т.е. последнего блока, добавленного в блокчейн). Узел–майнер также добавляет значение одноразового номера и временную метку в заголовок блока. В процессе майнинга, узел–майнер пытается находить хэш–значение, которое удовлетворяет обязательным параметрам. Узел–майнер продолжает изменять значение одноразового номера до нахождения хэш–значения, которое удовлетворяет обязательным параметрам.
[0044] Каждый майнер в сети блокчейнов пытается находить хэш–значение, которое удовлетворяет обязательным параметрам, и в силу этого конкурируют друг с другом. В конечном счете один из узлов–майнеров находит хэш–значение, которое удовлетворяет обязательным параметрам, и оповещает его во все другие узлы–майнеры в сети блокчейнов. Другие узлы–майнеры верифицируют хэш–значение, и если оно определено как корректное, верифицируют каждую транзакцию в блоке, подтверждают блок и добавляют блок в свою копию блокчейна. Таким образом, глобальное состояние блокчейна является согласованным для всех узлов–майнеров в сети блокчейнов. Вышеописанный процесс представляет собой консенсусный POW–протокол.
[0045] Неограничивающий пример содержит ссылку на фиг. 2. В этом примере, участник A хочет отправлять сумму участнику B. Участник A формирует сообщение по транзакции (например, включающее в себя поля From, To и Value) и отправляет сообщение по транзакции в сеть блокчейнов, которая добавляет сообщение по транзакции в пул транзакций. Каждый узел–майнер в сети блокчейнов создает блок и принимает все транзакции из пула транзакций (например, вплоть до предварительно заданного предела для номера транзакции, который может добавляться в блок, если таковые имеются) и добавляет транзакции в блок. Таким образом, транзакция, опубликованная посредством участника A, добавляется в блоки узлов–майнеров.
[0046] В некоторых сетях блокчейнов, криптография реализуется, чтобы поддерживать конфиденциальность транзакций. Например, если два узла хотят поддерживать транзакцию закрытой таким образом, что другие узлы в сети блокчейнов не могут различать подробности транзакции, узлы могут шифровать данные транзакции. Примеры криптографических способов включают в себя, без ограничения, симметричное шифрование и асимметричное шифрование. Симметричное шифрование означает процесс шифрования, который использует один ключ для шифрования (формирования зашифрованного текста из простого текста) и дешифрования (формирования простого текста из зашифрованного текста). При симметричном шифровании, идентичный ключ доступен для множества узлов, так что каждый узел может шифровать/дешифровать данные транзакции.
[0047] Асимметричное шифрование использует пары ключей, которые включают в себя закрытый ключ и открытый ключ, причем закрытый ключ известен только для соответствующего узла, и открытый ключ известен для всех других узлов в сети блокчейнов. Узел может использовать открытый ключ другого узла, чтобы шифровать данные, и зашифрованные данные могут дешифроваться с использованием закрытого ключа другого узла. Например, и снова ссылаясь на фиг. 2, участник A может использовать открытый ключ участника B, чтобы шифровать данные и отправлять зашифрованные данные участнику B. Участник B может использовать свой закрытый ключ для того, чтобы дешифровать зашифрованные данные (зашифрованный текст) и извлекать исходные данные (простой текст). Сообщения, зашифрованные с помощью открытого ключа узла, могут дешифроваться только с использованием закрытого ключа узла.
[0048] Асимметричное шифрование используется для создания цифровых подписей, что позволяет участникам транзакции подтверждать других участников транзакции, а также достоверность транзакции. Например, узел может снабжать цифровой подписью сообщение, и другой узел может подтверждать, что сообщение отправлено посредством упомянутого узла, на основании цифровой подписи участника A. Цифровые подписи также могут использоваться, чтобы гарантировать, что сообщения не будут несанкционированно изменены в процессе передачи. Например, и вновь обращаясь к фиг. 2, участник A должен отправлять сообщение участнику B. Участник A формирует хэш сообщения и затем, с использованием своего закрытого ключа, шифрует хэш для формирования цифровой подписи в виде зашифрованного хэша. Участник A добавляет цифровую подпись в сообщение и отправляет сообщение с цифровой подписью участнику B. Участник B дешифрует цифровую подпись с использованием открытого ключа участника A и извлекает хэш. Участник B хэширует сообщение и сравнивает хэши. Если хэши являются идентичными, участник B может подтверждать то, что сообщение фактически исходит от участника A и не изменено несанкционированно.
[0049] Фиг. 3 иллюстрирует пример окружения 300 для обеспечения возможности белых списков смарт–контрактов в соответствии с реализациями данного изобретения. Как показано, смарт–контракт 302 сохраняется в блокчейне 216 сети 212 блокчейнов по фиг. 2. Смарт–контракт 302 включает в себя инструкции 304 и белый список 306. Белый список 306 включает в себя один или более счетов 308.
[0050] Как описано выше, смарт–контракт 302 сохраняется в блокчейне 216. Участники сети 212 блокчейнов могут вызывать смарт–контракт 302, который может предписывать узлам 214 сети 212 блокчейнов выполнять инструкции 304. В некоторых реализациях, узлы 214 сети блокчейнов должны проверять, включен ли счет, указываемый стороной, вызывающей смарт–контракт, в один или более счетов 308, указанных в белом списке 306. Если счет находится в белом списке 306, узлы 214 выполняют инструкции 304. Если счет не находится в белом списке 306, узлы 214 не выполняют инструкции 304.
[0051] В некоторых реализациях, инструкции 304 могут представлять собой программный код, написанный на высокоуровневом языке программирования, поддерживаемом посредством узлов 214 сети 212 блокчейнов, таком как, например, Solidity, Serpent, LLL, Viper, Mutan, C, C++, Python, Java, Javascript или другие языки программирования. Инструкции 304 также могут представлять собой компилированный байтовый код, сформированный из программного кода, ассоциированного со смарт–контрактом 302.
[0052] В некоторых реализациях, белый список 306 и счета 308 сохраняются в блокчейне 216 наряду со смарт–контрактом 302. В некоторых случаях, белый список 306 и счета 308 включены в инструкции 304 смарт–контракта 302. Например, белый список 306 может быть включен в директиву в инструкциях 304, к примеру, в инструкцию препроцессора или в специально отформатированный комментарий. Белый список 306 также может включаться с использованием конструкции, конкретной для языка программирования, используемого для того, чтобы создавать смарт–контракт, такой как функциональный декоратор. Белый список 306 также может указываться в выполняемых инструкциях в пределах инструкций 304. В некоторых реализациях, белый список 306 анализируется до выполнения инструкций узлов 214 304. В некоторых случаях, к примеру, когда белый список 306 включен в выполняемые инструкции, узлы 214 могут начинать выполнение инструкций 304 до оценки белого списка 306. Например, смарт–контракт 302 может включать в себя закрытую функцию, заданную с инструкциями 304, которые должны принимать счет вызывающей стороны в качестве параметра и верифицировать то, что вызывающая сторона авторизована для вызова смарт–контракта на основании белого списка 306. Эта функция может вызываться автоматически, когда смарт–контракт 302 выполняется, и смарт–контракт 302 может просто завершаться, если счет вызывающей стороны не авторизован для выполнения контракта. В некоторых случаях, узел 214, который выполняет смарт–контракт 302, может вызывать закрытую функцию для проверки белого списка 306, и выполнять основную функцию смарт–контракта 302 только в том случае, если вызов в закрытую функцию указывает, что счет вызывающей стороны авторизован для выполнения смарт–контракта 302.
[0053] Фиг. 4 иллюстрирует пример последовательности 400 сигналов, которая может выполняться в соответствии с реализациями данного изобретения. Как показано, участник 402 в сети блокчейнов поддерживает связь с узлом 404 блокчейна. Узел 404 блокчейна считывает информацию из смарт–контракта 302, который сохраняется в блокчейне, управляемой посредством сети блокчейнов.
[0054] На 406, участник 402 формирует вызов в смарт–контракт 302. Вызов включает в себя идентификационные данные счета, ассоциированного с участником 402. В некоторых реализациях, участник 402 вызывает смарт–контракт 302 посредством отправки транзакции в сеть блокчейнов со смарт–контрактом 302 в качестве целевого счета. В таком случае, узел 404 блокчейна распознает эту транзакцию в качестве вызова в смарт–контракт 302 и должен выполнять оставшуюся последовательность 400 сигналов.
[0055] На 408, узел 404 блокчейна извлекает белый список (например, 306) контрактов для смарт–контракта 302. Например, узел 404 блокчейна может извлекать белый список из местоположения в блокчейне, в котором сохраняется смарт–контракт 302.
[0056] На 410, узел 404 блокчейна определяет то, включен ли счет, указанный участником 404, в извлеченный белый список для смарт–контракта 302. Этот процесс описан выше относительно фиг. 3. Если узел 404 блокчейна определяет, что счет включен в белый список, последовательность 400 сигналов переходит к 412, и узел 404 блокчейна выполняет смарт–контракт 302. Если узел 404 блокчейна определяет то, что счет не включен в белый список, последовательность 400 сигналов переходит к 414, и узел 404 блокчейна не выполняет смарт–контракт 302 и вместо этого отклоняет вызов в смарт–контракт. В некоторых случаях, узел 404 блокчейна должен уведомлять участника в отношении того, что вызов в смарт–контракт отклонен. Узел 404 блокчейна также может записывать неудачную попытку выполнять смарт–контракт 302 в блокчейне или в другом местоположении хранения.
[0057] Фиг. 5 иллюстрирует пример процесса 500, который может выполняться в соответствии с реализациями данного изобретения. В некоторых реализациях, процесс 400 может выполняться с использованием одной или более машиноисполняемых программ, выполняемых с использованием одного или более вычислительных устройств.
[0058] На 502, узел сети блокчейнов идентифицирует запрос на выполнение смарт-контракта, сохраненный в блокчейне, поддерживаемой посредством сети блокчейнов, причем запрос идентифицирует запрашивающий счет, который запрашивает то, чтобы выполнять смарт–контракт.
[0059] На 504, узлы извлекают белый список из блокчейна, ассоциированной со смарт–контрактом, причем белый список идентифицирует один или более счетов, которые авторизованы для выполнения смарт–контракта. В некоторых случаях, белый список включен в набор выполняемых инструкций, ассоциированных со смарт–контрактом. В некоторых реализациях, белый список является отдельным от набора выполняемых инструкций, ассоциированных со смарт–контрактом. Белый список может включать в себя идентификационные данные одного или более счетов, которые авторизованы для осуществления доступа к смарт–контракту. В некоторых случаях, белый список включает в себя указание на местоположение, внешнее для смарт–контракта, который сохраняет одно или более местоположений, которые авторизованы для осуществления доступа к смарт–контракту.
[0060] На 506, узел определяет, что запрашивающий счет авторизован для выполнения смарт–контракта, на основании включения запрашивающего счета в извлеченный белый список. В некоторых случаях, белый список идентифицирует объект, ассоциированный с одним или более счетов, и определение того, что запрашивающий счет авторизован для выполнения смарт–контракта, включает в себя определение того, ассоциирован ли запрашивающий счет с объектом.
[0061] На 508, в ответ на определение того, что запрашивающий счет авторизован для выполнения смарт–контракта, узел выполняет смарт–контракт.
[0062] В некоторых случаях, запрос представляет собой первый запрос, запрашивающий счет представляет собой первый счет, и процесс 500 включает в себя идентификацию второго запроса на выполнение смарт-контракта, отличного от первого запроса, причем второй запрос идентифицирует второй счет, отличный от первого счета; определение того, что второй счет не авторизован для выполнения смарт–контракта, на основании невключения запрашивающего счета в извлеченный белый список; и в ответ на определение того, что запрашивающий счет не авторизован для выполнения смарт–контракта, отклонение второго запроса на выполнение смарт-контракта.
[0063] Фиг. 6 иллюстрирует примеры модулей устройства 600 в соответствии с реализациями данного изобретения. Устройство 600 может представлять собой узел блокчейна, выполненный с возможностью управления доступом к смарт–контрактам в сети блокчейнов, такой как консорциальная сеть блокчейнов. Устройство 600 может соответствовать реализациям, описанным выше, и устройство 600 включает в себя следующее: модуль идентификации или блок 602 идентификации для идентификации запроса на выполнение смарт-контракта, сохраненный в блокчейне, поддерживаемой посредством сети блокчейнов, причем запрос идентифицирует запрашивающий счет, который запрашивает выполнение смарт–контракта; модуль извлечения или блок 604 извлечения для извлечения белого списка из блокчейна, ассоциированной со смарт–контрактом, причем белый список идентифицирует один или более счетов, которые авторизованы для выполнения смарт–контракта; модуль определения или блок 606 определения для определения, что запрашивающий счет авторизован для выполнения смарт–контракта, на основании включения запрашивающего счета в белый список; и модуль исполнения или блок 608 выполнения для выполнения смарт–контракта в ответ на определение того, что запрашивающий счет авторизован для выполнения смарт–контракта.
[0064] Система, устройство, модуль или блок, проиллюстрированные в предыдущих реализациях, могут быть реализованы посредством использования компьютерной микросхемы или объекта либо могут быть реализованы посредством использования продукта, имеющего определенную функцию. Устройство согласно примерной реализации представляет собой компьютер, и компьютер может представлять собой персональный компьютер, переносной компьютер, сотовый телефон, камерофон, смартфон, персональное цифровое устройство, мультимедийный проигрыватель, навигационное устройство, устройство приема и отправки электронной почты, игровую приставку, планшетный компьютер, носимое устройство либо любую комбинацию этих устройств.
[0065] На предмет процесса реализации функций и ролей каждого блока в устройстве, следует обратиться к процессу реализации соответствующих этапов в предыдущем способе. Подробности не приводятся здесь для простоты.
[0066] Поскольку реализация устройства по существу соответствует реализации способа, для получения сведений по соответствующим частям следует обратиться к соответствующему описанию реализации способа. Вышеописанная реализация устройства представляет собой лишь пример. Блоки, описанные в качестве отдельных частей, могут быть или не быть физически отдельными, и части, отображаемые в качестве блоков, могут быть или не быть физическими блоками, могут быть расположены в одном положении либо могут быть распределены по определенному числу сетевых блоков. Некоторые или все модули могут быть выбраны на основании фактических потребностей для достижения целей решений согласно изобретению. Варианты реализации согласно настоящей заявке могут быть поняты специалистами в данной области техники и реализованы ими без творческих усилий.
[0067] Обращаясь вновь к фиг. 6, её можно интерпретировать как иллюстрирующую внутренний функциональный модуль и структуру узла блокчейна, выполненного с возможностью управления доступом к смарт–контрактам в сети блокчейнов. Узел блокчейна может представлять собой пример устройства, выполненного с возможностью управления доступом к смарт–контрактам в сети блокчейнов.
[0068] Реализации объекта изобретения и действий и операций, описанных в данном подробном описании, могут реализовываться в цифровой электронной схеме, в реализованном на материальном носителе компьютерном программном обеспечении или микропрограммном обеспечении, в компьютерных аппаратных средствах, включающих в себя структуры, раскрытые в данном подробном описании, и их структурные эквиваленты, либо в комбинациях одного или более из означенного. Реализации объекта изобретения, описанного в данном подробном описании, могут быть реализованы в виде одной или более компьютерных программ, т.е. одного или более модулей компьютерных программных инструкций, программ, кодированных в компьютерной среде передачи данных , для выполнения или управления работой устройства обработки данных. Среда передачи может представлять собой материальный постоянный компьютерный носитель данных. В качестве альтернативы или дополнения, среда передачи может представлять собой искусственно сформированный распространяемый сигнал, например, сформированный компьютером электрический, оптический или электромагнитный сигнал, который формируется для кодирования информации для передачи в надлежащее приемное устройство для выполнения посредством устройства обработки данных. Компьютерный носитель данных может представлять собой или составлять часть машиночитаемого устройства хранения данных, машиночитаемой платы хранения данных, запоминающего устройства с произвольным или последовательным доступом либо сочтетания одного или более из вышеуказанного. Компьютерный носитель данных не представляет собой распространяемый сигнал.
[0069] Термин «устройство обработки данных» охватывает все виды устройств и машин для обработки данных, включающие в себя, в качестве примера, программируемый процессор, компьютер либо множество процессоров или компьютеров. Устройство обработки данных может включать в себя логическую схему специального назначения, например, FPGA (программируемую пользователем вентильную матрицу), ASIC (специализированную интегральную схему) или GPU (графический процессор). Устройство также может включать в себя, в дополнение к аппаратным средствам, код, который создает среду выполнения для компьютерных программ, например, код, который составляет микропрограммное обеспечение процессора, стек протоколов, систему управления базами данных, операционную систему либо комбинацию одного или более из означенного.
[0070] Компьютерная программа, которая также может называться или описываться как программа, программное обеспечение, программное приложение, приложение, модуль, программный модуль, механизм, сценарий или код, может быть написана на любой форме языка программирования, включающей в себя компилируемые или интерпретируемые языки либо декларативные или процедурные языки; и она может развертываться в любой форме, в том числе в виде автономной программы или в качестве модуля, компонента, механизма, вложенной процедуры или другого блока, подходящего для выполнения в вычислительном окружении, причем это окружение может включать в себя один или более компьютеров, соединенных между собой посредством сети передачи данных в одном или более местоположений.
[0071] Компьютерная программа может, но не обязательно должна, соответствовать файлу в файловой системе. Компьютерная программа может сохраняться в части файла, который хранит другие программы или данные (например, один или более сценариев, сохраняемых в документе на языке разметки), в одном файле, выделенном для рассматриваемой программы, или во множестве координированных файлов (например, в файлах, которые сохраняют один или более модулей, подпрограмм либо частей кода).
[0072] Процессы и логические последовательности операций, поясненные в данном описании изобретения, могут выполняться посредством одного или более компьютеров, выполняющих одну или более компьютерных программ, для осуществления операций посредством обработки входных данных и формирования вывода. Процессы и логические последовательности операций также могут выполняться посредством логической схемы специального назначения, например, FPGA, ASIC или GPU, либо посредством комбинации логической схемы специального назначения и одного или более запрограммированных компьютеров.
[0073] Компьютеры, подходящие для выполнения компьютерной программы, могут быть основаны на микропроцессорах общего или специального назначения либо на том и на другом, либо на любом другом виде центрального процессора. В общем, центральный процессор принимает инструкции и данные из постоянного запоминающего устройства или оперативного запоминающего устройства, либо из того и из другого. Элементы компьютера могут включать в себя центральный процессор для выполнения инструкций и одно или более запоминающих устройств для сохранения инструкций и данных. Центральный процессор и запоминающее устройство могут дополняться или включаться в логическую схему специального назначения.
[0074] Обычно компьютер должен быть соединён по меньшей мере с одним постоянным машиночитаемым носителем данных (также называемым «машиночитаемым запоминающим устройством»). Носитель данных, соединенный с компьютером, может представлять собой внутренний компонент компьютера (например, встроенный жесткий диск) или внешний компонент (например, жесткий диск по стандарту универсальной последовательной шины (USB) или систему хранения данных, доступную по сети). Примеры носителей данных могут включать в себя, например, магнитные, магнитооптические или оптические диски, полупроводниковые накопители, сетевые ресурсы хранения, к примеру, системы облачного хранения данных или другие типы носителей данных. Тем не менее, компьютер не должен обязательно иметь такие устройства. Кроме того, компьютер может встраиваться в другое устройство, например, в мобильный телефон, карманный персональный компьютер (PDA), мобильный аудио– или видеопроигрыватель, игровую приставку, приемник глобальной системы позиционирования (GPS) или портативное устройство хранения данных, например, флэш–накопитель по стандарту универсальной последовательной шины (USB), помимо прочего.
[0075] Для обеспечения взаимодействия с пользователем, реализации объекта изобретения, описанного в данном подробном описании, могут быть реализованы или выполнены с возможностью обмена данными с компьютером, имеющим устройство отображения, например, монитор ЖК–дисплея (жидкокристаллического дисплея), для отображения информации пользователю и устройство ввода, посредством которого пользователь может осуществлять ввод в компьютер, например, клавиатуру и указательное устройство, например, мышь, шаровой манипулятор или сенсорную панель. Для обеспечения взаимодействия с пользователем также могут использоваться другие виды устройств; например, обратная связь, обеспечиваемая пользователю, может представлять собой любую форму сенсорной обратной связи, такую как визуальная обратная связь, акустическая обратная связь или тактильная обратная связь; и ввод от пользователя может приниматься в любой форме, включающей в себя акустический, речевой или тактильный ввод. Помимо этого, компьютер может взаимодействовать с пользователем посредством отправки документов и приема документов из устройства, которое используется пользователем; например, посредством отправки веб–страниц в веб–браузер на устройстве пользователя в ответ на запросы, принимаемые из веб–браузера, либо посредством взаимодействия с приложением, выполняющимся на пользовательском устройстве, например, на смартфоне или электронном планшетном компьютере. Кроме того, компьютер может взаимодействовать с пользователем посредством отправки текстовых сообщений или других форм сообщения в персональное устройство, например, в смартфон, который выполняет приложение обмена сообщениями и принимает ответные сообщения от пользователя в ответ.
[0076] В данном описании изобретения используется термин «выполнен с возможностью» в отношении систем, устройств и компьютерных программных компонентов. Для системы из одного или более компьютеров «выполненный с возможностью» выполнения конкретных операций или действий означает, что система имеет установленное на ней программное обеспечение, микропрограммное обеспечение, аппаратные средства либо сочетание вышеуказанного, которые при работе предписывают системе выполнять операции или действия. Для одной или более компьютерных программ «выполненный с возможностью» выполнения конкретных операций или действий означает, что одна или более программ включают в себя инструкции, которые при выполнении посредством устройства обработки данных, предписывают устройству выполнять операции или действия. Для логической схемы специального назначения, «выполненный с возможностью» выполнения конкретных операций или действия означает, что схема имеет электронную логику, которая выполняет операции или действия.
[0077] Хотя данное описание изобретения содержит множество конкретных сведений по реализации, их не следует истолковывать в качестве ограничений объема заявленного изобретения, который определяется непосредственно формулой изобретения, а следует истолковывать в качестве описания признаков, которые могут относиться к конкретным реализациям. Определенные признаки, которые описаны в данном подробном описании в контексте отдельных реализаций, также могут быть реализованы в сочетании в одной реализации. Напротив, различные признаки, которые описаны в контексте одной реализации, также могут быть реализованы во множестве реализаций по отдельности либо в любом подходящем подсочетании. Кроме того, хотя признаки могут быть описаны выше как работающие в определенных сочетаниях и даже могут быть изначально заявлены в формуле изобретения как таковые, один или более признаков из заявленного сочетания в некоторых случаях могут быть исключены из упомянутого сочетания, и формула изобретения может быть относиться к подсочетанию или к модификации подсочетания.
[0078] Аналогичным образом, хотя операции проиллюстрированы на чертежах и приведены в формуле изобретения в конкретном порядке, это не следует понимать как указание на то, что такие операции должны обязательно выполняться в конкретном показанном порядке либо в последовательном порядке, а также на то, что для достижения требуемых результатов должны выполняться все проиллюстрированные операции. При определенных обстоятельствах может быть предпочтительна многозадачная и параллельная обработка. Кроме того, разделение различных системных модулей и компонентов в реализациях, описанных выше, не следует понимать как требующее такого разделения во всех реализациях, и следует понимать, что описанные программные компоненты и системы в общем могут интегрироваться в один программный продукт или могут быть собраны во множество программных продуктов.
[0079] Выше описаны конкретные реализации объекта изобретения. Другие реализации входят в объем прилагаемой формулы изобретения. Например, действия, изложенные в формуле изобретения, могут выполняться в другом порядке и при этом достигать требуемых результатов. В качестве одного примера, процессы, проиллюстрированные на прилагаемых чертежах, не обязательно требуют конкретного показанного порядка или последовательного порядка для достижения требуемых результатов. В некоторых случаях может быть предпочтительна многозадачная и параллельная обработка.
Изобретение относится к способу, машиночитаемому носителю данных и системе управления доступом к смарт-контрактам в сети блокчейнов. Технический результат заключается в управлении доступом к смарт-контрактам. В способе идентифицируют запрос на выполнение закрытой функции смарт-контракта, содержащий идентификатор инициатора запроса запрашивающего счета, причем смарт-контракт содержит закрытую функцию и основную функцию, выполняют закрытую функцию смарт-контракта для извлечения белого списка из блокчейна, предопределенного до вызова смарт-контракта, содержащего функциональный декоратор, конкретный для языка программирования смарт-контракта, ссылку на внешнее по отношению к смарт-контракту местоположение, в котором хранятся идентификаторы счетов, авторизованных для выполнения смарт–контракта, сконфигурированного для вызова перед выполнением основной функции смарт-контракта; обрабатывают белый список для идентификации на основании индикаторов счетов, авторизованных для выполнения смарт-контракта счетов; определяют, что запрашивающий счет авторизован для выполнения смарт–контракта, посредством вызова закрытой функции; выполняют основную функцию смарт-контракта для формирования данных транзакции. 3 н. и 17 з.п. ф-лы, 6 ил.
1. Реализуемый компьютером способ управления доступом к смарт–контрактам в сети блокчейнов, при этом способ содержит этапы, на которых:
идентифицируют посредством узла сети блокчейнов запрос на выполнение закрытой функции смарт-контракта, сохраненного в блокчейне, поддерживаемом посредством сети блокчейнов, причем запрос содержит идентификатор инициатора запроса запрашивающего счета, который запрашивает выполнение смарт–контракта, причем смарт-контракт содержит закрытую функцию и основную функцию;
выполняют, посредством упомянутого узла, закрытую функцию смарт-контракта с использованием идентификатора инициатора запроса для извлечения белого списка из блокчейна, который ассоциирован со смарт–контрактом, причем белый список предопределен до вызова смарт-контракта, причем белый список содержит функциональный декоратор, конкретный для языка программирования смарт-контракта, белый список содержит ссылку на внешнее по отношению к смарт-контракту местоположение, в котором хранятся идентификаторы счетов, авторизованных для выполнения смарт–контракта, и белый список сконфигурирован для вызова перед выполнением основной функции смарт-контракта;
обрабатывают, посредством упомянутого узла, белый список, ассоциированный со смарт-контрактом для идентификации, на основании индикаторов счетов, авторизованных для выполнения смарт-контракта, один или более счетов, которые авторизованы для выполнения смарт–контракта;
определяют, посредством упомянутого узла, что запрашивающий счет авторизован для выполнения смарт–контракта, на основании идентификатора инициатора запроса запрашивающего счета, включенного в белый список, при этом определение, что запрашивающий счет авторизован, включает в себя вызов, посредством упомянутого узла, закрытой функции;
в ответ на определение того, что запрашивающий счет авторизован для выполнения смарт–контракта, выполняют, посредством упомянутого узла, основную функцию смарт-контракта для формирования данных транзакции.
2. Способ по п. 1, в котором запрос представляет собой первый запрос, и запрашивающий счет представляет собой первый счет, при этом способ содержит этапы, на которых:
– идентифицируют посредством упомянутого узла второй запрос на выполнение смарт-контракта, отличный от первого запроса, причем второй запрос идентифицирует второй счет, отличный от первого счета;
– определяют посредством упомянутого узла, что второй счет не авторизован для выполнения смарт–контракта, на основании не включения второго счета в белый список; и
– в ответ на определение того, что запрашивающий счет не авторизован для выполнения смарт–контракта, отклоняют посредством упомянутого узла второй запрос на выполнение смарт-контракта.
3. Способ по п. 1, в котором белый список включен в набор выполняемых инструкций, ассоциированных со смарт–контрактом.
4. Способ по п. 1, в котором белый список является отдельным от набора выполняемых инструкций, ассоциированных со смарт–контрактом.
5. Способ по п. 1, в котором белый список включает в себя идентификационные данные одного или более счетов, которые авторизованы для осуществления доступа к смарт–контракту.
6. Способ по п. 1, дополнительно содержащий этап, на котором:
формируют, посредством узла, уведомление на основании результата обработки белого списка, ассоциированного со смарт-контрактом.
7. Способ по п. 1, в котором белый список идентифицирует объект, ассоциированный с одним или более счетами, и определение того, что запрашивающий счет авторизован для выполнения смарт–контракта, включает в себя этап, на котором определяют, ассоциирован ли запрашивающий счет с упомянутым объектом.
8. Постоянный машиночитаемый носитель данных, хранящий одну или более инструкций, выполняемых посредством компьютерной системы для осуществления операций управления доступом к смарт-контрактам в сети блокчейнов, операции содержат:
идентификацию, посредством узла сети блокчейнов, запроса на выполнение закрытой функции смарт-контракта, сохраненного в блокчейне, поддерживаемом посредством сети блокчейнов, причем запрос содержит идентификатор инициатора запроса запрашивающего счета, который запрашивает выполнение смарт–контракта, причем смарт-контракт содержит закрытую функцию и основную функцию;
выполнение, посредством упомянутого узла, закрытой функции смарт-контракта с использованием идентификатора инициатора запроса для извлечения белого списка из блокчейна, который ассоциирован со смарт–контрактом, причем белый список предопределен до вызова смарт-контракта, белый список содержит функциональный декоратор, конкретный для языка программирования смарт-контракта, белый список содержит ссылку на внешнее по отношению к смарт-контракту местоположение, в котором хранятся идентификаторы счетов, авторизованных для выполнения смарт–контракта, и белый список сконфигурирован для вызова перед выполнением основной функции смарт-контракта;
обработку, посредством упомянутого узла, белого списка, ассоциированного со смарт-контрактом для идентификации, на основании индикаторов счетов, авторизованных для выполнения смарт-контракта,
определение, посредством упомянутого узла, что запрашивающий счет авторизован для выполнения смарт–контракта, на основании идентификатора инициатора запроса запрашивающего счета, включенного в белый список, при этом определение, что запрашивающий счет авторизован, включает в себя вызов, посредством упомянутого узла, закрытой функции;
в ответ на определение того, что запрашивающий счет авторизован для выполнения смарт–контракта, выполнение, посредством упомянутого узла, основной функции смарт-контракта для формирования данных транзакции.
9. Постоянный машиночитаемый носитель данных по п. 8, в котором запрос представляет собой первый запрос, и запрашивающий счет представляет собой первый счет, причем операции дополнительно содержат:
идентификацию, посредством упомянутого узла, второго запроса на выполнение смарт-контракта, отличного от первого запроса, причем второй запрос идентифицирует второй счет, отличный от первого счета;
определение, посредством упомянутого узла, что второй счет не авторизован для выполнения смарт–контракта, на основании не включения второго счета в белый список; и
в ответ на определение того, что запрашивающий счет не авторизован для выполнения смарт–контракта, отклонение, посредством упомянутого узла, второго запроса на выполнение смарт-контракта.
10. Постоянный машиночитаемый носитель данных по п. 8, в котором белый список включен в набор выполняемых инструкций, ассоциированных со смарт–контрактом.
11. Постоянный машиночитаемый носитель данных по п. 8, в котором белый список является отдельным от набора выполняемых инструкций, ассоциированных со смарт–контрактом.
12. Постоянный машиночитаемый носитель данных по п. 8, в котором белый список включает в себя идентификационные данные одного или более счетов, которые авторизованы для осуществления доступа к смарт–контракту.
13. Постоянный машиночитаемый носитель данных по п. 8, в котором операции дополнительно содержат:
формирование, посредством узла, уведомления на основании результата обработки белого списка, ассоциированного со смарт-контрактом.
14. Постоянный машиночитаемый носитель данных по п. 8, в котором белый список идентифицирует объект, ассоциированный с одним или более счетов, и определение того, что запрашивающий счет авторизован для выполнения смарт–контракта, включает в себя определение того, ассоциирован ли запрашивающий счет с упомянутым объектом.
15. Система управления доступом к смарт-контрактам в сети блокчейнов, содержащая:
один или более компьютеров; и
одно или более компьютерных запоминающих устройств, взаимодействующих с одним или несколькими компьютерами и имеющих материальные постоянные машиночитаемые носители, хранящие одну или несколько инструкций, которые при исполнении одним или более компьютерами осуществляют операции для управления доступом к смарт-контрактам в сети блокчейнов, операции содержат:
идентификацию, посредством узла сети блокчейнов, запроса на выполнение закрытой функции смарт-контракта, сохраненного в блокчейне, поддерживаемом посредством сети блокчейнов, причем запрос содержит идентификатор инициатора запроса запрашивающего счета, который запрашивает выполнение смарт–контракта, причем смарт-контракт содержит закрытую функцию и основную функцию;
выполнение, посредством упомянутого узла, закрытой функции смарт-контракта с использованием идентификатора инициатора запроса для извлечения белого списка из блокчейна, который ассоциирован со смарт–контрактом, причем белый список предопределен до вызова смарт-контракта, белый список содержит функциональный декоратор, конкретный для языка программирования смарт-контракта, белый список содержит ссылку на внешнее по отношению к смарт-контракту местоположение, в котором хранятся идентификаторы счетов, авторизованных для выполнения смарт–контракта, и белый список сконфигурирован для вызова перед выполнением основной функции смарт-контракта;
обработку, посредством упомянутого узла, белого списка, ассоциированного со смарт-контрактом, для идентификации, на основании индикаторов счетов, авторизованных для выполнения смарт-контракта, одного или более счетов, которые авторизованы для выполнения смарт-контракта;
определение, посредством упомянутого узла, что запрашивающий счет авторизован для выполнения смарт–контракта, на основании идентификатора инициатора запроса запрашивающего счета, включенного в белый список, при этом определение, что запрашивающий счет авторизован, включает в себя вызов, посредством упомянутого узла, закрытой функции;
в ответ на определение того, что запрашивающий счет авторизован для выполнения смарт–контракта, выполнение, посредством упомянутого узла, основной функции смарт-контракта для формирования данных транзакции.
16. Система по п. 15, в которой запрос представляет собой первый запрос и запрашивающий счет представляет собой первый счет, причем операции дополнительно содержат:
идентификацию посредством упомянутого узла второго запроса на выполнение смарт-контракта, отличного от первого запроса, причем второй запрос идентифицирует второй счет, отличный от первого счета;
определение посредством упомянутого узла, что второй счет не авторизован для выполнения смарт–контракта, на основании не включения второго счета в белый список; и
в ответ на определение того, что запрашивающий счет не авторизован для выполнения смарт–контракта, отклонение посредством упомянутого узла второго запроса на выполнение смарт-контракта.
17. Система по п. 15, в которой белый список включен в набор выполняемых инструкций, ассоциированных со смарт–контрактом.
18. Система по п. 15, в которой белый список является отдельным от набора выполняемых инструкций, ассоциированных со смарт–контрактом.
19. Система по п. 15, в которой белый список включает в себя идентификационные данные одного или более счетов, которые авторизованы для осуществления доступа к смарт–контракту.
20. Система по п. 15, в которой операции дополнительно содержат:
формирование, посредством узла, уведомления на основании результата обработки белого списка, ассоциированного со смарт-контрактом.
Способ получения цианистых соединений | 1924 |
|
SU2018A1 |
CN 108696502 A, 23.10.2018 | |||
Автомобиль-сани, движущиеся на полозьях посредством устанавливающихся по высоте колес с шинами | 1924 |
|
SU2017A1 |
Способ получения цианистых соединений | 1924 |
|
SU2018A1 |
Способ получения цианистых соединений | 1924 |
|
SU2018A1 |
STEPHEN KIRKMAN et al | |||
"InterCloud: A Data Movement Policy DApp for Managing Trust in the Cloud", 2018 International Conference on Computational Science and Computational Intelligence (CSCI), |
Авторы
Даты
2021-03-16—Публикация
2018-12-28—Подача