KR101921470B1 - System and Method for generating block chain with proof of online - Google Patents
System and Method for generating block chain with proof of online Download PDFInfo
- Publication number
- KR101921470B1 KR101921470B1 KR1020180113973A KR20180113973A KR101921470B1 KR 101921470 B1 KR101921470 B1 KR 101921470B1 KR 1020180113973 A KR1020180113973 A KR 1020180113973A KR 20180113973 A KR20180113973 A KR 20180113973A KR 101921470 B1 KR101921470 B1 KR 101921470B1
- Authority
- KR
- South Korea
- Prior art keywords
- block
- authentication
- node
- data
- block chain
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
- H04L9/0643—Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/382—Payment protocols; Details thereof insuring higher security of transaction
- G06Q20/3827—Use of message hashing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/382—Payment protocols; Details thereof insuring higher security of transaction
- G06Q20/3829—Payment protocols; Details thereof insuring higher security of transaction involving key management
-
- 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/1046—Joining mechanisms
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/0819—Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
- H04L9/0825—Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) using asymmetric-key encryption or public key infrastructure [PKI], e.g. key signature or public key certificates
-
- H04L2209/38—
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/50—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
Landscapes
- Engineering & Computer Science (AREA)
- Business, Economics & Management (AREA)
- Computer Security & Cryptography (AREA)
- Accounting & Taxation (AREA)
- Theoretical Computer Science (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Physics & Mathematics (AREA)
- Finance (AREA)
- Strategic Management (AREA)
- General Business, Economics & Management (AREA)
- General Physics & Mathematics (AREA)
- Power Engineering (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Storage Device Security (AREA)
Abstract
Description
본 발명은 온라인 증명 블록체인 생성 시스템 및 방법에 관한 것이다.The present invention relates to an online proof block chain generation system and method.
비트코인은 2008년 사토시 나카모토라는 정체불명의 인물이 발표한 논문에서 시작되었다. 비트코인은 정부나 은행과 같은 중앙화된 조직이 아닌 분산 네트워크 상에서 발행, 저장 및 유통되는 전자 화폐이다. 비트코인은 2009년 처음 발행되어 현재시점까지 중앙화된 기관 없이 화폐의 가치를 유지하고 있으며, 사용자 수와 거래 규모가 꾸준히 증가하고 있다.Bitcoin began with a paper published in 2008 by an unidentified person named Nakamoto Satoshi. Bitcoin is electronic money that is issued, stored, and distributed on a distributed network rather than a centralized organization such as the government or bank. Bitcoin has been issued for the first time in 2009, maintaining the value of money without centralized institutions until now, and the number of users and transactions are steadily increasing.
이러한 비트코인의 화폐 가치를 유지하는 배경에는 블록체인 기술이 있다. 블록체인은 중앙화된 서버 없이 탈중앙화된 네트워크 환경에서 보안성과 무결성을 유지하는 기술이다. 달리 표현하면, 블록체인은 중앙 관리 기관이 없이 임의의 사용자가 데이터를 위변조하는 것을 불가능하게 하여 거래의 무결성을 유지한다.The background behind this bitcoin's monetary value is the block chain technology. Block chaining is a technology that maintains security and integrity in a decentralized network environment without a centralized server. In other words, the block chain maintains the integrity of the transaction, making it impossible for any user to forge or forge data without a central authority.
블록체인이 무결성 유지를 위해 블록체인 네트워크에 참여한 모든 참여 노드는 거래 내역(장부)를 저장하고, 새롭게 생성되는 트랜잭션을 저장된 장부를 통해 검사한다.To maintain integrity of the block chain, all participating nodes participating in the block chain network store transactions (books) and inspect the newly created transactions through the stored books.
예를 들어, 한 참여 노드가 거래를 조작하여 이중 결재를 감행하여도, 다른 모든 노드가 이중 결재 여부를 검증하여 합의를 부결함으로써, 거래의 승인이 거부된다.For example, even if a participant node manipulates a transaction to perform a double payment, all other nodes are denied approval by verifying the double payment and rejecting the agreement.
그러나 작업 증명(Proof of Work) 같은 방식으로 수행되는 종래 블록체인 시스템은 전체 노드 중 51% 이상이 거짓으로 합의하면 데이터 조작이 가능한 일명 51퍼센트 어택(51 percent attack)이 발생할 수 있다.However, conventional block-chain systems, which are performed in the same way as Proof of Work, can result in a 51 percent attack (51 percent attack) where data manipulation is possible if more than 51 percent of all nodes agree to be false.
보다 상세히, 종래 블록체인 시스템에서 노드는 기 보유하고 있는 블록체인보다 긴 블록체인이 존재할 경우 해당 블록체인을 기준으로 작업을 수행하도록 설계되어 있다.More specifically, in a conventional block chain system, a node is designed to perform operations based on a block chain that is longer than a previously held block chain.
51퍼센트 이상의 해쉬 파워를 보유한 공격자는 조작된 장부를 포함하고, 현재 무결성을 가지는 블록체인보다 긴 블록체인을 만들어 네트워크에 공유시키는 방식으로 데이터를 조작할 수 있다.An attacker with more than 51 percent hash power can manipulate data by including a manipulated book and creating a block chain longer than the current integrity block chain and sharing it across the network.
본 발명의 실시예는, 외부 공격자에 의한 조작이 어려운 블록체인을 생성하는 시스템을 제공하는 것이다.An embodiment of the present invention is to provide a system for generating a block chain which is difficult to be manipulated by an external attacker.
본 발명의 일 측면에 따르면, 트랜잭션을 포함하는 블록이 순차적으로 연결되는 블록체인을 생성하는 시스템으로서, 상기 블록체인에 새롭게 연결될 블록이 설정된 순번의 블록일 때, 인증 데이터를 포함하고, 해당 설정된 순번에 배치되는 인증 블록을 생성하는 인증 노드; 및 상기 블록체인에 새롭게 연결될 블록이 설정된 순번이 아닌 순번의 블록일 때, 해당 순번에 배치되는 일반 블록을 생성하는 채굴 노드를 포함하는, 온라인 증명 블록체인 생성 시스템이 제공될 수 있다.According to an aspect of the present invention, there is provided a system for generating a block chain in which blocks including transactions are sequentially connected, the system including authentication data when the block to be newly connected to the block chain is an ordered block, An authentication node that generates an authentication block that is placed in the authentication block; And a mining node for generating a general block arranged in the order when the blocks to be newly connected to the block chain are sequential blocks other than the set sequential blocks, may be provided.
상기 인증 데이터는, 상기 인증 노드에 할당된 공개키 데이터와, 상기 인증 노드에 할당된 비밀키로 암호화된 암호화 데이터를 포함할 수 있다.The authentication data may include public key data assigned to the authentication node and encrypted data encrypted with a secret key assigned to the authentication node.
상기 인증 블록은 이전 블록의 해시값이 기재되는 헤더부와 트랜잭션이 기재되는 바디부를 포함하는 구조를 가지고, 상기 바디부는 상기 인증 블록의 코인베이스 트랜잭션이 기재되는 코인베이스 트랜잭션 기재부와 일반 트랜잭션이 기재되는 일반 트랜잭션 기재부를 포함하는 구조를 가지며, 상기 공개키 데이터는 상기 코인베이스 트랜잭션 기재부에 기재되고, 상기 암호화 데이터는 상기 헤더부에 기재될 수 있다.Wherein the authentication block has a structure including a header portion in which a hash value of a previous block is described and a body portion in which a transaction is described, wherein the body portion includes a coin base transaction portion in which a coin- And the public key data is described in the coin-based transaction recording unit, and the encrypted data can be described in the header portion.
상기 암호화 데이터는 상기 코인베이스 트랜잭션 기재부에 기재된 데이터를 상기 인증 노드에 할당된 비밀키로 암호화하여 생성될 수 있다.The encrypted data may be generated by encrypting the data described in the coin-based transaction recording unit with a secret key assigned to the authentication node.
상기 인증 노드는 상기 인증 블록을 생성한 후 상기 인증 블록을 상기 채굴 노드로 전송하고, 상기 채굴 노드는 수신한 상기 인증 블록에 포함된 상기 인증 데이터를 기초로 상기 인증 블록이 상기 인증 노드에 의해 생성되었는지 여부를 검증한다.Wherein the authentication node transmits the authentication block to the mining node after generating the authentication block, and the mining node generates the authentication block based on the authentication data included in the received authentication block .
상기 인증 노드는, 상기 블록체인에 새롭게 연결될 블록이 설정된 순번의 블록이면서, 현재 시점이 기준 시점으로부터 설정된 시간 내일 때, 해당 설정된 순번에 배치되는 인증 블록을 생성한다.The authentication node generates an authentication block that is arranged in the set sequence when the current time is within a set time from the reference time, and is a block of an order number in which blocks to be newly connected to the block chain are set.
상기 채굴 노드는, 상기 블록체인에 새롭게 연결될 블록이 설정된 순번의 블록이라도, 현재 시점이 기준 시점으로부터 설정된 시간을 초과하면, 해당 설정된 순번에 배치되는 일반 블록을 생성할 수 있다.The mining node may generate a general block arranged in the set order even if the blocks are in the order of the blocks to be newly connected to the block chain.
본 발명의 다른 측면에 다르면, 트랜잭션을 포함하는 블록이 순차적으로 연결되는 블록체인을 생성하는 방법으로서, 인증 노드가 상기 블록체인에 새롭게 연결될 블록이 설정된 순번의 블록일 때, 인증 데이터를 포함하고, 해당 설정된 순번에 배치되는 인증 블록을 생성하는 단계; 및 채굴 노드가 상기 블록체인에 새롭게 연결될 블록이 설정된 순번이 아닌 순번의 블록일 때, 해당 순번에 배치되는 일반 블록을 생성하는 단계를 포함하는 온라인 증명 블록체인 생성 방법이 제공될 수 있다.According to another aspect of the present invention, there is provided a method of generating a block chain in which blocks including a transaction are sequentially connected, the method comprising: generating, when an authentication node is a block of an order number to which a block to be newly connected to the block chain is set, Generating an authentication block arranged in the set sequence number; And generating a generic block that is arranged in the order when the mining node is a sequential block that is not an order in which blocks to be newly connected to the block chain are set.
상기 인증 데이터는, 상기 인증 노드에 할당된 공개키 데이터와, 상기 인증 노드에 할당된 비밀키로 암호화된 암호화 데이터를 포함할 수 있다.The authentication data may include public key data assigned to the authentication node and encrypted data encrypted with a secret key assigned to the authentication node.
상기 인증 블록은 이전 블록의 해시값이 기재되는 헤더부와 트랜잭션이 기재되는 바디부를 포함하는 구조를 가지고, 상기 바디부는 상기 인증 블록의 코인베이스 트랜잭션이 기재되는 코인베이스 트랜잭션 기재부와 일반 트랜잭션이 기재되는 일반 트랜잭션 기재부를 포함하는 구조를 가지며, 상기 공개키 데이터는 상기 코인베이스 트랜잭션 기재부에 기재되고, 상기 암호화 데이터는 상기 헤더부에 기재될 수 있다.Wherein the authentication block has a structure including a header portion in which a hash value of a previous block is described and a body portion in which a transaction is described, wherein the body portion includes a coin base transaction portion in which a coin- And the public key data is described in the coin-based transaction recording unit, and the encrypted data can be described in the header portion.
상기 암호화 데이터는 상기 코인베이스 트랙잭션 기재부에 기재된 데이터를 상기 인증 노드에 할당된 비밀키로 암호화하여 생성될 수 있다.The encrypted data may be generated by encrypting data described in the coin-based transaction description part with a secret key assigned to the authentication node.
상기 인증 노드는 상기 인증 블록을 생성한 후 상기 인증 블록을 상기 채굴 노드로 전송하고, 상기 채굴 노드는 수신한 상기 인증 블록에 포함된 상기 인증 데이터를 기초로 상기 인증 블록이 상기 인증 노드에 의해 생성되었는지 여부를 검증할 수 있다.Wherein the authentication node transmits the authentication block to the mining node after generating the authentication block, and the mining node generates the authentication block based on the authentication data included in the received authentication block Can be verified.
상기 인증 노드는, 상기 블록체인에 새롭게 연결될 블록이 설정된 순번의 블록이면서, 현재 시점이 기준 시점으로부터 설정된 시간 내일 때, 해당 설정된 순번에 배치되는 인증 블록을 생성할 수 있다.The authentication node can generate an authentication block that is arranged in the set sequence when the current time is within the set time from the reference time, while the authentication node is an order number block in which blocks to be newly connected to the block chain are set.
상기 채굴 노드는, 상기 블록체인에 새롭게 연결될 블록이 설정된 순번의 블록이라도, 현재 시점이 기준 시점으로부터 설정된 시간을 초과하면, 해당 설정된 순번에 배치되는 일반 블록을 생성할 수 있다.The mining node may generate a general block arranged in the set order even if the blocks are in the order of the blocks to be newly connected to the block chain.
본 발명의 실시예에 따르면, 네트워크 상에서 블록체인이 생성되는 과정에서 블록체인의 설정된 순번에 인증 노드에 의해 인증된 인증 블록이 연결되도록 함으로써, 외부의 공격자에 의한 블록체인의 위변조가 어려워지고, 블록체인의 무결성을 보장할 수 있다.According to the embodiment of the present invention, the authentication chain authenticated by the authentication node is connected to the set sequence of the block chain in the process of generating the block chain on the network, so that the forgery and modification of the block chain by the external attacker becomes difficult, The integrity of the chain can be guaranteed.
도 1은 본 발명의 일 실시예에 따른 블록체인 생성 시스템의 개략 구성도이다.
도 2는 본 발명의 일 실시예에 따른 블록체인 생성 시스템에 의해 생성된 블록체인의 개략적인 구조를 나타내는 도면이다.
도 3은 본 발명의 일 실시예에 따른 블록체인 생성 시스템에서 생성되는 일반 블록의 구조를 나타내는 개략도이다.
도 4는 본 발명의 일 실시예에 따른 블록체인 생성 시스템에서 생성되는 인증 블록의 구조를 나타내는 개략도이다.
도 5는 본 발명의 일 실시예에 따른 블록체인 생성 시스템에서 인증 노드가 인증 블록을 생성하는 과정의 일례를 설명하기 위한 도면이다.
도 6은 본 발명의 일 실시예에 따른 블록체인 생성 시스템에서 채굴 노드가 일반 블록을 생성하는 과정의 일례를 설명하기 위한 도면이다.
도 7은 본 발명의 일 실시예에 따른 블록체인 생성 시스템에서 노드가 다른 노드에서 생성되어 전파된 블록을 수신하여 검증하는 과정의 일례를 설명하기 위한 도면이다.
도 8은 본 발명의 일 실시예에 따른 블록체인 생성 시스템에서 인증 노드가 인증 블록을 생성하는 과정의 다른예를 설명하기 위한 도면이다.
도 9는 본 발명의 일 실시예에 따른 블록체인 생성 시스템에서 채굴 노드가 일반 블록을 생성하는 과정의 다른예를 설명하기 위한 도면이다.
도 10은 본 발명의 일 실시예에 따른 블록체인 생성 시스템에서 노드가 다른 노드에서 생성되어 전파된 블록을 검증하는 과정의 다른예를 설명하기 위한 도면이다.1 is a schematic block diagram of a block chain generation system according to an embodiment of the present invention.
FIG. 2 is a diagram showing a schematic structure of a block chain generated by a block-chain generating system according to an embodiment of the present invention.
3 is a schematic diagram illustrating a structure of a general block generated in a block chain generation system according to an embodiment of the present invention.
4 is a schematic diagram illustrating a structure of an authentication block generated in a block chain generation system according to an embodiment of the present invention.
5 is a diagram for explaining an example of a process of an authentication node generating an authentication block in a block chain generation system according to an embodiment of the present invention.
FIG. 6 is a diagram for explaining an example of a process in which a mining node generates a general block in a block chain generation system according to an embodiment of the present invention.
7 is a view for explaining an example of a process of receiving and verifying a block generated and propagated by another node in a block chain generation system according to an embodiment of the present invention.
8 is a view for explaining another example of a process of an authentication node generating an authentication block in a block chain generation system according to an embodiment of the present invention.
FIG. 9 is a diagram for explaining another example of a process in which a mining node generates a general block in a block chain generation system according to an embodiment of the present invention.
FIG. 10 is a diagram for explaining another example of a process for a node to verify a block generated and propagated in another node in a block-chain generation system according to an embodiment of the present invention.
본 발명은 다양한 변환을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세한 설명에 상세하게 설명하고자 한다. 그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변환, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 본 발명을 설명함에 있어서 관련된 공지 기술에 대한 구체적인 설명이 본 발명의 요지를 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다.BRIEF DESCRIPTION OF THE DRAWINGS The present invention is capable of various modifications and various embodiments, and specific embodiments are illustrated in the drawings and described in detail in the detailed description. It is to be understood, however, that the invention is not to be limited to the specific embodiments, but includes all modifications, equivalents, and alternatives falling within the spirit and scope of the invention. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS Hereinafter, the present invention will be described in detail with reference to the accompanying drawings.
이하, 본 발명의 실시예를 첨부도면을 참조하여 상세히 설명하기로 하며, 첨부 도면을 참조하여 설명함에 있어, 동일하거나 대응하는 구성 요소는 동일한 도면번호를 부여하고 이에 대한 중복되는 설명은 생략하기로 한다.DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENT Hereinafter, embodiments of the present invention will be described in detail with reference to the accompanying drawings. Referring to the accompanying drawings, the same or corresponding components are denoted by the same reference numerals, do.
도 1은 본 발명의 일 실시예에 따른 블록체인 생성 시스템의 개략 구성도이고, 도 2는 본 발명의 일 실시예에 따른 블록체인 생성 시스템에 의해 생성된 블록체인의 개략적인 구조를 나타내는 도면이다.FIG. 1 is a schematic block diagram of a block chain generation system according to an embodiment of the present invention, and FIG. 2 is a diagram illustrating a schematic structure of a block chain generated by a block chain generation system according to an embodiment of the present invention .
도 1 및 도 2를 참조하면, 블록체인 생성 시스템은 적어도 하나의 인증 노드와, 적어도 하나의 채굴 노드(30)를 포함한다. 인증 노드(10)는 인증 블록(IB)을 생성한다. 인증 노드(10)는 블록체인 생성 시스템 개발사 또는 운영사에서 운영하는 노드이다. 인증 노드(10)는 블록체인 생성 시스템 개발사 또는 운영사로부터 할당된 비밀키와 공개키를 가진다.Referring to Figures 1 and 2, the block chain generation system includes at least one authentication node and at least one
인증 노드(10)는 기존 블록체인에 새롭게 연결될 블록이 설정된 순번의 블록일 때, 해당 설정된 순번에 배치되는 인증 블록(IB)을 생성한다. The
예컨대. 인증 노드(10)는 블록체인의 20의 배수에 해당하는 순번마다 인증 블록(IB)을 생성할 수 있다. 이 경우, 인증 노드(10)는 블록체인의 20번째 블록, 40번째 블록, 60번째 블록 등을 인증 블록(IB)으로 생성한다.for example. The
인증 블록(IB)은 해당 인증 노드(10)에서 생성하였음을 증명하는 인증 데이터를 포함한다. 인증 노드(10)가 인증 블록(IB)에 인증 데이터를 포함시키는 것은 일종의 서명이라 할 수 있다.The authentication block IB includes authentication data proving that it has been generated by the
인증 블록(IB)은 후술하는 일반 블록(AB)과 마찬가지로 트랜잭션 데이터를 포함한다.The authentication block IB includes transaction data in the same manner as the general block AB described later.
인증 노드(10)가 인증 블록(IB)을 생성하는 과정 및 인증 블록(IB)의 구조는 후술한다.The process of the
채굴 노드(30)는 기존 블록체인에 새롭게 연결될 블록이 설정된 순번이 아닌 순번의 블록일 때, 다시 말해 기존 블록체인에 새롭게 연결될 블록이 설정된 순번이 아닐 때, 해당 순번에 배치되는 일반 블록(AB)을 생성한다. 채굴 노드(30)는 예컨대 작업 증명(Proof Of Work)과 같은 공지된 방법으로 일반 블록(AB)을 생성할 수 있다.When the block to be newly connected to the existing block chain is not the set order of the block to be newly connected to the existing block chain, the
예컨대, 채굴 노드(30)는 이전 블록의 해시값(보다 상세히, 이전 블록의 헤더의 해시값)과 트랜잭션 데이터 등을 모아 후보 블록을 생성하고, 후보 블록의 헤더에 기재되는 난스(Nonce) 값을 증가시키면서 후보 블록의 헤더의 해시값이 특정 숫자보다 작은 값을 찾으면 채굴에 성공하여 일반 블록(AB)을 생성한다.For example, the
인증 노드(10)와 채굴 노드(30)는 네트워크를 통해 상호 연결된다. 인증 노드(10)와 채굴 노드(30)는 정보처리 기능과 통신 기능을 갖는 네트워크 상의 호스트이다.The
인증 노드(10) 및 채굴 노드(30)는 각각 기존 블록체인에 연결되는 새로운 블록을 생성하여 다른 노드에 전송하거나 다른 노드에서 생성된 새로운 블록을 수신하고 검증하여 이를 기존 블록체인에 연결한다.The
한편, 블록체인 기술의 특성 상 새로운 블록이 동시에 서로 다른 노드에서 탄생될 수 있고, 이로 인해 '블록체인의 분기'가 발생할 수도 있으나 이러한 '블록체인의 분기'는 본 명세서에서는 논외로 한다.On the other hand, due to the nature of the block chain technique, new blocks may be created at different nodes at the same time, which may lead to 'branching of the block chain', but such branching of the block chain is beyond the scope of this specification.
다만, 비트 코인 블록체인의 경우 시스템 상으로 작업증명을 많이 수행한 블록이 우선시되기 때문에 시간이 지남에 따라 가장 긴 블록체인 만이 살아 시스템을 운영함에 있어서 '블록체인의 분기'가 문제되지 않는다는 것을 이론과 현실로 확인할 수 있다.However, in the case of the bit coin block chain, since the block with a lot of proofs of work is given priority over the system, the 'block chain branching' is not a problem in that only the longest block chain runs the live system over time And reality.
본 실시예에 따른 블록체인 생성 시스템은 네트워크 상에서 블록체인이 생성되는 과정에서 블록체인의 설정된 순번에 인증 노드(10)에 의해 인증된 인증 블록(IB)이 연결되도록 함으로써, 외부의 공격자에 의한 블록체인의 위변조가 어려워지고, 블록체인의 무결성을 보장할 수 있다.In the block chain generation system according to the present embodiment, an authentication block (IB) authenticated by the authentication node (10) is connected to the set sequence of the block chain in the process of generating a block chain on the network, It is difficult to forge and falsify the chain, and the integrity of the block chain can be guaranteed.
다시 말해, 네트워크 상에 접속된 노드들만이 인증 노드(10)에 의해 인증된 인증 블록을 수신 및 검증한 후 다음 블록을 생성할 수 있어, 네트워크에 접속하지 않은 공격자가 블록체인을 위변조하는 것은 대단히 어렵고, 이에 따라 블록체인의 무결성이 보장된다.In other words, only the nodes connected on the network can receive and verify the authentication block authenticated by the
본 출원인은 이와 같이 본 실시예에 따른 블록체인 생성 시스템에서 생성되는 블록체인을 소위 온라인 증명 블록체인이라 명명한다.The applicant hereby designates a block chain generated in the block chain generation system according to the present embodiment as a so-called online certification block chain.
도 3은 본 발명의 일 실시예에 따른 블록체인 생성 시스템에서 생성되는 일반 블록의 구조를 나타내는 개략도이고, 도 4는 본 발명의 일 실시예에 따른 블록체인 생성 시스템에서 생성되는 인증 블록의 구조를 나타내는 개략도이다.FIG. 3 is a schematic diagram showing a structure of a general block generated in the block chain generation system according to an embodiment of the present invention. FIG. 4 is a block diagram of a structure of an authentication block generated in the block chain generation system according to an embodiment of the present invention. Fig.
도 1 및 도 3을 참조하면, 채굴 노드(30)가 생성하는 일반 블록은 헤더부와 바디부를 포함하는 구조를 가진다.1 and 3, a general block generated by the
헤더부는 이전 블록의 해시값을 기재하는 '이전 블록 해시 필드'와, 해당 블록의 생성 시간 값을 기재하는 '타임스탬프(timestamp) 필드'와, 난스(nonce) 값을 기재하는 '난스 필드' 등을 가진다. 각 필드에는 해당 값이 기재된다. 예컨대, 난스 필드'에는 채굴 노드(30)가 작업 증명(Proof Of Work)과 같은 공지된 방법으로 채굴에 성공할 때 찾아낸 난스(nonce) 값이 기재된다.The header section includes a 'previous block hash field' describing a hash value of a previous block, a 'timestamp field' describing a generation time value of the block, a 'nonces field' describing a nonce value, etc. . The corresponding value is written in each field. For example, a nonce value found when the
그리고 헤더부는 후술하는 인증 블록의 구조에 대응하도록 암호화 데이터를 기재하는 '암호화 데이터 필드'를 가진다. 본 실시예에서 일반 블록은 인증 블록과 달리 암호화 데이터와 무관하기 때문에 일반 블록의 '암호화 데이터 필드'에는 설정된 디폴트 값이 기재된다.The header portion has an " encrypted data field " in which encrypted data is described to correspond to the structure of an authentication block described later. In this embodiment, unlike the authentication block, the normal block is independent of the encrypted data, so the default value set in the 'encrypted data field' of the general block is described.
참고로 도 3에서 헤더부의 각 필드에 기재된 값은 설명의 편의를 위해 임의로 기재된 값이다.For reference, the values written in the respective fields of the header in FIG. 3 are values arbitrarily described for convenience of explanation.
바디부에는 코인베이스 트랜잭션 기재부와 일반 트랜잭션 기재부를 포함하는 구조를 가진다.The body part has a structure including a coin base transaction part and a general transaction part.
코인베이스 트랜잭션 기재부에는 블록 생성의 보상에 관한 데이터가 기재된다.The coin-based transaction describing unit describes data relating to compensation of block generation.
일반 트랜잭션 기재부에는 해당 블록을 생성할 당시 네트워크를 통해 수집된 적어도 하나의 트랜잭션이 기재된다.The general transaction description section describes at least one transaction collected over the network at the time of creation of the block.
도 1 및 도 4를 참조하면, 인증 노드(10)가 생성하는 인증 블록은 헤더부와 바디부를 포함한다.1 and 4, the authentication block generated by the
헤더부는 이전 블록의 해시값을 기재하는 '이전 블록 해시 필드'와, 해당 블록의 생성 시간 값을 기재하는 '타임스탬프(timestamp) 필드'와, 암호화 데이터를 기재하는 '암호화 데이터 필드'등을 가진다.The header includes a 'previous block hash field' describing the hash value of the previous block, a 'timestamp field' describing the generation time value of the block, an 'encrypted data field' describing the encrypted data, and the like .
그리고 헤더부는 일반 블록의 구조에 대응하도록 난스(nonce) 값을 기재하는 '난스(nonce) 필드'를 가진다. 본 실시예에서 인증 블록은 일반 블록과 달리 작업 증명(Proof Of Work)과 같은 공지된 방법으로 생성되지 않기 때문에 인증 블록의 '난스 필드'에는 설정된 디폴트 값이 기재된다.The header field has a 'nonce field' for recording a nonce value to correspond to the structure of a normal block. Unlike the normal block, the authentication block is not generated by a known method such as Proof Of Work in the present embodiment, so the default value set in the 'nonce field' of the authentication block is described.
참고로 도 4에서 헤더부의 각 필드에 기재된 값은 설명의 편의를 위해 임의로 기재된 값이다.For reference, the values written in the respective fields of the header in FIG. 4 are values arbitrarily described for convenience of explanation.
바디부에는 코인베이스 트랜잭션 기재부와 일반 트랜잭션 기재부를 포함하는 구조를 가진다.The body part has a structure including a coin base transaction part and a general transaction part.
코인베이스 트랜잭션 기재부에는 블록 생성의 보상에 관한 데이터가 기재된다. 다만, 인증 블록을 생성하는 인증 노드(10)는 블록체인 생성 시스템 개발사 또는 운영사에서 운영하는 노드이기 때문에 블록 생성의 보상에 관한 내용은 일반 블록에 적용되는 보상에 관한 내용과 상이하다.The coin-based transaction describing unit describes data relating to compensation of block generation. However, since the
일반 트랜잭션 기재부에는 해당 블록을 생성할 당시 네트워크를 통해 수집된 적어도 하나의 트랜잭션이 기재된다.The general transaction description section describes at least one transaction collected over the network at the time of creation of the block.
본 실시예에서 인증 블록은 인증 데이터를 포함한다.In this embodiment, the authentication block includes authentication data.
예컨대, 인증 데이터는 인증 노드(10)에 할당된 공개키 데이터와 인증 노드(10)에 할당된 비밀키로 암호화된 암호화 데이터를 포함한다.For example, the authentication data includes the public key data assigned to the
이때, 공개키 데이터는 코인베이스 트랜잭션 기재부에 블록 생성의 보상에 관한 데이터와 함께 기재되고, 암호화 데이터는 헤더부의 '암호화 데이터 필드'에 기재된다.At this time, the public key data is described in the coin-based transaction description part together with the data concerning the compensation of the block generation, and the encrypted data is described in the 'encrypted data field' of the header part.
이때, 암호화 데이터는 코인베이스 트랜잭션 기재부에 기재된 데이터를 인증 노드(10)에 할당된 비밀키로 암호화하여 생성된다.At this time, the encrypted data is generated by encrypting the data described in the coin-based transaction recording section with the secret key assigned to the
도 5는 본 발명의 일 실시예에 따른 블록체인 생성 시스템에서 인증 노드가 인증 블록을 생성하는 과정의 일례를 설명하기 위한 도면이다. 도 1 및 도 5를 참조하면, 인증 노드는 기존 블록체인에 새롭게 연결될 블록이 설정된 순번인지를 판단한다.5 is a diagram for explaining an example of a process of an authentication node generating an authentication block in a block chain generation system according to an embodiment of the present invention. Referring to FIG. 1 and FIG. 5, the authentication node determines whether a block to be newly connected to an existing block chain is set.
만약, 새롭게 연결될 블록이 설정된 순번이라면, 인증 노드(10)는 자신이 만들었음을 증명하는 인증 데이터를 포함하는 인증 블록을 생성한다. 이후, 인증 노드(10)는 생성된 인증 블록을 다른 노드에 전파한다.If the block to be newly connected is the set sequence number, the
만약, 새롭게 연결될 블록이 설정된 순번이 아니라면, 인증 노드(10)는 일반 블록을 생성할 수 있다. 이후, 인증 노드(10)는 생성된 일반 블록을 다른 노드에 전파한다. 다만, 인증 노드(10)는 설정 순번이 아닌 특정 순번의 일반 블록을 생성하는 과정에서 다른 채굴 노드(30)에서 먼저 생성하여 전파시킨 해당 특정 순번의 일반 블록을 수신하게 되면, 이를 검증하고 검증에 성공하면 검증된 블록을 기존 블록체인에 연결하고 다음 작업을 수행한다.If the block to be newly connected is not the set sequence number, the
한편, 도시되지 않았으나 인증 노드(10)는 새롭게 연결될 블록이 설정된 순번이 아니라고 판단되어도 도 5와 같이 일반 블록을 생성하는 작업을 수행하지 않을 수 있다. 이 경우, 인증 노드(10)는 현재 시점에서 새롭게 연결될 블록이 설정된 순번인지를 계속적으로 판단하고, 계속된 판단 과정에서 다른 노드들의 지속적인 채굴 작업으로 인해 네트워크 상에서 동기화되어 공유된 블록체인에 새롭게 연결될 블록이 설정된 순번이 되었을 때 인증 블록을 생성할 수 있다.Meanwhile, although not shown, even if the
도 6은 본 발명의 일 실시예에 따른 블록체인 생성 시스템에서 채굴 노드가 일반 블록을 생성하는 과정의 일례를 설명하기 위한 도면이다. 도 1 및 도 6을 참조하면, 채굴 노드(30)는 기존 블록체인에 새롭게 연결될 블록이 설정된 순번인지를 판단한다.FIG. 6 is a diagram for explaining an example of a process in which a mining node generates a general block in a block chain generation system according to an embodiment of the present invention. Referring to FIGS. 1 and 6, the
만약, 새롭게 연결될 블록이 설정된 순번이 아니라면, 채굴 노드(30)는 일반 블록을 생성한다. 이후, 채굴 노드(30)는 생성된 일반 블록을 다른 노드에 전파한다.If the block to be newly connected is not the set order, the
만약, 새롭게 연결될 블록이 설정된 순번이라면, 채굴 노드(30)는 새롭게 연결될 블록이 설정된 순번인지를 계속적으로 판단한다. 이 과정에서 인증 노드(10)가 설정된 순번에 배치될 인증 블록을 생성하여 전파시킴으로써 네트워크 상에서 동기화된 블록체인에 새롭게 연결될 블록은 설정된 순번의 다음 블록이 된다. 이후, 채굴 노드(30)는 새롭게 연결될 블록이 설정된 순번이 아니라고 판단하게 되어 일반 블록을 생성한다.If the block to be newly connected is the set order, the
한편, 채굴 노드(30)는 특정 순번의 일반 블록을 생성하는 과정에서 다른 노드에서 먼저 생성하여 전파시킨 해당 특정 순번의 일반 블록을 수신하게 되면, 이를 검증하여 기존 블록체인에 연결하고, 해당 특정 순번의 일반 블록의 다음 순번에 배치될 일반 블록의 생성 작업을 수행한다.On the other hand, the
도 7은 본 발명의 일 실시예에 따른 블록체인 생성 시스템에서 노드가 다른 노드에서 생성되어 전파된 블록을 수신하여 검증하는 과정의 일례를 설명하기 위한 도면이다.7 is a view for explaining an example of a process of receiving and verifying a block generated and propagated by another node in a block chain generation system according to an embodiment of the present invention.
도 7을 참조하면, 노드(이하, 설명의 편의를 위해 '검증 노드'라 함)는 다른 노드에서 생성하여 전파시킨 새로운 블록, 즉 검증 노드가 보유하고 있는 기존 블록체인에 새롭게 연결될 블록을 수신한다. 도 7에서 검증 노드는 도 1에 도시된 인증 노드(10) 중 하나 또는 채굴 노드(30) 중 하나일 수 있다.Referring to FIG. 7, a node (hereinafter, referred to as a 'validation node' for convenience of description) receives a block to be newly connected to a new block generated and propagated by another node, that is, an existing block chain held by the validation node . In FIG. 7, the verification node may be one of the
이후, 검증 노드는 새로운 블록이 기존 블록체인의 설정된 순번의 블록인지 판단한다.Thereafter, the verification node determines whether the new block is a set sequential block of an existing block chain.
만약, 새로운 블록이 설정된 순번의 블록이면, 검증 노드는 인증 블록 검증을 수행한다.If the new block is the set number of blocks, the verification node performs the authentication block verification.
여기서, 인증 블록 검증은 검증 대상인 인증 블록에 포함된 인증 데이터를 기초로 해당 인증 블록이 해당 인증 노드에 의해 생성되었는지 여부를 검증하는 것이다.Here, the authentication block verification is to verify whether the corresponding authentication block is generated by the corresponding authentication node based on the authentication data included in the authentication block to be verified.
보다 상세히, 검증 노드는 검증 대상인 인증 블록에서 인증 데이터를 추출한다. 앞서 설명한 바와 같이 인증 데이터는 해당 인증 노드의 공개키 데이터와 암호화 데이터를 포함한다.More specifically, the verification node extracts authentication data from an authentication block to be verified. As described above, the authentication data includes the public key data and the encrypted data of the corresponding authentication node.
검증 노드는 검증 대상인 인증 블록에서 해당 인증 노드의 공개키 데이터와 암호화 데이터를 추출한다.The verification node extracts the public key data and the encryption data of the corresponding authentication node in the authentication block to be verified.
이후, 검증 노드는 추출된 공개키 데이터로 암호화 데이트를 복호화한다. 앞서 설명한 바와 같이 암호화 데이터는 해당 노드가 해당 인증 블록의 코인베이스 트랜잭션 기재부에 기재된 데이터를 자신의 비밀키로 암호화하여 생성된다.Thereafter, the verification node decrypts the encrypted data with the extracted public key data. As described above, the encrypted data is generated by the node encrypting data described in the coin-based transaction recording unit of the authentication block with its own secret key.
이후, 검증 노드는 복호화된 데이터와 검증 대상인 인증 블록의 코인베이스 트랜잭션 기재부에 기재된 데이터를 비교하여 일치 여부를 확인한다. 두 데이터가 일치하면 검증 대상인 인증 블록이 해당 인증 노드에서 생성되었다고 신뢰할 수 있다.Thereafter, the verification node compares the decrypted data with the data described in the coin-based transaction recording unit of the authentication block to be verified and confirms whether or not they match. If the two pieces of data match, it can be assumed that the authentication block to be verified is generated at the corresponding authentication node.
검증 노드는 위와 같은 과정을 통해 검증 대상인 인증 블록이 해당 인증 노드에 의해 생성되었는지 여부를 검증한다.The verification node verifies whether the authentication block to be verified is generated by the corresponding authentication node through the above process.
인증 블록 검증 결과, 검증 대상인 인증 블록이 인증 블록 검증을 통과하면, 검증 노드는 기존 블록체인에 연결하고, 다른 노드에 성공 메시지를 전송한다. 또는 인증 블록 검증 결과, 검증 대상인 인증 블록이 인증 블록 검증을 통과하지 못하면, 검증 노드는 다른 노드에 거절 메시지를 전송한다.As a result of verification of the authentication block, if the verification block to be verified passes the authentication block verification, the verification node connects to the existing block chain and transmits the success message to the other node. Otherwise, if the verification block does not pass the authentication block verification, the verification node sends a reject message to the other node.
한편, 검증 노드는 수신된 새로운 블록이 설정된 순번의 블록인지 판단한 결과 설정된 순번의 블록이 아니면, 일반 블록 검증을 수행한다.On the other hand, if it is determined that the received new block is the set sequence number, the verification node performs normal block verification if it is not the set sequence number.
여기서 일반 블록 검증은 작업 증명(Proof Of Work)과 같은 공지된 방법에서 새로운 블록을 검증하는 과정으로 수행될 수 있다. 예컨대, 검증 노드는 수신된 검증 대상인 일반 블록의 헤더의 해시값이 특정 숫자보다 작은지, 블록 데이터 구조가 적정한지 등을 검증할 수 있다.Here, the general block verification can be performed by a process of verifying a new block in a known method such as Proof Of Work. For example, the verification node can verify whether the hash value of the header of the general block that is the received verification target is smaller than a certain number, whether the block data structure is appropriate, and the like.
일반 블록 검증 결과, 검증 대상인 일반 블록이 일반 블록 검증을 통과하면, 검증 노드는 해당 일반 블록을 기존 블록체인에 연결하고, 다른 노드에 성공 메시지를 전송한다.As a result of the normal block verification, if the verification target general block passes the normal block verification, the verification node connects the corresponding normal block to the existing block chain and transmits the success message to the other node.
또는 일반 블록 검증 결과, 검증 대상인 일반 블록이 일반 블록 검증을 통과하지 못하면, 검증 노드는 다른 노드에 거절 메시지를 전송한다.Otherwise, if the normal block verification does not pass the normal block verification, the verification node sends a rejection message to the other node.
도 8은 본 발명의 일 실시예에 따른 블록체인 생성 시스템에서 인증 노드가 인증 블록을 생성하는 과정의 다른예를 설명하기 위한 도면이다. 도 1 및 도 8을 참조하면, 인증 노드(10)는 기존 블록체인에 새롭게 연결될 블록이 설정된 순번인지를 판단한다.8 is a view for explaining another example of a process of an authentication node generating an authentication block in a block chain generation system according to an embodiment of the present invention. Referring to FIG. 1 and FIG. 8, the
만약, 새롭게 연결될 블록이 설정된 순번이라면, 인증 노드(10)는 현재 시점이 기준 시점으로부터 설정 시간 내인지 여부를 판단한다.If the block to be newly connected is the set sequence number, the
예컨대, 기준 시점은 기존 블록체인에 새롭게 연결될 블록의 이전에 생성된 블록일 수 있다. 달리 표현하면, 기준 시점은 기존 블록체인의 마지막에 배치된 블록이 생성된 시점일 수 있다.For example, the reference time point may be a previously generated block of a block to be newly connected to an existing block chain. In other words, the reference time point may be the time point at which the block disposed at the end of the existing block chain is generated.
이 경우, 인증 노드(10)는 현재 시점이 기존 블록체인에 새롭게 연결될 블록의 이전 블록이 생성된 시점으로부터 설정 시간 내인지 여부를 판단한다. 예컨대, 설정 시간은 5분 또는 10분일 수 있으나 이에 국한되지 않는다.In this case, the
인증 노드(10)는 기존 블록체인에 새롭게 연결될 블록의 이전 블록의 헤더부의 '타임스탬프 필드'에 기재된 데이터를 통해 해당 이전 블록의 생성 시점을 확인할 수 있다.The
만약, 현재 시점이 기준 시점으로부터 설정된 시간 내라면, 인증 노드(10)는 자신이 만들었음을 증명하는 인증 데이터를 포함하는 인증 블록을 생성한다. 이후, 인증 노드(10)는 생성된 인증 블록을 다른 노드에 전파한다.If the current time is within the set time from the reference time, the
만약, 현재 시점이 기준 시점으로부터 설정된 시간을 초과하면, 인증 노드(10)는 해당 설정된 순번에 배치되는 일반 블록을 생성할 수 있다. 이 경우, 현재 시점이 기준 시점으로부터 설정된 시간을 초과하면 인증 노드(10)라도 인증 블록을 생성할 수 없다. 이에 대해 후술한다.If the current time exceeds the set time from the reference time, the
한편, 인증 노드(10)는 기존 블록체인에 새롭게 연결될 블록이 설정된 순번인지를 판단한 결과, 설정된 순번이 아니라면, 일반 블록을 생성할 수 있다. 이후, 인증 노드(10)는 생성된 일반 블록을 다른 노드에 전파한다.Meanwhile, the
한편, 인증 노드(10)가 앞서 설명한 바와 같이 설정 순번이지만 설정된 시간을 초과하여 해당 설정 순번의 일반 블록을 생성하거나 설정 순번이 아닌 특정 순번의 일반 블록을 생성하는 과정에서 다른 채굴 노드(30)에서 먼저 생성하여 전파시킨 해당 순번의 일반 블록을 수신하게 되면, 이를 검증하고 검증된 블록을 기존 블록체인에 연결한 후 다음 작업을 수행한다.Meanwhile, when the
도 9는 본 발명의 일 실시예에 따른 블록체인 생성 시스템에서 채굴 노드가 일반 블록을 생성하는 과정의 다른예를 설명하기 위한 도면이다. 도 1 및 도 9를 참조하면, 채굴 노드(30)는 기존 블록체인에 새롭게 연결될 블록이 설정된 순번인지를 판단한다.FIG. 9 is a diagram for explaining another example of a process in which a mining node generates a general block in a block chain generation system according to an embodiment of the present invention. Referring to FIGS. 1 and 9, the
만약, 새롭게 연결될 블록이 설정된 순번이 아니라면, 채굴 노드(30)는 일반 블록을 생성한다. 이후, 채굴 노드(30)는 생성된 일반 블록을 다른 노드에 전파한다.If the block to be newly connected is not the set order, the
만약, 새롭게 연결될 블록이 설정된 순번이라면, 채굴 노드(30)는 현재 시점이 기준 시점으로부터 설정 시간 내인지 여부를 판단한다.If the block to be newly connected is the set sequence number, the
만약, 현재 시점이 기준 시점으로부터 설정된 시간 내라면, 채굴 노드(30)는 새롭게 연결될 블록이 설정된 순번인지를 계속적으로 판단한다.If the current time is within the set time from the reference time, the
만약, 현재 시점이 기준 시점으로부터 설정된 시간을 초과하면, 채굴 노드(30)는 해당 설정된 순번에 배치될 일반 블록을 생성할 수 있다. 이후, 채굴 노드(30)는 블록 생성에 성공하면 생성된 일반 블록을 다른 노드에 전파한다.If the current time exceeds the set time from the reference time, the
본 실시예에 따른 블록체인 생성 시스템에 있어서 인증 노드(10) 및 채굴 노드(30)는 도 8 및 도 9에서 설명한 바와 같이 기존 블록체인에 새롭게 연결될 블록이 설정된 순번의 블록이라도 기준 시간으로부터 설정된 시간을 초과한 경우 해당 설정된 순번에 배치될 일반 블록을 생성하는 알고리즘으로 작동한다. 이 경우, 모든 인증 노드(10)가 제대로 작동하지 않아 장시간 동안 해당 설정된 순번에 인증 블록이 생성되지 않아 시스템 전체가 기존 블록체인에 연결될 새로운 블록을 생성하는 과정이 장시간 지연되는 것을 미연에 방지할 수 있다. 8 and 9, the
도 10은 본 발명의 일 실시예에 따른 블록체인 생성 시스템에서 노드가 다른 노드에서 생성되어 전파된 블록을 검증하는 과정의 다른예를 설명하기 위한 도면이다.FIG. 10 is a diagram for explaining another example of a process for a node to verify a block generated and propagated in another node in a block-chain generation system according to an embodiment of the present invention.
도 10을 참조하면, 노드(이하, 설명의 편의를 위해 검증 노드라 함)는 다른 노드에서 생성하여 전파시킨 새로운 블록, 즉 검증 노드가 보유하고 있는 기존 블록체인에 새롭게 연결될 블록을 수신한다. 도 10에서 검증 노드는 도 1에 도시된 인증 노드(10) 중 하나 또는 채굴 노드(30) 중 하나일 수 있다.Referring to FIG. 10, a node (hereinafter, referred to as a verification node for convenience of explanation) receives a new block generated by another node, that is, a block to be newly connected to an existing block chain held by the verification node. In FIG. 10, the verification node may be one of the
이후, 검증 노드는 새로운 블록이 기존 블록체인의 설정된 순번의 블록인지 판단한다.Thereafter, the verification node determines whether the new block is a set sequential block of an existing block chain.
만약, 새로운 블록이 설정된 순번의 블록이면, 검증 노드는 새로운 블록이 생성 시점이 당시 기준 시점으로부터 설정 시간 내인지 여부를 판단한다.If the new block is the set number of blocks, the verification node determines whether the generation time of the new block is within the set time from the reference time point at that time.
이때, 검증 노드는 새로운 블록의 생성 시점을 새로운 블록의 헤더부의 '타임스탬프 필드'에 기재된 데이터를 통해 확인할 수 있고, 당시 기준 시점은 새로운 블록의 이전 블록의 헤더부의 '타임스탬프 필드'에 기재된 데이터를 통해 확인할 수 있다.At this time, the verification node can confirm the generation time of the new block through the data described in the 'time stamp field' of the header of the new block, and the reference time is the data described in the 'time stamp field' of the header part of the previous block of the new block .
만약, 새로운 블록이 생성 시점이 당시 기준 시점으로부터 설정 시간 내라면, 검증 노드는 인증 블록 검증을 수행한다.If the generation time of the new block is within the set time from the reference time point at that time, the verification node performs the authentication block verification.
인증 블록 검증 결과, 검증 대상인 인증 블록이 인증 블록 검증을 통과하면, 검증 노드는 기존 블록체인에 연결하고, 다른 노드에 성공 메시지를 전송한다. 또는 인증 블록 검증 결과, 검증 대상인 인증 블록이 인증 블록 검증을 통과하지 못하면, 검증 노드는 다른 노드에 거절 메시지를 전송한다.As a result of verification of the authentication block, if the verification block to be verified passes the authentication block verification, the verification node connects to the existing block chain and transmits the success message to the other node. Otherwise, if the verification block does not pass the authentication block verification, the verification node sends a reject message to the other node.
만약, 새로운 블록이 생성 시점이 당시 기준 시점으로부터 설정 시간을 초과하면, 검증 노드는 일반 블록 검증을 수행한다. If the generation time of the new block exceeds the set time from the base time at that time, the verification node performs normal block verification.
일반 블록 검증 결과, 검증 대상인 일반 블록이 일반 블록 검증을 통과하면, 검증 노드는 해당 일반 블록을 기존 블록체인에 연결하고, 다른 노드에 성공 메시지를 전송한다.As a result of the normal block verification, if the verification target general block passes the normal block verification, the verification node connects the corresponding normal block to the existing block chain and transmits the success message to the other node.
또는 일반 블록 검증 결과, 검증 대상인 일반 블록이 일반 블록 검증을 통과하지 못하면, 검증 노드는 다른 노드에 거절 메시지를 전송한다.Otherwise, if the normal block verification does not pass the normal block verification, the verification node sends a rejection message to the other node.
한편, 검증 노드는 수신된 새로운 블록이 설정된 순번의 블록인지 판단한 결과 설정된 순번의 블록이 아니면, 일반 블록 검증을 수행한다.On the other hand, if it is determined that the received new block is the set sequence number, the verification node performs normal block verification if it is not the set sequence number.
일반 블록 검증 결과, 검증 대상인 일반 블록이 일반 블록 검증을 통과하면, 검증 노드는 해당 일반 블록을 기존 블록체인에 연결하고, 다른 노드에 성공 메시지를 전송한다.As a result of the normal block verification, if the verification target general block passes the normal block verification, the verification node connects the corresponding normal block to the existing block chain and transmits the success message to the other node.
또는 일반 블록 검증 결과, 검증 대상인 일반 블록이 일반 블록 검증을 통과하지 못하면, 검증 노드는 다른 노드에 거절 메시지를 전송한다.Otherwise, if the normal block verification does not pass the normal block verification, the verification node sends a rejection message to the other node.
이상, 본 발명의 실시예들에 대하여 설명하였으나, 해당 기술 분야에서 통상의 지식을 가진 자라면 특허청구범위에 기재된 본 발명의 사상으로부터 벗어나지 않는 범위 내에서, 구성 요소의 부가, 변경, 삭제 또는 추가 등에 의해 본 발명을 다양하게 수정 및 변경시킬 수 있을 것이며, 이 또한 본 발명의 권리범위 내에 포함된다고 할 것이다.While the present invention has been particularly shown and described with reference to exemplary embodiments thereof, many modifications and changes may be made by those skilled in the art without departing from the spirit and scope of the invention as defined in the appended claims. The present invention can be variously modified and changed by those skilled in the art, and it is also within the scope of the present invention.
10 : 인증 노드
30 : 채굴 노드10: Authentication Node
30: mining node
Claims (14)
상기 블록체인에 새롭게 연결될 블록이 설정된 순번의 블록일 때, 인증 데이터를 포함하고, 해당 설정된 순번에 배치되는 인증 블록을 생성하는 인증 노드; 및
상기 블록체인에 새롭게 연결될 블록이 설정된 순번이 아닌 순번의 블록일 때, 해당 순번에 배치되는 일반 블록을 생성하는 채굴 노드를 포함하고,
상기 인증 데이터는,
상기 인증 노드에 할당된 공개키 데이터와, 상기 인증 노드에 할당된 비밀키로 암호화된 암호화 데이터를 포함하고,
상기 인증 블록은 이전 블록의 해시값이 기재되는 헤더부와 트랜잭션이 기재되는 바디부를 포함하는 구조를 가지고,
상기 바디부는 상기 인증 블록의 코인베이스 트랜잭션이 기재되는 코인베이스 트랜잭션 기재부와 일반 트랜잭션이 기재되는 일반 트랜잭션 기재부를 포함하는 구조를 가지며,
상기 공개키 데이터는 상기 코인베이스 트랜잭션 기재부에 기재되고,
상기 암호화 데이터는 상기 헤더부에 기재되는, 온라인 증명 블록체인 생성 시스템.A system for generating a block chain in which blocks including a transaction are sequentially connected,
An authentication node that includes authentication data and generates an authentication block that is arranged in the set sequence when the block to be newly connected to the block chain is an established block; And
And a mining node for generating a general block arranged in a corresponding order when blocks to be newly connected to the block chain are sequential blocks,
The authentication data includes:
The public key data assigned to the authentication node and the encrypted data encrypted with the secret key assigned to the authentication node,
Wherein the authentication block has a structure including a header portion in which a hash value of a previous block is described and a body portion in which a transaction is described,
The body part has a structure including a coin base transaction part in which a coin base transaction of the authentication block is described and a general transaction description part in which a general transaction is described,
Wherein the public key data is described in the coin-based transaction recording unit,
And the encrypted data is described in the header portion.
상기 암호화 데이터는 상기 코인베이스 트랜잭션 기재부에 기재된 데이터를 상기 인증 노드에 할당된 비밀키로 암호화하여 생성되는, 온라인 증명 블록체인 생성 시스템.The method according to claim 1,
And the encrypted data is generated by encrypting data described in the coin-based transaction recording unit with a secret key assigned to the authentication node.
상기 인증 노드는 상기 인증 블록을 생성한 후 상기 인증 블록을 상기 채굴 노드로 전송하고,
상기 채굴 노드는 수신한 상기 인증 블록에 포함된 상기 인증 데이터를 기초로 상기 인증 블록이 상기 인증 노드에 의해 생성되었는지 여부를 검증하는, 온라인 증명 블록체인 생성 시스템.The method according to claim 1,
Wherein the authentication node transmits the authentication block to the mining node after generating the authentication block,
Wherein the mining node verifies whether the authentication block is generated by the authentication node based on the authentication data included in the received authentication block.
상기 인증 노드는,
상기 블록체인에 새롭게 연결될 블록이 설정된 순번의 블록이면서, 현재 시점이 기준 시점으로부터 설정된 시간 내일 때, 해당 설정된 순번에 배치되는 인증 블록을 생성하는, 온라인 증명 블록체인 생성 시스템.The method according to claim 1,
The authentication node,
Wherein the authentication block generating unit generates an authentication block that is arranged in the set sequence when the block to be newly connected to the block chain is an established block and the current time is within a set time from the reference time.
상기 채굴 노드는,
상기 블록체인에 새롭게 연결될 블록이 설정된 순번의 블록이라도, 현재 시점이 기준 시점으로부터 설정된 시간을 초과하면, 해당 설정된 순번에 배치되는 일반 블록을 생성하는, 블록체인 생성 시스템.The method according to claim 6,
The mining node comprises:
And generates a normal block to be arranged in the set order even if the blocks to be newly connected to the block chain are set in order, if the current time exceeds a preset time from the reference time.
인증 노드가 상기 블록체인에 새롭게 연결될 블록이 설정된 순번의 블록일 때, 인증 데이터를 포함하고, 해당 설정된 순번에 배치되는 인증 블록을 생성하는 단계; 및
채굴 노드가 상기 블록체인에 새롭게 연결될 블록이 설정된 순번이 아닌 순번의 블록일 때, 해당 순번에 배치되는 일반 블록을 생성하는 단계를 포함하고,
상기 인증 데이터는,
상기 인증 노드에 할당된 공개키 데이터와, 상기 인증 노드에 할당된 비밀키로 암호화된 암호화 데이터를 포함하고,
상기 인증 블록은 이전 블록의 해시값이 기재되는 헤더부와 트랜잭션이 기재되는 바디부를 포함하는 구조를 가지고,
상기 바디부는 상기 인증 블록의 코인베이스 트랜잭션이 기재되는 코인베이스 트랜잭션 기재부와 일반 트랜잭션이 기재되는 일반 트랜잭션 기재부를 포함하는 구조를 가지며,
상기 공개키 데이터는 상기 코인베이스 트랜잭션 기재부에 기재되고,
상기 암호화 데이터는 상기 헤더부에 기재되는, 온라인 증명 블록체인 생성 방법.A method for generating a block chain in which blocks including transactions are sequentially connected,
Generating an authentication block including authentication data and arranged in the set sequence when the authentication node is a block of an order number in which a block to be newly connected to the block chain is set; And
When a mining node is a sequential block that is not a sequential block to which a block to be newly connected to the block chain is set, generating a general block arranged in the sequential order,
The authentication data includes:
The public key data assigned to the authentication node and the encrypted data encrypted with the secret key assigned to the authentication node,
Wherein the authentication block has a structure including a header portion in which a hash value of a previous block is described and a body portion in which a transaction is described,
The body part has a structure including a coin base transaction part in which a coin base transaction of the authentication block is described and a general transaction description part in which a general transaction is described,
Wherein the public key data is described in the coin-based transaction recording unit,
And the encrypted data is described in the header portion.
상기 암호화 데이터는 상기 코인베이스 트랜잭션 기재부에 기재된 데이터를 상기 인증 노드에 할당된 비밀키로 암호화하여 생성되는, 온라인 증명 블록체인 생성 방법.9. The method of claim 8,
Wherein the encrypted data is generated by encrypting data described in the coin-based transaction recording unit with a secret key assigned to the authentication node.
상기 인증 노드는 상기 인증 블록을 생성한 후 상기 인증 블록을 상기 채굴 노드로 전송하고,
상기 채굴 노드는 수신한 상기 인증 블록에 포함된 상기 인증 데이터를 기초로 상기 인증 블록이 상기 인증 노드에 의해 생성되었는지 여부를 검증하는, 온라인 증명 블록체인 생성 방법.9. The method of claim 8,
Wherein the authentication node transmits the authentication block to the mining node after generating the authentication block,
Wherein the mining node verifies whether the authentication block is generated by the authentication node based on the authentication data included in the received authentication block.
상기 인증 노드는,
상기 블록체인에 새롭게 연결될 블록이 설정된 순번의 블록이면서, 현재 시점이 기준 시점으로부터 설정된 시간 내일 때, 해당 설정된 순번에 배치되는 인증 블록을 생성하는, 온라인 증명 블록체인 생성 방법.9. The method of claim 8,
The authentication node,
Generating an authentication block to be newly connected to the block chain when the current time is within the set time from the reference time, and the authentication block is arranged in the set order.
상기 채굴 노드는,
상기 블록체인에 새롭게 연결될 블록이 설정된 순번의 블록이라도, 현재 시점이 기준 시점으로부터 설정된 시간을 초과하면, 해당 설정된 순번에 배치되는 일반 블록을 생성하는, 온라인 증명 블록체인 생성 방법.14. The method of claim 13,
The mining node comprises:
And generating a general block arranged in the set order if the current time exceeds a preset time from a reference time, even if the block to be newly connected to the block chain is an ordered block.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020180113973A KR101921470B1 (en) | 2018-09-21 | 2018-09-21 | System and Method for generating block chain with proof of online |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020180113973A KR101921470B1 (en) | 2018-09-21 | 2018-09-21 | System and Method for generating block chain with proof of online |
Publications (1)
Publication Number | Publication Date |
---|---|
KR101921470B1 true KR101921470B1 (en) | 2018-11-23 |
Family
ID=64565538
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020180113973A KR101921470B1 (en) | 2018-09-21 | 2018-09-21 | System and Method for generating block chain with proof of online |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR101921470B1 (en) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101977159B1 (en) * | 2018-12-28 | 2019-06-21 | (주)그린아이티코리아 | Security service providing apparatus and method supporting lightweight security |
KR102097622B1 (en) * | 2019-05-17 | 2020-04-06 | 권성석 | Personal health records sharing system and method thereof |
KR20200088180A (en) | 2019-01-14 | 2020-07-22 | 주식회사 비틀게임즈 | Data Management Method for Data Sharing service Based on Blockchain for Multi Users |
KR20200092706A (en) | 2019-01-25 | 2020-08-04 | 주식회사 하나은행 | Computer apparatus and mining method using thereof |
KR20200117473A (en) * | 2019-04-04 | 2020-10-14 | 한국전자통신연구원 | Apparatus and method for anomaly detection based on blockchain |
KR102174228B1 (en) * | 2019-12-24 | 2020-11-04 | 주식회사 호윤 | Blockchain connection system for connection between public block and private block |
KR20200141816A (en) * | 2019-06-11 | 2020-12-21 | 네이버 주식회사 | Method for managing private blockchain network and static node using the same |
KR20200142389A (en) | 2019-06-12 | 2020-12-22 | 주식회사 위즈블 | Method and system for operating blockchain real time ecosystem |
-
2018
- 2018-09-21 KR KR1020180113973A patent/KR101921470B1/en active IP Right Grant
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101977159B1 (en) * | 2018-12-28 | 2019-06-21 | (주)그린아이티코리아 | Security service providing apparatus and method supporting lightweight security |
KR20200088180A (en) | 2019-01-14 | 2020-07-22 | 주식회사 비틀게임즈 | Data Management Method for Data Sharing service Based on Blockchain for Multi Users |
KR20200092706A (en) | 2019-01-25 | 2020-08-04 | 주식회사 하나은행 | Computer apparatus and mining method using thereof |
KR20200117473A (en) * | 2019-04-04 | 2020-10-14 | 한국전자통신연구원 | Apparatus and method for anomaly detection based on blockchain |
KR102235566B1 (en) * | 2019-04-04 | 2021-04-05 | 한국전자통신연구원 | Apparatus and method for anomaly detection based on blockchain |
KR102097622B1 (en) * | 2019-05-17 | 2020-04-06 | 권성석 | Personal health records sharing system and method thereof |
KR20200141816A (en) * | 2019-06-11 | 2020-12-21 | 네이버 주식회사 | Method for managing private blockchain network and static node using the same |
KR102308232B1 (en) * | 2019-06-11 | 2021-10-05 | 네이버 주식회사 | Method for managing private blockchain network and static node using the same |
KR20200142389A (en) | 2019-06-12 | 2020-12-22 | 주식회사 위즈블 | Method and system for operating blockchain real time ecosystem |
KR102174228B1 (en) * | 2019-12-24 | 2020-11-04 | 주식회사 호윤 | Blockchain connection system for connection between public block and private block |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101921470B1 (en) | System and Method for generating block chain with proof of online | |
US10848318B2 (en) | System for authenticating certificate based on blockchain network, and method for authenticating certificate based on blockchain network by using same | |
CN107851253B (en) | Contract consensus method, consensus verification method, contract consensus system, consensus verification device, contract consensus device, computer-readable recording medium | |
RU2735439C2 (en) | System and method for protecting information | |
JP6894007B2 (en) | Transfer of digital tickets based on blockchain network | |
KR102171568B1 (en) | A voter terminal, an authentication server, a voting server, and Electronic voting system | |
Miraz et al. | Application of blockchain in booking and registration systems of securities exchanges | |
US20160162897A1 (en) | System and method for user authentication using crypto-currency transactions as access tokens | |
AU2019207310A1 (en) | Anti-replay attack authentication protocol | |
WO2021008453A1 (en) | Method and system for offline blockchain transaction based on identifier authentication | |
JP2001326632A (en) | Distribution group management system and method | |
JP2020517165A (en) | Anonymity and traceability of digital property transactions on distributed transaction agreement networks | |
KR102332226B1 (en) | Blockchain network system being capable of verifying a blockchain ledger and method for verifying a blockchain ledger | |
CN111988147A (en) | Combined signature and signature verification method, system and storage medium | |
KR102383099B1 (en) | The non-face-to-face large document access blockchain system that combines blockchain-based DID service and IPFS-based data sharing technology and private key distributed storage technology | |
CN107908932B (en) | Digital currency anti-counterfeiting and verification method, system and equipment based on L algorithm | |
Muftic | Bix certificates: Cryptographic tokens for anonymous transactions based on certificates public ledger | |
KR20210139110A (en) | Blockchain-based financial account safety management system and method therefor | |
CN114266069A (en) | House transaction electronic data sharing system and method based on block chain technology | |
JP2010231404A (en) | System, method, and program for managing secret information | |
Islam et al. | A low-cost cross-border payment system based on auditable cryptocurrency with consortium blockchain: Joint digital currency | |
Sathyaprakasan et al. | An implementation of blockchain technology in forensic evidence management | |
CN108540447A (en) | A kind of certification authentication method and system based on block chain | |
Diebold et al. | Self-Sovereign Identity using Smart Contracts on the Ethereum Blockchain | |
Brandão | A blockchain-based protocol for message exchange in a ICS network: student research abstract |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A302 | Request for accelerated examination | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
A107 | Divisional application of patent | ||
GRNT | Written decision to grant |