24.06.2020
220.018.29f4

УПРОЩЕНИЕ КОНСЕНСУСА В ЦЕПОЧКАХ БЛОКОВ ПО ПРИНЦИПУ ПРАКТИЧНОЙ ОТКАЗОУСТОЙЧИВОСТИ НА ОСНОВЕ ВИЗАНТИЙСКОГО СОГЛАШЕНИЯ И СИНХРОНИЗАЦИИ УЗЛОВ

Вид РИД

Изобретение

Юридическая информация Свернуть Развернуть
№ охранного документа
0002724181
Дата охранного документа
22.06.2020
Краткое описание РИД Свернуть Развернуть
Аннотация: Изобретение относится к вычислительной технике. Технический результат заключается в повышении надежности системы цепочек блоков. Машинореализованный способ для упрощения консенсусного процесса в сети цепочек блоков на основе практической отказоустойчивости на основе византийского соглашения (PBFT), в котором задают, посредством первого консенсусного узла, таймер, который заканчивается до тайм-аута изменения вида в PBFT, причем изменение вида в PBFT предоставляет собой живучесть посредством предоставления возможности PBFT добиваться прогресса, когда узел-лидер сбоит; отправляют, во второй консенсусный узел, запрос на одно или более консенсусных сообщений, пропущенных посредством первого консенсусного узла, в ответ на окончание таймера; принимают, из второго консенсусного узла, одно или более консенсусных сообщений, снабженных цифровой подписью посредством закрытого ключа консенсусного узла, который формирует одно или более консенсусных сообщений; и определяют то, что блок транзакций является достоверным, если количество сообщений фиксации, включенных в принимаемые одно или более консенсусных сообщений, превышает или равно 2f+1, где f является максимальным числом отказавших узлов, которое является допустимым посредством цепочки блоков на основе PBFT. 3 н. и 6 з.п. ф-лы, 5 ил.
Реферат Свернуть Развернуть

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

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

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

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

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

[0005] В PBFT, консенсусная безопасность может обеспечивать то, что два узла, которые не имеют проблем, ассоциированных с ними, не приходят к консенсусу с различными значениями. Живучесть консенсуса может обеспечивать то, что узлы не попадают в бесконечные циклы при обмене сообщениями, и узлы могут приходить к своему конечному состоянию.

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

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

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

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

[0009] Эти и другие реализации необязательно могут включать в себя один или более следующих признаков: запрос включает в себя порядковый номер, который указывает номер консенсусного раунда; одно или более консенсусных сообщений включают в себя одно или более сообщений предварительной подготовки, сообщений подготовки и сообщений фиксации, пропущенных посредством первого консенсусного узла; одно или более консенсусных сообщений сохраняются в одном или более консенсусных узлов, в которых они формируются или сохраняются, до тех пор, пока не достигается стабильная контрольная точка; прием одного или более порядковых номеров, соответствующих одному или более консенсусных сообщений, при этом каждый порядковый номер указывает номер консенсусного раунда, ассоциированного с соответствующим консенсусным сообщением; отправку блока транзакций в цепочку блоков и базу данных состояний, если блок транзакций определяется как достоверный; отправку, в третий консенсусный узел, запроса на второе одно или более консенсусных сообщений, пропущенных посредством второго консенсусного узла, в ответ на окончание таймера, и если блок транзакций определяется как недостоверный; прием, из третьего консенсусного узла, второго одного или более консенсусных сообщений, снабженных цифровой подписью посредством закрытого ключа соответствующего консенсусного узла, который формирует соответствующие вторые одно или более консенсусных сообщений; и определение того, что блок транзакций является достоверным, если количество сообщений фиксации, включенных в одно или более консенсусных сообщений и во вторые одно или более консенсусных сообщений, превышает или равно 2f+1.

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

[0011] Настоящее раскрытие сущности дополнительно предоставляет систему для реализации способов, предусмотренных в настоящем документе. Система включает в себя один или более процессоров и машиночитаемый носитель хранения данных, соединенный с одним или более процессоров, имеющий сохраненные инструкции, которые, при выполнении посредством одного или более процессоров, инструктируют одному или более процессоров выполнять операции в соответствии с реализациями способов, предусмотренных в данном документе.

[0012] Следует принимать во внимание, что способы в соответствии с настоящим раскрытием сущности могут включать в себя любую комбинацию аспектов и признаков, описанных в данном документе. Таким образом, способы в соответствии с настоящим раскрытием сущности не ограничены комбинациями аспектов и признаков, конкретно описанными в данном документе, но также включают в себя любую предоставленную комбинацию аспектов и признаков.

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

Описание чертежей

[0014] Фиг. 1 иллюстрирует примерное окружение, которое может использоваться для того, чтобы выполнять реализации настоящего раскрытия сущности.

