KR20210142983A - 오프-체인 데이터 공유 시스템 및 그 방법 - Google Patents
오프-체인 데이터 공유 시스템 및 그 방법 Download PDFInfo
- Publication number
- KR20210142983A KR20210142983A KR1020200059823A KR20200059823A KR20210142983A KR 20210142983 A KR20210142983 A KR 20210142983A KR 1020200059823 A KR1020200059823 A KR 1020200059823A KR 20200059823 A KR20200059823 A KR 20200059823A KR 20210142983 A KR20210142983 A KR 20210142983A
- Authority
- KR
- South Korea
- Prior art keywords
- storage node
- chain data
- node
- data
- chain
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 53
- 230000005540 biological transmission Effects 0.000 claims abstract description 22
- 230000008520 organization Effects 0.000 claims description 64
- 238000013475 authorization Methods 0.000 claims description 8
- 230000001419 dependent effect Effects 0.000 claims description 5
- 238000012795 verification Methods 0.000 description 11
- 238000004891 communication Methods 0.000 description 10
- 230000008569 process Effects 0.000 description 10
- 238000004590 computer program Methods 0.000 description 7
- 238000010586 diagram Methods 0.000 description 7
- 238000005516 engineering process Methods 0.000 description 7
- 230000006870 function Effects 0.000 description 6
- 238000012545 processing Methods 0.000 description 5
- 230000004044 response Effects 0.000 description 4
- 101100462297 Arabidopsis thaliana ORG2 gene Proteins 0.000 description 3
- 238000012790 confirmation Methods 0.000 description 2
- 238000013523 data management Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 239000004744 fabric Substances 0.000 description 1
- 230000012447 hatching Effects 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/13—File access structures, e.g. distributed indices
- G06F16/134—Distributed indices
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic 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/3236—Cryptographic 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/3239—Cryptographic 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic 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/0618—Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
- H04L9/0637—Modes of operation, e.g. cipher block chaining [CBC], electronic codebook [ECB] or Galois/counter mode [GCM]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/182—Distributed file systems
- G06F16/1834—Distributed file systems implemented based on peer-to-peer networks, e.g. gnutella
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/606—Protecting data by securing the transmission between two devices or processes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/64—Protecting data integrity, e.g. using checksums, certificates or signatures
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/02—Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/10—Network architectures or network communication protocols for network security for controlling access to devices or network resources
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/12—Applying verification of the received information
- H04L63/123—Applying verification of the received information received data contents, e.g. message integrity
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/06—Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/0819—Key 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/0825—Key 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) using asymmetric-key encryption or public key infrastructure [PKI], e.g. key signature or public key certificates
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic 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/3247—Cryptographic 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/50—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
-
- H04L2209/38—
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/104—Peer-to-peer [P2P] networks
- H04L67/1087—Peer-to-peer [P2P] networks using cross-functional networking aspects
- H04L67/1093—Some peer nodes performing special functions
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1097—Protocols 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 Security & Cryptography (AREA)
- Theoretical Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- General Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Software Systems (AREA)
- Computing Systems (AREA)
- Databases & Information Systems (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Health & Medical Sciences (AREA)
- Data Mining & Analysis (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
서로 다른 스토리지 노드 간에 오프-체인 데이터를 공유하는 시스템 및 그 방법이 제공된다. 본 발명의 몇몇 실시예들에 따르면, 서로 다른 스토리지 노드 간에 오프-체인 데이터가 공유되는 채널 상에 구비되는 데이터 스트림 허브가 블록체인에 기록된 데이터를 참조하여 상기 오프-체인 데이터의 송수신을 중계한다.
Description
본 발명은 서로 다른 스토리지 장치 간에 데이터를 공유하는 시스템 및 그 방법에 관한 것이다. 보다 자세하게는, 블록체인을 통하여 그 이력이 관리되는 데이터 공유에 관한 것이다. 블록체인을 통하여 그 데이터의 등록 및 공유의 이력이 관리되는 점에서, 상기 공유되는 데이터는 실질적으로 블록체인 상에서 공유되는 것으로 이해될 수 있을 것이며, 이러한 점에서 상기 공유 되는 데이터는 오프-체인 데이터(OFF-CHAIN DATA)로 지칭될 수 있을 것이다.
블록체인(blockchain)은 지속적으로 증가하는 데이터를 특정 단위의 블록에 기록하고, P2P(peer-to-peer) 네트워크를 구성하는 각각의 블록체인 노드들이 블록을 체인 형태의 자료 구조로 관리하는 데이터 관리 기술 또는 자료 구조 그 자체를 의미한다. 블록체인 기술은 네트워크에 속한 모든 블록체인 노드가 트랜잭션을 기록하고 검증하는 합의(consensus) 프로세스를 통해 트랜잭션의 무결성 및 보안성을 보장할 수 있다.
블록체인에 기록되는 데이터는 온-체인(on-chain) 데이터라 지칭되고, 블록체인 기술을 기반으로 관리되나 블록체인에 기록되지 못하는 데이터는 오프-체인(off-chain) 데이터라 지칭된다. 블록체인을 구성하는 각각의 블록은 그 사이즈가 제한적이기도 하고, 블록체인 자체가 비싼 자원이므로 신뢰성 있게 관리되어야 하는 모든 데이터가 블록체인 상에 기록될 수는 없는 것이다. 즉, 블록체인에 대한 데이터 액세스 요청에 응답하여, 모든 데이터를 블록체인 상에 온-체인 데이터로서 저장하는 것에는 한계가 있다.
위에서 설명된 오프-체인 데이터의 공유에 대한 수요가 있을 수 있다. 예를 들어, 보안 기술에 의하여 패킷 송수신이 선택적으로 차단되는 제1 내부망의 스토리지 노드에 저장된 오프-체인 데이터가 상기 오프-체인 데이터의 소유자에 의하여 제2 내부망에 공유된 경우, 상기 제2 내부망의 스토리지 노드로 상기 오프-체인 데이터가 전달되어야 할 것이다. 이 때, 제1 내부망 측에서는 상기 제2 내부망에 대한 패킷 송수신 허용 세팅을 하여야 한다. 이러한 방식으로 패킷 송수신을 세팅하여야 공유가 가능하다면, 관리 부담이 가중되고, 보안 측면에서도 예상치 못한 위험이 생길 수 있다.
본 발명의 몇몇 실시예들을 통하여 달성하고자 하는 기술적 과제는, 서로 다른 스토리지 노드 간에 오프-체인 데이터를 공유하는 시스템 및 그 방법을 제공하는 것이다.
본 발명의 몇몇 실시예들을 통하여 달성하고자 하는 다른 기술적 과제는, 서로 다른 스토리지 노드 간에 오프-체인 데이터를 공유함에 있어서, 보안적 위험성이 최소화되는 시스템 및 그 방법을 제공하는 것이다.
본 발명의 몇몇 실시예들을 통하여 달성하고자 하는 또 다른 기술적 과제는, 서로 다른 스토리지 노드 간에 오프-체인 데이터를 공유함에 있어서, 공유 대상 스토리지 노드 또는 공유 대상 조직에 대한 등록 절차를 수행하는 등 사전 절차가 필요하지 않는 시스템 및 그 방법을 제공하는 것이다.
본 발명의 몇몇 실시예들을 통하여 달성하고자 하는 또 다른 기술적 과제는, 서로 다른 스토리지 노드 간의 데이터 공유 이력을 정확하게 공증하고, 그 이력을 블록체인에 기록함으로 인하여, 데이터 공유 사실의 신뢰성을 담보할 수 있는 시스템 및 그 방법을 제공하는 것이다.
본 발명의 기술적 과제들은 이상에서 언급한 기술적 과제들로 제한되지 않으며, 언급되지 않은 또 다른 기술적 과제들은 아래의 기재로부터 본 발명의 기술분야에서의 통상의 기술자에게 명확하게 이해될 수 있을 것이다.
상기 기술적 과제를 해결하기 위한, 본 발명의 일 실시예에 따른 블록체인 데이터 기록 방법은 오프-체인 데이터를 저장하는 제1 스토리지 노드와, 상기 오프-체인 데이터의 권한 정보를 기록하는 원장(ledger)을 저장하는 블록체인 노드와, 상기 권한 정보를 참조하여, 상기 제1 스토리지 노드와 상기 오프-체인 데이터를 요청한 제2 스토리지 노드 간의 데이터 송수신을 중계하는 데이터 스트림 허브를 포함할 수 있다.
몇몇 실시예에서, 상기 데이터 스트림 허브는, 상기 제2 스토리지 노드의 상기 오프-체인 데이터의 요청이 있는 경우에 한하여 상기 데이터 송수신을 중계하거나, 상기 블록체인 노드가 속한 블록체인 네트워크에 포함된 노드로서, 상기 데이터 스트림 허브에 종속된 노드인 DSH-노드를 통해 상기 권한 정보에 액세스 하거나, 상기 블록체인 노드가 속한 블록체인 네트워크에 포함된 노드로서, 상기 원장을 분산 저장할 수 있다.
몇몇 실시예에서, 상기 블록체인 노드는, 상기 제1 스토리지 노드에 종속된 노드로서, 상기 제1 스토리지 노드에 저장되는 오프-체인 데이터에 대한 트랜잭션을 상기 원장에 등록하는 것일 수 있다.
몇몇 실시예에서, 상기 제1 스토리지 노드는 상기 데이터 스트림 허브를 제외한 보안 네트워크 외부 장치와의 연결이 차단되는 보안 네트워크 내부에 위치하는 것일 수 있다. 이 때, 상기 제1 스토리지 노드는, 제1 조직의 보안 네트워크 내부에 위치하고, 상기 제2 스토리지 노드는, 상기 제1 조직과 상이한 제2 조직의 보안 네트워크 내부에 위치하며, 상기 데이터 스트림 허브는, 상기 제1 조직의 보안 네트워크 외부에 위치하면서, 상기 제2 조직의 보안 네트워크 외부에 위치하는 것일 수 있다.
몇몇 실시예에서, 상기 데이터 스트림 허브는, 상기 제2 스토리지 노드로부터 상기 제1 스토리지 노드에 저장된 오프-체인 데이터에 대한 요청을 수신하고, 상기 권한 정보를 참조하여 상기 제2 스토리지 노드가 상기 오프-체인 데이터에 대한 권한을 보유하고 있는지 확인할 수 있다. 이 때, 상기 제2 스토리지 노드는, 상기 제1 스토리지 노드의 네트워크 주소에 대한 정보를 보유하고 있지 않은 것이거나, 상기 데이터 스트림 허브는 상기 블록체인 노드가 속한 블록체인 네트워크에 포함된 노드로서, 상기 데이터 스트림 허브에 종속된 노드인 DSH-노드를 통해 상기 권한 정보에 액세스 하고, 상기 제2 스토리지 노드가 상기 오프-체인 데이터에 대한 권한을 보유하고 있는 것으로 확인 된 경우, 상기 제1 스토리지 노드에 상기 오프-체인 데이터를 요청하는 제1 동작과, 상기 제1 스토리지 노드로부터 상기 오프-체인 데이터를 수신하는 제2 동작과, 상기 제2 스토리지 노드에 상기 오프-체인 데이터를 송신하는 것을 수행하는 제3 동작을 수행하고, 상기 DSH-노드를 이용하여 상기 제1 동작, 상기 제2 동작 및 상기 제3 동작 중 적어도 하나의 트랜잭션을 상기 원장에 등록하는 것일 수 있다. 예를 들어, 상기 데이터 스트림 허브는, 상기 DSH-노드를 이용하여 상기 제1 동작, 상기 제2 동작 및 상기 제3 동작의 트랜잭션을 상기 원장에 등록할 수도 있을 것이다.
상기 수신된 요청은 상기 조직의 비밀키를 이용하여 생성된 시그니처를 포함하고, 상기 데이터 스트림 허브는, 상기 제2 스토리지 노드가 속한 조직의 공개키를 저장하고, 상기 수신된 요청의 시그니처를 상기 제2 스토리지 노드가 속한 조직의 공개키를 이용하여 인증하고, 상기 시그니처가 인증 실패한 경우, 상기 제2 스토리지 노드에 실패 메시지를 송신할 수 있다. 이 때, 상기 데이터 스트림 허브는, 상기 제2 스토리지 노드가 속한 조직의 네트워크 주소 정보를 더 저장하고, 상기 수신된 요청의 발신 주소 정보를 상기 네트워크 주소 정보와 비교함으로써, 상기 제2 스토리지 노드가 속한 조직을 식별하거나, 상기 제1 스토리지 노드로부터 상기 제1 스토리지 노드의 조직의 비밀키로 암호화된 오프-체인 데이터를 수신하고, 상기 제1 스토리지 노드의 조직의 공개키로 암호화된 오프-체인 데이터를 복호화하고, 상기 오프-체인 데이터를 상기 제2 스토리지 노드의 조직의 공개키로 암호화 하여 송신하거나, 상기 제1 스토리지 노드의 조직의 비밀키로 암호화된 오프-체인 데이터가 상기 제1 스토리지 노드로부터 수신되면, 상기 수신된 암호화된 오프-체인 데이터를 그대로 상기 제2 스토리지 노드에 전달하되, 상기 제2 스토리지 노드에 상기 데이터 스트림 허브의 비밀키로 암호화 된 상기 제1 스토리지 노드의 조직의 공개키를 송신하거나, , 상기 제1 스토리지 노드에 상기 제2 스토리지 노드의 공개키를 제공하고, 상기 제1 스토리지 노드로부터 상기 제2 스토리지 노드의 공개키로 암호화 된 오프-체인 데이터를 수신하고, 상기 암호화 된 오프-체인 데이터를 상기 제2 스토리지 노드에 송신할 수 있다.
상기 기술적 과제를 해결하기 위한, 본 발명의 다른 실시예에 따른 오프-체인 데이터 공유 방법은, 제2 스토리지 노드로부터 제1 스토리지 노드에 저장된 오프-체인 데이터의 송신을 요청 받는 단계와, 상기 오프-체인 데이터의 권한 정보가 블록체인을 통하여 분산 저장된 원장에, 상기 제2 스토리지 노드의 상기 오프-체인 데이터 권한 보유에 대한 트랜잭션이 존재하는지 조회하는 단계와, 상기 조회의 결과, 상기 제2 스토리지 노드의 상기 오프-체인 데이터 권한 보유가 확인 되면, 상기 제1 스토리지 노드에 상기 오프-체인 데이터를 요청하여 수신 받고, 수신된 상기 오프-체인 데이터를 상기 제2 스토리지 노드에 전달하는 단계를 포함할 수 있다. 이 때, 상기 제1 스토리지 노드는, 상기 제1 스토리지 노드에 종속된 블록체인 노드를 통하여 상기 오프-체인 데이터를 상기 제2 스토리지 노드에 공유하는 트랜잭션을 상기 원장에 기록하고, 상기 컴퓨팅 장치는, 상기 컴퓨팅 장치에 종속된 블록체인 노드를 통하여 상기 원장에 액세스 하는 것일 수 있다.
상기 기술적 과제를 해결하기 위한, 본 발명의 따른 실시예에 따른 오프-체인 데이터 공유 시스템은 오프-체인 데이터의 권한 정보를 기록하는 원장(ledger)을 저장하는 블록체인 노드와, 상기 오프-체인 데이터의 청크(chunk)를 분산 저장하는 제1 스토리지 노드들과, 상기 제1 스토리지 노드들과 같은 보안 네트워크 내부에 위치하며, 상기 권한 정보를 참조하여, 상기 오프-체인 데이터를 요청한 제2 데이터 스트림 허브에 상기 오프-체인 데이터를 송신할지 여부를 결정하는 제1 데이터 스트림 허브를 포함할 수 있다. 이 때, 상기 제2 데이터 스트림 허브는, 상기 보안 네트워크 외부에 위치하는 것일 수 있다.
몇몇 실시예들에서, 상기 제1 스토리지 노드들은, 상기 제1 스토리지 노드들과 같은 보안 네트워크 내부에 위치하는 클라이언트로부터 원본 오프-체인 데이터를 수신하여 저장하는 제1-1 스토리지 노드와, 제1-2 스토리지 노드들을 포함하고, 상기 제1-1 스토리지 노드는, 상기 제1 데이터 스트림 허브에 상기 제1-2 스토리지 노드들의 공개키를 요청하고, 상기 요청에 따라 수신된 공개키의 개수를 이용하여 상기 원본 오프-체인 데이터를 청킹(chunking)하는 것일 수 있다. 상기 제1-1 스토리지 노드는, 상기 청킹의 결과를 가리키는 청킹맵을 저장하되, 상기 청킹맵은, 각 청크를 저장하는 스토리지 노드들의 공개키를, 각 청크의 순서대로 배열한 것일 수 있다. 또한, 상기 제1-1 스토리지 노드는, 상기 청킹의 결과를 가리키는 청킹맵을 저장하고, 상기 제1 데이터 스트림 허브는, 상기 제2 데이터 스트림 허브에 상기 오프-체인 데이터를 송신하는 것으로 결정한 경우, 상기 제1-1 스토리지 노드에 상기 청킹맵을 요청하여 수신하며, 상기 청킹맵을 이용하여 상기 오프-체인 데이터의 청크들을 수집함으로써, 상기 오프-체인 데이터를 구성하는 것일 수 있다.
몇몇 실시예들에서, 상기 블록체인 노드는, 각각의 제1 스토리지 노드에 종속된 노드로서, 상기 제1 스토리지 노드에 저장되는 오프-체인 데이터에 대한 트랜잭션을 상기 원장에 등록하는 것일 수 있다.
몇몇 실시예들에서, 상기 보안 네트워크는 제1 조직의 내부망이고, 상기 제2 데이터 스트림 허브는 상기 제1 조직과 상이한 제2 조직의 보안 내트워크 내부망에 위치하는 것이며, 상기 보안 네트워크는 상기 제1 데이터 스트림 허브와 상기 제2 데이터 스트림 허브 사이의 데이터 송수신을 예외적으로 허용하는 것일 수 있다.
몇몇 실시예들에서, 상기 오프-체인 데이터 공유 시스템은, 상기 제2 데이터 스트림 허브 및 상기 오프-체인 데이터의 청크(chunk)를 분산 저장하도록 구성된 제2 스토리지 노드들을 더 포함하고, 상기 제2 스토리지 노드들은, 상기 오프-체인 데이터의 공유 권한을 보유하는 제2-1 스토리지 노드와, 제2-2 스토리지 노드들을 포함하고, 상기 제2 데이터 스트림 허브는, 상기 오프-체인 데이터를 상기 제1 데이터 스트림 허브로부터 수신하여, 상기 제2-1 스토리지 노드에 송신하고, 상기 제2-1 스토리지 노드는, 상기 오프-체인 데이터를 상기 제2 데이터 스트림 허브로부터 수신하면, 상기 오프-체인 데이터를 청킹하고, 각각의 청크를 상기 제2 데이터 스트림 허브를 통하여, 상기 제2-2 스토리지 노드들에 분산 저장할 수 있다.
도 1 내지 도 3은 본 발명의 일 실시예에 따른 오프-체인 데이터 공유 시스템의 구성도이다.
도 4a 내지 도 4g는 도 1 내지 도 3을 참조하여 설명한 오프-체인 데이터 공유 시스템을 설명하기 위한 도면들이다.
도 5는 본 발명의 다른 실시예에 따른 오프-체인 데이터 공유 시스템을 설명하기 위한 도면이다.
도 6은 도 5를 참조하여 설명한 오프-체인 데이터 공유 시스템에 따른 블록체인 네트워크 구성을 설명하기 위한 도면이다.
도 7은 도 5를 참조하여 설명한 오프-체인 데이터 공유 시스템의 변형된 구성을 설명하기 위한 도면이다.
도 8은 본 발명의 다른 실시예에 따른 데이터 스트림 허브의 하드웨어 구성도이다.
도 9는 본 발명의 또 다른 실시예에 따른 오프-체인 데이터 공유 방법의 순서도이다.
도 4a 내지 도 4g는 도 1 내지 도 3을 참조하여 설명한 오프-체인 데이터 공유 시스템을 설명하기 위한 도면들이다.
도 5는 본 발명의 다른 실시예에 따른 오프-체인 데이터 공유 시스템을 설명하기 위한 도면이다.
도 6은 도 5를 참조하여 설명한 오프-체인 데이터 공유 시스템에 따른 블록체인 네트워크 구성을 설명하기 위한 도면이다.
도 7은 도 5를 참조하여 설명한 오프-체인 데이터 공유 시스템의 변형된 구성을 설명하기 위한 도면이다.
도 8은 본 발명의 다른 실시예에 따른 데이터 스트림 허브의 하드웨어 구성도이다.
도 9는 본 발명의 또 다른 실시예에 따른 오프-체인 데이터 공유 방법의 순서도이다.
이하, 첨부된 도면을 참조하여 본 발명의 실시예들을 상세히 설명한다. 본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나 본 발명의 기술적 사상은 이하의 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 이하의 실시예들은 본 발명의 기술적 사상을 완전하도록 하고, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 본 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명의 기술적 사상은 청구항의 범주에 의해 정의될 뿐이다.
각 도면의 구성요소들에 참조부호를 부가함에 있어서, 동일한 구성요소들에 대해서는 비록 다른 도면상에 표시되더라도 가능한 한 동일한 부호를 가지도록 하고 있음에 유의해야 한다. 또한, 본 발명을 설명함에 있어, 관련된 공지 구성 또는 기능에 대한 구체적인 설명이 본 발명의 요지를 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명은 생략한다.
다른 정의가 없다면, 본 명세서에서 사용되는 모든 용어(기술 및 과학적 용어를 포함)는 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 공통적으로 이해될 수 있는 의미로 사용될 수 있다. 또 일반적으로 사용되는 사전에 정의되어 있는 용어들은 명백하게 특별히 정의되어 있지 않는 한 이상적으로 또는 과도하게 해석되지 않는다. 본 명세서에서 사용된 용어는 실시예들을 설명하기 위한 것이며 본 발명을 제한하고자 하는 것은 아니다. 본 명세서에서, 단수형은 문구에서 특별히 언급하지 않는 한 복수형도 포함한다.
또한, 본 발명의 구성 요소를 설명하는 데 있어서, 제1, 제2, A, B, (a), (b) 등의 용어를 사용할 수 있다. 이러한 용어는 그 구성 요소를 다른 구성 요소와 구별하기 위한 것일 뿐, 그 용어에 의해 해당 구성 요소의 본질이나 차례 또는 순서 등이 한정되지 않는다. 어떤 구성 요소가 다른 구성요소에 "연결", "결합" 또는 "접속"된다고 기재된 경우, 그 구성 요소는 그 다른 구성요소에 직접적으로 연결되거나 또는 접속될 수 있지만, 각 구성 요소 사이에 또 다른 구성 요소가 "연결", "결합" 또는 "접속"될 수도 있다고 이해되어야 할 것이다.
이하, 본 발명의 몇몇 실시예들에 대하여 첨부된 도면에 따라 상세하게 설명한다.
도 1은 본 발명의 일 실시예에 따른 오프-체인 데이터 공유 시스템을 나타내는 예시적인 구성도이다.
도 1에 도시된 바와 같이, 본 실시예에 따른 오프-체인 데이터 공유 시스템은 블록체인 네트워크(300)를 구성하는 하나 이상의 블록체인 노드(200)와, 하나 이상의 스토리지 노드(400)와, 서비스 서버(10)를 포함할 수 있다.
블록체인 노드(200)는 P2P(peer-to-peer) 구조의 블록체인 네트워크를 구성하고, 블록체인 프로토콜에 따라 동작하는 노드이다. 각 블록체인 노드(200)는 원장(ledger)을 관리할 수 있다. 몇몇 실시예에서, 상기 원장은 트랜잭션(transaction) 데이터가 기록된 블록체인과 상태 레코드(e.g. 상태 키와 대응되는 상태 값)가 저장된 상태 DB(state database)를 포함할 수 있다. 또한, 상기 트랜잭션 데이터에는 해당 트랜잭션과 연관된 상태 레코드가 포함될 수 있다. 블록체인 노드(200)는 블록체인을 통해 각종 스마트 컨트랙트, 트랜잭션 데이터를 공유할 수 있고, 합의 프로세스를 통해 트랜잭션의 무결성 및 보안성을 보장할 수 있다. 상기 블록체인에 기록되는 데이터를 온-체인 데이터로 지칭하기로 한다.
스토리지 노드(400)는 오프-체인 데이터를 저장하는 장치이다. 상기 오프-체인 데이터의 라이프사이클(life cycle)은 빠짐없이 상기 온-체인 데이터로서 기록된다. 예를 들어, 상기 오프-체인 데이터의 CRUD(Create, Read, Update, Delete) 이력, 상기 오프-체인 데이터의 액세스 권한 부여, 기 부여된 액세스 권한의 변경, 기 부여된 액세스 권한의 철회, 상기 오프-체인 데이터의 공유 관련 사항, 공유된 오프-체인 데이터의 제공 요청, 오프-체인 데이터가 소스 스토리지 노드로부터 데이터 스트림 허브로 송신된 것 및 오프-체인 데이터가 데이터 스트림 허브에서 타겟 스토리지 노드로 송신된 것 중 적어도 하나는 상기 온-체인 데이터로서 기록될 것이다.
서비스 서버(10)는, 클라이언트(20)로부터 대상 데이터가 지정된 데이터 액세스 요청을 수신하고, 상기 대상 데이터를 오프-체인 데이터로서 저장하고 있는 스토리지 노드(400)에서 읽어온 후, 클라이언트(20)에 제공할 수 있다. 또한, 서비스 서버(10)는 클라이언트(20)의 상기 대상 데이터의 제공 요청에 대한 처리 이력이 블록체인 네트워크를 통하여 분산 저장되는 원장에 트랜잭션으로서 추가 기록될 수 있도록, 거래제안을 블록체인 노드(200)로 송신할 수 있다.
상기 거래제안에는 상기 오프-체인 데이터의 공유에 따른 진행 상태 및 상기 오프-체인 데이터에 대한 권한 정보가 포함된다. 상기 거래내용은, 스마트 컨트랙트의 실행 파라미터들을 의미할 수 있다.
블록체인 노드(200)는 상기 거래제안을 수신하여, 스마트 컨트랙트(smart contract)를 실행할 수 있다. 블록체인 노드(200)는 상기 거래제안을 수신하여 바로 원장(ledger)을 업데이트 하지는 않고, 상기 거래제안의 거래내용을 상기 스마트 컨트랙트의 로직 및 블록체인 노드(200)가 저장한 원장의 내용에 비추어 평가하고, 상기 평가 결과를 반영한 스마트 컨트랙트 실행 결과를 생성할 수 있다.
몇몇 실시예에서, 블록체인 노드(200)는 상기 스마트 컨트랙트를 실행하는 과정에서, 스토리지 노드(400)에 저장된 오프-체인 데이터를 참조할 수도 있다. 예를 들어, 상기 오프-체인 데이터의 정상적인 저장 완료가 상기 스마트 컨트랙트의 실행 과정에서 참조될 수 있을 것이다.
블록체인 노드(200)는 상기 거래제안에 대한 회신으로서, 상기 스마트 컨트랙트의 실행 결과 및 블록체인 노드(200)의 서명(endorsement)을 서비스 서버(10)에 송신한다. 서비스 서버(10)는 각각의 블록체인 노드(200)로부터 수신된 거래제안 회신을 취합하고, 서비스 서버(10)에 의하여 송신된 상기 거래제안에 대한 합의 판정이 가능한지 판단한다. 서비스 서버(10)는 사전에 정의된 합의 정책(endorsement policy)에 따라 상기 합의 판정을 수행할 수 있다.
서비스 서버(10)는 상기 거래제안에 대한 합의 판정이 가능한 것으로 판단한 경우, 상기 거래제안의 거래내용을 신규의 트랜잭션으로서 원장(ledger)에 추가하기 위한 거래요청을 블록체인 노드(200)에 송신한다. 예를 들어, 상기 블록체인의 프로토콜이 하이퍼레저 패브릭인 경우, 상기 거래요청은 블록체인 노드(200) 중 오더링 서비스(ordering service) 담당 노드로 송신될 것이다. 상기 오더링 서비스 담당 노드는 거래요청을 취합하여 블록을 생성하고, 생성된 블록을 모든 저장 노드(committing peer)에 전달하며, 각각의 저장 노드는 전달받은 블록 내의 모든 트랜잭션이 각각의 합의 정책(endorsement policy)을 준수하는 지 확인하고, 문제가 없으면 상기 블록을 기존의 블록체인에 추가로 연결하게 된다.
설명된 바와 같이, 서비스 서버(10)는 클라이언트(20)의 오프-체인 데이터 액세스 요청을 접수하여 상기 오프-체인 데이터를 제공하되, 그 이력이 빠짐없이 블록체인의 원장에 기록되도록 함으로써, 오프-체인 데이터의 라이프사이클이 모두 블록체인에 기록되도록 한다.
도 1은 서비스 서버(10)가 단일 컴퓨팅 장치로 구현된 것을 예로써 도시하고 있으나, 서비스 서버(10)의 제1 기능은 제1 컴퓨팅 장치에서 구현되고, 제2 기능은 제2 컴퓨팅 장치에서 구현될 수도 있다.
한편, 도 1에 도시된 오프-체인 데이터 공유 시스템의 클라이언트(20), 서비스 서버(10) 및 스토리지 노드(400)는 보안 기술에 의하여 보호되는 보안 네트워크의 내부에 위치하는 것일 수 있다. 또한, 블록체인 네트워크를 구성하는 일부의 노드(200) 역시 상기 보안 네트워크의 내부에 위치하는 것일 수 있다.
상기 보안 네트워크가 패킷의 송수신을 선택적으로 허용하는 방화벽에 의하여 보호된다고 가정할 때, 클라이언트(20)에 의하여 요청된 오프-체인 데이터가 다른 조직의 스토리지 노드로서 상기 보안 네트워크의 외부에 위치한 외부 스토리지 노드에 저장된 것이라면, 상기 오프-체인 데이터를 요청하는 메시지를 송신하기 위해, 상기 외부 스토리지 노드의 주소 정보를 상기 방화벽에 등록하는 절차가 수행되어야 한다. 이러한 사전 등록 절차는 여러 측면에서 불편함을 야기한다.
예를 들어, 특정 오프-체인 데이터를 외부 스토리지 노드에 공유해 주거나, 외부 스토리지 노드로부터 특정 오프-체인 데이터를 수신하기 위하여는, 상기 외부 스토리지 노드의 네트워크 주소 정보가 상기 방화벽에 먼저 등록되어야 하는 것이다. 이렇게 상기 외부 스토리지 노드의 네트워크 주소 정보가 상기 방화벽에 먼저 등록되어야 하는 상황이 되면, 오프-체인 데이터를 보안 네트워크 외부의 스토리지 노드와 공유하는 것이 매우 불편하게 된다.
이러한 문제를 해결하기 위하여, 본 발명의 몇몇 실시예들에서, 서로 다른 내부망에 소속된 스토리지 노드들 간의 데이터 송수신은 모두 데이터 스트림 허브를 경유하게 된다. 예를 들어, 제1 보안 네트워크를 가진 제1 조직의 스토리지 노드에서, 제2 보안 네트워크를 가진 제2 조직의 스토리지 노드에 저장된 오프-체인 데이터를 수신하고자 할 때, 상기 제1 조직의 스토리지 노드는 상기 제2 조직의 스토리지 노드가 아닌 상기 데이터 스트림 허브에 대하여 데이터 요청 메시지를 송신하면 되는 것이다.
몇몇 실시예들에서, 상기 데이터 스트림 허브는, 어느 조직에도 포함되지 않은 것일 수 있다. 즉, 각각의 조직 관점에서 볼 때, 상기 데이터 스트림 허브는, 조직의 내부망 밖에 위치한 컴퓨팅 장치일 수 있다. 다만, 그 기능의 중요성으로 인하여, 상기 데이터 스트림 허브는 네트워크 보안 기술에 의하여 보호되는 보안 네트워크에 연결된 것일 수 있다.
이 경우, 스토리지 노드는 데이터 스트림 허브에 액세스 하기 위한 정보만 저장하고 있으면, 상대 스토리지 노드에 액세스 하기 위한 정보를 모르더라도 상대 스토리지 노드와 오프-체인 데이터의 공유를 위한 데이터 송수신이 가능하게 된다. 즉, 보안 네트워크의 운영을 위한 방화벽에, 데이터 스트림 허브의 네트워크 주소만 송수신 허용 대상 주소로 설정하면, 오프-체인 데이터의 공유를 위한 데이터 송수신에 문제가 없게 되는 것이다.
상기 데이터 스트림 허브는, 공유 대상 오프-체인 데이터를 저장하고 있는 소스 스토리지 노드와 공유 대상 오프-체인 데이터를 수신할 타겟 스토리지 노드 사이의 데이터 송수신을 무조건 허용하지는 않는다. 상기 데이터 스트림 허브는, 상기 공유 대상 오프-체인 데이터의 권한 정보를 기록하는 원장을 저장하는 블록체인에 직접 또는 간접적으로 액세스하고, 상기 공유 대상 오프-체인 데이터의 권한 정보를 참조하여, 선택적으로 상기 공유 대상 오프-체인 데이터의 송수신을 중계한다.
즉, 상기 데이터 스트림 허브는, 타겟 스토리지 노드가 상기 공유 대상 오프-체인 데이터에 대한 권한을 가졌는지를 블록체인에 기록된 권한 정보를 통하여 검증하고, 상기 타겟 스토리지 노드가 상기 공유 대상 오프-체인 데이터에 대한 권한을 가졌다면 상기 공유 대상 오프-체인 데이터의 송수신을 중계한다.
상기 데이터 스트림 허브는, 스스로 오프-체인 데이터를 특정 스토리지 노드에 송신해 주지는 않는다. 즉, 상기 데이터 스트림 허브는 스토리지 노드의 요청이 있는 경우에 한하여, 오프-체인 데이터의 송수신을 중계한다.
이미 설명한 바와 같이, 오프-체인 데이터의 기록, 공유 등에 대한 모든 이력은 블록체인의 원장에 트랜잭션으로서 기록되고, 상기 블록체인의 원장에는 상기 데이터 스트림 허브도 직접 또는 간접적으로 액세스 할 수 있기 때문에, 결과적으로, 상기 오프-체인 데이터의 공유는 블록체인의 원장에 기재된 권한 정보에 따라 컨트롤 되는 것으로 이해할 수 있을 것이다. 즉, 상기 오프-체인 데이터의 공유는 블록체인 기술의 신뢰성에 의하여 그 무결성이 담보 될 수 있다.
이하, 도 2를 참조하여 보다 자세히 설명하기로 한다. 도 2은 제2 스토리지 노드(400-2)가 제1 스토리지 노드(400-1)에 파일#1을 요청하는 예시적인 상황을 가정하여 본 실시예에 따른 오프-체인 데이터 공유 시스템을 설명하기 위한 도면이다.
도 1에서는 클라이언트(20)가 서비스 서버(10)를 통해 오프-체인 데이터의 액세스를 요청하는 것에 대하여 설명하였다. 그런데, 도 1의 서비스 서버(10) 기능을 적어도 부분적으로 포함하는 스토리지 노드가 제공될 수도 있을 것이다. 이러한 경우, 클라이언트(20)가 오프-체인 데이터의 액세스 요청을 상기 스토리지 노드에 직접 송신할 수도 있을 것이다.
즉, 클라이언트(20)가 오프-체인 데이터의 액세스 요청을 도 1의 서비스 서버(10)에 송신할 수도 있고, 클라이언트(20)가 상기 액세스 요청을 서비스 서버의 기능을 적어도 부분적으로 포함하는 스토리지 노드에 송신할 수도 있음을 유의한다.
이해의 편의를 돕기 위해, 공유 대상이 되는 오프-체인 데이터를 제1 파일(FILE#1)으로 지칭하기로 한다. 제1 파일은 제1 클라이언트(20-1)에서 제1 스토리지 노드(400-1)로 업로드 된 것이다. 이 때, 제1 클라이언트(20-1)는 상기 제1 파일의 공유 정보로서, 공유 대상자가 제2 스토리지 노드(400-2)임을 가리키는 정보를 제1 스토리지 노드(400-1)에 송신할 수 있다. 몇몇 실시예에서, 공유 대상자는 특정 스토리지 노드가 아닌, 특정 조직으로 지정될 수도 있음은 물론이다. 이 경우, 상기 특정 조직에 소속된 모든 스토리지 노드가 제1 파일에 액세스 할 수 있게 될 것이다.
제1 스토리지 노드(400-1)는 상기 제1 파일의 저장이 성공적으로 마무리 되면, 상기 제1 파일이 신규로 등록되었음을 가리키는 트랜잭션이 원장(ledger)에 기록되도록 하는 거래 제안을 블록체인 네트워크에 송신할 수 있다. 추후 상술하겠지만, 제1 스토리지 노드(400-1)는 제1 스토리지 노드(400-1)에 종속된 블록체인 노드를 가질 수 있다. 즉, 제1 스토리지 노드(400-1)는 상기 거래 제안을 상기 종속된 블록체인 노드를 통하여 블록체인 네트워크에 송신할 수 있는 것이다.
다만, 몇몇 실시예에 따르면 제1 스토리지 노드(400-1) 자체가 상기 블록체인 네트워크에 속한 블록체인 노드일 수도 있을 것이다. 이 경우, 제1 스토리지 노드(400-1)는 원장을 분산 저장하고, 체인 코드를 실행시키는 블록체인 프로세싱 모듈(미도시)을 포함할 수 있다.
제2 스토리지 노드(400-2)가 공유 대상자로 지정된 제1 파일이 신규로 등록된 것을 가리키는 트랜잭션이 상기 원장에 추가되면, 블록체인 기술에 기반하여 상기 트랜잭션은 제2 스토리지 노드(400-2)가 소속된 조직의 블록체인 노드가 저장하는 원장에도 추가되게 된다. 즉, 제2 스토리지 노드(400-2)가 제2 스토리지 노드(400-2)에 종속된 블록체인 노드를 통하여 제1 파일의 신규 등록 사실을 확인하게 되는 것이다.
각각의 블록체인 노드는, 상기 블록체인 노드에 연결된 스토리지 노드가 공유 대상자로 지정된 파일이 신규로 등록된 사실을 모니터링 하기 위하여, 상기 블록체인 노드에 연결된 스토리지 노드가 공유 대상자로 지정된 파일이 신규로 등록된 것을 클라이언트에 통보하기 위한 체인 코드(chain code)를 실행할 수 있을 것이다. 상기 체인 코드의 실행을 통하여 제2 클라이언트(20-2)가 신규 공유 파일 알림 메시지를 출력하게 되고, 이러한 알림 메시지에 응답하여 제2 클라이언트(20-2)의 사용자가 제1 파일의 다운로드 요청을 선택할 수 있을 것이다.
제2 스토리지 노드(400-2)는 상기 다운로드 요청을 수신하고, 데이터 스트림 허브(이하, 'DSH'로 지칭함)(100)에 제1 파일의 제공 요청을 송신한다.
DSH(100)는 상기 제1 파일의 제공 요청을 수신하여, 블록체인 네트워크에 제2 스토리지 노드(400-2)가 제1 파일의 공유 대상자로 등록되어 있는지 여부를 조회한다. 블록체인 네트워크에 분산 저장된 원장의 권한 정보에 제2 스토리지 노드(400-2)가 제1 파일의 공유 대상자로 등록되지 않은 경우, DSH(100)는 제2 스토리지 노드(400-2)에 액세스 권한 없음을 알리는 회신 메시지를 송신할 수 있을 것이다.
DSH(100)는 DSH(100)에 종속된 블록체인 노드를 통하여 상기 원장에 액세스 할 수 있을 것이다. 또한, 몇몇 실시예에 따르면 DSH(100) 자체가 상기 블록체인 네트워크에 속한 블록체인 노드일 수도 있을 것이다. 이 경우, DSH(100)는 원장을 분산 저장하고, 체인 코드를 실행시키는 블록체인 프로세싱 모듈(미도시)을 포함할 수 있다.
블록체인 네트워크에 분산 저장된 원장의 권한 정보에 제2 스토리지 노드(400-2)가 제1 파일의 공유 대상자로 등록된 경우, DSH(100)는 제1 스토리지 노드(400-1)에 제1 파일의 제공을 요청하고, 그 응답으로 제1 파일을 수신할 수 있다. 또한, DSH(100)는 상기 제1 파일을 제2 스토리지 노드(400-2)에 송신한다.
제2 스토리지 노드(400-2)가 상기 제1 파일을 저장하는 것을 마무리하면, 제2 클라이언트(20-2)가 제1 파일을 다운로드 할 수 있게 된다. 몇몇 실시예들에서, 제2 스토리지 노드(400-2)가 DSH(100)로부터 상기 제1 파일의 데이터 패킷을 바로 제2 클라이언트(20-2)에 전달함으로써 스트리밍 방식의 빠른 다운로드를 제공할 수도 있을 것이다.
몇몇 실시예들에서, 상기 제1 파일의 신규 등록, 제2 스토리지 노드(400-2)의 상기 신규 등록 확인, 제2 스토리지 노드(400-2)의 DSH(100)에 대한 제1 파일 요청 사실 및 그에 대한 검증 통과 여부, DSH(100)의 제1 스토리지 노드(400-1)에 대한 제1 파일 요청 사실, 제1 스토리지 노드(400-1)의 DSH(100)에 대한 제1 파일 제공, DSH(100)의 제2 스토리지 노드(400-2)에 대한 제1 파일 제공 및 제2 스토리지 노드(400-2)의 다운로드 제공 완료 중 적어도 일부 사항이 트랜잭션화 되어 상기 원장에 기록될 수 있다.
예를 들어, 상기 제1 파일의 신규 등록, 제2 스토리지 노드(400-2)의 상기 신규 등록 확인, 제2 스토리지 노드(400-2)의 DSH(100)에 대한 제1 파일 요청 사실 및 그에 대한 검증 통과 여부, DSH(100)의 제1 스토리지 노드(400-1)에 대한 제1 파일 요청 사실, 제1 스토리지 노드(400-1)의 DSH(100)에 대한 제1 파일 제공, DSH(100)의 제2 스토리지 노드(400-2)에 대한 제1 파일 제공 및 제2 스토리지 노드(400-2)의 다운로드 제공 완료 모두가 트랜잭션화 되어 상기 원장에 기록될 수도 있을 것이다.
몇몇 실시예들에서, 제1 스토리지 노드(400-1)와 제2 스토리지 노드(400-2)는 그 소속 조직이 서로 다를 수 있다. 예를 들어, 도 3에 도시된 바와 같이 제1 스토리지 노드(400-1)는 조직 B의 보안 네트워크(30-2)의 내부에 위치한 것이고, 제2 스토리지 노드(400-2)는 조직 A의 보안 네트워크(30-1)의 내부에 위치한 것일 수 있다.
조직 A의 보안 네트워크(30-1)에는 하나 이상의 제1 블록체인 노드(미도시)가 더 연결 될 수 있고, 조직 B의 보안 네트워크(30-2)에는 하나 이상의 제2 블록체인 노드(미도시)가 더 연결 될 수 있다. 상기 하나 이상의 제1 블록체인 노드와 상기 하나 이상의 제2 블록체인 노드는 블록체인 네트워크(300)에 소속된 블록체인 노드이다.
DSH(100)는 조직 A의 보안 네트워크(30-1)의 외부에 위치하면서, 조직 B의 보안 네트워크(30-2)의 외부에 위치할 수 있다.
이하, 블록체인 네트워크에서 분산 저장되는 원장에 제1 파일의 공유 과정이 트랜잭션화 되어 기록되는 과정 및 상기 원장의 기록을 참조하여 제1 파일의 공유가 진행되는 과정을 도 4a 내지 도 4g를 참조하여 설명하기로 한다. 제1 스토리지 노드(400-1)(또는 제1 스토리지 노드가 소속된 조직)는, 도 4a 내지 도 4g에서 'ORG1'으로 도시되고, 제2 스토리지 노드(400-2)(또는 제2 스토리지 노드가 소속된 조직)는, 도 4a 내지 도 4g에서 'ORG2'로 도시되는 점을 참고한다.
도 4a를 참조하면, 제1 클라이언트(20-1)가 제1 스토리지 노드(400-1)에 상기 제1 파일을 업로드 하고, 제1 스토리지 노드(400-1)는, 제1 스토리지 노드(400-1)에 종속된 블록체인 노드(200-1)를 통하여, 원장(500-1)에 '제1 파일이 신규 등록되었고, 제1 스토리지 노드(400-1)가 제2 스토리지 노드(400-2)에 공유하였음'을 가리키는 신규 트랜잭션을 기록한다. 이하, 도 4a 내지 도 4g에서 신규 트랜잭션은 해칭(hatching) 표시되었음을 참조한다.
몇몇 실시예에서, 제1 스토리지 노드(400-1)는 상기 제1 파일의 업로드가 정상적으로 완료된 것을 확인한 후, 원장(500-1)에 '제1 파일이 신규 등록되었고, 제1 스토리지 노드(400-1)가 제2 스토리지 노드(400-2)에 공유하였음'을 가리키는 신규 트랜잭션을 기록할 수 있을 것이다. 이 경우, 원장(500-1)에 기록되는 신규 트랜잭션의 무결성이 확보될 수 있을 것이다.
상기 신규 트랜잭션은, 도 4b에 도시된 바와 같이, 제2 스토리지 노드(400-2)에 종속된 블록체인 노드(200-2)에 저장되는 원장(500-2)과 DSH(100)에 종속된 블록체인 노드(200-3)에 저장되는 원장(500-3)에도 기록되게 될 것이다.
도 4c를 참조하면, 제2 스토리지 노드(400-2)가 DSH(100)에 제1 파일의 요청 메시지(50)를 송신할 수 있다. 요청 메시지(50)는 제2 스토리지 노드(400-2)의 식별자(ORG2)와, 요청 대상 오프-체인 데이터를 가리키는 정보(FILE#1)와, 시그니처(signature)를 포함할 수 있다.
DSH(100)는 상기 시그니처와 요청 메시지(50)의 송신자 네트워크 주소(예를 들어, IP 주소)를 이용하여 요청 메시지(50)를 검증할 수 있다. DSH(100)는 상기 검증 시, 저장된 스토리지 노드 정보(110)를 참조할 수 있다.
DSH(100)는 요청 메시지(50)에 포함된 제2 스토리지 노드(400-2)의 식별자(ORG2)로부터 자체 저장된 제2 스토리지 노드의 네트워크 주소를 얻고, 얻어진 네트워크 주소와 요청 메시지(50)의 송신자 네트워크 주소가 대응되는지를 판단하여 제1 검증을 수행할 수 있다.
또한, DSH(100)는 자체 저장된 제2 스토리지 노드의 공개키(Public Key)를 이용하여 상기 시그니처를 복호화 하고, 복호화 된 시그니처를 이용하여 제2 검증을 수행할 수 있다. 즉, 제2 스토리지 노드(400-2)는 제2 스토리지 노드(400-2)의 비밀키(Private Key)를 이용하여 DSH(100)와 사전 공유된 데이터를 암호화함으로써 상기 시그니처를 생성할 수 있는 것이다.
요청 메시지(50)가 상기 제1 검증 및 상기 제2 검증을 통과하면, DSH(100)는 제2 스토리지 노드(400-2)가 상기 제1 파일에 액세스 권한이 있는지 여부를 제3 검증하기 위하여 원장(500-3)의 권한 정보를 참조할 수 있다. 도 4c에 도시된 바와 같이, DSH(100)에 종속된 노드(200-3)에 저장된 원장(500-3)에는 상기 제1 파일이 제2 스토리지 노드(400-2)에 공유된 것을 가리키는 트랜잭션이 기록되어 있으므로, 상기 제3 검증은 통과할 것이다. DSH(100)은 요청 메시지(50)가 검증을 통과했음을 가리키는 신규 트랜잭션을 원장(500-3)에 기록할 수 있다.
이하, 본 명세서에서 '제1 장치에 종속된 노드'는 블록체인 노드가 아닌 제1 장치와 일대일 관계로 연결된 블록체인 노드를 의미하는 것으로 이해될 수 있다.
도 4d를 참조하면, 요청 메시지(50)가 검증을 통과했으므로, DSH(100)는 제1 스토리지 노드(400-1)에 제1 파일의 제공을 요청하는 메시지(51)를 송신하고, 메시지(51)의 송신 사실을 가리키는 신규 트랜잭션(ORG1 | DATA REQUESTED)을 원장(500-3)에 기록할 수 있다.
DSH(100)는 메시지(51)에 제2 스토리지 노드(400-2)의 공개키를 포함시킬 수 있다. DSH(100)는 제2 스토리지 노드(400-2)의 공개키를 제2 스토리지 노드(400-2)로부터 미리 등록 받아 저장하고 있을 수 있다. 제2 스토리지 노드(400-2)의 공개키는 상기 제1 파일의 암호화키로 사용될 것이다.
도 4e에 도시된 바와 같이, DSH(100)에 의하여 신규로 기록된 2개의 트랜잭션은 제1 스토리지 노드(400-1)의 종속 블록체인 노드(200-1)에 저장되는 원장(500-1) 및 제2 스토리지 노드(400-2)의 종속 블록체인 노드(200-2)에 저장되는 원장(500-2)에도 기록되게 될 것이다.
아울러, 제1 스토리지 노드(400-1)는 DSH(100)로부터 요청받은 제1 파일을 메시지(51)에 포함된 제2 스토리지 노드(400-2)의 공개키를 이용하여 암호화하고, 암호화된 제1 파일(52)을 DSH(100)에 송신한다. 제1 스토리지 노드(400-1)는 암호화된 제1 파일이 DSH(100)로 송신 완료되면, 그 사실을 신규 트랜잭션으로 원장(500-1)에 기록한다.
몇몇 실시예에서, DSH(100)는 메시지(51)에 제2 스토리지 노드(400-2)의 공개키를 포함시키지 않을 수 있다. 이 때, 제1 스토리지 노드(400-1)는 DSH(100)로부터 요청받은 제1 파일을, 제1 스토리지 노드(400-1)의 비밀키로 암호화하고, 암호화된 제1 파일을 DSH(100)에 송신할 것이다.
이후, DSH(100)는 제1 스토리지 노드(400-1)의 공개키로 암호화된 제1 파일을 복호화 하고, 다시 제2 스토리지 노드(400-2)의 공개키로 복호화 된 제1 파일을 다시 암호화한 후, 암호화된 제1 파일을 제2 스토리지 노드(400-2)로 송신할 수 있다. 이 때, 제2 스토리지 노드(400-2)는 제2 스토리지 노드(400-2)의 비밀키로 암호화된 제1 파일을 복호화 할 수 있을 것이다. 본 실시예에 따르면, DSH(100)가 스토리지 노드#1(400-1)로부터 수신하는 데이터와, 스토리지 노드#2(400-2)에 송신하는 데이터가 전혀 다를 것이므로, 제1 파일의 패킷을 추적하기 어려워지는 보안상 효과를 얻을 수 있다.
또한, DSH(100)는 제1 스토리지 노드(400-1)의 비밀키로 암호화된 제1 파일을 그대로 제2 스토리지 노드(400-2)에 전달할 수도 있을 것이다. 이 때, DSH(100)는 제2 스토리지 노드(400-2)에 제1 스토리지 노드(400-1)의 공개키를 암호화된 형태로 제공할 수 있다. 예를 들어, DSH(100)는 DSH의 비밀키로 암호화 된 제1 스토리지 노드(400-1)의 공개키를 제2 스토리지 노드(400-2)에 제공할 수 있을 것이다.
도 4f에 도시된 바와 같이, 제1 스토리지 노드(400-1)에 의하여 신규로 기록된 트랜잭션은 DSH(100)의 종속 블록체인 노드(200-3)에 저장되는 원장(500-3) 및 제2 스토리지 노드(400-2)의 종속 블록체인 노드(200-2)에 저장되는 원장(500-2)에도 기록되게 될 것이다.
DSH(100)는 제1 스토리지 노드(400-1)로부터 수신한 암호화된 제1 파일(52)을 제2 스토리지 노드(400-2)에 송신하고, 송신이 완료되면, 그 사실을 원장(500-3)에 기록한다.
도 4g에 도시된 바와 같이, DSH(100)에 의하여 신규로 기록된 트랜잭션은 제1 스토리지 노드(400-1)의 종속 블록체인 노드(200-1)에 저장되는 원장(500-1) 및 제2 스토리지 노드(400-2)의 종속 블록체인 노드(200-2)에 저장되는 원장(500-2)에도 기록되게 될 것이다.
제2 스토리지 노드(400-2)는 암호화된 제1 파일(52)의 DSH(100)로부터 수신이 완료되면, 제2 스토리지 노드(400-2)의 비밀키를 이용하여 암호화된 제1 파일(52)을 복호화함으로써, 제1 파일(53)을 얻는다. 제2 스토리지 노드(400-2)는 클라이언트(20-2)에 제1 파일(53)을 송신하고, 클라이언트(20-2)가 제1 파일(53)을 다운로드 하는 것이 완료되면, 원장(500-2)에 제1 파일이 다운로드 되었음을 가리키는 신규 트랜잭션을 기록한다.
지금까지 설명한 오프-체인 데이터 공유 과정은, 그 과정이 모두 블록체인 상에 기록되고, 데이터 공유 가부 역시 블록체인의 권한 정보를 참조하여 판단되는 바, 그 신뢰성이 담보될 수 있다. 아울러, 스토리지 노드 각각은 상대 스토리지 노드에 대한 정보를 모르더라도 오프-체인 데이터를 공유하거나 공유받을 수 있으므로, 오프-체인 데이터의 공유 시스템을 운영하는 측면에 있어서 한계가 사라질 수 있을 것이다.
이하, 본 발명의 다른 실시예에 따른 오프-체인 데이터 공유 시스템에 대하여 도 5 내지 도 6을 참조하여 설명한다.
도 5 내지 도 6을 참조하여 설명되는 실시예에서, DSH는 각 조직마다 구비될 수 있다. 이 경우, 각각의 DSH에는 다른 DSH들의 접속 정보가 저장된다. 블록체인 네트워크(300)에 연결되는 조직의 수가 많아지면, 그에 따라 스토리지 노드의 수도 늘어날 것이다.
도 2 내지 도 4h를 참조하여 설명한 DSH(100)는 각각의 스토리지 노드에 대한 정보를 저장할 수 있으므로, 스토리지 노드의 수가 늘어나게 되면 DSH(100)에 과도한 저장 부하 또는 연산 부하가 걸릴 수 있다. 반면에, 도 5 내지 도 6을 참조하여 설명되는 실시예에서는, 각각의 DSH에 연결되는 다른 DSH들의 접속 정보만 저장되면 되고, 다른 DSH의 개수는 스토리지 노드의 개수보다 훨씬 적을 것이므로, DSH에 과도한 저장 부하 또는 연산 부하가 걸리는 문제가 해결될 수 있을 것이다.
도 5를 참조하여 설명하면, 본 실시예에 따른 오프-체인 데이터 공유 시스템은, 조직 C에 소속된 DSH C(100c), 조직 C에 소속된 하나 이상의 스토리지 노드들(410-1, 410-2, 410-3) 및 조직 C에 소속되되 블록체인 네트워크(300)를 구성하는 하나 이상의 블록체인 노드(미도시)를 포함할 수 있다.
클라이언트A(20-3)가 제2 파일(54)을 스토리지 노드1(410-1)에 업로드 하고, 제2 파일(54)의 공유 대상자를 조직 D에 소속된 스토리지 노드6(410-6)로 지정한 상황을 가정하여 설명한다.
제2 파일(54)의 업로드가 완료되면, 스토리지 노드1(410-1)은 DSH C(100c)에, DSH C(100c)에 연결된 스토리지 노드들의 공개키를 요청할 수 있다. 스토리지 노드1(410-1)은 상기 요청에 따라 DSH C(100c)로부터 수신된 공개키의 개수를 이용하여 상기 원본 오프-체인 데이터를 청킹(chunking)할 수 있다. 도 5에 도시된 경우, 상기 공개키의 개수는 3개이고, 따라서, 스토리지 노드1(410-1)는 제2 파일(54)을 3개의 청크(chunk)로 나눌 것이다.
스토리지 노드1(410-1)은 상기 청킹의 결과를 가리키는 청킹맵을 저장할 수 있다. 상기 청킹맵은 각각의 청크 별 연결 순서를 가리키는 데이터로서, 그 데이터의 구조 및 표현 방식은 다양하게 규정될 수 있을 것이다. 예를 들어, 상기 청킹맵은, 각 청크를 저장하는 스토리지 노드들의 공개키를, 각 청크의 순서대로 배열한 것일 수 있을 것이다. 이 경우, 스토리지 노드1(410-1)은 같은 조직에 속한 다른 스토리지 노드들(스토리지 노드2, 스토리지 노드3)의 식별정보를 보유하지 못한 상태에서도, 각각의 스토리지 노드들의 공개키를 일종의 식별자로 활용함으로써, DSH C(100c)가 이해할 수 있는 스토리지 노드 식별자를 이용하여 상기 청킹맵을 구성하는 것으로 이해될 수 있을 것이다.
스토리지 노드1(410-1)은, 각각의 청크 및 상기 청크가 저장되어야 하는 스토리지 노드의 식별 정보(예를 들어, 스토리지 노드의 공개키)를 DSH C(100c)에 송신하고, DSH C(100c)는 각각의 청크를 스토리지 노드에 분산 저장할 수 있다. 도 5에 도시된 상황에서, 청크 2는 스토리지 노드2(410-2)에 저장되고, 청크 3은 스토리지 노드3(410-3)에 저장되며, 청크 1은 스토리지 노드1(410-1)에 저장될 수 있을 것이다.
몇몇 실시예들에서, 각각의 청크가 분산 저장될 때, 2 이상의 중복 팩터(duplication factor)가 적용되어, 청크가 2 이상의 스토리지 노드에 분산 저장될 수도 있을 것이다. 이 경우, 특정 스토리지 노드가 동작 불능 상태가 되더라도, 해당 스토리지 노드에 저장된 청크는 다른 스토리지 노드에도 이중화 되어 저장되어 있으므로, 결과적으로 오프-체인 데이터의 훼손이 방지될 수 있을 것이다.
제2 파일(54)의 분산 저장이 완료된 후, 스토리지 노드1(410-1)에 종속된 블록체인 노드를 통해, 공유 대상자가 스토리지 노드6(410-6)인 제2 파일(54)이 신규로 등록되었음을 가리키는 신규 트랜잭션이 블록체인 네트워크(300)에서 분산 저장되는 원장(미도시)에 기록되게 된다. 상기 신규 트랜잭션에는 제2 파일(54)의 소유 스토리지 노드가 스토리지 노드1(410-1)임을 가리키는 정보가 포함될 수 있을 것이다.
도 6을 참조하면, 스토리지 노드1 내지 6(410-1 내지 410-6) 각각은 종속된 블록체인 노드(200a 내지 200d)를 가지고, DSH C(100c) 및 DSH D(100d) 각각도 종속된 블록체인 노드(200-g, 200-h)를 가질 수 있다. 이는, 스토리지 노드1 내지 6(410-1 내지 410-6), DSH C(100c) 및 DSH D(100d)이 상기 원장에 기록된 트랜잭션에 액세스 할 수 있음을 의미한다. 따라서, 스토리지 노드6(410-6) 역시, 공유 대상자가 스토리지 노드6(410-6)인 제2 파일(54)이 신규로 등록되었음을 가리키는 상기 신규 트랜잭션에 액세스 할 수 있을 것이다.
스토리지 노드6(410-6)이 클라이언트B(20-4)에 제2 파일(54)의 다운로드 여부를 문의하는 메시지를 송신할 수 있을 것이고, 이에 응답하여 다운로드 요청을 수신할 수 있을 것이다. 이 경우, 스토리지 노드6(410-6)은 DSH D(100d)에 제2 파일 제공 요청 메시지를 송신하게 된다.
DSH D(100d)는 상기 원장을 조회하여, 제2 파일(54)을 보유한 조직이 조직 C의 스토리지 노드1(410-1)임을 확인하고, 조직 C의 DSH C(100c)에 제2 파일(54)의 제공을 요청하는 메시지를 송신할 수 있다.
DSH C(100c)는 제2 파일(54)의 제공을 요청하는 메시지를 DSH D(100d)로부터 수신하고, 상기 원장에서 제2 파일(54)의 소유 스토리지 노드가 스토리지 노드1(410-1)임을 확인하며, 스토리지 노드1(410-1)에 상기 청킹맵의 제공을 요청할 수 있다.
DSH C(100c)는 상기 청킹맵을 스토리지 노드1(410-1)으로부터 제공 받고, 상기 청킹맵을 이용하여, 스토리지 노드1 내지 3(410-1 내지 410-3)에 분산 저장된 제2 파일(54)의 청크들을 수집하며, 수집된 청크들을 상기 청킹맵을 이용하여 연결함으로써 제2 파일(54)을 복원할 수 있다.
DSH C(100c)는 DSH D(100d)에 제2 파일(54)을 송신한다. DSH D(100d)는 제2 파일(54)을 수신하면, 제2 파일(54)의 제공을 요청했던 스토리지 노드6(410-6)에 전달한다. 스토리지 노드6(410-6)은 스토리지 노드(410-1)가 수행했던 것과 동일한 방식으로, 제2 파일(54)을 청킹하고, 제2 파일(54)의 청크들이 조직 D의 스토리지 노드들에 분산 저장되도록 할 수 있다.
지금까지 도 5를 참조하여 두개의 조직이 서로 연결된 오프-체인 데이터 공유 시스템을 설명하였으나, 도 7에 도시된 바와 같이 3개 (또는 그 이상의) 조직이 서로 연결된 오프-체인 데이터 공유 시스템도 구성 가능함은 당연하다.
이하에서는, 도 8을 참조하여 본 발명의 다양한 실시예에서 설명된 데이터 스트림 허브를 구현할 수 있는 예시적인 컴퓨팅 장치(100)에 대하여 설명하도록 한다.
도 8에 도시된 바와 같이, 컴퓨팅 장치(100)는 하나 이상의 프로세서(150), 시스템 버스, 통신 인터페이스(170), 프로세서(150)에 의하여 수행되는 컴퓨터 프로그램(190)을 로드(load)하는 메모리(160)와, 컴퓨터 프로그램(190)를 저장하는 스토리지(180)를 포함할 수 있다. 도 8에는 본 발명의 실시예와 관련 있는 구성요소들만이 도시되어 있다. 따라서, 본 발명이 속한 기술분야의 통상의 기술자라면 도 8에 도시된 구성요소들 외에 다른 범용적인 구성 요소들이 더 포함될 수 있음을 알 수 있다.
프로세서(150)는 컴퓨팅 장치(100)의 각 구성의 전반적인 동작을 제어한다. 프로세서(150)는 CPU(Central Processing Unit), MPU(Micro Processor Unit), MCU(Micro Controller Unit), GPU(Graphic Processing Unit) 또는 본 발명의 기술 분야에 잘 알려진 임의의 형태의 프로세서 중 적어도 하나를 포함하여 구성될 수 있다. 또한, 프로세서(150)는 본 발명의 다양한 실시예들에 따른 방법/동작을 실행하기 위한 적어도 하나의 애플리케이션 또는 프로그램에 대한 연산을 수행할 수 있다. 컴퓨팅 장치(100)는 하나 이상의 프로세서를 구비할 수 있다.
메모리(160)는 각종 데이터, 명령 및/또는 정보를 저장한다. 메모리(160)는 본 발명의 다양한 실시예들에 따른 방법/동작들을 실행하기 위하여 스토리지(180)로부터 하나 이상의 프로그램(190)을 로드(load) 할 수 있다. 메모리(160)의 예시는 RAM이 될 수 있으나, 이에 한정되는 것은 아니다.
상기 버스는 컴퓨팅 장치(100)의 구성 요소 간 통신 기능을 제공한다. 상기 버스는 주소 버스(Address Bus), 데이터 버스(Data Bus) 및 제어 버스(Control Bus) 등 다양한 형태의 버스로 구현될 수 있다.
통신 인터페이스(170)는 컴퓨팅 장치(100)의 유무선 인터넷 통신을 지원한다. 통신 인터페이스(170)는 인터넷 통신 외의 다양한 통신 방식을 지원할 수도 있다. 이를 위해, 통신 인터페이스(170)는 본 발명의 기술 분야에 잘 알려진 통신 모듈을 포함하여 구성될 수 있다. 통신 인터페이스(170)는 하나 이상의 블록체인 노드(200) 및 하나 이상의 스토리지 노드(400)를 연결 할 수 있다.
스토리지(180)는 하나 이상의 컴퓨터 프로그램(591)을 비임시적으로 저장할 수 있다. 스토리지(180)는 플래시 메모리 등과 같은 비휘발성 메모리, 하드 디스크, 착탈형 디스크, 또는 본 발명이 속하는 기술 분야에서 잘 알려진 임의의 형태의 컴퓨터로 읽을 수 있는 기록 매체를 포함하여 구성될 수 있다.
컴퓨터 프로그램(190)은 본 발명의 다양한 실시예들에 따른 방법/동작들이 구현된 하나 이상의 인스트럭션들을 포함할 수 있다. 컴퓨터 프로그램(190)이 메모리(160)에 로드 되면, 프로세서(150)는 상기 하나 이상의 인스트럭션들을 실행시킴으로써 본 발명의 다양한 실시예들에 따른 방법/동작들을 수행할 수 있다.
예를 들어, 컴퓨터 프로그램(190)은 제2 스토리지 노드로부터 제1 스토리지 노드에 저장된 오프-체인 데이터의 송신을 요청 받는 인스트럭션과, 상기 오프-체인 데이터의 권한 정보가 블록체인을 통하여 분산 저장된 원장에, 상기 제2 스토리지 노드의 상기 오프-체인 데이터 권한 보유에 대한 트랜잭션이 존재하는지 조회하는 인스트럭션과, 상기 조회의 결과, 상기 제2 스토리지 노드의 상기 오프-체인 데이터 권한 보유가 확인 되면, 상기 제1 스토리지 노드에 상기 오프-체인 데이터를 요청하여 수신 받고, 수신된 상기 오프-체인 데이터를 상기 제2 스토리지 노드에 전달하는 인스트럭션을 포함할 수 있다.
이하, 본 발명의 또 다른 실시예에 따른 오프-체인 데이터 공유 방법에 대하여 도 9를 참조하여 설명한다. 본 실시예에 따른 오프-체인 데이터 공유 방법은 컴퓨팅 장치에 의하여 수행될 수 있으며, 예를 들어 도 2 내지 도 4g를 참조하여 설명한 DSH(100), 도 5를 참조하여 설명한 DSH C(100c) 또는 DSH D(100d)에 의하여 수행될 수 있다. 이해를 돕기 위해 도 1 내지 도 8을 참조하여 설명된 것과 중복된 동작은 약술하거나 생략하기로 한다. 약술하거나 생략되더라도, 도 1 내지 도 8을 참조하여 설명된 기술적 사상은 본 실시예에 따른 오프-체인 데이터 공유 방법에 당연히 접목될 수 있다.
단계 S101에서, 오프-체인 데이터인 제1 파일에 대한 제공 요청이 요청 측 장치로부터 수신된다. 상기 제공 요청은 상기 요청 측 장치에 대한 식별 정보 및 상기 제1 파일에 대한 식별 정보를 포함할 수 있을 것이다.
단계 S103에서, 블록체인을 통해 분산 저장되는 원장에서, 상기 요청 측 장치가 상기 제1 파일의 공유 대상자로 지정된 트랜잭션이 조회된다. 이 때, 단계 S103을 수행하는 컴퓨팅 장치에 종속된 블록체인 노드를 통하여 상기 원장에 액세스할 수 있을 것이다.
상기 요청 측 장치가 상기 제1 파일의 공유 대상자로 지정된 트랜잭션이 조회되지 않는 경우, 상기 제공 요청에 대하여는 실패 회신이 송신될 것이다. 반대로, 상기 요청 측 장치가 상기 제1 파일의 공유 대상자로 지정된 트랜잭션이 조회되면, 상기 트랜잭션에 따른 공유자 장치가 확인된다. 상기 공유자 장치는 상기 제1 파일을 저장하고 있는 장치로 이해될 수 있을 것이다.
이미 설명된 바와 같이, 상기 요청 측 장치와 상기 공유자 장치는 서로 다른 보안 네트워크에 위치한 것일 수 있다.
단계 S105에서, 상기 제1 파일의 송신 요청 메시지가 상기 공유자 장치로 송신된다. 다음으로, 단계 S107에서, 상기 제1 파일이 상기 공유자 장치로부터 수신되면, 상기 요청 측 장치로 상기 제1 파일을 전달한다.
지금까지 도 1 내지 도 9를 참조하여 설명된 본 발명의 기술적 사상은 컴퓨터가 읽을 수 있는 매체 상에 컴퓨터가 읽을 수 있는 코드로 구현될 수 있다. 상기 컴퓨터로 읽을 수 있는 기록 매체는, 예를 들어 이동형 기록 매체(CD, DVD, 블루레이 디스크, USB 저장 장치, 이동식 하드 디스크)이거나, 고정식 기록 매체(ROM, RAM, 컴퓨터 구비 형 하드 디스크)일 수 있다. 상기 컴퓨터로 읽을 수 있는 기록 매체에 기록된 상기 컴퓨터 프로그램은 인터넷 등의 네트워크를 통하여 다른 컴퓨팅 장치에 전송되어 상기 다른 컴퓨팅 장치에 설치될 수 있고, 이로써 상기 다른 컴퓨팅 장치에서 사용될 수 있다.
이상 첨부된 도면을 참조하여 본 발명의 실시예들을 설명하였지만, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 그 기술적 사상이나 필수적인 특징을 변경하지 않고서 본 발명이 다른 구체적인 형태로도 실시될 수 있다는 것을 이해할 수 있다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적인 것이 아닌 것으로 이해해야만 한다. 본 발명의 보호 범위는 아래의 청구범위에 의하여 해석되어야 하며, 그와 동등한 범위 내에 있는 모든 기술 사상은 본 발명에 의해 정의되는 기술적 사상의 권리범위에 포함되는 것으로 해석되어야 할 것이다.
Claims (25)
- 오프-체인 데이터를 저장하는 제1 스토리지 노드;
상기 오프-체인 데이터의 권한 정보를 기록하는 원장(ledger)을 저장하는 블록체인 노드; 및
상기 권한 정보를 참조하여, 상기 제1 스토리지 노드와 상기 오프-체인 데이터를 요청한 제2 스토리지 노드 간의 데이터 송수신을 중계하는 데이터 스트림 허브를 포함하는,
오프-체인 데이터 공유 시스템. - 제1 항에 있어서,
상기 데이터 스트림 허브는,
상기 제2 스토리지 노드의 상기 오프-체인 데이터의 요청이 있는 경우에 한하여 상기 데이터 송수신을 중계하는,
오프-체인 데이터 공유 시스템. - 제1 항에 있어서,
상기 데이터 스트림 허브는,
상기 블록체인 노드가 속한 블록체인 네트워크에 포함된 노드로서, 상기 데이터 스트림 허브에 종속된 노드인 DSH-노드를 통해 상기 권한 정보에 액세스 하는,
오프-체인 데이터 공유 시스템. - 제1 항에 있어서,
상기 데이터 스트림 허브는,
상기 블록체인 노드가 속한 블록체인 네트워크에 포함된 노드로서, 상기 원장을 분산 저장하는,
오프-체인 데이터 공유 시스템. - 제1 항에 있어서,
상기 블록체인 노드는,
상기 제1 스토리지 노드에 종속된 노드로서, 상기 제1 스토리지 노드에 저장되는 오프-체인 데이터에 대한 트랜잭션을 상기 원장에 등록하는,
오프-체인 데이터 공유 시스템. - 제1 항에 있어서,
상기 제1 스토리지 노드는 상기 데이터 스트림 허브를 제외한 보안 네트워크 외부 장치와의 연결이 차단되는 보안 네트워크 내부에 위치하는,
오프-체인 데이터 공유 시스템. - 제6 항에 있어서,
상기 제1 스토리지 노드는, 제1 조직의 보안 네트워크 내부에 위치하고,
상기 제2 스토리지 노드는, 상기 제1 조직과 상이한 제2 조직의 보안 네트워크 내부에 위치하며,
상기 데이터 스트림 허브는,
상기 제1 조직의 보안 네트워크 외부에 위치하면서, 상기 제2 조직의 보안 네트워크 외부에 위치하는,
오프-체인 데이터 공유 시스템. - 제1 항에 있어서,
상기 데이터 스트림 허브는,
상기 제2 스토리지 노드로부터 상기 제1 스토리지 노드에 저장된 오프-체인 데이터에 대한 요청을 수신하고, 상기 권한 정보를 참조하여 상기 제2 스토리지 노드가 상기 오프-체인 데이터에 대한 권한을 보유하고 있는지 확인하는,
오프-체인 데이터 공유 시스템. - 제8 항에 있어서,
상기 제2 스토리지 노드는, 상기 제1 스토리지 노드의 네트워크 주소에 대한 정보를 보유하고 있지 않은,
오프-체인 데이터 공유 시스템. - 제8 항에 있어서,
상기 데이터 스트림 허브는,
상기 블록체인 노드가 속한 블록체인 네트워크에 포함된 노드로서, 상기 데이터 스트림 허브에 종속된 노드인 DSH-노드를 통해 상기 권한 정보에 액세스 하고,
상기 제2 스토리지 노드가 상기 오프-체인 데이터에 대한 권한을 보유하고 있는 것으로 확인 된 경우, 상기 제1 스토리지 노드에 상기 오프-체인 데이터를 요청하는 제1 동작과, 상기 제1 스토리지 노드로부터 상기 오프-체인 데이터를 수신하는 제2 동작과, 상기 제2 스토리지 노드에 상기 오프-체인 데이터를 송신하는 것을 수행하는 제3 동작을 수행하고, 상기 DSH-노드를 이용하여 상기 제1 동작, 상기 제2 동작 및 상기 제3 동작 중 적어도 하나의 트랜잭션을 상기 원장에 등록하는,
오프-체인 데이터 공유 시스템. - 제10 항에 있어서,
상기 데이터 스트림 허브는,
상기 DSH-노드를 이용하여 상기 제1 동작, 상기 제2 동작 및 상기 제3 동작의 트랜잭션을 상기 원장에 등록하는,
오프-체인 데이터 공유 시스템. - 제8 항에 있어서,
상기 수신된 요청은 상기 조직의 비밀키를 이용하여 생성된 시그니처를 포함하고,
상기 데이터 스트림 허브는,
상기 제2 스토리지 노드가 속한 조직의 공개키를 저장하고, 상기 수신된 요청의 시그니처를 상기 제2 스토리지 노드가 속한 조직의 공개키를 이용하여 인증하고, 상기 시그니처가 인증 실패한 경우, 상기 제2 스토리지 노드에 실패 메시지를 송신하는,
오프-체인 데이터 공유 시스템. - 제12 항에 있어서,
상기 데이터 스트림 허브는,
상기 제2 스토리지 노드가 속한 조직의 네트워크 주소 정보를 더 저장하고, 상기 수신된 요청의 발신 주소 정보를 상기 네트워크 주소 정보와 비교함으로써, 상기 제2 스토리지 노드가 속한 조직을 식별하는,
오프-체인 데이터 공유 시스템. - 제12 항에 있어서,
상기 데이터 스트림 허브는,
상기 제1 스토리지 노드로부터 상기 제1 스토리지 노드의 조직의 비밀키로 암호화된 오프-체인 데이터를 수신하고, 상기 제1 스토리지 노드의 조직의 공개키로 암호화된 오프-체인 데이터를 복호화하고, 상기 오프-체인 데이터를 상기 제2 스토리지 노드의 조직의 공개키로 암호화 하여 송신하는,
오프-체인 데이터 공유 시스템. - 제12 항에 있어서,
상기 데이터 스트림 허브는,
상기 제1 스토리지 노드의 조직의 비밀키로 암호화된 오프-체인 데이터가 상기 제1 스토리지 노드로부터 수신되면, 상기 수신된 암호화된 오프-체인 데이터를 그대로 상기 제2 스토리지 노드에 전달하되, 상기 제2 스토리지 노드에 상기 데이터 스트림 허브의 비밀키로 암호화 된 상기 제1 스토리지 노드의 조직의 공개키를 송신하는,
오프-체인 데이터 공유 시스템. - 제12 항에 있어서,
상기 데이터 스트림 허브는,
상기 제1 스토리지 노드에 상기 제2 스토리지 노드의 공개키를 제공하고, 상기 제1 스토리지 노드로부터 상기 제2 스토리지 노드의 공개키로 암호화 된 오프-체인 데이터를 수신하고, 상기 암호화 된 오프-체인 데이터를 상기 제2 스토리지 노드에 송신하는,
오프-체인 데이터 공유 시스템. - 컴퓨팅 장치에 의하여 수행되는 방법에 있어서,
제2 스토리지 노드로부터 제1 스토리지 노드에 저장된 오프-체인 데이터의 송신을 요청 받는 단계;
상기 오프-체인 데이터의 권한 정보가 블록체인을 통하여 분산 저장된 원장에, 상기 제2 스토리지 노드의 상기 오프-체인 데이터 권한 보유에 대한 트랜잭션이 존재하는지 조회하는 단계; 및
상기 조회의 결과, 상기 제2 스토리지 노드의 상기 오프-체인 데이터 권한 보유가 확인 되면, 상기 제1 스토리지 노드에 상기 오프-체인 데이터를 요청하여 수신 받고, 수신된 상기 오프-체인 데이터를 상기 제2 스토리지 노드에 전달하는 단계를 포함하는,
오프-체인 데이터 공유 방법. - 제17 항에 있어서,
상기 제1 스토리지 노드는, 상기 제1 스토리지 노드에 종속된 블록체인 노드를 통하여 상기 오프-체인 데이터를 상기 제2 스토리지 노드에 공유하는 트랜잭션을 상기 원장에 기록하고,
상기 컴퓨팅 장치는, 상기 컴퓨팅 장치에 종속된 블록체인 노드를 통하여 상기 원장에 액세스 하는,
오프-체인 데이터 공유 방법. - 오프-체인 데이터의 권한 정보를 기록하는 원장(ledger)을 저장하는 블록체인 노드;
상기 오프-체인 데이터의 청크(chunk)를 분산 저장하는 제1 스토리지 노드들;
상기 제1 스토리지 노드들과 같은 보안 네트워크 내부에 위치하며, 상기 권한 정보를 참조하여, 상기 오프-체인 데이터를 요청한 제2 데이터 스트림 허브에 상기 오프-체인 데이터를 송신할지 여부를 결정하는 제1 데이터 스트림 허브를 포함하되,
상기 제2 데이터 스트림 허브는, 상기 보안 네트워크 외부에 위치하는 것인,
오프-체인 데이터 공유 시스템. - 제19 항에 있어서,
상기 제1 스토리지 노드들은,
상기 제1 스토리지 노드들과 같은 보안 네트워크 내부에 위치하는 클라이언트로부터 원본 오프-체인 데이터를 수신하여 저장하는 제1-1 스토리지 노드와, 제1-2 스토리지 노드들을 포함하고,
상기 제1-1 스토리지 노드는, 상기 제1 데이터 스트림 허브에 상기 제1-2 스토리지 노드들의 공개키를 요청하고, 상기 요청에 따라 수신된 공개키의 개수를 이용하여 상기 원본 오프-체인 데이터를 청킹(chunking)하는,
오프-체인 데이터 공유 시스템. - 제20 항에 있어서,
상기 제1-1 스토리지 노드는,
상기 청킹의 결과를 가리키는 청킹맵을 저장하되,
상기 청킹맵은, 각 청크를 저장하는 스토리지 노드들의 공개키를, 각 청크의 순서대로 배열한 것인,
오프-체인 데이터 공유 시스템. - 제20 항에 있어서,
상기 제1-1 스토리지 노드는, 상기 청킹의 결과를 가리키는 청킹맵을 저장하고,
상기 제1 데이터 스트림 허브는,
상기 제2 데이터 스트림 허브에 상기 오프-체인 데이터를 송신하는 것으로 결정한 경우, 상기 제1-1 스토리지 노드에 상기 청킹맵을 요청하여 수신하며, 상기 청킹맵을 이용하여 상기 오프-체인 데이터의 청크들을 수집함으로써, 상기 오프-체인 데이터를 구성하는,
오프-체인 데이터 공유 시스템. - 제19 항에 있어서,
상기 블록체인 노드는,
각각의 제1 스토리지 노드에 종속된 노드로서, 상기 제1 스토리지 노드에 저장되는 오프-체인 데이터에 대한 트랜잭션을 상기 원장에 등록하는 것인,
오프-체인 데이터 공유 시스템. - 제19 항에 있어서,
상기 보안 네트워크는 제1 조직의 내부망이고,
상기 제2 데이터 스트림 허브는 상기 제1 조직과 상이한 제2 조직의 보안 내트워크 내부망에 위치하는 것이며,
상기 보안 네트워크는 상기 제1 데이터 스트림 허브와 상기 제2 데이터 스트림 허브 사이의 데이터 송수신을 예외적으로 허용하는,
오프-체인 데이터 공유 시스템. - 제19 항에 있어서,
상기 오프-체인 데이터 공유 시스템은,
상기 제2 데이터 스트림 허브 및 상기 오프-체인 데이터의 청크(chunk)를 분산 저장하도록 구성된 제2 스토리지 노드들을 더 포함하고,
상기 제2 스토리지 노드들은,
상기 오프-체인 데이터의 공유 권한을 보유하는 제2-1 스토리지 노드와, 제2-2 스토리지 노드들을 포함하고,
상기 제2 데이터 스트림 허브는,
상기 오프-체인 데이터를 상기 제1 데이터 스트림 허브로부터 수신하여, 상기 제2-1 스토리지 노드에 송신하고,
상기 제2-1 스토리지 노드는,
상기 오프-체인 데이터를 상기 제2 데이터 스트림 허브로부터 수신하면, 상기 오프-체인 데이터를 청킹하고, 각각의 청크를 상기 제2 데이터 스트림 허브를 통하여, 상기 제2-2 스토리지 노드들에 분산 저장하는,
오프-체인 데이터 공유 시스템.
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020200059823A KR20210142983A (ko) | 2020-05-19 | 2020-05-19 | 오프-체인 데이터 공유 시스템 및 그 방법 |
US17/029,522 US20210367762A1 (en) | 2020-05-19 | 2020-09-23 | Off-chain data sharing system and method thereof |
SG10202009763UA SG10202009763UA (en) | 2020-05-19 | 2020-10-01 | Off-chain data sharing system and method thereof |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020200059823A KR20210142983A (ko) | 2020-05-19 | 2020-05-19 | 오프-체인 데이터 공유 시스템 및 그 방법 |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20210142983A true KR20210142983A (ko) | 2021-11-26 |
Family
ID=78608027
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020200059823A Pending KR20210142983A (ko) | 2020-05-19 | 2020-05-19 | 오프-체인 데이터 공유 시스템 및 그 방법 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20210367762A1 (ko) |
KR (1) | KR20210142983A (ko) |
SG (1) | SG10202009763UA (ko) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11637701B2 (en) * | 2020-09-23 | 2023-04-25 | Genesys Cloud Services, Inc. | Technologies for conducting a data transaction between enterprises using a permissioned blockchain infrastructure and an oracle system |
CN114726858B (zh) * | 2022-03-31 | 2024-07-09 | 蚂蚁区块链科技(上海)有限公司 | 一种数据处理方法、装置、电子设备和存储介质 |
WO2023239692A1 (en) * | 2022-06-07 | 2023-12-14 | Truebit Co. | Verifiable code execution via role-based validation |
WO2025018641A1 (ko) * | 2023-07-19 | 2025-01-23 | 삼성전자 주식회사 | 파일을 공유하는 전자 장치 및 방법 |
CN118193633B (zh) * | 2024-02-22 | 2024-11-12 | 北京市农林科学院信息技术研究中心 | 供应链溯源数据的轻节点存储和查询方法、装置及设备 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20200120001A (ko) | 2019-04-11 | 2020-10-21 | (주)에스알정보기술 | 캐드데이터 변환 시스템 및 이를 이용한 캐드데이터 변환 방법 |
Family Cites Families (46)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP3414713B1 (en) * | 2016-02-12 | 2023-07-26 | Royal Bank Of Canada | Methods and systems for digital reward processing |
WO2018189656A1 (en) * | 2017-04-11 | 2018-10-18 | nChain Holdings Limited | Secure re-use of private key for dynamic group of nodes |
GB201707788D0 (en) * | 2017-05-15 | 2017-06-28 | Nchain Holdings Ltd | Computer-implemented system and method |
GB201709188D0 (en) * | 2017-06-09 | 2017-07-26 | Nchain Holdings Ltd | Computer-Implemented system and method |
US10944546B2 (en) * | 2017-07-07 | 2021-03-09 | Microsoft Technology Licensing, Llc | Blockchain object interface |
US10891689B2 (en) * | 2017-09-15 | 2021-01-12 | Hitachi, Ltd. | Consent management service system |
WO2019089654A1 (en) * | 2017-10-30 | 2019-05-09 | Pricewaterhousecoopers Llp | Implementation of continuous real-time validation of distributed data storage systems |
US11080689B1 (en) * | 2017-11-14 | 2021-08-03 | Harbor Technologies, LLC | Secure processing and transfer of tokens in a distributed chain database |
CN108876606B (zh) * | 2018-05-29 | 2021-02-09 | 创新先进技术有限公司 | 资产转移方法及装置、电子设备 |
CN108805712B (zh) * | 2018-05-29 | 2021-03-23 | 创新先进技术有限公司 | 资产转移的回退处理方法及装置、电子设备 |
US11367066B2 (en) * | 2018-06-28 | 2022-06-21 | Coinbase, Inc. | Wallet recovery method |
US11201751B2 (en) * | 2018-07-18 | 2021-12-14 | iComply Investor Services Inc. | System and method for off-chain cryptographic transaction verification |
US11276056B2 (en) * | 2018-08-06 | 2022-03-15 | Inveniam Capital Partners, Inc. | Digital contracts in blockchain environments |
US11362842B2 (en) * | 2018-09-18 | 2022-06-14 | International Business Machines Corporation | Membership compiler for applications |
DE102018122997A1 (de) * | 2018-09-19 | 2020-03-19 | Infineon Technologies Ag | Blockkettenentität, kettenexterne entität, zertifizierungsvorrichtung für blockkettenoperationen und verfahren zum durchführen einer kooperation zwischen einer blockkettenentität und einer kettenexternen entität |
US11314749B2 (en) * | 2018-10-03 | 2022-04-26 | International Business Machines Corporation | Blockchain implementing reliability database |
US11226971B2 (en) * | 2018-10-03 | 2022-01-18 | International Business Machines Corporation | Blockchain implementing reliability database |
US11303442B2 (en) * | 2018-10-09 | 2022-04-12 | International Business Machines Corporation | Blockchain notification board storing blockchain resources |
US10997159B2 (en) * | 2018-10-09 | 2021-05-04 | International Business Machines Corporation | Blockchain notification board storing blockchain resources |
US11520773B2 (en) * | 2018-10-09 | 2022-12-06 | International Business Machines Corporation | Blockchain notification board storing blockchain resources |
US11514411B2 (en) * | 2018-10-10 | 2022-11-29 | Pontoro Inc. | Multi-tier tokenization platform |
US11474854B2 (en) * | 2018-10-30 | 2022-10-18 | International Business Machines Corporation | Transformation of inter-organization process for execution via blockchain |
US20200143466A1 (en) * | 2018-11-06 | 2020-05-07 | Jianxin Wu | Blockchain-based lending systems and methods |
GB2583993B (en) * | 2018-11-19 | 2023-08-02 | Luther Systems Ltd | Immutable ledger with efficient and secure data destruction, system and method |
US10839320B2 (en) * | 2018-12-18 | 2020-11-17 | Rokfin, Inc. | Determining network-effects with decentralized applications |
US11017329B2 (en) * | 2018-12-18 | 2021-05-25 | Rokfin, Inc. | Dampening token allocations based on non-organic subscriber behaviors |
US12120192B2 (en) * | 2018-12-18 | 2024-10-15 | Rokfin, Inc. | Surge protection for scheduling minting of cryptographic tokens |
CN110914851B (zh) * | 2019-03-27 | 2024-02-06 | 创新先进技术有限公司 | 提高区块链网络与外部数据源之间的通信的完整性 |
SG11201908983WA (en) * | 2019-03-29 | 2019-10-30 | Alibaba Group Holding Ltd | Retrieving access data for blockchain networks using highly available trusted execution environments |
US11283616B2 (en) * | 2019-04-03 | 2022-03-22 | Hong Kong Baptist University | Method for index-based and integrity-assured search in a blockchain |
TWI706662B (zh) * | 2019-04-24 | 2020-10-01 | 國際信任機器股份有限公司 | 用於鏈接資料的方法與裝置 |
TWI708154B (zh) * | 2019-04-24 | 2020-10-21 | 國際信任機器股份有限公司 | 適用於區塊鏈與鏈下間協作的驗證系統與方法 |
US11394556B2 (en) * | 2019-05-15 | 2022-07-19 | Cryptowerk Corp. | Blockchain-enabled computing |
US11252166B2 (en) * | 2019-07-31 | 2022-02-15 | Advanced New Technologies Co., Ltd. | Providing data authorization based on blockchain |
US11251963B2 (en) * | 2019-07-31 | 2022-02-15 | Advanced New Technologies Co., Ltd. | Blockchain-based data authorization method and apparatus |
US11283595B1 (en) * | 2019-08-29 | 2022-03-22 | Hiro Systems Pbc | Systems and methods for securing cached data stored off-chain in a blockchain-based network |
KR102182750B1 (ko) * | 2019-09-16 | 2020-11-25 | 주식회사 마크애니 | 블록체인을 이용한 데이터 유통 시스템 및 방법 |
US20210092127A1 (en) * | 2019-09-19 | 2021-03-25 | Microsoft Technology Licensing, Llc | Writing role-backed access control to chain |
US10812455B1 (en) * | 2019-10-24 | 2020-10-20 | Syniverse Technologies, Llc | System and method for general data protection regulation (GDPR) compliant hashing in blockchain ledgers |
CN112989400B (zh) * | 2019-12-13 | 2023-07-28 | 北京百度网讯科技有限公司 | 一种隐私事务处理方法、装置、电子设备和介质 |
US11310051B2 (en) * | 2020-01-15 | 2022-04-19 | Advanced New Technologies Co., Ltd. | Blockchain-based data authorization method and apparatus |
US11676117B2 (en) * | 2020-05-07 | 2023-06-13 | International Business Machines Corporation | Blockchain compliance verification network |
US20220004647A1 (en) * | 2020-07-06 | 2022-01-06 | International Business Machines Corporation | Blockchain implementation to securely store information off-chain |
US20220021711A1 (en) * | 2020-07-20 | 2022-01-20 | Cgi Federal | Security Platform and Method for Efficient Access and Discovery |
CN111770201B (zh) * | 2020-08-31 | 2020-12-04 | 支付宝(杭州)信息技术有限公司 | 一种数据验证方法、装置及设备 |
US11626988B2 (en) * | 2020-09-23 | 2023-04-11 | Genesys Cloud Services, Inc. | Blockchain-based technologies for hyper-personalized interactions across enterprises |
-
2020
- 2020-05-19 KR KR1020200059823A patent/KR20210142983A/ko active Pending
- 2020-09-23 US US17/029,522 patent/US20210367762A1/en not_active Abandoned
- 2020-10-01 SG SG10202009763UA patent/SG10202009763UA/en unknown
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20200120001A (ko) | 2019-04-11 | 2020-10-21 | (주)에스알정보기술 | 캐드데이터 변환 시스템 및 이를 이용한 캐드데이터 변환 방법 |
Also Published As
Publication number | Publication date |
---|---|
US20210367762A1 (en) | 2021-11-25 |
SG10202009763UA (en) | 2021-12-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR20210142983A (ko) | 오프-체인 데이터 공유 시스템 및 그 방법 | |
US11334562B2 (en) | Blockchain based data management system and method thereof | |
KR102618665B1 (ko) | 블록체인을 사용한 버전 이력 관리 | |
CN102170440B (zh) | 适用于存储云间数据安全迁移的方法 | |
US11128440B2 (en) | Blockchain based file management system and method thereof | |
US20180285839A1 (en) | Providing data provenance, permissioning, compliance, and access control for data storage systems using an immutable ledger overlay network | |
US20190394648A1 (en) | Blockchain based wireless access point password management | |
KR102399667B1 (ko) | 블록체인 기반 데이터 거래 및 보관을 위한 보안 시스템 및 그 방법 | |
US11625385B2 (en) | Method and apparatus for managing data based on blockchain | |
CN103098070A (zh) | 用于监视网络服务中数据位置的方法、装置和系统 | |
CN105516110A (zh) | 移动设备安全数据传送方法 | |
KR102089912B1 (ko) | 프라이빗 블록체인 기반 모바일 디바이스 관리 방법 및 시스템 | |
CN105450750A (zh) | 智能终端安全交互方法 | |
JP7053031B2 (ja) | 情報処理システム、情報処理装置、情報処理方法及び情報処理プログラム | |
KR102620214B1 (ko) | 네트워크 접속을 제어하기 위한 시스템 및 그에 관한 방법 | |
TWI655550B (zh) | 資料轉發系統 | |
CN117675216A (zh) | 一种数据处理方法及相关设备 | |
CN114222992A (zh) | 控制方法、服务器、以及程序 | |
KR102782362B1 (ko) | 프록시 기반의 네트워크 접속을 제어하기 위한 시스템 및 그에 관한 방법 | |
KR102741305B1 (ko) | 공유 폴더의 파일 암복호화 권한 제어 시스템 및 방법 | |
KR102782377B1 (ko) | 프록시 기반의 네트워크 접속을 제어하기 위한 시스템 및 그에 관한 방법 | |
KR102782363B1 (ko) | 프록시 기반의 네트워크 접속을 제어하기 위한 시스템 및 그에 관한 방법 | |
KR102782383B1 (ko) | 프록시 기반의 네트워크 접속을 제어하기 위한 시스템 및 그에 관한 방법 | |
KR102782378B1 (ko) | 프록시 기반의 네트워크 접속을 제어하기 위한 시스템 및 그에 관한 방법 | |
KR102782368B1 (ko) | 프록시 기반의 네트워크 접속을 제어하기 위한 시스템 및 그에 관한 방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PA0109 | Patent application |
Patent event code: PA01091R01D Comment text: Patent Application Patent event date: 20200519 |
|
PG1501 | Laying open of application |