KR102211937B1 - 블록체인 네트워크 상에서 오프체인 원장을 이용한 역할기반의 데이터 보호 시스템 - Google Patents

블록체인 네트워크 상에서 오프체인 원장을 이용한 역할기반의 데이터 보호 시스템 Download PDF

Info

Publication number
KR102211937B1
KR102211937B1 KR1020200052680A KR20200052680A KR102211937B1 KR 102211937 B1 KR102211937 B1 KR 102211937B1 KR 1020200052680 A KR1020200052680 A KR 1020200052680A KR 20200052680 A KR20200052680 A KR 20200052680A KR 102211937 B1 KR102211937 B1 KR 102211937B1
Authority
KR
South Korea
Prior art keywords
role
chain
data
ledger
user
Prior art date
Application number
KR1020200052680A
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 KR1020200052680A priority Critical patent/KR102211937B1/ko
Application granted granted Critical
Publication of KR102211937B1 publication Critical patent/KR102211937B1/ko

Links

Images

Classifications

    • 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/604Tools and structures for managing or administering access control systems
    • 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/62Protecting access to data via a platform, e.g. using keys or access control rules
    • 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
    • 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/3263Cryptographic 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 certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements
    • 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)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Computer Hardware Design (AREA)
  • Health & Medical Sciences (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Automation & Control Theory (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)

Abstract

블록체인에 저장되는 데이터에 대한 보호를 위하여 블록체인 네트워크의 오프체인 원장에 기록할 때 접근하고자 하는 사용자의 역할을 지정하고 그 역할에 따라서 프라이빗 데이터(Private Data)를 접근하도록 통제하는, 블록체인 네트워크 상에서 오프체인 원장을 이용한 역할기반의 데이터 보호 시스템에 관한 것으로서, 다수의 피어로 구성되는 블록체인망으로서, 각 피어는 블록체인 원장을 보유하고, 모든 피어들은 블록체인 원장을 동기화 시키고, 상기 블록체인 원장의 오프체인 원장의 데이터를 처리하는 체인코드를 구비하는, 블록체인망; 역할을 정의하고, 해당 역할의 역할 인증서를 생성하고, 해당 역할에 사용자 및 작업 허가를 할당하여 역할 정책을 설정하고, 역할 정책에 따라 상기 체인코드를 호출하여 상기 오프체인 원장의 데이터에 대한 작업을 처리하게 하는 블록체인 응용장치를 포함하는 구성을 마련한다.
상기와 같은 시스템에 의하여, 오프체인 원장에 접근하려는 사용자의 역할을 지정하고 그 역할에 따라서 프라이빗 데이터(Private Data)를 암호화할 수 있게 함으로써, 블록체인 오프체인 데이터의 기밀성을 보장할 수 있다.

Description

블록체인 네트워크 상에서 오프체인 원장을 이용한 역할기반의 데이터 보호 시스템 { A System of the Role-based Data Protection by using of the Off-Chain Ledger on the Blockchain Network }
본 발명은 블록체인에 저장되는 데이터에 대한 보호를 위하여 블록체인 네트워크의 오프체인 원장에 기록할 때 접근하고자 하는 사용자의 역할을 지정하고 그 역할에 따라서 프라이빗 데이터(Private Data)를 접근하도록 통제하는, 블록체인 네트워크 상에서 오프체인 원장을 이용한 역할기반의 데이터 보호 시스템에 관한 것이다.
일반적으로, 블록체인에서 분산 원장(distributed ledger)은 블록체인 네트워크 상에서 발생하는 모든 트랜잭션을 기록하고 공유한다. 또한, 블록체인 기술은, 기록되는 데이터가 트랜잭션으로서 원장에 추가되면, 이를 수정할 수 없도록 암호학적 기술을 사용한다.
즉, 분산 원장은 트랜잭션의 집합인 블록이 체인으로 연결되는 구조를 갖는데, 트랜잭션에는 자산과 같은 기록할 데이터를 포함한다. 특히, 현재 추가되는 블록에 이전 블록의 암호학적 해쉬값이 포함되는 방식으로, 연속된 블록이 체인 형태로 연결되므로, 블록체인은 불변적인(immutable) 특성을 제공한다.
또한, 분산 원장은 블록체인 네트워크 상의 동일한 채널을 공유하는 모든 참여자에게 데이터를 공유하므로 데이터에 대한 투명성(transparency)을 제공하고 있다. 그러나, 이러한 데이터 투명성으로 인해, 개인 정보와 같이 참여자 간에 공유되면 안되는 데이터에 대한 프라이버시 문제가 발생할 수 있다. 이러한 문제를 해결하기 위하여, 블록체인 원장은 불변성 보장을 위한 온체인(on-chain) 원장과 프라이버시 보호를 위한 오프체인(off-chain) 원장 기술을 제공하고 있다.
하이퍼레저 패브릭(Hyperledger fabric)과 같은 프라이빗/허가형(Private and Permissioned) 블록체인은 PDC(Private Data Collection) 이라는 기술을 통하여 프라이버시가 보장되어야 할 데이터를 온체인과 분리하여 오프체인에 저장하는 기능을 제공하고 있다. 이때, 오프체인에 저장하는 데이터는 전체 혹은 부분적으로 암호화가 가능하다. 또한, 블록체인의 인증기관(Certificate Authority, CA)에서 발급된 인증서를 통하여 MSP(Membership Service Provider)는 피어에 대한 접근권한을 획득하고 프라이빗 데이터(Private Data)를 기록하고 접근할 수 있도록 하는 기능을 제공하고 있다[특허문헌 1].
그러나, 하이퍼레저 패브릭(Hyperledger fabric)의 MSP에서 발급되는 PKI 인증서는 피어의 프라이빗 데이터(Private Data) 영역에 접근하기 위한 권한을 부여해주기 위한 것으로 데이터의 기밀성(Confidentiality)을 완벽하게 보장해줄 수는 없다. 예를 들어, 피어 #1에 접근 권한이 부여된 클라이언트 A와 클라이언트 B가 존재하는 경우, 클라이언트 A에서 피어 #1에 기록한 프라이빗 데이터(Private Data)는 클라이언트 B에게도 접근이 허용되게 되며 클라이언트 A가 암호화했더라도 피어 #1에 접근 권한이 있는 클라이언트 B에게도 데이터가 복호화되어 읽을 수 있게 된다. 즉, 종래 기술은 피어에 대한 접근 권한이 있는지의 여부만 확인되며 프라이빗 데이터(Private Data) 내용에 대한 접근 권한 관리는 이루어지고 있지 않다.
한국 등록특허공보 제10-2002488호(2019.07.23.공고)
본 발명의 목적은 상술한 바와 같은 문제점을 해결하기 위한 것으로, 블록체인에 저장되는 데이터에 대한 보호를 위하여 블록체인 네트워크의 오프체인 원장에 기록할 때 접근하고자 하는 사용자의 역할을 지정하고 그 역할에 따라서 프라이빗 데이터(Private Data)를 암호화할 수 있게 하는, 블록체인 네트워크 상에서 오프체인 원장을 이용한 역할기반의 데이터 보호 시스템을 제공하는 것이다.
특히, 본 발명의 목적은, 사용자가 역할기반 접근통제 모델(Role based Access Control Model)과 같이 프라이빗 데이터(Private Data)에 대한 쓰기, 읽기, 암호화, 복호화 등과 같은 작업(Operation)에 대한 허가(Permission)를 직접적으로 할당받지 않고, 사용자에게 할당한 역할(Role)을 통하여 프라이빗 데이터(Private Data)에 대한 작업 허가를 획득하도록 하는, 블록체인 네트워크 상에서 오프체인 원장을 이용한 역할기반의 데이터 보호 시스템을 제공하는 것이다.
또한, 본 발명의 목적은, CA를 통하여 역할인증서가 발급되고, 역할기반 정책관리를 통하여 역할인증서에 사용자 및 오프체인 데이터에 대한 작업 허가를 각각 할당하게 되고, 할당된 역할에 따라서 블록체인의 체인코드(Chaincode)가 호출(Invoke)되면 체인코드는 프라이빗 데이터(Private Data)에 허가된 작업(Read, Write, Encrypt, Decrypt)을 수행하도록 하는, 블록체인 네트워크 상에서 오프체인 원장을 이용한 역할기반의 데이터 보호 시스템을 제공하는 것이다.
상기 목적을 달성하기 위해 본 발명은 블록체인 네트워크 상에서 오프체인 원장을 이용한 역할기반의 데이터 보호 시스템에 관한 것으로서, 다수의 피어로 구성되는 블록체인망으로서, 각 피어는 블록체인 원장을 보유하고, 모든 피어들은 블록체인 원장을 동기화 시키고, 상기 블록체인 원장의 오프체인 원장의 데이터를 처리하는 체인코드를 구비하는, 블록체인망; 역할을 정의하고, 해당 역할의 역할 인증서를 생성하고, 해당 역할에 사용자 및 작업 허가를 할당하여 역할 정책을 설정하고, 역할 정책에 따라 상기 체인코드를 호출하여 상기 오프체인 원장의 데이터에 대한 작업을 처리하게 하는 블록체인 응용장치를 포함하는 것을 특징으로 한다.
또한, 본 발명은 블록체인 네트워크 상에서 오프체인 원장을 이용한 역할기반의 데이터 보호 시스템에 있어서, 상기 블록체인 응용장치는, 역할을 정의하고, 해당 역할의 역할 인증서를 생성하고, 해당 역할의 역할 정책을 설정하는 역할정책 관리부; 트랜잭션에 의한 블록의 기록 또는 조회를 수행하되, 상기 트랜잭션의 사용자 데이터를 상기 오프체인에 기록하거나 상기 오프체인으로부터 조회하는 작업을 수행하게 하는 블록요청 처리부; 상기 사용자 데이터를 해당 사용자 데이터 및 해당 사용자 데이터에 부여된 역할로 구성된 오프체인 구문의 데이터로 변환하거나, 상기 오프체인 구문의 데이터를 원래 형태인 사용자 구문의 데이터로 변환하는 오프체인 표현부; 및, 상기 오프체인 구문의 데이터를 처리하되, 해당 오프체인 구문의 역할에 따라 데이터를 처리하는 체인코드를 호출하는 체인코드 호출부를 포함하는 것을 특징으로 한다.
또한, 본 발명은 블록체인 네트워크 상에서 오프체인 원장을 이용한 역할기반의 데이터 보호 시스템에 있어서, 상기 작업은 쓰기 작업 또는 암호화 작업의 기록 작업과, 읽기 작업 또는 복호화 작업의 조회 작업으로 구성되고, 상기 체인코드는 데이터에 대하여 기록 작업 또는 조회 작업을 수행하는 코드인 것을 특징으로 한다.
또한, 본 발명은 블록체인 네트워크 상에서 오프체인 원장을 이용한 역할기반의 데이터 보호 시스템에 있어서, 상기 체인코드 호출부는 상기 오프체인 구문의 역할에 따라 암호화 작업 또는 복호화 작업을 수행할 때, 해당 역할의 역할 인증서의 키로 암호화 또는 복호화를 수행하는 것을 특징으로 한다.
또한, 본 발명은 블록체인 네트워크 상에서 오프체인 원장을 이용한 역할기반의 데이터 보호 시스템에 있어서, 상기 체인코드 호출부는 상기 오프체인 원장에 오프체인 구문의 데이터를 기록할 때 상기 오프체인 구문의 역할에 따라 데이터에 대한 암호화 작업 또는 쓰기 작업을 수행하고, 상기 오프체인 원장에서 오프체인 구문의 데이터를 조회할 때 상기 오프체인 구문의 역할이 상기 역할 정책에 의해 해당 사용자에 할당된 경우에만 상기 오프체인 구문의 역할에 따라 데이터에 대한 복호화 작업을 수행하는 것을 특징으로 한다.
또한, 본 발명은 블록체인 네트워크 상에서 오프체인 원장을 이용한 역할기반의 데이터 보호 시스템에 있어서, 상기 체인코드 호출부는 상기 오프체인 원장에서 오프체인 구문의 데이터를 조회할 때 상기 오프체인 구문의 역할이 상기 역할 정책에 의해 해당 사용자에 할당되지 않은 경우 상기 오프체인 원장에서 복호화 하지 않고 기록된 형태대로 조회하는 것을 특징으로 한다.
또한, 본 발명은 블록체인 네트워크 상에서 오프체인 원장을 이용한 역할기반의 데이터 보호 시스템에 있어서, 상기 오프체인 구문은 사용자 데이터의 각 필드 별로 역할을 부여하도록 구성되는 것을 특징으로 한다.
또한, 본 발명은 블록체인 네트워크 상에서 오프체인 원장을 이용한 역할기반의 데이터 보호 시스템에 있어서, 상기 오프체인 표현부는 사전에 데이터 변환 정책을 보유하고, 보유한 데이터 변환 정책에 따라 사용자 데이터에 역할을 부여하여 오프체인 구문으로 변환하는 것을 특징으로 한다.
또한, 본 발명은 블록체인 네트워크 상에서 오프체인 원장을 이용한 역할기반의 데이터 보호 시스템에 있어서, 상기 역할 정책 및 상기 데이터 변환 정책은, 트랜잭션의 블록체인 원장을 공유하는 피어들로 구성된 제1 채널과 다르게 구성되는, 상기 블록체인망의 제2 채널에 저장되는 것을 특징으로 한다.
또한, 본 발명은 블록체인 네트워크 상에서 오프체인 원장을 이용한 역할기반의 데이터 보호 시스템에 있어서, 상기 시스템은, 상기 역할 인증서의 키를 생성하고 관리하는 키관리 시스템을 더 포함하는 것을 상기 블록체인망은 하이퍼레저 패브릭(Hyperledger fabric) 방식의 블록체인망인 것을 특징으로 한다.
상술한 바와 같이, 본 발명에 따른 블록체인 네트워크 상에서 오프체인 원장을 이용한 역할기반의 데이터 보호 시스템에 의하면, 오프체인 원장에 접근하려는 사용자의 역할을 지정하고 그 역할에 따라서 프라이빗 데이터(Private Data)를 암호화할 수 있게 함으로써, 블록체인 오프체인 데이터의 기밀성을 보장할 수 있는 효과가 얻어진다.
또한, 본 발명에 따른 블록체인 네트워크 상에서 오프체인 원장을 이용한 역할기반의 데이터 보호 시스템에 의하면, 역할에 따라 프라이빗 데이터(Private Data)에 허가된 작업이 결정되므로, 단순히 피어(Peer)에 대한 접근 권한이 있다고 해서 프라이빗 데이터(Private Data) 내용에 접근이 가능한 종래 기술의 문제점 해결할 수 있는 효과가 얻어진다.
또한, 본 발명에 따른 블록체인 네트워크 상에서 오프체인 원장을 이용한 역할기반의 데이터 보호 시스템에 의하면, 개인정보를 암호화하여 블록체인망에 기록하고 전달함으로써, 제3자가 블록체인망에 접근하더라도 개인정보를 보호할 수 있는 효과가 얻어진다.
또한, 본 발명에 따른 블록체인 네트워크 상에서 오프체인 원장을 이용한 역할기반의 데이터 보호 시스템에 의하면, 블록체인 네트워크에서의 조직(ORG) 내에서 다양한 업무 범위에 대하여 역할로 지정할 수 있는 효과가 얻어진다. 예를 들어, 재무책임자, 회계담당자, 영업담당자 등으로 역할을 구분할 수 있으며 이들이 다루어야 할 데이터는 매출정보, 매입정보, 회계정보, 세무정보 등이 될 수 있다. 이 역할에 해당하는 실제 사용자는 한명일 수도 있고 여러 명일 수도 있으며, 한 사용자가 여러 역할에 포함될 수도 있다.
도 1은 본 발명의 제1 실시예를 실시하기 위한 전체 시스템의 예시 구성도.
도 2는 본 발명의 제1 실시예에 따른 블록체인 응용장치(20)의 세부 구성에 대한 블록도.
도 3 은 본 발명의 제1 실시예에 따른 작업과 해당 작업의 체인코드를 예시하는 표.
도 4는 본 발명의 제1 실시예에 따른 역할과 해당 역할의 역할 정책을 예시하는 표.
도 5는 본 발명의 제1 실시예에 따른 데이터 변환 정책을 예시하는 표.
도 6은 본 발명의 제1 실시예에 따른 사용자 데이터를 기록하는 방법을 설명하기 위한 예시도.
도 7은 본 발명의 제1 실시예에 따른 프라이빗 데이터를 조회하는 방법을 설명하기 위한 예시도.
도 8은 본 발명의 제2 실시예에 따른 블록체인 응용장치 등 데이터 보호 시스템의 구성에 대한 블록도.
도 9는 본 발명의 제3 실시예에 따른 블록체인 응용장치 등 데이터 보호 시스템의 구성에 대한 블록도.
도 10은 본 발명의 제4 실시예에 따른 블록체인 응용장치 등 데이터 보호 시스템의 구성에 대한 블록도.
이하, 본 발명의 실시를 위한 구체적인 내용을 도면에 따라서 설명한다.
또한, 본 발명을 설명하는데 있어서 동일 부분은 동일 부호를 붙이고, 그 반복 설명은 생략한다.
먼저, 본 발명의 제1 실시예를 실시하기 위한 전체 시스템의 구성을 도 1을 참조하여 설명한다.
도 1에서 보는 바와 같이, 본 발명의 제1 실시예에 따른 전체 시스템은 사용자 단말(11), 관리자 단말(12), 다수의 피어(21)로 구성되는 블록체인망(20), 및, 블록체인망(20)의 블록체인을 생성/조회하되, 역할정책에 따라 통제하는 블록체인 응용장치(30)로 구성된다. 추가적으로, 역할인증서의 인증을 관리하는 인증기관 서버(50), 또는, 역할정책 정보 등을 저장하는 데이터베이스(40) 등을 더 포함하여 구성될 수 있다.
먼저, 사용자 단말(11)은 사용자가 사용하는 단말로서, 스마트폰, 태블릿PC, 노트북, 개인용 컴퓨터(PC) 등 컴퓨팅 기능을 가지는 통상의 컴퓨터 단말이나 전용 단말이다.
사용자 단말(11)은 블록체인 응용장치(30)를 통해 블록체인망(20)에 데이터를 블록으로 저장하거나, 블록에 저장된 데이터를 조회한다. 특히, 사용자 단말(11)에는 데이터의 저장/조회 등을 수행하는 어플리케이션 또는 모바일 어플리케이션(앱, 어플 등)이 클라이언트(미도시)로서 설치될 수 있다. 즉, 클라이언트(미도시)가 구동되어, 사용자 단말(11) 상에서 블록체인망(20)에 접근하여 데이터를 조회/생성할 수 있다. 특히, 클라이언트 모듈(미도시)은 블록체인 응용장치(30)를 서버 모듈로 하여, 서버-클라이언트 방식으로 트랜잭션/데이터의 조회/기록 서비스를 제공한다.
사용자는 사용자 단말(11)을 통해 작업을 수행한다. 이하에서 사용자가 어떤 작업을 수행한다는 것은 사용자 단말(11)을 통해 해당 작업을 수행한다는 것으로 본다.
다음으로, 관리자 단말(12)은 관리자가 사용하는 단말로서, 스마트폰, 태블릿PC, 노트북, 개인용 컴퓨터(PC) 등 컴퓨팅 기능을 가지는 통상의 컴퓨터 단말이나 전용 단말이다.
관리자 단말(12)은 블록체인 응용장치(30)를 통해, 역할 정책을 정의하여 저장하고, 역할 정책에 따라, 블록체인망(20)에 역할 인증서를 생성하거나 역할 인증서를 사용자에게 할당한다.
한편, 역할 정책의 정의, 역할 인증서의 생성이나 할당 등의 작업은 사용자 또는 사용자 단말(11)에 의해 수행될 수도 있다. 이때, 바람직하게는, 사용자 단말(11)의 작업에 대하여 관리자 또는 관리자 단말(12)에 의해 승인되어야 해당 작업이 완료된다.
관리자 단말(12)은 블록체인 응용장치(30)를 통해 역할 정책을 정의하거나 역할인증서를 발급한다. 특히, 관리자 단말(12)에는 역할정책/역할인증서의 처리를 수행하는 어플리케이션 또는 모바일 어플리케이션(앱, 어플 등)이 클라이언트(미도시)로서 설치될 수 있다. 또한, 클라이언트 모듈(미도시)은 블록체인 응용장치(30)를 서버 모듈로 하여, 서버-클라이언트 방식으로 역할정책/역할인증서 서비스를 제공한다.
관리자는 관리자 단말(12)을 통해 작업을 수행한다. 이하에서 관리자가 어떤 작업을 수행한다는 것은 관리자 단말(12)을 통해 해당 작업을 수행한다는 것으로 본다.
다음으로, 블록체인망(20)은 통상의 프라이빗 블록체인망(private/ permissioned blockchain network)으로서, 트랜잭션 또는 데이터를 블록으로 기록하되, 각 블록들을 블록 체인으로 연결하여 기록한다. 바람직하게는, 블록체인망(20)은 하이퍼레저 패브릭(Hyperledger fabric) 방식으로 구성된다.
도 1에서 보는 바와 같이, 블록체인망(20)은 다수의 피어(21), 각 피어(21)에 구비된 블록체인 원장(22) 및 체인코드(23), 및, 역할 인증서 등을 발급하고 인증하는 MSP 모듈(25)로 구성된다. 다수 피어(21)들은 서로 직접 또는 간접적으로 연결되어 하나의 채널(24)을 구성한다.
특히, 블록체인망(20)은 네트워크로 연결된 다수의 피어(21)들로 구성된다.
각 피어(21)는 하나의 컴퓨팅 단말 또는 서버로서, 트랜잭션 또는 데이터를 블록체인으로 기록한 원장(이하 블록체인 원장)(22)을 복제하여 저장한다. 따라서 모든 피어(21)는 서로 동기화 하여, 동일한 블록체인 원장을 보유한다.
구체적으로, 각 트랜잭션 데이터의 해쉬값을 구하여, 해쉬값들을 블록 체인으로 구성한다. 이때, 블록체인 원장은 각 메시지의 해시값들을 블록들의 체인으로 구성한 블록체인과, 트랜잭션 데이터를 모두 포함한다. 블록체인 원장의 트랜잭션 또는 데이터를 열람함으로써 해당 트랜잭션의 내용을 열람할 수 있고, 블록체인의 해시값을 인증함으로써 해당 트랜잭션의 진위 여부를 검증할 수 있다.
한편, 블록체인 원장(22)은 블록체인망(20)에 접근할 수 있는 모든 사용자에게 공개되는 온체인(on-chain) 원장과, 역할 정책에 따라 특정 역할을 가진 사용자에게만 열람시켜주는 오프체인(off-chain) 원장으로 구성된다.
온체인 원장은 해시값에 의한 통상의 블록체인 형태로 구성되며, 오프체인 원장은 각 온체인 원장의 블록에 연관된 데이터로서 구성된다. 즉, 온체인 원장 내의 블록을 참조하고, 참조된 온체인 블록을 통해 오프체인 원장의 데이터를 접근한다. 이때, 모든 사용자는 온체인 원장의 블록에는 접근할 수 있으나, 특정 역할이 부여된 사용자만 오프체인 원장을 접근할 수 있다.
또한, 각 피어(21)는 오프체인 원장을 접근하기 위한 체인코드(23)를 구비한다. 체인코드(23)는 프로그램 모듈로서, 오프체인 원장에 데이터를 기록하거나 조회하는 모듈이다. 특히, 체인코드(23)는 데이터를 암호화 하여 오프체인 원장에 데이터를 기록하거나, 오프체인 원장에서 암호화된 데이터를 조회하여 복호화 할 수 있다. 따라서 각 피어(21)에서는, 체인코드(23)가 호출되어, 오프체인 원장의 데이터가 조회되거나 기록된다.
한편, 피어(21)는 어떤 하나의 트랜잭션 작업이 수행되어 해당 트랜잭션을 기록할 것을 요청받으면, 새로운 트랜잭션를 블록으로 생성하고 자신의 블록체인 원장에 추가하고, 추가된 블록 정보를 다른 피어(21)에 전송한다. 추가되는 정보 또는 블록은 기존의 블록체인 원장에 블록체인으로 추가된다.
또한, 다른 피어(21)들은 앞서 갱신한 피어(21)로부터 추가되는 블록 정보를 수신하여, 자신의 블록체인 원장에 블록 정보를 추가한다. 바람직하게는, 피어(21)는 자신의 주변에 위치하는 피어(21)들에게, 추가되는 블록체인에 대한 갱신 정보(추가 정보)를 전송하고, 주변의 피어(21)들은 블록체인에 대한 갱신 정보를 자신의 블록체인 원장에 기록하고, 또 다시 자신의 주변의 피어들에게 전송한다. 따라서 블록체인망(20) 내에 위치하는 모든 피어(21)들은 블록체인 원장을 동기화 하여 모두 동일한 블록체인 원장을 보유하게 된다.
다만, 블록체인 원장 중에서 오프체인 원장은 특정 피어(21)들에게만 저장되고 모든 피어(21)들에 전파되지 않을 수 있다. 즉, 블록체인 원장의 온체인 원장은 모든 피어(21)에 전파되나, 오프체인 원장은 일부 피어(21)에만 전파될 수 있다.
즉, 바람직하게는, 오프체인 원장은 연결된 모든 피어에 데이터를 공유하지 않고 특정 피어에만 저장하거나 허가된 피어들에게만 공유한다. 이것은 개인정보와 같은 민감정보는 모든 노드에 공유되지 않아야 하기 때문이다. 오프체인 원장을 사용할 피어는 블록체인의 PDC(Private Data Collection) 정책에 의해 결정되고, MSP는 이 정책에 따라 체인코드가 특정 피어의 오프체인 원장에 접근할 권한을 부여한다. 이 정책에서 특정 피어들의 오프체인 원장을 사용하도록 정책이 설정되었다면, 해당 피어들 간에 오프체인 원장이 공유된다.
특히, 각 피어(21)들은 하나의 채널(24)로 구성되어, 해당 채널(24) 내에서는 블록체인 원장(22)이 전파된다. 채널(24)은 피어(21)들이 서로 직접 또는 간접적으로 연결되어, 서로 동일한 블록체인 원장(22)을 공유하는 연결가능한 하나의 그룹을 나타낸다.
한편, 채널(24)은 하나의 블록체인망(20)에 다수 개가 존재할 수 있다. 즉, 서로 다르거나 분리된 블록체인 원장(22)이 다수개가 존재하고, 각 블록체인 원장(22)을 공유하는 각각의 채널(24)이 구성될 수 있다. 하나의 물리적인 피어(21)는 2개 이상의 블록체인 원장(22)을 기록하고, 다수의 채널(24)에 가입될 수 있다. 따라서 채널(24)은 공유되는 블록체인 원장(22)의 공유 범위를 나타내는 것이고, 피어(21)의 물리적인 연결 범위를 나타내는 것은 아니다. 그러나 이하에서 설명의 편의를 위하여 서로 다른 피어(21)로 구분하여 도시한다.
또한, 블록체인망(20) 내에는 역할 인증서를 발급하고 이를 검증하는 MSP(Membership Service Provider)가 구비된다. 즉, MSP(Membership Service Provider) 또는 MSP 모듈(25)은 역할 인증서를 발급하고 인증기관 서버(50)에 등록하고, 인증기관 서버(50)를 통해 해당 역할 인증서가 검증된다. 그러나 이하에서 설명의 편의를 위하여 MSP 모듈(25)에서 역할 인증서가 검증되는 것으로 설명한다.
MSP 또는 MSP 모듈(25)은 역할 인증서의 적용 범위에 따라 전체 네트워크 범위의 MSP, 채널 범위의 MSP 등으로 구분될 수 있다. 바람직하게는, MSP(25)의 역할 인증서는 전체 네트워크 범위에 적용된다.
역할인증서는 각 역할에 대한 키(암호화 키, 복호화 키)를 생성하여 저장한다. 바람직하게는, 역할인증서로 암호화된 대칭키를 사용한다. 예를 들어, AES 대칭키 방식을 이용한다.
다음으로, 블록체인 응용장치(30)는 역할 정책을 정의하고, 블록체인 원장(22)에 트랜잭션 또는 데이터를 기록하거나 조회하되, 역할 정책에 따라 해당 데이터의 접근을 통제한다.
바람직하게는, 블록체인 응용장치(30)는 블록체인망(20)과 연동되는 서버로 구현될 수 있다. 또한, 블록체인 응용장치(30)는 사용자 단말(11) 또는 관리자 단말(12)의 클라이언트와 연동하여 서버-클라이언트 방식으로, 역할 정책에 대한 서비스, 블록체인망의 트랜잭션/데이터의 조회/기록 서비스를 제공한다.
또한, 블록체인 응용장치(30)는 블록체인망(20)의 피어(21) 중 일부에게만 트랜잭션 또는 데이터를 기록하거나 조회하도록 요청한다.
다음으로, 데이터베이스(40)는 역할정책을 저장하는 역할정책 DB(41), 및 데이터를 변환하는 정책을 저장하는 변환정책 DB(42)을 포함한다. 그러나 상기 데이터베이스(40)의 구성은 바람직한 일실시예일 뿐이며, 구체적인 장치를 개발하는데 있어서, 접근 및 검색의 용이성 및 효율성 등을 감안하여 데이터베이스 구축이론에 의하여 다른 구조로 구성될 수 있다.
다음으로, 본 발명의 제1 실시예에 따른 블록체인 응용장치(30)의 구성을 도 2 내지 도 5를 참조하여 설명한다.
도 2에서 보는 바와 같이, 본 발명에 따른 블록체인 응용장치(30)는 역할 정책을 관리하는 역할정책 관리부(31), 트랜잭션에 의한 블록의 저장, 조회 등을 수행하는 블록요청 처리부(32), 오프체인 데이터를 변환하는 오프체인 표현부(34), 및, 피어(21)의 체인코드(23)를 호출하는 체인코드 호출부(35)로 구성된다.
먼저, 역할정책 관리부(31)는 오프체인 데이터에 대한 역할 정책을 관리하는 모듈(OPM, Off-chain Policy Management)로서, 역할 인증서를 발급하고, 역할 인증서에 대한 역할 정책을 정의한다. 즉, 역할정책 관리부(31)는 MSP(Membership Service Provider)(25)를 통해 역할에 대한 인증서(또는 역할 인증서)를 발급하고, 발급된 역할인증서에 사용자를 할당(UA, User Assignment)하고 프라이빗 데이터(Private Data)에 대한 작업 허가를 할당(PA, Permission Assignment)함으로써 역할 정책을 정의한다.
즉, 역할정책 관리부(31)는 블록체인망(20)의 MSP(25)를 통하여 역할 인증서를 발급한다. 또한, 역할정책 관리부(31)는 발급된 역할 인증서를 사용자에게 할당하고 역할인증서에 작업허가를 할당한다. 이를 통해, 역할정책 관리부(31)는 사용자가 사용자 데이터를 암호화하여 오프체인 원장에 기록하거나 오프체인 원장의 데이터에 접근하고자 할 때, 역할기반으로 원장에 대한 접근 허가, 데이터에 대한 접근 허가, 암호화 작업, 복호화 작업에 대한 정책을 제공한다.
오프체인 역할은 블록체인망(20)의 역할과는 별개로, 블록체인망 관리자에 의해, 블록체인망(20) 내에 구현(built-in)된다. 즉, 관리자 또는 관리자 단말(12)은 조직 생성, 노드 구성, 원장 구성 등을 수행한다. 관리자는 구성된 블록체인망(20)을 사용하는 측면에서의 정책 관리자로 볼 수 있다. 즉, 블록체인을 사용하는 사용자 중 조직 내에서 사용할 역할을 지정하고, 사용자에게 역할을 할당하는 등의 정책 관리를 수행한다. 이 중 조직 내의 데이터가 오프체인 원장으로 관리되어야 할 때 이에 대하여 정의한 역할이 오프체인 역할이다.
관리자(또는 정책 관리자) 또는 관리자 단말(12)은 조직(회사 등의 실제 조직으로 볼 수도 있으며, 블록체인망의 조직과 동일할 수도 있다) 내의 사용자들의 업무 범위 및 역할과 처리되는 데이터 특성에 따라서 블록체인망(20)의 MSP(25)를 통하여 역할 인증서를 발급한다. 예를 들어, 오프체인 원장으로 관리할 자산 데이터가 회사 내의 회계 정보일 경우, 회계 정보를 취급하는 사용자들의 권한에 따라 역할(재무책임자, 회계담당자, 영업담당자 등)을 생성할 수 있다. 즉, 역할은 재무 책임자, 회계 담당자, 영업 담당자 등의 역할로서 정의될 수 있고, 해당 역할에 따라 접근할 데이터의 범위나 처리 권한이 설정될 수 있다.
이때, 역할정책 관리부(31)는 관리자 또는 관리자 단말(12)에 의해, 역할명을 생성하고 역할인증서를 발급받아서 해당 역할에 할당한다. 오프체인 역할은 반드시 역할 인증서가 할당되며, 오직 한 개의 역할 인증서만 할당된다. 즉, 역할 인증서는 역할에 대한 인증서이다. 오프체인에 저장된(저장할) 데이터를 접근할 권한이 역할에 따라 설정된다. 따라서 동일한 역할이 부여되면, 프라이빗 데이터에 대해 동일한 접근 권한 또는 접근 범위가 부여된다.
또한, 역할정책 관리부(31)는 오프체인 역할에 작업 허가(PA)를 할당한다. 특히, 관리자 또는 관리자 단말(12)의 명령 또는 입력에 의하여, 오프체인 역할에 작업 허가(PA)를 할당한다. 작업 허가는 오프체인의 데이터에 대한 작업의 허가를 나타낸다. 다른 실시예로서, 역할정책 관리부(31)는 사용자 또는 사용자 단말(11)의 명령 또는 입력에 의해 작업 허가를 할당할 수 있다. 이때, 바람직하게는, 관리자 또는 관리자 단말(12)에 의한 승인 등을 받아여 할당한다.
도 3에서 보는 바와 같이, 오프체인의 데이터(사용자 데이터 또는 프라이빗 데이터)에 대한 작업은 쓰기 작업, 암호화 작업, 읽기 작업, 복호화 작업, 삭제 작업 등으로 구분된다. 쓰기 작업은 데이터(또는 사용자 데이터)를 오프체인 원장에 기록하는 작업이고, 암호화 작업은 사용자 데이터를 암호화 하여 오프체인 원장에 기록하는 작업이다. 또한, 읽기 작업은 오프체인 원장에서 데이터(또는 프라이빗 데이터)를 조회하는 작업이고, 복호화 작업은 오프체인 원장에서 암호화된 프리이빗 데이터를 복호화 하여 조회하는 작업이다. 또한, 삭제 작업은 오프체인 원장에서 프라이빗 데이터를 삭제하는 작업이다.
여기서 사용자 데이터는 사용자가 오프체인에 저장할 데이터를 의미하고, 프파이빗 데이터는 오프체인에 저장된 데이터를 의미한다. 이하에서 사용자 데이터와 프리이빗 데이터를 혼용한다. 특히, 프라이빗 데이터를 오프체인에 저장하는 데이터 및 오프체인에 저장할 데이터로 모두 사용하기로 한다.
또한, 쓰기 작업과 암호화 작업은 사용자 데이터를 기록하는 작업으로서 동일한 작업 그룹(이하 기록 작업그룹)을 이룬다. 또한, 읽기 작업과 복호화 작업은 프라이빗 데이터를 조회하는 작업 그룹(이하 조회 작업그룹)을 이룬다. 또한, 삭제 작업은 삭제 작업그룹을 이룬다.
바람직하게는, 역할에 각 작업 그룹의 작업을 할당할 때, 해당 작업 그룹의 작업들 중에서 하나만 할당된다. 도 4와 같이, 각 역할의 작업허가(PA)에는 기록, 조회, 삭제 작업그룹 각각에서 하나의 작업만 등록된다. 즉, 기록 작업그룹에서 할당될 때, 쓰기 작업이나 암호화 작업 중 하나만 할당된다. 구체적으로, 사용자 데이터를 오프체인에 기록할 때, 쓰기(write.user_data) 또는 암호화(encrypt.user_data)가 할당되며, 오프체인 데이터를 사용자가 조회할 때 읽기(read.priv_data) 또는 복호화(decrypt.priv_data)가 할당된다.
오프체인 역할에 대한 작업 할당의 예가 도 4에 도시되고 있다. 도 4의 예에서 재무(Role.Finance) 역할에 대해서 복호화 작업(dec.priv_data)만 허가되고 있다. 또한, 회계(Role.Account)와 영업(Role.Sales) 역할에 대해서는 암호화 작업(enc.user_data)과 복호화 작업(dec.priv_data)이 모두 허가되고 있다. 이들 역할에 의한 데이터는 모두 암호화 하거나 복호화 하여 안전하게 저장한다. 그러나 일반(Role.General) 역할에 대해서는 암호화 나 복호화 대신 읽기 작업(read.priv_data)과 쓰기 작업(write.user_data)만 허가 되고 있다.
한편, 도 4와 같이, 허가되는 작업을 해당 작업의 체인코드(23)의 이름으로 나타낼 수 있다.
또한, 역할정책 관리부(31)는 관리자 또는 관리자 단말(12)에 의하여, 오프체인 역할에 사용자(UA)를 할당한다.
블록체인망(20)의 오프체인 원장에 접근하고자 하는 사용자는 정책 관리자에 의해 한 개 이상의 오프체인 역할이 지정된다. 오프체인 원장에 접근이 필요없거나 공유되는 온체인 원장에만 접근하는 사용자에게는 오프체인 역할 할당이 필요 없다.
도 4의 예에서, 재무(Role.Finance) 역할에는 사용자 User_A만 할당되고, 회계(Role.Account) 역할에는 사용자 User_A, User_B 가 할당된다. 또한, 영업(Role.Sales) 역할과 일반(Role.General) 역할에는 각각 User_A, User_B, User_C와, User_A, User_B, User_C, User_D 가 할당된다.
또한, 역할정책 관리부(31)는 생성된 역할 또는 역할 인증서에 대하여, 작업 허가(또는 작업 할당)(PA)과 사용자 할당(UA)을 수행함으로써, 역할에 대한 정책, 즉, 역할정책을 정의한다. 역할 정책은 도 4에 예시되고 있다. 도 4와 같이, 역할 정책은 각 역할과, 해당 역할의 작업허가 및 허가된 사용자로 구성된다.
다음으로, 블록요청 처리부(32)는 사용자 또는 사용자 단말(11)로부터 트랜잭션 데이터 또는 블록을 조회하거나 기록하는 요청을 수신하고, 사용자 요청에 따라 트랜잭션 데이터의 조회 또는 기록 작업을 처리한다.
이때, 사용자가 요청하는 데이터를 "트랜잭션 데이터"라 부르기로 하고, 트랜잭션 데이터 중에서 블록체인의 온체인에 저장되는 데이터를 "온체인 데이터"라 부르고, 오프체인에 저장되는 데이터를 "오프체인 데이터(또는 프라이빗 데이터)"라 부르기로 한다. 프라이빗 데이터는 오프체인 원장에 저장되는 프라이빗 데이터나, 오프체인 원장에 저장하려는 사용자 데이터를 모두 나타낸다.
먼저, 트랜잭션 데이터를 기록하는 요청을 수신하는 경우를 설명한다. 블록요청 처리부(32)는 온체인에 저장할 온체인 데이터와, 오프체인에 저장할 오프체인 데이터를 추출한다. 그리고 온체인 데이터를 온체인의 블록으로 생성하여 블록체인망(20) 내의 피어(21)에 해당 블록을 온체인 원장에 추가할 것을 요청한다. 또한, 블록요청 처리부(32)는 오프체인 표현부(34)와 체인코드 호출부(35)를 통해, 오프체인 데이터 또는 사용자 데이터를 오프체인 원장에 기록하도록 처리한다.
다음으로, 트랜잭션 데이터를 조회하는 요청을 수신하는 경우를 설명한다. 블록요청 처리부(32)는 피어(21)에 요청하여 온체인의 블록 데이터를 조회한다. 또한, 블록요청 처리부(32)는 오프체인 표현부(34)와 체인코드 호출부(35)를 통해, 오프체인 데이터 또는 프라이빗 데이터를 오프체인 원장에서 조회하고 변환 처리한다.
한편, 블록요청 처리부(32)는 블록체인의 온체인 데이터만을 조회/기록하는 경우에는 오프체인과 관련된 작업을 수행하지 않는다. 즉, 오프체인 표현부(34) 또는 체인코드 호출부(35)를 통해 작업을 수행하지 않는다.
다음으로, 오프체인 표현부(34)는 오프체인의 데이터를 표현하는 모듈(ODP, OffChain Data Presentation)로서, 사용자 데이터(또는 프라이빗 데이터)를 블록체인의 오프체인 원장에 기록하기 위하여 사용자 데이터를 체인코드(23)가 해석가능한 구문(이하 오프체인 구문)으로 변환하거나, 반대로, 사용자가 오프체인 원장에 기록된 데이터를 요청할 때 체인코드(23)에서 가져온 프라이빗 데이터를 사용자가 이해가능한 구문(이하 사용자 구문)으로 변환한다.
즉, 오프체인 표현부(34)는 사용자 구문의 사용자 데이터를 오프체인 역할 정책에 기반하여 오프체인 원장에 저장할 형태인 오프체인 구문으로 변환한다. 즉, 오프체인 표현부(34)는 사용자가 블록체인에 기록하기 위한 사용자 데이터를 체인코드(23)에서 해석하기 위하여 변환하는 역할을 담당한다.
또한, 오프체인 표현부(34)는 오프체인 원장의 데이터(또는 오프체인 구문의 데이터)를 사용자 데이터(사용자 구문의 데이터)로 변환한다. 즉, 블록체인에 저장된 데이터를 사용자에게 제공할 때 역변환을 하도록 한다.
오프체인 구문은 사용자 데이터와 각 사용자 데이터에 부여된 역할로 구성된다. 바람직하게는, 사용자 구문은 다수의 필드로 구성되고, 오프체인 구문은 다수의 필드와 각 필드에 부여된 역할로 구성된다. 더욱 바람직하게는, 오프체인 구문은 XML(Extensible Markup Language), XACML(Extensible Access Control Markup Language), 혹은 JSON(JavaScript Object Notation) 형태로 구성될 수 있다.
즉, 오프체인 표현부(34)는 사용자 데이터의 전체 또는 각 부분에 대하여 오프체인 역할을 설정하여 오프체인 구문의 데이터로 변환하고, 반대로, 오프체인 구문의 데이터에서 오프체인 역할을 제외하여 사용자 구문의 데이터로 변환한다.
바람직하게는, 오프체인 표현부(34)는 사용자 데이터를 필드 단위로 오프체인 역할을 부여하고, 어느 필드에 어떤 오프체인 역할을 부여할 것인지를 데이터 변환 정책으로 설정한다.
특히, 오프체인 표현부(34)는 정책 관리자 또는 관리자 단말(12)에 의해, 사용자 데이터에 대하여 역할을 할당한 데이터 변환 정책을 관리할 수 있다. 즉, 관리자 단말(12)의 명령 또는 입력에 의해, 데이터 변환 정책이 설정되어 저장된다.
데이터 변환 정책의 예시가 도 5에 도시되고 있다. 도 5에서 보는 바와 같이, 데이터 변환 정책은 사용자의 데이터 필드와, 해당 데이터 필드에 대한 역할로 정의된다. 이때, 하나의 데이터 필드에는 하나의 역할만 정의된다. 데이터 변환 정책은 데이터 필드를 암호화할 때 사용할 암호키를 분리하기 위하여 데이터 필드에 대해 서로 다른 역할을 부여하기 위한 것이다. 한편, 역할 정책은 복호화할 때 데이터를 요청한 사용자의 역할에 따라 해당 필드에 대한 복호화 여부를 판단하기 위한 것이다.
각 오프체인 구문으로 변환된 데이터는 체인코드 호출부(35) 또는 체인코드(23)에 의해 해당 역할의 작업허가(PA)에 따라 암호화/쓰기, 복호화/읽기, 또는 삭제 된다. 즉, 오프체인 구문의 사용자 데이터(또는 데이터 필드)를 해당 역할(부여된 역할)의 작업(허가된 작업)에 의하여 변환(암호화/복호화, 쓰기/읽기, 삭제 등)을 수행한다.
다음으로, 체인코드 호출부(35)는 역할에 기반하여 체인을 호출하는 모듈(CRC, Call Role-based Chaincode)로서, 사용자 단말(11)(또는 클라이언트)이 블록체인망(20)에 트랜잭션을 제안할 때 사용자에 할당된 역할에 따라 해당 체인코드를 호출한다.
체인코드(23)는 블록체인망(20)의 각 피어(21)에 구비된 프로그램 모듈로서, 오프체인 원장에 데이터를 기록하거나 조회하는 모듈이다. 특히, 체인코드(23)는 데이터를 암호화 하여 오프체인 원장에 데이터를 기록하거나, 오프체인 원장에서 암호화된 데이터를 조회하여 복호화 할 수 있다. 따라서 각 피어(21)에서는, 체인코드(23)가 호출되어, 오프체인 원장의 데이터가 조회되거나 기록된다.
도 3에서 보는 바와 같이, 체인코드는 각 작업허가에 해당하는 작업을 수행하기 위한 코드로 구성된다. 도 3의 예에서, write.user_data는 사용자 데이터를 오프체인 원장에 기록하는 모듈이고, encrypt.user_data는 사용자 데이터를 암호화 하여 오프체인 원장에 기록하는 모듈이다.
각 피어(21)는 도 3과 같은, 모든 작업, 즉, 쓰기 작업, 암호화 작업, 읽기 작업, 복호화 작업, 삭제 작업 등을 수행하기 위한 각각의 체인코드, write.user_data, encrypt.user_data, read.priv_data, decrypt.priv_data, delete.priv_data 등을 모두 구비한다. 위와 같은 작업을 단위 작업이라고 부르기로 한다.
즉, 체인코드에는 오프체인 역할에 따라 오프체인 원장의 프라이빗 데이터(Private Data) 영역에서 작업할 수 있는 허가가 명시된다. 이 허가는 사용자 데이터를 변환하는 과정에서 오프체인 역할 정책 내의 작업허가할당(PA)에 의해 지정된다. 앞서 설명한 바와 같이, 작업허가의 종류는 "읽기(read)", "쓰기(write)", "삭제(delete)", "암호화(encrypt)", "복호화(decrypt)"를 지정할 수 있다.
특히, 도 4의 역할 정책의 예에 의하면, 재무(Role.Finance) 역할이면서 조회 요청을 받으면, 조회작업 그룹에 해당하는 Dec.priv_data의 체인코드(23)를 호출한다. 또한, 일반(Role.General) 역할이면, 조회작업 그룹의 Read.priv_data의 체인코드를 호출한다. 즉, 같은 조회라 하더라도, 역할 정책에 따라 그냥 조회를 하거나, 복호화 하여 조회한다.
또한, 추가로, 체인코드에서 암호화된 프라이빗 데이터(Private Data)를 읽고(read.priv_data, decrypt.priv_data) 다른 역할로 암호화(write.priv_data, encrypt.priv_data)하는 작업 등 조합 작업도 존재할 수 있다. 조합 작업은 읽기, 복호화, 쓰기, 암호화, 삭제 등 단위 작업을 조합하여 수행되는 작업을 말한다.
한편, 체인코드 호출부(35)는 사용자 또는 클라이언트의 요청에 따라 MSP(25)에 의해 인가된 체인코드를 호출한다. 이때, 요청하는 사용자가 할당된 역할에 해당하는 오프체인 역할 정책에 의하여 체인코드(23)를 호출하되, 변환된(구문 변환된) 사용자 데이터를 체인코드(23)로 전달한다. 블록체인 데이터(또는 오프체인)를 조회하는 경우는 사용자 데이터는 전달되지 않는다.
또한, 체인코드 호출부(35)는 XML 혹은 JSON으로 표현된 사용자 데이터(또는 오프체인 구문의 데이터) 내에 설정된 역할에 해당하는 작업허가를 실행하되, 체인코드(23)를 호출함으로써 수행한다. 오프체인 구문의 사용자 데이터를 블록체인의 오프체인 원장에 기록하는 체인코드가 실행되는 경우, 사용자 데이터 내의 각 필드에 설정된 역할로 암호화를 한다. 프라이빗 데이터(Private Data)를 읽는 체인코드가 실행되는 경우, 오프체인 구문의 사용자 데이터에 할당된 각 역할에 해당하는 프라이빗 데이터(Private Data)의 필드를 복호화한다.
특히, 사용자 데이터를 기록하는 경우, 모든 사용자는 자신의 역할에 관련없이, 해당 사용자 데이터를 기록할 수 있다. 이때, 오프체인 구문의 역할에 의해 해당 사용자 데이터는 변환되어 기록된다. 또한, 사용자 데이터를 읽기하는 경우(열람을 하는 경우), 오프체인 구문의 역할에 의해 해당 사용자 데이터(또는 프라이빗 데이터)를 변환하여 열람할 수 있으나, 역할 정책에 따라 해당 역할이 해당 사용자에게 할당된 경우에만 복호화 하여 열람할 수 있다.
결과적으로, 사용자 데이터를 블록체인 데이터로 변환할 때 오프체인 역할에 따라 변환한다. 즉, 사용자 데이터에 대하여 오프체인 역할을 설정하게 되면 해당 역할에 할당된 작업허가(PA)에 따라 사용자 데이터를 암호화하거나 기록한다.
즉, 오프체인 역할은 사용자 데이터 전체에 대해서 설정할 수 있으며, 사용자 데이터 내 구분된 필드에 대하여 역할을 설정할 수도 있다. 사용자 데이터의 각 필드에는 하나의 오프체인 역할만 부여된다. 해당 오프체인 역할에 따라 사용자 데이터가 변환된다. 사용자가 프라이빗 데이터(Private Data)를 요청할 때 사용자가 할당된 역할과 작업허가에 따라 프라이빗 데이터(Private Data)를 읽거나 복호화하게 된다.
다음으로, 본 발명의 제1 실시예에 따른 사용자 데이터를 기록하는 방법과 조회하는 방법을 도 6 내지 도 7을 참조하여 설명한다.
도 6에서 보는 바와 같이, 사용자 구문의 사용자 데이터는 다수의 필드로 구성된다. 예를 들어, 사용자 데이터는 필드 1, 2, 3, 4로 구성된다.
이때, 사용자 데이터는 오프체인 표현부(34)를 통해 각 필드에 역할이 부여되는 오프체인 구문으로 변환된다.
다음으로, 변환된 구문의 필드에 대해 체인코드 호출부(35)에 의해 호출되어 체인코드(23)가 실행되어, 각 필드를 암호화 하거나 원 데이터를 오프체인에 저장한다. 이때, 체인코드 호출부(35)는 오프체인 구문에서 각 필드에 해당하는 역할을 참조하여, 오프체인 역할 정책에서 해당 역할의 "기록" 에 해당하는 작업을 수행하는 체인코드(23)를 호출한다. 이때, 사용자 데이터(각 필드)는 해당 역할의 역할 인증서의 암호화 키로 암호화 된다.
도 6의 예에서, 오프체인 표현부(34)에 의해, 데이터 변환 정책에 따라 필드 2(Field 2)는 Account 역할이 부여되어, { Role.Account, Field.2 }의 오프체인 구문으로 변환된다. 또한, 체인코드 호출부(35)에 의해, 역할 정책을 참조하여 Role.Account에 해당하는 기록 작업인 Enc.user_data의 체인코드(23)가 호출된다. 이때, 암호화를 위한 키는 Role.Account의 역할 인증서의 암호화 키로 이용된다. 따라서 Field.2는 Account의 역할인증서의 키에 의해 암호화 되어 저장된다.
한편, 오프체인에 저장될 때에도 오프체인 구문에 의해 저장된다. 즉, 오프체인 구문에 따라, 각 필드는 역할 및 암호화된 데이터로 저장된다.
또한, 위에서 본 바와 같이, 기록 작업에서는 역할 정책의 사용자 할당(UA)과는 무관하게, 각 필드의 역할 또는 데이터 변환 정책에 의해 부여된 역할에 따라 작업이 처리되어 저장된다. 즉, 사용자 User_C는 회계(Account) 역할이 할당되지 않았더라도, 필드 2(Field.2)의 데이터를 오프체인에 기록할 수 있다.
또한, 도 7(a)에서 보는 바와 같이, 사용자 User_C가 데이터 필드 1, 2, 3, 4을 요청하면, 체인코드 호출부(35)에 의해 체인코드(23)가 호출된다. 특히 체인코드(23) 중에서 조회 작업에 해당하는 체인코드들이 호출된다.
특히, 체인코드 호출부(35)는 각 필드 1, 2, 3, 4의 오프체인 구문의 역할에 따른 체인코드(23)를 호출한다. 즉, 필드 1, 2, 3, 4에 대해서 각각 판매(sales), 회계(Account), 판매(sales), 일반(general) 역할에 해당하는 조회 작업이 호출된다.
또한, 체인코드 호출부(35)는 오프체인 역할 정책을 참조하여, 해당 사용자 User_C에 할당된 작업만 허가한다. 즉, 사용자 User_C에는 판매(sales), 일반(general) 역할만 부여되고, 회계(Account) 역할은 부여되지 않고 있다. 따라서 필드 1, 2, 4 만 작업이 수행되고, 필드 3에는 작업이 수행되지 않는다. 이때, 복호화 작업은 해당 역할의 역할 인증서의 키로 복호화 된다.
바람직하게는, 해당 사용자에게 오프체인 역할이 할당되지 않으면, 복호화 작업이 수행되지 않고, 저장된 상태로 해당 데이터를 조회한다. 따라서 필드 3은 사용자 User_C에게는, 암호화된 상태로만 조회된다.
다음으로, 본 발명의 제2 실시예에 따른 블록체인 응용장치(30) 등 데이터 보호 시스템의 구성을 도 8을 참조하여 설명한다.
본 발명의 제2 실시예에는 앞서 제1 실시예와 동일하면, 다만, 역할, 역할정책, 데이터 변환 정책 등을 데이터베이스(40) 대신 블록체인의 온체인 원장을 통해 관리하는 점에서 상이하다.
도 9에서 보는 바와 같이, 본 발명의 제2 실시예에 따른 데이터 보호 시스템은 제1 실시에에 비하여, 블록체인망(20)에 역할 정책 및 데이터변환 정책을 기록하는 정책 채널(24b)를 더 포함하여 구성된다.
즉, 역할정책 관리부(31)에서 관리되는 오프체인 역할, 오프체인 역할 정책, 데이터 변환 정책 등을 블록체인 온체인 원장을 통하여 관리하도록 한다. 역할정책 관리부(31)에서 생성되는 정책은 블록체인망(20)에서 별도의 채널(또는 정책 채널)(24b)의 원장(특히, 온체인 원장)에 기록된다. 정책 채널의 온체인 원장에 기록되므로, 정책 채널에 참여하는 모든 블록체인 피어(21)에 공유된다.
또한, 오프체인 표현부(34) 또는 체인코드 호출부(35)는 정책을 참조해야 할 때, 블록체인망(20)의 정책 채널에서 정책을 조회하여 사용한다.
다음으로, 본 발명의 제3 실시예에 따른 블록체인 응용장치(30) 등 데이터 보호 시스템의 구성을 도 9를 참조하여 설명한다.
본 발명의 제3 실시예는 제1 또는 제2 실시예와 동일하며, 다만, 키관리 시스템(KMS)의 구성이 상이하다. 이하에서 상이한 부분만 설명하고, 나머지는 앞서 제1 또는 제2 실시예를 참고한다.
도 9에서 보는 바와 같이, 본 발명의 제3 실시예에 따른 데이터 보호 시스템은 키 관리 시스템(KMS)(60)을 더 포함하여 구성된다.
즉, 사용자 데이터 또는 프라이빗 데이터에 대한 암호화와 복호화 작업에는 대칭키 알고리즘(예, AES)을 사용한다. 암호화 키의 생성과 관리는 HSM(Hardware Security Module) 등의 별도의 키 관리 시스템(KMS, Key Management System)(60)을 통하여 수행된다.
HSM(Hardware Security Module)은 내부에 CPU와 메모리 등이 장착하고 있어 외부 위협으로부터 공인인증서(개인키 포함)를 안전하게 보호할 수 있는 스마트카드, USB토큰 등의 휴대용 저장장치를 말한다. 전자서명이 저장장치 내부에서 생성되고 저장된 전자서명 생성키는 저장장치 외부로 나오지 않기 때문에 피싱 및 해킹 등으로부터 공인인증서 유출을 방지할 수 있다.
또한, 본 발명에서는 HSM 등의 장치를 사용하는 것과 역할정책 관리부(31)에서 MSP(25)를 통하여 역할인증서를 발급받을 때 랜덤값의 암호화 키를 생성하고 이를 역할인증서의 공개키로 암호화하여 저장한다. 암호키는 블록체인망(20)의 역할 인증서와 동일한 위치에 저장한다.
다음으로, 본 발명의 제4 실시예에 따른 블록체인 응용장치(30) 등 데이터 보호 시스템의 구성을 도 10을 참조하여 설명한다.
본 발명의 제4 실시예는 제1 또는 제2, 제3 실시예와 동일하며, 다만, 작업 허가 등 작업 구성에 서명 또는 검증을 추가하는 구성이 상이하다. 이하에서 상이한 부분만 설명하고, 나머지는 앞서 제1 또는 제2, 제3 실시예를 참고한다.
도 10에서 보는 바와 같이, 작업허가에 디지털 서명(sign) 및 서명 검증(verify)을 추가한다. 이를 통해, 사용자 데이터의 기밀성(Confidentiality) 뿐만 아니라 부인 방지(Non-Repudiation)를 제공한다.
즉, 사용자 데이터의 암호화와 함께 사용자 데이터 전체 혹은 특정 필드에 대하여 해당 역할 인증서의 개인키로 디지털 서명을 하고, 암호화된 사용자 데이터에 추가하여 오프체인 원장에 기록한다. 서명을 검증하는 경우, 해당 역할에 따라 프라이빗 데이터(Private Data)를 복호하고 해당 역할 인증서의 공개키로 서명 검증을 할 수 있다.
이상, 본 발명자에 의해서 이루어진 발명을 실시 예에 따라 구체적으로 설명하였지만, 본 발명은 실시 예에 한정되는 것은 아니고, 그 요지를 이탈하지 않는 범위에서 여러 가지로 변경 가능한 것은 물론이다.
11 : 사용자 단말 12 : 관리자 단말
20 : 블록체인망 21 : 피어
22 : 블록체인 원장 23 : 체인코드
24 : 채널 25 : MSP
30 : 블록체인 응용 장치 31 : 역할정책 관리부
32 : 블록요청 처리부 34 : 오프체인 표현부
35 : 체인코드 호출부 40 : 데이터베이스
41 : 역할정책DB 42 : 변환정책DB

Claims (11)

  1. 블록체인 네트워크 상에서 오프체인 원장을 이용한 역할기반의 데이터 보호 시스템에 있어서,
    다수의 피어로 구성되는 블록체인망으로서, 각 피어는 블록체인 원장을 보유하고, 모든 피어들은 블록체인 원장을 동기화 시키고, 상기 블록체인 원장의 오프체인 원장의 데이터를 처리하는 체인코드를 구비하는, 블록체인망;
    역할을 정의하고, 해당 역할의 역할 인증서를 생성하고, 해당 역할에 사용자 및 작업 허가를 할당하여 역할 정책을 설정하고, 역할 정책에 따라 상기 체인코드를 호출하여 상기 오프체인 원장의 데이터에 대한 작업을 처리하게 하는 블록체인 응용장치를 포함하고,
    상기 작업은 쓰기 작업 또는 암호화 작업의 기록 작업과, 읽기 작업 또는 복호화 작업의 조회 작업으로 구성되고,
    상기 체인코드는 데이터에 대하여 기록 작업 또는 조회 작업을 수행하는 코드인 것을 특징으로 하는 블록체인 네트워크 상에서 오프체인 원장을 이용한 역할기반의 데이터 보호 시스템.
  2. 제1항에 있어서, 상기 블록체인 응용장치는,
    역할을 정의하고, 해당 역할의 역할 인증서를 생성하고, 해당 역할의 역할 정책을 설정하는 역할정책 관리부;
    트랜잭션에 의한 블록의 기록 또는 조회를 수행하되, 상기 트랜잭션의 사용자 데이터를 상기 오프체인에 기록하거나 상기 오프체인으로부터 조회하는 작업을 수행하게 하는 블록요청 처리부;
    상기 사용자 데이터를 해당 사용자 데이터 및 해당 사용자 데이터에 부여된 역할로 구성된 오프체인 구문의 데이터로 변환하거나, 상기 오프체인 구문의 데이터를 원래 형태인 사용자 구문의 데이터로 변환하는 오프체인 표현부; 및,
    상기 오프체인 구문의 데이터를 처리하되, 해당 오프체인 구문의 역할에 따라 데이터를 처리하는 체인코드를 호출하는 체인코드 호출부를 포함하는 것을 특징으로 하는 블록체인 네트워크 상에서 오프체인 원장을 이용한 역할기반의 데이터 보호 시스템.
  3. 삭제
  4. 제2항에 있어서,
    상기 체인코드 호출부는 상기 오프체인 구문의 역할에 따라 암호화 작업 또는 복호화 작업을 수행할 때, 해당 역할의 역할 인증서의 키로 암호화 또는 복호화를 수행하는 것을 특징으로 하는 블록체인 네트워크 상에서 오프체인 원장을 이용한 역할기반의 데이터 보호 시스템.
  5. 제2항에 있어서,
    상기 체인코드 호출부는 상기 오프체인 원장에 오프체인 구문의 데이터를 기록할 때 상기 오프체인 구문의 역할에 따라 데이터에 대한 암호화 작업 또는 쓰기 작업을 수행하고, 상기 오프체인 원장에서 오프체인 구문의 데이터를 조회할 때 상기 오프체인 구문의 역할이 상기 역할 정책에 의해 해당 사용자에 할당된 경우에만 상기 오프체인 구문의 역할에 따라 데이터에 대한 복호화 작업을 수행하는 것을 특징으로 하는 블록체인 네트워크 상에서 오프체인 원장을 이용한 역할기반의 데이터 보호 시스템.
  6. 제5항에 있어서,
    상기 체인코드 호출부는 상기 오프체인 원장에서 오프체인 구문의 데이터를 조회할 때 상기 오프체인 구문의 역할이 상기 역할 정책에 의해 해당 사용자에 할당되지 않은 경우 상기 오프체인 원장에서 복호화 하지 않고 기록된 형태대로 조회하는 것을 특징으로 하는 블록체인 네트워크 상에서 오프체인 원장을 이용한 역할기반의 데이터 보호 시스템.
  7. 제1항에 있어서,
    상기 오프체인 구문은 사용자 데이터의 각 필드 별로 역할을 부여하도록 구성되는 것을 특징으로 하는 블록체인 네트워크 상에서 오프체인 원장을 이용한 역할기반의 데이터 보호 시스템.
  8. 제1항에 있어서,
    상기 오프체인 표현부는 사전에 데이터 변환 정책을 보유하고, 보유한 데이터 변환 정책에 따라 사용자 데이터에 역할을 부여하여 오프체인 구문으로 변환하는 것을 특징으로 하는 블록체인 네트워크 상에서 오프체인 원장을 이용한 역할기반의 데이터 보호 시스템.
  9. 제8항에 있어서,
    상기 역할 정책 및 상기 데이터 변환 정책은, 트랜잭션의 블록체인 원장을 공유하는 피어들로 구성된 제1 채널과 다르게 구성되는, 상기 블록체인망의 제2 채널에 저장되는 것을 특징으로 하는 블록체인 네트워크 상에서 오프체인 원장을 이용한 역할기반의 데이터 보호 시스템.
  10. 제1항에 있어서,
    상기 시스템은, 상기 역할 인증서의 키를 생성하고 관리하는 키관리 시스템을 더 포함하는 것을 특징으로 하는 블록체인 네트워크 상에서 오프체인 원장을 이용한 역할기반의 데이터 보호 시스템.
  11. 제1항 내지 제2항, 제4항 내지 제10항 중 어느 한 항에 있어서,
    상기 블록체인망은 하이퍼레저 패브릭(Hyperledger fabric) 방식의 블록체인망인 것을 특징으로 하는 블록체인 네트워크 상에서 오프체인 원장을 이용한 역할기반의 데이터 보호 시스템.
KR1020200052680A 2020-04-29 2020-04-29 블록체인 네트워크 상에서 오프체인 원장을 이용한 역할기반의 데이터 보호 시스템 KR102211937B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020200052680A KR102211937B1 (ko) 2020-04-29 2020-04-29 블록체인 네트워크 상에서 오프체인 원장을 이용한 역할기반의 데이터 보호 시스템

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020200052680A KR102211937B1 (ko) 2020-04-29 2020-04-29 블록체인 네트워크 상에서 오프체인 원장을 이용한 역할기반의 데이터 보호 시스템

Publications (1)

Publication Number Publication Date
KR102211937B1 true KR102211937B1 (ko) 2021-02-04

Family

ID=74558748

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200052680A KR102211937B1 (ko) 2020-04-29 2020-04-29 블록체인 네트워크 상에서 오프체인 원장을 이용한 역할기반의 데이터 보호 시스템

Country Status (1)

Country Link
KR (1) KR102211937B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023022252A1 (ko) * 2021-08-18 2023-02-23 서울외국어대학원대학교 산학협력단 블록체인 기반의 증명서를 위한 시스템

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102002488B1 (ko) 2019-04-02 2019-07-23 주식회사 한국정보보호경영연구소 블록체인 기반 오프 체인 분산형 저장소를 활용한 문서 임치 시스템
KR101989450B1 (ko) * 2017-06-23 2019-09-30 홍석현 블록체인 기반의 공개 분산 데이터베이스에서 데이터에 대한 보안을 유지하는 방법 및 이를 이용한 블록체인 관리 서버
JP2019174995A (ja) * 2018-03-27 2019-10-10 Kddi株式会社 アクセス制限システム、アクセス制限方法及びアクセス制限プログラム
KR20190140144A (ko) * 2018-06-11 2019-12-19 고하준 기밀보장 블록체인 중개서버를 통하여 블록체인 클라이언트들이 블록체인 서비스를 이용하는 방법.
JP2020512757A (ja) * 2017-09-29 2020-04-23 オラクル・インターナショナル・コーポレイション ブロックチェーンクラウドサービスを管理するためのシステムおよび方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101989450B1 (ko) * 2017-06-23 2019-09-30 홍석현 블록체인 기반의 공개 분산 데이터베이스에서 데이터에 대한 보안을 유지하는 방법 및 이를 이용한 블록체인 관리 서버
JP2020512757A (ja) * 2017-09-29 2020-04-23 オラクル・インターナショナル・コーポレイション ブロックチェーンクラウドサービスを管理するためのシステムおよび方法
JP2019174995A (ja) * 2018-03-27 2019-10-10 Kddi株式会社 アクセス制限システム、アクセス制限方法及びアクセス制限プログラム
KR20190140144A (ko) * 2018-06-11 2019-12-19 고하준 기밀보장 블록체인 중개서버를 통하여 블록체인 클라이언트들이 블록체인 서비스를 이용하는 방법.
KR102002488B1 (ko) 2019-04-02 2019-07-23 주식회사 한국정보보호경영연구소 블록체인 기반 오프 체인 분산형 저장소를 활용한 문서 임치 시스템

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023022252A1 (ko) * 2021-08-18 2023-02-23 서울외국어대학원대학교 산학협력단 블록체인 기반의 증명서를 위한 시스템

Similar Documents

Publication Publication Date Title
LU101903B1 (en) System and method for storing and accessing private data of Hyperledger Fabric blockchain
US11212347B2 (en) Private content storage with public blockchain metadata
US10666647B2 (en) Access to data stored in a cloud
US20100325732A1 (en) Managing Keys for Encrypted Shared Documents
US20100095118A1 (en) Cryptographic key management system facilitating secure access of data portions to corresponding groups of users
KR100839220B1 (ko) 암호화된 데이터베이스 검색 방법 및 그 시스템
JP7235668B2 (ja) 登録方法、コンピュータ、及びプログラム
Namasudra et al. Profile based access control model in cloud computing environment
US11949773B2 (en) Systems and methods for secure key management using distributed ledger technology
WO2020123926A1 (en) Decentralized computing systems and methods for performing actions using stored private data
US11943345B2 (en) Key management method and related device
KR102010776B1 (ko) 블록체인 기반의 패스워드 처리 방법, 사용자 로그인 인증 지원 방법 및 이를 이용한 서버
KR20210063619A (ko) 속성을 기반으로 한 블록체인 네트워크에서의 접근 권한 제어 시스템 및 접근 권한 제어 방법
US20160350544A1 (en) Methods And Apparatus For Sharing Encrypted Data
JP5443236B2 (ja) 分散型データベースシステム
KR102211937B1 (ko) 블록체인 네트워크 상에서 오프체인 원장을 이용한 역할기반의 데이터 보호 시스템
US9436849B2 (en) Systems and methods for trading of text based data representation
JP2022531538A (ja) 暗号システム
WO2023135879A1 (ja) 計算機システム及び鍵交換方法
Gagged et al. Improved secure dynamic bit standard technique for a private cloud platform to address security challenges
WO2022137549A1 (ja) 情報管理装置
Fakhar et al. Comparative analysis on security mechanisms in cloud
WO2022186367A1 (ja) データ管理装置、データ管理システム、データ管理方法及びコンピュータ読み取り可能な記録媒体
US20210288798A1 (en) Jigsaw key encryption/decryption
KR20230070772A (ko) 블록체인 기반 클라우드 스토리지 시스템 및 상기 시스템에서의 접근 권한 제어 방법

Legal Events

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