[0015] Фиг. 2 иллюстрирует примерную концептуальную архитектуру в соответствии с реализациями настоящего раскрытия сущности.

[0016] Фиг. 3 иллюстрирует примерный консенсусный процесс на основе PBFT в соответствии с реализациями настоящего раскрытия сущности.

[0017] Фиг. 4 иллюстрирует примерную структуру консенсусного сообщения на основе PBFT в соответствии с реализациями настоящего раскрытия сущности.

[0018] Фиг. 5 иллюстрирует примерный процесс, который может выполняться в соответствии с реализациями настоящего раскрытия сущности.

[0019] Аналогичные ссылки с номерами на различных чертежах указывают аналогичные элементы.

Подробное описание изобретения

[0020] Реализации настоящего раскрытия сущности направлены на упрощение процессов синхронизации и консенсусных процессов сети цепочек блоков на основе практической отказоустойчивости на основе византийского соглашения (PBFT). Более конкретно, реализации настоящего раскрытия сущности направлены на упрощение передач консенсусных сообщений и синхронизации узлов в сети цепочек блоков на основе PBFT посредством использования способа связи на основе принципа сплетничания и добавления цифровых подписей в консенсусные сообщения. Таким образом, и как подробнее описано в данном документе, потребление полосы пропускания линий связи может уменьшаться, и надежность системы может повышаться. В некоторых реализациях, действия включают в себя задание, посредством первого консенсусного узла, таймера, который заканчивается до тайм-аута изменения вида; отправку, во второй консенсусный узел, запроса на одно или более консенсусных сообщений, пропущенных посредством первого консенсусного узла, в ответ на окончание таймера; прием, из второго консенсусного узла, одного или более консенсусных сообщений, снабженных цифровой подписью посредством закрытого ключа соответствующего консенсусного узла, который формирует соответствующие одно или более консенсусных сообщений; и определение того, что блок транзакций является достоверным, если количество сообщений фиксации, включенных в принимаемые одно или более консенсусных сообщений, превышает или равно 2f+1, где f является максимальным числом отказавших узлов, которое является допустимым посредством цепочки блоков на основе практической отказоустойчивости на основе византийского соглашения.

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

[0022] В консорциальной цепочке блоков, консенсусный процесс управляется посредством авторизованного набора узлов, причем один или более узлов управляются посредством соответствующего объекта (например, организации). Например, консорциум из десяти (10) объектов (например, компаний) может управлять консорциальной системой цепочек блоков, каждый из которых управляет, по меньшей мере, одним узлом в консорциальной DLS. Соответственно, консорциальная система цепочек блоков может считаться закрытой сетью относительно участвующих объектов. В некоторых примерах, каждый объект (узел) должен подписывать каждый блок для того, чтобы блок был достоверным и добавлялся в цепочку блоков. В некоторых примерах, по меньшей мере, поднабор объектов (узлов) (например, по меньшей мере, 7 объектов) должен подписывать каждый блок для того, чтобы блок был достоверным и добавлялся в цепочку блоков. Примерная консорциальная система цепочек блоков включает в себя Quorum, разработанную компанией J.P. Morgan Chase and Co., Нью-Йорк, Нью-Йорк. Quorum может описываться как корпоративная инфраструктура цепочек блоков с контролируемым доступом, специально предназначенная для финансовых вариантов использования. Quorum вырабатывается на основе Go Ethereum, базового кода для цепочки блоков эфириума, которая предоставляется компанией Ethereum Foundation, Цуг, Швейцария.

[0023] В общем, консорциальная система цепочек блоков поддерживает транзакции между объектами, участвующими, с разрешением, в консорциальной системе цепочек блоков. Транзакция совместно используется со всеми узлами в консорциальной системе цепочек блоков, поскольку цепочка блоков реплицируется по всем узлам. Таким образом, все узлы находятся в идеальном консенсусе состояния относительно цепочки блоков. Чтобы достигать консенсуса (например, соглашения с добавлением блока в цепочку блоков), консенсусный протокол реализуется в консорциальной сети цепочек блоков. Примерный консенсусный протокол включает в себя, без ограничения, доказательство выполнения работы (POW), реализованное в сети биткоинов.

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

[0025] В соответствии с реализациями настоящего раскрытия сущности, консенсусные узлы консорциальной системы цепочек блоков выполняют консенсусный PBFT-протокол. В некоторых примерах, узлы могут отправлять консенсусные сообщения. В соответствии с реализациями настоящего раскрытия сущности, примерные консенсусные сообщения могут включать в себя, без ограничения, предварительную подготовку, подготовку и фиксацию. В некоторых реализациях, цифровая подпись и порядковый номер включены в каждое консенсусное сообщение. Цифровая подпись может использоваться для того, чтобы идентифицировать узел, который отправляет соответствующее консенсусное сообщение, и порядковый номер указывает консенсусный раунд, в котором отправлено консенсусное сообщение.

