KR102081159B1 - A Blockchain system and a method for a plurality of nodes in the Blockchain system to verify and propagate messages - Google Patents

A Blockchain system and a method for a plurality of nodes in the Blockchain system to verify and propagate messages Download PDF

Info

Publication number
KR102081159B1
KR102081159B1 KR1020180136326A KR20180136326A KR102081159B1 KR 102081159 B1 KR102081159 B1 KR 102081159B1 KR 1020180136326 A KR1020180136326 A KR 1020180136326A KR 20180136326 A KR20180136326 A KR 20180136326A KR 102081159 B1 KR102081159 B1 KR 102081159B1
Authority
KR
South Korea
Prior art keywords
node
message
nodes
trusted
logical
Prior art date
Application number
KR1020180136326A
Other languages
Korean (ko)
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 엔에이치엔 주식회사
Priority to KR1020180136326A priority Critical patent/KR102081159B1/en
Application granted granted Critical
Publication of KR102081159B1 publication Critical patent/KR102081159B1/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/12Applying verification of the received information
    • H04L63/123Applying verification of the received information received data contents, e.g. message integrity
    • 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/1046Joining mechanisms

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computing Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Theoretical Computer Science (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)

Abstract

The present invention provides a block chain system and a method in which a plurality of nodes verify and propagate messages in the same which can efficiently use network resources and processing capabilities. According to an embodiment of the present invention, the method in which a plurality of nodes verify and propagate messages in a block chain system consisting of a distributed network of at least one logical node including a plurality of trusted nodes and at least one public node comprises: a step in which a first trusted node in the logical node receives a message propagated in a block chain network; a step in which the first trusted node verifies a trust relationship with a node which has transmitted the message; a step in which the first trusted node determines whether the validity of the message is verified by a second trusted node if the node which has transmitted the message is confirmed to be the public node; and a step in which the first trusted node propagates the message in the block chain network if the validity verification of the message by the second trusted node is confirmed and verifies the validity of the message to propagate a message with verified validity in the block chain network if the validity verification of the message by the second trusted node is not confirmed.

Description

블록체인 시스템 및 블록체인 시스템에서 복수의 노드들이 메시지를 검증 및 전파하는 방법{A Blockchain system and a method for a plurality of nodes in the Blockchain system to verify and propagate messages}A blockchain system and a method for a plurality of nodes in the Blockchain system to verify and propagate messages}

본 발명은 블록체인 시스템에 관한 것으로서, 블록체인 시스템에서 복수의 노드들이 메시지를 검증하고 전파하는 방법에 관한 것이다.The present invention relates to a blockchain system, and to a method of verifying and propagating a message by a plurality of nodes in a blockchain system.

블록체인은 2008년 사토시 나카모토의 Bitcoin: A Peer-to-Peer Electronic Cash System에서 블록과 블록을 연결하는 방법에서 유래하였다. 블록체인은 피어 들에게 원장이 공유되고 블록 안의 내용이 투명하게 공개되며 임의로 변경이 불가능한 특성으로 인해 암호화폐에서 필수불가결의 기술로 인정받았다. 그리고 이제 블록체인은 암호화폐만을 위한 기술이 아니라 여러 산업 분야에 걸쳐서 활용가능성을 보여주고 있다. 블록체인은 분산화된 P2P 네트워크를 근간으로 한다. P2P는 'Peer-to-Peer'라는 뜻으로 중앙 서버없이 각 단말들이 서로 동등한 입장에서 통신을 하는 네트워크를 말한다. 각 단말은 서버이기도 하면서 동시에 클라이언트가 된다. 블록체인 네트워크를 구성하는 노드(Peer)들은 원장의 사본을 각자 보관하고 자신이 가진 원장의 상황에 따라 행동을 결정한다. 즉, 노드들은 블록을 받아들일지, 다음 블록을 생성할지, 받은 블록을 다시 주변 노드들로 전파할지 등을 결정한다. 노드들은 독립적인 개체이며 자신과 연결된 다른 노드들을 신뢰할 필요가 없다. 즉, 서로 신뢰할 필요가 없는 노드들은 분산형 장부인 블록체인을 통한 디지털 거래 기술에 따라서 서로 상호작용 하면서 데이터의 무결성 및 인증을 이루게 되고 그에 따라 자연스럽게 신뢰가 구축된다. 그러나, 데이터의 무결성 및 인증을 이루는 과정에서 블록체인 네트워크 자원 및 처리 능력의 비효율성이 나타난다. 노드들 각각은 원장 사본의 보관을 위해 다수의 데이터 복제를 수행한다. 또한, 노드들 간의 블록 및 거래의 전파에 따라 중복된 데이터 전송 및 노드들 각각에서 동일한 블록에 대한 검증 작업이 이루어져 블록 검증 작업의 중복 처리가 나타난다. 이러한 문제는 분산된 신뢰 네트워크를 통해 서로 신뢰하지 않는 노드들 간의 거래의 안정성을 보장하는 블록체인 시스템에서의 해결하기 어려운 문제점으로 인식되어 왔다. 종래 이를 해결하기 위하여 다양한 합의 알고리즘의 개발이나 기존의 합의 알고리즘의 최적화, 블록 생성 권한을 가진 노드의 수를 제한하는 등의 방법을 통해 블록체인 네트워크의 성능 효율성을 높이고자 하는 노력이 있었다. 그러나, 종래 기술은 블록체인 기술을 이용한 비즈니스 모델의 종류에 따라서 합의 알고리즘이나 블록 생성 권한 부여에 대한 최적화 조건이 있고 이러한 조건은 때때로 네트워크 성능 향상과는 부합하지 않는다. 아울러, 다양한 서비스를 제공하는 기업 서비스 환경에 오로지 네트워크 성능 향상을 위한 특정 알고리즘을 획일적으로 적용할 수 없다고 하는 것은 전술한 문제를 해결하는데 큰 장애물로 작용한다.Blockchain originated from the method of linking blocks to blocks in Satoshi Nakamoto's Bitcoin: A Peer-to-Peer Electronic Cash System in 2008. Blockchain has been recognized as an indispensable technology in cryptocurrency because of its shared ledger among peers, its contents transparently disclosed, and its immutable nature. And now blockchain is showing not only the technology for cryptocurrency but also its applicability in various industries. Blockchain is based on a decentralized P2P network. P2P means 'peer-to-peer' and refers to a network in which each terminal communicates on an equal basis without a central server. Each terminal is both a server and a client at the same time. The peers that make up the blockchain network keep a copy of the ledger and decide on the behavior of the ledger. That is, nodes decide whether to accept a block, generate the next block, or propagate the received block back to neighboring nodes. Nodes are independent entities and do not need to trust other nodes connected to them. In other words, nodes that do not need to trust each other interact with each other according to the digital transaction technology through the blockchain, which is a distributed book, to achieve data integrity and authentication, and trust is naturally established accordingly. However, inefficiency of blockchain network resources and processing power appears in the process of data integrity and authentication. Each of the nodes performs multiple data replications for keeping a copy of the ledger. In addition, in accordance with the propagation of blocks and transactions between nodes, duplicate data transmission and validation of the same block are performed in each of the nodes, resulting in overlapping processing of block verification. This problem has been recognized as a difficult problem to solve in a blockchain system that guarantees the stability of transactions between nodes that do not trust each other through a distributed trust network. In order to solve the conventional problem, there have been efforts to increase the performance efficiency of the blockchain network by developing various consensus algorithms, optimizing existing consensus algorithms, and limiting the number of nodes having the right to create blocks. However, in the prior art, there are optimization conditions for consensus algorithm or block creation authority depending on the type of business model using blockchain technology, and these conditions sometimes do not correspond to network performance improvement. In addition, the fact that a specific algorithm for uniformly improving network performance cannot be uniformly applied to an enterprise service environment providing various services is a significant obstacle to solving the above-mentioned problems.

한국특허공개공보 제10-2018-0113140호Korean Patent Publication No. 10-2018-0113140

본 발명의 일 목적은 블록체인 시스템에서 상대 노드의 데이터 보유 여부에 관계없이 일방적인 데이터 전송이 발생하고 그에 따라 같은 데이터가 중복적으로 여러 회 전달되어 네트워크가 비효율적으로 운용되는 문제를 해결하고자 한다.An object of the present invention is to solve the problem that the one-way data transmission occurs in the blockchain system regardless of whether or not the data is retained by the other node, and that the same data is repeatedly delivered several times, thereby inefficiently operating the network.

또한, 본 발명의 일 목적은 블록체인 시스템에서 데이터를 수신할 때마다 노드 스스로 매번 데이터의 유효성을 검증함에 따른 네트워크 운용의 비효율성을 해결하고자 한다.In addition, an object of the present invention is to solve the inefficiency of the network operation by verifying the validity of the data every time the node itself every time data is received in the blockchain system.

또한, 본 발명의 일 목적은 서비스 제공자가 안정적인 서비스 운용을 위해 다수의 노드를 운영하는 기업 서비스 환경에서 기존 블록체인 시스템의 네트워크 운용의 비효율성을 해결하고자 한다.In addition, an object of the present invention is to solve the inefficiency of the network operation of the existing blockchain system in the enterprise service environment in which the service provider operates a plurality of nodes for stable service operation.

즉, 본 발명의 일 목적은 서로 신뢰 관계를 가진 복수의 노드들 간의 네트워크 자원 및 처리 능력을 효율적으로 사용할 수 있는 블록체인 시스템을 제공하는데 있다.That is, one object of the present invention is to provide a blockchain system that can efficiently use network resources and processing power among a plurality of nodes having a trust relationship with each other.

실시예는, 복수의 신뢰 노드를 포함하는 적어도 하나의 논리 노드 및 적어도 하나의 공개 노드들의 분산 네트워크로 구성된 블록체인 시스템에서 복수의 노드들이 메시지를 검증 및 전파하는 방법으로서, 상기 논리 노드 내의 제1 신뢰 노드가 블록체인 네트워크 상에서 전파된 메시지를 수신하는 단계; 상기 제1 신뢰 노드는 상기 메시지를 전송한 노드와의 신뢰 관계를 검증하는 단계; 상기 메시지를 전송한 노드가 상기 공개 노드임이 확인되면, 상기 제1 신뢰 노드는 제2 신뢰 노드에 의한 상기 메시지의 유효성 검증 여부를 판단하는 단계; 및 상기 제1 신뢰 노드는 상기 제2 신뢰 노드에 의한 상기 메시지의 유효성 검증이 확인되면 상기 블록체인 네트워크 상에 상기 메시지를 전파하고, 상기 제2 신뢰 노드에 의한 상기 메시지의 유효성 검증이 확인되지 않으면 상기 메시지의 유효성을 검증하여 유효성이 검증된 메시지를 상기 블록체인 네트워크 상에 전파하는 단계;를 포함하는 블록체인 시스템에서 복수의 노드들이 메시지를 검증 및 전파하는 방법을 제공할 수 있다.An embodiment is a method of a plurality of nodes verifying and propagating a message in a blockchain system consisting of at least one logical node comprising a plurality of trusted nodes and a distributed network of at least one public node, the method comprising: a first node in the logical node; The trusted node receiving a message propagated on the blockchain network; Verifying, by the first trusted node, a trust relationship with the node that transmitted the message; If it is determined that the node that transmitted the message is the public node, the first trusted node determines whether to validate the message by a second trusted node; And if the first trusted node propagates the message on the blockchain network when the validation of the message by the second trusted node is confirmed, and if the validation of the message by the second trusted node is not verified Providing a validity of the message and propagating the validated message on the blockchain network may provide a method for verifying and propagating a message by a plurality of nodes in a blockchain system.

다른 측면에서, 상기 제1 신뢰 노드가 블록체인 네트워크 상에서 전파된 메시지를 수신하는 단계는, 상기 논리 노드를 식별하는 주소를 통해 상기 논리 노드에 접속한 상기 공개 노드가 상기 논리 노드로 상기 메시지를 전송하는 단계; 상기 논리 노드가 상기 복수의 신뢰 노드 중 상기 제1 신뢰 노드를 선택하는 단계; 및 상기 논리 노드는 선택된 상기 제1 신뢰 노드로 상기 메시지를 전송하는 단계;를 포함하는 블록체인 시스템에서 복수의 노드들이 메시지를 검증 및 전파하는 방법을 제공할 수 있다.In another aspect, the receiving of a message propagated on the blockchain network by the first trusted node may include: sending the message to the logical node by the public node accessing the logical node through an address identifying the logical node. Making; The logical node selecting the first trusted node of the plurality of trusted nodes; And transmitting, by the logical node, the message to the selected first trusted node. The method may provide a method for verifying and propagating a message by a plurality of nodes in a blockchain system.

또 다른 측면에서, 상기 제1 신뢰 노드는 상기 메시지를 전송한 노드와의 신뢰 관계를 검증하는 단계는, 상기 제1 신뢰 노드가 상기 메시지의 수신에 응답하여 미리 저장된 IP 주소 목록 정보, 상기 메시지를 전송한 노드로부터의 인증서 수신 여부 및 상기 메시지를 전송한 노드의 블록체인 주소와 상기 메시지의 유효성 검증에 따른 서명 정보 중 적어도 하나에 기초하여 상기 메시지를 전송한 노드와의 신뢰 관계를 검증하는 블록체인 시스템에서 복수의 노드들이 메시지를 검증 및 전파하는 방법을 제공할 수 있다.In another aspect, the first trusted node to verify the trust relationship with the node that sent the message, the first trusted node in response to receiving the message, the IP address list information, the pre-stored information in response to receiving the message, A blockchain that verifies the trust relationship with the node that transmitted the message based on at least one of receiving a certificate from the transmitting node, a blockchain address of the node that transmitted the message, and signature information according to the validity of the message. A plurality of nodes in a system can provide a method for verifying and propagating a message.

또 다른 측면에서, 상기 제1 신뢰 노드는 제2 신뢰 노드에 의한 상기 메시지의 유효성 검증 여부를 판단하는 단계는, 상기 제1 신뢰 노드는 상기 제2 신뢰 노드와 공유하는 데이터베이스 상에서 상기 메시지의 저장 여부를 확인하는 단계; 및 상기 메시지의 저장이 확인되면 상기 메시지의 유효성 검증이 완료된 것으로 판단하는 단계;를 포함하는 블록체인 시스템에서 복수의 노드들이 메시지를 검증 및 전파하는 방법을 제공할 수 있다.In another aspect, the first trust node determines whether the message is validated by a second trust node, wherein the first trust node stores the message on a database shared with the second trust node. Confirming; And when the storage of the message is confirmed, determining that the validation of the message is completed. The method may provide a method for verifying and propagating a message by a plurality of nodes in a blockchain system.

또 다른 측면에서, 상기 블록체인 네트워크 상에 메시지를 전파하는 단계는, 상기 제1 신뢰 노드는 상기 복수의 노드들 중 상기 논리 노드 내의 신뢰 노드들을 제외한 노드들로 중 적어도 일부의 노드들로 상기 메시지를 전파하는 블록체인 시스템에서 복수의 노드들이 메시지를 검증 및 전파하는 방법을 제공할 수 있다.In another aspect, propagating a message on the blockchain network, wherein the first trust node is the message to at least some of the nodes other than trust nodes in the logical node of the plurality of nodes. In a blockchain system that propagates, a plurality of nodes may provide a method for verifying and propagating a message.

또 다른 측면에서, 상기 복수의 노드들 중 블록체인의 로컬 복사본이 저장된 데이터베이스를 공유하는 노드들을 상기 논리 노드로 그룹핑하는 단계;를 더 포함하는 블록체인 시스템에서 복수의 노드들이 메시지를 검증 및 전파하는 방법을 제공할 수 있다.In another aspect, the group of nodes of the plurality of nodes sharing a database in which a local copy of the blockchain is stored in the logical node; further comprising a plurality of nodes in the blockchain system to verify and propagate the message It may provide a method.

본 발명은 논리 노드 내의 복수의 물리적 노드들 간의 서로 신뢰 관계를 검증할 수 있는 방법을 제공할 수 있다.The present invention can provide a method for verifying a trust relationship between a plurality of physical nodes in a logical node.

또한, 본 발명은 논리 노드 내의 물리적 노드들 간의 데이터 유효성 검증의 중복 처리를 방지함으로써 논리 노드의 컴퓨팅 파워를 절감시킬 수 있다.In addition, the present invention can reduce the computing power of the logical node by preventing the redundant processing of data validation among the physical nodes in the logical node.

또한, 본 발명은 논리 노드 내에 대량의 저장 공간을 확보하지 않아도 새로운 신뢰 노드를 추가할 수 있으며 더 많은 트래픽을 처리할 수 있게 한다.In addition, the present invention can add new trusted nodes and handle more traffic without having to secure a large amount of storage space in the logical node.

또한, 본 발명은 논리 노드 내의 물리적 노드들 간의 데이터 전송량을 절감시킬 수 있다.In addition, the present invention can reduce the amount of data transfer between physical nodes in a logical node.

또한, 본 발명은 논리 노드 내에 복수의 물리적 노드들을 구비함으로써 악의적인 대량의 패킷 또는 요청을 생성함에 따른 블록체인 시스템 마비 가능성을 줄이고 외부의 공격으로부터의 회피 가능성을 높이다.In addition, the present invention reduces the possibility of blockchain system paralysis caused by generating a large amount of malicious packets or requests by increasing the number of physical nodes in a logical node and increases the possibility of avoiding from external attacks.

또한, 본 발명은 온라인 게임 서비스 등과 같이 많은 서버가 요구되는 기업 비즈니스 환경에서 블록체인 시스템 구동에 따른 트래픽을 절감할 수 있다. 따라서, 비즈니스 서비스의 네트워크 속도의 저하를 막고 네트워크 운용 유지 비용을 절감할 수 있다.In addition, the present invention can reduce the traffic according to the blockchain system running in an enterprise business environment that requires a large number of servers, such as online game services. Therefore, the network speed of business services can be prevented from being lowered and network operation maintenance costs can be reduced.

본 발명에서 얻을 수 있는 효과는 이상에서 언급한 효과들로 제한되지 않으며, 언급하지 않은 또 다른 효과들은 아래의 기재로부터 명확하게 이해될 수 있다.The effects obtainable in the present invention are not limited to the above-mentioned effects, and other effects not mentioned may be clearly understood from the following description.

도 1 및 도 2는 복수의 노드들의 분산 네트워크로 구성된 블록체인 시스템에 대한 개관을 나타낸다.
도 3은 본 발명의 실시예에 따른 블록체인 시스템에서 복수의 노드들이 메시지를 검증 및 전파하는 방법에 대한 예시적인 흐름도이다.
도 4는 도 3의 메시지가 거래 내역인 경우의 거래 내역을 검증 및 전파하는 방법에 대한 예시적인 흐름도이다.
도 5는 도 3의 메시지가 블록인 경우의 블록의 검증 및 전파하는 방법에 대한 예시적인 흐름도이다.
도 6은 도 3의 메시지가 블록인 경우의 블록의 검증 및 전파하는 방법에 대한 또 다른 예시적인 흐름도이다.
1 and 2 show an overview of a blockchain system composed of a distributed network of a plurality of nodes.
3 is an exemplary flowchart for a method for verifying and propagating a message by a plurality of nodes in a blockchain system according to an embodiment of the present invention.
4 is an exemplary flowchart for a method of verifying and propagating a transaction history when the message of FIG. 3 is a transaction history.
5 is an exemplary flowchart for a method of verifying and propagating a block when the message of FIG. 3 is a block.
FIG. 6 is another exemplary flowchart for a method of verifying and propagating a block when the message of FIG. 3 is a block.

본 발명은 다양한 변환을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세한 설명에 상세하게 설명하고자 한다. 본 발명의 효과 및 특징, 그리고 그것들을 달성하는 방법은 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 개시되는 실시예들에 한정되는 것이 아니라 다양한 형태로 구현될 수 있다. 이하의 실시예에서, 제1, 제2 등의 용어는 한정적인 의미가 아니라 하나의 구성 요소를 다른 구성 요소와 구별하는 목적으로 사용되었다. 또한, 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 또한, 포함하다 또는 가지다 등의 용어는 명세서상에 기재된 특징, 또는 구성요소가 존재함을 의미하는 것이고, 하나 이상의 다른 특징들 또는 구성요소가 부가될 가능성을 미리 배제하는 것은 아니다. 또한, 도면에서는 설명의 편의를 위하여 구성 요소들이 그 크기가 과장 또는 축소될 수 있다. 예컨대, 도면에서 나타난 각 구성의 크기 및 두께는 설명의 편의를 위해 임의로 나타내었으므로, 본 발명이 반드시 도시된 바에 한정되지 않는다.As the invention allows for various changes and numerous embodiments, particular embodiments will be illustrated in the drawings and described in detail in the written description. Effects and features of the present invention, and methods for achieving them will be apparent with reference to the embodiments described below in detail in conjunction with the drawings. However, the present invention is not limited to the embodiments disclosed below but may be implemented in various forms. In the following embodiments, the terms first, second, etc. are used for the purpose of distinguishing one component from other components rather than a restrictive meaning. Also, the singular forms “a”, “an” and “the” include plural forms unless the context clearly indicates otherwise. In addition, the terms including or have means that the features or components described in the specification are present, and does not exclude in advance the possibility that one or more other features or components will be added. In addition, in the drawings, the components may be exaggerated or reduced in size for convenience of description. For example, the size and thickness of each component shown in the drawings are arbitrarily shown for convenience of description, and thus the present invention is not necessarily limited to the illustrated.

이하, 첨부된 도면을 참조하여 본 발명의 실시예들을 상세히 설명하기로 하며, 도면을 참조하여 설명할 때 동일하거나 대응하는 구성 요소는 동일한 도면부호를 부여하고 이에 대한 중복되는 설명은 생략하기로 한다.Hereinafter, exemplary embodiments of the present invention will be described in detail with reference to the accompanying drawings, and the same or corresponding components will be denoted by the same reference numerals, and redundant description thereof will be omitted. .

도 1 및 도 2는 복수의 노드들의 분산 네트워크로 구성된 블록체인 시스템에 대한 개관을 나타낸다.1 and 2 show an overview of a blockchain system composed of a distributed network of a plurality of nodes.

이하에서 설명하는 시스템은 네트워크상에서 피어투피어(peer-to-peer) 네트워크 아키텍처 구조를 이룬다. 즉, 시스템에 참여하는 사용자들은 모두 등등한 지위를 가지고 있고 특별한 노드는 존재하지 않으며 모든 노드가 네트워크 서비스를 구성하는 역할을 분담한다. 네트워크상의 여러 노드는 서로 등등한 토폴로지를 가지면서 그물망 네트워크에서 서로 연결된다. 네트워크 내에 있는 노드들이 서로 등등한 위치에 있다고 할지라도 지원하는 기능에 따라 각자의 역할은 상이할 수 있다.The system described below constitutes a peer-to-peer network architecture structure on a network. That is, all users participating in the system have equal status, no special nodes exist, and all nodes share the role of configuring network services. Multiple nodes on a network are connected to each other in a mesh network with equivalent topologies. Even if the nodes in the network are at equal places, their roles may differ depending on the functionality they support.

