KR20210067908A - Method for propagating block of blockchain nodes - Google Patents

Method for propagating block of blockchain nodes Download PDF

Info

Publication number
KR20210067908A
KR20210067908A KR1020200160389A KR20200160389A KR20210067908A KR 20210067908 A KR20210067908 A KR 20210067908A KR 1020200160389 A KR1020200160389 A KR 1020200160389A KR 20200160389 A KR20200160389 A KR 20200160389A KR 20210067908 A KR20210067908 A KR 20210067908A
Authority
KR
South Korea
Prior art keywords
node
block
representative
nodes
blocks
Prior art date
Application number
KR1020200160389A
Other languages
Korean (ko)
Other versions
KR102425058B1 (en
Inventor
염흥열
김미연
Original Assignee
순천향대학교 산학협력단
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 순천향대학교 산학협력단 filed Critical 순천향대학교 산학협력단
Publication of KR20210067908A publication Critical patent/KR20210067908A/en
Application granted granted Critical
Publication of KR102425058B1 publication Critical patent/KR102425058B1/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • H04L67/1087Peer-to-peer [P2P] networks using cross-functional networking aspects
    • H04L67/1093Some peer nodes performing special functions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • H04L67/1044Group management mechanisms 
    • H04L67/1053Group management mechanisms  with pre-configuration of logical or physical connections with a determined number of other peers
    • H04L67/1057Group management mechanisms  with pre-configuration of logical or physical connections with a determined number of other peers involving pre-assessment of levels of reputation of peers

Landscapes

  • Engineering & Computer Science (AREA)
  • Computing Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Theoretical Computer Science (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
  • Nonmetallic Welding Materials (AREA)
  • Paper (AREA)

Abstract

The present invention relates to a block propagating method of a blockchain node which comprises the following steps of: identifying, by a first node, a delegation propagation event requiring a plurality of blocks; making a blockchain synchronization request to linked nodes by the first node; providing, by a representative node among the linked nodes, a plurality of blocks required by the first node to the first node according to the synchronization request; determining whether a sender is the representative node by the first node before the plurality of blocks are received; and receiving the plurality of blocks from the representative node and performing blockchain synchronization by the first node if the sender is the representative node.

Description

블록 체인 노드의 블록 전파 방법{METHOD FOR PROPAGATING BLOCK OF BLOCKCHAIN NODES}How block chain nodes propagate blocks {METHOD FOR PROPAGATING BLOCK OF BLOCKCHAIN NODES}

본 발명은 블록체인노드의 네트워크 고립 또는 악의적 공격을 방지하기 위한 블록 전파 방법에 관한 것이다.The present invention relates to a block propagation method for preventing network isolation or malicious attacks of blockchain nodes.

블록체인은 P2P 네트워크를 기반으로 네트워크를 구성한다. 노드가 처음 블록체인 네트워크에 합류하면 다른 노드와 연결되고 노드끼리 메시지를 주고받는다. 주고받는 메시지에는 버전 혹은 ping, 트랜잭션, 블록에 대한 메시지 등이 포함된다. Blockchain constructs a network based on a P2P network. When a node joins a blockchain network for the first time, it connects with other nodes and exchanges messages between nodes. Messages sent and received include messages about versions or pings, transactions, and blocks.

이러한 블록체인 네트워크에서의 노드는 블록체인 네트워크에 합류하면서부터 메시지를 주고받는 동안 다양한 위협에 노출된다.Nodes in these blockchain networks are exposed to various threats from joining the blockchain network while exchanging messages.

관련된 공격으로는 네트워크 및 마이닝에 관한 공격인 sybil attack, eclipse attack, selfish mining 등이 있다. 공격자는 이러한 비정상적인 행위로 이득을 취하거나 다른 노드를 악의적으로 이용하기도 한다. 특히 처음 합류하게 되는 노드는 악의적인 노드에 연결될 시 조작된 블록체인을 전달받거나 악의적인 노드 하위의 마이닝 봇처럼 이용될 수 있는 위험이 있다. Related attacks include sybil attack, eclipse attack, and selfish mining, which are attacks on networks and mining. Attackers may take advantage of these abnormal behaviors or use other nodes maliciously. In particular, there is a risk that a node joining for the first time may receive a manipulated blockchain when connected to a malicious node or be used like a mining bot under the malicious node.

블록 체인은 P2P(Peer to Peer) 네트워크를 기반으로 네트워크를 구성한다. 노드가 처음 블록 체인 네트워크에 합류하면 다른 노드와 연결되고 노드끼리 메시지를 주고 받게 되며, 이때 주고받는 메시지에는 버전 혹은 핑(Packet Internet Groper: ping), 트랜잭션, 블록에 대한 메시지 등이 포함된다.The blockchain constitutes a network based on a peer-to-peer (P2P) network. When a node joins a blockchain network for the first time, it is connected to other nodes and exchanges messages between nodes. The messages exchanged include versions or pings (Packet Internet Groper: ping), transactions, and messages about blocks.

이처럼 블록 체인 네트워크에 합류하면서부터 메시지를 주고받는 동안, 노드는 네트워크 및 마이닝에 대한 공격인 시빌 공격(sybil attack), 이클립스 공격(eclipse attack), 셀피시 마이닝(selfish mining) 등 다양한 위협에 노출된다. 특히, 처음으로 네트워크에 합류하게 되는 노드는 악의적인 노드에 연결될 경우 조작된 블록 체인을 전달받거나 악의적인 노드 하위의 마이닝 봇처럼 이용될 수 있는 위험이 있다.As such, while joining the blockchain network and exchanging messages, nodes are exposed to various threats such as sybil attacks, eclipse attacks, and selfish mining, which are attacks on the network and mining. . In particular, there is a risk that a node joining the network for the first time may receive a manipulated blockchain or be used like a mining bot under the malicious node when connected to a malicious node.

시빌 공격은 한 공격자가 다수의 신원을 생성하여 마치 개별적인 노드인 것처럼 가장하는 공격이다. 공격자는 하나의 노드에서 다수의 신원을 관리하거나, 다수의 노드를 이용하여 실제보다 더 큰 영향력을 행사할 수도 있다. 공격자는 다수의 가짜 신원을 이용해 피해자와 연결되는 모든 피어 노드를 장악한다. 이를 통해 피해 노드를 네트워크 상 고립시켜 피해 노드가 생성한 트랜잭션을 이중 지불 공격에 사용하는 등의 조작을 할 수 있다.A Sybil attack is an attack in which an attacker creates multiple identities and pretends to be individual nodes. An attacker may manage multiple identities on a single node or use multiple nodes to exert greater influence than it actually is. Attackers use multiple fake identities to gain control over all peer nodes that connect to victims. Through this, the victim node is isolated on the network and the transaction generated by the victim node can be manipulated, such as being used in a double-spending attack.

이클립스 공격은 공격자가 다수의 IP를 이용해 피해 노드를 고립시키는 공격을 의미한다. 공격자는 먼저 피해 노드와 연결되는 통신을 반복적으로 수립하여, 피해 노드의 피어 테이블에 공격자의 IP 혹은 블록체인 네트워크와 관련없는 IP로 채운다. 피해 노드가 버전 업데이트, 네트워크 연결 실패 혹은 파워에 문제가 발생하는 등의 이유로 시스템을 재구동하는 경우, 기존의 연결을 손실하고 공격자의 IP로만 통신을 구성하게 될 확률이 매우 높아진다. 공격이 성공하여 피해 노드의 통신을 장악하면 공격자는 피해 노드를 악의적인 마이닝, 합의 공격, 이중 지불 등에 이용할 수 있다.Eclipse attack refers to an attack in which an attacker uses multiple IPs to isolate a victim node. The attacker first repeatedly establishes communication with the victim node and fills the victim node's peer table with the attacker's IP or IPs not related to the blockchain network. If the victim node restarts the system due to a version update, network connection failure, or power failure, the probability of losing the existing connection and establishing communication only with the attacker's IP is very high. If the attack succeeds and takes over the communication of the victim node, the attacker can use the victim node for malicious mining, consensus attack, double payment, etc.

셀피시 마이닝은 악의적인 마이너가 블록을 생성하여 일부 블록만 전파하거나, 다수의 블록을 한꺼번에 전파하는 공격이다. 이를 통해 블록체인을 탈취하고 기존에 있던 블록을 폐기하여, 일반 마이너는 그로 취득한 이익과 사용한 자원을 잃는다. 악의적인 마이너는 기존 블록체인과 동일한 자신만의 체인을 두고, 블록을 생성한다. 블록을 생성하여도 바로 전파하지 않고 다른 노드가 블록을 생성하면 그때 자신의 블록을 전파한다. 만약 개인이 가진 체인이 기존 체인보다 1 블록 이상 길어지는 경우 제일 끝 단의 블록만 전파한다. 그러면 기존의 블록체인이 악의적인 마이너의 블록체인으로 변경되고, 새로 생성된 블록들이 폐기되면서 블록 보상을 잃게 된다.Self-fish mining is an attack in which a malicious miner creates blocks and propagates only some blocks or multiple blocks at once. Through this, the block chain is hijacked and the existing block is discarded, and the general miner loses the profits obtained and the resources used. Malicious miners create blocks with their own chain identical to the existing blockchain. Even if a block is created, it does not propagate immediately, but when another node creates a block, its own block is propagated at that time. If an individual's chain is longer than the existing chain by 1 block, only the last block is propagated. Then, the existing block chain is changed to the block chain of a malicious miner, and the block reward is lost as the newly created blocks are discarded.

본 발명의 실시예는 블록체인 네트워크에서 설정 지분율 이상을 가진 노드를 적어도 하나의 대표노드로 선정하여 처음 네트워크에 합류하게 되는 신규노드에게 블록 체인을 동기화할 수 있는 권한을 부여하는 블록 체인 노드의 블록 전파 방법을 제공하고자 한다.An embodiment of the present invention selects a node with a set stake or higher in a block chain network as at least one representative node and grants the right to synchronize the block chain to a new node joining the network for the first time. To provide a method of propagation.

또한, 본 발명의 실시예는 블록체인 네트워크에서 설정 지분율 이상을 가진 노드를 적어도 하나의 대표노드로 선정하여 복수의 블록에 대한 업데이트가 필요로 하는 노드에게 블록 체인을 동기화할 수 있는 권한을 부여하는 블록 체인 노드의 블록 전파 방법을 제공하고자 한다.In addition, an embodiment of the present invention selects a node with a set stake or higher in the block chain network as at least one representative node, and grants the right to synchronize the block chain to a node that needs to update a plurality of blocks. We want to provide a block propagation method for blockchain nodes.

다만, 본 실시예가 이루고자 하는 기술적 과제는 상기된 바와 같은 기술적 과제들로 한정되지 않으며, 또 다른 기술적 과제들이 존재할 수 있다.However, the technical problems to be achieved by the present embodiment are not limited to the technical problems described above, and other technical problems may exist.

상기 과제를 달성하기 위한 본 발명의 실시 예에 따른 블록 체인 노드의 블록 전파 방법은 제1 노드가 복수의 블록을 필요로 하는 위임 전파 이벤트를 파악하는 단계; 상기 제1 노드가 링크된 노드들에게 블록체인 동기화 요청을 하는 단계; 상기 링크된 노드들 중에서 대표노드가 상기 동기화 요청에 따라 상기 제1 노드에서 필요로 하는 복수의 블록을 상기 제1 노드에게 제공하는 단계; 상기 제1 노드가 복수의 블록을 수신하기 전에 전송자가 상기 대표노드인지를 파악하는 단계; 그리고 상기 제1 노드가 전송자가 상기 대표노드이면 상기 대표노드로부터 복수의 블록을 수신하고 블록체인 동기화를 수행하는 단계를 포함한다.A block propagation method of a block chain node according to an embodiment of the present invention for achieving the above object includes: identifying a delegation propagation event requiring a plurality of blocks by a first node; making a blockchain synchronization request to the linked nodes by the first node; providing, by a representative node among the linked nodes, a plurality of blocks required by the first node to the first node according to the synchronization request; determining whether the sender is the representative node before the first node receives the plurality of blocks; And if the first node is the sender is the representative node, receiving a plurality of blocks from the representative node and performing block chain synchronization.

본 발명의 실시 예에 따른 블록 체인 노드의 블록 전파 방법은 상기 링크된 노드들 중 일반노드는 상기 제1 노드의 동기화 요청을 거절하는 단계를 더 포함할 수 있다.The block propagation method of a block chain node according to an embodiment of the present invention may further include the step of rejecting the synchronization request of the first node by a general node among the linked nodes.

상기에서 대표노드는 총 암호화폐량에 대비 보유한 암호화폐량이 설정된 비율 이상인 노드이다. In the above, the representative node is a node that has more than a set ratio of the amount of cryptocurrency to the total amount of cryptocurrency.

본 발명의 실시 예에 따른 블록 체인 노드의 블록 전파 방법은 상기 제1 노드의 블록체인 동기화 요청에 상기 제1 노드가 생성한 블록이 포함되어 있으면, 상기 대표노드가 상기 제1 노드의 블록을 상기 링크된 노드들 모두에게 전송하는 단계, 상기 링크된 노드들 각각은 상기 제1 노드의 블록을 수신하기 전에 전송자가 상기 대표노드인지를 파악하는 단계, 그리고 상기 대표노드이면 상기 링크된 노드들 각각은 상기 대표노드로부터 상기 제1 노드의 블록을 수신하고 블록체인 동기화를 수행하는 단계를 더 포함할 수 있다.In the block propagation method of a block chain node according to an embodiment of the present invention, if the block generated by the first node is included in the block chain synchronization request of the first node, the representative node transmits the block of the first node. transmitting to all linked nodes, each of the linked nodes identifying whether the sender is the representative node before receiving the block of the first node, and if the representative node, each of the linked nodes The method may further include receiving the block of the first node from the representative node and performing block chain synchronization.

상기 과제를 달성하기 위한 본 발명의 다른 실시 예에 따른 블록 체인 노드의 블록 전파 방법은 제1 노드가 복수의 블록을 필요로 하는 위임 전파 이벤트를 파악하는 단계; 상기 제1 노드가 기 선정된 대표노드에게 블록체인 동기화 요청을 하는 단계; 상기 대표노드가 상기 동기화 요청에 따라 상기 제1 노드에서 필요로 하는 복수의 블록을 상기 제1 노드에게 제공하는 단계; 상기 제1 노드가 복수의 블록을 수신하기 전에 전송자가 상기 대표노드인지를 파악하는 단계; 그리고 상기 제1 노드가 전송자가 상기 대표노드이면 상기 대표노드로부터 복수의 블록을 수신하고 블록체인 동기화를 수행하는 단계를 포함한다.A block propagation method of a block chain node according to another embodiment of the present invention for achieving the above object includes: identifying a delegation propagation event requiring a plurality of blocks by a first node; making, by the first node, a block chain synchronization request to a pre-selected representative node; providing, by the representative node, a plurality of blocks required by the first node to the first node according to the synchronization request; determining whether the sender is the representative node before the first node receives the plurality of blocks; And if the first node is the sender is the representative node, receiving a plurality of blocks from the representative node and performing block chain synchronization.

상기에서 대표노드는 암호화폐량을 보유한 지분율이 설정 지분율 이상이고 상기 링크된 노드들 중에서 가장 지분율이 높은 노드이거나, 암호화폐량을 보유한 지분율이 설정 지분율 이상이고 상기 링크된 노드들 중에서 지분율이 높은 순서를 기준으로 설정된 n개의 노드이다.In the above, the representative node is the node in which the stake in the amount of cryptocurrency is greater than or equal to the set stake and the highest stake among the linked nodes, or the stake in the amount of cryptocurrency is greater than or equal to the set stake and the order of the highest stake among the linked nodes. n nodes set to .

본 발명의 실시 예에 따르면, 블록 체인 네트워크에 새로 합류하는 노드에 대한 네트워크 고립을 방지하고, selfish mining 등의 공격을 방지하여, 새로 전파되는 다수의 블록에 대한 신뢰성을 증대시킬 수 있다.According to an embodiment of the present invention, it is possible to prevent network isolation of nodes newly joining a block chain network and prevent attacks such as selfish mining, thereby increasing the reliability of a plurality of newly propagated blocks.

또한, 본 발명의 실시 예에 따르면, 조작된 블록체인을 받거나, 악의적인 공격자에게 자산이 탈취, 공격자 하위의 마이닝 봇처럼 이용되는 것을 일정 부분 방지할 수 있다.In addition, according to an embodiment of the present invention, it is possible to partially prevent receiving a manipulated block chain, stealing assets by a malicious attacker, and using it as a mining bot below the attacker.

도 1은 일반적인 블록체인 생성 및 전파 과정을 보인 도면이다.
도 2는 일반적인 블록체인 생성 및 전파 과정에서 본 발명의 실시 예에 따른 블록 체인 노드의 블록 전파 방법이 관여하는 과정을 보인 도면이다.
도 3은 본 발명의 실시 예에 따른 블록 체인 노드의 블록 전파 방법에서 대표노드를 설명하기 위한 도면이다.
도 4 및 도 5는 본 발명의 실시 예에 따른 블록 체인 노드의 블록 전파 방법의 개념을 설명하기 위한 개념도이다.
도 6은 본 발명의 실시 예에 따른 블록 체인 노드의 블록 전파 방법을 위한 블록체인 노드의 블록 구성도이다.
도 7은 본 발명의 제1 실시예에 따른 블록 체인 노드의 블록 전파 방법을 보인 순서도이다.
도 8은 본 발명의 제2 실시예에 따른 블록 체인 노드의 블록 전파 방법을 보인 순서도이다.
도 9는 본 발명의 제3 실시예에 따른 블록 체인 노드의 블록 전파 방법을 보인 순서도이다.
1 is a diagram showing a general block chain generation and propagation process.
2 is a diagram illustrating a process in which a block propagation method of a block chain node according to an embodiment of the present invention is involved in a general block chain generation and propagation process.
3 is a diagram for explaining a representative node in a block propagation method of a block chain node according to an embodiment of the present invention.
4 and 5 are conceptual diagrams for explaining the concept of a block propagation method of a block chain node according to an embodiment of the present invention.
6 is a block diagram of a block chain node for a block propagation method of a block chain node according to an embodiment of the present invention.
7 is a flowchart illustrating a block propagation method of a block chain node according to the first embodiment of the present invention.
8 is a flowchart illustrating a block propagation method of a block chain node according to a second embodiment of the present invention.
9 is a flowchart illustrating a block propagation method of a block chain node according to a third embodiment of the present invention.

아래에서는 첨부한 도면을 참조하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 본 발명의 실시예를 상세히 설명한다. 그러나 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시예에 한정되지 않는다. 본 발명을 명확하게 설명하기 위해 도면에서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다. 또한, 도면을 참고하여 설명하면서, 같은 명칭으로 나타낸 구성일지라도 도면에 따라 도면 번호가 달라질 수 있고, 도면 번호는 설명의 편의를 위해 기재된 것에 불과하고 해당 도면 번호에 의해 각 구성의 개념, 특징, 기능 또는 효과가 제한 해석되는 것은 아니다.DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS Hereinafter, embodiments of the present invention will be described in detail with reference to the accompanying drawings so that those skilled in the art can easily implement them. However, the present invention may be embodied in many different forms and is not limited to the embodiments described herein. In order to clearly explain the present invention, parts irrelevant to the description in the drawings are omitted, and similar reference numerals are attached to similar parts throughout the specification. In addition, while describing with reference to the drawings, even if the configuration indicated by the same name, the drawing number may vary depending on the drawing, and the drawing number is only described for convenience of description, and the concept, feature, and function of each configuration by the corresponding drawing number Or the effect is not to be construed as limiting.

명세서 전체에서, 어떤 부분이 다른 부분과 "연결"되어 있다고 할 때, 이는 "직접적으로 연결"되어 있는 경우뿐 아니라, 그 중간에 다른 소자를 사이에 두고 "전기적으로 연결"되어 있는 경우도 포함한다. 또한, 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있는 것을 의미하며, 하나 또는 그 이상의 다른 특징이나 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.Throughout the specification, when a part is "connected" with another part, this includes not only the case of being "directly connected" but also the case of being "electrically connected" with another element interposed therebetween. . In addition, when a part "includes" a certain component, it means that other components may be further included, rather than excluding other components, unless specifically stated to the contrary. It should be understood that the existence or addition of features or numbers, steps, operations, components, parts or combinations thereof is not precluded in advance.

본 명세서에 있어서 '부(部)' 또는 '모듈'이란, 하드웨어 또는 소프트웨어에 의해 실현되는 유닛(unit), 양방을 이용하여 실현되는 유닛을 포함하며, 하나의 유닛이 둘 이상의 하드웨어를 이용하여 실현되어도 되고, 둘 이상의 유닛이 하나의 하드웨어에 의해 실현되어도 된다.As used herein, the term 'part' or 'module' includes a unit realized by hardware or software, and a unit realized using both, and one unit is realized using two or more hardware. Alternatively, two or more units may be implemented by one piece of hardware.

이하에서는 첨부한 도면을 참고하여 본 발명의 실시 예에 따른 블록 체인 노드의 블록 전파 방법을 설명한다. 이하에서는 블록 체인 노드를 '노드'라고 칭하며, 노드들 중 위임 전파를 수행하는 노드를 '대표 노드'라 하고, 노드 중 대표 노드를 제외한 나머지를 '일반 노드'라고 한다. Hereinafter, a block propagation method of a block chain node according to an embodiment of the present invention will be described with reference to the accompanying drawings. Hereinafter, a block chain node is referred to as a 'node', a node that performs delegated propagation among nodes is referred to as a 'representative node', and the rest of the nodes excluding the representative node is referred to as a 'general node'.

도 1은 일반적인 블록체인 생성 및 전파 과정을 보인 도면이다. 도 1을 참고하면, 제1 노드는 새로운 거래 내역을 생성하면(S10), 해당 거래 내역이 담긴 블록을 생성한다(S11). S11 과정에서 제1 노드는 합의 알고리즘(PoW, PoS)에 따라 블록을 생성하고, 블록의 해시값 즉, 블록 해시를 생성한다.1 is a diagram showing a general block chain generation and propagation process. Referring to FIG. 1 , when a first node creates a new transaction detail (S10), it creates a block containing the transaction detail (S11). In step S11, the first node generates a block according to a consensus algorithm (PoW, PoS), and generates a hash value of the block, that is, a block hash.

그리고 제1 노드는 생성한 블록을 블록 체인 네트워크 내에 자신과 링크된 모든 제2 노드에게 전송하고(S12), 제2 노드는 수신한 블록의 거래 내역을 검증하여 유효한 거래 내역의 블록만 수신한다(S13). 블록을 수신한 제2 노드는 검증된 블록을 기존 블록 체인에 연결하며(S14), 이후 제1 노드의 거래 내역에 해당하는 작업이 완료된다(S15).Then, the first node transmits the generated block to all second nodes linked to itself in the block chain network (S12), and the second node verifies the transaction details of the received block and receives only blocks of valid transaction details ( S13). The second node receiving the block connects the verified block to the existing block chain (S14), and then the work corresponding to the transaction details of the first node is completed (S15).

이러한 일반적인 블록체인 생성 및 전파 과정에서 본 발명의 실시 예에 따른 블록 전파 방법은 도 2에 도시된 바와 같이, 블록을 전송하는 과정(S20) 및 블록을 수신하는 과정(S30)이 일반적인 블록 전파 과정과 차이가 있다. In this general block chain generation and propagation process, in the block propagation method according to an embodiment of the present invention, as shown in FIG. 2 , the process of transmitting the block (S20) and the process of receiving the block (S30) are the general block propagation processes. is different from

구체적으로, 본 발명의 실시 예에 따른 블록 체인 노드의 블록 전파 방법에서 블록을 전송하는 과정(S20)은 암호화폐를 보유한 지분율이 설정 지분율 이상인 노드만이 복수의 블록을 다른 노드에게 전송할 수 있게 한다. 그리고 본 발명의 실시 예에 따른 블록 체인 노드의 블록 전파 방법에서 블록을 수신하는 과정(S30)은 S20 과정과 연계된 과정으로, 암호화폐를 보유한 지분율이 설정 지분율 이상인 노드에서 전송한 복수의 블록만을 수신할 수 있게 한다.Specifically, in the block propagation method of a block chain node according to an embodiment of the present invention, the process of transmitting a block (S20) allows only a node having a stake in cryptocurrency to be transmitted to another node only by a node having a stake ratio greater than or equal to a set stake. . And the process of receiving a block (S30) in the block propagation method of the block chain node according to the embodiment of the present invention is a process linked to the process S20, and only a plurality of blocks transmitted from a node having a stake in cryptocurrency is greater than or equal to a set stake. make it possible to receive

따라서, S20 과정 및 S30 과정에서 복수의 블록을 전파하는 노드는 복수의 블록을 전파하는 권한을 위임받은 노드 즉, 대표노드이다.Accordingly, a node that propagates a plurality of blocks in steps S20 and S30 is a node to which the authority to propagate a plurality of blocks is delegated, that is, a representative node.

대표노드에 대해 도 3을 참조로 하여 설명한다. 도 3은 본 발명의 실시 예에 따른 블록 체인 노드의 블록 전파 방법에서 대표노드를 설명하기 위한 도면이다.The representative node will be described with reference to FIG. 3 . 3 is a diagram for explaining a representative node in a block propagation method of a block chain node according to an embodiment of the present invention.

도 3에서 그래프는 전체 노드의 지분율 그래프이다. x축은 상위 0% 노드에서부터 100% 노드까지 나열하였고, y축은 각 노드가 가진 지분율을 표시한다.In FIG. 3 , the graph is a graph of the stake percentage of all nodes. The x-axis is listed from the top 0% node to the 100% node, and the y-axis indicates the stake each node has.

그래프에서 점선은 대표 노드로 위임되는 노드를 선정하는 기준이 되는 상위 지분율 d% 지점을 가리킨다. 즉, d%를 기점으로 d%와 같거나 많은 지분율을 가진 노드는 대표노드가 되고, 그 외의 노드는 일반적인 노드가 된다. 여기서, d%는 제작자에 의해 임의로 설정이 가능하다.In the graph, the dotted line indicates the d% point of the upper stake, which is the criterion for selecting a node delegated as a representative node. That is, a node with a stake equal to or greater than d% from d% becomes a representative node, and other nodes become general nodes. Here, d% can be arbitrarily set by the manufacturer.

따라서, d%를 기준으로 대표노드를 선정하는 경우이면, d%를 어떤 값으로 하느냐에 따라 링크드된 복수의 노드들 중에서 대표노드는 한 개가 될 수 있고, 복수개가 될 수 있다.Accordingly, when the representative node is selected based on d%, the representative node may be one or plural among the plurality of linked nodes depending on what value d% is set to.

그리고 각 노드들간의 약속에 따라 대표노드를 선정할 수 있다. 이 경우에 대표노드는 d%를 기점으로 d%와 같거나 많은 지분율을 가진 적어도 하나의 제1 노드 중에서 가장 지분율이 높은 하나의 노드이거나 설정된 복수개의 노드일 수 있다.And a representative node can be selected according to the promise between each node. In this case, the representative node may be one node having the highest stake among at least one first node having a stake equal to or greater than d% from d%, or a plurality of configured nodes.

정리하면, 링크드된 복수의 노드들 중에서 대표노드를 선정하는 방법은 2가지로서, d%를 기점으로 선정하는 제1 방법과, d%를 기점으로 선정한 적어도 하나의 노드들 중에서 지분율이 가장 높은 순서를 기준으로 설정된 개수의 노드를 대표노드로 선정하는 제2 방법이 있다.In summary, there are two methods for selecting a representative node from among a plurality of linked nodes, a first method of selecting d% as a starting point, and an order of the highest stake among at least one node selected using d% as a starting point There is a second method of selecting a set number of nodes as the representative nodes based on .

제2 방법에 따른 대표노드 선정은 링크드된 각 노드들간 지분율 비교를 통해서 결정된다. 그리고 선정된 대표노드에 대한 식별정보는 링크드된 노드 모두가 공유한다.The selection of the representative node according to the second method is determined through the comparison of the stake between each linked node. And the identification information of the selected representative node is shared by all linked nodes.

여기서, 링크드된 각 노드의 지분율(%)은 블록체인 네트워크의 총 암호화폐량에서 해당 노드가 보유한 암호화폐량이 차지하는 정도로 산출된다. 총 암호화폐량과 각 노드가 보유한 암호화폐량은 공개된 정보이므로, 각 노드에서는 자신 및 다른 노드의 지분율을 산출할 수 있다.Here, the stake (%) of each linked node is calculated to the extent that the amount of cryptocurrency held by the node accounts for the total amount of cryptocurrency in the blockchain network. Since the total amount of cryptocurrency and the amount of cryptocurrency held by each node are public information, each node can calculate the stake of itself and other nodes.

대표노드를 선정하고, 대표노드만이 복수의 블록을 다른 노드에 전파할 수 있도록 하는 것은 지분을 많이 가진 노드일수록 네트워크를 깨끗하게 유지하여 화폐의 가치를 떨어뜨리지 않을 것이기 때문이다. 즉, 지분율이 높은 노드일수록 악의적이지 않을 확률이 높다는 전제를 기반으로 한다.Selecting a representative node and allowing only the representative node to propagate a plurality of blocks to other nodes is because the node with a larger stake will keep the network clean and will not reduce the value of money. In other words, it is based on the premise that the higher the stake, the higher the probability that it is not malicious.

이하에서는 도 4와 도 5를 참조로 하여 본 발명의 실시 예에 따른 블록 체인 노드의 블록 전파 방법의 개념을 설명한다. 도 4 및 도 5는 본 발명의 실시 예에 따른 블록 체인 노드의 블록 전파 방법의 개념을 설명하기 위한 개념도로서, 도 4는 링크드된 노드들 중에서 대표노드가 하나인 경우에 대한 것이고, 도 5는 링크드된 노드들 중에서 대표노드가 복수개인 경우에 대한 것이다.Hereinafter, the concept of a block propagation method of a block chain node according to an embodiment of the present invention will be described with reference to FIGS. 4 and 5 . 4 and 5 are conceptual diagrams for explaining the concept of a block propagation method of a block chain node according to an embodiment of the present invention. FIG. 4 is a case in which one representative node is among the linked nodes, and FIG. This is for a case in which there are a plurality of representative nodes among linked nodes.

본 발명의 실시 예에 따른 블록 체인 노드의 블록 전파 방법은 네트워크 고립이나 공격에 대응하기 위해서 복수개의 블록을 전파하는 이벤트에 적용된다. 복수개의 블록을 전파하는 이벤트 즉, 위임전파 이벤트는 신규 노드가 블록 체인 네트워크에 참여하기 위해 다른 노드들과 블록체인을 동기화하는 제1 경우와, 상당 기간동안 업데이트 하지 못한 노드가 링크된 노드로부터 다수의 블록을 전달받아 블록체인을 동기화하는 제2 경우가 있다.The block propagation method of a block chain node according to an embodiment of the present invention is applied to an event of propagating a plurality of blocks in order to respond to network isolation or attack. The event of propagating multiple blocks, that is, the delegation propagation event, is the first case in which a new node synchronizes the blockchain with other nodes to participate in the blockchain network, and a number of nodes that have not been updated for a considerable period of time from linked nodes. There is a second case of synchronizing the block chain by receiving a block of

도 4를 참고하면, N10의 노드는 제1 경우 또는 제2 경우에 해당하는 노드 즉, 신규노드 또는 업데이트가 필요한 노드이다. 그리고 N13은 링크드된 노드들의 대표노드이고, 나머지 N11, N12, N14 내지 N16은 일반노드이다.Referring to FIG. 4 , the node of N10 is a node corresponding to the first or second case, that is, a new node or a node requiring an update. And N13 is a representative node of the linked nodes, and the remaining N11, N12, N14 to N16 are general nodes.

첫번째 방법으로, 노드(N10)은 대표노드(N13)을 포함한 모든 링크된 노드들에게 블록체인 동기화를 요청한다. 그러면 대표노드(N13)을 제외한 나머지 노드(N11, N12, N14 내지 N16)는 자신이 대표노드가 아니기 때문에 동기화 요청을 거부하고, 대표노드(N13)만이 동기화 요청을 수락하여 노드(N10)이 필요로 하는 블록들을 노드(N10)에 제공한다. 이때 노드(N10)은 다수의 블록을 수신하는 과정에서 전송한 노드가 대표노드(N13)인지를 확인하고 대표노드(N13)인 경우에만 수신한다.In the first method, the node N10 requests blockchain synchronization from all linked nodes including the representative node N13. Then, the remaining nodes (N11, N12, N14 to N16) except for the representative node (N13) reject the synchronization request because they are not representative nodes, and only the representative node (N13) accepts the synchronization request, so the node N10 is required. It provides blocks to the node N10. In this case, the node N10 checks whether the transmitted node is the representative node N13 in the process of receiving a plurality of blocks, and receives only the representative node N13.

이러한 동기화 과정에서 노드(N10)에서 신규 생성한 블록을 전송하면, 대표노드(N13)만 신규 생성한 블록을 수신하고, 대표노드(N13)가 노드(N10)의 신규 생성한 블록을 다른 일반노드(N11, N12, N14 내지 N16)에게 전파한다.In this synchronization process, when the newly created block is transmitted by the node N10, only the representative node N13 receives the newly created block, and the representative node N13 transfers the newly created block of the node N10 to another general node. Propagate to (N11, N12, N14 to N16).

두번째 방법으로, 노드(N10)은 동기화가 필요하면 링크드된 노드들 중에서 기 설정된 대표노드(N13)을 파악하고, 대표노드(N13)에게만 동기화 요청을 하여 동기화를 수행한다. 물론 동기화 과정에서 노드(N10)에서 신규 생성한 블록이 있는 경우이면 대표노드(N13)가 노드(N10)의 신규 생성한 블록을 수신하여 다른 일반노드(N11, N12, N14 내지 N16)에게 전파한다.In the second method, when synchronization is required, the node N10 identifies a preset representative node N13 from among the linked nodes, and requests synchronization only to the representative node N13 to perform synchronization. Of course, if there is a block newly created by the node N10 during the synchronization process, the representative node N13 receives the newly created block of the node N10 and propagates it to other general nodes N11, N12, N14 to N16. .

도 5를 참고하면, N10의 노드는 신규노드 또는 업데이트가 필요한 노드이고, N13 및 N14는 링크드된 노드들의 대표노드이며, 나머지 N11, N12, N15 및 N16은 일반노드이다.Referring to FIG. 5 , the node of N10 is a new node or a node that needs to be updated, N13 and N14 are representative nodes of linked nodes, and the remaining N11, N12, N15 and N16 are general nodes.

첫번째 방법으로, 노드(N10)은 대표노드(N13, N14)을 포함한 모든 링크된 노드들에게 블록체인 동기화를 요청한다. 그러면 대표노드(N13, N14)을 제외한 나머지 노드(N11, N12, N15 및 N16)는 자신이 대표노드가 아니기 때문에 동기화 요청을 거부하고, 대표노드(N13, N14)만이 동기화 요청을 수락하여 노드(N10)이 필요로 하는 블록들을 노드(N10)에 제공한다. 이때 노드(N10)은 2개의 대표노드(N13, N14) 모두로부터 다수의 블록을 수신할 수 있지만, 대표노드(N13, N14) 중 하나로부터 먼저 다수의 블록을 수신하면 다른 하나의 대표노드로부터 전송된 다수의 블록에 대해서는 수신 거절을 할 수 있다.In the first method, the node N10 requests blockchain synchronization from all linked nodes including the representative nodes N13 and N14. Then, the remaining nodes (N11, N12, N15, and N16) except for the representative nodes (N13, N14) reject the synchronization request because they are not representative nodes, and only the representative nodes (N13, N14) accept the synchronization request and the node ( Blocks required by N10 are provided to the node N10. At this time, the node N10 may receive a plurality of blocks from both of the two representative nodes N13 and N14, but when it first receives a plurality of blocks from one of the representative nodes N13 and N14, it is transmitted from the other representative node. Reception can be rejected for a large number of blocks.

물론 노드(N10)은 다수의 블록을 수신하는 과정에서 전송한 노드가 대표노드(N13, N14)인지를 확인하고 대표노드(N13, N14)인 경우에만 수신한다.Of course, the node N10 checks whether the transmitting node is the representative node (N13, N14) in the process of receiving a plurality of blocks, and receives only the representative node (N13, N14).

이러한 동기화 과정에서 노드(N10)에서 신규 생성한 블록을 전송하면, 대표노드(N13, N14)만 신규 생성한 블록을 수신하고, 대표노드(N13, N14)가 노드(N10)의 신규 생성한 블록을 다른 일반노드(N11, N12, N15 및 N16)에게 전파한다. 여기서 일반노드(N11, N12, N15 및 N16)는 대표노드(N13, N14) 중 하나로부터 먼저 다수의 블록을 수신하면 다른 하나의 대표노드로부터 전송된 다수의 블록에 대해서는 수신 거절을 할 수 있다.In this synchronization process, when the newly created block is transmitted by the node N10, only the representative nodes N13 and N14 receive the newly created block, and the representative nodes N13 and N14 receive the newly created block of the node N10. is propagated to other general nodes (N11, N12, N15 and N16). Here, when the general nodes N11, N12, N15 and N16 first receive a plurality of blocks from one of the representative nodes N13 and N14, reception of a plurality of blocks transmitted from the other representative node may be rejected.

두번째 방법으로, 노드(N10)은 동기화가 필요하면 링크드된 노드들 중에서 기 설정된 대표노드(N13, N14)을 파악하고, 대표노드(N13, N14) 중 하나 또는 모두에게만 동기화 요청을 하여 동기화를 수행한다. 물론 동기화 과정에서 노드(N10)에서 신규 생성한 블록이 있는 경우이면 대표노드(N13, N14)가 노드(N10)의 신규 생성한 블록을 수신하여 다른 일반노드(N11, N12, N15 및 N16)에게 전파한다.In the second method, when synchronization is required, the node N10 identifies preset representative nodes N13 and N14 among linked nodes, and requests synchronization to only one or both of the representative nodes N13 and N14 to perform synchronization. do. Of course, if there is a block newly created by the node N10 during the synchronization process, the representative nodes N13 and N14 receive the newly created block of the node N10 and send it to the other general nodes N11, N12, N15 and N16. to spread

이하에서는 도 6을 참조로 하여 본 발명의 실시 예에 따른 블록 체인 노드의 블록 전파 방법을 수행하는 노드의 구성을 설명한다. 이미 공지된 바와 같이, 블록체인 네트워크에서 노드는 컴퓨팅 기능 및 통신 기능을 수행할 수 있는 컴퓨터, 노트북, 휴대폰 등의 단말기이다. 그러므로 도 6에서는 일반적인 노드에 포함된 기능을 제외한 본 발명을 위한 구성만을 도시하였다. Hereinafter, a configuration of a node performing a block propagation method of a block chain node according to an embodiment of the present invention will be described with reference to FIG. 6 . As is already known, a node in a blockchain network is a terminal such as a computer, laptop, or mobile phone capable of performing computing and communication functions. Therefore, in FIG. 6, only the configuration for the present invention is shown except for the functions included in the general node.

도 6은 본 발명의 실시 예에 따른 블록 체인 노드의 블록 전파 방법을 위한 블록체인 노드의 블록 구성도로서, 도시된 각 구성은 하드웨어적으로 제작될 수 있고, 소프트웨어적으로 제작될 수 있다. 6 is a block diagram of a block chain node for a block propagation method of a block chain node according to an embodiment of the present invention. Each of the illustrated components may be manufactured in hardware or software.

도 6을 참고하면, 블록체인 네트워크의 모든 노드(100)는 블록생성부(110), 위임전파부(120), 대표노드 파악부(130) 및 블록처리부(140)를 포함한다.Referring to FIG. 6 , all nodes 100 of the block chain network include a block generating unit 110 , a delegated propagation unit 120 , a representative node identifying unit 130 , and a block processing unit 140 .

블록생성부(110)는 사용자의 개인 ID, 암호키값, 계좌정보, 상품정보, 이력정보를 포함한 각각의 정보에 대한 조합을 블록으로 생성한다.The block generating unit 110 generates a block for each combination of information including the user's personal ID, encryption key value, account information, product information, and history information.

위임전파부(120)는 위임전파 이벤트의 발생 여부를 파악하고, 위임전파 이벤트인 경우에 동기화 요청을 수행한다. 위임전파 이벤트는 신규 노드가 블록 체인 네트워크에 참여하기 위해 다른 노드들과 블록체인을 동기화하는 제1 경우와, 상당 기간동안 업데이트 하지 못한 노드가 링크된 노드로부터 다수의 블록을 전달받아 블록체인을 동기화하는 제2 경우가 있다.The delegation propagation unit 120 determines whether a delegation propagation event occurs, and performs a synchronization request in the case of the delegation propagation event. Delegated propagation event is the first case in which a new node synchronizes the block chain with other nodes to participate in the block chain network, and the node that has not updated for a long time receives multiple blocks from the linked node and synchronizes the block chain There is a second case where

대표노드 파악부(130)는 위임전파 이벤트가 발생한 경우에 위임전파부(120)의 지시에 따라 대표노드를 파악한다. 대표노드의 파악은 자신이 대표노드인지에 대한 파악, 다른 노드들 중 어떤 노드가 대표노드인지에 대한 파악 및 위임전파에 따라 다수의 블록을 전송한 노드가 대표노드인지에 대한 파악 중 적어도 하나이다.The representative node identification unit 130 identifies the representative node according to the instruction of the delegated propagation unit 120 when a delegated propagation event occurs. The identification of the representative node is at least one of identification of whether it is the representative node, identification of which node among other nodes is the representative node, and identification of whether the node that has transmitted multiple blocks according to delegation propagation is the representative node.

블록처리부(140)는 생성된 블록을 블록체인 네트워크의 노드들 또는 대표노드에게 전송하고, 수신되는 블록에 대해 블록체인이 동기화되도록 처리한다.The block processing unit 140 transmits the generated block to nodes or representative nodes of the block chain network, and processes the block chain for the received block to be synchronized.

이하에서는 도 7 내지 도 9를 참조로 하여 본 발명의 실시예에 따른 블록 체인 노드의 블록 전파 방법을 설명한다. 도 7은 본 발명의 제1 실시예에 따른 블록 체인 노드의 블록 전파 방법을 보인 순서도로서, 위임전파 이벤트의 제1 경우를 일 예로 한 것이다.Hereinafter, a block propagation method of a block chain node according to an embodiment of the present invention will be described with reference to FIGS. 7 to 9 . 7 is a flowchart illustrating a block propagation method of a block chain node according to the first embodiment of the present invention, taking the first case of a delegated propagation event as an example.

도 7을 참고하면, 처음 거래이력을 발생하여 새로 합류하는 신규노드(N10)는 거래이력을 포함하는 블록을 생성하고(S701), 생성한 블록과 함께 블록체인 동기화를 요청하는 메시지를 각 노드에 전송한다(S702, S703).Referring to FIG. 7, a new node (N10) newly joined by generating a transaction history for the first time creates a block including the transaction history (S701), and sends a message requesting block chain synchronization together with the generated block to each node. It transmits (S702, S703).

일반노드(N11)는 신규노드(N10)의 동기화 요청메시지를 수신하면, 지분율 확인을 통해 자신이 대표노드인지를 파악하고(S704), 대표노드가 아님을 판단한 후(S705), 동기화 요청 및 블록수신을 거절한다(S706). 상기 일반노드(N11)의 동작은 다른 일반노드에서도 동일하게 이루어진다.When the general node N11 receives the synchronization request message from the new node N10, it determines whether it is the representative node through the stake rate check (S704), and after determining that it is not the representative node (S705), the synchronization request and block Rejection of reception (S706). The operation of the general node N11 is the same in other general nodes.

대표노드(N13)은 신규노드(N10)의 동기화 요청메시지를 수신하면, 지분율 확인을 통해 자신이 대표노드인지를 파악하고(S707), 대표노드임을 판단한 후(S708), 동기화 요청 및 블록수신을 수신하고 블록체인을 갱신한다(S709).When the representative node (N13) receives the synchronization request message of the new node (N10), it determines whether it is the representative node by checking the stake ratio (S707), and after determining that it is the representative node (S708), the synchronization request and block reception are performed. Receive and update the block chain (S709).

그리고 대표노드(N13)는 신규노드(N10)으로부터 수신한 블록을 다른 일반노드에 전송하고(S710), 신규노드(N10)의 동기화 요청에 따라 신규노드(N10)가 필요로 하는 다수의 블록 즉, 블록체인에 대한 블록 정보를 신규노드(N10)에게 제공한다(S713).And the representative node (N13) transmits the block received from the new node (N10) to another general node (S710), and in response to the synchronization request of the new node (N10), a plurality of blocks required by the new node (N10), namely , provides block information for the block chain to the new node N10 (S713).

일반노드(N11)는 대표노드(N13)로부터 신규노드(N10)의 블록이 접수되면 전송자가 대표노드인지를 파악하고(S711), 대표노드인 경우에 신규노드(N10)의 블록을 수신하고 블록체인을 갱신한다(S712).When the block of the new node N10 is received from the representative node N13, the general node N11 determines whether the sender is the representative node (S711), and in the case of the representative node, receives the block of the new node N10 and blocks The chain is updated (S712).

그리고 신규노드(N10)는 대표노드(N13)로부터 블록체인에 대한 블록 정보를 접수하면 전송자가 대표노드인지를 파악하고(S714), 대표노드인 경우에 블록체인의 정보를 수신하고 블록체인을 동기화한다(S715).And when the new node (N10) receives block information about the block chain from the representative node (N13), it determines whether the sender is the representative node (S714), and in the case of the representative node, receives the information of the block chain and synchronizes the block chain do (S715).

도 8은 본 발명의 제2 실시예에 따른 블록 체인 노드의 블록 전파 방법을 보인 순서도로서, 위임전파 이벤트의 제2 경우를 일 예로 한 것이다.8 is a flowchart illustrating a block propagation method of a block chain node according to a second embodiment of the present invention, taking the second case of a delegated propagation event as an example.

도 8을 참고하면, 블록 체인 네트워크에 상당한 시간동안 참여하지 않은 노드는 위임전파부(120)를 통해 블록체인 동기화를 위해 업데이트해야 할 복수의 블록이 필요하다는 것을 알게 된다. 이때 노드(N10)의 위임전파부(120)는 다른 노드로부터 수신된 블록의 블록해시와 자신이 보유한 블록체인의 최신 블록해시를 비교하여 필요로 하는 블록해시를 파악하거나, 대표노드(N13)에게 자신의 최신 블록해시를 제공하여 업데이트가 필요로 하는 블록해시를 파악할 수 있다.Referring to FIG. 8 , a node that has not participated in the blockchain network for a significant amount of time knows that a plurality of blocks to be updated are required for blockchain synchronization through the delegated propagation unit 120 . At this time, the delegated propagation unit 120 of the node N10 compares the block hash of the block received from another node with the latest block hash of the block chain it owns to determine the required block hash, or N13) can identify the block hash that needs to be updated by providing its latest block hash.

이에 노드(N10)는 필요로 하는 블록해시를 포함하는 블록체인 동기화를 요청하는 메시지를 각 노드에 전송한다(S802, S802).Accordingly, the node N10 transmits a message requesting block chain synchronization including the required block hash to each node (S802, S802).

일반노드(N11)는 노드(N10)의 동기화 요청메시지를 수신하면, 지분율 확인을 통해 자신이 대표노드인지를 파악하고(S803), 대표노드가 아님을 판단한 후(S804), 동기화 요청 및 블록수신을 거절한다(S805). 상기 일반노드(N11)의 동작은 다른 일반노드에서도 동일하게 이루어진다.When the normal node N11 receives the synchronization request message from the node N10, it determines whether it is a representative node by checking the stake ratio (S803), and after determining that it is not the representative node (S804), synchronization request and block reception reject (S805). The operation of the general node N11 is the same in other general nodes.

대표노드(N13)은 노드(N10)의 동기화 요청메시지를 수신하면, 지분율 확인을 통해 자신이 대표노드인지를 파악하고(S806), 대표노드임을 판단한 후(S807), 노드(N10)가 요청하는 블록해시의 블록을 노드(N10)에게 제공한다(S808).When the representative node (N13) receives the synchronization request message from the node (N10), it determines whether it is the representative node by checking the stake ratio (S806), and after determining that it is the representative node (S807), the node (N10) requests The block hash block is provided to the node N10 (S808).

노드(N11)는 대표노드(N13)로부터 다수의 블록이 접수되면 전송자가 대표노드인지를 파악하고(S809), 대표노드인 경우에 수신한 블록으로 블록체인을 동기화한다(S810).When a plurality of blocks are received from the representative node N13, the node N11 determines whether the sender is the representative node (S809), and if it is the representative node, synchronizes the block chain with the received block (S810).

도 9는 본 발명의 제3 실시예에 따른 블록 체인 노드의 블록 전파 방법을 보인 순서도로서, 대표노드가 선정되어 있는 경우에 대한 것이다.9 is a flowchart illustrating a block propagation method of a block chain node according to a third embodiment of the present invention, and is for a case in which a representative node is selected.

도 9를 참고하면, 노드(N10)는 다른 노드로부터 블록을 수신하고(S901), 수신한 블록의 블록해시와 자신이 보유한 블록체인의 블록해시를 비교한다(S902).Referring to FIG. 9 , the node N10 receives a block from another node (S901), and compares the block hash of the received block with the block hash of the block chain it owns (S902).

노드(N10)는 상기 비교를 통해 다수의 블록에 대한 업데이트가 필요하다고 판단하면(S903), 업데이트할 블록해시를 파악하고(S904), 대표노드(N13)에게 업데이트 요청 즉, 업데이트를 통한 동기화 요청을 한다(S905).When the node N10 determines that it is necessary to update a plurality of blocks through the comparison (S903), it identifies the block hash to be updated (S904), and requests an update from the representative node N13, that is, synchronization through update Make a request (S905).

이에, 대표노드(N13)는 동기화 요청에 포함되어 있는 노드(N10)에서 필요로 하는 블록해시를 파악하고, 해당 블록해시의 블록을 노드(N10)에게 제공한다.Accordingly, the representative node N13 identifies the block hash required by the node N10 included in the synchronization request, and provides the block of the corresponding block hash to the node N10.

그러면, 노드(N10)는 대표노드(N13)로부터 수신된 블록해시의 블록을 수신하고(S906), 수신한 블록으로 블록체인을 동기화한다(S907)Then, the node N10 receives the block hash block received from the representative node N13 (S906), and synchronizes the block chain with the received block (S907)

이상, 본 발명의 일 실시예에 따른 방법은 컴퓨터에 의해 실행되는 프로그램 모듈과 같은 컴퓨터에 의해 실행가능한 명령어를 포함하는 기록 매체의 형태로도 구현될 수 있다. 컴퓨터 판독 가능 매체는 컴퓨터에 의해 액세스될 수 있는 임의의 가용 매체일 수 있고, 휘발성 및 비휘발성 매체, 분리형 및 비분리형 매체를 모두 포함한다. 또한, 컴퓨터 판독가능 매체는 컴퓨터 저장 매체 및 통신 매체를 모두 포함할 수 있다. 컴퓨터 저장 매체는 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈 또는 기타 데이터와 같은 정보의 저장을 위한 임의의 방법 또는 기술로 구현된 휘발성 및 비휘발성, 분리형 및 비분리형 매체를 모두 포함한다. 통신 매체는 전형적으로 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈, 또는 반송파와 같은 변조된 데이터 신호의 기타 데이터, 또는 기타 전송 메커니즘을 포함하며, 임의의 정보 전달 매체를 포함한다. As mentioned above, the method according to an embodiment of the present invention may also be implemented in the form of a recording medium including instructions executable by a computer, such as a program module executed by a computer. 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. In addition, 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 transport mechanism, and includes any information delivery media.

전술한 본 발명의 설명은 예시를 위한 것이며, 본 발명이 속하는 기술분야의 통상의 지식을 가진 자는 본 발명의 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 쉽게 변형이 가능하다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다. 예를 들어, 단일형으로 설명되어 있는 각 구성 요소는 분산되어 실시될 수도 있으며, 마찬가지로 분산된 것으로 설명되어 있는 구성 요소들도 결합된 형태로 실시될 수 있다.The above description of the present invention is for illustration, and those of ordinary skill in the art to which the present invention pertains can understand that it can be easily modified into other specific forms without changing the technical spirit or essential features of the present invention. will be. Therefore, it should be understood that the embodiments described above are illustrative in all respects and not restrictive. For example, each component described as a single type may be implemented in a dispersed form, and likewise components described as distributed may be implemented in a combined form.

본 발명의 범위는 상기 상세한 설명보다는 후술하는 특허청구범위에 의하여 나타내어지며, 특허청구범위의 의미 및 범위 그리고 그 균등 개념으로부터 도출되는 모든 변경 또는 변형된 형태가 본 발명의 범위에 포함되는 것으로 해석되어야 한다.The scope of the present invention is indicated by the following claims rather than the above detailed description, and all changes or modifications derived from the meaning and scope of the claims and their equivalent concepts should be interpreted as being included in the scope of the present invention. do.

Claims (7)

제1 노드가 복수의 블록을 필요로 하는 위임 전파 이벤트를 파악하는 단계;
상기 제1 노드가 링크된 노드들에게 블록체인 동기화 요청을 하는 단계;
상기 링크된 노드들 중에서 대표노드가 상기 동기화 요청에 따라 상기 제1 노드에서 필요로 하는 복수의 블록을 상기 제1 노드에게 제공하는 단계;
상기 제1 노드가 복수의 블록을 수신하기 전에 전송자가 상기 대표노드인지를 파악하는 단계; 그리고
상기 제1 노드가 전송자가 상기 대표노드이면 상기 대표노드로부터 복수의 블록을 수신하고 블록체인 동기화를 수행하는 단계를 포함하는 블록 체인 노드의 블록 전파 방법.
identifying, by the first node, a delegation propagation event requiring a plurality of blocks;
making a blockchain synchronization request to the linked nodes by the first node;
providing, by a representative node among the linked nodes, a plurality of blocks required by the first node to the first node according to the synchronization request;
determining whether the sender is the representative node before the first node receives the plurality of blocks; And
If the first node is the sender is the representative node, receiving a plurality of blocks from the representative node and performing block chain synchronization.
제1항에서,
상기 링크된 노드들 중 일반노드는 상기 제1 노드의 동기화 요청을 거절하는 단계를 더 포함하는 블록 체인 노드의 블록 전파 방법.
In claim 1,
The block propagation method of a block chain node further comprising the step of rejecting, by a general node among the linked nodes, the synchronization request of the first node.
제1항 또는 제2항에서,
상기 대표노드는 총 암호화폐량에 대비 보유한 암호화폐량이 설정된 비율 이상인 블록 체인 노드의 블록 전파 방법.
In claim 1 or 2,
The representative node is a block propagation method of block chain nodes that is at least a set ratio of the amount of cryptocurrency held to the total amount of cryptocurrency.
제3항에서,
상기 제1 노드의 블록체인 동기화 요청에 상기 제1 노드가 생성한 블록이 포함되어 있으면,
상기 대표노드가 상기 제1 노드의 블록을 상기 링크된 노드들 모두에게 전송하는 단계,
상기 링크된 노드들 각각은 상기 제1 노드의 블록을 수신하기 전에 전송자가 상기 대표노드인지를 파악하는 단계, 그리고
상기 대표노드이면 상기 링크된 노드들 각각은 상기 대표노드로부터 상기 제1 노드의 블록을 수신하고 블록체인 동기화를 수행하는 단계를 더 포함하는 블록 체인 노드의 블록 전파 방법.
In claim 3,
If the block generated by the first node is included in the block chain synchronization request of the first node,
transmitting, by the representative node, the block of the first node to all of the linked nodes;
each of the linked nodes identifying whether the sender is the representative node before receiving the block of the first node, and
If it is the representative node, each of the linked nodes receives the block of the first node from the representative node and performs block chain synchronization.
제1 노드가 복수의 블록을 필요로 하는 위임 전파 이벤트를 파악하는 단계;
상기 제1 노드가 기 선정된 대표노드에게 블록체인 동기화 요청을 하는 단계;
상기 대표노드가 상기 동기화 요청에 따라 상기 제1 노드에서 필요로 하는 복수의 블록을 상기 제1 노드에게 제공하는 단계;
상기 제1 노드가 복수의 블록을 수신하기 전에 전송자가 상기 대표노드인지를 파악하는 단계; 그리고
상기 제1 노드가 전송자가 상기 대표노드이면 상기 대표노드로부터 복수의 블록을 수신하고 블록체인 동기화를 수행하는 단계를 포함하는 블록 체인 노드의 블록 전파 방법.
identifying, by the first node, a delegation propagation event requiring a plurality of blocks;
making, by the first node, a block chain synchronization request to a pre-selected representative node;
providing, by the representative node, a plurality of blocks required by the first node to the first node according to the synchronization request;
determining whether the sender is the representative node before the first node receives the plurality of blocks; And
If the first node is the sender is the representative node, receiving a plurality of blocks from the representative node and performing block chain synchronization.
제5항에서,
상기 대표노드는 암호화폐량을 보유한 지분율이 설정 지분율 이상이고 상기 링크된 노드들 중에서 가장 지분율이 높은 노드인 블록 체인 노드의 블록 전파 방법.
In claim 5,
The block propagation method of a block chain node in which the representative node has a stake in the amount of cryptocurrency equal to or greater than the set stake and the node with the highest stake among the linked nodes.
제5항에서,
상기 대표노드는 암호화폐량을 보유한 지분율이 설정 지분율 이상이고 상기 링크된 노드들 중에서 지분율이 높은 순서를 기준으로 설정된 n개의 노드인 블록 체인 노드의 블록 전파 방법.
In claim 5,
The block propagation method of a block chain node in which the representative node is n nodes in which the stake in the amount of cryptocurrency is greater than or equal to the set stake and is set based on the order of the highest stake among the linked nodes.
KR1020200160389A 2019-11-29 2020-11-25 Method for propagating block of blockchain nodes KR102425058B1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020190157557 2019-11-29
KR20190157557 2019-11-29

Publications (2)

Publication Number Publication Date
KR20210067908A true KR20210067908A (en) 2021-06-08
KR102425058B1 KR102425058B1 (en) 2022-07-27

Family

ID=76399579

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200160389A KR102425058B1 (en) 2019-11-29 2020-11-25 Method for propagating block of blockchain nodes

Country Status (1)

Country Link
KR (1) KR102425058B1 (en)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017091149A (en) * 2015-11-09 2017-05-25 日本電信電話株式会社 Block chain generator, block chain generation method, block chain verifier, block chain verification method, and program
KR20180086679A (en) * 2017-01-23 2018-08-01 주식회사 데일리인텔리전스 System and method for authenticating users and synchronizing blocks using a block-chain network
KR101984254B1 (en) * 2018-09-21 2019-05-30 김성완 Node device constituting a block-chain network and an operation method of the node device
KR20190097478A (en) * 2018-02-12 2019-08-21 동명대학교산학협력단 Virtual money mining method using block chain technology

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017091149A (en) * 2015-11-09 2017-05-25 日本電信電話株式会社 Block chain generator, block chain generation method, block chain verifier, block chain verification method, and program
KR20180086679A (en) * 2017-01-23 2018-08-01 주식회사 데일리인텔리전스 System and method for authenticating users and synchronizing blocks using a block-chain network
KR20190097478A (en) * 2018-02-12 2019-08-21 동명대학교산학협력단 Virtual money mining method using block chain technology
KR101984254B1 (en) * 2018-09-21 2019-05-30 김성완 Node device constituting a block-chain network and an operation method of the node device

Also Published As

Publication number Publication date
KR102425058B1 (en) 2022-07-27

Similar Documents

Publication Publication Date Title
CN107077674B (en) Transaction verification processing method and device and node equipment
CN111406396B (en) Computer-implemented system and method for data propagation and communication in a network, such as a blockchain network
CN110601849B (en) Trusted timestamp adding method and device and storage medium
US20180331832A1 (en) Cryptographic Transactions System
US20220393891A1 (en) Communication protocol using blockchain transactions
CN109741068B (en) Online banking cross-row signing method, device and system
JP2022512324A (en) High-performance distributed recording system with secure interoperability to external systems
JP2022508247A (en) High-performance distributed recording system with reliability-based consensus
JP2024505692A (en) Data processing methods, devices and computer equipment based on blockchain networks
JP2023525973A (en) Multilayer communication network
CN113992427B (en) Data encryption sending method and device based on adjacent nodes
Essaid et al. Network usage of bitcoin full node
US20220182243A1 (en) Method and Apparatus for Distributed Ledger
Porkodi et al. Integration of blockchain and internet of things
US20230351370A1 (en) Electronic wallet and method for atomic swapping of two different blockchain tokens by using electronic wallet
CN114285555A (en) Multicast method and device based on block chain
KR101922963B1 (en) Apparatus and method for generating block chain
JP2023500258A (en) Request and response protocol using blockchain transactions
Hellebrandt et al. Increasing trust in tor node list using blockchain
KR102298716B1 (en) Communication node, method of operating thereof and collaborative system
CN115865537B (en) Privacy computing method based on centralized system management, electronic equipment and storage medium
KR102425058B1 (en) Method for propagating block of blockchain nodes
Kurt et al. D-LNBot: A Scalable, Cost-Free and Covert Hybrid Botnet on Bitcoin's Lightning Network
NL2027091B1 (en) Orchestrated quantum key distribution
Pappalardo et al. The Bitcoin peers network

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right