KR20190093012A - The method for block generation and validation in block-chain system - Google Patents

The method for block generation and validation in block-chain system Download PDF

Info

Publication number
KR20190093012A
KR20190093012A KR1020180012430A KR20180012430A KR20190093012A KR 20190093012 A KR20190093012 A KR 20190093012A KR 1020180012430 A KR1020180012430 A KR 1020180012430A KR 20180012430 A KR20180012430 A KR 20180012430A KR 20190093012 A KR20190093012 A KR 20190093012A
Authority
KR
South Korea
Prior art keywords
block
nodes
verification
node
transaction information
Prior art date
Application number
KR1020180012430A
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 KR1020180012430A priority Critical patent/KR20190093012A/en
Publication of KR20190093012A publication Critical patent/KR20190093012A/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/1044Group management mechanisms 
    • H04L67/1053Group management mechanisms  with pre-configuration of logical or physical connections with a determined number of other peers
    • 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/1061Peer-to-peer [P2P] networks using node-based peer discovery mechanisms
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D30/00Reducing energy consumption in communication networks
    • Y02D30/50Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate

Abstract

Provided is a method for generating and verifying blocks in a block chain system. The method for generating and verifying blocks in a block chain system, as a method for generating and verifying blocks including a random proof of stake consensus algorithm applied to a block chain system, comprises: a verifying node selecting step of generating a random number value for all nodes and selecting a plurality of verifying nodes to participate in a consensus mechanism based on the random number value; a transaction information comparing step of allowing each of the selected plurality of verifying nodes to receive and store transaction information of the selected plurality of verifying nodes and compare the transaction information; a block generating step of generating a block containing data determined as normal transaction information according to a comparison result of the transaction information in one node designated as a block generating node among the selected plurality of verifying nodes; a block verifying step of transmitting the generated block to the selected plurality of verifying nodes and allowing each node to verify whether the generated block is normal or not; and a block processing step of allowing the selected plurality of verifying nodes to share a result of the verification, and according to the result of the verification, transmit the generated block to other nodes or destroy the generated block and perform a re-consensus process among the selected plurality of verifying nodes. Accordingly, the present invention can reduce unnecessary energy consumption, solve unequal distribution of wealth and improve a processing speed.

Description

블록 체인 시스템에서의 블록 생성 및 검증 방법{The method for block generation and validation in block-chain system}The method for block generation and validation in block-chain system}

본 발명은 블록 체인 시스템에서의 블록 생성 및 검증 방법에 관한 것이다. The present invention relates to a block generation and verification method in a blockchain system.

블록 체인(Block chain)은 공공 거래 장부라고도 부르며 가상 화폐로 거래할 때 발생할 수 있는 해킹을 막는 기술이다. 기존 금융 회사의 경우 중앙 집중형 서버에 거래 기록을 보관하는 반면, 블록 체인은 거래에 참여하는 모든 사용자에게 거래 내역을 보내 주며 거래 때마다 이를 대조해 데이터 위조를 막는 방식을 사용한다. 블록 체인은 대표적인 온라인 가상 화폐인 비트코인에 적용되어 있다. 비트코인은 누구나 열람할 수 있는 장부에 거래 내역을 투명하게 기록하며, 비트코인을 사용하는 여러 컴퓨터가 10분에 한 번씩 이 기록을 검증하여 해킹을 막는다.Block chain, also known as public trading ledger, is a technology that prevents hacking that can occur when trading in virtual currency. Traditional financial firms keep transaction records on a centralized server, while blockchain sends transaction details to all users participating in a transaction, and checks each transaction to prevent data forgery. Blockchain is applied to Bitcoin, a representative online virtual currency. Bitcoin records transaction details transparently in a book that anyone can read, and several computers using Bitcoin verify this record every 10 minutes to prevent hacking.

비트코인을 온라인 상에서 처리하는 과정에서 블록과 블록 체인은 핵심적인 역할을 수행한다. 블록 체인 기술은 트랜잭션 정보를 담은 하나의 블록이 이전의 블록과 다음의 블록을 고유 값으로 상호 참조하도록 하여 체인처럼 연결된 구조를 갖는 것으로서, P2P 네트워크에 참여한 피어들 또는 트랜잭션을 생성하기 위한 참여자들이 P2P 네트워크에서 생성된 모든 블록을 저장함으로써 누구나 거래 내역의 조회가 가능하고 특유의 작업 증명 방식으로 작업을 증명한 자에게 자체적으로 발행한 재화를 보상하는 절차와 대차 형태의 잔액 가감 절차를 사용하는 전문 형식의 성격을 띄고 있는 기술이다.Blocks and blockchains play a key role in the processing of Bitcoin online. Blockchain technology has a structure in which a block containing transaction information cross-references a previous block and a next block with unique values, and is connected like a chain, so that peers participating in a P2P network or participants for generating a transaction are P2P. Specialized format that allows anyone to view the transaction history by storing all blocks created in the network, rewards self-issued goods to the person who proves the work using a unique proof-of-work method and balance balance deduction procedure The character of the technology.

한국 공개특허 10-2017-0137388 (공고일자 2017년 12월 13일)Korean Unexamined Patent Publication No. 10-2017-0137388 (December 13, 2017)

본 발명이 해결하고자 하는 기술적 과제는, 기존의 블록 체인 시스템에서 이용되는 합의 알고리즘에 비하여 처리 속도를 향상시키면서 합의(consensus)의 신뢰성을 보장할 수 있는 블록 체인 시스템에서의 블록 생성 및 검증 방법을 제공하는 것이다. The technical problem to be solved by the present invention is to provide a block generation and verification method in a block chain system that can ensure the reliability of the consensus while improving the processing speed compared to the consensus algorithm used in the existing block chain system. It is.

다만, 본 발명이 해결하고자 하는 기술적 과제들은 상기 과제로 한정되는 것이 아니며, 본 발명의 기술적 사상 및 영역으로부터 벗어나지 않는 범위에서 다양하게 확장될 수 있다. However, the technical problems to be solved by the present invention are not limited to the above problems, and may be variously expanded in a range without departing from the technical spirit and scope of the present invention.

상기 과제를 해결하기 위한 본 발명의 일 실시예에 따른 블록 체인 시스템에서의 블록 생성 및 검증 방법은, 블록 체인 시스템에 적용되는 무작위 지분증명 합의 알고리즘을 포함하는 블록 생성 및 검증 방법으로서, 전체 노드에 대하여 같은 난수 값을 발생시켜 상기 난수 값을 기초로 하여 합의 메커니즘에 참여할 복수 개의 검증 노드를 선정하는 검증 노드 선정 단계, 상기 선정된 복수 개의 검증 노드는 각각, 상기 선정된 복수 개의 검증 노드들의 트랜잭션 정보를 모두 제공받아 저장하고 상기 트랜잭션 정보들을 비교하는 트랜잭션 정보 비교 단계, 상기 선정된 복수 개의 검증 노드들 중 블록 생성 노드로 지정된 하나의 노드에서 상기 트랜잭션 정보들의 비교 결과에 따라 정상 트랜잭션 정보로 결정된 데이터를 포함하는 블록을 생성하는 블록 생성 단계, 상기 생성된 블록을 상기 선정된 복수 개의 검증 노드로 전송하여 각각의 검증 노드가 상기 생성된 블록의 정상 여부를 검증하는 블록 검증 단계, 및 상기 선정된 복수 개의 검증 노드는 상기 검증의 결과를 서로 공유하고, 상기 검증의 결과에 따라 상기 생성된 블록을 다른 노드로 전송하거나, 상기 생성된 블록을 파기하고 상기 선정된 복수 개의 검증 노드 사이에서 재합의 과정을 수행하는 블록 처리 단계를 포함한다. A block generation and verification method in a blockchain system according to an embodiment of the present invention for solving the above problems is a block generation and verification method including a random equity verification agreement algorithm applied to a blockchain system, A verification node selecting step of selecting a plurality of verification nodes to participate in a consensus mechanism based on the random number values by generating the same random number value, wherein each of the selected plurality of verification nodes is transaction information of the selected plurality of verification nodes. A transaction information comparison step of receiving and storing all of the transaction information and comparing the transaction information, data determined as normal transaction information according to a comparison result of the transaction information at one node designated as a block generation node among the selected plurality of verification nodes; Block generation to create a containing block In the step of transmitting the generated block to the plurality of selected verification nodes, each verification node verifies whether the generated block is normal, and the plurality of selected verification nodes are configured to verify the result of the verification. And a block processing step of sharing each other, transmitting the generated block to another node according to a result of the verification, or discarding the generated block and performing a re-combination process between the selected plurality of verification nodes.

