KR102416337B1 - Device, method, system and computer readable storage medium for managing blockchain - Google Patents

Device, method, system and computer readable storage medium for managing blockchain Download PDF

Info

Publication number
KR102416337B1
KR102416337B1 KR1020200066461A KR20200066461A KR102416337B1 KR 102416337 B1 KR102416337 B1 KR 102416337B1 KR 1020200066461 A KR1020200066461 A KR 1020200066461A KR 20200066461 A KR20200066461 A KR 20200066461A KR 102416337 B1 KR102416337 B1 KR 102416337B1
Authority
KR
South Korea
Prior art keywords
block
offline
state
transaction
network
Prior art date
Application number
KR1020200066461A
Other languages
Korean (ko)
Other versions
KR20210149427A (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 KR1020200066461A priority Critical patent/KR102416337B1/en
Publication of KR20210149427A publication Critical patent/KR20210149427A/en
Application granted granted Critical
Publication of KR102416337B1 publication Critical patent/KR102416337B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • G06F16/2365Ensuring data consistency and integrity
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/182Distributed file systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • G06F16/2372Updates performed during offline database operations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • G06F16/2379Updates performed during online database operations; commit processing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Retry When Errors Occur (AREA)

Abstract

컴퓨팅 장치의 제어 하에서 수행되는 블록체인 관리 방법이 설명된다. 예시적인 블록체인 관리 방법은 블록체인 네트워크의 네트워크 상태를 검출하는 단계 및 검출된 네트워크 상태에 기초하여 블록을 생성하는 단계를 포함한다. 여기서 블록의 블록 헤더는 이전 블록 해시 값 및 블록 속성 값을 포함한다. 블록 속성 값은 해당 블록이 오프라인 상태와 연관되는지를 나타낸다.A blockchain management method performed under the control of a computing device is described. An exemplary blockchain management method includes detecting a network state of a blockchain network and generating a block based on the detected network state. Here, the block header of the block includes the previous block hash value and the block attribute value. The block attribute value indicates whether the corresponding block is associated with an offline state.

Description

블록체인을 관리하기 위한 장치, 방법, 시스템 및 컴퓨터 판독가능 저장 매체 {DEVICE, METHOD, SYSTEM AND COMPUTER READABLE STORAGE MEDIUM FOR MANAGING BLOCKCHAIN}DEVICE, METHOD, SYSTEM AND COMPUTER READABLE STORAGE MEDIUM FOR MANAGING BLOCKCHAIN}

본 개시는 블록체인을 관리하기 위한 장치, 방법, 시스템 및 컴퓨터 판독가능 저장 매체에 관한 것이다.The present disclosure relates to an apparatus, method, system and computer-readable storage medium for managing a blockchain.

여기에서 달리 언급하지 않으면 본 섹션에서 기술되는 내용은 본 출원에서의 청구범위의 선행 기술이 아니며, 본 섹션에 기재하였다는 이유로 선행 기술로 인정되어서는 안 된다.Unless otherwise stated herein, the subject matter described in this section is not prior art to the claims in this application, and should not be admitted as prior art on the grounds that it is recited in this section.

통신 기능을 가지는 컴퓨팅 장치의 사용이 일반화됨에 따라, 컴퓨팅 장치에 저장된 데이터에 대한 해킹을 방지하기 위한 보안 기술에 대한 관심이 높아지고 있다. 다양한 국가와 다양한 기업에서 관심을 가지는 보안 기술 중 하나는 블록체인(Block Chain)이다. 블록체인은 분산형 데이터 저장 기법을 이용하며, 이는 데이터를 단일의 컴퓨팅 장치에 저장하지 않고 네트워크에 참여하는 복수의 컴퓨팅 장치에 데이터를 저장하는 방식을 이용한다. As the use of a computing device having a communication function becomes common, interest in a security technology for preventing hacking of data stored in the computing device is increasing. One of the security technologies that are interested in various countries and various companies is the block chain. Blockchain uses a distributed data storage technique, which does not store data in a single computing device, but stores data in multiple computing devices participating in a network.

이와 같이, 블록체인은 복수의 컴퓨팅 장치에 분산 저장되며, 블록체인 네트워크 내 복수의 컴퓨팅 장치 각각은 블록체인의 유효한 운영을 위해 블록체인을 계속해서 갱신할 필요가 있다. 따라서, 블록체인 기법을 이용하여 시스템을 운영함에 있어서, 블록체인 네트워크의 연결은 중요하다. 이러한 특징은 블록체인 네트워크로의 연결이 중단될 경우, 블록체인 기법을 이용하는 시스템의 운영도 중단되는 문제로 이어질 수 있다. 한국 등록특허 제10-2037848호는 가상 블록체인을 갖는 듀얼 블록체인 기반의 디지털 전자기기 운용방법에 관하여 개시한다. 이러한 선행특허문헌은 통상의 블록체인 네트워크가 단절되는 경우, 통상 노드가 장치 내부에 가상 노드를 구성하여 가상 블록체인 네트워크 형성하며, 통상 노드와 개별 가상 노드가 1:1 연결되어 통신기기 토큰을 인증함으로써 트랜잭션을 생성한다. 이후, 블록체인 네트워크가 복구되면, 통상 노드는 가상 블록체인 네트워크를 통해 생성했던 트랜잭션을 다른 통상 노드에 배포하여 트랜잭션을 갱신한다. 그러나, 네트워크가 단절된 상태에서 생성된 트랜잭션이 네트워크가 복구된 이후에 단순히 재배포되는 경우, 네트워크의 단절 상태에서 기록된 블록이나 트랜잭션의 일부 정보가 소실될 가능성이 있으며, 이후 네트워크의 복구 이후에, 네트워크의 단절 상태에서 생성된 트랜잭션을 다른 트랜잭션과 구별하여 추적하는 데에 어려움이 있을 수 있다.As such, the blockchain is distributed and stored in a plurality of computing devices, and each of the plurality of computing devices in the blockchain network needs to continuously update the blockchain for effective operation of the blockchain. Therefore, in operating a system using the block chain technique, the connection of the block chain network is important. This feature can lead to a problem that, when the connection to the blockchain network is interrupted, the operation of the system using the blockchain technique is also stopped. Korean Patent Registration No. 10-2037848 discloses a method for operating a digital electronic device based on a dual block chain having a virtual block chain. In this prior patent document, when a normal block chain network is disconnected, a node usually forms a virtual block chain network by configuring a virtual node inside the device, and a node and an individual virtual node are connected 1:1 to authenticate the communication device token. to create a transaction. After that, when the blockchain network is restored, the normal node updates the transaction by distributing the transaction created through the virtual blockchain network to other normal nodes. However, if a transaction created in a state in which the network is disconnected is simply redistributed after the network is restored, there is a possibility that some information of a block or transaction recorded in the state of disconnection of the network will be lost. It may be difficult to distinguish and track a transaction created in the disconnected state of .

본 개시는 위와 같은 문제점들을 해결하기 위한 것으로서, 블록체인을 관리하기 위한 장치, 방법, 시스템 및 컴퓨터 판독가능 저장 매체를 제시한다. The present disclosure provides an apparatus, method, system and computer-readable storage medium for managing a block chain as to solve the above problems.

본 개시의 일부 실시예에서, 컴퓨팅 장치의 제어 하에서 수행되는 블록체인 관리 방법이 설명된다. 예시적인 블록체인 관리 방법은 블록체인 네트워크의 네트워크 상태를 검출하는 단계 및 검출된 네트워크 상태에 기초하여 블록을 생성하는 단계를 포함할 수 있다. 블록의 블록 헤더는 해당 블록이 오프라인 상태와 연관되는지를 나타내는 블록 속성 값을 포함한다.In some embodiments of the present disclosure, a blockchain management method performed under the control of a computing device is described. An exemplary blockchain management method may include detecting a network state of a blockchain network and generating a block based on the detected network state. The block header of a block includes a block attribute value indicating whether the block is associated with an offline state.

일부 예시에서, 블록을 생성하는 단계는 네트워크 상태가 오프라인 상태인 경우, 하나의 트랜잭션을 포함하는 오프라인 블록을 생성하는 단계를 포함할 수 있다. 일부 예시에서, 블록을 생성하는 단계는 네트워크 상태가 오프라인 상태로부터 온라인 상태로 변경되는 경우, 오프라인 상태에서 생성된 오프라인 블록을 트랜잭션으로 변환하여 오프라인 트랜잭션을 생성하는 단계; 및 오프라인 트랜잭션을 포함하는 복구 블록을 생성하는 단계를 포함할 수 있다. 일부 예시에서, 블록을 생성하는 단계는, 네트워크 상태가 온라인 상태로부터 오프라인 상태로 변경되는 경우, 생성 중인 블록에 저장된 트랜잭션 각각에 대하여, 해당 트랜잭션을 포함하는 오프라인 블록을 생성하는 단계; 또는 생성 중인 블록의 생성을 보류하는 단계를 포함할 수 있다.In some examples, generating the block may include generating an offline block including one transaction when the network state is offline. In some examples, the generating of the block may include, when the network state is changed from the offline state to the online state, converting the offline block generated in the offline state into a transaction to generate an offline transaction; and generating a recovery block including the offline transaction. In some examples, the generating of the block may include, when a network state is changed from an online state to an offline state, for each transaction stored in the block being generated, generating an offline block including the corresponding transaction; Alternatively, it may include the step of suspending generation of a block that is being generated.

일부 다른 실시예에서, 블록체인 관리 장치가 설명된다. 예시적인 블록체인 관리 장치는 네트워크 상태 검출부 및 블록 생성부를 포함할 수 있다. 네트워크 상태 검출부는 블록체인 네트워크의 네트워크 상태를 검출할 수 있다. 블록 생성부는 검출된 네트워크 상태에 기초하여, 블록을 생성할 수 있다. 블록의 블록 헤더는 해당 블록이 오프라인 상태와 연관되는지를 나타내는 블록 속성 값을 포함할 수 있다. In some other embodiments, a blockchain management device is described. An exemplary block chain management device may include a network state detection unit and a block generation unit. The network state detection unit may detect the network state of the blockchain network. The block generator may generate a block based on the detected network state. The block header of a block may include a block attribute value indicating whether the corresponding block is associated with an offline state.

일부 예시에서, 블록 생성부는 네트워크 상태 검출부에 의해 검출된 네트워크 상태가 오프라인 상태인 경우, 하나의 트랜잭션을 포함하는 오프라인 블록을 생성할 수 있다. 일부 예시에서, 블록체인 관리 장치는 네트워크 상태 검출부에 의해 네트워크 상태가 오프라인 상태로부터 온라인 상태로 변경되는 경우, 오프라인 상태에서 생성된 오프라인 블록을 트랜잭션으로 변환하여 오프라인 트랜잭션을 생성하는 오프라인 트랜잭션 생성부를 더 포함할 수 있고, 블록 생성부는 오프라인 트랜잭션을 포함하는 복구 블록을 생성할 수 있다.In some examples, the block generating unit may generate an offline block including one transaction when the network state detected by the network state detecting unit is an offline state. In some examples, the block chain management device further includes an offline transaction generating unit that converts an offline block generated in an offline state into a transaction to generate an offline transaction when the network state is changed from the offline state to the online state by the network state detection unit and the block generating unit may generate a recovery block including an offline transaction.

일부 또 다른 실시예에서, 블록 체인 관리 프로그램을 저장하는 컴퓨터 판독가능 저장 매체가 설명된다. 블록체인 관리 프로그램은 컴퓨팅 장치에 의해 실행되는 경우, 블록체인 네트워크의 네트워크 상태를 검출하는 동작; 및 검출된 네트워크 상태에 기초하여, 블록을 생성하는 동작을 수행하도록 하는 하나 이상의 명령어를 포함할 수 있다. In some other embodiments, a computer-readable storage medium storing a blockchain management program is described. When the blockchain management program is executed by the computing device, the operation of detecting the network state of the blockchain network; and one or more instructions to perform an operation of generating a block based on the detected network state.

이상의 간단한 요약 및 효과에 관한 설명은 단순히 예시적인 것으로서 본 개시에서 의도한 기술적 사항을 제한하기 위한 것이 아니다. 이하의 상세한 설명과 첨부된 도면을 참조함으로써, 전술한 예시적인 실시예들과 기술적 특징들에 더하여, 추가적인 실시예와 기술적 특징들이 이해될 수 있을 것이다.The above brief summary and description of effects are merely exemplary and are not intended to limit the technical matters intended in the present disclosure. In addition to the above-described exemplary embodiments and technical features, additional embodiments and technical features may be understood by referring to the following detailed description and accompanying drawings.

본 개시의 전술한 특징들 및 기타 특징들은, 첨부 도면을 참조하여 이하의 설명으로부터 충분히 분명해질 것이다. 이러한 도면들은 본 개시에 따르는 단지 몇 가지의 실시예만을 도시한 것이고, 따라서 그 범위를 제한하는 것으로 간주되어서는 안되는 것을 이해하면서, 본 개시는 첨부된 도면의 사용을 통하여, 더 구체적이고 상세하게 기술될 것이다.
도 1은 본 개시의 적어도 일부 실시예에 따른 블록체인의 일 예시를 도시한다.
도 2는 본 개시의 적어도 일부 실시예에 따라 블록체인을 관리하기 위한 시스템의 개략도를 도시한다.
도 3은 본 개시의 적어도 일부 실시예에 따른 블록체인 관리 장치를 도시하는 블록도이다.
도 4a는 본 개시의 적어도 일부 실시예에 따라 오프라인 상태에서 블록이 추가되는 예시를 도시하고, 도 4b는 도 4a에 따른 예시에서, 네트워크가 온라인 상태로 복구된 경우, 복구 블록이 추가되는 예시를 도시한다.
도 5은 본 개시의 적어도 일부 실시예에 따라, 블록체인을 관리하는 예시적인 프로세스를 도시한다.
도 6은 본 개시의 적어도 일부 실시예에 따라, 블록체인을 관리하는 데 이용될 수 있는 컴퓨터 프로그램 제품을 도시한다.
도 7은 본 개시의 적어도 일부 실시예에 따라 배열되는 컴퓨팅 장치의 예시적인 블록도이다.
The foregoing and other features of the present disclosure will become sufficiently apparent from the following description with reference to the accompanying drawings. With the understanding that these drawings illustrate only a few embodiments in accordance with the present disclosure, and therefore should not be considered limiting of their scope, the present disclosure is described in greater detail and detail through the use of the accompanying drawings. will be
1 illustrates an example of a blockchain according to at least some embodiments of the present disclosure.
2 depicts a schematic diagram of a system for managing a blockchain in accordance with at least some embodiments of the present disclosure.
3 is a block diagram illustrating a block chain management apparatus according to at least some embodiments of the present disclosure.
4A illustrates an example in which a block is added in an offline state according to at least some embodiments of the present disclosure, and FIG. 4B illustrates an example in which a recovery block is added when the network is restored to an online state in the example according to FIG. 4A show
5 depicts an example process for managing a blockchain, in accordance with at least some embodiments of the present disclosure.
6 illustrates a computer program product that may be used to manage a blockchain, in accordance with at least some embodiments of the present disclosure.
7 is an exemplary block diagram of a computing device arranged in accordance with at least some embodiments of the present disclosure.

이하, 첨부한 도면을 참조하여 본 개시가 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 본원의 구현예 및 실시예를 상세히 설명한다. 그러나, 본원은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 구현예 및 실시예에 한정되지 않는다. Hereinafter, embodiments and examples of the present application will be described in detail with reference to the accompanying drawings so that those of ordinary skill in the art to which the present disclosure pertains can easily carry out. However, the present application may be embodied in many different forms and is not limited to the embodiments and examples described herein.

본 개시는 일반적으로, 블록체인을 관리하기 위한 장치, 방법, 시스템 및 컴퓨터 판독가능 저장 매체 및 이에 저장된 프로그램에 관한 것이다.The present disclosure generally relates to an apparatus, method, system and computer-readable storage medium for managing a block chain, and a program stored therein.

도 1은 본 개시의 적어도 일부 실시예에서 이용되는 블록체인(100)의 일 예시를 도시한다. 블록체인(100)은 하나 이상의 블록을 포함하며, 각각의 블록은 요구되는 바에 따라 다양한 형태로 구현될 수 있으며, 적어도 하나의 트랜잭션을 포함한다. 이러한 블록체인(100)은 블록체인 네트워크 내 복수의 노드 각각에서 저장된다. 또한, 이하에서 설명되는 바와 같이, 새로운 블록 및/또는 트랜잭션은 생성될 때마다, 블록체인 네트워크 전반에 걸쳐 전파된다. 1 illustrates an example of a blockchain 100 used in at least some embodiments of the present disclosure. The blockchain 100 includes one or more blocks, and each block may be implemented in various forms as required, and includes at least one transaction. This block chain 100 is stored in each of a plurality of nodes in the block chain network. Also, as described below, whenever a new block and/or transaction is created, it is propagated throughout the blockchain network.

도 1에 도시된 바와 같이, 블록(110)은 블록 해시부(120), 블록 헤더부(130) 및 블록 바디부(140)를 포함할 수 있다. 블록 해시부(120)는 블록 해시 값을 포함하며, 이는 블록(110)을 식별하는 고유 값에 해당한다. 블록 해시 값은 아래 설명되는 바와 같이, 블록(110) 내의 블록 헤더부(130) 및 블록 바디부(140)에 포함된 데이터에 기초하여 연산된다. 블록 헤더부(130)는 블록체인 기법의 유형에 따라 다양한 값을 포함한다. 본 개시에 따르면, 블록 헤더부(130)는 적어도 이전 블록 해시 값, 블록 속성 값 및 데이터 해시 값을 포함할 수 있다. 이전 블록 해시 값은 블록체인 내에서 해당 블록 직전의 블록인 이전 블록(previous block)의 블록 해시 값이다. 블록(110)의 경우, 이전 블록 해시 값은 블록 #n-1의 블록 해시 값(즉, 0xy0…72)이다. 데이터 해시 값은 블록 바디부(140)에 저장되는 하나 이상의 트랜잭션의 데이터에 기초하여 결정된다. As shown in FIG. 1 , the block 110 may include a block hash unit 120 , a block header unit 130 , and a block body unit 140 . The block hash unit 120 includes a block hash value, which corresponds to a unique value for identifying the block 110 . The block hash value is calculated based on data included in the block header unit 130 and the block body unit 140 in the block 110 , as described below. The block header unit 130 includes various values according to the type of block chain technique. According to the present disclosure, the block header unit 130 may include at least a previous block hash value, a block attribute value, and a data hash value. The previous block hash value is the block hash value of the previous block, which is the block immediately before the block in the block chain. For block 110, the previous block hash value is the block hash value of block #n-1 (ie, 0xy0...72). The data hash value is determined based on data of one or more transactions stored in the block body unit 140 .

블록 속성 값은 해당 블록이 블록체인(100)과 연관된 네트워크의 상태, 예컨대 오프라인 상태 또는 온라인 상태와 연관되는지를 나타내는 값이다. 일부 예시에서, 블록 속성 값은 본 개시에 따라 해당 블록이 오프라인 상태에서 생성되는 오프라인 블록임을 나타내거나 오프라인 블록의 트랜잭션을 포함하도록 온라인 상태에서 생성되는 복구 블록임을 나타내는 제1 상태를 포함할 수 있다. 또한 블록 속성 값은 해당 블록이 온라인 상태에서 생성되거나 수신된 트랜잭션을 포함하는 온라인 블록임을 나타내는 제2 상태를 포함할 수 있다. 일부 다른 예시에서, 블록 속성 값은 현재 오프라인 상태임을 나타내는 제1 상태; 네트워크의 상태가 온라인 상태이지만, 해당 블록에 포함되는 트랜잭션은 오프라인 블록의 트랜잭션임을 나타내는 제2 상태; 및 해당 블록이 온라인 상태에서 생성 또는 수신되는 트랜잭션을 포함하는 정상 블록임을 나타내는 제3 상태를 포함할 수 있다.The block attribute value is a value indicating whether the block is associated with the state of the network associated with the block chain 100, for example, an offline state or an online state. In some examples, the block attribute value may include a first state indicating that the block is an offline block generated in an offline state according to the present disclosure, or a recovery block generated in an online state to include a transaction of the offline block. In addition, the block attribute value may include a second state indicating that the corresponding block is an online block including a transaction generated or received in the online state. In some other examples, the block attribute value includes a first state indicating that the current offline state is; a second state indicating that the network state is an online state, but a transaction included in the corresponding block is an offline block transaction; and a third state indicating that the corresponding block is a normal block including a transaction generated or received in an online state.

블록 헤더부(130)에 포함되는 값은 위 설명된 예시에 제한되지 않으며, 예컨대, 현재 블록의 깊이 값, 블록 생성 시각 값, 프로토콜 버전 값, 난이도 설정 값(nonce) 등과 같은 다양한 값을 더 포함할 수 있다.The value included in the block header unit 130 is not limited to the example described above, and includes, for example, various values such as a depth value of the current block, a block creation time value, a protocol version value, a difficulty setting value (nonce), and the like. can do.

블록 바디부(140)는 예컨대, "트랜잭션 n.1" 등과 같은 하나 이상의 트랜잭션을 포함할 수 있다. 각각의 트랜잭션이 노드에 의해 생성되는 경우, 해당 노드는 생성된 트랜잭션을 블록체인 네트워크 내 다른 노드로 전송할 수 있다. 노드가 트랜?Ъ퓽? 수신하는 경우, 해당 트랜잭션이 유효한 노드로부터 수신된 것 인지와 같이 트랜잭션의 유효성을 결정하며, 트랜잭션이 유효하면 해당 트랜잭션을 블록에 추가한다. 블록에 포함되는 트랜잭션의 수 또는 사이즈는 구현예에 따라 미리 정해질 수 있다. 각각의 트랜잭션에는 블록체인의 구현예에 따라 요구되는 데이터가 저장될 수 있다. 블록 바디부(140)에 저장되는 트랜잭션이 미리 정해진 기간, 미리 정해진 트랜잭션의 수 등과 같은 미리 정해진 조건에 만족하는 경우, 블록 바디부(140)에 포함된 하나 이상의 트랜잭션과 연관된 값으로부터 데이터 해시 값이 연산된다. 일부 예시에서, 데이터 해시 값은 머클 트리(merkle tree) 구조를 이용하여 머클 루트(merkle root)를 연산함으로써 획득할 수 있다. 이후, 이러한 데이터 해시 값을 포함하는 블록 헤더부(130) 내 다양한 값에 기초하여, 블록 해시 값이 연산되어, 결과적으로 블록(110)이 생성된다.The block body 140 may include, for example, one or more transactions such as “transaction n.1”. When each transaction is generated by a node, the node can transmit the generated transaction to other nodes in the blockchain network. Is the node trans?Ъ⓽? When received, the validity of the transaction is determined, such as whether the transaction was received from a valid node, and if the transaction is valid, the transaction is added to the block. The number or size of transactions included in a block may be predetermined according to an implementation. In each transaction, data required according to the implementation of the block chain may be stored. When a transaction stored in the block body unit 140 satisfies predetermined conditions such as a predetermined period, a predetermined number of transactions, etc., a data hash value is obtained from values associated with one or more transactions included in the block body unit 140 . is calculated In some examples, the data hash value may be obtained by calculating a merkle root using a merkle tree structure. Then, based on the various values in the block header unit 130 including the data hash value, the block hash value is calculated, and as a result, the block 110 is generated.

이와 같이 생성된 블록(110)은 블록체인 네트워크 내의 노드로 전송된다. 한편, 블록체인 네트워크 내 노드는 블록(110)의 수신 전에는 블록(110)의 이전 블록(즉, 도 1에서 블록#n-1)까지의 블록체인에 대한 데이터를 저장한다. 노드가 새로운 블록(110)을 수신하는 경우, 해당 블록이 유효한 노드로부터 수신된 것 인지와 같이 수신된 블록(110)의 유효성을 검증하고, 블록(110)이 유효하면, 블록체인에 블록(110)을 추가하는 한편, 블록체인 내 다른 노드로 블록(110)을 전송한다. The block 110 generated in this way is transmitted to a node in the blockchain network. On the other hand, the node in the block chain network stores data for the block chain up to the previous block of the block 110 (ie, block #n-1 in FIG. 1 ) before the reception of the block 110 . When a node receives a new block 110, it verifies the validity of the received block 110, such as whether the block is received from a valid node, and if the block 110 is valid, the block 110 in the blockchain ), while sending the block 110 to another node in the blockchain.

도 2는 본 개시의 적어도 일부 실시예에 따라 블록체인을 관리하기 위한 시스템(200)의 개략도를 도시한다. 본 개시에 따른 예시적인 시스템(200)은 블록체인 네트워크(210)를 포함할 수 있다. 블록체인 네트워크(210)는 미리 정해진 컴퓨팅 장치가 노드로서 동작하는 프라이빗 블록체인(private blockchain)으로 구현되는 경우, 시스템(200)은 블록체인 데이터를 액세스하는 블록체인 네트워크(210) 외부의 단말 장치를 더 포함하며, 이러한 블록체인 네트워크(120)는 시스템(200)의 운영 비용, 이용 용이성, 속도, 안정성 등의 측면에서 이점을 가지지만, 본 개시는 이에 제한되지 않는다. 다른 구현예에서, 블록체인 네트워크(210)는 퍼블릭 블록체인(public blockchain)의 구조로 구현되는 것도 가능하다. 2 shows a schematic diagram of a system 200 for managing a blockchain in accordance with at least some embodiments of the present disclosure. An exemplary system 200 according to the present disclosure may include a blockchain network 210 . When the blockchain network 210 is implemented as a private blockchain in which a predetermined computing device operates as a node, the system 200 provides a terminal device outside the blockchain network 210 that accesses the blockchain data. Further, such a block chain network 120 has advantages in terms of operating cost, ease of use, speed, stability, etc. of the system 200, but the present disclosure is not limited thereto. In another embodiment, the blockchain network 210 is also possible to be implemented in the structure of a public blockchain (public blockchain).

일부 실시예에서, 블록체인 네트워크(210)는 복수의 노드(220-1, 220-2, 220-3, 220-4, ...)를 포함한다. 복수의 노드(220-1, 220-2, 220-3, 220-4, ...) 각각은 예컨대, 데스크 탑 컴퓨터, 랩탑 컴퓨터, 스마트폰, 태블릿 컴퓨터, 휴대 전화기, 개인 휴대용 단말기(PDA), 특정 용도 장치 또는 상기 기능 중 임의의 것을 포함하는 융합 장치와 같은 단일 컴퓨팅 장치; 또는 서버 팜(server farm), 분산형 네트워크, 클라우드 컴퓨팅 구성과 같이 복수의 컴퓨팅 장치를 포함하는 복수 컴퓨팅 구성일 수 있으나, 이에 제한되지 않는다. 예컨대, 둘 이상의 노드가 단일 컴퓨팅 장치에서 가상 노드의 형태로 구현되는 것 또한 가능하다. 블록체인 네트워크(210) 내 복수의 노드(220-1, 220-2, 220-3, 220-4, ...) 각각은 블록을 생성하고, 생성된 블록을 연결된 다른 노드로 전파하고, 수신된 블록을 검증하고, 블록을 추가하는 기능을 수행한다. 이하에서는, 본 개시에 따른 일부 실시예로서, 노드(220-1)의 동작에 관하여 설명하며, 노드(220-1)에 대하여 설명된 동작은 다른 노드(220-2, 220-3, 220-4, …에도 적용될 수 있다는 점이 이해될 것이다. In some embodiments, the blockchain network 210 includes a plurality of nodes 220-1, 220-2, 220-3, 220-4, ... Each of the plurality of nodes 220-1, 220-2, 220-3, 220-4, ... is, for example, a desktop computer, a laptop computer, a smart phone, a tablet computer, a mobile phone, a personal digital assistant (PDA) , a single computing device, such as a special purpose device or a fusion device comprising any of the above functions; Alternatively, it may be a multiple computing configuration including a plurality of computing devices, such as a server farm, a distributed network, or a cloud computing configuration, but is not limited thereto. For example, it is also possible for two or more nodes to be implemented in the form of a virtual node in a single computing device. Each of the plurality of nodes 220-1, 220-2, 220-3, 220-4, ... in the blockchain network 210 generates a block, and propagates the generated block to other connected nodes, and receives It verifies the block and adds the block. Hereinafter, as some embodiments according to the present disclosure, the operation of the node 220-1 will be described, and the operation described with respect to the node 220-1 will be performed on the other nodes 220-2, 220-3, 220- It will be understood that 4, ... can also be applied.

일부 실시예에서, 노드(220-1)는 블록 체인의 개별 블록을 생성할 수 있다. 블록 체인은 제네시스 블록 및 하나 이상의 블록을 포함할 수 있다. 각 블록은 하나 이상의 트랜잭션을 포함할 수 있으며, 각 트랜잭션은 요구되는 구현예에 따른 데이터가 포함될 수 있다. 예컨대, 시스템(200)은 마트의 정산 시스템과 연관될 수 있다. 이러한 예시에서, 정산 시스템의 노드(220-1, 220-2, 220-3, 220-4, ...) 각각은 결제용 컴퓨팅 장치일 수 있으며, 트랜잭션은 결제 데이터일 수 있다. 노드(220-1)에 의한 블록의 구성과 생성에 대한 상세한 설명은 도 1에서의 블록의 생성에 관한 설명과 중복되므로, 명료함을 위하여 생략한다.In some embodiments, node 220-1 may generate individual blocks of the blockchain. A blockchain may include a Genesis block and one or more blocks. Each block may contain one or more transactions, and each transaction may contain data according to a required implementation. For example, the system 200 may be associated with a settlement system of a mart. In this example, each of the nodes 220-1, 220-2, 220-3, 220-4, ... of the settlement system may be a computing device for payment, and the transaction may be payment data. A detailed description of the block construction and generation by the node 220 - 1 overlaps with the block generation description in FIG. 1 , and thus is omitted for clarity.

일부 실시예에서, 노드(220-1)는 블록체인 네트워크(210)의 네트워크 상태를 검출할 수 있다. 검출된 네트워크 상태는 예컨대, 노드(220-1)가 온라인 상태인 경우, 오프라인 상태인 경우, 오프라인 상태로부터 온라인 상태로 변경되는 상태인 경우 또는 온라인 상태로부터 오프라인 상태로 변경되는 상태인 경우를 포함할 수 있다. In some embodiments, the node 220 - 1 may detect the network state of the blockchain network 210 . The detected network state may include, for example, a case in which the node 220-1 is in an online state, an offline state, a state changed from an offline state to an online state, or a state changed from an online state to an offline state. can

노드(220-1)는 검출된 네트워크 상태에 기초하여 블록을 생성할 수 있다. 노드(220-1)는 블록체인 네트워크(210)의 네트워크 상태가 온라인 상태라고 검출되는 경우, 미리 정해진 트랜잭션 수, 생성 주기, 블록 사이즈에 기초하여 정상 블록을 생성할 수 있다. 예를 들어, 트랜잭션이 미리 정해진 조건을 만족하는 경우, 노드(220-1)는 하나 이상의 트랜잭션과 연관된 값으로부터 데이터 해시 값을 연산할 수 있다. 이러한 데이터 해시값을 포함하는 블록 헤더부 내의 다양한 값에 기초하여, 노드(220-1)는 블록 해시 값을 연산함으로써 블록의 생성을 완료할 수 있다.The node 220 - 1 may generate a block based on the detected network state. When it is detected that the network state of the blockchain network 210 is online, the node 220-1 may generate a normal block based on a predetermined number of transactions, a generation period, and a block size. For example, when a transaction satisfies a predetermined condition, the node 220 - 1 may calculate a data hash value from values associated with one or more transactions. Based on various values in the block header including the data hash value, the node 220 - 1 may complete the block generation by calculating the block hash value.

노드(220-1)는, 블록체인 네트워크(210)의 네트워크 상태가 오프라인 상태인 경우, 오프라인 블록을 생성할 수 있다. 예컨대, 네트워크의 고장 등의 다양한 원인으로 인하여, 노드(220-1)는 노드(220-2, 220-4)와 같은 다른 노드와 통신 불가능할 수 있다. 이와 같이, 네트워크 상태의 검출에 의해 노드(220-1)가 현재, 블록체인 네트워크(210)에서 오프라인 상태임을 검출한 경우에도, 해당 노드(220-1)는 블록을 계속해서 생성하도록 동작할 수 있으며, 여기서 오프라인 상태에서 생성되는 블록을 오프라인 블록이라고 지칭할 수 있다. 일부 예시에서, 노드(220-1)는 오프라인 상태가 검출된 경우, 이러한 오프라인 블록을 생성하기 위해 미리 정해진 API(Application Program Interface)를 실행할 수 있다. The node 220-1 may generate an offline block when the network state of the blockchain network 210 is offline. For example, due to various causes such as network failure, the node 220-1 may not be able to communicate with other nodes such as the nodes 220-2 and 220-4. As such, even when it is detected that the node 220-1 is currently offline in the block chain network 210 by detecting the network state, the node 220-1 can continue to generate blocks. Here, a block generated in an offline state may be referred to as an offline block. In some examples, when an offline state is detected, the node 220 - 1 may execute a predetermined application program interface (API) to generate such an offline block.

오프라인 블록은 미리 정해진 수의 트랜잭션을 포함할 수 있다. 일부 예시에서, 오프라인 블록은 하나의 트랜잭션을 포함할 수 있다. 예컨대, 시스템(200)은 마트의 정산 시스템과 연관될 수 있으며, 노드(220-1)는 마트 내 결제용 컴퓨팅 장치일 수 있다. 이러한 예시에서, 노드(220-1) 또는 블록체인 네트워크(210)의 어떠한 이상으로 인하여, 노드(220-1)의 네트워크 상태가 오프라인 상태가 된 경우, 노드(220-1)는 결제가 발생할 때마다, 해당 결제에 대한 트랜잭션을 생성하고, 해당 트랜잭션을 포함하는 오프라인 블록을 생성할 수 있다. 이와 같이 오프라인 블록이 하나의 트랜잭션을 포함하는 것으로 설명되었으나, 본 개시는 이에 제한되지 않으며, 오프라인 블록이 둘 이상의 트랜잭션을 포함하도록 하는 것도 가능하다.An offline block may contain a predetermined number of transactions. In some examples, an offline block may contain one transaction. For example, the system 200 may be associated with a settlement system of a mart, and the node 220-1 may be a computing device for payment in the mart. In this example, when the network state of the node 220-1 goes offline due to some abnormality in the node 220-1 or the blockchain network 210, the node 220-1 is For each transaction, a transaction for the corresponding payment can be created, and an offline block including the corresponding transaction can be created. Although it has been described that the offline block includes one transaction as described above, the present disclosure is not limited thereto, and it is also possible to make the offline block include two or more transactions.

노드(220-1)는 블록체인 네트워크(210)의 네트워크 상태가 오프라인 상태로부터 온라인 상태로 변경되는 경우, 복구 블록을 생성할 수 있다. 이러한 복구 블록은 오프라인 트랜잭션을 포함할 수 있다. 오프라인 트랜잭션은 오프라인 상태에서 생성된 오프라인 블록을 트랜잭션으로 변환함으로써 생성될 수 있다. The node 220-1 may generate a recovery block when the network state of the blockchain network 210 is changed from an offline state to an online state. These recovery blocks may contain offline transactions. An offline transaction can be created by converting an offline block created in an offline state into a transaction.

예를 들어, 노드(220-1)는 전술한 바와 같이 오프라인 상태에서 오프라인 블록을 생성할 수 있으며, 이러한 오프라인 블록은 블록 해시 값, 이전 블록 해시 값, 블록 속성 값 및 데이터 해시 값을 포함할 수 있다. 이후, 네트워크 상태가 오프라인 상태로부터 온라인 상태로 변경되는 경우, 노드(220-1)는 오프라인 블록의 블록 해시 값, 이전 블록 해시 값, 블록 속성 값 및 데이터 해시 값을 오프라인 트랜잭션의 데이터로서 정의할 수 있다. 또한, 노드(220-1)는 오프라인 블록의 트랜잭션을 오프라인 트랜잭션의 데이터로서 정의할 수 있다. 오프라인 트랜잭션은 정의된 데이터를 그대로 오프라인 트랜잭션의 데이터로서 사용하여 생성될 수 있다. 이러한 방식으로, 노드(220-1)는 오프라인 상태에서 생성된 복수의 오프라인 블록 각각을 트랜잭션으로 변환하여 복수의 오프라인 트랜잭션을 생성할 수 있다. For example, the node 220-1 may generate an offline block in an offline state as described above, and such an offline block may include a block hash value, a previous block hash value, a block attribute value, and a data hash value. have. Thereafter, when the network state is changed from the offline state to the online state, the node 220-1 may define the block hash value of the offline block, the previous block hash value, the block attribute value, and the data hash value as data of the offline transaction. have. Also, the node 220 - 1 may define a transaction of an offline block as data of an offline transaction. The offline transaction may be created by using the defined data as it is as the data of the offline transaction. In this way, the node 220 - 1 may generate a plurality of offline transactions by converting each of the plurality of offline blocks generated in the offline state into a transaction.

노드(220-1)는 오프라인 트랜잭션을 블록체인 네트워크(210)에 전송할 수 있다. 각 노드(220-2, 220-3, 220-4 등)는 수신된 오프라인 트랜잭션의 유효성을 확인한 후, 오프라인 트랜잭션을 생성 중인 블록에 추가할 수 있다. 노드(220-1)는 이와 같이 오프라인 트랜잭션을 포함하는 복구 블록을 생성할 수 있다. 바람직하게는 오프라인 트랜잭션만을 포함하는 복구 블록을 생성할 수 있다. 이러한 방식으로 복구 블록을 생성하는 동안, 노드(220-1)는 온라인 상태에서 생성 또는 수신되는 트랜잭션에 대한 정상 블록을 생성할 수 있다. 정상 블록의 생성은 복구 블록의 생성과는 독립적으로 및/또는 병렬적으로 수행될 수 있다. 또한, 복구 블록이 생성된 이후에, 오프라인 블록은 미사용 처리 될 수 있다.The node 220 - 1 may transmit an offline transaction to the blockchain network 210 . After checking the validity of the received offline transaction, each node 220-2, 220-3, 220-4, etc. may add the offline transaction to the block being generated. The node 220-1 may generate a recovery block including an offline transaction in this way. Preferably, it is possible to create a recovery block containing only offline transactions. While generating the recovery block in this way, the node 220 - 1 may generate a normal block for a transaction generated or received while online. Generation of the normal block may be performed independently and/or in parallel with generation of the recovery block. Also, after the recovery block is created, the offline block may be processed as unused.

일부 예시에서, 노드(220-1)는, 블록체인 네트워크(210)의 네트워크 상태가 온라인 상태로부터 오프라인 상태로 변경되는 경우, 생성 중인 블록에 이미 저장된 트랜잭션 각각에 대하여 해당 트랜잭션을 포함하는 오프라인 블록을 생성할 수 있다. 노드(220-1)가 블록의 생성을 완료하기 이전, 즉, 생성 중인 블록에 트랜잭션을 추가하는 동안, 네트워크의 상태는 오프라인 상태로 변경될 수 있다. 이러한 경우, 노드(220-1)는 생성 중인 블록에 이미 추가된 트랜잭션을 오프라인 블록으로 변환할 수 있다. 노드(220-1)는 트랜잭션이 기록된 순서에 따라 오프라인 블록을 생성할 수 있다. In some examples, when the network state of the blockchain network 210 is changed from an online state to an offline state, the node 220-1 performs an offline block including the corresponding transaction for each transaction already stored in the block being generated. can create Before the node 220 - 1 completes the block generation, that is, while adding a transaction to the block being generated, the network state may be changed to an offline state. In this case, the node 220 - 1 may convert a transaction already added to the block being generated into an offline block. The node 220 - 1 may generate offline blocks according to the order in which transactions are recorded.

일부 다른 예시에서, 노드(220-1)는, 블록체인 네트워크(210)의 네트워크 상태가 온라인 상태로부터 오프라인 상태로 변경되는 경우, 생성 중인 블록의 생성을 보류할 수 있다. 블록의 생성을 보류하는 경우, 네트워크가 온라인 상태로 복구되면 보류 중이던 블록의 생성을 재개할 수 있다.In some other examples, when the network state of the blockchain network 210 is changed from an online state to an offline state, the node 220 - 1 may suspend generation of the block being generated. In the case of pending block generation, the pending block generation can be resumed when the network is restored to an online state.

본 개시에 따른 일부 실시예에서, 블록의 블록 헤더는 블록이 오프라인 상태와 연관되는지를 나타내는 블록 속성 값을 포함할 수 있다. 노드(220-1)는 블록의 유형에 기초하여 블록 속성 값을 결정할 수 있다. 일부 예시에서, 해당 블록이 오프라인 상태에서 생성되는 오프라인 블록이거나 온라인 상태에서 생성되는 복구 블록인 경우 제1 상태인 경우, 블록 속성 값은 제1 상태에 관한 값, 예컨대, TRUE값을 가질 수 있다. 또한, 해당 블록이 제1 상태가 아닌 상태, 즉, 정상 블록인 경우, 블록 속성 값은 제2 상태에 관한 값, 예컨대, FALSE값을 가질 수 있다. In some embodiments according to the present disclosure, a block header of a block may include a block attribute value indicating whether the block is associated with an offline state. The node 220 - 1 may determine a block attribute value based on the type of the block. In some examples, when the corresponding block is an offline block generated in an offline state or a recovery block generated in an online state, in the first state, the block attribute value may have a value related to the first state, for example, a TRUE value. Also, when the corresponding block is in a state other than the first state, that is, a normal block, the block attribute value may have a value related to the second state, for example, a FALSE value.

일부 다른 예시에서, 해당 블록이 오프라인 블록인 경우, 블록 속성 값은 제1 상태에 관한 값을 가질 수 있다. 또한, 해당 블록이 복구 블록인 경우, 제2 상태에 관한 값을 가질 수 있다. 또한, 해당 블록이 정상 블록인 경우, 제3 상태에 관한 값을 가질 수 있다. In some other examples, when the corresponding block is an offline block, the block attribute value may have a value related to the first state. Also, when the corresponding block is a recovery block, it may have a value related to the second state. Also, when the corresponding block is a normal block, it may have a value related to the third state.

이와 같이, 본 개시에 따르면, 블록체인 기법을 활용하여 데이터를 신뢰 가능하게 저장 및 관리할 수 있으며, 네트워크 간의 연결이 끊기는 등 이용에 어려움이 생기는 경우에도 멈춤 없이 블록 체인으로 데이터를 관리하는 것이 가능해진다. 또한, 네트워크가 복구된 이후에도, 오프라인 상태에서 생성된 오프라인 블록에 대한 정보를 보존할 수 있다.As such, according to the present disclosure, data can be reliably stored and managed by using the block chain technique, and it is possible to manage data with the block chain without stopping even when there is difficulty in use such as a disconnection between networks becomes In addition, even after the network is restored, information on offline blocks generated in the offline state can be preserved.

도 3은 본 개시의 적어도 일부 실시예에 따른 블록체인 관리 장치(300)를 도시하는 블록도이다. 도 3에 도시된 블록체인 관리 장치(300)는 예컨대, 도 2의 노드(220-1, 220-2, 220-3, 220-4, ...)와 같이, 블록을 생성하고, 생성된 블록을 연결된 다른 노드로 전파하고, 수신된 블록을 검증하고, 블록을 추가하는 기능을 수행한다. 이러한 점에서, 블록체인 관리 장치(300)는 예컨대, 데스크 탑 컴퓨터, 랩탑 컴퓨터, 스마트폰, 태블릿 컴퓨터, 휴대 전화기, 개인 휴대용 단말기(PDA), 특정 용도 장치 또는 상기 기능 중 임의의 것을 포함하는 융합 장치와 같은 단일 컴퓨팅 장치; 또는 서버 팜(server farm), 분산형 네트워크, 클라우드 컴퓨팅 구성과 같이 복수의 컴퓨팅 장치를 포함하는 복수 컴퓨팅 구성일 수 있으나, 이에 제한되지 않는다.3 is a block diagram illustrating a block chain management apparatus 300 according to at least some embodiments of the present disclosure. The block chain management device 300 shown in FIG. 3 generates a block, for example, as in the nodes 220-1, 220-2, 220-3, 220-4, ... of FIG. 2, and the generated It propagates blocks to other connected nodes, verifies received blocks, and adds blocks. In this regard, the blockchain management device 300 may be, for example, a desktop computer, a laptop computer, a smart phone, a tablet computer, a mobile phone, a personal digital assistant (PDA), a special purpose device, or a fusion comprising any of the above functions. a single computing device, such as a device; Alternatively, it may be a multiple computing configuration including a plurality of computing devices, such as a server farm, a distributed network, or a cloud computing configuration, but is not limited thereto.

일부 실시예에서, 블록체인 관리 장치(300)는 도 3에 도시된 바와 같이, 네트워크 상태 검출부(310), 블록 생성부(320), 오프라인 트랜잭션 생성부(330) 및 블록체인 네트워크부(340)를 포함할 수 있다. 블록 생성부(310)는 트랜잭션 처리부(322), 데이터 해시 연산부(324) 및 블록해시 연산부(326)를 포함할 수 있다.In some embodiments, the block chain management device 300, as shown in FIG. 3 , a network state detection unit 310 , a block generation unit 320 , an offline transaction generation unit 330 , and a block chain network unit 340 . may include The block generating unit 310 may include a transaction processing unit 322 , a data hash operation unit 324 , and a block hash operation unit 326 .

블록체인 관리 장치(300)는 본 개시에 따른 하나 이상의 프로그램을 내부 메모리에 저장할 수 있으며, 이러한 하나 이상의 프로그램은 프로세서의 실행에 의해, 이하에서 설명되는 네트워크 상태 검출부(310), 블록 생성부(320), 오프라인 트랜잭션 생성부(330) 및 블록체인 네트워크부(340)의 동작 중 적어도 일부를 수행할 수 있다. 이러한 컴포넌트들(310, 320, 330 및 340) 및 그 서브 컴포넌트들(322, 324 및 326)은 개별적인 컴포넌트로 도시되었으나, 개시된 대상의 범위를 벗어나지 않으면서, 추가적인 컴포넌트로 분리될 수 있거나 더 적은 컴포넌트로 조합되거나 제거될 수 있다. 또한, 도 3에서는 컴포넌트가 소프트웨어에 의해 구현되는 것으로 도시되지만, 당업자라면 컴포넌트의 각각의 기능 및/또는 동작이 하드웨어, 소프트웨어, 펌웨어 또는 그들의 임의의 조합을 통하여 개별적으로 및/또는 종합적으로 구현될 수 있음을 이해할 것이다.The block chain management device 300 may store one or more programs according to the present disclosure in the internal memory, and these one or more programs are executed by the processor, and the network state detection unit 310 and block generation unit 320 to be described below. ), the offline transaction generating unit 330 , and at least some of the operations of the blockchain network unit 340 may be performed. Although these components 310 , 320 , 330 and 340 and their subcomponents 322 , 324 and 326 are shown as separate components, they may be separated into additional or fewer components without departing from the scope of the disclosed subject matter. can be combined or eliminated. In addition, although the component is illustrated as being implemented by software in FIG. 3 , each function and/or operation of the component may be individually and/or collectively implemented through hardware, software, firmware, or any combination thereof by those skilled in the art. will understand that

네트워크 상태 검출부(310)는 블록체인 네트워크의 네트워크 상태를 검출할 수 있다. 검출된 네트워크 상태는 예컨대, 온라인 상태인 경우, 오프라인 상태인 경우, 오프라인 상태로부터 온라인 상태로 전환되는 상태인 경우 또는 온라인 상태로부터 오프라인 상태로 전환되는 상태인 경우를 포함할 수 있다.The network state detection unit 310 may detect the network state of the blockchain network. The detected network state may include, for example, an online state, an offline state, a state converted from an offline state to an online state, or a state converted from an online state to an offline state.

블록 생성부(320)는 네트워크 상태 검출부(310)에 의해 검출된 네트워크 상태에 기초하여 블록체인의 개별 블록을 생성할 수 있다. 블록 생성부(320)에 의해 생성되는 블록의 블록 헤더는 블록 체인 적어도 이전 블록 해시 값, 블록 속성 값 및 데이터 해시 값을 포함할 수 있다. 이전 블록 해시 값은 블록체인 내에서 해당 블록 직전의 블록인 이전 블록(previous block)의 블록 해시 값이다. 블록 속성 값은 해당 블록이 블록체인과 연관된 네트워크의 상태, 예컨대 오프라인 상태 또는 온라인 상태와 연관되는지를 나타내는 값이다. 일부 선택적인 예시에서, 블록헤더는 현재 블록의 깊이 값, 블록 생성 시각 값, 프로토콜 버전 값, 난이도 설정 값(nonce) 중 적어도 하나를 더 포함할 수 있다. The block generating unit 320 may generate individual blocks of the block chain based on the network state detected by the network state detecting unit 310 . The block header of the block generated by the block generator 320 may include at least a previous block hash value, block attribute value, and data hash value of the block chain. The previous block hash value is the block hash value of the previous block, which is the block immediately before the block in the block chain. The block attribute value is a value indicating whether the corresponding block is associated with the state of the network associated with the blockchain, such as an offline state or an online state. In some optional examples, the block header may further include at least one of a depth value of the current block, a block creation time value, a protocol version value, and a difficulty setting value (nonce).

네트워크 상태가 온라인 상태인 경우, 블록 생성부(320)는 미리 정해진 트랜잭션 수, 생성 주기, 블록 사이즈에 기초하여 정상 블록을 생성할 수 있다. 트랜잭션 처리부(322)는 블록체인 내 트랜잭션을 검증하고, 생성하고 있는 정상 블록에 검증된 해당 트랜잭션을 추가하도록 구성된다. 그러한 트랜잭션은 블록 체인 관리 장치(300) 또는 블록체인 관리 장치(300)와 연관된 장치에 의해 생성되거나 블록체인 네트워크부(340)에 의해 다른 블록체인 관리 장치로부터 수신될 수 있다. 생성하고 있는 정상 블록이 미리 정해진 조건, 예컨대, 미리 정해진 기간, 누적된 트랜잭션의 미리 정해진 수를 만족하는 경우, 트랜잭션 처리부(322)는 트랜잭션의 추가를 중단할 수 있으며, 데이터 해시 연산부(324)는 데이터 해시 값을 연산할 수 있다. 트랜잭션 처리부(322)에 의해 추가되는 트랜잭션은 요구되는 구현예에 따른 데이터를 포함할 수 있다.When the network state is an online state, the block generator 320 may generate a normal block based on a predetermined number of transactions, a generation period, and a block size. The transaction processing unit 322 is configured to verify the transaction in the block chain and add the verified transaction to the normal block being generated. Such a transaction may be generated by the block chain management device 300 or a device associated with the block chain management device 300 or may be received from another block chain management device by the block chain network unit 340 . When the normal block being generated satisfies a predetermined condition, for example, a predetermined period, and a predetermined number of accumulated transactions, the transaction processing unit 322 may stop adding the transaction, and the data hash operation unit 324 Data hash values can be calculated. The transaction added by the transaction processing unit 322 may include data according to a required implementation.

이와 같이, 데이터 해시 연산부(324)는 트랜잭션의 추가가 중단된 블록에 대하여, 데이터 해시 값을 연산할 수 있다. 일부 예시에서, 데이터 해시 연산부(324)는 해당 블록에 포함된 하나 이상의 트랜잭션과 연관된 값을 이용하여 데이터 해시 값을 연산할 수 있다. 예컨대, 데이터 해시 연산부(324)는 머클 트리(Merkle tree) 구조를 이용하여 머클 루트(Merkle root)를 연산할 수 있다.In this way, the data hash operation unit 324 may calculate a data hash value for the block in which the addition of the transaction is stopped. In some examples, the data hash operation unit 324 may calculate a data hash value using values associated with one or more transactions included in the corresponding block. For example, the data hash operation unit 324 may calculate a Merkle root using a Merkle tree structure.

블록해시 연산부(326)는 데이터 해시 연산부(324)의 연산에 기초하여, 블록의 블록 해시 값을 연산할 수 있다. 블록해시 연산부(326)는 적어도 데이터 해시 연산부(324)에 의해 연산된 데이터 해시 값, 이전 블록 해시 값 및 블록이 온라인 상태와 연관됨을 나타내는 블록 속성 값, 특히, 블록의 유형이 정상 블록임을 나타내는 블록 속성 값을 이용하여 해당 블록의 블록 해시 값을 연산할 수 있다. The block hash operation unit 326 may calculate a block hash value of the block based on the operation of the data hash operation unit 324 . The block hash operation unit 326 includes at least a data hash value calculated by the data hash operation unit 324, a previous block hash value, and a block attribute value indicating that the block is associated with an online state, in particular, indicating that the type of the block is a normal block. The block hash value of the corresponding block can be calculated using the block attribute value.

네트워크 상태가 오프라인 상태인 경우, 블록 생성부(320)는 오프라인 블록을 생성할 수 있다. 예컨대, 네트워크의 고장 등의 다양한 원인으로 인하여, 블록체인 네트워크부(340)가 블록체인 네트워크와의 통신을 수행할 수 없는 경우, 블록 생성부(320)는 블록을 계속해서 생성하도록 동작할 수 있다. 오프라인 블록은 미리 정해진 수의 트랜잭션을 포함할 수 있다. 일부 예시에서, 오프라인 블록은 하나의 트랜잭션을 포함할 수 있으며, 이러한 예시에서, 트랜잭션 처리부(322)가 하나의 트랜잭션을 검증할 때마다, 데이터 해시 연산부(324)는 해당 하나의 트랜잭션을 이용하여 데이터 해시 값을 연산하며, 블록해시 연산부(326)는 해당 하나의 트랜잭션을 이용하여 연산된 데이터 해시 값, 이전 블록 해시 값 및 블록이 오프라인 상태와 연관됨을 나타내는 블록 속성 값, 특히, 블록의 유형이 오프라인 블록임을 나타내는 블록 속성 값을 이용하여 해당 블록의 블록 해시 값을 연산할 수 있다. When the network state is an offline state, the block generator 320 may generate an offline block. For example, when the block chain network unit 340 cannot communicate with the block chain network due to various causes such as network failure, the block generation unit 320 may operate to continuously generate blocks. . An offline block may contain a predetermined number of transactions. In some examples, the offline block may include one transaction. In this example, whenever the transaction processing unit 322 verifies one transaction, the data hash operation unit 324 uses the one transaction to generate data. The hash value is calculated, and the block hash operation unit 326 determines a data hash value calculated using one transaction, a previous block hash value, and a block attribute value indicating that the block is associated with an offline state, in particular, the block type. The block hash value of the corresponding block can be calculated using the block attribute value indicating that it is an offline block.

네트워크 상태가 오프라인 상태로부터 온라인 상태로 변경되는 경우, 블록 생성부(320)는 복구 블록을 생성할 수 있다. 오프라인 트랜잭션 생성부(330)는 블록체인 네트워크의 네트워크 상태가 오프라인 상태로부터 온라인 상태로 변경되는 경우, 오프라인 블록을 트랜잭션으로 변환함으로써 오프라인 트랜잭션을 생성할 수 있다. 예컨대, 오프라인 트랜잭션 생성부(330)는 오프라인 블록의 블록 해시 값, 이전 블록 해시 값, 블록 속성 값 및 데이터 해시 값을 오프라인 트랜잭션의 데이터로서 정의할 수 있다. 오프라인 트랜잭션 생성부(330)는 오프라인 블록의 트랜잭션을 오프라인 트랜잭션의 데이터로서 정의할 수 있다. 오프라인 트랜잭션은 정의된 데이터를 그대로 오프라인 트랜잭션의 데이터로서 사용하여 생성될 수 있다. 한편, 블록체인 네트워크부(340)는 복구된 블록체인 네트워크로부터, 즉, 블록체인 관리 장치(300)와 연관된 장치 또는 블록체인 네트워크 내 다른 블록체인 관리 장치로부터 오프라인 트랜잭션을 수신할 수 있다. 이와 같이, 블록 생성부(320)가 복구 블록을 생성하는 동안, 온라인 상태에서 생성 또는 수신되는 트랜잭션에 대하여는 정상 블록을 생성할 수 있다. 정상 블록의 생성은 복구 블록의 생성과는 독립적으로 및/또는 병렬적으로 수행될 수 있다.When the network state is changed from the offline state to the online state, the block generator 320 may generate a recovery block. When the network state of the blockchain network is changed from an offline state to an online state, the offline transaction generating unit 330 may generate an offline transaction by converting the offline block into a transaction. For example, the offline transaction generator 330 may define the block hash value of the offline block, the previous block hash value, the block attribute value, and the data hash value as data of the offline transaction. The offline transaction generator 330 may define a transaction of an offline block as data of an offline transaction. The offline transaction may be created by using the defined data as it is as the data of the offline transaction. On the other hand, the block chain network unit 340 may receive an offline transaction from the restored block chain network, that is, from a device associated with the block chain management device 300 or another block chain management device in the block chain network. As such, while the block generator 320 generates the recovery block, a normal block may be generated for a transaction generated or received in an online state. Generation of the normal block may be performed independently and/or in parallel with generation of the recovery block.

트랜잭션 처리부(322)는 오프라인 트랜잭션을 검증하고 생성하고 있는 복구 블록에 검증된 해당 오프라인 트랜잭션을 추가할 수 있다. 트랜잭션 처리부(322)는 복구 블록이 블록의 생성에 대하여 미리 정해진 조건을 만족하는 경우, 오프라인 트랜잭션의 추가를 중단할 수 있으며, 데이터 해시 연산부(324)는 복구 블록 내 오프라인 트랜잭션으로부터 데이터 해시 값을 연산할 수 있다. 블록해시 연산부(326)는 오프라인 트랜잭션으로부터 연산된 데이터 해시 값, 이전 블록 해시 값 및 블록이 오프라인 트랜잭션을 포함한 온라인 상태와 연관됨을 나타내는 블록 속성 값, 특히, 블록의 유형이 복구 블록임을 나타내는 블록 속성 값을 이용하여 해당 블록의 블록 해시 값을 연산할 수 있다.The transaction processing unit 322 may verify the offline transaction and add the verified offline transaction to the generated recovery block. When the recovery block satisfies a predetermined condition for block generation, the transaction processing unit 322 may stop adding the offline transaction, and the data hash operation unit 324 calculates a data hash value from the offline transaction in the recovery block. can do. The block hash operation unit 326 provides a data hash value calculated from an offline transaction, a previous block hash value, and a block attribute value indicating that the block is associated with an online state including an offline transaction, in particular, a block attribute indicating that the type of block is a recovery block The block hash value of the block can be calculated using the value.

일부 예시에서, 블록체인 네트워크부(340)는 생성된 트랜잭션 및/또는 블록을 블록체인 네트워크 내 노드 및/또는 다른 블록체인 관리 장치로 전송할 수 있다. 이러한 예시에서, 트랜잭션 처리부(312)는 해당 트랜잭션 및/또는 블록의 유효성을 결정하여, 유효한 경우, 블록에 추가할 수 있다. In some examples, the blockchain network unit 340 may transmit the generated transactions and/or blocks to nodes and/or other blockchain management devices in the blockchain network. In this example, the transaction processing unit 312 may determine the validity of the corresponding transaction and/or block, and, if valid, may add it to the block.

일부 추가적인 실시예에서, 네트워크 상태가 온라인 상태로부터 오프라인 상태로 변경되는 경우, 블록 생성부(320)는 생성 중인 블록을 미리 정해진 방식으로 처리할 수 있다. 네트워크 상태가 온라인 상태로부터 오프라인 상태로 변경되는 경우, 생성 중인 블록에 이미 저장된 트랜잭션 각각에 대하여 해당 트랜잭션을 포함하는 오프라인 블록을 생성할 수 있다. 일부 예시에서, 블록 생성부(320)는 생성 중인 블록에 이미 저장된 트랜잭션 각각에 대하여 트랜잭션을 포함하는 오프라인 블록을 생성할 수 있다. 블록 생성부(320)는 트랜잭션이 기록된 순서에 따라 오프라인 블록을 생성할 수 있다. 일부 다른 예시에서, 블록 생성부(320)는 생성 중인 블록의 생성을 보류할 수 있으며, 이후 네트워크가 온라인 상태로 복구되면 보류 중이던 블록의 생성을 재개할 수 있다.In some additional embodiments, when the network state is changed from the online state to the offline state, the block generating unit 320 may process the block being generated in a predetermined manner. When the network state is changed from the online state to the offline state, an offline block including the corresponding transaction may be generated for each transaction already stored in the block being generated. In some examples, the block generation unit 320 may generate an offline block including a transaction for each transaction already stored in the block being generated. The block generator 320 may generate offline blocks according to the order in which transactions are recorded. In some other examples, the block generation unit 320 may suspend generation of a block being generated, and then resume generation of the pending block when the network is restored to an online state.

도 4a는 본 개시의 적어도 일부 실시예에 따라 오프라인 상태에서 블록이 추가되는 예시를 도시하고, 도 4b는 도 4a에 따른 예시에서, 네트워크가 온라인 상태로 복구된 경우, 복구 블록이 추가되는 예시를 도시한다. 도 4a를 참조하면, 일 예시에 따른 블록체인은 블록(410), 블록(420), 블록(430) 등을 포함한다. 블록(410)은 검출된 블록체인의 네트워크 상태에 기초하여, 블록 헤더의 블록 속성 값을 온라인 상태라고 나타낼 수 있다. 블록(410)은 트랜잭션 1, 트랜잭션 2 등 하나 이상의 트랜잭션을 포함할 수 있다. 데이터 해시 값을 포함하는 블록 헤더의 다양한 값에 기초하여, 블록 해시 값이 연산되고, 정상 블록이 생성될 수 있다. 한편, 블록(420) 및 블록(430)은 본 개시에 따라 오프라인 상태에서 생성된 오프라인 블록이다. 블록(420)은 이전 블록 해시 값으로 블록(410)의 블록 해시 값을 포함할 수 있다. 블록(420)은 검출된 블록체인의 네트워크 상태에 기초하여, 블록 헤더의 블록 속성 값을 오프라인 상태라고 나타낼 수 있다. 블록(420)의 트랜잭션은 트랜잭션 1(422)을 포함할 수 있다. 트랜잭션 1(422)은 트랜잭션 해시, 트랜잭션 출처 및 트랜잭션의 데이터 등과 같은 데이터를 포함할 수 있다. 블록(430)은 이전 블록 해시 값으로 블록(420)의 블록 해시 값을 포함할 수 있다. 블록(430)은 검출된 블록체인의 네트워크 상태에 기초하여, 블록 헤더의 블록 속성 값을 오프라인 상태라고 나타낼 수 있다. 블록(430)의 트랜잭션은 트랜잭션 1(432)을 포함할 수 있다. 4A illustrates an example in which a block is added in an offline state according to at least some embodiments of the present disclosure, and FIG. 4B illustrates an example in which a recovery block is added when the network is restored to an online state in the example according to FIG. 4A show Referring to FIG. 4A , a block chain according to an example includes a block 410 , a block 420 , a block 430 , and the like. Block 410 may indicate that the block attribute value of the block header is online based on the detected network state of the block chain. Block 410 may include one or more transactions, such as transaction 1, transaction 2, and the like. Based on various values of the block header including the data hash value, a block hash value is calculated, and a normal block may be generated. Meanwhile, blocks 420 and 430 are offline blocks generated in an offline state according to the present disclosure. Block 420 may include the block hash value of block 410 as the previous block hash value. Block 420 may indicate that the block attribute value of the block header is offline based on the detected network state of the block chain. The transaction of block 420 may include transaction 1 422 . Transaction 1 422 may include data such as a transaction hash, transaction origin, and data of the transaction. Block 430 may include the block hash value of block 420 as the previous block hash value. Block 430 may indicate that the block attribute value of the block header is offline based on the detected network state of the block chain. The transaction of block 430 may include transaction 1 432 .

도 4b를 참조하면, 일 예시에 따른 블록체인은 네트워크가 온라인 상태로 복구된 이후에, 블록(440)가 추가된다. 이러한 블록은 블록(440)은 복구 블록으로 지칭된다. 블록(440)은, 오프라인 상태에서 생성된 블록(420) 및 블록(430) 각각을 트랜잭션으로 변환하고, 이러한 트랜잭션을 블록(420)의 트랜잭션으로 포함시킴으로써 생성될 수 있다. 예컨대, 블록(420)은 트랜잭션 1(442)로 변환될 수 있으며, 블록(440)의 트랜잭션으로서 추가될 수 있다. 또한 블록(430)은 트랜잭션 2(444)로 변환될 수 있으며, 블록(440)의 트랜잭션으로서 추가될 수 있다. 블록(440)이 생성된 이후, 블록(420) 및 블록(430)는 미사용 처리 될 수 있다. Referring to FIG. 4B , in the block chain according to an example, after the network is restored to an online state, a block 440 is added. Block 440 is referred to as a recovery block. The block 440 may be generated by converting each of the blocks 420 and 430 generated in the offline state into a transaction, and including the transaction as a transaction of the block 420 . For example, block 420 may be converted to transaction 1 442 , and may be added as a transaction of block 440 . Also, block 430 may be converted to transaction 2 444 , and may be added as a transaction of block 440 . After block 440 is generated, blocks 420 and 430 may be unused.

도 5는 본 개시의 적어도 일부 실시예에 따라, 블록체인을 관리하는 예시적인 프로세스(500)를 도시한다. 예컨대, 프로세스(500)는 도 2의 노드(220-1, 220-2, 220-3, 220-4, …및 블록체인 관리장치(300)와 같은 컴퓨팅 장치의 제어 하에서 수행될 수 있다. 이러한 컴퓨팅 장치는 블록체인 내 개별 블록을 생성할 수 있으며, 여기서 블록은 블록 헤더에 적어도 이전 블록 해시 값, 데이터 해시 값 및 블록 속성 값을 포함할 수 있다. 도 5에 도시된 프로세스(500)는 블록(510, 520, 530, 540, 550, 560 및/또는 570)에 의해 예시된 바와 같은 하나 이상의 동작, 기능 또는 작용을 포함할 수 있다. 도 5에 예시된 개략적인 동작들은 예시로서만 제공되고, 개시된 실시에의 본질에서 벗어나지 않으면서, 동작들 중 일부가 선택적일 수 있거나, 더 적은 동작으로 조합될 수 있거나, 추가적인 동작으로 확장될 수 있다. 프로세스(500)는 네트워크 상태를 검출하는 블록(510)에서 시작할 수 있다. 5 depicts an example process 500 for managing a blockchain, in accordance with at least some embodiments of the present disclosure. For example, the process 500 may be performed under the control of a computing device such as the nodes 220-1, 220-2, 220-3, 220-4, ... and the blockchain management device 300 of Fig. 2. These The computing device may generate individual blocks within the blockchain, where the blocks may include at least a previous block hash value, a data hash value, and a block attribute value in a block header.Process 500 illustrated in FIG. may include one or more acts, functions, or acts as illustrated by 510, 520, 530, 540, 550, 560 and/or 570. The schematic acts illustrated in Figure 5 are provided by way of example only and , some of the operations may be optional, may be combined into fewer operations, or may be extended to additional operations without departing from the essence of the disclosed embodiments. 510) can be started.

블록(510)에서, 컴퓨팅 장치는 블록체인 네트워크의 네트워크 상태를 검출할 수 있다. 프로세스(500)는 검출된 네트워크 상태에 기초하여, 다음 프로세스를 결정할 수 있다. 검출된 네트워크 상태는 온라인 상태 또는 오프라인 상태일 수 있다. 프로세스(500)는 블록(510)에서 검출된 네트워크 상태가 온라인 상태인 경우, 블록(510)으로부터 정상 블록을 생성하는 블록(520)으로 이어질 수 있다.At block 510 , the computing device may detect a network state of the blockchain network. The process 500 may determine a next process based on the detected network state. The detected network state may be an online state or an offline state. Process 500 may continue from block 510 to block 520 where a normal block is generated if the network state detected at block 510 is online.

블록(520)에서, 컴퓨팅 장치는 정상블록을 생성할 수 있다. 컴퓨팅 장치는 미리 정해진 트랜잭션 수, 생성 주기, 블록 사이즈에 기초하여 정상 블록을 생성할 수 있다. 프로세스(500)는 블록(520)으로부터 블록체인 네트워크의 네트워크가 오프라인으로 변경되었는지 식별하는 블록(530)으로 이어질 수 있다.In block 520, the computing device may generate a normal block. The computing device may generate a normal block based on a predetermined number of transactions, a generation period, and a block size. Process 500 may continue from block 520 to block 530 identifying whether the network of the blockchain network has changed offline.

블록(530)에서, 컴퓨팅 장치는 블록체인 네트워크의 네트워크가 오프라인으로 변경되었는지 여부를 검출할 수 있다. 오프라인 상태로 변경되지 않은 경우, 다시 블록(520)으로 돌아가 정상 블록을 생성할 수 있다. 오프라인으로 변경된 경우, 프로세스(500)는 블록(530)으로부터 생성중인 블록을 처리하는 블록(540)으로 이어질 수 있다.At block 530 , the computing device may detect whether the network of the blockchain network has changed offline. If it is not changed to the offline state, it may return to block 520 again to generate a normal block. If changed offline, process 500 may continue from block 530 to block 540 where the block being created is processed.

블록(540)에서, 컴퓨팅 장치는 생성 중인 블록을 미리 정해진 방식으로 처리할 수 있다. 일부 예시에서, 컴퓨팅 장치는 생성 중인 블록에 이미 저장된 트랜잭션 각각에 대하여, 해당 트랜잭션을 포함하는 오프라인 블록을 생성할 수 있다. 컴퓨팅 장치가 블록의 생성을 완료하기 이전, 네트워크의 상태는 오프라인 상태로 변경될 수 있다. 이러한 경우, 컴퓨팅 장치는 생성 중인 블록에 이미 추가된 트랜잭션을 오프라인 블록으로 변환할 수 있다. 컴퓨팅 장치는 트랜잭션이 기록된 순서에 따라 오프라인 블록을 생성할 수 있다. 다른 예시에서, 컴퓨팅 장치는 생성 중인 블록의 생성을 보류할 수 있다. 이러한 경우, 컴퓨팅 장치는 네트워크가 온라인 상태로 복구되면, 보류 중이던 블록의 생성을 재개할 수 있다. At block 540, the computing device may process the block being generated in a predetermined manner. In some examples, the computing device may generate an offline block including the corresponding transaction for each transaction already stored in the block being generated. Before the computing device completes generation of the block, the state of the network may be changed to an offline state. In this case, the computing device may convert a transaction already added to the block being generated into an offline block. The computing device may generate offline blocks according to the order in which the transactions are recorded. In another example, the computing device may suspend generation of the block being generated. In this case, the computing device may resume creation of the pending block when the network is restored to an online state.

다시 블록(510)으로 돌아가, 네트워크 상태가 오프라인 상태인 경우, 프로세스(500)는 오프라인 블록을 생성하는 블록(550)으로 이어질 수 있다. 블록(550)에서, 컴퓨팅 장치는 오프라인 블록을 생성할 수 있다. 오프라인 블록은 미리 정해진 수의 트랜잭션을 포함할 수 있다. 일부 예시에서, 오프라인 블록은 하나 이상의 트랜잭션을 포함할 수 있다. 프로세스(500)는 블록(550)으로부터 블록체인 네트워크의 네트워크가 온라인으로 변경되었는지 여부를 검출하는 블록(560)으로 이어질 수 있다.Returning to block 510 , if the network state is offline, process 500 may continue to block 550 generating an offline block. At block 550 , the computing device may generate an offline block. An offline block may contain a predetermined number of transactions. In some examples, an offline block may include one or more transactions. Process 500 may continue from block 550 to block 560 where it is detected whether the network of the blockchain network has changed online.

블록(560)에서, 컴퓨팅 장치는 블록체인 네트워크의 네트워크가 온라인으로 변경되었는지 여부를 검출할 수 있다. 온라인 상태로 변경되지 않은 경우, 다시 블록(550)으로 돌아가 오프라인 블록을 생성할 수 있다. 온라인 상태로 변경되는 경우, 프로세스(500)는 블록(560)으로부터 복구 블록을 생성하는 블록(570)으로 이어질 수 있다. At block 560 , the computing device may detect whether the network of the blockchain network has changed online. If the online state is not changed, it may return to block 550 again to generate an offline block. If the online state is changed, process 500 may continue from block 560 to block 570 generating a recovery block.

블록(570)에서, 컴퓨팅 장치는 복구 블록을 생성할 수 있다. 복구 블록은 오프라인 트랜잭션을 포함하며, 오프라인 상태에서 생성된 오프라인 블록을 트랜잭션으로 변환함으로써 생성될 수 있다. 컴퓨팅 장치는 오프라인 블록의 블록 해시 값, 이전 블록 해시 값, 블록 속성 값 및 데이터 해시 값을 오프라인 트랜잭션의 데이터로서 정의할 수 있다. 또한, 컴퓨팅 장치는 오프라인 블록의 트랜잭션을 오프라인 트랜잭션의 데이터로서 정의할 수 있다. 오프라인 트랜잭션은 정의된 데이터를 그대로 오프라인 트랜잭션의 데이터로서 사용하여 생성될 수 있다. 컴퓨팅 장치는 오프라인 트랜잭션을 블록체인 네트워크에 전송할 수 있다. 컴퓨팅 장치는 수신된 오프라인 트랜잭션의 유효성을 확인한 후, 오프라인 트랜잭션을 생성 중인 블록에 추가할 수 있다. 이러한 방식으로, 컴퓨팅 장치는 오프라인 트랜잭션을 포함하는 복구 블록, 바람직하게는 오프라인 트랜잭션만을 포함하는 복구 블록을 생성할 수 있다. 복구 블록을 생성하는 동안, 컴퓨팅 장치는 온라인 상태에서 생성 또는 수신되는 트랜잭션에 대한 온라인 블록을 생성할 수 있다. 온라인 블록의 생성은 복구 블록의 생성과는 독립적으로 및/또는 병렬적으로 수행될 수 있다. 복구 블록의 생성이 완료되면 프로세스(500)는 정상 블록을 생성하는 블록(520)으로 이어질 수 있고, 정상 블록을 생성할 수 있다. 이와 같이, 블록(570)과 블록(520)이 순차적으로 수행되는 것으로 설명되었으나, 블록(570)과 블록(520)이 동시에 수행되는 것도 가능하다.At block 570 , the computing device may generate a recovery block. A recovery block includes an offline transaction, and may be generated by converting an offline block generated in an offline state into a transaction. The computing device may define a block hash value of an offline block, a previous block hash value, a block attribute value, and a data hash value as data of an offline transaction. Also, the computing device may define the transaction of the offline block as data of the offline transaction. The offline transaction may be created by using the defined data as it is as the data of the offline transaction. The computing device can send offline transactions to the blockchain network. After verifying the validity of the received offline transaction, the computing device may add the offline transaction to the block being generated. In this way, the computing device may generate a recovery block comprising offline transactions, preferably a recovery block comprising only offline transactions. While generating the recovery block, the computing device may generate an online block for a transaction that is generated or received while online. Generation of the online block may be performed independently and/or in parallel with generation of the recovery block. When generation of the recovery block is completed, the process 500 may proceed to block 520 generating a normal block, and may generate a normal block. As described above, although the block 570 and the block 520 have been described as being sequentially performed, it is also possible that the block 570 and the block 520 are simultaneously performed.

도 6은 본 개시의 적어도 일부 실시예에 따라, 개시의 적어도 일부 실시예에 따라, 블록체인을 관리하는 데 이용될 수 있는 컴퓨터 프로그램 제품(600)을 도시한다. 예시적인 컴퓨터 프로그램 제품의 예시적인 실시예는 신호 베어링 매체(610)를 이용하여 제공된다. 일부 실시예에서, 하나 이상의 컴퓨터 프로그램 제품(600)의 신호 베어링 매체(610)는 컴퓨터 판독가능 매체(630) 및/또는 기록 가능 매체(640)를 포함할 수 있다.6 illustrates a computer program product 600 that may be used to manage a blockchain, in accordance with at least some embodiments of the present disclosure, in accordance with at least some embodiments of the present disclosure. An exemplary embodiment of an exemplary computer program product is provided using a signal bearing medium 610 . In some embodiments, the signal bearing medium 610 of the one or more computer program products 600 may include a computer readable medium 630 and/or a recordable medium 640 .

신호 베어링 매체(610)에 포함된 명령어(620)는 노드(220-1, 220-2, 220-3, 220-4, …및 블록체인 관리 장치(300)와 같은 컴퓨팅 장치에 의해 실행될 수 있다. 명령어(620)가 실행되면, 컴퓨팅 장치로 하여금 블록체인 네트워크의 네트워크 상태를 검출하기 위한 하나 이상의 명령어; 검출된 네트워크 상태에 기초하여 블록을 생성하기 위한 하나 이상의 명령어; 네트워크 상태가 오프라인 상태인 경우, 오프라인 블록을 생성하기 위한 하나 이상의 명령어; 네트워크 상태가 온라인 상태인 경우, 정상 블록을 생성하기 위한 하나 이상의 명령어; 네트워크 상태가 오프라인 상태로부터 온라인 상태로 변경되는 경우, 오프라인 블록을 트랜잭션으로 변환하여 오프라인 트랜잭션을 생성하고, 오프라인 트랜잭션을 포함하는 복구 블록을 생성하기 위한 하나 이상의 명령어; 및 네트워크 상태가 온라인상태로부터 오프라인 상태로 변경되는 경우, 생성 중인 블록에 저장된 트랜잭션 각각에 대하여, 해당 트랜잭션을 포함하는 오프라인 블록을 생성하기 위한 하나 이상의 명령어 또는 생성 중인 블록의 생성을 보류하기 위한 하나 이상의 명령어 중 하나 이상을 포함할 수 있다. The instructions 620 contained in the signal bearing medium 610 may be executed by the nodes 220-1, 220-2, 220-3, 220-4, ... and computing devices such as the blockchain management device 300 . When the instruction 620 is executed, one or more instructions for causing the computing device to detect a network state of the blockchain network; one or more instructions for generating a block based on the detected network state; , one or more instructions for generating an offline block; One or more instructions for generating a normal block when the network state is online; When the network state changes from an offline state to an online state, an offline block is converted into a transaction to be offline one or more instructions for generating a transaction and generating a recovery block including the offline transaction, and when the network state is changed from the online state to the offline state, for each transaction stored in the block being created, offline including the transaction may include one or more of one or more instructions for generating a block or one or more instructions for suspending generation of a block being generated.

도 7은 본 개시의 적어도 일부 실시예에 따라 배열되는 컴퓨팅 장치(700)의 예시적인 실시예의 블록도이다. 일 예시적인 기본적인 구성(702)에서, 컴퓨팅 장치(700)는 하나 이상의 프로세서(704) 및 시스템 메모리(706)를 포함할 수 있다. 메모리 버스(708)는 프로세서(704) 및 시스템 메모리(706) 사이에서 통신하기 위하여 이용될 수 있다.7 is a block diagram of an example embodiment of a computing device 700 arranged in accordance with at least some embodiments of the present disclosure. In one exemplary basic configuration 702 , computing device 700 may include one or more processors 704 and system memory 706 . A memory bus 708 may be used to communicate between the processor 704 and the system memory 706 .

요구되는 구성에 따라, 프로세서(704)는 마이크로 프로세서(μP), 마이크로 컨트롤러(μC), 디지털 신호 프로세서(DSP), 또는 그들의 임의의 조합을 포함하는 임의의 유형일 수 있으나, 이에 제한되지는 않는다. 프로세서(704)는 레벨 1 캐시(710), 레벨 2 캐시(712)와 같은 하나 이상의 레벨(level)의 캐시(cache), 프로세서 코어(714), 및 레지스터(716)를 포함할 수 있다. 프로세서 코어(714)는 산술 논리 연산장치(arithmetic logic unit; ALU), 부동 소수점 장치(floating point unit; FPU), 디지털 신호 처리 코어(DSP Core), 또는 그들의 임의의 조합을 포함할 수 있다. 메모리 컨트롤러(718)는 또한 프로세서(704)와 함께 사용될 수 있거나, 또는 일부 구현예에서 메모리 컨트롤러(718)는 프로세서(704)의 내적인 일부일 수 있다.Depending on the configuration required, the processor 704 can be of any type including, but not limited to, a microprocessor (μP), a microcontroller (μC), a digital signal processor (DSP), or any combination thereof. The processor 704 may include one or more levels of cache, such as a level 1 cache 710 , a level 2 cache 712 , a processor core 714 , and a register 716 . The processor core 714 may include an arithmetic logic unit (ALU), a floating point unit (FPU), a digital signal processing core (DSP Core), or any combination thereof. Memory controller 718 may also be used with processor 704 , or in some implementations memory controller 718 may be an internal part of processor 704 .

요구되는 구성에 따라, 시스템 메모리(706)는 (RAM과 같은) 휘발성 메모리, (ROM, 플래시 메모리 등과 같은) 비휘발성 메모리, 또는 그들의 임의의 조합을 포함하는 임의의 유형일 수 있으나, 이에 제한되지는 않는다. 시스템 메모리(706)는 운영 체제(720), 하나 이상의 어플리케이션(application)(722), 및 프로그램 데이터(724)를 포함할 수 있다. 어플리케이션(722)은 도 2의 노드(220-1, 220-2, 220-3, 220-4, …및/또는 도 3의 블록체인 관리 장치(300) 및/또는 도 5의 프로세스(500)에 관하여 기술된 기능 블록 및/또는 작용을 포함하여 여기에서 기술된 바와 같은 기능을 수행하도록 배열된 알고리즘(726)을 포함할 수 있다. 프로그램 데이터(724)는, 알고리즘 (726)과 함께 이용하기 위한 데이터(728), 예컨대, 정적 네트워크 환경 등에 해당하는 데이터를 포함할 수 있다. 일부 실시예에서, 어플리케이션(722)은 최적의 전송 환경을 결정하기 위한 구현이 여기에서 설명된 바와 같이 제공될 수 있도록 운영 체제(720) 상에서 프로그램 데이터(724)로 동작하도록 배열될 수 있다. 예컨대, 시스템(200)은 컴퓨팅 장치(700)의 전부 또는 일부를 포함할 수 있으며 최적의 전송 환경을 결정하는 구현이 여기에서 설명된 바와 같이 제공될 수 있도록 어플리케이션(722)의 전부 또는 일부를 수행하는 것이 가능할 수 있다. 이러한 기술된 기본적인 구성은 도 7에서 파선(702) 내의 그 구성요소들에 의해 도시된다.Depending on the configuration required, system memory 706 can be of any type including, but not limited to, volatile memory (such as RAM), non-volatile memory (such as ROM, flash memory, etc.), or any combination thereof. does not System memory 706 may include an operating system 720 , one or more applications 722 , and program data 724 . The application 722 is the node 220-1, 220-2, 220-3, 220-4, ... and/or the block chain management device 300 of FIG. 3 and/or the process 500 of FIG. may include an algorithm 726 arranged to perform the functions as described herein, including functional blocks and/or actions described with respect to the program data 724 for use with the algorithm 726. data 728 for the purpose of, for example, data corresponding to a static network environment, etc. In some embodiments, the application 722 may provide an implementation for determining an optimal transmission environment as described herein. may be arranged to operate with program data 724 on operating system 720. For example, system 200 may include all or a portion of computing device 700 and may have an implementation that determines an optimal transmission environment. It may be possible to perform all or part of the application 722 to be provided as described herein. This described basic configuration is illustrated by its components within dashed line 702 in FIG.

컴퓨팅 장치(700)는 기본적인 구성(702) 및 임의의 요구되는 장치 및 인터페이스(interface) 사이의 통신을 용이하게 하도록 추가적인 특징 또는 기능, 및 추가적인 인터페이스를 가질 수 있다. 예를 들어, 버스/인터페이스 컨트롤러(730)는 저장부 인터페이스 버스(734)를 통한 기본적인 구성(702) 및 하나 이상의 데이터 저장 장치(732) 사이의 통신을 용이하게 하도록 사용될 수 있다. 데이터 저장 장치(732)는 이동식 저장 장치(736), 고정식 저장 장치(738), 또는 그 조합일 수 있다. 이동식 저장 장치 및 고정식 저장 장치의 예를 몇 가지 들자면, 플렉서블 디스크 드라이브(flexible disk drive) 및 하드 디스크 드라이브(HDD)와 같은 자기 디스크 장치, 컴팩트 디스크(CD) 드라이브 또는 디지털 다목적 디스크(DVD) 드라이브와 같은 광 디스크 드라이브, 고체 상태 드라이브(SSD), 및 테이프 드라이브 등을 포함한다. 예시적인 컴퓨터 저장 매체는 컴퓨터 판독가능 명령, 데이터 구조, 프로그램 모듈(program module), 또는 기타 데이터와 같은 정보의 저장을 위한 임의의 방법 또는 기술에서 구현되는 휘발성 및 비휘발성의 이동식 및 고정식 매체를 포함할 수 있다.Computing device 700 may have additional features or functionality, and additional interfaces, to facilitate communication between basic configuration 702 and any desired devices and interfaces. For example, bus/interface controller 730 may be used to facilitate communication between basic configuration 702 and one or more data storage devices 732 over storage interface bus 734 . The data storage device 732 may be a removable storage device 736 , a fixed storage device 738 , or a combination thereof. Magnetic disk devices such as flexible disk drives and hard disk drives (HDDs), compact disk (CD) drives, or digital versatile disk (DVD) drives, to name a few examples of removable and fixed storage devices. such as optical disk drives, solid state drives (SSDs), and tape drives. Exemplary computer storage media includes volatile and nonvolatile removable and non-removable media implemented in any method or technology for storage of information such as computer readable instructions, data structures, program modules, or other data. can do.

시스템 메모리(706), 이동식 저장 장치(736) 및 고정식 저장 장치(738)는 모두 컴퓨터 저장 매체의 예이다. 컴퓨터 저장 매체는 RAM, ROM, EEPROM, 플래시 메모리 또는 기타 메모리 기술, CD-ROM, 디지털 다목적 디스크(DVD) 또는 기타 광 저장 장치, 자기 카세트, 자기 테이프, 자기 디스크 저장 장치 또는 기타 자기 저장 장치, 또는 요구되는 정보를 저장하도록 사용될 수 있고, 컴퓨팅 장치(700)에 의해 액세스될 수 있는 임의의 기타 매체를 포함하나, 이에 제한되지는 않는다. 임의의 그러한 컴퓨터 저장 매체는 컴퓨팅 장치(700)의 일부일 수 있다.System memory 706 , removable storage 736 , and non-removable storage 738 are all examples of computer storage media. Computer storage media may include RAM, ROM, EEPROM, flash memory or other memory technology, CD-ROM, digital versatile disk (DVD) or other optical storage device, magnetic cassette, magnetic tape, magnetic disk storage device or other magnetic storage device, or including, but not limited to, any other medium that may be used to store the required information and that may be accessed by the computing device 700 . Any such computer storage media may be part of computing device 700 .

컴퓨팅 장치(700)는 또한 버스/인터페이스 컨트롤러(742)를 통한 다양한 인터페이스 장치(예컨대, 출력 인터페이스, 주변 인터페이스, 및 통신 인터페이스)로부터 기본적인 구성(702)으로의 통신을 용이하게 하기 위한 인터페이스 버스(742)를 포함할 수 있다. 예시적인 출력 장치(742)는 그래픽 처리 유닛(748) 및 오디오 처리 유닛(750)을 포함할 수 있으며, 이는 하나 이상의 A/V 포트(752)를 통하여 디스플레이 또는 스피커와 같은 다양한 외부 장치로 통신하도록 구성될 수 있다. 예시적인 주변 인터페이스(744)는 직렬 인터페이스 컨트롤러(754) 또는 병렬 인터페이스 컨트롤러(756)를 포함할 수 있으며, 이는 하나 이상의 I/O 포트(658)를 통하여 입력 장치(예컨대, 키보드, 마우스, 펜, 음성 입력 장치, 터치 입력 장치 등) 또는 기타 주변 장치(예컨대, 프린터, 스캐너 등)와 같은 외부 장치와 통신하도록 구성될 수 있다. 예시적인 통신 장치(746)는 네트워크 컨트롤러(760)를 포함하며, 이는 하나 이상의 통신 포트(764)를 통한 네트워크 통신 상에서의 하나 이상의 다른 컴퓨팅 장치(762)와의 통신을 용이하게 하도록 배열될 수 있다.Computing device 700 also provides an interface bus 742 for facilitating communication from various interface devices (eg, output interfaces, peripheral interfaces, and communication interfaces) to basic configuration 702 via bus/interface controller 742 . ) may be included. Exemplary output device 742 may include a graphics processing unit 748 and an audio processing unit 750 , which may be configured to communicate via one or more A/V ports 752 to various external devices, such as displays or speakers. can be configured. Exemplary peripheral interface 744 may include serial interface controller 754 or parallel interface controller 756 , which may include input devices (eg, keyboard, mouse, pen, It may be configured to communicate with an external device, such as a voice input device, a touch input device, etc.) or other peripheral device (eg, a printer, scanner, etc.). The exemplary communication device 746 includes a network controller 760 , which may be arranged to facilitate communication with one or more other computing devices 762 over network communications via one or more communication ports 764 .

컴퓨팅 장치(700)는 또한 랩탑 컴퓨터나 랩탑이 아닌 컴퓨터 구성 둘 다를 포함하는 개인 컴퓨터로 구현될 수 있다. 또한, 컴퓨팅 장치(700)는 무선 기지국 또는 기타 무선 시스템 또는 장치의 일부로서 구현될 수 있다.Computing device 700 may also be implemented as a personal computer including both laptop computer and non-laptop computer configurations. Additionally, computing device 700 may be implemented as part of a wireless base station or other wireless system or device.

전술한 본원의 설명은 예시를 위한 것이며, 본원이 속하는 기술분야의 통상의 지식을 가진 자는 본원의 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 쉽게 변형이 가능하다는 것을 이해할 수 있을 것이다. 그러므로, 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다. 예를 들어, 단일형으로 설명되어 있는 각 구성 요소는 분산되어 실시될 수도 있으며, 마찬가지로 분산된 것으로 설명되어 있는 구성 요소들도 결합된 형태로 실시될 수도 있다.The foregoing description of the present application is for illustration, and those of ordinary skill in the art to which the present application pertains will understand that it can be easily modified into other specific forms without changing the technical spirit or essential features of the present application. Therefore, it should be understood that the embodiments described above are illustrative in all respects and not restrictive. For example, each component described as a single type may be implemented in a distributed manner, and likewise components described as distributed may also be implemented in a combined form.

이상, 본 개시에서 청구하고자 하는 대상에 대해 구체적으로 살펴 보았다. 본 개시에서 청구된 대상은 앞서 기술한 특정 구현예로 그 범위가 제한되지 않는다. 예컨대, 어떤 구현예에서는 장치 또는 장치의 조합 상에서 동작 가능하게 사용되는 하드웨어의 형태일 수 있으며, 다른 구현예에서는 소프트웨어 및/또는 펌웨어의 형태로 구현될 수 있고, 또 다른 구현예에서는 신호 베어링 매체, 저장 매체와 같은 하나 이상의 물품을 포함할 수 있다. 여기서, CD-ROM, 컴퓨터 디스크, 플래시 메모리 등과 같은 저장 매체는, 예컨대 컴퓨팅 시스템, 컴퓨팅 플랫폼 또는 기타 시스템과 같은 컴퓨팅 장치에 의하여 실행될 때 앞서 설명한 구현예에 따라 해당 프로세서의 실행을 야기시킬 수 있는 명령을 저장할 수 있다. 이러한 컴퓨팅 장치는 하나 이상의 처리 유닛 또는 프로세서, 디스플레이, 키보드 및/또는 마우스와 같은 하나 이상의 입/출력 장치, 및 정적 랜덤 액세스 메모리, 동적 랜덤 액세스 메모리, 플래시 메모리 및/또는 하드 드라이브와 같은 하나 이상의 메모리를 포함할 수 있다.Above, the object to be claimed in the present disclosure has been described in detail. The claimed subject matter in this disclosure is not limited in scope to the specific implementations described above. For example, in some implementations it may be in the form of hardware used operatively on a device or combination of devices, in other implementations it may be implemented in the form of software and/or firmware, and in still other implementations it may be in the form of a signal bearing medium; may include one or more articles, such as storage media. Herein, a storage medium such as a CD-ROM, a computer disk, a flash memory, etc. is an instruction that, when executed by a computing device such as a computing system, a computing platform, or other systems, may cause the processor to execute according to the embodiments described above. can be saved. Such computing devices may include one or more processing units or processors, one or more input/output devices such as a display, keyboard and/or mouse, and one or more memory such as static random access memory, dynamic random access memory, flash memory and/or hard drives. may include

전술한 상세한 설명에서는 블록도, 흐름도 및/또는 기타 예시를 통해 장치 및/또는 프로세스의 다양한 실시예를 설명하였다. 그러한 블록도, 흐름도, 및/또는 기타 예시는 하나 이상의 기능 및/또는 동작을 포함하게 되며, 당업자라면 블록도, 흐름도 및/또는 기타 예시 내의 각각의 기능 및/또는 동작이 하드웨어, 소프트웨어, 펌웨어, 또는 이들의 임의의 조합에 의해 개별적으로 혹은 집합적으로 구현될 수 있다는 점을 이해할 수 있을 것이다. 일 실시예에서, 본 개시에 기재된 대상의 몇몇 부분은 ASIC(Application Specific Integrated Circuit), FPGA(Field Programmable Gate Array), DSP(Digital Signal Processor) 또는 다른 집적의 형태를 통해 구현될 수 있다. 이와 달리, 본 개시의 실시예의 일부 양상은 하나 이상의 컴퓨터 상에 실행되는 하나 이상의 컴퓨터 프로그램(예를 들어, 하나 이상의 컴퓨터 시스템 상에 실행되는 하나 이상의 프로그램), 하나 이상의 프로세서 상에서 실행되는 하나 이상의 프로그램(예를 들어, 하나 이상의 마이크로프로세서 상에서 실행되는 하나 이상의 프로그램), 펌웨어 또는 이들의 실질적으로 임의의 조합으로써 전체적으로 또는 부분적으로 균등하게 집적 회로에서 구현될 수도 있으며, 소프트웨어 및/또는 펌웨어를 위한 코드의 작성 및/또는 회로의 설계는 본 개시에 비추어 당업자의 기술 범위 내에 속하는 것이다. 또한, 당업자라면, 본 개시의 대상의 매커니즘들이 다양한 형태의 프로그램 제품으로 분배될 수 있음을 이해할 것이며, 본 개시의 대상의 예시는 분배를 실제로 수행하는데 사용되는 신호 베어링 매체의 특정 유형과 무관하게 적용됨을 이해할 것이다. In the foregoing detailed description, various embodiments of apparatus and/or processes have been described by way of block diagrams, flow diagrams, and/or other examples. Such block diagrams, flow diagrams, and/or other examples will include one or more functions and/or operations, and those skilled in the art will recognize that each function and/or operation within the block diagrams, flow diagrams, and/or other examples may be implemented in hardware, software, firmware, Or it will be understood that they may be implemented individually or collectively by any combination thereof. In one embodiment, some portions of the subject matter described in the present disclosure may be implemented through an Application Specific Integrated Circuit (ASIC), a Field Programmable Gate Array (FPGA), a Digital Signal Processor (DSP), or other form of integration. In contrast, some aspects of embodiments of the present disclosure include one or more computer programs running on one or more computers (eg, one or more programs running on one or more computer systems), one or more programs running on one or more processors ( writing code for software and/or firmware, which may be equally implemented in whole or in part as, for example, one or more programs running on one or more microprocessors), firmware, or substantially any combination thereof; and/or the design of the circuit is within the skill of those skilled in the art in light of the present disclosure. In addition, those skilled in the art will understand that the mechanisms of the subject matter of this disclosure may be distributed in various forms of program products, and the examples of the subject matter of this disclosure apply irrespective of the particular type of signal bearing medium used to actually perform the distribution. will understand

특정 예시적 기법이 다양한 방법 및 시스템을 이용하여 여기에서 기술되고 도시되었으나, 당업자라면, 청구된 대상에서 벗어남이 없이, 다양한 기타의 수정 또는 등가물로의 치환 가능성을 이해할 수 있다. 추가적으로, 여기에 기술된 중심 개념으로부터 벗어남이 없이 특정 상황을 청구된 대상의 교시로 적응시키도록 많은 수정이 이루어질 수 있다. 따라서, 청구된 대상이 개시된 특정 예시로 제한되지 않으나, 그러한 청구된 대상은 또한 첨부된 청구범위 및 그 균등의 범위 내에 들어가는 모든 구현예를 포함할 수 있음이 의도된다.While specific exemplary techniques have been described and illustrated herein using various methods and systems, those skilled in the art will understand the possibility of various other modifications or equivalents permutations without departing from the claimed subject matter. Additionally, many modifications may be made to adapt a particular situation to the teachings of the claimed subject matter without departing from the central concepts described herein. Accordingly, it is intended that claimed subject matter not be limited to the specific examples disclosed, but that such claimed subject matter may also include all embodiments falling within the scope of the appended claims and their equivalents.

본 개시의 범위는 상기 상세한 설명보다는 후술하는 특허청구범위에 의하여 나타내어지며, 특허청구범위의 의미 및 범위, 그리고 그 균등 개념으로부터 도출되는 모든 변경 또는 변형된 형태가 본원의 범위에 포함되는 것으로 해석되어야 한다.The scope of the present disclosure is indicated by the following claims rather than the above detailed description, and all changes or modifications derived from the meaning and scope of the claims and their equivalent concepts should be construed as being included in the scope of the present application. do.

Claims (12)

컴퓨팅 장치의 제어 하에서 수행되는, 블록체인 관리 방법으로서,
블록체인 네트워크의 네트워크 상태를 검출하는 단계; 및
상기 검출된 네트워크 상태에 기초하여, 블록을 생성하는 단계
를 포함하고, 상기 블록의 블록 헤더는 해당 블록이 오프라인 상태와 연관되는지를 나타내는 블록 속성 값을 포함하고,
상기 블록을 생성하는 단계는,
상기 네트워크 상태가 오프라인 상태로부터 온라인 상태로 변경되는 경우,
상기 오프라인 상태에서 생성된 오프라인 블록을 트랜잭션으로 변환하여 오프라인 트랜잭션을 생성하는 단계; 및
상기 오프라인 트랜잭션을 포함하는 복구 블록을 생성하는 단계를 포함하는, 블록체인 관리 방법.
A blockchain management method, performed under the control of a computing device, comprising:
detecting a network state of the blockchain network; and
generating a block based on the detected network state
Including, the block header of the block includes a block attribute value indicating whether the block is associated with an offline state,
Creating the block includes:
When the network state is changed from an offline state to an online state,
generating an offline transaction by converting the offline block generated in the offline state into a transaction; and
and generating a recovery block including the offline transaction.
제1항에 있어서,
상기 블록을 생성하는 단계는
상기 네트워크 상태가 오프라인 상태인 경우, 하나의 트랜잭션을 포함하는 오프라인 블록을 생성하는 단계를 포함하는 것인, 블록체인 관리 방법.
According to claim 1,
The step of creating the block is
When the network state is offline, generating an offline block including one transaction.
삭제delete 제1항에 있어서,
상기 블록을 생성하는 단계는, 온라인 상태에서 생성 또는 수신되는 트랜잭션에 대한 온라인 블록을 생성하는 단계를 포함하고, 상기 온라인 블록의 생성은 상기 복구 블록의 생성과 독립적으로 수행되는 것인, 블록체인 관리 방법.
According to claim 1,
The step of generating the block includes generating an online block for a transaction generated or received in an online state, and the generation of the online block is performed independently of the generation of the recovery block. Way.
제1항에 있어서,
상기 블록을 생성하는 단계는,
상기 네트워크 상태가 온라인 상태로부터 오프라인 상태로 변경되는 경우, 생성 중인 블록에 저장된 트랜잭션 각각에 대하여, 해당 트랜잭션을 포함하는 오프라인 블록을 생성하는 단계를 포함하는, 블록체인 관리 방법.
According to claim 1,
Creating the block includes:
When the network state is changed from the online state to the offline state, for each transaction stored in the block being generated, generating an offline block including the corresponding transaction.
제1항에 있어서,
상기 블록을 생성하는 단계는,
상기 네트워크 상태가 온라인 상태로부터 오프라인 상태로 변경되는 경우, 생성 중인 블록의 생성을 보류하는 단계를 포함하는, 블록체인 관리 방법.
According to claim 1,
Creating the block includes:
When the network state is changed from the online state to the offline state, the block chain management method comprising the step of suspending the generation of the block being created.
제1항에 있어서,
상기 블록을 생성하는 단계는, 상기 블록의 유형에 기초하여 상기 블록 속성 값을 결정하는 단계를 포함하는 것인, 블록체인 관리 방법.
According to claim 1,
The generating of the block includes determining the block attribute value based on the type of the block.
제1항에 있어서,
상기 블록 속성 값은 해당 블록이 오프라인 상태에서 생성되는 오프라인 블록이거나 오프라인 블록의 트랜잭션을 포함하는 복구 블록임을 나타내는 제1 상태 및 해당 블록이 온라인 상태에서 생성되거나 수신된 트랜잭션을 포함하는 온라인 블록임을 나타내는 제2 상태를 포함하는 것인, 블록체인 관리 방법.
According to claim 1,
The block attribute value is a first state indicating that the corresponding block is an offline block generated in an offline state or a recovery block including a transaction of the offline block, and a second state indicating that the corresponding block is an online block including a transaction created or received in the online state. A blockchain management method comprising two states.
블록체인 관리 장치로서,
블록체인 네트워크의 네트워크 상태를 검출하는 네트워크 상태 검출부;
상기 검출된 네트워크 상태에 기초하여, 블록을 생성하는 블록 생성부; 및
상기 네트워크 상태 검출부에 의해 상기 네트워크 상태가 오프라인 상태로부터 온라인 상태로 변경되는 경우, 상기 오프라인 상태에서 생성된 오프라인 블록을 트랜잭션으로 변환하여 오프라인 트랜잭션을 생성하는 오프라인 트랜잭션 생성부
를 포함하고, 상기 블록의 블록 헤더는 해당 블록이 오프라인 상태와 연관되는지를 나타내는 블록 속성 값을 포함하고,
상기 블록 생성부는 상기 오프라인 트랜잭션을 포함하는 복구 블록을 생성하는 것인, 블록체인 관리 장치.
As a blockchain management device,
a network state detection unit for detecting a network state of the blockchain network;
a block generating unit that generates a block based on the detected network state; and
When the network state is changed from an offline state to an online state by the network state detection unit, an offline transaction generating unit that converts an offline block generated in the offline state into a transaction to generate an offline transaction
Including, the block header of the block includes a block attribute value indicating whether the block is associated with an offline state,
The block generating unit will generate a recovery block including the offline transaction, a block chain management device.
제9항에 있어서,
상기 블록 생성부는 상기 네트워크 상태 검출부에 의해 검출된 상기 네트워크 상태가 오프라인 상태인 경우, 하나의 트랜잭션을 포함하는 오프라인 블록을 생성하는 것인, 블록체인 관리 장치.
10. The method of claim 9,
When the network state detected by the network state detection unit is offline, the block generating unit generates an offline block including one transaction.
삭제delete 블록체인 관리 프로그램을 저장하는 컴퓨터 판독가능 저장 매체로서, 상기 블록체인 관리 프로그램이 컴퓨팅 장치에 의해 실행되는 경우 상기 컴퓨팅 장치로 하여금,
블록체인 네트워크의 네트워크 상태를 검출하는 동작; 및
상기 검출된 네트워크 상태에 기초하여, 블록을 생성하는 동작
을 수행하도록 하는 하나 이상의 명령어를 포함하고, 상기 블록의 블록 헤더는 해당 블록이 오프라인 상태와 연관되는지를 나타내는 블록 속성 값을 포함하고,
상기 블록을 생성하는 동작은,
상기 네트워크 상태가 오프라인 상태로부터 온라인 상태로 변경되는 경우,
상기 오프라인 상태에서 생성된 오프라인 블록을 트랜잭션으로 변환하여 오프라인 트랜잭션을 생성하는 동작; 및
상기 오프라인 트랜잭션을 포함하는 복구 블록을 생성하는 동작을 포함하는 것인, 컴퓨터 판독가능 저장 매체.
A computer-readable storage medium for storing a blockchain management program, when the blockchain management program is executed by a computing device, causing the computing device to:
detecting the network state of the blockchain network; and
Creating a block based on the detected network state
one or more instructions to perform
The operation of creating the block is
When the network state is changed from an offline state to an online state,
converting an offline block generated in the offline state into a transaction to generate an offline transaction; and
and generating a recovery block comprising the offline transaction.
KR1020200066461A 2020-06-02 2020-06-02 Device, method, system and computer readable storage medium for managing blockchain KR102416337B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020200066461A KR102416337B1 (en) 2020-06-02 2020-06-02 Device, method, system and computer readable storage medium for managing blockchain

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020200066461A KR102416337B1 (en) 2020-06-02 2020-06-02 Device, method, system and computer readable storage medium for managing blockchain

Publications (2)

Publication Number Publication Date
KR20210149427A KR20210149427A (en) 2021-12-09
KR102416337B1 true KR102416337B1 (en) 2022-07-05

Family

ID=78866409

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200066461A KR102416337B1 (en) 2020-06-02 2020-06-02 Device, method, system and computer readable storage medium for managing blockchain

Country Status (1)

Country Link
KR (1) KR102416337B1 (en)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102079578B1 (en) * 2019-11-21 2020-02-20 한국조폐공사 Method and blockchain network for reliability and stability of data anchoring based on multiple signatures

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB201611948D0 (en) * 2016-07-08 2016-08-24 Kalypton Int Ltd Distributed transcation processing and authentication system
CN113766035B (en) * 2017-03-28 2023-05-23 创新先进技术有限公司 Service acceptance and consensus method and device

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102079578B1 (en) * 2019-11-21 2020-02-20 한국조폐공사 Method and blockchain network for reliability and stability of data anchoring based on multiple signatures

Also Published As

Publication number Publication date
KR20210149427A (en) 2021-12-09

Similar Documents

Publication Publication Date Title
US20210049608A1 (en) Transaction method and system based on centralized clearing and blockchain record keeping
US11042876B2 (en) Transaction method and system based on centralized settlement and blockchain deposit certificates
US20210049595A1 (en) Transaction method and system based on centralized settlement and block chain storage
TWI820124B (en) Computer-implemented method, computing system and non-transitory computer-readable storage medium
EP3622687B1 (en) Enclave pool management
CN111213340B (en) Selecting attestation delegation for cryptographic functions and making it secure
US10657526B2 (en) System and method to dynamically setup a private sub-blockchain based on agility of transaction processing
CN111630830B (en) Distributed blockchain data storage under account model
US10528722B2 (en) Enclave pool shared key
CN111382168B (en) Node group creating method and node group-based transaction method in alliance chain network
CN111630507A (en) Distributed blockchain data storage under account model
US10567369B2 (en) Secure token passing via hash chains
CN111737654A (en) Infringement detection method and device based on block chain and electronic equipment
WO2021066954A1 (en) Subscription to dependencies in smart contracts
US11533185B1 (en) Systems for generating and managing certificate authorities
KR102416337B1 (en) Device, method, system and computer readable storage medium for managing blockchain
KR102416336B1 (en) Device, method, system and computer readable storage medium for managing blockchain
EP3980955A1 (en) Subscription to edits of blockchain transaction
CN111857883B (en) Page data checking method and device, electronic equipment and storage medium
KR102375144B1 (en) Device, method, system and computer readable storage medium for managing private key using blockchain
CN104461817B (en) A kind of method and server for detecting key
US11822663B2 (en) Supervisor-based firmware hardening
US20230370273A1 (en) Bootstrapping a code transparency system
US20230153457A1 (en) Privacy data management in distributed computing systems

Legal Events

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