[0026] Каждый консенсусный узел может сохранять или регистрировать все принимаемых консенсусных сообщений. Если консенсусный узел (например, резервный узел) сети цепочек блоков восстанавливается после разъединения и пропускает одно или более консенсусных сообщений, он может синхронизироваться с другими узлами посредством выборки пропущенных сообщений из одного или более других консенсусных узлов. В соответствии с реализациями настоящего раскрытия сущности, выборка консенсусных сообщений может осуществляться с использованием алгоритма на основе принципа сплетничания, например, в отличие от передачи в широковещательном режиме запроса на выборку во всю сеть цепочек блоков. Поскольку консенсусные сообщения, выбираемые из другого консенсусного узла, переносят цифровую подпись соответствующего консенсусного узла, источник выбираемого консенсусного сообщения может подтверждаться (и быть доверенным). В некоторых примерах, резервный узел может иметь возможность осуществлять выборку всех пропущенных сообщений в одной синхронизации. В связи с этим, сложность синхронизации или консенсуса может уменьшаться до O(1) при идеальных условиях, по сравнению с O(n) на основе стандартной многоадресной передачи традиционной PBFT.

[0027] Фиг. 1 иллюстрирует примерное окружение 100, которое может использоваться для того, чтобы выполнять реализации настоящего раскрытия сущности. В некоторых примерах, примерное окружение 100 обеспечивает возможность объектам участвовать в консорциальной системе 102 цепочек блоков. Примерное окружение 100 включает в себя вычислительные системы 106, 108 и сеть 110. В некоторых примерах, сеть 110 включает в себя локальную вычислительную сеть (LAN), глобальную вычислительную сеть (WAN), Интернет либо комбинацию вышеозначенного и соединяет веб-узлы, пользовательские устройства (например, вычислительные устройства) и внутренние интерфейсные системы. В некоторых примерах, к сети 110 может осуществляться доступ по линии проводной и/или беспроводной связи.

[0028] В проиллюстрированном примере, вычислительные системы 106, 108 могут включать в себя любую соответствующую вычислительную систему, которая обеспечивает участие в качестве узла в консорциальной системе 102 цепочек блоков, для сохранения транзакций в цепочке 104 блоков. Примерные вычислительные устройства включают в себя, без ограничения, сервер, настольный компьютер, переносной компьютер, планшетное вычислительное устройство и смартфон. В некоторых примерах, вычислительные системы 106, 108 хостят одну или более машинореализованных услуг для взаимодействия с консорциальной системой 102 цепочек блоков. Например, вычислительная система 106 может хостить машинореализованные услуги первого объекта (например, пользователя A), к примеру, система управления транзакциями, которую использует первый объект для того, чтобы управлять своими транзакциями с одним или более других объектов (например, других пользователей). Вычислительная система 108 может хостить машинореализованные услуги второго объекта (например, пользователя B), к примеру, система управления транзакциями, которую использует второй объект для того, чтобы управлять своими транзакциями с одним или более других объектов (например, других пользователей). В примере по фиг. 1, консорциальная система 102 цепочек блоков представляется как сеть с равноправными узлами для узлов, и вычислительные системы 106, 108 предоставляют узлы первого объекта и второго объекта, соответственно, которые участвуют в консорциальной системе 102 цепочек блоков.

[0029] Фиг. 2 иллюстрирует примерную концептуальную архитектуру 200 в соответствии с реализациями настоящего раскрытия сущности. Примерная концептуальная архитектура 200 включает в себя уровень 202 объектов, уровень 204 предоставления хостящихся услуг и уровень 206 цепочек блоков. В проиллюстрированном примере, уровень 202 объектов включает в себя три объекта, объект_1 (E1), объект_2 (E2) и объект_3 (E3), причем каждый объект имеет соответствующую систему 208 управления транзакциями.

[0030] В проиллюстрированном примере, уровень 204 предоставления хостящихся услуг включает в себя интерфейсы 210 цепочек блоков для каждой системы 208 управления транзакциями. В некоторых примерах, соответствующая система 208 управления транзакциями обменивается данными с соответствующим интерфейсом 210 цепочек блоков по сети (например, по сети 110 по фиг. 1) с использованием протокола связи (например, протокола защищенной передачи гипертекста (HTTPS)). В некоторых примерах, каждый интерфейс 210 цепочек блоков предоставляет соединение связи между соответствующей системой 208 управления транзакциями и уровнем 206 цепочек блоков. Более конкретно, каждый интерфейс 210 цепочек блоков обеспечивает возможность соответствующему объекту проводить транзакции, записываемые в консорциальной системе 212 цепочек блоков уровня 206 цепочек блоков. В некоторых примерах, связь между интерфейсом 210 цепочек блоков и уровнем 206 цепочек блоков проводится с использованием удаленных вызовов процедур (RPC). В некоторых примерах, интерфейсы 210 цепочек блоков "хостят" узлы цепочек блоков для соответствующих систем 208 управления транзакциями. Например, интерфейсы 210 цепочек блоков предоставляют интерфейс прикладного программирования (API) для доступа к консорциальной системе 212 цепочек блоков.

