KR102164659B1 - 블록체인 기반의 데이터 저장을 위한 방법 및 이 방법을 수행하는 프로그램이 기록된 컴퓨터 판독 가능한 기록매체 - Google Patents

블록체인 기반의 데이터 저장을 위한 방법 및 이 방법을 수행하는 프로그램이 기록된 컴퓨터 판독 가능한 기록매체 Download PDF

Info

Publication number
KR102164659B1
KR102164659B1 KR1020190068998A KR20190068998A KR102164659B1 KR 102164659 B1 KR102164659 B1 KR 102164659B1 KR 1020190068998 A KR1020190068998 A KR 1020190068998A KR 20190068998 A KR20190068998 A KR 20190068998A KR 102164659 B1 KR102164659 B1 KR 102164659B1
Authority
KR
South Korea
Prior art keywords
video
block
network
transaction
data
Prior art date
Application number
KR1020190068998A
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 KR1020190068998A priority Critical patent/KR102164659B1/ko
Application granted granted Critical
Publication of KR102164659B1 publication Critical patent/KR102164659B1/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/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]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/12Applying verification of the received information
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/34Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters 

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

본 발명의 실시예에 따른 블록체인 기반의 데이터 저장을 위한 방법은 사용자장치가 동영상의 원본과, 동영상 및 스마트계약서가 개인키로 서명된 서명 파일을 포함하는 트랜잭션을 생성하고, 생성된 트랜잭션을 P2P 네트워크로 전송하는 단계와, 상기 P2P 네트워크에 속하는 복수의 노드장치 중 채굴에 성공한 노드장치가 상기 스마트계약서에 따라 상기 트랜잭션으로부터 상기 동영상의 일부를 추출하여, 블록을 생성하는 단계와, 상기 채굴에 성공한 노드장치가 상기 생성된 블록을 상기 복수의 노드장치로 전파하는 단계와, P2P 네트워크에 속한 노드장치가 상기 블록을 검증하고, 검증에 성공하면 블록체인에 상기 블록을 연결하는 단계를 포함한다.

Description

