KR20210149427A - 블록체인을 관리하기 위한 장치, 방법, 시스템 및 컴퓨터 판독가능 저장 매체 - Google Patents

블록체인을 관리하기 위한 장치, 방법, 시스템 및 컴퓨터 판독가능 저장 매체 Download PDF

Info

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

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

컴퓨팅 장치의 제어 하에서 수행되는 블록체인 관리 방법이 설명된다. 예시적인 블록체인 관리 방법은 블록체인 네트워크의 네트워크 상태를 검출하는 단계 및 검출된 네트워크 상태에 기초하여 블록을 생성하는 단계를 포함한다. 여기서 블록의 블록 헤더는 이전 블록 해시 값 및 블록 속성 값을 포함한다. 블록 속성 값은 해당 블록이 오프라인 상태와 연관되는지를 나타낸다.

Description

블록체인을 관리하기 위한 장치, 방법, 시스템 및 컴퓨터 판독가능 저장 매체 {DEVICE, METHOD, SYSTEM AND COMPUTER READABLE STORAGE MEDIUM FOR MANAGING BLOCKCHAIN}
본 개시는 블록체인을 관리하기 위한 장치, 방법, 시스템 및 컴퓨터 판독가능 저장 매체에 관한 것이다.
여기에서 달리 언급하지 않으면 본 섹션에서 기술되는 내용은 본 출원에서의 청구범위의 선행 기술이 아니며, 본 섹션에 기재하였다는 이유로 선행 기술로 인정되어서는 안 된다.
통신 기능을 가지는 컴퓨팅 장치의 사용이 일반화됨에 따라, 컴퓨팅 장치에 저장된 데이터에 대한 해킹을 방지하기 위한 보안 기술에 대한 관심이 높아지고 있다. 다양한 국가와 다양한 기업에서 관심을 가지는 보안 기술 중 하나는 블록체인(Block Chain)이다. 블록체인은 분산형 데이터 저장 기법을 이용하며, 이는 데이터를 단일의 컴퓨팅 장치에 저장하지 않고 네트워크에 참여하는 복수의 컴퓨팅 장치에 데이터를 저장하는 방식을 이용한다.
이와 같이, 블록체인은 복수의 컴퓨팅 장치에 분산 저장되며, 블록체인 네트워크 내 복수의 컴퓨팅 장치 각각은 블록체인의 유효한 운영을 위해 블록체인을 계속해서 갱신할 필요가 있다. 따라서, 블록체인 기법을 이용하여 시스템을 운영함에 있어서, 블록체인 네트워크의 연결은 중요하다. 이러한 특징은 블록체인 네트워크로의 연결이 중단될 경우, 블록체인 기법을 이용하는 시스템의 운영도 중단되는 문제로 이어질 수 있다. 한국 등록특허 제10-2037848호는 가상 블록체인을 갖는 듀얼 블록체인 기반의 디지털 전자기기 운용방법에 관하여 개시한다. 이러한 선행특허문헌은 통상의 블록체인 네트워크가 단절되는 경우, 통상 노드가 장치 내부에 가상 노드를 구성하여 가상 블록체인 네트워크 형성하며, 통상 노드와 개별 가상 노드가 1:1 연결되어 통신기기 토큰을 인증함으로써 트랜잭션을 생성한다. 이후, 블록체인 네트워크가 복구되면, 통상 노드는 가상 블록체인 네트워크를 통해 생성했던 트랜잭션을 다른 통상 노드에 배포하여 트랜잭션을 갱신한다. 그러나, 네트워크가 단절된 상태에서 생성된 트랜잭션이 네트워크가 복구된 이후에 단순히 재배포되는 경우, 네트워크의 단절 상태에서 기록된 블록이나 트랜잭션의 일부 정보가 소실될 가능성이 있으며, 이후 네트워크의 복구 이후에, 네트워크의 단절 상태에서 생성된 트랜잭션을 다른 트랜잭션과 구별하여 추적하는 데에 어려움이 있을 수 있다.
본 개시는 위와 같은 문제점들을 해결하기 위한 것으로서, 블록체인을 관리하기 위한 장치, 방법, 시스템 및 컴퓨터 판독가능 저장 매체를 제시한다.
본 개시의 일부 실시예에서, 컴퓨팅 장치의 제어 하에서 수행되는 블록체인 관리 방법이 설명된다. 예시적인 블록체인 관리 방법은 블록체인 네트워크의 네트워크 상태를 검출하는 단계 및 검출된 네트워크 상태에 기초하여 블록을 생성하는 단계를 포함할 수 있다. 블록의 블록 헤더는 해당 블록이 오프라인 상태와 연관되는지를 나타내는 블록 속성 값을 포함한다.
일부 예시에서, 블록을 생성하는 단계는 네트워크 상태가 오프라인 상태인 경우, 하나의 트랜잭션을 포함하는 오프라인 블록을 생성하는 단계를 포함할 수 있다. 일부 예시에서, 블록을 생성하는 단계는 네트워크 상태가 오프라인 상태로부터 온라인 상태로 변경되는 경우, 오프라인 상태에서 생성된 오프라인 블록을 트랜잭션으로 변환하여 오프라인 트랜잭션을 생성하는 단계; 및 오프라인 트랜잭션을 포함하는 복구 블록을 생성하는 단계를 포함할 수 있다. 일부 예시에서, 블록을 생성하는 단계는, 네트워크 상태가 온라인 상태로부터 오프라인 상태로 변경되는 경우, 생성 중인 블록에 저장된 트랜잭션 각각에 대하여, 해당 트랜잭션을 포함하는 오프라인 블록을 생성하는 단계; 또는 생성 중인 블록의 생성을 보류하는 단계를 포함할 수 있다.
일부 다른 실시예에서, 블록체인 관리 장치가 설명된다. 예시적인 블록체인 관리 장치는 네트워크 상태 검출부 및 블록 생성부를 포함할 수 있다. 네트워크 상태 검출부는 블록체인 네트워크의 네트워크 상태를 검출할 수 있다. 블록 생성부는 검출된 네트워크 상태에 기초하여, 블록을 생성할 수 있다. 블록의 블록 헤더는 해당 블록이 오프라인 상태와 연관되는지를 나타내는 블록 속성 값을 포함할 수 있다.
일부 예시에서, 블록 생성부는 네트워크 상태 검출부에 의해 검출된 네트워크 상태가 오프라인 상태인 경우, 하나의 트랜잭션을 포함하는 오프라인 블록을 생성할 수 있다. 일부 예시에서, 블록체인 관리 장치는 네트워크 상태 검출부에 의해 네트워크 상태가 오프라인 상태로부터 온라인 상태로 변경되는 경우, 오프라인 상태에서 생성된 오프라인 블록을 트랜잭션으로 변환하여 오프라인 트랜잭션을 생성하는 오프라인 트랜잭션 생성부를 더 포함할 수 있고, 블록 생성부는 오프라인 트랜잭션을 포함하는 복구 블록을 생성할 수 있다.
일부 또 다른 실시예에서, 블록 체인 관리 프로그램을 저장하는 컴퓨터 판독가능 저장 매체가 설명된다. 블록체인 관리 프로그램은 컴퓨팅 장치에 의해 실행되는 경우, 블록체인 네트워크의 네트워크 상태를 검출하는 동작; 및 검출된 네트워크 상태에 기초하여, 블록을 생성하는 동작을 수행하도록 하는 하나 이상의 명령어를 포함할 수 있다.
이상의 간단한 요약 및 효과에 관한 설명은 단순히 예시적인 것으로서 본 개시에서 의도한 기술적 사항을 제한하기 위한 것이 아니다. 이하의 상세한 설명과 첨부된 도면을 참조함으로써, 전술한 예시적인 실시예들과 기술적 특징들에 더하여, 추가적인 실시예와 기술적 특징들이 이해될 수 있을 것이다.
본 개시의 전술한 특징들 및 기타 특징들은, 첨부 도면을 참조하여 이하의 설명으로부터 충분히 분명해질 것이다. 이러한 도면들은 본 개시에 따르는 단지 몇 가지의 실시예만을 도시한 것이고, 따라서 그 범위를 제한하는 것으로 간주되어서는 안되는 것을 이해하면서, 본 개시는 첨부된 도면의 사용을 통하여, 더 구체적이고 상세하게 기술될 것이다.
도 1은 본 개시의 적어도 일부 실시예에 따른 블록체인의 일 예시를 도시한다.
도 2는 본 개시의 적어도 일부 실시예에 따라 블록체인을 관리하기 위한 시스템의 개략도를 도시한다.
도 3은 본 개시의 적어도 일부 실시예에 따른 블록체인 관리 장치를 도시하는 블록도이다.
도 4a는 본 개시의 적어도 일부 실시예에 따라 오프라인 상태에서 블록이 추가되는 예시를 도시하고, 도 4b는 도 4a에 따른 예시에서, 네트워크가 온라인 상태로 복구된 경우, 복구 블록이 추가되는 예시를 도시한다.
도 5은 본 개시의 적어도 일부 실시예에 따라, 블록체인을 관리하는 예시적인 프로세스를 도시한다.
도 6은 본 개시의 적어도 일부 실시예에 따라, 블록체인을 관리하는 데 이용될 수 있는 컴퓨터 프로그램 제품을 도시한다.
도 7은 본 개시의 적어도 일부 실시예에 따라 배열되는 컴퓨팅 장치의 예시적인 블록도이다.
이하, 첨부한 도면을 참조하여 본 개시가 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 본원의 구현예 및 실시예를 상세히 설명한다. 그러나, 본원은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 구현예 및 실시예에 한정되지 않는다.
본 개시는 일반적으로, 블록체인을 관리하기 위한 장치, 방법, 시스템 및 컴퓨터 판독가능 저장 매체 및 이에 저장된 프로그램에 관한 것이다.
도 1은 본 개시의 적어도 일부 실시예에서 이용되는 블록체인(100)의 일 예시를 도시한다. 블록체인(100)은 하나 이상의 블록을 포함하며, 각각의 블록은 요구되는 바에 따라 다양한 형태로 구현될 수 있으며, 적어도 하나의 트랜잭션을 포함한다. 이러한 블록체인(100)은 블록체인 네트워크 내 복수의 노드 각각에서 저장된다. 또한, 이하에서 설명되는 바와 같이, 새로운 블록 및/또는 트랜잭션은 생성될 때마다, 블록체인 네트워크 전반에 걸쳐 전파된다.
도 1에 도시된 바와 같이, 블록(110)은 블록 해시부(120), 블록 헤더부(130) 및 블록 바디부(140)를 포함할 수 있다. 블록 해시부(120)는 블록 해시 값을 포함하며, 이는 블록(110)을 식별하는 고유 값에 해당한다. 블록 해시 값은 아래 설명되는 바와 같이, 블록(110) 내의 블록 헤더부(130) 및 블록 바디부(140)에 포함된 데이터에 기초하여 연산된다. 블록 헤더부(130)는 블록체인 기법의 유형에 따라 다양한 값을 포함한다. 본 개시에 따르면, 블록 헤더부(130)는 적어도 이전 블록 해시 값, 블록 속성 값 및 데이터 해시 값을 포함할 수 있다. 이전 블록 해시 값은 블록체인 내에서 해당 블록 직전의 블록인 이전 블록(previous block)의 블록 해시 값이다. 블록(110)의 경우, 이전 블록 해시 값은 블록 #n-1의 블록 해시 값(즉, 0xy0…72)이다. 데이터 해시 값은 블록 바디부(140)에 저장되는 하나 이상의 트랜잭션의 데이터에 기초하여 결정된다.
블록 속성 값은 해당 블록이 블록체인(100)과 연관된 네트워크의 상태, 예컨대 오프라인 상태 또는 온라인 상태와 연관되는지를 나타내는 값이다. 일부 예시에서, 블록 속성 값은 본 개시에 따라 해당 블록이 오프라인 상태에서 생성되는 오프라인 블록임을 나타내거나 오프라인 블록의 트랜잭션을 포함하도록 온라인 상태에서 생성되는 복구 블록임을 나타내는 제1 상태를 포함할 수 있다. 또한 블록 속성 값은 해당 블록이 온라인 상태에서 생성되거나 수신된 트랜잭션을 포함하는 온라인 블록임을 나타내는 제2 상태를 포함할 수 있다. 일부 다른 예시에서, 블록 속성 값은 현재 오프라인 상태임을 나타내는 제1 상태; 네트워크의 상태가 온라인 상태이지만, 해당 블록에 포함되는 트랜잭션은 오프라인 블록의 트랜잭션임을 나타내는 제2 상태; 및 해당 블록이 온라인 상태에서 생성 또는 수신되는 트랜잭션을 포함하는 정상 블록임을 나타내는 제3 상태를 포함할 수 있다.
블록 헤더부(130)에 포함되는 값은 위 설명된 예시에 제한되지 않으며, 예컨대, 현재 블록의 깊이 값, 블록 생성 시각 값, 프로토콜 버전 값, 난이도 설정 값(nonce) 등과 같은 다양한 값을 더 포함할 수 있다.
블록 바디부(140)는 예컨대, "트랜잭션 n.1" 등과 같은 하나 이상의 트랜잭션을 포함할 수 있다. 각각의 트랜잭션이 노드에 의해 생성되는 경우, 해당 노드는 생성된 트랜잭션을 블록체인 네트워크 내 다른 노드로 전송할 수 있다. 노드가 트랜?Ъ퓽? 수신하는 경우, 해당 트랜잭션이 유효한 노드로부터 수신된 것 인지와 같이 트랜잭션의 유효성을 결정하며, 트랜잭션이 유효하면 해당 트랜잭션을 블록에 추가한다. 블록에 포함되는 트랜잭션의 수 또는 사이즈는 구현예에 따라 미리 정해질 수 있다. 각각의 트랜잭션에는 블록체인의 구현예에 따라 요구되는 데이터가 저장될 수 있다. 블록 바디부(140)에 저장되는 트랜잭션이 미리 정해진 기간, 미리 정해진 트랜잭션의 수 등과 같은 미리 정해진 조건에 만족하는 경우, 블록 바디부(140)에 포함된 하나 이상의 트랜잭션과 연관된 값으로부터 데이터 해시 값이 연산된다. 일부 예시에서, 데이터 해시 값은 머클 트리(merkle tree) 구조를 이용하여 머클 루트(merkle root)를 연산함으로써 획득할 수 있다. 이후, 이러한 데이터 해시 값을 포함하는 블록 헤더부(130) 내 다양한 값에 기초하여, 블록 해시 값이 연산되어, 결과적으로 블록(110)이 생성된다.
이와 같이 생성된 블록(110)은 블록체인 네트워크 내의 노드로 전송된다. 한편, 블록체인 네트워크 내 노드는 블록(110)의 수신 전에는 블록(110)의 이전 블록(즉, 도 1에서 블록#n-1)까지의 블록체인에 대한 데이터를 저장한다. 노드가 새로운 블록(110)을 수신하는 경우, 해당 블록이 유효한 노드로부터 수신된 것 인지와 같이 수신된 블록(110)의 유효성을 검증하고, 블록(110)이 유효하면, 블록체인에 블록(110)을 추가하는 한편, 블록체인 내 다른 노드로 블록(110)을 전송한다.
도 2는 본 개시의 적어도 일부 실시예에 따라 블록체인을 관리하기 위한 시스템(200)의 개략도를 도시한다. 본 개시에 따른 예시적인 시스템(200)은 블록체인 네트워크(210)를 포함할 수 있다. 블록체인 네트워크(210)는 미리 정해진 컴퓨팅 장치가 노드로서 동작하는 프라이빗 블록체인(private blockchain)으로 구현되는 경우, 시스템(200)은 블록체인 데이터를 액세스하는 블록체인 네트워크(210) 외부의 단말 장치를 더 포함하며, 이러한 블록체인 네트워크(120)는 시스템(200)의 운영 비용, 이용 용이성, 속도, 안정성 등의 측면에서 이점을 가지지만, 본 개시는 이에 제한되지 않는다. 다른 구현예에서, 블록체인 네트워크(210)는 퍼블릭 블록체인(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, …에도 적용될 수 있다는 점이 이해될 것이다.
일부 실시예에서, 노드(220-1)는 블록 체인의 개별 블록을 생성할 수 있다. 블록 체인은 제네시스 블록 및 하나 이상의 블록을 포함할 수 있다. 각 블록은 하나 이상의 트랜잭션을 포함할 수 있으며, 각 트랜잭션은 요구되는 구현예에 따른 데이터가 포함될 수 있다. 예컨대, 시스템(200)은 마트의 정산 시스템과 연관될 수 있다. 이러한 예시에서, 정산 시스템의 노드(220-1, 220-2, 220-3, 220-4, ...) 각각은 결제용 컴퓨팅 장치일 수 있으며, 트랜잭션은 결제 데이터일 수 있다. 노드(220-1)에 의한 블록의 구성과 생성에 대한 상세한 설명은 도 1에서의 블록의 생성에 관한 설명과 중복되므로, 명료함을 위하여 생략한다.
일부 실시예에서, 노드(220-1)는 블록체인 네트워크(210)의 네트워크 상태를 검출할 수 있다. 검출된 네트워크 상태는 예컨대, 노드(220-1)가 온라인 상태인 경우, 오프라인 상태인 경우, 오프라인 상태로부터 온라인 상태로 변경되는 상태인 경우 또는 온라인 상태로부터 오프라인 상태로 변경되는 상태인 경우를 포함할 수 있다.
노드(220-1)는 검출된 네트워크 상태에 기초하여 블록을 생성할 수 있다. 노드(220-1)는 블록체인 네트워크(210)의 네트워크 상태가 온라인 상태라고 검출되는 경우, 미리 정해진 트랜잭션 수, 생성 주기, 블록 사이즈에 기초하여 정상 블록을 생성할 수 있다. 예를 들어, 트랜잭션이 미리 정해진 조건을 만족하는 경우, 노드(220-1)는 하나 이상의 트랜잭션과 연관된 값으로부터 데이터 해시 값을 연산할 수 있다. 이러한 데이터 해시값을 포함하는 블록 헤더부 내의 다양한 값에 기초하여, 노드(220-1)는 블록 해시 값을 연산함으로써 블록의 생성을 완료할 수 있다.
노드(220-1)는, 블록체인 네트워크(210)의 네트워크 상태가 오프라인 상태인 경우, 오프라인 블록을 생성할 수 있다. 예컨대, 네트워크의 고장 등의 다양한 원인으로 인하여, 노드(220-1)는 노드(220-2, 220-4)와 같은 다른 노드와 통신 불가능할 수 있다. 이와 같이, 네트워크 상태의 검출에 의해 노드(220-1)가 현재, 블록체인 네트워크(210)에서 오프라인 상태임을 검출한 경우에도, 해당 노드(220-1)는 블록을 계속해서 생성하도록 동작할 수 있으며, 여기서 오프라인 상태에서 생성되는 블록을 오프라인 블록이라고 지칭할 수 있다. 일부 예시에서, 노드(220-1)는 오프라인 상태가 검출된 경우, 이러한 오프라인 블록을 생성하기 위해 미리 정해진 API(Application Program Interface)를 실행할 수 있다.
오프라인 블록은 미리 정해진 수의 트랜잭션을 포함할 수 있다. 일부 예시에서, 오프라인 블록은 하나의 트랜잭션을 포함할 수 있다. 예컨대, 시스템(200)은 마트의 정산 시스템과 연관될 수 있으며, 노드(220-1)는 마트 내 결제용 컴퓨팅 장치일 수 있다. 이러한 예시에서, 노드(220-1) 또는 블록체인 네트워크(210)의 어떠한 이상으로 인하여, 노드(220-1)의 네트워크 상태가 오프라인 상태가 된 경우, 노드(220-1)는 결제가 발생할 때마다, 해당 결제에 대한 트랜잭션을 생성하고, 해당 트랜잭션을 포함하는 오프라인 블록을 생성할 수 있다. 이와 같이 오프라인 블록이 하나의 트랜잭션을 포함하는 것으로 설명되었으나, 본 개시는 이에 제한되지 않으며, 오프라인 블록이 둘 이상의 트랜잭션을 포함하도록 하는 것도 가능하다.
노드(220-1)는 블록체인 네트워크(210)의 네트워크 상태가 오프라인 상태로부터 온라인 상태로 변경되는 경우, 복구 블록을 생성할 수 있다. 이러한 복구 블록은 오프라인 트랜잭션을 포함할 수 있다. 오프라인 트랜잭션은 오프라인 상태에서 생성된 오프라인 블록을 트랜잭션으로 변환함으로써 생성될 수 있다.
예를 들어, 노드(220-1)는 전술한 바와 같이 오프라인 상태에서 오프라인 블록을 생성할 수 있으며, 이러한 오프라인 블록은 블록 해시 값, 이전 블록 해시 값, 블록 속성 값 및 데이터 해시 값을 포함할 수 있다. 이후, 네트워크 상태가 오프라인 상태로부터 온라인 상태로 변경되는 경우, 노드(220-1)는 오프라인 블록의 블록 해시 값, 이전 블록 해시 값, 블록 속성 값 및 데이터 해시 값을 오프라인 트랜잭션의 데이터로서 정의할 수 있다. 또한, 노드(220-1)는 오프라인 블록의 트랜잭션을 오프라인 트랜잭션의 데이터로서 정의할 수 있다. 오프라인 트랜잭션은 정의된 데이터를 그대로 오프라인 트랜잭션의 데이터로서 사용하여 생성될 수 있다. 이러한 방식으로, 노드(220-1)는 오프라인 상태에서 생성된 복수의 오프라인 블록 각각을 트랜잭션으로 변환하여 복수의 오프라인 트랜잭션을 생성할 수 있다.
노드(220-1)는 오프라인 트랜잭션을 블록체인 네트워크(210)에 전송할 수 있다. 각 노드(220-2, 220-3, 220-4 등)는 수신된 오프라인 트랜잭션의 유효성을 확인한 후, 오프라인 트랜잭션을 생성 중인 블록에 추가할 수 있다. 노드(220-1)는 이와 같이 오프라인 트랜잭션을 포함하는 복구 블록을 생성할 수 있다. 바람직하게는 오프라인 트랜잭션만을 포함하는 복구 블록을 생성할 수 있다. 이러한 방식으로 복구 블록을 생성하는 동안, 노드(220-1)는 온라인 상태에서 생성 또는 수신되는 트랜잭션에 대한 정상 블록을 생성할 수 있다. 정상 블록의 생성은 복구 블록의 생성과는 독립적으로 및/또는 병렬적으로 수행될 수 있다. 또한, 복구 블록이 생성된 이후에, 오프라인 블록은 미사용 처리 될 수 있다.
일부 예시에서, 노드(220-1)는, 블록체인 네트워크(210)의 네트워크 상태가 온라인 상태로부터 오프라인 상태로 변경되는 경우, 생성 중인 블록에 이미 저장된 트랜잭션 각각에 대하여 해당 트랜잭션을 포함하는 오프라인 블록을 생성할 수 있다. 노드(220-1)가 블록의 생성을 완료하기 이전, 즉, 생성 중인 블록에 트랜잭션을 추가하는 동안, 네트워크의 상태는 오프라인 상태로 변경될 수 있다. 이러한 경우, 노드(220-1)는 생성 중인 블록에 이미 추가된 트랜잭션을 오프라인 블록으로 변환할 수 있다. 노드(220-1)는 트랜잭션이 기록된 순서에 따라 오프라인 블록을 생성할 수 있다.
일부 다른 예시에서, 노드(220-1)는, 블록체인 네트워크(210)의 네트워크 상태가 온라인 상태로부터 오프라인 상태로 변경되는 경우, 생성 중인 블록의 생성을 보류할 수 있다. 블록의 생성을 보류하는 경우, 네트워크가 온라인 상태로 복구되면 보류 중이던 블록의 생성을 재개할 수 있다.
본 개시에 따른 일부 실시예에서, 블록의 블록 헤더는 블록이 오프라인 상태와 연관되는지를 나타내는 블록 속성 값을 포함할 수 있다. 노드(220-1)는 블록의 유형에 기초하여 블록 속성 값을 결정할 수 있다. 일부 예시에서, 해당 블록이 오프라인 상태에서 생성되는 오프라인 블록이거나 온라인 상태에서 생성되는 복구 블록인 경우 제1 상태인 경우, 블록 속성 값은 제1 상태에 관한 값, 예컨대, TRUE값을 가질 수 있다. 또한, 해당 블록이 제1 상태가 아닌 상태, 즉, 정상 블록인 경우, 블록 속성 값은 제2 상태에 관한 값, 예컨대, FALSE값을 가질 수 있다.
일부 다른 예시에서, 해당 블록이 오프라인 블록인 경우, 블록 속성 값은 제1 상태에 관한 값을 가질 수 있다. 또한, 해당 블록이 복구 블록인 경우, 제2 상태에 관한 값을 가질 수 있다. 또한, 해당 블록이 정상 블록인 경우, 제3 상태에 관한 값을 가질 수 있다.
이와 같이, 본 개시에 따르면, 블록체인 기법을 활용하여 데이터를 신뢰 가능하게 저장 및 관리할 수 있으며, 네트워크 간의 연결이 끊기는 등 이용에 어려움이 생기는 경우에도 멈춤 없이 블록 체인으로 데이터를 관리하는 것이 가능해진다. 또한, 네트워크가 복구된 이후에도, 오프라인 상태에서 생성된 오프라인 블록에 대한 정보를 보존할 수 있다.
도 3은 본 개시의 적어도 일부 실시예에 따른 블록체인 관리 장치(300)를 도시하는 블록도이다. 도 3에 도시된 블록체인 관리 장치(300)는 예컨대, 도 2의 노드(220-1, 220-2, 220-3, 220-4, ...)와 같이, 블록을 생성하고, 생성된 블록을 연결된 다른 노드로 전파하고, 수신된 블록을 검증하고, 블록을 추가하는 기능을 수행한다. 이러한 점에서, 블록체인 관리 장치(300)는 예컨대, 데스크 탑 컴퓨터, 랩탑 컴퓨터, 스마트폰, 태블릿 컴퓨터, 휴대 전화기, 개인 휴대용 단말기(PDA), 특정 용도 장치 또는 상기 기능 중 임의의 것을 포함하는 융합 장치와 같은 단일 컴퓨팅 장치; 또는 서버 팜(server farm), 분산형 네트워크, 클라우드 컴퓨팅 구성과 같이 복수의 컴퓨팅 장치를 포함하는 복수 컴퓨팅 구성일 수 있으나, 이에 제한되지 않는다.
일부 실시예에서, 블록체인 관리 장치(300)는 도 3에 도시된 바와 같이, 네트워크 상태 검출부(310), 블록 생성부(320), 오프라인 트랜잭션 생성부(330) 및 블록체인 네트워크부(340)를 포함할 수 있다. 블록 생성부(310)는 트랜잭션 처리부(322), 데이터 해시 연산부(324) 및 블록해시 연산부(326)를 포함할 수 있다.
블록체인 관리 장치(300)는 본 개시에 따른 하나 이상의 프로그램을 내부 메모리에 저장할 수 있으며, 이러한 하나 이상의 프로그램은 프로세서의 실행에 의해, 이하에서 설명되는 네트워크 상태 검출부(310), 블록 생성부(320), 오프라인 트랜잭션 생성부(330) 및 블록체인 네트워크부(340)의 동작 중 적어도 일부를 수행할 수 있다. 이러한 컴포넌트들(310, 320, 330 및 340) 및 그 서브 컴포넌트들(322, 324 및 326)은 개별적인 컴포넌트로 도시되었으나, 개시된 대상의 범위를 벗어나지 않으면서, 추가적인 컴포넌트로 분리될 수 있거나 더 적은 컴포넌트로 조합되거나 제거될 수 있다. 또한, 도 3에서는 컴포넌트가 소프트웨어에 의해 구현되는 것으로 도시되지만, 당업자라면 컴포넌트의 각각의 기능 및/또는 동작이 하드웨어, 소프트웨어, 펌웨어 또는 그들의 임의의 조합을 통하여 개별적으로 및/또는 종합적으로 구현될 수 있음을 이해할 것이다.
네트워크 상태 검출부(310)는 블록체인 네트워크의 네트워크 상태를 검출할 수 있다. 검출된 네트워크 상태는 예컨대, 온라인 상태인 경우, 오프라인 상태인 경우, 오프라인 상태로부터 온라인 상태로 전환되는 상태인 경우 또는 온라인 상태로부터 오프라인 상태로 전환되는 상태인 경우를 포함할 수 있다.
블록 생성부(320)는 네트워크 상태 검출부(310)에 의해 검출된 네트워크 상태에 기초하여 블록체인의 개별 블록을 생성할 수 있다. 블록 생성부(320)에 의해 생성되는 블록의 블록 헤더는 블록 체인 적어도 이전 블록 해시 값, 블록 속성 값 및 데이터 해시 값을 포함할 수 있다. 이전 블록 해시 값은 블록체인 내에서 해당 블록 직전의 블록인 이전 블록(previous block)의 블록 해시 값이다. 블록 속성 값은 해당 블록이 블록체인과 연관된 네트워크의 상태, 예컨대 오프라인 상태 또는 온라인 상태와 연관되는지를 나타내는 값이다. 일부 선택적인 예시에서, 블록헤더는 현재 블록의 깊이 값, 블록 생성 시각 값, 프로토콜 버전 값, 난이도 설정 값(nonce) 중 적어도 하나를 더 포함할 수 있다.
네트워크 상태가 온라인 상태인 경우, 블록 생성부(320)는 미리 정해진 트랜잭션 수, 생성 주기, 블록 사이즈에 기초하여 정상 블록을 생성할 수 있다. 트랜잭션 처리부(322)는 블록체인 내 트랜잭션을 검증하고, 생성하고 있는 정상 블록에 검증된 해당 트랜잭션을 추가하도록 구성된다. 그러한 트랜잭션은 블록 체인 관리 장치(300) 또는 블록체인 관리 장치(300)와 연관된 장치에 의해 생성되거나 블록체인 네트워크부(340)에 의해 다른 블록체인 관리 장치로부터 수신될 수 있다. 생성하고 있는 정상 블록이 미리 정해진 조건, 예컨대, 미리 정해진 기간, 누적된 트랜잭션의 미리 정해진 수를 만족하는 경우, 트랜잭션 처리부(322)는 트랜잭션의 추가를 중단할 수 있으며, 데이터 해시 연산부(324)는 데이터 해시 값을 연산할 수 있다. 트랜잭션 처리부(322)에 의해 추가되는 트랜잭션은 요구되는 구현예에 따른 데이터를 포함할 수 있다.
이와 같이, 데이터 해시 연산부(324)는 트랜잭션의 추가가 중단된 블록에 대하여, 데이터 해시 값을 연산할 수 있다. 일부 예시에서, 데이터 해시 연산부(324)는 해당 블록에 포함된 하나 이상의 트랜잭션과 연관된 값을 이용하여 데이터 해시 값을 연산할 수 있다. 예컨대, 데이터 해시 연산부(324)는 머클 트리(Merkle tree) 구조를 이용하여 머클 루트(Merkle root)를 연산할 수 있다.
블록해시 연산부(326)는 데이터 해시 연산부(324)의 연산에 기초하여, 블록의 블록 해시 값을 연산할 수 있다. 블록해시 연산부(326)는 적어도 데이터 해시 연산부(324)에 의해 연산된 데이터 해시 값, 이전 블록 해시 값 및 블록이 온라인 상태와 연관됨을 나타내는 블록 속성 값, 특히, 블록의 유형이 정상 블록임을 나타내는 블록 속성 값을 이용하여 해당 블록의 블록 해시 값을 연산할 수 있다.
네트워크 상태가 오프라인 상태인 경우, 블록 생성부(320)는 오프라인 블록을 생성할 수 있다. 예컨대, 네트워크의 고장 등의 다양한 원인으로 인하여, 블록체인 네트워크부(340)가 블록체인 네트워크와의 통신을 수행할 수 없는 경우, 블록 생성부(320)는 블록을 계속해서 생성하도록 동작할 수 있다. 오프라인 블록은 미리 정해진 수의 트랜잭션을 포함할 수 있다. 일부 예시에서, 오프라인 블록은 하나의 트랜잭션을 포함할 수 있으며, 이러한 예시에서, 트랜잭션 처리부(322)가 하나의 트랜잭션을 검증할 때마다, 데이터 해시 연산부(324)는 해당 하나의 트랜잭션을 이용하여 데이터 해시 값을 연산하며, 블록해시 연산부(326)는 해당 하나의 트랜잭션을 이용하여 연산된 데이터 해시 값, 이전 블록 해시 값 및 블록이 오프라인 상태와 연관됨을 나타내는 블록 속성 값, 특히, 블록의 유형이 오프라인 블록임을 나타내는 블록 속성 값을 이용하여 해당 블록의 블록 해시 값을 연산할 수 있다.
네트워크 상태가 오프라인 상태로부터 온라인 상태로 변경되는 경우, 블록 생성부(320)는 복구 블록을 생성할 수 있다. 오프라인 트랜잭션 생성부(330)는 블록체인 네트워크의 네트워크 상태가 오프라인 상태로부터 온라인 상태로 변경되는 경우, 오프라인 블록을 트랜잭션으로 변환함으로써 오프라인 트랜잭션을 생성할 수 있다. 예컨대, 오프라인 트랜잭션 생성부(330)는 오프라인 블록의 블록 해시 값, 이전 블록 해시 값, 블록 속성 값 및 데이터 해시 값을 오프라인 트랜잭션의 데이터로서 정의할 수 있다. 오프라인 트랜잭션 생성부(330)는 오프라인 블록의 트랜잭션을 오프라인 트랜잭션의 데이터로서 정의할 수 있다. 오프라인 트랜잭션은 정의된 데이터를 그대로 오프라인 트랜잭션의 데이터로서 사용하여 생성될 수 있다. 한편, 블록체인 네트워크부(340)는 복구된 블록체인 네트워크로부터, 즉, 블록체인 관리 장치(300)와 연관된 장치 또는 블록체인 네트워크 내 다른 블록체인 관리 장치로부터 오프라인 트랜잭션을 수신할 수 있다. 이와 같이, 블록 생성부(320)가 복구 블록을 생성하는 동안, 온라인 상태에서 생성 또는 수신되는 트랜잭션에 대하여는 정상 블록을 생성할 수 있다. 정상 블록의 생성은 복구 블록의 생성과는 독립적으로 및/또는 병렬적으로 수행될 수 있다.
트랜잭션 처리부(322)는 오프라인 트랜잭션을 검증하고 생성하고 있는 복구 블록에 검증된 해당 오프라인 트랜잭션을 추가할 수 있다. 트랜잭션 처리부(322)는 복구 블록이 블록의 생성에 대하여 미리 정해진 조건을 만족하는 경우, 오프라인 트랜잭션의 추가를 중단할 수 있으며, 데이터 해시 연산부(324)는 복구 블록 내 오프라인 트랜잭션으로부터 데이터 해시 값을 연산할 수 있다. 블록해시 연산부(326)는 오프라인 트랜잭션으로부터 연산된 데이터 해시 값, 이전 블록 해시 값 및 블록이 오프라인 트랜잭션을 포함한 온라인 상태와 연관됨을 나타내는 블록 속성 값, 특히, 블록의 유형이 복구 블록임을 나타내는 블록 속성 값을 이용하여 해당 블록의 블록 해시 값을 연산할 수 있다.
일부 예시에서, 블록체인 네트워크부(340)는 생성된 트랜잭션 및/또는 블록을 블록체인 네트워크 내 노드 및/또는 다른 블록체인 관리 장치로 전송할 수 있다. 이러한 예시에서, 트랜잭션 처리부(312)는 해당 트랜잭션 및/또는 블록의 유효성을 결정하여, 유효한 경우, 블록에 추가할 수 있다.
일부 추가적인 실시예에서, 네트워크 상태가 온라인 상태로부터 오프라인 상태로 변경되는 경우, 블록 생성부(320)는 생성 중인 블록을 미리 정해진 방식으로 처리할 수 있다. 네트워크 상태가 온라인 상태로부터 오프라인 상태로 변경되는 경우, 생성 중인 블록에 이미 저장된 트랜잭션 각각에 대하여 해당 트랜잭션을 포함하는 오프라인 블록을 생성할 수 있다. 일부 예시에서, 블록 생성부(320)는 생성 중인 블록에 이미 저장된 트랜잭션 각각에 대하여 트랜잭션을 포함하는 오프라인 블록을 생성할 수 있다. 블록 생성부(320)는 트랜잭션이 기록된 순서에 따라 오프라인 블록을 생성할 수 있다. 일부 다른 예시에서, 블록 생성부(320)는 생성 중인 블록의 생성을 보류할 수 있으며, 이후 네트워크가 온라인 상태로 복구되면 보류 중이던 블록의 생성을 재개할 수 있다.
도 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)을 포함할 수 있다.
도 4b를 참조하면, 일 예시에 따른 블록체인은 네트워크가 온라인 상태로 복구된 이후에, 블록(440)가 추가된다. 이러한 블록은 블록(440)은 복구 블록으로 지칭된다. 블록(440)은, 오프라인 상태에서 생성된 블록(420) 및 블록(430) 각각을 트랜잭션으로 변환하고, 이러한 트랜잭션을 블록(420)의 트랜잭션으로 포함시킴으로써 생성될 수 있다. 예컨대, 블록(420)은 트랜잭션 1(442)로 변환될 수 있으며, 블록(440)의 트랜잭션으로서 추가될 수 있다. 또한 블록(430)은 트랜잭션 2(444)로 변환될 수 있으며, 블록(440)의 트랜잭션으로서 추가될 수 있다. 블록(440)이 생성된 이후, 블록(420) 및 블록(430)는 미사용 처리 될 수 있다.
도 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)에서 시작할 수 있다.
블록(510)에서, 컴퓨팅 장치는 블록체인 네트워크의 네트워크 상태를 검출할 수 있다. 프로세스(500)는 검출된 네트워크 상태에 기초하여, 다음 프로세스를 결정할 수 있다. 검출된 네트워크 상태는 온라인 상태 또는 오프라인 상태일 수 있다. 프로세스(500)는 블록(510)에서 검출된 네트워크 상태가 온라인 상태인 경우, 블록(510)으로부터 정상 블록을 생성하는 블록(520)으로 이어질 수 있다.
블록(520)에서, 컴퓨팅 장치는 정상블록을 생성할 수 있다. 컴퓨팅 장치는 미리 정해진 트랜잭션 수, 생성 주기, 블록 사이즈에 기초하여 정상 블록을 생성할 수 있다. 프로세스(500)는 블록(520)으로부터 블록체인 네트워크의 네트워크가 오프라인으로 변경되었는지 식별하는 블록(530)으로 이어질 수 있다.
블록(530)에서, 컴퓨팅 장치는 블록체인 네트워크의 네트워크가 오프라인으로 변경되었는지 여부를 검출할 수 있다. 오프라인 상태로 변경되지 않은 경우, 다시 블록(520)으로 돌아가 정상 블록을 생성할 수 있다. 오프라인으로 변경된 경우, 프로세스(500)는 블록(530)으로부터 생성중인 블록을 처리하는 블록(540)으로 이어질 수 있다.
블록(540)에서, 컴퓨팅 장치는 생성 중인 블록을 미리 정해진 방식으로 처리할 수 있다. 일부 예시에서, 컴퓨팅 장치는 생성 중인 블록에 이미 저장된 트랜잭션 각각에 대하여, 해당 트랜잭션을 포함하는 오프라인 블록을 생성할 수 있다. 컴퓨팅 장치가 블록의 생성을 완료하기 이전, 네트워크의 상태는 오프라인 상태로 변경될 수 있다. 이러한 경우, 컴퓨팅 장치는 생성 중인 블록에 이미 추가된 트랜잭션을 오프라인 블록으로 변환할 수 있다. 컴퓨팅 장치는 트랜잭션이 기록된 순서에 따라 오프라인 블록을 생성할 수 있다. 다른 예시에서, 컴퓨팅 장치는 생성 중인 블록의 생성을 보류할 수 있다. 이러한 경우, 컴퓨팅 장치는 네트워크가 온라인 상태로 복구되면, 보류 중이던 블록의 생성을 재개할 수 있다.
다시 블록(510)으로 돌아가, 네트워크 상태가 오프라인 상태인 경우, 프로세스(500)는 오프라인 블록을 생성하는 블록(550)으로 이어질 수 있다. 블록(550)에서, 컴퓨팅 장치는 오프라인 블록을 생성할 수 있다. 오프라인 블록은 미리 정해진 수의 트랜잭션을 포함할 수 있다. 일부 예시에서, 오프라인 블록은 하나 이상의 트랜잭션을 포함할 수 있다. 프로세스(500)는 블록(550)으로부터 블록체인 네트워크의 네트워크가 온라인으로 변경되었는지 여부를 검출하는 블록(560)으로 이어질 수 있다.
블록(560)에서, 컴퓨팅 장치는 블록체인 네트워크의 네트워크가 온라인으로 변경되었는지 여부를 검출할 수 있다. 온라인 상태로 변경되지 않은 경우, 다시 블록(550)으로 돌아가 오프라인 블록을 생성할 수 있다. 온라인 상태로 변경되는 경우, 프로세스(500)는 블록(560)으로부터 복구 블록을 생성하는 블록(570)으로 이어질 수 있다.
블록(570)에서, 컴퓨팅 장치는 복구 블록을 생성할 수 있다. 복구 블록은 오프라인 트랜잭션을 포함하며, 오프라인 상태에서 생성된 오프라인 블록을 트랜잭션으로 변환함으로써 생성될 수 있다. 컴퓨팅 장치는 오프라인 블록의 블록 해시 값, 이전 블록 해시 값, 블록 속성 값 및 데이터 해시 값을 오프라인 트랜잭션의 데이터로서 정의할 수 있다. 또한, 컴퓨팅 장치는 오프라인 블록의 트랜잭션을 오프라인 트랜잭션의 데이터로서 정의할 수 있다. 오프라인 트랜잭션은 정의된 데이터를 그대로 오프라인 트랜잭션의 데이터로서 사용하여 생성될 수 있다. 컴퓨팅 장치는 오프라인 트랜잭션을 블록체인 네트워크에 전송할 수 있다. 컴퓨팅 장치는 수신된 오프라인 트랜잭션의 유효성을 확인한 후, 오프라인 트랜잭션을 생성 중인 블록에 추가할 수 있다. 이러한 방식으로, 컴퓨팅 장치는 오프라인 트랜잭션을 포함하는 복구 블록, 바람직하게는 오프라인 트랜잭션만을 포함하는 복구 블록을 생성할 수 있다. 복구 블록을 생성하는 동안, 컴퓨팅 장치는 온라인 상태에서 생성 또는 수신되는 트랜잭션에 대한 온라인 블록을 생성할 수 있다. 온라인 블록의 생성은 복구 블록의 생성과는 독립적으로 및/또는 병렬적으로 수행될 수 있다. 복구 블록의 생성이 완료되면 프로세스(500)는 정상 블록을 생성하는 블록(520)으로 이어질 수 있고, 정상 블록을 생성할 수 있다. 이와 같이, 블록(570)과 블록(520)이 순차적으로 수행되는 것으로 설명되었으나, 블록(570)과 블록(520)이 동시에 수행되는 것도 가능하다.
도 6은 본 개시의 적어도 일부 실시예에 따라, 개시의 적어도 일부 실시예에 따라, 블록체인을 관리하는 데 이용될 수 있는 컴퓨터 프로그램 제품(600)을 도시한다. 예시적인 컴퓨터 프로그램 제품의 예시적인 실시예는 신호 베어링 매체(610)를 이용하여 제공된다. 일부 실시예에서, 하나 이상의 컴퓨터 프로그램 제품(600)의 신호 베어링 매체(610)는 컴퓨터 판독가능 매체(630) 및/또는 기록 가능 매체(640)를 포함할 수 있다.
신호 베어링 매체(610)에 포함된 명령어(620)는 노드(220-1, 220-2, 220-3, 220-4, …및 블록체인 관리 장치(300)와 같은 컴퓨팅 장치에 의해 실행될 수 있다. 명령어(620)가 실행되면, 컴퓨팅 장치로 하여금 블록체인 네트워크의 네트워크 상태를 검출하기 위한 하나 이상의 명령어; 검출된 네트워크 상태에 기초하여 블록을 생성하기 위한 하나 이상의 명령어; 네트워크 상태가 오프라인 상태인 경우, 오프라인 블록을 생성하기 위한 하나 이상의 명령어; 네트워크 상태가 온라인 상태인 경우, 정상 블록을 생성하기 위한 하나 이상의 명령어; 네트워크 상태가 오프라인 상태로부터 온라인 상태로 변경되는 경우, 오프라인 블록을 트랜잭션으로 변환하여 오프라인 트랜잭션을 생성하고, 오프라인 트랜잭션을 포함하는 복구 블록을 생성하기 위한 하나 이상의 명령어; 및 네트워크 상태가 온라인상태로부터 오프라인 상태로 변경되는 경우, 생성 중인 블록에 저장된 트랜잭션 각각에 대하여, 해당 트랜잭션을 포함하는 오프라인 블록을 생성하기 위한 하나 이상의 명령어 또는 생성 중인 블록의 생성을 보류하기 위한 하나 이상의 명령어 중 하나 이상을 포함할 수 있다.
도 7은 본 개시의 적어도 일부 실시예에 따라 배열되는 컴퓨팅 장치(700)의 예시적인 실시예의 블록도이다. 일 예시적인 기본적인 구성(702)에서, 컴퓨팅 장치(700)는 하나 이상의 프로세서(704) 및 시스템 메모리(706)를 포함할 수 있다. 메모리 버스(708)는 프로세서(704) 및 시스템 메모리(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)의 내적인 일부일 수 있다.
요구되는 구성에 따라, 시스템 메모리(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) 내의 그 구성요소들에 의해 도시된다.
컴퓨팅 장치(700)는 기본적인 구성(702) 및 임의의 요구되는 장치 및 인터페이스(interface) 사이의 통신을 용이하게 하도록 추가적인 특징 또는 기능, 및 추가적인 인터페이스를 가질 수 있다. 예를 들어, 버스/인터페이스 컨트롤러(730)는 저장부 인터페이스 버스(734)를 통한 기본적인 구성(702) 및 하나 이상의 데이터 저장 장치(732) 사이의 통신을 용이하게 하도록 사용될 수 있다. 데이터 저장 장치(732)는 이동식 저장 장치(736), 고정식 저장 장치(738), 또는 그 조합일 수 있다. 이동식 저장 장치 및 고정식 저장 장치의 예를 몇 가지 들자면, 플렉서블 디스크 드라이브(flexible disk drive) 및 하드 디스크 드라이브(HDD)와 같은 자기 디스크 장치, 컴팩트 디스크(CD) 드라이브 또는 디지털 다목적 디스크(DVD) 드라이브와 같은 광 디스크 드라이브, 고체 상태 드라이브(SSD), 및 테이프 드라이브 등을 포함한다. 예시적인 컴퓨터 저장 매체는 컴퓨터 판독가능 명령, 데이터 구조, 프로그램 모듈(program module), 또는 기타 데이터와 같은 정보의 저장을 위한 임의의 방법 또는 기술에서 구현되는 휘발성 및 비휘발성의 이동식 및 고정식 매체를 포함할 수 있다.
시스템 메모리(706), 이동식 저장 장치(736) 및 고정식 저장 장치(738)는 모두 컴퓨터 저장 매체의 예이다. 컴퓨터 저장 매체는 RAM, ROM, EEPROM, 플래시 메모리 또는 기타 메모리 기술, CD-ROM, 디지털 다목적 디스크(DVD) 또는 기타 광 저장 장치, 자기 카세트, 자기 테이프, 자기 디스크 저장 장치 또는 기타 자기 저장 장치, 또는 요구되는 정보를 저장하도록 사용될 수 있고, 컴퓨팅 장치(700)에 의해 액세스될 수 있는 임의의 기타 매체를 포함하나, 이에 제한되지는 않는다. 임의의 그러한 컴퓨터 저장 매체는 컴퓨팅 장치(700)의 일부일 수 있다.
컴퓨팅 장치(700)는 또한 버스/인터페이스 컨트롤러(742)를 통한 다양한 인터페이스 장치(예컨대, 출력 인터페이스, 주변 인터페이스, 및 통신 인터페이스)로부터 기본적인 구성(702)으로의 통신을 용이하게 하기 위한 인터페이스 버스(742)를 포함할 수 있다. 예시적인 출력 장치(742)는 그래픽 처리 유닛(748) 및 오디오 처리 유닛(750)을 포함할 수 있으며, 이는 하나 이상의 A/V 포트(752)를 통하여 디스플레이 또는 스피커와 같은 다양한 외부 장치로 통신하도록 구성될 수 있다. 예시적인 주변 인터페이스(744)는 직렬 인터페이스 컨트롤러(754) 또는 병렬 인터페이스 컨트롤러(756)를 포함할 수 있으며, 이는 하나 이상의 I/O 포트(658)를 통하여 입력 장치(예컨대, 키보드, 마우스, 펜, 음성 입력 장치, 터치 입력 장치 등) 또는 기타 주변 장치(예컨대, 프린터, 스캐너 등)와 같은 외부 장치와 통신하도록 구성될 수 있다. 예시적인 통신 장치(746)는 네트워크 컨트롤러(760)를 포함하며, 이는 하나 이상의 통신 포트(764)를 통한 네트워크 통신 상에서의 하나 이상의 다른 컴퓨팅 장치(762)와의 통신을 용이하게 하도록 배열될 수 있다.
컴퓨팅 장치(700)는 또한 랩탑 컴퓨터나 랩탑이 아닌 컴퓨터 구성 둘 다를 포함하는 개인 컴퓨터로 구현될 수 있다. 또한, 컴퓨팅 장치(700)는 무선 기지국 또는 기타 무선 시스템 또는 장치의 일부로서 구현될 수 있다.
전술한 본원의 설명은 예시를 위한 것이며, 본원이 속하는 기술분야의 통상의 지식을 가진 자는 본원의 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 쉽게 변형이 가능하다는 것을 이해할 수 있을 것이다. 그러므로, 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다. 예를 들어, 단일형으로 설명되어 있는 각 구성 요소는 분산되어 실시될 수도 있으며, 마찬가지로 분산된 것으로 설명되어 있는 구성 요소들도 결합된 형태로 실시될 수도 있다.
이상, 본 개시에서 청구하고자 하는 대상에 대해 구체적으로 살펴 보았다. 본 개시에서 청구된 대상은 앞서 기술한 특정 구현예로 그 범위가 제한되지 않는다. 예컨대, 어떤 구현예에서는 장치 또는 장치의 조합 상에서 동작 가능하게 사용되는 하드웨어의 형태일 수 있으며, 다른 구현예에서는 소프트웨어 및/또는 펌웨어의 형태로 구현될 수 있고, 또 다른 구현예에서는 신호 베어링 매체, 저장 매체와 같은 하나 이상의 물품을 포함할 수 있다. 여기서, CD-ROM, 컴퓨터 디스크, 플래시 메모리 등과 같은 저장 매체는, 예컨대 컴퓨팅 시스템, 컴퓨팅 플랫폼 또는 기타 시스템과 같은 컴퓨팅 장치에 의하여 실행될 때 앞서 설명한 구현예에 따라 해당 프로세서의 실행을 야기시킬 수 있는 명령을 저장할 수 있다. 이러한 컴퓨팅 장치는 하나 이상의 처리 유닛 또는 프로세서, 디스플레이, 키보드 및/또는 마우스와 같은 하나 이상의 입/출력 장치, 및 정적 랜덤 액세스 메모리, 동적 랜덤 액세스 메모리, 플래시 메모리 및/또는 하드 드라이브와 같은 하나 이상의 메모리를 포함할 수 있다.
전술한 상세한 설명에서는 블록도, 흐름도 및/또는 기타 예시를 통해 장치 및/또는 프로세스의 다양한 실시예를 설명하였다. 그러한 블록도, 흐름도, 및/또는 기타 예시는 하나 이상의 기능 및/또는 동작을 포함하게 되며, 당업자라면 블록도, 흐름도 및/또는 기타 예시 내의 각각의 기능 및/또는 동작이 하드웨어, 소프트웨어, 펌웨어, 또는 이들의 임의의 조합에 의해 개별적으로 혹은 집합적으로 구현될 수 있다는 점을 이해할 수 있을 것이다. 일 실시예에서, 본 개시에 기재된 대상의 몇몇 부분은 ASIC(Application Specific Integrated Circuit), FPGA(Field Programmable Gate Array), DSP(Digital Signal Processor) 또는 다른 집적의 형태를 통해 구현될 수 있다. 이와 달리, 본 개시의 실시예의 일부 양상은 하나 이상의 컴퓨터 상에 실행되는 하나 이상의 컴퓨터 프로그램(예를 들어, 하나 이상의 컴퓨터 시스템 상에 실행되는 하나 이상의 프로그램), 하나 이상의 프로세서 상에서 실행되는 하나 이상의 프로그램(예를 들어, 하나 이상의 마이크로프로세서 상에서 실행되는 하나 이상의 프로그램), 펌웨어 또는 이들의 실질적으로 임의의 조합으로써 전체적으로 또는 부분적으로 균등하게 집적 회로에서 구현될 수도 있으며, 소프트웨어 및/또는 펌웨어를 위한 코드의 작성 및/또는 회로의 설계는 본 개시에 비추어 당업자의 기술 범위 내에 속하는 것이다. 또한, 당업자라면, 본 개시의 대상의 매커니즘들이 다양한 형태의 프로그램 제품으로 분배될 수 있음을 이해할 것이며, 본 개시의 대상의 예시는 분배를 실제로 수행하는데 사용되는 신호 베어링 매체의 특정 유형과 무관하게 적용됨을 이해할 것이다.
특정 예시적 기법이 다양한 방법 및 시스템을 이용하여 여기에서 기술되고 도시되었으나, 당업자라면, 청구된 대상에서 벗어남이 없이, 다양한 기타의 수정 또는 등가물로의 치환 가능성을 이해할 수 있다. 추가적으로, 여기에 기술된 중심 개념으로부터 벗어남이 없이 특정 상황을 청구된 대상의 교시로 적응시키도록 많은 수정이 이루어질 수 있다. 따라서, 청구된 대상이 개시된 특정 예시로 제한되지 않으나, 그러한 청구된 대상은 또한 첨부된 청구범위 및 그 균등의 범위 내에 들어가는 모든 구현예를 포함할 수 있음이 의도된다.
본 개시의 범위는 상기 상세한 설명보다는 후술하는 특허청구범위에 의하여 나타내어지며, 특허청구범위의 의미 및 범위, 그리고 그 균등 개념으로부터 도출되는 모든 변경 또는 변형된 형태가 본원의 범위에 포함되는 것으로 해석되어야 한다.

Claims (12)

  1. 컴퓨팅 장치의 제어 하에서 수행되는, 블록체인 관리 방법으로서,
    블록체인 네트워크의 네트워크 상태를 검출하는 단계; 및
    상기 검출된 네트워크 상태에 기초하여, 블록을 생성하는 단계
    를 포함하고, 상기 블록의 블록 헤더는 해당 블록이 오프라인 상태와 연관되는지를 나타내는 블록 속성 값을 포함하는 것인, 블록체인 관리 방법.
  2. 제1항에 있어서,
    상기 블록을 생성하는 단계는
    상기 네트워크 상태가 오프라인 상태인 경우, 하나의 트랜잭션을 포함하는 오프라인 블록을 생성하는 단계를 포함하는 것인, 블록체인 관리 방법.
  3. 제1항에 있어서,
    상기 블록을 생성하는 단계는,
    상기 네트워크 상태가 오프라인 상태로부터 온라인 상태로 변경되는 경우,
    상기 오프라인 상태에서 생성된 오프라인 블록을 트랜잭션으로 변환하여 오프라인 트랜잭션을 생성하는 단계; 및
    상기 오프라인 트랜잭션을 포함하는 복구 블록을 생성하는 단계를 포함하는, 블록체인 관리 방법.
  4. 제3항에 있어서,
    상기 블록을 생성하는 단계는, 온라인 상태에서 생성 또는 수신되는 트랜잭션에 대한 온라인 블록을 생성하는 단계를 포함하고, 상기 온라인 블록의 생성은 상기 복구 블록의 생성과 독립적으로 수행되는 것인, 블록체인 관리 방법.
  5. 제1항에 있어서,
    상기 블록을 생성하는 단계는,
    상기 네트워크 상태가 온라인 상태로부터 오프라인 상태로 변경되는 경우, 생성 중인 블록에 저장된 트랜잭션 각각에 대하여, 해당 트랜잭션을 포함하는 오프라인 블록을 생성하는 단계를 포함하는, 블록체인 관리 방법.
  6. 제1항에 있어서,
    상기 블록을 생성하는 단계는,
    상기 네트워크 상태가 온라인 상태로부터 오프라인 상태로 변경되는 경우, 생성 중인 블록의 생성을 보류하는 단계를 포함하는, 블록체인 관리 방법.
  7. 제1항에 있어서,
    상기 블록을 생성하는 단계는, 상기 블록의 유형에 기초하여 상기 블록 속성 값을 결정하는 단계를 포함하는 것인, 블록체인 관리 방법.
  8. 제1항에 있어서,
    상기 블록 속성 값은 해당 블록이 오프라인 상태에서 생성되는 오프라인 블록이거나 오프라인 블록의 트랜잭션을 포함하는 복구 블록임을 나타내는 제1 상태 및 해당 블록이 온라인 상태에서 생성되거나 수신된 트랜잭션을 포함하는 온라인 블록임을 나타내는 제2 상태를 포함하는 것인, 블록체인 관리 방법.
  9. 블록체인 관리 장치로서,
    블록체인 네트워크의 네트워크 상태를 검출하는 네트워크 상태 검출부; 및
    상기 검출된 네트워크 상태에 기초하여, 블록을 생성하는 블록 생성부
    를 포함하고, 상기 블록의 블록 헤더는 해당 블록이 오프라인 상태와 연관되는지를 나타내는 블록 속성 값을 포함하는 것인, 블록체인 관리 장치.
  10. 제9항에 있어서,
    상기 블록 생성부는 상기 네트워크 상태 검출부에 의해 검출된 상기 네트워크 상태가 오프라인 상태인 경우, 하나의 트랜잭션을 포함하는 오프라인 블록을 생성하는 것인, 블록체인 관리 장치.
  11. 제9항에 있어서,
    상기 네트워크 상태 검출부에 의해 상기 네트워크 상태가 오프라인 상태로부터 온라인 상태로 변경되는 경우, 상기 오프라인 상태에서 생성된 오프라인 블록을 트랜잭션으로 변환하여 오프라인 트랜잭션을 생성하는 오프라인 트랜잭션 생성부
    를 더 포함하고,
    상기 블록 생성부는 상기 오프라인 트랜잭션을 포함하는 복구 블록을 생성하는 것인, 블록체인 관리 장치.
  12. 블록체인 관리 프로그램을 저장하는 컴퓨터 판독가능 저장 매체로서, 상기 블록체인 관리 프로그램이 컴퓨팅 장치에 의해 실행되는 경우 상기 컴퓨팅 장치로 하여금,
    블록체인 네트워크의 네트워크 상태를 검출하는 동작; 및
    상기 검출된 네트워크 상태에 기초하여, 블록을 생성하는 동작
    을 수행하도록 하는 하나 이상의 명령어를 포함하고, 상기 블록의 블록 헤더는 해당 블록이 오프라인 상태와 연관되는지를 나타내는 블록 속성 값을 포함하는 것인, 컴퓨터 판독가능 저장 매체.
KR1020200066461A 2020-06-02 2020-06-02 블록체인을 관리하기 위한 장치, 방법, 시스템 및 컴퓨터 판독가능 저장 매체 KR102416337B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020200066461A KR102416337B1 (ko) 2020-06-02 2020-06-02 블록체인을 관리하기 위한 장치, 방법, 시스템 및 컴퓨터 판독가능 저장 매체

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020200066461A KR102416337B1 (ko) 2020-06-02 2020-06-02 블록체인을 관리하기 위한 장치, 방법, 시스템 및 컴퓨터 판독가능 저장 매체

Publications (2)

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

Family

ID=78866409

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200066461A KR102416337B1 (ko) 2020-06-02 2020-06-02 블록체인을 관리하기 위한 장치, 방법, 시스템 및 컴퓨터 판독가능 저장 매체

Country Status (1)

Country Link
KR (1) KR102416337B1 (ko)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190038561A (ko) * 2016-07-08 2019-04-08 칼립톤 인터네셔널 리미티드 분산 트랜잭션 처리 및 인증 시스템
KR20190093598A (ko) * 2017-03-28 2019-08-09 알리바바 그룹 홀딩 리미티드 서비스 프로세싱 및 합의 방법 및 디바이스
KR102079578B1 (ko) * 2019-11-21 2020-02-20 한국조폐공사 다중 서명을 통해 블록체인 네트워크 간 데이터 앵커링의 신뢰성 및 안정성을 확보하기 위한 방법 및 이를 이용한 블록체인 네트워크

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190038561A (ko) * 2016-07-08 2019-04-08 칼립톤 인터네셔널 리미티드 분산 트랜잭션 처리 및 인증 시스템
KR20190093598A (ko) * 2017-03-28 2019-08-09 알리바바 그룹 홀딩 리미티드 서비스 프로세싱 및 합의 방법 및 디바이스
KR102079578B1 (ko) * 2019-11-21 2020-02-20 한국조폐공사 다중 서명을 통해 블록체인 네트워크 간 데이터 앵커링의 신뢰성 및 안정성을 확보하기 위한 방법 및 이를 이용한 블록체인 네트워크

Also Published As

Publication number Publication date
KR102416337B1 (ko) 2022-07-05

Similar Documents

Publication Publication Date Title
US20210049608A1 (en) Transaction method and system based on centralized clearing and blockchain record keeping
US20210049602A1 (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
TWI816781B (zh) 區塊鏈網路劃分技術(四)
EP3622687B1 (en) Enclave pool management
CN107577427B (zh) 用于区块链系统的数据迁移方法、设备和存储介质
CN111213340B (zh) 选择用于密码功能的证明委托并使其安全
US11068316B2 (en) Systems and method for managing memory resources used by smart contracts of a blockchain
CN111630830B (zh) 账户模型下的分布式区块链数据存储
US11176246B2 (en) Enclave pool shared key
US10637645B2 (en) Cryptlet identity
US20180121909A1 (en) System and method to dynamically setup a private sub-blockchain based on agility of transaction processing
CN111382168B (zh) 在联盟链网络中创建节点组、基于节点组的交易方法
CN111630507A (zh) 账户模型下的分布式区块链数据存储
CN111737654A (zh) 基于区块链的侵权检测方法及装置、电子设备
KR102416337B1 (ko) 블록체인을 관리하기 위한 장치, 방법, 시스템 및 컴퓨터 판독가능 저장 매체
KR102416336B1 (ko) 블록체인을 관리하기 위한 장치, 방법, 시스템 및 컴퓨터 판독가능 저장 매체
CN111857883B (zh) 页面数据校验方法、装置、电子设备及存储介质
KR20210149428A (ko) 블록체인을 이용하여 개인키를 관리하는 장치, 방법, 시스템 및 컴퓨터 판독가능 저장 매체
CN104461817B (zh) 一种检测键的方法和服务器
US20230370273A1 (en) Bootstrapping a code transparency system
US11822663B2 (en) Supervisor-based firmware hardening
US20230254162A1 (en) Retaining device identities after firmware updates

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