[0031] Как описано в данном документе, консорциальная система 212 цепочек блоков предоставляется в качестве сети с равноправными узлами, включающей в себя множество узлов 214, которые неизменно записывают информацию в цепочку 216 блоков. Хотя одна цепочка 216 блоков схематично проиллюстрирована, несколько копий цепочки 216 блоков предоставляются и поддерживаются в сети 212 цепочек блоков. Например, каждый узел 214 сохраняет копию цепочки 216 блоков. В некоторых реализациях, цепочка 216 блоков сохраняет информацию, ассоциированную с транзакциями, которые выполняются между двумя или более объектов, участвующих в консорциальной системе 212 цепочек блоков.

[0032] Фиг. 3 иллюстрирует примерный консенсусный процесс 300 на основе PBFT в соответствии с реализациями настоящего раскрытия сущности. На высоком уровне, примерный консенсусный процесс 300 выполняется посредством клиентского узла (узла c 302), узла-лидера (узла 1 304) и множества резервных узлов (узла 2 306, узла 3 308 и узла 4 310) сети цепочек блоков. Консенсусный алгоритм, используемый посредством сети цепочек блоков, предположительно представляет собой PBFT. PBFT-система может включать в себя три фазы. Примерные фазы могут включать в себя, без ограничения, предварительную подготовку 312, подготовку 314 и фиксацию 316. В проиллюстрированном примере, узел 4 310 отсоединяется или является иным образом недоступным в течение трех фаз консенсусного раунда, идентифицированного посредством порядкового номера, представленного посредством переменной seq. После того, как узел 4 310 восстанавливается, он может запрашивать то, чтобы синхронизироваться 318 с другими узлами, чтобы осуществлять выборку пропущенных консенсусных сообщений, чтобы обеспечивать безопасность и живучесть PBFT-консенсуса. Чтобы достигать более быстрой синхронизации, каждый консенсусный узел может использовать свой закрытый ключ для того, чтобы снабжать цифровой подписью консенсусное сообщение, которое он отправляет. В связи с этим, каждое консенсусное сообщение переносит цифровую подпись своего отправляющего узла. Даже если отправляющий узел отсоединяется или является иным образом недоступным, приемный узел может защищенно перенаправлять консенсусное сообщение, чтобы обеспечивать живучесть сети. В дальнейшем дополнительно поясняются подробности примерного процесса 300 в нижеприведенном описании по фиг. 3.

[0033] В некоторых реализациях, клиентский узел 302 может отправлять запрос на то, чтобы добавлять одну или более транзакций в цепочку блоков. В некоторых случаях, запрос также включает в себя переменную seq, которая указывает текущий консенсусный раунд. Например, если цепочка блоков находится в третьем раунде консенсуса, переменная seq равна 3.

[0034] После приема одного или более запросов на то, чтобы добавлять одну или более транзакций в цепочку блоков из клиентского узла 302 и/или других узлов, узел 1 304 (узел-лидер) может формировать сообщение (pp1) предварительной подготовки с цифровой подписью. Кратко ссылаясь на фиг. 4, фиг. 4 иллюстрирует примерную структуру 400 консенсусного сообщения на основе PBFT в соответствии с реализациями настоящего раскрытия сущности. Как показано на фиг. 4, сообщение 402 предварительной подготовки может включать в себя view, digest, transaction, timestamp и seq. Переменная view может указывать номер v изменения вида. Изменение вида в PBFT может предоставлять живучесть посредством предоставления возможности PBFT добиваться прогресса, когда узел-лидер сбоит. Изменения вида могут инициироваться посредством тайм-аутов, которые предотвращают неограниченное ожидание посредством резервных узлов запросов, которые следует выполнять. Резервный узел может запускать таймер, когда он принимает запрос, и таймер еще не работает. Он может останавливать таймер, когда он более не ожидает то, чтобы выполнять запрос. Тем не менее, резервный узел может перезапускать таймер, если в этот момент он ожидает того, чтобы выполнять другие запросы. Если таймер резервного узла истекает в виде, резервный узел может начинать изменение вида, чтобы перемещать систему в вид v+1.

[0035] Transaction может представлять собой сообщение с запросом клиентского узла на предмет добавления транзакций в цепочку блоков. Digest может представлять собой дайджест сообщения. Timestamp может использоваться для того, чтобы обеспечивать то, что каждый клиентский запрос выполняется однократно. Timestamp могут упорядочиваться таким образом, что более поздние запросы имеют более высокие временные метки, чем более ранние. Например, timestamp может быть значением локального синхросигнала клиента, когда выдается запрос. Seq может указывать консенсусный раунд сообщения. В некоторых реализациях, цифровая подпись 404 может добавляться в сообщение 402 предварительной подготовки с использованием закрытого ключа узла-лидера. В некоторых реализациях, консенсусное сообщение, такое как сообщение 402 предварительной подготовки, может сохраняться в узле, который подтверждает сообщение до тех пор, пока не достигается стабильная контрольная точка. Контрольная точка может представлять собой состояние, сформированное посредством выполнения запроса, и контрольная точка с доказательством может упоминаться как стабильная контрольная точка.

[0036] Снова ссылаясь на фиг. 3, после формирования сообщения pp1 предварительной подготовки с цифровой подписью, узел-лидер может многоадресно передавать сообщение в резервные узлы, в узел 2 306, узел 3 308 и узел 4 310.

[0037] После того, как узел 2 306 и узел 3 308 подтверждают сообщение pp1 предварительной подготовки, они могут переходить в фазу 314 подготовки. В этот момент, узел 4 310 отсоединяется от сети цепочек блоков или является иным образом недоступным. В связи с этим, он не может принимать pp1, формировать сообщение подготовки или выполнять многоадресную передачу. Фазы предварительной подготовки и подготовки могут использоваться для того, чтобы упорядочивать запросы, отправленные в идентичном виде, даже когда узел-лидер, который предлагает упорядочение запросов, является отказавшим.

[0038] В фазе 314 подготовки, узел 2 306 может многоадресно передавать свое сообщение p2 подготовки в другие узлы и добавлять и pp1 и p2 в свой журнал регистрации. Аналогично, узел 3 308 может многоадресно передавать свое сообщение p3 подготовки в другие узлы и добавлять как pp1, так и p3 в свой журнал регистрации. Снова ссылаясь на фиг. 4, сообщение 406 подготовки может включать в себя view, digest и seq. Цифровая подпись 408 может добавляться в сообщение 406 подготовки.

[0039] Снова ссылаясь на фиг. 3, узел 2 306 и узел 3 308 могут снабжать цифровой подписью p2 и p3, соответственно, с использованием своих закрытых ключей. В некоторых реализациях, узел может переходить в фазу 316 фиксации, если он принимает 2f консенсусных сообщений, которые имеют дайджест, идентичный его дайджесту, где f является максимальным числом отказавших узлов, которое является допустимым посредством цепочки блоков на основе PBFT. Значение f может вычисляться как наибольшее целое число, меньшее или равное (n-1)/3, где n является общим числом узлов. В примерном консенсусном процессе 300, поскольку общее число узлов равно 4, f=1.

[0040] При условии, что все принимаемые дайджесты являются идентичными собственному дайджесту узла после приема p2 и p3, узел 1 304 имеет 2f сообщений дайджеста и может формировать и многоадресно передавать фиксацию c1 и добавлять p2, p3 и c1 в свой журнал регистрации. Аналогично, узел 2 306 может формировать и многоадресно передавать фиксацию c2 после приема pp1 и p3 и добавлять p3 и c2 в свой журнал регистрации. Узел 3 308 может формировать и многоадресно передавать фиксацию c3 после приема pp1 и p2 и добавлять p2 и c3 в свой журнал регистрации. В связи с этим, после того, как консенсусный узел принимает консенсусное сообщение с цифровой подписью из другого узла, консенсусное сообщение и цифровая подпись могут локально сохраняться в приемном узле. Консенсусные сообщения с цифровой подписью могут сортироваться на основе соответствующего значения seq, чтобы обеспечивать корректный порядок сообщений.

[0041] Снова ссылаясь на фиг. 4, сообщение 410 фиксации может включать в себя view, digest и seq. Цифровая подпись 412 может добавляться в сообщение 410 фиксации.

[0042] Снова ссылаясь на фиг. 3, при условии, что узел 4 310 восстанавливается и повторно соединяется с сетью цепочек блоков, он может начинать фазу 318 синхронизации для того, чтобы осуществлять выборку пропущенных сообщений в течение своего времени простоя. В некоторых реализациях, чтобы избегать истечения таймера узла 4 310 в виде и начала изменения вида, таймер выборки может задаваться таким образом, что он заканчивается до тайм-аута изменения вида.

[0043] В ответ на окончание таймера выборки, узел 4 310 может определять один или более консенсусных узлов, которые имеют консенсусные сообщения, которые узел 4 310 пропускает. Узел 4 310 может случайно выбирать из одного или более консенсусных узлов то, чтобы отправлять запрос на выборку на основе алгоритма на основе принципа сплетничания. Запрос на выборку может включать в себя номер seq узла и типы консенсусных сообщений, которые пропущены.