블록체인 기반의 데이터 저장을 위한 방법 및 이 방법을 수행하는 프로그램이 기록된 컴퓨터 판독 가능한 기록매체{A method for Method for data storage based on block chain and a computer readable recording medium on which a program for carrying out the method is recorded}
본 발명은 블록체인 기술에 관한 것으로, 보다 상세하게는, 블록체인 기반의 데이터 저장을 위한 방법 및 이 방법을 수행하는 프로그램이 기록된 컴퓨터 판독 가능한 기록매체에 관한 것이다.
블록체인은 데이터를 특정 단위의 블록에 기록하고, P2P(peer-to-peer) 네트워크를 구성하는 각각의 노드는 블록을 체인처럼 연결하여 관리하는 데이터 관리 기술 또는 블록이 체인처럼 연결된 데이터 그 자체를 의미하며, 체인처럼 연결된 데이터는 중앙 시스템 없이 각각의 노드에서 분산 원장(distributed ledger) 형태로 운영된다.
한국등록특허 제1880175호 2018년 07월 13일 등록 (명칭: 복수의 블록체인에 기반을 둔 생명정보 데이터 제공 방법, 생명정보 데이터 저장 방법 및 생명정보 데이터 전송 시스템)
본 발명의 목적은 동영상의 위조를 방지할 수 있는 블록체인 기반의 데이터 저장을 위한 방법 및 이 방법을 수행하는 프로그램이 기록된 컴퓨터 판독 가능한 기록매체를 제공함에 있다.
상술한 바와 같은 목적을 달성하기 위한 본 발명의 바람직한 실시예에 따른 블록체인 기반의 데이터 저장을 위한 방법은 사용자장치가 동영상의 원본과, 동영상 및 스마트계약서가 개인키로 서명된 서명 파일을 포함하는 트랜잭션을 생성하고, 생성된 트랜잭션을 P2P 네트워크로 전송하는 단계와, 상기 P2P 네트워크에 속하는 복수의 노드장치 중 채굴에 성공한 노드장치가 상기 스마트계약서에 따라 상기 트랜잭션으로부터 상기 동영상의 일부를 추출하여, 블록을 생성하는 단계와, 상기 채굴에 성공한 노드장치가 상기 생성된 블록을 상기 복수의 노드장치로 전파하는 단계와, P2P 네트워크에 속한 노드장치가 상기 블록을 검증하고, 검증에 성공하면 블록체인에 상기 블록을 연결하는 단계를 포함한다.
상기 동영상의 일부는 상기 동영상의 메타데이터 및 상기 동영상의 I-프레임 중 적어도 하나 인 것을 특징으로 한다.
상기 블록을 연결하는 단계 후, 상기 스마트계약서에 따라 스토리지서버에 접속하여 상기 동영상의 일부를 제외한 동영상의 나머지 부분을 저장하는 단계;를 더 포함하는 것을 특징으로 한다.
상기 트랜잭션을 P2P 네트워크로 전송하는 단계 전, 상기 사용자장치가 스토리지서버로부터 스마트계약서를 다운로드하는 단계를 더 포함하는 것을 특징으로 한다.
상기 트랜잭션을 P2P 네트워크로 전송하는 단계 후, 상기 블록을 생성하는 단계 전, 상기 P2P 네트워크에 속하는 복수의 노드장치 중 어느 하나의 노드장치가 상기 트랜잭션을 수신하면, 상기 사용자의 공유키를 이용하여 상기 트랜잭션의 전자 서명을 검증하는 단계와, 상기 검증에 성공하면, 상기 트랜잰션을 상기 복수의 노드장치로 전파하는 단계를 더 포함한다.
상술한 바와 같은 목적을 달성하기 위한 본 발명의 바람직한 실시예에 따른 블록체인 기반의 데이터 저장을 위한 방법은 상기 사용자장치가 스토리지서버로부터 스마트계약서를 다운로드하는 단계와, 상기 사용자장치가 동영상의 원본과, 동영상 및 스마트계약서가 개인키로 서명된 서명 파일을 포함하는 트랜잭션을 생성하고, 생성된 트랜잭션을 P2P 네트워크로 전송하는 단계와, 상기 P2P 네트워크에 속하는 복수의 노드장치 중 어느 하나의 노드장치가 상기 트랜잭션을 수신하면, 상기 사용자의 공유키를 이용하여 상기 트랜잭션의 전자 서명을 검증하는 단계와, 상기 검증에 성공하면, 상기 트랜잰션을 상기 복수의 노드장치로 전파하는 단계와, 상기 P2P 네트워크에 속하는 복수의 노드장치 중 채굴에 성공한 노드장치가 상기 스마트계약서에 따라 상기 트랜잭션으로부터 상기 동영상의 일부를 추출하여, 블록을 생성하는 단계와, 상기 채굴에 성공한 노드장치가 상기 생성된 블록을 상기 복수의 노드장치로 전파하는 단계와, P2P 네트워크에 속한 노드장치가 상기 블록을 검증하고, 검증에 성공하면 블록체인에 상기 블록을 연결하는 단계와, 상기 스마트계약서에 따라 스토리지서버에 접속하여 상기 동영상의 일부를 제외한 동영상의 나머지 부분을 저장하는 단계를 포함한다.
전술한 본 발명의 바람직한 실시예에 따른 블록체인 기반의 데이터 저장을 위한 방법을 수행하는 프로그램이 기록된 컴퓨터 판독 가능한 기록매체를 제공한다.
본 발명에 따르면, 블록체인에 동영상의 일부가 저장되며, 스토리지서버에 나머지 일부가 저장된다. 블록체인을 이루는 복수의 블록 각각에는 이전 블록에 대한 해시 값이 기록되며, 그 해시 값을 통해 이전 블록이 참조될 수 있다. 따라서 블록이 쌓일수록 블록 내에 기록된 동영상의 일부에 대한 위변조는 어려워지고, 각 블록에 기록된 동영상의 신뢰도가 향상된다.
도 1은 본 발명의 실시예에 따른 블록체인 기반의 데이터 저장을 위한 시스템을 설명하기 위한 도면이다.
도 2는 본 발명의 실시 예에 따른 사용자장치 및 노드장치를 포함하는 컴퓨팅 장치를 설명하기 위한 도면이다.
도 3은 본 발명의 실시예에 따른 블록체인 기반의 데이터 저장을 위한 스토리지서버의 구성을 설명하기 위한 블록도이다.
도 4는 본 발명의 실시예에 따른 블록체인 기반의 데이터 저장을 위한 방법을 설명하기 위한 흐름도이다.
본 발명의 상세한 설명에 앞서, 이하에서 설명되는 본 명세서 및 청구범위에 사용된 용어나 단어는 통상적이거나 사전적인 의미로 한정해서 해석되어서는 아니 되며, 발명자는 그 자신의 발명을 가장 최선의 방법으로 설명하기 위해 용어의 개념으로 적절하게 정의할 수 있다는 원칙에 입각하여 본 발명의 기술적 사상에 부합하는 의미와 개념으로 해석되어야만 한다. 따라서 본 명세서에 기재된 실시예와 도면에 도시된 구성은 본 발명의 가장 바람직한 실시예에 불과할 뿐, 본 발명의 기술적 사상을 모두 대변하는 것은 아니므로, 본 출원시점에 있어서 이들을 대체할 수 있는 다양한 균등물과 변형 예들이 있을 수 있음을 이해하여야 한다.
이하, 첨부된 도면을 참조하여 본 발명의 바람직한 실시예들을 상세히 설명한다. 이때, 첨부된 도면에서 동일한 구성 요소는 가능한 동일한 부호로 나타내고 있음을 유의해야 한다. 또한, 본 발명의 요지를 흐리게 할 수 있는 공지 기능 및 구성에 대한 상세한 설명은 생략할 것이다. 마찬가지의 이유로 첨부 도면에 있어서 일부 구성요소는 과장되거나 생략되거나 또는 개략적으로 도시되었으며, 각 구성요소의 크기는 실제 크기를 전적으로 반영하는 것이 아니다.
먼저, 본 발명의 실시예에 따른 블록체인 기반의 데이터 저장을 위한 시스템에 대해서 설명하기로 한다. 도 1은 본 발명의 실시예에 따른 블록체인 기반의 데이터 저장을 위한 시스템을 설명하기 위한 도면이다.
도 1을 참조하면, 본 발명의 실시예에 따른 블록체인 기반의 데이터 저장을 위한 시스템(이하, '데이터저장시스템'으로 축약함)은 사용자장치(100), 복수의 노드장치(200: 200a 내지 200h) 및 스토리지서버(300)를 포함한다. 여기서, 사용자장치(100), 노드장치(200) 및 스토리지서버(300)는 모두 컴퓨팅 연산을 수행할 수 있는 장치이다. 특히, 복수의 노드장치(200: 200a 내지 200h)는 P2P 네트워크를 구성한다.
본 발명은 퍼스널 컴퓨터, 랩탑 컴퓨터, 핸드헬드 장치, 멀티프로세서 시스템, 네트워크 PC, 미니컴퓨터, 메인프레임 컴퓨터, 모바일 전화, PDA, 페이저(pager) 등을 포함하는 다양한 유형의 컴퓨터 시스템 구성을 가지는 네트워크 컴퓨팅 환경에서, 상기 컴퓨터 시스템들을 대상으로 본 발명의 실시예에 따른 데이터 저장 서비스를 제공하는데 적용될 수 있다.
사용자장치(100), 노드장치(200) 및 스토리지서버(300)는 상호 간에 네트워크를 통해 연결된다. 본 발명의 실시예에 따르면, 네트워크를 통해 유선 데이터 링크, 무선 데이터 링크, 또는 유선 및 무선 데이터 링크의 조합으로 링크된 로컬 및 원격 컴퓨터 시스템 모두가 태스크를 수행하는 분산형 시스템 환경에서 실행될 수 있다. 분산형 시스템 환경에서, 프로그램 모듈은 로컬 및 원격 메모리 저장 장치에 위치될 수 있다.
다른 실시예에 따르면, 네트워크는 WLAN(Wireless LAN), 와이파이(Wi-Fi), 와이브로(Wibro), 와이맥스(Wimax), HSDPA(High Speed Downlink Packet Access) 등의 무선 통신망을 포함할 수 있으며, 시스템 구현 방식에 따라 이더넷(Ethernet), xDSL(ADSL, VDSL), HFC(Hybrid Fiber Coaxial Cable), FTTC(Fiber to The Curb), FTTH(Fiber To The Home) 등의 유선 통신망을 포함할 수도 있다. 또한, 본 발명의 네트워크는 예컨대, 다수의 접속망(미도시) 및 이들을 연결하는 코어망(미도시)으로 이루어진 이동통신망을 포함할 수 있다. 여기서, 접속망은 단말과 직접 접속하여 무선 통신을 수행하는 망으로서, 예를 들어, BS(Base Station), BTS(Base Transceiver Station), NodeB, eNodeB 등과 같은 다수의 기지국과, BSC(Base Station Controller), RNC(Radio Network Controller)와 같은 기지국 제어기로 구현될 수 있다. 또한, 전술한 바와 같이, 상기 기지국에 일체로 구현되어 있던 디지털 신호 처리부와 무선 신호 처리부를 각각 디지털 유니트(Digital Unit, 이하 DU라 함과 무선 유니트(Radio Unit, 이하 RU라 함)로 구분하여, 다수의 영역에 각각 다수의 RU(미도시)를 설치하고, 다수의 RU를 집중화된 DU와 연결하여 구성할 수도 있다. 또한, 접속망과 함께 모바일 망을 구성하는 코어망(미도시)은 접속망과 외부망, 예컨대, 인터넷망과 같은 다른 통신망을 연결하는 역할을 수행한다. 이러한 코어망은 앞서 설명한 바와 같이, 접속망 간의 이동성 제어 및 스위칭 등의 이동통신 서비스를 위한 주요 기능을 수행하는 네트워크 시스템으로서, 서킷 교환(circuit switching) 또는 패킷 교환(packet switching)을 수행하며, 모바일 망 내에서의 패킷 흐름을 관리 및 제어한다. 또한, 코어망은 주파수간 이동성을 관리하고, 접속망 및 코어망 내의 트래픽 및 다른 네트워크, 예컨대 인터넷망과의 연동을 위한 역할을 수행할 수도 있다. 이러한 코어망은 SGW(Serving GateWay), PGW(PDN GateWay), MSC(Mobile Switching Center), HLR(Home Location Register), MME(Mobile Mobility Entity)와 HSS(Home Subscriber Server) 등을 더 포함하여 구성될 수도 있다. 또한, 본 발명에 따른 네트워크는 인터넷망을 포함할 수 있다. 인터넷망은 TCP/IP 프로토콜에 따라서 정보가 교환되는 통상의 공개된 통신망, 즉 공용망을 의미한다.
본 발명의 실시예에서 사용자장치(100) 및 노드장치(200)는 컴퓨팅 연산을 수행하고, 네트워크를 통해 통신을 수행하는 장치라면 어떠한 장치라도 무방하다. 예컨대, 사용자장치(100) 및 노드장치(200)는 모든 정보통신기기, 멀티미디어 단말기, 유선 단말기, 고정형 단말기 및 IP(Internet Protocol) 단말기 등의 다양한 단말기에 적용될 수 있다. 예컨대, 사용자장치(100)는 휴대폰, PMP(Portable MultimediaPlayer), MID(Mobile Internet Device), 스마트폰(Smart Phone), 태블릿, 패블릿, 노트북 등을 예시할 수 있다. 또한, 본 발명의 실시예에서 스토리지서버(300)는 예컨대, IDC 센서에 배치되는 서버가 될 수 있다.
그러면, 본 발명이 구현될 수 있는 사용자장치(100) 및 노드장치(200)를 포함하는 컴퓨팅 장치에 대한 설명을 제공하고자 한다. 요구사항은 아니지만, 본 발명에 따른 정보 제공 방법은 컴퓨터 시스템에 의해 실행되고 있는 프로그램 모듈과 같은 컴퓨터 실행가능 명령어와 관련하여 기술될 수 있다. 일반적으로, 프로그램 모듈은 특정 태스크를 수행하거나 특정 추상 데이터 유형을 구현하는 루틴, 프로그램, 오브젝트, 컴포넌트, 데이터 구조 등을 포함한다. 컴퓨터 실행가능 명령어, 관련 데이터 구조, 및 프로그램 모듈은 본 명세서에 개시된 발명의 행위를 실행하는 프로그램 코드 수단의 예를 나타낸다. 도 2는 본 발명의 실시 예에 따른 사용자장치 및 노드장치를 포함하는 컴퓨팅 장치를 설명하기 위한 도면이다.
도 2를 참조하면, 본 발명의 실시예에 따른 사용자장치(100) 및 노드장치(200)를 포함하는 컴퓨팅 장치는 프로세싱 유닛(11), 시스템 메모리(12), 및 상기 시스템 메모리(12)를 포함하는 다양한 시스템 컴포넌트를 상기 프로세싱 유닛(11)에 연결시키는 시스템 버스(10)를 포함하는 형태로 된 컴퓨팅 장치를 포함한다.
프로세싱 유닛(11)은 본 발명의 특징을 구현하도록 설계된 컴퓨터-실행가능 명령어를 실행시킬 수 있다.
시스템 버스(10)는 다양한 버스 아키텍처 중의 임의의 것을 사용하는 로컬 버스, 주변 버스, 및 메모리 버스 또는 메모리 컨트롤러를 포함하는 몇 가지 유형의 버스 구조 중의 임의의 것일 수 있다. 시스템 메모리(12)는 ROM(Read Only Memory)(12a) 및 RAM(Random Access Memory)(12b)을 포함한다. 시동중과 같은 때에 컴퓨팅 장치 내의 구성요소들 간에 정보를 전송하는 것을 돕는 기본 루틴을 포함하는 기본 입출력 시스템(BIOS)(13a)은 일반적으로 ROM(12a)에 저장될 수 있다.
컴퓨팅 장치는 저장 수단을 포함할 수 있는데, 예를 들어, 하드디스크로부터 정보를 판독하거나 그 하드디스크에 정보를 기록하는 하드디스크 드라이브(15), 자기디스크로부터 정보를 판독하거나 그 자기디스크에 정보를 기록하는 자기디스크 드라이브(16), 및 예를 들면, CD-ROM 또는 기타 광 매체 등의 광디스크로부터 정보를 판독하거나 그 광디스크에 정보를 기록하는 광디스크 드라이브(17)를 포함할 수 있다. 하드디스크 드라이브(15), 자기디스크 드라이브(16), 및 광디스크 드라이브(17)는 각각 하드디스크 드라이브 인터페이스(18), 자기디스크 드라이브 인터페이스(19), 및 광드라이브 인터페이스(20)에 의해 시스템 버스(10)에 접속된다.
또한, 컴퓨팅 장치는 저장 수단으로서 외장 메모리(21)를 더 구비할 수 있다. 상기 외장 메모리(21)는 입출력 인터페이스(24)를 통해서 시스템 버스(10)에 접속될 수 있다.
상술한 드라이브 및 그 드라이브에 의해 판독 및 기록되는 관련 컴퓨터 판독가능 매체는 컴퓨터 실행가능 명령어, 데이터 구조, 프로그램 모듈 및 기타 데이터의 비휘발성 저장을 제공한다. 본 명세서에서 기술된 예시적인 환경은 하드디스크(15), 자기디스크(16) 및 광디스크(17)를 예시하고 있으나, 이외에 자기 카세트, 플래시 메모리 카드, DVD, 베르누이 카트리지(Bernoulli cartridge), RAM, ROM, SSD 등을 포함하는, 데이터를 저장하는 다른 유형의 컴퓨터 판독가능 매체가 이용될 수 있다.
상기 프로세싱 유닛(11)에 의해 로드되어 실행되는, 오퍼레이팅 시스템(13b), 하나 이상의 애플리케이션 프로그램(13c), 기타 프로그램 모듈(13d), 및 프로그램 데이터(13c)를 포함하는 하나 이상의 프로그램 모듈을 포함하는 프로그램 코드 수단은 하드디스크(15), 자기디스크(16), 광디스크(17), ROM(12a) 또는 RAM(12b)에 저장될 수 있다.
아울러, 상기 컴퓨팅 시스템은, 키보드, 포인팅 장치, 마이크로폰, 조이 스틱, 게임 패드, 스캐너, 등과 같은 기타 입력 장치(22)를 통해 사용자로부터 명령 및 정보를 입력 받을 수 있다. 또한 카메라 모듈과 같은 이미지 입력 센서를 통해 촬영되고 있는 이미지를 입력 받을 수 있다. 이들 입력 장치(22)는 시스템 버스(10)에 연결된 입출력 인터페이스(24)를 통해 프로세싱 유닛(11)에 접속될 수 있다. 입출력 인터페이스(24)는 예를 들면, 직렬 포트 인터페이스, PS/2 인터페이스, 병렬 포트 인터페이스, USB 인터페이스, IEEE(Institute of Electrical and Electronics Engineers) 1394 인터페이스(즉, 파이어와이어(FireWire) 인터페이스)와 같은 매우 다양한 서로 다른 인터페이스 중 임의의 것을 논리적으로 나타내거나, 다른 인터페이스의 조합까지도 논리적으로 나타낼 수 있다.
더하여, 본 발명이 적용되는 컴퓨팅 시스템은, 모니터 혹은 LCD와 같은 디스플레이 장치(26) 또는 스피커나 마이크로폰과 같은 오디오 장치(27)를 더 포함할 수 있으며, 이들은, 비디오/오디오 인터페이스(25)를 통해서 시스템 버스(10)에 접속된다. 예를 들면, 스피커 및 프린터 등의 도시되지 않은 기타 주변 출력 장치가 컴퓨터 시스템(420)에 또한 접속될 수 있다. 상기 비디오/오디오 인터페이스부(25)는 HDMI(High Definition Multimedia Interface), GDI(Graphics Device Interface) 등을 포함할 수 있다.
또한, 본 발명을 실행하는 컴퓨팅 시스템은, 예를 들면, 사무실-광역 또는 기업-광역 컴퓨터 네트워크, 홈 네트워크, 인트라넷, 및/또는 인터넷과 같은 네트워크에 접속 가능하다. 컴퓨터 시스템은 이러한 네트워크를 통해, 예를 들면, 원격 컴퓨터 시스템, 원격 애플리케이션, 및/또는 원격 데이터베이스와 같은 외부 소스들과의 데이터를 교환할 수 있다. 이를 위해 본 발명이 적용되는 컴퓨팅 시스템은 외부 소스로부터 데이터를 수신하고/거나 외부 소스로 데이터를 전송하는 네트워크 인터페이스(27)를 포함한다.
본 발명에 있어서, 이러한 컴퓨팅 시스템은, 네트워크 인터페이스(27)를 통해서 원격지에 위치한 장치와 정보를 송수신할 수 있다.
네트워크 인터페이스(27)는, 예를 들면, 네트워크 인터페이스 카드 및 대응하는 네트워크 드라이버 인터페이스 사양(Network Driver Interface Specification: "NDIS") 스택과 같은 하나 이상의 소프트웨어 및/또는 하드웨어 모듈의 논리적 조합으로 나타낼 수 있다.
마찬가지로, 컴퓨터 시스템은 입출력 인터페이스(24)를 통해 외부 소스로부터 데이터를 수신하거나 외부 소스로 데이터를 전송한다. 입출력 인터페이스(24)는 모뎀(23)(예를 들면, 표준 모뎀, 케이블 모뎀, 또는 디지털 가입자선(digital subscriber line: "DSL") 모뎀)에 연결될 수 있으며, 이러한 모뎀(23)을 통해 외부 소스로부터 데이터를 수신하고/거나 외부 소스로 데이터를 전송할 수 있다.
도 2는 본 발명에 적절한 오퍼레이팅 환경을 나타내지만, 본 발명의 원리는, 필요하다면 적절한 수정으로, 본 발명의 원리를 구현할 수 있는 임의의 시스템에 채용될 수 있다. 도 2에 도시된 환경은 단지 예시적이며 본 발명의 원리가 구현될 수 있는 매우 다양한 환경의 작은 일부도 나타내지 못한다.
아울러, 본 발명의 실시예에 따라 발생되는 다양한 정보는 컴퓨팅 장치에 관련된 임의의 컴퓨터 판독가능 매체에 저장되고 액세스될 수 있다. 예를 들면, 이러한 프로그램 모듈들의 일부 및 관련 프로그램 데이터의 일부는, 시스템 메모리(12)에 저장하기 위해, 오퍼레이팅 시스템(13b), 애플리케이션 프로그램(13c), 프로그램 모듈(13d), 및/또는 프로그램 데이터(13e)에 포함될 수 있다.
또한, 하드 디스크와 같은 대용량(mass) 저장 장치가 컴퓨팅 시스템에 연결되면, 이러한 프로그램 모듈 및 관련 프로그램 데이터는 대용량 저장 장치에 저장될 수 있다. 네트워크 환경에서, 본 발명과 관련된 프로그램 모듈 또는 그 일부는 입출력 인터페이스(24)의 모뎀(23) 또는 네트워크 인터페이스(25)를 통해 연결된 원격 컴퓨터 시스템, 예를 들어, 사용자 단말 장치(100)및 매칭 서버(300)의 컴퓨팅 시스템에 관련된 시스템 메모리 및/또는 대용량 저장 장치와 같은 원격 메모리 저장 장치에 저장될 수 있다. 이러한 모듈의 실행은 전술한 바와 같이 분산형 환경에서 수행될 수 있다.
다음으로, 본 발명이 구현될 수 있는 스토리지서버(300)에 대해 설명하기로 한다. 도 3은 본 발명의 실시예에 따른 블록체인 기반의 데이터 저장을 위한 스토리지서버의 구성을 설명하기 위한 블록도이다. 도 3을 참조하면, 본 발명의 실시예에 따른 스토리지서버(300)는 통신부(310), 저장부(320) 및 제어부(330)를 포함한다.
통신부(310)는 사용자장치(100) 혹은 노드장치(200)와 통신하기 위한 수단이다. 통신부(310)는 네트워크를 통해 사용자장치(100) 혹은 노드장치(200)와 통신할 수 있다. 통신부(310)는 네트워크를 통해 송신되는 신호를 변조하고, 수신되는 신호를 복조하는 모뎀(Modem)을 포함할 수 있다. 통신부(310)는 수신되는 데이터, 메시지 등을 제어부(330)로 전달한다. 또한, 통신부(310)는 제어부(330)로부터 송신하는 데이터, 메시지 등을 전달받아 사용자장치(100) 혹은 노드장치(200)로 전송할 수 있다.
저장부(320)는 스토리지서버(300)의 동작에 필요한 프로그램 및 데이터를 저장하는 역할을 수행한다. 특히, 저장부(320)는 본 발명의 실시예에 따른 블록체인 기반으로 하는 데이터를 저장하기 위한 저장 매체이다.
제어부(330)는 스토리지서버(300)의 전반적인 동작 및 스토리지서버(300)의 내부 블록들 간 신호 흐름을 제어하고, 데이터를 처리하는 데이터 처리 기능을 수행할 수 있다. 또한, 제어부(330)는 기본적으로, 스토리지서버(300)의 각 종 기능을 제어하는 역할을 수행한다. 제어부(330)는 대표적으로, 중앙처리장치(CPU: Central Processing Unit)를 예시할 수 있다.
그러면, 본 발명의 실시예에 따른 블록체인 기반의 데이터 저장을 위한 방법에 대해서 설명하기로 한다. 도 4는 본 발명의 실시예에 따른 블록체인 기반의 데이터 저장을 위한 방법을 설명하기 위한 흐름도이다.
사용자장치(100)는 S100 단계에서 동영상을 저장하기 위하여, 스토리지서버(300)로부터 스마트 계약서를 다운로드 할 수 있다. 스마트계약서는 스토리지서버(300)가 발행하며, 블록 생성 규칙, 데이터 저장 규칙, 데이터 저장 공간에 접근할 수 있는 가상 주소 및 저장 공간의 사용할 때 지불할 비용을 포함한다.
특히, 본 발명의 실시예에 따르면, 블록체인 및 스토리지서버(300)에 데이터를 분산하여 저장하며, 블록 생성 규칙은 블록체인에 저장할 데이터를 정의하며, 데이터 저장 규칙은 스토리지서버(300)에 저장할 데이터를 정의한다. 블록 생성 규칙에 따르면, 동영상의 일부를 추출하여 블록체인에 저장하며, 이러한 동영상의 일부는 동영상의 메타데이터(Metadata)이거나, 동영상을 구성하는 복수의 프레임 중 I-프레임(I-frame)일 수 있다. 또한, 데이터 저장 규칙은 전술한 동영상의 일부를 제외한 나머지 동영상을 스토리지서버(300)에 저장하도록 정의할 수 있다.
이어서, 사용자장치(100)는 S110 단계에서 저장할 동영상 및 스마트계약서를 포함하는 트랜잭션을 생성한다. 바람직한 실시예에 따르면, 동영상은 CCTV를 통해 촬영된 동영상일 수 있다.
S110 단계에서 사용자장치(100)는 동영상 및 스마트계약서를 사용자장치(100)의 개인키로 서명한다. 그런 다음, 사용자장치(100)는 동영상의 원본과, 동영상 및 스마트계약서가 개인키로 서명된 서명 파일을 포함하는 트랜잭션을 생성한다.
다음으로, 사용자장치(100)는 S120 단계에서 트랜잭션을 P2P 네트워크로 전송한다.
P2P 네트워크에 속하는 복수의 노드장치(200: 200a 내지 200h) 중 어느 하나의 노드장치가 트랜잭션을 수신하면, 트랜잭션을 수신한 노드장치(200, 예컨대, 200a)는 S130 단계에서 사용자장치의 공유키를 이용하여 트랜잭션을 검증한다. 사용자장치의 공유키는 사용자장치(100)가 트랜잭션에 포함시켜 전송할 수도 있고, P2P 네트워크에 속하는 복수의 노드장치(200: 200a 내지 200h)에 공유될 수도 있다. 이때, 해당 노드장치(200: 200a)는 사용자장치의 공유키를 이용하여 서명 파일을 복호화하여 동영상과 스마트계약서를 도출한다. 그런 다음, 동영상의 원본과 서명 파일로부터 도출된 동영상을 비교하여 동영상의 원본이 원본임을 검증한다.
원본임이 검증되면, 해당 노드장치(200: 200a)는 S140 단계에서 P2P 네트워크 전역에 해당 트랜잭션을 전파한다. 이때, 트랜잭션을 수신한 P2P 네트워크에 속한 다른 노드장치(200, 예컨대, 200b 내지 200h) 또한 동일한 검증을 수행한다. 또한, 원본임이 검증되면, 해당 트랜잭션은 임시 풀(temporary pool)에 기록될 수 있다. 이러한 임시 풀은 블록에 트랜잭션 데이터가 기록되기 전에 트랜잭션 데이터가 임시로 보관되는 장소이다.
다음으로, P2P 네트워크에 속하는 복수의 노드장치 중 어느 하나의 노드 장치(200: 예컨대, 200h)가 채굴(mining)에 성공하면, 채굴에 성공한 노드장치(200, 200h)는 스마트계약서에 따라 S150 단계에서 블록을 생성한다. P2P 네트워크에 속하는 노드장치(200)는 인증되지 않은 불특정 노드이기 때문에, 블록 생성에 대한 정당성을 입증하여야 한다. 작업 증명 알고리즘은 정당성을 입증하기 위한 합의 알고리즘 중 하나로 구체적인 동작은 다음과 같다. 복수의 노드장치(200) 각각은 무작위로 해시 값을 대입하고, 주어진 목표 해시 값을 만족시키는 넌스(nonce)를 찾는 과정에서 그에 상응하는 컴퓨팅 비용을 제공하게 되며, 제공되는 컴퓨팅 비용에 근거하여 해당 노드장치(200)의 정당성이 입증된다. 이에 따라, 목표 해시 값을 만족시키는 넌스를 찾은 노드장치(200), 즉, 채굴에 성공한 노드장치(200)가 블록을 생성할 수 있다. 이때, 블록에는 스마트계약서의 블록 생성 규칙에 따라 동영상의 일부가 포함되며, 포함되는 동영상의 일부는 동영상의 메타데이터(Metadata)이거나, 동영상을 구성하는 복수의 프레임 중 I-프레임(I-frame)일 수 있다.
블록을 생성한 후, 채굴에 성공한 노드장치(200, 200h)는 S160 단계에서 앞서 생성된 블록을 P2P 네트워크로 전파한다. 그러면, P2P 네트워크에 속한 복수의 노드장치(200)는 S170 단계에서 해당 블록을 검증하고, 검증에 성공한 경우, 기존의 블록체인에 해당 블록을 연결한다.
블록체인이 연결된 후, 채굴에 성공한 노드장치(200, 200h)는 S180 단계에서 스마트계약서의 데이터 저장 규칙에 따라 블록에 저장된 동영상의 일부를 제외한 동영상의 나머지 부분을 스토리지서버(300)에 접속하여 저장한다.
이때, 채굴에 성공한 노드장치(200, 200h)는 스마트계약서의 가상 주소를 통해 스토리지서버(300)에 접속할 수 있다.
전술한 바와 같이, 동영상의 일부를 블록체인에 저장하고, 동영상의 나머지 부분을 스토리지서버(300)에 저장한 후, 채굴에 성공한 노드장치(200, 200h)는 S190 단계에서 스마트계약서에 따라 데이터가 저장되었음을 사용자장치(100)에 통지한다.
한편, 앞서 설명된 본 발명의 실시예에 따른 방법들은 다양한 컴퓨터수단을 통하여 판독 가능한 프로그램 형태로 구현되어 컴퓨터로 판독 가능한 기록매체에 기록될 수 있다. 여기서, 기록매체는 프로그램 명령, 데이터 파일, 데이터구조 등을 단독으로 또는 조합하여 포함할 수 있다. 기록매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 예컨대 기록매체는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광 기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치를 포함한다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 와이어뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 와이어를 포함할 수 있다. 이러한 하드웨어 장치는 본 발명의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
이상 본 발명을 몇 가지 바람직한 실시예를 사용하여 설명하였으나, 이들 실시예는 예시적인 것이며 한정적인 것이 아니다. 이와 같이, 본 발명이 속하는 기술분야에서 통상의 지식을 지닌 자라면 본 발명의 사상과 첨부된 특허청구범위에 제시된 권리범위에서 벗어나지 않으면서 균등론에 따라 다양한 변화와 수정을 가할 수 있음을 이해할 것이다.
100: 사용자장치
200: 노드장치
300: 스토리지서버
310: 통신부
320: 스토리지부
330: 제어부

Claims (6)

  1. 블록체인 기반의 데이터 저장을 위한 방법에 있어서,
    사용자장치가 스토리지서버로부터 블록체인에 저장할 데이터를 정의하는 블록 생성 규칙, 스토리지서버에 저장할 데이터를 정의하는 데이터 저장 규칙, 데이터 저장 공간에 접근할 수 있는 가상 주소 및 저장 공간을 사용할 때 지불할 비용을 포함하는 스마트계약서를 다운로드하는 단계;
    사용자장치가 동영상의 원본과, 동영상 및 스마트계약서가 개인키로 서명된 서명 파일을 포함하는 트랜잭션을 생성하고, 생성된 트랜잭션을 P2P 네트워크로 전송하는 단계;
    P2P 네트워크에 속하는 복수의 노드장치 중 채굴에 성공한 노드장치가 상기 스마트계약서의 블록체인에 저장할 데이터가 정의된 상기 블록 생성 규칙에 따라 상기 트랜잭션으로부터 상기 동영상의 일부를 추출하여, 블록을 생성하는 단계;
    상기 채굴에 성공한 노드장치가 상기 생성된 블록을 상기 복수의 노드장치로 전파하는 단계; 및
    P2P 네트워크에 속한 노드장치가 상기 블록을 검증하고, 검증에 성공하면 블록체인에 상기 블록을 연결하는 단계; 및
    상기 채굴에 성공한 노드장치가 상기 스마트계약서의 상기 데이터 저장 규칙에 따라 블록에 저장된 동영상의 일부를 제외한 동영상의 나머지 부분을 상기 스토리지서버에 접속하여 저장하되, 상기 스마트계약서의 가상 주소를 통해 상기 스토리지서버에 접속하여 상기 동영상의 나머지 부분을 상기 스토리지서버에 접속하여 저장하는 단계;
    를 포함하는 것을 특징으로 하는
    블록체인 기반의 데이터 저장을 위한 방법.
  2. 제1항에 있어서,
    상기 동영상의 일부는
    상기 동영상의 메타데이터 및 상기 동영상의 I-프레임 중 적어도 하나 인 것을 특징으로 하는
    블록체인 기반의 데이터 저장을 위한 방법.
  3. 삭제
  4. 삭제
  5. 제1항에 있어서,
    상기 트랜잭션을 P2P 네트워크로 전송하는 단계 후,
    상기 블록을 생성하는 단계 전,
    상기 P2P 네트워크에 속하는 복수의 노드장치 중 어느 하나의 노드장치가 상기 트랜잭션을 수신하면, 상기 사용자의 공유키를 이용하여 상기 트랜잭션의 전자 서명을 검증하는 단계; 및
    상기 검증에 성공하면, 상기 트랜잭션을 상기 복수의 노드장치로 전파하는 단계;를 더 포함하는 것을 특징으로 하는
    블록체인 기반의 데이터 저장을 위한 방법.
  6. 제1항, 제2항 및 제5항 중 어느 한 항에 따른 블록체인 기반의 데이터 저장을 위한 방법을 수행하는 프로그램이 기록된 컴퓨터 판독 가능한 기록매체.
KR1020190068998A 2019-06-11 2019-06-11 블록체인 기반의 데이터 저장을 위한 방법 및 이 방법을 수행하는 프로그램이 기록된 컴퓨터 판독 가능한 기록매체 KR102164659B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020190068998A KR102164659B1 (ko) 2019-06-11 2019-06-11 블록체인 기반의 데이터 저장을 위한 방법 및 이 방법을 수행하는 프로그램이 기록된 컴퓨터 판독 가능한 기록매체

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190068998A KR102164659B1 (ko) 2019-06-11 2019-06-11 블록체인 기반의 데이터 저장을 위한 방법 및 이 방법을 수행하는 프로그램이 기록된 컴퓨터 판독 가능한 기록매체

Publications (1)

Publication Number Publication Date
KR102164659B1 true KR102164659B1 (ko) 2020-10-12

Family

ID=72886346

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190068998A KR102164659B1 (ko) 2019-06-11 2019-06-11 블록체인 기반의 데이터 저장을 위한 방법 및 이 방법을 수행하는 프로그램이 기록된 컴퓨터 판독 가능한 기록매체

Country Status (1)

Country Link
KR (1) KR102164659B1 (ko)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20180030971A (ko) * 2018-03-07 2018-03-27 유비벨록스(주) 블록체인을 이용하여 위변조 검증이 가능한 디지털 영상을 생성하는 촬영장치, 이에 의한 디지털 영상 생성방법, 및 이에 의해 생성된 디지털 영상의 검증방법
KR101880175B1 (ko) 2018-02-13 2018-07-19 주식회사 마크로젠 복수의 블록체인에 기반을 둔 생명정보 데이터 제공 방법, 생명정보 데이터 저장 방법 및 생명정보 데이터 전송 시스템
KR20180127504A (ko) * 2016-04-11 2018-11-28 엔체인 홀딩스 리미티드 블록체인에서 안전한 피어-투-피어 통신을 위한 방법

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20180127504A (ko) * 2016-04-11 2018-11-28 엔체인 홀딩스 리미티드 블록체인에서 안전한 피어-투-피어 통신을 위한 방법
KR101880175B1 (ko) 2018-02-13 2018-07-19 주식회사 마크로젠 복수의 블록체인에 기반을 둔 생명정보 데이터 제공 방법, 생명정보 데이터 저장 방법 및 생명정보 데이터 전송 시스템
KR20180030971A (ko) * 2018-03-07 2018-03-27 유비벨록스(주) 블록체인을 이용하여 위변조 검증이 가능한 디지털 영상을 생성하는 촬영장치, 이에 의한 디지털 영상 생성방법, 및 이에 의해 생성된 디지털 영상의 검증방법

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Lukas Marx, ‘Storing Data on the Blockchain: The Developers Guide’, https://malcoded.com/posts/storing-data-blockchain(2018.07.05.)* *

Similar Documents

Publication Publication Date Title
CN104137511B (zh) 用于安全协议的动态选择的方法、设备和客户端设备
WO2018177124A1 (zh) 业务处理方法、装置、数据共享系统及存储介质
EP3937051B1 (en) Methods and apparatuses for processing transactions based on blockchain integrated station
KR102276795B1 (ko) 블록체인 기반의 무선 충전을 위한 방법 및 이 방법을 수행하는 프로그램이 기록된 컴퓨터 판독 가능한 기록매체
KR102206950B1 (ko) 워크플로우에 기초한, 블록체인 네트워크 상에서의 비공개 트랜잭션의 관리
KR20200074996A (ko) 교차 블록체인 인증 방법, 장치, 및 전자 디바이스
US10887307B1 (en) Systems and methods for identifying users
US11336660B2 (en) Methods and apparatuses for identifying replay transaction based on blockchain integrated station
US11783339B2 (en) Methods and apparatuses for transferring transaction based on blockchain integrated station
US11665234B2 (en) Methods and apparatuses for synchronizing data based on blockchain integrated station
CN104937904B (zh) 用于卸载的方法、系统和计算机存储介质
US20210329093A1 (en) Methods and apparatuses for identifying to-be-filtered transaction based on blockchain integrated station
CN105450587A (zh) 用于保护网络通信安全的方法和装置
CN105474600A (zh) 使用链接到存储所需密码的另一个通信装置的通信装置来访问基于云的服务
CN112714158A (zh) 事务处理方法、中继网络、跨链网关、系统、介质和设备
CN111339201A (zh) 基于区块链的测评方法及系统
WO2019221713A1 (en) Data security method utilizing mesh network dynamic scoring
KR102164659B1 (ko) 블록체인 기반의 데이터 저장을 위한 방법 및 이 방법을 수행하는 프로그램이 기록된 컴퓨터 판독 가능한 기록매체
US20230073668A1 (en) Protection against Man-in-the-Middle Attacks in Virtualization Environments
CN116661693A (zh) 安全数据读写方法和装置
US11283768B1 (en) Systems and methods for managing connections
CN109697603A (zh) 电子印章的保护方法、装置、设备及介质
KR101846163B1 (ko) 공유 정보를 보호하는 방법 및 시스템
Kim et al. UAV‐Undertaker: Securely Verifiable Remote Erasure Scheme with a Countdown‐Concept for UAV via Randomized Data Synchronization
CN111027973A (zh) 转账证明授权提交方法、设备和存储介质

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant