KR102175949B1 - Method and apparatus for generating block in blockchain system - Google Patents

Method and apparatus for generating block in blockchain system Download PDF

Info

Publication number
KR102175949B1
KR102175949B1 KR1020180158287A KR20180158287A KR102175949B1 KR 102175949 B1 KR102175949 B1 KR 102175949B1 KR 1020180158287 A KR1020180158287 A KR 1020180158287A KR 20180158287 A KR20180158287 A KR 20180158287A KR 102175949 B1 KR102175949 B1 KR 102175949B1
Authority
KR
South Korea
Prior art keywords
block
consensus
chain
general
nodes
Prior art date
Application number
KR1020180158287A
Other languages
Korean (ko)
Other versions
KR20200070776A (en
Inventor
김지수
신충용
김종규
배병철
Original Assignee
한국전자통신연구원
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 한국전자통신연구원 filed Critical 한국전자통신연구원
Priority to KR1020180158287A priority Critical patent/KR102175949B1/en
Publication of KR20200070776A publication Critical patent/KR20200070776A/en
Application granted granted Critical
Publication of KR102175949B1 publication Critical patent/KR102175949B1/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/1046Joining mechanisms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/12Applying verification of the received information
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • H04L67/1044Group management mechanisms 
    • H04L67/1053Group management mechanisms  with pre-configuration of logical or physical connections with a determined number of other peers
    • H04L67/1057Group management mechanisms  with pre-configuration of logical or physical connections with a determined number of other peers involving pre-assessment of levels of reputation of peers

Abstract

블록체인 시스템에서 대표자들의 비정상 행위를 방지하고 블록에 저장된 데이터의 완결성을 강화할 수 있는 블록체인 시스템의 블록 생성 기술이 개시된다. 이를 위해, 본 발명의 일 실시예에 따른 블록체인 시스템의 블록 생성 방법은 리더 노드에서 클라이언트 노드에서의 트랜잭션에 대응하여 제1 합의 블록을 생성하는 단계; 복수의 리플리카 노드에서 상기 제1 합의 블록을 검증하여, 상기 제1 합의 블록을 일반체인 블록으로 정의하여 체인에 추가하는 단계; 상기 체인에 일반체인 블록이 기 설정된 K 개가 추가될 때마다 상기 제1 합의 블록의 생성과 병렬적으로 상기 리더 노드에서 제2 합의 블록을 생성하는 단계; 및 복수의 일반 노드에서 상기 제2 합의 블록을 검증하여, 상기 제2 합의 블록을 확정체인 블록으로 정의하여 체인에 추가하는 단계를 포함한다.Block generation technology of the blockchain system that can prevent abnormal behavior of representatives in the blockchain system and strengthen the integrity of the data stored in the block is disclosed. To this end, a block generation method of a block chain system according to an embodiment of the present invention includes the steps of: generating a first consensus block in response to a transaction in a client node at a leader node; Verifying the first consensus block in a plurality of replica nodes, defining the first consensus block as a general chain block, and adding it to the chain; Generating a second consensus block in the leader node in parallel with the generation of the first consensus block whenever K preset blocks of a general chain are added to the chain; And verifying the second consensus block in a plurality of general nodes, defining the second consensus block as a definite chain block, and adding it to the chain.

Description

블록체인 시스템의 블록 생성 방법 및 장치{METHOD AND APPARATUS FOR GENERATING BLOCK IN BLOCKCHAIN SYSTEM}Block generation method and device of the blockchain system {METHOD AND APPARATUS FOR GENERATING BLOCK IN BLOCKCHAIN SYSTEM}

본 발명은 블록체인 시스템의 블록 생성 방법 및 장치에 관한 것으로, 특히 블록체인 시스템에서 대표자들의 비정상 행위를 방지하고 블록에 저장된 데이터의 완결성을 강화할 수 있는 블록 생성 방법 및 장치에 관한 것이다.The present invention relates to a block generation method and apparatus in a block chain system, and in particular, to a block generation method and apparatus capable of preventing abnormal behavior of representatives in a block chain system and enhancing the integrity of data stored in a block.

블록체인은 참여노드의 구성에 따라 퍼블릭(public) 블록체인과 프라이빗(private) 블록체인, 컨소시움(consortium) 블록체인으로 나뉜다. 퍼블릭 블록체인은 익명의 노드(anonymous node)가 자유롭게 참여할 수 있으며 관리자 개념이 없이 참여자 모두가 동등한 권한을 갖는 P2P(Peer-to-Peer) 네트워크로 구성된다. 프라이빗 블록체인은 사전에 인증된 노드(authenticated node)만 참여가 가능하며 노드 별로 관리자(supervisor), 참여자(participant)와 같은 서로 다른 권한(authority)을 가질 수 있다. 컨소시움 블록체인은 프라이빗 블록체인과 마찬가지로 사전에 승인된 노드만 참여가 가능하지만 퍼블릭 블록체인과 같이 참여노드 간 동등한 권한을 갖는 특징이 있다. Blockchain is divided into public blockchain, private blockchain, and consortium blockchain according to the composition of participating nodes. The public blockchain consists of a peer-to-peer (P2P) network in which anonymous nodes can freely participate and all participants have equal rights without the concept of an administrator. In the private blockchain, only pre-authenticated nodes can participate, and each node can have different authority, such as supervisor and participant. Like the private blockchain, the consortium blockchain allows only pre-approved nodes to participate, but like the public blockchain, it has the characteristic of having equal authority between participating nodes.

퍼블릭 블록체인은 참여노드가 유동적으로 변화하기 때문에 전체 합의가 불가능하여 작업증명(PoW: Proof-of-Work) 및 지분증명(PoS: Proof-of-Stake)의 방식으로 블록생성을 위한 대표자(representative)를 선출하고 선출된 대표자는 블록을 생성하여 다른 참여노드에게 전파한다. 하지만 이러한 작업은 참여노드 간 비동기로 진행되어 다수의 대표자가 동시에 선출되거나 생성된 블록의 전파 시 네트워크 지연 등으로 인해 블록체인의 분기(fork)가 발생한다. 발생한 분기를 하나의 체인으로 유지하기 위해 비트코인(Bitcoin)을 비롯한 대다수의 퍼블릭 블록체인 응용에서 최장 체인 법칙(longest chain rule)를 적용하여 분기 중 가장 긴 블록체인을 참여노드가 채택하고 채택된 체인에 저장된 트랜잭션(Tx, transaction)만이 데이터의 비가역성을 확률적으로 보장 받게 된다. Nakamoto에 따르면 하나의 거래가 블록에 포함되어 그 뒤로 5개의 블록이 이어진 6-컨펌(six-confirm)을 받을 경우에 해커의 컴퓨팅 파워가 전체 네트워크의 10%를 차지하는 경우로 가정하더라도 해킹으로 인해 거래가 변경될 확률이 0.1% 미만이 되어 비가역성을 보장함을 밝히고 있다. 하지만 이는 블록 데이터의 완전한 비가역성을 보장하지 않는다. 만약 이를 해결하기 위해 N번의 컨펌 이후 블록의 데이터를 바꿀 수 없는 규칙을 넣는다면, N-컨펌을 가진 분기된 체인(branch)이 2개 발생하여 longest chain rule에 의해 선택되는 상황에서 이를 처리할 수 없는 예외가 발생하게 된다. N의 크기를 조절하여 이러한 문제를 해결하고자 하여 N의 크기를 크게 하면 완결성 보장의 의미가 작아지고 N이 작으면 예외상황은 더 많이 발생할 수 있다. N의 수의 관계없이 블록길이가 N 보다 큰 분기된 체인이 생성될 확률은 '0'에 가까울 순 있어도 '0'이 아니기 때문에 N 컨펌 이후 블록의 수정을 제한하는 완결성 제공방식은 블록체인 시스템을 교착상태(deadlock)가 존재하는 시스템으로 만든다. 따라서 참여노드를 제어할 수 없는 퍼블릭 블록체인에서는 대부분 데이터의 완결성을 제공하지 않는다. 하지만 그럼에도 퍼블릭 블록체인에서 데이터 완결성에 대한 문제는 거의 일어나지 않는다. 그 이유는 작업증명을 통한 합의방법으로 악의적인 사용자가 블록체인 네트워크 내에 큰 지분의 컴퓨팅 파워를 확보하여도 지난 블록을 변경하여 재생성하는 것이 현실적으로 어렵게 설계되었다. 또한 퍼블릭 블록체인의 특성으로 인해 악의적인 사용자 또는 그룹이 블록체인 내 높은 컴퓨팅 파워를 확보하려면 많은 비용이 들기 때문에 공격비용 대비 얻을 수 있는 이득이 많지 않은 경제적 이유로 이와 같은 공격 시도를 하지 않는다. The public blockchain is a representative for block generation in the manner of Proof-of-Work (PoW) and Proof-of-Stake (PoS) because the participating nodes are fluidly changing, so total consensus is impossible. ) Is elected, and the elected representative creates a block and spreads it to other participating nodes. However, such work is performed asynchronously between participating nodes, and a fork of the blockchain occurs due to network delays when multiple representatives are simultaneously elected or generated blocks are propagated. The longest chain rule is applied in most public blockchain applications, including Bitcoin, in order to maintain the branch that has occurred as a single chain, and the longest blockchain among the branches is adopted and adopted by the participating node. Only the transactions (Tx, transaction) stored in the data are guaranteed to be irreversible. According to Nakamoto, if one transaction is included in a block and a six-confirm is received, followed by five blocks, even if it is assumed that the computing power of the hacker occupies 10% of the entire network, the transaction is changed due to hacking. It is revealed that the probability of the occurrence is less than 0.1%, ensuring irreversibility. However, this does not guarantee complete irreversibility of block data. In order to solve this problem, if a rule that cannot change the data of the block after N confirmations is inserted, two branched chains with N-confirmation occur, and this can be processed in a situation selected by the longest chain rule. No exception will be thrown. In order to solve this problem by adjusting the size of N, if the size of N is increased, the meaning of guaranteeing completeness decreases, and if the size of N is small, more exceptions may occur. Regardless of the number of N, the probability of creating a branched chain with a block length greater than N is not '0' even though it can be close to '0', so the method of providing a completeness limiting the modification of blocks after N confirmation is a blockchain system. Make a system with deadlock. Therefore, most of the data integrity is not provided in public blockchains that cannot control participating nodes. However, nonetheless, the problem of data integrity rarely occurs in the public blockchain. The reason is that it is a consensus method through proof-of-work, which was designed to make it practically difficult to change and recreate the last block even if a malicious user secures a large share of computing power in the blockchain network. In addition, due to the nature of public blockchains, it costs a lot for malicious users or groups to secure high computing power in the blockchain, so they do not attempt such an attack for economic reasons, where there is not much benefit to the attack cost.