본 발명에 따른 몇몇 실시예에서, 상기 검증 노드 선정 단계는, 상기 전체 노드의 수에 대한 기 정해진 비율에 따라 상기 복수 개의 검증 노드를 선정하거나, 상기 전체 노드 중 기 정해진 일정한 수만큼 상기 복수 개의 노드를 선정할 수 있다. In some embodiments according to the present invention, the verifying node selecting step may include selecting the plurality of verifying nodes according to a predetermined ratio with respect to the total number of nodes, or selecting the plurality of verifying nodes by a predetermined constant number of the total nodes. Can be selected.

본 발명에 따른 몇몇 실시예에서, 상기 검증 노드 선정 단계는, 상기 전체 노드에서 시간에 따라 동일하게 생성되는 상기 난수 값을 이용하여 상기 복수 개의 검증 노드를 선정할 수 있다. In some embodiments according to the present invention, the verifying node selecting step may select the plurality of verifying nodes using the random number value generated equally according to time in all the nodes.

본 발명에 따른 몇몇 실시예에서, 상기 난수 값은 상기 전체 노드에서 상기 복수 개의 검증 노드를 무작위로 선정하기 위해 이용되며, 상기 난수 값을 발생시키기 위한 난수 발생 함수에 관한 알고리즘은 비공개될 수 있다. In some embodiments according to the present invention, the random number value is used to randomly select the plurality of verification nodes in the entire node, and an algorithm relating to a random number generation function for generating the random number value may be private.

본 발명에 따른 몇몇 실시예에서, 상기 트랜잭션 정보 비교 단계는, 상기 선정된 복수 개의 검증 노드는 각각 가장 높은 비율을 갖는 트랜잭션 정보를 당해 노드에 저장할 수 있다. In some embodiments according to the present invention, in the comparing transaction information, each of the selected plurality of verifying nodes may store transaction information having the highest ratio in the node.

본 발명에 따른 몇몇 실시예에서, 상기 블록 생성 단계는, 상기 하나의 노드는 상기 선정된 복수 개의 검증 노드 중 가장 먼저 선정된 노드로 결정되어 상기 블록 생성 노드로 지정될 수 있다. In some embodiments according to the present invention, in the block generating step, the one node may be determined as the first selected node among the selected plurality of verification nodes and designated as the block generating node.

본 발명에 따른 몇몇 실시예에서, 상기 블록 검증 단계는, 상기 선정된 복수 개의 검증 노드 각각은 상기 생성된 블록을 제공받아 당해 검증 노드에서 판정한 가장 높은 비율을 갖는 트랜잭션 정보와 비교하여 상기 생성된 블록이 정상 블록인지 검증할 수 있다. In some embodiments according to the present invention, the block verifying step includes: wherein each of the selected plurality of verifying nodes is provided with the generated block and compared with the transaction information having the highest ratio determined by the verifying node. You can verify that the block is a normal block.

본 발명에 따른 몇몇 실시예에서, 상기 블록 처리 단계는, 상기 선정된 복수 개의 검증 노드에서 상기 검증의 결과를 공유하고, 상기 생성된 블록을 정상 블록으로 판정한 검증 노드의 수가 과반수 이상인 경우 상기 생성된 블록을 다른 노드로 전송할 수 있다. In some embodiments according to the present invention, the block processing step may be performed when the number of verifying nodes sharing the result of the verifying in the selected plurality of verifying nodes and determining the generated block as a normal block is more than half. A given block can be transferred to another node.

본 발명에 따른 몇몇 실시예에서, 상기 블록 처리 단계는, 상기 선정된 복수 개의 검증 노드에서 상기 검증의 결과를 공유하고, 상기 생성된 블록을 비정상 블록으로 판정한 노드의 수가 과반수 이상인 경우 상기 선정된 복수 개의 검증 노드 사이에서 상기 재합의 과정을 수행할 수 있다. In some embodiments according to the present invention, the block processing step may include: sharing the result of the verification in the selected plurality of verification nodes, and in the case where the number of nodes that determine the generated block as an abnormal block is more than half of the selected The reassembly process may be performed between a plurality of verification nodes.

본 발명에 따른 몇몇 실시예에서, 상기 재합의 과정은, 상기 블록 생성 노드의 다음 노드에서 새로운 블록을 생성하고, 상기 새로운 블록을 상기 선정된 복수 개의 검증 노드로 전송하여 각각의 검증 노드가 상기 새로운 블록의 정상 여부를 검증할 수 있다. In some embodiments according to the present invention, the process of reassembly may generate a new block at a next node of the block generation node, and transmit the new block to the selected plurality of verification nodes so that each verification node is connected to the new verification node. It is possible to verify whether a block is normal.

본 발명에 따른 몇몇 실시예에서, 상기 단계들을 반복 수행하여 후속 블록을 생성하고, 상기 후속 블록을 상기 선정된 복수 개의 검증 노드를 통해 다른 노드로 전송할 수 있다. In some embodiments according to the present invention, the steps may be repeated to generate a subsequent block, and the subsequent block may be transmitted to another node through the selected plurality of verification nodes.

본 발명의 기타 구체적인 사항들은 상세한 설명 및 도면들에 포함되어 있다.Other specific details of the invention are included in the detailed description and drawings.

본 발명에 따르면 기존의 블록 체인 시스템의 합의 알고리즘에 비하여 불필요한 에너지 낭비를 줄일 수 있고, 부(富)의 편중화 문제를 해결할 수 있으며, 선정된 노드들에 의해서 합의 과정이 수행되기 때문에 처리 속도를 향상시킬 수 있다. According to the present invention, it is possible to reduce unnecessary energy waste, to solve the problem of unbalanced wealth, and to improve the processing speed because selected processes are performed by selected nodes, compared to the conventional algorithms of blockchain systems. You can.

또한, 본 발명에 따르면 합의 과정에 참여하는 노드가 무작위(random) 비밀 방식으로 선정되기 때문에, 해킹 등과 같은 공격으로부터 보호받을 수 있으며, 노드들간의 단합과 같은 문제도 원천적으로 차단할 수 있다. In addition, according to the present invention, since nodes participating in the consensus process are selected in a random secret manner, they can be protected from attacks such as hacking, and problems such as unity between nodes can be blocked at source.

다만, 본 발명의 효과는 상기 효과들로 한정되는 것이 아니며, 본 발명의 기술적 사상 및 영역으로부터 벗어나지 않는 범위에서 다양하게 확장될 수 있다. However, the effects of the present invention are not limited to the above effects, and may be variously expanded within the scope without departing from the spirit and scope of the present invention.

도 1은 본 발명에 따른 기술적 사상이 적용될 수 있는 블록 체인을 이용한 분산 처리 시스템을 도시한 도면이다.
도 2 및 도 3은 블록 체인 시스템에서 이용되는 블록의 연결을 도시한 블록도이다.
도 4는 본 발명이 적용되는 네트워크를 개략적으로 도시한 도면이다.
도 5는 본 발명에 따른 무작위 지분증명 합의 알고리즘에서 검증 노드를 결정하는 과정을 순차적으로 도시한 흐름도이다.
도 6은 본 발명에 따른 무작위 지분증명 합의 알고리즘을 이용한 블록 생성 방법을 순차적으로 도시한 흐름도이다.
도 7은 블록 생성 노드에서 블록을 생성하는 과정과 생성된 블록에 대해 예시적으로 도시한 도면이다.
1 is a diagram illustrating a distributed processing system using a blockchain to which the technical spirit of the present invention can be applied.
2 and 3 are block diagrams illustrating the connection of blocks used in a blockchain system.
4 is a diagram schematically illustrating a network to which the present invention is applied.
5 is a flowchart sequentially illustrating a process of determining a verification node in a random stake verification agreement algorithm according to the present invention.
FIG. 6 is a flowchart sequentially illustrating a block generation method using a random equity proof agreement algorithm according to the present invention.
7 is a diagram illustrating a process of generating a block in the block generation node and a generated block by way of example.

본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나, 본 발명은 이하에서 개시되는 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 것이며, 단지 본 실시예들은 본 발명의 개시가 완전하도록 하며, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다. Advantages and features of the present invention and methods for achieving them will be apparent with reference to the embodiments described below in detail with the accompanying drawings. However, the present invention is not limited to the embodiments disclosed below, but may be implemented in various different forms, only the present embodiments to make the disclosure of the present invention complete, and common knowledge in the art to which the present invention pertains. It is provided to fully inform the person having the scope of the invention, which is defined only by the scope of the claims.