[0044] В примерном консенсусном процессе 300, типы консенсусных сообщений, которые пропущены, включают в себя предварительную подготовку, подготовку и фиксацию. В связи с этим, запрос на выборку может иметь форму seq<pp, p, c>. В некоторых примерах, узел 4 310 случайно выбирает узел 3 308 на основе алгоритма на основе принципа сплетничания, чтобы осуществлять выборку пропущенных консенсусных сообщений. Узел 3 308 регистрирует pp1, p2, p3, c1, c2 и c3 в консенсусном раунде seq. Поскольку зарегистрированные сообщения включают в себя цифровые подписи выдающих узлов, их подлинность может быть верифицируемой посредством использования соответствующих открытых ключей выдающих узлов. Поскольку узел 3 308 регистрирует три консенсусных сообщения c1, c2 и c3, которые превышают или равны 2f+1, он может предоставлять сообщения pp1, p2, p3, c1, c2, c3 с цифровой подписью в узел 4 310. В некоторых случаях, если узел, который принимает запрос на выборку, регистрирует меньше 2f+1 консенсусных сообщений, запрашивающий узел может осуществлять выборку из других узлов в системе, по меньшей мере, до тех пор, пока 2f+1 консенсусных сообщений не будут получены. В примерном процессе 300, узел 4 310 может осуществлять выборку всех консенсусных сообщений при условии, что любой из узла 1 304, узла 2 306 и узла 3 308 соединяется с сетью цепочек блоков. Следовательно, восстановленный узел, возможно, должен выполнять синхронизацию только однократно, чтобы осуществлять выборку пропущенных сообщений. В связи с этим, сетевые ресурсы могут экономиться, и эффективность системы может повышаться.

[0045] Фиг. 5 иллюстрирует примерный процесс 500, который может выполняться в соответствии с реализациями настоящего раскрытия сущности. Для ясности представления, нижеприведенное описание, в общем, описывает примерный процесс 500 в контексте других чертежей в этом описании. Тем не менее, следует понимать, что примерный процесс 500 может выполняться, например, посредством любой системы, окружения, программного обеспечения и аппаратных средств либо комбинации систем, окружений, программного обеспечения и аппаратных средств, надлежащим образом. В некоторых реализациях, различные этапы примерного процесса 500 могут выполняться параллельно, в комбинации, циклически или в любом порядке.

[0046] На 502, резервный узел PBFT-системы, повторно соединенной с сетью цепочек блоков на основе PBFT, задает таймер, который заканчивается до тайм-аута изменения вида. На 504, резервный узел отправляет, в другой консенсусный узел, запрос на одно или более консенсусных сообщений, пропущенных посредством резервного узла, в ответ на окончание таймера. В некоторых реализациях, запрос включает в себя порядковый номер, который указывает число консенсусных раундов. В некоторых реализациях, одно или более консенсусных сообщений включают в себя одно или более сообщений предварительной подготовки, сообщений подготовки и сообщений фиксации, пропущенных посредством первого консенсусного узла.

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

[0048] На 508, резервный узел определяет то, что блок транзакций является достоверным, если количество сообщений фиксации, включенных в принимаемые одно или более консенсусных сообщений, превышает или равно 2f+1, где f является максимальным числом отказавших узлов, которое является допустимым посредством цепочки блоков на основе PBFT. В некоторых реализациях, резервный узел дополнительно принимает один или более порядковых номеров, соответствующих одному или более консенсусных сообщений. Каждый порядковый номер указывает число консенсусных раундов, ассоциированных с соответствующим консенсусным сообщением.

[0049] В некоторых реализациях, резервный узел дополнительно отправляет блок транзакций в цепочку блоков и базу данных состояний, если блок транзакций определяется как достоверный. В некоторых реализациях, резервный узел дополнительно отправляет в третий консенсусный узел, отличающийся от консенсусного узла и резервного узла, запрос на второе одно или более консенсусных сообщений, пропущенных посредством консенсусного узла, в ответ на окончание таймера, и если блок транзакций определяется как недостоверный. Резервный узел принимает, из третьего консенсусного узла, второе одно или более консенсусных сообщений, снабженных цифровой подписью посредством закрытого ключа соответствующего консенсусного узла, который формирует соответствующие вторые одно или более консенсусных сообщений. Резервный узел затем определяет то, что блок транзакций является достоверным, если количество сообщений фиксации, включенных в одно или более консенсусных сообщений и во вторые одно или более консенсусных сообщений, превышает или равно 2f+1.

