KR20200006845A - 블록체인 관리 방법 및 이를 위한 장치 - Google Patents

블록체인 관리 방법 및 이를 위한 장치 Download PDF

Info

Publication number
KR20200006845A
KR20200006845A KR1020180080718A KR20180080718A KR20200006845A KR 20200006845 A KR20200006845 A KR 20200006845A KR 1020180080718 A KR1020180080718 A KR 1020180080718A KR 20180080718 A KR20180080718 A KR 20180080718A KR 20200006845 A KR20200006845 A KR 20200006845A
Authority
KR
South Korea
Prior art keywords
sub
unit
node
master
transaction
Prior art date
Application number
KR1020180080718A
Other languages
English (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 KR1020180080718A priority Critical patent/KR20200006845A/ko
Publication of KR20200006845A publication Critical patent/KR20200006845A/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • H04L67/1044Group management mechanisms 
    • 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)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Theoretical Computer Science (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

본 발명은 블록체인의 성능 향상을 위하여 동적 블록체인을 형성하고 이를 관리하는 방법 및 이를 위한 장치에 관한 것이다. 본 발명에 따른 마스터 노드와 복수의 서브 노드로 구성되는 그룹에서, 블록체인을 관리하는 방법은, 상기 마스터 노드가, 클라이언트 단말에서 생성한 트랜잭션을 수신하는 단계; 상기 마스터 노드가, 상기 트랜잭션과 관련되는 유닛을 식별하고, 이 유닛을 담당하는 서브 노드로 상기 트랜잭션을 전달하는 단계; 및 상기 마스터 노드로부터 상기 트랜잭션을 전달받은 서브 노드가, 상기 트랜잭션이 포함된 신규 서브 블록을 생성하여 자신이 관리하는 서브 블록체인에 저장하는 단계를 포함한다.

Description

블록체인 관리 방법 및 이를 위한 장치{Method for managing block chain and apparatus therefor}
본 발명은 블록체인 기술에 관한 것으로서, 더욱 상세하게는 블록체인의 성능 향상을 위하여 동적 블록체인을 형성하고 이를 관리하는 방법 및 이를 위한 장치에 관한 것이다.
블록체인은, 동일 원장(즉, 트랜잭션)을 모든 노드가 공유하여, 거래내역을 투명하게 운영하고 더불어 해킹과 변조를 막는 기술이다. 이러한 블록체인은 트랜잭션을 포함하는 블록들이 체인 형태로 연결되는 구조를 갖는다. 아래의 특허문헌은 블록체인 기반의 파일 공유 방법 및 시스템에 대해서 개시한다.
그런데 종래의 블록체인은, 모든 노드들이 동일한 블록체인을 저장하고, 더불어 트랜잭션 검증에 참여하기 때문에, 블록체인이 처리해야 할 데이터가 증가되는 경우, 블록체인의 성능이 저하되는 문제점이 있다. 이에 따라, 블록체인의 성능 향상을 위해서 소프트웨어적인 방법 또는 하드웨어적인 방법이 고려되고 있다. 하드웨어적인 방법으로는 스케일-업(scale-up) 방법과 멀티 체인 기법을 이용한 스케일-아웃(scale-out) 방법이 이용되고 있다. 그런데 스케일-아웃 방식을 사용한 멀티 체인의 경우, 설계 시점에서 블록체인의 구조가 결정되며, 실상황을 정확히 반영하지 못할 경우, 트랜잭션이 단일 서버에 집중되어 하드웨어 스케일-아웃 효과가 없어지는 문제점이 있다.
한국등록특허 제10-1868029호 (2018.06.08 공개)
본 발명은 이러한 종래의 문제점을 해결하기 위하여 제안된 것으로, 복수의 서브 블록체인을 이용하여 블록체인의 성능을 최적화시키는 블록체인 관리 방법 및 이를 위한 장치를 제공하는데 그 목적이 있다.
본 발명의 다른 목적 및 장점들은 하기의 설명에 의해서 이해될 수 있으며, 본 발명의 실시예에 의해 보다 분명하게 알게 될 것이다. 또한, 본 발명의 목적 및 장점들은 특허 청구 범위에 나타낸 수단 및 그 조합에 의해 실현될 수 있음을 쉽게 알 수 있을 것이다.
상기 목적을 달성하기 위한 본 발명의 제1측면에 따른, 마스터 노드와 복수의 서브 노드로 구성되는 그룹에서, 블록체인을 관리하는 방법은, 상기 마스터 노드가, 클라이언트 단말에서 생성한 트랜잭션을 수신하는 단계; 상기 마스터 노드가, 상기 트랜잭션과 관련되는 유닛을 식별하고, 이 유닛을 담당하는 서브 노드로 상기 트랜잭션을 전달하는 단계; 및 상기 마스터 노드로부터 상기 트랜잭션을 전달받은 서브 노드가, 상기 트랜잭션이 포함된 신규 서브 블록을 생성하여 자신이 관리하는 서브 블록체인에 저장하는 단계를 포함한다.
상기 블록체인을 관리하는 방법은 상기 마스터 노드가, 상기 신규 서브 블록의 해시값과 아이디 그리고 상기 서브 노드의 식별정보가 포함된 신규 마스터 블록을 생성하여 마스터 블록체인에 저장하는 단계를 더 포함할 수 있다.
상기 트랜잭션을 전달하는 단계는, 상기 마스터 노드가, 상기 클라이언트의 IP 주소, 상기 클라이언트의 접속 계정, 상기 클라이언트의 공개키 중에 어느 하나를 이용하여 상기 트랜잭션과 관련되는 유닛을 식별하고, 이 유닛을 담당하는 서브 노드를 확인할 수 있다.
블록체인을 관리하는 방법은, 상기 서브 노드가, 자신의 부하율을 지속적으로 모니터링하고, 상기 부하율을 토대로 유닛 이관을 여부를 판단하는 단계; 상기 서브 노드가 상기 판단 결과 유닛 이관이 결정되면, 타 서브 노드로 이관시킬 하나 이상의 유닛을 선별하는 단계; 상기 서브 노드가 타 서브 노드로 상기 선별한 하나 이상의 유닛을 이관시키는 단계; 및 상기 마스터 노드가 상기 선별된 유닛의 이관 정보를 토대로, 각각의 유닛을 담당하는 서브 노드의 식별정보가 기록되는 분배 목록을 갱신하는 단계를 더 포함할 수 있다.
상기 마스터 노드는, 상기 선별된 유닛의 이관 정보가 기록되는 마스터 블록을 생성하여 마스터 블록체인에 저장할 수 있다.
상기 서브 노드는, 타 서브 노드의 부하율을 획득하여, 자신의 부하율이 제1임계값을 초과하고 상기 타 서브 노드의 부하율이 제2임계값 이하이면, 유닛 이관을 결정할 수 있다.
상기 목적을 달성하기 위한 본 발명의 제2측면에 따른, 복수의 서브 노드들과 하나의 그룹을 형성하고, 클라이언트로부터 전파받은 트랜잭션을 지정된 서브 노드로 전달하는 마스터 장치는, 서브 노드 식별정보와 유닛 식별정보가 대응되어 기록되며 각 유닛을 담당하는 서브 노드가 기록되는 분배 목록을 저장하는 저장부; 및 클라이언트로부터 트랜잭션을 전파받으면, 이 트랜잭션과 관련된 유닛을 식별하고, 상기 분배 목록을 참조하여 상기 유닛을 담당하는 서브 노드를 확인하고, 이 서브 노드로 상기 트랜잭션을 전달하여, 이 트랜잭션이 상기 서브 노드에서 관리하는 서브 블록체인에 저장되게 처리하는 라우팅 처리부를 포함한다.
상기 목적을 달성하기 위한 본 발명의 제3측면에 따른, 서브 블록체인을 담당하고 관리하며, 타 서브 노드 및 마스터 노드와 하나의 그룹을 형성하여 트랜잭션을 처리하는 서브 장치는, 상기 서브 장치의 부하율을 모니터링하는 상태 모니터링부; 상기 서브 장치에서 담당하는 유닛과 관련된 트랜잭션을 수신하면, 상기 트랜잭션을 포함하는 신규 서브 블록을 생성하여 상기 서브 블록체인에 저장하는 서브 블록 생성부; 및 상기 모니터링되는 상기 서브 장치의 부하율을 토대로 유닛 이관 여부를 판단하고, 상기 유닛 이관이 결정되면 타 서브 노드로 이관시킬 하나 이상의 유닛을 선별한 후, 상기 선별한 하나 이상의 유닛을 상기 타 서브 노드로 이관시키는 이관 처리부를 포함한다.
본 발명은 복수의 서브 블록체인에 서로 다른 유닛들을 각각 할당하고, 해당 유닛에 대한 트랜잭션이 발생하면, 이 트랜잭션과 관련된 블록이 상기 유닛을 담당하는 서브 블록체인에서 저장되게 함으로써, 트랜잭션 발생에 따른 로드를 서브 블록체인별로 분산하여, 블록체인 처리 능력을 향상시킬 수 있다.
또한, 본 발명은 특정 서브 블록체인에 부하가 가중되면, 이 서브 블록체인에 할당된 유닛을 타 서브 블록체인으로 이관시켜, 서브 블록체인이 부하율에 따라 동적으로 변동되게 제어함으로써, 서브 블록체인별로 부하를 분산시키는 효과도 있다.
게다가, 본 발명은 마스터 노드에서 서브 노드의 유닛 이관 정보, 최종 블록 해시값이 포함된 마스터 블록체인을 저장하고 관리함으로써, 서브 블록체인의 무결성을 보장하는 이점이 있다.
본 명세서에 첨부되는 다음의 도면들은 본 발명의 바람직한 실시예를 예시하는 것이며, 발명을 실시하기 위한 구체적인 내용과 함께 본 발명의 기술사상을 더욱 이해시키는 역할을 하는 것이므로, 본 발명은 그러한 도면에 기재된 사항에만 한정되어 해석되어서는 아니 된다.
도 1은 본 발명의 일 실시예에 따른, 동적 블록체인 관리 시스템의 구성을 나타내는 도면이다.
도 2는 본 발명의 일 실시예에 따른, 동적 블록체인 관리 시스템에서 트랜잭션을 처리하는 방법을 설명하는 흐름도이다.
도 3은 본 발명의 일 실시예에 따른, 동적 블록체인 관리 시스템에서 서브 블록체인을 재구성하여 관리하는 방법을 설명하는 흐름도이다.
도 4는 본 발명의 일 실시예에 따른, 마스터 장치의 구성을 나타내는 도면이다.
도 5는 본 발명의 일 실시예에 따른, 서브 장치의 구성을 나타내는 도면이다.
상술한 목적, 특징 및 장점은 첨부된 도면과 관련한 다음의 상세한 설명을 통하여 보다 분명해 질 것이며, 그에 따라 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 본 발명의 기술적 사상을 용이하게 실시할 수 있을 것이다. 또한, 본 발명을 설명함에 있어서 본 발명과 관련된 공지 기술에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에 그 상세한 설명을 생략하기로 한다. 이하, 첨부된 도면을 참조하여 본 발명에 따른 바람직한 일 실시예를 상세히 설명하기로 한다.
도 1은 본 발명의 일 실시예에 따른, 동적 블록체인 관리 시스템의 구성을 나타내는 도면이다.
도 1에 도시된 바와 같이, 본 발명의 일 실시예에 따른, 동적체인 관리 시스템은 클라이언트(300), 마스터 노드(110, 210)와 복수의 서브 노드들(121, 122, 123, 221, 222, 223)을 포함되는 블록체인 그룹을 포함한다.
본 발명에 따른 서브 블록체인(131, 132, 133, 231, 232, 233)이 오픈 블록체인(즉, 공용 블록체인) 형태인 경우, 도 1에 도시된 바와 같이 블록체인 그룹들이 복수 개수로 형성되어, 서브 블록체인(131, 132, 133, 231, 232, 233)이 복수 개로 분산되어 저장될 수 있다. 부연하면, 트랜잭션이 발생하면 각 그룹으로 트랜잭션으로 전파되고, 이 트랜잭션을 포함하는 서브 블록이 각 그룹의 서브 블록체인(131~133, 231~233)에 각각 저장될 수 있다.
한편, 본 발명에 따른 서브 블록체인(131~133, 231~233)이 폐쇄 블록체인(즉, 사설 블록체인) 형태인 경우, 블록체인 그룹은 단일 개수로 형성될 수 있으며, 이 경우 각각의 서브 블록체인(131~133, 231~233)은 하나의 서브 노드에서 관리된다.
클라이언트(300)는 개인용 컴퓨터, 서버, 이동통신 기기 등으로서, 트랜잭션을 생성하는 마스터 노드(110, 210)로 전파할 수 있다. 또한, 클라이언트(300)는 마스터 노드(110, 210)를 통해서 특정 서브 노드(121~123, 221~223)에서 관리하는 서브 블록체인(131~133, 231~233)에 접근할 수 있다.
각각의 블록체인 그룹은 마스터 노드(110, 210)와 복수의 서브 노드(121~123, 221~223)를 포함한다.
마스터 노드(110, 210)는 서브 노드(121~123, 221~223)의 상태를 수집하고, 서브 노드(121~123, 221~223)의 상태를 모니터링한다. 또한, 마스터 노드(110, 210)는 각각의 서브 노드로 분배시킨 유닛 식별정보를 포함하는 분배 목록을 저장하고 관리한다. 상기 분배 목록에는 서브 노드 식별정보와 대응되어 하나 이상의 유닛 식별정보가 기록된다. 또한, 마스터 노드(110, 210)는 트랜잭션이 수신되면, 트랜잭션과 관련된 유닛을 식별하고, 상기 분배 목록을 참조하여 상기 식별한 유닛을 담당하는 서브 노드(121~123, 221~223)로 상기 트랜잭션을 전달한다.
상기 유닛을 서브 노드(121~123, 221~223)에서 서브 블록체인을 관리하기 위한 단위로서, 예컨대, 사용자 아이디, IP 주소, 공개키 등이 상기 유닛으로서 이용될 수 있다. 각각의 유닛은 특정 서브 노드가 담당하도록 할당될 수 있다. 예를 들면, 소스 IP 주소 1번부터 100번까지를 서브 노드#1-1(121)에서 담당하고, 소스 IP 주소 101번부터 200번까지는 서브 노드#1-2(122)에서 담당할 수 있다. 또 다른 예로서, 사용자 계정이 xxx1부터 xxx100까지는 서브 노드#1-1(121)에서 담당하고, 사용자 계정이 xxx101부터 xxx200까지는 서브 노드#1-2(122)에서 담당할 수 있다.
마스터 노드(110, 210)는 마스터 블록체인(111, 211)을 저장하고 관리한다.
상기 마스터 블록체인(111, 211)은 마스터 블록들이 연결된 구조로서, 상기 마스터 블록에는 클라이언트(300)에서 발생시키는 트랜잭션이 저장되지 않고, 대신에 서브 노드의 상태 정보, 이관 정보, 서브 노드의 최종 블록 해시값과 서브 블록의 식별정보 중에서 하나 이상이 저장된다. 부연하면 마스터 블록은 헤더와 바디로 구성되며, 마스터 블록의 헤더는 이전 블록 해시값, 머클루트(Markle Root), 난스(Nonce), 타임스탬프를 포함한다. 상기 이전 블록 해시는 마스터 블록체인 구조에서 이전 블록(즉, 부모 블록)에 대한 해시 참조값을 나타낸다. 머클루트는 머클 트리 루트에 대한 해시(hash)이다. 타임 스탬프는 마스터 블록의 생성시간이 기록된다. 또한, 마스터 블록의 바디는, 유닛의 이관 정보, 서브 노드의 최종 블록 해시값, 서브 블록의 아이디 중에서 하나 이상이 저장된다.
마스터 블록체인(111, 211)에 저장된 데이터를 통해서, 서브 노드(121~123, 221~223)에서 저장되는 데이터(즉, 트랜잭션)의 무결성이 보장되고, 더불어 유닛 이관 이력에 대한 신뢰성이 확보된다.
서브 노드(121~123, 221~223)는 동일 그룹에 속하는 서브 노드의 상태 정보를 확인하고, 부하율에 따라 자신이 담담하는 유닛을 타 노드로 이관시킬 수 있다. 또한, 서브 노드(121~123, 221~223)는 자신이 담당하는 유닛에 대한 부가 정보를 저장하고 관리한다. 상기 부가 정보에는 계정 정보, 가상화폐 잔액, 사용자 정보, 공개키 등 중에서 하나 이상이 포함될 수 있다. 부연하면, 서브 노드(121~123, 221~223)는 유닛을 이관을 진행하는 경우, 유닛의 식별정보와 부가정보가 유닛 이관을 수용한 타 서브 노드로 제공한다.
서브 노드(121~123, 221~223)는 서브 블록체인을 저장하고 관리한다. 상기 서브 블록체인(131~133, 231~233)에는 트랜잭션이 포함된 블록이 저장된다.
또한, 서브 노드(121~123, 221~223)는 일정 개수의 유닛을 할당받아, 이 유닛과 관련된 트랜잭션을 포함하는 블록(즉, 서브 블록)을 생성하여 서브 블록체인(131~133, 231~233)에 저장한다. 상기 서브 노드(121~123, 221~223)는 자신의 상태 정보를 마스터 노드(110, 210)에 보고한다. 또한, 서브 노드(121~123, 221~223)는 마스터 노드(110, 210)로부터 타 노드들의 상태 정보를 수신할 수도 있다. 서브 노드(121~123, 221~223)는 부하율이 높으면, 자신이 담당하는 하나 이상의 유닛에 대한 이관을 타 서브 노드(121~123, 221~223)로 요청하여, 자신의 담당하는 유닛중에서 일부 유닛을 타 서브 노드(121~123, 221~223)로 이관함으로써 부하율을 낮출 수 있다. 반대로, 서브 노드(121~123, 221~223)는 부하율이 낮으면, 타 서브 노드가 담당하는 하나 이상의 유닛을 이관받아, 이관받은 유닛과 관련된 트랜잭션을 처리할 수도 있다.
서브 블록체인(131~133, 231~233)은 서브 블록들이 연결된 구조로서, 상기 서브 블록에는 클라이언트(300)에서 발생시키는 트랜잭션이 저장된다.
상기 서브 블록은 헤더와 바디로 구성되며, 서브 블록의 헤더는 이전 서브 블록의 해시값, 머클루트(Markle Root), 난스(Nonce), 타임스탬프 및 서브 블록 아이디를 포함한다. 상기 이전 블록 해시는 서브 블록체인 구조에서 이전 블록(즉, 부모 블록)에 대한 해시 참조값을 나타낸다. 머클루트는 머클 트리 루트에 대한 해시(hash)이다. 타임 스탬프는 서브 블록의 생성시간을 기록하고, 서브 블록 아이디는, 해당 서브 블록에 대한 고유 식별정보가 기록한다. 또한, 서브 블록의 바디는, 데이터 송신 내역, 가상화폐 거래 내역, 계약 내역 등과 같은 둘 이상의 사용자 간에 수행되는 거래내역 데이터가 기록을 나타내는 트랜잭션을 저장한다.
도 2는 본 발명의 일 실시예에 따른, 동적 블록체인 관리 시스템에서 트랜잭션을 처리하는 방법을 설명하는 흐름도이다.
도 2에서는 마스터 노드#1(110)이 트랜잭션을 서브 노드#1-1(121)로 라우팅하는 것을 가정한다.
도 2를 참조하면, 클라이언트(300)는 클라이언트의 사용자와 타 사용자의 거래내역(예컨대, 가상화폐 거래내역)이 포함되는 트랜잭션을 생성하고, 이 트랜잭션을 마스터 노드#1(110)로 전파할 수 있다(S201, S203). 트랜잭션에는 제1사용자 계정에서 제2사용자 계정으로 송신되는 가상화폐의 이체 내역, 제1사용자 계정에서 제2사용자 계정으로 전송되는 명세서 내역 또는 제1사용자 계정에서 제2사용자 계정으로 전송되는 파일 등을 포함할 수 있다. 이때, 클라이언트(300)는 사용자의 식별정보(예컨대, 사용자 계정)를 마스터 노드#1(110)로 전송할 수 있다.
그러면, 마스터 노드#1(110)은 상기 트랜잭션을 수신하고, 이 트랜잭션과 관련된 유닛을 식별한다(S205). 이때, 마스터 노드#1(110)은 클라이언트(300)의 IP 주소, 클라이언트(300)의 접속 계정 또는 클라이언트(300)의 공개키를 이용하여, 트랜잭션과 관련된 유닛을 식별할 수 있다.
다음으로, 마스터 노드#1(110)은 저장중인 분배 목록을 참조하여, 상기 식별한 유닛을 담당하는 서브 노드(121)를 확인한다(S207). 도 2에서는, 상기 식별한 유닛을 담당하는 노드가 서브 노드#1-1(121)인 것으로서 설명된다.
이어서, 마스터 노드#1(110)은 클라이언트(300)로부터 수신한 트랜잭션을, 해당 유닛의 담당 노드인 서브 노드#1-1(121)로 전달한다(S209).
그러면, 서브 노드#1-1(121)은 트랜잭션에 대한 검증을 수행한다. 이때, 서브 노드#1-1(121)은 트랜잭션에 포함된 클라이언트(300)의 전자 서명에 대한 진위를 확인함으로써, 상기 트랜잭션을 검증할 수 있다. 서브 노드#1-1(121)은 트랜잭션에 대한 검증에 성공하면, 상기 트랜잭션을 바디에 저장하고, 바디에 헤더를 덧붙어 신규 서브 블록을 생성하고, 이 신규 서브 블록을 자신의 관리하는 서브 블록체인#1-1(131)에 저장한다(S211). 이때, 상기 생성한 신규 서브 블록의 헤더에는 이전 서브 블록의 해시값이 기록되고, 타임 스탬프(즉, 블록 생성시간), 서브 블록 아이디 등이 포함됨으로써, 이전 서브 블록과 연결된 형태로 상기 신규 서브 블록이 서브 블록체인#1-1(131)에 저장된다.
상기 서브 노드#1-1(121)은 상기 신규 서브 블록이 서브 블록체인#1-1(131)에 저장되면, 상기 신규 서브 블록의 유닛과 관련된 부가정보를 업데이트를 할 수 있다. 예를 들어, 상기 신규 서브 블록에 가상 화폐 거래 정보가 기록되고 이에 따라 상기 유닛과 대응되는 사용자의 가상화폐 잔액이 변경된 경우, 서브 노드#1-1(121)는 가상 화폐 거래에 따라 기존의 가상화폐 잔액에서 거래 금액에 해당하는 잔액을 증가 또는 감소시킴으로써, 상기 가상화폐 잔액을 갱신할 수도 있다.
다음으로, 서브 노드#1-1(121)은 상기 트랜잭션이 성공적으로 처리되어 서브 블록체인#1-1(131)에 저장되면, 트랜잭션 처리 알림 메시지를 마스터 노드#1(110)로 전송한다(S213). 이때, 서브 노드#1-1(121)은 상기 생성한 신규 서브 블록의 해시값(즉, 최종 블록 해시값)과 아이디를 마스터 노드로 전달한다.
그러면, 마스터 노드#1(110)는 서브 노드#1-1(121)로부터 수신한 신규 서브 블록의 해시값(즉, 최종 블록 해시값), 아이디 및 상기 서브 노드#1-1(121)의 식별정보가 포함된 신규 마스터 블록을 생성하고, 이 마스터 블록을 마스터 블록체인#1(111)에 저장한다(S215). 이때, 상기 생성한 신규 마스터 블록의 헤더에는 이전 마스터 블록의 해시값이 기록되고, 타임 스탬프(즉, 블록 생성시간) 등이 포함됨으로써, 이전 마스터 블록과 연결된 형태로 상기 신규 마스터 블록이 마스터 블록체인#1(111)에 저장된다.
상술한 바와 같이, 마스터 노드(110, 210)는 트랜잭션이 수신되면, 이 트랜잭션을 처리해야 되는 서브 노드(121~123, 221~223)를 확인하여 상기 트랜잭션을 라우팅하고, 서브 노드(121~123, 221~223)는 이 트랜잭션이 포함된 신규 서브 블록을 생성하여 자신의 관리하는 서브 블록체인에 저장한다. 또한, 마스터 노드(110, 210)는 서브 블록에 대한 무결성을 검증하기 위해, 상기 신규 서브 블록의 해시값과 아이디, 서브 노드의 식별정보가 포함된 신규 마스터 블록을 생성하여 마스터 블록체인에 저장한다.
한편, 도 2를 참조한 설명에서는 클라이언트(300)에서 생성한 트랜잭션은 마스터 노드#1(110)로 전파되는 것으로서 설명되었으나, 상기 트랜잭션은 또 다른 마스터 노드들(210)로 전파될 수 있다. 이 경우, 또 다른 마스터 노드들(210)은 상기 트랜잭션과 관련된 유닛을 담당하는 동일 그룹의 서브 노드로 트랜잭션을 전파하고, 동일 그룹의 서브 노드는 상기 트랜잭션이 포함된 신규 서브 블록을 생성하여 서브 블록체인에 저장한다.
도 3은 본 발명의 일 실시예에 따른, 동적 블록체인 관리 시스템에서 서브 블록체인을 재구성하여 관리하는 방법을 설명하는 흐름도이다.
도 3을 참조하면, 서브 노드#1-1(121), 서브 노드#1-2(122) 각각은, 자신의 부하율이 포함된 상태 정보를 마스터 노드#1(110)로 각각 전송한다(S301, S303). 이때, 서브 노드#1-1(121), 서브 노드#1-2(122) 각각은 자신의 상태가 변경되거나 일정 주기 간격으로 상기 상태 정보를 마스터 노드(110, 210)로 전송할 수 있다. 서브 노드(121, 122)는 서브 노드의 CPU 점유율, 메모리 사용률, 디스크 사용률, 네트워크의 트래픽 발생량 중에서 하나 이상을 이용하여 서브 노드의 부하율을 계산할 수 있다.
그러면, 마스터 노드#1(110)은 수신한 상태 정보를 토대로, 서브 노드#1-1(121)의 상태 정보와 서브 노드#1-2(122)의 상태 정보를 각각 갱신한다(S305). 그리고 마스터 노드#1(110)은 동일 그룹에 속하는 각 서브 노드(121, 122, 123)로, 타 노드의 상태 정보를 전송한다(S307, S309). 상기 상태 정보에는 타 서브 노드의 부하율이 포함되어 있다. 부연하면, 마스터 노드#1(110)는 서브 노드#1-1(121)의 상태 정보를 제외한 타 서브 노드별 상태 정보를 서브 노드#1-1(121)로 전송하고, 서브 노드#1-2(122)의 상태 정보를 제외한 타 서브 노드별 상태 정보를 서브 노드#1-2(122)로 전송한다.
그러면, 각각의 서브 노드(121, 122)는 자신의 부하율과 타 노드의 부하율을 토대로, 자신이 관리하는 유닛에 대한 이관이 필요한지 여부를 판단한다(S311). 이때, 서브 노드(121, 122)는 자신의 부하율이 사전에 설정된 제1임계값(예컨대, 70%)을 초과한 상태에서, 제2임계값(예컨대, 40%) 미만의 부하율을 가지는 타 서브 노드가 존재하면, 유닛 이관을 결정할 수 있다.
도 3을 참조한 설명에서는 서브 노드#1-1(121)이, 부하가 가중됨에 따라 유닛 이관을 결정한 노드로서 설명되고, 서브 노드#1-2(122)가 이관되는 유닛을 수용하는 노드인 것으로 설명된다.
서브 노드#1-1(121)은, 자신의 부하율이 제1임계값을 초과함에 따라, 유닛 이관을 결정한 후(S313), S307 단계에서 획득한 타 노드별 상태 정보를 토대로, 부하율이 제2임계값 이하인 어느 한 노드를 유닛을 이관시킬 노드로 선정한다. 도 3에서는 서브 노드#1-1(121)이 유닛을 이관시킬 노드를 서브 노드#1-2(122)로 선정한 것으로 설명된다.
다음으로, 서브 노드#1-1(121)은 유닛 이관을 요청하는 메시지를 서브 노드#1-2(122)로 전송한다(S315). 그러면, 서브 노드#1-2(122)는 자신의 상태정보에서 부하율을 확인한 후, 이 부하율을 토대로 추가적인 유닛을 수용할 수 있는지 여부를 판단한다. 서브 노드#1-2(122)는 자신의 부하율이 제2임계값 이하인 경우, 타 서브 노드에서 담당하는 유닛을 수용한 것으로 결정할 수 있다(S317).
서브 노드#1-2(122)는 상기 판단 결과 추가적으로 유닛을 수용할 수 없는 것으로 판단되면, 서브 노드#1-1(121)로 유닛 수용 불가 메시지를 전송하고, 서브 노드#1-1(121)은 유닛을 이관시킬 다른 서브 노드를 재선정한다.
반면에, 서브 노드#1-2(122)는 상기 판단 결과 추가적으로 유닛을 수용할 수 있는 것으로 판단되면, 이관시킬 유닛 목록을 서브 노드#1-1(121)로 요청한다(S319).
그러면, 서브 노드#1-1(121)은 자신이 관리하는 유닛별 부하를 확인한다. 유닛 부하는 유닛과 관련된 트랜잭션을 처리할 때 발생되는 부하로서, 서브 노드들은 전체 부하율 이외에 유닛별로 가중되는 부하를 확인하여, 해당 유닛의 부하가 전체 부하율에서 차지하는 비율을 모니터링한다. 서브 노드#1-1(121)은 유닛별 부하를 토대로, 전체 부하율을 제1임계값 이하로 낮출 수 있는 하나 이상의 유닛을 선별한다(S321). 즉, 서브 노드#1-1(121)은 유닛별 부하를 토대로, 유닛을 이관시킬 경우 낮아지는 전체 부하율을 예측하여, 전체 부하율이 제1임계값 이하로 낮아질 수 있도록, 이관시킬 하나 이상의 유닛을 선별한다.
다음으로, 서브 노드#1-1(121)은 선별한 각 유닛의 식별정보가 기록된 유닛 목록을 서브 노드#1-2(122)로 전송한다(S323). 이때, 서브 노드#1-1(121)는 상기 유닛 목록에 기록되는 각 유닛의 부가 정보를 서브 노드#1-2(122)로 전송한다. 상기 부가 정보에는 계정 정보, 가상화폐 잔액, 사용자 정보, 공개키 등 중에서 하나 이상이 포함될 수 있다. 부연하면, 서브 노드#1-1(121)는 유닛을 이관을 진행하는 경우, 유닛의 식별정보 이외에 부가정보까지도 타 서브 노드로 제공한다.
그러면, 서브 노드#1-2(122)는 상기 유닛 목록에 포함된 하나 이상의 유닛 식별정보를 확인하고, 이 하나 이상의 유닛 식별정보를 자신이 관리하는 유닛 목록에 추가적으로 기록함으로써, 유닛 목록을 갱신한다(S325). 또한, 서브 노드#1-2(122)는 이관되는 각 유닛을 부가정보를 서브 노드#1-1(121)로부터 수신하고, 이관되는 각 유닛의 부가 정보를 저장하고, 이후 이관된 유닛에 대한 트랜잭션이 발생하는 경우, 상기 부가 정보를 갱신할 수 있다.
다음으로, 서브 노드#1-2(122)는 추가적로 수용되는 유닛에 대한 처리가 정상적으로 완료되면, 유닛 이관 완료 메시지를 서브 노드#1-1(121)로 전송한다(S327).
그러면, 서브 노드#1-1(121)은 자체 관리중인 유닛 목록에서 이관한 유닛 식별정보를 제거하여 유닛 목록을 갱신한다(S329). 또한, 서브 노드#1-1(121)은 이관된 각 유닛의 부가 정보를 삭제할 수도 있다.
다음으로, 서브 노드#1-1(121)은 이관된 각 유닛의 식별정보와 이관시킨 노드의 식별정보(즉, 서브 노드#1-2의 식별정보)가 포함된 유닛 이관 정보를 마스터 노드#1(110)로 전송한다(S331).
그러면, 마스터 노드#1(110)은 상기 유닛 이관 정보에 포함된 유닛 식별정보와 서브 노드 식별정보를 확인하고, 유닛 식별정보가 서브 노드#1-1(121)에서 서브 노드#1-2(122)로 재분배되도록 저장중인 분배 목록을 갱신한다(S333). 즉, 마스터 노드#1(110)는 서브 노드#1-1(121)에서 서브 노드#1-2(122)로 이관된 유닛 식별정보가 서브 노드#1-2(122)와 대응되는 기록되도록, 상기 분배 목록을 갱신한다.
그리고 마스터 노드#1(110)은 상기 유닛 이관 정보가 트랜잭션에 기록하고, 이 트랜잭션이 포함하는 신규 마스터 블록을 생성하고, 이 신규 마스터 블록을 기존의 마스터 블록과 연결하여 마스터 블록체인#1(111)에 저장한다(S335).
상술한 바와 같이, 동일 그룹 내에 속하는 서브 노드 간에는 부하율에 근거하여 유닛 이관이 진행될 수 있다. 유닛 이관이 진행되면, 유닛 이관된 정보가 마스터 노드#1(110)의 분배 목록에 반영되고, 이에 따라 상기 유닛과 관련된 트랜잭션이 발생하면 이 트랜잭션은 마스터 노드#1(110)에 의해서 상기 유닛을 이관받은 서브 노드로 전달된다. 또한, 유닛 이관을 수용한 서브 노드는 전달받은 트랜잭션을 처리하여 자신이 관리하는 서브 블록체인에 트랜잭션을 저장한다.
예를 들어, 제1유닛이 서브 노드#1-1(121)에서 담당하고, 제1유닛과 관련된 트랜잭션을 포함하는 서브 블록이 서브 블록체인#1-1(131)에 저장된 상태를 가정하자. 이렇게 제1유닛이 서브 노드#1-1(121)에 할당된 상태에서 상기 제1유닛이 서브 노드#1-2(122)로의 이관이 진행되면, 상기 제1유닛의 식별정보는 상기 서브 노드#1-2(122)의 식별정보와 대응되어 마스터 노드#1(110)의 분배 목록에 다시 저장되고, 이후에 상기 제1유닛과 관련된 트랜잭션이 전파되면 마스터 노드#1(110)은 상기 트랜잭션을 서브 노드#1-1(121)로 전달하지 않고, 서브 노드#1-2(122)로 전달한다. 그러면, 서브 노드#1-2(122)는 상기 트랜잭션이 포함된 신규 서브 블록을 생성하여 자신의 관리하는 서브 블록체인#1-2(132)에 저장한다.
도 4는 본 발명의 일 실시예에 따른, 마스터 장치의 구성을 나타내는 도면이다.
도 4에 따른 마스터 장치(40)는 상술한 마스터 노드(110, 210)의 기능을 모두 포함하여 수행한다.
도 4에 도시된 바와 같이, 마스터 장치(40)는 저장부(41), 라우팅 처리부(42), 상태 확인부(43), 마스터 블록 생성부(44) 및 마스터 블록체인(45)을 포함하고, 이러한 구성요소는 하드웨어 또는 소프트웨어로 구현되거나 하드웨어와 소프트웨어의 결합을 통해서 구현될 수도 있다. 또한, 상기 마스터 장치(40)는 하나 이상의 프로세서와 메모리를 포함하고 있으며, 라우팅 처리부(42), 상태 확인부(43) 및 마스터 블록 생성부(44)는 상기 프로세서에 의해 실행되는 프로그램 형태로 상기 메모리에 탑재(저장)될 수도 있다.
마스터 블록체인(45)은 마스터 블록들이 연결된 구조로서, 상기 마스터 블록에는 클라이언트(300)에서 발생시키는 트랜잭션이 저장되지 않고, 서브 노드의 이관 정보, 서브 노드의 최종 블록 해시값과 서브 블록의 아이디 중에서 하나 이상이 저장된다. 상기 마스터 블록은 헤더와 바디로 구성되며, 마스터 블록의 헤더는 이전 블록 해시값, 머클루트(Markle Root), 난스(Nonce), 타임스탬프를 포함한다. 또한, 마스터 블록의 바디는, 유닛의 이관 정보, 서브 노드의 최종 블록 해시값와 서브 블록의 아이디 중에서 하나 이상이 저장된다. 마스터 블록체인(45)에 저장된 데이터를 통해서, 서브 노드(121~123, 221~223)에서 저장되는 데이터(즉, 트랜잭션)의 무결성이 보장되고, 더불어 유닛 이관 이력에 대한 신뢰성이 확보된다.
저장부(41)는 각각의 서브 노드로 분배시킨 유닛 식별정보가 기록된 분배 목록을 저장한다. 상기 분배 목록에는 서브 노드 식별정보와 대응되어 하나 이상의 유닛 식별정보가 기록된다. 또한, 저장부(41)는 각 서브 노드의 상태 정보를 저장한다. 상기 상태 정보에는 각 서브 노드의 부하율이 포함된다.
라우팅 처리부(42)는 트랜잭션을 서브 노드로 라우팅하는 기능을 수행한다. 구체적으로, 라우팅 처리부(42)는 클라이언트(300)로부터 트랜잭션을 전파받으면, 이 트랜잭션과 관련된 유닛을 식별하고, 저장부(41)에 저장된 분배 목록을 토대로, 사익 유닛을 담당하는 서브 노드를 확인한 후, 이 서브 노드로 상기 트랜잭션을 전달한다. 상기 라우팅 처리부(42)는 클라이언트(300)의 IP 주소, 클라이언트(300)의 접속 계정 또는 클라이언트(300)의 공개키를 이용하여, 트랜잭션과 관련된 유닛을 식별할 수 있다.
상태 확인부(43)는 저장부(41)에 저장된 서브 노드의 상태 정보를 관리하고, 서브 노드로 타 서브 노드의 상태 정보를 제공하는 기능을 수행한다. 상기 상태 확인부(43)는 일정 시간 간격 또는 특정 시점에 서브 노드로부터 부하율이 포함된 상태 정보를 수신하고, 이 수신한 상태 정보를 토대로, 저장부(41)에 저장된 서브 노드의 상태 정보를 갱신한다. 또한, 상태 확인부(43)는 동일 그룹에 속하는 각 서브 노드로, 타 노드의 상태 정보를 제공한다.
또한, 상태 확인부(43)는 서브 노드들 간의 유닛 이관 정보를 서브 노드로부터 수신하면, 상기 유닛 이관 정보에 포함된 유닛 식별정보와 서브 노드 식별정보를 확인하고, 상기 확인한 유닛 식별정보와 서브 노드 식별정보를 토대로 저장부(41)의 분배 목록을 갱신한다.
마스터 블록 생성부(44)는 유닛이 이관되거나, 서브 노드에서 신규 신규 블록이 생성되면 이와 관련된 신규 마스터 블록을 생성하여 마스터 블록체인(45)에 저장한다. 구체적으로, 마스터 블록 생성부(44)는 서브 노드에서 트랜잭션이 성공적으로 처리되어 신규 서브 블록이 서브 블록체인에 저장되면, 상기 신규 서브 블록의 해시값(즉, 최종 블록 해시값)과 아이디를 상기 서브 노드로부터 수신한다. 이 경우, 마스터 블록 생성부(44)는 상기 신규 서브 블록의 해시값(즉, 최종 블록 해시값), 아이디 및 상기 서브 노드의 식별정보가 포함된 신규 마스터 블록을 생성하고, 이 마스터 블록을 기존의 마스터 블록과 연결하여 마스터 블록체인(45)에 저장한다.
또한, 마스터 블록 생성부(44)는 서브 노드들 간에 유닛 이관 정보를 서브 노드로부터 수신하면, 상기 유닛 이관 정보에 포함된 유닛 식별정보와 서브 노드 식별정보를 확인하고, 상기 유닛 이관 정보가 트랜잭션에 기록되고, 이 트랜잭션을 포함하는 신규 마스터 블록을 생성하고, 이 신규 마스터 블록을 기존의 마스터 블록과 연결함으로써 상기 신규 마스터 블록을 마스터 블록체인(45)에 저장한다.
도 5는 본 발명의 일 실시예에 따른, 서브 장치를 나타내는 도면이다.
도 5에 따른 서브 장치(50)는 상술한 서브 노드(121, 122, 123, 231, 232, 233)의 기능을 모두 포함하여 수행한다.
도 5에 도시된 바와 같이, 서브 장치(50)는 상태 모니터링부(51), 저장부(52), 서브 블록 생성부(53), 이관 처리부(54) 및 서브 블록체인(55)을 포함하고, 이러한 구성요소는 하드웨어 또는 소프트웨어로 구현되거나 하드웨어와 소프트웨어의 결합을 통해서 구현될 수도 있다. 또한, 상기 서브 장치(50)는 하나 이상의 프로세서와 메모리를 포함하고 있으며, 상태 모니터링부(51), 서브 블록 생성부(53) 및 이관 처리부(54)는 상기 프로세서에서 실행되는 프로그램 형태로 상기 메모리에 탑재(저장)될 수도 있다.
서브 블록체인(55)은 서브 블록들이 연결된 구조로서, 상기 서브 블록에는 클라이언트(300)에서 발생시키는 트랜잭션이 저장된다. 상기 서브 블록은 헤더와 바디로 구성되며, 서브 블록의 헤더는 이전 서브 블록의 해시값, 머클루트(Markle Root), 난스(Nonce), 타임스탬프 및 서브 블록 아이디를 포함한다. 또한, 서브 블록의 바디는, 데이터 송신 내역, 가상화폐 거래 내역, 계약 내역 등과 같은 쌍방간에 수행되는 거래내역 데이터가 기록을 나타내는 트랜잭션을 저장한다.
상태 모니터링부(51)는 서브 장치(50)의 부하율을 파악하여, 상기 부하율이 포함한되 상태 정보를 동일 그룹의 마스터 노드로 전송한다. 이때, 상기 상태 모니터링부(51)는 서브 장치(50)의 상태가 변경되면 상기 상태 정보를 마스터 노드로 전송할 수 있으며, 또한 사전에 설정된 주기 간격으로 상기 상태 정보를 마스터 노드로 전송할 수 있다. 상태 모니터링부(51)는 서브 장치(50)의 CPU 점유율, 메모리 사용률, 디스크 사용률, 네트워크의 트래픽 발생량 중에서 하나 이상을 이용하여 서브 장치(50)의 부하율을 계산할 수 있다. 또한, 상태 모니터링부(51)는 서브 장치(50)에서 관리하는 각 유닛별로 가중되는 부하를 확인한다. 즉, 상태 모니터링부(51)는 전체 부하율 이외에 유닛별로 가중되는 부하를 확인하여, 해당 유닛의 부하가 전체 부하율에서 차지하는 비율을 모니터링한다.
저장부(52)는 서브 장치(50)가 담당하는 유닛 목록을 저장하고, 더불어 각 유닛의 부가 정보를 저장한다. 상기 부가 정보에는 계정 정보, 가상화폐 잔액, 사용자 정보, 공개키 등 중에서 하나 이상이 포함될 수 있다.
서브 블록 생성부(53)는 동일 그룹에 속하는 마스터 노드로부터 트랜잭션을 전달받으면, 이 트랜잭션이 바디에 기록하여 신규 서브 블록을 생성하고, 이 신규 서브 블록을 기존의 서브 블록과 연결시켜 서브 블록체인(55)에 저장한다. 상기 서브 블록 생성부(53)는 상기 트랜잭션에 대한 검증(예컨대, 전자 서명 검증)을 수행한 후에 검증에 성공하면 상기 신규 블록을 생성할 수 있다. 상기 서브 블록 생성부(53)는 상기 트랜잭션이 성공적으로 처리되어 서브 블록체인(55)에 저장되면, 생성한 신규 서브 블록의 해시값과 아이디가 포함된 트랜잭션 처리 알림 메시지를 마스터 노드로 전송한다.
이관 처리부(54)는 서브 장치(50)의 부하율을 토대로 타 서브 노드로 유닛을 이관시킬지 여부를 결정한다. 구체적으로, 이관 처리부(54)는 서브 장치(50)의 부하율과 타 서브 노드의 부하율을 토대로, 자신이 관리하는 유닛에 대한 이관이 필요한지 여부를 판단한다. 이때, 이관 처리부(54)는 자신의 부하율이 사전에 설정된 제1임계값(예컨대, 70%)을 초과한 상태에서, 제2임계값(예컨대, 40%) 미만의 부하율을 가지는 타 서브 노드가 존재하면, 유닛 이관을 결정할 수 있다.
이관 처리부(54)는 유닛이 이관이 결정되면, 상태 모니터링부(51)를 통해서 자신이 관리하는 유닛별 부하를 확인하고, 유닛별 부하를 토대로, 전체 부하율을 제1임계값 이하로 낮출 수 있는 하나 이상의 유닛을 선별한다. 또한, 이관 처리부(54)는 선별한 하나 이상의 유닛을 이관을 수용한 타 서브 노드로 제공함으로써, 유닛 이관을 진행한다. 이관 처리부(54)는 상기 타 서브 노드에서 유닛 이관을 정상적으로 수행하면, 이관된 유닛의 식별정보를 저장부(52)의 유닛 목록에 제거함으로써, 상기 유닛 목록을 갱신한다. 또한, 이관 처리부(54)는 이관된 각 유닛의 식별정보와 이관을 수용한 타 서브 노드의 식별정보가 포함된 유닛 이관 정보를 마스터 노드로 전송하여, 유닛 이관에 따른 신규 마스터 블록이 마스터 노드에서 생성되게 하고 더불어 마스터 노드의 배분 목록이 갱신되게 한다.
한편, 이관 처리부(54)는 타 서브 노드로부터 유닛 이관을 요청받고, 이 유닛 이관을 수용할 수도 있다. 구체적으로, 이관 처리부(54)는 타 서브 노드로부터 유닛 이관을 요청받으면, 상태 모니터링부(51)를 통해서 서브 장치(50)의 부하율을 확인하고, 서브 장치(50)의 부하율이 사전에 설정된 값 이하인 경우, 타 서브 노드에서 담당하는 유닛을 수용할 수 있다. 이 경우, 이관 처리부(54)는 타 서브 노드로부터 이관되는 유닛 식별정보를 수신하고, 저장부(41)에 저장된 유닛 목록에 상기 수신한 유닛 식별정보를 추가함으로써, 유닛 목록에 상기 유닛 식별정보를 추가할 수 있다.
본 명세서는 많은 특징을 포함하는 반면, 그러한 특징은 본 발명의 범위 또는 특허청구범위를 제한하는 것으로 해석되어서는 안 된다. 또한, 본 명세서에서 개별적인 실시예에서 설명된 특징들은 단일 실시예에서 결합되어 구현될 수 있다. 반대로, 본 명세서에서 단일 실시예에서 설명된 다양한 특징들은 개별적으로 다양한 실시예에서 구현되거나, 적절히 결합되어 구현될 수 있다.
도면에서 동작들이 특정한 순서로 설명되었으나, 그러한 동작들이 도시된 바와 같은 특정한 순서로 수행되는 것으로, 또는 일련의 연속된 순서, 또는 원하는 결과를 얻기 위해 모든 설명된 동작이 수행되는 것으로 이해되어서는 안 된다. 특정 환경에서 멀티태스킹 및 병렬 프로세싱이 유리할 수 있다. 아울러, 상술한 실시예에서 다양한 시스템 구성요소의 구분은 모든 실시예에서 그러한 구분을 요구하지 않는 것으로 이해되어야 한다. 상술한 프로그램 구성요소 및 시스템은 일반적으로 단일 소프트웨어 제품 또는 멀티플 소프트웨어 제품에 패키지로 구현될 수 있다.
상술한 바와 같은 본 발명의 방법은 프로그램으로 구현되어 컴퓨터로 읽을 수 있는 형태로 기록매체(시디롬, 램, 롬, 플로피 디스크, 하드 디스크, 광자기 디스크 등)에 저장될 수 있다. 이러한 과정은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있으므로 더 이상 상세히 설명하지 않기로 한다.
이상에서 설명한 본 발명은, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 있어 본 발명의 기술적 사상을 벗어나지 않는 범위 내에서 여러 가지 치환, 변형 및 변경이 가능하므로 전술한 실시예 및 첨부된 도면에 의해 한정되는 것이 아니다.
110, 210 : 마스터노드 111, 211 : 마스터 블록체인
121, 122, 123, 221, 222, 223: 서브 노드
131, 132, 133, 231, 232, 233 : 서브 블록체인
300 : 클라이언트 400 : 네트워크
40 : 마스터 장치 41 : 저장부
42 : 라우팅 처리부 43 : 상태 확인부
44 : 마스터 블록 생성부 45 : 마스터 블록체인
50 : 서브 장치 51 : 상태 모니터링부
52 : 저장부 53 : 서브 블록 생성부
54 : 이관 처리부 55 : 서브 블록체인

Claims (14)

  1. 마스터 노드와 복수의 서브 노드로 구성되는 그룹에서, 블록체인을 관리하는 방법으로서,
    상기 마스터 노드가, 클라이언트 단말에서 생성한 트랜잭션을 수신하는 단계;
    상기 마스터 노드가, 상기 트랜잭션과 관련되는 유닛을 식별하고, 이 유닛을 담당하는 서브 노드로 상기 트랜잭션을 전달하는 단계; 및
    상기 마스터 노드로부터 상기 트랜잭션을 전달받은 서브 노드가, 상기 트랜잭션이 포함된 신규 서브 블록을 생성하여 자신이 관리하는 서브 블록체인에 저장하는 단계;를 포함하는 블록체인 관리 방법.
  2. 제1항에 있어서,
    상기 저장하는 단계 이후에,
    상기 마스터 노드가, 상기 신규 서브 블록의 해시값과 아이디 그리고 상기 서브 노드의 식별정보가 포함된 신규 마스터 블록을 생성하여 마스터 블록체인에 저장하는 단계;를 더 포함하는 블록체인 관리 방법.
  3. 제1항에 있어서,
    상기 트랜잭션을 전달하는 단계는,
    상기 마스터 노드가, 상기 클라이언트의 IP 주소, 상기 클라이언트의 접속 계정, 상기 클라이언트의 공개키 중에 어느 하나를 이용하여 상기 트랜잭션과 관련되는 유닛을 식별하고, 이 유닛을 담당하는 서브 노드를 확인하는 것을 특징으로 하는 블록체인 관리 방법.
  4. 제1항에 있어서,
    상기 서브 노드가, 자신의 부하율을 지속적으로 모니터링하고, 상기 부하율을 토대로 유닛 이관을 여부를 판단하는 단계;
    상기 서브 노드가 상기 판단 결과 유닛 이관이 결정되면, 타 서브 노드로 이관시킬 하나 이상의 유닛을 선별하는 단계;
    상기 서브 노드가 타 서브 노드로 상기 선별한 하나 이상의 유닛을 이관시키는 단계; 및
    상기 마스터 노드가 상기 선별된 유닛의 이관 정보를 토대로, 각각의 유닛을 담당하는 서브 노드의 식별정보가 기록되는 분배 목록을 갱신하는 단계;를 더 포함하는 블록체인 관리 방법.
  5. 제4항에 있어서,
    상기 마스터 노드가, 상기 선별된 유닛의 이관 정보가 기록되는 마스터 블록을 생성하여 마스터 블록체인에 저장하는 단계;를 더 포함하는 블록체인 관리 방법.
  6. 제4항에 있어서,
    상기 서브 노드가, 타 서브 노드의 부하율을 획득하여, 자신의 부하율이 제1임계값을 초과하고 상기 타 서브 노드의 부하율이 제2임계값 이하이면, 유닛 이관을 결정하는 것을 특징으로 하는 블록체인 관리 방법.
  7. 복수의 서브 노드들과 하나의 그룹을 형성하고, 클라이언트로부터 전파받은 트랜잭션을 지정된 서브 노드로 전달하는 마스터 장치에 있어서,
    서브 노드 식별정보와 유닛 식별정보가 대응되어 기록되며 각 유닛을 담당하는 서브 노드가 기록되는 분배 목록을 저장하는 저장부; 및
    클라이언트로부터 트랜잭션을 전파받으면, 이 트랜잭션과 관련된 유닛을 식별하고, 상기 분배 목록을 참조하여 상기 유닛을 담당하는 서브 노드를 확인하고, 이 서브 노드로 상기 트랜잭션을 전달하여, 이 트랜잭션이 상기 서브 노드에서 관리하는 서브 블록체인에 저장되게 처리하는 라우팅 처리부;를 포함하는 마스터 장치.
  8. 제7항에 있어서,
    상기 트랜잭션은 신규 서브 블록에 포함되어, 상기 서브 블록체인에 저장되고,
    상기 마스터 장치는,
    상기 신규 서브 블록의 해시값과 아이디 그리고 상기 서브 노드의 식별정보가 포함된 신규 마스터 블록을 생성하여 마스터 블록체인에 저장하는 마스터 블록 생성부;를 더 포함하는 마스터 장치.
  9. 제7항에 있어서,
    상기 라우팅 처리부는,
    상기 마스터 노드가, 상기 클라이언트의 IP 주소, 상기 클라이언트의 접속 계정, 상기 클라이언트의 공개키 중에 어느 하나를 이용하여 상기 트랜잭션과 관련되는 유닛을 식별하고, 이 유닛을 담당하는 서브 노드를 확인하는 것을 특징으로 하는 마스터 장치.
  10. 제7항에 있어서,
    제1서브 노드에서 제2서브 노드로 하나 이상의 유닛이 이관되면, 상기 하나 이상의 유닛의 이관 정보를 토대로 상기 저장부의 분배 목록을 갱신하는 상태 확인부;를 더 포함하는 마스터 장치.
  11. 제10항에 있어서,
    상기 마스터 블록 생성부는,
    상기 하나 이상의 유닛이 이관된 정보가 기록되는 마스터 블록을 생성하여 마스터 블록체인에 저장하는 것을 특징으로 하는 마스터 장치.
  12. 서브 블록체인을 담당하고 관리하며, 타 서브 노드 및 마스터 노드와 하나의 그룹을 형성하여 트랜잭션을 처리하는 서브 장치에 있어서,
    상기 서브 장치의 부하율을 모니터링하는 상태 모니터링부;
    상기 서브 장치에서 담당하는 유닛과 관련된 트랜잭션을 수신하면, 상기 트랜잭션을 포함하는 신규 서브 블록을 생성하여 상기 서브 블록체인에 저장하는 서브 블록 생성부; 및
    상기 모니터링되는 상기 서브 장치의 부하율을 토대로 유닛 이관 여부를 판단하고, 상기 유닛 이관이 결정되면 타 서브 노드로 이관시킬 하나 이상의 유닛을 선별한 후, 상기 선별한 하나 이상의 유닛을 상기 타 서브 노드로 이관시키는 이관 처리부;를 포함하는 서브 장치.
  13. 제12항에 있어서,
    상기 이관 처리부는, 상기 타 서브 노드의 부하율을 획득하여, 상기 서브 장치의 부하율이 제1임계값을 초과하고 상기 타 서브 노드의 부하율이 제2임계값 이하이면, 유닛 이관이 결정하는 것을 특징으로 하는 서브 장치.
  14. 제12항에 있어서,
    상기 이관 처리부는,
    상기 선별한 하나 이상의 유닛 및 상기 타 서브 노드의 식별정보가 포함된 유닛 이관 정보를 상기 마스터 노드로 전송하여, 상기 마스터 노드의 분배 목록을 갱신하는 것을 특징으로 하는 서브 장치.
KR1020180080718A 2018-07-11 2018-07-11 블록체인 관리 방법 및 이를 위한 장치 KR20200006845A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020180080718A KR20200006845A (ko) 2018-07-11 2018-07-11 블록체인 관리 방법 및 이를 위한 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020180080718A KR20200006845A (ko) 2018-07-11 2018-07-11 블록체인 관리 방법 및 이를 위한 장치

Publications (1)

Publication Number Publication Date
KR20200006845A true KR20200006845A (ko) 2020-01-21

Family

ID=69369589

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180080718A KR20200006845A (ko) 2018-07-11 2018-07-11 블록체인 관리 방법 및 이를 위한 장치

Country Status (1)

Country Link
KR (1) KR20200006845A (ko)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113821564A (zh) * 2021-09-09 2021-12-21 湖南大学 异构并行区块链及其链上数据与链下合约协同方法
CN115774760A (zh) * 2022-12-12 2023-03-10 益智(广州)信息技术有限公司 一种基于人工智能和区块链的数据处理及数据分析系统
KR20230123348A (ko) * 2022-02-16 2023-08-23 한국조폐공사 분산원장 기반의 CBDC(Central Bank Digital Currency)를 관리하는 방법 및 이를 이용한 블록체인 노드

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101868029B1 (ko) 2017-03-10 2018-06-18 현대카드 주식회사 블록체인 기반의 파일 공유 방법 및 시스템

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101868029B1 (ko) 2017-03-10 2018-06-18 현대카드 주식회사 블록체인 기반의 파일 공유 방법 및 시스템

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113821564A (zh) * 2021-09-09 2021-12-21 湖南大学 异构并行区块链及其链上数据与链下合约协同方法
CN113821564B (zh) * 2021-09-09 2023-08-18 湖南大学 异构并行区块链及其链上数据与链下合约协同方法
KR20230123348A (ko) * 2022-02-16 2023-08-23 한국조폐공사 분산원장 기반의 CBDC(Central Bank Digital Currency)를 관리하는 방법 및 이를 이용한 블록체인 노드
CN115774760A (zh) * 2022-12-12 2023-03-10 益智(广州)信息技术有限公司 一种基于人工智能和区块链的数据处理及数据分析系统
CN115774760B (zh) * 2022-12-12 2023-08-22 北京辰极智程信息技术股份有限公司 一种基于人工智能和区块链的数据处理及数据分析系统

Similar Documents

Publication Publication Date Title
KR101994455B1 (ko) 시스템에 포함되는 노드들에 대하여 그룹을 운영하는 분산 네트워크 시스템
US20220198410A1 (en) Providing data provenance, permissioning, compliance, and access control for data storage systems using an immutable ledger overlay network
KR101986081B1 (ko) 블록체인에서 특정 노드들간 블록을 공유 및 검증하는 방법
CN109472572B (zh) 基于区块链主链加并行多子链的合约系统
CN109246211B (zh) 一种区块链中的资源上传和资源请求方法
CN108712488B (zh) 一种基于区块链的数据处理方法、装置、区块链系统
CN104969213B (zh) 用于低延迟数据存取的数据流分割
JP2021526751A (ja) 自己監視ブロックチェーンのための安全な合意に基づくエンドースメント
CN111291060B (zh) 一种管理区块链节点的方法、装置及计算机可读介质
CN102307210A (zh) 一种数据下载系统及其数据管理和下载方法
CN109493052B (zh) 一种基于主链加并行多子链的跨链合约系统
CN110289999B (zh) 一种数据处理方法、系统及装置
CN112101942A (zh) 基于区块链的交易请求处理方法、系统、装置及设备
KR20200006845A (ko) 블록체인 관리 방법 및 이를 위한 장치
CN112702402A (zh) 基于区块链技术实现政务信息资源共享和交换的系统、方法、装置、处理器及其存储介质
CN109005208B (zh) 用于推送信息的方法和装置
CN114363352A (zh) 基于区块链的物联网系统跨链交互方法
CN102638561A (zh) 使用http资源的高速缓存间通信
CN110519240A (zh) 一种单点登录方法、装置及系统
CN113765675B (zh) 一种交易数据处理方法、装置、设备以及介质
CN108616574A (zh) 管理数据的存储方法、设备及存储介质
CN110597922A (zh) 数据处理方法、装置、终端及存储介质
CN109413202B (zh) 区块链交易信息的排序系统及方法
US20190372825A1 (en) Communication apparatus, communication method, and recording medium
WO2020213763A1 (ko) 블록체인과는 다른 형식의 저장소에 저장되는 블록체인 데이터를 검증하는 방법 및 시스템