모든 노드는 네트워크 내에 라우팅 기능을 보유하고 있으며, 다른 기능을 포함할 수도 있다. 모든 노드는 거래와 블록에 관한 메시지(데이터)를 비롯하여 각종 데이터를 검증하고 전파하며, 이웃 노드들과의 연결을 유지하는 기능을 수행할 수 있다. 여기서의 거래라 함은 금전적인 거래나 가상 화폐의 거래뿐만 아니라 스마트컨트렉트에 따른 각종 거래를 모두 포함한다. 따라서, 본 명세서에서의 거래의 의미가 특정한 거래에 국한되지 않음을 주의해야 한다.Every node has a routing function in the network and may include other functions. Every node can perform the function of verifying and propagating various data, including messages (data) about transactions and blocks, and maintaining a connection with neighboring nodes. Transactions herein include not only financial transactions or virtual currency transactions but also various transactions according to smart contracts. Therefore, it should be noted that the meaning of a transaction herein is not limited to a specific transaction.

사용자는 일반 개인에서부터 조직, 커뮤니티, 대규모 집단에 이르기까지 다양할 수 있고 다른 유형의 개체를 포함할 수 있다.Users can vary from ordinary individuals to organizations, communities, large groups, and can contain other types of entities.

네트워크에 연결된 노드들은 서로 독립적인 장치인 물리적 노드로 정의할 수 있다. 물리적 노드 중 일부는 논리 노드로 그룹핑될 수 있다. 그리고 논리 노드로 그룹핑되지 않은 노드는 공개 노드로 정의할 수 있다. 네트워크 상에는 적어도 하나의 논리 노드가 존재할 수 있다. 논리 노드 내에는 복수의 물리적 노드가 존재할 수 있다. 논리 노드로 그룹핑되는 물리적 노드들은 일정한 신뢰 관계의 검증 과정을 거쳐 서로 신뢰하게 되는 신뢰 노드로 정의할 수 있고, 논리 노드로 그룹핑되지 않는 공개 노드들은 미신뢰 노드로 정의할 수 있다. 또한, 논리 노드 내의 적어도 일부의 물리적 노드들은 공통된 저장소인 데이터베이스를 공유할 수도 있다. 이와 달리, 미신뢰 노드들인 공개 노드들은 각자의 저장소인 데이터베이스를 구비할 수 있다.Nodes connected to the network can be defined as physical nodes that are independent devices. Some of the physical nodes may be grouped into logical nodes. Nodes not grouped into logical nodes can be defined as public nodes. There may be at least one logical node on the network. There may be a plurality of physical nodes within a logical node. Physical nodes grouped into logical nodes may be defined as trusted nodes that trust each other through a process of verifying a certain trust relationship, and public nodes not grouped into logical nodes may be defined as untrusted nodes. In addition, at least some physical nodes within a logical node may share a database that is a common repository. Alternatively, public nodes, which are untrusted nodes, may have a database that is their own repository.

도 1의 도시된 바에 따르면, 블록체인 시스템(10)은 블록체인 네트워크에 연결된 제1 내지 제n 공개 노드(101a ~ 101n)와 제1 내지 제 n 논리 노드(103a ~ 103n)으로 구성될 수 있다. 제1 내지 제 n 논리 노드(103a ~ 103n)들 각각은 복수의 물리적 노드를 포함할 수 있다. 제1 논리 노드(103a)는 제1 내지 제 m 물리적 노드(102a ~102m)를 포함할 수 있다.As shown in FIG. 1, the blockchain system 10 may be composed of first to nth public nodes 101a to 101n and first to nth logical nodes 103a to 103n connected to a blockchain network. . Each of the first to nth logical nodes 103a to 103n may include a plurality of physical nodes. The first logical node 103a may include first to mth physical nodes 102a to 102m.

어느 하나의 논리 노드 내의 복수의 물리적 노드들은 블록체인 네트워크 상에서는 개별적인 노드들이지만 이들 간에는 블록체인 시스템의 운용 과정 중에 소정의 검증 과정을 거쳐 서로 신뢰 관계가 형성될 수 있다. 예시적으로, 어느 하나의 논리 노드 내의 복수의 물리적 노드들의 소유자가 동일할 수 있다. Although a plurality of physical nodes in one logical node are individual nodes on the blockchain network, a trust relationship may be formed between them through a predetermined verification process during the operation of the blockchain system. By way of example, the owners of a plurality of physical nodes in either logical node may be the same.

일부 실시예에서, 임의의 모회사 내의 계열사들 각각이 관리하는 계열사들 각각의 노드가 될 수 있다. In some embodiments, each of the affiliates in any parent company may be a node of each of the affiliates it manages.

일부 실시예에서, 어느 하나의 논리 노드 내의 복수의 물리적 노드들은 적어도 하나의 데이터베이스를 공유하는 관계가 될 수 있다. In some embodiments, a plurality of physical nodes within any one logical node may be in a relationship sharing at least one database.

일부 실시예에서, 복수의 물리적 노드들이 특정 기준에 따라 그룹핑되었을 때 그들을 어느 하나의 논리 노드로 볼 수도 있다. In some embodiments, multiple physical nodes may be viewed as either logical node when grouped according to a particular criterion.

일부 실시예에서, 복수의 물리적 노드들은 인터넷 데이터 센터(Internet Data Center)와 같은 인터넷 연결의 핵심이 되는 서버를 한데 모아 집중시킨 시설 내에 설치된 노드들이 될 수 있다. 다만, 복수의 물리적 노드들이 일정 영역에 집중된 것이 아닌 적어도 일부는 지리적으로 원격의 위치에 설치된 노드들이 될 수도 있다. In some embodiments, the plurality of physical nodes may be nodes installed in a facility that aggregates and centralizes servers that are the core of an Internet connection, such as the Internet Data Center. However, at least some of the plurality of physical nodes may not be concentrated in a certain area, but may be nodes installed at a geographically remote location.

일부 실시예에서, 기업과 같은 사용자는 DDOS 공격에 대응하거나 부하를 분산하는 등의 목적으로 하나의 논리 노드로서 복수의 물리적 노드를 구비하고 이들 복수의 물리적 노드들이 블록체인 시스템 상에서 개별적인 노드가 되도록 할 수 있다. In some embodiments, a user, such as an enterprise, may have multiple physical nodes as one logical node for the purpose of responding to a DDOS attack, distributing load, etc. and allowing these multiple physical nodes to be separate nodes on a blockchain system. Can be.

일부 실시예에서, 논리 노드 내의 복수의 물리적 노드들은 블록을 생성하는 권한을 독점, 블록 생성 권한을 가질 빈도가 공개 노드들 대비 높은 경우 또는 추점 등 다양한 방식에 의해 논리 노드에게 블록 생성 권한이 부여되는 경우, 블록체인 시스템 구동의 부정적인 영향을 끼치기 위한 악의적인 공격이 논리 노드로 집중될 가능성을 높인다. 따라서, 논리 노드 내의 복수의 물리적 노드를 구비하여 악의적인 대량의 패킷 또는 요청을 생성함에 따른 시스템 마비 가능성을 줄이고 복수의 물리적 노드들에게 블록 생성 권한을 분배함으로써 외부의 공격으로부터의 회피 가능성을 높이다. 아울러, 논리 노드가 임의의 노드에게 블록 생성 권한을 위임하는 경우에도 논리 노드 내의 복수의 물리적 노드들 중 어느 하나의 노드가 임의의 노드에게 블록 생성 권한을 위임하도록 할 수 있으므로 블록체인 네트워크의 보안 및 유용성의 저해 가능성을 낮춘다.In some embodiments, a plurality of physical nodes within a logical node monopolizes the right to create a block, a block generation right is granted to the logical node in various ways, such as when the frequency of having a block generation right is higher than that of the public nodes or by inference. In this case, it increases the likelihood that a malicious attack to negatively affect the operation of the blockchain system will be concentrated on the logical node. Thus, having multiple physical nodes within a logical node reduces the likelihood of system paralysis resulting from malicious mass packets or requests, and increases the likelihood of evasion from external attacks by distributing block creation rights to multiple physical nodes. In addition, even when a logical node delegates a block generation authority to an arbitrary node, any one of a plurality of physical nodes within the logical node may allow a node to delegate block generation authority to an arbitrary node. Lower the likelihood of inhibition of usefulness.

각각의 노드는 모든 컴퓨팅 언어를 읽을수 있도록 서버, 인터페이스, 시스템, 데이터베이스, 에이전트, 피어, 엔진, 컨트롤러 또는 개별적으로 또는 집합적으로 작동하는 기타 유형의 컴퓨팅 장치를 포함하거나 컴퓨팅 장치들의 적절한 조합으로 구성될 수 있다. 컴퓨팅 장치는 비일시적인 컴퓨터 판독 가능 저장 매체(예를 들어, 하드 드라이브, 솔리드 스테이트 드라이브, RAM, 플래시, ROM 등)상에 저장된 소프트웨어 명령을 실행하도록 구성된 프로세서를 포함할 수 있다. 바람직하게, 컴퓨팅 장치가 후술하는 각종 기능을 제공할 수 있도록 소프트웨어 명령이 구성된다. 또한, 개시된 기술들은 프로세서로 하여금 개시된 단계들을 실행하게 하는 소프트웨어 명령들을 저장하는 비일시적 컴퓨터 판독 가능 매체를 포함하는 컴퓨터 프로그램 제품으로서 구현될 수 있다. 바람직하게는, 다양한 서버, 시스템, 데이터베이스 그리고 인터페이스는 HTTP, HTTPS, AES, 공개/개인키 교환, 웹 서비스 API, 알려진 금융 거래 프로토콜 또는 다른 전자 기반의 표준화된 프로토콜 또는 알고리즘을 사용하여 데이터를 교환할 수 있다. 바람직하게, 데이터 교환은 패킷 교환 네트워크, 인터넷, LAN, WAN, VPN 또는 다른 유형의 패킷 교환 네트워크를 통해 수행될 수 있다.Each node may comprise a server, an interface, a system, a database, an agent, a peer, an engine, a controller, or any other type of computing device that works individually or collectively, or may be configured with any suitable combination of computing devices to read all computing languages. Can be. The computing device may include a processor configured to execute software instructions stored on a non-transitory computer readable storage medium (eg, hard drive, solid state drive, RAM, flash, ROM, etc.). Preferably, the software instructions are configured so that the computing device can provide the various functions described below. In addition, the disclosed techniques may be embodied as a computer program product including a non-transitory computer readable medium storing software instructions for causing a processor to execute the disclosed steps. Preferably, various servers, systems, databases and interfaces may exchange data using HTTP, HTTPS, AES, public / private key exchange, web services APIs, known financial transaction protocols or other electronic based standardized protocols or algorithms. Can be. Preferably, the data exchange may be performed via a packet switched network, the Internet, a LAN, a WAN, a VPN or other type of packet switched network.

논리 노드에 속하지 않는 새로운 물리적 노드나 특정 논리 노드 내에 새로운 물리적 노드가 시스템(10)에 참여할 수 있다.New physical nodes that do not belong to a logical node or within a particular logical node may participate in the system 10.