본 명세서에서 사용된 용어는 실시예들을 설명하기 위한 것이며, 본 발명을 제한하고자 하는 것은 아니다. 본 명세서에서, 단수형은 문구에서 특별히 언급하지 않는 한 복수형도 포함한다. 명세서에서 사용되는 "포함한다(comprises)" 및/또는 "포함하는(comprising)"은 언급된 구성요소, 단계, 동작 및/또는 소자는 하나 이상의 다른 구성요소, 단계, 동작 및/또는 소자의 존재 또는 추가를 배제하지 않는다.The terminology used herein is for the purpose of describing particular embodiments only and is not intended to be limiting of the invention. In this specification, the singular also includes the plural unless specifically stated otherwise in the phrase. As used herein, “comprises” and / or “comprising” refers to the presence of one or more other components, steps, operations and / or elements. Or does not exclude additions.

다른 정의가 없다면, 본 명세서에서 사용되는 모든 용어(기술 및 과학적 용어를 포함)는 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 공통적으로 이해될 수 있는 의미로 사용될 수 있을 것이다. 또한, 일반적으로 사용되는 사전에 정의되어 있는 용어들은 명백하게 특별히 정의되어 있지 않는 한 이상적으로 또는 과도하게 해석되지 않는다.Unless otherwise defined, all terms (including technical and scientific terms) used in the present specification may be used in a sense that can be commonly understood by those skilled in the art. In addition, terms that are defined in a commonly used dictionary are not ideally or excessively interpreted unless they are specifically defined clearly.

이하, 첨부한 도면들을 참조하여, 본 발명의 바람직한 실시예들을 보다 상세하게 설명하고자 한다. 도면 상의 동일한 구성요소에 대해서는 동일한 참조 부호를 사용하고 동일한 구성요소에 대해서 중복된 설명은 생략한다.Hereinafter, exemplary embodiments of the present invention will be described in detail with reference to the accompanying drawings. The same reference numerals are used for the same components in the drawings, and duplicate descriptions of the same components are omitted.

블록 체인을 이용한 분산 처리 시스템에서는 각각의 노드에서 발생한 거래 내역(트랜잭션 정보)에 대해 일정 시간대 별로 작성한 거래 내역을 비교한 후 블록 생성에 사용하게 될 거래 내역을 결정하는 합의 알고리즘을 필요로 한다.The distributed processing system using a blockchain requires a consensus algorithm that compares the transaction details (transaction information) generated at each node with the transaction details created at certain time intervals and then determines the transaction details to be used for block generation.

이러한 합의 알고리즘을 통해 분산 시스템에 참여한 노드들은 모두가 동의할 수 있는 같은 거래 내역을 가지게 되고 이를 통해 해당 시스템을 신뢰하게 된다.Through this consensus algorithm, nodes participating in the distributed system have the same transaction details that everyone can agree on, thereby trusting the system.

기존의 블록 체인에 적용된 합의 알고리즘은 PoW라는 작업증명 방식, PoS라는 지분증명 방식, DPoS라는 위임된 지분증명 방식 등 여러가지 방식이 존재한다.There are various methods of consensus algorithm applied to existing blockchain, such as Proof of Work, PoS, Proof of PoS, and Delegated Proof of DPoS.

그런데 이러한 합의 알고리즘들은 거래 내역의 발생 빈도가 높거나 참여한 노드 수가 많아지면 블록 생성을 위한 처리 속도가 현저히 떨어지는 방식이거나 해킹 또는 지정 노드들간의 단합과 같은 외부적인 요인에 의해 신뢰가 깨질 수 있는 문제점이 있다. However, these consensus algorithms have a problem that if the transaction history occurs frequently or the number of participating nodes is large, the processing speed for block generation is significantly reduced, or the trust may be broken by external factors such as hacking or unity among designated nodes. have.

따라서, 블록 체인을 이용한 분산 시스템에서도 많은 거래 내역과 많은 참여 노드 수에서도 효과적으로 거래 내역을 처리할 수 있으며, 외부 요인으로부터도 시스템의 안전성을 신뢰할 수 있는 새로운 합의 알고리즘이 필요하다.Therefore, even in a distributed system using a blockchain, it is possible to effectively process a transaction history in a large number of transactions and a large number of participating nodes, and a new consensus algorithm that can trust the safety of the system from external factors is needed.

우선, 기존의 합의 알고리즘의 문제점은 다음과 같다.First, the problem of the existing consensus algorithm is as follows.

(1) PoW(Proof of Work, 작업증명) 방식(1) PoW (Proof of Work) method

블록 생성에 필요한 연산 문제를 제일 먼저 푼 노드에게 블록 생성 권한을 주고, 그 노드가 가지고 있는 거래 내역을 신뢰하는 방식이다. 블록 체인 기술을 제일 먼저 적용한 비트코인에서 채택한 방식으로 작은 시스템에서는 효과적일 수 있느나, 거래 내역이 커지고 노드 수가 많아질수록 해당 트랜잭션이 포함된 블록이 생성하기 위한 처리 속도가 매우 느려지며 채굴 장비를 갖춘 모든 노드들이 같이 연산 작업을 하기 때문에 비효율적인 에너지 낭비가 발생하게 된다. It is a way to give the block creation authority to the node that solved the computational problem necessary for the block generation first, and to trust the transaction history of the node. Bitcoin adopts blockchain technology first, which can be effective in small systems.However, as the transaction history and the number of nodes increase, the processing speed for generating the block containing the transaction becomes very slow. All the nodes that we have are working together, resulting in inefficient energy waste.

(2) PoS(Proof of Stake, 지분증명) 방식(2) Proof of Stake method

노드들 중 합의 과정에 참여하고자 하는 노드들의 거래 내역을 비교하여 그 중 다수의 거래 내역에 대해 이를 신뢰하는 방식으로 지분이 높은 노드가 블록 생성 권한을 더 많이 갖는 방식이다. 직접 선거와 유사한 방식이기 때문에 거래 내역에 대한 신뢰도는 높지만 참가한 노드들이 많아지게 되면 처리 속도가 늦어지며, 실시간 처리가 요구되는 서비스에는 적합하지 않은 방식이다. By comparing the transaction details of the nodes that want to participate in the consensus process and trusting a number of the transaction details, the node with a higher stake has more authority to create a block. It is similar to the direct election method, so the reliability of transaction details is high, but the number of participating nodes slows down the processing speed and is not suitable for services requiring real time processing.

(3) DPoS(Delegated Proof of Stake, 위임된 지분증명) 방식(3) Delegated Proof of Stake (DPoS) method

하위 노드들로부터 권한을 위임받은 지정된 수의 노드들의 거래 내역을 비교하여 이들 중 다수의 거래 내역을 신뢰하는 방식이다. 간접 선거 방식으로서 지정된 수의 노드만 합의에 참여하기 때문에 처리 속도가 빠르지만, 지정된 노드가 해킹 당할 우려가 있고 지정된 노드들 중 51% 이상의 단합으로 시스템의 신뢰를 깰 수 있는 문제점이 있다.It compares the transaction history of a specified number of nodes authorized by subordinate nodes and trusts the transaction history of many of them. The processing speed is fast because only a specified number of nodes participate in the consensus as an indirect election method, but there is a problem that the designated node may be hacked and the trust of the system may be broken by more than 51% of the designated nodes.

본 발명에 따르면, 상술한 기존 합의 알고리즘의 문제점을 해결하고, 보다 효율적인 분산 시스템 사용을 위해 RPoS(Random Proof of Stake, 무작위 지분증명) 방식의 합의 알고리즘을 제안한다. According to the present invention, to solve the problems of the conventional consensus algorithm described above, and propose a consensus algorithm of the Random Proof of Stake (RPoS) scheme for more efficient use of distributed systems.

이는 전체 노드 대비 일정 비율의 노드들 또는 일정수의 노드들을 무작위로 추출한 후, 추출된 노드들의 거래 내역을 비교하고 이 중 다수의 거래 내역을 신뢰하는 방식이다.This is a method of randomly extracting a certain ratio of nodes or a certain number of nodes relative to the total nodes, and then compares the transaction details of the extracted nodes and trusts a plurality of transactions.

도 1은 본 발명에 따른 기술적 사상이 적용될 수 있는 블록 체인을 이용한 분산 처리 시스템을 도시한 도면이다.1 is a diagram illustrating a distributed processing system using a blockchain to which the technical spirit of the present invention can be applied.

도 1을 참조하면 블록 체인을 이용한 분산 처리 시스템(100)은 복수의 노드들(110-170)로 이루어진 분산형 네트워크(distributed network) 시스템이다. 상기 분산형 네트워크(100)를 구성하는 노드들(110-170)은 컴퓨터, 이동 단말기, 전용 전자 장치 등 연산 능력이 있는 전자 장치일 수 있다.Referring to FIG. 1, a distributed processing system 100 using a blockchain is a distributed network system including a plurality of nodes 110-170. The nodes 110-170 constituting the distributed network 100 may be electronic devices having computing capability, such as computers, mobile terminals, and dedicated electronic devices.

