[go: up one dir, main page]

KR102182750B1 - 블록체인을 이용한 데이터 유통 시스템 및 방법 - Google Patents

블록체인을 이용한 데이터 유통 시스템 및 방법 Download PDF

Info

Publication number
KR102182750B1
KR102182750B1 KR1020190113418A KR20190113418A KR102182750B1 KR 102182750 B1 KR102182750 B1 KR 102182750B1 KR 1020190113418 A KR1020190113418 A KR 1020190113418A KR 20190113418 A KR20190113418 A KR 20190113418A KR 102182750 B1 KR102182750 B1 KR 102182750B1
Authority
KR
South Korea
Prior art keywords
data
node
transmission
details
distribution
Prior art date
Legal status (The legal status 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 status listed.)
Active
Application number
KR1020190113418A
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 KR1020190113418A priority Critical patent/KR102182750B1/ko
Priority to US16/687,109 priority patent/US11669500B2/en
Application granted granted Critical
Publication of KR102182750B1 publication Critical patent/KR102182750B1/ko
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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
    • G06F16/1834Distributed file systems implemented based on peer-to-peer networks, e.g. gnutella
    • G06F16/1837Management specially adapted to peer-to-peer storage networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • H04L9/083Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) involving central third party, e.g. key distribution center [KDC] or trusted third party [TTP]
    • H04L9/0833Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) involving central third party, e.g. key distribution center [KDC] or trusted third party [TTP] involving conference or group key
    • H04L9/0836Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) involving central third party, e.g. key distribution center [KDC] or trusted third party [TTP] involving conference or group key using tree structure or hierarchical structure
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/04Payment circuits
    • G06Q20/06Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme
    • G06Q20/065Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme using e-cash
    • G06Q20/0658Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme using e-cash e-cash managed locally
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/08Payment architectures
    • G06Q20/10Payment architectures specially adapted for electronic funds transfer [EFT] systems; specially adapted for home banking systems
    • G06Q20/102Bill distribution or payments
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/08Payment architectures
    • G06Q20/14Payment architectures specially adapted for billing systems
    • G06Q20/145Payments according to the detected use or quantity
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/22Payment schemes or models
    • G06Q20/223Payment schemes or models based on the use of peer-to-peer networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/382Payment protocols; Details thereof insuring higher security of transaction
    • G06Q20/3825Use of electronic signatures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/382Payment protocols; Details thereof insuring higher security of transaction
    • G06Q20/3827Use of message hashing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/389Keeping log of transactions for guaranteeing non-repudiation of a transaction
    • 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
    • H04L63/123Applying verification of the received information received data contents, e.g. message integrity
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • H04L9/0637Modes of operation, e.g. cipher block chaining [CBC], electronic codebook [ECB] or Galois/counter mode [GCM]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0643Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • H04L9/3239Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
    • H04L2209/38
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/50Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees

Landscapes

  • Engineering & Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Computer Security & Cryptography (AREA)
  • Accounting & Taxation (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Finance (AREA)
  • General Business, Economics & Management (AREA)
  • Strategic Management (AREA)
  • General Engineering & Computer Science (AREA)
  • Power Engineering (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Computer Hardware Design (AREA)
  • Development Economics (AREA)
  • Economics (AREA)
  • Computing Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Software Systems (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

데이터 유통 시스템 및 방법이 제공된다. 본 발명의 일 실시예에 따른, 하나 이상의 데이터 송신노드로부터 데이터 수신노드로 데이터가 유통되는 것을 관리하는 데이터 유통 시스템은, 상기 데이터 수신노드로부터 오프체인 풀의 생성 요청을 수신함에 따라, 상기 데이터 수신노드에 상기 오프체인 풀의 식별번호를 송신하는 오프체인 풀 관리부, 상기 데이터 수신노드가 상기 오프체인 풀을 통해 상기 데이터 송신노드로부터 수신한 상기 데이터에 대해서, 또는 상기 데이터 수신노드가 상기 데이터를 수신한 내역에 대해서, 머클트리를 이용하여 머클트리 루트 해쉬값을 도출함으로써, 상기 데이터의 무결성을 인증하거나 또는 상기 수신한 내역의 무결성을 인증하는 무결성 인증부, 상기 하나 이상의 데이터 송신노드로부터 상기 데이터를 송신한 내역을 수신하며, 상기 수신한 내역과 상기 송신한 내역을 비교함으로써 상기 데이터의 유통에 오류가 없는지를 검증하는 데이터 유통 검증부, 상기 데이터 유통 검증부에서 상기 데이터의 유통에 오류가 없다고 검증된 경우, 상기 머클트리 루트 해쉬값을 블록체인에 저장하는 블록체인 저장부를 포함한다.

Description

블록체인을 이용한 데이터 유통 시스템 및 방법{System and method for distributing data using block chain}
본 발명은 블록체인을 이용하여 데이터를 유통시키는 시스템 및 방법에 관한 것이다.
종래의 블록체인 기술은 블록크기의 한계로 대용량 데이터의 실시간 교환 및 제어가 불가능하였다. 보통, 블록체인의 블록 사이즈는 1 MB ~ 4 MB로서, 블록체인에는 대용량의 데이터를 저장할 수 없다. 특히, 비트코인의 경우 1 블록의 최대크기가 1 MB 이고 블록생성이 10 분마다 생성되기 때문에 전송속도가 최대 약 7 TPS (Transaction Per Second) 정도 밖에 안된다. Ethereum 의 경우 15 TPS 정도로 알려져 있다.
한편, 대용량 데이터를 전송함에 있어서, P2P (Peer To Peer) 파일 시스템을 이용하는 경우가 있다. 상기 P2P 파일 시스템에서 파일을 보유하고 있는 사람을 씨더 (Seeder) 라고 부르는데, 자신의 컴퓨터를 켜놓은 씨더들이 많을수록 해당 파일의 다운로드의 속도가 빨라진다. 반대로, 상기 씨더들이 컴퓨터를 꺼놓음으로써 씨더의 역할을 하지 않는 경우, 해당 파일의 다운로드 속도는 늦어진다는 문제가 있다.
본 발명에서는, 데이터 유통에 블록체인과 P2P 파일 시스템을 이용함에 있어서, 상기와 같은 문제점들을 해결하는 것을 과제로 한다.
상기 언급된 기술적 과제들을 해결하기 위한, 본 발명의 일 실시예에 따른, 하나 이상의 데이터 송신노드로부터 데이터 수신노드로 데이터가 유통되는 것을 관리하는 데이터 유통 시스템은, 상기 데이터 수신노드로부터 오프체인 풀 (off-chain pool) 의 생성 요청을 수신함에 따라, 상기 데이터 수신노드에 상기 오프체인 풀의 식별번호를 송신하는 오프체인 풀 관리부, 상기 데이터 수신노드가 상기 오프체인 풀을 통해 상기 데이터 송신노드로부터 수신한 상기 데이터에 대해서, 또는 상기 데이터 수신노드가 상기 데이터를 수신한 내역에 대해서, 머클트리 (Merkle Tree) 를 이용하여 머클트리 루트 해쉬값 (Merkle Tree Root Hash Value) 을 도출함으로써, 상기 데이터의 무결성을 인증하거나 또는 상기 수신한 내역의 무결성을 인증하는 무결성 인증부, 상기 하나 이상의 데이터 송신노드로부터 상기 데이터를 송신한 내역을 수신하며, 상기 수신한 내역과 상기 송신한 내역을 비교함으로써 상기 데이터의 유통에 오류가 없는지를 검증하는 데이터 유통 검증부, 상기 데이터 유통 검증부에서 상기 데이터의 유통에 오류가 없다고 검증된 경우, 상기 머클트리 루트 해쉬값을 블록체인에 저장하는 블록체인 저장부를 포함한다.
상기 오프체인 풀 관리부가 상기 데이터 수신노드로부터 상기 오프체인 풀의 생성 요청을 수신할 때, 상기 데이터 수신노드로부터 소정의 비용을 받고, 상기 데이터 수신노드로부터 상기 데이터의 수신이 완료되었음을 나타내는 수신 완료 메시지를 받은 후, 상기 하나 이상의 데이터 송신노드에 전송 비용을 지불하는 정산부를 더 포함할 수 있다.
상기 오프체인 풀 관리부가 상기 데이터 수신노드로부터 상기 오프체인 풀의 생성 요청을 수신할 때, 상기 데이터 수신노드로부터 소정의 비용을 받고, 상기 데이터 송신노드로부터 상기 데이터의 송신이 완료되었음을 나타내는 송신 완료 메시지를 받은 후, 상기 하나 이상의 데이터 송신노드에 전송 비용을 지불하는 정산부를 더 포함할 수 있다.
상기 송신한 내역은 상기 데이터 수신노드가 상기 데이터 송신노드로부터 상기 데이터를 수신함에 따라 상기 데이터 송신노드에 발급한 전송 영수증에 기초하며, 상기 전송 영수증은 상기 데이터 수신노드의 개인키로 전자서명되어 있을 수 있다.
상기 데이터 유통 검증부에서 상기 데이터의 유통에 오류가 없다고 검증된 경우, 상기 블록체인 저장부는 상기 블록체인에 상기 데이터의 메타정보 또는 거래내역을 더 저장하며, 상기 메타정보는 상기 데이터의 이름, 상기 데이터의 제작자, 상기 데이터의 제작연도 중 적어도 어느 하나를 포함하고, 상기 거래내역은 상기 송신한 내역 또는 상기 수신한 내역에 기초하여 생성된 상기 데이터의 유통 내역일 수 있다.
본 발명의 다른 실시예에 따른, 하나 이상의 데이터 송신노드로부터 데이터 수신노드로 데이터가 유통되는 것을 관리하는 데이터 유통 방법은, 상기 데이터 수신노드로부터 오프체인 풀의 생성 요청을 수신함에 따라, 상기 데이터 수신노드에 상기 오프체인 풀의 식별번호를 송신하는 오프체인 풀 관리단계, 상기 데이터 수신노드가 상기 오프체인 풀을 통해 상기 데이터 송신노드로부터 수신한 상기 데이터에 대해서, 또는 상기 데이터 수신노드가 상기 데이터를 수신한 내역에 대해서, 머클트리를 이용하여 머클트리 루트 해쉬값을 도출함으로써, 상기 데이터의 무결성을 인증하거나 또는 상기 수신한 내역의 무결성을 인증하는 무결성 인증단계, 상기 하나 이상의 데이터 송신노드로부터 상기 데이터를 송신한 내역을 수신하며, 상기 수신한 내역과 상기 송신한 내역을 비교함으로써 상기 데이터의 유통에 오류가 없는지를 검증하는 데이터 유통 검증단계, 상기 데이터 유통 검증단계에서 상기 데이터의 유통에 오류가 없다고 검증된 경우, 상기 머클트리 루트 해쉬값을 블록체인에 저장하는 블록체인 저장단계를 포함한다.
상기 오프체인 풀 관리단계에서, 상기 데이터 수신노드로부터 상기 오프체인 풀의 생성 요청을 수신할 때, 상기 데이터 수신노드로부터 소정의 비용을 받고, 상기 데이터 유통 방법은, 상기 데이터 수신노드로부터 상기 데이터의 수신이 완료되었음을 나타내는 수신 완료 메시지를 받은 후, 상기 하나 이상의 데이터 송신노드에 전송 비용을 지불하는 정산단계를 더 포함할 수 있다.
상기 오프체인 풀 관리단계에서, 상기 데이터 수신노드로부터 상기 오프체인 풀의 생성 요청을 수신할 때, 상기 데이터 수신노드로부터 소정의 비용을 받고, 상기 데이터 유통 방법은, 상기 데이터 송신노드로부터 상기 데이터의 송신이 완료되었음을 나타내는 송신 완료 메시지를 받은 후, 상기 하나 이상의 데이터 송신노드에 전송 비용을 지불하는 정산단계를 더 포함할 수 있다.
상기 송신한 내역은 상기 데이터 수신노드가 상기 데이터 송신노드로부터 상기 데이터를 수신함에 따라 상기 데이터 송신노드에 발급한 전송 영수증에 기초하며, 상기 전송 영수증은 상기 데이터 수신노드의 개인키로 전자서명되어 있을 수 있다.
상기 데이터 유통 검증단계에서 상기 데이터의 유통에 오류가 없다고 검증된 경우, 상기 블록체인 저장단계에서는 상기 블록체인에 상기 데이터의 메타정보 또는 거래내역을 더 저장하며, 상기 메타정보는 상기 데이터의 이름, 상기 데이터의 제작자, 상기 데이터의 제작연도 중 적어도 어느 하나를 포함하고, 상기 거래내역은 상기 송신한 내역 또는 상기 수신한 내역에 기초하여 생성된 상기 데이터의 유통 내역일 수 있다.
본 발명의 다른 실시예에 따른 프로그램을 기록한 컴퓨터 판독 가능 저장 매체는, 상기 데이터 유통 방법들을 수행할 수 있다.
상기와 같은 본 발명에 따르면, 블록체인의 블록크기 및 전송속도의 한계를 극복하고, 대용량의 데이터를 유통시킬 수 있다. 뿐만 아니라, P2P 파일 시스템에 있어서, 씨더들이 활성화 상태를 유지하도록 모티브를 제공함으로써, 데이터 파일의 유통이 원활해지도록 할 수 있다.
도 1은 데이터 유통 시스템의 일 실시예를 나타낸 도면이다.
도 2는 데이터 유통 방법의 일 실시예를 나타낸 도면이다.
도 3은 데이터의 머클트리 루트 해쉬값 및 메타정보가 블록체인에 저장되는 것을 나타낸 도면이다.
도 4는 머클트리의 동작구조를 나타내는 도면이다.
이하, 첨부된 도면을 참조하여 본 발명의 바람직한 실시예를 상세히 설명한다. 본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 개시되는 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 본 실시예들은 본 발명의 개시가 완전하도록 하고, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다. 명세서 전체에 걸쳐 동일 참조 부호는 동일 구성 요소를 지칭한다.
다른 정의가 없다면, 본 명세서에서 사용되는 모든 용어(기술 및 과학적 용어를 포함)는 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 공통적으로 이해될 수 있는 의미로 사용될 수 있을 것이다. 또 일반적으로 사용되는 사전에 정의되어 있는 용어들은 명백하게 특별히 정의되어 있지 않는 한 이상적으로 또는 과도하게 해석되지 않는다.
본 명세서에서 사용된 용어는 실시예들을 설명하기 위한 것이며 본 발명을 제한하고자 하는 것은 아니다. 본 명세서에서, 단수형은 문구에서 특별히 언급하지 않는 한 복수형도 포함한다. 명세서에서 사용되는 "포함한다" 및/또는 "포함하는"은 언급된 구성요소 외에 하나 이상의 다른 구성요소의 존재 또는 추가를 배제하지 않는다.
본 명세서에서 달리 언급되지 않는다면, "접속되는" 또는 “연결되는” 은 하나의 엘리먼트/특징이 다른 엘리먼트/특징과 직접적으로 접속 또는 연결되는 것 또는 타 엘리먼트/특징을 개재하여 간접적으로 접속 또는 연결되는 것을 포함할 수 있고, 반드시 기계적으로 바로 접속 또는 연결되는 것만을 의미하는 것은 아니다. 따라서, 도면들에 도시된 다양한 모식도들은 엘리먼트들과 컴포넌트들의 예시적인 배열들을 도시하지만, 추가의 중재 엘리먼트들, 디바이스들, 특징들 또는 컴포넌트들이 (도시된 엘리먼트들의 기능이 악영향을 받지 않는다고 가정할 때) 실제 실시형태에서 존재할 수도 있다.
또한, 본 명세서에서 "전송하는" 또는 “수신하는” 은 전송자와 수신자 간에 정보를 직접 전송 또는 수신하는 것뿐만 아니라, 달리 언급되지 않는다면 타 객체를 개재하여 정보를 전송 또는 수신하는 것을 포함할 수 있다.
또한, 본 명세서에서 달리 언급하지 않는다면, “제 1”, “제 2”, “제 3”과 같은 표현은 발명의 설명을 위하여 서로 다르게 지칭될 수 있는 대상을 구별하는 용어로 사용될 뿐, 반드시 순서를 규정하는 것은 아니다. 또한, “제 1”, “제 2” 로 구분되어 지칭된다고 할지라도, 그 지칭되는 대상의 내용이 경우에 따라 동일할 수도 있다.
이하, 도면을 참조하여 본 발명의 실시예들에 따른 데이터 유통 시스템 및 방법에 대해 설명하기로 한다.
도 1에는 본 발명의 일 실시예에 따른 데이터 유통 시스템이 도시되어 있다. 구체적으로, 하나 이상의 데이터 송신노드로부터 데이터 수신노드로 데이터가 유통되는 것을 관리하는 데이터 유통 시스템 (100) 은, 상기 데이터 수신노드로부터 오프체인 풀의 생성 요청을 수신함에 따라, 상기 데이터 수신노드에 상기 오프체인 풀의 식별번호를 송신하는 오프체인 풀 관리부 (110), 상기 데이터 수신노드가 상기 오프체인 풀을 통해 상기 데이터 송신노드로부터 수신한 상기 데이터에 대해서, 또는 상기 데이터 수신노드가 상기 데이터를 수신한 내역에 대해서, 머클트리를 이용하여 머클트리 루트 해쉬값을 도출함으로써, 상기 데이터의 무결성을 인증하거나 또는 상기 수신한 내역의 무결성을 인증하는 무결성 인증부 (120), 상기 하나 이상의 데이터 송신노드로부터 상기 데이터를 송신한 내역을 수신하며, 상기 수신한 내역과 상기 송신한 내역을 비교함으로써 상기 데이터의 유통에 오류가 없는지를 검증하는 데이터 유통 검증부(130), 상기 데이터 유통 검증부에서 상기 데이터의 유통에 오류가 없다고 검증된 경우, 상기 머클트리 루트 해쉬값을 블록체인에 저장하는 블록체인 저장부 (140)를 포함한다.
도 1을 참조하면, 본 발명의 일 실시예에 따른 데이터 유통 시스템 (100) 은 블록체인과 연결될 수 있다. 본 발명에서 블록체인은 퍼블릭 (Public) 블록체인, 프라이빗 (Private) 블록체인, 컨소시엄 (consortium) 블록체인 등이 될 수 있다. 본 발명의 일 실시예에 따른 블록체인은 이하 설명하는 특성을 가질 수 있으나, 이에 한정되는 것은 아니며 알려진 블록체인을 사용할 수 있다.
일 실시예에 있어서 본 발명의 블록체인을 구성하는 각 블록들은 해쉬 체인 (Hash Chain) 의 형태로 연결된다. 즉, n 번째 블록은 n-1 번째 블록의 해쉬 값을 저장한다. 따라서 어느 한 블록의 정보의 변경은, 해당 블록으로부터 산출한 해당 블록의 해쉬 값의 변경을 초래하고, 이는 그 다음 블록의 내용의 변경을 초래하기 때문에, 필수적으로 해당 블록 이후의 모든 블록들의 정보의 변경을 초래한다. 여기서 해쉬 값은 임의의 크기의 데이터를 미리 결정된 크기를 갖는 데이터로 변환하는 해쉬 함수에 의해 산출될 수 있다.
본 발명에서 블록체인은 상기에 설명된 이외의 알려진 블록체인 네트워크로 구현될 수도 있으며, 데이터 유통 시스템 (100) 과 별도의 외부 네트워크일 수 있지만, 필요에 따라 데이터 유통 시스템 (100)과 적어도 일부의 노드, 장치를 공유하는 방식으로 구현될 수도 있다.
본 발명에서, 데이터 송신노드는 데이터를 송신하는 사람, 디바이스, 컴퓨터, 서버 등을 의미할 수 있고, 데이터 수신노드는 데이터를 수신하는 사람, 디바이스, 컴퓨터, 서버 등을 의미할 수 있다. 상기 데이터를 P2P 파일 시스템을 이용하여 주고 받을 경우, 상기 데이터 송신노드 및 상기 데이터 수신노드는 피어 (Peer) 를 의미할 수 있고, 특히 상기 데이터 송신노드는 해당 데이터를 온전히 보유하고 있는 씨더를 의미할 수 있다.
일 실시예에 있어서, 상기 데이터를 주고 받는데 이용하는 상기 P2P 파일 시스템은 IPFS (Inter-Planetary File System) 일 수 있다. 또한, 상기 P2P 파일 시스템은 데이터 유통 시스템 (100)의 전용으로 구축된 시스템일 수도 있고, 외부 주체가 관리 유지하는 시스템일 수도 있다. 또한, 상기 P2P 파일 시스템은 데이터 유통 시스템 (100), 블록체인과 적어도 일부의 노드, 장치를 공유하는 방식으로 구현될 수도 있다. 다만, P2P 파일 시스템이 이에 한정되는 것은 아니며 필요에 따라 알려진 P2P 방식에 기초한 파일 시스템이 될 수 있다.
오프체인 풀 관리부 (110) 는, 상기 데이터 수신노드로부터 오프체인 풀의 생성 요청을 수신함에 따라, 상기 데이터 수신노드에 상기 오프체인 풀의 식별번호를 송신한다. 이때, 오프체인 풀은 상기 데이터 송신노드와 상기 데이터 수신노드간에 데이터가 유통되는 데이터 채널을 의미한다. 상기 식별번호는 오프체인 풀의 ID와 같이 오프체인 풀을 식별할수 있도록 하는 것을 의미하며, 상기 식별번호는 숫자, 알파벳, 기호, 글자, 그림, 소리 등일 수 있고, 또는 이들의 조합일 수 있으며, 숫자에만 한정되는 것은 아니다.
또한, 상기 오프체인 풀 관리부 (110) 는, 상기 데이터 수신노드로부터 오프체인 풀의 생성 요청을 수신한 후, 상기 데이터 수신노드에 상기 오프체인 풀의 식별번호를 즉시 송신할 수도 있고, 소정의 시간이 경과된 후에 송신할 수도 있다.
또한, 상기 오프체인 풀 관리부 (110) 는, 상기 데이터 수신노드로부터 오프체인 풀의 생성 요청을 수신한 후, 상기 오프체인 풀의 식별번호를 상기 데이터 수신노드에 자체적으로 제공할 수 있다. 구체적으로, 상기 오프체인 풀 관리부 (110) 가 미리 생성된 식별번호를 상기 데이터 수신노드에 송신할 수 도 있고, 또는 오프체인 풀의 생성 요청을 수신할 때 식별번호를 생성하여 송신할 수도 있다. 이때, 상기 식별번호는 상기 오프체인 풀의 생성요청의 정보에 근거할 수 있다. 구체적으로, 생성요청의 시간, 주체, 객제 등에 근거하여 식별번호를 생성할 수 있다.
또한, 상기 오프체인 풀 관리부 (110) 는, 상기 오프체인 풀의 식별번호를 상기 데이터 수신노드에 자체적으로 제공하는 것이 아니라, 상기 데이터 수신노드와 블록체인 사이에서 중개역할을 할 수도 있다. 구체적으로, 상기 오프체인 풀 관리부 (110) 가 상기 데이터 수신노드로부터 수신한 상기 오프체인 풀의 생성 요청을 블록체인에 송신하면, 상기 블록체인에서 상기 오프체인 풀 관리부 (110) 에 식별번호를 송신하며, 상기 오프체인 풀 관리부 (110) 는 수신한 상기 식별번호를 상기 데이터 수신노드에 송신할 수 있다. 이처럼, 식별번호가 블록체인으로부터 제공되는 경우에도, 상기 식별번호는 오프체인 풀의 생성 요청의 정보에 근거할 수 있으며, 또는 미리 생성된 식별번호가 바로 사용될 수도 있다.
본 발명에서 '오프체인 풀 관리부가 데이터 수신노드로부터 오프체인 풀의 생성 요청을 수신함에 따라, 상기 데이터 수신노드에 상기 오프체인 풀의 식별번호를 송신한다'는 것은 위와 같이 오프체인 풀 관리부 (110) 가 식별번호를 자체적으로 제공하는 것뿐만 아니라, 데이터 수신노드와 블록체인 사이에서 중개역할을 하는 것도 포함한다.
상기 무결성 인증부 (120) 는 상기 데이터 수신노드가 상기 오프체인 풀을 통해 상기 데이터 송신노드로부터 수신한 상기 데이터에 대해서, 머클트리를 이용하여 머클트리 루트 해쉬값을 도출함으로써, 상기 데이터의 무결성을 인증할 수 있다. 또는, 상기 무결성 인증부 (120) 는 상기 데이터 수신노드가 상기 데이터를 수신한 내역에 대해서, 머클트리를 이용하여 머클트리 루트 해쉬값을 도출함으로써, 상기 수신한 내역의 무결성을 인증할 수 있다.
상기 수신한 내역은 데이터 수신노드가 데이터 송신노드로부터 데이터를 수신한 내역을 의미하며, 상기 수신한 내역은 데이터 송신노드에 대한 정보(예를 들어, 송신노드의 IP, 명칭, 제조회사 등), 데이터 수신노드에 대한 정보(예를 들어, 수신노드의 IP, 명칭, 제조회사 등), 데이터 수신 시간, 데이터 크기, 데이터 개수, 데이터의 내용 등을 포함할 수 있다.
머클트리는 본 기술 분야에서 데이터의 간편하고 확실한 인증을 위해 사용되는 기술이다. 구체적으로, 도 1을 참고하면, 하나 이상의 송신노드와 수신노드 사이에 트랜잭션이 발생한다. 이때, 수신노드가 하나 이상의 송신노드로부터 수신한 최초 데이터들 중에서 인접한 두개의 데이터를 한쌍으로 묶어 합친 후 해쉬값으로 변환한다. 이와 같이 계속해서 해쉬값으로 변환하여 마지막 하나가 남을 때까지 이 과정을 반복하는데, 최종적으로 남은 하나의 해시값이 머클트리 루트 해쉬값이다.
보다 구체적으로, 도 4를 통해 머클트리 (암호학에서는 해쉬트리라고도 함) 의 동작구조를 설명한다. 머클트리는 만약 일부의 데이터가 손상될 경우 어떤 데이터가 손상되었는지 쉽게 찾아내어 손상된 데이터만을 다시 빠르게 전송받을 수 있다는 장점이 있다. 이러한 장점 때문에 P2P 망에서 전송받은 데이터의 무결성을 빠르게 검증하는 용도로 많이 사용된다. 대표적으로 비트토렌트에서도 사용하고 있다.
본 발명에서는 머클트리를 전송되는 데이터가 변경되지 않았음을 알기 위해서도 사용할 수 있지만, 마이크로 트랜잭션의 영수증들 (즉, 상기 수신한 내역) 의 집합을 검증하기 위한 목적으로 사용할 수 있으며, 그 결과값인 머클트리 루트 해쉬값을 블록체인에 저장할 수 있다. 구체적으로, 도 4에서, 리프들 (L1, L2, L3, L4) 은 각각이 상기 수신한 내역을 의미할 수 있다. 본 머클트리의 특징은 상기 수신한 내역들의 머클트리 루트 해쉬값 (Top Hash) 만 알면, 전체 수신한 내역들에 대해 검증할 수 있는 수단을 얻게된다. 머클트리 루트 해쉬값이 블록체인에 기록되고, 나중에 송신노드들의 전송기여분에 대한 정산에 문제가 발생했을 때, 전체 수신한 내역들을 갖고 머클트리 루트 해쉬값을 다시 추출하고 블록체인에 기록된 해쉬값과 비교하여 어느 수신한 내역에 문제가 있는지 빠르게 알 수 있다.
이처럼, 데이터 수신노드와 하나 이상의 데이터 송신노드간의 트랜잭션에서 발생한 데이터 또는 수신한 내역에 대하여 머클트리 루트 해쉬값을 도출함으로써 상기 데이터 또는 상기 수신한 내역의 무결성을 인증할 수 있다. 이때, 데이터 또는 수신한 내역의 무결성이란 데이터 또는 수신한 내역에 결손과 부정합이 없음을 의미하는 것이다.
상기 무결성 인증부 (120) 는 수신노드로부터 데이터를 수신한 후에, 수신한 데이터에 대해서 머클트리를 이용하여 머클트리 루트 해쉬값을 도출할 수도 있고, 또는 상기 무결성 인증부 (120) 가 수신노드에 접근하여, 수신노드에 저장되어 있는 데이터에 대해서 머클트리 루트 해쉬값을 도출한 후, 데이터 유통 시스템 (100) 이 상기 머클트리 루트 해쉬값을 수신하도록 하게 할 수도 있다.
마찬가지로, 상기 무결성 인증부 (120) 는 수신노드로부터 상기 수신한 내역을 수신한 후에, 수신한 상기 수신한 내역에 대해서 머클트리를 이용하여 머클트리 루트 해쉬값을 도출할 수도 있고, 또는 상기 무결성 인증부 (120) 가 수신노드에 접근하여, 수신노드에 저장되어 있는 상기 수신한 내역에 대해서 머클트리 루트 해쉬값을 도출한 후, 데이터 유통 시스템 (100) 이 상기 머클트리 루트 해쉬값을 수신하도록 하게 할 수도 있다.
한편, 일 실시예에 따라, 상기 무결성 인증부 (120) 는 데이터 송신노드가 데이터 수신노드에 데이터를 송신한 내역에 대해서도 머클트리를 이용하여 무결성을 인증할 수도 있다. 이 경우에도, 상기 무결성 인증부 (120) 는 송신노드로부터 상기 송신한 내역을 수신한 후에, 수신한 상기 송신한 내역에 대해서 머클트리를 이용하여 머클트리 루트 해쉬값을 도출할 수도 있고, 또는 상기 무결성 인증부 (120) 가 송신노드에 접근하여, 송신노드에 저장되어 있는 상기 송신한 내역에 대해서 머클트리 루트 해쉬값을 도출한 후, 데이터 유통 시스템 (100) 이 상기 머클트리 루트 해쉬값을 수신하도록 하게 할 수도 있다.
데이터 유통 검증부 (130) 는 상기 하나 이상의 데이터 송신노드로부터 상기 데이터를 송신한 내역을 수신하며, 상기 수신한 내역과 상기 송신한 내역을 비교함으로써 상기 데이터의 유통에 오류가 없는지를 검증한다. 이때, 데이터 유통 검증부 (130) 는 상기 수신한 내역을 데이터 수신노드로부터 직접 수신할 수도 있으며, 상기 무결성 인증부 (120) 를 통해 수신할 수도 있다. 또한, 상기 데이터 유통 검증부 (130) 는 상기 송신한 내역을 송신노드로부터 직접 수신할 수도 있으며, 상기 무결성 인증부 (120) 를 통해 수신할 수도 있다.
상기 데이터를 송신한 내역은 데이터 송신노드에 대한 정보, 데이터 수신노드에 대한 정보, 데이터 송신 시간, 데이터 크기, 데이터 개수, 데이터의 내용 등을 포함할 수 있다.
일 실시예에 따라, 도 2처럼, 데이터 수신노드가 데이터 송신노드로부터 데이터를 수신한 후에, 상기 데이터 송신노드에 전송 영수증을 발급할 수 있다. 이때, 상기 전송 영수증은 데이터 수신노드가 데이터를 수신하였음을 나타내는 것으로서, 데이터 송신노드에 대한 정보, 데이터 수신노드에 대한 정보, 데이터 수신 시간, 데이터 크기, 데이터 개수, 데이터의 내용 등에 대한 정보를 포함할 수 있다. 또한, 상기 전송 영수증은 데이터 수신노드의 개인키로 전자서명되어 있을 수 있으며, 데이터 송신노드는 상기 데이터 수신노드의 공개키를 이용하여 상기 전송 영수증의 진위여부를 검증할 수 있다.
일 실시예에 따라, 상기 데이터 송신노드가 데이터 유통 검증부 (130)로 송신하는 상기 송신한 내역은 상기 전송 영수증에 기초할 수 있다. 구체적으로, 상기 전송 영수증에 기재되어 있는 정보(예를 들어, 데이터 송신노드에 대한 정보, 데이터 수신노드에 대한 정보, 데이터 수신 시간, 데이터 크기, 데이터 개수, 데이터의 내용 등)를 이용하여 상기 송신한 내역을 구성할 수 있다.
데이터 유통 검증부 (130) 는 데이터를 송신한 내역 및 데이터를 수신한 내역이 서로 대응되는지 또는 일치하는지를 판단하여 데이터의 유통에 오류가 없는지를 검증할 수 있다. 예를들어, 도 1과 같이 수신노드가 제 1 송신노드로부터 2 개의 데이터를 수신하고, 제 2 송신노드로부터 2 개의 데이터를 수신하였다고 했을 때, 데이터 유통 검증부 (140) 는 제 1 송신노드로부터 '제 1 송신노드가 수신노드에 2 개의 데이터를 송신하였음'이라는 송신내역을 수신하고, 제 2 송신노드로부터 '제 2 송신노드가 수신노드에 2 개의 데이터를 송신하였음'이라는 송신내역을 수신하며, 수신노드로부터 '수신노드가 제 1 송신노드로부터 2 개의 데이터를 송신하였고, 제 2 송신노드로부터 2 개의 데이터를 송신하였음'이라는 수신내역을 수신한다. 그 후, 데이터 유통 검증부 (140) 는 상기 송신내역들과 상기 수신내역이 서로 일치하는지를 판단함으로써, 데이터의 유통에 오류가 없는지를 검증할 수 있다. 이 때, 데이터의 유통에 오류가 있다는 것은, 송신내역들 및 수신내역에 각각 개시되어 있는 데이터의 개수, 데이터의 내용, 데이터의 크기 등의 정보가 서로 일치하지 않는 것을 의미한다.
블록체인 저장부 (140) 는 상기 데이터 유통 검증부 (130) 에서 상기 데이터의 유통에 오류가 없다고 검증된 경우, 상기 머클트리 루트 해쉬값을 블록체인에 저장한다. 일 실시예에 따라, 도 3 처럼, 블록체인 저장부 (140) 는 상기 데이터 유통 검증부 (130) 에서 상기 데이터의 유통에 오류가 없다고 검증된 경우, 상기 블록체인에 상기 데이터의 메타정보 또는 거래내역을 더 저장할 수 있다. 이때, 상기 메타정보는 상기 데이터의 이름, 상기 데이터의 제작자, 상기 데이터의 제작연도 중 적어도 어느 하나를 포함할 수 있다. 또한, 상기 거래내역은 데이터 송신노드로부터 수신한 상기 송신한 내역 또는 데이터 수신노드로부터 수신한 상기 수신한 내역에 기초하여 생성된 것일 수 있다. 일 실시예에 따라, 상기 거래내역은 상기 송신한 내역 또는 상기 수신한 내역에 포함되어 있는 내용(예를 들어, 데이터 송신노드에 대한 정보, 데이터 수신노드에 대한 정보, 데이터 송수신시간, 데이터 크기, 데이터 개수, 데이터의 내용 등)을 취합하여 구성된 것일 수 있다.
일 실시예에 따라, 데이터 유통 시스템 (100) 은 정산부 (150) 를 더 포함할 수 있다. 도 2를 참조하면, 오프체인 풀 관리부 (110) 가 데이터 수신노드로부터 오프체인 풀의 생성 요청을 수신할 때, 상기 정산부 (150) 는 상기 데이터 수신노드로부터 소정의 비용을 받을 수 있다. 또한, 상기 정산부 (150) 는, 데이터 수신노드로부터 데이터의 수신이 완료되었음을 나타내는 수신 완료 메시지를 받은 후, 데이터를 송신한 데이터 송신노드에 전송 비용을 지불할 수 있다. 또는, 상기 정산부 (150) 는, 데이터 송신노드로부터 데이터의 송신이 완료되었음을 나타내는 송신 완료 메시지를 받은 후, 데이터를 송신한 데이터 송신노드에 전송 비용을 지불할 수 있다. 이때, 상기 전송 비용은 데이터 수신노드가 오프체인 풀의 생성 요청을 할 때 지불한 상기 소정의 비용 중 적어도 일부 일 수 있다. 이처럼, 데이터 송신노드가 데이터 송신에 대한 대가를 받게함으로써, 데이터 송신노드로 하여금 씨더로서의 역할을 하게 하여(즉, 컴퓨터를 켜놓은 상태를 유지하게 함), 데이터의 유통을 원활하게 할 수 있다.
일 실시예에 따라, 상기 정산부 (150) 는, 데이터 송신노드로부터의 송신 완료 메시지 및 데이터 수신노드로부터의 수신 완료 메시지를 모두 받은 후, 데이터를 송신한 데이터 송신노드에 전송 비용을 지불할 수 있다. 상기 정산부 (150) 가 송신 완료 메시지에만 의존할 경우, 전송 비용을 받는 당사자인 데이터 송신노드가 거짓 보고를 할 위험이 있으며, 반대로 상기 정산부 (150) 가 수신 완료 메시지에만 의존할 경우, 전송 비용을 지불하는 당사자인 데이터 수신노드도 거짓 보고를 할 위험이 있다. 이에, 상기 송신 완료 메시지 및 상기 수신 완료 메시지를 모두 받은 후에, 전송 비용을 지급함으로써, 위 문제점을 해결할 수 있다.
일 실시예에 따라, 상기 정산부 (150) 는 송신 완료 메시지, 수신 완료 메시지, 또는 양 메시지를 모두 받은 후라도, 데이터 유통 검증이 완료되었는지를 판단한 후에 전송 비용을 데이터 송신노드에 지불할 수 있다. 구체적으로, 상기 메시지 (즉, 송신 완료 메시지, 수신 완료 메시지, 또는 양 메시지) 를 받은 시점이 데이터 유통 검증부 (130) 에서 검증을 완료한 시점보다 이전이면, 상기 검증이 완료된 후에 전송 비용을 지불할 수 있다. 한편, 상기 메시지를 받은 시점이 상기 검증이 완료된 후라면, 상기 메시지를 받은 후에 바로 전송 비용을 지불할 수도 있다.
상기 정산부 (150) 는 정산 (즉, 데이터 수신노드로부터 소정의 비용을 받고, 데이터 송신노드에 전송 비용을 지불하는 것) 을 자체적으로 할 수도 있고, 데이터 송신노드 및 수신노드와 블록체인과의 사이에서 중개역할만을 할 수도 있다. 구체적으로, 상기 정산부 (150) 는 데이터 수신노드로부터 수신한 소정의 비용을 자체적으로 저장해두었다가, 데이터 송신노드에 직접 지불할 수도 있고, 또는 데이터 수신노드로부터 수신한 소정의 비용을 블록체인에 송신한 후, 블록체인으로부터 수신한 전송 비용을 데이터 송신노드에 전달할 수도 있다. 본 발명에서, '정산부가 데이터 수신노드로부터 소정의 비용을 받고, 데이터 송신노드에 전송 비용을 지불한다'는 것은 상기와 같이 자체적으로 정산하는 것과 블록체인에 중개역할을 하는 것을 모두 포함한다.
본 발명의 일 실시예에 따른 데이터 유통 방법은, 상기 데이터 수신노드로부터 오프체인 풀의 생성 요청을 수신함에 따라, 상기 데이터 수신노드에 상기 오프체인 풀의 식별번호를 송신하는 오프체인 풀 관리단계, 상기 데이터 수신노드가 상기 오프체인 풀을 통해 상기 데이터 송신노드로부터 수신한 상기 데이터에 대해서, 또는 상기 데이터 수신노드가 상기 데이터를 수신한 내역에 대해서, 머클트리를 이용하여 머클트리 루트 해쉬값을 도출함으로써, 상기 데이터의 무결성을 인증하거나 상기 수신한 내역의 무결성을 인증하는 무결성 인증단계, 상기 하나 이상의 데이터 송신노드로부터 상기 데이터를 송신한 내역을 수신하며, 상기 수신한 내역과 상기 송신한 내역을 비교함으로써 상기 데이터의 유통에 오류가 없는지를 검증하는 데이터 유통 검증단계, 상기 데이터 유통 검증단계에서 상기 데이터의 유통에 오류가 없다고 검증된 경우, 상기 머클트리 루트 해쉬값을 블록체인에 저장하는 블록체인 저장단계를 포함한다.
도 2를 참조하면, 상기 오프체인 풀 관리단계에서, 상기 데이터 수신노드로부터 상기 오프체인 풀의 생성 요청을 수신할 때, 상기 데이터 수신노드로부터 소정의 비용을 받을 수 있다.
또한, 도 2를 참조하면, 상기 데이터 유통 방법은, 데이터 수신노드로부터 데이터의 수신이 완료되었음을 나타내는 수신 완료 메시지를 받은 후, 하나 이상의 데이터 송신노드에 전송 비용을 지불하는 정산단계를 더 포함할 수 있다. 또는, 상기 정산단계에서는 상기 수신 완료 메시지가 아닌 송신 완료 메시지를 받은 후에 전송 비용을 지불할 수도 있고, 상기 수신 완료 메시지 및 상기 송신 완료 메시지를 모두 받은 후에 전송 비용을 지불할 수도 있다.
상기 정산단계는 상기 메시지 (즉, 송신 완료 메시지, 수신 완료 메시지, 또는 양 메시지) 를 받은 후라면, 언제든 수행될 수 있으며, 그 순서에 제한은 없다. 다만, 일 실시예에 따라서는, 상기 정산단계는 상기 메시지를 받은 시점과 데이터 유통 검증단계 중 더 늦은 때의 이후에 수행 될 수도 있다. 또한, 일 실시예에 따라서는, 상기 정산단계는 상기 메시지를 받은 시점과 블록체인 저장단계 중 더 늦은 때의 이후에 수행 될 수도 있다.
이러한 데이터 유통 방법들은 프로그램을 기록한 컴퓨터 판독 가능 저장 매체에서 수행될 수 있다.
컴퓨터 판독 가능 저장 매체는, 비제한적인 예로서, RAM, ROM, EEPROM, CD-ROM 또는 다른 광디스크 스토리지, 자기디스크 스토리지 또는 다른 자기 저장 디바이스들, 또는 원하는 프로그램 코드 수단을 명령들 또는 데이터 구조들의 형태로 저장하는데 사용될 수 있으며 범용 또는 특수-목적 컴퓨터, 또는 범용 또는 특수-목적 프로세서에 의해 액세스될 수 있는 임의의 다른 저장 매체를 포함할 수 있다. 디스크 (disk) 및 디스크 (disc) 는, 본원에서 사용할 때, 컴팩트 디스크 (CD), 레이저 디스크, 광 디스크, 디지털 다기능 디스크 (DVD), 플로피 디스크 및 Blu-ray 디스크를 포함하며, 디스크들 (disks) 은 데이터를 자기적으로 보통 재생하지만, 디스크들 (discs) 은 레이저로 데이터를 광학적으로 재생한다. 앞에서 언급한 것들의 조합들이 또한 컴퓨터 판독 가능 저장 매체의 범위 내에 포함되어야 한다.
이상 첨부된 도면을 참조하여 본 발명의 실시예들을 설명하였지만, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 본 발명이 그 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다.
100: 데이터 유통 시스템
110: 오프체인 풀 관리부
120: 무결성 인증부
130: 데이터 유통 검증부
140: 블록체인 저장부
150: 정산부

Claims (11)

  1. 하나 이상의 데이터 송신노드로부터 데이터 수신노드로 데이터가 유통되는 것을 관리하는 데이터 유통 시스템으로서,
    상기 데이터 수신노드로부터 오프체인 풀 (off-chain pool) 의 생성 요청을 수신함에 따라, 상기 데이터 수신노드에 상기 오프체인 풀의 식별번호를 송신하는 오프체인 풀 관리부;
    상기 데이터 수신노드가 상기 오프체인 풀을 통해 상기 데이터 송신노드로부터 수신한 상기 데이터에 대해서, 또는 상기 데이터 수신노드가 상기 데이터를 수신한 내역에 대해서, 머클트리 (Merkle Tree) 를 이용하여 머클트리 루트 해쉬값 (Merkle Tree Root Hash Value) 을 도출함으로써, 상기 데이터의 무결성을 인증하거나 또는 상기 수신한 내역의 무결성을 인증하는 무결성 인증부;
    상기 하나 이상의 데이터 송신노드로부터 상기 데이터를 송신한 내역을 수신하며, 상기 수신한 내역과 상기 송신한 내역이 서로 일치하는지를 판단함으로써 상기 데이터의 유통에서 누락되거나 잘못 추가된 데이터가 없는지를 검증하는 데이터 유통 검증부;
    상기 데이터 유통 검증부에서 상기 데이터의 유통에서 누락되거나 잘못 추가된 데이터가 없다고 검증된 경우, 상기 머클트리 루트 해쉬값을 블록체인에 저장하는 블록체인 저장부; 및
    상기 오프체인 풀 관리부가 상기 데이터 수신노드로부터 상기 오프체인 풀의 생성 요청을 수신할 때, 상기 데이터 수신노드로부터 소정의 비용을 받고, 상기 데이터 수신노드로부터 상기 데이터의 수신이 완료되었음을 나타내는 수신 완료 메시지를 받거나 또는 상기 데이터 송신노드로부터 상기 데이터의 송신이 완료되었음을 나타내는 송신 완료 메시지를 받은 후, 상기 하나 이상의 데이터 송신노드에 전송 비용을 지불하는 정산부를 포함하고,
    상기 데이터 유통 검증부에서 상기 데이터의 유통에서 누락되거나 잘못 추가된 데이터가 없다고 검증된 경우, 상기 블록체인 저장부는 상기 블록체인에 상기 데이터의 메타정보 또는 거래내역을 더 저장하며,
    상기 메타정보는 상기 데이터의 이름, 상기 데이터의 제작자, 상기 데이터의 제작연도 중 적어도 어느 하나를 포함하고,
    상기 거래내역은 상기 송신한 내역 또는 상기 수신한 내역에 기초하여 생성된 상기 데이터의 유통 내역인, 데이터 유통 시스템.
  2. 삭제
  3. 삭제
  4. 제 1 항에 있어서,
    상기 송신한 내역은 상기 데이터 수신노드가 상기 데이터 송신노드로부터 상기 데이터를 수신함에 따라 상기 데이터 송신노드에 발급한 전송 영수증에 기초하며, 상기 전송 영수증은 상기 데이터 수신노드의 개인키로 전자서명되어 있는, 데이터 유통 시스템.
  5. 삭제
  6. 하나 이상의 데이터 송신노드로부터 데이터 수신노드로 데이터가 유통되는 것을 관리하는 데이터 유통 방법으로서,
    상기 데이터 수신노드로부터 오프체인 풀 (off-chain pool) 의 생성 요청을 수신함에 따라, 상기 데이터 수신노드에 상기 오프체인 풀의 식별번호를 송신하고, 상기 데이터 수신노드로부터 소정의 비용을 받는 오프체인 풀 관리단계;
    상기 데이터 수신노드가 상기 오프체인 풀을 통해 상기 데이터 송신노드로부터 수신한 상기 데이터에 대해서, 또는 상기 데이터 수신노드가 상기 데이터를 수신한 내역에 대해서, 머클트리 (Merkle Tree) 를 이용하여 머클트리 루트 해쉬값 (Merkle Tree Root Hash Value) 을 도출함으로써, 상기 데이터의 무결성을 인증하거나 또는 상기 수신한 내역의 무결성을 인증하는 무결성 인증단계;
    상기 하나 이상의 데이터 송신노드로부터 상기 데이터를 송신한 내역을 수신하며, 상기 수신한 내역과 상기 송신한 내역이 서로 일치하는지를 판단함으로써 상기 데이터의 유통에서 누락되거나 잘못 추가된 데이터가 없는지를 검증하는 데이터 유통 검증단계;
    상기 데이터 유통 검증단계에서 상기 데이터의 유통에서 누락되거나 잘못 추가된 데이터가 없다고 검증된 경우, 상기 머클트리 루트 해쉬값을 블록체인에 저장하는 블록체인 저장단계; 및
    상기 데이터 수신노드로부터 상기 데이터의 수신이 완료되었음을 나타내는 수신 완료 메시지를 받거나 또는 상기 데이터 송신노드로부터 상기 데이터의 송신이 완료되었음을 나타내는 송신 완료 메시지를 받은 후, 상기 하나 이상의 데이터 송신노드에 전송 비용을 지불하는 정산단계를 포함하고,
    상기 데이터 유통 검증단계에서 상기 데이터의 유통에서 누락되거나 잘못 추가된 데이터가 없다고 검증된 경우, 상기 블록체인 저장단계에서는 상기 블록체인에 상기 데이터의 메타정보 또는 거래내역을 더 저장하며,
    상기 메타정보는 상기 데이터의 이름, 상기 데이터의 제작자, 상기 데이터의 제작연도 중 적어도 어느 하나를 포함하고,
    상기 거래내역은 상기 송신한 내역 또는 상기 수신한 내역에 기초하여 생성된 상기 데이터의 유통 내역인, 데이터 유통 방법.
  7. 삭제
  8. 삭제
  9. 제 6 항에 있어서,
    상기 송신한 내역은 상기 데이터 수신노드가 상기 데이터 송신노드로부터 상기 데이터를 수신함에 따라 상기 데이터 송신노드에 발급한 전송 영수증에 기초하며, 상기 전송 영수증은 상기 데이터 수신노드의 개인키로 전자서명되어 있는, 데이터 유통 방법.
  10. 삭제
  11. 제 6 항 또는 제 9 항의 방법을 수행하는 프로그램을 기록한 컴퓨터 판독 가능 저장 매체.
KR1020190113418A 2019-09-16 2019-09-16 블록체인을 이용한 데이터 유통 시스템 및 방법 Active KR102182750B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020190113418A KR102182750B1 (ko) 2019-09-16 2019-09-16 블록체인을 이용한 데이터 유통 시스템 및 방법
US16/687,109 US11669500B2 (en) 2019-09-16 2019-11-18 System and method for distributing data using block chain

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190113418A KR102182750B1 (ko) 2019-09-16 2019-09-16 블록체인을 이용한 데이터 유통 시스템 및 방법

Publications (1)

Publication Number Publication Date
KR102182750B1 true KR102182750B1 (ko) 2020-11-25

Family

ID=73645745

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190113418A Active KR102182750B1 (ko) 2019-09-16 2019-09-16 블록체인을 이용한 데이터 유통 시스템 및 방법

Country Status (2)

Country Link
US (1) US11669500B2 (ko)
KR (1) KR102182750B1 (ko)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20210142983A (ko) * 2020-05-19 2021-11-26 삼성에스디에스 주식회사 오프-체인 데이터 공유 시스템 및 그 방법
US11689354B2 (en) * 2020-10-07 2023-06-27 Oracle International Corporation Efficient and scalable mechanism to protect integrity and authenticity of large data sets in cloud logging environments

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101661933B1 (ko) * 2015-12-16 2016-10-05 주식회사 코인플러그 블록체인을 기반으로 하는 공인인증서 인증시스템 및 이를 이용한 인증방법
KR101727525B1 (ko) * 2016-09-05 2017-04-17 주식회사 스케일체인 블록체인 기반 분산 저장 방법 및 이를 이용한 장치
KR20190024601A (ko) * 2017-08-28 2019-03-08 김상한 가상화폐 거래 시스템 및 방법
KR20190059491A (ko) * 2017-11-23 2019-05-31 박동화 블록체인상에서 공유 분산장부와 외부 저장장치에 정보를 분리저장하여 구현한 안전한 전자상거래시스템
KR20190095067A (ko) * 2018-06-22 2019-08-14 주식회사 코인플러그 블록체인 기반의 머클트리를 이용한 정보 관리 방법, 이를 이용한 서버 및 단말

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001175757A (ja) * 1999-12-15 2001-06-29 Mitsubishi Electric Corp ネットワークによるデジタルコンテンツ配信システム
KR101661930B1 (ko) 2015-08-03 2016-10-05 주식회사 코인플러그 블록체인을 기반으로 하는 공인인증서 발급시스템
JP6389350B2 (ja) * 2016-03-31 2018-09-12 株式会社bitFlyer トランザクション処理装置、トランザクション処理方法、及びそのためのプログラム
US10878522B2 (en) * 2016-08-18 2020-12-29 First American Financial Corporation Systems and methods for using blockchains to record, manage, and transfer ownership rights to land titles
JP7072587B2 (ja) * 2017-06-14 2022-05-20 エヌチェーン ホールディングス リミテッド ブロックチェーン・ネットワークにおける暗号座礁リソースを回避又は削減するシステム及び方法
GB201720946D0 (en) * 2017-12-15 2018-01-31 Nchain Holdings Ltd Computer-implemented system and method
KR101937188B1 (ko) 2018-02-06 2019-04-09 주식회사 코인플러그 블록체인 기반의 머클트리를 이용한 정보 관리 방법, 이를 이용한 서버 및 단말
US20220038264A1 (en) * 2018-09-22 2022-02-03 David YAKIRA Decentralized key generation and distribution over a blockchain-based network
US11243917B2 (en) * 2018-10-03 2022-02-08 International Business Machines Corporation Blockchain implementing reliability database
US10459990B1 (en) * 2018-12-27 2019-10-29 Silver Rocket Data Technology (Shanghai) Co., Ltd Data processing method and device, medium and terminal thereof
KR102452250B1 (ko) * 2019-03-18 2022-10-07 한국전자통신연구원 오프체인 데이터 저장 방법 및 장치
TWI708154B (zh) * 2019-04-24 2020-10-21 國際信任機器股份有限公司 適用於區塊鏈與鏈下間協作的驗證系統與方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101661933B1 (ko) * 2015-12-16 2016-10-05 주식회사 코인플러그 블록체인을 기반으로 하는 공인인증서 인증시스템 및 이를 이용한 인증방법
KR101727525B1 (ko) * 2016-09-05 2017-04-17 주식회사 스케일체인 블록체인 기반 분산 저장 방법 및 이를 이용한 장치
KR20190024601A (ko) * 2017-08-28 2019-03-08 김상한 가상화폐 거래 시스템 및 방법
KR20190059491A (ko) * 2017-11-23 2019-05-31 박동화 블록체인상에서 공유 분산장부와 외부 저장장치에 정보를 분리저장하여 구현한 안전한 전자상거래시스템
KR20190095067A (ko) * 2018-06-22 2019-08-14 주식회사 코인플러그 블록체인 기반의 머클트리를 이용한 정보 관리 방법, 이를 이용한 서버 및 단말

Also Published As

Publication number Publication date
US20210081374A1 (en) 2021-03-18
US11669500B2 (en) 2023-06-06

Similar Documents

Publication Publication Date Title
US11139979B2 (en) Primary and secondary blockchain device
US10944570B2 (en) Method and server for providing notary service for file and verifying file recorded by notary service
US10372942B1 (en) Method and server for providing notary service for file and verifying file recorded by notary service
US20200403805A1 (en) Systems and Methods for a Decentralized Data Authentication Platform
US8086842B2 (en) Peer-to-peer contact exchange
CN102077506B (zh) 用于对等存储系统的安全结构
KR101937220B1 (ko) 키 관리가 필요없는 블록체인을 기반한 전자서명 또는 메시지 인증 코드를 생성 및 검증 방법
EP3869376B1 (en) System and method for blockchain based decentralized storage with dynamic data operations
TW202135504A (zh) 平台服務驗證技術
CN109039649A (zh) 一种ccn中基于区块链的密钥管理方法、装置及存储介质
KR102263202B1 (ko) 분산 ID 를 이용한 IoT 디바이스의 인증 방법 및 시스템
CN114614990B (zh) 基于区块链的电子合同签章方法
Konashevych Cross-blockchain protocol for public registries
KR20240074718A (ko) 개인정보의 익명성을 제공하는 블록체인 시스템 및 블록체인에서 개인정보의 익명성을 제공하는 방법
KR102182750B1 (ko) 블록체인을 이용한 데이터 유통 시스템 및 방법
CN111753014A (zh) 基于区块链的身份认证方法及装置
US20240333702A1 (en) Data processing method and apparatus, computer device, and readable storage medium
KR102121245B1 (ko) 복수의 블록체인망들 간의 데이터 공유 시스템 및 방법
CN114978621A (zh) 一种支持数字内容全量可信存储的nft系统
CN112699406B (zh) 基于区块链的医疗影像数据安全管理方法和系统
Ali et al. Blockstack technical whitepaper
CN112948847B (zh) 基于区块链的数据共享系统及数据正确性验证方法
CN112468438B (zh) 一种区块链存储节点的授权方法、装置、设备及可读介质
CN114629684A (zh) 基于区块链的权限令牌处理方法、系统、装置及存储介质
KR102370054B1 (ko) 탈중앙화된 컨텐츠 제공 시스템 및 방법

Legal Events

Date Code Title Description
PA0109 Patent application

Patent event code: PA01091R01D

Comment text: Patent Application

Patent event date: 20190916

PA0201 Request for examination
PA0302 Request for accelerated examination

Patent event date: 20190916

Patent event code: PA03022R01D

Comment text: Request for Accelerated Examination

PE0902 Notice of grounds for rejection

Comment text: Notification of reason for refusal

Patent event date: 20191111

Patent event code: PE09021S01D

PE0601 Decision on rejection of patent

Patent event date: 20200306

Comment text: Decision to Refuse Application

Patent event code: PE06012S01D

Patent event date: 20191111

Comment text: Notification of reason for refusal

Patent event code: PE06011S01I

PX0901 Re-examination

Patent event code: PX09011S01I

Patent event date: 20200306

Comment text: Decision to Refuse Application

Patent event code: PX09012R01I

Patent event date: 20200110

Comment text: Amendment to Specification, etc.

PX0601 Decision of rejection after re-examination

Comment text: Decision to Refuse Application

Patent event code: PX06014S01D

Patent event date: 20200605

Comment text: Amendment to Specification, etc.

Patent event code: PX06012R01I

Patent event date: 20200504

Comment text: Decision to Refuse Application

Patent event code: PX06011S01I

Patent event date: 20200306

Comment text: Amendment to Specification, etc.

Patent event code: PX06012R01I

Patent event date: 20200110

Comment text: Notification of reason for refusal

Patent event code: PX06013S01I

Patent event date: 20191111

PJ0201 Trial against decision of rejection

Patent event date: 20200703

Comment text: Request for Trial against Decision on Refusal

Patent event code: PJ02012R01D

Patent event date: 20200605

Comment text: Decision to Refuse Application

Patent event code: PJ02011S01I

Patent event date: 20200306

Comment text: Decision to Refuse Application

Patent event code: PJ02011S01I

Appeal kind category: Appeal against decision to decline refusal

Decision date: 20200908

Appeal identifier: 2020101001705

Request date: 20200703

PJ1301 Trial decision

Patent event code: PJ13011S01D

Patent event date: 20200908

Comment text: Trial Decision on Objection to Decision on Refusal

Appeal kind category: Appeal against decision to decline refusal

Request date: 20200703

Decision date: 20200908

Appeal identifier: 2020101001705

PS0901 Examination by remand of revocation
E902 Notification of reason for refusal
PE0902 Notice of grounds for rejection

Comment text: Notification of reason for refusal

Patent event date: 20201008

Patent event code: PE09021S01D

GRNO Decision to grant (after opposition)
PS0701 Decision of registration after remand of revocation

Patent event date: 20201104

Patent event code: PS07012S01D

Comment text: Decision to Grant Registration

Patent event date: 20200909

Patent event code: PS07011S01I

Comment text: Notice of Trial Decision (Remand of Revocation)

GRNT Written decision to grant
PR0701 Registration of establishment

Comment text: Registration of Establishment

Patent event date: 20201119

Patent event code: PR07011E01D

PR1002 Payment of registration fee

Payment date: 20201119

End annual number: 3

Start annual number: 1

PG1601 Publication of registration