새로운 노드가 시스템(10)에 참여하기 위해 먼저 네트워크상에 존재하는 다른 노드들을 검색할 수 있다. 이러한 프로세스를 시작하기 위해서 새로운 노드는 기존에 네트워크상에 존재하는 노드를 최소 한 개는 검색해서 연결해야 할 수 있다. 새로운 노드가 이미 알고 있는 이웃 노드에 연결되기 위해 각 노드는 특정 번호의 포트로 TCP 커넥션을 연결하거나 대안 포트로 연결할 수 있다. 새로운 노드는 연결 요청 메시지를 이웃 노드로 전송하고 이웃 노드는 연결 요청을 승인할 경우 승인 메시지를 새로운 노드에 전송함으로써 해당 요청에 응답할 수 있다. 하나 이상의 연결이 성립되고 나면, 새로운 노드는 자신의 IP 주소가 담겨 있는 어드레스 메시지를 이웃 노드들에게 전송할 수 있다. 차례로 이웃 노드들은 전송받은 어드레스 메시지를 그들의 이웃 노드들에게 전송함으로써 새롭게 연결된 노드가 더 잘 알려지고 다른 노드들과 더 잘 연결되게 할 수 있다. 또한, 새롭게 연결된 노드는 어드레스 요청 메시지를 이웃 노드들에게 보내서 다른 이웃 노드들의 IP 주소 목록을 다시 전송해줄 것을 요청할 수 있다. 이러한 방식을 통해 노드는 자신과 연결되어 있는 이웃 노드를 검색할 수 있고 다른 노드들이 자신을 검색할 수 있도록 자신의 존재를 네트워크상에 홍보할 수 있다.A new node may first search for other nodes present on the network to join the system 10. To begin this process, a new node may need to discover and connect to at least one existing node on the network. Each node can connect a TCP connection to a specific numbered port or to an alternate port, so that the new node connects to a known neighbor. The new node may respond to the request by sending a connection request message to the neighbor node and the neighbor node sends a grant message to the new node when the neighbor node approves the connection request. After one or more connections are established, the new node can send address messages containing its IP addresses to neighboring nodes. In turn, neighboring nodes can send the received address message to their neighboring nodes so that the newly connected node is better known and connected with other nodes. In addition, the newly connected node may request that the IP address list of other neighbor nodes be transmitted again by sending an address request message to the neighbor nodes. In this way, a node can search for neighboring nodes that are connected to it and can promote its presence on the network so that other nodes can search for it.

복수의 노드들 중 적어도 일부의 노드는 블록체인 전체의 복사본 또는 적어도 블록체인의 부분집합에 해당하는 복사본을 각자의 데이터베이스에 저장할 수 있다. 또한, 논리 노드 내의 복수의 물리적 노드들은 하나의 데이터베이스를 공유할 수 있다. 그리고 공유하는 데이터베이스는 복수개가 될 수 있다.At least some of the nodes of the plurality of nodes may store a copy of the entire blockchain or at least a copy corresponding to a subset of the blockchain in their respective databases. In addition, multiple physical nodes within a logical node may share a database. And there can be multiple databases shared.

블록체인은 트랜잭션(거래)으로 구성되는 변경 불가능한 블록으로 구성된 분산형 컴퓨터 시스템으로 구성된다. 블록체인을 구성하는 각 블록은 이전 블록의 해시를 포함하므로 블록이 함께 연결되어 처음부터 블록체인에 쓰여진 모든 트랜잭션의 레코드를 생성한다. 블록은 이전 블록에 종속적으로 연결되어 있으므로 해체, 수정 및 재구성이 거의 불가능하고 노드들이 각자 보유하므로 분산되고 견고하다. 일부 실시예에서, 하나의 블록에는 적어도 하나의 거래 내역이 기록된다. 거래 내역은 해쉬로 계산되어 위변조가 발생되지 않도록 구성될 수 있다. 각 블록과 거래는 해쉬 값, 데이터 발생 시점의 타임스탬프(timestamp)를 관리함으로써 위변조를 막고 거래 내역을 추적할 수 있다. 또한, 가상 화폐 등과 같인 금전적인 수단의 거래 관계에 있어서 노드들은 블록체인 원장과 지갑 어플리케이션을 저장하여 사용자가 안전하고 신뢰성 있는 방식으로 네트워크를 통한 거래나 다른 관련 기능을 수행할 수 있게 한다.Blockchain consists of a decentralized computer system consisting of immutable blocks made up of transactions. Each block in the blockchain contains the hash of the previous block, so the blocks are linked together to create a record of all transactions written to the blockchain from the beginning. Blocks are dependent on previous blocks, making them nearly impossible to disassemble, modify, and reconstruct, and they are distributed and robust because each node owns them. In some embodiments, at least one transaction history is recorded in one block. Transaction history may be configured to be a hash so that no forgery occurs. Each block and transaction can manage the hash value and the timestamp of when the data occurred, preventing tampering and tracking the transaction history. In addition, in financial transactions, such as virtual currency, nodes store blockchain ledgers and wallet applications, allowing users to perform transactions and other related functions over the network in a secure and reliable manner.

거래가 블록체인 네트워크에 연결된 한 노드로 전송되면 해당 노드에 의해 거래가 유효화될 수 있다. 거래가 유효화되고 나면 해당 노드와 연결된 다른 노드로 이 거래를 전파하고 동시에 성공 메시지가 생성자에게 전달될 수 있다. 만약 거래가 유효화되지 못한 경우라면 해당 노드는 승인을 거부하고 동시에 거절 메시지가 생성자에게 돌아갈 수 있다. 블록체인 네트워크는 P2P 기반 네트워크이다. 이는 각 노드가 시작된다는 것은 P2P 프로토콜을 통해 발견한 여러 다른 노드들과 서로 연결되어 있음을 의미한다. 네트워크 전체는 고정된 토폴로지나 특정 구조 없이 느슨하게 연결된 그물망을 형성해서 모든 노드는 동일한 위상을 가질 수 있다. 거래와 블록 등의 메시지들은 각 노드로부터 자신과 연결된 다른 이웃 노드로 전파된다. 네트워크상에 있는 노드에 새롭게 추가된 유효화 거래는 주변이 있는 복수개의 노드로 전송되고 전송된 각각의 거래는 또다시 복수개의 주변 노드로 전송되며 이 과정이 반복된다. 이런 방식을 통해 유효 거래는 수초만에 기하급수적으로 전파의 물결을 일으켜 결국 연결된 노든 전체가 해당 거래를 전송받게 된다.When a transaction is sent to one node connected to the blockchain network, the transaction can be validated by that node. Once a transaction has been validated, it can be propagated to other nodes connected to that node and at the same time a success message can be sent to the producer. If the transaction is not valid, the node can reject the acknowledgment and at the same time a reject message can be returned to the producer. Blockchain network is a P2P based network. This means that each node starts up and is connected to several other nodes found through the P2P protocol. The entire network forms a loosely connected mesh without a fixed topology or specific structure, so that all nodes can have the same topology. Messages such as transactions and blocks are propagated from each node to other neighboring nodes connected to them. Validation transactions newly added to nodes on the network are sent to a plurality of neighboring nodes, and each transaction is again sent to a plurality of neighboring nodes, and the process is repeated. In this way, a valid transaction will create an exponential wave of propagation in a matter of seconds, and eventually all connected nodes will receive the transaction.

논리 노드 내의 복수의 신뢰 노드들 각각은 자신 만의 IP 주소를 가지고 해당 IP 주소는 블록체인 네트워크 상에 공개될 수 있다. 따라서, 임의의 공개 노드는 블록체인 네트워크를 통해 특정 논리 노드 내의 복수의 신뢰 노드들 중 적어도 하나의 신뢰 노드로 거래와 블록 등의 메시지들을 전송할 수 있다. 즉, 논리 노드 내의 복수의 신뢰 노드들은 블록체인 시스템(10) 상에서 개별적인 노드들로 인식되므로 공개 노드들은 복수의 신뢰 노드들 각각은 개별적인 노드들로 인식할 수 있다. Each of the plurality of trusted nodes in the logical node has its own IP address and the IP address can be published on the blockchain network. Thus, any public node can send messages such as transactions and blocks to at least one of the plurality of trusted nodes in a particular logical node via the blockchain network. That is, since the plurality of trusted nodes in the logical node are recognized as individual nodes on the blockchain system 10, the public nodes can recognize each of the plurality of trusted nodes as individual nodes.

한편, 블록체인 시스템(10)에서 노드들 사이에서 전파되는 메시지 중 거래 내역은 미리 설정된 개수 이상의 노드들에 의해 검증되면 비로서 해당 거래 내역이 승인될 수 있다. 즉, 미리 설정된 개수 이상의 노드들이 거래 내역의 유효성을 검증하면 비로서 해당 거래 내역은 블록체인 네트워크 상에서 신뢰받는 거래 내역이 되어 해당 거래 내역과 관련한 거래가 최종 승인될 수 있다. 이 경우, 논리 노드 내의 어느 하나의 물리적 노드가 특정 거래 내역을 유효한 것으로 인정하면 해당 거래 내역을 수신한 모든 물리적 노드가 결과적으로 해당 거래 내역의 유효성을 검증한 것으로 된다. 따라서, 논리 노드에 포함되는 물리적 노드의 수가 증가할수록 거래 내역의 유효성을 검증한 노드들의 수는 거래의 최종 승인을 위한 미리 설정된 기준을 쉽게 충족하게 된다. 따라서, 논리 노드로 그룹핑되는 물리적 노드의 수가 증가할수록 거래의 최종 승인을 위해 거래 내역의 유효함을 인정한 노드의 기준 개수 또한 증가할 수 있다. 이와 달리, 논리 노드로 그룹핑된 물리적 노드들 중 일부가 제거되는 경우에는 해당 기준 개수가 감소할 수 있다. 즉, 거래의 최종 승인을 위한 거래 내역의 유효함을 인정한 노드의 기준 개수가 논리 노드 내의 물리적 노드들의 개수에 동적으로 변동 가능하게 하여 거래 내역의 승인의 안정성을 유지할 수 있다.Meanwhile, if the transaction details of the messages propagated between the nodes in the blockchain system 10 are verified by more than a predetermined number of nodes, the corresponding transaction details may be approved. That is, when more than a predetermined number of nodes verify the validity of the transaction history, the transaction history becomes a trusted transaction history on the blockchain network, and a transaction related to the transaction history may be finally approved. In this case, if any one physical node in the logical node recognizes the specific transaction details as valid, all the physical nodes that have received the corresponding transaction details consequently validate the corresponding transaction details. Therefore, as the number of physical nodes included in the logical node increases, the number of nodes that have validated the transaction details easily meets the preset criteria for final approval of the transaction. Therefore, as the number of physical nodes grouped into logical nodes increases, the reference number of nodes that have recognized the validity of the transaction details for the final approval of the transaction may also increase. In contrast, when some of the physical nodes grouped into logical nodes are removed, the corresponding reference number may decrease. That is, it is possible to maintain the stability of the approval of the transaction details by allowing the reference number of the nodes that recognize the validity of the transaction details for the final approval of the transaction to be dynamically changed to the number of physical nodes in the logical node.

일부 실시예에서, 논리 노드는 자신에 속한 모든 신뢰 노드를 대표하는 대표 IP 주소를 가질 수 있다. 대표 IP 주소는 블록체인 네트워크 상에 공개될 수 있고, 공개 노드는 대표 IP 주소를 통해 논리 노드로 메시지를 전송할 수 있다. 따라서, 블록체인 시스템(10) 상에서 복수의 논리 노드들 각각이 개별적인 노드로 인식될 수 있다. 즉, 공개 노드들은 논리 노드 내의 신뢰 노드들을 개별적인 노드로 인식하는 것이 아니 논리 노드 자체를 하나의 노드로 인식할 수 있다.In some embodiments, a logical node may have a representative IP address representing all trusted nodes belonging to it. The representative IP address can be published on the blockchain network, and the public node can send a message to the logical node via the representative IP address. Thus, each of the plurality of logical nodes on the blockchain system 10 may be recognized as a separate node. In other words, the public nodes may recognize the logical nodes themselves as one node instead of the trusted nodes in the logical nodes as individual nodes.