일반적으로 분산형 네트워크(100)는 블록 체인(block chain)이라 불리는 블록(block)의 연결 묶음 내에 모든 참여 노드에 공통으로 알려진 정보를 저장하고 참조할 수 있다. 상기 노드들(110-170)은 상호간 통신이 가능하며 블록 체인을 저장, 관리 및 전파를 담당하는 완전 노드(full node)와 단순하게 트랜잭션에만 참여할 수 있는 간이 노드(light node)로 구분될 수 있다. 본 명세서에서 별다른 설명 없이 노드에 대하여 언급되는 경우, 이는 분산형 네트워크에 참여하며 블록 체인을 생성, 저장 또는 검증하는 동작을 수행하는 완전 노드를 지칭하는 경우가 많으나, 이에 한정되는 것은 아니다. In general, the distributed network 100 may store and refer to information commonly known to all participating nodes in a connection bundle of blocks called a block chain. The nodes 110-170 may be divided into a full node capable of communicating with each other, a full node that is responsible for storing, managing, and propagating a block chain, and a light node that can simply participate in a transaction. . In the present specification, when referring to a node without further description, it often refers to a complete node that participates in a distributed network and performs an operation of generating, storing, or verifying a blockchain, but is not limited thereto.

상기 블록 체인에 연결되어 있는 각 블록(block)들은 일정 기간 내의 거래 내역, 즉 트랜잭션(transaction)들을 포함한다. 상기 노드들은 각각 역할에 따라 블록 체인을 생성, 저장 또는 검증함으로써 트랜잭션들을 관리할 수 있다.Each block connected to the blockchain includes a transaction history, or transactions, within a certain period. The nodes can manage transactions by creating, storing or verifying a blockchain according to their respective roles.

실시 형태에 따라 상기 트랜잭션은 다양한 형태의 거래를 나타낼 수 있다. 일 실시예에서 상기 트랜잭션은 가상 화폐의 소유 상태 및 그 변동을 나타내기 위한 금융 거래에 해당할 수 있다. 다른 실시예에서 상기 트랜잭션은 물건의 소유 상태 및 그 변동을 나타내기 위한 실물 거래에 해당할 수 있다. 상기 분산형 네트워크(100)에서 거래를 수행하는 노드들은 각각의 암호학적 연관관계가 있는 개인키(private key) 및 공개키(public key) 쌍을 가질 수 있다.According to an embodiment, the transaction may represent various types of transactions. In one embodiment, the transaction may correspond to a financial transaction to indicate the ownership state of the virtual currency and its variation. In another embodiment, the transaction may correspond to a physical transaction to indicate the state of ownership of the object and its variation. Nodes performing transactions in the distributed network 100 may have a private key and a public key pair with respective cryptographic associations.

도 2 및 도 3은 블록 체인 시스템에서 이용되는 블록의 연결을 도시한 블록도이다.2 and 3 are block diagrams illustrating the connection of blocks used in a blockchain system.

도 2를 참조하면 블록 체인(200)은 순차적으로 연결된 하나 이상의 블록들(210, 220, 230)의 분산 데이터베이스의 일종이다. 상기 블록 체인(200)은 블록 체인 시스템 내 사용자의 거래 내역을 저장하고 관리하기 위해 사용되며, 상기 블록 체인 시스템의 네트워크에 참여하는 각 노드가 블록을 생성하여 상기 블록 체인(200)에 연결한다. 도 2에는 제한된 수의 블록들(210, 220, 230)이 도시되어 있으나 블록 체인에 포함될 수 있는 블록의 수는 이에 제한되지 아니한다.Referring to FIG. 2, the block chain 200 is a kind of distributed database of one or more blocks 210, 220, and 230 sequentially connected. The blockchain 200 is used to store and manage transaction details of users in the blockchain system, and each node participating in the network of the blockchain system generates a block and connects it to the blockchain 200. 2 illustrates a limited number of blocks 210, 220, and 230, but the number of blocks that may be included in the block chain is not limited thereto.

상기 블록 체인(200)에 포함된 각 블록은 블록 헤더(211)와 블록 바디(213)를 포함하도록 구성될 수 있다. 상기 블록 헤더(211)는 각 블록들간의 연결 관계를 나타내기 위하여 이전 블록(220)의 해시 값을 포함할 수 있다. 상기 블록 체인(200)이 유효한지 검증하는 과정에서 상기 블록 헤더(211) 내의 연결 관계가 사용된다. 상기 블록 바디(213)는 상기 블록(210)에 저장되고 관리되는 데이터, 예를 들어 트랜잭션 리스트 또는 트랜잭션 체인을 포함할 수 있다.Each block included in the block chain 200 may be configured to include a block header 211 and a block body 213. The block header 211 may include a hash value of the previous block 220 to indicate a connection relationship between each block. In the process of verifying that the block chain 200 is valid, a connection relationship in the block header 211 is used. The block body 213 may include data stored and managed in the block 210, for example, a transaction list or a transaction chain.

도 3을 참조하면, 상기 블록 헤더(211)는 이전 블록의 해시(2112), 넌스(Nonce)(2114)를 포함할 수 있다. 또한, 상기 블록 헤더(211)는 블록 내의 트랜잭션 리스트의 헤더를 나타내는 루트(2115)를 포함할 수 있다.Referring to FIG. 3, the block header 211 may include a hash 2112 and a nonce 2114 of a previous block. In addition, the block header 211 may include a root 2115 representing a header of a transaction list in the block.

전술된 바와 같이, 상기 블록 체인(200)은 연결된 하나 이상의 블록들을 포함할 수 있다. 상기 하나 이상의 블록들은 상기 블록 헤더(211) 내의 해시 값에 기초하여 연결된다. 상기 블록 헤더(211)에 포함된 이전 블록의 해시 값(2112)은 직전 블록(220)에 대한 해시 값으로서 직전 블록(220)에 포함된 현재 해시(2213)와 동일한 값이다. 상기 하나 이상의 블록들은 각 블록 헤더 내의 이전 블록의 해시 값에 의하여 연쇄적으로 연결된다. 상기 분산형 네트워크에 참여하는 노드들은 상기 하나 이상의 블록들에 포함된 이전 블록의 해시 값에 기반하여 블록의 유효성을 검증하므로 악의적인 단일 노드가 이미 생성된 블록의 내용을 위조 또는 변조하는 행위가 불가능하다.As described above, the block chain 200 may include one or more blocks that are connected. The one or more blocks are concatenated based on a hash value in the block header 211. The hash value 2112 of the previous block included in the block header 211 is the same as the current hash 2213 included in the previous block 220 as a hash value for the previous block 220. The one or more blocks are concatenated concatenated by the hash value of the previous block in each block header. Nodes participating in the distributed network verify the validity of the block based on the hash value of the previous block included in the one or more blocks, thereby preventing the malicious single node from forging or tampering with the contents of the already created block. Do.

상기 블록 바디(213)는 트랜잭션 리스트(2131)를 포함할 수 있다. 상기 트랜잭션 리스트(2131)는 블록 체인 기반의 거래의 목록이다. 예를 들면, 상기 트랜잭션 리스트(2131)는 상기 블록 체인 기반의 금융 시스템에서 이루어진 금융 거래에 대한 기록을 포함할 수 있다. 상기 트랜잭션 리스트(2131)는 트리(tree) 형태로 표현될 수 있으며, 예를 들어, 사용자 A가 사용자 B에게 전송한 금액을 목록 형태로 기록하며, 블록 내의 저장 길이는 현재 블록에 포함된 트랜잭션의 수에 기초하여 증감될 수 있다.The block body 213 may include a transaction list 2131. The transaction list 2131 is a list of blockchain based transactions. For example, the transaction list 2131 may include a record of financial transactions made in the blockchain-based financial system. The transaction list 2131 may be expressed in the form of a tree. For example, the transaction list 2131 records the amount of money transmitted from the user A to the user B in the form of a list, and the storage length in the block is the length of the transaction included in the current block. It can be increased or decreased based on the number.

그리고, 블록(210)은 블록 헤더(211)와 블록 바디(213)에 포함된 정보 이외의 기타 정보(2116)를 포함할 수 있다. The block 210 may include other information 2116 other than the information included in the block header 211 and the block body 213.

분산형 네트워크에 참여하는 노드들은 동일한 블록 체인을 가지며, 블록에는 동일한 트랜잭션이 저장된다. 트랜잭션 목록이 포함된 블록이 네트워크에 공유되므로 모든 참여자가 검증할 수 있다. Nodes participating in the distributed network have the same block chain, and the same transaction is stored in the block. Blocks containing a list of transactions are shared across the network so that all participants can verify them.

도 4는 본 발명이 적용되는 네트워크를 개략적으로 도시한 도면이다. 4 is a diagram schematically illustrating a network to which the present invention is applied.

