KR101930825B1 - System and method for authenticating users and synchronizing blocks using a block-chain network - Google Patents

System and method for authenticating users and synchronizing blocks using a block-chain network Download PDF

Info

Publication number
KR101930825B1
KR101930825B1 KR1020170010413A KR20170010413A KR101930825B1 KR 101930825 B1 KR101930825 B1 KR 101930825B1 KR 1020170010413 A KR1020170010413 A KR 1020170010413A KR 20170010413 A KR20170010413 A KR 20170010413A KR 101930825 B1 KR101930825 B1 KR 101930825B1
Authority
KR
South Korea
Prior art keywords
peer
block
authentication
user
authentication information
Prior art date
Application number
KR1020170010413A
Other languages
Korean (ko)
Other versions
KR20180086679A (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 KR1020170010413A priority Critical patent/KR101930825B1/en
Publication of KR20180086679A publication Critical patent/KR20180086679A/en
Application granted granted Critical
Publication of KR101930825B1 publication Critical patent/KR101930825B1/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communication
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communication including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3263Cryptographic mechanisms or cryptographic arrangements for secret or secure communication including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communication
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communication 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/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • H04L9/0637Modes of operation, e.g. cipher block chaining [CBC], electronic codebook [ECB] or Galois/counter mode [GCM]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communication
    • H04L9/12Transmitting and receiving encryption devices synchronised or initially set up in a particular manner
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communication
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communication including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3226Cryptographic mechanisms or cryptographic arrangements for secret or secure communication including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using a predetermined code, e.g. password, passphrase or PIN
    • H04L9/3228One-time or temporary data, i.e. information which is sent for every authentication or authorization, e.g. one-time-password, one-time-token or one-time-key

Abstract

본 발명은 블록체인 네트워크를 이용해서 사용자를 인증하고 블록을 동기화하는 시스템 및 방법에 관한 것으로, 블록체인 시스템은 블록체인 네트워크를 통하여 서로 다른 금융기관의 인증정보를 연계함으로써, 하나의 금융기관으로부터 사용자 인증을 받은 사용자가 이 인증정보를 이용하여 다른 금융기관으로부터도 금융 서비스를 받을 수 있도록 하고, 블록체인 시스템의 피어는 블록 동기화 이벤트가 발생하면 블록 생성기로 현재 블록 높이(height)를 요청하여 수신하고, 블록체인의 부족한 블록이 모두 수신될 때까지 피어 리스트(peer list)에 포함된 피어(peer)를 순차적으로 순회하면서 상기 블록체인의 블록을 상기 현재 블록 높이의 역순으로 요청하여 수신함으로써 블록체인을 동기화한다.The present invention relates to a system and method for authenticating a user and synchronizing blocks using a block-chain network, wherein a block-chain system links authentication information of different financial institutions through a block-chain network, The authenticated user can receive the financial service from other financial institutions using the authentication information. When a block synchronization event occurs, the peer of the block chain system requests and receives the current block height from the block generator A block in the block chain is requested in a reverse order of the current block height while sequentially circulating peers included in a peer list until all deficient blocks in the block chain are received, Synchronize.

Description

블록체인 네트워크를 이용해서 사용자를 인증하고 블록을 동기화하는 시스템 및 방법{System and method for authenticating users and synchronizing blocks using a block-chain network}BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a system and method for authenticating users and synchronizing blocks using a block-

이하의 일 실시 예들은 사용자를 인증하고, 관련 정보를 블록체인으로 생성하고 동기화 하는 기술에 관한 것입니다.One embodiment below relates to a technique for authenticating a user and generating and synchronizing related information into a block chain.

블록체인은 공공 거래 장부라고도 부르며 가상 화폐로 거래할 때 발생할 수 있는 해킹을 막는 기술이다. 기존 금융 회사의 경우 중앙 집중형 서버에 거래 기록을 보관하는 반면, 블록체인은 거래에 참여하는 모든 사용자에게 거래 내역을 보내 주며 거래 때마다 이를 대조해 데이터 위조를 막는 방식을 사용한다. 블록체인은 대표적인 온라인 가상 화폐인 비트코인에 적용되어 있다. 비트코인은 누구나 열람할 수 있는 장부에 거래 내역을 투명하게 기록하며, 비트코인을 사용하는 여러 컴퓨터가 이 기록을 검증하여 해킹을 막는다A block chain is also called a public transaction book and is a technique to prevent hacking that may occur when trading with virtual currency. In the case of existing financial companies, transaction logs are kept on a centralized server, while block chains send transactions to all users participating in the transaction, and are used to prevent counterfeiting of data against each transaction. The block chain is applied to a bit coin, which is a typical online virtual currency. Bitcoin transparently records transaction details in a book that anyone can read, and several computers using bit coins verify this record to prevent hacking

블록체인은 단순히 비트코인에만 적용되는 기술이 아니며, 여러 데이터를 보관하는 데에도 적용함으로써 데이터베이스(DB)의 유지 보수와 보안에 따른 막대한 비용을 줄일 수 있는 효과를 가진 기술이다.Block chaining is not a technique that is applied only to bit coins. It is also applied to storing various data, thereby reducing the cost of maintenance and security of the database (DB).

이러한 블록체인 기술은 네트워크로 전달되는 트랜잭션을 수신하는 누구나가 블록을 생성할 수 있으나, 그 중에서 가장 빠르게 블록을 생성한 노드의 블록이 채택되는 형태를 가지고 있다. 또한, 유사한 시점에서 블록이 여러 개 생성되는 경우 체인이 여러 갈래로 분화되는데 이는 추후에 가장 긴 체인을 제외하고 삭제되는 방법으로 정리해서 동기화 된다.This block chain technique can be used by anyone who receives a transaction transmitted to the network to generate a block, but the block of the node that has generated the block is adopted most rapidly. In addition, if multiple blocks are created at similar time points, the chain is divided into several segments, which are then synchronized in a way that is deleted except for the longest chain.

이처럼 기존의 블록체인의 경우는 블록체인 네트워크에 포함된 임의의 피어에서 블록을 생성할 수 있어, 동시에 여러 블록이 생성될 수 있고, 그 중에서 하나의 블록이 최종 선택되는 방법으로 블록을 생성하기 때문에, 블록을 생성하는데 자원의 낭비가 초래되며, 동시에 생성된 블록의 동기화를 위한 자원의 낭비 또한 초래하게 된다.In the case of the conventional block chain, since a block can be generated at an arbitrary peer included in a block-chain network, a plurality of blocks can be simultaneously generated, and a block is generated in such a manner that one block is finally selected , A resource is wasted in generating the block, and at the same time, a waste of resources for synchronization of the generated block is also caused.

따라서, 동시에 블록이 생성됨으로써 발생하는 자원의 낭비와, 여러 블록 중에서 하나를 선택하여 동기화 하는데 소모되는 자원의 낭비를 줄일 필요가 있다. Therefore, there is a need to reduce the waste of resources caused by the simultaneous generation of blocks and the waste of resources consumed in selecting one of the blocks and synchronizing.

본 발명은 상기와 같은 종래 기술의 문제점을 해결하고자 도출된 것으로서, 블록체인 네트워크를 이용해서 사용자를 인증하고 블록을 동기화하는 시스템 및 방법을 제공하는 것을 목적으로 한다.SUMMARY OF THE INVENTION It is an object of the present invention to provide a system and method for authenticating a user and synchronizing blocks using a block-chain network.

또한, 본 발명은 서로 다른 금융기관을 이용하는 사용자들이 서로 다른 인증방법을 이용하여 각 금융기관의 사이트에 로그인하여 금융 서비스를 받는 불편함을 해소하고, 본 발명에서 제공하는 블록체인 네트워크를 통하여 서로 다른 금융기관의 인증정보를 연계함으로써, 하나의 금융기관으로부터 사용자 인증을 받은 사용자가 이 인증정보를 이용하여 다른 금융기관으로부터도 금융 서비스를 받을 수 있도록 한다.In addition, the present invention solves the inconvenience that users who use different financial institutions log on to the sites of respective financial institutions and receive financial services by using different authentication methods, By linking authentication information of a financial institution, a user who has been authenticated by a single financial institution can use the authentication information to receive financial services from another financial institution.

또한, 본 발명은 블록체인 시스템에서 블록체인 네트워크에 포함된 다른 피어들과 블록을 동기화하는 블록체인 시스템 및 방법에 관한 것으로, 피어에서 블록 동기화 이벤트가 발생하면 블록 생성기로 현재 블록 높이(height)를 요청하여 수신하고, 블록체인의 부족한 블록이 모두 수신될 때까지 피어 리스트(peer list)에 포함된 피어(peer)를 순차적으로 순회하면서 블록체인의 블록을 현재 블록 높이의 역순으로 요청하여 수신함으로써 동기화를 수행하는 방법을 제공하는 것을 목적으로 한다.In addition, the present invention relates to a block-chain system and method for synchronizing blocks with other peers included in a block-chain network in a block-chain system. When a block synchronization event occurs at a peer, a block generator sets a current block height And sequentially requests the peers included in the peer list in a reverse order of the current block height while receiving the blocks in the block chain and sequentially receiving the blocks in the block chain, And a method for performing the method.

상기와 같은 목적을 달성하기 위하여, 본 발명의 일 실시 예에 따른 블록체인 네트워크를 이용해서 사용자를 인증하고 블록을 동기화하는 방법은, 제1 피어에서 사용자의 인증서 발급 요청에 따라 인증서 식별정보, 인증정보 및 인증서를 생성하는 단계; 상기 제1 피어에서 블록체인 네트워크를 통해서 상기 인증서를 블록체인에 저장하는 단계; 상기 제1 피어에서 상기 블록체인 네트워크를 통해서 상기 인증정보를 상기 블록체인에 저장하여 상기 인증정보를 등록하는 단계; 상기 제1 피어에서 상기 인증서를 상기 사용자에게 송신하는 단계; 제2 피어에서 상기 사용자로부터 인증 요청을 수신하면, 상기 인증 요청에서 상기 인증서 식별정보를 추출하는 단계; 상기 제2 피어에서 상기 인증정보를 추정하는 단계; 상기 제2 피어에서 상기 인증서 식별정보와 상기 추정된 인증정보를 포함하는 인증 요청 정보를 상기 블록체인 네트워크를 통해서 상기 블록체인에 저장하는 단계; 상기 제1 피어에서 상기 사용자에 대한 상기 인증 요청 정보가 상기 블록체인에 저장됨을 감지하면, 상기 인증 요청 정보에 포함된 인증정보를 상기 사용자의 상기 인증 요청을 검증하는 단계; 상기 제1 피어에서 상기 검증된 결과에 해당하는 인증완료 결과를 상기 블록체인 네트워크를 통해서 상기 블록체인에 저장하는 단계; 및 상기 제2 피어에서 상기 인증완료 결과가 상기 블록체인에 저장됨을 감지하면, 상기 사용자에게 인증 여부를 송신하는 단계를 포함한다.According to another aspect of the present invention, there is provided a method for authenticating a user and synchronizing a block using a block-chain network according to an embodiment of the present invention includes: Generating information and a certificate; Storing the certificate in a block chain over the block-chain network at the first peer; Storing the authentication information in the block chain at the first peer through the block-chain network and registering the authentication information; Sending the certificate to the user at the first peer; Receiving the authentication request from the user at the second peer, extracting the certificate identification information from the authentication request; Estimating the authentication information at the second peer; Storing authentication request information including the certificate identification information and the estimated authentication information at the second peer in the block chain through the block chain network; Verifying the authentication request included in the authentication request information when the authentication request information for the user is stored in the block chain at the first peer; Storing an authentication result corresponding to the verified result at the first peer in the block chain through the block chain network; And transmitting the authentication result to the user upon detecting that the authentication result is stored in the block chain at the second peer.

이때, 상기 제1 피어에서 상기 사용자의 인증서 발급 요청에 따라 상기 인증서 식별정보, 상기 인증정보 및 상기 인증서를 생성하는 단계는, 상기 제1 피어에서 상기 사용자로부터 상기 사용자의 공개키와 상기 사용자가 생성한 임의의 난수값인 제1 난수를 포함하는 상기 사용자의 인증서 발급 요청을 수신하는 단계; 상기 제1 피어에서 상기 인증서를 식별할 수 있는 상기 인증서 식별정보를 생성하는 단계; 상기 제1 피어에서 상기 인증서 식별정보와 상기 제1 난수를 이용해서 인증정보에 해당하는 제1 인증정보를 생성하는 단계; 상기 제1 피어에서 임의의 난수값인 제2 난수를 생성하는 단계; 상기 제1 피어에서 상기 제1 인증정보와 상기 제2 난수를 이용해서 인증정보에 해당하는 제2 인증정보를 생성하는 단계; 상기 제1 피어에서 상기 제2 난수를 암호화하는 단계; 및 상기 제1 피어에서 상기 사용자의 공개키와 상기 인증서 식별정보를 이용해서 상기 인증서를 생성하는 단계를 포함할 수 있다.The generating of the certificate identification information, the authentication information, and the certificate according to the request for issuing the user's certificate from the first peer may include: generating a public key of the user from the user at the first peer, Receiving a certificate issuing request of the user including a first random number that is an arbitrary random number value; Generating the certificate identification information capable of identifying the certificate at the first peer; Generating first authentication information corresponding to authentication information using the certificate identification information and the first random number at the first peer; Generating a second random number that is an arbitrary random number value at the first peer; Generating second authentication information corresponding to authentication information using the first authentication information and the second random number at the first peer; Encrypting the second random number at the first peer; And generating the certificate using the public key of the user and the certificate identification information at the first peer.

이때, 상기 인증정보를 등록하는 단계는, 상기 제2 인증정보, 상기 인증서 식별정보 및 상기 암호화된 제2 난수를 상기 블록체인에 저장하는 단계를 포함할 수 있다.The step of registering the authentication information may include storing the second authentication information, the certificate identification information, and the encrypted second random number in the block chain.

이때, 상기 제2 피어에서 상기 인증정보를 추정하는 단계는, 상기 사용자로부터 수신한 상기 인증 요청에서 추출하는 상기 인증서 식별정보와 상기 제1 난수를 이용해서 추정된 제1 인증정보를 생성하는 단계를 포함하고, 상기 제1 피어에서 상기 사용자에 대한 상기 인증 요청 정보가 상기 블록체인에 저장됨을 감지하면, 상기 인증 요청 정보에 포함된 인증정보를 상기 사용자의 상기 인증 요청을 검증하는 단계는, 상기 제1 피어에서 상기 블록체인에 상기 인증서 식별정보와 함께 저장된 상기 암호화된 제2 난수를 확인하는 단계; 상기 제1 피어에서 상기 암호화된 제2 난수를 복호화하는 단계; 상기 제1 피어에서 상기 추정된 제1 인증정보와 복호화를 통해 획득한 상기 제2 난수를 이용해서 제2 인증정보를 계산하여 추정된 제2 인증정보를 생성하는 단계; 및 상기 제1 피어에서 상기 블록체인에 상기 인증서 식별정보와 함께 저장된 상기 제2 인증정보와 상기 추정된 제2 인증정보를 비교해서 검증하는 단계를 포함할 수 있다.The step of estimating the authentication information at the second peer may include generating the first authentication information estimated using the first random number and the certificate identification information extracted from the authentication request received from the user Wherein the step of verifying the authentication request included in the authentication request information includes verifying the authentication request of the user in the block chain if the authentication request information for the user is stored in the block chain at the first peer, Confirming the encrypted second random number stored in the block chain with the certificate identification information at a first peer; Decrypting the encrypted second random number at the first peer; Generating second authentication information estimated by calculating second authentication information using the estimated first authentication information and the second random number obtained through the decoding at the first peer; And comparing and verifying the second authentication information stored in the block chain together with the certificate identification information and the estimated second authentication information at the first peer.

이때, 블록체인 네트워크를 이용해서 사용자를 인증하고 블록을 동기화하는 방법은, 상기 제1 피어 또는 제2 피어는 블록 동기화 이벤트의 발생을 감지하면, 블록 생성기로 현재 블록 높이(height)를 요청하여 수신하는 단계; 및 상기 블록 동기화 이벤트의 발생을 감지한 피어에서 해당 피어에 저장된 블록체인의 부족한 블록이 모두 수신될 때까지 피어 리스트(peer list)에 포함된 피어(peer)를 순차적으로 순회하면서 상기 블록체인의 블록을 상기 현재 블록 높이의 역순으로 요청하여 수신하는 동기화 단계를 더 포함할 수 있다.In this case, when the first peer or the second peer detects the occurrence of the block synchronization event, the method for requesting the current block height is requested by the block generator, ; And a peer that is included in a peer list and sequentially traverses a peer included in the peer list until a defective block of a block chain stored in the corresponding peer is received from a peer that has detected the occurrence of the block synchronization event, To the current block height in the reverse order of the current block height.

본 발명의 다른 실시 예에 따른 블록체인 네트워크를 이용해서 사용자를 인증하고 블록을 동기화하는 방법은, 제1 피어에서 사용자로부터 아이디와 패스워드를 포함하는 인증 등록 요청을 수신하는 단계; 상기 제1 피어에서 상기 아이디와와 상기 패스워드를 이용해서 인증정보에 해당하는 제1 인증정보를 생성하는 단계; 상기 제1 피어에서 임의의 난수값인 난수를 생성하는 단계; 상기 제1 피어에서 상기 제1 인증정보와 상기 난수를 이용해서 인증정보에 해당하는 제2 인증정보를 생성하는 단계; 상기 제1 피어에서 상기 난수를 암호화하는 단계; 상기 제1 피어에서 블록체인 네트워크를 통해서 상기 사용자의 아이디, 상기 제2 인증정보 및 상기 암호화된 난수의 인증정보를 블록체인에 저장하는 단계; 제2 피어에서 상기 사용자로부터 인증 요청을 수신하면, 상기 인증 요청에서 아이디와 패스워드를 추출하는 단계; 제2 피어에서 상기 추출된 아이디와 상기 추출된 패스워드를 이용해서 제1 인증정보를 추정하여 추정된 제1 인증정보를 생성하는 단계; 상기 제2 피어에서 상기 아이디와 상기 추정된 제1 인증정보를 포함하는 인증 요청 정보를 상기 블록체인 네트워크를 통해서 상기 블록체인에 저장하는 단계; 상기 제1 피어에서 상기 사용자에 대한 상기 인증 요청 정보가 상기 블록체인에 저장됨을 감지하면, 상기 인증 요청 정보에 포함된 상기 추정된 제1 인증정보를 이용해서 상기 사용자의 상기 인증 요청을 검증하는 단계; 상기 제1 피어에서 상기 검증된 결과에 해당하는 인증완료 결과를 상기 블록체인 네트워크를 통해서 상기 블록체인에 저장하는 단계; 및 상기 제2 피어에서 상기 인증완료 결과가 상기 블록체인에 저장됨을 감지하면, 상기 사용자에게 인증 여부를 송신하는 단계를 포함한다.A method for authenticating a user and synchronizing a block using a block-chain network according to another embodiment of the present invention includes: receiving an authentication registration request including a user ID and a password from a user at a first peer; Generating first authentication information corresponding to authentication information using the ID and the password at the first peer; Generating a random number that is an arbitrary random number value at the first peer; Generating second authentication information corresponding to authentication information using the first authentication information and the random number at the first peer; Encrypting the random number at the first peer; Storing the user's identity, the second authentication information, and the authentication information of the encrypted random number in a block chain through the block-chain network at the first peer; Receiving an authentication request from the user at a second peer, extracting an ID and a password from the authentication request; Generating first authentication information estimated by estimating first authentication information using the extracted ID and the extracted password in a second peer; Storing authentication request information including the ID and the estimated first authentication information at the second peer in the block chain through the block chain network; Verifying the authentication request of the user using the estimated first authentication information included in the authentication request information if it is detected that the authentication request information for the user is stored in the block chain at the first peer ; Storing an authentication result corresponding to the verified result at the first peer in the block chain through the block chain network; And transmitting the authentication result to the user upon detecting that the authentication result is stored in the block chain at the second peer.

이때, 상기 제1 피어에서 상기 사용자에 대한 상기 인증 요청 정보가 상기 블록체인에 저장됨을 감지하면, 상기 인증 요청 정보에 포함된 상기 추정된 제1 인증정보를 이용해서 상기 사용자의 상기 인증 요청을 검증하는 단계는, 상기 제1 피어에서 상기 블록체인에 상기 아이디와 함께 저장된 상기 암호화된 난수를 확인하는 단계; 상기 제1 피어에서 상기 암호화된 난수를 복호화하는 단계; 상기 제1 피어에서 상기 추정된 제1 인증정보와 복호화를 통해 획득한 상기 난수를 이용해서 제2 인증정보를 계산하여 추정된 제2 인증정보를 생성하는 단계; 및 상기 제1 피어에서 상기 블록체인에 상기 아이디와 함께 저장된 상기 제2 인증정보와 상기 추정된 제2 인증정보를 비교해서 검증하는 단계를 포함할 수 있다.When the first peer detects that the authentication request information for the user is stored in the block chain, it verifies the authentication request of the user using the estimated first authentication information included in the authentication request information Further comprising: identifying the encrypted random number stored with the identity in the block chain at the first peer; Decrypting the encrypted random number at the first peer; Generating second authentication information estimated by calculating second authentication information using the estimated first authentication information and the random number obtained through the decoding at the first peer; And comparing and verifying the second authentication information stored in the block chain together with the ID and the estimated second authentication information at the first peer.

본 발명의 또 다른 실시 예에 따른 블록체인 시스템의 피어에서 블록을 동기화하는 방법은, 블록 동기화 이벤트가 발생하면 블록 생성기로 현재 블록 높이(height)를 요청하여 수신하는 단계; 및 블록체인의 부족한 블록이 모두 수신될 때까지 피어 리스트(peer list)에 포함된 피어(peer)를 순차적으로 순회하면서 상기 블록체인의 블록을 상기 현재 블록 높이의 역순으로 요청하여 수신하는 동기화 단계를 포함한다.In another aspect of the present invention, there is provided a method of synchronizing blocks in a block chain system, the method comprising: requesting and receiving a current block height from a block generator when a block synchronization event occurs; And a synchronization step of sequentially requesting a block in the block chain in a reverse order of the current block height while sequentially traveling through peers included in a peer list until all deficient blocks in the block chain are received .

이때, 상기 동기화 단계는, 상기 피어 리스트에 포함된 피어들을 순차적으로 순회하면서 블록을 요청할 피어를 선택하는 제1 단계; 상기 선택된 피어로 수신되지 않은 블록 중에서 마지막 높이에 해당하는 블록을 요청하는 제2 단계; 상기 요청한 블록이 수신되었는지 확인하는 제3 단계; 상기 제3 단계의 확인결과 상기 요청한 블록이 수신되었으면, 상기 블록체인의 부족한 블록이 모두 수신되었는지 확인하는 제4 단계; 및 상기 제4 단계의 확인결과 상기 블록체인의 부족한 블록을 모두 수신하지 못하였으면, 상기 제1 단계로 돌아가는 단계를 포함할 수 있다.In this case, the synchronizing step may include: a first step of sequentially selecting the peers to be requested while the peers included in the peer list are sequentially traversed; A second step of requesting a block corresponding to the last height among the blocks not received by the selected peer; A third step of checking whether the requested block has been received; If the requested block is received as a result of the third step, checking whether all the deficient blocks of the block chain have been received; And returning to the first step if all the deficient blocks in the block chain are not received as a result of the checking in the fourth step.

이때, 상기 동기화 단계는, 상기 제3 단계의 확인결과 상기 요청한 블록이 수신되지 않으면, 상기 선택된 피어를 비정상 피어(abnormal peer)로 분류하고, 상기 피어 리스트에서 제외하고 상기 제1 단계로 돌아가는 단계를 포함할 수 있다.In this case, if the requested block is not received as a result of the checking in the third step, the synchronizing step may include classifying the selected peer as an abnormal peer, removing the peer from the peer list, and returning to the first step .

이때, 블록체인 시스템의 피어에서 블록을 동기화하는 방법은, 상기 비정상 피어로 분류된 피어 각각으로 동기화가 필요함을 알리는 보고 메시지를 송부하는 단계를 더 포함할 수 있다.In this case, the method of synchronizing the blocks in the peer of the block-chain system may further include sending a report message indicating that synchronization is required for each of the peers classified as the abnormal peer.

이때, 상기 제4 단계에서 상기 블록체인의 부족한 블록이 모두 수신되었는지의 확인은, 상기 수신된 블록이 상기 피어에 저장된 블록의 다음 순번의 블록이면, 상기 블록체인의 부족한 블록을 모두 수신하였다고 판단할 수 있다.If it is determined in step 4 that all the deficient blocks in the block chain have been received, it is determined that all the deficient blocks in the block chain are received if the received block is the next sequential block of the block stored in the peer .

이때, 상기 블록 동기화 이벤트는, 상기 피어가 처음 시작할 때 발생할 수 있다.At this time, the block synchronization event may occur when the peer first starts.

이때, 상기 블록 동기화 이벤트는, 수신한 블록이 상기 피어에 저장된 마지막 블록의 다음 순서의 블록이 아닌 경우에 발생할 수 있다.At this time, the block synchronization event may occur when the received block is not the next block of the last block stored in the peer.

이때, 상기 블록 동기화 이벤트는, 기설정된 시간간격으로 상기 블록 생성기로 상기 현재 블록 높이를 요청하여 수신하고, 상기 현재 블록 높이와 상기 피어에 저장된 블록체인의 블록 높이를 비교해서 같지 않은 경우에 발생할 수 있다.In this case, the block synchronization event may be generated by requesting and receiving the current block height from the block generator at a predetermined time interval, comparing the current block height with a block height of the block chain stored in the peer, have.

이때, 상기 블록 동기화 이벤트는, 블록체인 네트워크에 포함된 다른 피어로부터 비정상 피어임을 알리는 보고 메시지를 수신하는 경우에 발생할 수 있다.At this time, the block synchronization event may occur when receiving a report message indicating an abnormal peer from another peer included in the block-chain network.

본 발명의 또 다른 실시 예에 따른 블록체인 시스템은, 블록체인 네트워크에 연결되어, 상기 블록체인 네트워크로부터 트랜잭션들을 수신하고, 상기 수신한 트랜잭션들을 포함하는 블록체인을 생성하고 배포하고 상기 블록체인 네트워크에 포함된 피어의 요청에 따라 현재 블록 높이(height)를 제공하는 블록 생성기; 및 트랜잭션이 생성되면 상기 블록체인 네트워크를 통해 상기 블록 생성기로 송신하고, 상기 블록 생성기로부터 생성된 블록을 수신하고, 블록 동기화 이벤트가 발생하면 상기 블록 생성기로 상기 현재 블록 높이를 요청하여 수신하고, 피어에 저장된 블록체인의 부족한 블록이 모두 수신될 때까지 피어 리스트(peer list)에 포함된 다른 피어(peer)들을 순차적으로 순회하면서 상기 블록체인의 블록을 상기 현재 블록 높이의 역순으로 요청하여 수신함으로써 동기화 하는 피어를 포함한다.A block-chain system in accordance with another embodiment of the present invention is coupled to a block-chain network for receiving transactions from the block-chain network, creating and distributing block chains containing the received transactions, A block generator for providing a current block height according to a request of an included peer; And receiving a block generated from the block generator. When a block synchronization event is generated, the block generator requests and receives the current block height from the block generator, And sequentially requests the other peers included in the peer list in a reverse order of the current block height and sequentially receives and receives the blocks of the block chain, Lt; / RTI >

이때, 상기 피어는, 상기 요청한 블록이 수신되지 않으면, 상기 요청한 블록을 요청했던 피어를 비정상 피어(abnormal peer)로 분류하고, 상기 비정상 피어로 분류된 피어로 동기화가 완료될 때까지 더 이상 블록을 요청하지 않도록 상기 피어 리스트에서 제외할 수 있다.In this case, if the requested block is not received, the peer classifies the requesting block as an abnormal peer, and further blocks until the synchronization is completed with the peer classified as the abnormal peer It can be excluded from the peer list so as not to request it.

본 발명은 서로 다른 금융기관을 이용하는 사용자들이 서로 다른 인증방법을 이용하여 각 금융기관의 사이트에 로그인하여 금융 서비스를 받는 불편함을 해소하고, 블록체인 네트워크를 통하여 서로 다른 금융기관의 인증정보를 연계함으로써, 하나의 금융기관으로부터 사용자 인증을 받은 사용자가 이 인증정보를 이용하여 다른 금융기관으로부터도 금융 서비스를 받을 수 있도록 한다.The present invention eliminates the inconvenience that users who use different financial institutions log in to the sites of respective financial institutions by using different authentication methods and receive financial services, and link authentication information of different financial institutions through a block- So that a user who has been authenticated by a single financial institution can receive financial services from other financial institutions using the authentication information.

또한, 본 발명은 블록체인 시스템의 피어에서 블록 동기화 이벤트가 발생하면 블록 생성기로 현재 블록 높이(height)를 요청하여 수신하고, 블록체인의 부족한 블록이 모두 수신될 때까지 피어 리스트(peer list)에 포함된 피어(peer)를 순차적으로 순회하면서 블록체인의 블록을 현재 블록 높이의 역순으로 요청하여 수신함으로써 동기화를 수행하기 때문에, 동기화를 위한 블록의 송신을 여러 피어로 분산하는 효과를 가진다.In addition, when a block synchronization event occurs at a peer of a block-chain system, the present invention requests and receives a current block height from the block generator, and transmits the request to the peer list until all deficient blocks of the block chain are received. Since the synchronization is performed by sequentially requesting the blocks included in the block chain in the reverse order of the current block height while sequentially circulating the included peers, the transmission of the blocks for synchronization is distributed to the plurality of peers.

도 1는 본 발명의 일 실시 예에 따른 서로 다른 피어의 인증정보를 연계해서 사용자를 인증할 수 있는 블록체인 시스템의 개략적인 구성을 도시한 도면이다.
도 2는 본 발명의 일 실시 예에 따른 블록체인 시스템에서 인증서를 이용해서 사용자를 인증하는 과정을 도시한 흐름도이다.
도 3은 본 발명의 일 실시 예에 따른 블록체인 시스템에서 인증서를 사용하지 않고 사용자를 인증하는 과정을 도시한 흐름도이다.
도 4는 본 발명의 일 실시 예에 따른 블록체인 시스템에서 트랜잭션을 처리하는 방법을 도시한 도면이다.
도 5는 본 발명의 일 실시 예에 따른 블록체인 시스템에서 블록을 생성하는 방법을 도시한 도면이다.
도 6은 본 발명의 일 실시 예에 따른 블록체인 시스템의 블록 생성기에서 생성하는 블록체인의 예를 도시한 도면이다.
도 7은 본 발명의 일 실시 예에 따른 블록체인 시스템의 개략적인 구성을 도시한 도면이다.
도 8은 본 발명의 일 실시 예에 따른 블록체인 시스템의 피어에서 블록을 동기화하는 과정을 도시한 흐름도이다.
도 9는 본 발명의 일 실시 예에 따른 블록체인 시스템의 피어에서 블록 동기화 이벤트가 발생하는 과정의 예를 도시한 흐름도이다.
도 10은 본 발명의 일 실시 예에 따른 블록체인 시스템에서 블록 동기화를 하는 일 예를 도시한 도면이다.
도 11은 본 발명의 일 실시 예에 따른 블록체인 시스템에서 블록 동기화를 하는 다른 예를 도시한 도면이다.
FIG. 1 is a block diagram of a block chain system capable of authenticating a user by associating authentication information of different peers according to an embodiment of the present invention. Referring to FIG.
FIG. 2 is a flowchart illustrating a process of authenticating a user using a certificate in a block-chain system according to an exemplary embodiment of the present invention.
3 is a flowchart illustrating a process of authenticating a user without using a certificate in a block-chain system according to an embodiment of the present invention.
4 is a diagram illustrating a method of processing a transaction in a block-chaining system according to an embodiment of the present invention.
5 is a diagram illustrating a method of generating a block in a block-chain system according to an embodiment of the present invention.
6 is a diagram illustrating an example of a block chain generated by a block generator of a block-chain system according to an embodiment of the present invention.
7 is a schematic block diagram of a block-chain system according to an embodiment of the present invention.
FIG. 8 is a flowchart illustrating a process of synchronizing blocks in a peer of a block-chain system according to an embodiment of the present invention.
FIG. 9 is a flowchart illustrating an example of a process of generating a block synchronization event at a peer of a block-chain system according to an embodiment of the present invention.
FIG. 10 illustrates block synchronization in a block-chain system according to an embodiment of the present invention. Referring to FIG.
11 is a diagram illustrating another example of block synchronization in a block-chain system according to an embodiment of the present invention.

본 명세서에 개시되어 있는 본 발명의 개념에 따른 실시 예들에 대해서 특정한 구조적 또는 기능적 설명들은 단지 본 발명의 개념에 따른 실시 예들을 설명하기 위한 목적으로 예시된 것으로서, 본 발명의 개념에 따른 실시 예들은 다양한 형태로 실시될 수 있으며 본 명세서에 설명된 실시 예들에 한정되지 않는다.It is to be understood that the specific structural or functional descriptions of embodiments of the present invention disclosed herein are only for the purpose of illustrating embodiments of the inventive concept, But may be embodied in many different forms and should not be construed as limited to the embodiments set forth herein.

본 발명의 개념에 따른 실시 예들은 다양한 변경들을 가할 수 있고 여러 가지 형태들을 가질 수 있으므로 실시 예들을 도면에 예시하고 본 명세서에 상세하게 설명하고자 한다. 그러나, 이는 본 발명의 개념에 따른 실시 예들을 특정한 개시형태들에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 변경, 균등물, 또는 대체물을 포함한다.Embodiments in accordance with the concepts of the present invention are capable of various modifications and may take various forms, so that the embodiments are illustrated in the drawings and described in detail herein. However, it is not intended to limit the embodiments according to the concepts of the present invention to the specific disclosure forms, but includes changes, equivalents, or alternatives falling within the spirit and scope of the present invention.

제1 또는 제2 등의 용어를 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만, 예를 들어 본 발명의 개념에 따른 권리 범위로부터 이탈되지 않은 채, 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소는 제1 구성요소로도 명명될 수 있다.The terms first, second, or the like may be used to describe various elements, but the elements should not be limited by the terms. The terms may be named for the purpose of distinguishing one element from another, for example without departing from the scope of the right according to the concept of the present invention, the first element being referred to as the second element, Similarly, the second component may also be referred to as the first component.

어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다. 구성요소들 간의 관계를 설명하는 표현들, 예를 들어 "~사이에"와 "바로~사이에" 또는 "~에 직접 이웃하는" 등도 마찬가지로 해석되어야 한다.It is to be understood that when an element is referred to as being "connected" or "connected" to another element, it may be directly connected or connected to the other element, . On the other hand, when an element is referred to as being "directly connected" or "directly connected" to another element, it should be understood that there are no other elements in between. Expressions that describe the relationship between components, for example, "between" and "immediately" or "directly adjacent to" should be interpreted as well.

본 명세서에서 사용한 용어는 단지 특정한 실시 예들을 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, "포함하다" 또는 "가지다" 등의 용어는 실시된 특징, 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것이 존재함으로 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.The terminology used herein is for the purpose of describing particular embodiments only and is not intended to be limiting of the invention. The singular expressions include plural expressions unless the context clearly dictates otherwise. In this specification, the terms "comprises ", or" having ", and the like, are used to specify one or more other features, numbers, steps, operations, elements, But do not preclude the presence or addition of steps, operations, elements, parts, or combinations thereof.

다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가진다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미를 갖는 것으로 해석되어야 하며, 본 명세서에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.Unless defined otherwise, all terms used herein, including technical or scientific terms, have the same meaning as commonly understood by one of ordinary skill in the art to which this invention belongs. Terms such as those defined in commonly used dictionaries are to be interpreted as having a meaning consistent with the meaning of the context in the relevant art and, unless explicitly defined herein, are to be interpreted as ideal or overly formal Do not.

이하, 실시 예들을 첨부된 도면을 참조하여 상세하게 설명한다. 그러나, 특허출원의 범위가 이러한 실시 예들에 의해 제한되거나 한정되는 것은 아니다. 각 도면에 제시된 동일한 참조 부호는 동일한 부재를 나타낸다.Hereinafter, embodiments will be described in detail with reference to the accompanying drawings. However, the scope of the patent application is not limited or limited by these embodiments. Like reference symbols in the drawings denote like elements.

이하에서는, 본 발명의 일 실시 예에 따른 피어들 간의 블록을 동기화하는 블록체인 시스템 및 방법을 첨부된 도 1 내지 도 11을 참조하여 상세히 설명한다.Hereinafter, a block-chain system and method for synchronizing blocks between peers according to an embodiment of the present invention will be described in detail with reference to FIGS. 1 to 11.

도 1는 본 발명의 일 실시 예에 따른 서로 다른 피어의 인증정보를 연계해서 사용자를 인증할 수 있는 블록체인 시스템의 개략적인 구성을 도시한 도면이다.FIG. 1 is a block diagram of a block chain system capable of authenticating a user by associating authentication information of different peers according to an embodiment of the present invention. Referring to FIG.

도 1을 참조하면, 사용자(110)는 피어들(121~125)중에서 제1 피어(121)로 사용자의 인증을 등록한 후에 제2 피어(122)로 인증을 요청하면, 제2 피어(122) 블록체인 네트워크(120)의 블록체인을 통해서 사용자를 인증해서 인증결과를 사용자(110)에게 송신할 수 있다.Referring to FIG. 1, when the user 110 requests authentication with the second peer 122 after registering the user's authentication with the first peer 121 among the peers 121 to 125, It is possible to authenticate the user through the block chain of the block chain network 120 and transmit the authentication result to the user 110. [

이때, 피어들(121~125)에는 블록체인에 데이터를 저장하고, 블록체인에 저장된 데이터를 확인하고, 블록체인을 관리하기 위한 어플리케이션이 설치되어 본 발명의 사용자 인증과정 및 블록 동기화 과정을 수행할 수 있다.At this time, an application for storing data in a block chain, checking data stored in a block chain, and managing a block chain is installed in the peers 121 to 125 to perform the user authentication process and the block synchronization process of the present invention .

블록체인 시스템에서 인증서를 생성해서 사용자를 인증하는 과정을 도 1의 구성을 기반으로 도 2를 통해서 보다 상세히 후술하고, 블록체인 시스템에서 아이디와 패스워드를 이용해서 사용자를 인증하는 과정을 도 1의 구성을 기반으로 도 3을 통해서 보다 상세히 후술한다.A process of authenticating a user by generating a certificate in a block chain system will be described in more detail below with reference to FIG. 2 based on the configuration of FIG. 1, and a process of authenticating a user using an ID and a password in a block- Will be described later in more detail with reference to FIG.

도 2는 본 발명의 일 실시 예에 따른 블록체인 시스템에서 인증서를 이용해서 사용자를 인증하는 과정을 도시한 흐름도이다.FIG. 2 is a flowchart illustrating a process of authenticating a user using a certificate in a block-chain system according to an exemplary embodiment of the present invention.

도 2를 참조하면, 사용자(110)에서 공개키, 개인키 및 임의의 난수값인 제1 난수를 생성하고(210), 제1 피어(121)로 인증서 발급 요청을 송신한다(211). 이때, 인증서 발급 요청은 공개키와 제1 난수를 포함한다. 이때, 제1 난수의 보안을 위해서 사용자는 제1 난수를 별도의 암호화 방식으로 암호화해서 전달할 수도 있고, 또는 인증서 발급 요청을 암호화 통신을 통해 전달할 수도 있다.2, the user 110 generates a public key, a private key, and a first random number, which is a random number, at step 210, and transmits a certificate issuance request to the first peer 121 at step 211. At this time, the certificate issuing request includes the public key and the first random number. In this case, for security of the first random number, the user may encrypt the first random number with a separate encryption method, or may transmit the certificate issuing request through encryption communication.

그리고, 제1 피어(121)에서 사용자(110)로부터 사용자(110)의 공개키와 제1 난수를 포함하는 사용자(110)의 인증서 발급 요청을 수신하면(211), 인증서를 식별할 수 있는 인증서 식별정보를 생성한다(212). 이때, 인증서 식별정보는 사용자(110)를 식별할 수 있는 정보이다.When the first peer 121 receives the certificate issuance request of the user 110 including the public key of the user 110 and the first random number from the user 110 in step 211, And generates identification information (212). At this time, the certificate identification information is information that can identify the user 110.

그리고, 제1 피어(121)에서 인증서 식별정보와 제1 난수를 이용해서 인증정보에 해당하는 제1 인증정보를 생성한다(213). 이때, 제1 피어(121)는 제1 난수와 인증서 식별정보를 연접(concatenate)한 값에 해시함수를 적용해서 제1 인증정보를 생성할 수 있다.Then, the first peer 121 generates the first authentication information corresponding to the authentication information using the certificate identification information and the first random number (213). At this time, the first peer 121 may generate the first authentication information by applying a hash function to a value obtained by concatenating the first random number and the certificate identification information.

그리고, 제1 피어(121)에서 임의의 난수값인 제2 난수를 생성한다(214). 이때, 제1 피어(121)는 제2 난수 대신에 사용자(110)와 관련된 정보를 이용해서 임의로 만든 값을 이용할 수도 있다.Then, the first peer 121 generates a second random number which is an arbitrary random number (214). At this time, the first peer 121 may use a random value by using information related to the user 110 instead of the second random number.

그리고, 제1 피어(121)에서 제1 인증정보와 제2 난수를 이용해서 인증정보에 해당하는 제2 인증정보를 생성한다(215). 이때, 제1 피어(121)는 제1 인증정보와 제2 난수를 연접(concatenate)한 값에 해시함수를 적용해서 제2 인증정보를 생성할 수 있다.Then, the first peer 121 generates second authentication information corresponding to the authentication information using the first authentication information and the second random number (215). At this time, the first peer 121 may generate the second authentication information by applying a hash function to a value obtained by concatenating the first authentication information and the second random number.

그리고, 제1 피어(121)에서 제2 난수를 암호화 한다(216). 이때, 제1 피어(121)는 제1 피어(121)에서만 복호화 할 수 있도록 제2 난수를 암호화를 한다.Then, the first peer 121 encrypts the second random number (216). At this time, the first peer 121 encrypts the second random number so that it can be decrypted only by the first peer 121.

그리고, 제1 피어(121)에서 사용자(110)의 공개키와 인증서 식별정보를 이용해서 인증서를 생성한다(217).The first peer 121 generates a certificate using the public key of the user 110 and the certificate identification information (217).

그리고, 제1 피어(121)에서 블록체인 네트워크를 통해서 인증서를 블록체인(200)에 저장한다(218). 이때, 피어들(121, 122)은 인증서에서 사용자(110)의 공개키와 인증서 식별정보를 확인할 수 있다.The certificate is stored in the block chain 200 through the block-chain network at the first peer 121 (218). At this time, the peers 121 and 122 can confirm the public key and the certificate identification information of the user 110 in the certificate.

그리고, 제1 피어(121)에서 블록체인 네트워크를 통해서 제2 인증정보, 인증서 식별정보 및 암호화된 제2 난수를 블록체인에 저장한다(219).The first peer 121 stores the second authentication information, the certificate identification information, and the encrypted second random number through the block-chain network in the block chain (219).

그리고, 제1 피어(121)에서 인증서를 사용자(110)에게 송신한다(220).Then, the first peer 121 transmits a certificate to the user 110 (220).

이후, 사용자(110)에서 제2 피어(122)로부터 인증을 받을 필요가 발생하는 경우, 사용자(110)는 제2 피어(122)로 인증요청을 송신한다(230). 이때, 인증요청에는 전자서명과 제1 난수가 포함될 수 있고, 전자서명은 인증서 또는 인증서 식별정보와 같이 인증서를 식별할 수 있는 정보를 포함할 수 있다.Thereafter, when the user 110 needs to be authenticated from the second peer 122, the user 110 sends an authentication request to the second peer 122 (230). At this time, the authentication request may include an electronic signature and a first random number, and the digital signature may include information capable of identifying the certificate, such as a certificate or certificate identification information.

제2 피어(122)에서 사용자(110)로부터 인증요청을 수신하면(230), 인증요청에서 인증서 식별정보를 추출한다(231).When the second peer 122 receives the authentication request from the user 110 (230), it extracts the certificate identification information from the authentication request (231).

그리고, 제2 피어(122)에서 사용자(110)로부터 수신한 인증요청에서 추출하는 인증서 식별정보와 제1 난수를 이용해서 추정된 제1 인증정보를 생성한다(232). 이때, 제2 피어(122)는 추출한 제1 난수와 추출한 인증서 식별정보를 연접(concatenate)한 값에 해시함수를 적용해서 추정된 제1 인증정보를 생성할 수 있다.Then, the second peer 122 generates the first authentication information estimated using the first random number and the certificate identification information extracted from the authentication request received from the user 110 (232). At this time, the second peer 122 can generate the first authentication information estimated by applying a hash function to a value obtained by concatenating the extracted first random number and the extracted certificate identification information.

그리고, 제2 피어(122)에서 인증서 식별정보와 추정된 인증정보를 포함하는 인증 요청 정보를 블록체인 네트워크를 통해서 블록체인(200)에 저장한다(233).In the second peer 122, the authentication request information including the certificate identification information and the estimated authentication information is stored in the block chain 200 through the block chain network (233).

그리고, 제1 피어(121)에서 사용자(110)에 대한 인증 요청 정보가 블록체인(200)에 저장됨을 감지하면(234), 블록체인(200)에 인증서 식별정보와 함께 저장된 암호화된 제2 난수를 확인하고, 암호화된 제2 난수를 복호화 한다(235).When the first peer 121 detects that the authentication request information for the user 110 is stored in the block chain 200 at step 234, the encrypted second random number stored with the certificate identification information in the block chain 200 And decrypts the encrypted second random number (235).

그리고, 제1 피어(121)에서 추정된 제1 인증정보와 복호화를 통해 획득한 제2 난수를 이용해서 제2 인증정보를 계산하여 추정된 제2 인증정보를 생성한다(236). 이때, 제1 피어(121)는 추정된 제1 인증정보와 복호화를 통해 획득한 제2 난수를 연접(concatenate)한 값에 해시함수를 적용해서 추정된 제2 인증정보를 생성할 수 있다.The second authentication information is calculated using the first authentication information estimated by the first peer 121 and the second random number acquired through the decryption, and the estimated second authentication information is generated (236). At this time, the first peer 121 can generate the second authentication information estimated by applying a hash function to a value obtained by concatenating the estimated first authentication information and the second random number obtained through the decryption.

그리고, 제1 피어(121)에서 블록체인(200)에 인증서 식별정보와 함께 저장된 제2 인증정보와 추정된 제2 인증정보를 비교해서 인증 여부를 검증한다(237). 이때, 제1 피어(121)는 블록체인(200)에 저장된 제2 인증정보와 추정된 제2 인증정보가 동일하면 인증에 성공한 것(인증된 사용자)으로 판단하고, 블록체인(200)에 저장된 제2 인증정보와 추정된 제2 인증정보가 동일하지 않으면, 인증에 실패한 것(인증되지 않은 사용자)으로 판단할 수 있다.Then, the first peer 121 compares the second authentication information stored in the block chain 200 together with the certificate identification information and the estimated second authentication information, and verifies whether the authentication is successful (237). At this time, the first peer 121 determines that the authentication is successful (authenticated user) if the second authentication information stored in the block chain 200 and the estimated second authentication information are the same, If the second authentication information and the estimated second authentication information are not the same, it can be determined that authentication has failed (unauthenticated user).

그리고, 제1 피어(121)에서 검증된 결과에 해당하는 인증완료 결과를 블록체인 네트워크를 통해서 블록체인(200)에 저장한다(238).Then, the authentication result corresponding to the result verified by the first peer 121 is stored in the block chain 200 through the block-chain network (238).

제2 피어(122)에서 인증완료 결과가 블록체인(200)에 저장됨을 감지하면(239), 사용자(110)에게 인증 여부를 송신한다(240).When the second peer 122 detects that the authentication result is stored in the block chain 200 (239), the second peer 122 transmits the authentication result to the user 110 (240).

218, 219, 233, 238 단계에서 블록체인(200)에 저장한다는 것은 218, 219, 233, 238 단계에서 블록체인(200)에 저장할 데이터 각각을 하나의 트랜잭션으로 하여 블록체인(200)에 포함되는 블록으로 생성함을 나타내는 것이다. 이때, 블록체인(200)에 저장하기 위해서는 피어는 아래 도 4와 같이 블록체인에 포함되는 블록을 생성하는 블록 생성기(128)로 데이터를 송신할 수 있고, 블록 생성기(128)는 아래 도 5와 같은 방법으로 블록체인에 포함된 블록을 생성하여 블록체인에 저장할 수 있다.In step 218, step 219, step 233 and step 238, the data is stored in the block chain 200. In step 218, steps 213, 233 and 238 are performed to store data to be stored in the block chain 200 as one transaction, Block. ≪ / RTI > In order to store the data in the block chain 200, the peer may transmit data to the block generator 128, which generates blocks included in the block chain, as shown in FIG. 4 below. In the same way, blocks included in a block chain can be created and stored in a block chain.

도 4는 본 발명의 일 실시 예에 따른 블록체인 시스템에서 트랜잭션을 처리하는 방법을 도시한 도면이다.4 is a diagram illustrating a method of processing a transaction in a block-chaining system according to an embodiment of the present invention.

도 4를 참조하면, 피어(121-125)는 블록체인에 저장될 데이터를 트랜잭션으로 생성하고, 생성된 트랜잭션을 블록 생성기(128)로 송신한다(410).Referring to FIG. 4, the peers 121 to 125 generate data to be stored in the block chain as a transaction, and transmit the generated transaction to the block generator 128 (410).

블록 생성기(128)는 수신하는 트랜잭션을 내부 큐(queue)에 저장한다(420).The block generator 128 stores the receiving transaction in an internal queue (420).

도 5는 본 발명의 일 실시 예에 따른 블록체인 시스템에서 블록을 생성하는 방법을 도시한 도면이다.5 is a diagram illustrating a method of generating a block in a block-chain system according to an embodiment of the present invention.

도 5를 참조하면, 블록 생성기(128)는 기설정된 시간간격으로 블록을 생성하고(510), 블록의 페이로드에 저장한 트랜잭션들을 삽입한다(520).Referring to FIG. 5, the block generator 128 generates a block at a predetermined time interval (510), and inserts (520) transactions stored in a payload of the block.

그리고, 블록 생성기(128)는 블록을 피어들(121-126)에 전달하면서 검증을 요청한다(530).The block generator 128 then sends a block to the peers 121-126 to request verification (530).

피어들(121-125)들 각각은 수신한 블록이 정당한 블록인지 검증하고(540), 검증한 결과를 블록 생성기(128)로 송신한다(550).Each of the peers 121-125 verifies whether the received block is a valid block 540 and transmits the verified result to the block generator 128 (550).

블록 생성기(128)는 피어들로부터 수신한 검증결과 피어들이 기설정한 비율(예를 들어 51%) 이상 검증에 문제가 없다고 하는 경우 현재 블록을 블록체인에 추가하고, 아니면 송신한 블록을 삭제하라는 지시를 피어들로 송신한다(560).The block generator 128 adds the current block to the block chain if the verification result received from the peers indicates that there is no problem in verifying the peer (for example, 51%) set by the peers, or deletes the transmitted block The indication is sent to the peers (560).

피어(121-125)는 560단계의 지시에 따라 블록을 블록체인에 추가하거나 또는 삭제한다(570).The peers 121 to 125 add or delete the block to the block chain according to the instruction of step 560 (570).

블록 생성기(128)는 아래 도 6의 예와 같은 형태로 블록을 생성할 수 있다.The block generator 128 may generate a block in the form of the example shown in FIG. 6 below.

도 6은 본 발명의 일 실시 예에 따른 블록체인 시스템의 블록 생성기에서 생성하는 블록체인의 예를 도시한 도면이다.6 is a diagram illustrating an example of a block chain generated by a block generator of a block-chain system according to an embodiment of the present invention.

도 6을 참조하면, 블록체인은 복수의 블록들(block 0, block 1, block 2)이 구성되며, 블록들 간의 선후 관계는 이전 블록 해시(previous block hash)로 판단할 수 있다.Referring to FIG. 6, a block chain includes a plurality of blocks (block 0, block 1, and block 2), and a forward relationship between blocks may be determined as a previous block hash.

각각의 블록은 헤더(header)와 페이로드(payload)를 포함하고, 헤더에는 이전 블록 해시가 삽입되고, 페이로드에는 트랜잭션들이 삽입된다.Each block includes a header and a payload, a previous block hash is inserted into the header, and transactions are inserted into the payload.

이때, 이전 블록 해시는 이전 블록(previous block)을 입력값(input)으로 하고, 해시 함수를 적용하였을 때 나온 출력값(output)이다. 해시 함수로는, 비트코인에서는, SHA-2(x) 해시 함수가 사용된다. 또 다른 방법으로는, 이전 블록의 모든 값을 입력값으로 사용하지 않고, 이전 블록의 헤더만을 입력값으로 사용할 수도 있다.In this case, the previous block hash is the output from applying the hash function with the previous block as the input value. As the hash function, a SHA-2 (x) hash function is used in the bit coin. Alternatively, instead of using all the values of the previous block as input values, only the header of the previous block may be used as the input value.

하지만, 블록체인의 형태는 도 6의 형태로만 국한되지 않고, 보다 다양한 방법으로 진화하고 있다. 본원발명에서는 다양한 블록체인의 방법을 모두 적용 가능하다.However, the form of the block chain is not limited to the form of FIG. 6, but evolves in a variety of ways. In the present invention, various block chain methods are applicable.

한편, 블록체인 네트워크에 포함된 제1 피어(121) 또는 제2 피어(122)는 블록 동기화 이벤트의 발생을 감지하면, 블록 생성기로 현재 블록 높이(height)를 요청하여 수신하고, 블록 동기화 이벤트의 발생을 감지한 피어에서 해당 피어에 저장된 블록체인의 부족한 블록이 모두 수신될 때까지 피어 리스트(peer list)에 포함된 피어(peer)를 순차적으로 순회하면서 블록체인의 블록을 현재 블록 높이의 역순으로 요청하여 수신함으로써 동기화를 수행 할 수도 있다. 동기화의 구체적인 방법은 이후 도 7에서 도 11을 참조하여 후술한다.Meanwhile, when the first peer 121 or the second peer 122 included in the block-chain network detects the occurrence of a block synchronization event, it requests and receives a current block height from the block generator, Peers that are included in the peer list are sequentially traversed until the defective block of the block chain stored in the peer is received from the peer that detects the occurrence, And may perform synchronization by requesting and receiving. A specific method of synchronization will be described later with reference to FIG. 7 to FIG.

도 3은 본 발명의 일 실시 예에 따른 블록체인 시스템에서 인증서를 사용하지 않고 사용자를 인증하는 과정을 도시한 흐름도이다.3 is a flowchart illustrating a process of authenticating a user without using a certificate in a block-chain system according to an embodiment of the present invention.

도 3을 참조하면, 사용자(110)에서 아이디 및 패스워드를 생성하고(310), 제1 피어(121)로 인증 등록 요청을 송신한다(311). 이때, 인증 등록 요청은 아이디 및 패스워드를 포함한다. 이때, 패스워드의 보안을 위해서 사용자는 패스워드를 별도의 암호화 방식으로 암호화해서 전달하거나 해시함수를 적용하여 전달할 수도 있고, 또는 인증 등록 요청을 암호화 통신을 통해 전달할 수도 있다.Referring to FIG. 3, the user 110 generates an ID and a password 310, and transmits an authentication registration request to the first peer 121 (311). At this time, the authentication registration request includes an ID and a password. At this time, in order to secure the password, the user may encrypt the password by using a separate encryption method or transmit the password by applying the hash function, or may transmit the authentication registration request through the encrypted communication.

그리고, 제1 피어(121)에서 아이디와 패스워드를 이용해서 인증정보에 해당하는 제1 인증정보를 생성한다(313). 이때, 제1 피어(121)는 패스워드와 아이디를 연접(concatenate)한 값에 해시함수를 적용해서 제1 인증정보를 생성할 수 있다.Then, the first peer 121 generates the first authentication information corresponding to the authentication information using the ID and the password (313). At this time, the first peer 121 can generate the first authentication information by applying a hash function to a value obtained by concatenating the password and the ID.

그리고, 제1 피어(121)에서 임의의 난수를 생성한다(314). 이때, 제1 피어(121)는 난수 대신에 사용자(110)와 관련된 정보를 이용해서 임의로 만든 값을 이용할 수도 있다.Then, a random number is generated in the first peer 121 (314). At this time, the first peer 121 may use a randomly generated value using information related to the user 110 instead of the random number.

그리고, 제1 피어(121)에서 제1 인증정보와 난수를 이용해서 인증정보에 해당하는 제2 인증정보를 생성한다(315). 이때, 제1 피어(121)는 제1 인증정보와 난수를 연접(concatenate)한 값에 해시함수를 적용해서 제2 인증정보를 생성할 수 있다.Then, the first peer 121 generates the second authentication information corresponding to the authentication information using the first authentication information and the random number (315). At this time, the first peer 121 can generate the second authentication information by applying a hash function to a value obtained by concatenating the first authentication information and the random number.

그리고, 제1 피어(121)에서 난수를 암호화 한다(316). 이때, 제1 피어(121)는 제1 피어(121)에서만 복호화 할 수 있도록 난수를 암호화를 한다.Then, the first peer 121 encrypts the random number (316). At this time, the first peer 121 encrypts a random number so that it can be decrypted only by the first peer 121.

그리고, 제1 피어(121)에서 인증 절차에 필요한 인증 정보를 블록체인(300)에 저장한다(319). 이때, 인증 절차에 필요한 인증 정보에는 사용자(110)의 아이디, 제2 인증정보 및 암호화된 난수가 포함될 수 있다.The first peer 121 stores the authentication information required for the authentication procedure in the block chain 300 (319). At this time, the authentication information required for the authentication procedure may include the ID of the user 110, the second authentication information, and the encrypted random number.

이후, 사용자(110)에서 제2 피어(122)로부터 인증을 받을 필요가 발생하는 경우, 사용자(110)는 제2 피어(122)로 인증요청을 송신한다(330). 이때, 인증 요청에는 아이디와 패스워드가 포함될 수 있다.Thereafter, when the need for the user 110 to authenticate from the second peer 122 occurs, the user 110 sends an authentication request to the second peer 122 (330). At this time, the authentication request may include an ID and a password.

제2 피어(122)에서 사용자(110)로부터 인증요청을 수신하면(330), 인증요청에서 아이디를 추출한다(331).When the second peer 122 receives the authentication request from the user 110 (330), it extracts the identity from the authentication request (331).

그리고, 제2 피어(122)에서 사용자(110)로부터 수신한 인증요청에서 추출하는 아이디와 패스워드를 이용해서 추정된 제1 인증정보를 생성한다(332). 이때, 제2 피어(122)는 추출한 패스워드와 추출한 아이디를 연접(concatenate)한 값에 해시함수를 적용해서 추정된 제1 인증정보를 생성할 수 있다.The second peer 122 generates the first authentication information estimated using the ID and the password extracted from the authentication request received from the user 110 (332). At this time, the second peer 122 can generate the first authentication information estimated by applying a hash function to a value obtained by concatenating the extracted password and the extracted ID.

그리고, 제2 피어(122)에서 아이디와 추정된 인증정보를 포함하는 인증 요청 정보를 블록체인 네트워크를 통해서 블록체인(300)에 저장한다(333).The second peer 122 stores the authentication request information including the ID and the estimated authentication information in the block chain 300 through the block chain network (333).

그리고, 제1 피어(121)에서 사용자(110)에 대한 인증 요청 정보가 블록체인(300)에 저장됨을 감지하면(334), 블록체인(300)에 아이디와 함께 저장된 암호화된 난수를 확인하고, 암호화된 난수를 복호화 한다(335).When the first peer 121 detects that the authentication request information for the user 110 is stored in the block chain 300 in operation 334, the encrypted random number stored in the block chain 300 together with the ID is confirmed, The encrypted random number is decrypted (335).

그리고, 제1 피어(121)에서 추정된 제1 인증정보와 복호화를 통해 획득한 난수를 이용해서 제2 인증정보를 계산하여 추정된 제2 인증정보를 생성한다(336). 이때, 제1 피어(121)는 추정된 제1 인증정보와 복호화를 통해 획득한 난수를 연접(concatenate)한 값에 해시함수를 적용해서 추정된 제2 인증정보를 생성할 수 있다.Then, the second authentication information is calculated using the first authentication information estimated by the first peer 121 and the random number obtained through the decryption, and the estimated second authentication information is generated (336). At this time, the first peer 121 can generate the second authentication information estimated by applying a hash function to a value obtained by concatenating the estimated first authentication information and the random number obtained through the decryption.

그리고, 제1 피어(121)에서 블록체인(300)에 아이디와 함께 저장된 제2 인증정보와 추정된 제2 인증정보를 비교해서 인증 여부를 검증한다(337). 이때, 제1 피어(121)는 블록체인(300)에 저장된 제2 인증정보와 추정된 제2 인증정보가 동일하면 인증에 성공한 것(인증된 사용자)으로 판단하고, 블록체인(300)에 저장된 제2 인증정보와 추정된 제2 인증정보가 동일하지 않으면, 인증에 실패한 것(인증되지 않은 사용자)으로 판단할 수 있다.In step 337, the first peer 121 compares the second authentication information stored in the block chain 300 together with the ID and the estimated second authentication information to verify whether the authentication is successful. At this time, the first peer 121 determines that the authentication is successful (authenticated user) if the second authentication information stored in the block chain 300 and the estimated second authentication information are the same, If the second authentication information and the estimated second authentication information are not the same, it can be determined that authentication has failed (unauthenticated user).

그리고, 제1 피어(121)에서 검증된 결과에 해당하는 인증완료 결과를 블록체인 네트워크를 통해서 블록체인(300)에 저장한다(338).Then, the authentication result corresponding to the result verified by the first peer 121 is stored in the block chain 300 through the block chain network (338).

제2 피어(122)에서 인증완료 결과가 블록체인(300)에 저장됨을 감지하면(339), 사용자(110)에게 인증 여부를 송신한다(340).When the second peer 122 detects that the authentication result is stored in the block chain 300 (339), the second peer 122 transmits the authentication result to the user 110 (340).

319, 333, 338 단계에서 블록체인(300)에 저장한다는 것은 319, 333, 338 단계에서 블록체인(300)에 저장할 데이터 각각을 하나의 트랜잭션으로 하여 블록체인(300)에 포함되는 블록으로 생성함을 나타내는 것이다. 이때, 블록체인(300)에 저장하기 위해서는 피어는 상술한 도 4와 같이 블록체인에 포함되는 블록을 생성하는 블록 생성기(128)로 데이터를 송신할 수 있고, 블록 생성기(128)는 상술한 도 5와 같은 방법으로 블록체인에 포함된 블록을 생성하여 블록체인에 저장할 수 있다.In step 319, step 333 and step 338, in step 319, step 333 and step 338, data to be stored in the block chain 300 is generated as a block included in the block chain 300 as one transaction Lt; / RTI > At this time, in order to store the data in the block chain 300, the peer may transmit data to the block generator 128 that generates blocks included in the block chain as shown in FIG. 4, Blocks included in the block chain can be generated and stored in the block chain in the same manner as in the method of FIG.

한편, 블록체인 네트워크에 포함된 제1 피어(121) 또는 제2 피어(122)는 블록 동기화 이벤트의 발생을 감지하면, 블록 생성기로 현재 블록 높이(height)를 요청하여 수신하고, 블록 동기화 이벤트의 발생을 감지한 피어에서 해당 피어에 저장된 블록체인의 부족한 블록이 모두 수신될 때까지 피어 리스트(peer list)에 포함된 피어(peer)를 순차적으로 순회하면서 블록체인의 블록을 현재 블록 높이의 역순으로 요청하여 수신함으로써 동기화를 수행 할 수도 있다. 동기화의 구체적인 방법은 이후 도 7에서 도 11을 참조하여 후술한다.Meanwhile, when the first peer 121 or the second peer 122 included in the block-chain network detects the occurrence of a block synchronization event, it requests and receives a current block height from the block generator, Peers that are included in the peer list are sequentially traversed until the defective block of the block chain stored in the peer is received from the peer that detects the occurrence, And may perform synchronization by requesting and receiving. A specific method of synchronization will be described later with reference to FIG. 7 to FIG.

도 7은 본 발명의 일 실시 예에 따른 블록체인 시스템의 개략적인 구성을 도시한 도면이다.7 is a schematic block diagram of a block-chain system according to an embodiment of the present invention.

도 7을 참조하면, 블록체인 시스템은 블록 생성기(716)와 다수의 피어(711 ~ 715)을 포함하는 블록체인 네트워크(710)와 무선국(720), 인증서버(730), 로그 수집기(740) 및 데이터베이스(750)를 포함하여 블록체인을 생성하고, 피어들 간의 블록을 동기화 할 수 있다.7, the block-chain system includes a block-chain network 710 including a block generator 716 and a plurality of peers 711 through 715, a wireless station 720, an authentication server 730, a log collector 740, And database 750 to create a block chain and to synchronize blocks between peers.

무선국(RadioStation)(720)는 피어들을 그룹지어 생성하고, 그룹내의 피어들을 연결하여 블록체인 네트워크(710)를 형성하고, 피어들의 상태를 모니터링 할 수 있다. 이때, 피어는 자신이 속한 그룹의 이웃 피어들의 접속 정보를 얻기 위해서 무선국(720)에 접속할 수도 있고, 무선국(720)에서 방송(Broadcast)하는 정보를 통해 수신할 수도 있다.A radio station (RadioStation) 720 can group the peers, connect the peers in the group to form a block-chain network 710, and monitor the status of the peers. At this time, the peer may access the wireless station 720 to obtain the access information of the neighboring peers of the group to which the peer belongs, or may receive the information through broadcasting information from the wireless station 720.

인증서버(CA server)(730)는 피어 생성시, 혹은 신규 피어가 블록체인 네트워크에 참여시 제대로된 요청인지 검증한다.The CA server 730 verifies when the peer is created, or when the new peer joins the block-chain network.

로그 수집기(740)는 블록체인 시스템의 운영 중에 발생하는 로그를 수집하여 데이터베이스(750) 또는 파일시스템(미도시)에 저장할 수 있다.The log collector 740 may collect logs stored during operation of the block chain system and store them in a database 750 or a file system (not shown).

피어(711 ~ 715)는 블록체인 네트워크(710)에 포함된 노드로 블록체인에 추가되는 트랜잭션(transaction)을 상술한 도 3과 같이 처리할 수 있고, 블록 생성기(716)로부터 블록을 수신하면, 저장하고 있는 블록체인에 수신한 블록을 추가할 수 있다.The peers 711 through 715 may process a transaction added to the block chain to the node included in the block chain network 710 as shown in FIG. 3 described above, and upon receiving the block from the block generator 716, You can add received blocks to the block chain you are saving.

블록 생성기(716)는 상술한 도 4와 같은 방법으로 블록을 생성하여 블록체인에 추가할 수 있다.The block generator 716 may generate a block and add it to the block chain as shown in FIG.

한편, 블록 생성기(716)는 하나의 장치에서 고정적으로 수행할 수도 있지만 블록체인 네트워크(710)에 포함된 피어들이 돌아가면서 수행할 수도 있다.Meanwhile, the block generator 716 may be fixedly performed in one device, but may be performed while the peers included in the block-chain network 710 rotate.

한편, 블록체인 네트워크(710)에 포함된 피어(711 ~ 715)들 중에서 임의의 피어(712)에서 다음과 같이 동기화를 수행할 수 있다.On the other hand, synchronization can be performed at any peer 712 among the peers 711 to 715 included in the block-chain network 710 as follows.

피어(712)는 블록 동기화 이벤트가 발생하면 블록 생성기(716)로 현재 블록 높이를 요청하여 수신하고, 피어(712)에 저장된 블록체인의 부족한 블록이 모두 수신될 때까지 피어 리스트(peer list)(피어(712~715)에 해당)를 포함된 다른 피어(peer)들을 순차적으로 순회하면서 블록체인의 블록을 현재 블록 높이의 역순으로 요청하여 수신함으로써 동기화한다. 피어(712)의 동기화는 도 7을 참조하여 보다 상세히 후술한다.The peer 712 requests and receives the current block height from the block generator 716 when a block synchronization event occurs and returns to the peer list 712 until all the defective blocks of the block chain stored in the peer 712 are received (Corresponding to the peers 712 to 715), and sequentially receives and requests the blocks of the block chain in the reverse order of the current block height, thereby synchronizing the blocks. Synchronization of the peer 712 will be described in more detail below with reference to FIG.

이때, 피어(712)는 동기화를 위해 요청하여 수신된 블록이 피어(712)에 저장된 블록의 다음 순번의 블록이면, 블록체인의 부족한 블록을 모두 수신하였다고 판단할 수 있다.At this time, the peer 712 may request for synchronization, and if the received block is the next sequential block of the block stored in the peer 712, it may determine that all the defective blocks of the block chain have been received.

피어(712)는 동기화를 위해 요청한 블록이 수신되지 않으면, 요청한 블록을 요청했던 피어를 비정상 피어(abnormal peer)로 분류하고, 비정상 피어로 분류된 피어로 동기화가 완료될 때까지 더 이상 블록을 요청하지 않도록 피어 리스트에서 제외할 수 있다.If the requested block is not received for synchronization, the peer 712 classifies the requesting block as an abnormal peer and requests the block to be further classified as an abnormal peer You can exclude it from the peer list.

비정상 피어는 현 동기화가 완료될 때까지만 유지하고, 동기화가 완료되면 피어 리스트를 원래대로 초기화 할 수도 있다. 이때, 분류된 비정상 피어의 유지와 피어 리스트의 초기화는 동기화가 완료를 기준으로 초기화할 수도 있지만, 기설정된 시간 동안 유지한 후에 초기화 할 수도 있고, 무선국(720)의 제어에 따라 초기화 할 수도 있다.The abnormal peer can be kept only until the current synchronization is completed, and the peer list can be initialized as soon as synchronization is complete. At this time, the maintenance of the classified abnormal peer and the initialization of the peer list may be initialized based on the completion of the synchronization, but may be initialized after the predetermined period of time or may be initialized under the control of the radio station 720.

피어(712)는 비정상 피어로 분류된 피어 각각으로 동기화가 필요함을 알리는 보고 메시지를 송부하여 해당 피어에서 동기화를 수행할 수 있도록 할 수 있다.The peer 712 may send a report message indicating that synchronization is required to each of the peers classified as an abnormal peer so that synchronization can be performed at the corresponding peer.

한편, 블록 동기화 이벤트는 다음의 조건 중 하나일 때 발생할 수 있다.On the other hand, a block synchronization event may occur when one of the following conditions is satisfied.

조건 1) 피어가 처음 시작하는 경우.Condition 1) The peer first starts.

조건 2)수신한 블록이 피어에 저장된 마지막 블록의 다음 순서의 블록이 아닌 경우.Condition 2) The received block is not the next block of the last block stored in the peer.

조건 3) 기설정된 시간간격으로 블록 생성기(716)로 현재 블록 높이를 요청하여 수신하고, 현재 블록 높이와 피어에 저장된 블록체인의 블록 높이를 비교해서 같지 않은 경우.Condition 3) Request and receive the current block height by the block generator 716 at a predetermined time interval, and if the current block height is not the same as the block height of the block chain stored in the peer.

조건 4)블록체인 네트워크에 포함된 다른 피어로부터 비정상 피어임을 알리는 보고 메시지를 수신하는 경우.Condition 4) Block Chain When receiving a report message from another peer included in the network, indicating that it is an abnormal peer.

위의 조건들 중에서 조건 3)과 조건 4)의 경우는 블록 동기화 이벤트에서 제외 시킬 수도 있다.Among the above conditions, condition 3) and condition 4) may be excluded from the block synchronization event.

피어(712)는 블록체인 네트워크(710)에 포함된 다른 피어(712 ~ 715)들로 블록을 요청하기 전에, 블록 생성기(716)로 최종 블록의 해시값을 요청하여 수신하고, 다른 피어(712 ~ 715)들로 블록을 수신하면 최종 블록의 해시값을 이용해서 수신한 블록을 검증할 수 있다.The peer 712 requests and receives the hash value of the last block in the block generator 716 before requesting the block to other peers 712-715 included in the block chain network 710 and the other peer 712 ~ 715), the received block can be verified using the hash value of the last block.

이하, 상기와 같이 구성된 본 발명에 따른 블록체인 시스템의 피어에서 블록을 동기화하는 방법을 아래에서 도면을 참조하여 설명한다.Hereinafter, a method of synchronizing blocks in a peer of a block-chain system according to the present invention will be described with reference to the drawings.

도 8은 본 발명의 일 실시 예에 따른 블록체인 시스템의 피어에서 블록을 동기화하는 과정을 도시한 흐름도이다.FIG. 8 is a flowchart illustrating a process of synchronizing blocks in a peer of a block-chain system according to an embodiment of the present invention.

도 8을 참조하면, 피어는 블록 동기화 이벤트의 발생을 감지하면(810), 블록 생성기(111)로 현재 블록 높이(height)를 요청하여 수신한다(820).Referring to FIG. 8, when a peer detects the occurrence of a block synchronization event (810), the current block height is requested to the block generator 111 and received (820).

그리고, 피어는 피어 리스트에 포함된 피어들을 순차적으로 순회하면서 블록을 요청할 피어를 선택한다(830).Then, the peer sequentially polls the peers included in the peer list and selects a peer to request the block (830).

그리고, 피어는 선택된 피어로 수신되지 않은 블록 중에서 마지막 높이에 해당하는 블록을 요청한다(840).Then, the peer requests a block corresponding to the last height among the blocks not received by the selected peer (840).

그리고, 피어는 요청한 블록이 수신되었는지 확인한다(850).Then, the peer confirms whether the requested block has been received (850).

850단계의 확인결과 요청한 블록이 수신되지 않으면, 피어는 선택된 피어를 비정상 피어(abnormal peer)로 분류하고, 피어 리스트에서 제외하고(860), 830단계로 돌아간다.If it is determined in step 850 that the requested block is not received, the peer classifies the selected peer as an abnormal peer and excludes it from the peer list (860), and returns to step 830.

그리고 피어는 850단계의 확인결과 요청한 블록이 수신되었으면, 블록체인의 부족한 블록이 모두 수신되었는지 확인한다(870). 이때, 피어는 수신된 블록이 피어에 저장된 블록의 다음 순번의 블록이면, 블록체인의 부족한 블록을 모두 수신하였다고 판단할 수 있다. 예를 들어, 블록 생성기(111)의 현재 블록 높이가 50이고, 피어에 저장된 블록체인의 블록 높이가 40인 경우, 50번째의 블록부터 역순(50, 49, 48, 47, …, 42, 41)으로 수신하다가 수신한 블록이 41번째가 되면 피어에 저장된 블록체인의 블록 높이가 40이므로 다음 순번의 블록이 수신된 것이므로, 부족한 블록이 모두 수신되었음을 확인할 수 있다.If it is determined in step 850 that the requested block is received, the peer confirms whether all the deficient blocks of the block chain have been received (step 870). At this time, if the received block is the next sequential block of the block stored in the peer, the peer can determine that all the deficient blocks of the block chain have been received. For example, if the current block height of the block generator 111 is 50, and the block height of the block chain stored in the peer is 40, the order of the 50th block to the reverse order (50, 49, 48, 47, ), When the received block becomes the 41st block, since the block height of the block chain stored in the peer is 40, the next sequential block is received, so that it can be confirmed that all the defective blocks are received.

870단계의 확인결과 블록체인의 부족한 블록이 모두 수신되지 않았으면, 피어는 830단계로 돌아가서, 이후 일련의 과정을 수행한다.If it is determined in step 870 that all the defective blocks of the block chain have not been received, the peer returns to step 830 and then performs a series of processes.

870단계의 확인결과 블록체인의 부족한 블록을 모두 수신하였으면, 피어는 비정상 피어로 분류된 피어 각각으로 동기화가 필요함을 알리는 보고 메시지를 송부하고(880), 본 알고리즘을 종료한다. 이때, 보고 메시지를 송부하는 880단계는 도 8의 동기화 알고리즘에서 생략 할 수 있다.If it is determined in step 870 that all the deficient blocks in the block chain have been received, the peer transmits a report message indicating that synchronization is required to each of the peers classified as the abnormal peer (880), and ends the algorithm. At this time, the step 880 of transmitting the report message may be omitted in the synchronization algorithm of FIG.

블록 동기화가 870단계로 종료되는 경우 피어 별로 각각 동기화 이벤트를 감지하면 동기화를 수행하기 때문에 운영이 간단한 장점을 가진다.When the block synchronization ends in step 870, synchronization is detected when each synchronization event is detected for each peer, so that operation is simple.

블록 동기화가 870단계로 종료되는 경우 동기화가 필요한 피어에게 동기화가 필요함을 알려줌으로써 보다 빠르게 블록체인 시스템 전체가 동기화 될 수 있도록 하는 장점을 가질 수 있다. 또한, 870단계에서 더 나아가, 동기화를 수행하는 피어에서 비정상 피어로 각각이 부족한 블록을 제공하도록 할 수도 있다.If the block synchronization ends at step 870, it is possible to have the advantage that the entire block chain system can be synchronized more quickly by informing the peer requiring synchronization that synchronization is required. Further, in step 870, it may be further provided that each of the peers performing the synchronization provides the deficient blocks with the abnormal peers.

한편, 도 8에서 블록을 동기화 하는 과정을 도 10에서 도 11의 예를 통해 후술한다.The process of synchronizing the blocks in FIG. 8 will be described later with reference to FIG. 10 through the example of FIG.

도 9는 본 발명의 일 실시 예에 따른 블록체인 시스템의 피어에서 블록 동기화 이벤트가 발생하는 과정의 예를 도시한 흐름도이다.FIG. 9 is a flowchart illustrating an example of a process of generating a block synchronization event at a peer of a block-chain system according to an embodiment of the present invention.

도 9를 참조하면, 피어는 해당 피어가 블록체인 네트워크에 새로 추가되어 시작된 피어인지 확인한다(910).Referring to FIG. 9, the peer confirms whether the corresponding peer is a newly added peer to the block-chain network (910).

910단계의 확인결과 새로 시작된 피어이면, 피어는 새로 시작하여 블록체인의 모든 블록을 수신하여야 하므로 동기화가 필요하다고 판단할 수 있으므로, 블록 동기화 이벤트를 발생한다(950).As a result of step 910, if the peer is newly started, the peer must start a new block and receive all the blocks in the block chain.

피어는 수신한 블록이 피어에 저장된 마지막 블록의 다음 순번에 해당하는 블록인지 확인한다(920).The peer confirms whether the received block is a block corresponding to the next order of the last block stored in the peer (920).

920단계의 확인결과 수신한 블록이 피어에 저장된 마지막 블록의 다음 순번이 아니면, 피어는 동기화가 깨졌다고 판단할 수 있으므로 블록 동기화 이벤트를 발생한다(950).If it is determined in step 920 that the received block is not the next sequential number of the last block stored in the peer, the peer may determine that the synchronization is broken and generates a block synchronization event (950).

피어는 비정상 피어 임을 알리는 보고 메시지를 수신하였는지 확인한다(930).The peer confirms whether it has received a report message indicating that it is an abnormal peer (930).

920단계의 확인결과 비정상 피어 임을 알리는 보고 메시지를 수신하면, 피어는 다른 피어에서 해당 피어가 동기화가 깨졌다고 알려줬으므로, 블록 동기화 이벤트를 발생한다(950).Upon receipt of a report message indicating that the peer is an abnormal peer, the peer informs the peer that the peer is out of synchronization at the other peer, and thus generates a block synchronization event (950).

피어는 기설정된 시간 간격으로 확인한 결과 동기화가 깨졌는지 확인한다(940). 피어는 기설정된 시간간격으로 블록 생성기로 상기 현재 블록 높이를 요청하여 수신하고, 현재 블록 높이와 피어에 저장된 블록체인의 블록 높이를 비교해서 같지 않은 경우에 동기화가 깨졌다고 판단할 수 있다.The peer confirms that the synchronization is broken (940) as a result of checking at a predetermined time interval. The peer requests and receives the current block height from the block generator at a predetermined time interval, compares the current block height with the block height of the block chain stored in the peer, and determines that the synchronization is broken if it is not the same.

920단계의 확인결과 동기화가 깨졌으면, 피어는 블록 동기화 이벤트를 발생한다(950).If it is determined in step 920 that the synchronization is broken, the peer generates a block synchronization event (950).

한편, 도 9에서 930단계와 940단계는 생략이 가능하다.9, steps 930 and 940 may be omitted.

도 10은 본 발명의 일 실시 예에 따른 블록체인 시스템에서 블록 동기화를 하는 일 예를 도시한 도면이다.FIG. 10 illustrates block synchronization in a block-chain system according to an embodiment of the present invention. Referring to FIG.

도 10은 동기화를 수행하는 제1 피어(711)에서 요청하는 블록을 모두 수신하는 경우의 예를 도시한 도면이다.FIG. 10 is a diagram illustrating an example of receiving all the blocks requested by the first peer 711 performing synchronization.

도 10을 참조하면, 제1 피어(P1; peer 1)(711)는 블록 동기화 이벤트의 발생을 감지하면, 블록 생성기(BG; Block Generator)(716)로 현재 블록 높이를 요청한다(1010).10, when the first peer P1 (peer 1) 711 detects the occurrence of a block synchronization event, it requests a current block height to a block generator (BG) 716 (1010).

제1 피어(711)는 블록 생성기(716)로부터 현재 블록 높이가 50이라는 정보를 수신한다(1011).The first peer 711 receives information indicating that the current block height is 50 from the block generator 716 (1011).

제1 피어(711)의 블록 높이(BH; Block Height)가 45이기 때문에 제1 피어(711)는 46에서 50까지의 블록을 수신하여야 하며, 본 발명의 알고리즘에 따라서, 50번째 블록부터 역순으로 피어 리스트(peer list)(예를 들어 도 10의 피어 리스트는 P2, P3, P4, P5 가 될수 있다.)를 포함된 피어(peer)를 순차적으로 순회하면서 다음과 같은 방법으로 블록을 요청한다.Since the block height (BH) of the first peer 711 is 45, the first peer 711 must receive the blocks from 46 to 50, and in accordance with the algorithm of the present invention, A peer including a peer list (for example, the peer list in FIG. 10 can be P2, P3, P4, and P5) is sequentially traversed to request a block in the following manner.

제1 피어(711)는 피어 리스트의 다음 순번인 제2 피어(712)로 50번 블록을 요청 한다(1012).The first peer 711 requests 50 the second peer 712, which is the next sequential of the peer list (1012).

제1 피어(711)는 제2 피어(712)로부터 50번 블록을 수신하면(1013), 제3 피어(713)로 49번 블록을 요청 한다(1014).The first peer 711 receives 50 blocks from the second peer 712 and requests a 49th block to the third peer 713 (1014).

제1 피어(711)는 제3 피어(713)로부터 49번 블록을 수신하면(1015), 제4 피어(714)로 48번 블록을 요청 한다(1016).The first peer 711 receives the block 49 from the third peer 713 (1015) and requests the block 48 to the fourth peer 714 (1016).

제1 피어(711)는 제4 피어(714)로부터 48번 블록을 수신하면(1017), 제5 피어(715)로 47번 블록을 요청 한다(1018).The first peer 711 receives the block 48 from the fourth peer 714 at block 1017 and requests block 47 at the fifth peer 715 at block 1018.

제1 피어(711)는 제5 피어(715)로부터 47번 블록을 수신하면(1013), 피어 리스트에 포함된 모든 피어를 순회하였음으로 다시 처음에 위치한 피어인 제2 피어(712)로 46번 블록을 요청 한다(1014).When the first peer 711 receives the block 47 from the fifth peer 715 (1013), the first peer 711 repeats all the peers included in the peer list and returns to the second peer 712, A block is requested 1014.

제1 피어(711)는 제1 피어(711)의 블록 높이인 45보다 하나 큰 블록인 46번 블록을 제2 피어(712)로부터 수신하면, 동기화를 종료한다.The first peer 711 terminates the synchronization when receiving the block 46, which is one block larger than the block height 45 of the first peer 711, from the second peer 712.

도 11은 본 발명의 일 실시 예에 따른 블록체인 시스템에서 블록 동기화를 하는 다른 예를 도시한 도면이다.11 is a diagram illustrating another example of block synchronization in a block-chain system according to an embodiment of the present invention.

도 11은 동기화를 수행하는 제1 피어(711)에서 요청하는 블록에 대한 응답이 없는 경우의 처리과정을 포함하는 예를 도시한 도면이다.11 is a diagram illustrating an example of processing in the case where there is no response to a block requested by the first peer 711 performing synchronization.

도 11을 참조하면, 제1 피어(P1; peer 1)(711)는 블록 동기화 이벤트의 발생을 감지하면, 블록 생성기(BG; Block Generator)(716)로 현재 블록 높이를 요청한다(1110).11, when a first peer (peer 1) 711 detects occurrence of a block synchronization event, it requests a current block height to a block generator (BG) 716 (1110).

제1 피어(711)는 블록 생성기(716)로부터 현재 블록 높이가 50이라는 정보를 수신한다(1111).The first peer 711 receives information indicating that the current block height is 50 from the block generator 716 (1111).

제1 피어(711)의 블록 높이(BH; Block Height)가 45이기 때문에 제1 피어(711)는 46에서 50까지의 블록을 수신하여야 하며, 본 발명의 알고리즘에 따라서, 50번째 블록부터 역순으로 피어 리스트(peer list)(예를 들어 도 11의 피어 리스트는 P2, P3, P4, P5 가 될수 있다.)를 포함된 피어(peer)를 순차적으로 순회하면서 다음과 같은 방법으로 블록을 요청한다.Since the block height (BH) of the first peer 711 is 45, the first peer 711 must receive the blocks from 46 to 50, and in accordance with the algorithm of the present invention, A block is requested in the following manner while sequentially traversing a peer including a peer list (for example, the peer list in FIG. 11 can be P2, P3, P4, and P5).

제1 피어(711)는 피어 리스트의 다음 순번인 제2 피어(712)로 50번 블록을 요청 하고(1112), 제1 피어(711)는 제2 피어(712)로부터 50번 블록을 기설정된 시간동안 응답받지 못하면, 제2 피어(712)를 비정상 피어로 분류 하고, 피어 리스트에서 배제한다(113).The first peer 711 requests 50 the second peer 712 which is the next sequential number of the peer list 1112 and the first peer 711 requests the 50th block from the second peer 712 If no response is received for a period of time, the second peer 712 is classified as an abnormal peer and excluded from the peer list (113).

제1 피어(711)는 제3 피어(713)로 다시 50번 블록을 요청한다(1114).The first peer 711 requests the third peer 713 again for block 50 (1114).

제1 피어(711)는 제3 피어(713)로부터 50번 블록을 수신하면(1115), 제4 피어(714)로 49번 블록을 요청 한다(1116).The first peer 711 receives 50 blocks from the third peer 713 and requests a 49th block to the fourth peer 714 in step 1116.

제1 피어(711)는 제4 피어(714)로부터 49번 블록을 수신하면(1117), 제5 피어(715)로 48번 블록을 요청 한다(1118).The first peer 711 receives the block 49 from the fourth peer 714 and requests the block 48 to the fifth peer 715 at block 1118.

제1 피어(711)는 제5 피어(714)로부터 48번 블록을 수신하면(1119), 피어 리스트에 포함된 모든 피어를 순회하였음으로 피어 리스트의 처음에 위치한 피어인 제3 피어(713)로 47번 블록을 요청 한다(1120). 이때, 제3 피어(713)가 피어 리스트의 처음에 위치한 것은 제2 피어(712)가 비정상 피어로 피어 리스트에서 배제되었기 때문이다.When the first peer 711 receives the block 48 from the fifth peer 714 (1119), the first peer 711 returns to the third peer 713, which is a peer located at the beginning of the peer list because it has traversed all the peers included in the peer list And requests the block 47 (1120). At this time, the third peer 713 is located at the beginning of the peer list because the second peer 712 is excluded from the peer list as an abnormal peer.

제1 피어(711)는 제3 피어(713)로부터 47번 블록을 수신하면(1121), 제4 피어(714)로 46번 블록을 요청 한다(1122).When the first peer 711 receives the block 47 from the third peer 713 (1121), it requests the block 46 to the fourth peer 714 (1122).

제1 피어(711)는 제1 피어(711)의 블록 높이인 45보다 하나 큰 블록인 46번 블록을 제4 피어(714)로부터 수신하면, 동기화를 종료한다.The first peer 711 terminates the synchronization when it receives the block 46, which is one block larger than the block height 45 of the first peer 711, from the fourth peer 714.

이상에서 설명된 장치는 하드웨어 구성요소, 소프트웨어 구성요소, 및/또는 하드웨어 구성요소 및 소프트웨어 구성요소의 조합으로 구현될 수 있다. 실시 예들에서 설명된 장치 및 구성요소는, 예를 들어, 프로세서, 콘트롤러, ALU(arithmetic logic unit), 디지털 신호 프로세서(digital signal processor), 마이크로컴퓨터, FPGA(field programmable gate array), PLU(programmable logic unit), 마이크로프로세서, 또는 명령(instruction)을 실행하고 응답할 수 있는 다른 어떠한 장치와 같이, 하나 이상의 범용 컴퓨터 또는 특수 목적 컴퓨터를 이용하여 구현될 수 있다. 처리 장치는 운영 체제(OS) 및 상기 운영 체제 상에서 수행되는 하나 이상의 소프트웨어 애플리케이션을 수행할 수 있다. 또한, 처리 장치는 소프트웨어의 실행에 응답하여, 데이터를 접근, 저장, 조작, 처리 및 생성할 수도 있다. 이해의 편의를 위하여, 처리 장치는 하나가 사용되는 것으로 설명된 경우도 있지만, 해당 기술분야에서 통상의 지식을 가진 자는, 처리 장치가 복수 개의 처리 요소(processing element) 및/또는 복수 유형의 처리 요소를 포함할 수 있음을 알 수 있다. 예를 들어, 처리 장치는 복수 개의 프로세서 또는 하나의 프로세서 및 하나의 콘트롤러를 포함할 수 있다. 또한, 병렬 프로세서(parallel processor)와 같은, 다른 처리 구성(processing configuration)도 가능하다.The apparatus described above may be implemented as a hardware component, a software component, and / or a combination of hardware components and software components. The apparatus and components described in the embodiments may be implemented, for example, as a processor, a controller, an arithmetic logic unit (ALU), a digital signal processor, a microcomputer, a field programmable gate array (FPGA) unit, a microprocessor, or any other device capable of executing and responding to instructions. The processing device may execute an operating system (OS) and one or more software applications running on the operating system. The processing device may also access, store, manipulate, process, and generate data in response to execution of the software. For ease of understanding, the processing apparatus may be described as being used singly, but those skilled in the art will recognize that the processing apparatus may have a plurality of processing elements and / As shown in FIG. For example, the processing unit may comprise a plurality of processors or one processor and one controller. Other processing configurations are also possible, such as a parallel processor.

소프트웨어는 컴퓨터 프로그램(computer program), 코드(code), 명령(instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로(collectively) 처리 장치를 명령할 수 있다. 소프트웨어 및/또는 데이터는, 처리 장치에 의하여 해석되거나 처리 장치에 명령 또는 데이터를 제공하기 위하여, 어떤 유형의 기계, 구성요소(component), 물리적 장치, 가상 장치(virtual equipment), 컴퓨터 저장 매체 또는 장치, 또는 전송되는 신호 파(signal wave)에 영구적으로, 또는 일시적으로 구체화(embody)될 수 있다. 소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 하나 이상의 컴퓨터 판독 가능 기록 매체에 저장될 수 있다.The software may include a computer program, code, instructions, or a combination of one or more of the foregoing, and may be configured to configure the processing device to operate as desired or to process it collectively or collectively Device can be commanded. The software and / or data may be in the form of any type of machine, component, physical device, virtual equipment, computer storage media, or device , Or may be permanently or temporarily embodied in a transmitted signal wave. The software may be distributed over a networked computer system and stored or executed in a distributed manner. The software and data may be stored on one or more computer readable recording media.

실시 예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 실시 예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 실시 예의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.The method according to an embodiment may be implemented in the form of a program command that can be executed through various computer means and recorded in a computer-readable medium. The computer-readable medium may include program instructions, data files, data structures, and the like, alone or in combination. The program instructions to be recorded on the medium may be those specially designed and configured for the embodiments or may be available to those skilled in the art of computer software. Examples of computer-readable media include magnetic media such as hard disks, floppy disks and magnetic tape; optical media such as CD-ROMs and DVDs; magnetic media such as floppy disks; Magneto-optical media, and hardware devices specifically configured to store and execute program instructions such as ROM, RAM, flash memory, and the like. Examples of program instructions include machine language code such as those produced by a compiler, as well as high-level language code that can be executed by a computer using an interpreter or the like. The hardware devices described above may be configured to operate as one or more software modules to perform the operations of the embodiments, and vice versa.

이상과 같이 실시 예들이 비록 한정된 실시 예와 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기의 기재로부터 다양한 수정 및 변형이 가능하다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.While the present invention has been particularly shown and described with reference to exemplary embodiments thereof, it is to be understood that the invention is not limited to the disclosed exemplary embodiments. For example, it is to be understood that the techniques described may be performed in a different order than the described methods, and / or that components of the described systems, structures, devices, circuits, Lt; / RTI > or equivalents, even if it is replaced or replaced.

그러므로, 다른 구현들, 다른 실시 예들 및 특허청구범위와 균등한 것들도 후술하는 특허청구범위의 범위에 속한다.Therefore, other implementations, other embodiments and equivalents to the claims are within the scope of the following claims.

110; 사용자
120; 블록체인 네트워크
121 ~ 125; 피어
128; 블록 생성기
110; user
120; Block Chain Network
121 ~ 125; Peer
128; Block generator

Claims (18)

각기 인증서를 생성하고 인증 요청을 검증할 수 있는 복수의 피어를 포함하는 블록체인 네트워크를 통해서 사용자를 인증하고 블록을 동기화하는 방법에 있어서,
제1 피어에서 사용자의 인증서 발급 요청에 따라 인증서 식별정보, 인증정보 및 인증서를 생성하는 단계;
상기 제1 피어에서 블록체인 네트워크를 통해서 상기 인증서를 블록체인에 저장하는 단계;
상기 제1 피어에서 상기 블록체인 네트워크를 통해서 상기 인증정보를 상기 블록체인에 저장하여 상기 인증정보를 등록하는 단계;
상기 제1 피어에서 상기 인증서를 상기 사용자에게 송신하는 단계;
제2 피어에서 상기 사용자로부터 인증 요청을 수신하면, 상기 인증 요청에서 상기 인증서 식별정보를 추출하는 단계;
상기 제2 피어에서 상기 인증정보를 추정하는 단계;
상기 제2 피어에서 상기 인증서 식별정보와 상기 추정된 인증정보를 포함하는 인증 요청 정보를 상기 블록체인 네트워크를 통해서 상기 블록체인에 저장하는 단계;
상기 제1 피어에서 상기 사용자에 대한 상기 인증 요청 정보가 상기 블록체인에 저장됨을 감지하면, 상기 인증 요청 정보에 포함된 인증정보를 이용해서 상기 사용자의 상기 인증 요청을 검증하는 단계;
상기 제1 피어에서 상기 검증된 결과에 해당하는 인증완료 결과를 상기 블록체인 네트워크를 통해서 상기 블록체인에 저장하는 단계; 및
상기 제2 피어에서 상기 인증완료 결과가 상기 블록체인에 저장됨을 감지하면, 상기 사용자에게 인증 여부를 송신하는 단계
를 포함하는
블록체인 네트워크를 이용해서 사용자를 인증하고 블록을 동기화하는 방법.
A method for authenticating a user and synchronizing a block via a block-chained network comprising a plurality of peers, each authenticating a certificate and verifying an authentication request,
Generating certificate identification information, authentication information, and a certificate in response to a user's certificate issuing request at a first peer;
Storing the certificate in a block chain over the block-chain network at the first peer;
Storing the authentication information in the block chain at the first peer through the block-chain network and registering the authentication information;
Sending the certificate to the user at the first peer;
Receiving the authentication request from the user at the second peer, extracting the certificate identification information from the authentication request;
Estimating the authentication information at the second peer;
Storing authentication request information including the certificate identification information and the estimated authentication information at the second peer in the block chain through the block chain network;
Verifying the authentication request of the user using the authentication information included in the authentication request information when it is detected that the authentication request information for the user at the first peer is stored in the block chain;
Storing an authentication result corresponding to the verified result at the first peer in the block chain through the block chain network; And
When the second peer detects that the authentication result is stored in the block chain, transmitting the authentication result to the user
Containing
A method of authenticating users and synchronizing blocks using a block-chain network.
제1항에 있어서,
상기 제1 피어에서 상기 사용자의 인증서 발급 요청에 따라 상기 인증서 식별정보, 상기 인증정보 및 상기 인증서를 생성하는 단계는,
상기 제1 피어에서 상기 사용자로부터 상기 사용자의 공개키와 상기 사용자가 생성한 임의의 난수값인 제1 난수를 포함하는 상기 사용자의 인증서 발급 요청을 수신하는 단계;
상기 제1 피어에서 상기 인증서를 식별할 수 있는 상기 인증서 식별정보를 생성하는 단계;
상기 제1 피어에서 상기 인증서 식별정보와 상기 제1 난수를 이용해서 인증정보에 해당하는 제1 인증정보를 생성하는 단계;
상기 제1 피어에서 임의의 난수값인 제2 난수를 생성하는 단계;
상기 제1 피어에서 상기 제1 인증정보와 상기 제2 난수를 이용해서 인증정보에 해당하는 제2 인증정보를 생성하는 단계;
상기 제1 피어에서 상기 제2 난수를 암호화하는 단계; 및
상기 제1 피어에서 상기 사용자의 공개키와 상기 인증서 식별정보를 이용해서 상기 인증서를 생성하는 단계
를 포함하는 블록체인 네트워크를 이용해서 사용자를 인증하고 블록을 동기화하는 방법.
The method according to claim 1,
Wherein the step of generating the certificate identification information, the authentication information, and the certificate in response to a request for issuing a certificate of the user at the first peer comprises:
Receiving a user's certificate issuing request including the user's public key from the user at the first peer and a first random number that is a random number value generated by the user;
Generating the certificate identification information capable of identifying the certificate at the first peer;
Generating first authentication information corresponding to authentication information using the certificate identification information and the first random number at the first peer;
Generating a second random number that is an arbitrary random number value at the first peer;
Generating second authentication information corresponding to authentication information using the first authentication information and the second random number at the first peer;
Encrypting the second random number at the first peer; And
Generating the certificate using the public key of the user and the certificate identification information at the first peer
A method for authenticating a user and synchronizing a block using a block-chain network.
제2항에 있어서,
상기 인증정보를 등록하는 단계는,
상기 제2 인증정보, 상기 인증서 식별정보 및 상기 암호화된 제2 난수를 상기 블록체인에 저장하는 단계
를 포함하는 블록체인 네트워크를 이용해서 사용자를 인증하고 블록을 동기화하는 방법.
3. The method of claim 2,
Wherein the registering of the authentication information comprises:
Storing the second authentication information, the certificate identification information, and the encrypted second random number in the block chain
A method for authenticating a user and synchronizing a block using a block-chain network.
제2항에 있어서,
상기 제2 피어에서 상기 인증정보를 추정하는 단계는,
상기 사용자로부터 수신한 상기 인증 요청에서 추출하는 상기 인증서 식별정보와 상기 제1 난수를 이용해서 추정된 제1 인증정보를 생성하는 단계를 포함하고,
상기 제1 피어에서 상기 사용자에 대한 상기 인증 요청 정보가 상기 블록체인에 저장됨을 감지하면, 상기 인증 요청 정보에 포함된 인증정보를 이용해서 상기 사용자의 상기 인증 요청을 검증하는 단계는,
상기 제1 피어에서 상기 블록체인에 상기 인증서 식별정보와 함께 저장된 상기 암호화된 제2 난수를 확인하는 단계;
상기 제1 피어에서 상기 암호화된 제2 난수를 복호화하는 단계;
상기 제1 피어에서 상기 추정된 제1 인증정보와 복호화를 통해 획득한 상기 제2 난수를 이용해서 제2 인증정보를 계산하여 추정된 제2 인증정보를 생성하는 단계; 및
상기 제1 피어에서 상기 블록체인에 상기 인증서 식별정보와 함께 저장된 상기 제2 인증정보와 상기 추정된 제2 인증정보를 비교해서 검증하는 단계를 포함하는 블록체인 네트워크를 이용해서 사용자를 인증하고 블록을 동기화하는 방법.
3. The method of claim 2,
Wherein the step of estimating the authentication information at the second peer comprises:
And generating first authentication information estimated using the first random number and the certificate identification information extracted from the authentication request received from the user,
Wherein the step of verifying the authentication request of the user using the authentication information included in the authentication request information comprises the steps of: when the first peer detects that the authentication request information for the user is stored in the block chain,
Confirming the encrypted second random number stored in the block chain with the certificate identification information at the first peer;
Decrypting the encrypted second random number at the first peer;
Generating second authentication information estimated by calculating second authentication information using the estimated first authentication information and the second random number obtained through the decoding at the first peer; And
Verifying and verifying the second authentication information stored with the certificate identification information in the block chain at the first peer and the estimated second authentication information and authenticating the user using the block chain network, How to synchronize.
제1항에 있어서,
상기 제1 피어 또는 제2 피어는 블록 동기화 이벤트의 발생을 감지하면, 블록 생성기로 현재 블록 높이(height)를 요청하여 수신하는 단계; 및
상기 블록 동기화 이벤트의 발생을 감지한 피어에서 해당 피어에 저장된 블록체인의 부족한 블록이 모두 수신될 때까지 피어 리스트(peer list)에 포함된 피어(peer)를 순차적으로 순회하면서 상기 블록체인의 블록을 상기 현재 블록 높이의 역순으로 요청하여 수신하는 동기화 단계
를 더 포함하는 블록체인 네트워크를 이용해서 사용자를 인증하고 블록을 동기화하는 방법.
The method according to claim 1,
When the first peer or the second peer detects the occurrence of a block synchronization event, requesting and receiving a current block height with a block generator; And
The peer detecting the occurrence of the block synchronization event sequentially traverses the peers included in the peer list until all the deficient blocks of the block chain stored in the corresponding peer are received, A synchronization step of requesting and receiving in the reverse order of the current block height
And authenticating the user using the block-chain network.
각기 인증서를 생성하고 인증 요청을 검증할 수 있는 복수의 피어를 포함하는 블록체인 네트워크를 통해서 사용자를 인증하고 블록을 동기화하는 방법에 있어서,
제1 피어에서 사용자로부터 아이디와 패스워드를 포함하는 인증 등록 요청을 수신하는 단계;
상기 제1 피어에서 상기 아이디와 상기 패스워드를 이용해서 인증정보에 해당하는 제1 인증정보를 생성하는 단계;
상기 제1 피어에서 임의의 난수값인 난수를 생성하는 단계;
상기 제1 피어에서 상기 제1 인증정보와 상기 난수를 이용해서 인증정보에 해당하는 제2 인증정보를 생성하는 단계;
상기 제1 피어에서 상기 난수를 암호화하는 단계;
상기 제1 피어에서 블록체인 네트워크를 통해서 상기 사용자의 아이디, 상기 제2 인증정보 및 상기 암호화된 난수의 인증정보를 블록체인에 저장하는 단계;
제2 피어에서 상기 사용자로부터 인증 요청을 수신하면, 상기 인증 요청에서 아이디와 패스워드를 추출하는 단계;
제2 피어에서 상기 추출된 아이디와 상기 추출된 패스워드를 이용해서 제1 인증정보를 추정하여 추정된 제1 인증정보를 생성하는 단계;
상기 제2 피어에서 상기 아이디와 상기 추정된 제1 인증정보를 포함하는 인증 요청 정보를 상기 블록체인 네트워크를 통해서 상기 블록체인에 저장하는 단계;
상기 제1 피어에서 상기 사용자에 대한 상기 인증 요청 정보가 상기 블록체인에 저장됨을 감지하면, 상기 인증 요청 정보에 포함된 상기 추정된 제1 인증정보를 이용해서 상기 사용자의 상기 인증 요청을 검증하는 단계;
상기 제1 피어에서 상기 검증된 결과에 해당하는 인증완료 결과를 상기 블록체인 네트워크를 통해서 상기 블록체인에 저장하는 단계; 및
상기 제2 피어에서 상기 인증완료 결과가 상기 블록체인에 저장됨을 감지하면, 상기 사용자에게 인증 여부를 송신하는 단계
를 포함하는 블록체인 네트워크를 이용해서 사용자를 인증하고 블록을 동기화하는 방법.
A method for authenticating a user and synchronizing a block via a block-chained network comprising a plurality of peers, each authenticating a certificate and verifying an authentication request,
Receiving an authentication registration request including a user ID and a password from a user at a first peer;
Generating first authentication information corresponding to authentication information using the ID and the password at the first peer;
Generating a random number that is an arbitrary random number value at the first peer;
Generating second authentication information corresponding to authentication information using the first authentication information and the random number at the first peer;
Encrypting the random number at the first peer;
Storing the user's identity, the second authentication information, and the authentication information of the encrypted random number in a block chain through the block-chain network at the first peer;
Receiving an authentication request from the user at a second peer, extracting an ID and a password from the authentication request;
Generating first authentication information estimated by estimating first authentication information using the extracted ID and the extracted password in a second peer;
Storing authentication request information including the ID and the estimated first authentication information at the second peer in the block chain through the block chain network;
Verifying the authentication request of the user using the estimated first authentication information included in the authentication request information if it is detected that the authentication request information for the user is stored in the block chain at the first peer ;
Storing an authentication result corresponding to the verified result at the first peer in the block chain through the block chain network; And
When the second peer detects that the authentication result is stored in the block chain, transmitting the authentication result to the user
A method for authenticating a user and synchronizing a block using a block-chain network.
제6항에 있어서,
상기 제1 피어에서 상기 사용자에 대한 상기 인증 요청 정보가 상기 블록체인에 저장됨을 감지하면, 상기 인증 요청 정보에 포함된 상기 추정된 제1 인증정보를 이용해서 상기 사용자의 상기 인증 요청을 검증하는 단계는,
상기 제1 피어에서 상기 블록체인에 상기 아이디와 함께 저장된 상기 암호화된 난수를 확인하는 단계;
상기 제1 피어에서 상기 암호화된 난수를 복호화하는 단계;
상기 제1 피어에서 상기 추정된 제1 인증정보와 복호화를 통해 획득한 상기 난수를 이용해서 제2 인증정보를 계산하여 추정된 제2 인증정보를 생성하는 단계; 및
상기 제1 피어에서 상기 블록체인에 상기 아이디와 함께 저장된 상기 제2 인증정보와 상기 추정된 제2 인증정보를 비교해서 검증하는 단계를 포함하는 블록체인 네트워크를 이용해서 사용자를 인증하고 블록을 동기화하는 방법.
The method according to claim 6,
Verifying the authentication request of the user using the estimated first authentication information included in the authentication request information if it is detected that the authentication request information for the user is stored in the block chain at the first peer Quot;
Confirming the encrypted random number stored with the ID in the block chain at the first peer;
Decrypting the encrypted random number at the first peer;
Generating second authentication information estimated by calculating second authentication information using the estimated first authentication information and the random number obtained through the decoding at the first peer; And
And verifying and verifying the second authentication information stored with the ID in the block chain at the first peer and the estimated second authentication information and authenticating the user using the block chain network and synchronizing the blocks Way.
삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete
KR1020170010413A 2017-01-23 2017-01-23 System and method for authenticating users and synchronizing blocks using a block-chain network KR101930825B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020170010413A KR101930825B1 (en) 2017-01-23 2017-01-23 System and method for authenticating users and synchronizing blocks using a block-chain network

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020170010413A KR101930825B1 (en) 2017-01-23 2017-01-23 System and method for authenticating users and synchronizing blocks using a block-chain network

Publications (2)

Publication Number Publication Date
KR20180086679A KR20180086679A (en) 2018-08-01
KR101930825B1 true KR101930825B1 (en) 2018-12-19

Family

ID=63227703

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170010413A KR101930825B1 (en) 2017-01-23 2017-01-23 System and method for authenticating users and synchronizing blocks using a block-chain network

Country Status (1)

Country Link
KR (1) KR101930825B1 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI698113B (en) * 2019-10-09 2020-07-01 郭谷彰 Identification method and systerm of electronic device
TWI704794B (en) * 2019-03-29 2020-09-11 區塊科技股份有限公司 System and implement method for signing and verifying contract in a block chain network

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109347803B (en) * 2018-09-18 2021-08-17 百度在线网络技术(北京)有限公司 Data processing method, device, equipment and medium for block chain
CN109361734B (en) * 2018-09-18 2021-04-20 百度在线网络技术(北京)有限公司 Data processing method, device, equipment and medium for block chain
KR101975471B1 (en) * 2018-10-16 2019-08-28 (주)이지팜 Block Chain Using Methods With Web Login
KR102204231B1 (en) * 2018-10-29 2021-01-18 에스케이텔레콤 주식회사 Method for managing distributed ledger based on block chain
KR102258091B1 (en) 2018-11-20 2021-06-03 주식회사 피어나인 Operating method of blockchain
KR102353926B1 (en) 2018-11-29 2022-01-20 주식회사 피어나인 Operating method of system having blockchain operating server and authentication server
KR20200086082A (en) 2019-01-08 2020-07-16 주식회사 피어나인 Operating method of database
KR20200086083A (en) 2019-01-08 2020-07-16 주식회사 피어나인 Method of operating database differently
KR102326594B1 (en) 2019-01-08 2021-11-15 주식회사 피어나인 Blockchain based operating method of health checkup database
KR102039852B1 (en) * 2019-01-15 2019-11-26 강대준 A communication control system for unmanned moving vechicle using blockchain and a communication method thereof
KR102273726B1 (en) * 2019-09-03 2021-07-06 주식회사 엘지유플러스 System and method for providing personal information certification service
CN110737664A (en) * 2019-10-21 2020-01-31 深圳前海微众银行股份有限公司 block link point synchronization method and device
KR102245382B1 (en) * 2019-12-31 2021-04-28 주식회사 코인플러그 Method for serving virtual common identifier based on blockchain network, and service providing server for using them
CN111475575B (en) * 2020-04-09 2021-08-10 腾讯科技(深圳)有限公司 Data synchronization method and device based on block chain and computer readable storage medium
CN112003701B (en) * 2020-04-16 2021-03-19 成都质数斯达克科技有限公司 Block self-checking and synchronizing method and device
KR102356725B1 (en) * 2020-04-27 2022-01-27 주식회사 시큐어링크 Authentication and Policy Management Methods Using Layer Blockchain

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101452124B1 (en) * 2013-08-01 2014-10-16 덕성여자대학교 산학협력단 Method for Device Authentication and Session Key Generation Based on Encryption in Internet of Things
KR101637854B1 (en) * 2015-10-16 2016-07-08 주식회사 코인플러그 Certificate issuance system and method based on block chain, certificate authentication system and method based on block chain

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101452124B1 (en) * 2013-08-01 2014-10-16 덕성여자대학교 산학협력단 Method for Device Authentication and Session Key Generation Based on Encryption in Internet of Things
KR101637854B1 (en) * 2015-10-16 2016-07-08 주식회사 코인플러그 Certificate issuance system and method based on block chain, certificate authentication system and method based on block chain

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI704794B (en) * 2019-03-29 2020-09-11 區塊科技股份有限公司 System and implement method for signing and verifying contract in a block chain network
TWI698113B (en) * 2019-10-09 2020-07-01 郭谷彰 Identification method and systerm of electronic device

Also Published As

Publication number Publication date
KR20180086679A (en) 2018-08-01

Similar Documents

Publication Publication Date Title
KR101930825B1 (en) System and method for authenticating users and synchronizing blocks using a block-chain network
KR101975822B1 (en) Private blockchain network system and method for consensus based on blockchain
KR101937216B1 (en) Apparatus and method for managing certificates using a block chain as a certificate authority
WO2018126858A1 (en) Blockchain technology-based robust atm network system and information processing method therefor
CN104980477B (en) Data access control method and system under cloud storage environment
CN110351133B (en) Method and device for main node switching processing in block chain system
KR101937220B1 (en) Method for generating and verifying a digital signature or message authentication code based on a block chain that does not require key management
CN109067801B (en) Identity authentication method, identity authentication device and computer readable medium
KR102019211B1 (en) Method for generating block chain capable of overcoming byzantine fault
WO2007086435A1 (en) Terminal device, server device, and digital contents distribution system
CN110601830B (en) Key management method, device, equipment and storage medium based on block chain
CN109309565A (en) A kind of method and device of safety certification
CN108701308B (en) System for issuing public certificate based on blockchain, and method for issuing public certificate based on blockchain using same
CN111383021B (en) Node management method, device, equipment and medium based on block chain network
KR101817152B1 (en) Method for providing trusted right information, method for issuing user credential including trusted right information, and method for obtaining user credential
CN110177124A (en) Identity identifying method and relevant device based on block chain
CN112218294A (en) 5G-based access method and system for Internet of things equipment and storage medium
KR20200128918A (en) Node device for performing certificate management based on a block chain and operating method thereof
CN101325483B (en) Method and apparatus for updating symmetrical cryptographic key, symmetrical ciphering method and symmetrical deciphering method
CN111538784A (en) Block chain-based digital asset transaction method and device and storage medium
CN110222085B (en) Processing method and device for certificate storage data and storage medium
CN111435913B (en) Identity authentication method and device for terminal of Internet of things and storage medium
CN111163109B (en) Block chain center-removing type node anti-counterfeiting method
CN109462572B (en) Multi-factor authentication method, system, storage medium and security gateway based on encryption card and UsbKey
CN111865595A (en) Block chain consensus method and device

Legal Events

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