도 2를 참조하면, 예시적으로, 제1 논리 노드(103a)는 제1 내지 제m 물리적 노드(102a ~ 102m)를 포함하고, 제1 논리 노드(103a)는 제1 내지 제m 물리적 노드(102a ~ 102m)를 대표하는 대표 IP를 가질 수 있다. 그리고, 제1 논리 노드(103a)는 메시지 분배 장치(200)를 구비할 수 있다. 메시지 분배 장치(200)는 블록체인 네트워크로부터 전송된 메시지를 수신하면 제1 내지 제m 물리적 노드(102a ~ 102m) 중 어느 하나를 선택하고 선택한 노드로 수신한 메시지를 전송할 수 있다.Referring to FIG. 2, for example, the first logical node 103a includes the first to mth physical nodes 102a to 102m, and the first logical node 103a includes the first to mth physical nodes ( 102a to 102m) may have a representative IP. In addition, the first logical node 103a may include a message distribution device 200. When receiving the message transmitted from the blockchain network, the message distribution device 200 may select any one of the first to mth physical nodes 102a to 102m and transmit the received message to the selected node.

메시지 분배 장치(200)는 라우터, 스위치, 허브 중 어느 하나가 될 수 있으나, 이에 제한되는 것은 아니고 대표 IP를 통해 접속된 노드를 통해 메시지가 수신되면 신뢰 노드들 중 하나를 선택하고 선택된 신뢰 노드로 메시지를 전송할 수 있는 장치라면 가능하다.The message distribution device 200 may be any one of a router, a switch, and a hub, but is not limited thereto. When a message is received through a node connected through a representative IP, the message distribution device 200 selects one of the trusted nodes and selects one of the trusted nodes. Any device capable of sending messages is possible.

일부 실시예에서, 공개 노드는 DNS 서버로 특정 도메인에 대응하는 IP 주소를 질의하고, DNS 서버로부터 수신한 IP 주소를 통해 논리 노드나 논리 노드 내의 신뢰 노드로 메시지를 전송할 수 있다.In some embodiments, the public node may query the DNS server for an IP address corresponding to a particular domain and send a message to a logical node or a trusted node within the logical node via the IP address received from the DNS server.

도 2를 참조하면, 예시적으로 DNS 서버(300)에는 제1 논리 노드(103a) 내의 제1 내지 제m 물리적 노드(102a ~ 102m) 각각의 IP 주소가 등록될 수 있다. 그리고 DNS 서버(300)는 노드로부터의 질의에 응답하여 제1 내지 제m 물리적 노드(102a ~ 102m) 각각의 IP 주소를 해당 노드로 전송할 수 있다. 이 때, DNS 서버(300)는 라운드 로빈 방식으로 등록된 IP 주소를 회신할 수 있다. 다만, 이에 제한되는 것은 아니다. DNS 서버(300)로부터 IP 주소를 수신한 노드는 수신된 IP 주소에 매칭되는 노드로 메시지를 전송할 수 있다.Referring to FIG. 2, an IP address of each of the first to mth physical nodes 102a to 102m in the first logical node 103a may be registered in the DNS server 300. The DNS server 300 may transmit an IP address of each of the first to m th physical nodes 102a to 102m to the corresponding node in response to a query from the node. At this time, the DNS server 300 may return the IP address registered in a round robin manner. However, it is not limited thereto. The node receiving the IP address from the DNS server 300 may transmit a message to the node matching the received IP address.

일부 실시예에서, DNS 서버(300)에는 제1 논리 노드(103a)의 대표 IP 주소가 등록될 수 있다. 공개 노드는 DNS 서버(300)로 제1 논리 노드(103a)의 대표 IP 주소를 요청할 수 있다. DNS 서버(300)는 이러한 요청에 응답하여 대표 IP 주소를 공개 노드로 전송할 수 있다. 공개 노드는 수신한 대표 IP 주소를 통해 제1 논리 노드(103a)로 메시지를 전송할 수 있다. 제1 논리 노드(103a)는 메시지를 수신하면 제1 논리 노드(103a) 내의 제1 내지 제m 물리적 노드(102a ~ 102m) 중 어느 하나를 선택하고 선택된 물리적 노드로 수신한 메시지를 전송할 수 있다. 일부 실시예에서, 메시지 분배 장치(200)는 부하 분산 장치가 될 수 있다. 그리고 부하 분산 장치의 IP 주소가 논리 노드의 대표 IP 주소가 되어 DNS 서버(300)에 등록될 수 있다. 부하 분산 장치는 메시지가 수신되면 미리 설정된 논리 노드 내의 복수의 물리적 노드들의 성능 비율에 따라서 결정된 복수의 물리적 노드들 중 어느 하나를 선택하고 선택된 물리적 노드에 수신한 메시지를 전송할 수 있다.In some embodiments, the DNS server 300 may register a representative IP address of the first logical node 103a. The public node may request the representative IP address of the first logical node 103a from the DNS server 300. DNS server 300 may send a representative IP address to the public node in response to this request. The public node may send a message to the first logical node 103a via the received representative IP address. Upon receiving the message, the first logical node 103a may select one of the first to mth physical nodes 102a to 102m in the first logical node 103a and transmit the received message to the selected physical node. In some embodiments, the message distribution device 200 may be a load balancer. The IP address of the load balancer may become a representative IP address of the logical node and may be registered in the DNS server 300. When the message is received, the load balancer may select any one of the plurality of physical nodes determined according to the performance ratio of the plurality of physical nodes in the preset logical node and transmit the received message to the selected physical node.

도 3은 본 발명의 실시예에 따른 블록체인 시스템에서 복수의 노드들이 메시지를 검증 및 전파하는 방법에 대한 예시적인 흐름도이고, 도 4는 도 3의 메시지가 거래 내역인 경우의 거래 내역을 검증 및 전파하는 방법에 대한 예시적인 흐름도이고, 도 5는 도 3의 메시지가 블록인 경우의 블록의 검증 및 전파하는 방법에 대한 예시적인 흐름도이며, 도 6은 도 3의 메시지가 블록인 경우의 블록의 검증 및 전파하는 방법에 대한 또 다른 예시적인 흐름도이다.FIG. 3 is an exemplary flowchart illustrating a method of verifying and propagating a message by a plurality of nodes in a blockchain system according to an exemplary embodiment of the present invention. FIG. 4 is a flowchart illustrating a transaction history when the message of FIG. 3 is a transaction history. 5 is an exemplary flow chart of a method of propagating and verifying a block when the message of FIG. 3 is a block, and FIG. 6 is a block diagram of a block when the message of FIG. 3 is a block. Another exemplary flow chart for a method of verifying and propagating.

도 3을 참조하여, 본 발명의 실시예에 따른 블록체인 시스템에서 복수의 노드들이 메시지를 검증 및 전파하는 방법(S100)을 설명한다.Referring to FIG. 3, a method S100 of verifying and propagating a message by a plurality of nodes in a blockchain system according to an exemplary embodiment of the present invention will be described.

제1 논리 노드(103a) 내의 제1 물리적 노드(102a)가 메시지를 수신(S110)하면, 메시지를 전송한 노드와 자신과의 신뢰 관계를 검증(S120)할 수 있다.When the first physical node 102a in the first logical node 103a receives the message (S110), it may verify (S120) a trust relationship between the node that sent the message and itself.

메시지를 수신한 신뢰 노드(제1 노드)가 메시지를 전송한 노드(제2 노드)와 자신과의 신뢰 관계를 검증하는 방법을 설명한다. 예시적으로, 논리 노드 내의 물리적 노드들 각각은 논리 노드 내의 물리적 노드들에 대한 IP 주소 목록 정보를 보유할 수 있다. IP 주소 목록 정보는 복수의 물리적 노드들이 공유하는 데이터베이스 상에 저장될 수 있다. 제1 노드는 IP 주소 목록 정보 상에서 제2 노드의 IP 주소가 있는지를 탐색하고, 제2 노드의 IP 주소가 IP 주소 목록 정보 상에 존재하지 않는 경우 제2 노드를 공개 노드로 인식할 수 있다. 이와 달리, 제2 노드의 IP 주소가 IP 주소 목록 정보 상에 존재하는 경우 제2 노드를 신뢰 노드로 인식할 수 있다. 일부 실시예에서, 제1 노드는 제2 노드의 블록체인 주소와 메시지의 유효성 검증에 따른 서명 정보 또는 제2 노드가 발행한 인증서 정보에 기초하여 제2 노드를 식별하고 제2 노드와의 신뢰 관계를 검증할 수도 있다. A method of verifying a trust relationship between a trusted node (first node) that has received a message and a node (second node) that has transmitted a message and itself is described. In exemplary embodiments, each of the physical nodes in the logical node may retain IP address list information for the physical nodes in the logical node. The IP address list information may be stored on a database shared by a plurality of physical nodes. The first node may search whether there is an IP address of the second node on the IP address list information, and recognize the second node as a public node when the IP address of the second node does not exist on the IP address list information. In contrast, when the IP address of the second node exists on the IP address list information, the second node may be recognized as a trusted node. In some embodiments, the first node identifies the second node based on the blockchain address of the second node and the signature information according to the validation of the message or the certificate information issued by the second node and establishes a trust relationship with the second node. You can also verify

일부 실시예에서, 제1 노드는 제2 노드와 서로 데이터베이스를 공유하는지 확인함으로써 신뢰 관계를 검증할 수 있다. 일부 실시예에서, 제1 노드는 신뢰 관계가 검증된 다른 노드로부터 제2 노드의 신뢰 관계를 조회함으로써 제2 노드와의 신뢰 관계를 검증할 수 있다. 일부 실시예에서, 제1 노드는 논리 노드를 관리하는 관리 서버에서 제2 노드를 조회하여 제2 노드와의 신뢰 관계를 검증할 수도 있다.In some embodiments, the first node may verify the trust relationship by verifying that it shares the database with the second node. In some embodiments, the first node may verify the trust relationship with the second node by querying the trust relationship of the second node from another node whose trust relationship has been verified. In some embodiments, the first node may query the second node at the management server managing the logical node to verify the trust relationship with the second node.

제1 물리적 노드(102a)는 메시지를 전송한 노드와의 신뢰 관계를 검증하면, 즉, 메시지를 전송한 노드가 제1 논리 노드(103a) 내의 다른 신뢰 노드임을 확인하면 수신한 메시지에 대한 유효성 검증 절차 및 수신한 메시지를 데이터베이스에 저장하는 절차를 진행하지 않고, 수신한 메시지를 블록체인 네트워크 상에 전파(S130)할 수 있다. 즉, 수신한 메시지는 이미 다른 신뢰 노드에 의해 유효성이 검증되어 자신에게 전파된 것이므로 유효성에 대한 중복 검증 및 중복 저장 과정을 생략하게 된다.The first physical node 102a verifies the trust relationship with the node that sent the message, that is, if it verifies that the node that sent the message is another trusted node within the first logical node 103a, the validity of the received message is validated. The received message can be propagated on the blockchain network (S130) without proceeding with the procedure and the procedure for storing the received message in the database. That is, since the received message has already been validated by another trusted node and propagated to itself, the duplicated verification and duplicate storage of validity are omitted.

이와 달리, 제1 물리적 노드(102a)와 메시지를 전송한 노드와의 신뢰 관계가 검증되지 않으면, 제1 물리적 노드(102a)는 제1 논리 노드(103a) 내의 다른 신뢰 노드에 의해 동일한 메시지에 대한 유효성 검증이 진행되었는지 여부를 판단할 수 있다(S140). 제1 논리 노드(103a) 내의 물리적 노드들(102a ~ 102m)들은 데이터베이스를 공유할 수 있다. 그리고, 임의의 신뢰 노드는 메시지를 수신하면 메시지의 유효성을 검증(S150)하고 유효성이 검증된 메시지를 데이터베이스에 저장(S180)하며 메시지를 전파(S130)할 수 있다. 만약, 메시지의 유효성이 검증되지 않으면 메시지는 데이터베이스에 저장되지 않고 폐기(S170)되며 블록체인 네트워크 상에 전파되지 않는다.Alternatively, if the trust relationship between the first physical node 102a and the node that sent the message is not verified, then the first physical node 102a is not connected to the same message by another trusted node in the first logical node 103a. It may be determined whether the validation has been performed (S140). The physical nodes 102a-102m in the first logical node 103a may share a database. When receiving a message, any trusted node may verify the validity of the message (S150), store the validated message in a database (S180), and propagate the message (S130). If the message is not validated, the message is not stored in the database but discarded (S170) and does not propagate on the blockchain network.

제1 물리적 노드(102a)는 수신한 메시지와 동일한 메시지가 데이터베이스에 저장되어 있는지를 확인함으로써 다른 신뢰 노드에 의해 동일한 메시지의 유효성 검증이 진행되었는지를 판단할 수 있다. 즉, 다른 신뢰 노드에 의해 동일한 메시지의 유효성 검증이 완료되었고, 해당 메시지가 데이터베이스 상에 저장되어 있으므로 제1 물리적 노드(102a)는 수신한 메시지의 중복 검증 및 중복 저장을 수행하지 않는다.The first physical node 102a may determine whether the same message has been validated by another trusted node by checking whether the same message as the received message is stored in the database. That is, since the same message is validated by another trust node and the message is stored in the database, the first physical node 102a does not perform duplicate verification and duplicate storage of the received message.

도 4를 참조하면, 메시지가 거래 내역인 경우(S200), 논리 노드 내의 신뢰 노드가 임의의 노드로부터 거래 내역을 수신하면(S210), 신뢰 노드는 거래 내역을 전송한 노드와 자신과의 신뢰 관계를 검증(S220)할 수 있다. 신뢰 관계가 검증되면 수신한 거래 내역을 다른 노드로 전파(S230)할 수 있다. 이와 달리, 신뢰 관계가 없는 것으로 확인되면 해당 거래 내역의 유효성 검증 여부를 판단(S240)할 수 있다. 이미 해당 거래 내역의 유효성 검증이 완료된 것으로 판단하면 해당 거래 내역을 다른 노드로 전파(S230)할 수 있다. 이와 달리, 해당 거래 내역의 유효성 검증이 이루어지지 않은 것으로 판단하면 해당 거래 내역의 유효성을 검증(S250)할 수 있다. 거래 내역의 유효한지 판단(S260)하여 유효하지 않은 경우 수신한 거래 내역을 폐기(S270)할 수 있다. 이와 달리, 해당 거래 내역이 유효한 것으로 인정되면 거래 내역을 거래 풀에 추가(S280)할 수 있다. 거래 풀에는 유효성이 검증되고 아직 승인 블록에 포함되지 않은 거래 내역이 보관된다. 그리고 거래 풀은 신뢰 노드들이 공유하는 데이터베이스 상에 소정의 저장 영역이 될 수 있다. 그리고 해당 거래 내역은 다른 노드로 전파(S230)될 수 있다.Referring to FIG. 4, when the message is a transaction history (S200), when a trusted node in a logical node receives a transaction history from an arbitrary node (S210), the trusted node has a trust relationship with the node that has transmitted the transaction history. It may be verified (S220). Once the trust relationship is verified, the received transaction details may be propagated to another node (S230). In contrast, if it is determined that there is no trust relationship, it may be determined whether or not the corresponding transaction details are validated (S240). If it is determined that the validity of the transaction details has already been completed, the transaction details may be propagated to another node (S230). In contrast, if it is determined that the validity of the transaction details is not performed, the validity of the transaction details may be verified (S250). If it is not valid by determining whether the transaction details are valid (S260), the received transaction details may be discarded (S270). Alternatively, if the transaction details are recognized as valid, the transaction details may be added to the transaction pool (S280). The transaction pool keeps track of transactions that have been validated and not yet included in the approval block. And the transaction pool can be a predetermined storage area on a database shared by trusted nodes. The transaction details may be propagated to another node (S230).

도 5를 참조하면, 일부 실시예에서, 메시지가 블록인 경우(S300), 신뢰 노드가 블록을 수신(S310)하면, 블록을 전송한 노드와 자신과의 신뢰 관계를 검증(S320)하고, 신뢰 관계가 존재하는 경우 해당 블록을 다른 노드로 전파(S330)할 수 있다. 이와 달리 신뢰 관계가 없는 것으로 확인하면 해당 블록의 유효성 검증 여부를 판단(S340)할 수 있다. 유효성 검증이 이루어진 것으로 판단하면 신뢰 노드는 해당 노드를 다른 노드로 전파(S330)할 수 있다. 이와 달리, 유효성 검증이 이루어지지 않은 것으로 판단하면 해당 블록의 유효성을 검증(S350)할 수 있다. 해당 블록의 유효성을 판단(S360)하여 유효하지 않은 블록으로 인정되면 해당 블록은 폐기(S370)될 수 있다. 이와 달리, 해당 블록이 유효한 것으로 인정되면 해당 블록을 블록체인에 업데이트(S382)하고 그 블록을 다른 노드로 전파(S330)할 수 있다.Referring to FIG. 5, in some embodiments, when the message is a block (S300), when the trusted node receives the block (S310), the trust relationship between the node that transmitted the block and itself is verified (S320) and trusted. If the relationship exists, the block may be propagated to another node (S330). In contrast, if it is determined that there is no trust relationship, it may be determined whether the corresponding block is validated (S340). If it is determined that the validation has been performed, the trusted node may propagate the node to another node (S330). In contrast, if it is determined that the validation is not performed, the validity of the corresponding block may be verified (S350). If the validity of the block is determined (S360), and the block is recognized as an invalid block, the block may be discarded (S370). On the contrary, if it is recognized that the block is valid, the block may be updated in the blockchain (S382) and the block may be propagated to another node (S330).

메시지의 유효성 검증과 관련하여, 메시지가 블록인 경우, 제1 물리적 노드(102a)는 데이터베이스 상에 저장된 블록체인에 대한 로컬 복사본 상에서 수신한 블록과 동일한 블록이 존재하는지 여부를 판단할 수 있다. 블록체인 상에 존재하는 블록은 합의된 승인 블록이거나 임의의 증명 알고리즘에 따라 유효한 블록으로 인정되기 전의 블록이 될 수 있다. 일부 실시예에서, 작업 증명 알고리즘에 따라 후보 블록 중 어느 하나의 블록이 승인되는 경우, 데이터베이스 상에는 3종류의 블록이 저장될 수 있다. 하나는 메인 블록체인에 연결되어 있는 블록이고 또 다른 하나는 메인 블록체인에서 나와서 브랜치를 형성하는 블록이며 나머지 하나는 알려져 있는 체인 내에서 알려진 부모가 없는 블록이 될 수 있다.With regard to validity of the message, if the message is a block, the first physical node 102a may determine whether the same block as the received block exists on the local copy of the blockchain stored on the database. The block existing on the blockchain may be an agreed approval block or a block before it is recognized as a valid block according to any proof algorithm. In some embodiments, if any one of the candidate blocks is approved according to the proof-of-work algorithm, three types of blocks may be stored in the database. One is a block connected to the main blockchain, the other is a block coming out of the main blockchain to form a branch, and the other can be a block without a known parent in a known chain.

메시지가 거래 내역인 경우, 제1 물리적 노드(102a)는 데이터베이스 상에 수신한 메시지와 동일한 메시지가 보관되어 있는지 여부를 판단할 수 있다.If the message is a transaction history, the first physical node 102a may determine whether the same message as the received message is stored in the database.

제1 물리적 노드(102a)는 다른 신뢰 노드에 의해 수신된 메시지의 유효성 검증이 이루어진 것을 확인하면 수신된 메시지를 재차 데이터베이스에 저장하지 않고 블록체인 네트워크를 통해 전파할 수 있다.If the first physical node 102a confirms that the message received by the other trusted node has been validated, the first physical node 102a may propagate it through the blockchain network without storing the received message again in the database.

제1 물리적 노드(102s)는 다른 신뢰 노드에 의해 수신된 메시지의 유효성 검증이 이루어지지 않은 것으로 확인하면 수신된 메시지의 유효성을 검증 절차를 진행할 수 있다(S150). 수신된 메시지의 유효성의 검증 여부를 판단(S160)하여 수신된 메시지의 유효성이 검증되지 않으면 해당 메시지를 폐기(S170)할 수 있다. 즉, 수신된 메시지는 데이터베이스에 저장되지 않고 블록체인 네트워크 상에 전파되지도 않게 된다.If the first physical node 102s determines that the message received by the other trusted node has not been validated, the first physical node 102s may proceed with a validation procedure of the received message (S150). If the validity of the received message is not verified by determining whether to validate the received message (S160), the corresponding message may be discarded (S170). In other words, the received message is not stored in the database nor propagated on the blockchain network.

이와 달리, 수신된 메시지의 유효성이 검증되면 제1 물리적 노드(102a)는 유효성이 검증된 메시지를 데이터베이스상에 저장하고 블록체인 네트워크를 통해 전파할 수 있다(S180). 일부 실시예에서, 제1 물리적 노드(102a)는 신뢰 노드를 제외한 공개 노드들 중 적어도 일부 노드로 메시지를 전파함으로서 신뢰 노드들 간의 트래픽을 감소시킬 수 있다.In contrast, if the received message is validated, the first physical node 102a may store the validated message in a database and propagate it through the blockchain network (S180). In some embodiments, first physical node 102a may reduce traffic between trusted nodes by propagating a message to at least some of the public nodes other than the trusted node.

메시지의 유효성 검증과 관련하여, 메시지가 거래 내역인 경우, 노드는 미리 정해진 체크리스트를 바탕으로 거래 내역을 검증할 수 있다. 예시적으로 거래의 구문(syntax)과 데이터 구조가 정확한지 검증, 입력값이나 출력값 목록이 비어 있지 않은지 검증, 바이트 단위의 거래의 크기가 미리 설정된 기준보다 작은지를 검증하는 과정 등이 수행될 수 있다. 다만, 거래의 대상에 따라서 체크리스트 내의 항목은 더 추가되거나 변경될 수 있다.With regard to validity of the message, if the message is a transaction history, the node may verify the transaction history based on a predetermined checklist. For example, a process of verifying the syntax and data structure of a transaction is correct, verifying whether an input value or output value list is not empty, verifying whether a transaction size in bytes is smaller than a preset standard, and the like. However, items in the checklist may be added or changed depending on the object of the transaction.

메시지가 블록인 경우, 노드는 미리 정해진 체크리스트를 바탕으로 블록을 검증할 수 있다. 예시적으로 블록의 데이터 구조가 문법적으로 유효한지 검증, 블록의 타임 스탬프는 기 설정 시간 이내인지 검증, 블록의 크기가 허용 한도내인지 검증 등이 수행될 수 있다. 다만, 체크리스트 내의 항목은 더 추가되거나 변경될 수 있다. 아울러, 블록 내에 포함된 모든 거래 내역의 유효성은 예시적으로 전술한 방식에 따라 검증될 수 있다.If the message is a block, the node may verify the block based on a predetermined checklist. For example, verification may be performed that the data structure of the block is grammatically valid, verification that the time stamp of the block is within a preset time, verification that the size of the block is within an allowable limit, and the like. However, items in the checklist may be further added or changed. In addition, the validity of all transaction details contained in the block may be verified by way of example as described above.