[0050] Реализации предмета изобретения, описанного в этом подробном описании, могут реализовываться таким образом, чтобы реализовывать конкретные преимущества или технические эффекты. Например, реализации настоящего раскрытия сущности разрешают консенсусным узлам консорциальной цепочки блоков отправлять консенсусные сообщения с цифровой подписью с порядковым номером, который идентифицирует консенсусный раунд соответствующего сообщения. Консенсусные сообщения с цифровой подписью могут быть доверенными посредством резервного узла с возможностью быть защищенными, и источники сообщений могут верифицироваться. В связи с этим, безопасность и конфиденциальность данных консорциальной цепочки блоков может повышаться. Кроме того, если резервный узел восстанавливается после разъединения, он может синхронизироваться с другими узлами посредством выборки пропущенных сообщений из другого случайного консенсусного узла вместо широковещательной передачи запроса на выборку во всю сеть. Поскольку сообщения, выбираемые из другого консенсусного узла, переносят цифровую подпись выдающего узла, источники сообщений могут быть доверенными, и резервный узел может иметь возможность осуществлять выборку всех пропущенных сообщений из одного узла через одну синхронизацию. В связи с этим, сложность синхронизации или консенсуса может уменьшаться до O(1) в идеальных условиях, по сравнению с O(n) на основе стандартного способа многоадресной передачи в PBFT. Соответственно, вычислительные и сетевые ресурсы могут экономиться, и эффективность PBFT-системы может повышаться.

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

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

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

[0054] Процессоры для выполнения компьютерной программы включают в себя, в качестве примера, микропроцессоры общего и специального назначения и любые один или более процессоров любого вида цифрового компьютера. В общем, процессор принимает инструкции и данные из постоянного запоминающего устройства или оперативного запоминающего устройства, или из того и из другого. Существенные элементы компьютера представляют собой процессор для выполнения действий в соответствии с инструкциями и одно или более запоминающих устройств для сохранения инструкций и данных. Обычно, компьютер также должен включать в себя или функционально соединяться с возможностью принимать данные или передавать данные либо выполнять и то, и другое из/в одно или более устройств хранения данных большой емкости для сохранения данных. Компьютер может встраиваться в другое устройство, например, в мобильное устройство, персональное цифровое устройство (PDA), игровую приставку, приемное устройство на основе глобальной системы позиционирования (GPS) или портативное устройство хранения данных. Устройства, подходящие для сохранения компьютерных программных инструкций и данных, включают в себя энергонезависимое запоминающее устройство, носители и запоминающие устройства, включающие в себя, в качестве примера, полупроводниковые запоминающие устройства, магнитные диски и магнитооптические диски. Процессор и запоминающее устройство могут дополняться посредством или включаться в логическую схему специального назначения.

[0055] Мобильные устройства могут включать в себя переносные телефоны, абонентские устройства (UE), мобильные телефоны (например, смартфоны), планшетные компьютеры, носимые устройства (например, интеллектуальные часы и интеллектуальные очки), имплантируемые устройства в человеческом теле (например, биодатчики, кохлеарные имплантаты) либо другие типы мобильных устройств. Мобильные устройства могут обмениваться данными в беспроводном режиме (например, с использованием радиочастотных (RF) сигналов) с различными сетями связи (описаны ниже). Мобильные устройства могут включать в себя датчики для определения характеристик текущего окружения мобильного устройства. Датчики могут включать в себя камеры, микрофоны, бесконтактные датчики, GPS-датчики, датчики движения, акселерометры, датчики окружающего света, датчики содержания влаги, гироскопы, компасы, барометры, датчики отпечатков пальцев, системы распознавания лиц, RF-датчики (например, Wi-Fi- и сотовые радиомодули), тепловые датчики или другие типы датчиков. Например, камеры могут включать в себя обращенную по ходу движения или против движения камеру с подвижными или неподвижными линзами, флэш-памятью, датчиком изображений и процессором изображений. Камера может представлять собой мегапикселную камеру, допускающую захват деталей для распознавания лиц и/или радужной оболочки глаз. Камера наряду с процессором данных и аутентификационной информацией, сохраненной в запоминающем устройстве или доступной удаленно, может формировать систему распознавания лиц. Система распознавания лиц либо один или более датчиков, например, микрофонов, датчиков движения, акселерометров, GPS-датчиков или RF-датчиков, могут использоваться для аутентификации пользователя.

[0056] Чтобы предоставлять взаимодействие с пользователем, варианты осуществления могут реализовываться на компьютере, имеющем устройство отображения и устройство ввода, например, жидкокристаллический дисплей (ЖК-дисплей) или дисплей на органических светоизлучающих диодах (OLED)/в стиле виртуальной реальности (VR)/в стиле дополненной реальности (AR) для отображения информации пользователю и сенсорный экран, клавиатуру и указательное устройство, посредством которых пользователь может предоставлять ввод в компьютер. Другие виды устройств также могут использоваться для того, чтобы предоставлять взаимодействие с пользователем; например, обратная связь, предоставленная пользователю, может представлять собой любую форму сенсорной обратной связи, например, визуальную обратную связь, акустическую обратную связь или тактильную обратную связь; и ввод от пользователя может приниматься в любой форме, включающей в себя акустический, речевой или тактильный ввод. Помимо этого, компьютер может взаимодействовать с пользователем посредством отправки документов и приема документов из устройства, которое используется пользователем; например, посредством отправки веб-страниц в веб-браузер на клиентском устройстве пользователя в ответ на запросы, принимаемые из веб-браузера.