도 4를 참조하면, 본 발명이 적용되는 네트워크(또는 정보통신망)는 노드들로 구성된다. 도 4에 도시된 것과 같이, 노드에는 검증 노드(300), 블록 생성 노드(310), 일반 노드(320)가 있으며, 이들은 모두 P2P 네트워크로 연결되어 있다. 이러한 노드(300, 310, 320)들은 정보처리 기능과 통신 기능을 갖는 네트워크 상의 호스트이다.Referring to FIG. 4, a network (or an information communication network) to which the present invention is applied consists of nodes. As shown in FIG. 4, the node includes a verification node 300, a block generation node 310, and a general node 320, all of which are connected to a P2P network. These nodes 300, 310, and 320 are hosts on a network having an information processing function and a communication function.

검증 노드(300)는 본 발명에 따른 무작위 지분증명(RPoS) 합의 메커니즘에 참여할 복수 개의 검증 노드를 의미한다. 검증 노드(300)는 전체 노드에 대하여 전체 노드의 수에 대한 기 정해진 비율에 따라 복수 개의 검증 노드를 선정하거나, 전체 노드 중 기 정해진 일정한 수만큼 복수 개의 검증 노드를 선정할 수 있다. The verification node 300 refers to a plurality of verification nodes that will participate in the Randomized Proof of Stake (RPoS) consensus mechanism according to the present invention. The verification node 300 may select a plurality of verification nodes according to a predetermined ratio with respect to the total number of nodes for all nodes, or select a plurality of verification nodes by a predetermined constant number of all nodes.

검증 노드(300)를 결정하기 위하여, 전체 노드에서 시간에 따라 동일하게 생성되는 난수 값을 이용하여 복수 개의 검증 노드(300)를 결정할 수 있는데, 이러한 난수 값을 발생시키는 난수 발생 함수에 관한 알고리즘은 비공개로 할 수 있다. In order to determine the verification node 300, a plurality of verification nodes 300 may be determined using random numbers generated equally over time in all nodes. An algorithm related to a random number generation function that generates these random values You can make it private.

블록 생성 노드(310)는 검증 노드(300)들 중에서 지정된 하나의 노드로서, 트랜잭션 정보들의 비교 결과에 따라 정상 트랜잭션 정보로 결정된 데이터를 포함하는 블록을 생성하는 역할을 한다. 즉, 블록 생성 노드(310)는 블록 체인을 구성하는 개별 블록을 생성할 권한이 있는 노드를 의미한다. The block generation node 310 is a designated node among the verification nodes 300, and serves to generate a block including data determined as normal transaction information according to a comparison result of transaction information. That is, the block generation node 310 refers to a node authorized to generate individual blocks constituting the block chain.

구체적으로, 합의된 거래 내역 즉, 합의된 트랜잭션 정보에 대해 매 블록 생성 시간때마다 블록 생성 노드(310)에서 블록을 생성하는데, 이러한 블록 생성 노드(310)는 무작위 방식에 의해 결정된다. 무작위 방식으로 블록 생성 노드(310)를 결정하기 위해 각각의 노드들은 난수 값이 할당되며, 각각의 노드들에 할당된 난수 값은 모든 노드들에서 서로 동일한 값을 갖게 된다(특정 시간에 모든 노드들에서 동시에 난수 값이 발생한 경우). Specifically, the block generation node 310 generates a block at every block generation time for the agreed transaction details, that is, the agreed transaction information, and this block generation node 310 is determined in a random manner. In order to determine the block generation node 310 in a random manner, each node is assigned a random value, and the random number assigned to each node has the same value at all nodes (all nodes at a specific time). At the same time random values occur).

블록 생성 노드(310)는 자신이 선정한 거래 내역 즉, 트랜잭션 정보를 포함하도록 블록을 생성한다. 예를 들어, 블록 생성 노드(310)를 결정함에 있어서 상기 난수 값을 이용하며, "검증 노드(300) 중에서 가장 먼저 선정된 노드를 블록 생성 노드(310)로 한다"는 등의 방식을 미리 설정하여, 검증 노드(300)들 중에서 블록 생성 노드(310)를 정할 수 있다. 블록 생성 노드(310)를 결정하는 방식은 모든 검증 노드(300)가 동일하게 알 수 있는 방식에 의하여 결정하면 된다. The block generation node 310 generates a block to include the transaction details selected by the user, that is, transaction information. For example, in determining the block generation node 310, the random number value is used, and a method of "making the first node selected from the verification node 300 the block generation node 310" is set in advance. The block generation node 310 may be determined among the verification nodes 300. The method of determining the block generation node 310 may be determined by a method in which all the verification nodes 300 are equally known.

블록 생성 노드(310)에서 생성된 블록에 대해서는 검증 노드(300)들의 검증 과정을 거쳐 정상 블록으로 합의된 경우에만 다른 노드들로 전송되어 블록 체인 구조의 후속 블록이 되며, 합의된 정상 블록에 대해서만 체인을 계속하여 형성해 나간다. 본 발명에 따르면, 검증 노드(300)를 선정함에 있어서 난수 값을 이용하여 무작위 방식으로 대표성을 갖는 검증 노드(300)를 결정하며, 검증 노드(300)들 중에서도 하나의 블록 생성 노드(310)를 결정하는 것도 난수 값을 이용하여 무작위 방식으로 결정하는 것을 특징으로 한다. The block generated in the block generation node 310 is transmitted to other nodes only when it is agreed as a normal block through the verification process of the verification nodes 300 to become a subsequent block of the block chain structure, and only for the agreed normal block. Continue to form the chain. According to the present invention, in selecting the verification node 300, a verification node 300 having a representativeness is determined in a random manner by using a random number value, and one block generation node 310 is selected among the verification nodes 300. Determination is also characterized in that it is determined in a random manner using a random number value.

일반 노드(320)는 일반 사용자의 PC일 수도 있고, 모바일 기기(예를 들어 스마트폰이나 노트북 또는 태블릿 PC)이거나, 사물인터넷(IoT: Internet of Things) 기능을 갖는 정보처리 기기일 수 있다.The general node 320 may be a PC of a general user, a mobile device (for example, a smartphone, a laptop or a tablet PC), or an information processing device having an Internet of Things (IoT) function.

도 5는 본 발명에 따른 무작위 지분증명 합의 알고리즘에서 검증 노드를 결정하는 과정을 순차적으로 도시한 흐름도이다. 도 6은 본 발명에 따른 무작위 지분증명 합의 알고리즘을 이용한 블록 생성 방법을 순차적으로 도시한 흐름도이다. 도 7은 블록 생성 노드에서 블록을 생성하는 과정과 생성된 블록에 대해 예시적으로 도시한 도면이다. 5 is a flowchart sequentially illustrating a process of determining a verification node in a random stake verification agreement algorithm according to the present invention. FIG. 6 is a flowchart sequentially illustrating a block generation method using a random equity proof agreement algorithm according to the present invention. 7 is a diagram illustrating a process of generating a block in the block generation node and a generated block by way of example.

도 5를 참조하면, 본 발명에서 검증 노드 선정 단계에서는, 우선, (1) 전체 노드에 대하여 전체 노드의 수에 대한 기 정해진 비율에 따라 복수 개의 노드를 선정하여 검증 노드(300)를 결정되거나, (2) 전체 노드 중 기 정해진 일정한 수만큼 복수 개의 노드를 선정하여 검증 노드(300)를 결정할 수 있다. Referring to FIG. 5, in the selecting a verification node in the present invention, first, (1) a verification node 300 is determined by selecting a plurality of nodes according to a predetermined ratio with respect to the total number of nodes for all nodes, (2) The verification node 300 may be determined by selecting a plurality of nodes from a predetermined number of all nodes.

이러한 검증 노드(300)에 관한 결정 방식이 정해지면, 전체 노드에서 시간에 따라 동일하게 발생되는 난수 값에 의하여, 합의 메커니즘에 참여할 검증 노드(300)들을 결정한다. 본 발명에서는 난수 값을 이용하기 때문에 무작위 지분증명(Random PoS) 방식의 합의 알고리즘이 적용된다. Once the determination method for the verification node 300 is determined, the verification nodes 300 to participate in the consensus mechanism are determined by random values that are equally generated over time in all nodes. In the present invention, since a random number value is used, a consensus algorithm of Random PoS is applied.

여기에서, 난수 값은 합의 메커니즘에 참여할 노드들을 무작위로 추출하기 위한 변수로서, 검증 노드(300)가 어느 노드인지 외부에서 알 수 없도록 하여 외부에서 검증 노드(300)에 대해 해킹 등의 공격을 시도하는 것을 어렵게 할 수 있다. Here, the random number is a variable for randomly extracting nodes that will participate in the consensus mechanism, and attempts to attack the verification node 300 by hacking from the outside by not knowing which node the verification node 300 is from the outside. It can make it hard to do.

