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 PDFInfo
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/104—Peer-to-peer [P2P] networks
- H04L67/1044—Group management mechanisms
- H04L67/1053—Group management mechanisms with pre-configuration of logical or physical connections with a determined number of other peers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/104—Peer-to-peer [P2P] networks
- H04L67/1061—Peer-to-peer [P2P] networks using node-based peer discovery mechanisms
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE 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/00—Reducing energy consumption in communication networks
- Y02D30/50—Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate
Abstract
Description
본 발명은 블록 체인 시스템에서의 블록 생성 및 검증 방법에 관한 것이다. 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.
본 발명이 해결하고자 하는 기술적 과제는, 기존의 블록 체인 시스템에서 이용되는 합의 알고리즘에 비하여 처리 속도를 향상시키면서 합의(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
일반적으로 분산형 네트워크(100)는 블록 체인(block chain)이라 불리는 블록(block)의 연결 묶음 내에 모든 참여 노드에 공통으로 알려진 정보를 저장하고 참조할 수 있다. 상기 노드들(110-170)은 상호간 통신이 가능하며 블록 체인을 저장, 관리 및 전파를 담당하는 완전 노드(full node)와 단순하게 트랜잭션에만 참여할 수 있는 간이 노드(light node)로 구분될 수 있다. 본 명세서에서 별다른 설명 없이 노드에 대하여 언급되는 경우, 이는 분산형 네트워크에 참여하며 블록 체인을 생성, 저장 또는 검증하는 동작을 수행하는 완전 노드를 지칭하는 경우가 많으나, 이에 한정되는 것은 아니다. In general, the distributed
상기 블록 체인에 연결되어 있는 각 블록(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
도 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
상기 블록 체인(200)에 포함된 각 블록은 블록 헤더(211)와 블록 바디(213)를 포함하도록 구성될 수 있다. 상기 블록 헤더(211)는 각 블록들간의 연결 관계를 나타내기 위하여 이전 블록(220)의 해시 값을 포함할 수 있다. 상기 블록 체인(200)이 유효한지 검증하는 과정에서 상기 블록 헤더(211) 내의 연결 관계가 사용된다. 상기 블록 바디(213)는 상기 블록(210)에 저장되고 관리되는 데이터, 예를 들어 트랜잭션 리스트 또는 트랜잭션 체인을 포함할 수 있다.Each block included in the
도 3을 참조하면, 상기 블록 헤더(211)는 이전 블록의 해시(2112), 넌스(Nonce)(2114)를 포함할 수 있다. 또한, 상기 블록 헤더(211)는 블록 내의 트랜잭션 리스트의 헤더를 나타내는 루트(2115)를 포함할 수 있다.Referring to FIG. 3, the
전술된 바와 같이, 상기 블록 체인(200)은 연결된 하나 이상의 블록들을 포함할 수 있다. 상기 하나 이상의 블록들은 상기 블록 헤더(211) 내의 해시 값에 기초하여 연결된다. 상기 블록 헤더(211)에 포함된 이전 블록의 해시 값(2112)은 직전 블록(220)에 대한 해시 값으로서 직전 블록(220)에 포함된 현재 해시(2213)와 동일한 값이다. 상기 하나 이상의 블록들은 각 블록 헤더 내의 이전 블록의 해시 값에 의하여 연쇄적으로 연결된다. 상기 분산형 네트워크에 참여하는 노드들은 상기 하나 이상의 블록들에 포함된 이전 블록의 해시 값에 기반하여 블록의 유효성을 검증하므로 악의적인 단일 노드가 이미 생성된 블록의 내용을 위조 또는 변조하는 행위가 불가능하다.As described above, the
상기 블록 바디(213)는 트랜잭션 리스트(2131)를 포함할 수 있다. 상기 트랜잭션 리스트(2131)는 블록 체인 기반의 거래의 목록이다. 예를 들면, 상기 트랜잭션 리스트(2131)는 상기 블록 체인 기반의 금융 시스템에서 이루어진 금융 거래에 대한 기록을 포함할 수 있다. 상기 트랜잭션 리스트(2131)는 트리(tree) 형태로 표현될 수 있으며, 예를 들어, 사용자 A가 사용자 B에게 전송한 금액을 목록 형태로 기록하며, 블록 내의 저장 길이는 현재 블록에 포함된 트랜잭션의 수에 기초하여 증감될 수 있다.The
그리고, 블록(210)은 블록 헤더(211)와 블록 바디(213)에 포함된 정보 이외의 기타 정보(2116)를 포함할 수 있다. The
분산형 네트워크에 참여하는 노드들은 동일한 블록 체인을 가지며, 블록에는 동일한 트랜잭션이 저장된다. 트랜잭션 목록이 포함된 블록이 네트워크에 공유되므로 모든 참여자가 검증할 수 있다. 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
검증 노드(300)는 본 발명에 따른 무작위 지분증명(RPoS) 합의 메커니즘에 참여할 복수 개의 검증 노드를 의미한다. 검증 노드(300)는 전체 노드에 대하여 전체 노드의 수에 대한 기 정해진 비율에 따라 복수 개의 검증 노드를 선정하거나, 전체 노드 중 기 정해진 일정한 수만큼 복수 개의 검증 노드를 선정할 수 있다. The
검증 노드(300)를 결정하기 위하여, 전체 노드에서 시간에 따라 동일하게 생성되는 난수 값을 이용하여 복수 개의 검증 노드(300)를 결정할 수 있는데, 이러한 난수 값을 발생시키는 난수 발생 함수에 관한 알고리즘은 비공개로 할 수 있다. In order to determine the
블록 생성 노드(310)는 검증 노드(300)들 중에서 지정된 하나의 노드로서, 트랜잭션 정보들의 비교 결과에 따라 정상 트랜잭션 정보로 결정된 데이터를 포함하는 블록을 생성하는 역할을 한다. 즉, 블록 생성 노드(310)는 블록 체인을 구성하는 개별 블록을 생성할 권한이 있는 노드를 의미한다. The
구체적으로, 합의된 거래 내역 즉, 합의된 트랜잭션 정보에 대해 매 블록 생성 시간때마다 블록 생성 노드(310)에서 블록을 생성하는데, 이러한 블록 생성 노드(310)는 무작위 방식에 의해 결정된다. 무작위 방식으로 블록 생성 노드(310)를 결정하기 위해 각각의 노드들은 난수 값이 할당되며, 각각의 노드들에 할당된 난수 값은 모든 노드들에서 서로 동일한 값을 갖게 된다(특정 시간에 모든 노드들에서 동시에 난수 값이 발생한 경우). Specifically, the
블록 생성 노드(310)는 자신이 선정한 거래 내역 즉, 트랜잭션 정보를 포함하도록 블록을 생성한다. 예를 들어, 블록 생성 노드(310)를 결정함에 있어서 상기 난수 값을 이용하며, "검증 노드(300) 중에서 가장 먼저 선정된 노드를 블록 생성 노드(310)로 한다"는 등의 방식을 미리 설정하여, 검증 노드(300)들 중에서 블록 생성 노드(310)를 정할 수 있다. 블록 생성 노드(310)를 결정하는 방식은 모든 검증 노드(300)가 동일하게 알 수 있는 방식에 의하여 결정하면 된다. The
블록 생성 노드(310)에서 생성된 블록에 대해서는 검증 노드(300)들의 검증 과정을 거쳐 정상 블록으로 합의된 경우에만 다른 노드들로 전송되어 블록 체인 구조의 후속 블록이 되며, 합의된 정상 블록에 대해서만 체인을 계속하여 형성해 나간다. 본 발명에 따르면, 검증 노드(300)를 선정함에 있어서 난수 값을 이용하여 무작위 방식으로 대표성을 갖는 검증 노드(300)를 결정하며, 검증 노드(300)들 중에서도 하나의 블록 생성 노드(310)를 결정하는 것도 난수 값을 이용하여 무작위 방식으로 결정하는 것을 특징으로 한다. The block generated in the
일반 노드(320)는 일반 사용자의 PC일 수도 있고, 모바일 기기(예를 들어 스마트폰이나 노트북 또는 태블릿 PC)이거나, 사물인터넷(IoT: Internet of Things) 기능을 갖는 정보처리 기기일 수 있다.The
도 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
이러한 검증 노드(300)에 관한 결정 방식이 정해지면, 전체 노드에서 시간에 따라 동일하게 발생되는 난수 값에 의하여, 합의 메커니즘에 참여할 검증 노드(300)들을 결정한다. 본 발명에서는 난수 값을 이용하기 때문에 무작위 지분증명(Random PoS) 방식의 합의 알고리즘이 적용된다. Once the determination method for the
여기에서, 난수 값은 합의 메커니즘에 참여할 노드들을 무작위로 추출하기 위한 변수로서, 검증 노드(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
특정한 시간에 합의 알고리즘이 수행되어 선정되는 노드들의 내역은 전체 노드에서 똑같이 알고 있어야 하기 때문에, 전체 노드에서 특정 시간에 생성되는 난수 값은 완전히 일치해야 한다. 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
도 4 내지 도 7을 참조하면, 검증 노드(300)들은 각각, 검증 노드(300) 모두의 트랜잭션 정보들을 제공받으며, 이들을 저장하고 자신의 트랜잭션 정보와 제공받은 모든 트랜잭션 정보들을 비교하여 가장 높은 비율을 갖는 트랜잭션 정보를 자신의 노드에 저장해 둔다. 4 to 7, the
블록 생성 노드(310)는 검증 노드(300)에 관한 선정 과정에서 지정된 하나의 노드로서 결정되며, 위의 예시에서는 #1723 이라는 난수 값을 갖는 노드가 블록 생성 노드(310)로 결정될 수 있다. 블록 생성 노드(310)는 자신의 트랜잭션 정보와 다른 검증 노드(300)들로부터 제공받은 트랜잭션 정보들을 비교하여 가장 높은 비율을 갖는 트랜잭션 정보를 포함하도록 블록(B1)을 생성한다. The
블록 생성 노드(310)에서 생성된 블록(B1)에는 블록 생성 노드의 일련번호에 관한 정보와 합의 횟수에 관한 정보를 포함할 수 있다. 이는 어느 노드에서 블록이 생성되었는지를 알 수 있도록 하며, 블록 내의 정보가 위/변조 되었는지 여부도 알 수 있도록 한다. The block B1 generated by the
블록 생성 노드(310)에서 생성된 블록(B1)은 검증 노드(300)들로 전송되며, 각각의 검증 노드(300)에서는 블록(B1)이 정상 블록인지 여부를 검증한다. The block B1 generated at the
각각의 검증 노드(300)에서는 전송받은 블록(B1) 내의 트랜잭션 정보와 자신의 노드에 저장되어 있는 트랜잭션 정보(자신의 트랜잭션 정보와 제공받은 모든 트랜잭션 정보들을 비교하여 가장 높은 비율을 갖는 트랜잭션 정보로 판정하여 자신의 노드에 미리 저장해둔 정보)가 일치하는지 여부를 비교하여 블록(B1)이 정상 블록인지 판정한다. Each
각각의 검증 노드(300)는 검증 결과를 다시 다른 검증 노드(300)들에게 전송하며, 취합된 검증 결과에 따라 후속 절차가 진행된다. 각각의 검증 노드(300)에서 검증된 결과를 서로 공유하며, 검증 결과가 "블록(B1)에 저장된 트랜잭션 정보는 자신의 노드에 저장된 트랜잭션 정보와 일치하여 블록(B1)은 정상 블록이다"라는 의견이 과반수 이상인 경우에는 블록 생성 노드(310)에서 생성된 블록(B1)을 다른 노드들로 전송한다. Each
그러나, 검증 결과가 "블록(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
재합의 과정에서 블록 생성 노드(310)의 다음 노드를 새로운 블록 생성 노드(310-1)로 결정하는 이유는 블록 생성 노드(310)는 이미 잘못된 블록(B1)을 생성하였기 때문에 블록 생성 노드(310)의 다음 노드를 새로운 블록 생성 노드(310-1)로 하여 새로운 블록(B2)을 생성하도록 한다. 다만, 이러한 과정은 통상의 기술자가 임의로 변경하여 사용할 수 있으며, 새로운 블록 생성 노드(310)를 결정하는 방식은 다양한 방식에 의하여 결정될 수 있다. The reason for determining the next node of the
새로운 블록 생성 노드(310-1)에서 생성된 블록(B2)은 다시 검증 노드(300)들로 전송되며, 상술한 검증 단계를 다시 수행한다. 이러한 과정을 반복하여 결국에는 정상 블록을 생성하도록 한다. The block B2 generated at the new block generation node 310-1 is transmitted to the
재합의 과정을 거친 정상 블록에는 도 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.
상기 검증 노드 선정 단계는, 상기 전체 노드의 수에 대한 기 정해진 비율에 따라 상기 복수 개의 검증 노드를 선정하거나, 상기 전체 노드 중 기 정해진 일정한 수만큼 상기 복수 개의 검증 노드를 선정하는, 블록 체인 시스템에서의 블록 생성 및 검증 방법. 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.
상기 검증 노드 선정 단계는, 상기 전체 노드에서 시간에 따라 동일하게 생성되는 상기 난수 값을 이용하여 상기 복수 개의 검증 노드를 선정하는, 블록 체인 시스템에서의 블록 생성 및 검증 방법. 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.
상기 난수 값은 상기 전체 노드에서 상기 복수 개의 검증 노드를 무작위로 선정하기 위해 이용되며, 상기 난수 값을 발생시키기 위한 난수 발생 함수에 관한 알고리즘은 비공개된, 블록 체인 시스템에서의 블록 생성 및 검증 방법. 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.
상기 트랜잭션 정보 비교 단계는, 상기 선정된 복수 개의 검증 노드는 각각 가장 높은 비율을 갖는 트랜잭션 정보를 당해 노드에 저장하는, 블록 체인 시스템에서의 블록 생성 및 검증 방법. 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.
상기 블록 생성 단계는, 상기 하나의 노드는 상기 선정된 복수 개의 검증 노드 중 가장 먼저 선정된 노드로 결정되어 상기 블록 생성 노드로 지정되는, 블록 체인 시스템에서의 블록 생성 및 검증 방법. 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.
상기 블록 검증 단계는, 상기 선정된 복수 개의 검증 노드 각각은 상기 생성된 블록을 제공받아 당해 노드에서 판정한 가장 높은 비율을 갖는 트랜잭션 정보와 비교하여 상기 생성된 블록이 정상 블록인지 검증하는, 블록 체인 시스템에서의 블록 생성 및 검증 방법. 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.
상기 블록 처리 단계는, 상기 선정된 복수 개의 검증 노드에서 상기 검증의 결과를 공유하고, 상기 생성된 블록을 정상 블록으로 판정한 검증 노드의 수가 과반수 이상인 경우 상기 생성된 블록을 다른 노드로 전송하는, 블록 체인 시스템에서의 블록 생성 및 검증 방법. 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.
상기 블록 처리 단계는, 상기 선정된 복수 개의 검증 노드에서 상기 검증의 결과를 공유하고, 상기 생성된 블록을 비정상 블록으로 판정한 검증 노드의 수가 과반수 이상인 경우 상기 선정된 복수 개의 검증 노드 사이에서 상기 재합의 과정을 수행하는, 블록 체인 시스템에서의 블록 생성 및 검증 방법. 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.
상기 재합의 과정은, 상기 블록 생성 노드의 다음 노드에서 새로운 블록을 생성하고, 상기 새로운 블록을 상기 선정된 복수 개의 검증 노드로 전송하여 각각의 노드가 상기 새로운 블록의 정상 여부를 검증하는, 블록 체인 시스템에서의 블록 생성 및 검증 방법. 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.
상기 단계들을 반복 수행하여 후속 블록을 생성하고, 상기 후속 블록을 상기 선정된 복수 개의 검증 노드를 통해 다른 노드로 전송하는, 블록 체인 시스템에서의 블록 생성 및 검증 방법.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.
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)
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)
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 |
-
2018
- 2018-01-31 KR KR1020180012430A patent/KR20190093012A/en unknown
Patent Citations (1)
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)
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 |