프라이빗 블록체인과 컨소시움 블록체인에서는 전체 참여노드를 사전에 설정하여 네트워크 관리자 또는 참여자들이 서로 정보를 공유 할 수 있으므로 참여노드의 전체 합의가 가능하여 블록의 완결성을 보장할 수 있다. 프라이빗/컨소시움 블록체인에서 일반적으로 쓰이는 PBFT(Practical Byzantine Fault Tolerance)의 경우, 전체 노드 합의를 위해서 모든 노드가 블록정보를 브로드캐스트를 하므로 네트워크 트래픽과 지연이 증가하고 서명에 따른 프로세스 오버헤드가 증가한다. 이는 데이터 처리속도 감소로 이어지기 때문에 데이터 처리속도를 보완하기 위해 제안된 DBFT(Delegated Byzantine Fault Tolerance) 합의방법은 대표자를 선정하여 블록을 생성하지만 이는 전체 합의된 블록이 아니므로 완결성을 보장한다고 보기 어렵다. 사전에 대표자 선정 시 일반 참여노드가 대표자에게 자신의 합의 권한을 위임하는 절차를 통하여 전체 합의의 법적의미는 보장할 수 있지만 기술적으로 전체노드가 블록을 확인하여 서명한 것이 아니기 때문에 기술적인 데이터 완결성을 갖지 못한다. 또한 프라이빗/컨소시움 블록체인에서는 승인된 노드 간에 BFT(Byzantine Fault Tolerance) 계열의 합의 방법을 사용하여 참여노드의 2/3 이상이 합의하면 블록이 생성되고 퍼블릭 블록체인 대비 참여 노드 수가 적어 비교적 시빌 공격(sybil attack)과 같은 사이버공격에 취약할 수 있다. 특히 대표자에 의한 BFT 합의 방법은 합의에 참여하는 노드수가 제한적이기 때문에 대표자들 간의 악의적 합의 또는 해커의 공격에 의해 비정상적 블록을 생성하거나 일반 참여노드에게 잘못된 블록 정보를 전달 수 있다. 또한 PBFT 방식의 합의를 통해 생성된 블록은 대표자 중 리더의 서명만으로 블록이 보호되고 있기 때문에 리더의 서명이 탈취 당할 경우, 기존 블록의 변조도 가능할 수 있다. 따라서, 블록의 완결성을 보장하며, 데이터 처리 속도를 유지하기 위한 대표자 합의 방식에서 대표자의 합의 결과를 감사(audit)할 수 있는 방법이 필요하다. 이러한 문제를 해결하기 위해 COINSTACK과 같은 일부 프라이빗 블록체인 플랫폼의 경우 앵커링(anchoring) 이라는 기법을 제안하였다. 앵커링은 프라이빗 블록체인에서 소수의 노드가 블록을 생성하면서 주기적으로 중간 해쉬값을 퍼블릭 블록체인에 트랜잭션으로 정보를 등록하여 기존 프라이빗 블록의 변조를 감지할 수 있도록 하는 것이다. 하지만 이러한 방법은 항상 퍼블릭 블록체인과 연결이 가능한 경우에 동작이 가능하다. 만약 폐쇄망에서 프라이빗/컨소시움 블록체인을 사용한다면 퍼블릭 블록체인과 연결이 가능한 제3의 관리자 또는 노드가 필요하게 된다. 또한 퍼블릭 블록체인에 정보를 등록하는 수수료가 주기적으로 발생하게 되는 단점이 있다.In the private blockchain and the consortium blockchain, all participating nodes can be set in advance so that network administrators or participants can share information with each other, so that the entire consensus of the participating nodes is possible, thereby ensuring the integrity of the block. In the case of PBFT (Practical Byzantine Fault Tolerance), which is commonly used in private/consortium blockchains, all nodes broadcast block information for the consensus of all nodes, so network traffic and delay increase, and process overhead due to signature increases. . Since this leads to a decrease in data processing speed, the proposed DBFT (Delegated Byzantine Fault Tolerance) consensus method to compensate for the data processing speed creates a block by selecting a representative, but this is not a total consensus block, so it is difficult to say that it guarantees completeness . When selecting a representative in advance, the legal meaning of the entire agreement can be guaranteed through a procedure in which the general participating nodes delegate their consensus authority to the representative, but technical data integrity is ensured because the entire node did not check and sign the block technically. I can't have it. In addition, in the private/consortium blockchain, a block is created when two-thirds or more of the participating nodes agree using a consensus method of the BFT (Byzantine Fault Tolerance) series between authorized nodes. Sybil attack). In particular, since the BFT consensus method by representatives has a limited number of nodes participating in the consensus, abnormal blocks may be generated by malicious consensus between representatives or hacker attacks, or incorrect block information may be transmitted to general participating nodes. In addition, since blocks created through PBFT method consensus are protected by only the leader's signature among representatives, if the leader's signature is stolen, it may be possible to modulate the existing block. Therefore, there is a need for a method to audit the consensus result of the representative in the representative consensus method to ensure the block integrity and to maintain the data processing speed. In order to solve this problem, in the case of some private blockchain platforms such as COINSTACK, a technique called anchoring was proposed. Anchoring is to enable detection of tampering of existing private blocks by periodically registering intermediate hash values as transactions in the public blockchain while a few nodes create blocks in the private blockchain. However, this method works if it is always possible to connect to the public blockchain. If a private/consortium blockchain is used in a closed network, a third manager or node capable of connecting with the public blockchain is required. In addition, there is a disadvantage that the fee for registering information on the public blockchain is periodically incurred.

관련하여 한국공개특허 제2018-0014534호는 "블록체인 기반 트랜잭션 검증 시스템 및 그 방법"을 개시한다. In connection, Korean Patent Application Publication No. 2018-0014534 discloses a "blockchain-based transaction verification system and method thereof".

본 발명의 목적은 블록체인의 대표자 합의 방식에서 대표자의 행위를 감시하고, 데이터 완결성을 제공하여 블록에 저장된 데이터의 보안성을 높이는 것이다. An object of the present invention is to monitor the behavior of the representative in the representative consensus method of the block chain and to provide data integrity to increase the security of the data stored in the block.

그리고, 본 발명의 목적은 대표자 노드로 블록을 생성하여 일반 PBFT(Practical Byzantine Fault Tolerance) 대비 네트워크 트래픽을 줄이고 통신 지연을 줄임으로써 전체적인 처리 속도를 높이는 것이다. Further, an object of the present invention is to increase the overall processing speed by reducing network traffic and communication delay compared to general PBFT (Practical Byzantine Fault Tolerance) by generating a block as a representative node.

또한, 본 발명의 목적은 대표자 노드 합의를 통해 합의 속도 및 트랜잭션 처리 속도를 유지하며 유연한 노드 확장이 가능한 기술을 제공하는 것이다. In addition, an object of the present invention is to provide a technology capable of flexible node expansion while maintaining the consensus speed and transaction processing speed through representative node consensus.

상기한 목적을 달성하기 위한 본 발명에 따른 블록체인 시스템의 블록 생성 방법은 리더 노드에서 클라이언트 노드에서의 트랜잭션에 대응하여 제1 합의 블록을 생성하는 단계; 복수의 리플리카 노드에서 상기 제1 합의 블록을 검증하여, 상기 제1 합의 블록을 일반체인 블록으로 정의하여 체인에 추가하는 단계; 상기 체인에 일반체인 블록이 기 설정된 K 개가 추가될 때마다 상기 제1 합의 블록의 생성과 병렬적으로 상기 리더 노드에서 제2 합의 블록을 생성하는 단계; 및 복수의 일반 노드에서 상기 제2 합의 블록을 검증하여, 상기 제2 합의 블록을 확정체인 블록으로 정의하여 체인에 추가하는 단계를 포함한다.The block generation method of the block chain system according to the present invention for achieving the above object comprises the steps of: generating a first consensus block in response to a transaction in a client node at a leader node; Verifying the first consensus block in a plurality of replica nodes, defining the first consensus block as a general chain block, and adding it to the chain; Generating a second consensus block in the leader node in parallel with the generation of the first consensus block whenever K preset blocks of a general chain are added to the chain; And verifying the second consensus block in a plurality of general nodes, defining the second consensus block as a definite chain block, and adding it to the chain.

이 때, 상기 제1 합의 블록을 일반체인 블록으로 정의하여 체인에 추가하는 단계는, 상기 제1 합의 블록을 상기 리더 노드에서 상기 복수의 리플리카 노드로 전달하는 단계; 상기 복수의 리플리카 노드 각각이 상호간에 상기 리더 노드로부터 전달받은 상기 제1 합의 블록이 동일한지 검증하는 단계; 상기 검증하는 단계에서 기 설정된 특정 수치 이상의 동일성이 있는 것으로 판단되는 경우 상기 복수의 리플리카 노드 각각이 상기 제1 합의 블록을 체인에 추가하는 것에 대한 동의 여부를 확인하는 단계; 및 상기 동의 여부를 확인하는 단계에서 기 설정된 소정 수치 이상의 동의가 있는 경우 상기 제1 합의 블록을 상기 일반체인 블록으로 정의하여 체인에 추가하는 단계를 포함할 수 있다.In this case, the step of defining the first consensus block as a general chain block and adding it to the chain includes: transferring the first consensus block from the leader node to the plurality of replica nodes; Verifying whether the first consensus block transmitted from the leader node is the same between each of the plurality of replica nodes; Checking whether each of the plurality of replica nodes agrees to add the first consensus block to the chain when it is determined that there is an identity equal to or greater than a predetermined value in the verifying step; And defining the first consensus block as the general chain block and adding the first consensus block to the chain when there is consent equal to or greater than a predetermined value in the step of confirming the consent.

이 때, 상기 리더 노드 및 상기 복수의 리플리카 노드는 블록체인 시스템에서 기 정의된 복수의 대표자 노드에 포함될 수 있다.In this case, the leader node and the plurality of replica nodes may be included in a plurality of representative nodes predefined in the blockchain system.