특정한 시간에 합의 알고리즘이 수행되어 선정되는 노드들의 내역은 전체 노드에서 똑같이 알고 있어야 하기 때문에, 전체 노드에서 특정 시간에 생성되는 난수 값은 완전히 일치해야 한다. Since the consensus algorithm is executed at a specific time and the details of the nodes selected are equally known to all nodes, the random numbers generated at a specific time in all nodes must match completely.

도 5 및 도 7을 참조하면, 예를 들어, 선정된 노드 번호가 #1723, #2378, #3492, #5692, #6901, #9023 이라면 이러한 난수 값을 갖는 노드들이 검증 노드(300)로 결정되며, #1723 이라는 난수 값을 갖는 노드가 블록 생성 노드(310)로 결정될 수 있다. 5 and 7, for example, if the selected node number is # 1723, # 2378, # 3492, # 5692, # 6901, or # 9023, nodes having these random values are determined as the verification node 300. The node having the random number # 1723 may be determined as the block generation node 310.

도 4 내지 도 7을 참조하면, 검증 노드(300)들은 각각, 검증 노드(300) 모두의 트랜잭션 정보들을 제공받으며, 이들을 저장하고 자신의 트랜잭션 정보와 제공받은 모든 트랜잭션 정보들을 비교하여 가장 높은 비율을 갖는 트랜잭션 정보를 자신의 노드에 저장해 둔다. 4 to 7, the verification nodes 300 are each provided with transaction information of all of the verification nodes 300, and store them and compare their transaction information with all provided transaction information to obtain the highest ratio. Store transaction information in its own node.

블록 생성 노드(310)는 검증 노드(300)에 관한 선정 과정에서 지정된 하나의 노드로서 결정되며, 위의 예시에서는 #1723 이라는 난수 값을 갖는 노드가 블록 생성 노드(310)로 결정될 수 있다. 블록 생성 노드(310)는 자신의 트랜잭션 정보와 다른 검증 노드(300)들로부터 제공받은 트랜잭션 정보들을 비교하여 가장 높은 비율을 갖는 트랜잭션 정보를 포함하도록 블록(B1)을 생성한다. The block generation node 310 is determined as one node designated in the selection process for the verification node 300, and in the above example, a node having a random number # 1723 may be determined as the block generation node 310. The block generation node 310 compares its transaction information with transaction information provided from other verification nodes 300 and generates block B1 to include transaction information having the highest ratio.

블록 생성 노드(310)에서 생성된 블록(B1)에는 블록 생성 노드의 일련번호에 관한 정보와 합의 횟수에 관한 정보를 포함할 수 있다. 이는 어느 노드에서 블록이 생성되었는지를 알 수 있도록 하며, 블록 내의 정보가 위/변조 되었는지 여부도 알 수 있도록 한다. The block B1 generated by the block generation node 310 may include information about the serial number of the block generation node and information about the number of times of agreement. This allows you to know at which node the block was created and whether the information in the block has been forged / modulated.

블록 생성 노드(310)에서 생성된 블록(B1)은 검증 노드(300)들로 전송되며, 각각의 검증 노드(300)에서는 블록(B1)이 정상 블록인지 여부를 검증한다. The block B1 generated at the block generation node 310 is transmitted to the verification nodes 300, and each verification node 300 verifies whether the block B1 is a normal block.

각각의 검증 노드(300)에서는 전송받은 블록(B1) 내의 트랜잭션 정보와 자신의 노드에 저장되어 있는 트랜잭션 정보(자신의 트랜잭션 정보와 제공받은 모든 트랜잭션 정보들을 비교하여 가장 높은 비율을 갖는 트랜잭션 정보로 판정하여 자신의 노드에 미리 저장해둔 정보)가 일치하는지 여부를 비교하여 블록(B1)이 정상 블록인지 판정한다. Each verification node 300 compares the transaction information in the received block B1 with the transaction information stored in its node (own transaction information and all provided transaction information, and determines that the transaction information has the highest ratio). By comparing the information previously stored in its own node), it is determined whether the block B1 is a normal block.

각각의 검증 노드(300)는 검증 결과를 다시 다른 검증 노드(300)들에게 전송하며, 취합된 검증 결과에 따라 후속 절차가 진행된다. 각각의 검증 노드(300)에서 검증된 결과를 서로 공유하며, 검증 결과가 "블록(B1)에 저장된 트랜잭션 정보는 자신의 노드에 저장된 트랜잭션 정보와 일치하여 블록(B1)은 정상 블록이다"라는 의견이 과반수 이상인 경우에는 블록 생성 노드(310)에서 생성된 블록(B1)을 다른 노드들로 전송한다. Each verification node 300 transmits the verification results back to the other verification nodes 300, and subsequent procedures are performed according to the collected verification results. Each verification node 300 shares the verified result with each other, and the verification result is "the transaction information stored in the block B1 matches the transaction information stored in its node, so that the block B1 is a normal block". In the case of more than this majority, the block B1 generated by the block generation node 310 is transmitted to other nodes.

그러나, 검증 결과가 "블록(B1)에 저장된 트랜잭션 정보는 자신의 노드에 저장된 트랜잭션 정보와 불일치하여 블록(B1)은 비정상 블록이다"라는 의견이 과반수 이상인 경우에는 블록(B1)이 잘못 생성된 것으로 판단하고 블록(B1)을 파기하며, 이에 관해 재합의 과정을 수행한다. However, if the majority of the opinion that the verification result is that "the transaction information stored in the block B1 is inconsistent with the transaction information stored in its node, and the block B1 is an abnormal block", the block B1 is incorrectly generated. Determination and discarding the block (B1), and performs the process of reunion on this.

재합의 과정에서는 블록 생성 노드(310)의 다음 노드에서 새로운 블록(B2)을 생성한다. 블록(B2)의 생성 과정은 상술한 바와 동일하다. 즉, 블록 생성 노드(310)의 다음 노드에 해당하는 #2378 이라는 난수 값을 갖는 노드가 새로운 블록 생성 노드(310-1)로 결정될 수 있다. 새로운 블록 생성 노드(310-1)는 자신의 트랜잭션 정보와 다른 검증 노드(300)들로부터 제공받은 트랜잭션 정보들을 비교하여 가장 높은 비율을 갖는 트랜잭션 정보를 포함하도록 블록(B2)을 생성한다.In the recombination process, a new block B2 is generated at the next node of the block generation node 310. The generation process of the block B2 is the same as described above. That is, a node having a random value of # 2378 corresponding to the next node of the block generation node 310 may be determined as the new block generation node 310-1. The new block generation node 310-1 compares its transaction information with transaction information provided from other verification nodes 300 and generates block B2 to include the transaction information having the highest ratio.

재합의 과정에서 블록 생성 노드(310)의 다음 노드를 새로운 블록 생성 노드(310-1)로 결정하는 이유는 블록 생성 노드(310)는 이미 잘못된 블록(B1)을 생성하였기 때문에 블록 생성 노드(310)의 다음 노드를 새로운 블록 생성 노드(310-1)로 하여 새로운 블록(B2)을 생성하도록 한다. 다만, 이러한 과정은 통상의 기술자가 임의로 변경하여 사용할 수 있으며, 새로운 블록 생성 노드(310)를 결정하는 방식은 다양한 방식에 의하여 결정될 수 있다. The reason for determining the next node of the block generation node 310 as the new block generation node 310-1 during the recombination process is that the block generation node 310 has already generated the wrong block B1. The next node of) is used as a new block generation node 310-1 to generate a new block B2. However, such a process may be arbitrarily changed and used by a person skilled in the art, and a method of determining a new block generation node 310 may be determined by various methods.

새로운 블록 생성 노드(310-1)에서 생성된 블록(B2)은 다시 검증 노드(300)들로 전송되며, 상술한 검증 단계를 다시 수행한다. 이러한 과정을 반복하여 결국에는 정상 블록을 생성하도록 한다. The block B2 generated at the new block generation node 310-1 is transmitted to the verification nodes 300 again, and performs the above-described verification step again. This process is repeated to eventually generate a normal block.

재합의 과정을 거친 정상 블록에는 도 7과 같이, 블록 생성 노드의 일련번호와 합의 횟수에 관한 정보를 포함하고 있으며, 임의로 다른 노드에서 블록을 생성하여 비정상 블록을 전송하더라도 상기 정보들을 통해 비정상 블록을 구분할 수 있다. As shown in FIG. 7, the normal block that has undergone the recombination process includes information on the serial number of the block generation node and the number of times of consensus, and even if a random block is generated by another node and an abnormal block is transmitted, the abnormal block is transmitted through the information. Can be distinguished.

생성된 블록에 대하여 검증 단계 및 재합의 과정을 거친 후, 최종적으로 정상 블록으로 판정된 블록은 검증 노드(300)들을 통해 다른 노드들로 전송된다. After the verification step and the reassembly process for the generated block, the block finally determined to be a normal block is transmitted to the other nodes through the verification node (300).

상술한 단계들은 반복하여 실행되며, 이에 따라 생성된 후속 블록들은 계속하여 정상 블록의 뒤에 연결되어 체인 구조를 형성하게 된다. The above-described steps are executed repeatedly, so that subsequent blocks generated are subsequently connected behind the normal block to form a chain structure.

전술된 실시예들은 모든 면에서 예시적인 것이며 한정적인 것이 아닌 것으로 이해되어야 하며, 본 발명의 범위는 전술된 상세한 설명보다는 후술될 특허청구범위에 의해 나타내어질 것이다. 그리고 이 특허청구범위의 의미 및 범위는 물론, 그 등가개념으로부터 도출되는 모든 변경 및 변형 가능한 형태가 본 발명의 범위에 포함되는 것으로 해석되어야 한다.It is to be understood that the foregoing embodiments are illustrative in all respects and not restrictive, the scope of the invention being indicated by the claims that follow, rather than the foregoing detailed description. And it is to be construed that all changes and modifications derived from the equivalent concept as well as the meaning and scope of the claims are included in the scope of the present invention.

100: 분산형 네트워크
110~170: 노드들
200: 블록 체인
210, 220, 230: 블록
300: 검증 노드
310: 블록 생성 노드
320: 일반 노드
100: distributed network
110-170: nodes
200: blockchain
210, 220, 230: block
300: verification node
310: block generation node
320: general node

Claims (11)

블록 체인 시스템에 적용되는 무작위 지분증명 합의 알고리즘을 포함하는 블록 생성 및 검증 방법으로서,
전체 노드에 대하여 난수 값을 발생시켜 상기 난수 값을 기초로 하여 합의 메커니즘에 참여할 복수 개의 검증 노드를 선정하는 검증 노드 선정 단계;
상기 선정된 복수 개의 검증 노드는 각각, 상기 선정된 복수 개의 검증 노드의 트랜잭션 정보를 모두 제공받아 저장하고 상기 트랜잭션 정보들을 비교하는 트랜잭션 정보 비교 단계;
상기 선정된 복수 개의 검증 노드 중 블록 생성 노드로 지정된 하나의 노드에서 상기 트랜잭션 정보들의 비교 결과에 따라 정상 트랜잭션 정보로 결정된 데이터를 포함하는 블록을 생성하는 블록 생성 단계;
상기 생성된 블록을 상기 선정된 복수 개의 검증 노드로 전송하여 각각의 노드가 상기 생성된 블록의 정상 여부를 검증하는 블록 검증 단계; 및
상기 선정된 복수 개의 검증 노드는 상기 검증의 결과를 서로 공유하고, 상기 검증의 결과에 따라 상기 생성된 블록을 다른 노드로 전송하거나, 상기 생성된 블록을 파기하고 상기 선정된 복수 개의 검증 노드 사이에서 재합의 과정을 수행하는 블록 처리 단계;를 포함하는 블록 체인 시스템에서의 블록 생성 및 검증 방법.
A block generation and verification method comprising a randomized stakeholder agreement algorithm applied to a blockchain system,
A verification node selecting step of generating a random number value for all nodes and selecting a plurality of verification nodes to participate in a consensus mechanism based on the random number value;
A transaction information comparing step of each of the selected plurality of verification nodes, receiving and storing all the transaction information of the selected plurality of verification nodes and comparing the transaction information;
A block generation step of generating a block including data determined as normal transaction information according to a comparison result of the transaction information at one node designated as a block generation node among the selected plurality of verification nodes;
A block verification step of transmitting the generated block to the selected plurality of verification nodes, wherein each node verifies whether the generated block is normal; And
The selected plurality of verification nodes share the results of the verification with each other, and transmit the generated block to another node according to the verification result, or discard the generated block and among the selected plurality of verification nodes. And a block processing step of performing a reconstruction process.
제 1항에 있어서,
상기 검증 노드 선정 단계는, 상기 전체 노드의 수에 대한 기 정해진 비율에 따라 상기 복수 개의 검증 노드를 선정하거나, 상기 전체 노드 중 기 정해진 일정한 수만큼 상기 복수 개의 검증 노드를 선정하는, 블록 체인 시스템에서의 블록 생성 및 검증 방법.
The method of claim 1,
The selecting a verification node may include selecting the plurality of verification nodes according to a predetermined ratio with respect to the total number of nodes, or selecting the plurality of verification nodes by a predetermined constant number of all nodes. Block generation and verification methods.
제 1항에 있어서,
상기 검증 노드 선정 단계는, 상기 전체 노드에서 시간에 따라 동일하게 생성되는 상기 난수 값을 이용하여 상기 복수 개의 검증 노드를 선정하는, 블록 체인 시스템에서의 블록 생성 및 검증 방법.
The method of claim 1,
In the selecting of the verification node, the plurality of verification nodes are selected using the random number values generated equally according to time in all the nodes.
제 3항에 있어서,
상기 난수 값은 상기 전체 노드에서 상기 복수 개의 검증 노드를 무작위로 선정하기 위해 이용되며, 상기 난수 값을 발생시키기 위한 난수 발생 함수에 관한 알고리즘은 비공개된, 블록 체인 시스템에서의 블록 생성 및 검증 방법.
The method of claim 3, wherein
Wherein the random number value is used to randomly select the plurality of verification nodes in the entire node, and an algorithm relating to a random number generation function for generating the random number value is private.
제 1항에 있어서,
상기 트랜잭션 정보 비교 단계는, 상기 선정된 복수 개의 검증 노드는 각각 가장 높은 비율을 갖는 트랜잭션 정보를 당해 노드에 저장하는, 블록 체인 시스템에서의 블록 생성 및 검증 방법.
The method of claim 1,
In the comparing of the transaction information, the selected plurality of verification nodes each store transaction information having the highest ratio in the node.
제 1항에 있어서,
상기 블록 생성 단계는, 상기 하나의 노드는 상기 선정된 복수 개의 검증 노드 중 가장 먼저 선정된 노드로 결정되어 상기 블록 생성 노드로 지정되는, 블록 체인 시스템에서의 블록 생성 및 검증 방법.
The method of claim 1,
In the block generating step, the one node is determined as the first selected node among the selected plurality of verification nodes and designated as the block generation node.
제 1항에 있어서,
상기 블록 검증 단계는, 상기 선정된 복수 개의 검증 노드 각각은 상기 생성된 블록을 제공받아 당해 노드에서 판정한 가장 높은 비율을 갖는 트랜잭션 정보와 비교하여 상기 생성된 블록이 정상 블록인지 검증하는, 블록 체인 시스템에서의 블록 생성 및 검증 방법.
The method of claim 1,
In the block verifying step, each of the selected plurality of verification nodes receives the generated block and compares the transaction information with the highest ratio determined by the node to verify whether the generated block is a normal block. How to create and verify blocks in the system.
제 7항에 있어서,
상기 블록 처리 단계는, 상기 선정된 복수 개의 검증 노드에서 상기 검증의 결과를 공유하고, 상기 생성된 블록을 정상 블록으로 판정한 검증 노드의 수가 과반수 이상인 경우 상기 생성된 블록을 다른 노드로 전송하는, 블록 체인 시스템에서의 블록 생성 및 검증 방법.
The method of claim 7, wherein
The block processing step may include sharing the results of the verification in the plurality of selected verification nodes, and transmitting the generated blocks to other nodes when the number of verification nodes that determine the generated blocks as normal blocks is more than half. Block generation and verification method in blockchain system.
제 7항에 있어서,
상기 블록 처리 단계는, 상기 선정된 복수 개의 검증 노드에서 상기 검증의 결과를 공유하고, 상기 생성된 블록을 비정상 블록으로 판정한 검증 노드의 수가 과반수 이상인 경우 상기 선정된 복수 개의 검증 노드 사이에서 상기 재합의 과정을 수행하는, 블록 체인 시스템에서의 블록 생성 및 검증 방법.
The method of claim 7, wherein
The block processing step may include sharing the results of the verification in the plurality of selected verification nodes, and when the number of verification nodes that determine the generated block as an abnormal block is more than half of the selected plurality of verification nodes. Block generation and verification method in a blockchain system, performing a consensus process.
제 9항에 있어서,
상기 재합의 과정은, 상기 블록 생성 노드의 다음 노드에서 새로운 블록을 생성하고, 상기 새로운 블록을 상기 선정된 복수 개의 검증 노드로 전송하여 각각의 노드가 상기 새로운 블록의 정상 여부를 검증하는, 블록 체인 시스템에서의 블록 생성 및 검증 방법.
The method of claim 9,
The re-synthesis process may include generating a new block at a next node of the block generation node, and transmitting the new block to the selected plurality of verification nodes, wherein each node verifies whether the new block is normal. How to create and verify blocks in the system.
제 1항에 있어서,
상기 단계들을 반복 수행하여 후속 블록을 생성하고, 상기 후속 블록을 상기 선정된 복수 개의 검증 노드를 통해 다른 노드로 전송하는, 블록 체인 시스템에서의 블록 생성 및 검증 방법.
The method of claim 1,
Repeating the above steps to generate a subsequent block, and transmitting the subsequent block to another node through the selected plurality of verification nodes.
KR1020180012430A 2018-01-31 2018-01-31 The method for block generation and validation in block-chain system KR20190093012A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020180012430A KR20190093012A (en) 2018-01-31 2018-01-31 The method for block generation and validation in block-chain system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020180012430A KR20190093012A (en) 2018-01-31 2018-01-31 The method for block generation and validation in block-chain system

Publications (1)

Publication Number Publication Date
KR20190093012A true KR20190093012A (en) 2019-08-08

Family

ID=67613524

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180012430A KR20190093012A (en) 2018-01-31 2018-01-31 The method for block generation and validation in block-chain system

Country Status (1)

Country Link
KR (1) KR20190093012A (en)

Cited By (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110674139A (en) * 2019-09-25 2020-01-10 京东数字科技控股有限公司 Information processing method, system, resource management system, and storage medium
CN111415161A (en) * 2020-04-27 2020-07-14 财付通支付科技有限公司 Block chain-based data verification method and device and computer-readable storage medium
KR102141177B1 (en) * 2019-12-12 2020-08-04 주식회사 립페이 Method for providing dual blockchain structure based high-speed transaction processing service in middleware layer
KR102150210B1 (en) * 2019-09-16 2020-09-01 (주) 모로보기 Blockchain network
KR102151939B1 (en) * 2019-11-18 2020-09-04 주식회사 아이콘루프 Method for creating blockchain using patch transaction
KR20210054220A (en) * 2019-11-05 2021-05-13 주식회사 엘티포 Blockchain-based environmental pollution prevention facility history management system
KR20210061695A (en) 2019-11-20 2021-05-28 주식회사 피플카 Method for processing transaction of blockchain network
WO2021107408A1 (en) * 2019-11-26 2021-06-03 한양대학교 산학협력단 Leaderless blockchain consensus method and device therefor
KR20210080818A (en) * 2019-12-23 2021-07-01 서강대학교산학협력단 Blockchain network and method for preprocessing by using an agent in a blockchain network
CN113673996A (en) * 2021-08-06 2021-11-19 深圳前海微众银行股份有限公司 Block chain-based block node detection method and device
KR20220047132A (en) * 2020-10-08 2022-04-15 한국과학기술원 Method and System for Enhancing Trust of Supply Chain Using Blockchain Platform with Robust Data Model and Verification Mechanisms
KR102396631B1 (en) * 2020-11-12 2022-05-11 주식회사 티맥스엔터프라이즈 Blockchain system
GB2603589A (en) * 2020-12-08 2022-08-10 Ibm Consensus algorithm for distributed ledger technology
KR20230019648A (en) * 2021-08-02 2023-02-09 계명대학교 산학협력단 Blockchain consensus system and method to improve transaction processing speed
US11625723B2 (en) 2020-05-28 2023-04-11 Paypal, Inc. Risk assessment through device data using machine learning-based network
WO2023081040A1 (en) * 2021-11-03 2023-05-11 Paypal, Inc. Latency and computational performance on a blockchain
US11935056B2 (en) 2018-06-29 2024-03-19 Paypal, Inc. Systems and methods for automated transaction management

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20170137388A (en) 2016-06-03 2017-12-13 (주) 블록체인오에스 A method for ensuring integrity by using a blockchain technology

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20170137388A (en) 2016-06-03 2017-12-13 (주) 블록체인오에스 A method for ensuring integrity by using a blockchain technology

Cited By (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11935056B2 (en) 2018-06-29 2024-03-19 Paypal, Inc. Systems and methods for automated transaction management
KR102150210B1 (en) * 2019-09-16 2020-09-01 (주) 모로보기 Blockchain network
CN110674139B (en) * 2019-09-25 2022-07-05 京东科技控股股份有限公司 Information processing method, system, resource management system and storage medium
CN110674139A (en) * 2019-09-25 2020-01-10 京东数字科技控股有限公司 Information processing method, system, resource management system, and storage medium
KR20210054220A (en) * 2019-11-05 2021-05-13 주식회사 엘티포 Blockchain-based environmental pollution prevention facility history management system
KR102151939B1 (en) * 2019-11-18 2020-09-04 주식회사 아이콘루프 Method for creating blockchain using patch transaction
WO2021101040A1 (en) * 2019-11-18 2021-05-27 주식회사 아이콘루프 Method for generating blockchain by using patch transaction
KR20210061695A (en) 2019-11-20 2021-05-28 주식회사 피플카 Method for processing transaction of blockchain network
WO2021107408A1 (en) * 2019-11-26 2021-06-03 한양대학교 산학협력단 Leaderless blockchain consensus method and device therefor
KR102141177B1 (en) * 2019-12-12 2020-08-04 주식회사 립페이 Method for providing dual blockchain structure based high-speed transaction processing service in middleware layer
KR20210080818A (en) * 2019-12-23 2021-07-01 서강대학교산학협력단 Blockchain network and method for preprocessing by using an agent in a blockchain network
CN111415161B (en) * 2020-04-27 2024-03-19 财付通支付科技有限公司 Block chain-based data verification method and device and computer readable storage medium
CN111415161A (en) * 2020-04-27 2020-07-14 财付通支付科技有限公司 Block chain-based data verification method and device and computer-readable storage medium
US11625723B2 (en) 2020-05-28 2023-04-11 Paypal, Inc. Risk assessment through device data using machine learning-based network
KR20220047132A (en) * 2020-10-08 2022-04-15 한국과학기술원 Method and System for Enhancing Trust of Supply Chain Using Blockchain Platform with Robust Data Model and Verification Mechanisms
KR102396631B1 (en) * 2020-11-12 2022-05-11 주식회사 티맥스엔터프라이즈 Blockchain system
US11683173B2 (en) 2020-12-08 2023-06-20 International Business Machines Corporation Consensus algorithm for distributed ledger technology
GB2603589A (en) * 2020-12-08 2022-08-10 Ibm Consensus algorithm for distributed ledger technology
KR20230019648A (en) * 2021-08-02 2023-02-09 계명대학교 산학협력단 Blockchain consensus system and method to improve transaction processing speed
CN113673996A (en) * 2021-08-06 2021-11-19 深圳前海微众银行股份有限公司 Block chain-based block node detection method and device
WO2023081040A1 (en) * 2021-11-03 2023-05-11 Paypal, Inc. Latency and computational performance on a blockchain

Similar Documents

Publication Publication Date Title
KR20190093012A (en) The method for block generation and validation in block-chain system
RU2719423C1 (en) Information protection system and method
RU2735439C2 (en) System and method for protecting information
Chalaemwongwan et al. Notice of Violation of IEEE Publication Principles: State of the art and challenges facing consensus protocols on blockchain
US10892888B2 (en) System and method for information protection
Miraz et al. Application of blockchain in booking and registration systems of securities exchanges
KR102128210B1 (en) System and method for information protection
KR102050087B1 (en) The block-chain system including POPS(Proof of Power specification and Stake) consensus algorithm and block generation method in the block-chain system
TW202020711A (en) System and method for information protection
WO2018153486A1 (en) Method for signing a new block in a decentralized blockchain consensus network
KR20200066259A (en) System and method for information protection
US20200204338A1 (en) Securing public key cryptographic algorithms
US20200202349A1 (en) Multiple asset transactions
KR20190093011A (en) The block-chain system with enhanced security and the method of generating a data block using a double block-chain structure
He et al. A novel cryptocurrency wallet management scheme based on decentralized multi-constrained derangement
US20200202344A1 (en) Private asset transactions
JP6911231B1 (en) Reliability verification system for digital asset data packets
Sakho et al. Privacy protection issues in blockchain technology
KR102366638B1 (en) Game client Proof of Attendance-based blockchain system and the block compensation consensus method using thereof
AU2019101581A4 (en) System and method for information protection
Maram Bitcoin generation using Blockchain technology
Zhang et al. Gemini-chain: A regulatable digital currency model based on blockchain
Guo Cypherium: a scalable and permissionless smart contract platform
KR102104750B1 (en) RSP Consensus Method for Blockchain
Mufleh Bitcoin Eclipse Attack-Statistic Analysis on Selfish Mining and Double-Spending Attack