[0057] Варианты осуществления могут реализовываться с использованием вычислительных устройств, взаимно соединенных посредством любой формы или среды для проводной или беспроводной цифровой передачи данных (либо комбинации вышеозначенного), например, сети связи. Примеры взаимно соединенных устройств представляют собой клиент и сервер, в общем, удаленные друг от друга, которые типично взаимодействуют через сеть связи. Клиент, например, мобильное устройство, может выполнять транзакции непосредственно, с сервером или через сервер, например, выполнять транзакции покупки, продажи, оплаты, выдачи, отправки или ссуды либо авторизовать их. Такие транзакции могут выполняться в реальном времени таким образом, что действие и ответ являются близкими по времени; например, человек воспринимает действие и ответ как возникающие практически одновременно, разность времен для ответа после действия человека составляет меньше 1 миллисекунды (мс) или меньше 1 секунды (с), либо ответ осуществляется без намеренной задержки с учетом ограничений обработки системы.

[0058] Примеры сетей связи включают в себя локальную вычислительную сеть (LAN), сеть радиодоступа (RAN), общегородскую вычислительную сеть (MAN) и глобальную вычислительную сеть (WAN). Сеть связи может включать в себя все или часть из Интернета, другой сети связи либо комбинации сетей связи. Информация может передаваться по сети связи согласно различным протоколам и стандартам, включающим в себя стандарт долгосрочного развития (LTE), 5G, IEEE 802, Интернет-протокол (IP) либо другие протоколы или комбинации протоколов. Сеть связи может передавать голосовые, видео-, биометрические данные или аутентификационные данные или другую информацию между соединенными вычислительными устройствами.

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


УПРОЩЕНИЕ КОНСЕНСУСА В ЦЕПОЧКАХ БЛОКОВ ПО ПРИНЦИПУ ПРАКТИЧНОЙ ОТКАЗОУСТОЙЧИВОСТИ НА ОСНОВЕ ВИЗАНТИЙСКОГО СОГЛАШЕНИЯ И СИНХРОНИЗАЦИИ УЗЛОВ
УПРОЩЕНИЕ КОНСЕНСУСА В ЦЕПОЧКАХ БЛОКОВ ПО ПРИНЦИПУ ПРАКТИЧНОЙ ОТКАЗОУСТОЙЧИВОСТИ НА ОСНОВЕ ВИЗАНТИЙСКОГО СОГЛАШЕНИЯ И СИНХРОНИЗАЦИИ УЗЛОВ
УПРОЩЕНИЕ КОНСЕНСУСА В ЦЕПОЧКАХ БЛОКОВ ПО ПРИНЦИПУ ПРАКТИЧНОЙ ОТКАЗОУСТОЙЧИВОСТИ НА ОСНОВЕ ВИЗАНТИЙСКОГО СОГЛАШЕНИЯ И СИНХРОНИЗАЦИИ УЗЛОВ
УПРОЩЕНИЕ КОНСЕНСУСА В ЦЕПОЧКАХ БЛОКОВ ПО ПРИНЦИПУ ПРАКТИЧНОЙ ОТКАЗОУСТОЙЧИВОСТИ НА ОСНОВЕ ВИЗАНТИЙСКОГО СОГЛАШЕНИЯ И СИНХРОНИЗАЦИИ УЗЛОВ
УПРОЩЕНИЕ КОНСЕНСУСА В ЦЕПОЧКАХ БЛОКОВ ПО ПРИНЦИПУ ПРАКТИЧНОЙ ОТКАЗОУСТОЙЧИВОСТИ НА ОСНОВЕ ВИЗАНТИЙСКОГО СОГЛАШЕНИЯ И СИНХРОНИЗАЦИИ УЗЛОВ
УПРОЩЕНИЕ КОНСЕНСУСА В ЦЕПОЧКАХ БЛОКОВ ПО ПРИНЦИПУ ПРАКТИЧНОЙ ОТКАЗОУСТОЙЧИВОСТИ НА ОСНОВЕ ВИЗАНТИЙСКОГО СОГЛАШЕНИЯ И СИНХРОНИЗАЦИИ УЗЛОВ
Источник поступления информации: Роспатент

Всего документов: 65

Похожие РИД в системе



Похожие не найдены