WO2020032824A1 - Method for consensus decision making in a distributed computer system - Google Patents

Method for consensus decision making in a distributed computer system Download PDF

Info

Publication number
WO2020032824A1
WO2020032824A1 PCT/RU2019/000510 RU2019000510W WO2020032824A1 WO 2020032824 A1 WO2020032824 A1 WO 2020032824A1 RU 2019000510 W RU2019000510 W RU 2019000510W WO 2020032824 A1 WO2020032824 A1 WO 2020032824A1
Authority
WO
WIPO (PCT)
Prior art keywords
round
nodes
node
stage
value
Prior art date
Application number
PCT/RU2019/000510
Other languages
French (fr)
Russian (ru)
Inventor
Максим Михайлович МИХАЙЛЕНКО
Игорь Олегович БЕЛОУСОВ
Original Assignee
Максим Михайлович МИХАЙЛЕНКО
Игорь Олегович БЕЛОУСОВ
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Максим Михайлович МИХАЙЛЕНКО, Игорь Олегович БЕЛОУСОВ filed Critical Максим Михайлович МИХАЙЛЕНКО
Publication of WO2020032824A1 publication Critical patent/WO2020032824A1/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N7/00Computing arrangements based on specific mathematical models
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q99/00Subject matter not provided for in other groups of this subclass

Definitions

  • the invention relates to the field of digital data processing using electrical devices, in particular to methods of computer systems based on specific computational models designed for specific functions, namely self-tuning control systems, i.e. systems that automatically select the optimal mode of operation to achieve a given criterion.
  • a hash is a sequence of characters formed by using a mathematical function that consists in converting input data of an arbitrary length into an (output) line of a fixed, shorter length. With any change in the input data, the hash of this data will be different from the hash of unchanged input data.
  • Node - a computer that has communications with other computers on which the distributed system software runs.
  • the Merkle tree is a complete binary tree, in the leaf vertices of which hashes from data blocks are placed, and the inner vertices contain hashes from adding values in child vertices.
  • Merkle tree confirmation is one branch of the full Merkle tree of the block, in which there is information about only one transaction (the confirmation of which is formed), and all other vertices contain only hashes from neighboring branches.
  • Valid MTP - an information block that contains MTP digital signatures of more than 50% + 1 system nodes.
  • a digital signature is a small sequence of characters which, using cryptographic transformations, unambiguously allows you to determine that it was used for signing information and the user's private key signing this information.
  • the Byzantine task (the task of the Byzantine generals) - (English Byzantine fault tolerance (BFT), Byzantine agreement problem, Byzantine generals problem, Byzantine failure) - in cryptology the task of the interaction of several remote subscribers who received orders from one center. Some subscribers, including the center, may be intruders. It is necessary to develop a unified action strategy that will be beneficial for subscribers.
  • BFT Byzantine fault tolerance
  • Byzantine behavior to coordinate the result of a new round of the system, it is important that all nodes work according to the same rules.
  • This behavior is much more difficult to determine than the usual disconnection of a node from the system. If the host is disconnected from the network, the message simply does not arrive on time. In the case of the Byzantine behavior of the node, the message from such a node comes to other nodes, but the message is completely or partially false. Therefore, additional verification is necessary in order to identify such node behavior.
  • N F (50% + 1) - a simplified designation of the ratio of the number of idle nodes and all nodes in a distributed system.
  • N indicate the total number of nodes in a distributed system
  • F is the number of idle nodes.
  • N 2F + 1 and 50% + 1 denote such a system, where F more idle nodes account for another F + l (50% + 1) workers.
  • System Values The internal state of the system, expressed as a collection of individual subsets. For example, in distributed ledger systems, this is the aggregate of current registry balances.
  • Proposed subsets of the new value of the system a request to change the value of the system in part of a subset of it. For example, in distributed ledger systems, this is a transaction from a client for a change in a balance sheet.
  • Distributed system - a set of nodes physically located at a distance from each other, having a connection between each other, performing one common function (remoteness strongly depends on the nature of the distributed system, both distribution within the country and inside the submarine are possible)
  • System round - a time interval measured from the beginning of the coordination of a new value by the system until the end of the coordination of a new value by the system.
  • the client sends a message to the Primary node.
  • Primary assigns the next N to this message and sends a broadcast message PRE-PREP ARE (pre-preparation) to all replicas.
  • each node from replicas Upon receipt of a PRE-PREPARE message, each node from replicas checks it for compliance with the current View and the N set at the last stage, and if the verification is successful, sends a PREPARE message (preparation) to all nodes.
  • the node When receiving a PREPARE message, the node checks that it matches the current View and N and the PREPREPARE message it has. If the node receives the corresponding PREPARE message from% of the system nodes, it manages the COMMIT (commit) message for all nodes.
  • the node checks that it matches the current View and N and the PREPARE message it has. If the node receives the corresponding COMMIT message from% of the system nodes, it executes the client message, changing the state of the system and sends the result to the client.
  • the client expects to receive the result of its message from the nodes of the system. When he receives the same messages from the Uz nodes of the system, this will be the final result of processing his request.
  • step 6 Due to the fact that all interactions between nodes are carried out asynchronously, it is not known the final time the client receives the result of the system, which he receives in step 6. This is due to the fact that in step 6, the client must wait 1 to get the result / 3 replies. But if at stages 5 inclusive you can still to set the time periods in which this or that stage should be completed, then in stage 6 there is no need to set such periods, since the system itself does not depend on this. Thus, before the start of the method, it is impossible to determine at what time the client will receive data that his request has been completed.
  • Clients send requests only to the current Primary node. This means that if this node is disconnected, the system will not be operational until a new Primary is assigned.
  • the system can work only if the system has no more than Uz nodes with Byzantine behavior.
  • the system must have an additional subsystem responsible for collecting and delivering to Primary a change in the value of the system from clients of the system, which introduces additional time costs.
  • each node sends a message to the leader of this round, which contains the current value accepted by the node, the round number and a confirmation certificate from the end of the previous round (at least F + 1 ⁇ notification> or ⁇ fix> messages from the previous round from other nodes system)
  • the leader collects at least f + I valid messages ⁇ status> to form a status confirmation.
  • the leader of this round further forms a new value, which is based on the confirmed state and sends to all nodes of the system, including himself.
  • any node checks it and verifies the confirmation of the leader’s state. If the test passes, then the new value is proposed as the new state of this node in this round.
  • the leader At the end of the stage, if the node receives two messages valid ⁇ fix> but with different values from the leader, then the leader exhibits a dual behavior. If the node received f + I messages from other nodes ⁇ fixation> with the same new value and does not receive information about the dual behavior of the leader, then it takes this value.
  • the node After, at the end of stage 3, the node receives a new value from the leader, he creates and sends out a ⁇ notification> about this to all nodes of the system.
  • the node At the end of the stage, if the node receives a ⁇ notification> from another node, it generates a certificate of a new value (at least f + I ⁇ notification> or ⁇ fix> messages from the last round from other nodes of the system). If the node receives several valid ⁇ notification> messages, it can select any or none of them for the certificate. As you can see from the description, this method is similar to that presented in the article “Practical Byzantine Fault Tolerance”. However, in this article, special attention is drawn to the fact that all the actions described in the stages of the method occur synchronously.
  • the article does not describe the method of finding such a leader, the number of rounds for which it is proposed to stop choosing an honest leader (freezing the leader) and the method of changing leadership. All of these actions are suggested. develop yourself. What does not allow to directly use this optimization.
  • the system must have an additional subsystem responsible for collecting and delivering to the leader the change in the value of the system from customers of the system, which introduces additional time costs.
  • the present invention is intended to solve the technical problem of accelerating the process of reliable coordination of the adoption by nodes of a single decision in a distributed system to form a new common value.
  • the technical result of the present invention is to optimize the procedure for agreeing on a common solution between independent peer-to-peer automatic (computerized) centers, necessary to get a consistent round result in a distributed network.
  • the specified technical result when using the proposed method is achieved through the use of fewer stages in the round, relative to existing methods used to obtain a consistent round result in a distributed network, which reduces the time spent each round.
  • Each node in the system has the ability to exchange information over data channels with each other node in the system.
  • Each node of the system has information about each other node of the system (address in the communication system between nodes providing data transfer between nodes, a public key for identifying a node in the system), which allows each node to communicate through any data channel with any other nodes in the system .
  • Each node of the system has information about each other node of the system, which allows each node to use cryptography to uniquely identify whether a digital signature of the information message belongs to any of the nodes of the system.
  • a system consisting of a set of nodes, depending on the method of coordinating the result, can work with a different indicator of the number of failed nodes or nodes with Byzantine behavior. If the number of such nodes is less than the threshold, the system will not be able to work.
  • the essence of the proposed method consists in the sequential execution of the round of approval of a new value of the system. Each round, the nodes of the system agree on a new value, passing through the following stages:
  • Each node of the system sends to each node of the system, including itself, through the transmission channel, a message about the start of the round. This message conveys the node's proposed subsets of the new system value, the number of the new round, and the valid MTP with the number of the previous round and the value of the round repeat counter, if the round has not been completed at least once.
  • the nodes for processing in the next stage select messages with the maximum number of the previous round. If there are message options with the same maximum round number but different valid MTP with the number of the previous round, the node selects those messages that indicate the maximum value of the round repeat counter.
  • each working node receives the same number of messages about the beginning of the round with a new round number from other nodes.
  • the system contains nodes with Byzantine behavior, then from such a node other nodes can receive a message with a round number less than the number of the new round.
  • the node that receives a message from another node with a round number less than the new round number from it sends a valid MTP with the number of the previous round stored in the database of this node in response to this node.
  • the second stage ⁇ end of the round>.
  • Each node from messages selected at the previous stage, extracts a subset of the new value systems recorded in them. Then each such node sorts these subsets in the same way (the sorting method does not matter, it is only important that the sorting method is the same on all nodes). After that, the nodes check the obtained sequence of subsets for the possibility of calculating a new value. When checking the subsets for the possibility of calculating a new value, it is checked whether it is possible to carry out the calculation based on the given initial conditions and the given operations with them.
  • a part of the subsets that cannot be executed a repeated subset, a deliberately false subset, a subset which cannot be calculated based on the current value, are removed from the list of subsets of the value. Then the node calculates the new value and sends to all the nodes, including itself, a message containing the hash of the new value, the round number and the highest value of the round repeat counter from the selected messages and verifying the digital signature of this node.
  • the node At the end of the stage, the node accumulates messages from all nodes of the system, containing the hash of the new value, the round number and the value of the round repeat counter.
  • a node may be in the following situations: ⁇ round failure> The node received less than 50% of the hash signatures with the same round number and the value of the round repeat counter. If the node finds itself in such a situation, it increases the value of the round repeat counter and begins to negotiate the new value of the round from the very beginning.
  • ⁇ round success> The node received more than 50% of the hash signatures with the same round number and the value of the round repeat counter, and 50% + 1 identical hashes were accumulated. Round coordination is considered successful, and therefore, in a distributed system, a single agreed decision is made. The node is ready to start the execution of a new round of decision-making, if necessary, the value of the counter of repetitions of the round of the node is set to 0.
  • the system contains at least one node with Byzantine behavior, it can at the first stage send messages to the rest with different subsets of a new meaning. This will lead to the fact that no node in the system will collect 50% + 1 identical signed hashes of a new value, which means that until the round ends with an agreed decision on the new value. In order that the system in this case could develop a consistent value, it is proposed to add the correction stages:
  • the first stage ⁇ beginning of correction> A node that did not receive 50% + 1 identical answers at the stage ⁇ end of round> creates a message containing the number of the current round and messages received from other nodes at the stage ⁇ beginning of a round> containing the subsets of the new system value proposed by the node, the number of the new round, and the valid MTP with the number of the previous round. Next, the node sends such a message to each node.
  • nodes in the system that collected 50% + 1 of the same digital signatures at the stage ⁇ end of round>, then such nodes transmit a response message to nodes that did not receive 50% + 1 of the same answers at stage ⁇ end of round> and these nodes begin to synchronize with the new value of the system.
  • Each node excludes from consideration at this stage messages ⁇ beginning of a round> received from nodes identified as (nodes with Byzantine behavior) and then repeats the stage ⁇ end of round>.
  • the proposed method When using the proposed method, it is possible to achieve coordination of a new value of the system with idle 50% + 1 nodes in 2 stages, if there are nodes in the round with Byzantine behavior in 4 stages. Due to the fact that the client can offer his change in the value of the system to any of the nodes of the system, while not limiting the number of such offers in one round, the impossibility of censorship is achieved. Also in this regard, there is no need to create an additional subsystem for storing and transferring applications from clients to the system.
  • An example of the benefits achieved by using the proposed method is the use of the proposed method for an auction. Suppose you want to hold an auction in which participants who are physically located in any country can participate. At the same time, the auction process should be as automated as possible, fair (no bidder can gain an advantage in bidding by influencing the auction process) and safe (creating significant obstacles to an unfair stopping bidding).
  • the computer of each participant is a node of the general distributed (decentralized) system. All bidders are equal and are identified using cryptographic keys. The announcement of the lot is accompanied by the announcement of its price, as well as auction rules (type of auction, auction step, number of auction rounds before winning).
  • Auction begins with the fact that one or more bidders offer to put up a lot for auction.
  • the first item to be auctioned is a lot with a lower initial price.
  • Participants accumulate a message from all nodes, check signatures for these messages. Then retrieved from messages all proposals, sort them, and begin to evaluate the result of this round.
  • the result of the round may be:
  • the node After finding out the result of the round, the node sends it in a signed message to all other participants. If the node received the same result from more than 50% of the participants, the participant considers this round completed and proceeds to work on the next round.
  • this method can be used to create conventional Internet services with increased reliability.
  • cloud systems blockchain platforms or distributed registry platforms.

Landscapes

  • Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Computing Systems (AREA)
  • Evolutionary Computation (AREA)
  • Computational Mathematics (AREA)
  • Artificial Intelligence (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • General Engineering & Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Algebra (AREA)
  • Business, Economics & Management (AREA)
  • General Business, Economics & Management (AREA)
  • Hardware Redundancy (AREA)

Abstract

The invention relates to the field of processing digital data using electronic devices, more particularly to the processes of computer systems that are based on specific computation models intended for specific functions, and specifically to self-adaptive control systems, i.e. systems that automatically select an optimal operating mode in order to meet a given criterion. The technical result of the present invention is that of optimizing the procedure for agreeing a common decision between independent equal automated (computerized) centres which is necessary in order to achieve an agreed outcome of a round in a distributed network. A method for consensus decision making in a distributed computer system consists in each node sending a message to all nodes about the start of a round, then each node calculates a new value and sends it to all nodes; if a new value is not calculated, the nodes analyze a common matrix of messages and exclude the messages from nodes identified as exhibiting Byzantine behaviour, whereupon a new value is calculated and a decision is made. The method is applicable in any distributed system where agreed joint action is required, such as cloud systems, blockchain platforms, smart home systems, auctions, and others.

Description

Способ принятия единого согласованного решения в  The way to make a single agreed decision in
распределенной системе ЭВМ  distributed computer system
Область техники, к которой относится изобретение FIELD OF THE INVENTION
Изобретение относится к области обработки цифровых данных с помощью электрических устройств, в частности к методам компьютерных систем, основанных на специфических вычислительных моделях, предназначенных для специфических функций, а именно самонастраивающимся системам управления, т.е. системам, автоматически выбирающим оптимальный режим работы для достижения заданного критерия.  The invention relates to the field of digital data processing using electrical devices, in particular to methods of computer systems based on specific computational models designed for specific functions, namely self-tuning control systems, i.e. systems that automatically select the optimal mode of operation to achieve a given criterion.
Глоссарий  Glossary
С целью обеспечения достаточности раскрытия изобретения и обеспечения возможности проведения информационного поиска в отношении заявляемого технического решения ниже приведен перечень терминов, используемых в настоящем описании.  In order to ensure the sufficiency of the disclosure of the invention and to enable the information search in relation to the claimed technical solution, the following is a list of terms used in the present description.
Хеш - последовательность символов, формируемая с помощью применения математической функции, заключающейся в преобразовании входных данных произвольной длины в (выходную) строку установленной, меньшей длины. При любом изменении входных данных хеш этих данных будет отличаться от хеша неизменных входных данных.  A hash is a sequence of characters formed by using a mathematical function that consists in converting input data of an arbitrary length into an (output) line of a fixed, shorter length. With any change in the input data, the hash of this data will be different from the hash of unchanged input data.
Узел— ЭВМ, имеющая средства связи с другими ЭВМ, на которой исполняется программное обеспечение распределенной системы.  Node - a computer that has communications with other computers on which the distributed system software runs.
МТР— подтверждение дерева Меркла (Merkle Tree Proof). Деревом Меркла называют полное двоичное дерево, в листовые вершины которого помещены хеши от блоков данных, а внутренние вершины содержат хеши от сложения значений в дочерних вершинах. Подтверждение дерева Меркла - это одна ветка полного дерева Меркла блока, в котором есть информация только об одной транзакции (подтверждение которой и формируется), а все остальные вершины содержат лишь хеши от соседних веток. При предоставлении МТР, в случае верности всех хешей узлов и совпадении корневых хешей МТР и блока можно однозначно утверждать, что МТР является частью блока. MTP - confirmation of the Merkle Tree Proof. The Merkle tree is a complete binary tree, in the leaf vertices of which hashes from data blocks are placed, and the inner vertices contain hashes from adding values in child vertices. Merkle tree confirmation is one branch of the full Merkle tree of the block, in which there is information about only one transaction (the confirmation of which is formed), and all other vertices contain only hashes from neighboring branches. When MTP is provided, if all hashes of the nodes are true and the root hashes of the MTP and the block coincide, we can clearly state that the MTP is part of the block.
Валидный МТР — блок информации, который содержит МТР цифровые подписи более 50%+ 1 узлов системы.  Valid MTP - an information block that contains MTP digital signatures of more than 50% + 1 system nodes.
Цифровая подпись — небольшая последовательность символов которая с помощью криптографических преобразований однозначно позволяет определить то, что для ее создания использовалось подписываемая информация и закрытый ключ пользователя, подписывающий эту информацию.  A digital signature is a small sequence of characters which, using cryptographic transformations, unambiguously allows you to determine that it was used for signing information and the user's private key signing this information.
Византийская задача (задача византийских генералов) — (англ. Byzantine fault tolerance (BFT), Byzantine agreement problem, Byzantine generals problem, Byzantine failure) — в криптологии задача взаимодействия нескольких удаленных абонентов, которые получили приказы из одного центра. Часть абонентов, включая центр, могут быть злоумышленниками. Нужно выработать единую стратегию действий, которая будет выигрышной для абонентов.  The Byzantine task (the task of the Byzantine generals) - (English Byzantine fault tolerance (BFT), Byzantine agreement problem, Byzantine generals problem, Byzantine failure) - in cryptology the task of the interaction of several remote subscribers who received orders from one center. Some subscribers, including the center, may be intruders. It is necessary to develop a unified action strategy that will be beneficial for subscribers.
Византийское поведение — для согласования результата нового раунда системы важно, чтобы все узлы работали по одним и тем же правилам. Поведение узла, при котором он участвует в работе согласования нового значения, посылая запросы другим узлам и отвечая на их запросы, но при этом систематически или изредка допускает отход от установленных правил принято называть Византийским поведением. Такое поведение гораздо сложнее определяется, чем обычное отключение узла из системы. В случае отключения узла от сети от него просто не приходит вовремя сообщение. В случае Византийского поведения узла, сообщение от такого узла приходит другим узлам, но при этом сообщение полностью или частично ложное. Поэтому необходима дополнительная проверка с целью выявления такого поведения узлов. Byzantine behavior - to coordinate the result of a new round of the system, it is important that all nodes work according to the same rules. The behavior of the node, in which it participates in the work of reconciling a new meaning, sending requests to other nodes and responding to their requests, but at the same time systematically or occasionally allows a departure from the established rules, is usually called Byzantine behavior. This behavior is much more difficult to determine than the usual disconnection of a node from the system. If the host is disconnected from the network, the message simply does not arrive on time. In the case of the Byzantine behavior of the node, the message from such a node comes to other nodes, but the message is completely or partially false. Therefore, additional verification is necessary in order to identify such node behavior.
N,F (50%+ 1) — упрощенное обозначение соотношения количества неработающих узлов и всех узлов в распределенной системе. N обозначают общее количество узлов в распределенной системе, F — количество неработающих узлов. N=2F+1 и 50%+1 обозначают такую систему, где на F неработающих узлов приходится еще F+l (50%+ 1) работающих. Асинхронные системы чаще всего описываются N=3F+1, что означает, что для нормальной работы системы на F неработающих узлов должно приходиться не менее 2F+1 работающих узлов.  N, F (50% + 1) - a simplified designation of the ratio of the number of idle nodes and all nodes in a distributed system. N indicate the total number of nodes in a distributed system, F is the number of idle nodes. N = 2F + 1 and 50% + 1 denote such a system, where F more idle nodes account for another F + l (50% + 1) workers. Asynchronous systems are most often described by N = 3F + 1, which means that for normal operation of the system, there must be at least 2F + 1 working nodes on F idle nodes.
Значения системы— внутреннее состояние системы, выражающееся как совокупность отдельных подмножеств. Например, в системах распределенных реестров это совокупность текущих балансов реестра.  System Values — The internal state of the system, expressed as a collection of individual subsets. For example, in distributed ledger systems, this is the aggregate of current registry balances.
Предлагаемые подмножества нового значения системы— запрос на изменение значения системы в части некоторого его подмножества. Например, в системах распределенных реестров это транзакция от клиента на изменение в каком-либо балансе.  Proposed subsets of the new value of the system — a request to change the value of the system in part of a subset of it. For example, in distributed ledger systems, this is a transaction from a client for a change in a balance sheet.
Распределенная система (система)— совокупность узлов, физически находящихся в удалении друг от друга, имеющих связь между друг другом, выполняющих одну общую функцию (удаленность сильно зависит от характера распределенной системы, возможны как распределённость внутри страны, так и внутри подводной лодки)  Distributed system (system) - a set of nodes physically located at a distance from each other, having a connection between each other, performing one common function (remoteness strongly depends on the nature of the distributed system, both distribution within the country and inside the submarine are possible)
Раунд системы — временной интервал, измеряемый от начала согласования нового значения системой, до окончания согласования нового значения системой.  System round - a time interval measured from the beginning of the coordination of a new value by the system until the end of the coordination of a new value by the system.
Уровень техники  State of the art
Определение оптимального с позиции экономии времени и вычислительных мощностей порядка согласования общего решения между независимыми равноправными автоматическими (компьютеризированными) центрами является важной современной задачей. Разные способы решения такой задачи сейчас применяются во многих отраслях, где необходимо минимизировать случайные ошибки электронного оборудования, например, в космических или подводных аппаратах. Также эти способы нашли применения для построения помехозащищенных распределенных компьютерных систем. Determining the optimal from the standpoint of saving time and computing power order of coordination of a common solution between independent peer (computerized) centers is an important modern challenge. Various methods for solving this problem are now used in many industries where it is necessary to minimize random errors of electronic equipment, for example, in space or underwater vehicles. Also, these methods have found applications for building noise-protected distributed computer systems.
Большинство современных методов решения данной проблемы основывается на сформулированной задаче и путях ее решения, которые были описаны в статье «The Byzantine Generals Problem» вышедшей в журнале TOPLAS, Vol 4, No 3, в июле 1982 г.  Most modern methods for solving this problem are based on the formulated problem and the ways to solve it, which were described in the article “The Byzantine Generals Problem” published in the journal TOPLAS, Vol 4, No 3, in July 1982.
Позже в статье «Practical Byzantine Fault Tolerance», вышедшей в феврале 1999 г. [Practical Byzantine Fault Tolerance, Appears in the Proceedings of the Third Symposium on Operating Systems Design and Implementation, New Orleans, USA, Laboratory for Computer Science, Massachusetts Institute of Technology, February 1999, Miguel Castro, Barbara Liskov], был описан новый, более быстрый, способ, позволяющий находить решения этой задачи. На основе этого способа было создано множество прикладных реализаций методов согласований решений в распределенных системах. Этот способ предполагает временное разделение равноправных узлов системы на Primary (Ведущий узел) и replicas (узлы, хранящие копию состояния системы). Также в способе вводится понятие «View»: состояние системы в котором из всех имеющихся узлов один избран Primary. Очевидно, что Primary узел может выйти из строя, что приводит к созданию нового View с другим Primary. Все взаимодействия между узлами предполагается асинхронным.  Later in an article in Practical Byzantine Fault Tolerance, published in February 1999. [Practical Byzantine Fault Tolerance, Appears in the Proceedings of the Third Symposium on Operating Systems Design and Implementation, New Orleans, USA, Laboratory for Computer Science, Massachusetts Institute of Technology, February 1999, Miguel Castro, Barbara Liskov], a new, faster way has been described to find solutions to this problem. Based on this method, a lot of applied implementations of decision coordination methods in distributed systems have been created. This method involves the temporary separation of the peers of the system into Primary (Master) and replicas (nodes that store a copy of the state of the system). Also in the method the concept of “View” is introduced: the state of the system in which of all the available nodes one is selected Primary. Obviously, the Primary node may fail, which leads to the creation of a new View with another Primary. All interactions between nodes are assumed to be asynchronous.
Способ, описанный в статье, при условии, что в процессе View не меняется, описывается следующими шагами:  The method described in the article, provided that the View does not change in the process, is described in the following steps:
1. Клиент отправляет сообщение узлу Primary. 2. Primary присваивает этому сообщению следующий по очередности номер N и отправляет широковещательное сообщение PRE- PREP ARE (предподготовка) всем replicas. 1. The client sends a message to the Primary node. 2. Primary assigns the next N to this message and sends a broadcast message PRE-PREP ARE (pre-preparation) to all replicas.
3. Получая сообщение PRE-PREPARE каждый узел из replicas проверяет его на соответствие текущему View и установленному на прошлом этапе N, и в случае успеха проверки отправляет всем узлам сообщение PREPARE (подготовка).  3. Upon receipt of a PRE-PREPARE message, each node from replicas checks it for compliance with the current View and the N set at the last stage, and if the verification is successful, sends a PREPARE message (preparation) to all nodes.
4. Получая сообщения PREPARE узел проверяет его на соответствие текущему View и N и имеющемуся у него сообщению PRE- PREPARE. В случае если узел получает соответствующее PREPARE сообщение от % узлов системы, он управляет всем узлам сообщение COMMIT (фиксация).  4. When receiving a PREPARE message, the node checks that it matches the current View and N and the PREPREPARE message it has. If the node receives the corresponding PREPARE message from% of the system nodes, it manages the COMMIT (commit) message for all nodes.
5. Получая сообщения COMMIT узел проверяет его на соответствие текущему View и N и имеющемуся у него сообщению PREPARE. В случае если узел получает соответствующее COMMIT сообщение от % узлов системы, он выполняет сообщение клиента, меняя состояние системы и результат отправляет клиенту.  5. When receiving a COMMIT message, the node checks that it matches the current View and N and the PREPARE message it has. If the node receives the corresponding COMMIT message from% of the system nodes, it executes the client message, changing the state of the system and sends the result to the client.
6. Клиент ожидает получение результата своего сообщения от узлов системы. Когда он получит от Уз узлов системы одинаковые сообщения, это и будет окончательный результатом обработки его запроса.  6. The client expects to receive the result of its message from the nodes of the system. When he receives the same messages from the Uz nodes of the system, this will be the final result of processing his request.
Недостатки данного способа:  The disadvantages of this method:
1. Разделение узлов системы на обычные узлы и Primary узел привело к необходимости введения дополнительных шагов PRE-PREPARE и PREPARE для того, чтобы гарантировать работоспособность этого узла.  1. The separation of the system nodes into ordinary nodes and the Primary node necessitated the introduction of additional steps PRE-PREPARE and PREPARE in order to guarantee the operability of this node.
2. Из-за того, что все взаимодействия между узлами осуществляются асинхронно, то неизвестно конечное время получения клиентом результата работы системы, который он получает в пункте 6. Это связано с тем, что на 6 шаге, чтобы получить результат, клиент должен дождаться 1/3 ответов. Но если на этапах по 5 включительно еще можно выставить временные периоды, в которые должен выполниться той или иной этап, то в этап 6 такие периоды выставлять нет необходимости, так как от этого сама система не зависит. Таким образом, перед началом способа невозможно определить, в какое именно время клиент получит данные о том, что его запрос выполнен. 2. Due to the fact that all interactions between nodes are carried out asynchronously, it is not known the final time the client receives the result of the system, which he receives in step 6. This is due to the fact that in step 6, the client must wait 1 to get the result / 3 replies. But if at stages 5 inclusive you can still to set the time periods in which this or that stage should be completed, then in stage 6 there is no need to set such periods, since the system itself does not depend on this. Thus, before the start of the method, it is impossible to determine at what time the client will receive data that his request has been completed.
3. Клиенты передают запросы только текущему Primary узлу. Это означает, что в случае отключения данного узла, до назначения нового Primary система не будет работоспособна.  3. Clients send requests only to the current Primary node. This means that if this node is disconnected, the system will not be operational until a new Primary is assigned.
4. Разделение узлов системы на обычных узлов и Primary узел также приводят к возможности Primary узлом выполнять цензурирование запросов от клиентов, принимая от клиентов эти запросы но не передавая далее.  4. Separation of system nodes into ordinary nodes and the Primary node also lead to the Primary node being able to censor requests from clients, accepting these requests from clients but not transmitting them further.
5. Система может работать, только если в системе не более Уз узлов с Византийским поведением.  5. The system can work only if the system has no more than Uz nodes with Byzantine behavior.
6. В системе должна присутствовать дополнительная подсистема, отвечающая за сбор и доставку к Primary на изменение значение системы от клиентов системы, что привносит дополнительные временные затраты.  6. The system must have an additional subsystem responsible for collecting and delivering to Primary a change in the value of the system from clients of the system, which introduces additional time costs.
11 сентября 2017 года вышла статья «Efficient Synchronous Byzantine Consensus» [Efficient Synchronous Byzantine Consensus, Ittai Abraham, Srinivas Devadas, Danny Dolev, Kartik Nayak, Ling Ren, 2017.], в которой представлен еще один способ, который можно использовать для решения проблемы согласования решения в распределенных системах.  On September 11, 2017, the article “Efficient Synchronous Byzantine Consensus” [Efficient Synchronous Byzantine Consensus, Ittai Abraham, Srinivas Devadas, Danny Dolev, Kartik Nayak, Ling Ren, 2017.] was published, in which one more method can be used to solve the problem coordination of decisions in distributed systems.
Способ, описываемый в статье, имеет в основе для каждого раунда взаимодействия четырехстадийный основной протокол:  The method described in the article is based on a four-stage main protocol for each round of interaction:
1. <статус> каждый узел посылает сообщение лидеру этого раунда, в котором содержится текущее значение принятое узлом, номер раунда и подтверждающий сертификат из окончания предыдущего раунда (не менее F+1 <уведомление> или <фиксация> сообщений из прошлого раунда от других узлов системы) В конце стадии лидер собирает не менее f+I валидных сообщений <статус>, чтобы сформировать подтверждение состояния. 1. <status> each node sends a message to the leader of this round, which contains the current value accepted by the node, the round number and a confirmation certificate from the end of the previous round (at least F + 1 <notification> or <fix> messages from the previous round from other nodes system) At the end of the stage, the leader collects at least f + I valid messages <status> to form a status confirmation.
2. <предложение> Лидер этого раунда далее формирует новое значение, которое основывается на подтвержденном состоянии и рассылает всем узлам системы, в том числе себе.  2. <position> The leader of this round further forms a new value, which is based on the confirmed state and sends to all nodes of the system, including himself.
В конце стадии любой узел при получении предложения нового значения от лидера проверяет его и проверяет подтверждение состояния лидера. Если проверка пройдена, то новое значение предлагается как новое состояние этого узла в этом раунде.  At the end of the stage, when receiving a proposal of a new value from the leader, any node checks it and verifies the confirmation of the leader’s state. If the test passes, then the new value is proposed as the new state of this node in this round.
3. <фиксация> В случае если <предложение> лидера успешно прошло проверку в конце стадии 2, узел рассылает всем узлам системы свое решение о принятии предложения по новому значению в этом раунде <фиксация>, сопровождая его копией сообщения <предложение>.  3. <confirmation> If the leader’s <sentence> has successfully passed the test at the end of stage 2, the node sends its decision to all nodes of the system to accept the proposal for a new value in this <commitment> round, accompanied by a copy of the <position> message.
В конце стадии, если узел получает два сообщения валидных <фиксация> но с разными значениями от лидера, значит лидер проявляет двойственное поведение. Если же узел получил f+I сообщений от других узлов <фиксация> с одинаковым новым значением и при этом не получает информации о двойственном поведении лидера, то он принимает это значение.  At the end of the stage, if the node receives two messages valid <fix> but with different values from the leader, then the leader exhibits a dual behavior. If the node received f + I messages from other nodes <fixation> with the same new value and does not receive information about the dual behavior of the leader, then it takes this value.
4. <уведомление> После того, как в конце стадии 3 узел принимает новое значение от лидера, он создает и рассылает <уведомление> об этом всем узлам системы.  4. <notification> After, at the end of stage 3, the node receives a new value from the leader, he creates and sends out a <notification> about this to all nodes of the system.
В конце стадии, если узел получает <уведомление> от другого узла, он формирует сертификат нового значения (не менее f+I <уведомление> или <фиксация> сообщений из прошлого раунда от других узлов системы). Если узел получает несколько валидных сообщений <уведомление>, он может выбрать для сертификата любое или ни одно из них. Как видно из описания, этот способ похож на представленный в рамках статьи «Practical Byzantine Fault Tolerance». Однако в этом статье отдельное внимание обращается на то, что все действия, описанные в стадиях способа, происходят синхронно. Это позволяет сократить минимальные требования по количеству работоспособных узлов системы с 2/з+1 для асинхронной системы (статья «Practical Byzantine Fault Tolerance») до ! +l для синхронной системы (статья «Efficient Synchronous Byzantine Consensus»). At the end of the stage, if the node receives a <notification> from another node, it generates a certificate of a new value (at least f + I <notification> or <fix> messages from the last round from other nodes of the system). If the node receives several valid <notification> messages, it can select any or none of them for the certificate. As you can see from the description, this method is similar to that presented in the article “Practical Byzantine Fault Tolerance”. However, in this article, special attention is drawn to the fact that all the actions described in the stages of the method occur synchronously. This reduces the minimum requirements for the number of workable system nodes from 2 / s + 1 for an asynchronous system (article “Practical Byzantine Fault Tolerance”) to! + l for a synchronous system (article "Efficient Synchronous Byzantine Consensus").
Способ, предложенный в статье «Efficient Synchronous Byzantine Consensus», устраняет многие недостатки которые были свойственны способу описанному в статье «Practical Byzantine Fault Tolerance». Для решения проблем с возможным назначением лидера из части поврежденных узлов, предлагается бороться постоянным перебором всех узлов. Таким образом, в среднем любое решение будет приниматься за 2 итерации раунда (8 стадий). Также предложено в случае если лидер выполняет все правила принятые для работы системы (честный лидер) не менять его, тогда 4 и 1 стадию можно исключить, получив 3 стадии на один раунд.  The method proposed in the article "Efficient Synchronous Byzantine Consensus" eliminates many of the disadvantages that were typical of the method described in the article "Practical Byzantine Fault Tolerance". To solve problems with the possible appointment of a leader from a part of damaged nodes, it is proposed to fight by constant search of all nodes. Thus, on average, any decision will be taken in 2 iterations of the round (8 stages). It is also suggested that if the leader complies with all the rules accepted for the system (honest leader) not to change it, then stage 4 and 1 can be excluded by receiving 3 stages for one round.
Недостатки этого способа:  The disadvantages of this method:
1. В способе, в случае наличия F византийских узлов, предлагается каждый раунд менять лидера узла, чтобы все существующие узлы подряд прошли через лидерство. В результате среднее количество стадий для достижения соглашения увеличивается до 8.  1. In the method, if there are F Byzantine nodes, it is proposed to change the leader of the node every round so that all existing nodes pass through the leadership in a row. As a result, the average number of stages to reach an agreement increases to 8.
2. Также в способе предложен еще один вариант оптимизации - при нахождении честного лидера не менять его. Однако в статье не описывается способ нахождения такого лидера, количество раундов на которые предлагается остановить выбор честного лидера (заморозка лидера) и способ смены лидерства. Все эти действия предлагается разработать самостоятельно. Что не позволяет напрямую использовать данную оптимизацию. 2. Also, the method proposed another optimization option - when finding an honest leader, do not change it. However, the article does not describe the method of finding such a leader, the number of rounds for which it is proposed to stop choosing an honest leader (freezing the leader) and the method of changing leadership. All of these actions are suggested. develop yourself. What does not allow to directly use this optimization.
3. Выделение лидера, который формирует новое значение системы, и особенно предложенная оптимизация с заморозкой лидера, позволяет ему выполнять цензурирование запросов от клиентов, принимая от клиентов эти запросы, но не передавая далее. Это приводит к тому, что сколько бы отдельный клиент не отправлял запросы, они не выполняются. В то время как для большинства работа идет в нормальном режиме. Такая работа системы является существенным недостатком. Так, например, на практике, если такая система обеспечивает взаимодействие между магазинами и поставщиками, данный недостаток системы может привести к тому, что запросы от магазина А на допоставку редкого товара будут выполнены, а от Магазина Б не будут. В настоящее время данная уязвимость также используется на онлайн-аукционах, работающих по такой системе: одна ставка одного клиента пропускается и клиент выигрывает, а другая ставка другого клиента не пропускается и клиент в принципе не участвует в аукционе, даже если его ставка в действительности выигрышная.  3. Highlighting the leader who forms the new value of the system, and especially the proposed optimization with freezing the leader, allows him to censor requests from customers, accepting these requests from customers, but not passing on. This leads to the fact that no matter how much an individual client sends requests, they are not executed. While for most, the work is going in normal mode. Such a system operation is a significant drawback. So, for example, in practice, if such a system provides interaction between stores and suppliers, this flaw in the system can lead to the fact that requests from store A for the delivery of rare goods will be fulfilled, but not from Store B. Currently, this vulnerability is also used at online auctions operating on this system: one bid of one client is missed and the client wins, another bid of the other client is not missed and the client, in principle, does not participate in the auction, even if his bid is actually winning.
4. В системе должна присутствовать дополнительная подсистема, отвечающая за сбор и доставку к лидеру на изменение значение системы от клиентов системы, что привносит дополнительные временные затраты.  4. The system must have an additional subsystem responsible for collecting and delivering to the leader the change in the value of the system from customers of the system, which introduces additional time costs.
Настоящее изобретение предназначено для решения технической задачи по ускорению процесса надежного согласования принятия узлами единого решения в распределенной системе по формированию нового общего значения.  The present invention is intended to solve the technical problem of accelerating the process of reliable coordination of the adoption by nodes of a single decision in a distributed system to form a new common value.
Технический результат настоящего изобретения заключается в оптимизации порядка согласования общего решения между независимыми равноправными автоматическими (компьютеризированными) центрами, необходимого для получения согласованного результата раунда в распределенной сети. The technical result of the present invention is to optimize the procedure for agreeing on a common solution between independent peer-to-peer automatic (computerized) centers, necessary to get a consistent round result in a distributed network.
Указанный технический результат при использовании заявляемого способа достигается за счет использования меньшего количества стадий в раунде, относительно существующих способов, применяемых для получения согласованного результата раунда в распределенной сети, что приводит к уменьшению времени, затрачиваемого каждый раунд.  The specified technical result when using the proposed method is achieved through the use of fewer stages in the round, relative to existing methods used to obtain a consistent round result in a distributed network, which reduces the time spent each round.
Раскрытие изобретения  Disclosure of Invention
Начальные условия одинаковые для всех узлов, необходимые для того, чтобы система, состоящая из этих распределенных узлов, могла использовать данный способ:  The initial conditions are the same for all nodes, necessary so that a system consisting of these distributed nodes can use this method:
- Все взаимодействия по передаче и получению информации между узлами устанавливаются как синхронные.  - All interactions for transmitting and receiving information between nodes are set as synchronous.
- Каждый узел системы имеет возможность обмениваться информацией по каналам передачи данных с каждым другим узлом системы.  - Each node in the system has the ability to exchange information over data channels with each other node in the system.
- Каждый узел системы имеет информацию о каждом другом узле системы (адрес в системе связи между узлами, обеспечивающей передачу данных между узлами, публичный ключ для идентификации узла в системе), позволяющую каждому узлу связываться через канал передачи данных с любыми другими узлами, входящими в систему.  - Each node of the system has information about each other node of the system (address in the communication system between nodes providing data transfer between nodes, a public key for identifying a node in the system), which allows each node to communicate through any data channel with any other nodes in the system .
- Каждый узел системы имеет информацию о каждом другом узле системы, позволяющую каждому узлу с помощью криптографии однозначно идентифицировать принадлежность цифровой подписи информационного сообщения какому-либо из узлов системы.  - Each node of the system has information about each other node of the system, which allows each node to use cryptography to uniquely identify whether a digital signature of the information message belongs to any of the nodes of the system.
- Система, состоящая из набора узлов, в зависимости от способа согласования результата, может работать при разном показателе количества вышедших из строя узлов или узлов с византийским поведением. В случае если количество таких узлов менее порога, система не сможет работать. Такой порог для реализации заявленного способа определяется по формуле N>= 2F+1. - A system consisting of a set of nodes, depending on the method of coordinating the result, can work with a different indicator of the number of failed nodes or nodes with Byzantine behavior. If the number of such nodes is less than the threshold, the system will not be able to work. Such a threshold for the implementation of the claimed method is determined by the formula N> = 2F + 1.
Сущность заявляемого способа заключается в последовательном исполнении раунда согласования нового значения системы. Каждый раунд узлы системы согласовывают новое значение, проходя следующие стадии:  The essence of the proposed method consists in the sequential execution of the round of approval of a new value of the system. Each round, the nodes of the system agree on a new value, passing through the following stages:
1. Первая стадия <начало раунда>. Каждый узел системы отправляет каждому узлу системы, в том числе и самому себе, по каналу передачи, сообщение о начале раунда. В этом сообщении передается предлагаемые узлом подмножества нового значения системы, номер нового раунда, и валидный МТР с номером предыдущего раунда и значение счетчика повтора раунда, если раунд хотя бы раз не был закончен.  1. The first stage <beginning of the round>. Each node of the system sends to each node of the system, including itself, through the transmission channel, a message about the start of the round. This message conveys the node's proposed subsets of the new system value, the number of the new round, and the valid MTP with the number of the previous round and the value of the round repeat counter, if the round has not been completed at least once.
Узлы для обработки на следующей стадии выбирают сообщения с максимальным номером предыдущего раунда. Если существуют варианты сообщения с одинаковым максимальным номером раунда но различным валидным МТР с номером предыдущего раунда, узел выбирает те сообщения, в которых указан максимальное значение счетчика повторов раунда.  The nodes for processing in the next stage select messages with the maximum number of the previous round. If there are message options with the same maximum round number but different valid MTP with the number of the previous round, the node selects those messages that indicate the maximum value of the round repeat counter.
В результате стадии, в случае если отсутствуют узлы с византийским поведением, каждый работающий узел получает одинаковое количество сообщений о начале раунда с новым номером раунда от других узлов.  As a result of the stage, if there are no nodes with Byzantine behavior, each working node receives the same number of messages about the beginning of the round with a new round number from other nodes.
Если в системе присутствуют узлы с византийским поведением, то от такого узла другие узлы могут получить сообщение с номером раунда меньшим чем, номер нового раунда у него. В таком случае узел, получивший от другого узла сообщение с номером раунда меньшим чем, номер нового раунда у него, отправляет в ответ этому узлу валидный МТР с номером предыдущего раунда, сохраненного в базе данных этого узла.  If the system contains nodes with Byzantine behavior, then from such a node other nodes can receive a message with a round number less than the number of the new round. In this case, the node that receives a message from another node with a round number less than the new round number from it, sends a valid MTP with the number of the previous round stored in the database of this node in response to this node.
2. Вторая стадия <конец раунда>. Каждый узел, из сообщений, отобранных на прошлой стадии, извлекает подмножества нового значения системы, записанных в них. Затем каждый такой узел сортирует эти подмножества одинаковым способом (способ сортировки не имеет значения, важно только чтобы способ сортировки был одинаковым на всех узлах). После этого узлы проверяют полученную последовательность подмножеств на возможность вычисления нового значения. При проверке подмножеств на возможность вычисления нового значения проверяется, можно ли провести вычисление исходя из заданных начальных условий и заданных операций с ними. Например, если есть начальное условие, что есть переменная равная 5, она должна быть строго больше нуля, а в операции предлагается вычесть 10 (обычная расходная операция, как финансовая, так и любая учетная), следовательно, невозможно вычислить новое значение,— операция не должна быть выполнена. Есть и более простые примеры, например, операция должна быть X/Y, a Y=0, следовательно, вычисление нового значения невозможно. Далее часть подмножеств, которые не могут быть выполнены (повторное подмножество, заведомо ложное подмножество, подмножество которое не может быть вычислено исходя из текущего значения), удаляются из списка подмножеств значения. Затем узел, вычисляет новое значение и рассылает всем узлам, в том числе и себе, сообщение, содержащее хеш нового значения, номер раунда и самое большое значение счетчика повторов раунда из выбранных сообщений и удостоверяющую цифровую подпись этого узла. 2. The second stage <end of the round>. Each node, from messages selected at the previous stage, extracts a subset of the new value systems recorded in them. Then each such node sorts these subsets in the same way (the sorting method does not matter, it is only important that the sorting method is the same on all nodes). After that, the nodes check the obtained sequence of subsets for the possibility of calculating a new value. When checking the subsets for the possibility of calculating a new value, it is checked whether it is possible to carry out the calculation based on the given initial conditions and the given operations with them. For example, if there is an initial condition that there is a variable equal to 5, it should be strictly greater than zero, and in the operation it is proposed to subtract 10 (the usual expenditure operation, both financial and any accounting), therefore, it is impossible to calculate a new value, - the operation is not must be performed. There are simpler examples, for example, the operation must be X / Y, and Y = 0, therefore, it is impossible to calculate a new value. Further, a part of the subsets that cannot be executed (a repeated subset, a deliberately false subset, a subset which cannot be calculated based on the current value), are removed from the list of subsets of the value. Then the node calculates the new value and sends to all the nodes, including itself, a message containing the hash of the new value, the round number and the highest value of the round repeat counter from the selected messages and verifying the digital signature of this node.
В конце стадии узел накапливает у себя сообщения от всех узлов системы, содержащие хеш нового значения, номер раунда и значение счетчика повторов раунда. В результате накопления сообщений, в зависимости от количества неработающих узлов, узлов с византийским поведением в системе и работы системы связи между узлами, узел может оказаться в следующих ситуациях: <провал раунда> Узел получил меньше 50% подписей хешей с одинаковым номером раунда и значением счетчика повторов раунда. Если узел оказался в такой ситуации, он увеличивает значение счетчика повторов раунда и начинает выполнять согласование нового значения раунда с самого начала. At the end of the stage, the node accumulates messages from all nodes of the system, containing the hash of the new value, the round number and the value of the round repeat counter. As a result of the accumulation of messages, depending on the number of idle nodes, nodes with Byzantine behavior in the system and the operation of the communication system between nodes, a node may be in the following situations: <round failure> The node received less than 50% of the hash signatures with the same round number and the value of the round repeat counter. If the node finds itself in such a situation, it increases the value of the round repeat counter and begins to negotiate the new value of the round from the very beginning.
<успех раунда> Узел получил больше 50% подписей хешей с одинаковым номером раунда и значением счетчика повторов раунда, и набралось 50%+1 одинаковых хешей. Согласование раунда считается успешным, и, следовательно, в распределенной системе принимается единое согласованное решение. Узел готов к началу выполнения нового раунда принятия решения в случае необходимости, значение счетчика повторов раунда узла устанавливается равным 0.  <round success> The node received more than 50% of the hash signatures with the same round number and the value of the round repeat counter, and 50% + 1 identical hashes were accumulated. Round coordination is considered successful, and therefore, in a distributed system, a single agreed decision is made. The node is ready to start the execution of a new round of decision-making, if necessary, the value of the counter of repetitions of the round of the node is set to 0.
<провал раунда, требуется коррекция> Узел получил больше 50% подписей хешей с одинаковым номером раунда и значением счетчика повторов раунда, но не набралось 50%+1 одинаковых хешей. Такая ситуация сигнализирует о том, что появились узлы с византийским поведением, необходимо выявить такие узлы и закончить раунд. Для этого используем дополнительные стадии коррекции, приведенные ниже.  <round failure, correction required> The node received more than 50% of the hash signatures with the same round number and the value of the round repeat counter, but 50% + 1 identical hashes were not accumulated. This situation signals that nodes with Byzantine behavior have appeared, it is necessary to identify such nodes and end the round. To do this, we use the additional stages of correction below.
В случае если в системе присутствует хотя бы один узел с византийским поведением, он может на 1-й стадии рассылать остальным сообщения с различные подмножествами нового значения. Это приведет к тому, что ни один узел в системе не наберет 50%+1 одинаковых подписанных хешей нового значения, а значит, пока раунд не закончился согласованным решением по новому значению. Для того чтобы система в таком случае могла выработать согласованное значение, предлагается добавить стадии коррекции:  If the system contains at least one node with Byzantine behavior, it can at the first stage send messages to the rest with different subsets of a new meaning. This will lead to the fact that no node in the system will collect 50% + 1 identical signed hashes of a new value, which means that until the round ends with an agreed decision on the new value. In order that the system in this case could develop a consistent value, it is proposed to add the correction stages:
1. Первая стадия <начало коррекции>. Узел, который не получил 50%+1 одинаковых ответов на стадии <конец раунда> создает сообщение, содержащее номер текущего раунда и сообщения полученные им от других узлов на стадии <начало раунда>, содержащие предлагаемые узлом подмножества нового значения системы, номер нового раунда, и валидный МТР с номером предыдущего раунда. Далее узел отправляет такое сообщение каждому узлу. 1. The first stage <beginning of correction>. A node that did not receive 50% + 1 identical answers at the stage <end of round> creates a message containing the number of the current round and messages received from other nodes at the stage <beginning of a round> containing the subsets of the new system value proposed by the node, the number of the new round, and the valid MTP with the number of the previous round. Next, the node sends such a message to each node.
2. В случае, если в системе существует один или несколько узлов, которые собрал 50%+ 1 одинаковых цифровых подписей на стадии <конец раунда>, то такие узлы передают ответное сообщение узлам, которые не получили 50%+1 одинаковых ответов на стадии <конец раунда> и эти узлы начинает синхронизацию с новым значением системы.  2. If there are one or several nodes in the system that collected 50% + 1 of the same digital signatures at the stage <end of round>, then such nodes transmit a response message to nodes that did not receive 50% + 1 of the same answers at stage < end of round> and these nodes begin to synchronize with the new value of the system.
3. В том случае, если ни один из узлов системы не собрал 50%+1 одинаковых цифровых подписей на стадии <конец раунда>, то на каждом работающем узле собирается общая матрица сообщений, содержащая информацию обо всех отправленных каждым из узлов каждому из узлов сообщений. Каждый узел, анализируя общую матрицу сообщений, определяет узлы, пославшие сообщения с различными подмножествами значения в этом раунде (узлы с византийским поведением).  3. In the event that none of the nodes in the system collected 50% + 1 identical digital signatures at the stage <end of the round>, then on each working node a common message matrix is collected containing information about all sent from each node to each of the message nodes . Each node, analyzing the general matrix of messages, determines the nodes that sent messages with various subsets of values in this round (nodes with Byzantine behavior).
4. <конец коррекции> Каждый узел исключает из рассмотрения на этой стадии сообщения <начало раунда> полученных от узлов, определенных как (узлы с византийским поведением) и далее повторяет стадию <конец раунда>.  4. <end of correction> Each node excludes from consideration at this stage messages <beginning of a round> received from nodes identified as (nodes with Byzantine behavior) and then repeats the stage <end of round>.
При использовании заявляемого способа обеспечивается возможность достижения согласования нового значения системы при неработающих 50%+1 узлах за 2 стадии, при наличии в раунде узлов с византийским поведением за 4 стадии. Благодаря тому, что клиент может предложить свое изменение значение системы любому из узлов системы, при этом не ограничивая количеством таких предложения в одном раунде, достигается невозможность цензурирования. Также в связи с этим отсутствует необходимость в создании дополнительной подсистемы для хранения и передачи заявок от клиентов в систему. Примером преимущества, достигаемого при использовании заявляемого способа, является применение заявляемого способа для проведения аукциона. Допустим, необходимо провести аукцион, в котором могут принимать участие участники, физически находящиеся в любых странах. При этом процесс проведения аукциона должен быть максимально автоматизирован, справедлив (никакой участник не может получить преимущество в торгах с помощью влияния на процесс аукциона) и безопасен (создание значительных препятствий для недобросовестной остановки проведение торгов). When using the proposed method, it is possible to achieve coordination of a new value of the system with idle 50% + 1 nodes in 2 stages, if there are nodes in the round with Byzantine behavior in 4 stages. Due to the fact that the client can offer his change in the value of the system to any of the nodes of the system, while not limiting the number of such offers in one round, the impossibility of censorship is achieved. Also in this regard, there is no need to create an additional subsystem for storing and transferring applications from clients to the system. An example of the benefits achieved by using the proposed method is the use of the proposed method for an auction. Suppose you want to hold an auction in which participants who are physically located in any country can participate. At the same time, the auction process should be as automated as possible, fair (no bidder can gain an advantage in bidding by influencing the auction process) and safe (creating significant obstacles to an unfair stopping bidding).
Аукцион с использованием заявляемого способа происходит следующим образом:  An auction using the proposed method is as follows:
ЭВМ каждого участника является узлом общей распределенной (децентрализованной) системы. Все участники аукциона равноправны и идентифицируются с помощью криптографических ключей. Объявление лота сопровождается объявление его цены, а также правил аукциона (тип аукциона, шаг аукциона, количество раундов аукциона до выигрыша).  The computer of each participant is a node of the general distributed (decentralized) system. All bidders are equal and are identified using cryptographic keys. The announcement of the lot is accompanied by the announcement of its price, as well as auction rules (type of auction, auction step, number of auction rounds before winning).
Аукцион начинается с того, что один или несколько участников предлагают выставить лот на аукцион. В случае одновременного выставления лотов первым предлагается к аукциону лот с меньшей начальной ценой.  Auction begins with the fact that one or more bidders offer to put up a lot for auction. In the case of simultaneous bidding, the first item to be auctioned is a lot with a lower initial price.
Работа аукциона происходит раундами. Каждый раунд участник может как предложить свое действие для совершения в этом раунде, так и не предложить.  Auction work takes place in rounds. Each round, the participant can either offer his action for this round and not offer it.
В начале раунда все участники через свои узлы рассылают остальным участникам подписанное сообщение со своим предложением, если предложения нет, посылается сообщение с предложением “нет предложения”.  At the beginning of the round, all participants through their nodes send the remaining participants a signed message with their proposal, if there is no proposal, a message is sent with the proposal “no proposal”.
Участники аккумулируют у себя сообщение от всех узлов, проверяют подписи к этим сообщениям. Затем извлекают из сообщений все предложения, сортируют их, и приступают к оценке результата этого раунда. Результат раунда может быть: Participants accumulate a message from all nodes, check signatures for these messages. Then retrieved from messages all proposals, sort them, and begin to evaluate the result of this round. The result of the round may be:
1. есть победитель раунда - предложивший на этом раунде лучшую цену  1. there is a winner of the round - who offered the best price in this round
2. никто не предложил лучшую цену и счетчик раунда до выигрыша больше 0  2. no one has offered the best price and the round counter to win is greater than 0
3. никто не предложил лучшую цену и счетчик раунда до выигрыша равен 0  3. no one has offered the best price and the round counter to win is 0
После выяснения результата раунда узел отправляет его в подписанном сообщение всем другим участникам. В случае если узел получил от более 50% участников одинаковый результат, участник считает этот раунд законченным и переходит к работе над следующим раундом.  After finding out the result of the round, the node sends it in a signed message to all other participants. If the node received the same result from more than 50% of the participants, the participant considers this round completed and proceeds to work on the next round.
Что касается логики работы в определении победителя лота, она представлена на Фигуре 1.  As for the logic of work in determining the winner of the lot, it is presented in Figure 1.
В целом заявляемый способ может применяться в любых распределенных системах, где необходимо согласованное совместное решение. Например, при обработке информации от датчиков для получения стабильной информации о них даже с учетом выхода из строя части оборудования. В свою очередь, такое использование способа может успешно применяться для создания надежных систем“умных домов”.  In general, the inventive method can be applied in any distributed systems where an agreed joint solution is needed. For example, when processing information from sensors to obtain stable information about them, even taking into account the failure of a piece of equipment. In turn, this use of the method can be successfully applied to create reliable systems of “smart homes”.
Кроме этого, данный способ может применяться для создания обычных интернет сервисов повышенной надежности. Например, облачных систем, блокчейн платформ или платформ распределенных реестров.  In addition, this method can be used to create conventional Internet services with increased reliability. For example, cloud systems, blockchain platforms or distributed registry platforms.

Claims

Формула изобретения  Claim
Способ принятия единого согласованного решения в распределенной системе ЭВМ (узлов), в которой все взаимодействия по передаче и получению информации между узлами устанавливаются как синхронные, при этом каждый узел системы имеет возможность обмениваться информацией по каналам передачи данных с каждым другим узлом системы, каждый узел системы имеет информацию о каждом другом узле системы (адрес в системе связи между узлами, обеспечивающей передачу данных между узлами, публичный ключ для идентификации узла в системе), позволяющую каждому узлу связываться через канал передачи данных с каждым другим узлом, входящими в систему, каждый узел системы имеет информацию о каждом другом узле системы, позволяющую каждому узлу с помощью криптографии однозначно идентифицировать принадлежность цифровой подписи информационного сообщения какому- либо из узлов системы, а пороговый показатель количества вышедших из строя узлов или узлов с византийским поведением, при котором система не сможет принять единое согласованное решение с использованием заявляемого способа, соответствует формуле N>= 2F+1, где N обозначают общее количество узлов в распределенной системе, a F обозначает количество неработающих узлов, отличающийся тем, что содержит:  A method for making a single coordinated decision in a distributed computer system (nodes), in which all interactions for transmitting and receiving information between nodes are set as synchronous, with each node in the system having the ability to exchange information over data channels with each other node in the system, each node in the system has information about every other node in the system (address in the communication system between nodes providing data transfer between nodes, a public key for identifying a node in the system), allowing each a node to communicate through a data transmission channel with each other node that is part of the system, each node of the system has information about each other node of the system, which allows each node to use cryptography to uniquely identify whether a digital signature of an information message belongs to any of the nodes of the system, and the threshold indicator of quantity failed nodes or nodes with Byzantine behavior, in which the system cannot make a single coordinated decision using the proposed method, corresponds to rmule N> = 2F + 1, where N is the total number of nodes in a distributed system, a F denotes the number of idle nodes, characterized in that it comprises:
этап первой стадии <начало раунда>, на котором каждый узел системы отправляет каждому узлу системы, в том числе и самому себе, по каналу передачи, сообщение о начале раунда, содержащее предлагаемые узлом подмножества нового значения системы, номер нового раунда, валидный МТР с номером предыдущего раунда и значение счетчика повтора раунда, если раунд хотя бы раз не был закончен, при этом узлы для обработки на следующей стадии выбирают сообщения с максимальным номером предыдущего раунда, а если существуют варианты сообщения с одинаковым максимальным номером раунда, но различным валидным МТР с номером предыдущего раунда, узлы выбирают те сообщения в которых указан максимальное значение счетчика повторов раунда, в результате чего, в случае, если отсутствуют узлы с византийским поведением, каждый работающий узел получает одинаковое количество сообщений о начале раунда с новым номером раунда от других узлов, а в том случае если в системе присутствуют узлы с византийским поведением, то от такого узла другие узлы получают сообщение с номером раунда меньшим чем, номер нового раунда у него, при этом в таком случае узел, получивший от другого узла сообщение с номером раунда меньшим чем, номер нового раунда у него, отправляет в ответ этому узлу валидный МТР с номером предыдущего раунда, сохраненного в базе данных этого узла; stage of the first stage <beginning of a round>, at which each node of the system sends to each node of the system, including itself, a transmission message about the beginning of the round containing the subsets of the new system value proposed by the node, the number of the new round, valid MTP with the number of the previous round and the value of the counter for repeating the round, if the round has not been completed at least once, while the nodes for processing in the next stage select messages with the maximum number of the previous round, and if there are message options with the same max the round number, but different valid MTP with the number of the previous round, the nodes select those messages that indicate the maximum value of the counter of round repeats, as a result of which, if there are no nodes with Byzantine behavior, each working node receives the same number of messages about the beginning of the round with a new round number from other nodes, and if the system contains nodes with Byzantine behavior, then from such a node other nodes receive a message with a round number less than the number of a new round from him, and in this case more often, a node that receives a message from another node with a round number less than the number of a new round from it, sends a valid MTP with the number of the previous round stored in the database of this node in response to this node;
этап второй стадии <конец раунда>, на котором каждый узел, из сообщений, полученных от других узлов и отобранных на прошлой стадии, извлекает подмножества нового значения системы, записанных в них, после чего выбирает из предлагаемых другими узлами подмножеств нового значения системы подмножества с максимальным номером раунда, затем каждый такой узел сортирует эти подмножества одинаковым способом, после чего узлы проверяют полученную последовательность подмножеств на возможность вычисления нового значения, после чего часть подмножеств, которые не могут быть выполнены удаляются из списка подмножеств значения, а затем каждый узел вычисляет новое значение и рассылает всем узлам, в том числе и себе, сообщение, содержащее хеш нового значения, номер раунда, самое большое значение счетчика повторов раунда из выбранных сообщений и удостоверяющую цифровую подпись этого узла, после чего в результате этой стадии каждый узел накапливает у себя сообщения от всех узлов системы, содержащие хеш нового значения, номер раунда и значение счетчика повторов раунда, после чего в том случае, если любой из узлов получил меньше 50% подписей хешей с одинаковым номером раунда и значением счетчика повтора раунда, то такой узел увеличивает значение счетчика повтора этого раунда на одну единицу и начинает выполнять согласование нового значения раунда с самого начала, в том случае, если любой из узлов получил больше 50% подписей хешей с одинаковым номером раунда и значением счетчика повтора раунда, и набралось 50%+1 одинаковых хешей, то согласование раунда считается успешным, и, следовательно, в распределенной системе принимается единое согласованное решение, а в том случае, если любой из узлов получил больше 50% подписей хешей с одинаковым номером раунда и значением счетчика повторов раунда, но не набралось 50%+ 1 одинаковых хешей, то следовательно в системе присутствуют узлы с византийским поведением, и для того, чтобы выявить такие узлы и закончить раунд, переходят к дополнительному этапу первой стадии <начало коррекции>; stage of the second stage <end of round>, in which each node, from messages received from other nodes and selected at the previous stage, extracts subsets of the new system value recorded in them, and then selects from the subsets proposed by other nodes the new value of the subset system with the maximum round number, then each such node sorts these subsets in the same way, after which the nodes check the resulting sequence of subsets for the possibility of calculating a new value, after which part of the subset which cannot be executed are removed from the list of subsets of values, and then each node calculates a new value and sends to all nodes, including itself, a message containing a hash of the new value, round number, the largest value of the round repeat counter from the selected messages and verifying the digital signature of this node, after which, as a result of this stage, each node accumulates messages from all nodes of the system containing the hash of the new value, the round number and the value of the round repeat counter, after which, if any of the nodes received less than 50% of hashes with the same round number and the value of the round repeat counter, then such a node increases the value of the repeat counter of this round by one unit and starts reconciling the new value of the round from the very beginning, if any of the nodes received more than 50% of the hash signatures with with the same round number and the value of the round repeat counter, and 50% + 1 of the same hashes were accumulated, then the round coordination is considered successful, and therefore, in a distributed system, a single agreed decision is made, and in that case, if any of the nodes received more than 50% of the hash signatures with the same round number and the value of the round repeat counter, but did not accumulate 50% + 1 identical hashes, then there are nodes with Byzantine behavior in the system, and in order to identify such nodes and finish round, go to the additional stage of the first stage <start correction>;
дополнительный этап первой стадии <начало коррекции>, который происходит в том случае, если хотя бы один из узлов не получил 50%+ 1 одинаковых ответов на стадии <конец раунда>, на котором узел, который не получил 50%+ 1 одинаковых ответов от других узлов на стадии <конец раунда>, создает сообщение, содержащее номер текущего раунда и сообщения полученные им от других узлов на стадии <начало раунда>, содержащие предлагаемые узлом подмножества нового значения системы, номер нового раунда, и валидный МТР с номером предыдущего раунда, после чего такой узел отправляет такое сообщение каждому узлу, после чего в случае, если в системе существует один или несколько узлов, которые собрали 50%+1 одинаковых цифровых подписей на стадии <конец раунда>, то такие узлы передают ответное сообщение узлам, которые не получили 50%+ 1 одинаковых ответов на стадии <конец раунда> и эти узлы начинают синхронизацию с новым значением системы, а в том случае, если ни один из узлов системы не собрал 50%+ 1 одинаковых цифровых подписей на стадии <конец раунда>, то на каждом работающем узле собирается общая матрица сообщений, содержащая информацию о всех отправленных каждым из узлов каждому из узлов сообщений и каждый узел анализируя общую матрицу сообщений определяет узлы с византийским поведением, пославшие другим узлам сообщения с различными подмножествами значения на стадии <начало раунда>; an additional stage of the first stage <correction start>, which occurs if at least one of the nodes has not received 50% + 1 of the same answers at the stage <end of the round>, at which the node that has not received 50% + 1 of the same answers other nodes at the stage <end of a round>, creates a message containing the number of the current round and messages received by it from other nodes at the stage <beginning of a round> containing the subsets of the new system value proposed by the node, the number of the new round, and a valid MTP with the number of the previous round, then such a The e-mail sends such a message to each node, after which if there are one or more nodes in the system that have collected 50% + 1 identical digital signatures at the <end of round> stage, such nodes transmit a response message to the nodes that have not received 50% + 1 identical answers at the stage <end of a round> and these nodes begin synchronization with the new value of the system, and if none of the nodes in the system collected 50% + 1 identical digital of signatures at the stage <end of round>, then on each working node a common message matrix is collected containing information about all sent by each of the nodes to each of the message nodes and each node, analyzing the general message matrix, determines the nodes with Byzantine behavior, sending other message nodes with different subsets values at the stage <beginning of the round>;
дополнительный этап второй стадии <конец коррекции>, на котором каждый узел исключает из рассмотрения на этой стадии сообщения полученных на стадии <начало раунда> от выявленных на предыдущем этапе узлов с византийским поведением, и далее повторяет стадию <конец раунда>.  an additional stage of the second stage <end of correction>, in which each node excludes from consideration at this stage messages received at the stage <beginning of round> from nodes identified in the previous stage with Byzantine behavior, and then repeats stage <end of round>.
PCT/RU2019/000510 2018-08-08 2019-07-16 Method for consensus decision making in a distributed computer system WO2020032824A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
RU2018129123 2018-08-08
RU2018129123A RU2706459C1 (en) 2018-08-08 2018-08-08 Method of single coordinated decision making in distributed computer system

Publications (1)

Publication Number Publication Date
WO2020032824A1 true WO2020032824A1 (en) 2020-02-13

Family

ID=68579921

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/RU2019/000510 WO2020032824A1 (en) 2018-08-08 2019-07-16 Method for consensus decision making in a distributed computer system

Country Status (2)

Country Link
RU (1) RU2706459C1 (en)
WO (1) WO2020032824A1 (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112671761A (en) * 2020-12-22 2021-04-16 网易(杭州)网络有限公司 Node processing method and device for block chain, node equipment and storage medium
CN113316177A (en) * 2021-06-01 2021-08-27 山东大学 Decision communication system and decision communication method for intelligent group
CN116913541A (en) * 2023-09-12 2023-10-20 万链指数(青岛)信息科技有限公司 Health data sharing method and system based on Internet of Things

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2436148C2 (en) * 2005-06-29 2011-12-10 Виза Ю.Эс.Эй. Инк. Adaptive gateway for switching transactions and data on untrusted networks using context-based rules
WO2017194976A1 (en) * 2016-05-13 2017-11-16 De La Rue International Limited Methods and systems for processing assets
RU2649788C1 (en) * 2016-06-16 2018-04-04 Общество С Ограниченной Ответственностью "Яндекс" Method and system for transaction request processing in distributed data processing systems

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9660874B2 (en) * 2012-12-13 2017-05-23 Level 3 Communications, Llc Devices and methods supporting content delivery with delivery services having dynamically configurable log information
US9398018B2 (en) * 2014-03-18 2016-07-19 nTrust Technology Solutions Corp. Virtual currency system

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2436148C2 (en) * 2005-06-29 2011-12-10 Виза Ю.Эс.Эй. Инк. Adaptive gateway for switching transactions and data on untrusted networks using context-based rules
WO2017194976A1 (en) * 2016-05-13 2017-11-16 De La Rue International Limited Methods and systems for processing assets
RU2649788C1 (en) * 2016-06-16 2018-04-04 Общество С Ограниченной Ответственностью "Яндекс" Method and system for transaction request processing in distributed data processing systems

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112671761A (en) * 2020-12-22 2021-04-16 网易(杭州)网络有限公司 Node processing method and device for block chain, node equipment and storage medium
CN112671761B (en) * 2020-12-22 2022-08-05 网易(杭州)网络有限公司 Node processing method and device for block chain, node equipment and storage medium
CN113316177A (en) * 2021-06-01 2021-08-27 山东大学 Decision communication system and decision communication method for intelligent group
CN113316177B (en) * 2021-06-01 2022-03-25 山东大学 Decision communication system and decision communication method for intelligent group
CN116913541A (en) * 2023-09-12 2023-10-20 万链指数(青岛)信息科技有限公司 Health data sharing method and system based on Internet of Things

Also Published As

Publication number Publication date
RU2706459C1 (en) 2019-11-19

Similar Documents

Publication Publication Date Title
CN108900380B (en) Node management method and implementation system thereof
WO2020032824A1 (en) Method for consensus decision making in a distributed computer system
CN112541758A (en) Multi-round voting type fault-tolerant sequencing consensus mechanism and method based on block chain
Zhang et al. Cycledger: A scalable and secure parallel protocol for distributed ledger via sharding
CN112636905B (en) System and method for extensible consensus mechanism based on multiple roles
CN110855432A (en) Asynchronous BFT &amp; DPOS consensus mechanism for assigning verifier rewards based on verifiable random functions
CN112468255B (en) Block link point time synchronization method based on network consensus and VRF algorithm
US20230017790A1 (en) Graphic-blockchain-orientated hybrid consensus implementation apparatus and implementation method thereof
Bansal et al. A fast, secure and distributed consensus mechanism for energy trading among vehicles using hashgraph
CN114282956A (en) Energy transaction method, device, electronic equipment and storage medium
Jeon et al. RMBC: Randomized mesh blockchain using DBFT consensus algorithm
Ren et al. Pooled mining is driving blockchains toward centralized systems
CN114449476A (en) Block link point consensus method for safety communication in Internet of vehicles
CN115499129A (en) Multimode trust cross-chain consensus method, system, medium, equipment and terminal
CN113448694B (en) Block chain consensus method for improving transaction processing capability
CN114615281A (en) Block chaining-out method and PoS protocol confirmation method based on small-scale committee
Mišić et al. PBFT-based ordering service for IoT domains
CN113645278A (en) Cross-chain message transmission method, device and storage medium of block chain
Constantinescu et al. A fair and resilient decentralized clock network for transaction ordering
CN115244526A (en) Method and system for decentralized transaction communication protocols
Takahashi Proof-of-approval: A distributed consensus protocol for blockchains
CN116015672A (en) PBFT consensus mechanism based on reputation model
Masood et al. Distributed ledger technology for closed environment
CN115913674A (en) Access authentication method supporting trusted communication
KR102137269B1 (en) Communication system and method between blockchains

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 19846124

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

32PN Ep: public notification in the ep bulletin as address of the adressee cannot be established

Free format text: NOTING OF LOSS OF RIGHTS PURSUANT TO RULE 112(1) EPC (EPO FORM 1205A DATED 11/06/2021)

122 Ep: pct application non-entry in european phase

Ref document number: 19846124

Country of ref document: EP

Kind code of ref document: A1