WO2019245167A1 - 동적 규칙 기반의 블록 체인을 이용하는 군집 제어 장치 및 방법 - Google Patents
동적 규칙 기반의 블록 체인을 이용하는 군집 제어 장치 및 방법 Download PDFInfo
- Publication number
- WO2019245167A1 WO2019245167A1 PCT/KR2019/005842 KR2019005842W WO2019245167A1 WO 2019245167 A1 WO2019245167 A1 WO 2019245167A1 KR 2019005842 W KR2019005842 W KR 2019005842W WO 2019245167 A1 WO2019245167 A1 WO 2019245167A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- cluster
- rule
- node
- nodes
- rules
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 113
- 230000008859 change Effects 0.000 claims abstract description 114
- 230000006870 function Effects 0.000 claims description 68
- 238000004891 communication Methods 0.000 claims description 38
- 238000011017 operating method Methods 0.000 abstract 1
- 230000006399 behavior Effects 0.000 description 97
- 238000004422 calculation algorithm Methods 0.000 description 68
- 238000010586 diagram Methods 0.000 description 56
- 230000005856 abnormality Effects 0.000 description 49
- 230000008569 process Effects 0.000 description 43
- 238000001514 detection method Methods 0.000 description 37
- 238000007726 management method Methods 0.000 description 22
- 238000005457 optimization Methods 0.000 description 22
- 230000006978 adaptation Effects 0.000 description 19
- 230000003044 adaptive effect Effects 0.000 description 18
- 238000012795 verification Methods 0.000 description 18
- 230000000694 effects Effects 0.000 description 16
- 230000003993 interaction Effects 0.000 description 15
- 238000005516 engineering process Methods 0.000 description 14
- 238000003860 storage Methods 0.000 description 14
- 230000015572 biosynthetic process Effects 0.000 description 12
- 239000003016 pheromone Substances 0.000 description 12
- 239000003795 chemical substances by application Substances 0.000 description 11
- 238000012545 processing Methods 0.000 description 11
- 230000002159 abnormal effect Effects 0.000 description 10
- 238000005406 washing Methods 0.000 description 10
- 241000257303 Hymenoptera Species 0.000 description 9
- 239000002245 particle Substances 0.000 description 9
- 238000004364 calculation method Methods 0.000 description 8
- 238000013473 artificial intelligence Methods 0.000 description 7
- 238000011156 evaluation Methods 0.000 description 7
- 238000010200 validation analysis Methods 0.000 description 7
- 230000009471 action Effects 0.000 description 6
- 230000003542 behavioural effect Effects 0.000 description 6
- 230000001010 compromised effect Effects 0.000 description 6
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 0.000 description 6
- 238000010276 construction Methods 0.000 description 4
- 238000011161 development Methods 0.000 description 4
- 230000000977 initiatory effect Effects 0.000 description 4
- 238000010801 machine learning Methods 0.000 description 4
- 230000007246 mechanism Effects 0.000 description 4
- 238000005065 mining Methods 0.000 description 4
- 238000012706 support-vector machine Methods 0.000 description 4
- 238000012360 testing method Methods 0.000 description 4
- 230000005540 biological transmission Effects 0.000 description 3
- 238000004590 computer program Methods 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 241000271566 Aves Species 0.000 description 2
- 238000013135 deep learning Methods 0.000 description 2
- 238000009826 distribution Methods 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 230000036961 partial effect Effects 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 241000251468 Actinopterygii Species 0.000 description 1
- 238000001712 DNA sequencing Methods 0.000 description 1
- 206010044565 Tremor Diseases 0.000 description 1
- 230000002776 aggregation Effects 0.000 description 1
- 238000004220 aggregation Methods 0.000 description 1
- 210000003423 ankle Anatomy 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000001580 bacterial effect Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000033228 biological regulation Effects 0.000 description 1
- 238000007635 classification algorithm Methods 0.000 description 1
- 238000013502 data validation Methods 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000009795 derivation Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 208000037265 diseases, disorders, signs and symptoms Diseases 0.000 description 1
- 208000035475 disorder Diseases 0.000 description 1
- 238000005265 energy consumption Methods 0.000 description 1
- 230000007613 environmental effect Effects 0.000 description 1
- 230000001747 exhibiting effect Effects 0.000 description 1
- 238000007667 floating Methods 0.000 description 1
- 230000002431 foraging effect Effects 0.000 description 1
- 238000005242 forging Methods 0.000 description 1
- 239000011521 glass Substances 0.000 description 1
- 230000001976 improved effect Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000000670 limiting effect Effects 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 238000003032 molecular docking Methods 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 231100000572 poisoning Toxicity 0.000 description 1
- 230000000607 poisoning effect Effects 0.000 description 1
- 230000002028 premature Effects 0.000 description 1
- 230000002265 prevention Effects 0.000 description 1
- 230000001902 propagating effect Effects 0.000 description 1
- 230000012846 protein folding Effects 0.000 description 1
- 239000002994 raw material Substances 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000007619 statistical method Methods 0.000 description 1
- 230000008093 supporting effect Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 239000004753 textile Substances 0.000 description 1
- 230000036962 time dependent Effects 0.000 description 1
- 238000012549 training Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N5/00—Computing arrangements using knowledge-based models
- G06N5/02—Knowledge representation; Symbolic representation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/02—Details
- H04L12/16—Arrangements for providing special services to substations
- H04L12/18—Arrangements for providing special services to substations for broadcast or conference, e.g. multicast
Definitions
- the present disclosure relates to an apparatus and a method of operation thereof for controlling devices forming a swarm. More particularly, the present invention relates to an apparatus for controlling a community comprising homogeneous and / or heterogeneous devices and a method of operation thereof.
- AI Artificial Intelligence
- AI technology is composed of elementary technologies that utilize machine learning (deep learning) and machine learning.
- Swarm is a collection of entities that act in groups, such as ants, bees, and birds. Each individual in the cluster behaves according to very simple rules, even though there is no central control structure that directs each individual's behavior, and even if each individual does not understand the whole rule, random interactions between the individuals are partially. By working with, we can represent global behavior that looks intelligent. Swarm is a sub-set of nodes that share common Collective Characteristics, and can make Collective Decisions.
- Block chains are non-forgery, distributed storage created and managed by peer-to-peer networks that collectively adhere to conventions for validating new blocks. It refers to a collection of data blocks created in a chain.
- a typical application of the blockchain is Bitcoin, a decentralized electronic currency that records the transaction process of cryptocurrencies.
- the blockchain can store confirmed transaction details that occur between users over a period of time, many users have a copy of the blockchain, and the transaction details can be disclosed to everyone.
- the rules of the blockchain are not changeable, but the collective properties of the cluster may change over time. Accordingly, there is a need for developing a flexible blockchain technology to be used in devices forming swarms.
- a cluster control system for detecting an abnormality in a cluster may be provided based on an evolving rule of Swarm including a plurality of nodes.
- a cluster control apparatus and method for changing a rule regarding clusters may be provided based on a change in characteristics of nodes in a cluster.
- a cluster control apparatus and method for detecting an abnormal node indicating an operation not corresponding to a rule in a cluster using a blockchain based on a changing rule may be provided.
- a cluster control apparatus using a block chain is a method for controlling a cluster, based on the characteristics of at least one of the plurality of nodes included in the network Generating a first rule relating to the cluster; Sharing the generated first rule with the at least one node; Forming the cluster including the at least one node based on the shared first rule; Detecting a change to at least one node in the cluster; Changing the first rule to a second rule based on the detected change; It may be provided a method comprising a.
- the cluster control method may include: sharing the second rule with the at least one node; Detecting a change in at least one node in the cluster based on the shared second rule; It may further include.
- the method may further include: detecting an anomaly node indicating an operation not corresponding to the second rule in the cluster, based on a change detected based on the second rule; It may further include.
- the generating of the first rule may include data about an attribute, a property, a current state of the at least one node, and data about the property, the property, and the current state.
- Generating the first rule based on a kernel function that receives data; It may include.
- the sharing of the first rule may include broadcasting the generated first rule to at least one peer node selected at random from the node that generated the first rule. ;
- the first rule is broadcast to all nodes in the cluster, generating a block in which at least one node in the cluster has written the first rule, based on the first rule; Broadcasting, by the node generating the block, the generated block to randomly selected peer nodes; Verifying the broadcasted block based on the first rule; Connecting the verified block to a blockchain; It may include.
- the detecting of the change may include: detecting a change in a property, a property, and a current state of at least one node in the cluster based on the first rule; Detecting a change in the cluster based on a change in a property, a property, and a current state of at least one node in the cluster; It may include.
- the changing operation may include updating the first rule based on the detected change; Modifying the first rule based on the detected change; Resetting a boundary condition of the first rule based on the detected change; And generating the second rule using at least one of the updated first rule, the modified first rule, and the first rule including the reset boundary condition. It may include.
- the cluster may include at least one of a homogeneous node or a heterogeneous node, and operate based on at least one of the first rule and the second rule.
- all nodes in the formed cluster may be chained with transactions related to the operation history of the first rule, the second rule, and all nodes in the cluster, and at least one block in which the transactions are recorded. You can share the blockchain connected in the form.
- the first rule and the second rule may include a rule for at least one of forming the cluster, electing a node to generate the block, verifying the block, and agreeing the blockchain. have.
- a cluster control apparatus using a block chain may include a communication interface for communicating with at least one of a plurality of nodes in a network; Memory for storing one or more instructions; And a processor that executes the one or more instructions. And wherein the processor is further configured to: execute the one or more instructions to generate a first rule relating to the cluster based on a characteristic of at least one of the plurality of nodes included in the network; Share the generated first rule with the at least one nodes; Form the cluster including the at least one node based on the shared first rule; Detect a change to at least one node in the cluster; A cluster control device for changing the first rule to a second rule based on the detected change may be provided.
- the processor is further configured to: share the second rule with the at least one nodes by executing the one or more instructions; A change of at least one node in the cluster may be detected based on the shared second rule.
- the processor executes the one or more instructions, and based on the detected change based on the second rule, anomaly node indicating an operation that does not correspond to the second rule in the cluster. Can be detected.
- the processor executes the one or more instructions to perform data on the property, property, current state and the property, property, and current state of the at least one node.
- the first rule may be generated based on a kernel function that takes an input of related data.
- the processor executes the one or more instructions to broadcast the generated first rule to a randomly selected peer node of the node that generated the first rule; If the first rule is broadcast to all nodes in the cluster, then at least one node in the cluster that is elected based on the first rule generates a block that records the first rule; The node generating the block broadcasts the generated block to at least one peer node selected at random; Based on the first rule, verify the broadcasted block; The verified block can be connected to the blockchain.
- the processor is further configured to: detect a change in a property, a property and a current state of at least one node in the cluster based on the first rule by executing the one or more instructions;
- the change in the cluster may be detected based on a change in a property, a property, and a current state of at least one node in the cluster.
- the processor is further configured to: update the first rule based on the detected change by executing the one or more instructions; Modify the first rule based on the detected change; Reset the boundary condition of the first rule based on the detected change;
- the second rule may be generated using at least one of the updated first rule, the modified first rule, and the first rule including the reset boundary condition.
- the cluster may include at least one of a homogeneous node or a heterogeneous node, and operate based on at least one of the first rule and the second rule.
- all nodes in the formed cluster may be chained with transactions related to the operation history of the first rule, the second rule, and all nodes in the cluster, and at least one block in which the transactions are recorded. You can share the blockchain connected in the form.
- a consensus basis for generating at least one runtime consensus rule based on at least one of the characteristics, properties, behaviors and current status of homogeneous and / or heterogeneous nodes A rule unit; A run type consensus rule based clustering unit forming a cluster of homogeneous and / or nodes; A detection unit for detecting a change in at least one of a characteristic, a property, a consensus rule, an action, and a current state of the cluster; And an adaptation rule unit in the blockchain that updates the clusters and the rules in the blockchain based on the detection.
- the clustering of the homogeneous and / or heterogeneous nodes may be based on at least one rule in the rule unit.
- the characteristics, properties, behaviors, and current state of the cluster may be determined based on raw values or a function of the raw values.
- At least one node in the cluster may register itself with the blockchain ledger, and the modified ledger may be transferred to the next node.
- At least one of the property, the property, the action, the current state, the consensus rules, the adaptation rules, and transactions may be input to the blockchain ledger.
- updating the rules in the blockchain by the adaptive rule unit comprises at least one of creating new rules, modifying existing rules, and setting boundary conditions for existing rules. It can be one.
- the runtime consensus rule in the cluster may be updated based on rules updated by the adaptation rule unit.
- anomaly may be detected based on at least one of modified existing rules, new rules, and boundary conditions of the existing rules.
- information about at least one of new rules, modified existing rules, or boundary conditions of the existing rules may be provided to the cluster.
- the blockchain ledger may be updated based on at least one of a new rule, an updated rule, and boundary conditions of existing rules.
- the at least one node may be blocked after detection of the abnormality in the node.
- generating at least one runtime consensus rule based on at least one of the characteristics, properties, behaviors and current status of homogeneous and / or heterogeneous nodes Based on the generated runtime consensus rules, forming a cluster of homogeneous and / or nodes; Detecting a change in at least one of a characteristic, a nature, a consensus rule, a behavior, and a current state of the cluster; And after detecting the change, updating the rules of the adaptation rule unit in the blockchain.
- the forming of the cluster may be based on at least one rule in the rule.
- the property, property, behavior, and current state of the cluster may be determined based on raw values or a function of the raw values.
- At least one node in the cluster may register itself with the blockchain ledger, and the modified ledger may be transferred to the next node.
- each blockchain ledger is at least one entry among at least one property, characteristic, behavioral characteristic, current status of the cluster, consensus rules and transactions between the nodes in the cluster. Can be saved.
- the updating may include generating, by the adaptive rule unit, a new rule, modifying existing rules, and setting a boundary condition for the existing rules.
- information about at least one of new rules, modified existing rules, or boundary conditions of the existing rules may be provided to the cluster.
- the runtime consensus rule in the cluster may be updated based on rules updated by the adaptation rule unit.
- the detecting may detect an abnormality in the cluster based on updated rules of the blockchain in the cluster.
- the blockchain ledger may be updated based on at least one of a new rule, a modified existing rule, and boundary conditions of the existing rule.
- the at least one node may be blocked after detection of the abnormality in the node.
- the cluster control apparatus may change a rule regarding clustering based on a change of nodes in a cluster.
- FIG. 1 is a diagram for describing a clustering system according to a general technology, according to an exemplary embodiment.
- FIG. 2A is a view for explaining formation of clusters and detection of abnormalities in clusters in a general cluster system.
- FIG. 2B is a diagram for describing formation of random plurality of clusters and detection of abnormalities in a cluster in a general cluster system.
- 2C is a diagram for explaining formation of a plurality of random clusters and detection of abnormalities in a cluster in a general cluster system.
- 3 is a view for explaining the operation of the general block chain system.
- 4A is a diagram illustrating a network of heterogeneous devices, according to one embodiment.
- FIG. 4B is a diagram for describing a process of setting a rule of a cluster and boundary conditions of the rule based on a property and a characteristic of a cluster including heterogeneous devices.
- 4C is a view for explaining a process in which the properties and characteristics of a cluster change as new devices are added to the cluster, and the rules and boundary conditions of the cluster are updated according to the changed properties and characteristics.
- 4D is a diagram for describing a swarm formed between heterogeneous devices, according to an exemplary embodiment.
- 4E is a diagram for describing a swarm formed between heterogeneous devices, according to an exemplary embodiment.
- FIG. 5 is a diagram illustrating a swarm environment according to an exemplary embodiment.
- FIG. 6 is a diagram for describing a cluster intelligence system including a blockchain service, according to an exemplary embodiment.
- FIG. 7A is a diagram for describing a cluster intelligence core engine, according to an exemplary embodiment.
- 7B is a diagram illustrating a plurality of layers in a blockchain according to an embodiment.
- 7C is a diagram for describing a process of processing a transaction in a blockchain, according to an exemplary embodiment.
- FIG. 8 is a flowchart illustrating a cluster control method according to an exemplary embodiment.
- FIG. 9 is a diagram for describing in detail an operation of sharing a first rule, according to an exemplary embodiment.
- FIG. 10 is a diagram for describing in detail an operation of changing a first rule to a second rule, according to an exemplary embodiment.
- 11A is a diagram for describing a cluster including a plurality of drones, according to an exemplary embodiment.
- 11B is a diagram for describing a cluster including a plurality of drones, according to an exemplary embodiment.
- FIG. 12A illustrates a cluster including a malicious drone, according to an exemplary embodiment.
- 12B is a diagram for describing a cluster including a malicious drone, according to an exemplary embodiment.
- FIG. 13 is a view illustrating a cluster including industrial robots in a manufacturing assembly plant according to an embodiment.
- FIG. 14 is a diagram illustrating an abnormal detection and intrusion identification process according to an exemplary embodiment.
- 15A is a diagram for describing a process of attacking a smart home where a smart meter is installed according to an embodiment.
- 15B is a diagram for describing a process of attacking a smart home where a smart meter is installed according to an embodiment.
- FIG. 16 is a diagram for describing a man-in-the-middle attack technique intercepting data packets of a counterpart in a local area network using an address resolution protocol.
- 17 is a diagram for describing a process of detecting an abnormality in a cluster, according to an exemplary embodiment.
- FIG. 18 is a diagram for describing a cluster-based system used for traffic management, according to an exemplary embodiment.
- 19A is a diagram for describing a cluster forming method according to an exemplary embodiment.
- 19B is a diagram for describing a method of detecting an abnormality in a cluster, according to an exemplary embodiment.
- 20 is a block diagram of a group control apparatus according to an embodiment.
- 21 is a block diagram of a server that performs a clustering control method according to an exemplary embodiment.
- a method for controlling a cluster by a cluster control apparatus using a blockchain comprising: generating a first rule regarding the cluster based on characteristics of at least one of a plurality of nodes; Sharing the generated first rule with the at least one node; Forming the cluster including the at least one node based on the shared first rule; Detecting a change to at least one node in the cluster; Changing the first rule to a second rule based on the detected change; It may be provided a method comprising a.
- An apparatus for controlling a cluster using a blockchain comprising: a communication interface for communicating with at least one node in the cluster; Memory for storing one or more instructions; And a processor that executes the one or more instructions.
- the processor is further configured to: execute the one or more instructions to generate a first rule relating to the cluster based on a characteristic of at least one of a plurality of nodes; Share the generated first rule with the at least one nodes; Form the cluster including the at least one node based on the shared first rule; Detect a change to at least one node in the cluster;
- a cluster control device for changing the first rule to a second rule based on the detected change may be provided.
- a recording medium comprising: generating a first rule regarding the cluster based on characteristics of at least one of a plurality of nodes; Sharing the generated first rule with the at least one node; Forming the cluster including the at least one node based on the shared first rule; Detecting a change to at least one node in the cluster; Changing the first rule to a second rule based on the detected change;
- a computer readable recording medium having recorded thereon a program for executing the group control method in a computer may be provided.
- any part of the specification is to “include” any component, this means that it may further include other components, except to exclude other components unless otherwise stated.
- the terms “... unit”, “module”, etc. described in the specification mean a unit for processing at least one function or operation, which may be implemented in hardware or software or a combination of hardware and software. .
- the present disclosure is a technique related to Core AI, and may provide a method for detecting anomaly in a cluster including at least one device.
- the present disclosure combines Swarm Intelligence and Block Chain technology, and can handle generation / change of blockchain rules based on the current state and properties of clusters generated by cluster intelligence. These dynamic rules, which are generated and changed based on the current state, parameters and properties of the cluster, can be used to detect abnormalities in the cluster that include at least one device. In other words, the dynamic rules of the blockchain can cause intelligence in the cluster.
- a homogeneous swarm may mean a cluster including similar types of devices having similar behaviors and properties, and a heterogeneous swarm may refer to different heterogeneous behavioral characteristics and characteristics. It may mean a cluster in which different types of devices having properties are connected.
- 1 is a view for explaining the concept of swarm intelligence (Intelligence).
- Distributed self-organized agents / nodes following simple rules exhibit collective behavior by interacting with locally adjacent nodes, and through collective behavior.
- Creatively represent global behavior that looks intelligent.
- fine-tuning the local interactions of the cluster's decentralized self-organized agents and / or nodes it is possible to create clusters that perform the required behavior that, as a whole, appears intelligent.
- Cluster intelligence may be generated by a system that includes decentralized, self-organized nodes / agents representing collective behavior, and nodes and / or agents exhibiting cluster intelligence may have any randomness where interaction with each other is prioritized. have.
- 2A is a diagram for describing a method of detecting swarm formation and anomaly in a network including a plurality of nodes.
- the network may include a plurality of nodes, and the network may create a subnetwork including at least some nodes in the entire network using an automatic sub-networking algorithm.
- Automatic sub-networking algorithms can provide unique definitions for each node in different sub-networks.
- the network according to the present disclosure may form an cluster including at least one node and detect anomalies using an automatic sub-networking algorithm.
- the network according to the present disclosure may correspond to an entire node or a subset of nodes, and the node may correspond to electronic devices capable of wired or wireless communication.
- a swarm may include all nodes in the network or may include at least some nodes in the network. Swarm according to the present disclosure is based on the local interaction of at least one node that acts according to a simple rule, the emergent behavior that appears globally intelligent It can mean a group of nodes that represent.
- a serial number of 1 to M may be assigned to each node.
- M may mean the total number of nodes in the cluster.
- the M nodes may be grouped according to the common characteristics and properties of the super set formed by the K nodes forming the super set. (1 ⁇ M ⁇ K)
- the characteristics and properties of the super aggregation of these K nodes are learned over time, and the K nodes can form a swarm of M nodes based on the learning.
- the formed swarms exhibit the common characteristics and properties of super aggregates within the same system, and swarms interact centrally and independently with other swarms to provide central control. Rather than operating by, it can be distributed and self-organizing. Swarms may make collective decisions based on the collective consensus derived.
- FIG. 2B is a diagram for describing a process of detecting anomaly and the formation of different sub clusters in a network including a plurality of nodes.
- Swarm may be arranged in a circular fashion, as shown in FIG. 2B.
- a cluster containing M nodes may form a sub-swarm including n (eg 3) nodes, and the sub clusters include nodes common to adjacent sub clusters. can do. That is, a specific node in one sub cluster may be a node of another sub cluster neighboring the sub cluster.
- n eg 3
- attacks or abnormalities within a cluster including M nodes can be easily detected. Detection of attack or abnormality within a cluster can be explained by two examples as follows.
- a unique node within the subcommunity may be considered compromised or under attack. That is, if only the sub-group network including the nodes N4, N5 and N6 contains an error, it can be considered that anomaly has occurred in the node N5.
- a common node shared by the sub cluster networks where the attack is detected may be damaged. That is, when an attack is detected on the sub-cluster network including the nodes N6, N7, and N8 and the sub-cluster network including the N4, N5, and N6, it may be considered that the node N6 has an abnormality.
- n may represent the number of nodes included in the sub cluster
- M may mean the number of nodes of the entire cluster including the sub clusters.
- the number of nodes in each sub cluster is three or more, but can be expressed as in Equation 1 above.
- FIG. 2C is a diagram illustrating a process in which predetermined secondary subgroups are formed by collecting respective nodes that do not overlap from primary subgroups.
- S1 represents the number of primary sub-swarms
- S2 represents the number of secondary sub-swarms.
- the number S1 of primary subgroups is 5
- the number S2 of secondary subgroups is zero.
- methods for detecting anomaly in clusters are difficult to detect correctly when abnormalities occur in a plurality of nodes, and many calculations are required for abnormality detection in large clusters including a plurality of nodes. There was a problem.
- methods for detecting anomalies in a cluster are generally at risk of providing incorrect results if one or more nodes are damaged or cause problems, and if all members of a subcommunity are attacked or compromised, they may be attacked or compromised. There was a problem that the sub-community could not be detected.
- FIG. 3 is a diagram for describing a blockchain algorithm, according to an exemplary embodiment.
- a blockchain is a distributed ledger (database) that includes blocks that record continuously increasing transactions in a chain format, where each block may include a time-stamp and a link to the previous block.
- each block in the blockchain may have a unique hash value, and the hash value of each block may include the hash value of the previous block.
- Blockchains are inherently resistant to data modifications and have integrity for data reliability.
- a blockchain can be thought of as a distributed digital ledger used to record transactions between multiple nodes / computers.
- Blockchain can provide a reliable and inexpensive way for management or finance that can be recorded or verified in a de-centralized distributed network.
- the architecture of clusters is decentralized, and both blockchains and clusters are involved in collective decision making, so the robustness of the blockchain is formed by multiple devices. Applicable to clusters that become.
- a transaction according to an embodiment of the present disclosure may mean the occurrence of a predefined event. Transactions may also include transactions between two objects (eg exchange of data, exchange of functions of data values). According to an embodiment, the transaction in a cluster including at least one device may include an exchange of raw data to function of raw data values of the devices.
- Raw data of devices may include device identification data and device state data.
- the identification data of the device may include property data of the device and property data of the device.
- the raw data of the device may constitute raw data of a swarm.
- the device according to the present disclosure may correspond to one node in one network.
- a node may include various types of devices or electronic devices.
- the nodes included in the cluster in the present specification may include a digital camera, a mobile terminal, a smart phone, a laptop computer, a tablet PC, an electronic book terminal, a digital broadcasting terminal, and personal digital assistants (PDAs).
- PDAs personal digital assistants
- It may be, but is not limited to, an electronic device including a portable multimedia player (PMP), navigation, an MP3 player, home appliances in the house, and the like.
- PMP portable multimedia player
- MP3 player home appliances in the house, and the like.
- the node may be a wearable device.
- Wearable devices may be accessory devices (e.g. watches, rings, cuffs, ankle bands, necklaces, glasses, contact lenses), head-mounted-devices (HMDs), textile or apparel-integrated devices (e.g., Electronic clothing), a body-attached device (eg, a skin pad), or a living implantable device (eg, an implantable circuit), but is not limited thereto.
- a node is a unit of a network including a device, and may correspond to each of the computer devices, such as a drone, an aircraft, and a vehicle that can communicate with each other. It may include devices. That is, the nodes included in the cluster may correspond to a plurality of electronic devices capable of wired or wireless communication with each other.
- consensus rules develop dynamically as the cluster properties change, and the rules of the cluster can change as the rules change.
- behavioral artifacts which are run-time consensus rules, and the behavior of clusters can be determined based on the raw value or a function of the raw value.
- the behavior of clusters can help set rules in the blockchain for anomaly detection.
- the consensus rule of the blockchain according to the present disclosure may correspond to the rule of the blockchain in a broad sense.
- the rule of the blockchain according to an embodiment of the present disclosure is a rule for defining a cluster, a leader election rule for selecting a node for generating a new block recording a transaction in the cluster, and a block generated by a node elected as a leader in the cluster.
- Validation rule for verifying, and when different blockchains in the network are formed, it may include a decentralized consensus rule for unifying the contents of the blockchains.
- 4A is a diagram illustrating a network of heterogeneous devices, according to one embodiment.
- 4B is a diagram for describing a process of setting a rule of a cluster and a boundary condition of the rule based on a property and a characteristic of a cluster including heterogeneous devices, according to an exemplary embodiment.
- Homogeneous Swarm can refer to a cluster comprising similar types of devices with similar behavior and properties, while heterogeneous Swarm refers to different types of devices with different heterogeneous behavioral characteristics and properties. It can mean a connected cluster.
- homogeneous devices in a homogeneous cluster may have data regarding homogeneous characteristics, properties, and current status, and share homogeneous data with other devices in the cluster.
- Heterogeneous devices may have data regarding heterogeneous characteristics, properties, and current status, and may share heterogeneous data with other devices in the cluster.
- the nature or characteristics of the homogeneous and heterogeneous communities may be similar or different in nature, but the homologous and heterogeneous communities may have collective interdependent characteristics.
- IOT devices including a plurality of heterogeneous devices may be connected to each other through a network, and may show different properties and usage examples according to predetermined characteristics.
- Each device of FIG. 4A constitutes a cluster, and each device in the cluster includes a block chain in which blocks including data (eg, raw data to function of raw data) and activity records between the devices are chained. Each can be stored. Each device may maintain a ledger of each entry in the block such that activities related to the devices in the cluster are recorded in the ledger.
- a cluster-based system may include a predefined event (eg, transactions, exchange of data, addition of a new device in a cluster, properties, properties, and current status of a device in a cluster). In the case where at least one change is detected) and a transaction generated by the activity, a block may be generated and the generated block may be shared with devices in the cluster.
- the cluster-based system may include an adaptive rules engine for updating, changing, and adapting rules for verifying.
- each block included in the blockchain may correspond to a ledger or a specific page of the ledger, and the entire blockchain may correspond to the ledger or the entire ledger.
- each device may specify a set of property parameter sets, and attribute values. Can define a series of attribute parameters.
- each node eg, each device
- each node may include a block chain to which other nodes in the cluster and blocks containing generated transactions and activities are connected.
- a plurality of clusters may be formed that represent the collective behavior common between the nodes. For example, a node within a heterogeneous cluster may share common property parameters and characteristic parameters, and a node within a heterogeneous cluster may share properties and properties defined by different types of parameters. have.
- FIG. 4B is a diagram for describing a process of setting a rule of a cluster and boundary conditions of the rule based on a property and a characteristic of a cluster including heterogeneous devices.
- Cluster 1 424 includes a washing machine 406 and a microwave oven 404 connected to the washing machine, and includes both the water temperature range of the washing machine 25 degrees to 200 degrees and the operating temperature range of the microwave oven 30 degrees to 200 degrees. It can be connected based on the temperature characteristics including the temperature range 25 degrees to 200 degrees.
- an attribute (eg, temperature) of devices of the present disclosure may have a property (eg, a temperature range) corresponding to the characteristic.
- the boundary condition of rule R1 for defining cluster 1 includes both the water temperature range of the washing machine, 25 degrees to 200 degrees, and the microwave operating temperature range, 30 degrees to 200 degrees. It can be determined by the temperature range.
- Cluster 2 422 includes a router 403, a smart TV 402, a phone 401, and a smart watch 405, as a common attribute.
- the connection may be based on a networking capability having a bandwidth of 200 to 2000 MHz.
- Devices included in each cluster may store transactions occurring in themselves and in a network in a queue set in a memory in each device, and in the memory, may include a block chain in which blocks including previously generated transactions are connected.
- a cluster has a new transaction in a cluster, randomly selected devices adjacent to the transaction originating the transaction first receive the transaction, and the devices receiving the transaction again transfer the transaction to randomly selected devices adjacent to the cluster.
- all devices in the cluster can queue newly generated transactions in their own memory.
- transactions occurring between devices in a cluster may be randomly delivered to neighboring peer nodes in a broadcasting manner, and all devices in the cluster within a predetermined time may newly generate transactions. Can share.
- a device selected according to at least one of proof of work or proof of ownership may generate a new block by recording transactions stored in the device itself, transmitted by broadcasting, in a block.
- the leader election method for generating a new block recording a transaction in the network is not limited to proof of work (POW) or proof of stake (POS), and other leader election method for performing a function for generating a block in the blockchain. Algorithms can be used.
- the device that created the new block randomly delivers the generated blocks to adjacent peer nodes (eg, devices), and the node that receives the new block can again deliver the new block to adjacent randomly selected nodes.
- Each node in the cluster can verify the received block using the rules of the cluster.
- Each node in the same cluster may verify the received block by using the rules of the same cluster, and may derive the same verification result for the block including the same transaction. If each node in the cluster successfully completes verification of the newly created blocks received from the node elected as the leader, the devices in the cluster may derive a 'consensus'.
- T1 is the water temperature of the washing machine 406
- T2 is the operating temperature range of the microwave oven 404
- S1 is the current state of the washing machine
- S3 is the current state of the microwave oven
- Rule R1 may be set according to the state and nature of the devices. Referring to FIG. 4C, when new devices are added to a cluster, a process of updating the rules and boundary conditions of the cluster will be described in detail.
- 4C is a view for explaining a process in which the properties and characteristics of a cluster change as new devices are added to the cluster, and the rules and boundary conditions of the cluster are updated according to the changed properties and characteristics.
- the refrigerator 408 and the air conditioner 409 have been added to the cluster 1 426, and the updated cluster 1 426 may be displayed as shown in Table 2 as new devices are added.
- the newly updated cluster 1 426 may further include a refrigerator 408 and an air conditioner 409 in addition to the washing machine 406 and the microwave oven 404.
- Cluster 1 424 and updated cluster 1 426 may be connected based on temperature characteristics.
- cluster 1 424 of FIG. 4B has a temperature range of -10 degrees to 200 degrees, which includes both an operating temperature range of -10 degrees to 25 degrees and an operating temperature range of an air conditioner to 18 degrees to 28 degrees. The connection can be made based on the corresponding temperature characteristics.
- the temperature range for the temperature characteristics of the community may refer to the nature of the community.
- the boundary condition of rule R1, updated to define a new cluster 1 (426), is 25 degrees to 200 degrees in the washing machine's water temperature range, 30 degrees to 200 degrees in the microwave's operating temperature range, and operation of the refrigerator. It may be determined as a temperature range including both the temperature range of -10 to 25 degrees and the operating temperature range of the air conditioner to 18 degrees to 28 degrees.
- rule R1 defining the cluster may also be updated. That is, the rules of a cluster and boundary conditions of the rules according to an embodiment of the present disclosure may be updated based on the state, property, and characteristics of the current cluster.
- T1 may indicate a water temperature of the washing machine
- T2 may indicate an operating temperature range of the microwave oven
- T3 may indicate an operating temperature range of the refrigerator
- T4 may indicate an operating temperature range of the air conditioner.
- the rules of a cluster can be updated based on the current state, characteristics, and properties of the cluster to form cluster intelligence.
- 4D is a diagram for describing a swarm formed between heterogeneous devices, according to an exemplary embodiment.
- swarms formed based on the rules generated by the rule unit 606 herein may include a plurality of clusters including at least one device. That is, swarms formed based on the rules generated by rule unit 606 may include one or more clusters.
- devices D1 401, D2 402, D3 403, D5 405, and D7 407 form one cluster
- devices D4 404, D6. 406, D7 407, D8 408, and D9 409 may form other clusters.
- the device D7 407 may be commonly included in different clusters.
- a cluster-based system includes a cluster including a device D1 401, a D2 402, a D3 403, a D5 405, and a D7 407, and a device D4 404, D6 ( 406, D7 407, D8 408 and D9 (409) in the case of an abnormality occurred in all the clusters, it can be considered that the abnormality in the device D7 (407).
- the number of common nodes included in different clusters may be determined based on a rule of each cluster.
- the cluster may be formed in a predetermined cluster size, such as N.
- the number of nodes (eg devices) included in all clusters in the network may be M as any number.
- all clusters in the network may include the same number of nodes (eg, devices) or may include different numbers of nodes.
- M starting nodes may be randomly selected (swarm initiation).
- the selection of the starting node is performed in a distributed manner and may be based on local clocks.
- each node in the cluster may be asynchronous to operate based on a unique clock.
- each of the initiating nodes may cycle a blank fixed-length ledger of size N randomly selected to one of the adjacent nodes.
- devices in the cluster may involve locally interacting.
- the local interaction in a cluster has a certain degree of randomness, and based on the local interaction with this randomness, the behavior of nodes in other regions in the cluster may change.
- a node that receives a ledger from an initiating node within a cluster may register itself with the ledger (eg only once) and then forward the modified ledger to its neighboring randomly selected nodes. have. This process can continue until the M gentle ledgers are full.
- the entries in the ledger can determine the members of the clusters involved in the ledger.
- M clusters can be formed.
- Clusters of fixed size or variable size may be formed by choosing different sizes of ledgers.
- the ledger may correspond to a block of a block chain or a block chain itself stored in each device, and thus, based on the size (or length) of the blocks in the block chain,
- the size of the shared clusters can be determined.
- the size of the cluster is a design parameter that is optional by the designer and depends on the total number of nodes in the cluster, time constraints, and the type of specific application used to store the data in blockchain format. Can be.
- the formation of such clusters 601 does not require centralized control and can be performed based on a decentralized distributed system.
- a set of homogeneous and / or heterogeneous devices may collectively form a cluster.
- Homogeneous and / or heterogeneous devices share their raw data and / or function of raw data with neighboring nodes (eg, neighboring devices), and the raw data and / or of each device
- the function of the raw data may constitute transactions. Transactions that occur at each device can be shared online with other nodes in the network.
- the raw data of the devices may include data regarding the characteristics, properties and current state of the devices in the cluster and the function of raw data may include a function specified based on at least one of the characteristics, properties and current state of the devices. Can be.
- Raw data and / or function of raw data of devices may define transactions between devices. According to one embodiment, transactions may occur based on the exchange, change and update of raw data and / or function of raw data according to at least one of the addition, change and withdrawal of device members in a cluster, It can occur depending on changes in characteristics, properties, current state and behavior.
- the addition, change, or withdrawal of members in a cluster changes in the characteristics, properties, current state, and behavior of devices in the cluster may be defined as events in advance, and when a predefined event occurs, transactions occur and occur.
- the transactions can be delivered (eg broadcast) to all devices in the cluster. That is, all devices in the cluster can exchange data by wired or wirelessly connecting each other to transmit and receive transactions and new blocks in which transactions are recorded.
- the cluster 410 may be formed by a heterogeneous network including various devices having different properties, different attributes, and operations for different current states.
- each node may include a block chain ledger (eg, block chain data to which block chain blocks are connected) in which transactions and / or activity data of other devices are recorded.
- Block chain ledger eg, block chain data to which block chain blocks are connected
- Property parameters and property parameters of devices in a cluster may be generated based on common collective behavioral of the devices in the cluster.
- each node in the cluster adds a verified block to its blockchain by verifying a block in which newly generated transactions are recorded when transactions of devices in the cluster newly occur according to a predefined event.
- a predefined event Can be. That is, devices in a cluster can update the blockchain as new transactions in the cluster occur.
- Transactions delivered to all devices in the cluster can be stored in a queue of devices in the cluster, and all devices in the cluster can share the transactions.
- all devices in a cluster may share a transaction of the same content, but since the order in which the transactions are delivered to the nodes in the cluster may be random, the order in which the transactions are stored in each device may be changed.
- the node that performs the proof-of-work and finds the correct answer to the hash puzzle is elected as a leader to generate a new block that records the transactions that the user currently has, and the generated block is in the cluster. It is passed to every node and can be verified by each node.
- Blockchain rules of verification can be derived by the nature, nature and current state of the cluster.
- the verification process of the devices in the cluster may include determining whether a node that has generated the block is a leader authorized to create a block, and whether or not transactions in a block generated in the cluster have not been changed. According to one embodiment, whether transactions in a block have not changed may be determined based on an electronic signature and a hash function.
- the blockchain rules of each device in a cluster are characterized by the attribute, property and current of the cluster. It can be updated or changed by status.
- the boundary conditions of the rules may also be set according to the characteristics, nature and current state of the cluster.
- FIG. 4E is a diagram for describing a swarm formed between heterogeneous devices, according to an exemplary embodiment.
- nodes eg, D1 401, D2 402, D3 403, D5 405, D6 406, D7 407, D8 408
- D9 409 may be connected to form different clusters.
- one node may be included in a plurality of clusters.
- Heterogeneous devices constituting the home network may be connected by a common characteristic (eg, a temperature characteristic).
- a common characteristic eg, a temperature characteristic
- the general temperature range in which each of these devices operates may vary from -10 degrees Celsius to 200 degrees Celsius.
- each device in the cluster may measure a current temperature range of other devices and update the measured temperature ranges of other devices in a block of the blockchain. For example, if the operating range of these units (e.g. D9, 409) is 18 to 22 degrees in summer, for clusters where the general blockchain rules apply, the current temperature of units D9, 409 is 25 degrees. Although not shown, it may be considered a valid reading unless otherwise specified. That is, assuming that D9 409 is compromised, does not cool to 19 degrees, which is the desired temperature in the summer, and has a temperature of 24 degrees, which is the current temperature, in this case, the traditional rules of the blockchain (eg implied) rule or defined consensus rules) may not detect D4 (404).
- the traditional rules of the blockchain eg implied) rule or defined consensus rules
- rules for defining a cluster may be changed by the characteristics, properties, and current state of the cluster. For example, in the blockchain currently stored by each device in the cluster, the correct temperature operating range of D9 is set so that the temperature boundary condition of D9 is set between 18 degrees and 24 degrees, and the boundary conditions are not updated. An abnormality of the device D4 404 indicating the abnormal temperature of the figure may not be detected.
- the temperature boundary condition of D9 stored in the blockchain included in each device that is a member of the cluster may be updated from 18 degrees to 22 degrees.
- an abnormality of the device D4 404 indicating an abnormal temperature of 24 degrees can be detected.
- the boundary condition according to an embodiment of the present disclosure may include a temperature range of each device that is a member in a cluster, or may include all of the temperature ranges of all devices in the cluster.
- the current air conditioner temperature of 24 degrees may be regarded as a normal temperature, but based on the dynamic rule,
- the temperature range is updated from 5 degrees to 23 degrees as a boundary condition of the clustering rule of the cluster system to be used, the current airken temperature of 24 degrees can be regarded as an abnormal temperature.
- the change or update of a rule of a cluster and the boundary condition of the rules may be generated as a new transaction, and based on the attribute, property, current state, and current behavior of the cluster.
- Simple rules that are the basis for local interactions followed by members of a cluster runtime consensus rules to define clusters, leader node election rules to create blocks within clusters, validation rules to verify created blocks,
- Decentralized consensus rules for unification can be created, changed, modified, and updated when a blockchain in which different transactions are recorded in a cluster is connected. Therefore, an abnormality detection algorithm (eg, a mechanism) in a cluster using a blockchain according to an embodiment of the present disclosure may also be generated, changed, modified, and updated.
- a clustered environment may include a cluster (including homogeneous or heterogeneous nodes) that interacts with the environment to solve a problem or achieve desirable behavior, and that interacts with one another among other clusters.
- the cluster environment may refer to an environment or an object to which the community-based system 500 interacting with each other or a cluster control device including a plurality of devices interact with each other.
- the cluster-based system 500 may include predetermined blocks that perform the cluster intelligence 501, the block chain 602, and the abnormal and / or corrupted node detection 503.
- Cluster intelligence unit 501 may cause generation, formation, and evolution of clusters based on a given set of simple rules. For example, the cluster intelligence 501 unit defines a simple rule for local interaction of devices in a cluster, and based on the state, characteristics, properties, and parameters of the cluster, the generated simple rule. This makes the rules of clustering adaptive by themselves. Cluster intelligence unit 501 may communicate data to the blockchain unit 602 about the current state of the cluster, rules of the cluster, parameters, properties, and characteristics.
- the blockchain unit can be used to verify and store 602 transactions 603.
- the blockchain unit may include a ledger generation unit and an abnormality detection algorithm unit.
- the block chain unit may verify a block in which transactions (603) and transactions are recorded using a consensus manager (610) having a predefined rule set.
- the ledger generation unit is based on a blockchain rule, after a block generated by an elected leader is delivered to all nodes sharing the blockchain, and after verification of the block is completed at each node that receives a new block.
- a new ledger can be created for each node. That is, in the blockchain system, the blockchain stored in each node may correspond to one ledger.
- the anomaly detection algorithm unit receives data regarding the state, rules, parameters, and properties of the cluster from the cluster intelligence unit, and detects an abnormality in the cluster based on data about the state, rules, parameters, and properties of the cluster.
- Can store algorithms for In accordance with the present disclosure, the state, parameters, properties, current state and properties of the cluster can be used to define the runtime rules of the blockchain 602 and make the runtime rules more adaptive.
- the anomaly detection unit 503 may detect anomalies in a cluster containing a plurality of nodes by using a property that transactions may not be overwritten according to the invariant property of the blockchain. have.
- “intelligence” of a cluster may be generated using the blockchain 602.
- the rules of the blockchain 602 may be created, updated, and changed based on the current state, properties, and attributes of the cluster.
- blockchain 602 can be made flexible to accommodate changing behaviors of clusters.
- the cluster intelligence unit and the blockchain unit 602 are combined and dynamically change the rules of the blockchain by creating or changing rules of the blockchain based on the current state and the nature of the cluster generated by the cluster intelligence. Can be made with The dynamic rules of the blockchain thus created or modified can be used to detect attacks or abnormalities in the cluster. Detection of anomalies or threats within a cluster using the blockchain 602 technique can be determined based on the nature, characteristics and current state of the cluster. Thus, blockchain 602 rules can evolve with the evolution of clusters.
- FIG. 6 is a diagram for describing a cluster intelligence system including a blockchain service, according to an exemplary embodiment.
- Cluster intelligence is localized according to simple rules (e.g., decentralized), and intelligently visible global collective behavior of self-organizingehls agents (e.g. nodes). collective behavior). Cluster intelligence may mean that local interactions of decentralized and self-organized nodes or regional interactions between nodes and the environment exhibit emergent behavior that appears intelligent in the cluster as a whole.
- the cluster based system may detect nodes for forming a cluster.
- cluster detection unit 605 may randomly detect nodes corresponding to a generated cluster rule with respect to signal strength, distance of nodes, and recognition of nodes in environment. have.
- the process of detecting the cluster in the environment by the cluster detection unit 605 may be similar to Particle Swarm Optimization 706 (PSO) algorithm, but is not limited thereto.
- PSO Particle Swarm Optimization 706
- the rule unit 606 may generate simple rules for forming a cluster among the plurality of nodes.
- the cluster forming unit 607 may form a cluster based on simple rules generated by the rule unit 606.
- Methods for the cluster forming unit 607 to form a cluster may vary. That is, the plurality of nodes may follow the simple rules generated in rule unit 606 to form a cluster.
- the cluster may comprise homogeneous and / or heterogeneous nodes, the homogeneous nodes may comprise similar behaviors and properties, and the heterogeneous nodes may have a series of unique behaviors and different properties.
- the rules generated by the rule unit 606 need to be adapted and changed.
- rules may change based on activity results that yield better results.
- the result of the activity of the nodes is represented as an update, change or modification of the blockchain rule, and the updated, changed or modified rules can be input to the adaptation rule unit 609 via a feedback loop as feedback.
- the behavior of the cluster can be more dynamically adapted to the environment.
- the blockchain unit 602 providing the blockchain services 608 may include an adaptation rule unit 609, a consensus management unit 610, a distributed ledger unit 611, and a ledger storage unit 612. It may include.
- the blockchain service unit 608 is a blockchain algorithm for controlling the adaptation rule unit 609, the consensus management unit 610, the distributed ledger unit 611, and the ledger storage unit 612 to maintain the integrity of the data. It may include.
- the adaptation rule unit 609 may change, update, and modify the rules created in the rule unit 606 based on changes in the current state, parameters, properties, and properties of the cluster.
- the adaptation rule unit 609 may be sensitive to the different behaviors and properties of homogeneous and / or heterogeneous nodes in the cluster to obtain desired results, resulting in a blockchain adaptation of the generated rules for which the cluster based system is generated. By combining with its constant properties, it detects anomalies and / or threats within a cluster.
- the consensus management unit 610 may manage the rules of the blockchain to maintain data integrity. For example, the consensus management unit 610 records the transactions among the nodes of the blockchain system to create a block by selecting leader election rules (eg, POW, POS), verification rules for verifying generated blocks, and different transactions. When the recorded blockchain grows in a network, it is possible to manage decentralized consensus rules for unifying the blockchain and runtime consensus rules on the operation of the blockchain.
- leader election rules eg, POW, POS
- the distributed ledger unit 611 may generate a block that records transactions in the block chain system, and deliver the generated block to nodes in the block chain system.
- the ledger storage unit 612 may allow a new block to be connected to the blockchain when verification of the generated block is completed.
- the ledger storage unit 612 may store the block chain to which the newly created block is connected in the cluster-based system or at least one node.
- a consensus based cluster intelligence system may exhibit desirable behavior / forecasted results 613 as the system user's expectations. That is, the expectation of a system user in a network comprising a plurality of nodes is represented by the behavior of the nodes in the cluster, and these nodes are simple rules defined by the rule unit 606 when the node starts to operate. rules can be followed.
- the feedback management unit 614 can provide feedback on the nature of the nodes, and the cluster based system can collectively determine the desired change in the nature of these nodes to produce desirable behavior / expected results corresponding to the needs of the system user. Modify and / or update the required rules for derivation.
- Sub-swarms of clusters can have a blockchain.
- the blockchain may be generated from the basis of the raw data and the function of the raw data shared by the nodes.
- the values shared by the nodes in the cluster may be raw values (eg temperatures of ACs) or functions (eg entropy) of values.
- Tamper and anomaly can be detected using the constant properties of the block chain according to the definition of the block chain (for example, tamper-prrof).
- the behavior of clusters can be determined based on raw values or function of raw values.
- the behavior of the cluster can be used to set rules in the block for anomaly detection.
- Hash values of all transactions in the blockchain are stored in the Merkle Tree format and stored in the block header as the final hash value, and the hash values are encrypted according to an asymmetric encryption technique and transmitted to each node as an electronic signature. For example, if the transferred transactions change, at least one hash value in the Merkle tree root is changed, and consequently the final hash value at the top of the Merkle tree is changed, so that the change in the transaction can be detected.
- each item of a block in the blockchain may not be changed.
- IOT devices that wish to modify their values are flagged, and the cluster-based system can detect anomalies of flagged IOT devices. If anomaly occurs or a damaged node performs unusual behavior, it cannot be reversed or modified later. All data in the blockchain can be shared with others already, so the cost of data forgery is very high.
- FIG. 7A is a diagram for describing a swarm intelligence core engine (SIC) according to an embodiment.
- Cluster intelligence core engine (SIC) 718 may include cluster algorithms 703, cluster capabilities unit 708, and cluster rules and behavior unit 714.
- the cluster rule and action unit 714 includes a rule unit 606 and an environment aware unit 716, and the cluster capabilities unit 708 acts for capabilities modeling constructs and modeling rules for obtaining individual capabilities. It may include a modeling construct.
- the cluster intelligence core engine may be responsible for all calculations and rules relating to clustering.
- Clustering algorithms 703 determine decentralized collective behavior of self-organized agents that interact locally according to simple rules, and the locally determined collective behavior determines the global intelligence of interacting with the environment. It can lead to action.
- Clustering algorithms 703 may be based on a biological algorithm based on the behavior of ants, birds, bees and fish. These behaviors can be applied to solving real-world problems such as Ant Colony Optimization (ACO, 704), Particle Swarm Optimization (PSO, 706) and Artificial Bee Colony (707).
- Ant Colony Optimization may use an indirect communication algorithm between ants, called stigmergy. 'stigmergy' was used to solve the combinational (discrete) optimization problem through interactions through the environment, and 'stigmergy' was then modified to adapt to successive problems.
- the ACO algorithm can find global optimization within finite time, but it is difficult to determine the exact time.
- the ant colony optimization solution space can be displayed as a weighted graph.
- the purpose of ant colony optimization is to search for the optimal path in the construction graph.
- ACO's solution space is typically represented by a weighted graph called a construction graph, but ACO's purpose is typically to find the optimal path in the construction graph.
- ant colony optimization is its robustness, with distributed computing avoiding premature convergence and adaptive in nature and providing positive feedback that leads to finding good solutions for dynamic applications. )to be.
- Disadvantages of ant colony optimization (ACO) include convergence is guaranteed, but convergence time is uncertain, and may include a tendency to fail in local optima solutions.
- Ant colony optimization is AntNet, Multiple Trip Rounding, Elitist ant system, max-min ant system (MMAS), eigen Ant and rank-based ant system (ASrank), continous orthogonal ant colony (COAC) ) And a recursive ant colony optimization algorithm.
- Ant Colony Minimization Algorithm includes sequential ordering, scheduling, vehicle routing, assembly line balancing, probabilistic traveling salesman problem (TSP), DNA sequencing, 2D-HP It can be used for protein folding and protein-ligang docking.
- PSO particle swarm optimization
- communication between particles is used to solve direct, continuous problems without changing the environment, but may later be modified to adopt binary / discrete optimization problems. Can be.
- PSO 706 is a clustering algorithm in the field of multi-purpose dynamic optimization, constraint handling, which is less adaptive, highly scalable, and results in partial optimization problems, less regulation of speed and direction. It may require more steps than the method. Since the solution space of the PSO 706 is generally less computed than other methods, it can be represented as a set of N-dimensional points for the purpose of finding the optimal point position in a Cartesian coordinate system where the solution is easy to find. .
- the PSO 706 may include a standard particle swarm optimizer (PSO), a combined particle swarm optimization (CPSO), a modified particle swarm optimizer, MPSO), particle swarm without velocity (PSWV), which can be used for track dynamic systems, evolve NN weights, analyze human tremor, and display 3D biomedical images. Register 3D, control reactive power and voltage, and run games.
- PSO particle swarm optimizer
- CPSO combined particle swarm optimization
- MPSO modified particle swarm optimizer
- PSWV particle swarm without velocity
- ABSC artificial bee colony
- GAP Generalized Assignment Problem
- the Generalized Assignment Problem aims to assign a set of tasks to a set of agents at minimal cost.
- Each agent represents a single resource with limited capacity, and each task can be assigned to only one agent because a certain amount of resources of the agent are needed.
- ABC is low in adaptability but highly scalable and requires three times fewer iterations to collect all the food. ABC can be applied to both combinations (eg, finding optimal objects such as finite sets, within a Minimun Spanning Tree), and to the ability to expect a single output (a single output of the total function) for all inputs, but the output can be more complex. have. That is, it is not an optimization problem such as 'yes' or 'no'.
- the ant colony optimization (ABC) algorithm can be used to optimize problems with multiple purposes, such as Fuzzy or Enhanced Bee Algorithm (707) (EBA).
- EBA Fuzzy or Enhanced Bee Algorithm
- the ABC may also include Grouped BA (GBA), Hybrid Modified BA (MBA), cooperative ABC (CABC) and Vector Evaluated Artificial Bee Colony (VEABC) algorithms.
- the algorithms described above each comprise 5 to 6 variations and can be modified as needed.
- it may further include Intelligent Water Drop (IWD), Firely Algorithm (FA), Bat Algorithm (BA), Bacterial Foraging (BF) and Alternatives (Bif) algorithms.
- IWD Intelligent Water Drop
- FA Firely Algorithm
- BA Bat Algorithm
- BF Bacterial Foraging
- Bif Alternatives
- the cluster may have various functions. That is, cluster capabilities unit 708 can provide various functions that can be obtained through multiple systems and algorithms.
- Cluster capabilities unit 708 is a swarm optimization (710) unit, scheduling load balancer (709), clustering module (711) to find the best or least cost solution among all possible solutions.
- the clustering module may collect a set of similar or dissimilar types of agents, compared to other clusters.
- the routing module 712 can control the sending and receiving of data in the cluster such that the reverse node uses the useful information collected by the forward nodes in the path from the source to the destination.
- the scheduling load balancer 709 can control the behavior of devices in the cluster based on the relative position of the preceding or following task in the schedule and the summation evaluation rule and the global pheromone evaluation rule. Can be.
- the cluster rule & action 713 unit may include a rule unit 606 in which cluster rules having various types are defined.
- the rules of the cluster generated by the rule unit 606 include validation rules for data validation, rules for consistency checking and calculation rules for computing values VALUES based on input data, decisions for business process path selection. May contain rules.
- the environmental awareness unit 716 recognizes how well the node interacts with the environment, and allows changes in the environment, changes in behavior, decisions based on the nature and rules of the nodes, in turn, to cause behavioral changes in the cluster.
- the behavior engine unit 715 and the knowledge engine unit 717 can model how all the behaviors and knowledge of the cluster can be managed.
- the behavior engine unit 715 and the knowledge engine unit 717 can model the behavior and knowledge of a community that appears to be globally intelligent behavior through minimal local interaction.
- Swarm 702 may provide various protocols and utilities for communication and computation between nodes supporting homogeneous and / or heterogeneous nodes.
- the framework 702 may support homogeneous and / or heterogeneous nodes.
- the cluster intelligence simulator 701 uses different sets of algorithms to simulate various operations, and in combination with various use cases to simulate the behavior of a desired solution. simulating) and can test various scenarios.
- the cluster intelligence simulator may be an easy means to simulate and fine-tune the behavior of the required solution and to test various scenarios.
- the cluster-based system of the present disclosure may include at least one of a cluster intelligence framework and a cluster intelligence simulator. However, if necessary, the cluster intelligence framework and the cluster intelligence simulator may not be included in the cluster-based system.
- the IoTivity / Middleware unit 719 may include an algorithm for communicating with the IOT devices and representing cluster intelligence at the IOT level.
- the OS unit 720 may include an algorithm related to an operating system or an application required to operate a cluster including a plurality of devices.
- 7B is a diagram illustrating a plurality of layers in a blockchain according to an embodiment.
- the blockchain 602 unit may include an adaptation rule unit 609, a consensus management unit 610, a distributed ledger unit 611, and a ledger storage unit 612.
- the block chain 602 unit may include P2P protocols, rules, and other service components.
- the P2P protocol may be used for peer to peer connection between nodes / blocks in a distributed environment, and ledger storage unit 612 stores ledgers in which transactions are stored and , How transactions (eg, transactions) are stored and how ledgers are generated.
- the distributed ledger 611 may define transactions between nodes, storage schemes and mechanisms of blocks.
- the adaptation rule unit 609 may adapt the rules of the block chain 602 generated in the rule unit 606. Adapting the rules by the adaptation rule unit 609 according to an embodiment of the present disclosure may include changing, modifying, and updating the rules.
- the cluster-based system of the present disclosure is further adapted by updating, modifying, and changing the rules generated by the rule unit 606 based on feedback received for the activity of the cluster. By making it adaptive and operating based on more adaptively generated rules, it is possible to extend the rules to other use cases while maintaining the overall blockchain concept.
- a blockchain may follow implied consensus rules, defined consensus rules, and run time consensus rules.
- the present disclosure relates to a technique for making run-time rules more adaptive while maintaining the integrity of the blockchain.
- the runtime rules according to the present disclosure are rules related to blockchain, and the rules on cluster formation, rules for selecting a leader for generating blocks, verification rules for verifying generated blocks, and unification in case of conflicting contents of different transactions are provided. May include a decentralized consensus rule.
- Cluster-based systems can be adaptive, robust, scalable, decentralized, and self-organizing in accordance with defined simple rules.
- “Runtime rules” in accordance with the present disclosure are based on existing cluster states, cluster behaviors, cluster properties and characteristics, and based on feedback of cluster activity results in order to be made more adaptive in maintaining the integrity of the blockchain. Can be created, changed and updated.
- Blockchain 602 has a distributed distributed digital ledger, and distributed digital ledger 611 may be used to record transactions 603. Since transactions 603 recorded in the ledger cannot be changed retroactively without changing all subsequent blocks, any change in data can be detected based on the integrity of the changes in the transactions.
- one IOT (homogeneous and / or heterogeneous) device may have multiple IOT (homogeneous and / or heterogeneous) devices and values of the IOT device (e.g., data about the nature, characteristics, current state of the devices).
- values of the IOT device e.g., data about the nature, characteristics, current state of the devices.
- These values may be raw values (eg temperatures of ACs) or a function of values (eg entropy).
- Anomaly detection can be performed using the characteristics of the blockchain and the collective behavior of the cluster.
- Clusters can detect abnormalities in a cluster using specific algorithms and / or statistical methods, and the behavior of the clusters can be used to set rules in the blockchain to detect abnormalities.
- Anomaly detection methods can be derived based on the behavior of the current cluster, and the blockchain can evolve itself when these rules are updated, based on the evolution of the cluster.
- FIG. 7B unlike a general blockchain technique for managing transactions between two groups, a block of a blockchain system capable of generating 'intelligence' of a cluster is shown.
- the values of the devices in the cluster may be based on raw data (eg, temperatures of ACs) or a function of raw data (eg, entropy). Therefore, the tamper-proof (eg tamper-proof) of the blockchain can be used to detect tamper and anomaly.
- the behavior, characteristics, nature and current state of the cluster can be used to set rules in the block for anomaly detection.
- the cluster-based system according to the present disclosure can digitally sign transactions of each block to detect a change in a transaction by using an asymmetric encryption technique through an electronic signature and a hash function, and the detected change in the blockchain Can be used for validation rules of blocks.
- An anomaly detection method is based on the evolution of the blockchain itself, when the current rule of the blockchain is updated in the blockchain 602 based on the evolution of the cluster, thereby causing the current of the cluster. Can be defined for behavior.
- the blockchain may include an application layer 731, an incentive layer 736, a consensus layer 739, a network layer 747, and a data layer 751.
- the application layer 731 may provide an interface for an application program at the top layer of the blockchain 602.
- Incentive layer 736 can also provide rewards to participants and units in the blockchain.
- the consensus layer 739 can specify a set of transactions (eg, transactions) for processing that can be accepted globally, and specify the processing manner and total or partial order of these transactions.
- the network layer 747 may propagate or broadcast transactions (eg, transactions) between nodes. Recently, in propagating transactions between nodes, there is a need for technology development to make the most of the network bandwidth, and the data layer 751 may include a blockchain data structure and physical storage.
- the application layer 731 may include a smart contract 732, a hyper leisure 733, a virtual machine 734, and a decentralized application 735.
- the smart contract 732 may provide a protocol for performing a transaction between two subjects without third party involvement based on the commerce protocol.
- Hyper leisure 733 can provide a protocol for a blockchain consisting only of authenticated nodes, unlike a public blockchain system in which transactions are open to all nodes.
- the virtual machine 734 block may provide algorithms for the machines needed to run the application in a virtual environment.
- the decentralization application 735 may provide an application for establishing the decentralization agreement described above.
- the incentive layer 736 may include a reward distribution unit 737 and a transaction fee unit 735.
- the reward distribution unit 737 may pay a reward for generating a block to a node that generates the block (eg, a node selected as a leader by finding a correct answer for a hash puzzle in a cluster).
- the transaction fee unit 738 can specify a transaction fee associated with the transaction processing order stored in the queue of each node.
- consensus layer 739 may include a plurality of algorithms for providing rules regarding the operation of the blockchain.
- the consensus layer 739 may be proof of work / proof of equity 740, Byzantine General Acceptance (BFT, 741), Tendermint Consensus (742), Adaptation Rule Unit (609), Meta Protocol (743). Rules for Merge Mine 744, DPoS 745, and scheduling agreement 746.
- the proof-of-work or proof-of-stake 740 algorithm may provide an algorithm for selecting a leader to create a new block among nodes sharing the blockchain.
- Proof of Work (740) (PoW) algorithm is an algorithm used for Bitcoin, which requires nodes to compute according to certain rules (e.g.
- Proof of Stake 740 is a type of consensus algorithm, where there is no coin generation (e.g. mining) in the POS, instead of investing in expensive computer equipment in the competition to mine blocks.
- the 'verifier' needs to invest in the coin of the system. Instead, all coins exist from day one, and verifiers (eg, holding stakes in the system) must pay transaction fees strictly.
- PoS proof of ownership
- a wasteful operation such as solving a hash puzzle is not required to select a leader for generating a block, but a leader is selected according to the number of cryptocurrencies held. Thus, the more cryptocurrencies you accumulate, the more blocks the node can generate.
- Equity proof may be used with various types of algorithms, and may include chain-based stake proof and Byzantine Fault Tolerance (BFT) based stake proof algorithm.
- BFT Byzantine Fault Tolerance
- Byzantine Fault Tolerance (Byzantine Fault Tolerance, 741), or Practical Byzantine Fault Tolerance (PBFT) is a consensus algorithm used for consensus in a decentralized system. Does not meet. Because PBFT becomes infeasible in networks containing multiple nodes because of required communication, blockchain technologies using PBFT are unique within the consensus (e.g., Ripple's uniqueness of CONSENSUS LAYER 739). You can only rely on trusted subnetwork of participants to set up node list. In other words, a Byzantine fault tolerance or a practical Byzantine fault tolerance algorithm can be used to provide a reliable cluster-based system even if there are malicious or compromised nodes in the network.
- PBFT Practical Byzantine Fault Tolerance
- Tendermint Consensus (742) does not require mining by applying existing solutions to the Byzantine General Problem, but instead solves the "nothing at stake” problem of Proof of Stake (740).
- Tendermint-Core can be a high performance blockchain consensus engine capable of running secure Byzantine fault (741) tolerant applications.
- DDoS Delegated Proof of Stake 745
- POS 740 may operate on the same line as POS 740 system, except that an individual selects the most important entity that can represent a portion of the stake in the system. This allows individuals with smaller stakes to form teams and expand their representations, creating mechanisms to balance the power of large stake holders.
- the Merge Mine 744 concept of mining may mean a process for mining one or more cryptocurrencies without requiring additional proof-of-work 740 effort.
- the Meta-Object Protocol can provide vocabulary conventions to manipulate or access the structure and behavior of the object system.
- the adaptive rule unit 609 can provide various types of rules, such as implied rules, defined rules, or runtime rules. These runtime rules are fixed in nature, but according to one embodiment of the present disclosure, the adaptation rule unit 609 adapts the rules generated by the rule unit based on changes in the characteristics, properties, current state, and behavior of the cluster. Can be changed as In other words, the adaptation rule unit 609 may change the aforementioned rules based on the state, nature, behavior, and characteristics of the cluster.
- consensus rules in blockchain 602 can be adaptive or evolving because the rules of the cluster can change based on the state, nature, and behavior of the cluster.
- These adapted runtime rules can be used to detect anomalies and threats in clusters in combination with the immutable nature of the blockchain.
- Data Availability Schelling Consensus 746 can be used where a user votes whether a particular fact is true (1) or false (0). In this agreement, instead of using Schelling Consensus' Round N to determine who is rewarded according to "Majority is right," the default equilibrium requires that the person who correctly voted during Round N be rewarded. Thus, round N + 1 can be used to determine who should be rewarded.
- Delegated proof of ownership (DPoS) 745 may provide a modified consensus algorithm of proof of equity that further provides scalability by limiting the number of verification nodes of blocks generated on the network.
- the network layer 747 may manage transactions between nodes. For example, the network layer 747 may broadcast transactions between nodes to at least one node of the network. At the network layer, technology development is required to make the most of the basic network bandwidth.
- the network layer 747 provides a peer-to-peer broadcasting unit 748, a relay network 749 and local validation 750 for establishing a peer-to-peer connection between nodes / blocks in a distributed environment. It may include.
- the P2P broadcasting unit 748 may manage the broadcasting of transactions between nodes. According to an embodiment, the P2P broadcasting unit 748 broadcasts the transaction to randomly selected nodes adjacent to the nodes where the transaction has occurred, and the node that receives the broadcasted transaction has its own randomly selected node. It is possible to provide a broadcasting algorithm of a method of delivering a transaction in a manner of broadcasting the received transaction back.
- the relay network 749 may provide a transfer algorithm for the broadcast of the transaction between the node that is the start of the transaction and the destination of the destination.
- Local verification 750 may provide an algorithm for verifying the received block by the node that received the block in which the transaction was recorded.
- Data layer 751 is a layer for blockchain data structures and physical storage devices, including distributed hash table 752, chain structure 753, merkle tree 754, and digital signatures. (digital signature, 755), hash function (756), data block (757), unused output (UxTo, 758) and cryptographic protocol (759).
- Distributed hash table 752 may provide a table that stores hash functions for hashing transactions.
- the hash table includes a value that hashes the transactions and may allow nodes in the blockchain system to detect changes in transactions.
- the chain structure 753 may provide a connection scheme of blocks created after the Genesis block (eg, the first generated block). That is, the chain structure 753 may define the structure of the entire block chain by defining a connection method of blocks.
- Merkle tree 754 is a binary tree format data structure, and may provide an algorithm for deriving a single hash value for all transactions of a node.
- the cluster-based system according to the present disclosure may detect a change of a single transaction based on one hash value by compressing all the transaction information into one hash value using the Merkle tree structure.
- the digital signature 755 may provide an algorithm for encrypting a hash value that hashes all transactions.
- the cluster-based system may encrypt a hash value of all transactions using an asymmetric encryption technique.
- the node sending the transaction together with the digital signature provides a public key symmetric to the private key used to encrypt the digital signature to the receiving node, based on the hash value generated by decrypting the received digital signature by the receiving node. Therefore, it is possible to verify whether or not the transaction changes.
- the hash function 756 is a function for checking a change state of transactions.
- the hash function 756 may output a fixed length hash value regardless of an input value.
- the cluster-based system according to an embodiment of the present disclosure may hash transactions by using a hash function twice in succession, but is not limited thereto.
- the data block 757 may provide information about the structure of the generated block, the size of elements in the block, and the like.
- the encryption protocol 759 may provide a method of encrypting transactions in the blockchain that the cluster based system uses. According to an embodiment, the encryption protocol 759 may provide an asymmetric encryption scheme using a private key and a public key.
- the unused output (UxTo, 758) may provide an algorithm for representing items that remain in the block after receiving the cryptocurrency and have not been used yet.
- 7C is a diagram for describing a process of processing a transaction in a blockchain, according to an exemplary embodiment.
- the creation, formation, and evolution of clusters may be adapted to rules to derive desirable cluster behavior.
- Can be used to make Runtime rules of the blockchain 602 are modified as the rules of the cluster change, and changes in raw values or functions of raw values can be written to the block as a transaction of the blockchain 602.
- the raw values of the devices in the cluster contain data about the properties, properties, and current state of the devices, and the raw values of the devices in the cluster are determined by transactions according to predefined events (e.g., changes in the properties, properties, and current state of the devices). It can be shared between nodes.
- a block shared by nodes in a cluster may include a block header 762, a time stamp 763, a previous block hash value 764, a transaction tree root 765, a block nonce 766, and version information of the block. It may include.
- the version information of the block may include information about the system at the time the block is generated, and the hash value of the previous block may include a unique hash value specifying the previous block.
- the transaction tree root 765 includes information on the path of the hash value in the hash tree in which the hash value of each transaction is recorded, and the block nonce 766 is a correct answer of the hash puzzle, and the criterion of leader election in the proof of work is determined. Can be.
- the hash value of transactions in the blockchain can be compressed into one hash value as a tree structure.
- the cluster-based system may acquire the hash value # 56 by using a hash function having the lowest level transactions Tx5m and Tx6 (767, 768) as inputs, and the lowest level.
- Hash value # 32 may be obtained using a hash function that takes other transactions Tx3 and Tx2 as inputs.
- the cluster-based system according to an embodiment may input the obtained hash values # 56 and # 32 back into the hash function to finally obtain one hash value, and may transaction the path of the hash values obtained in this process. Can be stored in memory as a tree root.
- the cluster-based system using the blockchain 602 may verify the block in which transactions and transactions are recorded using adaptive runtime rules.
- the hash value of all transactions in the blockchain can be recorded in the block header in the form of a hash tree (eg Merkle Tree, 754), and nodes that receive the block in which the hash value is recorded receive the hash value in the hash tree format. By comparing the hash value generated based on the transactions, it is possible to detect whether the transaction has changed.
- the current state, characteristics, properties, and parameters of the cluster are used to define dynamic rules (eg, rules of changed, updated, and modified blockchains), and to make the rules of the blockchain more adaptive. Can be used.
- dynamic rules eg, rules of changed, updated, and modified blockchains
- the constant characteristics of the blockchain 602 combined with the rules of the blockchain (updated or modified rules) and the characteristics or properties of the clusters can be used to detect abnormalities in the clusters.
- the dynamic rule of the blockchain may include at least one of a changed blockchain rule, a modified blockchain rule, and an updated blockchain rule based on a change in a cluster.
- rule unit 606 of cluster-based blockchain 602 is adaptively generated, and rules are updated based on received feedback (eg, changes in the characteristics, properties, behaviors, and states of the cluster). Can be. Feedback may be provided by the feedback manager 614. Based on the received feedback and dynamic rules, the cluster may operate.
- Blockchain 602 may have various types of rules, such as predefined, implied runtime rules.
- the runtime consensus rules are adaptively generated and may change dynamically based on the collective behavior, properties, characteristics, and status of the cluster. As cluster rules change, the runtime consensus rules of the blockchain can evolve or be adopted dynamically.
- FIG. 8 is a flowchart illustrating a cluster control method according to an exemplary embodiment.
- the cluster control device may be a device for controlling a cluster using a block chain and may include a memory, a communication interface, and a processor.
- the cluster control device may correspond to a cluster-based system, and the cluster control device to the cluster-based system may be included in one cluster or included in each node in the cluster.
- the cluster control apparatus may generate a first rule about a cluster based on characteristics of at least one node included in the cluster.
- the first rule generated by the cluster controller may be a rule for defining a cluster, a runtime consensus rule for operating a blockchain, a leader election rule for selecting a leader node to record transactions by selecting transactions, and It may include at least one of a decentralized consensus rule for unification of differently generated blockchains, and a rule about a simple rule that defines a local interaction of devices in a cluster.
- the cluster control device may include a kernel that inputs data on a property, a property, a current state of the at least one node, and data on the property, the property, and the current state.
- the first rule may be generated based on a kernel) function.
- the cluster control apparatus may share the generated first rule with at least one node.
- the cluster control device may broadcast to the randomly selected nodes a first rule generated based on a change in the property, property, or current state of at least one node in the cluster, wherein all nodes in the cluster are created. Shared first rules.
- the cluster control apparatus may form a cluster including at least one node based on the shared first rule.
- the cluster control device may form a cluster between nodes sharing the same characteristics based on the shared first rule.
- the cluster control device may detect a change for at least one node in the cluster. Changes in at least one node in the cluster may occur based on changes in the nature, characteristics, and current state of each node in the cluster, and changes in nodes included in the current cluster based on the addition and withdrawal of new devices in the cluster. May be caused.
- the cluster control device detects a change in a property, a property, and a current state of at least one node in the cluster, based on the first rule, and displays a property, a property, and a current of at least one node in the cluster.
- the change in the cluster may be detected based on the change in state.
- the cluster control apparatus may change the first rule to the second rule based on the detected change.
- the first rule and the second rule may include a rule for at least one of forming the cluster, selecting a node for generating the block, verifying the block, and agreeing on the block chain. .
- the cluster control apparatus may share the generated second rule with at least one node and further detect a change in at least one cluster four nodes based on the shared second rule.
- the cluster control apparatus may detect an abnormal node indicating an operation not corresponding to the second rule in the cluster, based on the detected change based on the second rule.
- the cluster includes at least one of a homogeneous node or a heterogeneous node, and may operate based on at least one of the first rule and the second rule. Further, all nodes in the formed cluster are chained by chains of transactions and transactions related to the operation history of the first rule, the second rule, and all the nodes in the cluster. You can share the chain.
- FIG. 9 is a diagram for describing in detail an operation of sharing a first rule, according to an exemplary embodiment.
- the cluster control device may broadcast the generated first rule to a randomly selected peer node of the node that generated the first rule.
- a peer node may mean a set of nodes adjacent to the node.
- the cluster control device may generate a block that records the first rule. For example, the cluster control device determines whether the generated first rule has been broadcast to all nodes in the cluster, and generates a block based on the first rule when the first rule is delivered to all nodes in the cluster. You can decide which node to do. According to an embodiment, the cluster control device may select a leader node to generate a block based on the proof of work (POW), but is not limited thereto. The cluster control device may allow a node selected as the leader to generate a block that records the first rule transmitted to the node.
- POW proof of work
- the cluster control apparatus may control the generated block to be broadcast to a randomly selected peer node of the node that generated the block.
- the delivery scheme of the newly generated block may correspond to the delivery scheme of the first rule of S910.
- the cluster control apparatus may verify the block received by each node based on the first rule. For example, when all nodes in the cluster receive a newly generated block, the cluster control device may allow each node in the cluster to verify the block based on the first rule.
- the process of verifying the block by each node includes the process of determining whether the generated node of the received block is a node selected as the leader according to the first rule and whether the transaction within the received block has not changed. Process may be included.
- the cluster control device may connect the verified block to the block chain.
- the cluster control apparatus may allow each node that receives the block to verify the block, and then each node that succeeds in the block verification connects the verified block to a block chain that already exists at each node.
- FIG. 10 is a diagram for describing in detail an operation of changing a first rule to a second rule, according to an exemplary embodiment.
- the cluster control device may update the first rule based on the detected change.
- the cluster control device can modify the first rule based on the detected change.
- the cluster control device may reset the boundary condition of the first rule based on the detected change.
- the cluster control device may generate a second rule by using at least one of a first rule including an updated first rule, a modified first rule, and a reset boundary condition.
- a cluster control device when a device having an operating temperature range of 12 degrees to 18 degrees is added to a cluster in which the boundary condition of the current cluster is 10 degrees to 14 degrees, the total operating temperature of the cluster as the boundary condition of the cluster is added. You can update the range from 10 degrees to 18 degrees and define a new cluster according to the updated temperature range.
- 11A is a diagram for describing a cluster including a plurality of drones, according to an exemplary embodiment.
- FIG. 11A a plurality of surveillance drones are shown arranged to cover a landscape area using a mounted camera.
- FIG. 11A shows a drone array (Dr1 781, Dr2 778-Dr8 788), with surveillance drones forming a community based on certain common characteristics and properties such as altitude, cover area, flight speed, and the like. can do.
- the purpose of these clusters is to cover the entire surveillance area (eg coverage area) together while maintaining the properties and properties of the clusters.
- surveillance drones can communicate with each other and record the data of each drone in each ledger (eg, ledgers 1, 2-8) in the drone.
- ledgers stored in each of the drones correspond to a block chain in which blocks are connected to each other, and each drone may share a block chain in which the same transactions are recorded.
- the ledgers stored in the surveillance drones may be verified by each drone according to a rule shared by drones in the community.
- the verified ledgers may form a blockchain after verification of an entry corresponding to each drone Dr1 to Dr8.
- D1 to D8 shown next to each drone of FIG. 11A may be represented by Equation 3 below as a function of the current state, characteristics, and properties of each of the surveillance drones.
- D1 to D8 represent the values of functions that input the characteristics, properties, and current state of the drones in the current cluster
- a1, a2 to a8 are the attributes of the current drones
- p1, p2 to p8 are the current drones.
- Their properties, s1, s2 to s8, can represent the current state of the drones.
- the blockchain 220 rules R1, R2, and R3 may be derived from Equation 4 from D1-D8, which is a function of the current state, characteristics, and properties of each surveillance drone.
- R1, R2, and R3 represent cluster rules that depend on the characteristics, properties, and current state of the drones in the current cluster, and f1, f2 to f3 input data on the characteristics, properties, and current state of the surveillance drone. It is a rule definition function that takes as input the output of the function f. Since the rules of a cluster containing a plurality of drones contain data about the current state, they may be time dependent. For example, the rules of clustering at time t, , And And the rules at each time may be dependent on the characteristics, nature and current state of the drone in the cluster.
- the rule R1 may be a machine learning based classification algorithm based on the drone's properties, characteristics, and parameter values of the drone corresponding to the current state.
- 11B is a diagram for describing a cluster including a plurality of drones, according to an exemplary embodiment.
- a plurality of drones may appear as a plurality of points in the curve representing rule R1.
- rule R1 represents machine learning based drone classification, and R1 may be based on parameter values corresponding to a characteristic, a property, and a current state. Drones following the rule R1 may be located in a curve corresponding to the rule R1.
- rule R1 checks the coverage of each drone and assumes that the current coverage is a Support Vector Machine (SVM) that ensures collective behavior to cover the entire landscape.
- SVM Support Vector Machine
- the rule or training data needs to be updated according to rule R1.
- the property and property a1p1 and the current state s1 can define the Kernel function as follows.
- K is a polymomial kernel
- c is a free parameter
- a1p1 is a vector containing the characteristics and properties of the drone
- s1 represents the current state of the drone.
- FIG. 12A illustrates a cluster including a malicious drone, according to an exemplary embodiment.
- the plurality of drones have changed relative positions, and if two drones Dr7 787 and Dr8 788 move to an unexpected location, the kernel's characteristics and property values have changed, so the kernel
- the rule R1 based on the (kernel) function K may be modified to a rule R1 'corresponding to the kernel function K'.
- the characteristic and property (a2p2) and the current state s2 may define a kernel function for the Support Vector Machine (SVM) as shown in Equation 6 below.
- SVM Support Vector Machine
- K is a polymomial kernel
- c is a free parameter
- T2 is a specific time
- a2p2 represents the nature and properties of the drone at time T2
- s2 is the It can indicate the current state.
- the changed behavior of the polynomial kernel using the kernel function based on Equation 6 may be represented by drones having the arrangement shown in FIG. 12B.
- 12B is a diagram for describing a cluster including a malicious drone, according to an exemplary embodiment.
- each dot may indicate the location of the drones.
- Points outside the curve represented by the rule R1 ′ may represent two drones Dr7 787 and Dr8 788 that have changed their positions.
- the characteristics and property values of the cluster changed, and the Kernel function Rule R1 based on K may also be modified to rule R1 'corresponding to Kernel function K'.
- the cluster-based system according to the present disclosure is based on the state of the cluster and Adaptation rules that are changed and updated based on properties can be used, so that drones Dr7 (787) and Dr8 (788) having abnormalities can be detected.
- FIG. 13 is a view illustrating a cluster including industrial robots in a manufacturing assembly plant according to an embodiment.
- a community comprising at least one mobile industrial robot can operate on assembly lines (eg, assembly lines), and the mobile industrial robots can retrieve parts from the Raw Material Storage 1302 at the request of the job manager 1304. It can be supplied where it is needed and the finished product can be transported to a warehouse (1306). For example, when a task manager requests a part of a product, a cluster is formed between the robots according to the agreement between the robots, and tasks required for the formed cluster may be allocated.
- the cluster control device may generate a rule according to a request of a job manager requesting a part, and form a cluster of robots required for a job according to the generated rule.
- the cluster control apparatus may allocate a task according to a worker's request to the formed cluster, detect a change in the cluster, and detect an abnormality of the robots in the cluster during the operation based on the detected change.
- a schedule for robots may be predefined or determined based on the request, the schedule and request of the robots form a transaction (eg, a transaction), and the formed transactions may be recorded as part of the blockchain.
- the cluster control device according to the present disclosure may confirm the fact that there is a robot to prevent duplicate work and process the work.
- the community may establish the shortest path of the robot that can provide the required amount in the shortest time.
- the rules of the cluster e.g. runtime consensus rules, rules for consensus of nodes participating in the blockchain
- the rules of the cluster can be changed and the block chain for nodes corresponding to mobile industrial robots can be changed. Rules can be updated, changed, and modified, and transactions shared between nodes cannot be changed based on the rules of the blockchain.
- a cluster including a plurality of mobile industrial robots when a transaction occurs, the probability of occurrence of a transaction arranged in the generated transaction is very low, so that a cluster including a plurality of mobile industrial robots can work while avoiding duplicate work. Can be effectively completed.
- the in-cluster ACO approach may be applied to the aforementioned scheduling permutation problem called Single Machine Total Weighted Tardiness Problem (SMTWTP).
- SMTWTP Single Machine Total Weighted Tardiness Problem
- This aspect may be arranged as a list of components constituting the ACO algorithm as follows.
- the list that makes up the ACO algorithm is a SMTWTP 'n' job that needs to be scheduled on a pheromone information A (eg pheromone encoding) and a construction solution B (eg pheromone evaluation and heuristics) single machine.
- SMTWTP problems may be provided.
- the pheromone matrix is a place * item form, and SMTWTP can determine which task is next in the schedule after the ant decides which task is first in the schedule. .
- the pheromone evaluation aspect of the ACO algorithm is how pheromone information is used by ants for the determination of ants. Local assessment of pheromone values may be possible for SMTWTP.
- the ant who needs to determine which job is at the next place i in the permutation, has all the values that indicate how well the selectable job performed at that place. May be considered. However, some selectable jobs The highest pheromone value of Can be.
- the pheromone evaluation method and the impact of pheromone value changes on the ACO can represent the results of an instance of a very simple SMTWTP test.
- Un-weighted SMTWTP may be a Modified Due Data (MDD) rule.
- SMs Smart Meters
- AMI smart metering infrastructure
- the cluster intelligence does not require a centralized server, and can detect local attackers using anomalies detection algorithm.
- Smart meters (SMs) following simple rules are regarded as IOT nodes, and anomalies can be detected based on ranging algorithms where the nodes follow simple rules.
- a smart meter's energy consumption unit (eg its energy meter value) can be thought of as transactions, raw values or function of raw values. These transactions 222 are shared at the nodes, and calculations can be performed at the node level.
- Cluster rules can be adapted or altered according to changes in the behavior of the cluster to achieve desired behavior on their own. If operation is undesirable, cluster rules can be evolved and updated based on the current state, behavior, and nature of the cluster.
- the consensus of the nodes for detecting an abnormality in the cluster may be based on runtime rules. These runtime rules can be generated more adaptively to reflect the current state of the cluster, and validation can be performed on these rules.
- FIG. 14 is a diagram illustrating an abnormal detection and intrusion identification process according to an exemplary embodiment.
- the attacker's goal for the cluster is to attempt to break into the infrastructure of the node by corrupting the nodes involved in the cluster (eg smart meters) and sending malicious data to the dispatch center.
- Attacker's intrusion techniques can be classified into three categories: physical attacks, cyber attacks, and data attacks. Intrusion technology also broadens the disclosure of unauthorized access to information, the deception of accepting false false data, the disruption of correct information interruption or prevention, and the unauthorized removal of parts of the system. It can be classified as usurpation, which is the controlling one.
- the cluster-based system may start the abnormality detection process.
- the cluster-based system may generate, modify, and update the consensus rules in the blockchain, and in S914, the cluster-based system may detect abnormal nodes in the cluster based on the consensus rules that have been created, modified, and updated. According to an embodiment, when no abnormality in the cluster is detected, the cluster-based system may restart the abnormality detection process of S912.
- the cluster based system may determine whether the detected abnormality is a known abnormality.
- the community based system may store a history of past detected anomalies in memory, and determine whether the currently detected anomaly is an already known anomaly based on a history of stored past detected anomalies. have.
- the cluster-based system may identify attacker 1 918, attacker 2 919, or attacker n 920 if the detected anomaly is identified as an abnormality already known to the cluster-based system. Can be. However, in S917, the cluster-based system may store information about the detected abnormality in the memory if the abnormality is not already known (eg, unknown).
- 15A is a diagram for describing a process of attacking a smart home where a smart meter is installed according to an embodiment.
- Each SM is an IOT device, has a smart meter as an Advanced Metering Infrastructure (AMI), and each smart meter can represent nodes in a cluster.
- AMI Advanced Metering Infrastructure
- all nodes in the cluster include a Wi-Fi function and can communicate with each other.
- Each node in the cluster may be connected to neighboring nodes using a wireless link (eg, Wi-Fi or Bluetooth).
- the nodes themselves are 'dumb', but together they can detect an attack. Thus, such a set of nodes can be connected wirelessly to form a cluster.
- the plurality of smart meters may be identified with each other near nodes (eg SM devices) based on the RSSI and the timing information.
- the parameter values exchanged are moving average values and can be used to form a rule of the blockchain.
- each internal clock of each smart meter can be asynchronous and operate independently of each other.
- Each starting node may send a blank fixed-length ledger of size N to one of the randomly selected neighbor nodes.
- the node receiving the ledger (specific smart meter) can identify whether its name is already included in the ledger. If the ledger does not include a name, the node receiving the ledger may register its name with the ledger and randomly transmit the modified ledger back to its neighbor nodes. This process can continue until all M circular ledgers are full or the time limit has expired.
- the ledger's items may determine the members of the cluster associated with the ledger. By defining rules, you can specify a certain number of nodes that can overlap in each cluster.
- each smart meter in the cluster may share a blockchain in which data of each smart meter is recorded as a transaction.
- each cluster includes M nodes and may include a block chain.
- Each initiating node randomly selects a value of r and adds a value r to its energy meter value e 1 .
- the random value r added to its energy meter value is known only to the starting node.
- the starting node may transmit v 1 , the sum of its energy meter value e 1 and the random value r, to one of the randomly selected neighboring nodes.
- Moving average values may be cycled to all nodes in the cluster with a date / time stamp.
- the process by which moving average values are circulated to all nodes in the cluster along with a date / time stamp can be stored at all nodes as a transaction.
- a block in the block chain can appear as a function of ⁇ v s , T s ⁇ .
- Transactions of each block in the cluster are all hashed and can maintain batches of valid valid transactions (transactions) encoded.
- Each block contains an encrypted hash of the previous block in the blockchain and can be linked between blocks. The linked blocks can form a blockchain for a particular cluster.
- the starting node adds a random value r to its energy meter value e1 and sends v1, the sum of the r value and its energy e1 value, to one of the neighboring nodes,
- the process of obtaining the average energy meter value v s by using the sum of all energy meter values except for the random value r added by the starting node may be repeated periodically for each time period TP according to the application.
- block time may mean an average time for the network to generate one additional block in the block chain.
- the block time T B may be smaller than the time period T P.
- the calculation time Tc may be a time required to add two floating point numbers.
- the blockchain By storing data on all nodes in the cluster, the blockchain can eliminate the risks that can arise when storing data centrally. At the same time, the information (privacy) of each node can be preserved. According to an embodiment of the present disclosure, since the blockchain used by the cluster-based system uses a time stamp shared by the start node as a time stamping scheme, a proof of work ) Or Proof of Stake. Therefore, the cluster-based system according to an embodiment of the present disclosure is more computationally or design-efficient and may be more helpful for real-time applications.
- 15B is a diagram for describing a process of attacking a smart home where a smart meter is installed according to an embodiment.
- the anomaly detection process can vary depending on the application type.
- the allowable deviation level of the moving average is When I say When the following Equation 10 is satisfied, the smart meter may be regarded as damaged.
- Is the sample value of the m th smart meter at time Ts
- v s T s is the sample value of the s th smart meter at time Ts.
- the tamper proof of the blockchain itself can be used to detect tamper or anomaly.
- An IOT device attempting to modify its energy meter value may be considered flagged and, therefore, may detect anomalies. If a malicious or compromised node attempts to perform a malicious action, the data is already shared with others and the cost of data forgery is high and cannot be modified later.
- an abnormality may be detected by using moving average values of different blockchains (for different clusters) together.
- a function of the moving average values of different blockchains (for different clusters) can also be used.
- a cluster-based system can set up a simple set of rules to achieve the desired behavior required by the system user. If desirable behavior is not achieved, cluster rules can be generated more adaptively based on feedback indicating changes in the current state, nature, and properties of the nodes in the cluster. These adaptive rules are input to the runtime rules of the consensus management unit of the blockchain, and the immutable nature of the blockchain ensures that new rules are observed and consensus is reached. That is, the aforementioned features can be used to detect anomalies and threats in the environment of IOT devices.
- the community may include various devices such as a refrigerator, a washing machine, a television, and a toaster. These various devices have different types of consumption profiles and properties, and when various devices become part of a cluster, the individual properties of the device can be used to modify the rules for the cluster, in order to resolve the change of nodes in the cluster. .
- FIG. 16 is a diagram for describing a man-in-the-middle attack technique intercepting data packets of a counterpart in a local area network using an address resolution protocol.
- ARP Poisoning refers to a technique for intercepting data of a counterpart in a local area network using an Address Resolution Protocol (ARP) for MAC address matching to an IP address. That is, in a cluster including a plurality of smart meters, in order to intercept data transmitted and received between two nodes 1602 and 1604 (for example, two adjacent smart meters) that are the targets of attack, the attacker 1608 periodically performs an ARP Reply packet. Can be intercepted by the target node to intercept the data.
- ARP Address Resolution Protocol
- the data of all nodes in the cluster according to the present disclosure are stored in a block as a transaction, the stored blocks are shared by all nodes in the form of a blockchain, and the shared blockchains are based on the decentralized consensus rule of the blockchain, You can match the contents of transactions.
- an attacker would need to intercept packets between all nodes in the cluster to modify the data in order to modify the data, but this would be expensive in reality, so the attacker 1608's attack on the cluster would fail. The probability is high.
- 17 is a diagram for describing a process of detecting an abnormality in a cluster, according to an exemplary embodiment.
- the cluster control device may calculate entropy of the read value during a specific period of each node in the cluster.
- the entropy value (measurement of disorder) Hi of node i may be delivered periodically to the nearest neighbor nodes. function Can be used to collectively determine the attacker's location.
- the calculation of each node must be stored as transactions, used for verification of the rules of blockchain 602, and based on consensus, a malicious node can be identified.
- the cluster control apparatus may record entropy values of nodes controlled by the cluster control apparatus in a transaction as a transaction and detect abnormal nodes in the cluster based on the recorded entropy values.
- the concept for identifying anomaly or malicious nodes in a cluster as described above may be applied to extended clusters that include clusters.
- the cluster-based system may use means other than entropy to identify malicious nodes, and means for identifying malicious nodes is not limited to entropy.
- FIG. 18 is a diagram for describing a cluster based system used for traffic management according to an exemplary embodiment.
- the community control apparatus can be used in a traffic management system of a smart city.
- a traffic signal management system of a smart city is managed based on interaction data such as traffic signals, and the cluster intelligence according to the present disclosure may be used for traffic management and route selection in the smart city.
- a traffic management system in a smart city can provide traffic management, but if one of the sensor nodes is damaged, traffic management can fail.
- the cluster control apparatus when the cluster control apparatus according to the present disclosure is applied to a traffic management system in a smart city, the problem can be easily solved by detecting a damaged node of the traffic management system.
- traffic data e.g., traffic values related to parameters of each sensor and traffic signal in the smart city, past performance and status of each node
- traffic management control devices Since the data can be shared in the form of a blockchain of each node, the traffic data of the traffic management control devices can be maintained based on the rules of the blockchain by using the cluster control device.
- the cluster control device By applying the cluster control device according to the present disclosure to the traffic management of the smart city, the data of each sensor and the traffic signal can be ensured reliability, the cluster control device is applied to various situations in the smart city, thereby malfunctioning any device And damage can be detected.
- the cluster control device may report a malfunctioning node to the traffic management authority by detecting a malfunctioning node, and the cluster control device according to the present disclosure may be used in an environment in which various intelligence information may be used.
- 19A is a diagram for describing a cluster forming method according to an exemplary embodiment.
- IOT devices collectively cluster, IOT devices share a raw data or function of raw data with a neighbor, and transactions between each device occur. If so, the generated transactions can be shared. Each device can carry transactions by communicating with all other IOT devices in the cluster.
- a homogeneous cluster may include devices of the same type in a cluster, and data exchanged between devices in the homogeneous cluster may have the same type (raw data or function of raw data). have. Different types of IOT devices in a heterogeneous cluster may transmit and receive different types of data with other IOT devices in the cluster.
- the rules of the cluster may change based on the result of the activity for better results, and the result of the activity is a rule unit of the cluster-based system to change, update, and modify rules 1006. Can be entered.
- the behavior of a community may change dynamically to adapt to changes in the environment based on changed, updated, and modified rules.
- a cluster is formed based on rules in a rules unit, and the cluster may be a plurality of clusters or a cluster including a plurality of clusters.
- the rules generated by the rule unit are the main components for reaching agreement 1004 in verifying transactions in the blockchain.
- the rules generated by the rule unit can be generated adaptively and updated based on the feedback received for the activity based on the rules.
- all the rules in the blockchain can be maintained so that data in the blockchain is not corrupted based on integrity.
- the generation, formation, and evolution of clusters may be based on a set of simple rules, cluster state parameters, and the nature of the cluster.
- the expectation of the system user may be represented by desirable behavior 1005 of a cluster comprising a plurality of nodes. These nodes can follow the simple rules defined in the rules unit when the node starts to work. This can be used dynamically to make the rules adaptive, in order to obtain the desired behavior.
- Cluster rules may be adaptively generated based on feedback of nodes, the current state of the cluster, and changes in cluster properties.
- the cluster based system according to the present disclosure may correspond to a cluster control device.
- the cluster control device may generate a first rule about a cluster based on an activity 1945 of nodes in the cluster.
- the cluster control device may update the already generated first rule based on the activity 1945 of the nodes in the cluster.
- Nodes according to the present disclosure may follow simple rules 1002 to form a cluster.
- rules 1002 need to be adapted or changed to address the needs of the clusters, due to the diversity of behaviors and properties of the nodes.
- the rules of the cluster must maintain the integrity of the cluster.
- the cluster control apparatus may form a cluster or update a cluster based on the changed or updated rules within the cluster.
- the cluster control device may broadcast the generated rule, the changed or updated rule to the all nodes in the cluster as a transaction, and the transactions broadcast to all the nodes are recorded in a block and connected to the block chain of each node. Can be.
- the cluster control apparatus elects a leader among the nodes, generates a block in which the transaction is recorded by the selected leader node, and broadcasts the generated block to all nodes again. The block verification process by each node can be performed.
- a rule for selecting a leader node among a plurality of nodes in a cluster and a verification rule for each node of a block generated by the leader node may be included in a consensus rule in a broad sense.
- the cluster control apparatus may determine whether the behavior of the entire cluster is the target behavior based on the local interaction of each node in the cluster. For example, if the behavior of the entire cluster is a target behavior, the cluster control apparatus may terminate the cluster control method. In S1912, when the behavior of the entire cluster is not the target behavior, the cluster control apparatus may update the first rule for defining the current cluster based on the change of devices in the current cluster.
- 19B is a diagram for describing a method of detecting an abnormality in a cluster, according to an exemplary embodiment.
- Clustered blockchain 602 facilitates peer-to-peer online transactions 603, and blockchain 602 can include a distributed ledger.
- transactions 603 of blockchain 602 may be based on the exchange of raw data (eg, moving average or entropy) or function of raw data of IOT devices, where blockchain 602 The state of may be data (value) of the IOT devices.
- blockchain 602 can derive rules based on these values, and blockchain rules can be updated or changed by clusters. And can evolve, change, and evolve as they evolve. According to one embodiment, if the types of nodes are homogeneous, the rules may also evolve into homogeneous rules.
- the blockchain 602 is based on heterogeneous data because the raw data or function of raw data exchanged by the nodes in the heterogeneous cluster are different types. Deriving rules for calculation, these blockchain 602 rules can evolve as the cluster evolves. Since the types of data shared by the devices in a cluster are heterogeneous, rules can evolve into heterogeneous rules.
- blockchain 602 Since blockchain 602 has a tamper proof, the properties of this blockchain 602 can be used to detect tampers (anomaly), and the anomaly detection process is based on raw values or function of raw values. Can be determined.
- the behavior of a cluster can help set rules in the blockchain to detect anomaly within the cluster and create a blockchain 602 that stores raw data or a function of raw data as a transaction. have.
- An anomaly detection process may be induced with respect to the current state and behavior of the community.
- the hash value of transactions in a cluster according to the present disclosure may be compressed into one hash value in a Merkle tree format.
- One compressed hash value may be encrypted with asymmetric encryption and broadcast to each node.
- the hash values of each transaction stored in the Merkle tree method even if only one hash value on the Merkle tree root is changed, the most significant hash value of the Merkle tree may be changed. Therefore, even if only one transaction in the block is changed, the block in which the transaction is recorded cannot pass the verification.
- a node according to the present disclosure may generate a digital signature by encrypting one hash value generated by compressing the hash values of all transactions in a Merkle tree format with a private key, and then transmit the electronic signature and the public key together to another node. Therefore, the node participating in the blockchain system can easily detect whether the transaction of the received block has changed, and thus, by performing a newly generated block verification process according to whether the transaction has changed, the IOT devices are flagged (anomaly detection). And abnormality of IOT devices in a cluster can be easily detected. After detecting the abnormality, the cluster control apparatus according to the present disclosure may record the detected abnormality in a block as a transaction and share the block to all nodes.
- the cluster control apparatus may detect a cluster including at least one node among the plurality of nodes based on the first rule.
- the cluster control device may update the first rule based on the detected change in the cluster.
- the updating of the first rule by the cluster control device may include modifying the first rule to generate a second rule, and the generated second rule corresponds to the updated first rule. Can be.
- the cluster control device may connect the block recording the updated first rule to the existing block chain by broadcasting the block recording the updated first rule to each node. That is, each block chain can be updated by each node.
- the block in which the first rule is written may be verified by each node based on the first rule.
- the ledger may correspond to a block chain shared by each node.
- the cluster control device may update the rule of the cluster based on the updated ledger.
- the cluster control device may induce global behavior in the cluster based on the updated cluster rule.
- the cluster control device may detect an abnormality in the cluster by using the updated blockchain. For example, the ledger is updated based on the abnormality detected by the cluster control device, so that when a malicious node performs malicious behavior, the data is already shared between the devices, resulting in a high cost of forging data. As it is consumed, the behavior of a malicious node cannot affect the data or behavior of other nodes.
- the cluster control apparatus may adaptively make rules by creating, updating, modifying, and changing rules of a cluster followed by each node sharing a blockchain, and the adaptively changed rules may be dynamically changed in the blockchain. It may correspond to a dynamic rule. That is, cluster rules may change based on cluster state, property behavior, runtime consensus rule 1013 in the blockchain, and may also dynamically evolve or adapt and be updated.
- the behavior of the cluster can be determined based on the raw values and the function of raw values shared among the devices in the cluster.
- Each node eg device
- the behavior of the cluster can help to establish rules within the blockchain used to detect anomalies 1015.
- 20 is a block diagram of a group control apparatus according to an embodiment.
- the cluster control apparatus 1000 may include a processor 1300, a communication interface 1500, and a memory 1700.
- the processor 1300 may execute one or more instructions stored in the memory 1700.
- the processor 1300 may control one or more instructions stored in a memory to control a communication interface and a memory, and perform a cluster control method. That is, the processor 1300 according to the present disclosure generates a first rule related to the cluster based on the characteristics of at least one node included in the cluster, and generates the generated first rule to the at least one node. Form the cluster including the at least one nodes based on a shared first rule, detect a change for at least one node in the cluster, and generate the first rule based on the detected change. You can change to the second rule.
- the processor 1300 also executes one or more instructions stored in memory to share the second rule with the at least one nodes and to change the change of the at least one node in the cluster based on the shared second rule. Can be detected. According to an embodiment of the present disclosure, the processor 1300 executes one or more instructions, and based on the detected change based on the second rule, anomaly indicating an operation not corresponding to the second rule in the cluster. The node can be detected. In addition, the processor 1300 according to the present disclosure may perform all operations performed by the swarm based system described in FIGS. 1 to 19 to detect an abnormality by controlling a cluster.
- the processor 1300 executes the one or more instructions to perform data on at least one node of the attribute, property, current state, and the property, property, and current state.
- the first rule may be generated based on a kernel function that receives data regarding.
- the processor 1300 broadcasts the generated first rule to a randomly selected peer node of the node that generated the first rule, and the first rule is in the cluster.
- the processor 1300 broadcasts the generated first rule to a randomly selected peer node of the node that generated the first rule, and the first rule is in the cluster.
- at least one peer in the cluster elected based on the first rule generates a block that records the first rule, and at least one peer randomly selected by the node that generated the block.
- the block generated in the peer node may be broadcasted, the broadcasted block may be verified based on the first rule, and the verified block may be connected to the blockchain.
- the processor detects a change in a property, a property and a current state of at least one node in the cluster, based on the first rule, by executing the one or more instructions, wherein the property of the at least one node in the cluster, Changes in the clusters can be detected based on changes in properties and current conditions.
- the processor may be configured to update the first rule based on the detected change, modify the first rule based on the detected change, and determine the first rule based on the detected change.
- the second rule may be generated by resetting a boundary condition and using at least one of an updated first rule, the modified first rule, and a first rule including the reset boundary condition.
- the communication interface 1300 may include one or more components that enable communication with an external device, and may include, for example, at least one of a short range communication module, a wired communication module, and a wireless communication module.
- a short-range wireless communication module of the present disclosure may be a Bluetooth communication module, a Bluetooth low energy (BLE) communication module, a near field communication module (Near Field Communication Module), a WLAN (Wi-Fi) communication module, Zigbee ( A Zigbee communication module, an infrared data association (IrDA) communication module, a Wi-Fi Direct (WFD) communication module, a UWB () communication module, an Ant + communication module, and the like, but are not limited thereto. That is, the communication interface 1300 may enable communication in a cluster unit as well as communication between nodes in a cluster. In addition, the communication interface 1300 may perform transmission and reception of transactions between the cluster and the server.
- the memory 1700 may store one or more instructions.
- the instructions stored in the memory 1700 may be a set of instructions executable in a computer for executing a cluster control method performed by a cluster-based system or a cluster control device.
- the memory 1700 may include an internal memory or an external memory.
- internal memory may be volatile memory (e.g., dynamic RAM, DRAM, static RAM, or synchronous dynamic RAM, etc.), non-volatile memory (e.g., OTPROM (one). time programmable ROM (PROM), programmable ROM (PROM), erasable and programmable ROM (EPROM), electrically erasable and programmable ROM (EEPROM), mask ROM, flash ROM, flash memory (such as NAND flash or NOR flash), hard drives, Or it may include at least one of a solid state drive (SSD).
- volatile memory e.g., dynamic RAM, DRAM, static RAM, or synchronous dynamic RAM, etc.
- non-volatile memory e.g., OTPROM (one).
- the external memory may be a flash drive such as compact flash (CF), secure digital (SD), micro secure digital (Micro-SD), mini secure digital (Mini-SD), extreme digital (XD), It may include a multi-media card (MMC) or a memory stick.
- the external memory may be functionally and / or physically connected to the network control device 10 through various interfaces.
- the cluster control device according to the present disclosure may be located outside the nodes in the cluster to control the nodes in the cluster, but may be included in each of the nodes in the cluster to induce cluster formation of the nodes.
- 21 is a block diagram of a server that performs a clustering control method according to an exemplary embodiment.
- the cluster control method performed by the cluster control apparatus 1000 may be performed by a server 2000 that is connected to and communicates with devices in the cluster.
- the server 2000 may include a communication interface 2100, a database 2200, and a processor 2300.
- the communication interface 2100 in the server 2000 may correspond to the communication interface of the cluster control device of FIG. 20, and the database 2200 of the server 2000 may control the cluster control of FIG. 20. It may correspond to the memory 1700 of the device.
- the processor 2300 of the server 2000 may perform an algorithm for a cluster control method performed by the cluster control apparatus or the cluster based system described with reference to FIGS. 1 to 20.
- Methods according to an embodiment of the present disclosure may be implemented in the form of program instructions that may be executed by various computer means and recorded in a computer readable medium.
- the computer readable medium may include program instructions, data files, data structures, etc. alone or in combination.
- Program instructions recorded on the media may be those specially designed and constructed for the purposes of the present invention, or they may be of the kind well-known and available to those having skill in the computer software arts.
- Examples of computer-readable recording media include magnetic media such as hard disks, floppy disks, and magnetic tape, optical media such as CD-ROMs, DVDs, and magnetic disks, such as floppy disks.
- Examples of program instructions include not only machine code generated by a compiler, but also high-level language code that can be executed by a computer using an interpreter or the like.
- Computer readable media can be any available media that can be accessed by a computer and includes both volatile and nonvolatile media, removable and non-removable media.
- Computer readable media may include both computer storage media and communication media.
- Computer storage media includes both volatile and nonvolatile, removable and non-removable media implemented in any method or technology for storage of information such as computer readable instructions, data structures, program modules or other data.
- Communication media typically includes computer readable instructions, data structures, program modules, or other data in a modulated data signal such as a carrier wave, or other transmission mechanism, and includes any information delivery media.
- some embodiments may also be embodied in a computer program or computer program product including instructions executable by a computer, such as a computer program executed by a computer.
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computing Systems (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Artificial Intelligence (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
본 개시는 군집 제어 장치 및 그의 동작 방법에 관한 것이다. 구체적으로, 군집 제어 장치가 수행하는 군집 제어 방법은 복수의 노드들 중 적어도 하나의 노드들의 특성에 기초하여 상기 군집에 관한 제1 규칙을 생성하는 동작; 상기 생성된 제1 규칙을 상기 적어도 하나의 노드들과 공유하는 동작; 상기 공유된 제1 규칙에 기초하여 상기 적어도 하나의 노드들을 포함하는 상기 군집을 형성하는 동작; 상기 군집 내 적어도 하나의 노드들에 대한 변화를 검출하는 동작; 및 상기 검출된 변화에 기초하여 상기 제1 규칙을 제2 규칙으로 변경하는 동작; 을 포함할 수 있다.
Description
본 개시는 군집(Swarm)을 형성하는 디바이스들을 제어하기 위한 장치 및 그의 동작 방법에 관한 것이다. 보다 상세하게는, 동종(Homogeneous) 및/또는 이종(Heterogeneous) 디바이스들을 포함하는 군집을 제어하기 위한 장치 및 그의 동작 방법에 관한 것이다.
인공지능(Artificial Intelligence, AI) 시스템은 인간 수준의 지능을 구현하는 컴퓨터 시스템이며, 기존 규칙 기반 스마트 시스템과 달리 기계가 스스로 학습하고 판단하며 똑똑해지는 시스템이다. 인공지능 시스템은 사용할수록 인식률이 향상되고 사용자 취향을 보다 정확하게 이해할 수 있게 되어, 기존 규칙 기반 스마트 시스템은 점차 딥러닝 기반 인공지능 시스템으로 대체되고 있다. 인공지능 기술은 기계학습(딥러닝) 및 기계학습을 활용한 요소 기술들로 구성된다.
최근 인공 지능은 단일 개념이 아닌 군집 지능(Swarm Intelligence)이라는 분산된 집단적 행동과 자기 조직 시스템을 기초로 하는 인공 지능으로 발전되고 있다. 군집(Swarm)은 개미, 벌, 새 등과 같이 떼를 지어 행동하는 개체들의 집합을 의미한다. 군집 내 각 개체들은, 각 개체의 행동을 지시하는 중앙 통제 구조가 없음에도 불구하고, 아주 간단한 규칙에 따라 행동하며, 각 개체가 전체 규칙을 이해하지 못하더라도, 부분적으로는 개체간 무작위한 상호 작용을 통해 동작함으로써, 지능적으로 보이는 전체(global)행동을 나타낼 수 있다. 군집(Swarm)은 공통된 집단 특성(Collective Characteristics)을 공유하는 노드들의 하위 부분 집합(sub-set)이고, 집단 결정(Collective Decision)을 내릴 수 있다.
블록 체인(Block chain)은 새로운 블록들을 검증하기 위한 규약을 집단적으로 준수하는 P2P(peer to peer)네트워크에 의해 생성되고 관리되는 위변조가 불가능한 분산 저장소로써, 트랜잭션(쌍방간의 쪼갤 수 없는 단위 작업)으로 생성된 데이터 블록들을 체인(chain)형태로 잇따라 연결한 모음을 의미한다. 블록 체인의 대표적인 응용사례는 암호화폐의 거래 과정을 기록하는 분산화된 전자 화폐인 비트코인이 있다. 블록체인에는 일정 시간 동안 사용자들 간에 발생되는 확정된 거래 내역들이 저장될 수 있고, 많은 사용자들은 블록 체인 사본을 가지며, 거래 내역은 모두에게 공개될 수 있다.
블록 체인의 규칙은 변경가능 하지 않으나, 군집의 집단 특성(collective property)은 시간이 지남에 따라 변경될 수 있다. 따라서, 군집(swarm)을 형성하는 디바이스들 에 사용될 유연한(flexible) 블록 체인 기술 개발이 요구된다.
또한, 대부분의 블록 체인 및 군집(swarm) 기술들은 동형(homogeneous) 디바이스들의 유사한(similar) 타입에 한정되고, 서로 다른 유형의 디바이스들이 네트워크를 이루는 사물인터넷(Internet of Things, IOT)과 같은 분야에서, 이형(heterogeneous) 디바이스들을 위한 블록체인 및 군집(swarm)기술은 개발되어 있지 않다.
따라서, 군집의 기존 성질(property) 및 현재 상태가 블록 체인의 규칙에 대한 경계 조건(boundary condition)을 제어하거나 설정할 수 있는 군집(swarm) 제어 알고리즘 개발이 요구되고 있으며, 동종(homogeneous) 및 이종(heterogeneous) 디바이스를 포함하는 군집 모두에 적용할 수 있는 블록 체인 알고리즘 기반 군집 지능 생성을 위한 기술 개발이 요구되고 있다.
개시된 실시 예에 따르면, 복수의 노드들을 포함하는 군집(Swarm)의 진화하는 규칙에 기초하여, 군집 내 이상을 검출하기 위한 군집 제어 시스템이 제공될 수 있다.
일 실시 예에 의하면, 군집 내 노드들의 특성의 변화에 기초하여, 군집에 관한 규칙을 변경하는 군집 제어 장치 및 방법이 제공될 수 있다.
일 실시 예에 의하면, 변화하는 규칙에 기초한 블록 체인을 이용하는 군집 내에서 규칙에 대응되지 않는 동작을 나타내는 이상 노드를 검출하는 군집 제어 장치 및 방법이 제공될 수 있다.
상술한 기술적 과제를 달성하기 위한 본 개시의 일 실시 예에 따라, 블록 체인을 이용하는 군집 제어 장치가 군집을 제어하는 방법으로써, 네트워크에 포함된 복수의 노드들 중 적어도 하나의 노드들의 특성에 기초하여 상기 군집에 관한 제1 규칙을 생성하는 동작; 상기 생성된 제1 규칙을 상기 적어도 하나의 노드들과 공유하는 동작; 상기 공유된 제1 규칙에 기초하여 상기 적어도 하나의 노드들을 포함하는 상기 군집을 형성하는 동작; 상기 군집 내 적어도 하나의 노드들에 대한 변화를 검출하는 동작; 및 상기 검출된 변화에 기초하여 상기 제1 규칙을 제2 규칙으로 변경하는 동작; 을 포함하는 방법이 제공될 수 있다.
일 실시 예에 의하면, 상기 군집 제어 방법은 상기 제2 규칙을 상기 적어도 하나의 노드들과 공유하는 동작; 및 상기 공유된 제2 규칙에 기초하여 상기 군집 내 적어도 하나의 노드들의 변화를 검출하는 동작; 을 더 포함할 수 있다.
일 실시 예에 의하면, 상기 방법은 상기 제2 규칙에 기초하여 검출된 변화에 기초하여, 상기 군집 내 상기 제2 규칙에 대응되지 않는 동작을 나타내는 이상(anomaly) 노드를 검출하는 동작; 을 더 포함할 수 있다.
일 실시 예에 의하면, 상기 제1 규칙을 생성하는 동작은 상기 적어도 하나의 노드들의 특성(attribute), 성질(property), 현재 상태(current state)에 관한 데이터 및 상기 특성, 성질 및 현재 상태에 관한 데이터를 입력으로 하는 커널(kernel) 함수에 기초하여 상기 제1 규칙을 생성하는 동작; 을 포함할 수 있다.
일 실시 예에 의하면, 상기 제1 규칙을 공유하는 동작은 상기 생성된 제1 규칙을 상기 제1 규칙을 생성한 노드의 무작위로 선택된 적어도 하나의 피어(peer) 노드에 브로드캐스팅(broadcasting) 하는 동작; 상기 제1 규칙이 상기 군집 내 모든 노드들에 브로드캐스팅되면, 상기 제1 규칙에 기초하여 선출된 상기 군집 내 적어도 하나의 노드가 상기 제1 규칙을 기록한 블록을 생성하는 동작; 상기 블록을 생성한 노드가 무작위로 선택된 피어(peer) 노드들에 생성된 블록을 브로드캐스팅(broadcasting)하는 동작; 상기 제1 규칙에 기초하여, 상기 브로드캐스팅된 블록을 검증하는 동작; 및 상기 검증된 블록을 블록체인에 연결하는 동작; 을 포함할 수 있다.
일 실시 예에 의하면, 상기 변화를 검출하는 동작은 상기 제1 규칙에 기초하여 상기 군집 내 적어도 하나의 노드들의 특성, 성질 및 현재 상태의 변화를 검출하는 동작; 및 상기 군집 내 적어도 하나의 노드들의 특성, 성질 및 현재 상태의 변화에 기초하여 상기 군집의 변화를 검출하는 동작; 을 포함할 수 있다.
일 실시 예에 의하면, 상기 변경하는 동작은 상기 검출된 변화에 기초하여 상기 제1 규칙을 갱신하는 동작; 상기 검출된 변화에 기초하여 상기 제1 규칙을 수정하는 동작; 상기 검출된 변화에 기초하여 상기 제1 규칙의 경계 조건을 재설정하는 동작; 및 상기 갱신된 제1 규칙, 상기 수정된 제1 규칙 및 상기 재설정된 경계 조건을 포함하는 제1 규칙 중 적어도 하나를 이용하여 상기 제2 규칙을 생성하는 동작; 을 포함할 수 있다.
일 실시 예에 의하면, 상기 군집은 동종(Homogeneous)노드 또는 이종(Heterogeneous)노드 중 적어도 하나를 포함하고, 상기 제1 규칙 및 상기 제2 규칙 중 적어도 하나에 기초하여 동작할 수 있다.
일 실시 예에 의하면, 상기 형성된 군집 내의 모든 노드들은 상기 제1 규칙, 상기 제2 규칙 및 상기 군집 내 모든 노드들의 동작 이력에 관한 트랜젝션들(transactions) 및 상기 트랜젝션들이 기록된 적어도 하나의 블록이 체인 형태로 연결한 블록 체인을 공유할 수 있다.
일 실시 예에 의하면, 상기 제1 규칙 및 제2 규칙은 상기 군집의 형성, 상기 블록을 생성하기 위한 노드의 선출, 상기 블록의 검증 및 상기 블록 체인의 합의 중 적어도 하나에 대한 규칙을 포함할 수 있다.
본 개시의 또 다른 실시 예에 의하면, 블록 체인을 이용하는 군집 제어 장치는 네트워크 내 복수의 노드들 중 적어도 하나의 노드들과 통신하기 위한 통신 인터페이스; 하나 이상의 인스트럭션을 저장하는 메모리; 및 상기 하나 이상의 인스트럭션을 실행하는 프로세서; 를 포함하고, 상기 프로세서는 상기 하나 이상의 인스트럭션을 실행함으로써, 상기 네트워크에 포함된 복수의 노드들 중 적어도 하나의 노드들의 특성에 기초하여 상기 군집에 관한 제1 규칙을 생성하고; 상기 생성된 제1 규칙을 상기 적어도 하나의 노드들에 공유하고; 상기 공유된 제1 규칙에 기초하여 상기 적어도 하나의 노드들을 포함하는 상기 군집을 형성하고; 상기 군집 내 적어도 하나의 노드들에 대한 변화를 검출하고; 상기 검출된 변화에 기초하여 상기 제1 규칙을 제2 규칙으로 변경하는 군집 제어 장치가 제공될 수 있다.
일 실시 예에 의하면, 상기 프로세서는 상기 하나 이상의 인스트럭션을 실행함으로써, 상기 제2 규칙을 상기 적어도 하나의 노드들과 공유하고; 상기 공유된 제2 규칙에 기초하여 상기 군집 내 적어도 하나의 노드들의 변화를 검출할 수 있다.
일 실시 예에 의하면, 상기 프로세서는 상기 하나 이상의 인스트럭션을 실행함으로써, 상기 제2 규칙에 기초하여 검출된 변화에 기초하여, 상기 군집 내 상기 제2 규칙에 대응되지 않는 동작을 나타내는 이상(anomaly) 노드를 검출할 수 있다.
일 실시 예에 의하면, 상기 프로세서는 상기 하나 이상의 인스트럭션을 실행함으로써 상기 적어도 하나의 노드들의 특성(attribute), 성질(property), 현재 상태(current state)에 관한 데이터 및 상기 특성, 성질 및 현재 상태에 관한 데이터를 입력으로 하는 커널(kernel) 함수에 기초하여 상기 제1 규칙을 생성할 수 있다.
일 실시 예에 의하면, 상기 프로세서는 상기 하나 이상의 인스트럭션을 실행함으로써, 상기 생성된 제1 규칙을 상기 제1 규칙을 생성한 노드의 무작위로 선택된 피어(peer) 노드에 브로드캐스팅(broadcasting) 하고; 상기 제1 규칙이 상기 군집 내 모든 노드들에 브로드캐스팅되면, 상기 제1 규칙에 기초하여 선출된 상기 군집 내 적어도 하나의 노드가 상기 제1 규칙을 기록한 블록을 생성하고; 상기 블록을 생성한 노드가 무작위로 선택된 적어도 하나의 피어(peer) 노드에 생성된 블록을 브로드캐스팅(broadcasting)하고; 상기 제1 규칙에 기초하여, 상기 브로드캐스팅된 블록을 검증하고; 상기 검증된 블록을 블록체인에 연결할 수 있다.
일 실시 예에 의하면, 상기 프로세서는 상기 하나 이상의 인스트럭션을 실행함으로써, 상기 제1 규칙에 기초하여 상기 군집 내 적어도 하나의 노드들의 특성, 성질 및 현재 상태의 변화를 검출하고; 상기 군집 내 적어도 하나의 노드들의 특성, 성질 및 현재 상태의 변화에 기초하여 상기 군집의 변화를 검출할 수 있다.
일 실시 예에 의하면, 상기 프로세서는 상기 하나 이상의 인스트럭션을 실행함으로써, 상기 검출된 변화에 기초하여 상기 제1 규칙을 갱신하고; 상기 검출된 변화에 기초하여 상기 제1 규칙을 수정하고; 상기 검출된 변화에 기초하여 상기 제1 규칙의 경계 조건을 재설정하고; 상기 갱신된 제1 규칙, 상기 수정된 제1 규칙 및 상기 재설정된 경계 조건을 포함하는 제1 규칙 중 적어도 하나를 이용하여 상기 제2 규칙을 생성할 수 있다.
일 실시 예에 의하면, 상기 군집은 동종(Homogeneous)노드 또는 이종(Heterogeneous)노드 중 적어도 하나를 포함하고, 상기 제1 규칙 및 상기 제2 규칙 중 적어도 하나에 기초하여 동작할 수 있다.
일 실시 예에 의하면, 상기 형성된 군집 내의 모든 노드들은 상기 제1 규칙, 상기 제2 규칙 및 상기 군집 내 모든 노드들의 동작 이력에 관한 트랜젝션들(transactions) 및 상기 트랜젝션들이 기록된 적어도 하나의 블록이 체인 형태로 연결한 블록 체인을 공유할 수 있다.
상술한 기술적 과제를 달성하기 위한 본 개시의 또 다른 실시 예에 따라, 동종 및/또는 이종 노드들의 특성, 성질, 행동 및 현재 상태 중 적어도 하나에 기초하여 적어도 하나의 런타임 합의 규칙을 생성하는 합의 기반 규칙 유닛; 상기 동종 및/또는 노드들의 군집을 형성하는 런타입 합의 규칙 기반 군집 형성 유닛; 상기 군집의 특성, 성질, 합의 규칙들, 행동 및 현재 상태 중 적어도 하나의 변화를 검출하는 검출 유닛; 및 상기 검출에 기초하여 블록 체인 내 규칙들 및 상기 군집을 갱신하는 블록 체인 내 적응 규칙 유닛을 포함하는 군집 기반 시스템이 제공될 수 있다.
일 실시 예에 의하면, 상기 동종 및/또는 이종 노드들의 상기 군집 형성은 상기 규칙 유닛 내 적어도 하나의 규칙에 기초할 수 있다.
일 실시 예에 의하면, 상기 군집의 특성, 성질, 행동 및 현재 상태는 raw values 또는 상기 raw values의 함수에 기초하여 결정될 수 있다.
일 실시 예에 의하면, 군집 내 적어도 하나의 노드는 스스로 블록 체인 원장에 등록되고, 수정된 원장은 다음 노드로 전달될 수 있다.
일 실시 예에 의하면, 상기 성질, 상기 특성, 상기 행동, 상기 현재 상태, 상기 합의 규칙들, 상기 적응 규칙들 및 거래들 중 적어도 하나는 블록 체인 원장에 입력될 수 있다.
일 실시 예에 의하면, 상기 적응 규칙 유닛에 의한 상기 블록 체인 내 규칙들을 갱신하는 것은, 새로운 규칙들을 생성하는 것, 기존의 규칙들을 수정하는 것 및 기존의 규칙들을 위한 경계 조건을 설정하는 것 중 적어도 하나일 수 있다.
일 실시 예에 의하면, 상기 군집 내 런타임 합의 규칙은 상기 적응 규칙 유닛에 의해 갱신된 규칙들에 기초하여 갱신될 수 있다.
일 실시 예에 의하면, 이상(anomaly)은 수정된 기존 규칙들, 새로운 규칙들 및 기존 규칙들의 경계 조건들 중 적어도 하나에 기초하여 검출될 수 있다.
일 실시 예에 의하면, 새로운 규칙들, 수정된 기존 규칙들 또는 기존 규칙들의 경계 조건 중 적어도 하나에 대한 정보가 상기 군집에 제공될 수 있다.
일 실시 예에 의하면, 상기 블록체인 원장은 새로운 규칙, 갱신된 규칙 및 기존의 규칙들의 경계 조건 중 적어도 하나에 기초하여 갱신될 수 있다.
일 실시 예에 의하면, 상기 적어도 하나의 노드가 상기 노드에서의 상기 이상의 검출 이후에 차단될 수 있다.
본 발명의 또 다른 실시 예에 의하면, 동종 및/또는 이종 노드들의 특성, 성질, 행동 및 현재 상태 중 적어도 하나에 기초하여 적어도 하나의 런타임 합의 규칙을 생성하는 단계; 상기 생성된 런타임 합의 규칙에 기초하여, 동종 및/또는 노드들의 군집을 형성하는 단계; 상기 군집의 특성, 성질, 합의 규칙들, 행동 및 현재 상태 중 적어도 하나의 변화를 검출하는 단계; 및 상기 변화의 검출 이후에, 블록 체인 내 적응 규칙 유닛의 규칙들을 갱신하는 단계를 포함하는 군집 기반 방법이 제공될 수 있다.
일 실시 예에 의하면, 상기 군집을 형성하는 단계는 상기 규칙 내 적어도 하나의 규칙에 기초할 수 있다.
일 실시 예에 의하면, 상기 군집의 속성, 성질, 행동 및 현재 상태는 raw values 또는 상기 raw values의 함수에 기초하여 결정될 수 있다.
일 실시 예에 의하면, 상기 군집 내 적어도 하나의 노드는 스스로 블록 체인 원장에 등록되고, 수정된 원장은 다음 노드로 전달될 수 있다.
일 실시 예에 의하면, 상기 각각의 블록 체인 원장은 상기 군집에서 상기 노드들 사이의 적어도 하나의 성질, 특성, 행동 특성, 상기 군집의 현재 상태, 합의 규칙 및 거래들 중 적어도 하나의 항목(entry)을 저장할 수 있다.
일 실시 예에 의하면, 상기 갱신하는 단계는 상기 적응 규칙 유닛에 의해, 새로운 규칙을 생성하고, 기존의 규칙들을 수정하며, 상기 기존의 규칙들에 대한 경계 조건을 설정할 수 있다.
일 실시 예에 의하면, 새로운 규칙들, 수정된 기존 규칙들 또는 기존 규칙들의 경계 조건 중 적어도 하나에 대한 정보가 상기 군집에 제공될 수 있다.
일 실시 예에 의하면, 상기 군집 내 런타임 합의 규칙은 상기 적응 규칙 유닛에 의해 갱신되는 규칙들에 기초하여 갱신될 수 있다.
일 실시 예에 의하면, 상기 검출하는 단계는 상기 군집 내 블록체인의 갱신된 규칙들에 기초하여 군집 내 이상을 검출할 수 있다.
일 실시 예에 의하면, 블록 체인 원장은 새로운 규칙, 수정된 기존 규칙, 상기 기존 규칙의 경계 조건들 중 적어도 하나에 기초하여 갱신될 수 있다.
일 실시 예에 의하면, 상기 적어도 하나의 노드가, 상기 노드에서의 상기 이상의 검출 이후 차단될 수 있다.
본 개시에 따르면, 군집 제어 장치는 군집 내 노드들의 변화에 기초하여 군집에 관한 규칙을 변경할 수 있다.
도 1은 일 실시 예에 따른, 일반적인 기술에 따른 군집 시스템을 설명하기 위한 도면이다.
도 2a는 일반적인 군집 시스템에서, 군집의 형성 및 군집 내 이상의 검출을 설명하기 위한 도면이다.
도 2b는 일반적인 군집 시스템에서 랜덤 복수 군집들의 형성 및 군집 내 이상을 검출을 설명하기 위한 도면이다.
도 2c는 일반적인 군집 시스템에서 랜덤 복수 군집들의 형성 및 군집 내 이상을 검출을 설명하기 위한 도면이다.
도 3은 일반적인 블록 체인 시스템의 동작을 설명하기 위한 도면이다.
도 4a는 일 실시 예에 따른, 이종(heterogeneous) 장치들의 네트워크를 나타내는 도면이다.
도 4b는 이종 디바이스들을 포함하는 군집의 성질 및 특성에 기초하여 군집의 규칙 및 규칙의 경계 조건을 설정하는 과정을 설명하기 위한 도면이다.
도 4c는 새로운 디바이스들이 군집에 추가됨에 따라 군집의 성질 및 특성이 변하고, 변경된 성질 및 특성에 따라 군집의 규칙 및 경계조건이 갱신되는 과정을 설명하기 위한 도면이다.
도 4d는 일 실시 예에 따른, 이종 디바이스들 사이에서 형성되는 군집(swarm)을 설명하기 위한 도면이다.
도 4e는 일 실시 예에 따른, 이종 디바이스들 사이에서 형성되는 군집(swarm)을 설명하기 위한 도면이다.
도 5는 일 실시 예에 따른 군집 환경(swarm environment)을 설명하기 위한 도면이다.
도 6은 일 실시 예에 따른, 블록 체인 서비스를 포함하는 군집 지능 시스템을 설명하기 위한 도면이다.
도 7a는 일 실시 예에 따른 군집 지능 코어 엔진을 설명하기 위한 도면이다.
도 7b는 일 실시 예에 따른 블록 체인 내의 복수의 레이어들을 나타내는 도면이다.
도 7c는 일 실시 예에 따른 블록 체인 내의 트랜젝션의 처리 과정을 설명하기 위한 도면이다.
도 8은 일 실시 예에 따른 군집 제어 방법의 흐름도이다.
도 9는 일 실시 예에 따른 제1 규칙을 공유하는 동작을 세부적으로 설명하기 위한 도면이다.
도 10은 일 실시 에에 따른 제1 규칙을 제2 규칙으로 변경하는 동작을 세부적으로 설명하기 위한 도면이다.
도 11a는 일 실시 예에 따른 복수의 드론들을 포함하는 군집을 설명하기 위한 도면이다.
도 11b는 일 실시 예에 따른 복수의 드론들을 포함하는 군집을 설명하기 위한 도면이다.
도 12a는 일 실시 예에 따른 악의적인 드론을 포함하는 군집을 설명하기 위한 도면이다.
도 12b는 일 실시 예에 따른 악의적인 드론을 포함하는 군집을 설명하기 위한 도면이다.
도 13은 일 실시 예에 따른 제조 조립 공장 내 산업용 로봇들을 포함하는 군집을 설명하기 위한 도면이다.
도 14는 일 실시 예에 따른 이상 검출 및 침입 식별 과정을 설명하기 위한 도면이다.
도 15a는 일 실시 예에 따른 스마트 계량기가 설치된 스마트 홈을 공격하는 과정을 설명하기 위한 도면이다.
도 15b는 일 실시 예에 따른 스마트 계량기가 설치된 스마트 홈을 공격하는 과정을 설명하기 위한 도면이다.
도 16은 주소결정 프로토콜을 이용하여 근거리 통신망 내 상대방의 데이터 패킷을 중간에서 가로채는 중간자 공격 기법을 설명하기 위한 도면이다.
도 17은 일 실시 예에 따른 군집 내 이상을 검출하는 과정을 설명하기 위한 도면이다.
도 18은 일 실시 예에 따라 교통 관리에 사용되는 군집 기반 시스템을 설명하기 위한 도면이다.
도 19a는 일 실시 예에 따른 군집 형성 방법을 설명하기 위한 도면이다.
도 19b는 일 실시 예에 따른 군집 내 이상을 검출하는 방법을 설명하기 위한 도면이다.
도 20은 일 실시 예에 따른 군집 제어 장치의 블록도이다.
도 21은 일 실시 예에 따른 군집 제어 방법을 수행하는 서버의 블록도이다.
일 실시 예에 따른 블록 체인을 이용하는 군집 제어 장치가 군집을 제어하는 방법에 있어서, 복수의 노드들 중 적어도 하나의 노드들의 특성에 기초하여 상기 군집에 관한 제1 규칙을 생성하는 동작; 상기 생성된 제1 규칙을 상기 적어도 하나의 노드들과 공유하는 동작; 상기 공유된 제1 규칙에 기초하여 상기 적어도 하나의 노드들을 포함하는 상기 군집을 형성하는 동작; 상기 군집 내 적어도 하나의 노드들에 대한 변화를 검출하는 동작; 및 상기 검출된 변화에 기초하여 상기 제1 규칙을 제2 규칙으로 변경하는 동작; 을 포함하는 방법이 제공될 수 있다.
일 실시 예에 따른 블록 체인을 이용하는 군집 제어 장치에 있어서, 상기 군집 내 적어도 하나의 노드들과 통신하기 위한 통신 인터페이스; 하나 이상의 인스트럭션을 저장하는 메모리; 및 상기 하나 이상의 인스트럭션을 실행하는 프로세서; 를 포함하고, 상기 프로세서는 상기 하나 이상의 인스트럭션을 실행함으로써, 복수의 노드들 중 적어도 하나의 노드들의 특성에 기초하여 상기 군집에 관한 제1 규칙을 생성하고; 상기 생성된 제1 규칙을 상기 적어도 하나의 노드들에 공유하고; 상기 공유된 제1 규칙에 기초하여 상기 적어도 하나의 노드들을 포함하는 상기 군집을 형성하고; 상기 군집 내 적어도 하나의 노드들에 대한 변화를 검출하고; 상기 검출된 변화에 기초하여 상기 제1 규칙을 제2 규칙으로 변경하는 군집 제어 장치가 제공될 수 있다.
일 실시 예에 따른 기록 매체에 있어서, 복수의 노드들 중 적어도 하나의 노드들의 특성에 기초하여 상기 군집에 관한 제1 규칙을 생성하는 동작; 상기 생성된 제1 규칙을 상기 적어도 하나의 노드들과 공유하는 동작; 상기 공유된 제1 규칙에 기초하여 상기 적어도 하나의 노드들을 포함하는 상기 군집을 형성하는 동작; 상기 군집 내 적어도 하나의 노드들에 대한 변화를 검출하는 동작; 및 상기 검출된 변화에 기초하여 상기 제1 규칙을 제2 규칙으로 변경하는 동작; 을 포함하는 군집 제어 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록 매체가 제공될 수 있다.
본 명세서에서 사용되는 용어에 대해 간략히 설명하고, 본 개시에 대해 구체적으로 설명하기로 한다.
본 개시에서 사용되는 용어는 본 개시에서의 기능을 고려하면서 가능한 현재 널리 사용되는 일반적인 용어들을 선택하였으나, 이는 당 분야에 종사하는 기술자의 의도 또는 판례, 새로운 기술의 출현 등에 따라 달라질 수 있다. 또한, 특정한 경우는 출원인이 임의로 선정한 용어도 있으며, 이 경우 해당되는 발명의 설명 부분에서 상세히 그 의미를 기재할 것이다. 따라서 본 개시에서 사용되는 용어는 단순한 용어의 명칭이 아닌, 그 용어가 가지는 의미와 본 개시의 전반에 걸친 내용을 토대로 정의되어야 한다.
명세서 전체에서 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있음을 의미한다. 또한, 명세서에 기재된 "...부", "모듈" 등의 용어는 적어도 하나의 기능이나 동작을 처리하는 단위를 의미하며, 이는 하드웨어 또는 소프트웨어로 구현되거나 하드웨어와 소프트웨어의 결합으로 구현될 수 있다.
아래에서는 첨부한 도면을 참고하여 본 개시의 실시 예에 대하여 본 개시가 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상세히 설명한다. 그러나 본 개시는 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시 예에 한정되지 않는다. 그리고 도면에서 본 개시를 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다.
본 개시는 Core AI에 관련된 기술로, 적어도 하나의 디바이스들을 포함하는 군집 내에서 이상(Anomaly)을 검출하기 위한 방법을 제공할 수 있다. 본 개시는 군집 지능(Swarm Intelligence) 및 블록 체인(Block Chain)기술을 결합한 것으로, 군집 지능에 의하여 생성된 군집의 현재 상태 및 성질 등에 기초하여, 블록체인 규칙의 생성/변경을 다룰 수 있다. 군집의 현재 상태, 파라미터 및 성질 등에 기초하여 생성 및 변경되는 이러한 동적 규칙들(dynamic rules)은 적어도 하나의 디바이스들을 포함하는 군집 내 이상을 검출하는데 사용될 수 있다. 즉, 블록 체인의 동적 규칙들은 군집 내 지능을 야기할 수 있다.
종래, 군집 환경에서 블록 체인을 사용한 기술은 공개되지 않았으며, 군집의 집단 성질(collective properties)이 시간이 지남에 따라 변하므로, 군집 및 블록 체인의 본질은 반대 이기 때문에, 군집의 동적 속성들을 포함할 수 있는 군집 및 블록 체인을 활용할 수 있는 인텔리전스(intelligence) 시스템의 개발이 필요하다. 또한, 장래 다양한 스마트 디바이스들을 고려할 때, 동종 및 이종 군집의 성질을 모두 수용할 수 있는 인텔리전스 시스템의 개발 역시 요구되고 있다. 본 개시는, 군집의 현재 상태 및 성질에 의해 생성, 변경, 갱신 및 관리되는 블록 체인 규칙을 포함하는 지능 시스템에 부합될 수 있다.
본 개시의 일 실시 예에 따르면, 동종 군집(Homogeneous Swarm)은 유사한 행동 및 속성을 가진 유사한 유형의 디바이스들을 포함하는 군집을 의미할 수 있고, 이종 군집(Heterogeneous Swarm)은 서로 다른 이종의 행동 특성 및 성질을 가지는 서로 다른 유형의 디바이스들이 연결된 군집을 의미할 수 있다.
도 1은 군집(swarm) 지능(Intelligence)의 개념을 설명하기 위한 도면이다. 간단한 규칙(simple rule)을 따르는 분산된(distributed) 자기 조직화(self organized)된 에이전트/노드들은 지역적(locally)으로 인접한 노드들과 상호 작용함으로써, 집단적 행동(collective behavior)을 나타내고, 집단적 행동을 통해서 지능적으로 보이는 전체적(global) 행동을 창의적으로 나타낼 수 있다. 군집의 분산화된 자기 조직화된 에이전트 및/또는 노드들의 지역적 상호 작용을 미세하게 조절함으로써, 전체적으로는, 지능적으로 보이는 요구된(required) 행동을 수행하는 군집을 생성할 수 있다.
즉, 군집(swarm) 내 각 개체들 또는 각 개체들이 이루는 군집의 부분들은 전체 규칙을 이해하지 못하더라도, 간단한 규칙(simple rule)에 따라 행동함으로써, 전체적(global)으로는 지능적으로 보이는, 신생(emergent) 행동을 나타낼 수 있고, 결과적으로 전체 군집에 필요한 행동을 나타낼 수 있다. 군집 지능은 집단 행동을 나타내는 분산화되고, 자기 조직화된 노드/에이전트들을 포함하는 시스템에 의해 생성될 수 있고, 군집 지능을 나타내는 노드 및/또는 에이전트들은 서로간의 상호작용이 우선시되는 임의의 무작위성을 가질 수 있다.
도 2a는 복수의 노드들을 포함하는 네트워크에서 군집(swarm)의 형성 및 이상(anomaly)을 검출하는 방법을 설명하기 위한 도면이다.
네트워크는 복수의 노드들을 포함할 수 있고, 네트워크는 자동 서브 네트워킹(sub-networking) 알고리즘을 이용하여 전체 네트워크에서 적어도 일부 노드들을 포함하는 서브 네트워크를 생성할 수 있다. 자동 서브 네트워킹 알고리즘은 서로 다른 서브 네트워크의 각 노드에 고유한(unique) 정의를 제공할 수 있다. 본 개시에 따른 네트워크는 자동 서브 네트워킹 알고리즘을 이용하여 적어도 하나의 노드들을 포함하는 군집을 형성하고 이상(anomaly)을 검출할 수 있다. 본 개시에 따른 네트워크는 전체 노드 또는 노드들의 부분 집합에 대응될 수 있고, 노드는 유선 또는 무선 통신이 가능한 전자 장치들에 대응될 수 있다. 일 실시 예에 의하면, 군집(swarm)은 네트워크 내 모든 노드들을 포함할 수도 있고, 네트워크 내 적어도 일부의 노드들을 포함할 수도 있다. 본 개시에 따른 군집(swarm)은 간단한 규칙(simple rule)에 따라 행동하는 적어도 하나의 노드들의 지역적(local) 상호 작용에 기초하여, 군집 전체적(global)으로는 지능적으로 보이는 신생(emergent) 행동을 나타내는 노드들의 집단을 의미할 수 있다.
도 2a를 참조하면, 각 노드에는 1에서 M까지의 시리얼 번호가 부여될 수 있다. 여기에서, M은 군집 내 전체 노드수를 의미할 수 있다. 일 실시 예에 의하면, M개의 노드들은 슈퍼 집합을 이루는 K개 노드들이 구성하는 슈퍼 집합의 공통 특성 및 성질에 따라 그룹화 될 수 있다. (1<M<K)
이러한 K개 노드들이 구성하는 슈퍼 집합의 특성 및 성질은 시간이 지남에 따라 학습되고, K개 노드들은 학습에 기초하여 M개 노드들의 군집(Swarm)을 형성할 수 있다. 상기 형성된 군집(Swarm)은 동일한 시스템 내에서 슈퍼 집합의 공통 특성 및 성질을 나타내고, 군집(Swarm)은 다른 군집(Swarm)들과 지역적(locally) 및 독립적(independently)으로 상호 작용함으로써, 중앙 통제에 의해 동작하는 것이 아니라, 분산화되어, 자기 조직화될 수 있다. 군집(swarm)들은 도출된 집단 합의(collective consensus)를 기초로 집단적 의사 결정(collective decision)을 할 수 있다.
도 2b는 복수의 노드들을 포함하는 네트워크에서 서로 다른 서브 군집(swarm)의 형성 및 이상(anomaly)을 검출하는 과정을 설명하기 위한 도면이다.
군집(Swarm)은 도 2b에 도시된 바와 같이, 순환 방식(circular fashion)으로 정렬될 수 있다. 도 2b를 참조하면, M개 노드들을 포함하는 군집은 n(예컨대 3)개 노드를 포함하는 서브 군집(sub-swarm)을 형성할 수 있고, 서브 군집들은 인접한 서브 군집들과 공통의 노드를 포함할 수 있다. 즉, 하나의 서브 군집 내 특정 노드는 서브 군집에 이웃하는 다른 서브 군집의 노드일 수 있다. 도 2b에 도시된 서브 군집들을 기초로, M개 노드들을 포함하는 군집 내 공격이나 이상들을 쉽게 검출할 수 있다. 군집 내 공격 또는 이상의 검출은 다음과 같이 크게 2가지 예로 설명될 수 있다.
예를 들어, 군집 내의 오직 하나의 서브 군집에 대한 공격만이 탐지되는 경우, 서브 군집 내의 유니크 노드(unique node, 에컨대, N5)가 손상된(compromised)되거나 공격을 받은 것으로 간주될 수 있다. 즉, 노드 N4, N5 및 N6을 포함하는 서브 군집 네트워크만이 오류를 포함하는 경우, 노드 N5에 이상(anomaly)이 발생한 것으로 생각할 수 있다.
또 다른 실시 예로, 두 개의 인접한 서브 군집(Swarm) 네트워크에 대한 공격이 검출되는 경우, 공격이 검출된 서브 군집 네트워크들이 공유하는 공통 노드가 손상된 것으로 볼 수 있다. 즉, 노드 N6, N7 및 N8을 포함하는 서브 군집 네트워크 및 N4, N5 및 N6을 포함하는 서브 군집 네트워크에 대한 공격이 검출되는 경우, 노드 N6에 이상이 발생한 것으로 볼 수 있다. 마찬가지로 모든 노드들은 서브 군집(swarm)들에 의해 고유하게 정의될 수 있다. 전술한 실시 예들은 모든 짝수 M개 노드들에서, 각 서브 군집이 n=3개의 노드들을 포함하는 경우 적용될 수 있다. 일반적으로, 각 서브 군집의 노드들은 3 이상이고, 하기의 수학식 1에 의해 표현될 수 있다.
여기에서 n은 서브 군집에 포함된 노드 수, M은 서브 군집들을 포함하는 전체 군집의 노드 수를 의미할 수 있다. 일반적으로, 각 서브 군집 내의 노드들의 수는 3이상이지만, 상기 수학식 1과 같이 표시될 수 있다. 상기 수학식 1이 적용되는 경우, 주(primary) 서브 군집(sub-swarm)들로부터 중첩되지 않은 노드들을 수집하는 일부 보조(secondary) 서브 군집들이 형성되어야 한다.
도 2c는 주(primary) 서브 군집들로부터 오버랩되지 않는 각 노드들을 수집함으로써 소정의 보조(secondary) 서브 군집들이 형성되는 과정을 나타내는 도면이다.
여기에서, S1은 주요 서브 군집의 수(number of Primary Sub-swarms), S2는 보조(secondary) 서브 군집의 수(number of Secondary Sub-swarms)를 나타낸다. 예를 들어, M=10이고, n=3인 경우, 주요 서브 군집의 수 S1은 5이고, 보조(secondary) 서브 군집의 수 S2는 0이다. 또한, M=10이고, n=4인 경우, 주요 서브 군집의 수 S1은 3이고, 보조(secondary) 서브 군집의 수는 1(예컨대, 도 2c 의 삼각 모양으로 연결된 군집)이다. 이러한 방식으로 n이 증가할 수록, 주(primary) 서브 군집들의 수 S1은 감소하지만, 2차 서브 군집들의 수는 증가하게 된다.
따라서, 본 개시의 일 실시 예에 의하면, 계산 복잡성을 줄이는 최적의(optimal) 서브 군집 수 n값이 존재하고, 최적의 n값으로 서브 군집들을 형성하고, 형성된 서브 군집 내에서 이상을 검출하며, 알고리즘이 각 노드를 정확하게 정의할 때, 군집 내 문제가 발생한 노드를 정확하게 검색할 수 있다.
일반적으로, 군집에서 이상(anomaly)을 검출하기 위한 방법들은, 복수의 노드에서 이상이 발생한 경우에 이상을 정확하게 탐지하기 어렵고, 다수의 노드를 포함하는 대형 군집에서는 이상 검출을 위해 많은 계산이 요구되는 문제가 있었다. 또한, 일반적으로 군집에서 이상을 검출하는 방법들은, 하나 이상의 노드가 손상되거나 문제를 일으킨 경우 잘못된 결과를 제공할 위험이 있었고, 서브 군집의 모든 멤버가 공격을 받거나 손상되는 경우에는, 공격을 받거나 손상된 해당 서브 군집의 탐지가 불가능한 문제점이 있었다.
도 3은 일 실시 예에 따른 블록 체인 알고리즘을 설명하기 위한 도면이다.
블록 체인은 지속적으로 증가하는 트랜젝션들을 기록한 블록들을 체인 형식으로 포함하는 분산 원장(데이터 베이스)으로써, 각 블록들은 타임 스탬프(time-stamp)와 이전 블록에 대한 링크를 포함할 수 있다. 예를 들어, 블록 체인 내 각 블록들은 고유한 해시 값을 포함하고, 각 블록의 해시 값은 이전 블록의 해시 값을 포함할 수 있다. 블록 체인은 본질적으로 데이터의 수정에 저항성(resistant)을 가지고, 데이터의 신뢰성을 위한 무결성(integrity)을 가진다. 블록 체인은 다수의 노드/컴퓨터들 간의 트랜젝션을 기록하는데 사용되는 분산된(distributed) 디지털 원장(digital ledger)으로 생각될 수 있다.
따라서, 블록 체인 내 트랜젝션들의 기록은 모든 후속 블록 및 네트워크의 결합을 변경하지 않고는, 블록 체인 내 기록들은 소급적으로 변경될 수 없다. 블록 체인은, 탈 중앙화된(de-centralized) 분산 네트워크에서 기록되거나 검증될 수 있는 경영 또는 재무를 위한 신뢰성 있고 저렴한 방법을 제공할 수 있다. 블록 체인 뿐만 아니라 군집(swarm)의 경우에도, 군집의 아키텍처(architecture)가 분산되어 있고, 블록체인 및 군집 모두 집단적 의사 결정에 관련되어 있으므로, 블록 체인의 견고성(robustness)이 복수의 디바이스들로 형성되는 군집에 적용될 수 있다.
본 개시의 일 실시 예에 따른 트랜젝션(transaction)은 미리 정의된 이벤트의 발생을 의미할 수 있다. 또한, 트랜젝션은 두 객체 사이의 거래(예컨대 데이터의 교환, 데이터 값의 함수의 교환)를 포함할 수 있다. 일 실시 예에 의하면, 적어도 하나의 디바이스를 포함하는 군집에서 트랜젝션은 디바이스들의 raw data 내지 function of raw data 값의 교환을 포함할 수 있다.
본 개시의 일 실시 예에 따른 디바이스들의 raw data 는 디바이스 식별 데이터, 디바이스 상태 데이터를 포함할 수 있다. 또한, 디바이스의 식별 데이터는 디바이스의 특성 데이터, 디바이스의 성질 데이터를 포함할 수 있다. 디바이스의 raw data는 군집(swarm)의 raw data를 구성할 수 있다. 본 개시에 따른 디바이스는 하나의 네트워크 내 하나의 노드에 대응될 수 있다.
본 개시의 일 실시 예에 따르면, 노드는 다양한 형태의 디바이스 또는 전자 장치를 포함할 수 있다. 예를 들어, 본 명세서에서 군집 내 포함된 노드들은 디지털 카메라, 모바일 단말, 스마트 폰(smart phone), 노트북 컴퓨터(laptop computer), 태블릿 PC, 전자북 단말기, 디지털방송용 단말기, PDA(Personal Digital Assistants), PMP(Portable Multimedia Player), 네비게이션, MP3 플레이어, 집안 내 가전 등을 포함하는 전자 장치 일 수 있으나 이에 한정되는 것은 아니다.
또한, 일 실시 예에 따르면, 노드는 사용자에 의해 착용될 수 있는 장치(wearable device)일 수 있다. 웨어러블 디바이스는 액세서리 형 장치(예컨대, 시계, 반지, 팔목 밴드, 발목 밴드, 목걸이, 안경, 콘택트 렌즈), 머리 착용형 장치(head-mounted-device(HMD)), 직물 또는 의류 일체형 장치(예: 전자 의복), 신체 부착형 장치(예컨대, 스킨 패드(skin pad)), 또는 생체 이식형 장치(예: implantable circuit) 중 적어도 하나일 수 있으나 이에 한정되는 것은 아니다. 또한, 일 실시 예에 의하면, 노드는 장치를 포함하는 네트워크의 단위로써, 서로 통신이 가능한 드론, 항공기, 차량 등과 같이, 컴퓨터 장치 각각에 대응될 수 있고, 하나의 노드는 통신이 가능한 하나 이상의 전자 장치들을 포함할 수 있다. 즉, 군집 내 포함된 노드들은 서로 유선 또는 무선 통신이 가능한 복수의 전자 장치에 대응될 수 있다.
현재까지 보안을 위한 IOT 디바이스들을 포함하는 군집(swarm)에 군집 지능을 적용한 기술은 개시되지 않았다. 블록 체인에서 이상(Anomaly)의 검출 또는 트랜젝션(transaction)의 검증은 암시된 합의 규칙(implied consensus rules), 정의된 합의 규칙(defined consensus rule) 및 런타임 합의 규칙(runtime consensus rule)에 의해 관리될 수 있다.
이러한 합의 규칙들은 군집 성질이 변경됨에 따라 동적으로 발전하고, 군집 의 규칙은 상기 규칙들의 변화에 따라 변할 수 있다. 이중 중요한 것은 behavioral artifact로써, 런타임 합의 규칙(run-time consensus rule)이고, 군집의 행동은 raw value 또는 raw value의 함수에 기초하여 결정될 수 있다. 군집의 행동은 이상(anomaly) 검출을 위해 블록 체인 내 규칙을 설정하는데 도움이 될 수 있다.
본 개시에 따른 블록체인의 합의 규칙은 넓은 의미에서의 블록 체인의 규칙에 대응될 수 있다. 본 개시의 일 실시 예에 따른 블록 체인의 규칙은 군집을 정의하기 위한 규칙, 군집 내 트랜젝션을 기록한 새로운 블록을 생성하는 노드를 선출하기 위한 리더 선출 규칙, 군집 내 리더로 선출된 노드가 생성한 블록을 검증하기 위한 검증 규칙, 네트워크 내 서로 다른 블록 체인이 형성되는 경우, 블록 체인들의 내용을 통일하기 위한 탈 중앙화(decentralized) 합의 규칙(consensus rule)을 포함할 수 있다.
도 4a는 일 실시 예에 따른, 이종(heterogeneous) 디바이스들의 네트워크를 나타내는 도면이다. 도 4b는 일 실시 예에 따른, 이종 디바이스들을 포함하는 군집의 성질 및 특성에 기초하여 군집의 규칙 및 규칙의 경계 조건을 설정하는 과정을 설명하기 위한 도면이다.
동종 군집(Homogeneous Swarm)은 유사한 행동 및 속성을 가진 유사한 유형의 디바이스들을 포함하는 군집을 의미할 수 있고, 이종 군집(Heterogeneous Swarm)은 서로 다른 이종의 행동 특성 및 성질을 가지는 서로 다른 유형의 디바이스들이 연결된 군집을 의미할 수 있다. 따라서, 동종 군집 내 동종 디바이스들은 동종 특성, 성질, 현재 상태에 관한 데이터를 가질 수 있고, 동종(Homogeneous) 데이터를 군집 내 다른 디바이스들과 공유할 수 있다. 이종 디바이스들은 이종 특성, 성질, 현재 상태에 관한 데이터를 가질 수 있고, 이종(Heterogeneous) 데이터를 군집 내 다른 디바이스들과 공유할 수 있다. 동종 군집 및 이종 군집의 성질 또는 특성들은 본질적으로 유사하거나 다를 수 있지만, 동종 군집 및 이종 군집은 집단적(collective) 상호 의존적(interdependent) 특성을 가질 수 있다. 도 4a를 참조하면, 복수의 이종 디바이스들을 포함하는 IOT 디바이스들은 네트워크를 통하여 서로 연결될 수 있고, 소정의 특성에 따라 서로 다른 성질 및 사용 예를 나타낼 수 있다.
도 4a의 각 디바이스들은 군집을 구성하고, 군집 내 각 디바이스들은 각 디바이스들 간의 데이터(예컨대 raw data 내지 function of raw data) 및 활동 기록들을 포함하는 블록들이 체인 형식으로 연결된 블록 체인(block chain)을 각각 저장할 수 있다. 군집의 디바이스들과 관련된 활동이 원장에 기록되도록, 각 디바이스들은 블록의 각 항목(entry)의 원장을 유지할 수 있다. 또한, 본 개시의 일 실시 예에 따르면, 군집 기반 시스템은 디바이스들 사이의 미리 정의된 이벤트(예컨대 거래들, 데이터의 교환, 군집 내 새로운 디바이스의 추가, 군집 내 디바이스의 특성, 성질 및 현재 상태 중 적어도 하나의 변화가 검출되는 경우) 및 활동(activity)에 의하여 생성된 트랜젝션들을 기록한 블록을 생성하고 생성된 블록을 군집 내 디바이스들과 공유할 수 있다.
본 개시의 일 실시 예에 따른 군집 기반 시스템은 검증하기 위한 규칙들을 갱신, 변화 및 적응 시키기 위한 적응 규칙 엔진(adaptive rules engine)을 포함할 수 있다. 본 개시의 일 실시 예에 의하면, 블록 체인에 포함된 각 블록은 원장 또는 원장의 특정 페이지에 대응될 수 있고, 블록 체인 전체는 원장 또는 전체 원장에 대응될 수 있다.
도 4a의 디바이스들의 동작 상태는 현재 상태(current state)에 대응되고 각 디바이스들의 성질 값(property value)은 일련의 성질 파라미터(property parameter) 집합(set)을 지정할 수 있으며, 특성 값들(attribute values)은 일련의 특성 파라미터(attribute parameter)를 정의할 수 있다. 또한, 각 노드(예컨대 각 디바이스)는 군집 내 다른 노드들 및 발생된 트랜젝션(transaction) 및 활동(activity)들을 포함하는 블록들이 연결된 블록 체인을 포함할 수 있다.
군집 내 디바이스들의 성질 파라미터들(property parameters) 및 특성 파라미터들(attribute parameters)에 기초하여, 노드들 사이에서 공통되는 집단 행동을 나타내는 복수의 군집들이 형성될 수 있다. 예를 들어, 동종(heterogeneous) 군집 내 노드는 공통 성질 파라미터들 및 특성 파라미터들을 공유할 수 있고, 이종(heterogeneous) 군집 내 노드는 서로 다른 유형의 파라미터들에 의해 정의되는 특성 및 성질들을 공유할 수 있다.
도 4b는 이종 디바이스들을 포함하는 군집의 성질 및 특성에 기초하여 군집의 규칙 및 규칙의 경계 조건을 설정하는 과정을 설명하기 위한 도면이다.
상기 표 1 및 도 4b를 참조하면, 서로 유선 또는 무선으로 연결될 수 있는 복수의 가정용 IOT 디바이스들을 포함하는 군집의 형성 과정이 도시된다. 군집 1(424)은 세탁기(406) 및 세탁기에 연결된 전자레인지(404)를 포함하고, 세탁기의 물 온도 범위인 25도 ~200도, 전자레인지의 동작 온도 범위인 30도~200도를 모두 포함하는 온도 범위 25도~200도를 성질로 포함하는 온도 특성에 기초하여 연결될 수 있다. 일 실시 예에 의하면, 본 개시의 디바이스들의 특성(attribute, 예컨대 온도)은 특성에 대응되는 성질(property, 예컨대 온도 범위)을 가질 수 있다.
예를 들어, 군집 1(424)을 정의하기 위한 규칙 R1의 경계 조건(boundary condition)은 세탁기의 물 온도 범위인 25도~200도, 전자레인지의 동작 온도 범위인 30도~200도를 모두 포함하는 온도 범위로 결정될 수 있다. 하지만, 상기 표 1 및 도 4b를 참조하면, 군집 2(422)는 라우터(403), 스마트 TV(402), 폰(401) 및 스마트 시계(405)를 포함하고, 공통 특성(common attribute)으로써, 200~2000Mhz의 대역폭을 가지는 네트워킹 능력(networking capability)에 기초하여 연결될 수 있다.
각 군집에 포함된 디바이스들은 각 디바이스들 내의 메모리에 설정되는 대기열에 자신 및 네트워크에서 발생한 트랜젝션들을 저장할 수 있고, 메모리 내에, 이전에 발생한 트랜젝션들을 포함하는 블록들이 연결된 블록 체인을 포함할 수 있다. 군집은 군집 내 새로운 트랜젝션이 발생하면, 트랜젝션이 발생된 디바이스에 인접한 무작위로 선택된 디바이스들은 우선 트랜젝션을 수신하고, 트랜젝션을 수신한 디바이스들이 다시, 자신에 인접한 무작위로 선택된 디바이스들에 트랜젝션을 전달하는 방식으로 군집 내 모든 디바이스들은 새로 발생된 트랜젝션을 자신의 메모리의 대기열에 저장할 수 있다. 일 실시 예에 의하면, 군집 내 디바이스들 사이에 발생한 트랜젝션들은 브로드캐스팅(broadcasting) 방식으로 인접한 피어(peer) 노드들에 무작위로 전달될 수 있고, 소정의 시간 내 군집 내 모든 디바이스들은 새로 발생된 트랜젝션을 공유할 수 있다.
군집 내 디바이스들 중, 작업 증명 내지 지분 증명 중 적어도 하나의 방식에 따라 선출된 디바이스는 브로드캐스팅에 의하여 전달된, 디바이스 자신에 저장되어 있는 트랜젝션들을 블록에 기록함으로써, 새로운 블록을 생성할 수 있다. 다만, 네트워크 내 트랜젝션을 기록한 새로운 블록을 생성하기 위한 리더 선출 방식은 작업 증명(POW) 내지 지분 증명(POS)에 한정되는 것은 아니고, 블록 체인 내 블록을 생성하는 기능을 수행하기 위한 기타 리더 선출 방식 알고리즘을 사용할 수 있다.
새로운 블록을 생성한 디바이스는 생성된 블록들을 인접한 피어 노드들(예컨대 디바이스들)에 무작위로 전달하고, 새로운 블록을 수신한 노드는 다시 인접한 무작위로 선택된 노드들에 새로운 블록을 전달할 수 있다. 군집 내의 각각의 노드들은, 군집의 규칙을 이용하여 수신된 블록을 검증할 수 있다. 동일한 군집내의 각각의 노드들은 동일한 군집의 규칙을 이용하여 수신한 블록을 검증하고, 동일한 트랜젝션을 포함하는 블록에 대하여는 동일한 검증 결과를 도출할 수 있다. 군집 내 각각의 노드들이 리더로 선출된 노드로부터 수신한 새로 생성된 블록들에 대한 검증을 성공적으로 완료하는 경우, 군집 내 디바이스들은 '합의(consensus)'를 도출할 수 있다.
군집 내 노드들의 새로 생성된 블록에 대한 검증(validation)은 규칙 R1에 기초하여 수행될 수 있고, 규칙 R1은 R1=f(T1, T2, S1, S3)와 같이 정의될 수 있다. 여기에서, T1은 세탁기(406)의 물 온도이고, T2는 전자레인지(404)의 동작 온도 범위이며, S1은 세탁기의 현재 상태, S3는 전자레인지의 현재 상태이고, 군집 1(412) 내의 각 디바이스들의 상태 및 성질에 따라 규칙 R1은 설정될 수 있다. 도 4c를 참조하여, 새로운 디바이스들이 군집에 추가되는 경우, 군집의 규칙 및 경계 조건이 갱신되는 과정을 구체적으로 설명하기로 한다.
도 4c는 새로운 디바이스들이 군집에 추가됨에 따라 군집의 성질 및 특성이 변하고, 변경된 성질 및 특성에 따라 군집의 규칙 및 경계조건이 갱신되는 과정을 설명하기 위한 도면이다. 도 4c를 참조하면, 냉장고(408) 및 에어컨(409)이 군집 1(426)에 추가되었으며, 새로운 디바이스들의 추가에 따라 갱신된 군집 1(426)은 하기 표 2와 같이 나타날 수 있다.
상기 표 2를 참조하면, 새로 갱신된 군집 1(426)은 세탁기(406), 전자레인지(404) 외에 냉장고(408) 및 에어컨(409)을 더 포함할 수 있다. 군집 1(424) 및 갱신된 군집 1(426)은 온도 특성에 기초하여 연결될 수 있다. 예를 들어, 도 4b의 군집 1(424)은 냉장고의 동작 온도 범위인 -10도~25도, 에어컨의 동작 온도 범위인 18도~28도를 모두 포함하는 온도 범위 -10도~200도에 해당하는 온도 특성에 기초하여 연결될 수 있다. 군집의 온도 특성에 대한 온도 범위는 군집의 성질을 의미할 수 있다.
새로운 군집 1(426)을 정의하기 위해 갱신된 규칙 R1의 경계 조건(boundary condition)은 세탁기의 물 온도 범위인 25도~200도, 전자레인지의 동작 온도 범위인 30도~200도, 냉장고의 동작 온도 범위인 -10~25도 및 에어컨의 동작 온도 범위인 18도~28도를 모두 포함하는 온도 범위로 결정될 수 있다. 따라서, 규칙 R1의 경계 조건이 갱신됨에 따라 군집을 정의하는 규칙 R1 역시 갱신될 수 있다. 즉, 본 개시의 일 실시 예에 따른 군집의 규칙 및 규칙의 경계 조건들은 현재 군집의 상태, 성질 및 특성에 기초하여 갱신될 수 있다.
군집 1(424)의 규칙 R1은 새로 추가된 디바이스들의 온도 특성 및 성질에 기초하여 R1'으로 갱신될 수 있고, 갱신된 규칙 R1'는 R1'=f(T1, T2, T3, T4, S1, S3, S8, S9)로 정의되고 새로운 군집 1(426)을 정의할 수 있다. 여기에서, T1은 세탁기의 물 온도, T2는 전자레인지의 동작 온도 범위, T3는 냉장고의 동작 온도 범위, T4는 에어컨의 동작 온도 범위를 나타낼 수 있다. 따라서, 군집의 규칙들은 군집 지능을 형성하기 위해, 군집의 현재 상태, 특성 및 성질에 기초하여 갱신될 수 있다.
도 4d는 일 실시 예에 따른, 이종 디바이스들 사이에서 형성되는 군집(swarm)을 설명하기 위한 도면이다.
도 4d를 참조하면, 본원 규칙 유닛(606)에 의해 생성된 규칙들에 기초하여 형성된 군집(swarm)들은 적어도 하나의 디바이스들을 포함하는 복수의 군집들을 포함할 수 있다. 즉, 규칙 유닛(606)에 의해 생성된 규칙들에 기초하여 형성된 군집(swarm)들은 하나 이상의 군집들을 포함할 수도 있다.
예를 들어, 도 4d를 참조하면, 디바이스 D1(401), D2(402), D3(403), D5(405) 및 D7(407)은 하나의 군집을 형성하고, 디바이스 D4(404), D6(406), D7(407), D8(408) 및 D9(409)는 다른 군집을 형성할 수 있다. 일 실시 예에 의하면, 디바이스 D7(407)은 서로 다른 군집에 공통적으로 포함될 수 있다. 본 개시의 일 실시 예에 따른 군집 기반 시스템은 디바이스 D1(401), D2(402), D3(403), D5(405) 및 D7(407)를 포함하는 군집과 디바이스 D4(404), D6(406), D7(407), D8(408) 및 D9(409)를 포함하는 군집 모두에 이상이 발생한 경우, 디바이스 D7(407)에 이상이 발생한 것으로 간주할 수 있다. 일 실시 예에 따르면 서로 다른 군집이 포함하는 공통 노드의 수는 각 군집의 규칙에 기초하여 결정될 수 있다.
일 실시 예에 따르면, 군집은 N과 같이, 미리 고정된 군집 사이즈로 형성될 수 있다. 네트워크 내 모든 군집들에 포함된 노드들(예컨대 디바이스들)의 수는 임의의 수로써 M일 수 있다. 본 개시의 일 실시 예에 의하면, 네트워크 내 모든 군집들은 동일한 수의 노드들(예컨대 디바이스들)을 포함하거나, 서로 다른 수의 노드들을 포함할 수 있다.
일 실시 예에 의하면, 전체 네트워크에서, M개의 시작 노드는 무작위(random)로 선택될 수 있다(swarm initiation). 일 실시 예에 의하면, 시작 노드의 선택은 분산 방식으로 수행되고, 로컬 클록(local clocks)을 기초로 할 수 있다. 일 실시 예에 따르면, 군집 내 각 노드는 비동기화 되어 고유의 클록에 기초하여 동작할 수 있다.
예를 들어, 시작 노드들(initiaiting nodes) 각각은 랜덤하게 선택된 크기가 N인, 빈 고정 길이 원장(blank fixed-length ledger)을 인접한 노드들 중 하나에 순환시킬 수 있다. 따라서, 일 실시 예에 의하면, M개의 순환 원장들이 있을 수 있다.군집 지능(intelligence) 정의 자체에 기초하여, 군집 내 디바이스들은 지역적(locally) 상호 작용을 수반할 수 있다. 일 실시 예에 의하면, 군집 내 지역적 상호 작용은 어느 정도 수준(a certain degree)의 무작위성을 가지고, 이러한 무작위성을 가지는 지역적 상호 작용을 기초로, 군집 내 다른 지역의 노드들의 행동은 변할 수 있다.
예를 들어, 군집 내에서 시작 노드(initiating node)로부터 원장을 수신한 노드는, 스스로 원장에 자신을 등록한 다음(예컨대 only once), 수정된 원장을 자신의 이웃하는 무작위로 선택된 노드들에 전달할 수 있다. 이러한 과정은 M개의 순한 원장들이 가득 찰(full) 때까지 계속될 수 있다. 장부의 항목(entries)은 원장에 관련된 군집들의 멤버들을 결정할 수 있다. 따라서, M개의 순환 원장들에 대하여, M개의 군집들이 형성될 수 있다.
군집의 규칙을 정의함으로써, 각 군집 내 오버래핑(overlap)되는 노드들(예컨대, 복수의 군집에 공통적으로 포함되는 노드들)의 특정 수를 승인(permit)할 수 있다. 고정된 크기 또는 가변 크기(variable size)의 군집들은, 원장들의 크기를 다르게 선택함으로써 형성될 수 있다.
본 개시의 일 실시 예에 의하면, 원장(ledger)는 블록 체인의 블록 또는 각 디바이스에 저장되는 블록 체인 자체에 대응될 수 있으므로, 블록 체인 내 블록들의 크기(또는 길이)에 기초하여, 블록 체인을 공유하는 군집들의 크기가 결정될 수 있다. 군집의 크기는 디자인 파라미터(design parameter)로, 설계자의 선택 사항이고, 군집 내 노드들의 총 수, 시간 제약(time constraints) 및 블록 체인 형식으로 데이터를 저장하기 위해 이용되는 특정 애플리케이션의 종류에 따라 달라질 수 있다. 물론, 이러한 군집(601)의 형성은 중앙 집중식 제어를 요구하지 않으며, 탈 중앙화된 분산 시스템에 기초하여 수행될 수 있다.
본 개시의 일 실시 예에 따르면, 동종 및/또는 이종 디바이스들의 집합(set)은 집단적(collectively)으로 군집을 형성할 수 있다. 동종 및/또는 이종 장치들은 그들의 원 데이터(raw data) 및/또는 원 데이터의 함수(function of raw data)를 이웃하는 노드들(예컨대 이웃하는 디바이스들)과 공유하며, 각 디바이스의 원 데이터 및/또는 원 데이터의 함수는 트랜젝션들을 구성할 수 있다. 각 디바이스에서 발생한 트랜젝션들은 온라인으로 네트워크 내 다른 노드들과 공유될 수 있다. 예를 들어, 디바이스들의 raw data 는 군집 내 디바이스들의 특성, 성질 및 현재 상태에 관한 데이터를 포함하고 function of raw data는 디바이스들의 특성, 성질 및 현재 상태 중 적어도 하나에 기초하여 특정되는 함수를 포함할 수 있다. 디바이스들의 raw data 및/또는 function of raw data는 디바이스들 사이의 트랜젝션들을 정의할 수 있다. 일 실시 예에 의하면, 트랜젝션들은 군집 내 디바이스 구성원의 추가, 변경 및 탈퇴 중 적어도 하나에 따른 raw data 및/또는 function of raw data의 교환, 변경 및 갱신에 기초하여 발생할 수 있고, 현재 군집 내 디바이스들의 특성, 성질, 현재 상태 및 행동의 변화에 따라 발생할 수 있다.
즉, 군집 내 구성원의 추가, 변경, 탈퇴, 군집 내 디바이스들의 특성, 성질, 현재 상태 및 행동의 변화는 미리 이벤트로써 정의될 수 있고, 미리 정의된 이벤트가 발생하는 경우, 트랜젝션들이 발생되며, 발생된 트랜젝션들은 군집 내 모든 디바이스들로 전달(예컨대 브로드캐스팅)될 수 있다. 즉, 군집 내 모든 디바이스들은 트랜젝션 및 트랜젝션들이 기록된 새로운 블록들을 송수신하기 위해 서로 유선 또는 무선으로 연결되어 데이터를 교환할 수 있다.
일 실시 예에 따르면, 군집(410)은 서로 다른 성질(property), 서로 다른 특성(attribute) 및 서로 다른 현재 상태에 대한 동작을 가지는 다양한 디바이스들을 포함하는 이종 네트워크에 의해 형성될 수 있다. 또한, 각 노드는 다른 디바이스들의 트랜젝션 및/또는 활동 데이터가 기록된 블록 체인 원장(예컨대 블록 체인 블록들이 연결된 블록 체인 데이터)을 포함할 수 있음은 전술한 바와 같다. 군집 내 디바이스들의 성질 파라미터들 및 특성 파라미터들은 군집 내 디바이스들의 공통적인 집단 행동(common collective behavioral)에 기초하여 생성될 수 있다.
바람직하게는, 군집 내 각 노드는 군집 내 디바이스들의 트랜젝션들이 미리 정의된 이벤트에 따라 새로 발생하는 경우, 새로 발생된 트랜젝션들이 기록된 블록을 검증함으로써, 검증이 완료된 블록을 자신의 블록 체인에 추가할 수 있다. 즉, 군집 내 디바이스들은 군집 내 새로운 트랜젝션이 발생함에 따라 블록 체인을 갱신할 수 있다.
군집 내 모든 디바이스들에 전달된 트랜젝션들은 군집 내 디바이스들의 대기열에 저장될 수 있고, 군집 내 모든 디바이스들은 트랜젝션들을 공유할 수 있다. 일 실시 예에 의하면, 군집 내 모든 디바이스들은 동일한 내용의 트랜젝션을 공유할 수 있지만, 트랜젝션들이 군집 내 노드들에 전달되는 순서는 무작위 일 수 있으므로, 트랜젝션들이 각 디바이스에서 저장되는 순서는 변경될 수 있다. 일 실시 예에 의하면, 군집 내 노드들 중, 작업 증명을 수행하여 해시 퍼즐의 정답을 찾은 노드는 리더로 선출되어, 현재 자신이 가지고 있는 트랜젝션들을 기록한 새로운 블록을 생성하며, 생성된 블록은 군집 내 모든 노드에 전달되고, 각 노드에 의해 검증될 수 있다.
블록체인 검증 규칙(rules of verification)은 군집의 특성, 성질 및 현재 상태에 의해 유도(derived)될 수 있다. 군집 내 디바이스들의 검증 과정은 해당 블록을 생성한 노드가 블록을 생성할 권한이 있는 리더가 맞는지 결정하는 단계 및 생로 생성된 블록 내 트랜젝션들이 변경되지 않았는지 여부를 결정하는 단계를 포함할 수 있다. 일 실시 예에 의하면, 블록 내 트랜젝션들이 변경되지 않았는지 여부는 전자 서명 및 해시 함수에 기초하여 결정될 수 있다.군집 내 각 디바이스들의 블록체인 규칙들은 군집의 특성(attribute), 성질(property) 및 현재 상태에 의하여 갱신되거나 변경될 수 있다. 또한, 규칙들의 경계 조건들 역시 군집의 특성, 성질 및 현재 상태에 따라 설정될 수 있다.
도 4e는 일 실시 예에 따른, 이종 디바이스들 사이에서 형성되는 군집(swarm)을 설명하기 위한 도면이다. 예를 들어, 도 4e에 도시된 바와 같이, 노드들(예컨대 D1 (401), D2 (402), D3 (403), D5 (405), D6 (406), D7 (407), D8 (408) 및 D9 (409))은 서로 다른 군집을 형성하기 위해 연결될 수 있다. 일 실시 예에 의하면, 노드 D7 (407)과 같이, 하나의 노드는 복수개의 군집들에 포함될 수 있다.
홈 네트워크를 구성하는 이종(heterogeneous) 디바이스들 (D4 (404), D6 (406), D7 (407), D8 (408) 및 D9 (409))은 공통 특성인 (예컨대, 온도 특성)에 의해 연결될 수 있다. 예를 들어, 디바이스들의 공통 성질(common property) 파라미터로써, 이들 디바이스 각각이 동작하는 일반적인 온도 범위는 -10 도(섭씨, Celsius)에서 200도(섭씨, Celsius)까지 다양할 수 있다.
일 실시 예에 의하면, 군집 내의 각 디바이스는 다른 디바이스들의 현재 온도 범위를 측정하고, 측정된 다른 디바이스들의 온도 범위를 트랜젝션으로써 블록체인의 블록에 갱신할 수 있다. 예를 들어, 여름철에 이러한 유닛들(예컨대 D9, 409)의 동작 범위가 18도에서 22도인 경우, 일반적인 블록체인의 규칙들이 적용되는 군집의 경우, 유닛(D9, 409)의 현재 온도가 25도를 나타내더라도, 별도의 규정이 없는 한 유효한 판독 값(valid reading)으로 간주될 수 있다. 즉, D9(409)이 손상(compromised)되었고, 여름에 바람직한 온도인 19도로 냉각되지 않고, 현재 온도인 24도의 온도를 가지고 있다고 가정하면, 이러한 경우, 블록 체인의 전통적인(traditional) 규칙(예컨대 implied rule or defined consensus rules)은 D4(404)를 탐지하지 못할 수 있다.
그러나, 본 개시의 일 실시 예에 의하면, 군집을 정의하기 위한 규칙들은 군집의 특성, 성질 및 현재 상태에 의해 변경될 수 있다. 예를 들어, 현재 군집의 각 디바이스들이 저장하고 있는 블록체인에, D9의 올바른 온도 동작 범위로써, D9의 온도 경계 조건이 18도에서 24도 사이로 설정되어 있고, 경계조건들이 갱신되지 않는 경우, 24도의 이상 온도를 나타내는 디바이스 D4(404)의 이상은 검출되지 않을 수 있다.
그러나 본 개시의 일 실시 예에 따르면, 군집의 현재 성질, 특성 및 현재 상태에 기초하여, 군집 내 구성원인 각 디바이스들이 포함하는 블록 체인에 저장된 D9의 온도 경계 조건은 18도에서 22도로 갱신될 수 있고, 이 경우, 현재 24도의 이상 온도를 나타내는 디바이스 D4(404)의 이상은 검출될 수 있다. 본 개시의 일 실시 예에 따른 경계 조건은 군집 내 구성원인 각 디바이스들의 온도 범위를 포함할 수도 있고, 군집 내 전체 디바이스들의 온도 범위를 모두 포함할 수도 있다.
예를 들어, 에어컨(409)를 포함하는 군집 규칙의 경계 조건으로써 온도 범위가 5도~26인 경우, 현재 에어컨의 온도 24도는 정상 온도로 간주될 수 있으나, 동적 규칙을 기반으로는 블록 체인을 이용하는 군집 시스템의 군집 규칙의 경계 조건으로써 온도 범위가 5도~23도로 갱신되는 경우, 현재 에어큰의 온도 24도는 이상 온도로 간주될 수 있다.
본 개시의 일 실시 예에 따르면, 군집의 규칙 및 규칙들의 경계 조건의 변경 내지 갱신은 새로운 트랜젝션으로 생성될 수 있고, 군집의 특성(attribute), 성질(property), 현재 상태 및 현재 행동에 기초하여 군집의 구성원들이 따르는 지역적 상호 작용의 기초가 되는 간단한 규칙(simple rule), 군집을 정의하기 위한 런타임 합의 규칙, 군집 내 블록을 생성하기 위한 리더 노드 선출 규칙, 생성된 블록을 검증하기 위한 검증 규칙, 군집 내에서 서로 다른 트랜젝션들이 기록된 블록들이 연결된 블록 체인이 생성되는 경우 통일하기 위한 탈중앙화 합의 규칙들은 생성, 변경, 수정 및 갱신될 수 있다. 따라서, 본 개시의 일 실시 예에 따른 블록 체인을 이용하는 군집 내 이상 탐지 알고리즘(예컨대 메커니즘) 역시 생성, 변경, 수정 및 갱신될 수 있다.
도 5는 일 실시 예에 따른 군집 환경(swarm environment)을 설명하기 위한 도면이다. 도 5를 참조하면, 군집 환경은 문제를 해결하거나, 바람직한 행동(desired behavior)을 달성하기 위해 환경과 상호 작용하고, 다른 군집 간 서로 상호작용하는 군집(동종 또는 이종 노드들을 포함)을 포함할 수 있다. 즉 군집 환경은 환경 또는 서로간의 상호 작용하는 군집 기반 시스템(500) 또는 복수의 디바이스들을 포함하는 군집 제어 장치가 상호작용하는 대상을 의미할 수 있다.
일 실시 예에 의하면, 군집 기반 시스템(500)은 군집 지능(501), 블록 체인(602) 및 이상 및/또는 손상된 노드 검출(503) 기능을 수행하는 소정의 블록들을 포함할 수 있다.
군집 지능 유닛(501)은 주어진 일련의 간단한 규칙(simple rule)에 기초하여, 군집의 생성, 형성 및 진화를 야기할 수 있다. 예를 들어, 군집 지능(501) 유닛은 군집 내 디바이스들의 지역적 상호 작용을 위한 간단한 규칙(simple rule)을 정의하고, 생성된 간단한 규칙(simple rule)을 군집의 상태, 특성, 성질 및 파라미터에 기초하여 군집의 규칙들을 그 자체로 적응적(adaptive)으로 만들 수 있다. 군집 지능 유닛 (501)은 군집의 현재 상태, 군집의 규칙, 파라미터들, 성질 및 특성에 대한 데이터를 블록 체인 유닛(602)에 전달할 수 있다.
블록 체인 유닛은 (602) 거래(transactions, 603)를 검증하고 저장하는데 사용될 수 있다. 일 실시 예에 따른 블록 체인 유닛은 원장 생성 유닛 및 이상 검출 알고리즘 유닛을 포함할 수 있다. 블록 체인유닛은 미리 정의된 규칙 세트를 가지는 합의 관리 유닛(consensus manager, 610)을 이용하여 트랜젝션들 (transactions, 603) 및 트랜젝션들이 기록된 블록을 검증할 수 있다.
예를 들어, 원장 생성 유닛은, 블록 체인의 규칙에 기초하여 선출된 리더가 생성한 블록이 블록 체인을 공유하는 모든 노드들에 전달되고, 새로운 블록을 수신한 각 노드에서 블록의 검증이 완료된 후, 각 노드의 블록 체인에 블록을 추가하도록 함으로써, 각 노드에 새로운 원장을 생성하도록 할 수 있다. 즉, 블록 체인 시스템에서 각 노드에 저장된 블록 체인은 하나의 원장에 대응될 수 있다.
또한, 이상 검출 알고리즘 유닛은 군집 지능 유닛으로부터 군집의 상태, 규칙, 파라미터들 및 성질에 관한 데이터를 수신하고, 군집의 상태, 규칙, 파라미터들 및 성질에 관한 데이터에 기초하여 군집 내 이상을 검출하기 위한 알고리즘을 저장할 수 있다. 본 개시에 따르면, 군집의 상태, 파라미터들, 특성, 현재 상태 및 성질들은 블록 체인(602)의 런타임 규칙들을 정의하고, 런타임 규칙들을 더 적응적(adaptive)으로 만드는데 사용될 수 있다.
이상 검출 유닛 (503)은 블록 체인의 불변 속성에 따라, 트랜젝션들(transactions)은 덮어 쓰여질(over written) 수 없다는 특성을 이용하여, 복수의 노드들을 포함하는 군집에서 이상(anomaly)을 검출할 수 있다. 일 실시 예에 의하면, 군집의 "지능(intelligence)"은 블록 체인(602)를 이용하여 생성될 수 있다. 블록체인(602)의 규칙들은 군집의 현재 상태, 성질(property) 및 속성(attribute)에 기초하여 생성, 갱신 및 변경될 수 있다. 따라서, 블록 체인(602)은 군집들의 변경되는 행동들을 수용할 수 있도록 유연(flexible)하게 만들어질 수 있다.
일 실시 예에 의하면, 군집 지능 유닛 및 블록 체인 유닛(602)은 결합되고, 군집 지능에 의해 생성된 군집의 성질 및 현재 상태에 기초하여 블록체인의 규칙들을 생성 또는 변경함으로써 블록 체인의 규칙을 동적으로 만들 수 있다. 이렇게 생성 또는 변경된 블록체인의 동적 규칙들은 군집 내 공격 또는 이상을 검출하는데 사용될 수 있다. 블록 체인(602) 기술을 이용하여 군집 내 이상 또는 위협의 검출은 군집의 성질, 특성 및 현재 상태에 기초하여 결정될 수 있다. 따라서, 블록 체인(602)규칙들은 군집의 진화와 함께 발전할 수 있다.
도 6은 일 실시 예에 따른, 블록 체인 서비스를 포함하는 군집 지능 시스템을 설명하기 위한 도면이다.
군집 지능은 지역적으로는 단순한 규칙(simple rule)에 따라 분산화되고(예컨대, 탈집중화 decentralized), 자기 조직화(self-organizing)ehls 에이전트들(예컨대 노드들)의 지능적으로 보이는 글로벌(global) 집단적 행동(collective behavior)이다. 군집 지능은 분산화되고 자기 조직화된 노드들의 지역적 상호 작용 또는 노드들 및 환경과의 사이에 지역적 상호 작용이 군집 전체적으로 볼 때는 지능적으로 보이는 창발적(emergent) 행동을 나타나는 것을 의미할 수 있다.
일 실시 예에 의하면, 군집 기반 시스템은 군집을 형성하기 위한 노드들을 검출할 수 있다. 예를 들어, 군집 지능 검출/형성 유닛(601)내, 군집 검출 유닛(605)은 신호 세기, 노드들의 거리 및 환경 내 노드들의 인식에 관하여 생성된 군집 규칙에 대응되는 노드들을 무작위로 검출할 수 있다. 군집 검출 유닛(605)이 환경 내에서 군집을 검출하는 과정은 Particle Swarm Optimization(706, PSO) 알고리즘과 유사할 수 있으나 이에 한정되는 것은 아니다.
규칙 유닛(606)은 복수의 노드들 사이에서 군집을 형성하기 위한 간단한 규칙들(simple rules)을 생성할 수 있다. 예를 들어, 군집 형성 유닛(607)은 규칙 유닛(606)에 의해 생성된 간단한 규칙들에 기초하여, 군집을 형성할 수 있다. 군집 형성 유닛(607)이 군집을 형성하기 위한 방법은 다양할 수 있다. 즉, 복수의 노드들은 군집으로 형성되기 위하여 규칙 유닛(606)에서 생성된 간단한 규칙들(simple rules)을 따를 수 있다. 전술한 바와 같이, 군집은 동종 및/또는 이종 노드들을 포함할 수 있고, 동종 노드는 유사한 행동 및 성질을 포함하고, 이종(heterogeneous)노드들은 일련의 고유한 행동 및 서로 다른 성질을 가질 수 있다.
일반적인 블록 체인의 규칙들과는 달리, 노드들의 다양한 행동 및 성질로 인한 군집의 수요를 처리하고, 동시에 군집의 무결성을 유지하기 위하여, 규칙 유닛(606)에 의해 생성된 규칙들은 적응되고 변경될 필요가 있다. 예를 들어, 동종 노드들에서, 더 나은 결과를 나타내는 활동 결과에 기초하여, 규칙들은 변경될 수 있다. 이러한 동종 노드들에서, 노드들의 활동 결과는 블록 체인 규칙의 갱신, 변경 내지 수정으로 나타나고, 갱신, 변경 내지 수정된 규칙들은 피드백으로써 피드백 루프를 통하여 적응 규칙 유닛(609)에 입력될 수 있다. 변경, 갱신 및 수정된 규칙들에 따라, 군집의 행동은 환경에 더 동적으로 적응될 수 있다.
일 실시 예에 의하면, 블록 체인 서비스들(608)을 제공하는 블록 체인 유닛(602)은 적응 규칙 유닛(609), 합의 관리 유닛(610), 분산 원장 유닛(611) 및 원장 저장 유닛(612)을 포함할 수 있다.
블록 체인 서비스 유닛(608)은 데이터의 무결성을 유지하기 위해, 적응 규칙 유닛(609), 합의 관리 유닛 (610), 분산 원장 유닛(611) 및 원장 저장 유닛 (612)를 제어하기 위한 블록 체인 알고리즘을 포함할 수 있다. 적응 규칙 유닛 (609)은 군집의 현재 상태, 파라미터들, 특성 및 성질 내 변화에 기초하여, 규칙 유닛(606)에서 생성된 규칙들을 변경, 갱신, 수정할 수 있다.
적응 규칙 유닛(609)은 원하는 결과들을 획득하기 위해, 군집 내 동종 및/또는 이종 노드들의 서로 다른 행동 및 성질에 민감하게 반응할 수 있고, 결과적으로 군집 기반 시스템이 생성된 적응된 규칙들을 블록 체인의 불변 속성과 결합함으로써 군집 내 이상 및/또는 위협을 검출하도록 한다.
일 실시 예에 의하면, 합의 관리 유닛(610)은 데이터 무결성을 유지하기 위한 블록 체인의 규칙을 관리할 수 있다. 예를 들어, 합의 관리 유닛(610)은 블록 체인 시스템의 노드들 중 트랜젝션들을 기록하여 블록을 생성하기 위한 리더 선출 규칙(예컨대 POW, POS), 생성된 블록을 검증하기 위한 검증 규칙, 서로 다른 트랜젝션들이 기록된 블록 체인이 한 네트워크에서 성장하는 경우, 블록 체인을 통일하기 위한 탈 중앙화 합의규칙, 블록 체인의 동작에 관한 런타임 합의 규칙을 관리할 수 있다.
분산 원장 유닛(611)은 블록 체인 시스템 내 트랜젝션들을 기록한 블록을 생성하고, 블록 체인 시스템 내 노드들에 생성된 블록을 전달할 수 있다. 원장 저장 유닛(612)은 생성된 블록의 검증이 완료되면, 블록 체인에 새로운 블록이 연결되도록 할 수 있다. 원장 저장 유닛 (612)은 새로 생성된 블록이 연결된 블록 체인을 군집 기반 시스템 내 또는 적어도 하나의 노드들에 저장할 수 있다.
복수의 노드들을 포함하는 네트워크에서, 합의(consensus) 기반 군집 지능 시스템은 시스템 사용자의 기대로써 바람직한 행동/예측된 결과(613)를 나타낼 수 있다. 즉, 복수의 노드들을 포함하는 네트워크에서 시스템 사용자의 기대는 군집 내 노드들의 행동(behavior)으로 나타나고, 이러한 노드들은 노드가 동작을 시작할 때, 규칙 유닛(606)에 의해 정의되는 간단한 규칙들(simple rules)을 따를 수 있다.
피드백 관리 유닛(614)은 노드들의 성질에 대한 피드백을 제공할 수 있고, 군집 기반 시스템은이 노드들의 성질에 있어 바람직한 변화를 집단적으로 결정하도록 함으로써 시스템 사용자의 요구에 대응하는 바람직한 행동/ 예상 결과를 도출하기 위한 요구된 규칙들을 수정 및/또는 갱신하도록 할 수 있다.
군집들의 서브 군집(sub-swarm)들은 블록체인을 가질 수 있다. 그러나, 본 개시의 일 실시 예에 따르면, 블록 체인은 노드들에 의해 공유되는 원 데이터 및 원 데이터의 함수를 기초로부터 생성될 수 있다. 군집 내 노드들에 의해 공유되는 값들(values)은 raw values(예컨대 ACs의 온도들) 또는 값들(values)의 함수(예컨대 엔트로피)일 수 있다.
블록체인의 정의에 따른 블록 체인의 불변 속성(예컨대 tamper- prrof)을 이용하여 군집 내 이상(tamper, anomaly)을 검출할 수 있다. 군집의 행동은 raw values 또는 function of raw values에 기초하여 결정될 수 있다. 군집의 행동은 이상 검출을 위한 블록 내 규칙들을 설정하는데 사용될 수 있다. 블록 체인 내 모든 트랜젝션들의 해시 값은 머클 트리 형식으로 저장되어 최종 하나의 해시 값으로 블록 헤더에 저장되고, 해시 값은 비대칭 암호화 기법에 따라 암호화되어 전자 서명으로써 각 노드로 전달될 수 있다. 예를 들어, 전달된 트랜젝션들이 변경되는 경우, 머클 트리 루트 내의 적어도 하나의 해시 값이 변경되고, 결과적으로 머클 트리의 상단의 최종 해시 값이 변경됨으로써, 트랜젝션의 변경은 감지될 수 있다.
이러한 방식으로 블록 체인 내 블록의 각 항목은 변경이 불가할 수 있다. 자신의 값들(values)을 수정하려는 IOT 디바이스들은 flag가 지정되고, 군집 기반 시스템은 flagged 된 IOT 디바이스들의 이상을 검출할 수 있다. 이상(anomaly)이 발생하거나, 손상된 노드는 이례적인 행동을 수행한 경우, 추후 되돌리거나 수정될 수 없다. 블록 체인 내 모든 데이터들은 다른 사람들과 이미 공유될 수 있으므로, 데이터 위조 비용이 매우 높다.
도 7a는 일 실시 예에 따른 군집 지능 코어 엔진(Swarm Intelligence Core Engine, SIC)을 설명하기 위한 도면이다. 군집 지능 코어 엔진(SIC, 718)은 군집 알고리즘들 (703), 군집 capabilities 유닛(708) 및 군집 규칙 및 행동 유닛 (714)를 포함할 수 있다. 군집 규칙 및 행동 유닛 (714)은 규칙 유닛(606) 및 환경 인식 유닛(716)을 포함하고, 군집 역량(capabilities) 유닛(708)은 개별 기능을 획득하기 위한 capabilities 모델링 구성 및 모델링 규칙을 위한 행동 모델링 구성을 포함할 수 있다.
일 실시 예에 의하면, 군집 지능 코어 엔진(SIC 엔진)은 군집에 관한 모든 계산 및 규칙을 담당할 수 있다. 군집 알고리즘들(703)은 간단한 규칙들에 따라, 지역적(locally)으로 상호작용하는 자기 조직화(self organized) 에이전트들의 분산화된 집단적 행동을 결정하고, 지역적으로 결정된 집단적 행동은 환경과 상호 작용하는 글로벌 지능적 행동으로 이어질 수 있다. 군집 알고리즘들(703)은 개미들, 새들, 벌들 및 물고기들의 행동을 기초로 하는 생물학적 알고리즘에 기반할 수 있다. 이러한 행동들은 개미 군락 최적화(Ant Colony Optimization, ACO, 704), 입자 군집 최적화(Particle Swarm Optimization, PSO, 706) 및 인공 벌 군락(Artificial Bee Colony, 707)와 같이 실생활 문제를 해결하는데 적용될 수 있다.
개미 군락 최적화(Ant Colony Optimization, ACO)는 스티머지(stigmergy)로 불리는, 개미들 사이의 간접 통신 알고리즘을 사용할 수 있다. 'stigmergy'는 환경을 통한 상호 작용이 조합(이산적인) 최적화 문제를 해결하는데 사용되었고, 이후, 'stigmergy'는 연속적인 문제에 적응되기 위해 수정되었다. ACO 알고리즘은 유한 시간 내 글로벌 최적화(global optimization)를 찾을 수 있지만, 그 정확한 시간을 결정하기 어렵다. 개미 군락 최적화 솔루션 공간은 가중 그래프로 표시될 수 있다. 개미 군락 최적화의 목적은 건설 그래프에서 최적 경로를 검색하는 것이다. ACO의 솔루션 공간은 컨스트럭션 그래프(construction graph)라고 하는 일반적으로 가중치 그래프로 나타나지만, ACO의 목적은 일반적으로 컨스트럭션 그래프에서 최적 경로를 검색하는 것이다.
개미 군락 최적화(ACO)의 장점은 조기 수렴(premature convergence) 및 자연 적응(adaptive in nature)을 피하고, 동적 애플리케이션에 적합한 좋은 솔루션 검색을 유도하는 긍정적인 피드백을 제공하는 분산 컴퓨팅을 가지는, 견고성(robustness)이다. 개미 군락 최적화(ACO)의 단점은 수렴(convergence)은 보장되지만, 수렴 시간이 불확실하고, 지역 최적 솔루션(local optima solution)에서 실패하는 경향을 포함할 수 있다.
일 실시 예에 의하면, 개미 군락 최적화(ACO)는 AntNet, Multiple Trip Rounding, Elitist ant system, max-min ant system(MMAS), eigen Ant 및 rank-based ant system (ASrank), continous orthogonal ant colony(COAC) 및 recursive ant colony 최적화 알고리즘을 포함할 수 있다. 개미 군락 최저화 알고리즘(ACO)은 Sequential Ordering, 스케쥴링(scheduling), 차량 라우팅(Vehicle routing), 조립 라인 밸런싱(assembly line balancing), 외판원 문제(probabilistic traveling salesman problem, TSP), DNA sequencing, 2D-HP 단백질 폴딩 및 단백질 리간드 도킹(protein-ligang docking)에 사용될 수 있다.
입자 군집 최적화(particle swarm optimization, PSO, 706)에서, 입자들 사이의 통신은 환경을 변경하지 않고 직접적이고, 연속적인 문제를 해결하는데 사용되지만, 이후에 이진/이산 최적화 문제를 채택하기 위해 수정될 수 있다.
PSO(706)는 다목적 동적 최적화, 제약 조건 처리 분야의 클러스터링 알고리즘으로, 덜 적응적(less adaptive)이고, 확장성이 뛰어나며, 부분 최적화 문제, 속도 및 방향의 더 적은 규칙(regulation)을 야기하는 ABC 방법 보다 더 많은 스텝들을 필요로 할 수 있다. PSO(706)의 솔루션 공간은 일반적으로 다른 방법과 비교하여 계산이 적기 때문에, 솔루션을 찾기 쉬운 직교 좌표계에서 최적 점의 위치를 찾기 위한 목적으로, N차원 포인트의 집합(set)으로 표현될 수 있다.
함수를 최소화 및 최대화 하기 위한 피트니스 함수(fitness function) 선택이 있을 수 있다. 최적 수렴을 달성하는 것은 관성 비중(inertia weight)에 의해 강하게 영향 받고, 알고리즘이 수렴할 때, 파라미터들의 고정된 값들은 불필요한 입자들의 변동(fluctuation)을 야기할 수 있다.
일 실시 예에 의하면, PSO(706)는 표준 입자 최적화기(standard particle swarm optimizer, PSO), 결합된 입자 군집 최적화(combined particle swarm optimization, CPSO), 수정된 입자 군집 최적화기(modified particle swarm optimizer, MPSO), particle swarm without velocity(PSWV)를 포함할 수 있고, 이들은 동적 시스템 추적(track dynamic system)에 사용될 수 있으며, NN weights를 진화시키며, 휴먼 떨림(human tremor)를 분석하고, 3D 생의학 이미지에 3D 를 등록하며, 무효 전력 및 전압을 제어하고, 게임을 운영할 수 있다.
인공 벌 군락(Artificial Bee Colony, ABC, 707)에서 벌들 사이의 통신은 댄싱 영역 내 먹이 소스들의 품질과 관련될 수 있다. 이러한 벌들의 춤을 와글 댄스(Waggle Dance)라고 한다. 인공 벌 군락(ABC)은 이산(수정) 및 연속 최적화 문제에 모두 사용되는 상대적으로 글로벌 최적화를 위한 새로운 확률 알고리즘이다. 인공 벌 군락(ABC)은 GAP(Generalized Assignment Problem)을 기초로 할 수 있다.
GAP(Generalized Assignment Problem)은 최소한의 비용으로 에이전트들의 집합(set)에 일련의 작업을 할당하는 것을 목표로 한다. 각 에이전트는 제한된 용량을 가지는 단일 리소스를 나타내고, 각 작업(task)은 에이전트의 일정량의 리소스가 필요하기 때문에 오직 하나의 에이전트에 할당될 수 있다. ABC는 적응성은 낮지만, 확장성이 뛰어나고, 모든 음식을 수집하는데, 3배 더 적은 반복을 요구한다. ABC는 조합(예컨대, Minimun Spanning Tree 내, 유한 집합와 같은 최적 객체 찾기) 및 모든 입력에 대해 단일 출력(total 함수의 단일 출력)이 예상되는 기능 모두에 적용할 수 있지만, 출력은 그 보다 복잡할 수 있다. 즉, '예' 또는 '아니오'와 같은 최적화 문제는 아니다.
개미 군락 최적화(ABC) 알고리즘은 Fuzzy 또는 Enhanced Bee Algorithm(707)(EBA)과 같이 복수의 목적을 가지는 문제를 최적화 하는데 사용될 수 있다. 일 실시 예에 의하면, ABC는 또한, Grouped BA(GBA), Hybrid Modified BA(MBA), cooperative ABC(CABC) 및 Vector Evaluated Artificial Bee Colony(VEABC) 알고리즘을 포함할 수 있다.
전술한 알고리즘(에컨대 ACO, SPO 및 ABC)들은, 각각 5~6개의 변이(variation)들을 포함하고, 필요에 따라 변형될 수 있다. 전술한 알고리즘들 외에도, IWD (Intelligent Water Drop), FA(Firefly Algorithm), BA(Bat Algorithm), BF (Bacterial Foraging) 및 Bif (Alternatives) 알고리즘들을 더 포함할 수 있다. 이 있습니다. 일부 알고리즘은 빠르게 수렴하지만, 문제에 따라 더 많은 리소스들을 사용할 수 있다.
일 실시 예에 의하면, 군집은 다양한 기능을 가질 수 있다. 즉, 군집 역량(capabilities) 유닛(708)은 멀티 시스템들 및 알고리즘들을 통하여 획득될 수 있는 다양한 기능들을 제공할 수 있다. 군집 역량(capabilities) 유닛(708)은 모든 가능한 솔루션들 중에서 최상의 비용 또는 최소 비용 솔루션을 찾기 위한 군집 최적화(swarm optimization, 710) 유닛, 스케쥴링 로드 밸런서(Scheduling Load Balancer, 709), 클러스터링 모듈(711) 및 라우팅 모듈(712)을 포함할 수 있다.
또한, 클러스터링 모듈은 다른 클러스터와 비교하여, 유사하거나 유사하지 않은 종류의 에이전트들의 집합을 수집할 수 있다. 라우팅 모듈 (712)은 역방향 노드가 소스로부터 목적지까지의 경로에서, 순방향 노드들에 의해 수집된 유용한 정보들을 이용하도록 군집 내 데이터의 송수신을 제어할 수 있다. 또한, 스케쥴링 로드 밸런서 (709)는 스케줄에서 앞서거나 뒤따르는 작업의 상대적 위치 및 합산 평가 규칙(summation evaluation rule) 및 글로벌 페로몬 평가 규칙(global pheromone evaluation rule)에 기초하여 군집 내 디바이스들의 행동을 제어할 수 있다.
일 실시 예에 의하면, 군집 규칙&행동(713) 유닛은 다양한 유형을 가지는 군집 규칙들이 정의되는 규칙 유닛(606)을 포함할 수 있다. 규칙 유닛(606)에 의해 생성되는 군집의 규칙들은 데이터 검증을 위한 검증 규칙들, 일관성 확인을 위한 규칙들 및 입력데이터에 기초하는 컴퓨팅 값들(VALUES)을 위한 계산 규칙, 비즈니스 프로세스 경로 선택을 위한 결정 규칙을 포함할 수 있다. 환경 인식 유닛(716)은 노드가 환경과 얼마나 잘 상호 작용하는지 인식하고, 환경 내 변화, 행동의 변화, 노드들의 성질 및 규칙에 기초한 결정이 차례로 군집의 행동 변화를 야기하도록 할 수 있다.
행동 엔진 유닛(715) 및 지식 엔진 유닛(717)은, 군집의 모든 행동 및 군집의 지식이 어떻게 관리 될 수 있는지를 모델링할 수 있다. 행동 엔진 유닛(715) 및 지식 엔진 유닛(717)은 최소한의 지역적 상호작용(local interation)을 통해 글로벌(global)하게는 지능적 행동으로 보이는 군집의 행동 및 지식을 모델링할 수 있다.
일 실시 예에 의하면, 군집 지능 프레임 워크(Swarm (702)(SIS)는 동종 및/또는 이종 노드를 지원하는 노드들 간의 통신 및 계산을 위한 다양한 프로토콜 및 유틸리티들을 제공할 수 있다. 즉, 군집 지능 프레임 워크(702)는 동종 및/또는 이종 노드들을 지원할 수 있다.
일 실시 예에 의하면, 군집 지능 시뮬레이터(701)(SIS)는 서로 다른 알고리즘 집합(set)을 사용하여 다양한 동작들을 시뮬레이팅(simulating)하고, 다양한 사용 예들과 결합하여 원하는 솔루션의 동작을 시뮬레이팅(simulating)하며, 다양한 시나리오들을 테스트할 수 있다. 즉, 군집 지능 시뮬레이터는 요구되는 솔루션의 동작을 시뮬레이션 및 미세 조정하고, 다양한 시나리오를 테스트 하기 위한 쉬운 수단일 수 있다.
일 실시 예에 의하면, 본원 군집 기반 시스템은 군집 지능 프레임 워크 및 군집 지능 시뮬레이터 중 적어도 하나를 포함할 수 있지만, 필요한 경우, 군집 지능 프레임 워크 및 군집 지능 시뮬레이터는 군집 기반 시스템에 포함되지 않을 수 있다. IoTivity/Middleware 유닛(719)은 IOT 디바이스들과 통신하고, IOT 레벨에서 군집 지능을 나타내기 위한 알고리즘을 포함할 수 있다. OS 유닛(720)은 복수의 디바이스들을 포함하는 군집을 운용하기 위해 필요한 운영시스템 내지 애플리케이션에 관한 알고리즘을 포함할 수 있다.
도 7b는 일 실시 예에 따른 블록 체인 내의 복수의 레이어들을 나타내는 도면이다.
일 실시 예에 의하면, 블록 체인(602) 유닛은 적응 규칙 유닛(609), 합의 관리 유닛 (610), 분산 원장 유닛 (611) 및 원장 저장 유닛(612)를 포함할 수 있다. 그러나 이에 한정되는 것은 아니고, 일 실시 예에 의하면, 블록 체인(602)유닛은 P2P 프로토콜, 규칙들 및 기타 서비스 구성 요소들을 포함할 수 있다. 일 실시 예에 의하면, P2P 규약은 분산 환경에서 노드들/블록들 간의 피어 투 피어(peer to peer) 연결을 위해 사용될 수 있고, 원장 저장 유닛(612)는 트랜잭션(transaction)들이 저장된 원장들을 저장하고, 거래들(예컨대 트랜잭션들)이 저장되는 방식 및 원장들이 발생되는 방식을 저장할 수 있다.
분산 원장(distributed ledger, 611)은 노드들 사이의 트랜젝션, 블록의 저장 방식 및 메커니즘들을 정의할 수 있다. 적응 규칙 유닛(609)은 규칙 유닛(606)에서 생성된 블록 체인(602)의 규칙들을 적응시킬 수 있다. 본 개시의 일 실시 예에 따른 적응 규칙 유닛 (609)이 규칙들을 적응시키는 과정은 규칙의 변경, 수정 및 갱신을 포함할 수 있다. 본 개시의 일 실시 예에 따르면, 본원 군집 기반 시스템은 규칙 유닛(606)에 의해 생성된 규칙들(rules)을 군집의 활동에 대해 수신되는 피드백에 기초하여, 갱신, 수정 및 변경함으로써, 더 적응적(adaptive)으로 만들고, 더 적응적으로 생성된 규칙들에 기초하여 동작함으로써, 전체 블록 체인 개념을 유지하면서 동시에 규칙들을 다른 사용 예들로 확장할 수 있다.
일반적으로, 블록 체인은 암시된 합의 규칙(implied consensus rules), 정의된 합의 규칙(defined consensus rule) 및 런타임 합의 규칙(run time consensus rule)을 따를 수 있다. 본 개시의 일 실시 예에 따르면, 본 개시는 런타임 규칙들(run-time rules)을 더 적응적(adaptive)으로 만들면서 동시에 블록 체인의 무결성을 유지하기 위한 기술에 관한 것이다. 본 개시에 따른 런타임 규칙들은 블록 체인에 관한 규칙으로서, 군집의 형성에 관한 규칙, 블록을 생성하기 위한 리더 선출 규칙, 생성한 블록 검증을 위한 검증 규칙, 서로 다른 트랜젝션들의 내용이 충돌되는 경우 통일하기 위한 탈 중앙화 합의 규칙을 포함할 수 있다.
군집 기반 시스템은 정의된 간단한 규칙(simple rule)에 따라, 적응적이고, 견고하며, 확장성이 뛰어나고, 분산화 되어 있고, 자기 조직적인 특성을 나타낼 수 있다. 본 개시에 따른 "런타임 규칙"은 블록 체인의 무결성을 유지하는데 더 적응적이도록 만들어지기 위해 기존의 군집의 상태, 군집의 행동, 군집의 성질 및 특성에 기초하고, 군집 활등 결과의 피드백을 기초로 생성, 변경 및 갱신될 수 있다.
블록 체인(602)는 분산화된(distributed) 분산 디지털 원장을 가지고, 분산 디지털 원장(611)은 트래젝션들(transaction, 603)을 기록하는데 사용될 수 있다. 원장에 기록된 거래(603)들은 모든 후속 블록들의 변경 없이는 소급적으로 변경될 수 없으므로, 거래들의 변화에 대한 무결성에 기초하여, 어떠한 데이터의 변경도 검출될 수 있다.
일반적인 블록 체인 기술과는 달리, 본 개시에 따른 거래들(transaction)는 두 객체뿐만 아니라, 두 집단 사이에서 수행될 수 있고, 두 집단 사이의 관계는 더 확장될 수 있다. 예를 들어, 하나의 IOT(동종 및/또는 이종) 디바이스는 다수의 IOT(동종 및/또는 이종) 디바이스들과 IOT 디바이스의 밸류들(values, 예컨대 디바이스들의 성질, 특성, 현재 상태에 관한 데이터)을 공유할 수 있고, 이러한 공유된 값들을 이용하여 블록 체인이 생성될 수 있다. 이러한 값들(values)은 원 값(raw values)(예컨대, ACs의 온도들) 또는 값들의 함수(function of values)(예컨대 엔트로피)일 수 있다.
이상 탐지는 블록 체인의 특징 및 군집의 집단 행동을 이용하여 수행될 수 있다. 군집은 특정 알고리즘 및/또는 통계학적 방법을 사용하여 군집 내 이상을 검출할 수 있고, 군집의 행동은 이상을 검출하기 위한 블록 체인 내 규칙들을 설정하는데 사용될 수 있다. 이상 검출 방법은 현재 군집의 행동에 기초하여 유도될 수 있고, 블록 체인은 군집의 진화에 기초하여, 이러한 규칙들이 갱신될 때, 스스로 진화할 수 있다.
도 7b를 참조하면, 두 집단 사이의 트랜젝션들을 관리하는 일반적인 블록 체인 기술과는 달리, 군집의 '지능'을 생성할 수 있는 블록 체인 시스템의 블록이 도시된다.
군집 내 디바이스들의 값들(values)은 원 데이터(raw data)(예컨대, ACs의 온도들) 또는 원 데이터의 함수(function of raw data)(예컨대 엔트로피)에 기초할 수 있다. 따라서, 블록체인의 불변 속성(예컨대 tamper-proof)을 이용하여 군집 내 이상(tamper, anomaly)을 검출할 수 있다. 군집의 행동, 특성, 성질 및 현재 상태는 이상 검출을 위한 블록 내 규칙들을 설정하는데 사용될 수 있다. 본 개시에 따른 군집 기반 시스템은 전자 서명 및 해시 함수를 통한 비대칭 암호화 기법을 이용하여, 각 블록의 트랜젝션들을 디지털 방식으로 서명하여 트랜젝션의 변화를 검출할 수 있고, 검출된 트랜젝션의 변화는 블록 체인 내 블록의 검증 규칙에 사용될 수 있다.
일 실시 예에 따른 이상 검출 방법은 블록 체인의 현재 규칙이 군집의 진화(evolution)에 기초하여 블록 체인(602)내에서 갱신될 때, 블록 체인 그 자체의 진화(evolution)에 의해, 군집의 현재 행동에 대하여 정의될 수 있다.
블록 체인은 응용 계층(application layer, 731), 인센티브 계층(incentive layer, 736), 합의 계층(consensus layer, 739), 네트워크 계층(network layer, 747) 및 데이터 계층(data layer, 751)을 포함할 수 있다. 일 실시 예에 의하면, 응용 계층(731)은 블록 체인(602)의 최상위층에서 응용 프로그램을 위한 인터페이스를 제공할 수 있다. 또한, 인센티브 계층(736)은 블록 체인의 참가자 및 유닛들에게 보상을 제공할 수 있다. 또한, 합의 계층(739)은 전역적으로 수용될 수 있는 처리를 위한 트랜잭션들(예컨대 거래들)의 집합을 지정하고, 이러한 거래들의 처리 방식 및 토탈(total) 또는 부분적 순서를 지정할 수 있다. 또한, 네트워크 계층(747)은 노드들 간의 거래들(예컨대 트랜젝션들)을 전파 또는 브로드캐스트 할 수 있다. 최근, 노드들 사이에서 거래들을 전파함에 있어, 네트워크 대역폭을 최대한도로 이용하기 위한 기술 개발이 요구되고 있고, 데이터 계층(751)은 블록 체인 데이터 구조 및 물리적 저장소를 포함할 수 있다.
일 실시 예에 따른 애플리케이션 레이어(731)는 스마트 컨트랙트(732), 하이퍼 레저(733), 가상 머신(734) 및 탈 중앙화 애플리케이션(735)을 포함할 수 있다. 예를 들어, 스마트 컨트랙트(732)는 상거래 프로토콜에 기초하여, 제삼자의 개입 없이 두 주체 사이의 트랜젝션을 수행하기 위한 규약을 제공할 수 있다. 하이퍼 레저(733)는 모든 노드들에 트랜젝션들이 공개되는 퍼블릭 블록 체인 시스템과는 달리, 인증 받은 노드들로만 구성된 블록 체인을 위한 규약을 제공할 수 있다. 가상 머신(734)블록은 애플리케이션을 가상(virtual) 환경에서 수행하기 위해 필요한 머신에 관한 알고리즘을 제공할 수 있다. 탈 중앙화 애플리케이션(735)는 전술한 탈 중앙화 합의를 설정하기 위한 애플리케이션을 제공할 수 있다.
일 실시 예에 따른 인센티브 레이어(incentive layer, 736)는 보상 분배 유닛 (reward distribution, 737) 및 거래 수수료 유닛 (transaction fee, 735)을 포함할 수 있다. 일 실시 예에 따른, 보상 분배 유닛(737)은 블록을 생성한 노드(예컨대 군집 내에서 해시퍼즐의 정답을 찾아 리더로 선출된 노드)에게 블록을 생성한 대가로 보상금을 지급할 수 있다. 거래 수수료 유닛(738)은 각 노드의 대기열에 저장된 트랜젝션 처리 순서와 관련된 거래 수수료를 지정할 수 있다.
일 실시 예에 의하면, 합의 계층(739)은 블록 체인의 동작에 관한 규칙들을 제공하기 위한 복수의 알고리즘을 포함할 수 있다. 예를 들어, 합의 계층(739)는 작업 증명/지분 증명(740), 비잔틴 장군 허용(BFT, 741), 텐더민트 합의(Tendermint Consensus, 742), 적응 규칙 유닛(609), 메타 규약(743), Merge Mine(744), DPoS(745) 및 스케쥴링 합의(746)에 대한 규칙들을 제공할 수 있다. 작업 증명 또는 지분 증명(740) 알고리즘은 블록 체인을 공유하는 노드들 중, 새로운 블록을 생성하기 위한 리더를 선출하기 위한 알고리즘을 제공할 수 있다. Proof of Work(740) (작업 증명, PoW) 알고리즘은 비트코인에 사용되는 알고리즘으로, 특정 규칙에 따라 노드들에 컴퓨팅 업무를 요구함으로써(예컨대 해시 퍼즐), 컴퓨팅 업무를 요구하는 공격자의 공격을 경제적으로 비 실용적으로 만들며, 결과적으로, 블록 체인의 무결성을 보호할 수 있다. 작업 증명(POW알고리즘)은 수학적 규칙이 정확하게 정의되고, 특정 규칙에 따라 많은 에너지와 컴퓨팅 성능을 요구함으로써, 가장 신뢰할 수 있는 알고리즘이다. 따라서, 공격자는 비현실적으로 간주되는 네트워크를 방해할 수 있는 권한을 필요로 할 수 있다.
Proof of Stake(740) (지분 증명, PoS) 는 consensus 알고리즘의 유형으로, POS에서 코인의 생성(예컨대 채굴, mining)이 존재하지 않기 때문에, 블록을 채굴하기 위한 경쟁에서 비싼 컴퓨터 장비에 투자하는 대신, PoS 유형의 알고리즘에서 '검증기'는 시스템의 코인에 투자할 필요가 있다. 대신, 모든 코인은, 첫날부터 존재하고, 검증자들은(예컨대, stakeholders, 시스템 내 stake를 홀딩하기 때문) 엄격하게 거래 수수료를 지불 해야 한다. 또한, 지분 증명(PoS)d을 사용할 경우, 블록을 생성하기 위한 리더 선출을 위해 해시 퍼즐을 해결하는 등의 소모적인 작업은 요하지 않고, 다만, 보유한 암호 화폐의 수량에 따라 리더가 선출된다. 따라서, 더 많은 암호 화폐를 축적할 수록, 해당 노드는 더 많은 블록을 생성할 수 있다. 지분 증명은 다양한 형태의 알고리즘과 같이 사용되고, 체인 기반 지분 증명 및 BFT(Byzantine Fault Tolerance) 기반의 지분 증명 알고리즘을 포함할 수 있다.
Byzantine Fault Tolerance(비잔틴 장애 허용, 741), or Practical Byzantine Fault Tolerance (실용적 비잔틴 장애 허용, PBFT)는 분산 시스템에서 합의에 사용되는 합의 알고리즘이고, 블록 체인 내 경제적인(economic) 합의를 위한 요구를 실질적으로 충족시키지는 않는다. PBFT는 요구되는 통신(required communication) 때문에, 복수의 노드들을 포함하는 네트워크들에서 실행 불가능해지기 때문에, PBFT를 사용하는 블록체인 기술들은 CONSENSUS LAYER(739)내의 합의(예컨대, Ripple의 각 참가자들의 unique node list)를 설정하기 위한 참가자들의 신뢰할 수 있는 서브 네트워크에만 의존할 수 있다. 즉, 비잔틴 장애 허용 또는 실용적 비잔틴 장애 허용 알고리즘을 이용하여 네트워크 내에 악의적인 노드 또는 손상된 노드가 있더라도 신뢰할 수 있는 군집 기반 시스템을 제공할 수 있다.
텐더민트 합의(Tendermint Consensus, 742)는 기존 솔루션을 Byzantine General Problem에 적용함으로써 마이닝(채굴)을 요구하지 않고, 대신 Proof of Stake(740)의 "nothing at stake" 문제를 해결할 수 있다. Tendermint-Core는 보안이 보장되는 Byzantine fault(741) tolerant applications을 실행할 수 있는 고성능 블록체인 합의 엔진일 수 있다.
Delegated Proof of Stake(745) (DPoS)는 개인이 시스템에서 Stake의 일부를 나타낼 수 있는 가장 중요한 입력(entity)를 선택한다는 것을 제외하고는, POS(740)시스템과 동일한 라인에서 동작할 수 있다. 이를 통해, 더 작은 stake들을 가진 개인들이 팀을 구성하고, 자신의 표상(representation)을 확대할 수 있으므로, 큰 stake 소지자들의 힘과 균형을 이룰 수 있는 메커니즘을 생성할 수 있다. (예컨대, Bitshares)
마이닝(mining)의 Merge Mine(744) 컨셉은 추가적인 proof-of-work(740) 노력을 필요로 하지 않고, 하나 이상의 암호 화폐를 채굴하기 위한 프로세스를 의미할 수 있다. MOP(Meta-Object Protocol)는 객체 시스템의 구조와 행동을 조작하거나 액세스 하기 위해 어휘(vocabulary) 규약을 제공할 수 있다.
적응 규칙 유닛(adaptive rule unit, 609)은 암시된(implied) 규칙, 정의된(defined) 규칙 또는 런타임 규칙과 같은 다양한 유형을 규칙을 제공할 수 있다. 이러한 런타임 규칙들은 본질적으로 고정되어 있으나, 본 개시의 일 실시 예에 따르면, 적응 규칙 유닛(609)는 규칙 유닛에 의해 생성된 규칙들을 군집의 특성, 성질, 현재 상태 및 행동의 변화에 기초하여 적응적으로 변화시킬 수 있다. 즉, 적응 규칙 유닛(609)는 전술한 규칙들을 군집의 상태, 성질, 행동 및 특성에 기초하여 변경시킬 수 있다. 따라서, 군집의 규칙들은 군집의 상태, 성질 및 행동에 기초하여 변경될 수 있기 때문에 블록 체인(602) 내 합의(consensus) 규칙들은 동적으로(dynamic) 적응(adaptive)되거나 진화할 수 있다. 이렇게 적응된 런타임 규칙들은 블록 체인의 불변 속성과 결합하여 군집 내 이상 및 위협 검출에 사용될 수 있다.
Data Availability Schelling Consensus(746)는 사용자가 특정 사실이 참(1)인지 거짓(0)인지 여부에 투표하는 곳에서 사용될 수 있다. 이러한 합의에서, Schelling Consensus의 Round N을 사용하여 "다수가 맞다는 원칙(Majority is right)"에 따라 보상을 받는 사람을 결정하는 대신, 라운드 N동안 정확하게 투표를 한 사람이 보상 받아야 한다는 default equilibrium에 따라, 라운드 N+1이 누가 보상을 받아야 하는지를 결정하는데 사용될 수 있다. 위임 지분 증명(DPoS, 745)는 네트워크 상에서 생성된 블록들의 검증 노드의 수를 제한하여 확장성을 더 제공하는 지분 증명의 변형 합의 알고리즘을 제공할 수 있다.
네트워크 계층(747)은 노드들 사이의 트랜젝션들을 관리할 수 있다. 예를 들어, 네트워크 계층(747)은 노드들 사이의 트랜젝션들을 네트워크 적어도 하나의 노드들에 브로드캐스팅할 수 있다. 네트워크 계층에서는 기본 네트워크 대역폭을 최대한 활용하기 위한 기술 개발이 요구되고 있다. 네트워크 계층(747)은 분산 환경에서 노드들/블록들 사이의 피어 투 피어 연결을 설정하기 위한 P2P 브로드 캐스팅 유닛(748), 릴레이 네트워크(relay network, 749) 및 로컬 검증(local validation, 750)을 포함할 수 있다.
P2P 브로드 캐스팅 유닛(748)은 노드들 사이의 트랜젝션들의 브로드캐스팅을 관리할 수 있다. 일 실시 예에 의하면, P2P 브로드 캐스팅 유닛(748)은 트랜젝션이 발생한 노드들에 인접한 무작위로 선택된 노드들에 트랜젝션을 브로드캐스팅하고, 브로드캐스팅된 트랜젝션을 수신한 노드가, 자신의 인접한 무작위로 선택된 노드들에 수신된 트랜젝션을 다시 브로드캐스팅하는 방식으로 트랜젝션을 전달하는 방식의 브로드캐스팅 알고리즘을 제공할 수 있다. 릴레이 네트워크(749)는 트랜젝션의 시작 및 목적지의 대상이 되는 노드 사이에 트랜젝션의 브로드캐스팅을 위한 전달 알고리즘을 제공할 수 있다. 로컬 검증(750)은 트랜젝션이 기록된 블록을 수신한 노드가 수신된 블록을 검증하기 위한 알고리즘을 제공할 수 있다.
데이터 계층(751)은 블록 체인 데이터 구조 및 물리적 저장 장치를 위한 계층으로, 분산 해시 테이블(distributed hash table, 752), 체인 구조(chain structure, 753), 머클 트리 (merkle tree, 754), 디지털 서명 (digital signature, 755), 해시 함수 (hash function, 756), 데이터 블록(757), 미사용 출력 (UxTo, 758) 및 암호화 규약(cryptographic protocol, 759)를 포함할 수 있다.
분산 해시 테이블(752)은 트랜젝션들을 해시 하기 위한 해시 함수들이 저장된 테이블을 제공할 수 있다. 해시 테이블은 트랜젝션들을 해시한 값을 포함하고, 블록 체인 시스템 내 노드들로 하여금 트랜젝션들의 변화를 검출하도록 할 수 있다.
체인 구조(753)는 제네시스 블록(예컨대 최초 생성된 블록) 이후에 생성된 블록들의 연결 방식을 제공할 수 있다. 즉, 체인 구조(753)는 블록들의 연결 방식을 정의함으로써 전체 블록 체인의 구조를 정의할 수 있다.
머클 트리(754)는 이진 트리 형식의 데이터 구조로써, 노드의 모든 트랜젝션에 대한 단일 해시 값을 도출하기 위한 알고리즘을 제공할 수 있다. 본 개시에 따른 군집 기반 시스템은 모든 트랜젝션 정보를 머클 트리 구조를 사용하여 하나의 해시 값으로 압축함으로써, 단일 트랜젝션의 변화를 하나의 해시 값에 기초하여서도 검출할 수 있다.
디지털 서명(755)은 모든 트랜젝션을 해시한 해시값을 암호화하기 위한 알고리즘을 제공할 수 있다. 일 실시 예에 의하면, 군집 기반 시스템은 비대칭 암호화 기법을 사용하여 모든 트랜젝션들의 해시 값을 암호화할 수 있다. 트랜젝션을 송신하는 노드는 전자 서명과 함께 전자 서명을 암호화하는데 사용된 프라이빗 키와 대칭을 이루는 공개키를 수신 노드측에 함께 제공함으로써, 수신 노드가 수신한 전자 서명을 복호화함으로써 생성한 해시 값을 기초로, 트랜젝션의 변화 여부를 검증하도록 할 수 있다.
해시 함수(756)는 트랜젝션들의 변화 상태를 체크하는데 사용하기 위한 함수로, 입력 값에 상관없이 고정 길이의 해시 값을 출력할 수 있다. 본 개시의 일 실시 예에 따른 군집 기반 시스템은 해시 함수를 연속 두번 이용하여 트랜젝션들을 해시할 수 있으나, 이에 한정되는 것은 아니다. 데이터 블록(757)은 생성된 블록의 구조, 블록 내 요소들의 크기 등에 관한 정보를 제공할 수 있다.
암호화 규약(759)는 군집 기반 시스템이 이용하는 블록 체인 내 트랜젝션들의 암호화 방법을 제공할 수 있다. 일 실시 예에 의하면 암호화 규약(759)는 프라이빗 키와 공개키를 이용하는 비대칭 암호화 기법을 제공할 수 있다.
미사용 출력 (UxTo, 758)은 암호 화폐를 수령한 후 아직 사용하지 않은 상태로 블록에 남아 있는 항목들을 나타내기 위한 알고리즘을 제공할 수 있다.
도 7c는 일 실시 예에 따른 블록 체인 내의 트랜젝션의 처리 과정을 설명하기 위한 도면이다.
일 실시 예에 의하면, 일련의 간단한 규칙 집합, 군집 상태, 특성(attribute) 및 성질(property)에 기초하는, 군집의 생성, 형성 및 진화는 바람직한 군집의 행동을 도출하기 위해, 규칙들을 적응적으로 만드는데 사용될 수 있다. 블록체인(602)의 런타임 규칙들은 군집의 규칙들이 변함에 따라 수정되고, raw values 또는 raw values의 함수의 변화는 블록 체인(602)의 트랜젝션으로써 블록에 기록될 수 있다. 군집 내 디바이스들의 raw value는 디바이스들의 특성, 성질, 현재 상태에 관한 데이터를 포함하고, 군집 내 디바이스들의 raw value는 미리 정의된 이벤트(예컨대 디바이스들의 특성, 성질, 현재 상태의 변화)에 따라 트랜젝션으로써 노드사이에 공유될 수 있다.
일 실시 예에 따른 군집 내 노드들이 공유하는 블록은 블록 헤더(762), 타임 스탬프(763), 이전 블록 해시값(764), 트랜젝션 트리 루트(765), 블록 난스(766), 블록의 버전 정보를 포함할 수 있다. 예를 들어 블록의 버전 정보는 블록이 생성될 당시 시스템에 대한 정보를 포함하고, 이전 블록의 해시 값은 이전 블록을 특정하는 고유의 해시 값을 포함할 수 있다. 또한, 트랜젝션 트리 루트(765)는 각 트랜젝션들의 해시 값이 기록된 해시 트리에서 해시 값의 경로에 대한 정보를 포함하고, 블록 난스(766)는 해시 퍼즐의 정답으로써 작업 증명에서 리더 선출의 기준이 될 수 있다.
트랜젝션 트리 루트(765)에 기초하여, 블록 체인 내의 트랜젝션들의 해시 값은 트리 구조로써 하나의 해시 값으로 압축될 수 있다. 예를 들어, 본 개새의 일 실시 예에 따른 군집 기반 시스템은 최하위 레벨의 트랜젝션들 Tx5m 및 Tx6 (767, 768)을 입력으로 하는 해시 함수를 이용하여 해시 값 #56을 획득할 수 있고, 최하위 레벨의 다른 트랜젝션들 Tx3 및 Tx2을 입력으로 하는 해시 함수를 이용하여 해시 값 #32를 획득할 수 있다. 일 실시 예에 따른 군집 기반 시스템은 획득된 해시 값 #56 및 #32를 다시 해시 함수에 입력시켜, 최종적으로는 하나의 해시 값을 획득할 수 있으며, 이러한 과정에서 획득된 해시 값들의 경로를 트랜젝션 트리 루트로써 메모리에 포함할 수 있다.
일 실시 예에 따른 블록 체인(602)을 이용한 군집 기반 시스템은 적응적인(adaptive) 런타임 규칙들을 이용하여 트랜젝션들 및 트랜젝션들이 기록된 블록을 검증할 수 있다. 블록 체인 내 모든 트랜젝션들의 해시 값은 해시 트리(예컨대 머클 트리, 754) 형식으로 블록 헤더에 기록될 수 있고, 해당 해시 값이 기록된 블록을 수신한 노드들은 해시 트리 형식의 해시 값을 자신이 수신한 트랜젝션들에 기초하여 생성된 해시 값과 비교함으로써 트랜젝션의 변화여부를 검출할 수 있다.
본 개시의 일 실시 예에 따른 군집의 현재 상태, 특성, 성질 및 파라미터들은 동적 규칙(예컨대 변경, 갱신 및 수정된 블록 체인의 규칙등)을 정의하는데 사용되고, 블록체인의 규칙들을 더 적응적으로 만드는데 사용될 수 있다. 또한, 블록 체인의 규칙들(갱신되거나, 수정된 규칙들) 및 군집의 특성 내지 성질등과 결합된 블록체인(602)의 불변 특성은, 군집 내 이상을 검출하는데 사용될 수 있다. 일 실시 예에 의하면, 블록 체인의 동적 규칙은 군집 내 변화에 기초하여, 변경된 블록 체인의 규칙, 수정된 블록 체인의 규칙, 갱신된 블록 체인의 규칙 중 적어도 하나를 포함할 수 있다.
일 실시 예에 의하면, 군집 기반 블록 체인(602)의 규칙 유닛(606)은 적응적으로 생성되고, 규칙들은 수신된 피드백(예컨대, 군집의 특성, 성질, 행동 및 상태의 변화)에 기초하여 갱신될 수 있다. 피드백은 피드백 관리부(614)에 의해 제공될 수 있다. 수신된 피드백 및 동적 규칙들에 기초하여, 군집은 동작할 수 있다.
합의 계층(739)에 대한 특징은 도 7b의 합의 계층(739)에 대응될 수 있으므로 구체적인 설명은 생략하기로 한다. 또한, 군집 지능 시스템에 대한 특징은 도 7a의 군집 지능 검출/형성 유닛(601) 및 군집 지능 시스템, 군집 내 노드들에 의한 합의에 관한 특징에 대응될 수 있으므로 구체적인 설명은 생략하기로 한다. 본 개시의 일 실시 예에 따른 블록 체인(602)은 미리 정의된, 암시된 런타임 규칙과 같은 다양한 유형의 규칙들을 가질 수 있다. 일 실시 예에 의하면, 런타임 합의 규칙들은 adaptive하게 생성되고, 군집의 집단 행동, 성질, 특성 및 상태에 기초하여 동적으로 변할 수 있다. 군집 규칙들이 변함에 따라, 블록 체인의 런타임 합의 규칙들은 동적으로 진화하거나 채택될 수 있다.
도 8은 일 실시 예에 따른 군집 제어 방법의 흐름도이다.
본 개시의 일 실시 예에 따른 군집 제어 장치는 블록 체인을 이용하여 군집을 제어하기 위한 장치로써 메모리, 통신 인터페이스 및 프로세서를 포함할 수 있다. 본 개시의 일 실시 예에 따른 군집 제어 장치는 군집 기반 시스템에 대응될 수 있고, 군집 제어 장치 내지 군집 기반 시스템은 하나의 군집 내에 포함되거나, 군집 내의 각 노드들에 포함될 수 있다.
S810에서, 일 실시 예에 의하면, 군집 제어 장치는 군집 내 포함된 적어도 하나의 노드들의 특성에 기초하여 군집에 관한 제1 규칙을 생성할 수 있다. 예를 들어, 군집 제어 장치가 생성하는 제1 규칙은 군집을 정의하기 위한 규칙, 블록 체인의 운영을 위한 런타임 합의 규칙, 트랜젝션들을 기록하여 블록을 선출할 리더 노드를 선출하기 위한 리더 선출 규칙, 서로 다르게 생성된 블록 체인들의 통일을 위한 탈중앙화 합의 규칙, 군집 내 디바이스들의 지역적 상호 작용을 정의하는 간단한 규칙(simple rule)에 관한 규칙들 중 적어도 하나를 포함할 수 있다.
예를 들어, 군집 제어 장치는 상기 적어도 하나의 노드들의 특성(attribute), 성질(property), 현재 상태(current state)에 관한 데이터 및 상기 특성, 성질 및 현재 상태에 관한 데이터를 입력으로 하는 커널(kernel) 함수에 기초하여 상기 제1 규칙을 생성할 수도 있다.
S820에서, 군집 제어 장치는 생성된 제1 규칙을 적어도 하나의 노드들에 공유시킬 수 있다. 예를 들어, 군집 제어 장치는 군집 내 적어도 하나의 노드들의 특성, 성질, 현재 상태의 변화에 기초하여 생성된 제1 규칙을 무작위로 선택된 노드들에 브로드캐스팅할 수 있고, 군집 내 모든 노드들은 생성된 제1 규칙을 공유할 수 있다.
S830에서, 군집 제어 장치는 공유된 제1 규칙에 기초하여, 적어도 하나의 노드들을 포함하는 군집을 형성할 수 있다. 예를 들어, 군집 제어 장치는 공유된 제1 규칙에 기초하여 동일한 특성을 공유하는 노드들 사이에 군집을 형성할 수 있다.
S840에서, 군집 제어 장치는 군집 내 적어도 하나의 노드들에 대한 변화를 검출할 수 있다. 군집 내 적어도 하나의 노드들에 변화는 군집 내 각 노드들의 성질, 특성 및 현재 상태의 변화에 기초하여 발생될 수 있고, 군집 내 새로운 디바이스들의 추가 및 탈퇴에 기초하여 현재 군집 내에 포함된 노드들의 변화가 야기될 수도 있다.
일 실시 예에 의하면, 군집 제어 장치는 상기 제1 규칙에 기초하여 상기 군집 내 적어도 하나의 노드들의 특성, 성질 및 현재 상태의 변화를 검출하고, 상기 군집 내 적어도 하나의 노드들의 특성, 성질 및 현재 상태의 변화에 기초하여 상기 군집의 변화를 검출할 수도 있다. S850에서, 군집 제어 장치는 검출된 변화에 기초하여 제1 규칙을 제2 규칙으로 변경할 수 있다. 일 실시 예에 의하면, 제1 규칙 및 제2 규칙은 상기 군집의 형성, 상기 블록을 생성하기 위한 노드의 선출, 상기 블록의 검증 및 상기 블록 체인의 합의 중 적어도 하나에 대한 규칙을 포함할 수 있다.
일 실시 예에 의하면, 군집 제어 장치는 생성된 제2 규칙을 적어도 하나의 노드들과 공유할 수 있고, 공유된 제2 규칙에 기초하여 군집 네 적어도 하나의 노드들의 변화를 더 검출할 수 있다. 또한, 일 실시 예에 의하면, 군집 제어 장치는 제2 규칙에 기초하여 검출된 변화에 기초하여 군집 내 제2 규칙에 대응되지 않는 동작을 나타내는 이상 노드를 검출할 수도 있다.
본 개시의 일 실시 예에 따른 군집은 동종(Homogeneous)노드 또는 이종(Heterogeneous)노드 중 적어도 하나를 포함하고, 상기 제1 규칙 및 상기 제2 규칙 중 적어도 하나에 기초하여 동작할 수 있다. 또한, 형성된 군집 내의 모든 노드들은 상기 제1 규칙, 상기 제2 규칙 및 상기 군집 내 모든 노드들의 동작 이력에 관한 트랜젝션들(transactions) 및 상기 트랜젝션들이 기록된 적어도 하나의 블록이 체인 형태로 연결한 블록 체인을 공유할 수 있다.
도 9는 일 실시 예에 따른 제1 규칙을 공유하는 동작을 세부적으로 설명하기 위한 도면이다.
S910에서, 군집 제어 장치는 생성된 제1 규칙을, 제1 규칙을 생성한 노드의 무작위로 선택된 피어(peer) 노드에 브로드캐스팅할 수 있다. 본 개시의 일 실시 예에 따르면, 피어 노드는 해당 노드에 인접한 노드들의 집합을 의미할 수 있다.
S920에서, 군집 제어 장치는 제1 규칙을 기록한 블록을 생성할 수 있다. 예를 들어, 군집 제어 장치는 생성된 제1 규칙이 군집 내 모든 노드들에 브로드캐스팅 되었는지 여부를 결정하고, 군집 내 모든 노드들에 제1 규칙이 전달되면, 제1 규칙에 기초하여 블록을 생성할 노드를 결정할 수 있다. 일 실시 예에 의하면, 군집 제어 장치는 작업 증명(POW)에 기초하여, 블록을 생성할 리더 노드를 선출할 수도 있지만, 이에 한정되는 것은 아니다. 군집 제어 장치는 리더로 선출된 노드가 자신에게 전달된 제1 규칙을 기록한 블록을 생성하도록 할 수 있다.
S930에서, 군집 제어 장치는 생성된 블록을 블록을 생성한 노드의 무작위로 선택된 피어 노드에 브로드캐스팅하도록 제어할 수 있다. S930에서, 새로 생성된 블록의 전달 방식은 S910의 제1 규칙의 전달 방식에 대응될 수 있다.
S940에서, 군집 제어 장치는 제1 규칙에 기초하여, 각 노드가 수신한 블록을 검증하도록 할 수 있다. 예를 들어, 군집 제어 장치는 군집 내 모든 노드가 새로 생성된 블록을 수신하면, 제1 규칙에 기초하여 군집 내 각 노드가 블록을 검증하도록 할 수 있다. 각 노드가 블록을 검증하는 과정은 수신한 블록의 생성 한 노드가, 제1 규칙에 따라 리더로 선출된 노드가 맞는지 여부를 결정하는 과정 및 수신된 블록 내의 트랜젝션이 변경되지 않았는지 여부를 결정하는 과정을 포함할 수 있다.
S950에서, 군집 제어 장치는 블록이 검증되면, 검증된 블록을 블록 체인에 연결할 수 있다. 예를 들어, 군집 제어 장치는, 블록을 수신한 각 노드가 블록을 검증하도록 한 후, 블록 검증에 성공한 각 노드는 각 노드에 이미 존재하는 블록 체인에, 검증된 블록을 연결하도록 할 수 있다.
도 10은 일 실시 에에 따른 제1 규칙을 제2 규칙으로 변경하는 동작을 세부적으로 설명하기 위한 도면이다.
S1010에서, 군집 제어 장치는 검출된 변화에 기초하여 제1 규칙을 갱신할 수 있다. S1020에서, 군집 제어 장치는 검출된 변화에 기초하여 제1 규칙을 수정할 수 있다. S1030에서, 군집 제어 장치는 검출된 변화에 기초하여 제1 규칙의 경계 조건을 재설정할 수 있다. S1040에서, 군집 제어 장치는 갱신된 제1 규칙, 수정된 제1 규칙 및 재설정된 경계 조건을 포함하는 제1 규칙 중 적어도 하나를 이용하여 제2 규칙을 생성할 수 있다.
예를 들어, 군집 제어 장치는 현재 군집의 경계 조건이 온도 범위가 10도~14도인 군집에 동작 온도 범위가 12도~18도사이인 디바이스가 추가되는 경우, 군집의 경계 조건으로써 군집의 전체 동작 온도 범위를 10도~18도로 갱신하고, 갱신된 온도 범위에 따라 군집을 새로 정의할 수 있다.
도 11a는 일 실시 예에 따른 복수의 드론들을 포함하는 군집을 설명하기 위한 도면이다.
도 11a를 참조하면, 탑재된 카메라를 이용하여 랜드스케이프 영역을 커버하도록 배치된 복수의 감시 드론들이 도시된다. 도 11a에는 드론 어레이(Dr1(781), Dr2(782)- Dr8(788))가 도시되고, 감시 드론들은 고도, 커버 영역, 비행 속도 등과 같은 소정의 공통되는 특성 및 성질에 기초하여 군집을 형성할 수 있다. 이러한 군집들의 목적은 군집들의 특성 및 성질을 유지함과 함께 동시에 전체 감시 영역(예컨대 커버리지 영역)을 함께 커버하는 것이다.
예를 들어, 감시 드론들은 서로 통신할 수 있고, 각 드론들의 데이터들을 드론 내 각각의 원장(예컨대 원장 1, 2 내지 8)에 기록할 수 있다. 본 개시의 일 실시 예에 따르면 드론 각각에 저장된 원장들은 블록들이 서로 연결된 블록 체인에 대응되고, 각 드론들은 동일한 트랜젝션들이 기록된 블록 체인을 공유할 수 있다. 또한, 감시 드론들에 각각 저장된 원장들은, 군집 내 드론들에 의하여 공유되는 규칙에 따라, 각 드론들에 의해 검증될 수 있다. 검증된 원장들은 각 드론(Dr1 내지 Dr8)에 대응되는 항목(entry)의 검증 후에, 블록 체인을 형성할 수 있다. 도 11a의 각 드론의 옆에 도시된 D1 내지 D8은 각각의 감시 드론들의 현재 상태, 특성 및 성질의 함수로써 하기의 수학식 3으로 나타낼 수 있다.
여기에서, D1 내지 D8은 현재 군집 내 드론들의 특성, 성질, 현재 상태를 입력으로 하는 함수들의 값을 나타내고, a1, a2 내지 a8은 현재 드론들의 특성(attribute), p1,p2 내지 p8은 현재 드론들의 성질(property), s1, s2 내지 s8은 드론들의 현재 상태를 나타낼 수 있다. 블록 체인(220) 규칙들 R1, R2 및 R3는 각 감시 드론의 현재 상태, 특성 및 성질의 함수인 D1-D8로부터 하기 수학식 4와 같이 유도될 수 있다.
여기에서, R1, R2 및 R3는 현재 군집 내 드론들의 특성, 성질 및 현재 상태에 따라 달라지는 군집의 규칙을 나타내고, f1, f2 내지 f3는 감시 드론의 특성, 성질 및 현재 상태에 관한 데이터를 입력으로 하는 함수 f의 출력 값을 입력으로 하는 규칙 정의 함수이다. 복수의 드론들을 포함하는 군집의 규칙들은 현재 상태에 대한 데이터를 포함하기 때문에, 시간에 대해 의존적일 수 있다. 예를 들어, 군집의 규칙들은 시간 t에서,
,
및
과 같이 나타날 수 있고, 각 시간에서의 규칙들은 군집 내 드론의 특성, 성질 및 현재 상태에 의존적일 수 있다.
일 실시 예에 의하면, 규칙 R1은 드론의 성질, 특성 및 현재 상태에 대응되는 드론의 파라미터 값들에 기초하는 머신 러닝 기반 분류 알고리즘일 수 있다.
도 11b는 일 실시 예에 따른 복수의 드론들을 포함하는 군집을 설명하기 위한 도면이다.
도 11b를 참조하면, 복수의 드론들은 규칙 R1을 나타내는 곡선 내 복수의 점들로 나타날 수 있다. 일 실시 예에 의하면, 규칙 R1은 머신 러닝 기반 드론 분류(machine learning based classification)를 나타내고, R1은 특성, 성질 및 현재 상태에 대응되는 파라미터 값들(parameter values)에 기초할 수 있다. 규칙 R1을 따르는 드론들은 규칙 R1에 대응되는 곡선 내에 위치할 수 있다.
예를 들어, 규칙 R1이 각 드론의 커버리지(coverage)를 체크하고, 현재 커버리지가 전체 랜드스케이프를 커버링하기 위한 집단적 행동을 보장하는 서포트 벡터 머신(Support Vector Machine, SVM)라고 가정하면, 각 드론의 상대적인 위치가 시간이 지남에 따라 변할 때, 규칙 또는 훈련 데이터(training data)는 규칙 R1에 따라 갱신될 필요가 있다. 시간 T1에서, 특성 및 성질(a1p1) 및 현재 상태 s1은 Kernel 함수를 다음과 같이 정의할 수 있다.
K는 다항식 커널(polymomial kernel)이고, c는 자유 파라미터(free parameter)이며, a1p1은 드론의 특성 및 성질을 포함하는 벡터이고, s1은 드론의 현재 상태를 나타낸다. 따라서, T1에서 군집의 상태에 기초하여, 정의되는 커널 함수의 출력에 따라 모든 드론들은 작동할 수 있다. 도 12a를 참조하여, 도 11b에서 규칙 R1에 따른 드론들 중, 두개의 드론 Dr7 및 Dr8이 예상되지 않은 위치로 이동하는 상황을 가정한다.
도 12a는 일 실시 예에 따른 악의적인 드론을 포함하는 군집을 설명하기 위한 도면이다.
시간 T2에서, 복수의 드론들은 상대적인 위치를 변경한 상태이고, 두개의 드론 Dr7(787) 및 Dr8(788)이 예상 하지 못한 위치로 이동하는 경우, 군집의 특성 및 성질 값들이 변경되었기 때문에, 커널(kernel) 함수 K에 기초한 규칙 R1은 커널 함수 K'에 대응되는 규칙 R1'으로 수정될 수 있다. 시간 T2에서, 특성 및 성질 (a2p2), 현재 상태 s2는 Support Vector Machine(SVM)을 위한 kernel 함수를 하기 수학식 6과 같이 정의할 수 있다.
여기에서, K는 다항식 커널(polymomial kernel)이고, c는 자유 파라미터(free parameter)이며, T2는 특정 시간이고, a2p2는 시간 T2에서 드론의 특성 및 성질을 나타내고, s2는 시간 T2에서의 드론의 현재 상태를 나타낼 수 있다. 상기 수학식 6에 기초한 kernel 함수를 이용하여 상기 다항식 커널의 변화된 행동은 도 12b에 점과 같은 배치를 가지는 드론들로 나타날 수 있다.
도 12b는 도 12b는 일 실시 예에 따른 악의적인 드론을 포함하는 군집을 설명하기 위한 도면이다.
예를 들어, 도 12b를 참조하면, 각각의 점은 드론들의 위치를 나타낼 수 있다. 규칙 R1'로 나타나는 곡선 밖에 위치하는 점들은 자신의 위치를 변경한 두개의 드론들 Dr7(787) 및 Dr8(788)을 나타낼 수 있다. 시간 T2에서, 일부의 드론들이 자신들의 위치를 변경하였고, 두개의 드론들 Dr7(787) 및 Dr8(788)이 예상하지 못한 위치로 이동함에 따라, 군집의 특성 및 성질 값들이 변경되었으며, Kernel 함수 K에 기초한 규칙 R1 역시 Kernel 함수 K'에 대응되는 규칙 R1'로 수정될 수 있다.
즉, 군집의 현재 상태에 기초하여 규칙들이 수정되지 않는 경우, 드론 Dr7(787) 및 Dr8(788)의 이상을 감지하지 못하는 문제가 발생할 수 있지만, 본 개시에 따른 군집 기반 시스템은 군집의 상태 및 성질 등에 기초하여 변경, 갱신되는 적응 규칙을 이용할 수 있기 때문에, 이상이 발생한 드론 Dr7(787) 및 Dr8(788)을 감지할 수 있다.
도 13은 일 실시 예에 따른 제조 조립 공장 내 산업용 로봇들을 포함하는 군집을 설명하기 위한 도면이다.
적어도 하나의 이동형 산업 로봇들을 포함하는 군집은 조립 라인(예컨대 어셈블리 라인)들에서 동작할 수 있고, 이동형 산업 로봇들은 작업 관리자(1304)의 요청에 의해 부품 저장고(Raw Material Storage, 1302)로부터 부품을 필요한 곳에 공급하고, 완성된 제품을 창고(Ware house, 1306)로 운반할 수 있다. 예를 들어, 작업 관리자가 제품의 부품을 요청하면, 로봇들 사이의 협의에 따라 로봇들 사이의 군집이 형성되고, 형성된 군집에 필요한 업무가 할당될 수 있다.
예를 들어, 군집 제어 장치는 부품을 요청하는 작업 관리자의 요청에 따라 규칙을 생성하고, 생성된 규칙에 따라 작업에 필요한 로봇의 군집을 형성할 수 있다. 군집 제어 장치는 형성된 군집에 작업자의 요청에 따른 업무를 할당할 수 있고, 군집 내 변화를 검출하고, 검출된 변화에 기초하여 작업 시 군집 내 로봇들의 이상을 검출할 수 있다.
일 실시 예에 의하면, 로봇들을 위한 일정(schedule)은 미리 정의되거나 요청에 기초하여 결정될 수 있고, 로봇들의 일정 및 요청은 거래(예컨대 트랜젝션)를 형성하고, 형성된 거래들은 블록 체인의 일부로 기록될 수 있다. 본 개시에 따른 군집 제어 장치는 중복된 작업을 방지하고, 작업을 처리할 로봇이 있다는 사실을 확인할 수 있다.
일 실시 예에 의하면, 작업자가 아이템을 요청할 때, 부품들을 운반하는 로봇이 거의 없는 경우, 군집은 필요한 양을 최단 시간 내에 제공할 수 있는 로봇의 최단 경로를 설정할 수 있다. 작업 관리자의 다양한 요구에 따라, 군집의 규칙들(예컨대 런타임 합의 규칙들, 블록 체인에 참가한 노드들의 합의를 위한 규칙들)은 변경될 수 있고, 이동현 산업 로봇들에 대응되는 노드들을 위한 블록 체인의 규칙들은 갱신, 변경, 수정될 수 있으며, 노드들 사이에서 공유되는 트랜젝션들은 블록체인의 규칙에 기초하여 변경될 수 없다. 따라서, 복수의 이동형 산업 로봇들을 포함하는 군집내에서, 트랜젝션이 발생할 경우, 발생된 트랜젝션에 배치되는 트랜젝션이 발생할 확률이 매우 낮으므로, 복수의 이동형 산업 로봇들을 포함하는 군집은 중복 작업을 피하면서 작업을 효과적으로 완료할 수 있다.
일 실시 예에 의하면, 군집 내 ACO 접근 방식은 Single Machine Total Weighted Tardiness Problem (SMTWTP)라 불리는 전술한 스케줄링 순열 문제(Scheduling permutation problem)에 적용될 수 있다. 이러한 측면은 다음과 같이 ACO 알고리즘을 구성하는 구성요소 리스트로 배열될 수 있다. 예를 들어, ACO 알고리즘을 구성하는 리스트는 페로몬 정보 A(예컨대 페로몬 엔코딩) 및 건설 솔루션 B(예컨대 페로몬 평가 및 휴리스틱 적응(=Adaptation of heuristics) Single machine에 스케줄링되어야 하는 SMTWTP 'n'개 작업(job)에 대한 SMTWTP 문제들이 제공될 수 있다.
모든 작업(job)
는 만료일(due date) 'dj', 처리 시간(processing time) 'pj' 및 가중치(weight) 'wj'를 포함할 수 있다. 만약 Cj가 스케쥴 내의 작업(job) j의 완료 시간을 나타내는 경우, Lj=Cj-dj 는 지연 정도(lateness)를 정의하고, Tj=max(0,Lj)는 지연 상태(예컨대 늦은 상태, tardiness)를 정의할 수 있다.
목표는 모든 jobs 'nj= 1 wjTj'(아이템 j를 순열의 i에 할당하는 것이 바람직함을 의미함)들의 총 weighted tardiness를 최소화 하는 스케쥴을 찾는 것이다. 여기에서, 페로몬 행렬은 장소*아이템(장소 by item) 형태의 행렬이고, SMTWTP는 개미가 스케줄에서 어떤 작업이 가장 먼저인지 여부를 결정하고 난 후, 어느 작업이 다음 장소에 있는지 여부를 결정할 수 있다.
ACO 알고리즘의 페로몬 평가 측면은 개미들의 결정을 위해 개미들에 의해 페로몬 정보가 어떻게 사용되는지 여부이다. 페로몬 값의 지역적(local) 평가는 SMTWTP에 대해서도 가능할 수 있다. 어떤 작업이 순열의 다음 장소 i에 있는지 결정해야 하는 개미는 선택 가능한 작업(job)이 해당 장소에서 얼마나 잘 수행되었는지 여부를 나타내는 모든 값
을 고려할 수 있다. 그러나, 일부 선택 가능한 작업(job)
의 가장 높은 페로몬 값은
일 수 있다.
모든 ACO 알고리즘들은 오직 local 평가만 사용할 수 있다. 페로몬 평가 방법 및 ACO에서 페로몬 값 변화의 영향은 매우 간단한 SMTWTP 테스트의 인스턴스 결과를 나타낼 수 있다. 간단한 SMTWTP 테스트의 인스턴스 결과는 처리 시간(processing time) pi=1, 만료일(duedate) di=i, 가중치(weight) wi=1를 가지는,
인 50개의 작업(job)으로 구성될 수 있다.
명백하게, i번째 장소의 job i는 (i는 1-n) 비용이 0인 유일한 최적의 솔루션이다. 휴리스틱스(Heuristics)의 적응에서, 다수의 (스케줄링)문제들에 대하여, 스케줄링 시 어떤 업무가 다음인지 여부를 결정하는데 사용될 수 있는 우선 휴리스틱스(priority heuristics)가 존재한다. Un-weighted 형태의 SMTWTP는 Modified Due Data(MDD) 규칙일 수 있다.
여기에서,
는 이미 스케쥴링된 모든 작업(job)들의 total processing time이다. 이제 heuristic이 다음 스케쥴된 마감일 이전에 마감될 모든 작업(job)들 중, 작은 만료일(due date)를 가진 작업(job)을 선호한다는 것을 알 수 있다. 또한, 모든 작업(job)들은, 그들의 만료일(due date) 이후에 끝나게 될 것이다. ACO 알고리즘에서 문제를 스케줄링하기 위해, standard priority heuristics 을 사용하는 경우, 주의를 기울여야 한다. 왜냐하면, heuristic 값이 개미의 결정에 미치는 영향을 적절하게 반영하지 못할 수 있기 때문이다. 이러한 효과를 피하기 위해서는 적응된 heuristics가 사용되어야 한다.
여기에서,
는 이미 스케쥴링된 모든 작업(job)들의 total processing time이고, p
j는 처리 시간, d
j는 만료일 이다. 결과는 적응된 heurisric 또는 전역 페로몬 평가를 사용하는 것은 결과가 상당히 향상되고, 두가지 모두를 사용하는 것이 최선임을 나타낸다.
예를 들어, 스마트 홈 또는 스마트 시티 내 설치되는 스마트 계량기(Smart Meters, SMs)의 경우, 각 SM들은 IOT 디바이스이고, 다른 SM 들에 무선으로 연결될 수 있기 때문에, IOT 환경의 보안성이 중요할 수 있다. 스마트 시티의 경우, 스마트 계량 인프라(AMI)를 확보하는 것이 스마트 도시 인프라를 확보하는 핵심 구성이고, AMI 보안은 스마트 에너지 관리자를 확보하고, 이러한 스마트 계량기(SM)에 대한 공격을 탐지하는 것을 주 문제로 삼을 수 있다. 일 실시 예에 의하면, 군집 지능은 중앙 집중화된 서버를 필요로 하지 않고, 이상(anomalies) 탐지 알고리즘을 이용하여 지역적 공격자들을 검출할 수 있다.
간단한 규칙(simple rules)을 따르는 스마트 계량기들(SMs)은 IOT 노드로 간주되고, 이상들(anomalies)은 노드들이 간단한 규칙들을 따르는 거리 측정 알고리즘들을 기초로 탐지 될 수 있다.
예를 들어, 스마트 계량기의 에너지 소비 단위(예컨대 자신의 에너지 미터 값)을 거래들(transactions) 으로써, raw values 또는 function of raw value로 생각할 수 있다. 이러한 거래들 (222)은 노드들에서 공유되고, 노드 수준에서 계산이 수행될 수 있다. 군집 규칙들은 스스로 바람직한 행동을 획득하기 위해 군집의 행동 변화에 따라 적응(adapt)되거나 변경될 수 있다. 만약, 동작이 바람직하지 않은 경우, 군집의 현재 상태, 행동 및 성질에 기초하여, 군집 규칙들은 진화되고 갱신될 수 있다. 또한, 군집 내 이상을 검출하기 위한 노드들의 합의는 런타임 규칙들에 기초할 수 있다. 이러한 런타임 규칙들은 군집의 현재 상태를 반영하기 위해 더 적응적으로 생성될 수 있고, 이러한 규칙들에 대해 검증이 수행될 수 있다.
도 14는 일 실시 예에 따른 이상 검출 및 침입 식별 과정을 설명하기 위한 도면이다.
군집에 대한 공격자의 목표는 군집 내 포함된 노드를 손상시키고(예컨대 스마트 계량기), 디스패치 센터로 악의적인 데이터를 전송함으로써, 노드의 인프라 내 침입을 시도하는 것이다. 공격자의 침입(intrusion)기술은 크게 물리적 공격(physical attacks), 사이버 공격(cyber attacks) 및 데이터 공격(data attacks)과 같이 세가지 카테고리로 분류될 수 있다. 또한, 침입기술은 더 넓게는 정보에 대한 무단 액세스인 공개(disclosure), 잘못된 허위 데이터의 수용에 관한 속임수(deception), 올바른 정보의 중단 또는 예방에 관한 중단(disruption), 시스템의 일부를 무단으로 제어하는 것인 유출(usurpation)으로 분류될 수 있다.
도 14를 참조하면, S912에서 군집 기반 시스템은 이상 검출 과정을 시작할 수 있다. S913에서, 군집 기반 시스템은 블록 체인 내 합의 규칙을 생성, 수정 및 갱신할 수 있고, S914에서, 군집 기반 시스템은 생성, 수정 및 갱신된 합의 규칙에 기초하여 군집 내 이상 노드를 검출할 수 있다. 일 실시 예에 의하면, 군집 내 이상이 검출되지 않는 경우, 군집 기반 시스템은 S912의 이상 검출 과정을 다시 시작할 수 있다.
S916에서 군집 기반 시스템은 검출된 이상이 이미 알려져 있는 이상인지 여부를 결정할 수 있다. 예를 들어, 군지 기반 시스템은 메모리 내 과거 검출된 이상(anmoaly)에 대한 이력을 저장할 수 있고, 저장된 과거 검출된 이상에 대한 이력에 기초하여 현재 검출된 이상이 이미 알려져 있는 이상인지 여부를 결정할 수 있다.
S918, S919, S920에서, 군집 기반 시스템은 검출된 이상(anomaly)가 이미 군집 기반 시스템에 알려진 이상으로 식별되는 경우, 공격자 1(918), 공격자 2(919) 또는 공격자 n(920)을 식별할 수 있다. 그러나, S917에서, 군집 기반 시스템은 이상이 이미 알려져 있지 않은 경우(예컨대 미상으로 결정되는 경우)검출된 이상에 대한 정보를 메모리 내에 저장할 수 있다.
도 15a는 일 실시 예에 따른 스마트 계량기가 설치된 스마트 홈을 공격하는 과정을 설명하기 위한 도면이다.
도 15a를 참조하여, 본 개시의 일 실시 예에 따른, 스마트 미터기들(Smart Meters, SM)의 군집을 예로 설명하기로 한다. 각 SM들은 IOT 디바이스들이고, 스마트 계량기를 AMI(Advanced Metering Infrastructure)로 가지며, 각각의 스마트 계량기는 군집 내의 노드들을 나타낼 수 있다. 또한, 군집 내 모든 노드들은 Wi-Fi 기능을 포함하고, 서로 통신할 수 있다. 군집 내 각 노드들은 이웃 노드들과 무선 링크(예컨대 와이파이 또는 블루투스)를 이용하여 연결될 수 있다. 노드들 자체는 'dumb'이지만, 함께 공격을 감지할 수 있다. 따라서, 이러한 노드의 집합은 무선으로 연결되어 군집을 형성할 수 있다.
복수의 스마트 계량기들은 RSSI 및 타이밍 정보(timing information)에 기초하여, 근처 노드들(예컨대 SM 디바이스들)은 서로 식별될 수 있다. 여기에서, 교환되는 파라미터 값(parameter values)들은 이동 평균 값들(moving average values)이고, 블록 체인의 규칙을 형성하는데 사용될 수 있다.
먼저, 군집 제어 장치가 수행하는 스마트 계량기들 사이의 군집 형성 과정에 대해서 설명한다. 스마트 미터기(SMs)들의 내부 클록(internal clock)에 기초하여, M개의 시작 노드들(initiating nodes, 예컨대 스마트 미터기들)이 무작위로 식별될 수 있다. 여기에서, 각 스마트 미터기들의 각 내부 클록은 비동기화 될 수 있고, 각자 독립적으로 동작할 수 있다.
각각의 시작 노드는 무작위로 선택된 이웃 노드 중 하나에 사이즈 N인 blank fixed-length 원장을 전송할 수 있다. 원장을 수신한 노드(특정 스마트 미터기)는 자신의 이름이 원장에 이미 포함되어 있는지 여부를 식별할 수 있다. 만약 원장에 이름이 포함되어 있지 않은 경우, 원장을 수신한 노드는 자신의 이름을 원장에 등록시키고, 수정된 원장을 자신의 이웃 노드들에 다시 무작위로 전송할 수 있다. 이러한 과정은 모든 M개의 순환 원장들이 가득 차거나, 시간 제한(time limit)이 만료될 때까지 계속될 수 있다. 원장의 항목은 해당 원장과 관련된 군집의 구성원들을 결정할 수 있다. 규칙을 정의함으로써, 각 군집 내 중복될 수 있는 특정 수의 노드를 정할 수 있다.
본 개시의 일 실시 예에 의하면, 군집 내 각 스마트 미터기들은 각 스마트 미터기들의 데이터들을 트랜젝션으로 기록한 블록 체인을 공유할 수 있다. 예를 들어, 각 군집은 M개의 노드들을 포함하고, 블록 체인을 포함할 수 있다. 각 시작 노드(initiating node)는 무작위로 r 값을 선택하고, 자신의 에너지 미터 값인 e
1에 값 r을 더할 수 있다. 여기에서 자신의 에너지 미터 값에 더해진 랜덤 값 r은 오직 시작 노드에만 알려져 있다. 시작 노드는 자신의 에너지 미터 값인 e
1과 랜덤 값 r의 합인 v
1을 무작위로 선택된 인접 노드 중 하나에 전송할 수 있다.
또한, v
1 값을 수신한 군집 내 두번째 노드는 자신의 에너지 미터 값 e2를 v
1에 더한 값인 v
2를 무작위로 선택된 자신의 인접한 노드들에 다시 전송할 수 있다. 따라서, 군집 내 i번째로 값을 수신한 노드는 v
i-1을 수신하고, 자신의 에너지 미터 값인 e
i 를 합한 vi 값을 무작위로 선택된 이웃 노드들 중 하나에 전송할 수 있다. 이러한 과정은 군집 내 모든 노드들이 자신의 에너지 미터 값을 추가하고, 모든 에너지 미터 값들의 총합이 시작 노드로 다시 돌아 올 때까지 계속 될 수 있다. 시작 노드는 자신이 처음에 더한 랜덤 값 r을 빼고, 군집에 대한 평균 에너지 미터 값 v
s=v
1+v
2+…v
i을 획득할 수 있다.
군집 내 각 노드들이 가지는 에너지 미터 값은 보안화(privacy preserving)되며, 노드들은 특정 에너지 미터 값이 어떤 노드의 에너지 미터 값인지 알 수 없다. 이동 평균 값(moving average value)들은 날짜(date)/시간(time) 스탬프와 함께 군집 내 모든 노드들에 순환될 수 있다. 이동 평균 값들이 날짜/시간 스탬프와 함께 군집 내 모든 노드들에 순환되는 과정은 트랜젝션(transaction)으로써 모든 노드들에 저장될 수 있다.
타임 스탬프를 T
S라고 할 때, 블록 체인의 블록은 {v
s, T
s}의 함수로 나타날 수 있다. 군집 내 각 블록들의 트랜젝션들은 모두 해시(hashed)되고, 인코딩된 유효한 거래들(트랜잭션들)의 배치(batches)들을 유지할 수 있다. 각 블록은 블록 체인 내 이전 블록의 암호화된 해시를 포함하고, 블록 간에 연결(link)될 수 있다. 링크된 블록들은 특정 군집을 위한 블록 체인을 형성할 수 있다.
전술한 바와 같이, 시작 노드가 무작위 r값(random value r)을 자신의 에너지 미터 값 e1에 더하고, r값 및 자신의 에너지 e1값을 합한 값인 v1을 이웃 노드들 중 하나의 노드에 전송하며, 시작 노드가 자신이 처음에 더한 랜덤 값 r을 제외한 모든 에너지 미터 값들의 합을 이용하여 평균 에너지 미터 값 v
s 를 획득하는 과정은 응용 프로그램에 따라, 시간 주기 TP 마다 주기적으로 반복될 수 있다.
예를 들어, 공격자 (예컨대 에너지 도둑) 검출에 있어서, 전형적으로 주기 Tr=1시간이고, 시간 주기 TP 이후, 다른 트랜잭션(거래들)이 수행되고, 블록 체인 내 다음 블록이 형성될 수 있다. 군집 기반 시스템의 모든 노드는 블록 체인의 복사본을 가질 수 있다. 일 실시 예에 따르면, 별도(separate)의 블록들이 동시에 생성될 수 없으므로, 일시적인 포크(pork)에 대한 염려가 없다. 또한 블록 시간(block time)은 블록 체인 내에서 네트워크가 하나의 추가 블록을 생성하는데 걸리는 평균 시간을 의미할 수 있다.
중간 값(intermediate values, v
i)가 전송되는데 요구되는 시간을 T
t라고 하고, 계산 시간을 T
c라고 할 때, 본 개시의 일 실시 예에 따르면, 블록 타임(block time)은 T
B=M(T
t+T
c)일 수 있다. 본 개시의 일 실시 예에 따라 블록 타임 T
B는 시간 주기 T
P보다 작을 수 있다. 일 실시 예에 의하면, 이동 평균 실시 예에서, 계산 시간 Tc는 두개의 플로팅 포인트(floating point) 넘버(number)를 추가하는데 요구되는 시간일 수 있다.
군집 내 모든 노드들에 데이터를 저장함으로써, 블록 체인은 중앙 집중 식으로 데이터를 보관할 때 발생할 수 있는 위험을 제거할 수 있다. 동시에, 각 노드들의 정보(프라이버시)는 보존될 수 있다. 본 개시의 일 실시 예에 따르면, 군집 기반 시스템이 사용하는 블록 체인은 시작 노드에 의해 공유되는 타임 스탬프(time stamp)를 타임 스탬핑 스키마(time stamping scheme)로 사용하기 때문에, 작업 증명(Proof of Work)이나 지분 증명(Proof of Stake)에 의존하지 않을 수 있다. 따라서, 본 개시의 일 실시 예에 따른 군집 기반 시스템은 계산상 또는 설계상 더 효율적이고, 실시간 응용에 더 도움이 될 수 있다.
도 15b는 일 실시 예에 따른 스마트 계량기가 설치된 스마트 홈을 공격하는 과정을 설명하기 위한 도면이다.
도 15b를 참조하여, 군집 내 이상 검출 과정을 설명하기로 한다. 이상(anomaly)검출 과정은 애플리케이션 종류에 따라 다를 수 잇다. 예를 들어, 도 15b의 에너지 공격자 검출 예에 있어서, 이동 평균의 허용 편차 수준은
라고 할 때,
가 하기 수학식 10을 만족할 경우, 해당 스마트 미터기는 손상된 것으로 간주할 수 있다.
여기에서,
은 시간 Ts에서, m번째 스마트 미터의 샘플 값(sample value)이고, v
sT
s는 시간 Ts에서 s번째 스마트 미터의 샘플 값이다. 블록 체인 자체의 불변 속성(tamper proof)을 이용하여, 이상(tamper 또는 anomaly)을 검출할 수 있다. 자신의 에너지 미터 값을 수정하려고 하는 IOT 디바이스는 flagged된 것으로 볼 수 있고, 따라서, 이상을 검출할 수 있다. 만약 악의적이거나 손상된 노드가 악의적인 행동을 수행하려고 하는 경우, 이미 데이터가 다른 사람들과 공유되어 데이터 위조 비용이 높기 때문에, 추후 다시 수정이 불가하다.
본 개시의 일 실시 예에 의하면, 서로 다른 블록 체인(서로 다른 군집들에 대한)의 이동 평균 값을 함께 사용하여 이상을 검출할 수 있다. 서로 다른 블록 체인들(서로 다른 군집에 대한)의 이동 평균 값들의 함수(function of the moving average values) 역시 사용될 수 있다. 정리하면, 군집 기반 시스템은, 시스템 사용자가 요구하는 바람직한 행동을 달성하기 위해 간단한 일련의 규칙 집합을 설정할 수 있다. 만약 바람직한 행동이 달성되지 않는 경우, 군집 규칙들은 군집 내 노드들의 현재 상태, 성질 및 특성이 변화를 나타내는 피드백에 기초하여 더 적응적으로 생성될 수 있다. 이렇게 적응적인 규칙들(adaptive rules)은 블록 체인의 합의 관리 유닛의 런타임 규칙들에 대한 입력이 되고, 블록 체인의 불변 속성은 새로운 규칙들을 준수하고, 합의에 도달되도록 보장한다. 즉, 전술한 특징들은 IOT 디바이스들의 환경 내 이상 및 위협을 검출하는데 사용될 수 있다.
본 개시의 일 실시 예에 따르면, 군집은 냉장고, 세탁기, 텔레비전 및 토스터 기등 다양한 장치들을 포함할 수 있다. 이러한 다양한 장치들은 서로 다른 유형의 소비 프로파일 및 성질을 가지고, 다양한 디바이스들이 군집의 일부가 될 때, 군집 내 노드들의 변화를 해결하기 위하여, 디바이스의 개별적인 성질은 군집에 대한 규칙들을 수정하는데 사용될 수 있다.
도 16은 주소결정 프로토콜을 이용하여 근거리 통신망 내 상대방의 데이터 패킷을 중간에서 가로채는 중간자 공격 기법을 설명하기 위한 도면이다.
ARP Poisoning은 IP 주소에 대한 MAC 주소 매칭을 위한 주소 결정 프로토콜(Address Resolution Protocol, ARP)을 이용하여 근거리 통신망하에서, 상대방의 데이터를 가로채는 기술을 의미한다. 즉, 복수의 스마트 계량기들을 포함하는 군집에서, 공격대상인 두개의 노드 1602 및 노드 1604(예컨대 인접한 두개의 스마트 계량기들)사이에서 송수신되는 데이터들을 가로 채기 위하여, 공격자(1608)는 주기적으로 ARP Reply 패킷을 공격 대상 노드로 전송하여, 데이터를 가로챌 수 있다.
그러나, 본 개시의 일 실시 예에 따른 군집 제어 장치가 제어하는 군집 내에서 공격자는 노드 내 특정 데이터를 조작하기가 매우 어렵다. 본 개시에 따른 군집 내 모든 노드들의 데이터들은 트랜젝션으로써 블록에 저장되고, 저장된 블록들은 블록 체인 형식으로 모든 노드들에 의해 공유되며, 공유된 블록 체인들은 블록 체인의 탈중앙화된 합의 규칙에 기초하여, 트랜젝션들의 내용을 일치시킬 수 있다. 따라서, 공격자가 특정 데이터를 변형시키기 위해서는 군집 내 모든 노드들 사이의 패킷을 인터셉트하여, 데이터를 변형할 필요가 있지만, 이는 현실적으로 많은 비용이 소모되므로, 군집에 대한 공격자(1608)의 공격은 실패할 확률이 높다.
도 17은 일 실시 예에 따른 군집 내 이상을 검출하는 과정을 설명하기 위한 도면이다.
일 실시 예에 의하면, 군집 제어 장치는 군집 내 각 노드의 특정 주기 동안, 판독 값의 엔트로피를 계산할 수 있다. 노드 i의 엔트로피 값(무질서도의 측정값) Hi는 주기적으로 가장 가까운 이웃 노드들에게 전달될 수 있다. 함수
는 집단적으로(collectively) 공격자의 위치를 결정하는데 사용될 수 있다. 각 노드의 계산은 트랜젝션들로써 저장되어야 하고, 블록 체인(602)의 규칙들의 검증에 사용되며, 합의(consensus)에 기초하여, 악의적인 노드가 식별될 수 있다.
즉, 본 개시의 일 실시 예에 따른 군집 제어 장치는 군집 제어 장치에 의해 제어되는 노드들의 엔트로피 값들을 트랜젝션으로써 블록 내에 기록하고, 기록된 엔트로피 값에 기초하여 군집 내 이상 노드를 검출할 수도 있다. 전술한 군집 내 이상(anomaly 또는 malicious) 노드를 식별하기 위한 개념은 군집들을 포함하는 확장된 군집에 적용될 수 있다. 또 다른 실시 예에 의하면, 군집 기반 시스템은 악의적인 노드를 식별하기 위해 엔트로피 외의 다른 수단을 사용할 수도 있으며, 악의적인 노드를 식별하기 위한 수단은 엔트로피에 한정되지 않는다.
도 18은 본 개시의 일 실시 예에 따라 교통 관리에 사용되는 군집 기반 시스템을 설명하기 위한 도면이다.
본 개시에 따른 군집 제어 장치는 스마트 시티의 교통 관리(traffic management) 시스템에 사용될 수 있다. 예를 들어, 스마트 시티의 교통 신호 관리 시스템은 교통 신호 등의 상호 데이터 작용에 기초하여 관리되는데, 본 개시에 따른 군집 지능은 스마트 시티 내 교통 관리 및 경로 선택에 사용될 수 있다. 스마트 시티 내 교통 관리 시스템은 트래픽 관리를 제공할 수 있지만, 센서 노드 들 중 하나가 손상될 경우, 트래픽 관리는 실패할 수 있다.
하지만, 스마트 시티 내 교통 관리 시스템에 본 개시에 따른 군집 제어 장치를 적용할 경우, 교통 관리 시스템의 손상된 노드를 검출함으로써 문제를 쉽게 해결할 수 있다. 또한, 스마트 시티 내 교통 관리 시스템의 교통 데이터(예컨대 스마트 시티 내 각 센서 및 교통 신호등의 파라미터와 관련된 트래픽 값들(traffic values), 각 노드의 과거 성능 및 상태)는 트랜젝션들로써 교통 관리 제어 장치들에 대응되는 각 노드의 블록 체인 형식으로 공유될 수 있으므로, 군집 제어 장치를 이용함으로써 교통 관리 제어 장치들의 교통 데이터는 블록 체인의 규칙에 기초하여 무결성이 유지될 수 있다.
본 개시에 따른 군집 제어 장치를 스마트 시티의 교통 관리에 적용함으로써, 각 각 센서 및 교통 신호의 데이터는 신뢰성이 보장될 수 있고, 군집 제어 장치는 스마트 시티 내의 다양한 상황에 적용됨으로써, 임의 장치의 오작동 및 손상을 검출할 수 있다. 또한, 군집 제어 장치는 오작동하는 노드를 검출함으로써 교통 관리 당국에 오작동 노드를 보고할 수 있으며, 본 개시에 따른 군집 제어 장치는 다양한 지능 정보를 사용할 수 있는 환경에서 사용될 수 있다.
도 19a는 일 실시 예에 따른 군집 형성 방법을 설명하기 위한 도면이다.
도 19a를 참조하면, IOT 디바이스들은 집합적으로 군집을 형성하고, IOT 디바이스들은 디바이스들의 데이터 또는 데이터의 함수 (Raw data or function of Raw data)를 이웃과 공유하며, 각 디바이스들 간의 트랜젝션들이 발생하는 경우, 발생된 트랜젝션들을 공유할 수 있다. 각 디바이스들은 군집 내에서 다른 모든 IOT 디바이스들과 통신함으로써 트랜젝션들을 전달할 수 있다. 본 개시의 일 실시 예에 의하면, 동종 군집은 군집 내에서 동일한 유형의 장치들을 포함할 수 있고, 동종 군집 내에서 디바이스들 간의 교환되는 데이터는 동일한 유형(raw data 또는 function of raw data)을 가질 수 있다. 이종(heterogeneous) 군집 내의 다른 유형의 IOT 디바이스들은 군집 내 다른 IOT 디바이스들과 서로 다른 유형의 데이터를 송수신할 수 있다.
동종(Homogeneous) 노드들의 경우, 군집의 규칙들은 더 나은 결과에 대한 활동 결과에 기초하여 변경될 수 있고, 활동의 결과는 규칙들(1006)을 변경, 갱신 및 수정하기 위해 군집 기반 시스템의 규칙 유닛에 입력될 수 있다. 예를 들어, 변경, 갱신 및 수정된 규칙들에 기초하여 환경의 변화에 적응하기 위해 군집의 행동은 동적으로 변할 수 있다.
군집은 규칙 유닛(rules unit) 내 규칙들에 기초하여 형성되고, 군집은 복수 군집들 또는 복수의 군집들을 포함하는 군집일 수 있다. 군집들은 다양한 방식으로 형성될 수 있다. 규칙 유닛에 의해 생성된 규칙들은 블록 체인의 거래들을 검증함에 있어, 합의(1004)에 도달하기 위한 주요 구성이다. 규칙 유닛에 의해 생성된 규칙들은 적응적(adaptive)으로 생성될 수 있고, 규칙들에 기초한 활동에 대해 수신된 피드백에 기초하여 갱신될 수 있다. 동시에, 모든 블록 체인 내 규칙들은 무결성에 기초하여 블록 체인 내 데이터가 손상되지 않도록 유지될 수 있다.
군집의 생성, 형성 및 진화는 일련의 간단한 규칙들의 집합(set), 군집 상태 파라미터들 및 군집의 성질에 기초할 수 있다. 시스템 사용자의 기대치는 복수의 노드들을 포함하는 군집의 바람직한 행동(1005)으로 나타날 수 있다. 이러한 노드들은 노드가 작동하기 시작할 때, 규칙 유닛(rules unit)에서 정의된 간단한 규칙들을 따를 수 있다. 이것은 바람직한 행동을 획득하기 위해, 규칙들을 adaptive하게 만드는데 동적으로 사용될 수 있다.
군집은 원하는 행동을 획득하지 못한 경우, 원하는 행동(1005)를 획득하기 위해 일련의 간단한 규칙(simple rules, 1002)을 설정할 수 있다. 군집 규칙들은 노드들의 피드백, 군집의 현재 상태, 군집 성질의 변화에 기초하여 적응적(adaptive)으로 생성될 수 있다. 본 개시에 따른 군집 기반 시스템은 군집 제어 장치에 대응될 수 있다.
예를 들어, S1902에서, 군집 제어 장치는 군집 내 노드들의 활동(Activity, 1945)에 기초하여 군집에 관한 제1 규칙을 생성할 수 있다. 또한, 군집 제어 장치는 군집 내 노드들의 활동(Activity, 1945)에 기초하여, 이미 생성된 제1 규칙을 갱신할 수도 있다.
본 개시에 따른 노드들은 군집을 형성하기 위해 간단한 규칙(simple rules, 1002)를 따를 수 있다. 이종 군집에서, 규칙들(1002)은 노드들의 행동 및 성질의 다양성으로 인하여, 군집의 수요를 처리하기 위해 적응되거나 변화할 필요가 있다. 동시에, 군집의 규칙들은 군집의 무결성(integrity)을 유지해야 한다.
본 개시에 따른 군집 내 규칙들이 변경, 갱신됨으로써, S1904에서, 군집 제어 장치는 변경 또는 갱신된 군집 내 규칙들에 기초하여 군집을 형성하거나, 군집을 갱신할 수 있다.
S1906에서, 군집 제어 장치는 생성된 규칙, 변경되거나 갱신된 규칙을 군집 내 모든 노드에 트랜젝션으로써 브로드캐스팅할 수 있고, 모든 노드에 브로드캐스팅된 트랜젝션들은 블록에 기록되어, 각 노드의 블록 체인에 연결될 수 있다. 또한, 군집 제어 장치는 모든 노드에 트랜젝션들이 전달되면, 노드들 중 리더를 선출하고, 선출된 리더 노드에 의하여, 트랜젝션이 기록된 블록을 생성하며, 생성된 블록을 다시 모든 노드에 브로드캐스팅함으로써, 각 노드에 의한 블록 검증 과정을 수행할 수 있다. 본 개시의 일 실시 예에 따른 군집 내 복수의 노드들 중 리더 노드 선출 규칙, 리더 노드가 생성한 블록의 각 노드에 의한 검증 규칙은 넓은 의미에서 합의 규칙에 포함될 수 있다.
S1908에서, 군집 제어 장치는 군집 내 각 노드들의 지역적 상호 작용에 기초한, 군집 전체의 행동이 목표 행동인지 여부를 결정할 수 있다. 예를 들어, 군집 제어 장치는 군집 전체의 행동이 목표 행동인 경우, 군집 제어 방법을 종료할 수 있다. S1912에서, 군집 제어 장치는 군집 전체의 행동이 목표 행동이 아닌 경우, 현재 군집을 정의하기 위한 제1 규칙을, 현재 군집 내 디바이스들의 변화에 기초하여 갱신할 수 있다.
도 19b는 일 실시 예에 따른 군집 내 이상을 검출하는 방법을 설명하기 위한 도면이다.
군집의 블록 체인(602)은 피어 투 피어 온라인 거래들(603)을 촉진시키고, 블록 체인(602)은 분산된 원장(distributed ledger)을 포함할 수 있다. 일 실시 예에 의하면, 블록 체인(602)의 트랜젝션들(603)은 IOT 디바이스들의 raw data(예컨대, 이동 평균 또는 엔트로피) 또는 raw data의 함수의 교환에 기초할 수 있고, 여기서 블록 체인(602)의 상태는 IOT 디바이스들의 데이터(값)일 수 있다.
동종 군집의 경우, 데이터 값들의 유형(raw data 또는 function of raw data)이 동일하기 때문에, 블록 체인(602)은 이러한 값들을 기초로 규칙들을 유도할 수 있고, 블록 체인 규칙들은 군집이 갱신, 변경 및 진화함에 따라 갱신, 변경 및 진화할 수 있다. 일 실시 예에 의하면, 노드들의 유형이 동종인 경우, 규칙들은 또한 동종(Homogeneous) 규칙으로 진화할 수 있다.
그러나, 이종(Heterogeneous) 군집의 경우, 이종 군집 내 노드들이 교환하는 데이터의 유형(raw data or function of raw data)은 서로 다른 유형이기 때문에, 블록 체인(602)은 이종(heterogeneous) 데이터에 기초하여 계산을 위한 규칙을 유도하고, 이러한 블록 체인(602)규칙들은 군집이 진화함에 따라 진화할 수 있다. 군집 내 디바이스들이 서로 공유하는 데이터의 유형은 이종(heterogeneous)이므로, 규칙들은 이종 규칙으로 진화할 수 있다.
블록 체인(602)은 불변성 (tamper proof)을 가지므로, 이러한 블록 체인(602)의 성질은 탬퍼(이상, anomaly)을 검출하는데 사용될 수 있고, 이상 검출 과정은 raw values 또는 function of raw values에 기초하여 결정될 수 있다. 군집의 행동은 군집 내 이상(anomaly)을 검출하기 위해 블록 체인 내 규칙의 설정을 도울 수 있고, 값들(raw data or a function of raw data)을 거래로써 저장하는 블록 체인(602)을 생성할 수 있다.
본 개시의 일 실시 예에 따른 이상 검출 과정은 군집의 현재 상태 및 행동에 대하여 유도될 수 있다. 본 개시에 따른 군집 내 트랜젝션들의 해시 값은 머클 트리 형식으로 하나의 해시 값으로 압축될 수 있다. 압축된 하나의 해시 값은 비대칭 암호화 방식으로 암호화되어 각 노드로 브로드캐스팅될 수 있다. 머클 트리 방식으로 저장된 각 트랜젝션의 해시 값들 중, 머클 트리 루트 상의 하나의 해시 값만 변경되어도, 머클 트리의 최상위 해시 값은 변경될 수 있다. 따라서, 블록 내 단 하나의 트랜젝션 만이 변경되어도, 해당 트랜젝션이 기록된 블록은 검증을 통과할 수 없다.
본 개시에 따른 노드는 모든 트랜젝션들의 해시 값을 머클 트리 형식으로 압축함으로써 생성된 하나의 해시 값을 프라이빗 키로 암호화하여 전자 서명을 생성한 후, 전자 서명과 공개 키를 함께 다른 노드로 전송할 수 있다. 따라서, 블록 체인 시스템에 참여하는 노드는 수신된 블록의 트랜젝션이 변경되었는지 여부를 쉽게 검출할 수 있고, 따라서 트랜젝션의 변경 여부에 따라 새로 생성된 블록 검증과정을 수행함으로써, IOT 디바이스들이 flagged(anomaly detection)되었는지 여부 및 군집 내 IOT 디바이스들의 이상을 쉽게 검출할 수 있다. 본 개시에 따른 군집 제어 장치는 이상을 검출한 후, 검출된 이상을 트랜젝션으로써 블록에 기록하고, 해당 블록을 전체 노드에 공유할 수 있다.
S1922에서, 본 개시에 따른 군집 제어 장치는 제1 규칙에 기초하여, 복수의 노드들 중에서 적어도 하나의 노드들을 포함하는 군집을 검출할 수 있다. S1924에서, 군집 제어 장치는 검출된 군집 내 변화에 기초하여, 제1 규칙을 갱신할 수 있다. 일 실시 예에 의하면, 군집 제어 장치가 제1 규칙을 갱신하는 과정은 제1 규칙을 수정하여 제2 규칙을 생성하는 과정을 포함할 수 있고, 생성된 제2 규칙은 갱신된 제1 규칙에 대응될 수 있다.
S1926에서, 군집 제어 장치는 갱신된 제1 규칙을 기록한 블록을 각 노드에 브로드캐스팅함으로써 기존의 블록 체인에 갱신된 제1 규칙을 기록한 블록을 연결시킬 수 있다. 즉, 각 블록 체인은 각 노드에 의해 갱신될 수 있다. 예를 들어, 제1 규칙이 기록된 블록은 제1 규칙에 기초하여, 각 노드에 의해 검증될 수 있다. 일 실시 예에 의하면, 원장(ledger)은 각 노드가 공유하는 블록 체인에 대응될 수 있다.
S1928에서, 군집 제어 장치는 갱신된 원장을 기초로, 군집의 규칙을 갱신할 수 있다. 또한, 군집 제어 장치는 갱신된 군집의 규칙에 기초하여 군집 내 전체적(Global)행동을 유도할 수 있다. S1930에서, 군집 제어 장치는 갱신된 블록 체인을 이용하여 군집 내 이상을 검출할 수 있다. 예를 들어, 군집 제어 장치가 검출한 이상에 기초하여 원장은 갱신되며, 따라서, 악의적인 노드가 악의적인 행동을 수행할 경우, 이미 디바이스들간 데이터가 공유되어 있어, 데이터를 위조하기 위한 높은 비용이 소모되므로, 악의적인 노드의 행동은 다른 노드의 데이터 내지 행동에 영향을 미칠 수 없다.
일 실시 예에 의하면, 군집 제어 장치는 블록 체인을 공유하는 각 노드가 따르는 군집의 규칙들을 생성, 갱신, 수정 및 변경함으로써 규칙들을 적응적으로 만들 수 있고, 적응적으로 변경된 규칙들은 블록 체인의 동적 규칙(Dynamic rule)에 대응될 수 있다. 즉, 군집 규칙들은 블록 체인 내의 군집 상태, 성질 행동, 런타임 합의 규칙(1013)에 기초하여 변경될 수 있고, 또한, 동적으로 진화하거나 적응될 수 있으며 갱신될 수 있다. 군집의 행동은 군집 내 디바이스들간에 공유되는 raw values 및 function of raw value에 기초하여 결정될 수 있다. 각 노드(예컨대 디바이스)는 관련된 파라미터의 값 및 각 노드에 대해 갱신된 각 노드의 과거 성능 및 상태를 기록하기 위한 원장을 포함할 수 있다. 군집의 행동은 이상들(1015)을 검출하기 위해 사용되는 블록 체인 내에서 규칙을 설정하는데 도움이 될 수 있다.
도 20은 일 실시 예에 따른 군집 제어 장치의 블록도이다.
일 실시 예에 따른 군집 제어 장치(1000)는 프로세서(1300), 통신 인터페이스(1500) 및 메모리(1700)를 포함할 수 있다.
프로세서(1300)는 메모리(1700)에 저장된 하나 이상의 인스트럭션을 실행할 수 있다. 예를 들어, 프로세서(1300)는 메모리에 저장된 하나 이상의 인스트럭션을 실행함으로써, 통신 인터페이스 및 메모리를 제어함고, 군집 제어 방법을 수행할 수 있다. 즉, 본 개시에 따른 프로세서(1300)는 상기 군집 내 포함된 적어도 하나의 노드들의 특성에 기초하여 상기 군집에 관한 제1 규칙을 생성하고, 상기 생성된 제1 규칙을 상기 적어도 하나의 노드들에 공유하며, 공유된 제1 규칙에 기초하여 상기 적어도 하나의 노드들을 포함하는 상기 군집을 형성하고, 군집 내 적어도 하나의 노드들에 대한 변화를 검출며, 검출된 변화에 기초하여 상기 제1 규칙을 제2 규칙으로 변경할 수 있다.
또한 프로세서(1300)는 메모리에 저장된 하나이상의 인스트럭션을 실행함으로써, 상기 제2 규칙을 상기 적어도 하나의 노드들과 공유하고, 상기 공유된 제2 규칙에 기초하여 상기 군집 내 적어도 하나의 노드들의 변화를 검출할 수 있다. 일 실시 예에 의하면, 프로세서(1300)는 하나 이상의 인스트럭션을 실행함으로써, 상기 제2 규칙에 기초하여 검출된 변화에 기초하여, 상기 군집 내 상기 제2 규칙에 대응되지 않는 동작을 나타내는 이상(anomaly) 노드를 검출할 수 있다. 또한, 본 개시에 따른 프로세서(1300)는 도 1 내지 도 19에서 기술된 군집 기반 시스템(swarm based system)이 군집을 제어하여 이상을 검출하기 위해 수행하는 동작들을 모두 수행할 수 있다.
일 실시 예에 의하면, 프로세서(1300)는 상기 하나 이상의 인스트럭션을 실행함으로써 적어도 하나의 노드들의 특성(attribute), 성질(property), 현재 상태(current state)에 관한 데이터 및 상기 특성, 성질 및 현재 상태에 관한 데이터를 입력으로 하는 커널(kernel) 함수에 기초하여 상기 제1 규칙을 생성할 수 있다.
일 실시 예에 의하면, 프로세서(1300)는 생성된 제1 규칙을 상기 제1 규칙을 생성한 노드의 무작위로 선택된 피어(peer) 노드에 브로드캐스팅(broadcasting) 하고, 상기 제1 규칙이 상기 군집 내 모든 노드들에 브로드캐스팅되면, 상기 제1 규칙에 기초하여 선출된 상기 군집 내 적어도 하나의 노드가 상기 제1 규칙을 기록한 블록을 생성하며, 상기 블록을 생성한 노드가 무작위로 선택된 적어도 하나의 피어(peer) 노드에 생성된 블록을 브로드캐스팅(broadcasting)하고, 상기 제1 규칙에 기초하여, 상기 브로드캐스팅된 블록을 검증하며, 상기 검증된 블록을 블록체인에 연결할 수 있다.
또한, 상기 프로세서는 상기 하나 이상의 인스트럭션을 실행함으로써, 상기 제1 규칙에 기초하여 상기 군집 내 적어도 하나의 노드들의 특성, 성질 및 현재 상태의 변화를 검출하고, 상기 군집 내 적어도 하나의 노드들의 특성, 성질 및 현재 상태의 변화에 기초하여 상기 군집의 변화를 검출할 수 있다.
일 실시 예에 의하면, 프로세서는 상기 검출된 변화에 기초하여 상기 제1 규칙을 갱신하고, 상기 검출된 변화에 기초하여 상기 제1 규칙을 수정하며, 상기 검출된 변화에 기초하여 상기 제1 규칙의 경계 조건을 재설정하고, 갱신된 제1 규칙, 상기 수정된 제1 규칙 및 상기 재설정된 경계 조건을 포함하는 제1 규칙 중 적어도 하나를 이용하여 상기 제2 규칙을 생성할 수 있다.
통신 인터페이스(1300)는 외부 장치와 통신을 가능하게 하는 하나 이상의 구성 요소를 포함할 수 있으며, 예를 들어 근거리 통신 모듈, 유선 통신 모듈 및 무선 통신 모듈 중 적어도 하나를 포함할 수 있다. 또한, 본 개시의 근거리 통신 모듈(short-range wireless communication module)은 블루투스 통신 모듈, BLE(Bluetooth Low Energy) 통신 모듈, 근거리 무선 통신 모듈(Near Field Communication Module), WLAN(와이파이) 통신 모듈, 지그비(Zigbee) 통신 모듈, 적외선(IrDA, infrared Data Association) 통신 모듈, WFD(Wi-Fi Direct) 통신 모듈, UWB() 통신 모듈, Ant+ 통신 모듈 등을 포함할 수 있으나, 이에 한정되는 것은 아니다. 즉, 통신 인터페이스(1300)는 군집 내 노드들 사이의 통신 뿐만 아니라, 군집 단위의 통신을 가능하게 할 수도 있다. 또한 통신 인터페이스(1300)는 군집과 서버 사이의 트랜젝션들의 송수신을 수행할 수도 있다.
메모리(1700)는 하나 이상의 인스트럭션을 저장할 수 있다. 예를 들어, 메모리(1700)가 저장하는 인스트럭션은 군집 기반 시스템 내지 군집 제어 장치가 수행하는 군집 제어 방법을 실행하기 위한 컴퓨터에서 실행가능한 명령어들의 집합일 수 있다. 일 실시 예에 따르면, 메모리(1700)는 내장 메모리 또는 외장 메모리를 포함할 수 있다.
예를 들어, 내장 메모리는, 휘발성 메모리(예: DRAM(dynamic RAM), SRAM(static RAM), 또는 SDRAM(synchronous dynamic RAM) 등), 비휘발성 메모리(non-volatile Memory)(예: OTPROM(one time programmable ROM), PROM(programmable ROM), EPROM(erasable and programmable ROM), EEPROM(electrically erasable and programmable ROM), mask ROM, flash ROM, 플래시 메모리(예: NAND flash 또는 NOR flash 등), 하드 드라이브, 또는 솔리드 스테이트 드라이브(solid state drive(SSD)) 중 적어도 하나를 포함할 수 있다.
외장 메모리는 플래시 드라이브(flash drive), 예를 들면, CF(compact flash), SD(secure digital), Micro-SD(micro secure digital), Mini-SD(mini secure digital), xD(extreme digital), MMC(multi-media card) 또는 메모리 스틱(memory stick) 등을 포함할 수 있다. 외장 메모리는 다양한 인터페이스를 통하여 네트워크 제어 장치(10)와 기능적으로 및/또는 물리적으로 연결될 수 있다. 본 개시에 따른 군집 제어 장치는 군집 내 노드들의 외부에 위치하여 군집 내 노드들을 제어할 수도 있지만, 군집 내 노드들 각각의 내부에 포함되어, 노드들의 군집 형성을 유도할 수도 있다.
도 21은 일 실시 예에 따른 군집 제어 방법을 수행하는 서버의 블록도이다.
일 실시 예에 따르면, 군집 제어 장치(1000)가 수행하는 군집 제어 방법은 군집 내 디바이스들과 연결되어 통신 가능한 서버(2000)에서 수행될 수도 있다. 예를 들어, 본 개시의 일 실시 예에 따른 서버(2000)는 통신 인터페이스(2100), 데이터 베이스(2200) 및 프로세서(2300)를 포함할 수 있다.
예를 들어, 본 개시에 따른 서버(2000)내 통신 인터페이스(2100)는 도 20의 군집 제어 장치의 통신 인터페이스에 대응될 수 있고, 서버(2000)의 데이터 베이스(2200)는 도 20의 군집 제어 장치의 메모리(1700)에 대응될 수 있다. 또한, 서버(2000)의 프로세서(2300)는 도 1 내지 20에서 기술된 군집 제어 장치 내지 군집 기반 시스템이 수행하는 군집 제어 방법을 위한 알고리즘을 수행할 수 있다.
본 개시의 실시 예에 따른 방법들은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다.
일부 실시예는 컴퓨터에 의해 실행되는 프로그램 모듈과 같은 컴퓨터에 의해 실행가능한 명령어를 포함하는 기록 매체의 형태로도 구현될 수 있다. 컴퓨터 판독 가능 매체는 컴퓨터에 의해 액세스될 수 있는 임의의 가용 매체일 수 있고, 휘발성 및 비휘발성 매체, 분리형 및 비분리형 매체를 모두 포함한다. 또한, 컴퓨터 판독가능 매체는 컴퓨터 저장 매체 및 통신 매체를 모두 포함할 수 있다. 컴퓨터 저장 매체는 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈 또는 기타 데이터와 같은 정보의 저장을 위한 임의의 방법 또는 기술로 구현된 휘발성 및 비휘발성, 분리형 및 비분리형 매체를 모두 포함한다. 통신 매체는 전형적으로 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈, 또는 반송파와 같은 변조된 데이터 신호의 기타 데이터, 또는 기타 전송 메커니즘을 포함하며, 임의의 정보 전달 매체를 포함한다. 또한, 일부 실시예는 컴퓨터에 의해 실행되는 컴퓨터 프로그램과 같은 컴퓨터에 의해 실행가능한 명령어를 포함하는 컴퓨터 프로그램 또는 컴퓨터 프로그램 제품 (computer program product)으로도 구현될 수 있다.
이상에서 본 발명의 실시예에 대하여 상세하게 설명하였지만 본 발명의 권리범위는 이에 한정되는 것은 아니고 다음의 청구범위에서 정의하고 있는 본 발명의 기본 개념을 이용한 당업자의 여러 변형 및 개량 형태 또한 본 발명의 권리범위에 속한다.
Claims (15)
- 블록 체인을 이용하는 군집 제어 장치가 군집을 제어하는 방법에 있어서,복수의 노드들 중 적어도 하나의 노드들의 특성에 기초하여 상기 군집에 관한 제1 규칙을 생성하는 동작;상기 생성된 제1 규칙을 상기 적어도 하나의 노드들과 공유하는 동작;상기 공유된 제1 규칙에 기초하여 상기 적어도 하나의 노드들을 포함하는 상기 군집을 형성하는 동작;상기 군집 내 적어도 하나의 노드들에 대한 변화를 검출하는 동작; 및상기 검출된 변화에 기초하여 상기 제1 규칙을 제2 규칙으로 변경하는 동작; 을 포함하는, 방법.
- 제1항에 있어서,상기 제2 규칙을 상기 적어도 하나의 노드들과 공유하는 동작; 및상기 공유된 제2 규칙에 기초하여 상기 군집 내 적어도 하나의 노드들의 변화를 검출하는 동작; 을 더 포함하는, 방법.
- 제2항에 있어서,상기 제2 규칙에 기초하여 검출된 변화에 기초하여, 상기 군집 내 상기 제2 규칙에 대응되지 않는 동작을 나타내는 이상(anomaly) 노드를 검출하는 동작; 을 더 포함하는 것인, 방법.
- 제1항에 있어서, 상기 제1 규칙을 생성하는 동작은상기 적어도 하나의 노드들의 특성(attribute), 성질(property), 현재 상태(current state)에 관한 데이터 및 상기 특성, 성질 및 현재 상태에 관한 데이터를 입력으로 하는 커널(kernel) 함수에 기초하여 상기 제1 규칙을 생성하는 동작; 을 포함하는 것인, 방법.
- 제1항에 있어서, 상기 제1 규칙을 공유하는 동작은상기 생성된 제1 규칙을 상기 제1 규칙을 생성한 노드의 무작위로 선택된 적어도 하나의 피어(peer) 노드에 브로드캐스팅(broadcasting) 하는 동작;상기 제1 규칙이 상기 군집 내 모든 노드들에 브로드캐스팅되면, 상기 제1 규칙에 기초하여 선출된 상기 군집 내 적어도 하나의 노드가 상기 제1 규칙을 기록한 블록을 생성하는 동작;상기 블록을 생성한 노드가 무작위로 선택된 피어(peer) 노드들에 생성된 블록을 브로드캐스팅(broadcasting)하는 동작;상기 제1 규칙에 기초하여, 상기 브로드캐스팅된 블록을 검증하는 동작; 및상기 검증된 블록을 블록체인에 연결하는 동작; 을 포함하는 것인, 방법.
- 제1항에 있어서, 상기 변화를 검출하는 동작은상기 제1 규칙에 기초하여 상기 군집 내 적어도 하나의 노드들의 특성, 성질 및 현재 상태의 변화를 검출하는 동작; 및상기 군집 내 적어도 하나의 노드들의 특성, 성질 및 현재 상태의 변화에 기초하여 상기 군집의 변화를 검출하는 동작; 을 포함하는 것인, 방법.
- 제1항에 있어서, 상기 변경하는 동작은상기 검출된 변화에 기초하여 상기 제1 규칙을 갱신하는 동작;상기 검출된 변화에 기초하여 상기 제1 규칙을 수정하는 동작;상기 검출된 변화에 기초하여 상기 제1 규칙의 경계 조건을 재설정하는 동작; 및상기 갱신된 제1 규칙, 상기 수정된 제1 규칙 및 상기 재설정된 경계 조건을 포함하는 제1 규칙 중 적어도 하나를 이용하여 상기 제2 규칙을 생성하는 동작; 을 포함하는, 방법.
- 제1항에 있어서,상기 군집은 동종(Homogeneous)노드 또는 이종(Heterogeneous)노드 중 적어도 하나를 포함하고, 상기 제1 규칙 및 상기 제2 규칙 중 적어도 하나에 기초하여 동작하는 것을 특징으로 하는, 방법.
- 제1항에 있어서,상기 형성된 군집 내의 모든 노드들은 상기 제1 규칙, 상기 제2 규칙 및 상기 군집 내 모든 노드들의 동작 이력에 관한 트랜젝션들(transactions) 및 상기 트랜젝션들이 기록된 적어도 하나의 블록이 체인 형태로 연결한 블록 체인을 공유하는 것을 특징으로 하는, 방법.
- 제1항에 있어서, 상기 제1 규칙 및 제2 규칙은상기 군집의 형성, 상기 블록을 생성하기 위한 노드의 선출, 상기 블록의 검증 및 상기 블록 체인의 합의 중 적어도 하나에 대한 규칙을 포함하는 것인, 방법.
- 블록 체인을 이용하는 군집 제어 장치에 있어서,상기 군집 내 적어도 하나의 노드들과 통신하기 위한 통신 인터페이스;하나 이상의 인스트럭션을 저장하는 메모리; 및상기 하나 이상의 인스트럭션을 실행하는 프로세서; 를 포함하고,상기 프로세서는 상기 하나 이상의 인스트럭션을 실행함으로써,복수의 노드들 중 적어도 하나의 노드들의 특성에 기초하여 상기 군집에 관한 제1 규칙을 생성하고;상기 생성된 제1 규칙을 상기 적어도 하나의 노드들에 공유하고;상기 공유된 제1 규칙에 기초하여 상기 적어도 하나의 노드들을 포함하는 상기 군집을 형성하고;상기 군집 내 적어도 하나의 노드들에 대한 변화를 검출하고;상기 검출된 변화에 기초하여 상기 제1 규칙을 제2 규칙으로 변경하는 군집 제어 장치.
- 제11항에 있어서, 상기 프로세서는 상기 하나 이상의 인스트럭션을 실행함으로써,상기 제2 규칙을 상기 적어도 하나의 노드들과 공유하고;상기 공유된 제2 규칙에 기초하여 상기 군집 내 적어도 하나의 노드들의 변화를 검출하는 것을 특징으로 하는 군집 제어 장치.
- 제12항에 있어서, 상기 프로세서는 상기 하나 이상의 인스트럭션을 실행함으로써,상기 제2 규칙에 기초하여 검출된 변화에 기초하여, 상기 군집 내 상기 제2 규칙에 대응되지 않는 동작을 나타내는 이상(anomaly) 노드를 검출하는 것을 특징으로 하는 군집 제어 장치.
- 제11항에 있어서,상기 군집은 동종(Homogeneous)노드 또는 이종(Heterogeneous)노드 중 적어도 하나를 포함하고, 상기 제1 규칙 및 상기 제2 규칙 중 적어도 하나에 기초하여 동작하는 것을 특징으로 하는, 군집 제어 장치.
- 제1항의 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록 매체.
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/059,010 US20210209483A1 (en) | 2018-06-14 | 2019-05-15 | Swarm control apparatus and method using dynamic rule-based blockchain |
EP19822990.8A EP3809339A4 (en) | 2018-06-14 | 2019-05-15 | DEVICE AND METHOD FOR SWARM CONTROL WITH DYNAMIC RULE-BASED BLOCKCHAIN |
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
IN201811022338 | 2018-06-14 | ||
IN201811022338 | 2018-06-14 | ||
KR1020190055831A KR20190141576A (ko) | 2018-06-14 | 2019-05-13 | 동적 규칙 기반의 블록 체인을 이용하는 군집 제어 장치 및 방법 |
KR10-2019-0055831 | 2019-05-13 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2019245167A1 true WO2019245167A1 (ko) | 2019-12-26 |
Family
ID=68984124
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/KR2019/005842 WO2019245167A1 (ko) | 2018-06-14 | 2019-05-15 | 동적 규칙 기반의 블록 체인을 이용하는 군집 제어 장치 및 방법 |
Country Status (1)
Country | Link |
---|---|
WO (1) | WO2019245167A1 (ko) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111930121A (zh) * | 2020-08-10 | 2020-11-13 | 哈尔滨工程大学 | 一种室内移动机器人的混合路径规划方法 |
CN113870588A (zh) * | 2021-08-20 | 2021-12-31 | 深圳市人工智能与机器人研究院 | 一种基于深度q网络的交通灯控制方法、终端及存储介质 |
CN115037648A (zh) * | 2022-06-07 | 2022-09-09 | 河海大学 | 基于数据流约简的智能合约测试用例生成方法及*** |
US20230306824A1 (en) * | 2022-03-28 | 2023-09-28 | Bank Of America Corporation | Authorized resource distribution via a resource distribution node in a distributed network of nodes |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20160028552A1 (en) * | 2014-07-25 | 2016-01-28 | Blockchain Technologies Corporation | System and method for creating a multi-branched blockchain with configurable protocol rules |
US20160224949A1 (en) * | 2015-02-04 | 2016-08-04 | Ripple Labs Inc. | Temporary consensus subnetwork in a distributed network for payment processing |
US20160330034A1 (en) * | 2015-05-07 | 2016-11-10 | Blockstream Corporation | Transferring ledger assets between blockchains via pegged sidechains |
US20170031676A1 (en) * | 2015-07-27 | 2017-02-02 | Deja Vu Security, Llc | Blockchain computer data distribution |
US20180123882A1 (en) * | 2016-10-28 | 2018-05-03 | International Business Machines Corporation | Changing an existing blockchain trust configuration |
-
2019
- 2019-05-15 WO PCT/KR2019/005842 patent/WO2019245167A1/ko unknown
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20160028552A1 (en) * | 2014-07-25 | 2016-01-28 | Blockchain Technologies Corporation | System and method for creating a multi-branched blockchain with configurable protocol rules |
US20160224949A1 (en) * | 2015-02-04 | 2016-08-04 | Ripple Labs Inc. | Temporary consensus subnetwork in a distributed network for payment processing |
US20160330034A1 (en) * | 2015-05-07 | 2016-11-10 | Blockstream Corporation | Transferring ledger assets between blockchains via pegged sidechains |
US20170031676A1 (en) * | 2015-07-27 | 2017-02-02 | Deja Vu Security, Llc | Blockchain computer data distribution |
US20180123882A1 (en) * | 2016-10-28 | 2018-05-03 | International Business Machines Corporation | Changing an existing blockchain trust configuration |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111930121A (zh) * | 2020-08-10 | 2020-11-13 | 哈尔滨工程大学 | 一种室内移动机器人的混合路径规划方法 |
CN113870588A (zh) * | 2021-08-20 | 2021-12-31 | 深圳市人工智能与机器人研究院 | 一种基于深度q网络的交通灯控制方法、终端及存储介质 |
US20230306824A1 (en) * | 2022-03-28 | 2023-09-28 | Bank Of America Corporation | Authorized resource distribution via a resource distribution node in a distributed network of nodes |
CN115037648A (zh) * | 2022-06-07 | 2022-09-09 | 河海大学 | 基于数据流约简的智能合约测试用例生成方法及*** |
CN115037648B (zh) * | 2022-06-07 | 2023-11-10 | 河海大学 | 基于数据流约简的智能合约测试用例生成方法及*** |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2019245167A1 (ko) | 동적 규칙 기반의 블록 체인을 이용하는 군집 제어 장치 및 방법 | |
WO2020235782A1 (ko) | 분산 환경에서의 신원 인증 방법 | |
WO2021071157A1 (en) | Electronic device and method for managing blockchain address using the same | |
Dushku et al. | SARA: Secure asynchronous remote attestation for IoT systems | |
Bouacida et al. | Vulnerabilities in federated learning | |
Liyanage et al. | Open RAN security: Challenges and opportunities | |
WO2020149454A1 (ko) | 사용자에 대한 인증을 수행하는 전자 장치 및 그 동작 방법 | |
WO2021025482A1 (en) | Electronic device and method for generating attestation certificate based on fused key | |
KR101723715B1 (ko) | 컴퓨터 네트워크의 엔터프라이즈 미션 관리를 위한 시스템 및 방법 | |
WO2019208861A1 (ko) | 전자 지갑을 이용한 암호화폐의 거래 서비스를 제공하는 장치 및 방법 | |
WO2020149561A1 (ko) | 블록체인을 이용한 무인 이동체 통신 제어 시스템 및 이를 이용한 무인 이동체의 통신 방법 | |
US20230171276A1 (en) | Apparatus having engine using artificial intelligence for detecting bot anomalies in a computer network | |
WO2019198846A1 (ko) | 가챠 시스템의 확률 정보를 획득하는 방법, 장치 및 컴퓨터 프로그램 | |
WO2022019681A1 (ko) | 엣지 컴퓨팅 시스템 및 연결 기기 추천 방법 | |
WO2022019682A1 (ko) | 엣지 컴퓨팅 시스템 및 방법 | |
Santos et al. | A stochastic adaptive model to explore mobile botnet dynamics | |
EP3994839A1 (en) | Electronic device providing blockchain account information and method of operating the same | |
CN115550078B (zh) | 一种融合动态资源池调度与响应的方法及*** | |
WO2022154272A1 (ko) | Iot 장치 및 iot 장치를 서버에 온보딩 하는 방법 | |
CN114065180A (zh) | 一种基于可信计算3.0的感知设备安全验证*** | |
WO2022114857A1 (ko) | 블록 체인 네트워크를 이용하여 데이터를 공유하는 전자 장치 및 이의 동작 방법 | |
US20210084061A1 (en) | Bio-inspired agile cyber-security assurance framework | |
WO2020153797A1 (en) | Method and apparatus for managing data in a network based on swarm intelligence | |
WO2020184995A1 (ko) | Euicc 단말을 변경하는 방법 및 장치 | |
WO2021095926A1 (ko) | 복합 iot 디바이스 및 이를 이용한 공유서비스 제공방법, 및 블록체인 응용 외부 정보 인식 및 정보 제공방법 |
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: 19822990 Country of ref document: EP Kind code of ref document: A1 |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
ENP | Entry into the national phase |
Ref document number: 2019822990 Country of ref document: EP Effective date: 20210114 |