이 때, 상기 제2 합의 블록을 확정체인 블록으로 정의하여 체인에 추가하는 단계는, 상기 제2 합의 블록을 상기 리더 노드에서 상기 복수의 일반 노드로 전달하는 단계; 상기 복수의 일반 노드 각각이 상기 제2 합의 블록을 서명으로 봉인하여 제2 합의검증 패킷으로 다른 일반 노드들에 전달하는 단계; 상기 복수의 일반 노드 각각에서 상기 제2 합의 블록과 수신한 상기 제2 합의검증 패킷의 동일성이 기 설정된 소정 수치를 넘는지 판단하는 단계; 및 상기 복수의 일반 노드 각각이 수신한 상기 제2 합의 블록과 상기 제2 합의검증 패킷의 동일성이 기 설정된 소정 수치를 넘는 경우, 상기 제2 합의 블록을 상기 확정체인 블록으로 정의하여 체인에 추가하는 단계를 포함할 수 있다.In this case, the step of defining the second consensus block as a definite chain block and adding it to the chain may include: transferring the second consensus block from the leader node to the plurality of general nodes; Sealing the second consensus block with a signature by each of the plurality of general nodes and transmitting the second consensus verification packet to other general nodes; Determining whether the identity of the second consensus block and the received second consensus verification packet at each of the plurality of general nodes exceeds a predetermined value; And when the identity of the second consensus block received by each of the plurality of general nodes and the second consensus verification packet exceeds a predetermined value, defining the second consensus block as the definite chain block and adding it to the chain. It may include steps.

이 때, 상기 기 설정된 소정 수치를 넘는지 판단하는 단계에서, 상기 복수의 일반 노드 각각이 상기 제2 합의 블록과 수신한 상기 제2 합의검증 패킷의 동일성이 기 설정된 소정 수치 이하인 것으로 판단된 경우 상기 제2 합의 블록을 폐기하고, 상기 체인에 일반체인 블록이 K의 2배수가 추가되었을 때 상기 리더 노드에서 제2 합의 블록을 생성하는 단계와 상기 제2 합의 블록을 확정체인 블록으로 정의하여 체인에 추가하는 단계를 반복할 수 있다.At this time, in the step of determining whether or not the predetermined value is exceeded, when it is determined that the identity of the second consensus block and the received second consensus verification packet by each of the plurality of general nodes is less than a preset predetermined value, the Discarding the second consensus block, generating a second consensus block in the leader node when the general chain block is added to the chain by a multiple of K, and defining the second consensus block as a definite chain block to the chain. You can repeat the steps to add.

이 때, 상기 복수의 일반 노드 각각이 수신한 상기 제2 합의검증 패킷의 수가 기 설정된 특정 수치를 넘는지 판단하는 단계를 더 포함하며, 상기 기 설정된 소정 수치를 넘는지 판단하는 단계는 상기 복수의 일반 노드 각각이 수신한 상기 제2 합의검증 패킷의 수가 기 설정된 특정 수치를 넘는 경우 진행될 수 있다.At this time, further comprising the step of determining whether the number of the second consensus verification packets received by each of the plurality of general nodes exceeds a predetermined value, and the step of determining whether the predetermined value exceeds the plurality of When the number of the second consensus verification packets received by each of the general nodes exceeds a predetermined value, the process may proceed.

이 때, 상기 복수의 일반 노드 각각이 상기 제2 합의 블록을 서명으로 봉인하여 제2 합의검증 패킷으로 다른 일반 노드들에 전달하는 단계는, 상기 복수의 일반 노드 각각이 상기 제2 합의 블록, 상기 체인에 추가된 일반체인 블록 및 상기 제2 합의 블록의 번호 중 적어도 하나를 검증한 검증 결과를 상기 제2 합의 블록과 함께 서명으로 봉인할 수 있다.In this case, the step of sealing the second consensus block with a signature by each of the plurality of general nodes and transmitting the second consensus verification packet to other general nodes, wherein each of the plurality of general nodes includes the second consensus block and the The verification result of verifying at least one of the general chain block added to the chain and the number of the second consensus block may be sealed with a signature together with the second consensus block.

또한, 상기한 목적을 달성하기 위한 본 발명에 따른 블록체인 시스템의 블록 생성 장치는 리더 노드에서 클라이언트 노드에서의 트랜잭션에 대응하여 제1 합의 블록을 생성하도록 제어하는 제1 합의 블록 생성부; 복수의 리플리카 노드에서 상기 제1 합의 블록을 검증하여, 상기 제1 합의 블록을 일반체인 블록으로 정의하여 체인에 추가하도록 제어하는 일반체인 블록 추가부; 상기 체인에 일반체인 블록이 기 설정된 K 개가 추가될 때마다 상기 제1 합의 블록의 생성과 병렬적으로 상기 리더 노드에서 제2 합의 블록을 생성하도록 제어하는 제2 합의 블록 생성부; 및 복수의 일반 노드에서 상기 제2 합의 블록을 검증하여, 상기 제2 합의 블록을 확정체인 블록으로 정의하여 체인에 추가하도록 제어하는 확정체인 블록 추가부를 포함한다.In addition, the block generating apparatus of the block chain system according to the present invention for achieving the above object comprises: a first consensus block generator for controlling the leader node to generate a first consensus block in response to a transaction in the client node; A general chain block addition unit that verifies the first consensus block in a plurality of replica nodes, defines the first consensus block as a general chain block, and controls to be added to the chain; A second consensus block generation unit controlling the leader node to generate a second consensus block in parallel with the generation of the first consensus block whenever K preset blocks of the general chain are added to the chain; And a definite chain block adding unit that verifies the second consensus block in a plurality of general nodes, defines the second consensus block as a definite chain block, and controls to be added to the chain.

이 때, 상기 일반체인 블록 추가부는, 상기 제1 합의 블록을 상기 리더 노드에서 상기 복수의 리플리카 노드로 전달하도록 제어하고, 상기 복수의 리플리카 노드 각각이 상호간에 상기 리더 노드로부터 전달받은 상기 제1 합의 블록이 동일한지 검증하도록 제어하며, 기 설정된 특정 수치 이상의 동일성이 있는 것으로 판단되는 경우 상기 복수의 리플리카 노드 각각이 상기 제1 합의 블록을 체인에 추가하는 것에 대한 동의 여부를 확인하도록 제어하고, 기 설정된 소정 수치 이상의 동의가 있는 경우 상기 제1 합의 블록을 상기 일반체인 블록으로 정의하여 체인에 추가하도록 제어할 수 있다.In this case, the general chain block addition unit controls to transfer the first consensus block from the leader node to the plurality of replica nodes, and each of the plurality of replica nodes mutually transmits the first consensus block to the plurality of replica nodes. 1 Controls to verify whether the consensus blocks are identical, and when it is determined that there is an identity equal to or greater than a predetermined value, each of the plurality of replica nodes is controlled to check whether they agree to add the first consensus block to the chain. If there is an agreement equal to or greater than a predetermined value, the first consensus block may be defined as the general chain block and controlled to be added to the chain.

이 때, 상기 리더 노드 및 상기 복수의 리플리카 노드는 블록체인 시스템에서 기 정의된 복수의 대표자 노드에 포함될 수 있다.In this case, the leader node and the plurality of replica nodes may be included in a plurality of representative nodes predefined in the blockchain system.

이 때, 상기 확정체인 블록 추가부는, 상기 제2 합의 블록을 상기 리더 노드에서 상기 복수의 일반 노드로 전달하도록 제어하고, 상기 복수의 일반 노드 각각이 상기 제2 합의 블록을 서명으로 봉인하여 제2 합의검증 패킷으로 다른 일반 노드들에 전달하도록 제어하며, 상기 복수의 일반 노드 각각에서 상기 제2 합의 블록과 수신한 상기 제2 합의검증 패킷의 동일성이 기 설정된 소정 수치를 넘는지 판단하도록 제어하고, 상기 복수의 일반 노드 각각이 수신한 상기 제2 합의 블록과 상기 제2 합의검증 패킷의 동일성이 기 설정된 소정 수치를 넘는 경우, 상기 제2 합의 블록을 상기 확정체인 블록으로 정의하여 체인에 추가하도록 제어할 수 있다.In this case, the block addition unit, which is the determinant, controls to transfer the second consensus block from the leader node to the plurality of general nodes, and each of the plurality of general nodes seals the second consensus block with a signature to provide a second Controls to transmit a consensus verification packet to other general nodes, and control to determine whether the identity of the second consensus block and the received second consensus verification packet in each of the plurality of general nodes exceeds a preset predetermined value, When the identity of the second consensus block and the second consensus verification packet received by each of the plurality of general nodes exceeds a preset predetermined value, the second consensus block is defined as the deterministic chain block and is controlled to be added to the chain. can do.

이 때, 상기 확정체인 블록 추가부는, 상기 복수의 일반 노드 각각이 상기 제2 합의 블록과 수신한 상기 제2 합의검증 패킷의 동일성이 기 설정된 소정 수치 이하인 것으로 판단된 경우 상기 제2 합의 블록을 폐기하고, 상기 체인에 일반체인 블록이 K의 2배수가 추가되었을 때 상기 리더 노드에서 제2 합의 블록을 생성하도록 제어하고, 상기 제2 합의 블록을 확정체인 블록으로 정의하여 체인에 추가하도록 제어할 수 있다.In this case, the block addition unit, which is the determinant, discards the second consensus block when it is determined that the identity of the second consensus block and the received second consensus verification packet by each of the plurality of general nodes is equal to or less than a predetermined value. And, when a general chain block is added to the chain by a multiple of K, the leader node controls to generate a second consensus block, and the second consensus block is defined as a definite chain block and added to the chain. have.

이 때, 상기 확정체인 블록 추가부는, 상기 복수의 일반 노드 각각이 수신한 상기 제2 합의검증 패킷의 수가 기 설정된 특정 수치를 넘는 경우, 상기 복수의 일반 노드 각각이 상기 제2 합의 블록과 수신한 상기 제2 합의검증 패킷의 동일성이 기 설정된 소정 수치를 넘는지 판단하도록 제어할 수 있다.In this case, when the number of the second consensus verification packets received by each of the plurality of general nodes exceeds a predetermined value, the block addition unit, which is the determinant chain, receives each of the plurality of general nodes with the second consensus block. It may be controlled to determine whether the identity of the second consensus verification packet exceeds a predetermined value.

이 때, 상기 확정체인 블록 추가부는, 상기 복수의 일반 노드 각각이 상기 제2 합의 블록, 상기 체인에 추가된 일반체인 블록 및 상기 제2 합의 블록의 번호 중 적어도 하나를 검증한 검증 결과를 상기 제2 합의 블록과 함께 서명으로 봉인하여 제2 합의검증 패킷으로 다른 일반 노드들에 전달하도록 제어할 수 있다.In this case, the definite chain block addition unit determines a verification result obtained by verifying at least one of the number of the second consensus block, the general chain block added to the chain, and the second consensus block by each of the plurality of general nodes. 2 It is possible to control the consensus block to be sealed with a signature and forwarded to other general nodes as a second consensus verification packet.

본 발명에 따르면, 블록체인의 대표자 합의 방식에서 대표자의 행위를 감시하고, 데이터 완결성을 제공하여 블록에 저장된 데이터의 보안성을 높일 수 있다. According to the present invention, it is possible to increase the security of the data stored in the block by monitoring the behavior of the representative in the representative consensus method of the block chain and providing data integrity.

그리고, 본 발명은 대표자 노드로 블록을 생성하여 일반 PBFT(Practical Byzantine Fault Tolerance) 대비 네트워크 트래픽을 줄이고 통신 지연을 줄임으로써 전체적인 처리 속도를 높일 수 있다. In addition, according to the present invention, a block is generated as a representative node to reduce network traffic and communication delay compared to a general PBFT (Practical Byzantine Fault Tolerance), thereby increasing the overall processing speed.

또한, 본 발명은 대표자 노드 합의를 통해 합의 속도 및 트랜잭션 처리 속도를 유지하며 유연한 노드 확장이 가능하다.In addition, the present invention maintains the speed of consensus and transaction processing through representative node consensus, and flexible node expansion is possible.

도 1은 본 발명의 일 실시예에 따른 블록체인 시스템의 블록 생성 방법을 나타낸 동작흐름도이다.
도 2는 본 발명의 일 실시예에 따른 블록체인 시스템의 블록 생성 장치를 나타낸 블록도이다.
도 3은 본 발명의 일 실시예에 따른 블록체인 시스템의 블록 생성 기술에 있어서 체인 즉, 일반 체인 및 확정 체인의 특징을 설명하기 표이다.
도 4는 본 발명의 일 실시예에 따른 블록체인 시스템의 블록 생성 방법에 있어서 일반체인 블록을 체인에 추가하는 방법을 설명하기 위한 도면이다.
도 5는 본 발명의 일 실시예에 따른 블록체인 시스템의 블록 생성 방법에 있어서 일반체인 블록과 확정체인 블록의 생성 관계를 설명하기 위한 도면이다.
도 6은 본 발명의 일 실시예에 따른 블록체인 시스템의 블록 생성 방법에 있어서 확정체인 블록을 체인에 추가하는 방법을 설명하기 위한 도면이다.
1 is an operation flow diagram showing a block generation method of a block chain system according to an embodiment of the present invention.
2 is a block diagram showing a block generation apparatus of a block chain system according to an embodiment of the present invention.
3 is a table for explaining characteristics of a chain, that is, a general chain and a deterministic chain in the block generation technology of the block chain system according to an embodiment of the present invention.
4 is a view for explaining a method of adding a general chain block to a chain in a block generation method of a block chain system according to an embodiment of the present invention.
FIG. 5 is a diagram for explaining a generation relationship between a general chain block and a definite chain block in a block generation method of a block chain system according to an embodiment of the present invention.
6 is a diagram for explaining a method of adding a definite chain block to a chain in a block generation method of a block chain system according to an embodiment of the present invention.

본 발명을 첨부된 도면을 참조하여 상세히 설명하면 다음과 같다. 여기서, 반복되는 설명, 본 발명의 요지를 불필요하게 흐릴 수 있는 공지 기능, 및 구성에 대한 상세한 설명은 생략한다. 본 발명의 실시형태는 당 업계에서 평균적인 지식을 가진 자에게 본 발명을 보다 완전하게 설명하기 위해서 제공되는 것이다. 따라서, 도면에서의 요소들의 형상 및 크기 등은 보다 명확한 설명을 위해 과장될 수 있다.The present invention will be described in detail with reference to the accompanying drawings as follows. Here, repeated descriptions, well-known functions that may unnecessarily obscure the subject matter of the present invention, and detailed descriptions of configurations are omitted. Embodiments of the present invention are provided to more completely explain the present invention to those with average knowledge in the art. Accordingly, the shapes and sizes of elements in the drawings may be exaggerated for clearer explanation.

이하, 본 발명에 따른 바람직한 실시예를 첨부된 도면을 참조하여 상세하게 설명한다.Hereinafter, preferred embodiments of the present invention will be described in detail with reference to the accompanying drawings.

도 1은 본 발명의 일 실시예에 따른 블록체인 시스템의 블록 생성 방법을 나타낸 동작흐름도이다.1 is an operation flow diagram showing a block generation method of a block chain system according to an embodiment of the present invention.

도 1을 참조하면, 본 발명의 일 실시예에 따른 블록체인 시스템의 블록 생성 방법은 먼저, 리더 노드에서 클라이언트 노드에서의 트랜잭션에 대응하여 제1 합의 블록을 생성한다(S110).Referring to FIG. 1, in a block generation method of a block chain system according to an embodiment of the present invention, first, a leader node generates a first consensus block in response to a transaction in a client node (S110).

이 후 복수의 리플리카 노드에서 상기 제1 합의 블록을 검증하여, 제1 합의 블록을 일반체인 블록으로 정의하여 체인에 추가한다(S120). 이 때, S120 단계는 보다 구체적으로 제1 합의 블록을 상기 리더 노드에서 상기 복수의 리플리카 노드로 전달하는 단계, 상기 복수의 리플리카 노드 각각이 상호간에 상기 리더 노드로부터 전달받은 상기 제1 합의 블록이 동일한지 검증하는 단계, 상기 검증하는 단계에서 기 설정된 특정 수치 이상의 동일성이 있는 것으로 판단되는 경우 상기 복수의 리플리카 노드 각각이 상기 제1 합의 블록을 체인에 추가하는 것에 대한 동의 여부를 확인하는 단계 및 상기 동의 여부를 확인하는 단계에서 기 설정된 소정 수치 이상의 동의가 있는 경우 상기 제1 합의 블록을 상기 일반체인 블록으로 정의하여 체인에 추가하는 단계를 포함할 수 있다. 이 때, 리더 노드 및 복수의 리플리카 노드는 블록체인 시스템에서 기 정의된 복수의 대표자 노드에 포함된 노드일 수 있다. Thereafter, by verifying the first consensus block in a plurality of replica nodes, the first consensus block is defined as a general chain block and added to the chain (S120). In this case, step S120 is more specifically a step of transferring a first consensus block from the leader node to the plurality of replica nodes, each of the plurality of replica nodes mutually receiving the first consensus block from the leader node Verifying whether or not is the same, confirming whether each of the plurality of replica nodes agrees to add the first consensus block to the chain when it is determined that there is an identity equal to or greater than a predetermined value in the verifying step And defining the first consensus block as the general chain block and adding the first consensus block to the chain when there is consent equal to or greater than a predetermined value in the step of confirming the consent. In this case, the leader node and the plurality of replica nodes may be nodes included in a plurality of representative nodes predefined in the blockchain system.

상기 체인에 일반체인 블록이 기 설정된 K 개가 추가될 때마다 상기 제1 합의 블록의 생성과 병렬적으로 상기 리더 노드에서 제2 합의 블록을 생성한다(S130).Whenever K preset blocks of general chains are added to the chain, a second consensus block is generated in the leader node in parallel with the generation of the first consensus block (S130).

이 후 복수의 일반 노드에서 상기 제2 합의 블록을 검증하여, 상기 제2 합의 블록을 확정체인 블록으로 정의하여 체인에 추가한다(S140). 이러한 S140 단계는 보다 구체적으로 제2 합의 블록을 리더 노드에서 복수의 일반 노드로 전달하는 단계, 복수의 일반 노드 각각이 제2 합의 블록을 서명으로 봉인하여 제2 합의검증 패킷으로 다른 일반 노드들에 전달하는 단계, 복수의 일반 노드 각각에서 제2 합의 블록과 수신한 제2 합의검증 패킷의 동일성이 기 설정된 소정 수치를 넘는지 판단하는 단계 및 복수의 일반 노드 각각이 수신한 제2 합의 블록과 제2 합의검증 패킷의 동일성이 기 설정된 소정 수치를 넘는 경우, 제2 합의 블록을 상기 확정체인 블록으로 정의하여 체인에 추가하는 단계를 포함할 수 있다. Thereafter, the second consensus block is verified by a plurality of general nodes, and the second consensus block is defined as a definite chain block and added to the chain (S140). This step S140 is more specifically a step of transferring the second consensus block from the leader node to a plurality of general nodes. Each of the plurality of general nodes seals the second consensus block with a signature to other general nodes as a second consensus verification packet. Delivering, determining whether the identity of the second consensus block and the received second consensus verification packet at each of the plurality of general nodes exceeds a predetermined value, and the second consensus block and the second consensus block received by each of the plurality of general nodes. 2 When the identity of the consensus verification packet exceeds a preset predetermined value, the second consensus block may be defined as the deterministic chain block and added to the chain.

그리고 S140 단계의 기 설정된 소정 수치를 넘는지 판단하는 단계에서, 상기 복수의 일반 노드 각각이 상기 제2 합의 블록과 수신한 상기 제2 합의검증 패킷의 동일성이 기 설정된 소정 수치 이하인 것으로 판단된 경우 상기 제2 합의 블록을 폐기한다. 이 후 체인에 일반체인 블록이 K의 2배수가 추가되었을 때 S130 단계 및 S140 단계를 다시 시작할 수 있다. And in the step of determining whether it exceeds a preset predetermined value in step S140, when it is determined that the identity of the second consensus block and the received second consensus verification packet by each of the plurality of general nodes is less than a preset predetermined value, the Discard the second consensus block. After that, when the general chain block has twice the amount of K added to the chain, steps S130 and S140 can be restarted.

또한, S140 단계는 복수의 일반 노드 각각이 수신한 상기 제2 합의검증 패킷의 수가 기 설정된 특정 수치를 넘는지 판단하는 단계를 더 포함하여 진행될 수 있다. 그리고 S140 단계의 기 설정된 소정 수치를 넘는지 판단하는 단계는 복수의 일반 노드 각각이 수신한 상기 제2 합의검증 패킷의 수가 기 설정된 특정 수치를 넘는 경우 진행될 수 있다.In addition, step S140 may further include determining whether the number of the second consensus verification packets received by each of the plurality of general nodes exceeds a predetermined value. In addition, the step of determining whether the predetermined value in step S140 is exceeded may be performed when the number of the second consensus verification packets received by each of the plurality of general nodes exceeds a predetermined value.

또한, S140 단계의 복수의 일반 노드 각각이 상기 제2 합의 블록을 서명으로 봉인하여 제2 합의검증 패킷으로 다른 일반 노드들에 전달하는 단계는, 복수의 일반 노드 각각이 상기 제2 합의 블록, 체인에 추가된 일반체인 블록 및 제2 합의 블록의 번호 중 적어도 하나를 검증한 검증 결과를 제2 합의 블록과 함께 서명으로 봉인하여 진행될 수 있다. In addition, the step of sealing the second consensus block with a signature by each of the plurality of general nodes in step S140 and transmitting the second consensus verification packet to the other general nodes, each of the plurality of general nodes is the second consensus block and the chain. The verification result of verifying at least one of the numbers of the general chain block and the second consensus block added to may be sealed with a signature together with the second consensus block.

도 2는 본 발명의 일 실시예에 따른 블록체인 시스템의 블록 생성 장치를 나타낸 블록도이다. 2 is a block diagram showing a block generation apparatus of a block chain system according to an embodiment of the present invention.

도 2를 참조하면, 본 발명의 일 실시예에 따른 블록체인 시스템의 블록 생성 장치(200)는 제1 합의 블록 생성부(210), 일반체인 블록 추가부(220), 제2 합의 블록 생성부(230) 및 확정체인 블록 추가부(240)를 포함한다. 2, the block generating device 200 of the block chain system according to an embodiment of the present invention includes a first consensus block generation unit 210, a general chain block addition unit 220, and a second consensus block generation unit. (230) and a block addition unit 240, which is a definite chain.

제1 합의 블록 생성부(210)는 리더 노드에서 클라이언트 노드에서의 트랜잭션에 대응하여 제1 합의 블록을 생성하도록 제어한다. The first consensus block generation unit 210 controls the leader node to generate a first consensus block in response to a transaction in the client node.

일반체인 블록 추가부(220)는 복수의 리플리카 노드에서 상기 제1 합의 블록을 검증하여, 제1 합의 블록을 일반체인 블록으로 정의하여 체인에 추가하도록 제어한다. 보다 구체적으로, 일반체인 블록 추가부(220)는 제1 합의 블록을 리더 노드에서 상기 복수의 리플리카 노드로 전달하도록 제어하고, 복수의 리플리카 노드 각각이 상호간에 리더 노드로부터 전달받은 제1 합의 블록이 동일한지 검증하도록 제어하며, 기 설정된 특정 수치 이상의 동일성이 있는 것으로 판단되는 경우 복수의 리플리카 노드 각각이 제1 합의 블록을 체인에 추가하는 것에 대한 동의 여부를 확인하도록 제어하고, 기 설정된 소정 수치 이상의 동의가 있는 경우 제1 합의 블록을 상기 일반체인 블록으로 정의하여 체인에 추가하도록 제어할 수 있다. 이 때, 리더 노드 및 복수의 리플리카 노드는 블록체인 시스템에서 기 정의된 복수의 대표자 노드에 포함될 수 있다.The general chain block addition unit 220 verifies the first consensus block in a plurality of replica nodes, defines the first consensus block as a general chain block, and controls to be added to the chain. More specifically, the general chain block addition unit 220 controls to transfer the first consensus block from the leader node to the plurality of replica nodes, and each of the plurality of replica nodes receives a first consensus from the leader node. Controls to verify that the blocks are identical, and when it is determined that there is an identity equal to or greater than a predetermined value, each of the plurality of replica nodes is controlled to check whether they agree to add the first consensus block to the chain, and a preset predetermined value If there is agreement more than a numerical value, the first consensus block can be defined as the general chain block and controlled to be added to the chain. In this case, the leader node and the plurality of replica nodes may be included in a plurality of representative nodes predefined in the blockchain system.

제2 합의 블록 생성부(230)는 체인에 일반체인 블록이 기 설정된 K 개가 추가될 때마다 제1 합의 블록의 생성과 병렬적으로 리더 노드에서 제2 합의 블록을 생성하도록 제어한다.The second consensus block generation unit 230 controls the leader node to generate a second consensus block in parallel with the generation of the first consensus block whenever K preset blocks of a general chain are added to the chain.

확정체인 블록 추가부(240)는 복수의 일반 노드에서 제2 합의 블록을 검증하여, 제2 합의 블록을 확정체인 블록으로 정의하여 체인에 추가하도록 제어한다. 보다 구체적으로, 확정체인 블록 추가부(240)는 제2 합의 블록을 리더 노드에서 상기 복수의 일반 노드로 전달하도록 제어하고, 복수의 일반 노드 각각이 제2 합의 블록을 서명으로 봉인하여 제2 합의검증 패킷으로 다른 일반 노드들에 전달하도록 제어하며, 복수의 일반 노드 각각에서 제2 합의 블록과 수신한 제2 합의검증 패킷의 동일성이 기 설정된 소정 수치를 넘는지 판단하도록 제어하고, 복수의 일반 노드 각각이 수신한 제2 합의 블록과 제2 합의검증 패킷의 동일성이 기 설정된 소정 수치를 넘는 경우, 제2 합의 블록을 상기 확정체인 블록으로 정의하여 체인에 추가하도록 제어할 수 있다. 또한, 확정체인 블록 추가부(240)는 복수의 일반 노드 각각이 상기 제2 합의 블록과 수신한 제2 합의검증 패킷의 동일성이 기 설정된 소정 수치 이하인 것으로 판단된 경우 제2 합의 블록을 폐기한다. 그리고, 확정체인 블록 추가부(240)는 체인에 일반체인 블록이 K의 2배수가 추가되었을 때 리더 노드에서 제2 합의 블록을 생성하도록 제어하고, 제2 합의 블록을 확정체인 블록으로 정의하여 체인에 추가하도록 제어할 수 있다. The definite chain block adding unit 240 verifies the second consensus block in a plurality of general nodes, defines the second consensus block as a definite chain block, and controls to add it to the chain. More specifically, the block addition unit 240 of the definite chain controls the transmission of the second consensus block from the leader node to the plurality of general nodes, and each of the plurality of general nodes seals the second consensus block with a signature to make a second consensus. Controls to transmit the verification packet to other general nodes, and controls to determine whether the identity of the second consensus block and the received second consensus verification packet from each of the plurality of general nodes exceeds a predetermined value, and a plurality of general nodes When the identity of the second consensus block and the second consensus verification packet received by each exceeds a predetermined value, a second consensus block can be defined as the definite chain block and controlled to be added to the chain. In addition, the block addition unit 240, which is a determinant, discards the second consensus block when it is determined that the identity of the second consensus block and the received second consensus verification packet by each of the plurality of general nodes is equal to or less than a predetermined value. In addition, the deterministic chain block addition unit 240 controls the leader node to generate a second consensus block when a general chain block is added to the chain by twice K, and defines the second consensus block as a definite chain block. Can be controlled to add to.

그리고, 확정체인 블록 추가부(240)는 복수의 일반 노드 각각이 수신한 제2 합의검증 패킷의 수가 기 설정된 특정 수치를 넘는 경우, 복수의 일반 노드 각각이 상기 제2 합의 블록과 수신한 제2 합의검증 패킷의 동일성이 기 설정된 소정 수치를 넘는지 판단하도록 제어할 수 있다. 또한, 확정체인 블록 추가부(240)는 복수의 일반 노드 각각이 제2 합의 블록, 체인에 추가된 일반체인 블록 및 제2 합의 블록의 번호 중 적어도 하나를 검증한 검증 결과를 제2 합의 블록과 함께 서명으로 봉인하여 제2 합의검증 패킷으로 다른 일반 노드들에 전달하도록 제어할 수 있다.In addition, when the number of second consensus verification packets received by each of the plurality of general nodes exceeds a predetermined value, the block addition unit 240 of the determinant chain includes the second consensus block and the received second consensus block. It can be controlled to determine whether the identity of the consensus verification packet exceeds a predetermined value. In addition, the deterministic chain block addition unit 240 determines the verification result obtained by verifying at least one of the number of the second consensus block, the general chain block added to the chain, and the second consensus block by each of the plurality of general nodes. It can be sealed together with a signature and controlled to be delivered to other general nodes as a second consensus verification packet.

도 3은 본 발명의 일 실시예에 따른 블록체인 시스템의 블록 생성 기술에 있어서 체인 즉, 일반 체인 및 확정 체인의 특징을 설명하기 표이다. 먼저, 본 발명의 일 실시예에 따른 블록체인 시스템의 블록 생성 기술에 있어서, 일반 체인(basic chain)은 참여 노드 중 대표자 노드를 선정하여 블록을 생성하고 합의한다. 그리고, 확정 체인(confirm chain)은 주기적으로 전체 참여노드 중 대표자를 제외한 모든 노드가 기존의 생성된 블록의 묶음에 대한 정보에 대해 블록을 생성하고 합의한다. 그리고 도 3을 참조하면, 체인에 포함되는 일반 체인과 확정 체인의 목적, 합의 주체, 포함 서명, 블록생성주기 및 블록 내용에 대한 요지를 확인할 수 있다.3 is a table for explaining characteristics of a chain, that is, a general chain and a deterministic chain in the block generation technology of the block chain system according to an embodiment of the present invention. First, in the block generation technology of a block chain system according to an embodiment of the present invention, a basic chain selects a representative node among participating nodes to generate a block and agree. And, in the confirm chain, all nodes except for the representative among all participating nodes periodically create and agree on the information on the bundle of the existing generated blocks. In addition, referring to FIG. 3, the purpose of the general chain and the definite chain included in the chain, the consensus subject, the inclusion signature, the block generation cycle, and the gist of the block content can be confirmed.

도 4는 본 발명의 일 실시예에 따른 블록체인 시스템의 블록 생성 방법에 있어서 일반체인 블록을 체인에 추가하는 방법을 설명하기 위한 도면이다. 4 is a view for explaining a method of adding a general chain block to a chain in a block generation method of a block chain system according to an embodiment of the present invention.

도 4를 참조하면, 본 발명의 일 실시예에 따른 블록체인 시스템의 블록 생성 방법은 기본적으로 PBFT 방식을 참고할 수 있다. 그리고 다음과 같은 예시로 일반체인 블록이 체인에 추가될 수 있다. 이 때, 합의 관련 노드는 리더(Leader), 리플리카(Replica), 클라이언트(Client)로 구성된다. Referring to FIG. 4, a block generation method of a block chain system according to an embodiment of the present invention may basically refer to a PBFT method. And a general chain block can be added to the chain as the following example. At this time, the consensus-related node is composed of a leader, a replica, and a client.

1. 클라이언트(C)로부터 트랜잭션(transaction)이 발행되고, 본 단계에서 리더(0)에서 전송된다. 1. A transaction is issued from the client (C) and transmitted from the reader (0) in this step.

2. pre-prepare: 리더 노드(Leader)는 블록을 생성하여 리플리카 노드 (Replica 1,2,3)에게 전파한다. 2. pre-prepare: The leader node creates a block and propagates it to replica nodes (Replica 1,2,3).

3. prepare: 각 구성원들은 리더 노드로부터 받은 블록이 서로 동일한지 확인한다.3. prepare: Each member checks whether the blocks received from the leader node are identical to each other.

4. commit: 블록이 대다수가 동일하다면(2/3 이상), 이 블록을 검증하고 체인 추가를 찬성할 것인지 확인한다.4. commit: If the majority of blocks are the same (more than 2/3), verify this block and see if it favors adding the chain.

5. reply: 대다수가(2/3 이상) 찬성했다면, 각각 블록을 체인에 추가하고 클라이언트에게 결과를 알린다. 만약, 대다수가 찬성한 것이 아니라면, 블록을 체인에 추가하지 않고 클라이언트에게 결과를 알린다.5. reply: If the majority (more than 2/3) agree, each add a block to the chain and notify the client of the result. If the majority are not in favor, the result is notified to the client without adding the block to the chain.

위와 같은 절차를 통해 L개의 대표자 노드는 일반체인의 블록을 합의하고 일반체인에 K 개의 블록이 생성될 때 마다 N개의 전체 노드는 전체합의를 통해 확정체인의 블록을 생성한다. 일반체인에서 클라이언트는 참여 노드 누구나 될 수 있고 리더와 리플리카 노드는 대표자노드만 될 수 있다. 대표자 노드는 참여 노드 중에서 선출되며 정기적으로 교체할 수 있다.Through the above procedure, L representative nodes agree on blocks of the general chain, and every time K blocks are created in the general chain, all N nodes create blocks of the definite chain through the total agreement. In the general chain, the client can be any participating node, and the leader and replica node can only be the representative node. Representative nodes are elected from among participating nodes and can be replaced regularly.

도 5는 본 발명의 일 실시예에 따른 블록체인 시스템의 블록 생성 방법에 있어서 일반체인 블록과 확정체인 블록의 생성 관계를 설명하기 위한 도면이다. FIG. 5 is a diagram for explaining a generation relationship between a general chain block and a definite chain block in a block generation method of a block chain system according to an embodiment of the present invention.

제안하는 합의 방법의 실시 예를 나타낸다(K=3). 일반체인은 블록체인 내에서 발생하는 트랜잭션을 기반으로 L개의 대표자 노드가 합의하여 생성한다. 'L 합의'로 표시된 블록에는 대표자 노드 중 리더 노드의 서명이 첨부된다. 도 5의 확정체인은 일반체인에서 K개 블록이 생성될 때마다 N개의 전체 노드가 합의하여 블록을 생성한다. An example of the proposed consensus method is shown (K=3). A general chain is created by consensus among L representative nodes based on transactions occurring within the blockchain. The signature of the leader node among the representative nodes is attached to the block marked'L consensus'. In the definite chain of Fig. 5, every time K blocks are generated in the general chain, all N nodes agree to create a block.

확정체인은 일반체인과 함께 병렬적으로 생성된다. 대표자노드에 의해 생성된 'L 합의' 블록은 일반노드에게 전달되고 일반 노드는 본 합의에 문제가 없는지 각자 검증하는 작업을 실시한다. 대표자 노드의 리더 노드는 일반체인에 K개의 블록이 생성되면 K+1 번째 'L 합의' 블록 생성시 'N 합의' 블록을 생성하여 모든 일반 노드에게 전달하여 일반 노드간 전체합의 과정을 실행한다. 전체합의가 완료되면 확정체인에 블록이 생성되고 이는 완결성을 갖는 블록이 된다.The fixed chain is created in parallel with the general chain. The'L consensus' block generated by the representative node is delivered to the general node, and the general node performs a task to verify that there is no problem with this agreement. When K blocks are created in the general chain, the leader node of the representative node creates a'N consensus' block when creating the K+1'L consensus' block and delivers it to all general nodes to execute the entire consensus process between general nodes. When the entire agreement is completed, a block is created in the definite chain, which becomes a block with completeness.

도 6은 본 발명의 일 실시예에 따른 블록체인 시스템의 블록 생성 방법에 있어서 확정체인 블록을 체인에 추가하는 방법을 설명하기 위한 도면이다. 6 is a diagram for explaining a method of adding a definite chain block to a chain in a block generation method of a block chain system according to an embodiment of the present invention.

도 6을 참조하면, 확정체인에 대한 자세한 합의 절차는 주 합의 단계(main stage)와 확장 합의 단계(extended stage)로 구성될 수 있다. 하나의 'N 합의' 블록을 만드는 과정을 한 라운드로 정의할 수 있다. 주 합의 단계는 다음과 같다.Referring to FIG. 6, a detailed consensus procedure for a definite chain may consist of a main stage and an extended stage. The process of creating one'N consensus' block can be defined as one round. The main consensus steps are as follows:

1. Prepare 단계에서 리더노드는 'N 합의' 블록을 생성하여 일반노드에게 전달한다. 2. 일반노드는 리더노드로부터 'N 합의' 블록을 받으면 각 노드가 소유한 정보를 이용하여 내용 검증한다. 이 때, 최근 'L 합의' 블록, 'N 합의' 블록, 'N 합의' 블록번호를 검증할 수 있다. 3. Commit 단계에서 일반노드는 검증결과와 함께 'N 합의' 블록을 자신의 서명으로 봉인한 'N 합의 검증' 패킷을 모든 일반노드에게 브로드캐스팅 한다. 1. In the prepare step, the leader node creates an'N consensus' block and delivers it to the general node. 2. When the general node receives the'N consensus' block from the leader node, it verifies the contents using the information owned by each node. At this time, the recent'L consensus' block,'N consensus' block, and'N consensus' block number can be verified. 3. In the Commit stage, the general node broadcasts the'N consensus verification' packet, which sealed the'N consensus' block with its signature, to all general nodes along with the verification result.

4. 각 일반노드는 'N 합의 검증' 패킷을 수신 후, 자신의 검증결과와 비교하여 다음의 행동을 한다. 이 때, 각 노드는 비동기로 운영되어, 최초 'N 합의 검증' 패킷 수신 후 일정 타임아웃 시간(T0)내 수신한 패킷을 대상으로 결과를 산출한다. 4. After receiving the'N consensus verification' packet, each general node performs the following actions by comparing it with its own verification result. At this time, each node operates asynchronously and calculates a result for the packet received within a predetermined timeout time (T0) after receiving the first'N consensus verification' packet.

수신한 패킷의 송신자 수가 전체 노드 수의 2/3가 넘고, The number of senders of the received packet exceeds 2/3 of the total number of nodes,

(1.1) 자신과 같은 결과가 2/3 가 넘으면,(1.1) If the same result as yours exceeds 2/3,

(Action a) 합의된 것으로 간주하고 자신의 체인에 'N 합의' 블록 등록 후 라운드 종료한다. (Action a) It is regarded as consensual and the round ends after registering the'N consensus' block in its chain.

(1.2) 자신과 다른 결과가 2/3 이상이고,(1.2) Two-thirds or more of a different result than you,

(1.2.1) 다른 결과의 동일성이 2/3 이상이면,(1.2.1) if the identity of the other results is more than 2/3,

(Action b) 자신의 최신 K개의 'L 합의' 블록을 수신한 블록 정보로 교체 후 라운드 종료한다. 이 때, 다수 정보를 보유한 노드에게 최신 K개의 'L 합의' 블록을 요청하여 수신한다. (Action b) The round ends after replacing the latest K number of'L consensus' blocks with the received block information. At this time, the latest K'L consensus' blocks are requested and received from a node that has a large number of information.

(1.2.2) 다른 결과의 동일성이 2/3 이하이면,(1.2.2) If the identity of the other results is less than 2/3,

(Action c) 오류를 브로드캐스팅 하여 블록체인 네트워크에 알리고, 현재 N 블록 파기 후 라운드 종료한다.(Action c) Broadcast an error to notify the blockchain network, and the round ends after destroying the current N blocks.

5. 다음 N 블록 생성시, 이전 N 블록이 파기 됐을 경우, 파기에 포함된 L 합의 블록 정보를 포함하여 신규 N블록 생성한다. 이 때, 2K 개의 'L 합의' 블록 정보로 신규 N 블록을 생성한다. (리더 변경 가능)5. When generating the next N block, if the previous N blocks are destroyed, a new N block is generated including information on the L sum of blocks included in the destruction. At this time, a new N block is generated with 2K'L agreement' block information. (Leader can be changed)

확장 합의 단계는 데이터의 완결성을 보완하기 위한 것으로 전체 노드의 서명을 포함한 블록을 생성하기 위한 단계이다. 이 때, 목적에 따라 선택적으로 실행이 가능하다.The extended consensus step is to complement the integrity of the data and is a step to create a block including the signatures of all nodes. At this time, it can be selectively executed according to the purpose.

1. 주 합의 단계 이후, 리더노드는 일반노드로부터 수집된 'N 합의 검증' 패킷의 정보를 정합하여 새로운 '서명' 블록을 생성하여 일반노드에게 전송한다.1. After the main consensus step, the leader node creates a new'signature' block by matching the information of the'N consensus verification' packet collected from the general node and transmits it to the general node.

2. 일반노드는 리더노드로부터 수신한 '서명' 블록을 브로드캐스팅하여 서로 같은 정보를 수신하였는지 확인한다.2. The general node checks whether the same information is received by broadcasting the'signature' block received from the leader node.

3. 수신한 블록이 2/3 이상 같으면, 블록을 체인에 추가하고, 같지 않으면 블록을 폐기한다.3. If the received block is equal to or greater than 2/3, the block is added to the chain, otherwise the block is discarded.

본 발명에 따른 블록체인 시스템의 블록 생성 기술에 의하면, 해커는 현재 시점에서 N 합의 이전의 블록에 대해 정보를 변경하기 위해서는 2/3*N 이상의 노드의 서명을 탈취해야 하기 때문에 기존 대표자 합의 방식에 비해 더 높은 완결성을 제공할 수 있다. 그리고 앵커링 기법과 달리 퍼블릭 블록체인 네트워크에 의존하지 않고 데이터 완결성을 강화할 수 있다.According to the block generation technology of the block chain system according to the present invention, the hacker has to steal the signatures of nodes of 2/3*N or more in order to change the information on the block before N agreement at the current time. Can provide a higher degree of completeness. And unlike the anchoring technique, data integrity can be reinforced without relying on a public blockchain network.

이상에서와 같이 본 발명에 따른 블록체인 시스템의 블록 생성 방법 및 장치는 상기한 바와 같이 설명된 실시예들의 구성과 방법이 한정되게 적용될 수 있는 것이 아니라, 상기 실시예들은 다양한 변형이 이루어질 수 있도록 각 실시예들의 전부 또는 일부가 선택적으로 조합되어 구성될 수도 있다.As described above, the block generation method and apparatus of the block chain system according to the present invention is not limited to the configuration and method of the embodiments described as described above, but the above embodiments are All or some of the embodiments may be selectively combined and configured.

200; 블록체인 시스템의 블록 생성
210; 제1 합의 블록 생성부
220; 일반체인 블록 추가부
230; 제2 합의 블록 생성부
240; 확정체인 블록 추가부
200; Block creation of blockchain system
210; 1st consensus block generator
220; General Chain Block Addition
230; Second consensus block generator
240; Fixed chain block addition

Claims (14)

리더 노드에서 클라이언트 노드에서의 트랜잭션에 대응하여 제1 합의 블록을 생성하는 단계;
복수의 리플리카 노드에서 상기 제1 합의 블록을 검증하여, 상기 제1 합의 블록을 일반체인 블록으로 정의하여 체인에 추가하는 단계;
상기 체인에 일반체인 블록이 기 설정된 K 개가 추가될 때마다 상기 제1 합의 블록의 생성과 병렬적으로 상기 리더 노드에서 제2 합의 블록을 생성하는 단계; 및
복수의 일반 노드에서 상기 제2 합의 블록을 검증하여, 상기 제2 합의 블록을 확정체인 블록으로 정의하여 체인에 추가하는 단계; 를 포함하되,
상기 리더 노드 및 상기 복수의 리플리카 노드는,
블록체인 시스템에서 기 정의된 복수의 대표자 노드에 포함되고,
상기 일반체인 블록은,
상기 트랜잭션의 처리를 위하여, 상기 대표자 노드에 의해 합의되어 생성된 것이고,
상기 확정체인 블록은,
상기 대표자 노드의 비정상 행위를 방지하고 상기 일반체인 블록의 완결성을 보장하기 위하여, 상기 대표자 노드를 제외한 복수의 일반 노드에 의해 합의되어 생성된 것이고,
상기 제2 합의 블록을 확정체인 블록으로 정의하여 체인에 추가하는 단계는,
상기 제2 합의 블록을 상기 리더 노드에서 상기 복수의 일반 노드로 전달하는 단계;
상기 복수의 일반 노드 각각이 상기 제2 합의 블록을 서명으로 봉인하여 제2 합의검증 패킷으로 다른 일반 노드들에 전달하는 단계;
상기 복수의 일반 노드 각각에서 상기 제2 합의 블록과 수신한 상기 제2 합의검증 패킷의 동일성이 기 설정된 소정 수치를 넘는지 판단하는 단계; 및
상기 복수의 일반 노드 각각이 수신한 상기 제2 합의 블록과 상기 제2 합의검증 패킷의 동일성이 기 설정된 소정 수치를 넘는 경우, 상기 제2 합의 블록을 상기 확정체인 블록으로 정의하여 체인에 추가하는 단계; 를 포함하는 것을 특징으로 하는 블록체인 시스템의 블록 생성 방법.
Generating a first consensus block in response to the transaction in the client node at the leader node;
Verifying the first consensus block in a plurality of replica nodes, defining the first consensus block as a general chain block, and adding it to the chain;
Generating a second consensus block in the leader node in parallel with the generation of the first consensus block whenever K preset blocks of a general chain are added to the chain; And
Verifying the second consensus block in a plurality of general nodes, defining the second consensus block as a definite chain block, and adding it to the chain; Including,
The leader node and the plurality of replica nodes,
Included in a plurality of representative nodes predefined in the blockchain system,
The general chain block,
For the processing of the transaction, it was created by agreement by the representative node,
The fixed chain block,
In order to prevent abnormal behavior of the representative node and ensure the integrity of the general chain block, it was created by consensus by a plurality of general nodes excluding the representative node,
The step of defining the second consensus block as a definite chain block and adding it to the chain,
Transferring the second consensus block from the leader node to the plurality of general nodes;
Sealing the second consensus block with a signature by each of the plurality of general nodes and transmitting the second consensus verification packet to other general nodes;
Determining whether the identity of the second consensus block and the received second consensus verification packet at each of the plurality of general nodes exceeds a predetermined value; And
When the identity of the second consensus block and the second consensus verification packet received by each of the plurality of general nodes exceeds a predetermined value, defining the second consensus block as the definite chain block and adding it to the chain ; Block generation method of a block chain system comprising a.
청구항 1에 있어서,
상기 제1 합의 블록을 일반체인 블록으로 정의하여 체인에 추가하는 단계는,
상기 제1 합의 블록을 상기 리더 노드에서 상기 복수의 리플리카 노드로 전달하는 단계;
상기 복수의 리플리카 노드 각각이 상호간에 상기 리더 노드로부터 전달받은 상기 제1 합의 블록이 동일한지 검증하는 단계;
상기 검증하는 단계에서 기 설정된 특정 수치 이상의 동일성이 있는 것으로 판단되는 경우 상기 복수의 리플리카 노드 각각이 상기 제1 합의 블록을 체인에 추가하는 것에 대한 동의 여부를 확인하는 단계; 및
상기 동의 여부를 확인하는 단계에서 기 설정된 소정 수치 이상의 동의가 있는 경우 상기 제1 합의 블록을 상기 일반체인 블록으로 정의하여 체인에 추가하는 단계를 포함하는 것을 특징으로 하는 블록체인 시스템의 블록 생성 방법.
The method according to claim 1,
The step of defining the first consensus block as a general chain block and adding it to the chain,
Transferring the first consensus block from the leader node to the plurality of replica nodes;
Verifying whether the first consensus block transmitted from the leader node is the same between each of the plurality of replica nodes;
Checking whether each of the plurality of replica nodes agrees to add the first consensus block to the chain when it is determined that there is an identity equal to or greater than a predetermined value in the verifying step; And
And defining the first consensus block as the general chain block and adding the first consensus block to the chain when there is consent equal to or greater than a predetermined value in the step of confirming the consent or not.
삭제delete 삭제delete 청구항 1에 있어서,
상기 기 설정된 소정 수치를 넘는지 판단하는 단계에서, 상기 복수의 일반 노드 각각이 상기 제2 합의 블록과 수신한 상기 제2 합의검증 패킷의 동일성이 기 설정된 소정 수치 이하인 것으로 판단된 경우 상기 제2 합의 블록을 폐기하고,
상기 체인에 일반체인 블록이 K의 2배수가 추가되었을 때 상기 리더 노드에서 제2 합의 블록을 생성하는 단계와 상기 제2 합의 블록을 확정체인 블록으로 정의하여 체인에 추가하는 단계를 반복하는 것을 특징으로 하는 블록체인 시스템의 블록 생성 방법.
The method according to claim 1,
In the step of determining whether the predetermined value is exceeded, when it is determined that the identity of the second consensus block and the received second consensus verification packet by each of the plurality of general nodes is equal to or less than a preset predetermined value, the second consensus Discard the block,
The step of generating a second consensus block at the leader node when a general chain block is added to the chain by a multiple of K and the step of defining the second consensus block as a definite chain block and adding it to the chain are repeated. Block generation method of the blockchain system.
청구항 1에 있어서,
상기 복수의 일반 노드 각각이 수신한 상기 제2 합의검증 패킷의 수가 기 설정된 특정 수치를 넘는지 판단하는 단계를 더 포함하며,
상기 기 설정된 소정 수치를 넘는지 판단하는 단계는 상기 복수의 일반 노드 각각이 수신한 상기 제2 합의검증 패킷의 수가 기 설정된 특정 수치를 넘는 경우 진행되는 것을 특징으로 하는 블록체인 시스템의 블록 생성 방법.
The method according to claim 1,
Further comprising the step of determining whether the number of the second consensus verification packets received by each of the plurality of general nodes exceeds a predetermined value,
The step of determining whether the predetermined value exceeds a predetermined value is performed when the number of the second consensus verification packets received by each of the plurality of general nodes exceeds a predetermined value.
청구항 1에 있어서,
상기 복수의 일반 노드 각각이 상기 제2 합의 블록을 서명으로 봉인하여 제2 합의검증 패킷으로 다른 일반 노드들에 전달하는 단계는,
상기 복수의 일반 노드 각각이 상기 제2 합의 블록 및 상기 체인에 추가된 일반체인 블록 중 적어도 하나를 검증한 검증 결과를 상기 제2 합의 블록과 함께 서명으로 봉인하는 것을 특징으로 하는 블록체인 시스템의 블록 생성 방법.
The method according to claim 1,
The step of sealing the second consensus block with a signature by each of the plurality of general nodes and transmitting the second consensus verification packet to other general nodes,
Block of a block chain system, characterized in that the verification result of each of the plurality of normal nodes verifying at least one of the second consensus block and the general chain block added to the chain is sealed with a signature together with the second consensus block Creation method.
리더 노드에서 클라이언트 노드에서의 트랜잭션에 대응하여 제1 합의 블록을 생성하도록 제어하는 제1 합의 블록 생성부;
복수의 리플리카 노드에서 상기 제1 합의 블록을 검증하여, 상기 제1 합의 블록을 일반체인 블록으로 정의하여 체인에 추가하도록 제어하는 일반체인 블록 추가부;
상기 체인에 일반체인 블록이 기 설정된 K 개가 추가될 때마다 상기 제1 합의 블록의 생성과 병렬적으로 상기 리더 노드에서 제2 합의 블록을 생성하도록 제어하는 제2 합의 블록 생성부; 및
복수의 일반 노드에서 상기 제2 합의 블록을 검증하여, 상기 제2 합의 블록을 확정체인 블록으로 정의하여 체인에 추가하도록 제어하는 확정체인 블록 추가부; 를 포함하되,
상기 리더 노드 및 상기 복수의 리플리카 노드는,
블록체인 시스템에서 기 정의된 복수의 대표자 노드에 포함되고,
상기 일반체인 블록은,
상기 트랜잭션의 처리를 위하여 상기 대표자 노드에 의해 합의되어 생성된 것이고,
상기 확정체인 블록은,
상기 대표자 노드의 비정상 행위를 방지하고 상기 일반체인 블록의 완결성을 보장하기 위하여, 상기 대표자 노드를 제외한 복수의 일반 노드에 의해 합의되어 생성된 것이고,
상기 확정체인 블록 추가부는,
상기 제2 합의 블록을 상기 리더 노드에서 상기 복수의 일반 노드로 전달하도록 제어하고,
상기 복수의 일반 노드 각각이 상기 제2 합의 블록을 서명으로 봉인하여 제2 합의검증 패킷으로 다른 일반 노드들에 전달하도록 제어하며,
상기 복수의 일반 노드 각각에서 상기 제2 합의 블록과 수신한 상기 제2 합의검증 패킷의 동일성이 기 설정된 소정 수치를 넘는지 판단하도록 제어하고,
상기 복수의 일반 노드 각각이 수신한 상기 제2 합의 블록과 상기 제2 합의검증 패킷의 동일성이 기 설정된 소정 수치를 넘는 경우, 상기 제2 합의 블록을 상기 확정체인 블록으로 정의하여 체인에 추가하도록 제어하는 것을 특징으로 하는 블록체인 시스템의 블록 생성 장치.
A first consensus block generator for controlling the leader node to generate a first consensus block in response to a transaction in the client node;
A general chain block addition unit that verifies the first consensus block in a plurality of replica nodes, defines the first consensus block as a general chain block, and controls to be added to the chain;
A second consensus block generation unit controlling the leader node to generate a second consensus block in parallel with the generation of the first consensus block whenever K preset blocks of the general chain are added to the chain; And
A deterministic chain block adding unit that verifies the second consensus block in a plurality of general nodes, defines the second consensus block as a definite chain block, and controls to be added to the chain; Including,
The leader node and the plurality of replica nodes,
Included in a plurality of representative nodes predefined in the blockchain system,
The general chain block,
It was created by agreement by the representative node for the processing of the transaction,
The fixed chain block,
In order to prevent abnormal behavior of the representative node and ensure the integrity of the general chain block, it was created by consensus by a plurality of general nodes excluding the representative node,
The fixed chain block addition unit,
Control to transfer the second consensus block from the leader node to the plurality of general nodes,
Each of the plurality of normal nodes seals the second consensus block with a signature and controls to deliver the second consensus verification packet to other general nodes,
Control to determine whether the identity of the second consensus block and the received second consensus verification packet in each of the plurality of general nodes exceeds a predetermined value,
When the identity of the second consensus block and the second consensus verification packet received by each of the plurality of general nodes exceeds a predetermined value, the second consensus block is defined as the deterministic chain block and is controlled to be added to the chain. Block generation device of a block chain system, characterized in that.
청구항 8에 있어서,
상기 일반체인 블록 추가부는,
상기 제1 합의 블록을 상기 리더 노드에서 상기 복수의 리플리카 노드로 전달하도록 제어하고,
상기 복수의 리플리카 노드 각각이 상호간에 상기 리더 노드로부터 전달받은 상기 제1 합의 블록이 동일한지 검증하도록 제어하며,
기 설정된 특정 수치 이상의 동일성이 있는 것으로 판단되는 경우 상기 복수의 리플리카 노드 각각이 상기 제1 합의 블록을 체인에 추가하는 것에 대한 동의 여부를 확인하도록 제어하고,
기 설정된 소정 수치 이상의 동의가 있는 경우 상기 제1 합의 블록을 상기 일반체인 블록으로 정의하여 체인에 추가하도록 제어하는 것을 특징으로 하는 블록체인 시스템의 블록 생성 장치.
The method of claim 8,
The general chain block addition unit,
Control to transfer the first consensus block from the leader node to the plurality of replica nodes,
Each of the plurality of replica nodes is controlled to verify whether the first consensus block transmitted from the leader node is identical to each other,
When it is determined that there is an identity equal to or greater than a predetermined value, each of the plurality of replica nodes is controlled to check whether they agree to add the first consensus block to the chain,
Block generation apparatus of a block chain system, characterized in that when there is consent equal to or greater than a predetermined value, defining the first consensus block as the general chain block and adding it to the chain.
삭제delete 삭제delete 청구항 8에 있어서,
상기 확정체인 블록 추가부는,
상기 복수의 일반 노드 각각이 상기 제2 합의 블록과 수신한 상기 제2 합의검증 패킷의 동일성이 기 설정된 소정 수치 이하인 것으로 판단된 경우 상기 제2 합의 블록을 폐기하고,
상기 체인에 일반체인 블록이 K의 2배수가 추가되었을 때 상기 리더 노드에서 제2 합의 블록을 생성하도록 제어하고, 상기 제2 합의 블록을 확정체인 블록으로 정의하여 체인에 추가하도록 제어하는 것을 특징으로 하는 블록체인 시스템의 블록 생성 장치.
The method of claim 8,
The fixed chain block addition unit,
When it is determined that the identity of the second agreement block and the received second agreement verification packet by each of the plurality of general nodes is equal to or less than a predetermined value, discarding the second agreement block,
When a general chain block is added to the chain by a multiple of K, the leader node controls to generate a second consensus block, and controls to add the second consensus block to the chain by defining the second consensus block as a definite chain block. Block generation device of the blockchain system.
청구항 8에 있어서,
상기 확정체인 블록 추가부는,
상기 복수의 일반 노드 각각이 수신한 상기 제2 합의검증 패킷의 수가 기 설정된 특정 수치를 넘는 경우, 상기 복수의 일반 노드 각각이 상기 제2 합의 블록과 수신한 상기 제2 합의검증 패킷의 동일성이 기 설정된 소정 수치를 넘는지 판단하도록 제어하는 것을 특징으로 하는 블록체인 시스템의 블록 생성 장치.
The method of claim 8,
The fixed chain block addition unit,
When the number of the second consensus verification packets received by each of the plurality of general nodes exceeds a predetermined value, the sameness of the second consensus verification packets received by each of the plurality of general nodes with the second consensus block is determined. Block generation apparatus of a block chain system, characterized in that controlling to determine whether it exceeds a set predetermined value.
청구항 8에 있어서,
상기 확정체인 블록 추가부는,
상기 복수의 일반 노드 각각이 상기 제2 합의 블록 및 상기 체인에 추가된 일반체인 블록 중 적어도 하나를 검증한 검증 결과를 상기 제2 합의 블록과 함께 서명으로 봉인하여 제2 합의검증 패킷으로 다른 일반 노드들에 전달하도록 제어하는 것을 특징으로 하는 블록체인 시스템의 블록 생성 장치.
The method of claim 8,
The fixed chain block addition unit,
Another general node as a second consensus verification packet by sealing the verification result of each of the plurality of general nodes verifying at least one of the second consensus block and the general chain block added to the chain with a signature together with the second consensus block Block generation device of a block chain system, characterized in that control to be transmitted to the field.
KR1020180158287A 2018-12-10 2018-12-10 Method and apparatus for generating block in blockchain system KR102175949B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020180158287A KR102175949B1 (en) 2018-12-10 2018-12-10 Method and apparatus for generating block in blockchain system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020180158287A KR102175949B1 (en) 2018-12-10 2018-12-10 Method and apparatus for generating block in blockchain system

Publications (2)

Publication Number Publication Date
KR20200070776A KR20200070776A (en) 2020-06-18
KR102175949B1 true KR102175949B1 (en) 2020-11-09

Family

ID=71142913

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180158287A KR102175949B1 (en) 2018-12-10 2018-12-10 Method and apparatus for generating block in blockchain system

Country Status (1)

Country Link
KR (1) KR102175949B1 (en)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2022035178A1 (en) * 2020-08-14 2022-02-17 Lg Electronics Inc. Method and apparatus for reducing orphan blocks for a blockchain
CN113255003B (en) * 2021-06-15 2022-03-18 中国电子科技网络信息安全有限公司 Block chain system safety management and control method

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101727525B1 (en) * 2016-09-05 2017-04-17 주식회사 스케일체인 Block chain based distributed storage method and device thereof

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101964254B1 (en) * 2017-01-03 2019-04-01 아주대학교산학협력단 Person to person trading method and apparatus by using blockchain and distributed hash table
KR102382127B1 (en) * 2017-04-05 2022-04-04 삼성에스디에스 주식회사 System for processing data based on blockchain and Operating method thereof

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101727525B1 (en) * 2016-09-05 2017-04-17 주식회사 스케일체인 Block chain based distributed storage method and device thereof

Also Published As

Publication number Publication date
KR20200070776A (en) 2020-06-18

Similar Documents

Publication Publication Date Title
Maram et al. CHURP: dynamic-committee proactive secret sharing
Zhou et al. COCA: A secure distributed online certification authority
JP2020512708A5 (en)
KR20210134655A (en) Security systems and related methods
US5790669A (en) Lightweight non-repudiation system and method
Jan et al. A verifiably secure ECC based authentication scheme for securing IoD using FANET
Annessi et al. It's about time: Securing broadcast time synchronization with data origin authentication
Alghamdi et al. Precision time protocol attack strategies and their resistance to existing security extensions
KR102175949B1 (en) Method and apparatus for generating block in blockchain system
US20210111900A1 (en) Verification information attaching device, verification device, information management system, method, and program
US20200322168A1 (en) Privacy preserving ip traceback using group signature
Vishnupriya et al. SDAOR: secure data transmission of optimum routing protocol in wireless sensor networks for surveillance applications
US20210409210A1 (en) Hardware Security Module
Hiltunen et al. Enhancing survivability of security services using redundancy
KR20170096780A (en) System and method for interlocking of intrusion information
Bhat Security analysis of a blockchain network
Oberoi et al. ADRCN: A framework to detect and mitigate malicious Insider Attacks in Cloud-Based environment on IaaS
CN115702424A (en) Method and vehicle bus system for forwarding ASIL-related information from a data source to a data sink
McDaniel et al. Antigone: Implementing policy in secure group communication
Jing et al. ARECA: a highly attack resilient certification authority
Morris et al. Critical Message Integrity Over A Shared Network
Tu et al. A secure contact protocol for delay tolerant networks
Heck Towards a k-resilient data dissemination mechanism for peer-to-peer networks
Franz et al. Check for updates Trust-Based Adaptive Routing for NoCs
Kim et al. Delay Model for Flooding of Service Prevention in E-Commerce System

Legal Events

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