ПЕРЕКРЕСТНАЯ ССЫЛКА НА РОДСТВЕННЫЕ ЗАЯВКИ
[0001] Настоящая заявка является международной заявкой и притязает на приоритет даты подачи предварительной заявки США № 62/519802, поданной 14 июня 2017 г., которая включена в настоящий документ с помощью ссылки во всей своей полноте для всех целей.
УРОВЕНЬ ТЕХНИКИ
[0002] Системы записей цепочки блоков предназначены для безопасного записывания информации. Когда компьютер подает новую информацию в цепочку блоков (блокчейн), информация становится бесповоротно сохраненной.
[0003] Как правило, системы записей цепочки блоков позволяют кому угодно добавлять новые данные в цепочку блоков. Этот открытый доступ может быть полезным, поскольку он позволяет множеству пользователей вносить вклад в запись, а не только одному. Однако открытый доступ в системах записей цепочки блоков может создавать уязвимости, связанные с приемом неверных данных и/или наличием дезорганизованных записей.
[0004] Для иллюстрации рассмотрим процесс физического отправления, в котором фигурируют три разных сегмента транспортировки. Первый сегмент может представлять собой транспортировку из точки A в точку B, второй сегмент может представлять собой транспортировку из точки B в точку C, и третий сегмент может представлять собой транспортировку из точки C в точку D. Когда сегмент транспортировки завершается, новая запись цепочки блоков может быть создана для того, чтобы осуществлять мониторинг прогресса отправления. Однако в случае типовой системы записей цепочки блоков можно записать то, что второй сегмент транспортировки завершен, перед записыванием того, что первый сегмент транспортировки завершен. Это делает запись вразумительной и неточной, поскольку второй сегмент физически не может быть завершен перед первым сегментом.
[0005] Независимо от того, был такой ввод записи выполнен мошенническим путем или случайно, это приводит к тому, что запись цепочки блоков становится дезорганизованной и потенциально неверной. Ошибка такого рода не может быть исправлена, так как после добавления информации в цепочку блоков она не может быть изменена.
[0006] В лучшем случае первый сегмент транспортировки мог быть завершен, но о нем еще не предоставляли отчет. О том сегменте могли предоставить отчет в более позднее время. Однако цепочка блоков будет теперь все еще показывать, что второй сегмент был завершен в более раннее время, чем первый сегмент.
[0007] Варианты осуществления настоящего изобретения решают эти и другие проблемы по отдельности и вместе.
СУЩНОСТЬ ИЗОБРЕТЕНИЯ
[0008] Варианты осуществления настоящего изобретения представляют системы и способы создания умного контракта (смарт-контракта), который задает конкретный порядок для набора событий, а также новых записей, подлежащих созданию в ответ на события. Умный контракт тем самым обеспечивает фильтр для новых записей, подаваемых в запись цепочки блоков. Если событие по всей видимости происходит вне порядка или новый элемент записи иным образом подается вне порядка, запись может быть отклонена и не добавлена в цепочку блоков. В результате записи цепочки блоков создаются и поддерживаются организованно и последовательно.
[0009] Один вариант осуществления настоящего изобретения направлен на способ. Способ включает прием умного контракта, указывающего, что упорядоченный набор взаимодействий будет иметь место в ответ на упорядоченный набор событий, и в ответ на первое событие из упорядоченного набора событий передачу инструкции для генерирования первого пакета данных для первого взаимодействия из упорядоченного набора взаимодействий на компьютер второго узла. Умный контракт указывает, что первое взаимодействие будет иметь место в ответ на первое событие. Способ также включает прием первого пакета данных для первого взаимодействия с компьютера второго узла и генерирование первого блока для цепочки блоков. Первый блок содержит первый пакет данных для первого взаимодействия. Способ дополнительно включает передачу инструкции для генерирования второго пакета данных для второго взаимодействия из упорядоченного набора взаимодействий на компьютер второго узла в ответ на второе событие из упорядоченного набора событий. Умный контракт указывает, что второе взаимодействие будет иметь место в ответ на второе событие. Способ также включает прием второго пакета данных для второго взаимодействия с компьютера второго узла и генерирование второго блока для цепочки блоков. Второй блок содержит второй пакет данных для первого взаимодействия.
[0010] Еще один вариант осуществления настоящего изобретения направлен на компьютер административного узла, приспособленный для выполнения вышеописанного способа.
[0011] Еще один вариант осуществления настоящего изобретения направлен на способ, включающий генерирование умного контракта, указывающего, что упорядоченный набор взаимодействий будет иметь место в ответ на упорядоченный набор событий, и генерирование первого пакета данных для первого взаимодействия из упорядоченного набора взаимодействий в ответ на первое событие из упорядоченного набора событий. Умный контракт указывает, что первое взаимодействие будет иметь место в ответ на первое событие. Способ также включает передачу первого пакета данных на компьютер административного узла. Компьютер административного узла генерирует первый блок для цепочки блоков, и первый блок содержит первый пакет данных. Способ дополнительно включает генерирование второго пакета данных для второго взаимодействия из упорядоченного набора взаимодействий в ответ на второе событие из упорядоченного набора событий. Умный контракт указывает, что второе взаимодействие будет иметь место в ответ на второе событие. Способ также включает передачу второго пакета данных на компьютер административного узла. Компьютер административного узла создает второй блок для цепочки блоков, и второй блок содержит второй пакет данных.
[0012] Еще один вариант осуществления настоящего изобретения направлен на компьютер второго узла, приспособленный для выполнения вышеописанного способа.
[0013] Дополнительные подробности касательно вариантов осуществления настоящего изобретения можно найти в разделе «ПОДРОБНОЕ ОПИСАНИЕ ИЗОБРЕТЕНИЯ» и на фигурах.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
[0014] На фиг. 1 показана структурная схема системы согласно варианту осуществления настоящего изобретения.
[0015] На фиг. 2 показана структурная схема компьютера административного узла согласно варианту осуществления настоящего изобретения.
[0016] На фиг. 3 показана структурная схема компьютера второго узла согласно варианту осуществления настоящего изобретения.
[0017] На фиг. 4 показан пример умного контракта согласно варианту осуществления настоящего изобретения.
[0018] На фиг. 5A–5G показана блок–схема, иллюстрирующая способ создания записей на основе упорядоченного умного контракта согласно вариантам осуществления настоящего изобретения.
ОСУЩЕСТВЛЕНИЕ ИЗОБРЕТЕНИЯ
[0019] Варианты осуществления настоящего изобретения представляют системы и способы создания упорядоченного умного контракта. Умный контракт может содержать подробности о последовательности предполагаемых будущих событий и может задавать порядок, в котором они предположительно должны произойти. Умный контракт может дополнительно содержать подробности о последовательности записей, подлежащих созданию в ответ на события. Каждое событие может иметь одну или более соответствующих записей.
[0020] Умный контракт может быть принудительно осуществлен компьютером административного узла. Компьютер административного узла может также генерировать запись цепочки блоков и, таким образом, может действовать как привратник, гарантируя, что записи создаются только так, как задано умным контрактом. В результате записи цепочки блоков создаются организованно и вразумительно.
[0021] В некоторых вариантах осуществления компьютеры различных узлов могут отправлять уведомления на компьютер административного узла, когда совершаются разные события. Компьютер каждого узла мог заранее зарегистрироваться в сети ведения записей посредством связей с компьютером административного узла, и компьютер административного узла мог обеспечить компьютер каждого узла уникальным закрытым ключом для будущих связей. В результате уведомление о каждом событии может быть снабжено цифровой подписью с использованием закрытого ключа, так что компьютер административного узла может проверять подлинность уведомления. Уведомление может служить в качестве сигнала запуска для последующего создания записи (например, на основе умного контракта).
[0022] В некоторых вариантах осуществления события могут представлять собой услуги, и новые записи могут быть характерны для платежных транзакций, предусмотренных для услуг. Например, пакет данных может быть создан с информацией, определяющей платежную транзакцию, и пакет данных может быть записан в цепочку блоков. Таким образом, умный контракт может гарантировать, что платежи совершаются только в том случае, если соответствующая услуга или задача совершается в рамках предопределенного порядка.
[0023] Варианты осуществления также применяются и к другим типам событий и записей. Например, события могут содержать задачи, связанные с медицинской процедурой, такой как хирургическая операция, и новые записи могут представлять обновления для журнала хирургического отделения или медицинских данных пациента. В качестве еще одного примера события могут содержать конкретные задачи в рамках проекта строительства (например, построить фундамент, установить водопровод, установить электропроводку и т. д.), и новые записи могут представлять обновления статуса проекта. Таким образом, варианты осуществления могут применяться к любому подходящему процессу, в котором события или активности должны случаться в конкретном порядке и/или в котором события или активности выполняются разными субъектами.
[0024] Дополнительные признаки, которые могут быть включены в варианты осуществления настоящего изобретения, описаны в международной заявке US2017/046364, в международной заявке US2017/059744 и в международной заявке US2018/027455, каждая из которых включена с помощью ссылки в настоящий документ во всей своей полноте для всех целей.
[0025] Перед обсуждением конкретных вариантов осуществления настоящего изобретения могут быть подробно описаны некоторые термины.
[0026] «Событие» может включать момент, когда что–то происходит, эпизод или момент, когда что–то случается. Более конкретно, событие может представлять собой действие, активность или задачу, выполняемые действующим лицом. Примеры событий включают отправление пакета или осмотр пакета, создание страхового полиса, копку под строящийся фундамент, выполнение медицинского осмотра и любой другой подходящий тип совершения работы.
[0027] «Взаимодействие» может включать обмен или осуществление связи. Примерные взаимодействия включают перевод величины (например, платежную транзакцию или передачу привилегий доступа) и обеспечение обновленной информации (например, медицинских записей, записей об образовании и т. д.).
[0028] «Умный контракт» может представлять собой исполняемые компьютером инструкции, приспособленные для предписания процессору принудительно осуществить политику, соглашение или обязанность. Умный контракт может быть использован для представления соглашения между двумя или более сторонами, в котором сроки умного контракта записываются на компьютерном языке как набор инструкций. Умные контракты могут содержать ряд политик, которые должны быть принудительно осуществлены для того, чтобы совершить транзакцию между двумя или более сторонами. Умный контракт может быть распределен среди одного или более узлов сети цепочки блоков, которые могут автоматически исполнять умные контракты.
[0029] В некоторых вариантах осуществления один умный контракт может содержать исполняемые компьютером инструкции, приспособленные для предписания процессору принудительно осуществить множество (например, две или более) политик, соглашений или обязанностей. Такой умный контракт может быть использован для представления соглашения между двумя или более наборами из двух или более сторон. В рамках умного контракта с множеством политик каждая политика может включать в себя совершение события. Когда событие совершается, соответствующее взаимодействие может быть запущено. Таким образом, умный контракт может задавать набор (например, два или более) событий, а также набор взаимодействий, которые должны иметь место, когда совершаются конкретные события. Этот тип умного контракта может содержать информацию, определяющую то, что события (и/или соответствующие взаимодействия) должны быть совершены в конкретном порядке. Если события не совершаются согласно предопределенному порядку, одно или более взаимодействий могут не быть запущены.
[0030] «Пакет данных» может относиться к совокупности цифровой информации. Например, пакет данных может представлять собой информацию, которая существуют в двоичном формате. В некоторых вариантах осуществления пакет данных может содержать информацию о чем–нибудь, что может быть описано в записи. Например, пакет данных может содержать любой подходящий тип цифровой информации, например, данные о владении, данные о статусе продукта, данные об обновлении проекта, данные платежной транзакции и т. д.
[0031] Термин «узел» может относиться к точке соединения. В некоторых вариантах осуществления узел может представлять собой физическое электронное устройство, которое выполнено с возможностью создания, приема или передачи данных. В других вариантах осуществления узел может представлять собой программный модуль на вычислительном устройстве, причем программный модуль представляет собой точку соединения в сети связи. В некоторых вариантах осуществления узел может представлять собой вычислительное устройство в сети ведения записей. Узел может быть выполнен с возможностью создания пакета данных, передачи пакета данных, приема пакета данных, подтверждения действительности пакета данных, доступа к центральной записи и/или выполнения любых других подходящих функций. Разные типы узлов могут быть выполнены с возможностью выполнения разных наборов функций в сети записывания. В некоторых вариантах осуществления узел может быть связан с компьютером финансовой организации (например, банком), компьютером платежного оператора, компьютером третьей стороны или любым другим подходящим субъектом и/или находиться под его управлением.
[0032] «Запись» может относиться к доказательству одного или более взаимодействий. Цифровая запись может представлять собой электронную документацию взаимодействия. Запись может содержать идентификатор записи и информацию записи. Например, информация записи может содержать информацию, описывающую одно или более взаимодействий, и/или информацию, связанную с взаимодействиями (например, цифровую подпись). Информация записи может содержать множество различных пакетов данных, причем каждый пакет данных имеет разные данные, описывающие разное взаимодействие. Идентификатор записи может представлять собой число, название или другое значение данных, используемое для идентификации записи. Идентификатор записи может быть незначительным в том понимании, что он может не представлять какой–либо значащей информации об информации записи в записи. Примеры записей включают медицинские записи, записи об образовании, записи транзакций в реестре транзакций и т. д. Еще одним примером записи является блок в цепочке блоков. Отдельный блок может быть отдельной записью, и цепочка блоков может быть последовательностью записей. Заголовок цепочки блоков является примером идентификатора записи, и основная часть цепочки блоков является примером информации записи.
[0033] Термин «реестр транзакций» может относиться к своду данных из предыдущих транзакций. Реестр транзакций может представлять собой базу данных или другую сравнимую файловую структуру, которая может быть приспособлена для хранения данных из всех предыдущих транзакций, включая дату и время транзакции, сумму транзакции и идентификационную информацию для участников транзакции (например, отправителя и получателя суммы транзакции). В некоторых вариантах осуществления реестр транзакций может иметь форму электронного реестра (например, цепочки блоков), в котором данные, уже сохраненные в электронном реестре, являются неизменяемыми.
[0034] «Цепочка блоков» может представлять собой базу данных, которая поддерживает постоянно растущий список записей, защищенный от фальсификации и ревизии. Цепочка блоков может содержать ряд блоков записей взаимодействия, записанных на одном или более узлах. Каждый блок в цепочке блоков может также содержать метку времени и ссылку на предыдущий блок. Например, каждый блок может содержать хеш предыдущего блока или быть присоединен к нему. Другими словами, записи взаимодействия в цепочке блоков могут быть сохранены как последовательность «блоков» или постоянных файлов, которые включают запись ряда транзакций, происходящих в течение заданного периода времени. Блоки могут быть присоединены к цепочке блоков надлежащим узлом после того, как он завершает блок и действительность блока подтверждается. В вариантах осуществления настоящего изобретения цепочка блоков может быть распределена, и в каждом узле в сети цепочки блоков может поддерживаться копия цепочки блоков.
[0035] «Пара ключей» может предусматривать пару связанных ключей шифрования. Например, пара ключей может содержать открытый (общедоступный) ключ и соответствующий закрытый ключ. В паре ключей первый ключ (например, открытый ключ) может быть использован для шифрования сообщения, тогда как второй ключ (например, закрытый (секрктеный) ключ) может быть использован для расшифровки зашифрованного сообщения. Дополнительно открытый ключ может быть выполнен с возможностью проверки цифровой подписи, созданной с помощью соответствующего закрытого ключа. Открытый ключ может быть распространен по сети для того, чтобы обеспечить возможность проверки сообщений, подписанных с использованием соответствующего закрытого ключа. Открытые и закрытые ключи могут иметь любой подходящий формат, включая формат, основанный на криптографическом алгоритме с открытым ключом (RSA) или криптографии на основе эллиптических кривых (ECC). В некоторых вариантах осуществления пара ключей может быть сгенерирована с использованием алгоритма пары асимметричных ключей. Однако пара ключей может также быть сгенерирована с использованием других средств, как будет понятно специалисту в данной области техники.
[0036] Термин «цифровая подпись» может относиться к электронной подписи для сообщения. Цифровая подпись может представлять собой численное значение данных, буквенно–численное значение данных или любой другой тип данных, включая графическое представление. Цифровая подпись может представлять собой уникальное значение данных, сгенерированное из сообщения и закрытого ключа с использованием алгоритма шифрования. В некоторых вариантах осуществления для проверки подписи может быть использован алгоритм подтверждения действительности, использующий открытый ключ.
[0037] «Рабочий идентификатор» может предусматривать идентификатор для пользователя. Например, рабочий идентификатор может быть в целом уникальным идентификатором для конечного пользователя, который подает информацию новой записи на узел в сети ведения записей, или для конечного пользователя, который принимает информацию об информации новой записи (например, перевод величины) с узла. В некоторых вариантах осуществления рабочий идентификатор может также указывать конкретный узел, с которым связан пользователь. Рабочий идентификатор может содержать буквенно–численные символы, специальные символы и любой другой подходящий символ.
[0038] «Идентификатор адреса» может предусматривать идентификатор для участника. Например, идентификатор адреса может представлять узел или поставщика услуг в сети. В некоторых вариантах осуществления сообщение может быть направлено на конкретный узел за счет наличия идентификатора адреса узла. Идентификатор адреса может содержать строку символов, таких как буквы, числа и т. д. Например, идентификатор адреса может быть строкой из 5, 10, 15 или любого другого подходящего количества символов. В некоторых вариантах осуществления открытый ключ, связанный с участником, может быть использован в качестве идентификатора адреса участника.
[0039] «Идентификатор класса» может содержать значение данных, которое представляет конкретный тип записи. Идентификаторы классов могут быть использованы для идентификации любого подходящего класса записываемой информации. Например, идентификатор класса может быть приспособлен для идентификации записей, относящихся к типу медицинской информации, записей, относящихся к типу удостоверяющих данных об образовании, записей, относящихся к типу идентификаторов продуктов, записей, относящихся к типу данных о сотруднике, записей, относящихся к типу активности (например, строительные активности, сантехнические активности и т. д.), записей переводов величин различных типов (например, платежей в долларах США, платежей в британских фунтах, платежей в китайский юанях, передач цифровых данных о правах, передач документов о собственности, передач билетов на мероприятия, переводов игровых кредитов, переводов кредитов на энергию, переводов минут по мобильному телефону и т. д.) или записи любого другого подходящего типа. Классы могут быть разделены любым подходящим образом. В некоторых вариантах осуществления идентификатор класса может также указывать на то, что конкретный участник авторизован для создания и/или приема пакетов данных для записи того типа. Идентификатор класса может содержать строку символов, таких как буквы, числа и т. д. Например, идентификатор адреса может быть строкой из 5, 10, 15 или любого другого подходящего количества символов.
[0040] «Серверный компьютер» может включать мощный компьютер или кластер компьютеров. Например, серверный компьютер может представлять собой крупный универсальный компьютер, кластер мини–компьютеров или группу серверов, функционирующих как один элемент. В одном примере серверный компьютер может представлять собой сервер баз данных, подключенный к веб–серверу. Серверный компьютер может быть подключен к базе данных и может содержать любое аппаратное обеспечение, программное обеспечение, другую логику или комбинацию предыдущего для обслуживания запросов с одного или более клиентских компьютеров.
[0041] На фиг. 1 показана система 100, содержащая ряд компонентов. Система 100 содержит сеть записывания, которая находится под административным управлением компьютера 150 административного узла. Компьютер 165 первого узла, компьютер 145 второго узла, компьютер 123 третьего узла, компьютер 124 четвертого узла, компьютер 125 пятого узла, компьютер 126 шестого узла, компьютер 127 седьмого узла, компьютер 128 восьмого узла, компьютер 129 девятого узла и любой другой подходящий ряд компьютеров узлов участвуют в сети. Компьютер 110 первого пользователя, находящийся под управлением первого пользователя (не показан), может подавать инструкции обновления записи посредством компьютера 165 первого узла, компьютер 130 второго пользователя, находящийся под управлением второго пользователя (не показан), может подавать инструкции обновления записи посредством компьютера 145 второго узла, и компьютеры других пользователей (например, компьютер 133 третьего пользователя, компьютер 134 четвертого пользователя, компьютер 135 пятого пользователя, компьютер 136 шестого пользователя, компьютер 137 седьмого пользователя, компьютер 138 восьмого пользователя, компьютер 139 девятого пользователя) могут также подавать инструкции обновления записи посредством компьютеров связанных с ними узлов. Дополнительно компьютеры различных узлов могут информировать компьютеры связанных с ними пользователей об обновлениях записей, которые были поданы.
[0042] Все из компьютеров, показанных в системе 100, могут находиться в оперативной связи друг с другом посредством любого подходящего канала связи или сети связи. Подходящие сети связи могут представлять собой любое из и/или комбинацию следующего: прямое взаимное соединение; сеть Интернет; локальная вычислительная сеть (LAN); городская вычислительная сеть (MAN); рабочие миссии и узлы в сети Интернет (OMNI); безопасное обычное соединение; глобальная вычислительная сеть (WAN); беспроводная сеть (например, применяющая, но без ограничения, такие протоколы, как протокол для беспроводной передачи данных (WAP), I–mode и/или т. п.); и/или т. п.
[0043] Сообщения между компьютерами, сетями и устройствами могут быть переданы с использованием протоколов защищенной связи, таких как, но без ограничения, протокол передачи файлов (FTP); протокол передачи гипертекста (HTTP); безопасный протокол передачи гипертекста (HTTPS), уровень защищенных сокетов (SSL), ISO (например, ISO 8583) и/или т. п.
[0044] Система 100 может быть приспособлена для создания и поддержания записей любых подходящих типов. Компьютер 150 административного узла может административно управлять процессом ведения записей путем предоставления ряда услуг. Например, компьютер 150 административного узла может осуществлять построение новых блоков для цепочки блоков, причем новые блоки содержат информацию обновленных записей. Компьютер 150 административного узла может также регистрировать узлы и конечных пользователей, а также регулировать поведение участвующих узлов для ведения записей безопасным и надежным образом. Компьютер 150 административного узла может дополнительно проверять новые пакеты данных и информировать участвующие узлы о новых взаимодействиях и блоках.
[0045] Дополнительно компьютер 150 административного узла может способствовать созданию последовательно упорядоченных записей, как определено одним или более умными контрактами. Например, компьютер 150 административного узла может принимать и принудительно осуществлять умные контракты. Это может включать мониторинг того, когда политика умного контракта была удовлетворена, и в случае успеха создание новой записи на основе удовлетворенной политики.
[0046] Поскольку компьютер 150 административного узла может осуществлять построение упорядоченного набора записей и поддерживать его, компьютеры различных узлов могут подавать новую информацию на компьютер 150 административного узла для записывания. Например, компьютер 165 первого узла и компьютер 145 второго узла могут создать и подавать пакеты данных, описывающие взаимодействия различных классов. Эти пакеты данных могут быть созданы и поданы на основе инструкций взаимодействия, принятых с компьютера 110 первого пользователя и/или компьютера 130 второго пользователя, или на основе запускающих событий, как определено в умном контракте.
[0047] Дополнительно один или более компьютеров узлов могут быть выполнены с возможностью генерирования и/или подачи умных контрактов. Например, компьютер 145 второго узла может создавать умный контракт, определяющий одно или более событий, которые могут иметь место в будущем, а также предполагаемый порядок для событий. Дополнительно умный контракт может определять одну или более записей, подлежащих созданию в ответ на события. Компьютер 145 второго узла может передавать умный контракт на компьютер 150 административного узла, который может управлять умным контрактом и принудительно осуществлять его. Например, компьютер 150 административного узла может давать инструкцию компьютеру 145 второго узла на создание и подачу пакета данных, представляющего конкретное взаимодействие, после того, как имело место определенное запускающее событие. В результате построение записей (например, взаимодействий) может быть осуществлено в предопределенном порядке.
[0048] Несмотря на то, что на фиг. 1 конкретно проиллюстрированы девять разных компьютеров узлов, система 100 может содержать любое подходящее количество компьютеров узлов. Дополнительно компьютер каждого узла может осуществлять связь с более чем просто одним компьютером пользователя. Например, компьютер 165 первого узла может осуществлять связь с компьютерами других пользователей помимо компьютера 110 первого пользователя. Дополнительно система 100 может содержать более одного компьютера 150 административного узла для административного управления сетью записывания.
[0049] Система 100 может быть использована для обработки, одобрения и записывания любого подходящего типа информации. Например, система 100 может быть использована для записывания информации о новых взаимодействиях, например, новых проектах и активностях, новых переводах величин, новых медицинских данных о пациенте, новых достижениях в сфере образования и т. д.
[0050] Пример компьютера 150 административного узла согласно некоторым вариантам осуществления настоящего изобретения показан на фиг. 2. Компьютер 150 административного узла содержит процессор 150A, сетевой интерфейс 150B, базу 150C данных записей, базу 150D данных узлов, базу 150P данных пользователей, базу 150Q данных ключей, базу 150R данных умных контрактов и машиночитаемый носитель 150E.
[0051] База 150C данных записей может хранить записи. Например, данные о взаимодействии, принятые с узлов в сети, могут быть вставлены в запись и сохранены в базе 150C данных записей. В некоторых вариантах осуществления записи могут принимать вид цепочки блоков с записями блоков, причем каждый блок содержит один или более пакетов данных, представляющих одно или более взаимодействий.
[0052] База 150D данных узлов может содержать информацию об узлах, таких как компьютер 165 первого узла, компьютер 145 второго узла и компьютеры других узлов, показанные на фиг. 1. Например, база данных узлов может содержать идентификаторы, связанные с компьютером 165 первого узла, такие как идентификатор адреса и один или более идентификаторов классов. База 150D данных узлов может также содержать информацию об ограничениях, таких как пределы расходов, связанные с разными узлами.
[0053] База 150P данных пользователей может содержать информацию о зарегистрированных конечных пользователях, таких как первый пользователь, второй пользователь, а также устройствах, связанных с пользователями (например, компьютере 110 первого пользователя, компьютере 130 второго пользователя и компьютерах других пользователей, показанных на фиг. 1). Она может содержать рабочие идентификаторы, а также информацию о том, с каким узлом связан пользователь. Например, рабочий идентификатор компьютера второго пользователя может быть связан с идентификатором адреса компьютера второго узла, а также идентификатором конкретного класса.
[0054] База 150Q данных ключей может хранить ключи шифрования. Например, база 150Q данных ключей может содержать открытый ключ для каждого узла, а также закрытый ключ, связанный с компьютером 150 административного узла. В некоторых вариантах осуществления база 150Q данных ключей может принимать вид аппаратного модуля безопасности (HSM).
[0055] База 150R данных умных контрактов может хранить один или более умных контрактов. Например, база 150R данных умных контрактов может хранить копию умного контракта, поданного компьютером узла, который определяет одно или более событий и одно или более соответствующих взаимодействий. База 150R данных умных контрактов может дополнительно хранить информацию, описывающую совершение заданного умного контракта, такую как то, какие события и/или взаимодействия были уже совершены, и указание следующего предполагаемого события. Дополнительно могут храниться одна или более цифровых подписей, связанных с заданным умным контрактом.
[0056] Машиночитаемый носитель 150E может содержать регистрирующий модуль 150F, модуль 150J подтверждения действительности, модуль 150K постановки подписи, модуль 150L обновления записей, модуль 150M расчетов, модуль 150N умного контракта и любой другой подходящий программный модуль. Машиночитаемый носитель 150E может также содержать код, исполняемый процессором 150A для реализации способа, включающего прием умного контракта, указывающего, что упорядоченный набор взаимодействий будет иметь место в ответ на упорядоченный набор событий; в ответ на первое событие из упорядоченного набора событий передачу на компьютер второго узла инструкции для генерирования первого пакета данных для первого взаимодействия из упорядоченного набора взаимодействий, причем умный контракт указывает, что первое взаимодействие будет иметь место в ответ на первое событие; прием с компьютера второго узла первого пакета данных для первого взаимодействия; генерирование первого блока для цепочки блоков, причем первый блок содержит первый пакет данных для первого взаимодействия; в ответ на второе событие из упорядоченного набора событий передачу на компьютер второго узла инструкции для генерирования второго пакета данных для второго взаимодействия из упорядоченного набора взаимодействий, причем умный контракт указывает, что второе взаимодействие будет иметь место в ответ на второе событие; прием с компьютера второго узла второго пакета данных для второго взаимодействия; и генерирование второго блока для цепочки блоков, причем второй блок содержит второй пакет данных для первого взаимодействия.
[0057] Регистрирующий модуль 150F может содержать код, который предписывает процессору 150A зарегистрировать компьютеры узлов для присоединения к сети записывания. Например, регистрирующий модуль 150F может содержать логику, которая предписывает процессору 150A оценить, можно или нет регистрировать субъект, а также какой уровень риска присвоить новому субъекту. На уровень риска может повлиять то, является ли субъект хорошо известной и надежной организацией, утвердил ли он расчетный счет или другие процессы расчета, расположен ли он в стране с высоким риском и т. д. В дополнение к присваиванию уровня риска компьютер 150 административного узла может выдавать пределы активности для узла на основе профиля риска. Пределы активности могут включать, например, пределы максимального порога транзакции и/или пределы скорости оборота, такие как предел на количество платежных транзакций или общую величину транзакции, которые могут быть поданы в течение определенного периода времени (например, дня, недели или месяца).
[0058] Регистрирующий модуль 150F может также содержать инструкции для генерирования и присваивания уникального идентификатора адреса для недавно зарегистрированного узла. Дополнительно могут существовать инструкции для генерирования и распределения ключей для недавно зарегистрированного узла. Например, компьютер 150 административного узла может генерировать пару ключей для узла. Компьютер 150 административного узла может сохранять открытый ключ и предоставлять закрытый ключ на компьютер узла.
[0059] Регистрирующий модуль 150F может дополнительно содержать инструкции для регистрации конечных пользователей. Например, компьютер 150 административного узла может принимать информацию о новом пользователе (например, имя, адрес, номер счета, номер телефона, корпоративный профиль субъектов предпринимательства и т. д.) с узла, сохранять информацию пользователя, а затем присваивать уникальный рабочий идентификатор пользователю. В некоторых вариантах осуществления рабочий идентификатор может содержать поднабор символов, которые указывают на связанный узел или идентификатор адреса узла.
[0060] Модуль 150J подтверждения действительности может содержать код, который предписывает процессору 150A подтвердить действительность нового пакета данных, чтобы пакет данных мог быть введен в записи. Например, модуль 150J подтверждения действительности может содержать логику, которая предписывает процессору 150A сверить то, что пакет данных содержит идентификатор адреса и идентификатор класса, которые оба действительны и связаны с одним и тем же компьютером узла, и проверить то, что пределы, связанные с поданным идентификатором класса, не были превышены и не превышаются в настоящее время новым пакетом данных.
[0061] Модуль 150J подтверждения действительности может дополнительно содержать логику, которая предписывает процессору 150A проверить то, что все субъекты, связанные с пакетом данных, (например, один или более узлов и один или более пользователей) зарегистрированы в сети и были проверены на соответствие. Компьютер 150 административного узла может также оценивать риск транзакции, например, путем оценивания скорости оборота транзакций одной или более фигурирующих сторон или путем определения того, имеет ли подающий узел какие–либо выданные предупреждения.
[0062] Модуль 150J подтверждения действительности может дополнительно содержать код, который предписывает процессору 150A проверить подлинность одной или более цифровых подписей. Например, модуль 150J подтверждения действительности может содержать логику, которая предписывает процессору 150A использовать открытый ключ компьютера узла для проверки подлинности цифровой подписи, связанной с тем компьютером узла.
[0063] Модуль 150K постановки подписи может содержать код, который предписывает процессору 150A сгенерировать цифровые подписи. Например, модуль 150K постановки подписи может содержать логику, которая предписывает процессору 150A сгенерировать цифровую подпись для пакета данных и/или умного контракта с использованием закрытого ключа административного узла. Цифровая подпись компьютера административного узла может служить для указания подлинности пакета данных и может обеспечивать гарантию того, что перевод является действительным и достоверным.
[0064] Модуль 150L обновления записей может содержать код, который предписывает процессору 150A обеспечить поддержку набора записей и обновить его. Например, модуль 150L обновления записей может содержать логику, которая предписывает процессору 150A записать информацию о новом взаимодействии (например, как указано в новом пакете данных). В некоторых вариантах осуществления модуль 150L обновления записей может содержать инструкции для включения нового пакета данных в следующий блок цепочки блоков.
[0065] Модуль 150L обновления записей может дополнительно содержать инструкции для информирования сторон, связанных с взаимодействиями, описанными в пакете данных, в случае создания нового пакета данных. Например, в случае подтверждения действительности и подписания новой платежной транзакции компьютер 150 административного узла может отправлять информацию о новой платежной транзакции на принимающий узел (например, компьютер 145 второго узла) и/или компьютеры пользователей.
[0066] В некоторых вариантах осуществления участвующие компьютеры узлов могут не поддерживать отдельный набор записей и могут вместо этого относиться к центрально поддерживаемым записям компьютера 150 административного узла. Например, каждый из компьютера 165 первого узла и компьютера 145 второго узла может быть легким узлом. В таком случае компьютер 150 административного узла может обеспечивать этим узлам доступ в реальном времени к центральным записям, или компьютер 150 административного узла может обеспечивать регулярные обновления записей (например, обновления могут отправляться каждые 10 секунд, 1 минуту, 5 минут и т. д.). В результате другие узлы могут быть осведомлены о новых взаимодействиях сразу же или вскоре после записывания взаимодействий.
[0067] В некоторых вариантах осуществления участвующие компьютеры узлов не могут видеть всю информацию записи, и они могут вместо этого иметь отфильтрованное или разрешенное представление записей. Например, компьютер 165 первого узла, компьютер 145 второго узла, компьютер 110 первого пользователя и/или компьютер 130 второго пользователя могут просматривать только записи взаимодействия, с которыми они связаны (например, транзакции, в которых они участвуют), в случае доступа к записям на компьютере 150 административного узла. Например, компьютер 145 второго узла может просматривать все заголовки блоков, но может просматривать только основные части блоков и записи взаимодействия, с которыми он связан.
[0068] В некоторых вариантах осуществления может существовать множество компьютеров 150 административных узлов, причем каждый принимает и обрабатывает разные пакеты данных с информацией о разных взаимодействиях, а затем обновляет свои собственные записи. Эти разные компьютеры административных узлов могут осуществлять связь друг с другом для совместного использования новых записей и для подтверждения того, что их записи включают одинаковые взаимодействия.
[0069] Модуль 150M расчетов может содержать код, который предписывает процессору 150A рассчитать обеспечиваемую величину между счетами. Например, модуль 150M расчетов может содержать логику, которая предписывает процессору 150A списать с расчетного счета первого узла в центральном банке сумму, указанную в записи взаимодействия, и начислить на расчетный счет второго узла ту же сумму (или ту сумму, но с вычетом начисленных комиссий).
[0070] В некоторых вариантах осуществления расчет может происходить за множество этапов (например, в результате перевода величины с использованием множества атомарных транзакций). Например, первый расчет может включать списывание с расчетного счета первого узла первой суммы и начисление на расчетный счет административного узла той же первой суммы. Затем второй расчет может включать списывание с (того же или другого) расчетного счета административного узла второй суммы, а затем начисление на расчетный счет второго узла той же второй суммы. В результате величина переводится с первого узла на второй узел через административный узел.
[0071] Модуль 150N умного контракта может содержать код, который предписывает процессору 150A принять, подтвердить действительность, сохранить и/или исполнить умный контракт. В некоторых вариантах осуществления умный контракт может быть либо добавлен в запись цепочки блоков, либо сохранен в базе данных умных контрактов. Модуль 150N умного контракта может содержать логику, которая предписывает процессору 150A получить цифровую подпись для каждой ответственной стороны, указанной умным контрактом (например, каждой стороны, обеспечивающей платеж), и проверить каждую цифровую подпись с использованием соответствующих открытых ключей. В некоторых вариантах осуществления компьютер 150 административного узла может резервировать денежные средства на расчетных счетах (например, расчетном счете узла в центральном банке) на основе платежей в умном контракте. Дополнительно модуль 150N умного контракта может содержать логику, которая предписывает процессору 150A передать сообщения каждой стороне, связанной с умным контрактом, когда умный контракт приводится в исполнение.
[0072] Модуль 150N умного контракта может дополнительно содержать код, который предписывает процессору 150A определить, имело ли место событие, указанное в умном контракте. Это может включать прием сообщения с уведомлением о том, что событие имело место (например, от действующего лица, которое вызвало событие), и проверку прикрепленной цифровой подписи. Дополнительно модуль 150N умного контракта может содержать логику, которая предписывает процессору 150A инициировать ответ на основе события согласно умному контракту. Это может включать отправку инструкции на компьютер узла для генерирования пакета данных для обновления базы данных записей.
[0073] Возвращаясь снова к фиг. 1, компьютер 145 второго узла может, как упомянуто выше, участвовать в сети записывания за счет создания и подачи новых пакетов данных с новыми данными о взаимодействии для того, чтобы обновить записи со стороны одного или более пользователей. Дополнительно компьютер 145 второго узла может создавать и подавать умный контракт в сеть записывания, так что другие узлы могут доверять тому, что будущие пакеты данных будут созданы.
[0074] Пример компьютера 145 второго узла согласно некоторым вариантам осуществления настоящего изобретения показан на фиг. 3. Компьютер 145 второй узла содержит процессор 145A, сетевой интерфейс 145B, базу 145C данных идентификаторов, базу 145E данных ключей и машиночитаемый носитель 145F.
[0075] База 145C данных идентификаторов может хранить информацию об идентификаторах компьютера второго узла, таких как идентификатор адреса и один или более идентификаторов классов. База 145C данных идентификаторов может также содержать информацию об одном или более пользователях, например, рабочие идентификаторы, связанный тип класса и/или счет пользователя.
[0076] База 145E данных ключей может хранить ключи шифрования. Например, база 145E данных ключей может содержать закрытый ключ, связанный с компьютером 145 второго узла, а также открытый ключ, связанный с компьютером 150 административного узла. В некоторых вариантах осуществления база 145E данных ключей может принимать вид аппаратного модуля безопасности (HSM).
[0077] Машиночитаемый носитель 145F может содержать модуль 145G регистрации, модуль 145K регистрации пользователей, модуль 145L пакетов данных, модуль 145M поиска узлов, модуль 145N анализа величин, модуль 145P постановки подписи, модуль 145Q подачи записей, модуль 145R умного контракта, модуль 145T подтверждения действительности и любой другой подходящий программный модуль. Машиночитаемый носитель 145F может также содержать код, исполняемый процессором 145A для реализации способа, включающего генерирование умного контракта, указывающего, что упорядоченный набор взаимодействий будет иметь место в ответ на упорядоченный набор событий; в ответ на первое событие из упорядоченного набора событий генерирование первого пакета данных для первого взаимодействия из упорядоченного набора взаимодействий, причем умный контракт указывает, что первое взаимодействие будет иметь место в ответ на первое событие; передачу первого пакета данных на компьютер административного узла, причем компьютер административного узла генерирует первый блок для цепочки блоков, причем первый блок содержит первый пакет данных; в ответ на второе событие из упорядоченного набора событий генерирование второго пакета данных для второго взаимодействия из упорядоченного набора взаимодействий, причем умный контракт указывает, что второе взаимодействие будет иметь место в ответ на второе событие; и передачу второго пакета данных на компьютер административного узла, причем компьютер административного узла создает второй блок для цепочки блоков, причем второй блок содержит второй пакет данных.
[0078] Модуль 145G регистрации может содержать код, который предписывает процессору 145A осуществить регистрацию на компьютере 150 административного узла для участия в сети записывания. Например, модуль 145G регистрации может содержать логику, которая предписывает процессору 145A отправить сообщение с запросом регистрации, содержащее информацию о втором узле, такую как адрес, идентификатор банка, расчетный счет и/или любая другая подходящая информация. Модуль 145G регистрации также содержит инструкции для приема и сохранения идентификатора адреса, открытого ключа административного узла, закрытого ключа второго узла, одного или более идентификаторов классов и любой другой подходящей регистрационной информации с компьютера 150 административного узла.
[0079] Модуль 145K регистрации пользователей может содержать код, который предписывает процессору 145A поспособствовать регистрации конечных пользователей. Например, модуль 145K регистрации пользователей может содержать логику, которая предписывает процессору 145A предоставить информацию пользователя (например, имя, адрес проживания и/или ведения предпринимательской деятельности, дату рождения, номер телефона, номер счета, имя пользователя учетной записи, пароль учетной записи, адрес электронной почты, выданный правительством идентификационный номер, такой как номер водительского удостоверения, номер паспорта или номер социального страхования, и т. д.) на компьютер 150 административного узла. Компьютер 145 второго узла может также принимать и сохранять рабочий идентификатор для компьютера 130 второго пользователя с компьютера 150 административного узла и предоставлять рабочий идентификатор на компьютер 130 второго пользователя.
[0080] Модуль 145L пакетов данных может содержать код, который предписывает процессору 145A сгенерировать новый пакет данных. Например, модуль 145L пакетов данных может содержать логику, которая предписывает процессору 145A принять инструкцию с компьютера 130 второго пользователя и/или компьютера 150 административного узла и создать пакет данных для взаимодействия на основе инструкции. Пакет данных может содержать любую подходящую информацию для ввода новой записи в реестр. В примере платежных транзакций пакет данных может содержать информацию об отправляющем счете, принимающем счете, типе класса отправляемой валюты, типе класса принимаемой валюты, курсе обмена валют и/или любую другую подходящую информацию.
[0081] Модуль 145M поиска узлов может содержать код, который предписывает процессору 145A идентифицировать узел на основе пользователя. Например, модуль 145M поиска узлов может содержать логику, которая предписывает процессору 145A идентифицировать компьютер 123 третьего узла на основе компьютера 133 третьего пользователя, указываемого в виде получателя транзакции. Например, идентификатор адреса третьего узла может быть идентифицирован на основе поднабора символов, включенных в рабочий идентификатор третьего пользователя, или идентификатор адреса может быть связан с рабочим идентификатором третьего пользователя в базе данных (например, базе данных, доступной на компьютере 150 административного узла). Модуль 145M поиска узлов может также содержать инструкции для добавления идентифицированного идентификатора адреса в новый пакет данных.
[0082] Модуль 145N анализа величин может содержать код, который предписывает процессору 145A определить величину для взаимодействия. Например, модуль 145N анализа величин может содержать логику, которая предписывает процессору 145A определить первую сумму в первой валюте, которая будет начислена второму пользователю для того, чтобы доставить вторую сумму во второй валюте третьему пользователю. Это определение может включать поиск текущего курса обмена иностранных валют и вычисление комиссий за перевод (например, оба из которых могут быть обеспечены компьютером 150 административного узла). Сумма, списанная в первой валюте, информация о сумме, начисленной во второй валюте, курс обмена валют и/или начисленные комиссии могут быть включены в новый пакет данных.
[0083] Модуль 145P постановки подписи может содержать код, который предписывает процессору 145A создать цифровую подпись. Например, модуль 145P постановки подписи может содержать логику, которая предписывает процессору 145A применить закрытый ключ и математический алгоритм к пакету данных, таким образом, цифровая подпись генерируется для пакета данных. Цифровая подпись компьютера второго узла может служить доказательством того, что компьютер 145 второго узла действительно создал и подал пакет данных.
[0084] Модуль 145Q подачи записей может содержать код, который предписывает процессору 145A подать новый пакет данных с новыми взаимодействиями для записывания. Например, модуль 145Q подачи записей может содержать логику, которая предписывает процессору 145A отправить новый пакет данных, связанную цифровую подпись и/или любую другую подходящую информацию на компьютер 150 административного узла.
[0085] Модуль 145R умного контракта может содержать код, который предписывает процессору 145A сгенерировать умный контракт. Умный контракт может содержать информацию об упорядоченной последовательности событий и упорядоченной последовательности ответов (например, взаимодействий). Модуль 145R умного контракта может также содержать логику, которая предписывает процессору 145A осуществить связь с другими сторонами (например, компьютером 165 первого узла), связанными с умным контрактом, для достижения консенсуса относительно подробностей умного контракта, для снабжения умного контракта цифровой подписью и для передачи умного контракта центральному администратору. В некоторых вариантах осуществления модуль 145R умного контракта может содержать код, который предписывает процессору 145A выполнить задачи, связанные с новым умным контрактом, такие как резервирование денежных средств на счете на основе платежей, определенных в умном контракте.
[0086] В дополнение к созданию и отправке пакетов данных (например, для отправки платежа на компьютер третьего узла) компьютер 145 второго узла может также быть выполнен с возможностью проверки подлинности пакетов данных, подаваемых другими узлами. Например, компьютер 165 первого узла может подавать пакет данных на компьютер 150 административного узла (например, для отправки платежа на компьютер второго узла), и компьютер 145 второго узла может проверять то, что пакет данных является подлинным.
[0087] Например, машиночитаемый носитель может содержать модуль 145T подтверждения действительности, который может содержать код, который предписывает процессору 145A подтвердить действительность нового пакета данных. Компьютер 145 второго узла может подтверждать действительность того, что новый пакет данных является подлинным, одним или более путями. Например, компьютер 145 второго узла может проверять то, что обе из цифровой подписи компьютера отправляющего узла и подписи компьютера административного узла для пакета данных являются подлинными (например, с использованием своих соответствующих открытых ключей). В некоторых вариантах осуществления компьютер 145 второго узла может проверять подлинность взаимодействия и/или пакета данных путем осуществления доступа к центральной записи (например, записи цепочки блоков) и подтверждения того, что взаимодействие и/или пакет данных были добавлены в записи. Компьютер 145 второго узла может также информировать компьютер 130 второго пользователя о новых данных о взаимодействии в пакете данных.
[0088] В некоторых вариантах осуществления компьютер 145 второго узла может предоставлять дополнительные услуги пользователю помимо осуществления связи с сетью записывания. Например, компьютер 145 второго узла может представлять собой компьютер, связанный с финансовой организацией, больницей, правоохранительным органом, образовательным учреждением, поставщиком услуг мобильного телефона или любым другим подходящим поставщиком услуг. Соответственно в некоторых вариантах осуществления компьютер 145 второго узла может поддерживать учетную запись со стороны пользователя. Учетная запись может хранить идентификационную информацию, медицинские записи, записи об образовании, финансовую информацию или любые другие подходящие подробности в зависимости от типа поставщика услуг.
[0089] В вариантах осуществления, где компьютер 145 второго узла связан с финансовой организацией, компьютер 145 второго узла может хранить величину со стороны пользователя. Компьютер 145 второго узла может также быть выполнен с возможностью предоставления величины (например, предоставления платежа) и/или приема величины (например, приема платежа) со стороны пользователя. Примером финансовой организации является эмитент, который может, как правило, относиться к субъекту предпринимательства (например, банку), который открывает и поддерживает счет (например, банковский счет) для пользователя. Еще одним примером финансовой организации является эквайер, который может, как правило, представлять собой субъект предпринимательства (например, коммерческий банк), который имеет предпринимательские отношения с конкретным поставщиком ресурсов или другим субъектом. Некоторые субъекты могут выполнять функции как эмитента, так и эквайера. Некоторые варианты осуществления могут охватывать такие единые субъекты эмитентов–эквайеров.
[0090] В некоторых вариантах осуществления, когда компьютер 165 первого узла (или другой узел) отправляет пакет данных для платежа на компьютер 145 второго узла, компьютер 145 второго узла может иметь высокий уровень доверия к тому, что обеспеченная величина будет доставлена. Например, компьютер 145 второго узла может быть уверен в величине вследствие двух действительных цифровых подписей вследствие того, что данные о взаимодействии включены в запись цепочки блоков, вследствие того, что пакет данных включает в себя несколько связанных идентификаторов (например, идентификатор класса и/или идентификатор адреса), или вследствие любого другого подходящего доказательства. В результате компьютер 145 второго узла может делать величину, указанную в принятом пакете данных, немедленно доступной для использования (например, доступной для снятия) на счете второго пользователя, даже если расчет по величине еще не был произведен, и она не была принята. Дополнительно второй узел может иметь высокий уровень доверия к административному узлу, поскольку административный узел может быть крупным, доверенным центральным субъектом.
[0091] В некоторых вариантах осуществления компьютер 145 второго узла может характеризовать множество связанных компьютеров. Например, функциональные возможности, описанные выше для участия в сети, и функциональные возможности, связанные с услугами банкинга, могут быть разделены среди нескольких совместных компьютеров.
[0092] Возвращаясь снова к фиг. 1, компьютеры других узлов (например, компьютер 165 первого узла, компьютер 123 третьего узла, компьютер 124 четвертого узла, компьютер 125 пятого узла, компьютер 126 шестого узла, компьютер 127 седьмого узла, компьютер 128 восьмого узла, компьютер 129 девятого узла) могут, как упомянуто выше, участвовать в сети записывания. Например, компьютер каждого узла может быть зарегистрирован в сети записывания, компьютер каждого узла может быть связан с уникальным идентификатором адреса, и компьютер каждого узла может быть связан с разным закрытым ключом. Подобным образом, каждый пользователь (для компьютера каждого пользователя) может быть зарегистрирован и связан с уникальным рабочим идентификатором.
[0093] В некоторых вариантах осуществления один или более компьютеров других узлов могут иметь некоторые или все функциональные возможности, описанные выше в отношении компьютера 145 второго узла. Например, один или более компьютеров узлов могут быть приспособлены для приема информации о новом взаимодействии (например, посредством пакета данных) со стороны связанного компьютера пользователя. Дополнительно один или более компьютеров узлов могут подавать пакеты данных с новыми данными о взаимодействии в сеть записывания со стороны связанного компьютера пользователя. Дополнительно компьютер каждого узла может снабжать цифровой подписью сообщения с использованием закрытого ключа.
[0094] Подобно компьютеру 145 второго узла, каждый из компьютеров других узлов может быть связан с разным банком или другим подходящим поставщиком услуг. В результате компьютер каждого узла может размещать счет пользователя и может сохранять и принимать величину со стороны пользователя, а также отправлять величину со стороны пользователя.
[0095] Пользователь может представлять собой физическое лицо, предприятие, администратора обновления записи организации или любой другой подходящий тип пользователя. Например, первый пользователь может представлять собой физическое лицо, и второй пользователь может представлять собой поставщика ресурсов (например, продавца), который участвует в транзакциях и может продавать товары или услуги или обеспечивать доступ к товарам или услугам. Дополнительно все из пользователей с третьего по девятый могут представлять собой разных поставщиков услуг, которые способствуют аспектам международного отправления, таких как служба грузовых перевозок, таможенный орган, разработчик договора страхования, портовая служба, служба хранения или любой другой подходящий субъект. Такие пользователи могут совершать задачи, фигурирующие в отправлении товаров.
[0096] Пример умного контракта 400 показан на фиг. 4. Как показано, умный контракт 400 может содержать идентификатор 401 умного контракта, такой как буквенно–численный код или т. п. Умный контракт 400 может содержать информацию о последовательности предопределенных событий 403 запуска и последовательности предопределенных ответов 404. В некоторых вариантах осуществления каждый ответ может быть объединен в пару с конкретным событием запуска, так что ответ происходит после того события запуска. Дополнительно умный контракт 400 может задавать порядок 402 для событий 403 запуска и ответов 404. Если определенное событие запуска происходит вне порядка, соответствующий ответ может не иметь места, и/или любые остальные ответы могут быть отменены.
[0097] Варианты осуществления настоящего изобретения позволяют применение умных контрактов с упорядоченными событиями к любому подходящему процессу и/или сценарию ведения записей. В этом примере события 403 запуска содержат последовательность активностей, каждая из которых выполняется разным действующим лицом (например, разным пользователем или компьютером пользователя). Также в этом примере ответы 404 предусматривают генерирование последовательности пакетов данных. Пакет данных может содержать информацию для ввода в запись (например, запись цепочки блоков).
[0098] Как описано более подробно ниже, запускающее событие может предусматривать прием уведомления о том, что активность была совершена. Например, предопределенное действующее лицо может отправлять сообщение с уведомлением о том, что активность была совершена, и сообщение с уведомлением может рассматриваться как действительное (и тем самым запускать ответ), если оно сопровождается цифровой подписью, связанной с действующим лицом (например, компьютером действующего лица).
[0099] Как упомянуто выше, в некоторых вариантах осуществления система записывания может использовать цепочку блоков. Каждый блок в цепочке блоков может содержать информацию об одном или более взаимодействиях (например, из одного или более пакетов данных). Реестр в форме цепочки блоков не может быть изменен незаметно. Это гарантирует, что никакое искажение информации, относящейся к транзакциям, такое как попытка переписать величину транзакции ненадлежащему субъекту, не пройдет незамеченным. Вместе заголовок блока и основная часть блока, которая содержит информацию транзакции (например, и любую другую подходящую информацию), могут формировать блок.
[0100] Варианты осуществления настоящего изобретения улучшают процесс создания и организации цепочки блоков путем ввода упорядоченного умного контракта. Умный контракт может эффективно действовать как привратник для новых элементов цепочки блоков, гарантируя, что ненадлежащие записи (например, вне порядка) не вводятся в цепочку блоков. Эта предупредительная мера полезна, так как после ввода данных в цепочку блоков они, как правило, не могут быть удалены.
[0101] Способ 500 согласно вариантам осуществления настоящего изобретения может быть описан со ссылкой на фиг. 5A–5G. Также приведены ссылки на некоторые элементы, представленные на других фигурах. Этапы, показанные в способе 500, могут быть выполнены последовательно или в любом подходящем порядке в вариантах осуществления настоящего изобретения. В некоторых вариантах осуществления один или более этапов могут быть необязательными.
[0102] В различных сообщениях, описанных ниже, может использоваться любая подходящая форма связи. В некоторых вариантах осуществления запрос или ответ может иметь формат электронного сообщения, такой как сообщение электронной почты, сообщение службы коротких сообщений (SMS), сообщение службы мультимедийных сообщений (MMS), сообщение с запросом протокола передачи гипертекста (HTTP), пакет протокола управления передачей (TCP), подача из веб–формы. Запрос или ответ может быть направлен в любое подходящее местоположение, такое как адрес электронной почты, телефонный номер, адрес Интернет–протокола (IP) или унифицированный указатель ресурса (URL). В некоторых вариантах осуществления запрос или ответ может содержать сочетание разных типов сообщений, такое как сообщения как электронной почты, так и службы коротких сообщений.
[0103] Первый пользователь (например, покупатель) и второй пользователь (например, лицо, осуществляющее поставку) могут соглашаться на взаимодействие. Взаимодействие может включать предоставление первым пользователем платежа (например, $1500000) второму пользователю в обмен на товары. Первый пользователь и второй пользователь могут быть расположены в разных местоположениях (например, разных странах), и, таким образом, второй пользователь может организовать доставку товаров первому пользователю.
[0104] В процессе доставки товаров может фигурировать ряд поставщиков услуг, таких как служба доставки в пределах страны, международная служба отправления, служба доставки за пределами страны, служба подготовки договора страхования, службы таможенного досмотра в пределах страны и за пределами страны и т. д. Каждый из этих поставщиков услуг может выполнять свои услуги в обмен на платеж от второго пользователя, и, таким образом, ряд дополнительных взаимодействий (например, между вторым пользователем и каждым поставщиком услуг) может быть необходим для совершения первоначального взаимодействия между вторым пользователем и первым пользователем.
[0105] В некоторых вариантах осуществления второй пользователь (например, посредством компьютера 130 второго пользователя) может точно определять, какие поставщики услуг будут использованы для доставки товаров, а также порядок, в котором они будут выполнять свои услуги. Второй пользователь может также достигать соглашения с каждым поставщиком услуг относительно сумм платежей и типов валюты, которые будут предоставлены в обмен на их услуги (например, ¥35000 для первого поставщика услуг, ¥12000 для второго поставщика услуг, ¥57000 для второго поставщика услуг, $3400 для четвертого поставщика услуг, $6850 для пятого поставщика услуг и т. д.).
[0106] Второй пользователь может затем (например, посредством компьютера 130 второго пользователя) предоставлять некоторую или всю информацию о платеже и отправлении на компьютер 145 второго узла, так что компьютер 145 второго узла может спланировать процессы произведения платежей со стороны второго пользователя. Это может включать обеспечение компьютера 145 второго узла рабочими идентификаторами для каждого пользователя (например, первого пользователя и каждого поставщика услуг).
[0107] Компьютер 145 второго узла может затем определять компьютер узла (например, идентификатор адреса компьютера узла), связанный с каждым рабочим идентификатором. Например, компьютер 165 первого узла может быть связан с рабочим идентификатором первого пользователя, компьютер 123 третьего узла может быть связан с рабочим идентификатором одного поставщика услуг, компьютер 124 четвертого узла может быть связан с рабочим идентификатором еще одного поставщика услуг и т. д. В некоторых вариантах осуществления компьютер 145 второго узла может осуществлять связь с компьютером 150 административного узла, чтобы узнать о том, какие узлы связаны с каждым рабочим идентификатором. В некоторых вариантах осуществления компьютер 145 второго узла может использовать локально сохраненную таблицу поиска для идентификации узла, связанного с каждым рабочим идентификатором. В других вариантах осуществления компьютер 145 второго узла может выполнять синтаксический анализ каждого рабочего идентификатора для определения идентификатора адреса компьютера каждого узла.
[0108] Получив информацию о каждой транзакции (например, каждом поставщике платежа, каждом получателе платежа, каждой сумме платежа), каждой услуге отправления, которая должна быть выполнена в обмен на каждый платеж, и компьютерах узлов, с которыми следует осуществить связь, компьютер 145 второго узла может приступить к утверждению умного контракта, который регулирует весь процесс.
[0109] На этапе S101 компьютер 145 второго узла может генерировать умный контракт. Умный контракт может задавать упорядоченный набор событий (например, услуг, относящихся к отправлению), которые предположительно должны иметь место. Умный контракт может также содержать информацию, задающую упорядоченный набор взаимодействий, которые должны иметь место в ответ на упорядоченный набор событий. В этом случае каждое взаимодействие может представлять собой платежную транзакцию между отправляющим счетом и принимающим счетом. Каждая разная транзакция может указывать разный принимающий счет. Умный контракт может задавать то, что каждое взаимодействие должно запускаться только в том случае, если соответствующее ему событие происходит в правильном порядке.
[0110] Несмотря на то что умный контракт можно идентифицировать на основе упорядоченной последовательности событий и/или упорядоченной последовательности взаимодействий, в некоторых вариантах осуществления компьютер 145 второго узла может присваивать идентификатор умного контракта (например, буквенно–численную величину) умному контракту. В других вариантах осуществления компьютер 150 административного узла может присваивать идентификатор умного контракта умному контракту в более поздний момент времени.
[0111] Дополнительно компьютер 145 второго узла может осуществлять резервирование в отношении счета второго пользователя. Например, может быть вычислена общая сумма, которую должен заплатить второй пользователь. Это может быть осуществлено путем суммирования сумм всех платежей, где второй пользователь является поставщиком платежа. Компьютер 145 второго узла может проверять то, что второй пользователь имеет достаточно денежных средств, доступных для совершения всех этих платежей, и может дополнительно резервировать денежные средства, необходимые для каждого платежа, так что денежные средства доступны, когда совершаются платежи.
[0112] На этапе S102 компьютер 145 второго узла может генерировать цифровую подпись для умного контракта. Цифровую подпись могут создавать с использованием закрытого ключа, связанного с компьютером 145 второго узла. В некоторых вариантах осуществления цифровая подпись может служить в качестве указания того, что компьютер 145 второго узла одобряет умный контракт, и/или того, что компьютер 145 второго узла зарезервировал денежные средства, необходимые для каждого платежа, который обеспечивает второй пользователь.
[0113] На этапе S103 компьютер 145 второго узла может передавать умный контракт и/или цифровую подпись на компьютер 150 административного узла. В результате компьютер 150 административного узла может принимать умный контракт, который указывает, что упорядоченный набор взаимодействий будет иметь место в ответ на упорядоченный набор событий.
[0114] На этапе S104 компьютер 150 административного узла может передавать копию умного контракта на компьютер 165 первого узла для получения одобрения умного контракта от компьютера первого узла. Например, компьютер 150 административного узла может анализировать умный контракт для определения того, что субъекты указаны как ответственные за отправку одного или более платежей. Компьютер 150 административного узла может затем требовать подтверждение от каждого отправителя платежа. В этом случае отправители платежей включают компьютер 145 второго узла (со стороны второго пользователя) и компьютер 165 первого узла (со стороны первого пользователя). Поскольку компьютер 145 второго узла мог уже предоставить цифровую подпись, компьютер 150 административного узла может требовать только дополнительную цифровую подпись с компьютера 165 первого узла.
[0115] Дополнительно компьютер 150 административного узла может проверять цифровую подпись компьютера второго узла, например, с использованием открытого ключа, связанного с компьютером 145 второго узла. Дополнительно компьютер 150 административного узла может в цифровой форме сохранять умный контракт и/или цифровую подпись компьютера первого узла (например, в базе данных умных контрактов).
[0116] На этапе S105 компьютер 165 первого узла может определять, соглашаться ли с умным контрактом. Например, компьютер 165 первого узла может информировать первого пользователя (например, посредством компьютера 110 первого пользователя) о платежах, которые будут сняты со счета первого пользователя, о подробностях об отправлении (например, товарах, которые должны быть предоставлены, и временной шкале доставки) и о любых других подходящих подробностях, указанных умным контрактом.
[0117] Если первый пользователь одобряет подробности умного контракта, компьютер 165 первого узла может генерировать цифровую подпись для умного контракта, например, с использованием закрытого ключа, связанного с компьютером 165 первого узла. Дополнительно компьютер 165 первого узла может резервировать на счете первого пользователя сумму платежа для второго пользователя за товары (и суммы любых других платежей, за которые первый пользователь ответственен).
[0118] Компьютер 165 первого узла может затем передавать цифровую подпись на компьютер 150 административного узла вместе с сообщением, указывающим, что компьютер 165 первого узла одобряет умный контракт.
[0119] Компьютер 150 административного узла может проверять цифровую подпись компьютера первого узла, например, с использованием открытого ключа, связанного с компьютером 165 первого узла. Дополнительно компьютер 150 административного узла может в цифровой форме сохранять цифровую подпись компьютера первого узла (например, вместе с умным контрактом и цифровой подписью компьютера второго узла). Получив одобрение от обоих отправителей платежей, указанных умным контрактом, и/или подтвердив, что суммы платежей доступны и зарезервированы, компьютер 150 административного узла может рассматривать умный контракт как таковой, действительность которого подтверждена, и который находится в действии.
[0120] На этапе S106 компьютер 150 административного узла может передавать уведомления на компьютер каждого узла о недавно созданном умном контракте. Например, компьютер 150 административного узла может передавать сообщение на компьютер 123 третьего узла, информируя компьютер 123 третьего узла о том, что платеж (на конкретную сумму) будет обеспечен вторым пользователем третьему пользователю, если третий пользователь выполнит конкретную задачу. Третий пользователь может представлять собой службу доставки в пределах страны, и задачей может быть следующее: забрать товары со склада второго пользователя и доставить товары в порт отправления. Компьютер 123 третьего узла может, в свою очередь, предоставлять эту информацию на компьютер 133 третьего пользователя. Подобные сообщения могут быть отправлены на компьютер каждого другого узла и компьютер пользователя. В результате каждый пользователь может быть информирован о соответствующей ему задаче, относящейся к отправлению, и может быть уверен в том, что он получит платеж, если он совершит свою задачу.
[0121] В некоторых вариантах осуществления каждый из компьютера узла и компьютера пользователя информируются только о взаимодействиях и/или событиях, с которыми они связаны. Например, компьютер 133 третьего пользователя может не принимать никакую информацию о платежах, принимаемых компьютером 134 четвертого пользователя, или задачах отправления, выполняемых им же. Дополнительно в некоторых вариантах осуществления компьютеры узлов могут быть выполнены с возможностью осуществления связи с компьютером 150 административного узла для просмотра (своей части) умных контрактов, которые находятся в исполнении.
[0122] На этапе S107 второй пользователь (например, посредством компьютера 130 второго пользователя) может инициировать процесс в ответ на утверждение умного контракта. Например, второй пользователь может упаковывать товары и предоставлять товары третьему пользователю (например, служба доставки в пределах страны). Это может инициировать процесс доставки и приводить упорядоченную последовательность событий в исполнение.
[0123] На этапе S108 третий пользователь может приводить к тому, что происходит первое событие. Например, третий пользователь может выполнять первые действие или задачу, такие как транспортировка товаров со склада второго пользователя в порт отправления.
[0124] После совершения первого события третий пользователь может (например, посредством компьютера 133 третьего пользователя) предоставлять отчет о том, что задача выполнена. Компьютер 133 третьего пользователя может передавать сообщение о совершении события на компьютер 123 третьего узла.
[0125] На этапе S109 компьютер 123 третьего узла может генерировать сообщение с уведомлением о событии, указывающее, что имело место первое событие (например, задача совершена). Сообщение может содержать информацию, описывающую событие и то, когда оно было совершено, а также любое подходящее доказательство того, что событие совершено (например, квитанция, фотография и т. д.). Сообщение может дополнительно содержать идентификатор умного контракта.
[0126] В некоторых вариантах осуществления сообщение может также содержать информацию о первом взаимодействии, которое должно иметь место в ответ на первое событие, как указано умным контрактом. Таким образом, уведомление о совершении события может также или вместо этого служить в качестве сообщения с запросом платежа вследствие предоставления информации о сумме платежа, поставщике платежа (например, втором пользователе) и получателе платежа (например, третьем пользователе).
[0127] Дополнительно компьютер 123 третьего узла может генерировать цифровую подпись для сообщения с уведомлением о событии, например, с использованием закрытого ключа, связанного с компьютером 123 третьего узла. Дополнительно компьютер 123 третьего узла может передавать сообщение с уведомлением о событии и/или цифровую подпись на компьютер 150 административного узла.
[0128] В некоторых вариантах осуществления для того, чтобы гарантировать, что сообщение о совершении события (и сообщение с уведомлением о событии) отправляется только в том случае, если имело место первое событие, сообщение о совершении события может быть отправлено в ответ на особый сигнал запуска. Например, сообщение о совершении события может быть отправлено в том случае, если третий пользователь (например, обслуживающий персонал или грузовик доставки) прибывает на место доставки (например, порт отправления). Местоположение третьего пользователя может быть отслежено и определено через мобильное устройство, транспортное средство или другое устройство, оснащенное технологией отслеживания местоположения (например, GPS). Мобильное устройство третьего пользователя может находиться в связи с компьютером 133 третьего пользователя, компьютером 123 третьего узла и/или компьютером 150 административного узла для того, чтобы передавать данные о текущем местоположении. В результате информация о совершении события не может быть передана до прибытия третьего пользователя на место доставки.
[0129] В дополнительных вариантах осуществления вместо компьютера 133 третьего пользователя и компьютера 123 третьего узла компьютер 134 четвертого пользователя и/или компьютер 124 четвертого узла могут предоставлять отчет о том, что первое событие совершено. Таким образом, о событии предоставляют отчет как о совершенном только в том случае, если четвертый пользователь может проверить, что третий пользователь совершил свою задачу (например, третий пользователь предоставил товары четвертому пользователю).
[0130] Компьютер 150 административного узла может принимать сообщение с уведомлением о событии, а затем может идентифицировать умный контракт (например, из числа других умных контрактов, сохраненных в базе данных умных контрактов), связанный с сообщением. Например, сохраненный умный контракт может быть идентифицирован на основе идентификатора умного контракта, включенного в сообщение с уведомлением, или на основе события и/или взаимодействия, описанных в сообщении с уведомлением.
[0131] На этапе S110 компьютер 150 административного узла проверяет сообщение с уведомлением о событии на основе умного контракта. Например, компьютер 150 административного узла может проверять то, что событие, о котором предоставляют отчет в сообщении с уведомлением о событии, соответствует следующему предполагаемому событию согласно умному контракту. В случае первого события компьютер 150 административного узла может проверять то, что событие, о котором предоставляют отчет, должно происходить первым (например, перед всеми другими событиями) в рамках упорядоченного набора событий умного контракта.
[0132] Компьютер 150 административного узла может также проверять то, что о совершении события предоставляет отчет компьютер 123 третьего узла, путем проверки цифровой подписи компьютера третьего узла (например, с использованием открытого ключа, связанного с компьютером третьего узла).
[0133] В некоторых вариантах осуществления компьютер 150 административного узла может не рассматривать уведомление о совершении события, отправленное компьютером 123 третьего узла, как действительное до тех пор, пока компьютер 134 четвертого пользователя и/или компьютер 124 четвертого узла не подтвердят, что они приняли товары от третьего пользователя, и/или не подтвердят, что событие было совершено.
[0134] После того как компьютер 150 административного узла определяет, что имело место первое событие, компьютер 150 административного узла может помечать первое событие как совершенное. Например, сообщение с уведомлением или другое указание совершения может быть сохранено в базе данных умных контрактов вместе с умным контрактом.
[0135] Дополнительно компьютер 150 административного узла может определять первое взаимодействие, которое должно иметь место в ответ на совершение первого события. Это может включать анализ умного контракта для идентификации взаимодействия, связанного с событием, и/или анализ сообщения с уведомлением для идентификации взаимодействия, которое запрашивают. В этом примере взаимодействие представляет собой осуществление вторым пользователем платежа третьему пользователю. Компьютер 150 административного узла может тем самым идентифицировать пользователя и компьютер узла (например, компьютер 145 второго узла), ответственные за отправку платежа за взаимодействие.
[0136] На этапе S111 компьютер 150 административного узла может генерировать и передавать сообщение с инструкцией относительно записи на компьютер 145 второго узла. В этом случае инструкция относительно записи может представлять собой инструкцию для создания пакета данных, представляющего первое взаимодействие (например, платеж со второго узла на третий узел), так что пакет данных может быть записан в реестр транзакций. В некоторых вариантах осуществления компьютер 150 административного узла может также или вместо этого информировать компьютер 145 второго узла о том, что имело место первое событие, и компьютер 145 второго узла может определять, какой платеж выполнять, на основе умного контракта.
[0137] На этапе S112 компьютер 145 второго узла генерирует пакет данных, представляющий первое взаимодействие из упорядоченного набора взаимодействий. Пакет данных может быть отформатирован так, что он может быть включен в реестр транзакций, который может представлять собой запись цепочки блоков. В этом случае пакет данных может содержать любую подходящую информацию, представляющую подробности о платежной транзакции, такую как согласованная сумма транзакции, тип валюты, информация, идентифицирующая отправляющий счет (например, счет второго пользователя), информация, идентифицирующая принимающий счет (например, счет третьего пользователя), рабочий идентификатор компьютера второго пользователя, рабочий идентификатор компьютера третьего пользователя, идентификатор адреса и/или идентификатор класса компьютера второго узла, идентификатор адреса и/или идентификатор класса компьютера третьего узла и/или любая другая подходящая информация.
[0138] В некоторых вариантах осуществления пакет данных может также содержать идентификатор умного контракта, так что пакет данных может позже быть идентифицирован (например, в рамках записи цепочки блоков) с использованием идентификатора умного контракта.
[0139] Дополнительно компьютер 145 второго узла может генерировать первую цифровую подпись для пакета данных. Например, компьютер 145 второго узла может генерировать односторонний хеш с использованием некоторой или всей информации в пакете данных, а затем шифровать хеш с использованием закрытого ключа. Значение хеш–данных и/или цифровая подпись могут быть прикреплены к пакету данных, тем самым делая пакет данных видимым при искажении данных.
[0140] На этапе S113 компьютер 145 второго узла передает пакет данных для первого взаимодействия и первую цифровую подпись на компьютер 150 административного узла для подтверждения действительности и ввода в запись цепочки блоков.
[0141] На этапе S114 компьютер 150 административного узла может проверять цифровую подпись и/или хеш–значение компьютера второго узла. Например, компьютер 150 административного узла может выполнять процедуру проверки контрольной суммы для хеш–значения. Это может включать генерирование второго хеш–значения на основе пакета данных и проверку того, что второе хеш–значение соответствует принятому хеш–значению. Компьютер 150 административного узла может проверять цифровую подпись с использованием открытого ключа компьютера второго узла. Компьютер 150 административного узла может отклонять пакет данных, если хеш или цифровая подпись не могут быть проверены.
[0142] Компьютер 150 административного узла может также проверять то, что оба из идентификатора класса и идентификатора адреса компьютера второго узла действительны, связаны с компьютером 145 второго узла и используются надлежащим образом. Если эти и любые другие подходящие этапы проверки успешно совершаются, компьютер 150 административного узла может рассматривать пакет данных как действительный, и компьютер 150 административного узла может генерировать вторую цифровую подпись для пакета данных (например, с использованием закрытого ключа, связанного с компьютером 150 административного узла).
[0143] На этапе S115 компьютер 150 административного узла может добавлять информацию о первом взаимодействии (и/или всем пакете данных) в запись. Например, компьютер 150 административного узла может создавать новый блок для цепочки блоков, причем блок содержит пакет данных для первого взаимодействия и цифровые подписи. Блок может также содержать другие несвязанные пакеты данных, которые были приняты в подобный период времени (например, блок может содержать все пакеты данных, принятые за 10–минутный период).
[0144] На этапе S116 компьютер 150 административного узла может передавать копию пакета данных на компьютер 123 третьего узла (например, для информирования компьютера 123 третьего узла о транзакции). Компьютер 150 административного узла может также делать запись цепочки блоков доступной для компьютера 123 третьего узла.
[0145] На этапе S117 компьютер 123 третьего узла может проверять подлинность пакета данных. Например, компьютер 123 третьего узла может подтверждать, что пакет данных был введен в запись цепочки блоков (например, путем осуществления доступа к записи цепочки блоков на компьютере 150 административного узла). Компьютер 123 третьего узла может также проверять, что пакет данных содержит две цифровые подписи: одну с компьютера 145 второго узла и одну с компьютера 150 административного узла. Компьютер 123 третьего узла может также проверять цифровые подписи (например, с использованием надлежащих открытых ключей). Все эти проверки в комбинации могут создавать высокий уровень доверия к подлинности пакета данных, а также высокий уровень доверия к тому, что обеспечиваемое взаимодействие будет совершено.
[0146] Дополнительно компьютер 123 третьего узла может обновлять свои локальные записи на основе пакета данных. Например, компьютер 123 третьего узла может начислять обеспечиваемую величину транзакции (например, как указано в пакете данных) на банковский счет третьего пользователя.
[0147] Процесс совершения события и исполнения взаимодействия (например, платежа) в ответ на событие, как описано выше на этапах S108–S117, можно повторять подобным образом для других события и взаимодействия на этапах S118–S127. Например, когда третий пользователь совершил первое событие (на этапе S108), третий пользователь мог предоставить упаковку товаров четвертому пользователю. Четвертый пользователь может быть идентифицирован в умном контракте как поставщик услуг, который будет вызывать второе событие, в котором фигурируют товары, и умный контракт может также идентифицировать второе событие как сигнал запуска для второго взаимодействия.
[0148] Например, на этапе S118, который может быть подобен этапу S108, четвертый пользователь может приводить к тому, что происходит второе событие. Например, четвертый пользователь может представлять собой таможенного инспектора в пределах страны, и четвертый пользователь может выполнять задачу, связанную с осмотром товаров и клирингом товаров для экспорта. Четвертый пользователь может (например, посредством компьютера 134 четвертого пользователя) также предоставлять отчет о том, что задача выполнена, на компьютер 124 четвертого узла. В некоторых ситуациях второе событие может случаться спустя часы или дни после первого события.
[0149] На этапе S119, который может быть подобен этапу S109, компьютер 124 четвертого узла может генерировать сообщение с уведомлением о событии, указывающее, что имело место второе событие (например, вторая задача совершена), а также генерировать цифровую подпись для сообщения (например, с использованием закрытого ключа, связанного с компьютером 124 четвертого узла). Компьютер 124 четвертого узла может передавать сообщение с уведомлением о событии и/или цифровую подпись на компьютер 150 административного узла.
[0150] На этапе S120, который может быть подобен этапу S110, компьютер 150 административного узла проверяет сообщение с уведомлением о событии на основе умного контракта. Например, компьютер 150 административного узла может проверять то, что событие, о котором предоставляют отчет в сообщении с уведомлением о событии, представляет собой следующее предполагаемое событие согласно умному контракту. В случае второго события компьютер 150 административного узла может проверять то, что событие, о котором предоставляют отчет, должно происходить вторым (например, после первого события и перед всеми другими событиями) в рамках упорядоченного набора событий умного контракта. Это может включать проверку того, что предшествующие события (в этом случае лишь первое событие) были помечены как совершенные.
[0151] Компьютер 150 административного узла может также проверять цифровую подпись компьютера четвертого узла (например, с использованием открытого ключа, связанного с компьютером четвертого узла), и компьютер 150 административного узла может помечать второе событие как совершенное.
[0152] Дополнительно компьютер 150 административного узла может определять второе взаимодействие, которое должно иметь место в ответ на совершение второго события. В этом примере взаимодействие представляет собой осуществление вторым пользователем платежа четвертому пользователю.
[0153] На этапе S121, который может быть подобен этапу S111, компьютер 150 административного узла может генерировать и передавать сообщение с инструкцией относительно записи на компьютер 145 второго узла. В этом случае инструкция относительно записи может представлять собой инструкцию для создания пакета данных, представляющего второе взаимодействие (например, платеж со второго узла на четвертый узел), так что пакет данных может быть записан в реестр транзакций.
[0154] На этапе S122, который может быть подобен этапу S112, компьютер 145 второго узла генерирует второй пакет данных, представляющий второе взаимодействие из упорядоченного набора взаимодействий. В этом случае второй пакет данных может содержать любую подходящую информацию, представляющую подробности о платежной транзакции, такую как согласованная сумма транзакции, тип валюты, информация, идентифицирующая отправляющий счет (например, счет второго пользователя), информация, идентифицирующая принимающий счет (например, счет четвертого пользователя), рабочий идентификатор компьютера второго пользователя, рабочий идентификатор компьютера четвертого пользователя, идентификатор адреса и/или идентификатор класса компьютера второго узла, идентификатор адреса и/или идентификатор класса компьютера четвертого узла и/или любая другая подходящая информация. Дополнительно компьютер 145 второго узла может генерировать цифровую подпись для второго пакета данных.
[0155] На этапе S123, который может быть подобен этапу S113, компьютер 145 второго узла передает второй пакет данных для второго взаимодействия и сопровождающую цифровую подпись на компьютер 150 административного узла для подтверждения действительности и ввода в запись цепочки блоков.
[0156] На этапе S124, который может быть подобен этапу S114, компьютер 150 административного узла может проверять цифровую подпись и/или хеш–значение компьютера второго узла. Если этот и любые другие подходящие этапы проверки успешно совершаются, компьютер 150 административного узла может генерировать вторую цифровую подпись для второго пакета данных.
[0157] На этапе S125, который может быть подобен этапу S115, компьютер 150 административного узла может добавлять информацию о втором взаимодействии (и/или всем пакете данных) в запись. Например, компьютер 150 административного узла может создавать новый блок для цепочки блоков, причем блок содержит второй пакет данных для второго взаимодействия и связанные цифровые подписи. Блок может также содержать другие несвязанные пакеты данных (например, для других несвязанных процессов отправления), которые были приняты в подобный период времени (например, блок может содержать все пакеты данных, принятые за 10–минутный период). Дополнительные блоки могли быть созданы за время, проходящее между этапами S115 и S125. В результате цепочка блоков может содержать множэество посреднических блоков между блоком, созданным на этапе S115, и блоком, создаваемым на этапе S125.
[0158] На этапе S126, который может быть подобен этапу S116, компьютер 150 административного узла может передавать копию пакета данных на компьютер 124 четвертого узла.
[0159] На этапе S127, который может быть подобен этапу S117, компьютер 124 четвертого узла может проверять подлинность пакета данных. Дополнительно компьютер 124 четвертого узла может обновлять свои локальные записи на основе пакета данных. Например, компьютер 124 четвертого узла может начислять обеспечиваемую величину транзакции (например, как указано во втором пакете данных) на банковский счет четвертого пользователя.
[0160] Таким образом, два отдельных события и два отдельных соответствующих взаимодействия могут иметь место, как предопределено в умном контракте. Этот процесс, связанный с событием и взаимодействием (как описано для первого события и первого взаимодействия на этапах S108–S117 и снова описано для второго события и второго взаимодействия на этапах S118–S127), можно повторять для каждой пары события и взаимодействия, заданной в умном контракте.
[0161] Например, в процессе отправления могут фигурировать дополнительные сегменты транспортировки, дополнительные таможенные досмотры, этапы создания страхового полиса и т. д., и каждая из этих дополнительных задач может быть выполнена дополнительным поставщиком услуг. На фиг. 1 показаны семь таких поставщиков услуг (представленных компьютерами 133–139 пользователей от третьего до девятого), но может быть представлено любое подходящее количество поставщиков услуг и соответствующих элементов умного контракта. Таким образом, может быть еще одна, три, пять или больше итераций процесса, связанного с событием и взаимодействием (например, как описано выше для этапов S108–S117), для дополнительных поставщиков услуг.
[0162] Последнее событие отправления может представлять собой доставку товаров первому пользователю (например, на склад первого пользователя). Это может запускать последний предоставляемый вторым пользователем платеж, который может быть отправлен в службу окончательной доставки. Дополнительно компьютер 145 второго узла может определять, что товары были успешно доставлены (или быть уведомлен об этом). В результате второй пользователь мог эффективно совершить первоначальную задачу, связанную с отправкой упаковки товаров первому пользователю. Таким образом, в дополнение к тому, что последняя доставка запускает последний предоставляемый вторым пользователем платеж, она может также запускать окончательный платеж, который первый пользователь (например, покупатель товаров) отправляет второму пользователю (например, лицу, осуществляющему поставку товаров).
[0163] На этапе S128, который может быть подобен этапу S109, компьютер 145 второго узла может генерировать сообщение с уведомлением о событии, указывающее, что имело место окончательное событие (например, процесс отправления совершен), а также генерировать цифровую подпись для сообщения. Компьютер 145 второго узла может передавать сообщение с уведомлением о событии и/или цифровую подпись на компьютер 150 административного узла.
[0164] На этапе S129, который может быть подобен этапу S110, компьютер 150 административного узла проверяет сообщение с уведомлением о событии на основе умного контракта. Например, компьютер 150 административного узла может проверять то, что событие, о котором предоставляют отчет в сообщении с уведомлением о событии, представляет собой следующее предполагаемое событие согласно умному контракту. В случае окончательного события компьютер 150 административного узла может проверять то, что все события были совершены, и то, что умный контракт указывает, что дополнительное взаимодействие должно иметь место, когда все события были подтверждены как совершенные (например, в дополнение к взаимодействию, которое могло уже иметь место для последнего поставщика услуг).
[0165] Дополнительно компьютер 150 административного узла может определять окончательное (например, третье или более позднее) взаимодействие, которое должно иметь место в ответ на совершение окончательного (например, третьего или более позднего) события. В этом случае взаимодействие представляет собой осуществление первым пользователем платежа второму пользователю.
[0166] На этапе S130, который может быть подобен этапу S111, компьютер 150 административного узла может генерировать и передавать сообщение с инструкцией относительно записи на компьютер 145 второго узла. В этом примере инструкция относительно записи может представлять собой инструкцию для создания пакета данных, представляющего окончательное взаимодействие (например, платеж с первого узла на второй узел), так что пакет данных может быть записан в реестр транзакций.
[0167] На этапе S131, который может быть подобен этапу S112, компьютер 165 первого узла генерирует окончательный (например, третий или более поздний) пакет данных, представляющий третье взаимодействие из упорядоченного набора взаимодействий. В этом случае третий пакет данных может содержать любую подходящую информацию, представляющую подробности о платежной транзакции, такую как согласованная сумма транзакции (например, $2000000), тип валюты, информация, идентифицирующая отправляющий счет (например, счет первого пользователя), информация, идентифицирующая принимающий счет (например, счет второго пользователя), рабочий идентификатор компьютера первого пользователя, рабочий идентификатор компьютера второго пользователя, идентификатор адреса и/или идентификатор класса компьютера первого узла, идентификатор адреса и/или идентификатор класса компьютера второго узла и/или любая другая подходящая информация. Дополнительно компьютер 165 первого узла может генерировать цифровую подпись для окончательного пакета данных.
[0168] На этапе S132, который может быть подобен этапу S113, компьютер 165 первого узла передает окончательный пакет данных для окончательного взаимодействия и сопровождающую цифровую подпись на компьютер 150 административного узла для подтверждения действительности и ввода в запись цепочки блоков.
[0169] На этапе S133, который может быть подобен этапу S114, компьютер 150 административного узла может проверять цифровую подпись и/или хеш–значение компьютера первого узла. Если этот и любые другие подходящие этапы проверки успешно совершаются, компьютер 150 административного узла может генерировать дополнительную цифровую подпись для окончательного пакета данных.
[0170] На этапе S134, который может быть подобен этапу S115, компьютер 150 административного узла может добавлять информацию об окончательном взаимодействии (и/или всем пакете данных) в запись. Например, компьютер 150 административного узла может создавать новый блок для цепочки блоков, причем блок содержит окончательный пакет данных для окончательного взаимодействия и связанные цифровые подписи. Блок может также содержать другие несвязанные пакеты данных, которые были приняты в подобный период времени (например, блок может содержать все пакеты данных, принятые за 10–минутный период).
[0171] На этапе S135, который может быть подобен этапу S116, компьютер 150 административного узла может передавать копию пакета данных на компьютер 145 второго узла.
[0172] На этапе S136, который может быть подобен этапу S117, компьютер 145 второго узла может проверять подлинность пакета данных. Дополнительно компьютер 145 второго узла может обновлять свои локальные записи на основе пакета данных. Например, компьютер 145 второго узла начисляет обеспечиваемую величину транзакции (например, как указано во втором пакете данных) на банковский счет второго пользователя.
[0173] В более позднее время этапы могут быть предприняты для расчета сумм транзакций для каждой из платежных транзакций (например, между расчетными счетами для каждой пары узлов) на основе записей пакета данных, хранящихся в реестре в форме цепочки блоков (например, на этапах S115, S125 и S134). В некоторых вариантах осуществления пакетный расчет может случаться в конце дня, и многосторонний расчет может иметь место по всей сети. В некоторых вариантах осуществления каждая транзакция может быть рассчитана с использованием двух этапов атомарного расчета (например, перевода со счета отправителя на счет центрального банка, а затем перевода со счета центрального банка на счет получателя).
[0174] Соответственно один умный контракт может проводить весь процесс (например, процесс отправления), который может включать в себя множество последовательных событий, и включает в себя создание множества элементов записи, представляющих множество последовательных взаимодействий в ответ на события.
[0175] Некоторые варианты осуществления настоящего изобретения могут содержать дополнительные или альтернативные подробности для некоторых аспектов вышеописанного способа. Например, на этапе S104 компьютер 150 административного узла может необязательно добавлять умный контракт в цепочку блоков (например, путем создания нового блока, который содержит умный контракт). Однако другие варианты осуществления могут не сохранять умный контракт в цепочке блоков, например, так как цепочка блоков может быть использована только для хранения данных о взаимодействии. Умный контракт может уже являться в достаточной степени принудительно осуществляемым и достоверным без добавления его в цепочку блоков (например, на основе доверенного центрального администратора, управляющего умным контрактом и зарезервированными величинами счетов).
[0176] Дополнительно в некоторых вариантах осуществления вместо осуществления связи компьютером 150 административного узла с компьютером 165 первого узла для получения цифровой подписи для умного контракта (например, на этапе S104) компьютер 145 второго узла может осуществлять связь с компьютером 165 первого узла для той цели. Например, компьютер 145 второго узла и компьютер 165 первого узла могут осуществлять связь друг с другом, чтобы прийти к соглашению относительно подробностей умного контракта, компьютер 165 первого узла может предоставлять цифровую подпись на компьютер 145 второго узла, а затем компьютер 145 второго узла может передавать умный контракт и обе цифровые подписи на компьютер 150 административного узла (например, на этапе S103).
[0177] Дополнительно в некоторых вариантах осуществления компьютер 150 административного узла может создавать пакеты данных для транзакций со стороны компьютера 145 второго узла при условии, что компьютер 145 второго узла уже согласился на транзакции посредством умного контракта. Таким образом, вместо отправки инструкции относительно записи (например, на этапе S111) компьютер 150 административного узла может генерировать пакет данных и исполнять транзакцию напрямую.
[0178] Как упомянуто выше, варианты осуществления позволяют компьютеру 165 первого узла выполнять некоторые или все функции, выполняемые компьютером 145 второго узла. Например, компьютер 165 первого узла может генерировать умный контракт вместо компьютера 145 второго узла, компьютер 165 первого узла может предоставлять платежи на каждый из компьютеров других узлов вместо компьютера 145 второго узла и т. д. Термины «первый» и «второй» используют в пояснительных целях, и их можно поменять местами или изменить любым подходящим образом.
[0179] Способ 500 был описан выше как способ отправки платежей поставщикам услуг, которые участвуют в процессе отправления. Однако варианты осуществления настоящего изобретения могут также применяться к другим процессам и другим типам ведения записей. Например, варианты осуществления могут применяться к другим типам транзакции для товаров и услуг и в других контекстах, например, в контекстах медицины и в контекстах строительства. Варианты осуществления настоящего изобретения могут быть использованы для гарантирования того, что этапы в медицинских процедурах или при обработке выполняют в правильном порядке, для гарантирования того, что этапы в проектах строительства или проектах изготовления совершают в заданном порядке, и/или для любых других подходящих упорядоченных процесса или системы.
[0180] Варианты осуществления настоящего изобретения обладают рядом преимуществ. Например, в вариантах осуществления настоящего изобретения умный контракт может задавать множество записей (например, для взаимодействий) для создания в ответ на множество запускающих событий. Дополнительно умный контракт может задавать порядок для событий и записей, центральный административный узел может удостоверяться в том, что события происходят в правильном порядке. В результате новые записи добавляются в цепочку блоков в предопределенном порядке (например, согласно умному контракту). Это обеспечивает построение цепочки блоков упорядоченным, организованным и логическим образом. Это также позволяет лицу, осуществляющему просмотр, отслеживать последовательные записи через цепочку блоков, тем самым обеспечивая повторный просмотр совершенного процесса. Это применение умного контракта является особенно полезным для систем записей цепочки блоков, поскольку цепочки блоков, как правило, не могут быть изменены после добавления информации, так что полезно фильтровать информацию перед ее добавлением.
[0181] Варианты осуществления настоящего изобретения также преимущественно обеспечивают каждый участвующий компьютер узла уникальным закрытым ключом. В результате сообщение с уведомлением, поданное компьютерами узлов, может быть снабжено цифровой подписью и являться проверяемым. В некоторых вариантах осуществления умный контракт запускается за счет уведомлений о событиях с компьютеров узлов, и цифровые подписи повышают безопасность и надежность этого процесса запуска за счет событий.
[0182] Далее будет описана компьютерная система, которая может быть использована для реализации любого из субъектов или компонентов, описанных в настоящем документе. Подсистемы в компьютерной системе взаимно соединены по системной шине. Дополнительные подсистемы включают принтер, клавиатуру, несъемный диск и монитор, который может быть подключен к адаптеру дисплея. Периферийные устройства и устройства ввода/вывода (I/O), которые могут соединяться с контроллером I/O, могут быть соединены с компьютерной системой с помощью любого количества средств, известных в данной области техники, таких как последовательный порт. Например, последовательный порт или внешний интерфейс могут быть использованы для соединения вычислительного устройства с глобальной вычислительной сетью, такой как Интернет, устройством ввода типа мышь или сканером. Взаимное соединение по системной шине позволяет центральному процессору осуществлять связь с каждой подсистемой и управлять исполнением инструкций из системной памяти или несъемного диска, а также обмен информацией между подсистемами. Системная память и/или несъемный диск могут представлять собой машиночитаемый носитель.
[0183] Как описано, услуга согласно настоящему изобретению может включать реализацию одной или более функций, процессов, операций или этапов способа. В некоторых вариантах осуществления функции, процессы, операции или этапы способа могут быть реализованы в результате исполнения набора инструкций или программного кода подходящим образом запрограммированным вычислительным устройством, микропроцессором, устройством обработки данных или т. п. Набор инструкций или программный код могут быть сохранены в памяти или элементе хранения данных другой формы, к которому осуществляет доступ вычислительное устройство, микропроцессор и т. д. В других вариантах осуществления функции, процессы, операции или этапы способа могут быть реализованы встроенным программным обеспечением или специализированным процессором, интегральной схемой и т. д.
[0184] Любые из программных компонентов или функций, описанных в настоящей заявке, могут быть реализованы в виде программного кода, который должен быть исполнен процессором, с использованием любого подходящего компьютерного языка, такого как, например, Java, C++ или Perl, с использованием, например, традиционных или объектно–ориентированных подходов. Программный код может быть сохранен в виде последовательности инструкций или команд в машиночитаемом носителе, таком как оперативное запоминающее устройство (RAM), постоянное запоминающее устройство (ROM), магнитный носитель, такой как жесткий диск или дискета, или оптический носитель, такой как CD–ROM. Любой такой машиночитаемый носитель может находиться на или в одном вычислительном устройстве и может присутствовать на или в разных вычислительных устройствах в пределах системы или сети.
[0185] Хотя подробно были описаны и на сопутствующих графических материалах показаны определенные примерные варианты осуществления, следует понимать, что такие варианты осуществления являются лишь иллюстративными и не предназначены для ограничения широкого изобретения и что это изобретение не должно быть ограничено конкретными показанными и описанными компоновками и конструкциями, поскольку специалистам в данной области техники могут быть очевидны различные другие модификации.
[0186] В контексте настоящего документа использование формы единственного числа обозначает «по меньшей мере один», если иное не указано отдельно.
Изобретение относится к способам и компьютерам для создания множества записей на основе упорядоченного смарт-контракта. Технический результат заключается в обеспечении упорядоченного формирования блоков для цепочки блоков. В способе принимают посредством компьютера административного узла смарт-контракт, указывающий, что упорядоченный набор взаимодействий будет иметь место в ответ на упорядоченный набор событий, при этом смарт-контракт указывает, что каждое взаимодействие в упорядоченном наборе взаимодействий соответствует событию в упорядоченном наборе событий, причем смарт-контракт указывает, что каждое взаимодействие в упорядоченном наборе взаимодействий будет иметь место в ответ на соответствующее событие только в том случае, если соответствующее событие происходит в рамках конкретного порядка событий; принимают посредством компьютера административного узла первое уведомление о том, что имело место первое событие из упорядоченного набора событий; проверяют посредством компьютера административного узла на основе смарт-контракта, что первое событие должно происходить первым в рамках упорядоченного набора событий; определяют посредством компьютера административного узла на основе смарт-контракта, что первое взаимодействие из упорядоченного набора взаимодействий должно иметь место в ответ на первое событие; в ответ на первое событие из упорядоченного набора событий, передают посредством компьютера административного узла на компьютер второго узла инструкцию сгенерировать первый пакет данных для первого взаимодействия из упорядоченного набора взаимодействий, причем смарт-контракт указывает, что первое взаимодействие будет иметь место в ответ на первое событие; принимают посредством компьютера административного узла с компьютера второго узла первый пакет данных для первого взаимодействия; генерируют посредством компьютера административного узла первый блок для цепочки блоков, причем первый блок включает в себя первый пакет данных для первого взаимодействия; принимают посредством компьютера административного узла второе уведомление о том, что имело место второе событие из упорядоченного набора событий; проверяют посредством компьютера административного узла на основе смарт-контракта, что второе событие должно происходить вторым в рамках упорядоченного набора событий; определяют посредством компьютера административного узла на основе смарт-контракта, что второе взаимодействие из упорядоченного набора взаимодействий должно иметь место в ответ на второе событие; в ответ на второе событие из упорядоченного набора событий, передают с компьютера административного узла на компьютер второго узла инструкцию сгенерировать второй пакет данных для второго взаимодействия из упорядоченного набора взаимодействий, причем смарт-контракт указывает, что второе взаимодействие будет иметь место в ответ на второе событие; принимают посредством компьютера административного узла с компьютера второго узла второй пакет данных для второго взаимодействия; и генерируют посредством компьютера административного узла второй блок для цепочки блоков, причем второй блок включает в себя второй пакет данных для второго взаимодействия. 4 н. и 6 з.п. ф-лы, 11 ил.
1. Способ создания множества записей на основе упорядоченного смарт-контракта, содержащий этапы, на которых:
принимают посредством компьютера административного узла смарт-контракт, указывающий, что упорядоченный набор взаимодействий будет иметь место в ответ на упорядоченный набор событий, при этом смарт-контракт указывает, что каждое взаимодействие в упорядоченном наборе взаимодействий соответствует событию в упорядоченном наборе событий, причем смарт-контракт указывает, что каждое взаимодействие в упорядоченном наборе взаимодействий будет иметь место в ответ на соответствующее событие только в том случае, если соответствующее событие происходит в рамках конкретного порядка событий;
принимают посредством компьютера административного узла первое уведомление о том, что имело место первое событие из упорядоченного набора событий;
проверяют посредством компьютера административного узла на основе смарт-контракта, что первое событие должно происходить первым в рамках упорядоченного набора событий;
определяют посредством компьютера административного узла на основе смарт-контракта, что первое взаимодействие из упорядоченного набора взаимодействий должно иметь место в ответ на первое событие;
в ответ на первое событие из упорядоченного набора событий, передают посредством компьютера административного узла на компьютер второго узла инструкцию сгенерировать первый пакет данных для первого взаимодействия из упорядоченного набора взаимодействий, причем смарт-контракт указывает, что первое взаимодействие будет иметь место в ответ на первое событие;
принимают посредством компьютера административного узла с компьютера второго узла первый пакет данных для первого взаимодействия;
генерируют посредством компьютера административного узла первый блок для цепочки блоков, причем первый блок включает в себя первый пакет данных для первого взаимодействия;
принимают посредством компьютера административного узла второе уведомление о том, что имело место второе событие из упорядоченного набора событий;
проверяют посредством компьютера административного узла на основе смарт-контракта, что второе событие должно происходить вторым в рамках упорядоченного набора событий;
определяют посредством компьютера административного узла на основе смарт-контракта, что второе взаимодействие из упорядоченного набора взаимодействий должно иметь место в ответ на второе событие;
в ответ на второе событие из упорядоченного набора событий, передают с компьютера административного узла на компьютер второго узла инструкцию сгенерировать второй пакет данных для второго взаимодействия из упорядоченного набора взаимодействий, причем смарт-контракт указывает, что второе взаимодействие будет иметь место в ответ на второе событие;
принимают посредством компьютера административного узла с компьютера второго узла второй пакет данных для второго взаимодействия; и
генерируют посредством компьютера административного узла второй блок для цепочки блоков, причем второй блок включает в себя второй пакет данных для второго взаимодействия.
2. Способ по п.1, дополнительно содержащий этапы, на которых:
в ответ на прием первого уведомления о том, что имело место первое событие, помечают посредством компьютера административного узла первое событие как совершенное; и
перед передачей инструкции сгенерировать второй пакет данных для второго взаимодействия проверяют посредством компьютера административного узла, что первое событие помечено как совершенное.
3. Способ по п.1, в котором первое уведомление о том, что имело место первое событие, принимают с компьютера третьего узла, причем первое взаимодействие имеет место между компьютером второго узла и компьютером третьего узла, при этом второе уведомление о том, что имело место второе событие, принимают с компьютера четвертого узла, причем второе взаимодействие имеет место между компьютером второго узла и компьютером четвертого узла.
4. Компьютер административного узла для создания множества записей на основе упорядоченного смарт-контракта, содержащий:
процессор и
машиночитаемый носитель, причем машиночитаемый носитель содержит код, исполняемый процессором, для реализации способа, содержащего:
прием смарт-контракта, указывающего, что упорядоченный набор взаимодействий будет иметь место в ответ на упорядоченный набор событий, при этом смарт-контракт указывает, что каждое взаимодействие в упорядоченном наборе взаимодействий соответствует событию в упорядоченном наборе событий, причем смарт-контракт указывает, что каждое взаимодействие в упорядоченном наборе взаимодействий будет иметь место в ответ на соответствующее событие только в том случае, если соответствующее событие происходит в рамках конкретного порядка событий;
прием первого уведомления о том, что имело место первое событие из упорядоченного набора событий;
проверку на основе смарт-контракта того, что первое событие должно происходить первым в рамках упорядоченного набора событий;
определение на основе смарт-контракта того, что первое взаимодействие из упорядоченного набора взаимодействий должно иметь место в ответ на первое событие;
в ответ на первое событие из упорядоченного набора событий, передачу на компьютер второго узла инструкции сгенерировать первый пакет данных для первого взаимодействия из упорядоченного набора взаимодействий, причем смарт-контракт указывает, что первое взаимодействие будет иметь место в ответ на первое событие;
прием с компьютера второго узла первого пакета данных для первого взаимодействия;
генерирование первого блока для цепочки блоков, причем первый блок включает в себя первый пакет данных для первого взаимодействия;
прием второго уведомления о том, что имело место второе событие из упорядоченного набора событий;
проверку на основе смарт-контракта того, что второе событие должно происходить вторым в рамках упорядоченного набора событий;
определение на основе смарт-контракта того, что второе взаимодействие из упорядоченного набора взаимодействий должно иметь место в ответ на второе событие;
в ответ на второе событие из упорядоченного набора событий, передачу на компьютер второго узла инструкции сгенерировать второй пакет данных для второго взаимодействия из упорядоченного набора взаимодействий, причем смарт-контракт указывает, что второе взаимодействие будет иметь место в ответ на второе событие;
прием с компьютера второго узла второго пакета данных для второго взаимодействия; и
генерирование второго блока для цепочки блоков, причем второй блок включает в себя второй пакет данных для второго взаимодействия.
5. Компьютер административного узла по п.4, причем первое уведомление о том, что имело место первое событие, принимается с компьютера третьего узла, при этом второе уведомление о том, что имело место второе событие, принимается с компьютера четвертого узла, причем способ дополнительно содержит:
прием первой цифровой подписи для первого уведомления о том, что имело место первое событие, с компьютера третьего узла;
проверку первой цифровой подписи с использованием первого общедоступного ключа, ассоциированного с компьютером третьего узла, причем инструкция сгенерировать первый пакет данных передается в ответ на проверку первой цифровой подписи;
прием второй цифровой подписи для второго уведомления о том, что имело место второе событие, с компьютера четвертого узла; и
проверку второй цифровой подписи с использованием второго общедоступного ключа, ассоциированного с компьютером четвертого узла, причем инструкция сгенерировать второй пакет данных передается в ответ на проверку второй цифровой подписи.
6. Компьютер административного узла по п.4, в котором способ дополнительно содержит: в ответ на прием смарт-контракта, передачу сообщений на каждый компьютер, ассоциированный с упорядоченным набором взаимодействий, с указанием того, что взаимодействие будет иметь место, если имеет место определенное событие.
7. Способ создания множества пакетов данных на основе упорядоченного смарт-контракта, содержащий этапы, на которых:
генерируют посредством компьютера второго узла смарт-контракт, указывающий, что упорядоченный набор взаимодействий будет иметь место в ответ на упорядоченный набор событий, при этом смарт-контракт указывает, что каждое взаимодействие в упорядоченном наборе взаимодействий соответствует событию в упорядоченном наборе событий, причем смарт-контракт указывает, что каждое взаимодействие в упорядоченном наборе взаимодействий будет иметь место в ответ на соответствующее событие только в том случае, если соответствующее событие происходит в рамках конкретного порядка событий;
принимают посредством компьютера второго узла с компьютера административного узла инструкцию сгенерировать первый пакет данных для первого взаимодействия из упорядоченного набора взаимодействий, причем компьютером административного узла данная инструкция отправлена в ответ на первое уведомление о том, что имело место первое событие из упорядоченного набора событий, и проверено, что первое событие должно происходить первым в рамках упорядоченного набора событий, на основе смарт-контракта;
в ответ на первое событие из упорядоченного набора событий генерируют посредством компьютера второго узла первый пакет данных для первого взаимодействия из упорядоченного набора взаимодействий, причем смарт-контракт указывает, что первое взаимодействие будет иметь место в ответ на первое событие;
передают посредством компьютера второго узла первый пакет данных на компьютер административного узла, при этом компьютер административного узла генерирует первый блок для цепочки блоков, причем первый блок включает в себя первый пакет данных;
принимают посредством компьютера второго узла с компьютера административного узла инструкцию сгенерировать второй пакет данных для второго взаимодействия из упорядоченного набора взаимодействий, причем компьютером административного узла данная инструкция отправлена в ответ на второе уведомление о том, что имело место второе событие из упорядоченного набора событий, и проверено, что второе событие должно происходить вторым в рамках упорядоченного набора событий, на основе смарт-контракта;
в ответ на второе событие из упорядоченного набора событий, генерируют посредством компьютера второго узла второй пакет данных для второго взаимодействия из упорядоченного набора взаимодействий, причем смарт-контракт указывает, что второе взаимодействие будет иметь место в ответ на второе событие; и
передают посредством компьютера второго узла второй пакет данных на компьютер административного узла, при этом компьютер административного узла создает второй блок для цепочки блоков, причем второй блок включает в себя второй пакет данных.
8. Способ по п.7, дополнительно содержащий этап, на котором передают посредством компьютера второго узла смарт-контракт на компьютер административного узла, причем компьютер административного узла передает сообщения на каждый компьютер, ассоциированный с упорядоченным набором взаимодействий, с указанием того, что взаимодействие будет иметь место, если имеет место определенное событие.
9. Способ по п.7, дополнительно содержащий этапы, на которых:
генерируют посредством компьютера второго узла цифровую подпись для смарт-контракта с использованием секретного ключа; и
передают посредством компьютера второго узла цифровую подпись для смарт-контракта на компьютер административного узла, при этом компьютер административного узла получает дополнительную цифровую подпись для смарт-контракта с компьютера первого узла, причем дополнительная цифровая подпись сгенерирована компьютером первого узла с использованием дополнительного секретного ключа.
10. Компьютер второго узла для создания множества пакетов данных на основе упорядоченного смарт-контракта, содержащий:
процессор и
машиночитаемый носитель, причем машиночитаемый носитель содержит код, исполняемый процессором, для реализации способа по любому из пп.7–9.
Автомобиль-сани, движущиеся на полозьях посредством устанавливающихся по высоте колес с шинами | 1924 |
|
SU2017A1 |
Устройство для закрепления лыж на раме мотоциклов и велосипедов взамен переднего колеса | 1924 |
|
SU2015A1 |
Автомобиль-сани, движущиеся на полозьях посредством устанавливающихся по высоте колес с шинами | 1924 |
|
SU2017A1 |
Автомобиль-сани, движущиеся на полозьях посредством устанавливающихся по высоте колес с шинами | 1924 |
|
SU2017A1 |
Автомобиль-сани, движущиеся на полозьях посредством устанавливающихся по высоте колес с шинами | 1924 |
|
SU2017A1 |
Автомобиль-сани, движущиеся на полозьях посредством устанавливающихся по высоте колес с шинами | 1924 |
|
SU2017A1 |
Автомобиль-сани, движущиеся на полозьях посредством устанавливающихся по высоте колес с шинами | 1924 |
|
SU2017A1 |
Авторы
Даты
2022-05-18—Публикация
2018-06-13—Подача