한편, 논리 노드 내의 물리적 노드들은 데이터베이스를 공유할 수 있고, 물리적 노드들 중 어느 하나의 노드에 의해서 메시지의 유효성 검증 및 메시지의 저장 절차가 진행될 수 있다. 따라서, 데이터베이스 상에는 서로 중복되지 않는 메시지들만 쌓이게 된다.On the other hand, the physical nodes in the logical node may share a database, and the procedure of validating the message and storing the message may be performed by any one of the physical nodes. Therefore, only messages that do not overlap each other are accumulated on the database.

블록체인 시스템(10) 내의 모든 노드들 중 적어도 일부는 블록을 생성할 수 있는 권한을 가질 수 있다. 블록 생성 권한을 가진 노드들은 수신된 거래 내역들을 수집하고 수집된 거래 내역을 포함한 후보 블록을 생성할 수 있다. 그리고, 생성된 후보 블록은 합의에 따라 승인되면 승인 블록이 될 수 있다. At least some of all nodes in the blockchain system 10 may have the authority to create a block. Nodes with the right to create blocks may collect the received transaction details and generate a candidate block including the collected transaction details. And, the generated candidate block may be an approval block if approved according to the agreement.

블록 생성 권한을 가진 노드(또는 블록 생성 권한을 가지지 않은 노드)가 거래 내역을 수집하는 과정 중에 다른 노드로부터 후보 블록을 수신하면 후보 블록 내의 모든 거래 내역을 체크하고 자신이 수집한 거래 내역(아직 블록에 포함되지 않은 거래 내역)과 비교할 수 있다. 그리고 비교 과정을 통해 공통되는 거래 내역을 검출하고 검출된 거래 내역은 데이터베이스 상에서 제거할 수 있다. 공통되지 않은 거래 내역은 데이터베이스 상에서 제거되지 않고 남아 있게 된다. 그리고 이러한 거래 내역은 새로운 블록에 기록되기 위해 대기한다. 이 때, 공통된 거래 내역이 데이터베이스 상에서 제거되는 시점은 수신한 데이터베이스 상에 저장된 블록 체인에 업데이트가 된 이후가 될 수 있다. If a node with block creation authority (or a node without block creation authority) receives a candidate block from another node during the process of collecting transaction details, it checks all the transaction details within the candidate block and the transaction history collected by itself. Transaction details that are not included). In addition, the common transaction history may be detected through the comparison process, and the detected transaction history may be removed from the database. Uncommon transaction history remains unremoved in the database. This transaction history then waits to be written to the new block. In this case, the time point at which the common transaction history is removed from the database may be after updating to the blockchain stored on the received database.

도 6을 참조하면, 예를 들어, 제1 물리적 노드(102a)는 데이터베이스 상에 저장된 거래 내역 중 공개 노드로부터 수신된 블록 내의 거래 내역과 공통되는 공통 거래 내역들을 검출(S381)할 수 있다. 그리고, 공개 노드로부터 수신된 블록을 데이터베이스 상의 블록체인에 업데이트(S382)한 후 검출된 공통 거래 내역을 제거(S383)할 수 있다. 따라서, 공통 거래 내역이 데이터베이스 상에서 완전히 사라지는 기간이 존재하지 않게 된다. 이는, 제1 물리적 노드(102a)가 공통 거래 내역을 검출하는 과정 중에, 제2 물리적 노드(102b)가 공통 거래 내역을 다른 노드로부터 수신한 경우 블록 체인 상의 블록 내에 수신한 공통 거래 내역이 존재하는지 또는 수집된 거래 내역 상에 공통 거래 내역이 존재하는지를 확인 가능하게 하여 수신된 거래 내역의 유효성 중복 검증이나 거래 내역의 중복 저장을 방지한다.Referring to FIG. 6, for example, the first physical node 102a may detect common transaction details common to the transaction details in a block received from the public node among transaction details stored on the database (S381). Then, after updating the block received from the public node to the blockchain on the database (S382), the detected common transaction details may be removed (S383). Thus, there is no period for the common transaction history to disappear completely from the database. This is because, when the first physical node 102a detects the common transaction history, if the second physical node 102b receives the common transaction history from another node, whether there is a common transaction history received in the block on the blockchain. Alternatively, it is possible to check whether a common transaction history exists in the collected transaction history, thereby preventing duplicate validation of validity of the received transaction history or duplicate storage of the transaction history.

본 발명의 실시예에 따르면, 블록체인 네트워크의 자원 및 처리 능력을 효율적으로 사용할 수 있다. 따라서, 블록체인 네트워크 성능을 향상시킬 수 있다. 여기서의, 블록체인 네트워크 성능은 블록체인 네트워크 전체 성능 및 논리 노드의 네트워크 성능을 의미한다. 상세하게, 블록체인 네트워크에 가입 가능한 최대 노드 수가 제한된 상태(예를 들어, 프라이빗 블록체인)라면 논리 노드의 존재 또는 논리 노드로 그룹핑되는 신뢰 노드의 수가 증가할 때 블록체인 네트워크 전체 성능이 향상된다. 다만, 블록체인 네트워크에 가입 가능한 최대 노드 수가 제한되지 않은 상태(예를들어, 퍼블릭 블록체인)라면 논리 노드로 그룹핑되는 노드들은 전체 노드들 중 단지 일부에 불과할 수 있다. 따라서, 논리 노드의 네트워크 성능 향상은 블록체인 네트워크 전체 성능에 큰 영향을 미칠 가능성이 줄어들게 된다. 그러나, 블록체인 시스템의 네트워크 전체 성능에 따른 경제적 가치는 특정 사용자가 고려할 사항이 아니다. 오히려, 사용자에게는 자신이 보유한 노드 자체의 네트워크 성능에 따른 경제적 가치가 훨씬 중요한 요소라고 할 수 있다. 이런 관점에서 볼 때, 높은 성능이 요구되는 블록 생성 노드나 특정 사용자나 사용자 그룹에게 논리 노드의 네트워크 성능 향상에 따른 경제적 이점이 매우 크다 할 수 있다.According to the embodiment of the present invention, it is possible to efficiently use the resources and processing power of the blockchain network. Thus, blockchain network performance can be improved. Here, the blockchain network performance means the overall performance of the blockchain network and the network performance of the logical node. In detail, if the maximum number of nodes that can join the blockchain network is limited (for example, a private blockchain), the overall performance of the blockchain network is improved when the presence of logical nodes or the number of trusted nodes grouped into logical nodes increases. However, if the maximum number of nodes that can join the blockchain network is not limited (for example, a public blockchain), the nodes grouped into logical nodes may be only some of the nodes. Therefore, the network performance improvement of the logical node is less likely to greatly affect the overall performance of the blockchain network. However, the economic value of the overall network performance of the blockchain system is not something that a specific user should consider. On the contrary, the economic value of the network performance of the node itself is much more important to the user. From this point of view, the economic benefits of improving the network performance of a logical node can be very large for a block generation node or a specific user or a group of users requiring high performance.

이상 설명된 본 발명에 따른 실시예는 다양한 컴퓨터 구성요소를 통하여 실행될 수 있는 프로그램 명령어의 형태로 구현되어 컴퓨터 판독 가능한 기록 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능한 기록 매체는 프로그램 명령어, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 컴퓨터 판독 가능한 기록 매체에 기록되는 프로그램 명령어는 본 발명을 위하여 특별히 설계되고 구성된 것이거나 컴퓨터 소프트웨어 분야의 당업자에게 공지되어 사용 가능한 것일 수 있다. 컴퓨터 판독 가능한 기록 매체의 예에는, 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체, CD-ROM 및 DVD와 같은 광기록 매체, 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical medium), 및 ROM, RAM, 플래시 메모리 등과 같은, 프로그램 명령어를 저장하고 실행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령어의 예에는, 컴파일러에 의하여 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용하여 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드도 포함된다. 하드웨어 장치는 본 발명에 따른 처리를 수행하기 위하여 하나 이상의 소프트웨어 모듈로 변경될 수 있으며, 그 역도 마찬가지이다.Embodiments according to the present invention described above can be implemented in the form of program instructions that can be executed by various computer components, and recorded in a computer-readable recording medium. The computer-readable recording medium may include program instructions, data files, data structures, etc. alone or in combination. The program instructions recorded on the computer readable recording medium may be specially designed and configured for the present invention, or may be known and available to those skilled in the computer software field. Examples of computer-readable recording media include magnetic media such as hard disks, floppy disks and magnetic tape, optical recording media such as CD-ROMs and DVDs, and magneto-optical media such as floptical disks. medium) and hardware devices specifically configured to store and execute program instructions, such as ROM, RAM, flash memory, and the like. 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. Hardware devices may be modified with one or more software modules to perform the processing according to the present invention, and vice versa.

본 발명에서 설명하는 특정 실행들은 일 실시 예들로서, 어떠한 방법으로도 본 발명의 범위를 한정하는 것은 아니다. 명세서의 간결함을 위하여, 종래 전자적인 구성들, 제어 시스템들, 소프트웨어, 상기 시스템들의 다른 기능적인 측면들의 기재는 생략될 수 있다. 또한, 도면에 도시된 구성 요소들 간의 선들의 연결 또는 연결 부재들은 기능적인 연결 및/또는 물리적 또는 회로적 연결들을 예시적으로 나타낸 것으로서, 실제 장치에서는 대체 가능하거나 추가의 다양한 기능적인 연결, 물리적인 연결, 또는 회로 연결들로서 나타내어질 수 있다. 또한, “필수적인”, “중요하게” 등과 같이 구체적인 언급이 없다면 본 발명의 적용을 위하여 반드시 필요한 구성 요소가 아닐 수 있다.Particular implementations described in the present invention are embodiments and do not limit the scope of the present invention in any way. For brevity of description, descriptions of conventional electronic configurations, control systems, software, and other functional aspects of the systems may be omitted. In addition, the connection or connection members of the lines between the components shown in the drawings are illustrative of the functional connection and / or physical or circuit connections as an example, in the actual device replaceable or additional various functional connections, physical It can be represented as a connection, or circuit connections. In addition, unless specifically mentioned, such as "essential", "important" may not be a necessary component for the application of the present invention.

또한 설명한 본 발명의 상세한 설명에서는 본 발명의 바람직한 실시 예를 참조하여 설명하였지만, 해당 기술 분야의 숙련된 당업자 또는 해당 기술분야에 통상의 지식을 갖는 자라면 후술할 특허청구범위에 기재된 본 발명의 사상 및 기술 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다. 따라서, 본 발명의 기술적 범위는 명세서의 상세한 설명에 기재된 내용으로 한정되는 것이 아니라 특허청구범위에 의해 정하여져야만 할 것이다.In addition, although the detailed description of the present invention has been described with reference to a preferred embodiment of the present invention, those skilled in the art or those skilled in the art having ordinary knowledge in the technical field described in the claims to be described later It will be understood that various modifications and variations can be made in the present invention without departing from the scope of the present invention. Therefore, the technical scope of the present invention should not be limited to the contents described in the detailed description of the specification but should be defined by the claims.

Claims (6)

복수의 신뢰 노드를 포함하는 적어도 하나의 논리 노드 및 적어도 하나의 공개 노드들의 분산 네트워크로 구성된 블록체인 시스템에서 복수의 노드들이 메시지를 검증 및 전파하는 방법으로서,
상기 논리 노드 내의 제1 신뢰 노드가 블록체인 네트워크 상에서 전파된 메시지를 수신하는 단계;
상기 제1 신뢰 노드는 상기 메시지를 전송한 노드와의 신뢰 관계를 검증하는 단계;
상기 메시지를 전송한 노드가 상기 공개 노드임이 확인되면, 상기 제1 신뢰 노드는 상기 논리 노드 내의 다른 신뢰 노드에 의한 상기 메시지의 유효성 검증이 수행되었는지 여부를 판단하는 단계; 및
상기 제1 신뢰 노드는 상기 다른 신뢰 노드에 의한 상기 메시지의 유효성 검증이 완료된 것으로 확인하면 상기 메시지의 유효성 검증을 수행하지 않고 상기 블록체인 네트워크 상에 상기 메시지를 전파하고, 상기 다른 신뢰 노드에 의한 상기 메시지의 유효성 검증이 완료된 것으로 확인되지 않으면 상기 메시지의 유효성을 검증하는 단계;
상기 메시지의 유효성이 검증되지 않으면 상기 메시지를 폐기하고 상기 메시지의 유효성이 검증되면 유효성이 검증된 메시지를 상기 블록체인 네트워크 상에 전파하는 단계;를 포함하고,
상기 메시지는 거래 내역 또는 블록인
블록체인 시스템에서 복수의 노드들이 메시지를 검증 및 전파하는 방법.
A method in which a plurality of nodes verify and propagate a message in a blockchain system composed of at least one logical node including a plurality of trusted nodes and a distributed network of at least one public node,
Receiving a message propagated on a blockchain network by a first trusted node in the logical node;
Verifying, by the first trusted node, a trust relationship with the node that transmitted the message;
If it is determined that the node that sent the message is the public node, the first trusted node determines whether validation of the message by another trusted node in the logical node has been performed; And
The first trust node propagates the message on the blockchain network without performing the validation of the message when the first trust node confirms that the validation of the message by the other trust node is completed, and the first trust node propagates the message by the other trust node. Validating the message if it is not confirmed that the validation of the message is completed;
Discarding the message if the message is not validated and propagating the validated message on the blockchain network if the message is validated.
The message is a transaction history or block
How multiple nodes verify and propagate messages in a blockchain system.
제1 항에 있어서,
상기 제1 신뢰 노드가 블록체인 네트워크 상에서 전파된 메시지를 수신하는 단계는,
상기 논리 노드를 식별하는 주소를 통해 상기 논리 노드에 접속한 상기 공개 노드가 상기 논리 노드로 상기 메시지를 전송하는 단계;
상기 논리 노드가 상기 복수의 신뢰 노드 중 상기 제1 신뢰 노드를 선택하는 단계; 및
상기 논리 노드는 선택된 상기 제1 신뢰 노드로 상기 메시지를 전송하는 단계;를 포함하는
블록체인 시스템에서 복수의 노드들이 메시지를 검증 및 전파하는 방법.
According to claim 1,
Receiving the message propagated on the blockchain network by the first trusted node,
Sending the message to the logical node by the public node accessing the logical node via an address identifying the logical node;
The logical node selecting the first trusted node of the plurality of trusted nodes; And
The logical node sending the message to the selected first trusted node;
How multiple nodes verify and propagate messages in a blockchain system.
제1 항에 있어서,
상기 제1 신뢰 노드는 상기 메시지를 전송한 노드와의 신뢰 관계를 검증하는 단계는,
상기 제1 신뢰 노드가 상기 메시지의 수신에 응답하여
미리 저장된 IP 주소 목록 정보,
상기 메시지를 전송한 노드로부터의 인증서 수신 여부 및
상기 메시지를 전송한 노드의 블록체인 주소와 상기 메시지의 유효성 검증에 따른 서명 정보 중
적어도 하나에 기초하여 상기 메시지를 전송한 노드와의 신뢰 관계를 검증하는
블록체인 시스템에서 복수의 노드들이 메시지를 검증 및 전파하는 방법.
According to claim 1,
The first trusted node verifies the trust relationship with the node that transmitted the message.
The first trusted node in response to receiving the message
Pre-stored IP address list information,
Whether to receive a certificate from the node that sent the message, and
Among the blockchain address of the node that sent the message and signature information according to the validation of the message
Verifying a trust relationship with the node that sent the message based on at least one;
How multiple nodes verify and propagate messages in a blockchain system.
제1 항에 있어서,
상기 제1 신뢰 노드는 상기 다른 신뢰 노드에 의한 상기 메시지의 유효성 검증 여부를 판단하는 단계는,
상기 제1 신뢰 노드는 상기 다른 신뢰 노드와 공유하는 데이터베이스 상에서 상기 메시지의 저장 여부를 확인하는 단계; 및
상기 메시지의 저장이 확인되면 상기 메시지의 유효성 검증이 완료된 것으로 판단하는 단계;를 포함하는
블록체인 시스템에서 복수의 노드들이 메시지를 검증 및 전파하는 방법.
According to claim 1,
The first trusted node determines whether the message is validated by the other trusted node,
Confirming, by the first trusted node, whether the message is stored on a database shared with the other trusted node; And
Determining that the validation of the message is completed when the storage of the message is confirmed.
How multiple nodes verify and propagate messages in a blockchain system.
제1 항에 있어서,
상기 블록체인 네트워크 상에 메시지를 전파하는 단계는,
상기 제1 신뢰 노드는 상기 복수의 노드들 중 상기 논리 노드 내의 신뢰 노드들을 제외한 공개 노드들로 중 적어도 일부의 노드들로 상기 메시지를 전파하는
블록체인 시스템에서 복수의 노드들이 메시지를 검증 및 전파하는 방법.
According to claim 1,
Propagating a message on the blockchain network,
The first trusted node propagates the message to at least some of the public nodes other than trusted nodes in the logical node of the plurality of nodes.
How multiple nodes verify and propagate messages in a blockchain system.
제1 항에 있어서,
상기 복수의 노드들 중 블록체인의 로컬 복사본이 저장된 데이터베이스를 공유하는 노드들을 상기 논리 노드로 그룹핑하는 단계;를 더 포함하는
블록체인 시스템에서 복수의 노드들이 메시지를 검증 및 전파하는 방법.
According to claim 1,
Grouping nodes among the plurality of nodes that share a database in which a local copy of a blockchain is stored, into the logical node;
How multiple nodes verify and propagate messages in a blockchain system.
KR1020180136326A 2018-11-08 2018-11-08 A Blockchain system and a method for a plurality of nodes in the Blockchain system to verify and propagate messages KR102081159B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020180136326A KR102081159B1 (en) 2018-11-08 2018-11-08 A Blockchain system and a method for a plurality of nodes in the Blockchain system to verify and propagate messages

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020180136326A KR102081159B1 (en) 2018-11-08 2018-11-08 A Blockchain system and a method for a plurality of nodes in the Blockchain system to verify and propagate messages

Publications (1)

Publication Number Publication Date
KR102081159B1 true KR102081159B1 (en) 2020-02-25

Family

ID=69647645

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180136326A KR102081159B1 (en) 2018-11-08 2018-11-08 A Blockchain system and a method for a plurality of nodes in the Blockchain system to verify and propagate messages

Country Status (1)

Country Link
KR (1) KR102081159B1 (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20220001644A (en) 2020-06-30 2022-01-06 주식회사 트러스트디비 System and method for managing rdbms-based distributed ledger
WO2023121001A1 (en) * 2021-12-20 2023-06-29 아주대학교 산학협력단 Trust-based message propagation device and method
CN117113310A (en) * 2023-10-16 2023-11-24 北京华鲲振宇智能科技有限责任公司 Data transmission control method, system, equipment and medium

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20110120925A (en) * 2009-01-26 2011-11-04 콸콤 인코포레이티드 Methods, communications nodes and computer program products for trustworthiness determination
KR20180102269A (en) * 2017-03-07 2018-09-17 서강대학교산학협력단 System and method for supporting external interface based on block chain
KR20180113140A (en) 2017-04-05 2018-10-15 삼성에스디에스 주식회사 System for processing data based on blockchain and Operating method thereof

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20110120925A (en) * 2009-01-26 2011-11-04 콸콤 인코포레이티드 Methods, communications nodes and computer program products for trustworthiness determination
KR20180102269A (en) * 2017-03-07 2018-09-17 서강대학교산학협력단 System and method for supporting external interface based on block chain
KR20180113140A (en) 2017-04-05 2018-10-15 삼성에스디에스 주식회사 System for processing data based on blockchain and Operating method thereof

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20220001644A (en) 2020-06-30 2022-01-06 주식회사 트러스트디비 System and method for managing rdbms-based distributed ledger
KR20220151124A (en) 2020-06-30 2022-11-14 주식회사 트러스트디비 System and method for managing rdbms-based distributed ledger
KR20240038669A (en) 2020-06-30 2024-03-25 주식회사 트러스트디비 System and method for managing rdbms-based distributed ledger
WO2023121001A1 (en) * 2021-12-20 2023-06-29 아주대학교 산학협력단 Trust-based message propagation device and method
CN117113310A (en) * 2023-10-16 2023-11-24 北京华鲲振宇智能科技有限责任公司 Data transmission control method, system, equipment and medium
CN117113310B (en) * 2023-10-16 2024-03-08 北京华鲲振宇智能科技有限责任公司 Data transmission control method, system, equipment and medium

Similar Documents

Publication Publication Date Title
JP7432686B2 (en) Probabilistic relay for efficient propagation in blockchain networks
JP7108611B2 (en) Electronic bill management method, device and storage medium
JP7413477B2 (en) Methods and special network nodes for fast propagation in blockchain networks
Sompolinsky et al. Secure high-rate transaction processing in bitcoin
US11977924B2 (en) High performance distributed system of record with distributed random oracle
JP2020048195A (en) Method for establishing agreement between nodes in block chain network, block chain system configured using distributed network of plural nodes, and method for establishing agreement between nodes to be executed using processor in block chain system
JP2022508247A (en) High-performance distributed recording system with reliability-based consensus
JP2022512324A (en) High-performance distributed recording system with secure interoperability to external systems
JP2022509933A (en) High-performance distributed recording system with key management
CN110771127B (en) Method and system for consistent distributed memory pools in a blockchain network
KR102081159B1 (en) A Blockchain system and a method for a plurality of nodes in the Blockchain system to verify and propagate messages
CN110741400A (en) Block chain network interaction controller
Shahsavari et al. Performance modeling and analysis of the bitcoin inventory protocol
Dotan et al. SOK: cryptocurrency networking context, state-of-the-art, challenges
JP2022508211A (en) High-performance distributed recording system with hosted origin service
CN112202564B (en) Transaction transfer method and device, electronic equipment and readable storage medium
Qiao et al. Credible routing scheme of SDN-based cloud using blockchain
Gojka et al. Security in distributed ledger technology: An analysis of vulnerabilities and attack vectors
Anitha Rajakumari et al. Optimizing the valid transaction using reinforcement learning-based blockchain ecosystem in WSN
Dotan et al. Cryptocurrency networking: Context, state-of-the-art, challenges
Liu et al. A Robust Blockchain-Based Distribution Master For Distributing Root Zone Data In DNS
Sasabe et al. Block diffusion delay attack and its countermeasures in a Bitcoin network
Daswani Denial-of-service (dos) attacks and commerce infrastructure in peer-to-peer networks
KR20230132953A (en) A system and its implementation methods that divides the byzantine fault tolerance (BFT) agreement in a large distributed asynchronous network
WO2022164838A1 (en) High performance distributed system of record with wallet services resiliency

Legal Events

Date Code Title Description
E90F Notification of reason for final refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant