KR20210014278A - 블록체인 환경에서의 데이터 공유 방법 및 시스템 - Google Patents

블록체인 환경에서의 데이터 공유 방법 및 시스템 Download PDF

Info

Publication number
KR20210014278A
KR20210014278A KR1020190092128A KR20190092128A KR20210014278A KR 20210014278 A KR20210014278 A KR 20210014278A KR 1020190092128 A KR1020190092128 A KR 1020190092128A KR 20190092128 A KR20190092128 A KR 20190092128A KR 20210014278 A KR20210014278 A KR 20210014278A
Authority
KR
South Korea
Prior art keywords
data
channel
node
master
blockchain
Prior art date
Application number
KR1020190092128A
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 KR1020190092128A priority Critical patent/KR20210014278A/ko
Publication of KR20210014278A publication Critical patent/KR20210014278A/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 
    • H04L67/1046Joining mechanisms
    • 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/17Details of further file system functions
    • G06F16/176Support for shared access to files; File sharing support
    • H04L67/2804
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/561Adding application-functional data or data for application control, e.g. adding metadata

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Library & Information Science (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

본 발명은 블록체인 환경에서 안정하게 데이터를 공유하는 데이터 공유 방법 및 시스템에 관한 것이다. 본 발명의 실시예에 따른, 복수의 노드들이 공유하는 마스터 블록체인과 P2P 기반으로 공유되는 복수의 원시 블록체인을 포함하는 블록체인 환경에서 데이터를 공유하는 방법은, 데이터 송신 노드로부터 데이터에 대한 공유가 요청되면, 상기 데이터를 수신하는 하나 이상의 데이터 수신 노드와 상기 데이터 송신 노드 간에 P2P 기반으로 형성된 하나 이상의 원시 채널을 확인하는 단계; 상기 확인한 하나 이상의 원시 채널이 그룹화된 가상 채널을 생성하고, 생성한 가상 채널 및 상기 데이터의 식별정보를 포함하는 메타 데이터를 생성하는 단계; 상기 메타 데이터를 포함하는 신규 마스터 블록을 상기 마스터 블록체인에 저장하는 단계; 및 상기 데이터를 포함하는 신규 원시 블록을 상기 확인한 하나 이상의 원시 채널과 대응되는 원시 블록체인에 저장하는 단계를 포함한다.

Description

블록체인 환경에서의 데이터 공유 방법 및 시스템{Method and system for sharing data in block chain environment}
본 발명은 블록체인 기술에 관한 것으로서, 더욱 상세하게는 블록체인 환경에서 안정하게 데이터를 공유하는 데이터 공유 방법 및 시스템에 관한 것이다.
블록체인 기술은 트랜잭션이 포함된 블록이 블록체인에 저장되고, 다수의 노드들이 상기 블록체인을 서로 공유하는 형태로서, 기존의 중앙 집중식 데이터 저장 방식과 비교하여, 데이터의 위변조에 대한 보안을 향상시키는 장점이 있다. 이러한 블록체인은 그 형태가 더욱더 다양해져, 전력 데이터, 사용자 정보 등을 블록체인에 저장하는 연구가 진행되고 있다. 아래의 특허문헌은 블록체인을 이용한 선불형 전력 판매 및 전력 사용 방법에 대해서 개시한다.
그런데 블록체인에 사용자 정보를 저장하게 되면, 사용자 정보가 타인에게 노출될 수 있는 문제점이 있다. 즉, 블록체인은 불특정 다수가 접근할 수 있는 일종의 오픈된 데이터베이스로서, 불특정 다수가 블록체인에 접근하여 사용자 정보를 획득할 수 있는 문제점을 내재하고 있다. 특히, 블록체인에 참여하는 노드들 중에서 어느 하나의 노드에서 데이터가 유출되면, 블록체인 전체의 데이터가 유출될 수도 있다.
따라서, 블록체인에 개인정보 등과 같은 데이터를 공유할 때에, 안전하게 데이터를 공유할 수 있는 기술이 요구되고 있다.
한국등록특허 제10-1848896호(2018.04.09)
본 발명은 이러한 종래의 문제점을 해결하기 위하여 제안된 것으로, 블록체인 환경에서 데이터를 안정하게 타 사용자와 공유하는 데이터 공유 방법 및 시스템을 제공하는데 그 목적이 있다.
본 발명의 다른 목적 및 장점들은 하기의 설명에 의해서 이해될 수 있으며, 본 발명의 실시예에 의해 보다 분명하게 알게 될 것이다. 또한, 본 발명의 목적 및 장점들은 특허 청구 범위에 나타낸 수단 및 그 조합에 의해 실현될 수 있음을 쉽게 알 수 있을 것이다.
상기 목적을 달성하기 위한 본 발명의 제1측면에 따른 복수의 노드들이 공유하는 마스터 블록체인과 P2P 기반으로 공유되는 복수의 원시 블록체인을 포함하는 블록체인 환경에서 데이터를 공유하는 방법은, 데이터 송신 노드로부터 데이터에 대한 공유가 요청되면, 상기 데이터를 수신하는 하나 이상의 데이터 수신 노드와 상기 데이터 송신 노드 간에 P2P 기반으로 형성된 하나 이상의 원시 채널을 확인하는 단계; 상기 확인한 하나 이상의 원시 채널이 그룹화된 가상 채널을 생성하고, 생성한 가상 채널 및 상기 데이터의 식별정보를 포함하는 메타 데이터를 생성하는 단계; 상기 메타 데이터를 포함하는 신규 마스터 블록을 상기 마스터 블록체인에 저장하는 단계; 및 상기 데이터를 포함하는 신규 원시 블록을 상기 확인한 하나 이상의 원시 채널과 대응되는 원시 블록체인에 저장하는 단계를 포함한다.
상기 원시 채널은 각 노드들 간에 1:1로 형성되는 채널이고, 각 원시 채널과 대응되는 개수로 원시 블록체인이 생성될 수 있다. 또한, 노드들이 모두 참여하는 채널은 마스터 채널일 수 있다. 게다가, 상기 마스터 블록체인은 노드들이 모두 공유하고, 상기 원시 블록체인은 두 노드가 공유할 수 있다.
상기 방법은, 새로운 노드로부터 참여 요청을 수신하는 단계; 상기 새로운 노드를 마스터 채널에 등록하고, 상기 새로운 노드와 상기 마스터 블록체인을 공유하는 단계; 및 상기 새로운 노드와 각 노드들 간에 P2P 기반의 새로운 원시 채널을 형성하고, 이 새롭게 생성한 원시 채널 개수만큼의 원시 블록체인을 신규로 생성하는 단계를 더 포함할 수 있다.
상술한 방법 또는 후술하는 방법은, 컴퓨터 시스템을 통해 실행하는 컴퓨터 프로그램으로서 컴퓨터로 판독 가능한 기록매체에 저장될 수 있다.
상기 목적을 달성하기 위한 본 발명의 제2측면에 따른, 복수의 노드들이 공유하는 마스터 블록체인과 P2P 기반으로 공유되는 복수의 원시 블록체인을 포함하는 블록체인 환경에서 데이터를 공유하는 시스템은, 데이터 송신 노드로부터 데이터에 대한 공유가 요청되면 상기 데이터를 수신하는 하나 이상의 데이터 수신 노드와 상기 데이터 송신 노드 간에 P2P 기반으로 형성된 하나 이상의 원시 채널을 확인하고, 상기 확인한 하나 이상의 원시 채널이 그룹화된 가상 채널을 생성한 후, 생성한 가상 채널 및 상기 데이터의 식별정보를 포함하는 메타 데이터를 생성하는 데이터 공유부; 상기 메타 데이터를 포함하는 신규 마스터 블록을 상기 마스터 블록체인에 저장하는 마스터 채널 관리부; 및 상기 데이터를 포함하는 신규 원시 블록을 상기 확인한 하나 이상의 원시 채널과 대응되는 원시 블록체인에 저장하는 원시 채널 관리부를 포함한다.
상기 마스터 채널 관리부는, 새로운 노드로부터 참여를 요청받으면, 상기 새로운 노드를 마스터 채널에 등록하고, 상기 새로운 노드와 상기 마스터 블록체인을 공유할 수 있다.
또한, 상기 원시 채널 관리부는 상기 새로운 노드와 각 노드들 간에 P2P 기반의 새로운 원시 채널을 형성시키고, 새롭게 생성한 원시 채널 개수만큼의 원시 블록체인을 신규로 생성시킬 수 있다.
본 발명의 실시예에 따른 데이터 공유 시스템은, 블록체인을 마스터(master) 블록체인과 원시(primitive) 블록체인으로 이원화한 후, 마스터 블록체인에는 메타 데이터가 저장하고, 원시 블록체인에는 실제 공유 데이터를 저장함으로써, 블록체인에 대한 보안성과 안전한 데이터 공유를 보장하는 장점이 있다.
본 발명의 실시예에 따른 데이터 공유 시스템은, 모든 노드들이 참여하는 마스터 블록체인에는 실제 공유 데이터가 저장되지 않고, 작은 용량의 메타 데이터가 저장되게 함으로써, 마스터 블록체인의 전체 용량을 최소화할 수 있을 뿐만 아니라, 마스터 블록체인 내에서 데이터 검색 속도를 향상시키는 효과도 있다.
본 명세서에 첨부되는 다음의 도면들은 본 발명의 바람직한 실시예를 예시하는 것이며, 발명을 실시하기 위한 구체적인 내용과 함께 본 발명의 기술사상을 더욱 이해시키는 역할을 하는 것이므로, 본 발명은 그러한 도면에 기재된 사항에만 한정되어 해석되어서는 아니 된다.
도 1은 본 발명의 일 실시예에 따른, 복수의 노드들이 마스터 채널과 원시 채널을 형성하는 것을 예시하는 도면이다.
도 2는 본 발명의 일 실시예에 따른, 새로운 노드가 마스터 채널과 원시 채널에 참여하는 방법을 설명하는 흐름도이다.
도 3은 새로운 노드가 마스터 채널과 원시 채널에 참여한 것을 예시하는 도면이다.
도 4는 본 발명의 일 실시예에 따른, 블록체인 환경에서 노드들 간에 데이터를 공유하는 방법을 설명하는 흐름도이다.
도 5는 본 발명의 일 실시예에 따른, 블록체인 환경에서 데이터를 공유하는 시스템의 구성을 나타내는 도면이다.
상술한 목적, 특징 및 장점은 첨부된 도면과 관련한 다음의 상세한 설명을 통하여 보다 분명해 질 것이며, 그에 따라 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 본 발명의 기술적 사상을 용이하게 실시할 수 있을 것이다. 또한, 본 발명을 설명함에 있어서 본 발명과 관련된 공지 기술에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에 그 상세한 설명을 생략하기로 한다. 이하, 첨부된 도면을 참조하여 본 발명에 따른 바람직한 일 실시예를 상세히 설명하기로 한다.
도 1은 본 발명의 일 실시예에 따른, 복수의 노드들이 마스터 채널과 원시 채널을 형성하는 것을 예시하는 도면이다.
도 1을 참조하면, 본 발명의 실시예에 따른 모든 노드들(10, 20, 30)은 마스터 채널(master channel, 도 1에서는 'M_ch'로 표기됨)에 참여한다. 상기 노드들(10, 20, 30)는 서버, 개인용 컴퓨터 등과 같은 연산 가능한 컴퓨팅 장치다.
상기 마스터 채널은 마스터 블록체인에 참여하는 노드들에 대한 통신 채널로서, 모든 노드들(10, 20, 30)은 마스터 채널에 참여하고, 더불어 마스터 블록체인을 서로 공유한다.
상기 마스터 블록체인은 마스터 채널(M_ch)에 참여하는 모든 노드들이 공유하는 블록체인으로서, 마스터 블록들이 연결되는 구조를 가진다. 상기 마스터 블록은 블록 헤더(header)와 몸체(body)를 포함한다. 여기서, 마스터 블록의 헤더는 블록 크기, 버전, 이전 블록 해시, 머클루트 및 타임스탬프를 포함한다. 상기 블록 크기는 해당 블록의 크기를 나타내고, 상기 버전은 블록 데이터의 구조에 대한 버전을 나타내며, 이전 블록 해시는 블록체인 구조에서 이전 블록(즉, 부모 블록)에 대한 해시 참조값을 나타낸다. 머클 루트는 블록에 포함된 트랜잭션에서 생성된 머클 트리 루트에 대한 해시(hash)이다. 타임 스탬프는 블록의 생성시간이 기록된다.
또한, 마스터 블록의 몸체는 트랜잭션이 기록되는데, 본 발명의 실시예에서는 상기 트랜잭션으로서 데이터 공유에 대한 메타 데이터가 기록될 수 있다. 구체적으로, 메타 데이터는 트랜잭션 식별정보, 데이터 발신자(즉, 데이터를 공유하기로 한 노드), 하나 이상의 데이터 수신자(즉, 데이터를 수신하는 노드), 데이터 식별정보(예컨대, 파일명), 가상 채널 정보 등이 포함된다. 상기 가상 채널은, 하나 이상의 원시 채널이 그룹화된 것을 나타내는 것으로서, 상기 메타 데이터의 가상 채널 정보에는 하나 이상의 원시 채널 식별정보가 기록된다.
또한, 노드들(10, 20, 30)은 1:1로 각각 원시 채널(primitive channel, 도 1에서는 'P_ch'로 표기됨)에 참여한다. 상기 원시 채널은 각 노드들인 P2P(peer to peer) 기반으로 생성하는 통신 채널로서, 노드들(10, 20, 30)은 타 노드와 각각과 원시 채널을 형성한다. 상기 원시 채널에 참여한 두 노드들은 원시 블록체인을 서로 공유한다.
상기 원시 블록체인은 두 노드가 공유하는 블록체인으로서, 원시 블록들이 연결되는 구조를 가진다. 상기 원시 블록은 블록 헤더(header)와 몸체(body)를 포함한다. 여기서, 원시 블록의 헤더는 블록 크기, 버전, 이전 블록 해시, 머클루트 및 타임스탬프를 포함한다. 상기 블록 크기는 해당 블록의 크기를 나타내고, 상기 버전은 블록 데이터의 구조에 대한 버전을 나타내며, 이전 블록 해시는 블록체인 구조에서 이전 블록(즉, 부모 블록)에 대한 해시 참조값을 나타낸다. 머클 루트는 블록에 포함된 트랜잭션에서 생성된 머클 트리 루트에 대한 해시(hash)이다. 타임 스탬프는 블록의 생성시간이 기록된다.
또한, 원시 블록의 몸체는 트랜잭션이 기록되는데, 본 발명의 실시예에서는 상기 트랜잭션으로서 실질적인 공유 데이터가 기록될 수 있다.
도 1에 참조하여 예를 들어 설명하면, 제1노드(10)는 마스터 채널(M_ch)에 참여하여 마스터 블록체인을 타 노드들(20, 30)과 공유한다. 또한, 제1노드(10)와 제2노드(20)는 제1원시 채널(P_ch1)을 형성하고 제1원시 블록체인을 서로 공유하며, 제1노드(10)와 제3노드(30)는 제2원시 채널(P_ch2)을 형성하고 제2원시 블록체인을 서로 공유하고, 제2노드(20)와 제3노드(30)는 제3원시 채널(P_ch3)을 형성하고 제3원시 블록체인을 서로 공유한다. 본 발명에서 블록체인을 공유한다는 것은, 동일한 블록체인을 복수의 노드에서 각각 저장하는 것을 의미할 수 있다
또한, 본원발명의 실시예에 따른, 블록체인은 마스터 블록체인과 복수의 원시 블록체인으로 이원화되고, 마스터 블록체인에는 공유 데이터가 저장되지 않으나 공유 기록과 공유 데이터 저장 위치(즉, 원시 채널 식별정보)가 저장되고, 더불어 원시 블록체인에는 실질적인 데이터가 저장된다.
한편, 마스터 채널(M_ch)에 참여중인 노드들 중에서 하나 이상은 원시 채널 형성 정보를 저장할 수 있다. 상기 원시 채널 형성 정보는, 원시 채널 식별정보 및 해당 원시 채널에 참여중인 두 노드의 식별정보가 기록된다. 즉, 원시 채널 형성 정보는, 원시 채널을 형성하는 두 노드의 식별정보와 해당 원시 채널의 식별정보가 기록된다. 상기 원시 채널 형성 정보는 마스터 채널(M_ch)에 참여중인 모든 노드들이 공유할 수 있으며, 또는 마스터 채널(M_ch)에 참여중인 노드들 중에서 관리 노드로 설정된 노드만이 저장할 수도 있다.
한편, 새로운 노드가 마스터 채널에 참여하기 원하는 경우, 마스터 채널과 원시 채널은 새로운 노드의 참여에 따라 확장될 수 있다.
도 2는 본 발명의 일 실시예에 따른, 새로운 노드가 마스터 채널과 원시 채널에 참여하는 방법을 설명하는 흐름도이다.
도 3은 새로운 노드가 마스터 채널과 원시 채널에 참여한 것을 예시하는 도면이다.
도 2 및 도 3을 참조한 설명에서는, 제4노드(40)가 새롭게 참여한 노드인 것으로 가정된다.
도 2 및 도 3을 참조하면, 제4노드(40)는 자신의 식별정보가 포함된 참여 요청 메시지를 마스터 채널(M_ch)로 전송한다(S201).
그러면, 마스터 채널(M_ch)에 참여된 노드들 중에서 하나 이상의 노드(예컨대, 관리자 노드)는 상기 제4노드(40)의 식별정보를 확인하고, 상기 제4노드(40)의 식별정보를 마스터 채널에 등록한다(S203). 이때, 마스터 채널(M_ch)의 노드는, 제4노드(40)로 전자 서명을 요구하고, 이 전자 서명을 검증한 후 검증에 성공하면 상기 제4노드(40)의 식별정보를 마스터 채널에 등록함으로써, 제4노드(40)의 식별정보를 마스터 채널에 등록할 수 있다.
이렇게 마스터 채널(M_ch)에서 제4노드(40)가 등록되면, 마스터 블록체인은 제4노드(40)에게도 공유되고, 더불어 마스터 채널(M_ch)에 제4노드(40)가 참여하게 된다. 도 1은 제4노드(40)가 마스터 채널(M_ch)에 참여하기 전의 상태이고, 도 3은 제4노드(40)가 마스터 채널(M_ch)에 참여된 상태이다.
제4노드(40)가 마스터 채널(M_ch)에 등록되면, 마스터 채널(M_ch)의 노드는 마스터 채널에 등록된 참여 노드 목록을 추출하고, 이 참여 노드 목록을 제4노드(40)로 전송한다(S205).
그러면, 제4노드(40)는 상기 참여 노드 목록을 토대로, 상기 마스터 채널에 참여중인 타 노드(10, 20, 30)을 식별한다. 이어서, 제4노드(40)는 상기 타 노드들(10, 20, 30)가 원시 채널을 형성하기 위한 절차를 진행한다. 구체적으로, 제4노드(40)는 제1노드(10)로 원시 채널 형성을 요청하는 메시지를 전송하여, 제1노드(10)와 제6원시 채널(P_ch6)을 형성하고, 제6원시 블록체인을 생성하여 제1노드(10)와 제6원시 블록체인을 공유한다(S207, S209). 다음으로, 제4노드(40)는 제2노드(20)로 원시 채널 형성을 요청하는 메시지를 전송하여, 제2노드(20)와 제4원시 채널을 형성하고, 제4원시 블록체인을 생성하여 제2노드(20)와 제4원시 블록체인을 공유한다(S211, S213). 또한, 제4노드(40)는 제3노드(30)로 원시 채널 형성을 요청하는 메시지를 전송하여, 제3노드(30)와 제5원시 채널을 형성하고, 제5원시 블록체인을 생성하여 제3노드(30)와 제5원시 블록체인을 공유한다(S215, S217).
제4노드(40)가 타 노드들 각각과 P2P 기반의 원시 채널을 형성하면, 마스터 채널(M_ch)은 새롭게 형성된 원시 채널 식별정보(즉, P_ch4, P_ch5, P_ch6) 및 새롭게 형성한 원시 채널에 참여중인 두 노드의 식별정보가 포함된 원시 채널 형성 알림 메시지를 제4노드 또는 타 노드로부터 수신한다(S219).
그러면, 마스터 채널(M_ch)에 참여중인 노드는 상기 새롭게 형성된 원시 채널 식별정보와 상기 새롭게 형성된 원시 채널에 참여중인 두 노드의 식별정보를, 원시 채널 형성 정보에 추가로 기록함으로써, 상기 원시 채널 형성 정보를 업데이트한다(S221).
이렇게, 마스터 채널과 원시 채널이 형성된 상태에서, 마스터 채널과 원시 채널을 이용하여 노드들 간에 데이터가 공유된다.
도 4는 본 발명의 일 실시예에 따른, 블록체인 환경에서 노드들 간에 데이터를 공유하는 방법을 설명하는 흐름도이다.
도 4를 참조하면, 제4노드(40)는 공유하고자 하는 데이터(예컨대, 파일 ㄸ또는 개인정보)를 선택받거나 사용자로부터 입력받는다(S401).
다음으로, 제4노드(40)는 상기 데이터를 공유하고자 하는 타 노드를 사용자로부터 선택받는다(S403). 도 4에서는 상기 데이터의 공유 대상자가, 제2노드(20) 및 제3노드(30)인 것으로 설명된다.
다음으로, 제4노드(40)는 상기 데이터와 공유 대상 노드(즉, 제2노드와 제3노드)의 식별정보 및 자신의 식별정보(즉, 제4노드의 식별정보)가 포함된 데이터 공유 요청 메시지를 마스터 채널(M_ch)로 전송한다(S405).
그러면, 마스터 채널(M_ch)에 참여중인 하나 이상의 노드는 상기 데이터 공유 요청 메시지에 상기 데이터를 공유하는 공유 대상 노드를 확인한다(S407), 이어서, 마스터 채널(M_ch)의 노드는, 데이터를 공유하는 제4노드(40)의 식별정보와 상기 공유 대상 노드 각각과 형성되는 하나 이상의 원시 채널을 원시 채널 형성 정보에서 확인한 후, 상기 하나 이상의 원시 채널이 그룹화된 가상 채널을 생성한다(S409). 상기 가상 채널을 일회성으로서, 데이터가 공유될 때마다 생성될 수 있으며, 하나 이상의 원시 채널 식별정보가 기록된다.
제4노드(40)가 제2노드(20)와 제3노드(30)로 데이터를 공유하고자 하는 경우를 가정하여 도 3을 예를 들어 설명하면, 마스터 채널(M_ch)의 노드는, 제4노드(40)와 제2노드(20) 간에 형성된 제4원시 채널(P_ch4) 및 제4노드(40)와 제3노드(30) 간에 형성된 제5원시 채널(P_ch5)이 포함시켜 가상 채널을 형성한다.
다음으로, 마스터 채널(M_ch)의 노드는 상기 데이터가 공유되는 메타 데이터를 생성하고, 이 메타 데이터가 트랜잭션으로서 포함된 신규 마스터 블록을 생성하고, 이 신규 마스터 블록을 상기 마스터 블록체인에 저장한다(S411). 구체적으로, 마스터 채널(M_ch)의 노드는, 데이터 공유를 위한 트랜잭션 식별정보를 생성하고, 상기 트랜잭션 식별정보, 데이터 발신자(즉, 제4노드의 식별정보), 하나 데이터 수신자(즉, 제2노드의 식별정보와 제3노드의 식별정보), 데이터 식별정보(예컨대, 파일명) 및 상기 가상 채널 정보를 포함하는 메타 데이터를 생성하고, 이 메타 데이터가 트랜잭션에 포함되는 신규 마스터 블록을 생성한 후, 이 신규 마스터 블록을 상기 마스터 블록체인에 저장한다.
다음으로, 마스터 채널(M_ch)의 노드는 상기 데이터의 공유 대상자인 제2노드(20)와 제3노드(30) 각각으로, 데이터 공유 알림 메시지를 전송한다(S413, S415). 이때, 마스터 채널(M_ch)의 노드는 제4노드(40)의 식별정보를 상기 데이터 공유 알림 메시지에 포함시킨다.
그러면, 제2노드(20)는 상기 수신한 데이터 공유 알림 메시지에서, 데이터 제공자인 제4노드(40)의 식별정보를 확인하고, 이 식별정보에 근거하여 제4노드(40)로 데이터를 요청한다(S417). 그러면, 제4노드(40)는 S401 단계에 선택한 공유 데이터를 제2노드(20)로 전송한다(S419). 이때, 제4노드(40)는 제2노드(20)로 전자 서명을 요청하고, 제2노드(20)의 전자 서명의 검증에 성공한 경우에, 상기 공유 데이터를 제2노드(20)로 전송할 수 있다. 제2노드(20)는 상기 데이터를 정상적으로 수신하면, 트랜잭션으로서 상기 데이터를 포함하는 신규 원시 블록을 생성한 후, 이 신규 원시 블록을 제4노드(40)와 공유하는 제4원시 블록체인에 저장한다(S421).
또한, 제3노드(30)는 수신한 데이터 공유 알림 메시지에서, 데이터 제공자인 제4노드(40)의 식별정보를 확인하고, 이 식별정보에 근거하여 제4노드(40)로 데이터를 요청한다(S423). 그러면, 제4노드(40)는 S401 단계에 선택한 공유 데이터를 제3노드(30)로 전송한다(S425). 이때, 제4노드(40)는 제3노드(30)로 전자 서명을 요청하고, 제3노드(30)의 전자 서명의 검증에 성공한 경우에, 상기 공유 데이터를 제3노드(30)로 전송할 수 있다. 제3노드(30)는 상기 데이터를 정상적으로 수신하면, 트랜잭션으로서 상기 데이터를 포함하는 신규 원시 블록을 생성한 후, 이 신규 원시 블록을 제4노드(40)와 공유하는 제5원시 블록체인에 저장한다(S427).
한편, 원시 블록체인에 저장되는 공유 데이터는 공개키 기반으로 암호화 처리되어 저장될 수도 있다.
도 4의 절차에 따라, 데이터가 저장되는 원시 채널과 데이터 공유에 대한 부가 정보(즉, 수신자, 발신자 등)를 나타내는 메타 데이터가 마스터 블록체인에 저장되고, 실질적인 데이터는 데이터를 공유하는 당사자들이 공유하는 원시 블록체인에 저장된다. 이에 따라, 마스터 블록체인에 저장된 마스터 블록의 내용 일부가 탈취되더라도 실질적인 데이터의 유출이 방지된다.
도 5는 본 발명의 일 실시예에 따른, 블록체인 환경에서 데이터를 공유하는 시스템의 구성을 나타내는 도면이다.
도 5에 도시된 바와 같이, 본 발명의 일 실시예에 따른 데이터 공유 시스템은 마스터 채널 관리부(110), 마스터 블록체인(120), 원시 채널 관리부(130) 및 하나 이상의 원시 블록체인(140-N), 데이터 공유부(150) 및 저장부(160)를 포함하고, 이러한 구성요소들은 하드웨어 또는 소프트웨어로 구현되거나 하드웨어와 소프트웨어의 조합을 통해서 구현될 수 있다. 또한, 상기 데이터 공유 시스템은 하나 이상의 프로세서와 메모리를 포함할 수 있고, 상기 마스터 채널 관리부(110), 마스터 블록체인(120), 원시 채널 관리부(130), 원시 블록체인(140-N) 및 데이터 공유부(150)의 기능은 상기 프로세서에 의해서 실행되는 컴퓨터 프로그램 형태로 상기 메모리에 포함될 수 있다.
상기 데이터 공유 시스템은 상술한 하나의 노드에서 구현될 수 있으며, 복수의 노드의 조합을 통해서 구현될 수도 있다. 또한, 데이터 공유 시스템은 물리적으로 독립된 서버 형태 또는 컴퓨팅 장치로 구현될 수도 있으며, 또는 클라우드 컴퓨팅 시스템에서의 가상 머신을 통해서도 구현될 수 있다.
저장부(160)는 메모리와 디스크 장치와 같은 저장수단으로서, 마스터 채널에 참여중인 참여 노드 목록을 저장한다. 또한, 저장부(160)는 원시 채널 식별정보 및 해당 원시 채널에 참여중인 두 노드의 식별정보가 채널별로 기록되는 원시 채널 형성 정보를 저장한다.
마스터 블록체인(120)은 상술한 바와 같이, 메타 데이터가 트랜잭션에 포함된 마스터 블록을 저장한다. 데이터가 새롭게 공유되는 경우, 이에 해당하는 메타 데이터를 포함하는 신규 마스터 블록이 생성되어 마스터 블록체인(120)에 저장된다. 상기 메타 데이터는 트랜잭션 식별정보, 데이터 발신자(즉, 데이터를 공유하기로 한 노드), 하나 이상의 데이터 수신자(즉, 데이터를 공유받기로 한 노드), 데이터 식별정보(예컨대, 파일명), 가상 채널 정보 등이 포함된다.
마스터 채널 관리부(110)는 마스터 채널을 관리하고 특히 마스터 블록체인(120)에 저장되는 마스터 블록을 관리하는 기능을 수행한다. 상기 마스터 채널 관리부(110)는 통신 노드(10, 20, 30, 40)로부터 참여 요청 메시지를 수신하면, 이 마스터 채널에 통신 노드(10, 20, 30, 40)를 등록함으로써, 상기 통신 노드(10, 20, 30, 40)를 마스터 채널에 신규로 참여시킬 수 있다. 이때, 마스터 채널 관리부(110)는 통신 노드(10, 20, 30, 40)의 식별정보를 저장부(160)의 참여 노드 목록에 기록한다. 또한, 마스터 채널 관리부(110)는 신규로 참여한 통신 노드(10, 20, 30, 40)에게 마스터 블록체인(120)의 공유를 허락할 수 있다. 이때, 마스터 채널 관리부(0는 상기 마스터 블록체인(120)을 상기 통신 노드(10, 20, 30, 40)로 전송하여, 상기 통신 노드(10, 20, 30, 40)에서 상기 마스터 블록체인이 저장되게 함으로써, 마스터 블록체인을 상기 통신 노드(10, 20, 30, 40)와 공유할 수 있다. 또한, 마스터 채널 관리부(110)는 특정 노드에서 타 노드로의 데이터가 공유되어 메타 데이터가 생성되는 경우, 이 메타 데이터를 포함하는 신규 마스터 블록을 생성하여 마스터 블록에 저장할 수 있다.
원시 블록체인(140-N)은 상술한 바와 같이, P2P 기반의 블록체인으로서, 원시 채널별로 생성된다. 상기 원시 블록체인(140-N)은 상대방 노드로부터 수신한 데이터를 포함하는 원시 블록이 저장된다. 예를 들어, N 노드(10, 20, 30, 40)와 관련된 원시 블록체인에는 N 노드(10, 20, 30, 40)로부터 수신한 데이터가 저장되거나 N 노드(10, 20, 30, 40)로 제공된 데이터가 저장된다.
원시 채널 관리부(130)는 원시 채널을 관리하고 특히 원시 블록체인(140-N)에 저장되는 원시 블록을 관리하는 기능을 수행한다. 상기 원시 채널 관리부(130)는 두 노드 간에 원시 채널이 새롭게 형성되면, 새롭게 형성된 원시 채널의 식별정보 및 두 노드의 식별정보를 원시 채널 형성 정보에 추가로 기록하여, 원시 채널 형성 정보를 갱신한다. 또한, 원시 채널 관리부(130)는 새롭게 생성된 원시 채널의 원시 블록체인을 신규로 생성하고, 이 원시 블록체인을 신규로 생성된 원시 채널에 참여하는 두 노드에게만 공유되게 한다. 또한, 원시 채널 관리부(130)는 특정 원시 채널을 형성하는 두 노드 간에 데이터가 공유되면, 상기 데이터를 포함하는 원시 블록을 신규로 생성하고, 상기 특정 원시 채널과 대응하는 원시 블록체인(140-N)에 상기 신규로 생성한 원시 블록을 저장한다.
데이터 공유부(150)는 마스터 채널에 참여중인 노드들 간에 데이터를 공유시키는 기능을 수행한다. 구체적으로, 데이터 공유부(150)는 데이터 제공 노드가 하나 이상의 데이터 수신 노드에게 특정 데이터를 공유하는 데이터 공유 요청 메시지를 발생시키면, 데이터 제공 노드와 데이터 수신 노드 각각과 형성된 하나 이상의 원시 채널을 원시 채널 형성 정보에서 확인한 후, 상기 하나 이상의 원시 채널이 그룹화된 가상 채널을 생성한다. 상기 가상 채널을 일회성으로서, 데이터가 공유될 때마다 생성될 수 있으며, 하나 이상의 원시 채널 식별정보가 기록된다. 또한, 데이터 공유부(150)는 데이터 공유를 위한 트랜잭션 식별정보를 생성하고, 상기 트랜잭션 식별정보, 데이터 발신자(즉, 데이터 공유 노드의 식별정보), 하나 데이터 수신자(즉, 데이터 수신 노드의 식별정보), 데이터 식별정보(예컨대, 파일명) 및 상기 가상 채널 정보를 포함하는 메타 데이터를 생성한다. 추가적으로, 데이터 공유부(150)는 데이터 공유 노드의 식별정보가 포함된 데이터 공유 알림 메시지를 데이터 수신 노드로 전송할 수 있다.
상기 메타 데이터가 생성되는 경우, 마스터 채널 관리부(110)는 상기 메타 데이터가 트랜잭션에 포함되는 신규 마스터 블록을 생성한 후, 이 신규 마스터 블록을 상기 마스터 블록체인(120)에 저장한다.
본 명세서는 많은 특징을 포함하는 반면, 그러한 특징은 본 발명의 범위 또는 특허청구범위를 제한하는 것으로 해석되어서는 안 된다. 또한, 본 명세서에서 개별적인 실시예에서 설명된 특징들은 단일 실시예에서 결합되어 구현될 수 있다. 반대로, 본 명세서에서 단일 실시예에서 설명된 다양한 특징들은 개별적으로 다양한 실시예에서 구현되거나, 적절히 결합되어 구현될 수 있다.
도면에서 동작들이 특정한 순서로 설명되었으나, 그러한 동작들이 도시된 바와 같은 특정한 순서로 수행되는 것으로, 또는 일련의 연속된 순서, 또는 원하는 결과를 얻기 위해 모든 설명된 동작이 수행되는 것으로 이해되어서는 안 된다. 특정 환경에서 멀티태스킹 및 병렬 프로세싱이 유리할 수 있다. 아울러, 상술한 실시예에서 다양한 시스템 구성요소의 구분은 모든 실시예에서 그러한 구분을 요구하지 않는 것으로 이해되어야 한다. 상술한 프로그램 구성요소 및 시스템은 일반적으로 단일 소프트웨어 제품 또는 멀티플 소프트웨어 제품에 패키지로 구현될 수 있다.
상술한 바와 같은 본 발명의 방법은 프로그램으로 구현되어 컴퓨터로 읽을 수 있는 형태로 기록매체(시디롬, 램, 롬, 플로피 디스크, 하드 디스크, 광자기 디스크 등)에 저장될 수 있다. 이러한 과정은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있으므로 더 이상 상세히 설명하지 않기로 한다.
이상에서 설명한 본 발명은, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 있어 본 발명의 기술적 사상을 벗어나지 않는 범위 내에서 여러 가지 치환, 변형 및 변경이 가능하므로 전술한 실시예 및 첨부된 도면에 의해 한정되는 것이 아니다.
10, 20, 30, 40 : 노드
110 : 마스터 채널 관리부
120 : 마스터 블록체인
130 : 원시 채널 관리부
140 : 원시 블록체인
150 : 데이터 공유부
160 : 저장부

Claims (8)

  1. 복수의 노드들이 공유하는 마스터 블록체인과 P2P 기반으로 공유되는 복수의 원시 블록체인을 포함하는 블록체인 환경에서 데이터를 공유하는 방법으로서,
    데이터 송신 노드로부터 데이터에 대한 공유가 요청되면, 상기 데이터를 수신하는 하나 이상의 데이터 수신 노드와 상기 데이터 송신 노드 간에 P2P 기반으로 형성되는 하나 이상의 원시 채널을 확인하는 단계;
    상기 확인한 하나 이상의 원시 채널이 그룹화된 가상 채널을 생성하고, 생성한 가상 채널 및 상기 데이터의 식별정보를 포함하는 메타 데이터를 생성하는 단계;
    상기 메타 데이터를 포함하는 신규 마스터 블록을 상기 마스터 블록체인에 저장하는 단계; 및
    상기 데이터를 포함하는 신규 원시 블록을 상기 확인한 하나 이상의 원시 채널과 대응되는 원시 블록체인에 저장하는 단계;를 포함하는 데이터 공유 방법.
  2. 제1항에 있어서,
    상기 메타 데이터를 생성하는 단계는,
    상기 데이터 송신 노드의 식별정보 및 상기 데이터 수신 노드의 식별정보가 더 포함된 상기 메타 데이터에 생성하는 것을 특징으로 하는 데이터 공유 방법.
  3. 제1항에 있어서,
    상기 원시 채널은 각 노드들 간에 1:1로 형성되는 채널이고, 각 원시 채널과 대응되는 개수로 원시 블록체인이 생성되며,
    노드들이 모두 참여하는 채널은 마스터 채널이고,
    상기 마스터 블록체인은 노드들이 모두 공유하고, 상기 원시 블록체인은 두 노드가 공유하는 것을 특징으로 하는 데이터 공유 방법.
  4. 제3항에 있어서,
    새로운 노드로부터 참여 요청을 수신하는 단계;
    상기 새로운 노드를 마스터 채널에 등록하고, 상기 새로운 노드와 상기 마스터 블록체인을 공유하는 단계; 및
    상기 새로운 노드와 각 노드들 간에 P2P 기반의 새로운 원시 채널을 형성하고, 이 새롭게 생성한 원시 채널 개수만큼의 원시 블록체인을 신규로 생성하는 단계;를 더 포함하는 데이터 공유 방법.
  5. 제1항 내지 제5항 중 어느 한 항에 따른 방법을 컴퓨터 시스템을 통해 실행하는 컴퓨터 프로그램으로서 컴퓨터로 판독 가능한 기록매체에 저장된 컴퓨터 프로그램.
  6. 복수의 노드들이 공유하는 마스터 블록체인과 P2P 기반으로 공유되는 복수의 원시 블록체인을 포함하는 블록체인 환경에서 데이터를 공유하는 시스템에 있어서,
    데이터 송신 노드로부터 데이터에 대한 공유가 요청되면 상기 데이터를 수신하는 하나 이상의 데이터 수신 노드와 상기 데이터 송신 노드 간에 P2P 기반으로 형성된 하나 이상의 원시 채널을 확인하고, 상기 확인한 하나 이상의 원시 채널이 그룹화된 가상 채널을 생성한 후, 생성한 가상 채널 및 상기 데이터의 식별정보를 포함하는 메타 데이터를 생성하는 데이터 공유부;
    상기 메타 데이터를 포함하는 신규 마스터 블록을 상기 마스터 블록체인에 저장하는 마스터 채널 관리부; 및
    상기 데이터를 포함하는 신규 원시 블록을 상기 확인한 하나 이상의 원시 채널과 대응되는 원시 블록체인에 저장하는 원시 채널 관리부;를 포함하는 데이터 공유 시스템.
  7. 제6항에 있어서,
    상기 원시 채널은 각 노드들 간에 1:1로 형성되는 채널이고, 각 원시 채널과 대응되는 개수로 원시 블록체인이 생성되며,
    노드들이 모두 참여하는 채널은 마스터 채널이고,
    상기 마스터 블록체인은 노드들이 모두 공유하고, 상기 원시 블록체인은 두 노드가 공유하는 것을 특징으로 하는 데이터 공유 시스템.
  8. 제7항에 있어서,
    상기 마스터 채널 관리부는,
    새로운 노드로부터 참여를 요청받으면, 상기 새로운 노드를 마스터 채널에 등록하고, 상기 새로운 노드와 상기 마스터 블록체인을 공유하고,
    상기 원시 채널 관리부는,
    상기 새로운 노드와 각 노드들 간에 P2P 기반의 새로운 원시 채널을 형성시키고, 새롭게 생성한 원시 채널 개수만큼의 원시 블록체인을 신규로 생성시키는 특징으로 하는 데이터 공유 시스템.
KR1020190092128A 2019-07-30 2019-07-30 블록체인 환경에서의 데이터 공유 방법 및 시스템 KR20210014278A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020190092128A KR20210014278A (ko) 2019-07-30 2019-07-30 블록체인 환경에서의 데이터 공유 방법 및 시스템

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190092128A KR20210014278A (ko) 2019-07-30 2019-07-30 블록체인 환경에서의 데이터 공유 방법 및 시스템

Publications (1)

Publication Number Publication Date
KR20210014278A true KR20210014278A (ko) 2021-02-09

Family

ID=74559067

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190092128A KR20210014278A (ko) 2019-07-30 2019-07-30 블록체인 환경에서의 데이터 공유 방법 및 시스템

Country Status (1)

Country Link
KR (1) KR20210014278A (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112988334A (zh) * 2021-05-06 2021-06-18 云宏信息科技股份有限公司 对虚拟化环境下的多台主机进行管理的方法、可读介质
CN116578544A (zh) * 2023-07-06 2023-08-11 华北电力大学 一种基于区块链的电力数据共享方法

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101848896B1 (ko) 2016-10-19 2018-04-13 한전케이디엔 주식회사 블록체인을 이용한 선불형 전력 판매 및 전력 사용 방법

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101848896B1 (ko) 2016-10-19 2018-04-13 한전케이디엔 주식회사 블록체인을 이용한 선불형 전력 판매 및 전력 사용 방법

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112988334A (zh) * 2021-05-06 2021-06-18 云宏信息科技股份有限公司 对虚拟化环境下的多台主机进行管理的方法、可读介质
CN116578544A (zh) * 2023-07-06 2023-08-11 华北电力大学 一种基于区块链的电力数据共享方法
CN116578544B (zh) * 2023-07-06 2023-10-17 华北电力大学 一种基于区块链的电力数据共享方法

Similar Documents

Publication Publication Date Title
CN110472428B (zh) 基于区块链的医疗数据共享方法及共享系统
KR102243754B1 (ko) 블록체인 네트워크에서의 데이터 격리
Dey et al. HealthSense: A medical use case of Internet of Things and blockchain
JP6779389B2 (ja) 信頼できる実行環境下でのブロックチェーンデータの処理および保存
CN106503574B (zh) 区块链安全存储方法
US20200242081A1 (en) Method and apparatus for sharing big data using block chain
CN101790725B (zh) 用于在对等网络上做广告的系统和方法
KR102556741B1 (ko) 서로 다른 파티들 사이에서 객체들을 추적하는 기법
EP3709568A1 (en) Deleting user data from a blockchain
US11314885B2 (en) Cryptographic data entry blockchain data structure
CN109218391A (zh) 一种基于区块链的分布式存储系统审计与去中心化的方法
US20210176054A1 (en) Personal information validation and control
CN109241352A (zh) 个人档案信息的获取方法及服务器
CN111291394B (zh) 一种虚假信息管理方法、装置和存储介质
US12010226B2 (en) Blockchain data segregation
KR20210014278A (ko) 블록체인 환경에서의 데이터 공유 방법 및 시스템
KR20220028462A (ko) 블록체인 did를 이용한 콘텐츠 관리 장치 및 방법
EP3902227A1 (en) Method for sharing and verifying blocks and electronic documents between nodes in blockchain
KR20190140550A (ko) 블록체인 기반 지식재산 공유경제 시스템 및 그 방법
US20220092104A1 (en) System for automatic management and depositing of documents (images) hash in block-chain technology
KR20200141124A (ko) 특정 정보를 문서에서 분리 저장하는 방법 및 선택적으로 정보 공개범위를 결정하여 제공하는 방법 및 이를 이용한 서버
JP2020144586A (ja) 管理者端末、参加者端末、権利者端末、利用者端末、コンテンツ利用システム、管理者プログラム、参加者プログラム、権利者プログラム、利用者プログラムおよびステートデータのデータ構造
Jadhav et al. Decentralized Data Storage Solutions using Hyperledger Fabric
CN117010889A (zh) 数据处理方法、装置及设备、介质、产品
Trueman et al. Ensuring privacy and data freshness for public auditing of shared data in cloud