KR102149900B1 - Privacy-preserving Data Analysis Method on Permissioned Blockchain System - Google Patents

Privacy-preserving Data Analysis Method on Permissioned Blockchain System Download PDF

Info

Publication number
KR102149900B1
KR102149900B1 KR1020190032442A KR20190032442A KR102149900B1 KR 102149900 B1 KR102149900 B1 KR 102149900B1 KR 1020190032442 A KR1020190032442 A KR 1020190032442A KR 20190032442 A KR20190032442 A KR 20190032442A KR 102149900 B1 KR102149900 B1 KR 102149900B1
Authority
KR
South Korea
Prior art keywords
data analysis
distributed
privacy
distributed ledger
data
Prior art date
Application number
KR1020190032442A
Other languages
Korean (ko)
Other versions
KR20200077366A (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 PCT/KR2019/006498 priority Critical patent/WO2020189846A1/en
Publication of KR20200077366A publication Critical patent/KR20200077366A/en
Application granted granted Critical
Publication of KR102149900B1 publication Critical patent/KR102149900B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2452Query translation
    • G06F16/24526Internal representations for queries
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2453Query optimisation
    • G06F16/24534Query rewriting; Transformation
    • 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
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network

Abstract

본 발명은 허가형 블록체인 시스템 상에서의 프라이버시 보존형 데이터 분석 방법에 관한 것으로서, 더욱 상세하게는 블록체인 기반 시스템에서 특정 데이터 분석을 수행할 때 질의에 대한 비밀분산원장의 응답에 노이즈가 추가 된 값을 반환하여 개인 프라이버시가 보존된 상태로 데이터 분석을 수행 할 수 있도록 하는 허가형 블록체인 시스템 상에서의 프라이버시 보존형 데이터 분석 방법에 관한 것이다.The present invention relates to a privacy-preserving data analysis method in a permissioned blockchain system, and more particularly, a value in which noise is added to the response of the secret distributed ledger to a query when performing specific data analysis in a blockchain-based system. It relates to a privacy-preserving data analysis method on a permission-type blockchain system that enables data analysis to be performed in a state where personal privacy is preserved.

Figure R1020190032442
Figure R1020190032442

Description

허가형 블록체인 시스템 상에서의 프라이버시 보존형 데이터 분석 방법 {Privacy-preserving Data Analysis Method on Permissioned Blockchain System}Privacy-preserving Data Analysis Method on Permissioned Blockchain System}

본 발명은 허가형 블록체인 시스템 상에서의 프라이버시 보존형 데이터 분석 방법에 관한 것으로서, 더욱 상세하게는 블록체인 기반 시스템에서 특정 데이터 분석을 수행할 때 질의에 대한 비밀분산원장의 응답에 노이즈가 추가 된 값을 반환하여 개인 프라이버시가 보존된 상태로 데이터 분석을 수행 할 수 있도록 하는 허가형 블록체인 시스템 상에서의 프라이버시 보존형 데이터 분석 방법에 관한 것이다.The present invention relates to a privacy-preserving data analysis method in a permissioned blockchain system, and more particularly, a value in which noise is added to the response of the secret distributed ledger to a query when performing specific data analysis in a blockchain-based system. It relates to a privacy-preserving data analysis method on a permission-type blockchain system that enables data analysis to be performed in a state where personal privacy is preserved.

블록체인 기술은 암호화폐(Cryptocurrency)로 인해 널리 알려진 기술로써, 기존의 중앙 집중형 데이터베이스가 아닌 해당 네트워크에 참여 중인 참여자들이 모두 공유된 데이터베이스를 갖는 분산 데이터베이스 기반 시스템에서 안전하고 효율적인 데이터 공유를 수행하기 위한 기법이다.Blockchain technology is a widely known technology for cryptocurrency, and it is not a traditional centralized database, but a distributed database-based system in which all participants participating in the network have a shared database to perform secure and efficient data sharing. It is a technique for.

비특허문헌 1에 의해 제안된 암호화폐 기술 및 이를 기반으로 하는 블록체인 시스템들은 해당 네트워크에 누구든지 참여할 수 있고, 참여된 모든 구성원(노드)들이 데이터베이스에 해당하는 분산 원장을 보유하고 있다. 이를 보통 무 허가형 블록체인(Permissionless blockchain) 시스템 이라고 하며 이는 보통 퍼블릭 블록체인(Public blockchain)이라고 불리기도 한다. 이와는 달리 특정 동일 목적을 가진 기관들의 집합 또는 특정 단체만이 해당 네트워크에 참여할 수 있는 시스템을 허가형 블록체인(Permissioned blockchain)이라고 하며 이는 중앙집중화의 정도에 따라 프라이빗 블록체인(Private blockchain) 또는 컨소시엄 블록체인(Consortium Blockchain)이라고 불리기도 한다.The cryptocurrency technology proposed by Non-Patent Literature 1 and the blockchain systems based on it can participate in the network, and all members (nodes) participating have a distributed ledger corresponding to the database. This is usually referred to as a permissionless blockchain system, and it is also commonly referred to as a public blockchain. Unlike this, a system in which only a set of institutions with a specific purpose or only a specific organization can participate in the network is called a permissioned blockchain, which is a private blockchain or a consortium block depending on the degree of centralization. It is also called the Consortium Blockchain.

비특허문헌 1에 의해 제안된 무 허가형 블록체인은 대개 네트워크에서 이루어지는 트랜잭션 및 이에 대한 안전한 분산 원장에 대한 처리 및 저장에 대한 효율성 보다는 완전한 탈 중앙화를 통해 누구든지 참여할 수 있는 규모의 확장성을 가짐을 목적으로 한다.Unauthorized blockchain proposed by Non-Patent Document 1 usually has scalability of scale that anyone can participate through complete decentralization rather than efficiency in processing and storage of transactions and secure distributed ledgers for them in the network. It is aimed at.

이에 비해 허가형 블록체인은 누구든지 참여할 수 있는 무 허가형 블록체인에 비해 규모의 확장성이 떨어지나, 무 허가형 블록체인에 비해 트랜잭션 실행 및 이에 대한 안전한 분산 원장에 대한 처리와 저장에 대해 매우 빠른 시스템 성능과 함께 금융거래, 제조사 간 공급망, 제조사와 소비자 간 유통망, 의료 분야에서의 병원 및 기타 관련사 간의 질병 이력 공유 및 정부 주도의 공공 분야에서의 정보 공유 등에 적용할 수 있는 시스템이다. 허가형 블록체인은 Linux Foundation에 의해 설립된 허가형 블록체인 오픈 소스 프로젝트인 하이퍼레저에 의해 관련 연구가 집중적으로 시작되었으며 현재 대표적인 허가형 블록체인 기술로는 하이퍼레저(Hyperledger Indy, Hyperledger Sawtooth, Hyperledger Fabric) 등이 있으며 국내에서는 삼성SDS의 넥스레저(Nexledger) 등이 있다.In contrast, permissioned blockchains are less scalable in scale than unlicensed blockchains in which anyone can participate, but compared to unlicensed blockchains, it is very fast for transaction execution and processing and storage of secure distributed ledgers. In addition to system performance, it is a system that can be applied to financial transactions, supply chains between manufacturers, distribution networks between manufacturers and consumers, disease history sharing between hospitals and other related companies in the medical field, and information sharing in the public sector led by the government. Permitted blockchain has been intensively researched by Hyperledger, a permissioned blockchain open source project established by the Linux Foundation, and currently representative permissioned blockchain technologies are Hyperledger Indy (Hyperledger Sawtooth, Hyperledger Fabric). ), and Samsung SDS's Nexledger in Korea.

또한 다수의 기업 혹은 단체는 각자의 목적을 위해 데이터로부터 유용한 정보를 얻어내는 데이터 마이닝(Data Mining) alc 기계학습(Machine Learning) 등의 데이터 분석 기술을 사용한다. 특정 예로 금융 및 보험 관련계열에서는 고객에 대한 특정 이력 여부를 분석해 보험 사기 등을 방지할 수 있으며, 상업 관련계열에서는 물품 판매자가 물품의 특성에 대한 소비자들의 선호도를 분석하여 향후 판매에 유용한 정보를 얻을 수 있고 또한 의료 관련계열에서는 희귀 질병 등에 대처할 수 있는 치료 기술의 성공률을 분석하여 환자의 치료율을 더욱 높일 수 있게 된다. 따라서 이 때 단체 또는 기업들은 각각 보유하고 있는 데이터를 상호간에 공유한다면 더욱 더 의미 있는 유용한 정보들을 얻어낼 수 있겠지만, 비특허문헌 2에 의해 개인정보의 프라이버시 보존을 위해서는 데이터 공유 이전에 데이터 비 식별화(De-identification) 기술이 적용되어야만 하며, 따라서 이에 관련한 많은 연구가 지속적으로 관심을 받아오고 있다.In addition, many companies or organizations use data analysis technologies such as Data Mining and Machine Learning to obtain useful information from data for their own purposes. As a specific example, in finance and insurance related departments, insurance fraud can be prevented by analyzing a specific history of customers, and in commercial related departments, sellers of goods analyze consumers' preferences for characteristics of goods to obtain useful information for future sales In addition, medical-related departments can further increase the treatment rate of patients by analyzing the success rate of treatment technologies that can cope with rare diseases. Therefore, at this time, organizations or companies can obtain more meaningful and useful information if they share their data with each other, but in order to preserve the privacy of personal information according to non-patent document 2, data is not identified before data sharing. (De-identification) technology must be applied, and therefore, many studies related to this have been continuously receiving attention.

또한 최근에는 데이터의 크기 및 규모가 날이 갈수록 방대 해지며 이로 인해 분산 데이터 환경에서의 데이터 분석 기술이 활발하게 연구 중에 있다. 이는 데이터 중앙 집중화 후 데이터 분석을 수행하는 것이 아닌 분산 분석 후 이에 대한 결과값을 수집하고 합산하여 데이터 분석 결과를 도출해내는 기술이다. 이하 본 발명에서 분산 데이터 환경에서의 데이터 분석 기술을 분산 학습(Distributed Learning) 기술이라고 대체하여 후술한다. 상기 데이터 분석 기술에 사용되는 알고리즘은 여러 번의 반복 학습을 수행하며 이에 대한 최종 라운드의 결과값을 대개 학습 모델이라고 서술한다. 각 라운드의 결과 값이 하나만 존재하는 데이터 중앙 집중형 데이터 분석에 비해 각 라운드 마다 다수의 결과값이 존재하고 이를 올바르게 수집하고 합산하는 것이 분산 학습 기술의 핵심에 해당한다.Also, in recent years, the size and scale of data are becoming vast day by day, and for this reason, data analysis technology in a distributed data environment is actively being studied. This is a technology that derives data analysis results by collecting and summing the results after analysis of variance, not performing data analysis after centralizing data. Hereinafter, in the present invention, a data analysis technique in a distributed data environment is replaced with a distributed learning technique and will be described later. The algorithm used in the data analysis technique performs repetitive learning several times, and the result of the final round is usually described as a learning model. Compared to data centralized data analysis where there is only one result value for each round, there are multiple result values for each round, and collecting and summing them correctly is the core of distributed learning technology.

또한 이러한 분산 학습 기술 역시 프라이버시 보존을 위해 비 식별화 기술이 적용되어야만 한다.In addition, these distributed learning technologies must also be applied with de-identification technologies to preserve privacy.

데이터 비 식별화 기술 중 차분 프라이버시(Differential Privacy)라 함은 상기 비 식별화 기법 중 하나로써 데이터 분석가에 의해 수행되는 정보에 대한 질의에 응답 시 수학적 확률에 기반한 노이즈를 추가함으로써 분석가가 쉽게 개인정보를 유추할 수 없게 하는 기술이다.Among data non-identification techniques, differential privacy is one of the above non-identification techniques, and by adding noise based on mathematical probability when responding to a query for information performed by a data analyst, the analyst can easily access personal information. It is a technique that makes it impossible to infer.

차분 프라이버시는 특정 개인 데이터의 존재 유무에 따른 두 데이터베이스에 대하여 어떠한 질의에 대한 두 데이터베이스에서의 출력이 확률적으로 얼마만큼의 차분을 가지고 있는지를 기반으로 프라이버시의 정도를 수학적으로 정의한다. 여기에서 개인 데이터는 의료 데이터 상에서 환자에 대한 개인정보를 포함한 질병이력으로, 거래 데이터 상에서 특정 물품에 대한 개인정보와 물품의 특징 및 거래내역을 포함한 데이터를 예로 들 수 있다.Differential privacy mathematically defines the degree of privacy based on how much difference probabilistically between the outputs of the two databases for any query for two databases according to the presence or absence of specific personal data. Here, the personal data is a disease history including personal information on a patient in medical data, and may include personal information on a specific product and data including characteristics and transaction details of the product on the transaction data.

예를 들어 질병 이력에 관한 데이터가 있으며, 이는 모두 비밀 값이라 가정하자. 이 때 만일 악의적인 분석가가 '폐암 환자는 몇 명인가?'와 같은 특정 질의를 수행하여 해당 데이터베이스에 속한 특정 공격 대상자의 폐암 여부를 알아내려 한다고 가정하자. 이러한 경우 질의의 응답이 항상 같다면 악의적인 분석가는 '폐암 환자는 몇 명인가?'라는 질의와 '공격 대상자를 제외한 폐암 환자는 몇 명인가?' 라는 두 질의를 통해 공격 대상자의 폐암 여부를 쉽게 알아낼 수 있다.For example, suppose you have data on disease history, all of which are secret values. In this case, assume that a malicious analyst attempts to find out whether a specific attack target in the database has lung cancer by performing a specific query such as'How many lung cancer patients are there?' In this case, if the answer to the question is always the same, the malicious analyst asks,'How many lung cancer patients are?' and'How many lung cancer patients are excluded from the attack target?' It is easy to find out whether the attack target has lung cancer through two queries.

하지만 차분 프라이버시가 적용된 데이터 분석 방법은 특정 공격 대상자가 실제로 폐암 환자라 할지라도 해당 질의를 기반으로 계산된 임의성을 갖는 노이즈를 응답 값에 추가함으로써 상기 질의와 같은 방식으로 여러 질의를 받게 되더라도 각 질의마다 다른 값을 응답하게 된다.However, the data analysis method applied with differential privacy adds noise with randomness calculated based on the query to the response value, even if a specific attack target is actually a lung cancer patient, even if multiple queries are received in the same manner as the above query. It will respond with a different value.

이는 근본적으로 데이터가 가지고 있는 확률적 분포도의 특성을 알려주되, 공격자의 입장에서 개인 데이터 값에 대한 정확한 추론은 어렵게 하는 데에 초점을 두고 있다.This fundamentally informs the characteristics of the probability distribution map possessed by the data, but focuses on making it difficult for the attacker to infer accurate personal data values.

따라서 상기 예에서의 차분 프라이버시는 악의적인 분석가가 피공격자에 대한 사전지식을 알고 있다고 하더라도 분석 이전과 분석 이후의 차이 값을 알 수 없기 때문에 쉽게 피공격자의 폐암 여부를 알 수 없게 된다.Therefore, the differential privacy in the above example cannot be easily determined whether the attacker has lung cancer, even though the malicious analyst knows the prior knowledge of the attacker, since the difference between the analysis before and after the analysis cannot be known.

이러한 차분 프라이버시 방법은 Randomized 알고리즘을 기반으로 설계된다. 이는 데이터베이스 내 각각의 데이터 열들이 가지고 있는 민감한 속성값에 임의성을 갖는 노이즈를 추가함을 의미한다. 다만, 데이터 분석가 입장에서 데이터 분석 수행 시 그에 대한 유용성을 해치지 않기 위해 민감한 정보의 속성을 드러내지 않을 정도의 적당한 노이즈를 추가하게 되며, 이에 대한 정도는 차분 프라이버시 정의 내의 측도에 의해 시스템 관리자 혹은 데이터 관리자 하에 정해질 수 있다.This differential privacy method is designed based on a randomized algorithm. This means adding random noise to the sensitive attribute values of each data column in the database. However, in order not to damage the usefulness of data analysis from the standpoint of data analysts, appropriate noise is added to the extent that it does not reveal the properties of sensitive information. Can be decided.

현재 허가형 블록체인 시스템에서는 시스템 내의 모든 구성원이 공유하는 데이터가 있는가 하면 특정 구성원만이 공유하는 데이터도 존재한다. 따라서 데이터 분석 시 이러한 비밀 데이터의 정보가 누출되지 않은 상태에서 올바르게 분석될 수 있는 기술이 필요하다.In the current permission type blockchain system, there is data shared by all members of the system, while data shared only by specific members also exists. Therefore, when analyzing data, there is a need for a technology that can correctly analyze the information of such secret data without leaking it.

이와 같이 비밀 데이터의 정보가 누출되지 않은 상태에서 분석을 수행하는 기술로는 비특허문헌 3, 4, 5에 의해 제안된 기술이 존재한다. 상기 비특허문헌 3, 4, 5에 의해 제안된 기술들은 안전한 다자간 계산(Secure Multiparty Computation)을 통해 특정 구성원만이 공유하는 데이터에서 프라이버시를 노출시키지 않은 상태로 접근자가 원하는 값을 얻어낼 수 있다.As such, techniques proposed by Non-Patent Documents 3, 4, and 5 exist as techniques for performing analysis without leaking information of secret data. The techniques proposed by the non-patent documents 3, 4, and 5 can obtain a value desired by an accessor without exposing privacy from data shared only by a specific member through Secure Multiparty Computation.

하지만 상기 비특허문헌 3, 4, 5에 의해 제안된 기술들은 계산 시 필요한 비밀 데이터가 많아질수록 경우 계산 복잡도가 매우 비효율적이며, 구매자들의 입찰가를 드러내지 않은 상태로 경매 등을 수행하는 특정 값 계산을 위한 기술에 주로 사용되므로 데이터의 확률적 분포를 파악하려는 데이터 분석 및 처리 기술에는 알맞지 않다.However, the technologies proposed by the above non-patent documents 3, 4, and 5 are very inefficient in calculation complexity when the number of secret data required for calculation increases, and specific value calculations such as performing auctions without revealing the bidders of buyers are performed. Because it is mainly used for technology for data analysis, it is not suitable for data analysis and processing techniques to determine the probability distribution of data.

또한 비밀 데이터의 정보가 누출되지 않은 상태에서 거래 수행이 가능한 기술로는 비특허문헌 6, 7, 8에 의해 제안된 기술이 존재한다. 상기 비특허문헌 6, 7, 8에 의해 제안된 기술들은 영지식 증명(Zero Knowledge Proof)을 통해 거래 당사자가 아닌 제 3자에게 거래정보를 보여주지 않는 상태로 올바른 거래를 입증할 수 있다.In addition, technologies proposed by non-patent documents 6, 7 and 8 exist as technologies capable of performing transactions without leaking information of secret data. The technologies proposed by the non-patent documents 6, 7 and 8 can prove a correct transaction without showing transaction information to a third party other than the transaction party through Zero Knowledge Proof.

하지만 상기 비특허문헌 6, 7, 8에 의해 제안된 기술들은 거래에 대한 기밀성을 보장하는 기술에 주로 사용되므로 데이터의 확률적 분포를 파악하려는 데이터 분석 및 처리 기술에는 알맞지 않다.However, the technologies proposed by the non-patent documents 6, 7 and 8 are mainly used for technologies that guarantee confidentiality of transactions, and are therefore not suitable for data analysis and processing technologies to determine the probability distribution of data.

또한 프라이버시 보존형 분산 학습 기술로는 비특허문헌 9, 10에 의해 제안된 기술이 존재한다. 상기 비특허문헌 9, 10에 의해 제안된 기술들은 무허가형 블록체인(Permissionless blockchain) 기반의 탈중앙화 분산 분석 기법을 제안한다.In addition, as a privacy-preserving distributed learning technology, there are technologies proposed by non-patent documents 9 and 10. The technologies proposed by the non-patent documents 9 and 10 propose a decentralized distributed analysis technique based on a permissionless blockchain.

상기 비특허문헌 9, 10 에 의해 제안된 기술들은 분산 학습 시 각 라운드에서의 결과 값을 하나의 블록으로 생성하여 원장에 기록 후 이를 기반으로 다음 라운드를 진행하는 방식이다.The techniques proposed by the non-patent documents 9 and 10 are a method of generating a result value from each round as one block during distributed learning, recording it in the ledger, and then proceeding to the next round based on this.

하지만 상기 비특허문헌 9, 10에 의해 제안된 기술들은 무 허가형 블록체인을 기반으로 한다. 무 허가형 블록체인과 허가형 블록체인은 서로 매우 다른 구조적 특성을 보인다. 보통의 무 허가형 블록체인은 분산 원장 내 안전하고 신뢰있는 하나의 블록을 생성하기 위해 약 10분 가량의 많은 시간을 필요로 한다. 대개 데이터 분석 기술은 시간이 많이 소모되는 큰 규모의 데이터에 대해 이루어지기는 하나 각 라운드 당 10분 가량의 소모는 매우 비 효율적 일 수 밖에 없다.However, the technologies proposed by the non-patent documents 9 and 10 are based on an unauthorized blockchain. Unauthorized blockchains and permissioned blockchains show very different structural characteristics. A normal permissionless blockchain requires a lot of time, such as about 10 minutes, to create one secure and reliable block in the distributed ledger. Most of the time, data analysis techniques are performed on large, time-consuming data, but the consumption of about 10 minutes per round is very inefficient.

또한 상기 비특허문헌 9, 10에 의해 제안된 기술들은 기존의 허가형 블록체인을 사용 중인 금융 분야, 제조사 간 공급망, 제조사와 소비자 간 유통망, 의료 분야 등 수 많은 분야에 단순 적용할 수 없는 문제점을 지니고 있다.In addition, the technologies proposed by the above non-patent documents 9 and 10 solve problems that cannot be simply applied to a number of fields such as the financial field, the supply chain between manufacturers, the distribution network between manufacturers and consumers, and the medical field using the existing licensed blockchain. Have.

이 외 안전하고 효율적인 데이터 비 식별화를 위해 블록체인 기술을 도입한 사례로는 특허문헌 1, 2에 의해 제안된 기술이 존재한다. 상기 특허문헌 1, 2에 의해 제안된 기술들은 다수의 데이터 소유자들로 이루어진 분산 데이터 환경에서 차분 프라이버시를 도입 할 때 적용되는 기술에 해당한다.Other examples of introducing blockchain technology for safe and efficient data de-identification include the technologies proposed by Patent Documents 1 and 2. The technologies proposed by Patent Documents 1 and 2 correspond to technologies applied when introducing differential privacy in a distributed data environment composed of a plurality of data owners.

하지만 상기 특허문헌 1, 2에 의해 제안된 기술들은 분산 데이터 환경에서 차분 프라이버시가 도입될 때 차분 프라이버시 알고리즘의 안전성 및 효율성 측면에서 발생할 수 있는 요소들을 해결하기 위해 블록체인을 도입하는 기술로써 데이터의 확률적 분포를 파악하려는 데이터 분석 및 처리 기술에는 알맞지 않다.However, the technologies proposed by Patent Documents 1 and 2 above are technologies that introduce a blockchain to solve factors that may occur in terms of safety and efficiency of the differential privacy algorithm when differential privacy is introduced in a distributed data environment. It is not suitable for data analysis and processing techniques trying to determine the enemy distribution.

US 2018-0307854 A1 "Tracking privacy budget with distributed ledger"US 2018-0307854 A1 "Tracking privacy budget with distributed ledger" US 2018-0173894 A1 "Differential privacy and outlier detection within a non-interactive model"US 2018-0173894 A1 "Differential privacy and outlier detection within a non-interactive model"

S.Nakamoto, "Bitcoin: A peer-to-peer electronic cash system" S. Nakamoto, "Bitcoin: A peer-to-peer electronic cash system" L.Sweeney, "k-anonymity: A model for protecting privacy" International Journal of Uncertainty, Fuzziness and Knowledge-Based Systems, vol. 10, no.5, pp.557-570, 2002 L. Sweeney, "k-anonymity: A model for protecting privacy" International Journal of Uncertainty, Fuzziness and Knowledge-Based Systems, vol. 10, no.5, pp.557-570, 2002 F.Benhamouda et al., "Supporting Private Data on Hyperledger Fabric with Secure Multiparty Computation" Cloud Engineering (IC2E), IEEE International Conference on, IEEE, pp.357-363, 2018 F. Benhamouda et al., "Supporting Private Data on Hyperledger Fabric with Secure Multiparty Computation" Cloud Engineering (IC2E), IEEE International Conference on, IEEE, pp.357-363, 2018 G.Zyskind et al., "Decentralizing privacy: Using blockchain to protect personal data" IEEE Security and Privacy Workshops, IEEE, pp.180-184, 2015. G.Zyskind et al., "Decentralizing privacy: Using blockchain to protect personal data" IEEE Security and Privacy Workshops, IEEE, pp.180-184, 2015. G.Zyskind et al., "Enigma: Decentralized computation platform with guaranteed privacy" arXiv preprint arXiv:1506.03471, 2015. G.Zyskind et al., "Enigma: Decentralized computation platform with guaranteed privacy" arXiv preprint arXiv:1506.03471, 2015. Zcash - all coins are created equal. https://z.cash/. Accesed Dec 2017. Zcash-all coins are created equal. https://z.cash/. Accesed Dec 2017. A. van Wirdum, ""Confidential assets" brings privacy to all blockchain assets: Blockstream" Bitcoin Magazine, April 2017, https://bitcoinmagazine.com/articles/confidential-assets-brings-privacy-all-blockchain-assets-blockstream/. A. van Wirdum, ""Confidential assets" brings privacy to all blockchain assets: Blockstream" Bitcoin Magazine, April 2017, https://bitcoinmagazine.com/articles/confidential-assets-brings-privacy-all-blockchain-assets-blockstream /. E.Cecchetti et al., "Solidus: Confidential distributed ledger transactions via PVORM" Proceedings of the 2017 ACM SIGSAC Conference on Computer and Communications Security, ACM, 2017. E.Cecchetti et al., "Solidus: Confidential distributed ledger transactions via PVORM" Proceedings of the 2017 ACM SIGSAC Conference on Computer and Communications Security, ACM, 2017. T. T. Kuo et al., "Modelchain: Decentralized Privacy-preserving Healthcare Predictive Modeling Framework on Private Blockchain Networks" arXiv preprint arXiv:1802.01746, 2018. T. T. Kuo et al., "Modelchain: Decentralized Privacy-preserving Healthcare Predictive Modeling Framework on Private Blockchain Networks" arXiv preprint arXiv:1802.01746, 2018. X.Chen et al., "Distributed Machine Learning Meets Blockchain: A Decentralized, Secure, and Privacy-preserving Realization" IEEE International Conference on Big Data (IEEE BigData'18), pp.1177-1186, 2018. X. Chen et al., "Distributed Machine Learning Meets Blockchain: A Decentralized, Secure, and Privacy-preserving Realization" IEEE International Conference on Big Data (IEEE Big Data'18), pp.1177-1186, 2018.

본 발명은 블록체인 기반 시스템에서 특정 데이터 분석을 수행할 때 질의에 대한 비밀분산원장의 응답에 노이즈가 추가 된 값을 반환하여 개인 프라이버시가 보존된 상태로 데이터 분석을 수행 할 수 있도록 하는 허가형 블록체인 시스템 상에서의 프라이버시 보존형 데이터 분석 방법을 제공하는 것을 그 목적으로 한다.The present invention is a permission-type block that allows data analysis to be performed while personal privacy is preserved by returning a value added with noise to the response of the secret distributed ledger to a query when performing specific data analysis in a blockchain-based system. Its purpose is to provide a privacy-preserving data analysis method on a chain system.

상기와 같은 과제를 해결하기 위하여 본 발명은, 허가형 블록체인 시스템 상에서의 프라이버시 보존형 데이터 분석 방법으로서, 상기 허가형 블록체인 시스템은, 시스템 참여자인 노드가 상기 허가형 블록체인 시스템에 접근하기 위한 클라이언트 어플리케이션; 블록체인 네트워크상의 트랜잭션이 기록되는 분산원장; 상기 분산원장 및 노드 개인만이 보유하고 있는 개인 데이터베이스를 포함한 분산 데이터베이스; 및 상기 분산 데이터베이스에 대한 액세스를 제어하는 스마트컨트랙트; 를 포함하고, 상기 분산원장은, 상기 허가형 블록체인 시스템의 모든 구성원이 공유하는 공개분산원장; 상기 허가형 블록체인 시스템의 특정 구성원만이 공유하는 1 이상의 비밀분산원장을 포함하고, 상기 공개분산원장은, 상기 허가형 블록체인 시스템에서 이루어지는 트랜잭션을 저장하는 데이터 공개분산원장; 및 각 라운드 별 학습의 결과물 및 최종 분산 학습 모델을 저장하는 분산 학습 모델 공유원장을 포함하고, 상기 데이터 분석 방법은, 클라이언트 어플리케이션이 스마트컨트랙트에 데이터분석질의함수를 호출하는 질의호출단계; 상기 스마트컨트랙트가 상기 데이터분석질의함수에 기초하여 상기 분산 데이터베이스에 상기 데이터분석질의함수에 대한 응답 요청을 수행하는 질의응답요청단계; 상기 분산 데이터베이스가 차분 프라이버시를 적용하여 상기 데이터분석질의함수에 대한 응답 값을 반환하는 질의응답반환단계; 및 상기 스마트컨트랙트가 상기 응답 값을 분석하여 반환하는 분석결과반환단계; 상기 스마트컨트랙트가 상기 응답 값을 분석하여 계산된 분산학습모델을 저장하는 분산학습모델저장단계; 상기 스마트컨트랙트가 상기 응답 값을 분석하여 차후 오류기반감사를 위한 오류로그저장단계; 상기 스마트컨트랙트가 상기 응답 값을 분석하여 반환하는 분석결과반환단계; 상기 클라이언트가 향후 오류기반감사를 위해 저장된 오류로그값을 요청하는 오류로그요청단계; 상기 분산학습모델공개원장이 상기 오류로그요청에 대한 응답 값을 반환하는 오류로그반환단계; 및 상기 클라이언트가 상기 오류로그반환단계의 응답 값을 통해 오류기반감사를 수행하는 오류기반감사수행단계를 포함하는, 프라이버시 보존형 데이터 분석 방법을 제공한다.In order to solve the above problems, the present invention is a privacy-preserving data analysis method on a permission-type blockchain system, wherein the permission-type blockchain system allows a node that is a system participant to access the permission-type blockchain system. Client application; Distributed ledger where transactions on the blockchain network are recorded; A distributed database including a personal database owned only by the distributed ledger and individual nodes; And a smart contract for controlling access to the distributed database. Including, the distributed ledger, a public distributed ledger shared by all members of the permission type blockchain system; A data public distribution ledger for storing transactions made in the permission type blockchain system, wherein the public distribution ledger includes one or more secret distributed ledgers shared only by a specific member of the permission type blockchain system; And a distributed learning model shared ledger storing a result of learning for each round and a final distributed learning model, wherein the data analysis method includes: a query calling step in which a client application calls a data analysis query function to a smart contract; A query response request step of performing, by the smart contract, a response request for the data analysis query function to the distributed database based on the data analysis query function; A query-response return step of returning a response value to the data analysis query function by applying differential privacy by the distributed database; And an analysis result return step of the smart contract analyzing and returning the response value. A distributed learning model storing step of storing the distributed learning model calculated by analyzing the response value by the smart contract; An error log storage step for subsequent error-based audit by the smart contract analyzing the response value; An analysis result return step of the smart contract analyzing and returning the response value; An error log request step in which the client requests an error log value stored for future error-based auditing; An error log return step in which the distributed learning model disclosure ledger returns a response value to the error log request; And an error-based audit execution step in which the client performs an error-based audit through a response value of the error log return step.

본 발명에서는, 상기 스마트컨트랙트에는 상기 데이터분석질의함수가 저장되어 있고, 상기 데이터분석질의함수는, 상기 분산 데이터베이스가 차분 프라이버시를 적용하여 응답 값을 반환하도록 할 수 있다.In the present invention, the data analysis query function is stored in the smart contract, and the data analysis query function may cause the distributed database to return a response value by applying differential privacy.

본 발명에서는, 상기 데이터 공개분산원장은, 상기 데이터분석질의함수에 대해 응답 값을 반환하고, 상기 비밀분산원장 및 상기 개인 데이터베이스는, 상기 데이터분석질의함수에 대해 차분 프라이버시 기반의 노이즈가 추가된 응답 값을 반환할 수 있으며, 상기 분산학습모델 공유원장은 상기 분산학습모델저장단계에 대해 프라이버시 보존형 분산학습 모델을 저장하고 보유한다.In the present invention, the data public distributed ledger returns a response value to the data analysis query function, and the secret distributed ledger and the personal database respond to the data analysis query function by adding noise based on differential privacy A value may be returned, and the distributed learning model shared ledger stores and holds a privacy-preserving distributed learning model for the distributed learning model storage step.

본 발명에서는, 상기 질의응답요청단계는, 상기 데이터 공개분산원장에 데이터분석질의함수에 대한 응답 값을 요청하는 공개분산데이터응답요청단계; 및 상기 비밀분산원장 및 상기 개인 데이터베이스에 차분 프라이버시를 적용한 데이터분석질의함수에 대한 응답 값을 요청하는 비밀분산데이터응답요청단계; 를 포함할 수 있다.In the present invention, the question-and-answer request step includes: a public distributed data response request step of requesting a response value for a data analysis query function from the data public distribution ledger; And a secret distributed data response request step of requesting a response value to a data analysis query function to which differential privacy is applied to the secret distributed ledger and the personal database. It may include.

본 발명에서는, 상기 비밀분산원장이 2 이상 존재하는 경우, 2 이상의 상기 비밀분산원장은 독립적으로 상기 데이터분석질의함수에 대해 차분 프라이버시 기반의 노이즈가 추가된 응답 값을 각각 반환할 수 있다.In the present invention, when there are two or more secret distributed ledgers, the two or more secret distributed ledgers may independently return response values to which differential privacy-based noise is added to the data analysis query function.

본 발명에서는, 상기 분석결과반환단계는, 상기 데이터 공개분산원장 및 상기 비밀분산원장과 상기 개인 데이터베이스가 반환한 상기 응답 값을 통합하여 데이터분석질의함수에 기초한 분석을 수행하여 분석 결과를 반환할 수 있다.In the present invention, the analysis result return step may return an analysis result by performing an analysis based on a data analysis query function by integrating the response value returned by the data public distribution ledger, the secret distribution ledger, and the personal database. have.

본 발명에서는, 상기 분산학습모델 저장 및 오류기반감사를 위한 오류로그저장 단계는, 상기 분산 데이터베이스가 반환한 상기 응답 값을 기반으로 계산되는 분산학습모델 및 오류로그를 저장할 수 있다.In the present invention, the storing of the distributed learning model and the error log for error-based auditing may store a distributed learning model and an error log calculated based on the response value returned by the distributed database.

본 발명에서는, 상기 오류기반감사수행을 위한 오류 로그값 요청 및 오류 로그값 반환 단계는, 데이터 분석을 수행할 수 있는 참여자 누구든지 클라이언트에 접근하여 언제든지 오류 로그값을 응답 받을 수 있으며, 상기 클라이언트는 이를 이용해 오류기반감사를 수행할 수 있다.In the present invention, in the step of requesting an error log value and returning an error log value for performing an error-based audit, any participant who can perform data analysis may access the client and receive an error log value at any time, and the client This can be used to perform an error-based audit.

본 발명의 일 실시예에 따른 프라이버시 보존형 데이터 분석 방법에서는 특정 구성원만이 소유하고 있는 비밀데이터의 값을 노출시키지 않은 상태로 데이터 분석을 수행하도록 하는 효과를 발휘할 수 있다.In the privacy-preserving data analysis method according to an embodiment of the present invention, it is possible to exert an effect of performing data analysis without exposing the value of secret data owned by only a specific member.

본 발명의 일 실시예에 따른 프라이버시 보존형 데이터 분석 방법에서는 기존의 허가형 블록체인 시스템의 구조를 변형하지 않으면서도 비밀데이터를 보호하도록 하는 효과를 발휘할 수 있다.In the privacy-preserving data analysis method according to an embodiment of the present invention, it is possible to exert an effect of protecting secret data without changing the structure of an existing permission-type blockchain system.

본 발명의 일 실시예에 따른 프라이버시 보존형 데이터 분석 방법에서는 분산 학습 기술 등의 데이터 분석 기술 사용 시 기존의 허가형 블록체인 시스템의 구조를 변형하지 않으면서도 안전하고 효율적으로 데이터를 분석하도록 하는 효과를 발휘할 수 있다.In the privacy-preserving data analysis method according to an embodiment of the present invention, when using data analysis technology such as distributed learning technology, it is possible to safely and efficiently analyze data without changing the structure of the existing permissioned blockchain system. Can be demonstrated.

본 발명의 일 실시예에 따른 프라이버시 보존형 데이터 분석 방법에서는 비밀데이터를 보호하기 위한 물리적 구성요소를 추가하지 않음으로써 네트워크 구성을 간이하게 유지하는 효과를 발휘할 수 있다.In the privacy-preserving data analysis method according to an embodiment of the present invention, a network configuration can be easily maintained by not adding a physical component to protect secret data.

본 발명의 일 실시예에 따른 프라이버시 보존형 데이터 분석 방법에는 기존의 블록체인 시스템이 가지고 있는 속성과 마찬가지로 구성원 각각이 스마트컨트랙트와 분산 데이터베이스를 보유함으로써 단일 장애점(Single Point of Failure)을 방지하는 효과를 발휘할 수 있다.In the privacy-preserving data analysis method according to an embodiment of the present invention, as in the properties of the existing blockchain system, each member has a smart contract and a distributed database, thereby preventing a single point of failure. Can exert.

도 1은 본 발명의 일 실시예에 따른 허가형 블록체인 시스템의 구성을 개략적으로 도시하는 도면이다.
도 2는 본 발명의 일 실시예에 따른 스마트컨트랙트의 구성을 개략적으로 도시하는 도면이다.
도 3은 본 발명의 일 실시예에 따른 질의함수의 구성을 개략적으로 도시하는 도면이다.
도 3a는 본 발명의 일 실시예에 따른 분산데이터베이스의 구성을 개략적으로 도시하는 도면이다.
도 4는 본 발명의 일 실시예에 따른 분산원장의 구성을 개략적으로 도시하는 도면이다.
도 4a는 본 발명의 일 실시예에 따른 공개분산원장의 구성을 개략적으로 도시하는 도면이다.
도 5는 본 발명의 일 실시예에 따른 두 노드의 구성을 개략적으로 도시하는 도면이다.
도 6은 허가형 블록체인 시스템의 데이터 처리 과정의 흐름도이다.
도 7은 프라이버시가드가 적용된 데이터베이스가 차분 프라이버시를 적용하여 응답을 수행하는 분석 방법의 요청 및 응답 흐름도이다.
도 8은 본 발명의 일 실시예에 따른 허가형 블록체인 시스템의 프라이버시 보존형 데이터 분석 방법의 요청 및 응답 흐름도이다.
도 8a는 본 발명의 일 실시예에 따른 차분 프라이버시가 적용된 허가형 블록체인 시스템의 프라이버시 보존형 데이터 분석 방법의 동작을 예시한 흐름도이다.
도 9는 본 발명의 일 실시예에 따른 차분 프라이버시가 적용된 허가형 블록체인 시스템의 프라이버시 보존형 데이터 분석 방법의 동작을 예시한 흐름도이다.
1 is a diagram schematically showing the configuration of a permission type blockchain system according to an embodiment of the present invention.
2 is a diagram schematically showing the configuration of a smart contract according to an embodiment of the present invention.
3 is a diagram schematically showing the configuration of a query function according to an embodiment of the present invention.
3A is a diagram schematically showing the configuration of a distributed database according to an embodiment of the present invention.
4 is a diagram schematically showing the configuration of a distributed ledger according to an embodiment of the present invention.
4A is a diagram schematically showing the configuration of an open distributed ledger according to an embodiment of the present invention.
5 is a diagram schematically showing the configuration of two nodes according to an embodiment of the present invention.
6 is a flowchart of a data processing process of a permission type blockchain system.
7 is a request and response flowchart of an analysis method in which a database to which a privacy guard is applied performs a response by applying differential privacy.
8 is a request and response flow chart of a privacy-preserving data analysis method of a permission-type blockchain system according to an embodiment of the present invention.
8A is a flowchart illustrating an operation of a privacy-preserving data analysis method of a permissioned blockchain system to which differential privacy is applied according to an embodiment of the present invention.
9 is a flowchart illustrating an operation of a privacy-preserving data analysis method of a permissioned blockchain system to which differential privacy is applied according to an embodiment of the present invention.

이하에서는, 다양한 실시예들 및/또는 양상들이 이제 도면들을 참조하여 개시된다. 하기 설명에서는 설명을 목적으로, 하나이상의 양상들의 전반적 이해를 돕기 위해 다수의 구체적인 세부사항들이 개시된다. 그러나, 이러한 양상(들)은 이러한 구체적인 세부사항들 없이도 실행될 수 있다는 점 또한 본 발명의 기술 분야에서 통상의 지식을 가진 자에게 인식될 수 있을 것이다. 이후의 기재 및 첨부된 도면들은 하나 이상의 양상들의 특정한 예시적인 양상들을 상세하게 기술한다. 하지만, 이러한 양상들은 예시적인 것이고 다양한 양상들의 원리들에서의 다양한 방법들 중 일부가 이용될 수 있으며, 기술되는 설명들은 그러한 양상들 및 그들의 균등물들을 모두 포함하고자 하는 의도이다.In the following, various embodiments and/or aspects are now disclosed with reference to the drawings. In the following description, for purposes of explanation, a number of specific details are disclosed to aid in an overall understanding of one or more aspects. However, it will also be appreciated by those of ordinary skill in the art that this aspect(s) may be practiced without these specific details. The following description and the annexed drawings set forth in detail certain illustrative aspects of one or more aspects. However, these aspects are exemplary and some of the various methods in the principles of the various aspects may be used, and the descriptions described are intended to include all such aspects and their equivalents.

또한, 다양한 양상들 및 특징들이 다수의 디바이스들, 컴포넌트들 및/또는 모듈들 등을 포함할 수 있는 시스템에 의하여 제시될 것이다. 다양한 시스템들이, 추가적인 장치들, 컴포넌트들 및/또는 모듈들 등을 포함할 수 있다는 점 그리고/또는 도면들과 관련하여 논의된 장치들, 컴포넌트들, 모듈들 등 전부를 포함하지 않을 수도 있다는 점 또한 이해되고 인식되어야 한다.Further, various aspects and features will be presented by a system that may include multiple devices, components and/or modules, and the like. It is also noted that various systems may include additional devices, components and/or modules, and/or may not include all of the devices, components, modules, etc. discussed in connection with the figures. It must be understood and recognized.

본 명세서에서 사용되는 "실시예", "예", "양상", "예시" 등은 기술되는 임의의 양상 또는 설계가 다른 양상 또는 설계들보다 양호하다거나, 이점이 있는 것으로 해석되지 않을 수도 있다. 아래에서 사용되는 용어들 '~부', '컴포넌트', '모듈', '시스템', '인터페이스' 등은 일반적으로 컴퓨터 관련 엔티티(computer-related entity)를 의미하며, 예를 들어, 하드웨어, 하드웨어와 소프트웨어의 조합, 소프트웨어를 의미할 수 있다.As used herein, “an embodiment,” “example,” “aspect,” “example,” and the like may not be construed as having any aspect or design described as being better or advantageous than other aspects or designs. . The terms'~part','component','module','system', and'interface' used below generally mean a computer-related entity, for example, hardware, hardware It can mean a combination of software and software, or software.

또한, "포함한다" 및/또는 "포함하는"이라는 용어는, 해당 특징 및/또는 구성요소가 존재함을 의미하지만, 하나이상의 다른 특징, 구성요소 및/또는 이들의 그룹의 존재 또는 추가를 배제하지 않는 것으로 이해되어야 한다.In addition, the terms "comprising" and/or "comprising" mean that the corresponding feature and/or element is present, but excludes the presence or addition of one or more other features, elements, and/or groups thereof. It should be understood as not.

또한, 제1, 제2 등과 같이 서수를 포함하는 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되지는 않는다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다. 및/또는 이라는 용어는 복수의 관련된 기재된 항목들의 조합 또는 복수의 관련된 기재된 항목들 중의 어느 항목을 포함한다.In addition, terms including ordinal numbers such as first and second may be used to describe various elements, but the elements are not limited by the terms. These terms are used only for the purpose of distinguishing one component from another component. For example, without departing from the scope of the present invention, a first element may be referred to as a second element, and similarly, a second element may be referred to as a first element. The term and/or includes a combination of a plurality of related listed items or any of a plurality of related listed items.

또한, 본 발명의 실시예들에서, 별도로 다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥 상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 발명의 실시예에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.In addition, in the embodiments of the present invention, unless otherwise defined, all terms used herein including technical or scientific terms are commonly understood by those of ordinary skill in the art to which the present invention belongs. It has the same meaning as. Terms as defined in a commonly used dictionary should be interpreted as having a meaning consistent with the meaning in the context of the related technology, and unless explicitly defined in the embodiments of the present invention, an ideal or excessively formal meaning Is not interpreted as.

도 1은 본 발명의 일 실시예에 따른 허가형 블록체인 시스템의 구성을 개략적으로 도시하는 도면이다.1 is a diagram schematically showing the configuration of a permission type blockchain system according to an embodiment of the present invention.

이하 본 명세서에서 설명되는 허가형 블록체인 시스템은 하이퍼레저 패브릭(Hyperledger Fabric)을 기반으로 정의한다.The permissioned blockchain system described in this specification is defined based on Hyperledger Fabric.

도 1을 참조하면 본 발명의 일 실시예에 따른 허가형 블록체인 시스템은 1 이상의 노드(10); 시스템 참여자인 노드가 상기 허가형 블록체인 시스템에 접근하기 위한 클라이언트 어플리케이션(40); 클라이언트의 자격증명을 제공하는 멤버십 서비스 프로바이더(50); 및 트랜잭션을 블록으로 정렬하는 오더러(60); 를 포함한다.Referring to FIG. 1, a permission type blockchain system according to an embodiment of the present invention includes one or more nodes 10; A client application 40 for a node that is a system participant to access the permission type blockchain system; A membership service provider 50 providing the client's credentials; And an orderer 60 for arranging transactions into blocks. Includes.

상기 노드(10)는 피어(peer)라고도 불리며 블록체인 네트워크를 구성한다. 상기 노드(10)는 거래 정보(트랜잭션)가 저장되는 블록체인 네트워크를 유지하는 역할을 수행한다. 도 1에는 하나의 노드(10)만이 도시되어 있지만, 상기 블록체인 네트워크에는 복수의 노드(10)가 존재하여 네트워크를 구성할 수 있다. 이 중 일부의 노드(10)는 보증피어(엔도저, endorser)의 역할을 수행할 수 있다. 상기 보증피어는 상기 어플리케이션(40)의 요청에 따라 체인코드를 실행하고 결과를 보증하는 역할을 수행한다. 이와 같은 보증피어의 보증은 상기 체인코드에 연계된 보증 정책에 기초하여 수행될 수 있다.The node 10 is also called a peer and constitutes a blockchain network. The node 10 serves to maintain a blockchain network in which transaction information (transaction) is stored. Although only one node 10 is shown in FIG. 1, a plurality of nodes 10 may exist in the blockchain network to form a network. Some of these nodes 10 may perform the role of endorsers (endors). The guarantee peer plays a role of executing the chaincode and guaranteeing the result according to the request of the application 40. The guarantee of such a guarantee peer may be performed based on a guarantee policy linked to the chaincode.

상기 어플리케이션(40)은 클라이언트에 의해 트랜잭션을 생성하여 상기 트랜잭션을 보증하는 보증피어에 제출함으로써 거래의 보증을 요청할 수 있다. 이와 같은 어플리케이션(40)은 특정 개인에 의해 관리되는 것이 아니라 해당 블록체인 네트워크의 관리자 혹은 기관에 의해 수행된다.The application 40 may request the guarantee of the transaction by generating a transaction by the client and submitting it to the guarantee peer that guarantees the transaction. Such an application 40 is not managed by a specific individual, but is performed by an administrator or institution of the corresponding blockchain network.

상기 멤버십 서비스 프로바이더(50)는 상기 어플리케이션(40)을 사용하는 클라이언트의 자격을 증명하여 피어가 블록체인 네트워크에 참여할 수 있도록 한다. 상기 클라이언트는 상기 멤버십 서비스 프로바이더(50)의 자격 증명을 이용하여 트랜잭션을 인증하고, 피어는 상기 자격 증명을 사용하여 상기 트랜잭션의 처리 결과를 인증한다. 이와 같은 멤버십 서비스 프로바이더(50)를 통해 허가된 클라이언트만이 상기 블록체인 네트워크에 참여하도록 할 수 있다.The membership service provider 50 verifies the credentials of the client using the application 40 so that the peer can participate in the blockchain network. The client authenticates the transaction using the credentials of the membership service provider 50, and the peer authenticates the processing result of the transaction using the credentials. Only clients authorized through the membership service provider 50 can participate in the blockchain network.

상기 오더러(60)는 트랜잭션을 블록으로 정렬하는 노드의 집합이다. 상기 오더러(60)는 일반적인 노드(10)와는 독립적으로 존재하여 상기 어플리케이션(40)으로부터 제안 되는 트랜잭션을 합의 알고리즘에 따라 순서화시켜 정렬한다. 상기 오더러(60)는 이와 같이 정렬 된 트랜잭션을 블록으로 생성하여 상기 블록체인 네트워크 상의 노드(10)에 전달한다. 이와 같은 블록을 전달 받은 노드(10)는 확정피어(커미터, committer)로 동작하여 거래를 확정할 수 있다.The orderer 60 is a set of nodes that arrange transactions into blocks. The orderer 60 exists independently of the general node 10, and orders and sorts the transactions proposed from the application 40 according to a consensus algorithm. The orderer 60 generates the arranged transaction as a block and delivers it to the node 10 on the blockchain network. The node 10 that has received such a block may operate as a definite peer (committer) to confirm a transaction.

상기 노드(10)는 블록체인 네트워크상의 트랜잭션이 기록되고 개인만이 보유하고 있는 개인 데이터베이스를 포함한 분산데이터베이스(200); 및 상기 분산데이터베이스(200)에 대한 액세스를 제어하는 스마트컨트랙트(100); 를 포함할 수 있다.The node 10 includes a distributed database 200 including a personal database in which transactions on the blockchain network are recorded and held only by individuals; And a smart contract 100 for controlling access to the distributed database 200. It may include.

상기 분산데이터베이스(200)는 블록체인으로서 트랜잭션이 기록된다. 본 발명의 일 실시예에서 상기 분산데이터베이스(200)는 블록체인 네트워크상의 트랜잭션이 기록되는 분산원장; 및 상기 노드(10) 개인만이 보유하고 있는 개인데이터베이스(220)를 포함할 수 있다. 상기 스마트컨트랙트(100)는 체인 코드로 작성되어 상기 어플리케이션(40)이 상기 분산데이터베이스(200)와 상호 작용해야 할 때 상기 어플리케이션(40)에 의해 호출된다. 상기 스마트컨트랙트(100)는 상기 분산데이터베이스(200)에 대한 접근을 위해 다양한 함수들이 저장되어, 상기 함수에 의해 상기 분산데이터베이스(200)의 데이터를 갱신하거나, 혹은 상기 데이터로부터 필요한 정보를 추출할 수 있다.The distributed database 200 is a block chain and transactions are recorded. In an embodiment of the present invention, the distributed database 200 includes a distributed ledger in which transactions on a blockchain network are recorded; And a personal database 220 owned only by the individual node 10. The smart contract 100 is written in a chain code and is called by the application 40 when the application 40 needs to interact with the distributed database 200. The smart contract 100 stores various functions for accessing the distributed database 200, so that the data of the distributed database 200 can be updated or necessary information can be extracted from the data. have.

도 2는 본 발명의 일 실시예에 따른 스마트컨트랙트의 구성을 개략적으로 도시하는 도면이다.2 is a diagram schematically showing the configuration of a smart contract according to an embodiment of the present invention.

도 2를 참조하면 본 발명의 일 실시예에 따른 상기 스마트컨트랙트(100)에는 질의함수(110) 및 배포함수(120)가 저장되어 있다. 상기 질의함수(110)는 상기 분산데이터베이스(200)의 데이터를 조회하기 위한 함수이고, 상기 배포함수(120)는 상기 분산데이터베이스(200)에 데이터를 기록하기 위한 함수이다.Referring to FIG. 2, a query function 110 and a distribution function 120 are stored in the smart contract 100 according to an embodiment of the present invention. The query function 110 is a function for inquiring data of the distributed database 200, and the distribution function 120 is a function for writing data to the distributed database 200.

상기 질의함수(110)는 상기 분산데이터베이스(200)의 데이터를 조회하기 위해 블록을 검색하거나, 상기 분산데이터베이스(200)의 데이터의 크기 등을 조회할 수 있고, 상기 질의함수(110)의 실행 결과는 상기 분산데이터베이스(200)에 기록되지 않는다.The query function 110 may search for a block in order to inquire the data of the distributed database 200, or the size of the data in the distributed database 200, and the execution result of the query function 110 Is not recorded in the distributed database 200.

상기 배포함수(120)는 상기 분산데이터베이스(200)에 데이터를 기록하기 위한 함수이고, 상기 배포함수(120)는 상기 스마트컨트랙트(100)의 체인코드를 실행하거나, 체인코드를 새로 등록하는 등의 동작이 실행될 수 있다. 이와 같은 배포함수(120)의 실행에 따라 상기 분산데이터베이스(200)에 데이터가 기록될 수 있다.The distribution function 120 is a function for recording data in the distributed database 200, and the distribution function 120 executes the chain code of the smart contract 100 or registers a new chain code. The operation can be executed. Data may be recorded in the distributed database 200 according to the execution of the distribution function 120.

또한, 본 발명의 일 실시예에서 상기 스마트컨트랙트(100)에는 이 외에도 다양한 함수들이 저장되어 있을 수 있다.In addition, various functions may be stored in the smart contract 100 in an embodiment of the present invention.

도 3은 본 발명의 일 실시예에 따른 질의함수의 구성을 개략적으로 도시하는 도면이다.3 is a diagram schematically showing the configuration of a query function according to an embodiment of the present invention.

상기 질의함수(110)는 일반질의함수(111) 및 데이터분석질의함수(112)를 포함할 수 있다. 상기 일반질의함수(111)는 상기 분산데이터베이스(200)에 저장된 데이터에서 개별 데이터 분석을 수행할 수 없는 일반적인 질의를 수행하는 함수이고, 상기 데이터분석질의함수(112)는 데이터 분석을 수행할 수 있는 질의를 수행하는 함수이다.The query function 110 may include a general query function 111 and a data analysis query function 112. The general query function 111 is a function that performs a general query that cannot perform individual data analysis on the data stored in the distributed database 200, and the data analysis query function 112 is capable of performing data analysis. This is a function that executes a query.

즉, 본 발명의 일 실시예에서 상기 스마트컨트랙트(100)에는 상기 데이터분석질의함수(112)가 저장되어 있어, 상기 분산데이터베이스(200)에 대한 데이터 분석을 수행할 수 있도록 할 수 있다. 이 때, 상기 데이터분석질의함수(112)는 상기 분산데이터베이스(200)의 프라이버시를 유지하기 위하여 상기 분산데이터베이스(200)가 차분 프라이버시를 적용하여 응답 값을 반환하도록 할 수 있다.That is, in an embodiment of the present invention, since the data analysis query function 112 is stored in the smart contract 100, it is possible to perform data analysis on the distributed database 200. In this case, the data analysis query function 112 may cause the distributed database 200 to return a response value by applying differential privacy in order to maintain the privacy of the distributed database 200.

도 3a는 본 발명의 일 실시예에 따른 분산데이터베이스의 구성을 개략적으로 도시하는 도면이다.3A is a diagram schematically showing the configuration of a distributed database according to an embodiment of the present invention.

도 3a를 참조하면 본 발명의 일 실시예에 따른 분산데이터베이스(200)는 상기 허가형 블록체인 시스템이 공유하는 분산원장(210); 및 상기 허가형 블록체인 시스템 내의 상기 노드들이 각자 보유하는 개인 데이터베이스(220); 를 포함할 수 있다. Referring to FIG. 3A, a distributed database 200 according to an embodiment of the present invention includes a distributed ledger 210 shared by the permission type blockchain system; And a personal database 220 held by the nodes in the permission type blockchain system. It may include.

도 4는 본 발명의 일 실시예에 따른 분산원장의 구성을 개략적으로 도시하는 도면이다.4 is a diagram schematically showing the configuration of a distributed ledger according to an embodiment of the present invention.

도 4를 참조하면 본 발명의 일 실시예에 따른 분산원장(210)은 상기 허가형 블록체인 시스템의 모든 구성원이 공유하는 공개분산원장(211); 및 상기 허가형 블록체인 시스템의 특정 구성원만이 공유하는 1 이상의 비밀분산원장(212); 을 포함할 수 있다. 도 4에는 n개의 비밀분산원장(212)을 포함하는 분산원장(210)이 도시되어 있다. 이와 같은 비밀분산원장(212)의 수는 동일한 블록체인 시스템의 노드마다 서로 다를 수 있다.4, a distributed ledger 210 according to an embodiment of the present invention includes a public distributed ledger 211 shared by all members of the permission type blockchain system; And at least one secret distributed ledger 212 shared only by a specific member of the permission type blockchain system. It may include. 4 shows a distributed ledger 210 including n secret distributed ledgers 212. The number of such secret distributed ledgers 212 may be different for each node of the same blockchain system.

도 4a는 본 발명의 일 실시예에 따른 공개분산원장의 구성을 개략적으로 도시하는 도면이다. 4A is a diagram schematically showing the configuration of an open distributed ledger according to an embodiment of the present invention.

도 4a를 참조하면 본 발명의 일 실시예에 따른 공개분산원장(211)은 상기 허가형 블록체인 시스템에서 이루어지는 트랜잭션을 저장하는 데이터공개분산원장(211.1); 및 상기 허가형 블록체인 시스템에서 이루어지는 각 라운드 별 학습의 결과물 및 최종 분산 학습 모델을 저장하는 분산학습모델공유원장(211.2); 을 포함할 수 있다. 본 발명의 일 실시예에 따른 공개분산원장(211)은 상기 허가형 블록체인 시스템의 모든 구성원이 공유할 수 있다.Referring to FIG. 4A, a public distributed ledger 211 according to an embodiment of the present invention includes a data public distributed ledger 211.1 for storing transactions made in the permission type blockchain system; And a distributed learning model sharing ledger (211.2) for storing a result of learning for each round and a final distributed learning model in the permissioned blockchain system. It may include. The public distributed ledger 211 according to an embodiment of the present invention can be shared by all members of the permission-type blockchain system.

도 5는 본 발명의 일 실시예에 따른 두 노드의 구성을 개략적으로 도시하는 도면이다.5 is a diagram schematically showing the configuration of two nodes according to an embodiment of the present invention.

도 5에 도시된 노드A(10) 및 노드B(20)는 상기 블록체인 네트워크를 구성하는 노드이다. 상기 노드A(10) 및 노드B((20) 모두 스마트컨트랙트(100) 및 분산데이터베이스(200)를 포함하고 있다. 이 때 상기 분산데이터베이스(200)는 분산원장(210) 및 개인데이터베이스(220)를 포함하고 있으며, 상기 분산원장(210)은 공개분산원장(211) 및 비밀분산원장(212)을 포함하고 있다. 또한 상기 공개분산원장(211)은 데이터공개분산원장(211.1) 및 분산학습모델공유원장(211.2)을 포함하고 있다.Node A 10 and Node B 20 shown in FIG. 5 are nodes constituting the blockchain network. Both the node A 10 and the node B 20 include a smart contract 100 and a distributed database 200. In this case, the distributed database 200 includes a distributed ledger 210 and a personal database 220. In addition, the distributed ledger 210 includes a public distributed ledger 211 and a secret distributed ledger 212. In addition, the public distributed ledger 211 includes a data public distributed ledger 211.1 and a distributed learning model. It includes a shared ledger (211.2).

이 때, 상기 노드A(10) 및 상기 노드B(20) 모두 비밀분산원장#1(212.1)을 포함하고 있다. 상기 비밀분산원장#1(212.1)은 상기 블록체인 네트워크의 노드 중 상기 노드A(10) 및 상기 노드B(20)가 공유하는 비밀분산원장이다. 상기 비밀분산원장#1(212.1)은 상기 노드A(10) 및 상기 노드B(20) 외에도 다른 노드에도 포함되어 있을 수 있다.At this time, both the node A 10 and the node B 20 include secret distributed ledger #1 (212.1). The secret distributed ledger #1 (212.1) is a secret distributed ledger shared by the node A 10 and the node B 20 among nodes of the blockchain network. The secret distributed ledger #1 (212.1) may be included in other nodes in addition to the node A (10) and the node B (20).

비밀분산원장#2(212.2)는 상기 노드A(10)에는 포함되어 있으나, 상기 노드B(20)에는 포함되어 있지 않다. 상기 비밀분산원장#2(212.2)은 상기 노드A(10)외에 다른 노드에도 포함되어 있을 수 있다. 다만 상기 노드B(20)에는 포함되어 있지 않아, 상기 노드B(20)의 스마트컨트랙트(100)는 상기 비밀분산원장#2(212.2)에 저장되어 있는 데이터에는 접근할 수 없다.Secret Distributed Ledger #2 (212.2) is included in Node A 10, but not included in Node B 20. The secret distributed ledger #2 (212.2) may be included in nodes other than the node A (10). However, since it is not included in the node B 20, the smart contract 100 of the node B 20 cannot access the data stored in the secret distributed ledger #2 212.2.

반면, 비밀분산원장#3(212.3)는 상기 노드B(20)에는 포함되어 있으나, 상기 노드A(10)에는 포함되어 있지 않다. 상기 비밀분산원장#3(212.3)은 상기 노드B(20)외에 다른 노드에도 포함되어 있을 수 있다. 다만 상기 노드A(10)에는 포함되어 있지 않아, 상기 노드A(10)의 스마트컨트랙트(100)는 상기 비밀분산원장#3(212.3)에 저장되어 있는 데이터에는 접근할 수 없다.On the other hand, secret distributed ledger #3 (212.3) is included in the node B 20, but not included in the node A 10. The secret distributed ledger #3 (212.3) may be included in nodes other than the node B (20). However, since it is not included in the node A 10, the smart contract 100 of the node A 10 cannot access the data stored in the secret distributed ledger #3 212.3.

도 6은 허가형 블록체인 시스템의 데이터 처리 과정의 흐름도이다.6 is a flowchart of a data processing process of a permission type blockchain system.

도 6에서 요청자(70)는 상기 분산데이터베이스(200)에 저장된 데이터를 분석하려 하는 블록체인 네트워크의 노드이다. 상기 요청자(70)는 상기 어플리케이션(40)을 통해 스마트컨트랙트(100)에 접근할 수 있다. 도 6의 실시예에서 상기 스마트컨트랙트(100)는 하나의 공개분산원장(211), 두 개의 비밀분산원장(212) 및 하나의 개인데이터베이스(220)에 접근할 수 있다.In FIG. 6, the requestor 70 is a node of a blockchain network that tries to analyze data stored in the distributed database 200. The requestor 70 may access the smart contract 100 through the application 40. In the embodiment of FIG. 6, the smart contract 100 may access one public distributed ledger 211, two secret distributed ledgers 212 and one personal database 220.

본 발명의 일 실시예에 따른 상기 데이터 분석 방법은, 클라이언트 어플리케이션(40)이 스마트컨트랙트(100)에 데이터분석질의함수(112)를 호출하는 질의호출단계(S100); 상기 스마트컨트랙트(100)가 상기 데이터분석질의함수(112)에 기초하여 상기 분산데이터베이스(200)에 상기 데이터분석질의함수(112)에 대한 응답 요청을 수행하는 질의응답요청단계(S200); 상기 분산데이터베이스(200)가 차분 프라이버시를 적용하여 상기 데이터분석질의함수(112)에 대한 응답 값을 반환하는 질의응답반환단계(S300); 상기 스마트컨트랙트(100)가 상기 응답 값을 분석하여 반환하는 분석결과반환단계(S400); 및 오류로그에 기초하여 악의적인 공격자의 공격 행동을 사전 방지하는 오류기반감사수행단계(S500); 를 포함한다.The data analysis method according to an embodiment of the present invention includes a query calling step (S100) in which the client application 40 calls the data analysis query function 112 to the smart contract 100; A query response request step (S200) in which the smart contract 100 performs a response request for the data analysis query function 112 to the distributed database 200 based on the data analysis query function 112; A query response return step (S300) in which the distributed database 200 returns a response value for the data analysis query function 112 by applying differential privacy; An analysis result return step (S400) in which the smart contract 100 analyzes and returns the response value; And performing an error-based auditing step (S500) of preventing a malicious attacker's attack behavior in advance based on the error log. Includes.

도 7은 프라이버시가드가 적용된 데이터베이스가 차분 프라이버시를 적용하여 응답을 수행하는 분석 방법의 요청 및 응답 흐름도이다.7 is a request and response flowchart of an analysis method in which a database to which a privacy guard is applied performs a response by applying differential privacy.

도 7에서는 차분 프라이버시를 이용하여 노이즈를 추가하는 방법이 도시되어 있다. 도 7을 참조하면, 데이터 분석을 하려는 요청자(70)와 분산데이터베이스(90) 사이에 분석에 관한 질의함수를 관리하고 노이즈가 추가된 응답 값을 계산해주는 프라이버시가드(80)가 존재한다. 도 7에는 분산데이터베이스(90)가 도시되어 있지만 이와 같은 프라이버시가드(80)는 일반적인 데이터베이스에서도 동일하게 동작할 수 있다.In FIG. 7, a method of adding noise using differential privacy is illustrated. Referring to FIG. 7, a privacy guard 80 exists between a requestor 70 for data analysis and a distributed database 90 for managing a query function for analysis and calculating a response value to which noise is added. Although the distributed database 90 is shown in FIG. 7, the privacy guard 80 can operate in the same manner in a general database.

이와 같이 프라이버시가드(80)가 적용된 분산데이터베이스(90)에 있어서 차분 프라이버시를 적용하기 위해서 우선 상기 요청자(70)가 프라이버시가드(80)에 특정 정보를 획득하기 위한 질의를 요청하는 단계(S10)가 수행된다.In order to apply differential privacy in the distributed database 90 to which the privacy guard 80 is applied as described above, the requestor 70 first requests a query to obtain specific information from the privacy guard 80 (S10). Performed.

이 후, 상기 프라이버시가드(80)가 기설정된 정책에 의해 요청된 질의를 분석하는 단계(S20)가 수행된다. 상기 프라이버시가드(80)는 기설정된 정책에 의해 상기 질의의 프라이버시 영향 정도를 평가할 수 있다.Thereafter, a step (S20) of analyzing the query requested by the privacy guard 80 according to a preset policy is performed. The privacy guard 80 may evaluate the degree of privacy impact of the query according to a preset policy.

이 후, 상기 프라이버시가드(80)가 상기 분산데이터베이스(90)로 질의를 전송하는 단계(S30)가 수행된다. 이와 같은 질의에 따라 상기 분산데이터베이스(90)가 상기 프라이버시가드(80)로 왜곡되지 않은 데이터에 기반한 응답 값을 반환하는 단계(S40)가 수행된다.Thereafter, a step (S30) of transmitting the query from the privacy guard 80 to the distributed database 90 is performed. In response to such a query, the distributed database 90 returns a response value based on the undistorted data to the privacy guard 80 (S40).

이 후, 상기 프라이버시가드(80)가 상기 S20단계에서 평가한 상기 질의의 프라이버시 영향 정도에 기초하여 적절한 양의 노이즈를 추가하는 단계(S50)가 수행된다. 이와 같이 상기 프라이버시가드(80)는 상기 분산데이터베이스(90)에 있는 정보의 기밀성을 보호하기 위하여 상기 응답 값에 노이즈가 추가된 결과 값을 생성하고, 상기 요청자(70)에게 노이즈가 추가된 결과 값을 반환하는 단계(S60)를 수행한다.Thereafter, a step (S50) of adding an appropriate amount of noise is performed by the privacy guard 80 based on the degree of privacy influence of the query evaluated in step S20. In this way, the privacy guard 80 generates a result value in which noise is added to the response value to protect the confidentiality of information in the distributed database 90, and a result value in which noise is added to the requestor 70 Performs a step (S60) of returning.

이와 같은 과정을 통해 상기 요청자(70)는 요청한 질의에 대한 정보를 전달 받으면서도, 구체적인 데이터에 대해서는 노이즈에 의해 알 수 없게 되어 상기 분산데이터베이스(90)의 프라이버시를 유지할 수 있게 된다.Through this process, the requestor 70 can not know specific data due to noise while receiving information on the requested query, so that the privacy of the distributed database 90 can be maintained.

도 8은 본 발명의 일 실시예에 따른 허가형 블록체인 시스템의 프라이버시 보존형 데이터 분석 방법의 요청 및 응답 흐름도이다.8 is a request and response flow chart of a privacy-preserving data analysis method of a permission-type blockchain system according to an embodiment of the present invention.

도 8을 참조하면 도 7에서의 프라이버시가드(80)와 같은 역할을 데이터분석질의함수를 포함하는 스마트컨트랙트(100)가 수행하게 된다. 본 발명의 일 실시예에서는 이와 같이 차분 프라이버시를 구현하는 방법이 상기 도 7의 프라이버시가드(80)처럼 물리적, 단일적으로 나뉘어져 있는 형태가 아니라 스마트컨트랙트(100)의 내부에 추가 된 자동함수의 형태를 취하게 된다. 즉, 물리적인 개체가 추가되는 것이 아니라 블록체인 네트워크 상에 논리적으로 추가구성 됨으로써 네트워크 구성에 대한 부담감을 줄일 수 있으며, 구성원 모두가 공개분산원장(211)을 동일하게 공유하고, 각각 개인데이터베이스(220)를 포함하고 있으며, 비밀분산원장(212)에 기반한 일부의 구성원들이 동일한 데이터분석질의함수(112)를 포함하는 스마트컨트랙트(100)를 보유하게 되므로 기존 프라이버시가드(80) 기반 차분 프라이버시 구현 방법에 비해 단일실패점(Single Point of Failure)을 방지할 수 있는 효과를 발휘할 수 있다.Referring to FIG. 8, the smart contract 100 including the data analysis query function performs the same role as the privacy guard 80 in FIG. 7. In an embodiment of the present invention, the method of implementing differential privacy is not a form that is physically and singly divided like the privacy guard 80 of FIG. 7 but a form of an automatic function added to the inside of the smart contract 100 You get drunk. That is, a physical entity is not added but is logically added to the blockchain network, thereby reducing the burden on the network configuration, and all members share the same public distributed ledger 211, and each individual database 220 ), and some members based on the Secret Distributed Ledger 212 have the smart contract 100 including the same data analysis query function 112, so that the existing privacy guard 80-based differential privacy implementation method Compared to that, it can exhibit the effect of preventing a single point of failure.

도 8을 참조하면 우선 요청자(70)가 어플리케이션(40)을 통해 스마트컨트랙트(100)에 데이터분석질의함수(112)를 호출하는 질의호출단계(S100)를 수행한다.Referring to FIG. 8, first, the requestor 70 performs a query calling step S100 of calling the data analysis query function 112 to the smart contract 100 through the application 40.

이 후, 상기 스마트컨트랙트(100)가 상기 데이터분석질의함수(112)에 기초하여 상기 분산데이터베이스(200)에 상기 데이터분석질의함수(112)에 대한 응답 요청을 수행하는 질의응답요청단계(S200)가 수행된다. 본 발명의 일 실시예에서 상기 질의응답요청단계(S200)는, 상기 데이터공개분산원장(211.1)에 데이터분석질의함수(112)에 대한 응답 값을 요청하는 공개분산데이터응답요청단계(S210); 및 상기 비밀분산원장(212) 및 상기 개인데이터베이스(220)에 차분 프라이버시를 적용한 데이터분석질의함수(112)에 대한 응답 값을 요청하는 비밀데이터응답요청단계(S220); 를 포함할 수 있다. 도 8에는 상기 공개분산데이터응답요청단계(S210) 수행 후에 상기 비밀데이터응답요청단계(S220)가 수행되는 것으로 도시되어 있으나, 본 발명에서 상기 공개분산데이터응답요청단계(S210) 및 상기 비밀데이터응답요청단계(S220)는 동시에 수행될 수도 있고, 혹은 상기 비밀데이터응답요청단계(S220)가 먼저 수행될 수도 있다. 즉, 상기 공개분산데이터응답요청단계(S210) 및 상기 비밀데이터응답요청단계(S220)는 독립적으로 수행됨이 바람직하다.Thereafter, the query response request step (S200) of the smart contract 100 performing a response request to the data analysis query function 112 to the distributed database 200 based on the data analysis query function 112 Is performed. In an embodiment of the present invention, the question-and-answer request step (S200) includes a public distributed data response request step (S210) of requesting a response value for the data analysis query function 112 from the data public distributed ledger 211.1; And a secret data response request step (S220) of requesting a response value for the data analysis query function 112 applying differential privacy to the secret distributed ledger 212 and the personal database 220. It may include. 8 shows that the secret data response request step (S220) is performed after the public distributed data response request step (S210) is performed, but in the present invention, the public distributed data response request step (S210) and the secret data response The request step (S220) may be performed at the same time, or the secret data response request step (S220) may be performed first. That is, it is preferable that the open distributed data response request step (S210) and the secret data response request step (S220) are independently performed.

이 후, 상기 데이터공개분산원장(211.1)은, 상기 데이터분석질의함수(112)에 대해 응답 값을 반환하고(S310), 상기 비밀분산원장(212) 및 상기 개인데이터베이스(220)는, 상기 데이터분석질의함수(112)에 대해 차분 프라이버시 기반의 노이즈가 추가된 응답 값을 반환한다(S320). 이와 같이 상기 비밀분산원장(212) 및 상기 개인데이터베이스(220)는 차분 프라이버시 기반의 노이즈가 추가된 응답 값을 반환함으로써, 상기 요청자(70)가 상기 분산원장(210)의 확률적 분포 특성은 알아낼 수 있으나, 상기 비밀분산원장(212) 및 상기 개인데이터베이스(220)에 저장된 개별적인 정보는 알아낼 수 없어 상기 비밀분산원장(212) 및 상기 개인데이터베이스(220)의 데이터에 대한 프라이버시를 보호할 수 있게 된다.Thereafter, the data disclosure and distribution ledger 211.1 returns a response value to the data analysis query function 112 (S310), and the secret distribution ledger 212 and the personal database 220 A response value to which noise based on differential privacy is added to the analysis query function 112 is returned (S320). In this way, the secret distributed ledger 212 and the personal database 220 return a response value to which noise based on differential privacy was added, so that the requestor 70 could find out the probability distribution characteristic of the distributed ledger 210. However, since individual information stored in the secret distribution ledger 212 and the personal database 220 cannot be found, it is possible to protect the privacy of the data of the secret distribution ledger 212 and the personal database 220. .

본 발명의 일 실시예에서 상기 비밀분산원장(212) 또는 상기 개인데이터베이스(220)가 2 이상 존재하는 경우, 2 이상의 상기 비밀분산원장(212) 또는 상기 개인데이터베이스(220)는 독립적으로 상기 데이터분석질의함수(112)에 대해 차분 프라이버시 기반의 노이즈가 추가된 응답 값을 각각 반환할 수 있다.In an embodiment of the present invention, when two or more of the secret distributed ledger 212 or the personal database 220 exist, the two or more secret distributed ledgers 212 or the personal database 220 independently analyze the data. Response values to which noise based on differential privacy is added to the query function 112 may be returned, respectively.

이 후, 상기 스마트컨트랙트(100)가 상기 응답 값을 분석하여 반환하는 분석결과반환단계(S400)가 수행된다. 이 때, 상기 분석결과반환단계(S400)는, 상기 공개분산원장, 상기 비밀분산원장 및 상기 개인데이터베이스(220)가 반환한 상기 응답 값을 통합하여 데이터분석질의함수에 기초한 분석을 수행하여 분석 결과를 반환할 수 있다.Thereafter, the analysis result return step (S400) in which the smart contract 100 analyzes and returns the response value is performed. At this time, in the analysis result return step (S400), the public distributed ledger, the secret distributed ledger, and the response value returned by the personal database 220 are integrated to perform an analysis based on a data analysis query function, and the analysis result Can be returned.

이를 위해 상기 분석결과반환단계(S400)에서는 상기 스마트컨트랙트가 상기 공개분산원장(211), 상기 비밀분산원장(212) 및 상기 개인데이터베이스(220)의 응답 값을 통합하여 분석을 수행하는 단계(S410)를 수행하고, 상기 분석 결과를 상기 어플리케이션(40)을 통해 상기 요청자(70)에게 반환하는 단계(S420)를 수행할 수 있다.To this end, in the analysis result return step (S400), the smart contract performs an analysis by integrating the response values of the public distributed ledger 211, the secret distributed ledger 212 and the personal database 220 (S410 ), and returning the analysis result to the requestor 70 through the application 40 (S420).

또한 도 8을 참조하면 본 발명의 일 실시예에 따른 오류기반감사수행단계(S500)가 올바르지 않은 응답 값을 반환하는 악의적인 공격자의 공격 행동을 사전 방지하기 위해 수행될 수 있다. 도 8에는 상기 요청자(70)의 어플리케이션(40)이 상기 스마트컨트랙트(100)를 통해 단독적으로 수행하는 것으로 도시되어 있으나, 본 발명에서 상기 스마트컨트랙트(100)는 자동함수의 형태를 취하는 논리적인 개체이며 본 발명의 일 실시예에 따른 오류기반감사수행단계(S500)는 허가형 블록체인 내에 속한 어떠한 참여자이든지 어플리케이션(40)을 통해 스마트컨트랙트(100)에 접근하여 언제든지 오류기반감사수행단계(S500)을 실행할 수 있다.In addition, referring to FIG. 8, the error-based audit execution step S500 according to an embodiment of the present invention may be performed to prevent an attack behavior of a malicious attacker returning an incorrect response value. In FIG. 8, the application 40 of the requestor 70 is shown to be independently executed through the smart contract 100, but in the present invention, the smart contract 100 is a logical entity taking the form of an automatic function. In the error-based audit performance step (S500) according to an embodiment of the present invention, any participant in the permission-type blockchain accesses the smart contract 100 through the application 40 at any time to perform an error-based audit (S500). Can run.

이와 같은 오류기반감사수행단계(S500)를 수행하기 위해 본 발명의 일 실시예에 따른 상기 분석결과반환단계(S400)는 상기 스마트컨트랙트(100)가 상기 응답 값을 분석하여 계산된 분산학습모델을 저장하는 분산학습모델저장단계(S430); 및 상기 스마트컨트랙트(100)가 상기 응답 값을 분석하여 차후 오류기반감사를 위한 오류로그를 저장하는 오류로그저장단계(S440); 를 더 포함할 수 있다.In order to perform the error-based audit performance step (S500), the analysis result return step (S400) according to an embodiment of the present invention uses the distributed learning model calculated by the smart contract 100 analyzing the response value. The distributed learning model storage step of storing (S430); And an error log storing step (S440) in which the smart contract 100 analyzes the response value and stores an error log for subsequent error-based audit. It may further include.

본 발명의 일 실시예에 따른 상기 분산학습모델저장단계(S430)에서는 상기 스마트컨트랙트(1000)가 상기 분산학습모델공유원장(211.2)에 분석을 수행하여 도출된 분산학습모델을 저장하고, 상기 오류로그저장단계(S440)에서는 오류기반감사를 위한 오류로그를 저장할 수 있다.In the distributed learning model storage step (S430) according to an embodiment of the present invention, the smart contract 1000 stores the distributed learning model derived by performing analysis in the distributed learning model sharing ledger 211.2, and the error In the log storage step S440, an error log for error-based audit may be stored.

이후 수행되는 상기 오류기반감사수행단계(S500)는, 상기 클라이언트가 향후 오류기반감사를 위해 저장된 상기 오류로그를 요청하는 오류로그요청단계(S510); 상기 분산학습모델공개원장이 상기 오류로그요청에 대한 응답 값을 반환하는 오류로그반환단계(S520); 및 상기 클라이언트가 상기 오류로그반환단계의 응답 값에 기초하여 오류기반감사를 수행하는 감사수행단계(S530); 를 포함할 수 있다,The error-based audit performing step (S500) performed afterwards includes an error log request step (S510) in which the client requests the error log stored for future error-based auditing; An error log return step (S520) in which the distributed learning model disclosure ledger returns a response value to the error log request; And an audit performance step (S530) in which the client performs an error-based audit based on the response value of the error log return step. May include,

도 8a는 본 발명의 일 실시예에 따른 차분 프라이버시가 적용된 허가형 블록체인 시스템의 프라이버시 보존형 데이터 분석 방법의 동작을 예시한 흐름도이다.8A is a flowchart illustrating an operation of a privacy-preserving data analysis method of a permissioned blockchain system to which differential privacy is applied according to an embodiment of the present invention.

도 8a는 상기 오류기반감사수행단계(S500)의 보다 쉬운 이해를 위해 도 8에서 이루어지는 본 발명의 일 실시예에 따른 허가형 블록체인 시스템의 프라이버시 보존형 데이터 분석 방법의 요청 및 흐름도에 대한 물리적 흐름도를 나타낸다. 도 8a를 참조하면, 특정 데이터에 대한 데이터 분석이 수행될 시 분산데이터베이스(200)를 소유한 모든 노드들은 각 라운드 때마다 계산된 모델 및 그에 대한 오류값을 저장한다. 도 8a에서는 이에 대한 예시를 나타내기 위해, 노드 A(10)와 노드B(20)만이 포함된 실시예가 도시되어 있으며, 이는 네트워크의 규모에 따라 소수에서 다수가 될 수 있다. 도 8a를 참조하면, 노드A(10) 및 노드B(20)는 데이터 분석 수행 시 총

Figure 112019029246782-pat00001
번의 라운드를 진행하게 된다. 이때 각 라운드마다 노드A(10)와 노드B(20)는
Figure 112019029246782-pat00002
라운드결과값에 대한 저장요청(S441)을 하여 상기 분산학습모델공개원장(211.2)에 저장(S442)하게 된다. 구체적으로 상기 노드A는 1라운드에서 1라운드결과값에 대한 저장요??(S441.1A)을 하고, 상기 분산학습모델공개원장(211.2)는 이를 저장(S442.1A)한다. 또한, 상기 노드B는 1라운드에서 1라운드결과값에 대한 저장요??(S441.1B)을 하고, 상기 분산학습모델공개원장(211.2)는 이를 저장(S442.1B)한다. 이와 같은 단계가 반복되어 분산학습모델저장단계(S430) 및 오류로그저장단계(S440)가 수행될 수 있다.Figure 8a is a physical flow diagram of a request and flow chart of a privacy-preserving data analysis method of a permission-type blockchain system according to an embodiment of the present invention made in FIG. Represents. Referring to FIG. 8A, when data analysis on specific data is performed, all nodes owning the distributed database 200 store a calculated model and an error value thereof for each round. In FIG. 8A, to illustrate this example, an embodiment including only the node A 10 and the node B 20 is shown, and this may be from a small number to a large number depending on the size of the network. Referring to FIG. 8A, when performing data analysis, node A 10 and node B 20
Figure 112019029246782-pat00001
Rounds are played. At this time, in each round, Node A (10) and Node B (20)
Figure 112019029246782-pat00002
A storage request (S441) for the round result value is made and stored in the distributed learning model open ledger (211.2) (S442). Specifically, the node A stores the result value of the first round in the first round?? (S441.1A), and the distributed learning model disclosure ledger 211.2 stores it (S442.1A). In addition, the node B stores the result values of the first round in the first round?? (S441.1B), and the distributed learning model disclosure ledger 211.2 stores this (S442.1B). By repeating this step, the distributed learning model storage step (S430) and the error log storage step (S440) may be performed.

이 후, 오류기반감사수행단계(S500)에서는 오류기반감사의 수행을 원하는 특정 노드에 의해 구동되는 요청자(70)가 상기 오류기반감사를 위한 저장된 오류로그값을 요청 하는 오류로그값요청단계(S510) 및 오류기반감사를 위한 저장된 오류로그값을 반환 하는 오류로그값반환단계(S520)을 통해 기존에 저장되어 있는 노드A(10)와 노드B(20)에 대한 모델의 오류 값을 반환 받는다. 이후 요청자(70)는 오류기반감사를 수행하여(S530) 높은 오류를 가지는 노드를 쉽게 파악할 수 있다.Thereafter, in the error-based audit execution step (S500), the requestor 70 driven by a specific node that wants to perform the error-based audit requests an error log value stored for the error-based audit (S510). ) And the error log value return step (S520) of returning the stored error log value for error-based auditing, the previously stored error values of the model for Node A 10 and Node B 20 are returned. Thereafter, the requestor 70 can easily identify a node having a high error by performing an error-based audit (S530).

또한 도 8a를 참조하면 상기 오류기반감사수행단계(S500)는 상기와 같은 과정을 통해 높은 오류 값들을 가지는 특정 노드들을 선별할 수 있다. 본 발명의 일 실시예에 따른 차분 프라이버시가 적용된 허가형 블록체인 시스템의 프라이버시 보존형 데이터 분석 방법에서의 상기 오류기반감사수행단계(S500)는 해당 오류 수치를 통해 향후 감사의 대상으로 노드를 관리할 수 있으며, 이는 네트워크의 정책에 따라 유동적으로 설정될 수 있다. 예를 들어 오류 값을 0부터 1까지의 수치로 나타내는 네트워크에서 0.7 이상의 평균적 오류를 갖는 노드에 대한 감사 및 관리를 수행하도록 할 수 있다.In addition, referring to FIG. 8A, in the error-based audit execution step S500, specific nodes having high error values may be selected through the above process. The error-based audit execution step (S500) in the privacy-preserving data analysis method of the permissioned blockchain system to which differential privacy is applied according to an embodiment of the present invention is performed to manage the node as an object of future audit through the error value. This can be set flexibly according to the network policy. For example, in a network that represents an error value as a number from 0 to 1, it is possible to perform audit and management on nodes with an average error of 0.7 or more.

도 9는 본 발명의 일 실시예에 따른 차분 프라이버시가 적용된 허가형 블록체인 시스템의 프라이버시 보존형 데이터 분석 방법의 동작을 예시한 흐름도이다.9 is a flowchart illustrating an operation of a privacy-preserving data analysis method of a permissioned blockchain system to which differential privacy is applied according to an embodiment of the present invention.

도 9에 도시된 블록체인 네트워크에는 차량에 대한 데이터가 저장되어 있다. 상기 블록체인 네트워크에 저장된 데이터 형태는 {키 값; 제조사; 모델; 색상; 차주; 구입비용; 할부여부(개월)}와 같고, 각각 공개분산원장(211), 1 이상의 비밀분산원장(212) 및 개인데이터베이스(220)에 각각에 저장되어 있다.In the blockchain network shown in FIG. 9, data on vehicles is stored. The data type stored in the blockchain network is {key value; manufacturer; Model; color; Borrower; Purchase cost; Installment payment (months)}, and are stored in the public distributed ledger 211, at least one secret distributed ledger 212, and the personal database 220, respectively.

또한, 상기 스마트컨트랙트(100)는 상기 분산원장(210)에 대해 쓰기, 수정, 삭제 등의 연산을 수행할 수 있는 배포함수(120), 상기 분산데이터베이스(200)의 기본적인 정보를 읽어올 수 있는 일반질의함수(111) 및 데이터 분석을 수행하기 위한 데이터분석질의함수(112)를 포함하고 있다. 이와 같은 함수들은 상기 블록체인 네트워크가 구동되기 전에 미리 설계되어 포함되어 있다.In addition, the smart contract 100 is a distribution function 120 capable of performing operations such as writing, modification, and deletion on the distributed ledger 210, and reading basic information of the distributed database 200. It includes a general query function 111 and a data analysis query function 112 for performing data analysis. These functions are pre-designed and included before the blockchain network is started.

도 9를 참조하면 우선 요청자(70)가 어플리케이션(40)을 통해 스마트컨트랙트(100)에 데이터분석질의함수(112)를 호출하는 질의호출단계(S100)를 수행한다.Referring to FIG. 9, first, the requestor 70 performs a query calling step (S100) of calling the data analysis query function 112 to the smart contract 100 through the application 40.

이 후, 상기 스마트컨트랙트(100)가 상기 데이터분석질의함수(112)에 기초하여 상기 분산데이터베이스(200)에 상기 데이터분석질의함수(112)에 대한 응답 요청을 수행하는 질의응답요청단계(S200)가 수행된다. 상기 데이터분석질의함수(112)는 상기 분산데이터베이스(200)의 상위 제조사 혹은 상위 모델을 조회하거나, 저장된 차량 데이터의 색상 분포 조회 또는 향후 유행 모델에 대한 예측 및 분석 등의 함수를 포함할 수 있다.Thereafter, the query response request step (S200) of the smart contract 100 performing a response request to the data analysis query function 112 to the distributed database 200 based on the data analysis query function 112 Is performed. The data analysis query function 112 may include a function such as searching for a higher manufacturer or higher model of the distributed database 200, searching for color distribution of stored vehicle data, or predicting and analyzing a future fashion model.

이 때, 상기 질의응답요청단계(S200)는 상기 공개분산원장(211)에 데이터분석질의함수에 대한 응답 값을 요청하는 공개분산데이터응답요청단계(S210); 및 상기 비밀분산원장(212) 및 상기 개인데이터베이스(220)에 차분 프라이버시를 적용한 데이터분석질의함수에 대한 응답 값을 요청하는 비밀데이터응답요청단계(S220)의 단계로 나뉘어져 수행될 수 있다. 이를 통해 상기 공개분산원장(211)에는 상기 데이터분석질의함수(112)에 대한 응답 값을 요청하고, 상기 비밀분산원장(212) 및 상기 개인데이터베이스(220)에는 차분 프라이버시를 적용한 응답 값을 요청하여, 상기 비밀분산원장(212) 및 상기 개인데이터베이스(220)의 데이터에 대한 프라이버시를 보호할 수 있게 된다.In this case, the question-and-answer request step (S200) includes a public distributed data response request step (S210) of requesting a response value for a data analysis query function from the public distributed ledger 211; And a secret data response request step (S220) of requesting a response value for a data analysis query function to which differential privacy is applied to the secret distributed ledger 212 and the personal database 220. Through this, the public distributed ledger 211 requests a response value for the data analysis query function 112, and the secret distributed ledger 212 and the personal database 220 request a response value to which differential privacy is applied. , It is possible to protect the privacy of the data of the secret distribution ledger 212 and the personal database 220.

이 후, 상기 공개분산원장(211)은 상기 데이터분석질의함수(112)에 대해 응답 값을 반환하고(S310), 상기 비밀분산원장(212) 및 상기 개인데이터베이스(220)는, 상기 데이터분석질의함수(112)에 대해 차분 프라이버시 기반의 노이즈가 추가된 응답 값을 반환한다(S320).Thereafter, the public distributed ledger 211 returns a response value to the data analysis query function 112 (S310), and the secret distributed ledger 212 and the personal database 220, the data analysis query A response value to which noise based on differential privacy is added is returned to the function 112 (S320).

이 후, 상기 스마트컨트랙트(100)는 상기 공개분산원장(211), 상기 비밀분산원장(212) 및 상기 개인데이터베이스(220)가 반환한 상기 응답 값을 통합하여 데이터분석질의함수에 기초한 분석을 수행하여 분석 결과를 상기 어플리케이션(40)을 통해 상기 요청자(70)에게 반환하는 분석결과반환단계(S400)를 수행한다.Thereafter, the smart contract 100 performs an analysis based on a data analysis query function by integrating the response values returned by the public distributed ledger 211, the secret distributed ledger 212 and the personal database 220. Thus, the analysis result return step (S400) of returning the analysis result to the requestor 70 through the application 40 is performed.

전술한 바와 같이 본 발명의 일 실시예에 따른 프라이버시 보존형 데이터 분석 방법에서는 특정 구성원만이 소유하고 있는 비밀데이터의 값을 노출시키지 않은 상태로 데이터 분석을 수행하도록 하는 효과를 발휘할 수 있다.As described above, in the privacy-preserving data analysis method according to an embodiment of the present invention, the data analysis can be performed without exposing the value of secret data owned by only a specific member.

본 발명의 일 실시예에 따른 프라이버시 보존형 데이터 분석 방법에서는 기존의 허가형 블록체인 시스템의 구조를 변형하지 않으면서도 비밀데이터를 보호하도록 하는 효과를 발휘할 수 있다.In the privacy-preserving data analysis method according to an embodiment of the present invention, it is possible to exert an effect of protecting secret data without changing the structure of an existing permission-type blockchain system.

본 발명의 일 실시예에 따른 프라이버시 보존형 데이터 분석 방법에서는 비밀데이터를 보호하기 위한 물리적 구성요소를 추가하지 않음으로써 네트워크 구성을 간이하게 유지하는 효과를 발휘할 수 있다.In the privacy-preserving data analysis method according to an embodiment of the present invention, a network configuration can be easily maintained by not adding a physical component to protect secret data.

본 발명의 일 실시예에 따른 프라이버시 보존형 데이터 분석 방법에서는 오류기반감사수행단계(S500)를 통해 올바르지 않은 응답 값을 반환하는 악의적인 공격자의 공격 행동을 사전에 방지하기 위해 수행할 수 있다. 이는 허가형 블록체인 네트워크 내에 참여한 참여자 누구든지 어느 때나 수행할 수 있으며, 특정 참여자가 이전까지 올바른 값을 반환하였는지 혹은 올바르지 않은 값을 반환하였는지의 여부를 쉽게 쉽게 파악할 수 있다.In the privacy-preserving data analysis method according to an embodiment of the present invention, it may be performed in advance to prevent an attack behavior of a malicious attacker who returns an incorrect response value through the error-based audit execution step (S500). This can be done at any time by any participant in the permissioned blockchain network, and it is easy to determine whether a specific participant returned a correct value or incorrect value before.

본 발명의 일 실시예에 따른 프라이버시 보존형 데이터 분석 방법에는 기존의 블록체인 시스템이 가지고 있는 속성과 마찬가지로 구성원 각각이 스마트컨트랙트와 분산 데이터베이스를 보유함으로써 단일 장애점(Single Point of Failure)을 방지하는 효과를 발휘할 수 있다.In the privacy-preserving data analysis method according to an embodiment of the present invention, as in the properties of the existing blockchain system, each member has a smart contract and a distributed database, thereby preventing a single point of failure. Can exert.

본 발명의 실시예에 따른 방법들은 다양한 컴퓨팅 장치를 통하여 수행될 수 있는 프로그램 명령(instruction) 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 특히, 본 실시예에 따른 프로그램은 PC 기반의 프로그램 또는 모바일 단말 전용의 어플리케이션으로 구성될 수 있다. 본 발명이 적용되는 애플리케이션은 파일 배포 시스템이 제공하는 파일을 통해 이용자 단말에 설치될 수 있다. 일 예로, 파일 배포 시스템은 이용자 단말이기의 요청에 따라 상기 파일을 전송하는 파일 전송부(미도시)를 포함할 수 있다.Methods according to an embodiment of the present invention may be implemented in the form of program instructions that can be executed through various computing devices and recorded in a computer-readable medium. In particular, the program according to the present embodiment may be configured as a PC-based program or an application dedicated to a mobile terminal. An application to which the present invention is applied may be installed on a user terminal through a file provided by the file distribution system. For example, the file distribution system may include a file transmission unit (not shown) that transmits the file according to the request of the user terminal.

이상에서 설명된 장치는 하드웨어 구성요소, 소프트웨어 구성요소, 및/또는 하드웨어 구성요소 및 소프트웨어구성요소의 조합으로 구현될 수 있다. 예를 들어, 실시예들에서 설명된 장치 및 구성요소는, 예를 들어, 프로세서, 콘트롤러, ALU(arithmetic logic unit), 디지털 신호 프로세서(digital signal processor), 마이크로컴퓨터, FPGA(field programmable gate array), PLU(programmable logic unit), 마이크로프로세서, 또는 명령(instruction)을 실행하고 응답할 수 있는 다른 어떠한 장치와 같이, 하나 이상의 범용 컴퓨터 또는 특수 목적컴퓨터를 이용하여 구현될 수 있다. 처리 장치는 운영 체제(OS) 및 상기 운영 체제 상에서 수행되는 하나 이상의 소프트웨어 애플리케이션을 수행할 수 있다. 또한, 처리 장치는 소프트웨어의 실행에 응답하여, 데이터를 접근, 저장, 조작, 처리 및 생성할 수도 있다. 이해의 편의를 위하여, 처리 장치는 하나가 사용되는 것으로 설명된 경우도 있지만, 해당 기술분야에서 통상의 지식을 가진 자는, 처리 장치가 복수 개의 처리 요소(processing element) 및/또는 복수 유형의 처리 요소를 포함할 수 있음을 알 수 있다. 예를 들어, 처리 장치는 복수 개의 프로세서 또는 하나의 프로세서 및 하나의 콘트롤러를 포함할 수 있다. 또한, 병렬 프로세서(parallel processor)와 같은, 다른 처리 구성(processing configuration)도 가능하다.The apparatus described above may be implemented as a hardware component, a software component, and/or a combination of a hardware component and a software component. For example, the devices and components described in the embodiments are, for example, a processor, a controller, an arithmetic logic unit (ALU), a digital signal processor, a microcomputer, a field programmable gate array (FPGA). , A programmable logic unit (PLU), a microprocessor, or any other device capable of executing and responding to instructions, such as one or more general purpose computers or special purpose computers. The processing device may execute an operating system (OS) and one or more software applications executed on the operating system. In addition, the processing device may access, store, manipulate, process, and generate data in response to the execution of software. For the convenience of understanding, although it is sometimes described that one processing device is used, one of ordinary skill in the art, the processing device is a plurality of processing elements and/or a plurality of types of processing elements. It can be seen that it may include. For example, the processing device may include a plurality of processors or one processor and one controller. In addition, other processing configurations are possible, such as a parallel processor.

소프트웨어는 컴퓨터 프로그램(computer program), 코드(code), 명령(instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로 (collectively) 처리 장치를 명령할 수 있다. 소프트웨어 및/또는 데이터는, 처리 장치에 의하여 해석되거나 처리 장치에 명령 또는 데이터를 제공하기 위하여, 어떤 유형의 기계, 구성요소(component), 물리적 장치, 가상장치(virtual equipment), 컴퓨터 저장 매체 또는 장치, 또는 전송되는 신호 파(signal wave)에 영구적으로, 또는 일시적으로 구체화(embody)될 수 있다. 소프트웨어는 네트워크로 연결된 컴퓨팅 장치 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 하나 이상의 컴퓨터 판독 가능 기록 매체에 저장될 수 있다.The software may include a computer program, code, instructions, or a combination of one or more of these, configuring the processing unit to operate as desired or processed independently or collectively. You can command the device. Software and/or data may be interpreted by a processing device or to provide instructions or data to a processing device, of any type of machine, component, physical device, virtual equipment, computer storage medium or device. , Or may be permanently or temporarily embodyed in a transmitted signal wave. The software may be distributed over networked computing devices and stored or executed in a distributed manner. Software and data may be stored on one or more computer-readable recording media.

실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 실시예의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.The method according to the embodiment may be implemented in the form of program instructions that can be executed through various computer means and recorded in a computer-readable medium. The computer-readable medium may include program instructions, data files, data structures, and the like alone or in combination. The program instructions recorded on the medium may be specially designed and configured for the embodiment, or may be known and usable to those skilled in computer software. Examples of computer-readable recording media include magnetic media such as hard disks, floppy disks, and magnetic tapes, optical media such as CD-ROMs and DVDs, and magnetic media such as floptical disks. -A hardware device specially configured to store and execute program instructions such as magneto-optical media, and ROM, RAM, flash memory, and the like. Examples of program instructions include not only machine language codes such as those produced by a compiler but also high-level language codes that can be executed by a computer using an interpreter or the like. The hardware device described above may be configured to operate as one or more software modules to perform the operation of the embodiment, and vice versa.

이상과 같이 실시예들이 비록 한정된 실시예와 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기의 기재로부터 다양한 수정 및 변형이 가능하다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다. 그러므로, 다른 구현들, 다른 실시예들 및 특허청구범위와 균등한 것들도 후술하는 특허청구범위의 범위에 속한다.As described above, although the embodiments have been described by the limited embodiments and drawings, various modifications and variations are possible from the above description by those of ordinary skill in the art. For example, the described techniques are performed in a different order from the described method, and/or components such as a system, structure, device, circuit, etc. described are combined or combined in a form different from the described method, or other components Alternatively, even if substituted or substituted by an equivalent, an appropriate result can be achieved. Therefore, other implementations, other embodiments, and claims and equivalents fall within the scope of the claims to be described later.

Claims (10)

삭제delete 삭제delete 허가형 블록체인 시스템 상에서의 프라이버시 보존형 데이터 분석 방법으로서,
상기 허가형 블록체인 시스템은,
시스템 참여자인 노드가 상기 허가형 블록체인 시스템에 접근하기 위한 클라이언트 어플리케이션;
블록체인 네트워크상의 트랜잭션이 기록되는 분산원장; 및 상기 노드 개인만이 보유하고 있는 개인데이터베이스; 를 포함하는 분산데이터베이스; 및
상기 분산원장에 대한 액세스를 제어하는 스마트컨트랙트; 를 포함하고,
상기 분산원장은,
상기 허가형 블록체인 시스템의 모든 구성원이 공유하는 공개분산원장; 및
상기 허가형 블록체인 시스템의 특정 구성원만이 공유하는 1 이상의 비밀분산원장; 을 포함하고,
상기 데이터 분석 방법은,
클라이언트 어플리케이션이 스마트컨트랙트에 데이터분석질의함수를 호출하는 질의호출단계;
상기 스마트컨트랙트가 상기 데이터분석질의함수에 기초하여 상기 분산원장에 상기 데이터분석질의함수에 대한 응답 요청을 수행하는 질의응답요청단계;
상기 분산원장이 차분 프라이버시를 적용하여 상기 데이터분석질의함수에 대한 응답 값을 반환하는 질의응답반환단계; 및
상기 스마트컨트랙트가 상기 응답 값을 분석하여 반환하는 분석결과반환단계; 를 포함하고,
상기 공개분산원장은,
상기 데이터분석질의함수에 대해 응답 값을 반환하고,
상기 비밀분산원장 및 상기 개인데이터베이스는,
상기 데이터분석질의함수에 대해 차분 프라이버시 기반의 노이즈가 추가된 응답 값을 반환하는, 프라이버시 보존형 데이터 분석 방법.
As a privacy-preserving data analysis method on a permissioned blockchain system,
The permission type blockchain system,
A client application for a node that is a system participant to access the permission type blockchain system;
Distributed ledger in which transactions on the blockchain network are recorded; And a personal database held only by the individual node. Distributed database including a; And
A smart contract for controlling access to the distributed ledger; Including,
The distributed ledger,
A public distributed ledger shared by all members of the permission type blockchain system; And
One or more secret distributed ledgers shared only by specific members of the permission type blockchain system; Including,
The data analysis method,
A query calling step in which the client application calls a data analysis query function to the smart contract;
A query response request step of the smart contract performing a response request to the data analysis query function to the distributed ledger based on the data analysis query function;
A query response return step in which the distributed ledger returns a response value to the data analysis query function by applying differential privacy; And
An analysis result return step of analyzing and returning the response value by the smart contract; Including,
The public distributed ledger,
Returns the response value for the data analysis query function,
The secret distributed ledger and the personal database,
A privacy-preserving data analysis method for returning a response value to which noise based on differential privacy is added to the data analysis query function.
청구항 3에 있어서,
상기 질의응답요청단계는,
상기 공개분산원장에 데이터분석질의함수에 대한 응답 값을 요청하는 공개분산데이터응답요청단계; 및
상기 비밀분산원장에 차분 프라이버시를 적용한 데이터분석질의함수에 대한 응답 값을 요청하는 비밀분산데이터응답요청단계; 를 포함하는, 프라이버시 보존형 데이터 분석 방법.
The method of claim 3,
The question and answer request step,
A public distributed data response request step of requesting a response value for a data analysis query function from the public distributed ledger; And
A secret distributed data response request step of requesting a response value for a data analysis query function to which differential privacy is applied to the secret distributed ledger; Containing, privacy-preserving data analysis method.
청구항 3에 있어서,
상기 비밀분산원장이 2 이상 존재하는 경우,
2 이상의 상기 비밀분산원장은 독립적으로 상기 데이터분석질의함수에 대해 차분 프라이버시 기반의 노이즈가 추가된 응답 값을 각각 반환하는, 프라이버시 보존형 데이터 분석 방법.
The method of claim 3,
If there is more than one secret distributed ledger,
At least two secret distributed ledgers independently return response values to which noise based on differential privacy is added to the data analysis query function, respectively.
청구항 3에 있어서,
상기 분석결과반환단계는,
상기 공개분산원장 상기 비밀분산원장 및 상기 개인데이터베이스가 반환한 상기 응답 값을 통합하여 데이터분석질의함수에 기초한 분석을 수행하여 분석 결과를 반환하는, 프라이버시 보존형 데이터 분석 방법.
The method of claim 3,
The analysis result return step,
A privacy-preserving data analysis method for performing an analysis based on a data analysis query function by integrating the response value returned by the public distributed ledger and the private distributed ledger and the personal database to return an analysis result.
허가형 블록체인 시스템 상에서의 프라이버시 보존형 데이터 분석 방법으로서,
상기 허가형 블록체인 시스템은,
시스템 참여자인 노드가 상기 허가형 블록체인 시스템에 접근하기 위한 클라이언트 어플리케이션;
블록체인 네트워크상의 트랜잭션이 기록되는 분산원장; 및 상기 노드 개인만이 보유하고 있는 개인데이터베이스; 를 포함하는 분산데이터베이스; 및
상기 분산원장에 대한 액세스를 제어하는 스마트컨트랙트; 를 포함하고,
상기 분산원장은,
상기 허가형 블록체인 시스템의 모든 구성원이 공유하는 공개분산원장; 및
상기 허가형 블록체인 시스템의 특정 구성원만이 공유하는 1 이상의 비밀분산원장; 을 포함하고,
상기 데이터 분석 방법은,
클라이언트 어플리케이션이 스마트컨트랙트에 데이터분석질의함수를 호출하는 질의호출단계;
상기 스마트컨트랙트가 상기 데이터분석질의함수에 기초하여 상기 분산원장에 상기 데이터분석질의함수에 대한 응답 요청을 수행하는 질의응답요청단계;
상기 분산원장이 차분 프라이버시를 적용하여 상기 데이터분석질의함수에 대한 응답 값을 반환하는 질의응답반환단계; 및
상기 스마트컨트랙트가 상기 응답 값을 분석하여 반환하는 분석결과반환단계; 를 포함하고,
상기 공개분산원장은,
상기 허가형 블록체인 시스템에서 이루어지는 트랜잭션을 저장하는 데이터공개분산원장; 및
상기 허가형 블록체인 시스템에서 이루어지는 각 라운드 별 학습의 결과물 및 최종 분산 학습 모델을 저장하는 분산학습모델공유원장; 을 포함하는, 프라이버시 보존형 데이터 분석 방법.
As a privacy-preserving data analysis method on a permissioned blockchain system,
The permission type blockchain system,
A client application for a node that is a system participant to access the permission type blockchain system;
Distributed ledger in which transactions on the blockchain network are recorded; And a personal database held only by the individual node. Distributed database including a; And
A smart contract for controlling access to the distributed ledger; Including,
The distributed ledger,
A public distributed ledger shared by all members of the permission type blockchain system; And
One or more secret distributed ledgers shared only by specific members of the permission type blockchain system; Including,
The data analysis method,
A query calling step in which the client application calls a data analysis query function to the smart contract;
A query response request step of the smart contract performing a response request to the data analysis query function to the distributed ledger based on the data analysis query function;
A query response return step in which the distributed ledger returns a response value to the data analysis query function by applying differential privacy; And
An analysis result return step of the smart contract analyzing and returning the response value; Including,
The public distributed ledger,
A data disclosure and distribution ledger that stores transactions made in the permission type blockchain system; And
A distributed learning model sharing ledger for storing a result of learning for each round and a final distributed learning model in the permissioned blockchain system; Including, privacy-preserving data analysis method.
청구항 7에 있어서,
상기 데이터 분석 방법은,
오류로그에 기초하여 악의적인 공격자의 공격 행동을 사전 방지하는 오류기반감사수행단계를 더 포함하고,
상기 분석결과반환단계는,
상기 스마트컨트랙트가 상기 응답 값을 분석하여 계산된 분산학습모델을 저장하는 분산학습모델저장단계; 및
상기 스마트컨트랙트가 상기 응답 값을 분석하여 차후 오류기반감사를 위한 오류로그를 저장하는 오류로그저장단계; 를 더 포함하는, 프라이버시 보존형 데이터 분석 방법.
The method of claim 7,
The data analysis method,
Further comprising an error-based audit execution step to prevent malicious attacker's attack behavior based on the error log,
The analysis result return step,
A distributed learning model storing step of storing the distributed learning model calculated by analyzing the response value by the smart contract; And
An error log storage step in which the smart contract analyzes the response value and stores an error log for subsequent error-based auditing; Further comprising, privacy-preserving data analysis method.
청구항 8에 있어서,
상기 분산학습모델공유원장에는,
상기 분산학습모델저장단계에서 프라이버시 보존형 분산학습 모델이 저장될 수 있는, 프라이버시 보존형 데이터 분석 방법.
The method of claim 8,
In the distributed learning model sharing ledger,
In the distributed learning model storage step, a privacy-preserving distributed learning model may be stored.
청구항 8에 있어서,
상기 오류기반감사수행단계는,
상기 클라이언트가 향후 오류기반감사를 위해 저장된 상기 오류로그를 요청하는 오류로그요청단계;
상기 분산학습모델공유원장이 상기 오류로그요청에 대한 응답 값을 반환하는 오류로그반환단계; 및
상기 클라이언트가 상기 오류로그반환단계의 응답 값에 기초하여 오류기반감사를 수행하는 감사수행단계; 를 포함하는, 프라이버시 보존형 데이터 분석 방법.
The method of claim 8,
The step of performing the error-based audit,
An error log request step in which the client requests the error log stored for future error-based auditing;
An error log return step in which the distributed learning model sharing ledger returns a response value to the error log request; And
An audit performing step in which the client performs an error-based audit based on a response value of the error log return step; Containing, privacy-preserving data analysis method.
KR1020190032442A 2018-12-20 2019-03-21 Privacy-preserving Data Analysis Method on Permissioned Blockchain System KR102149900B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
PCT/KR2019/006498 WO2020189846A1 (en) 2018-12-20 2019-05-30 Method for privacy-preserving data analysis in permissioned blockchain system

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR20180165936 2018-12-20
KR1020180165936 2018-12-20

Publications (2)

Publication Number Publication Date
KR20200077366A KR20200077366A (en) 2020-06-30
KR102149900B1 true KR102149900B1 (en) 2020-08-31

Family

ID=71121360

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190032442A KR102149900B1 (en) 2018-12-20 2019-03-21 Privacy-preserving Data Analysis Method on Permissioned Blockchain System

Country Status (2)

Country Link
KR (1) KR102149900B1 (en)
WO (1) WO2020189846A1 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102480890B1 (en) 2022-06-03 2022-12-22 가천대학교 산학협력단 The Method of Managing Health Care Information Using Permissioned Blockchain Technology
KR102486447B1 (en) 2021-12-07 2023-01-09 서울과학기술대학교 산학협력단 Data obfuscation system and method using differential privacy

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2022010297A1 (en) * 2020-07-10 2022-01-13 주식회사 미디움 Method for transmitting, by peer terminal, block data to client terminal in hyperledger fabric structure
CN112699413B (en) * 2021-01-20 2022-07-01 泉州华中科技大学智能制造研究院 Block chain system capable of protecting data security and data processing method thereof
CN113112354A (en) * 2021-03-04 2021-07-13 卓尔智联(武汉)研究院有限公司 Transaction processing method of block chain network, block chain network and storage medium
WO2022260501A1 (en) * 2021-06-11 2022-12-15 삼성전자 주식회사 Electronic device having partial ledger in blockchain network and operation method thereof
CN114531243B (en) * 2022-01-04 2024-02-09 北京理工大学 Alliance chain transaction privacy protection method based on label encryption and zero knowledge proof
KR102541464B1 (en) * 2022-03-28 2023-06-13 주식회사 소금광산 Method and system for inquiring personal data necessary for target marketing and rewardging for the inquiring

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7698250B2 (en) * 2005-12-16 2010-04-13 Microsoft Corporation Differential data privacy
WO2015090445A1 (en) * 2013-12-20 2015-06-25 Telefonaktiebolaget L M Ericsson (Publ) Method and apparatus for managing access to a database
CN106911641A (en) * 2015-12-23 2017-06-30 索尼公司 For authorizing the client terminal device for accessing, server unit and access control system
KR101946196B1 (en) * 2018-03-26 2019-02-08 그래프 블록체인 리미티드 Control system for controlling private block-chain system

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Yang, Mu, et al. "Differentially private data sharing in a cloud federation with blockchain." IEEE Cloud Computing 5.6 69-79 (2018.11.29. 공개)*
Zyskind 외 2인. "Decentralizing privacy: Using blockchain to protect personal data." 2015 IEEE Security and Privacy Workshops. (2015.05.22. 공개)*

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102486447B1 (en) 2021-12-07 2023-01-09 서울과학기술대학교 산학협력단 Data obfuscation system and method using differential privacy
KR102480890B1 (en) 2022-06-03 2022-12-22 가천대학교 산학협력단 The Method of Managing Health Care Information Using Permissioned Blockchain Technology

Also Published As

Publication number Publication date
WO2020189846A1 (en) 2020-09-24
KR20200077366A (en) 2020-06-30

Similar Documents

Publication Publication Date Title
KR102149900B1 (en) Privacy-preserving Data Analysis Method on Permissioned Blockchain System
US11451530B2 (en) Systems, methods, and apparatuses for implementing super community and community sidechains with consent management for distributed ledger technologies in a cloud based computing environment
KR102414732B1 (en) Method for managing Digital Identity based on Blockchain
Sun et al. Data security and privacy in cloud computing
US20190158594A1 (en) System and apparatus to manage data using a peer-to-peer network and the blockchain
US20190236562A1 (en) Systems, methods, and apparatuses for implementing document interface and collaboration using quipchain in a cloud based computing environment
CN107070848A (en) For analytical web applications encryption data
US11233660B2 (en) Confidential blockchain transactions
US11386232B2 (en) Distributed data management and verification
Galtier et al. Substra: a framework for privacy-preserving, traceable and collaborative machine learning
Marangappanavar et al. Inter-planetary file system enabled blockchain solution for securing healthcare records
Vegesna Incorporating Data Mining Approaches and Knowledge Discovery Process to Cloud Computing for Maximizing Security
US11663593B2 (en) Hierarchy-based blockchain
Praitheeshan et al. Private and trustworthy distributed lending model using hyperledger Besu
Han et al. Differentially private top-k query over MapReduce
KR102121147B1 (en) Method for processing transaction via external node on blockchain and apparatus for performing the method
US20200007510A1 (en) System for using metadata to identify and extract specific upstream data, provisioning data batches, and providing dynamic downstream data access
Djeddai et al. PrivyKG: Security and privacy preservation of knowledge graphs using blockchain technology
Sharma et al. A Review on Secure Data access through Multi-Keyword Searching in Cloud Storage
Chhabra et al. Blockchain, AI, and Data Protection in Healthcare: A Comparative Analysis of Two Blockchain Data Marketplaces in Relation to Fair Data Processing and the ‘Data Double-Spending’Problem
Malhotra et al. An optimized solution for ranking based on data complexity
Areekijseree et al. Secure and efficient multi-party directory publication for privacy-preserving data sharing
Chakraborty et al. BASDB: Blockchain assisted Secure Outsourced Database Search
Przytarski et al. Query Processing in Blockchain Systems: Current State and Future Challenges. Future Internet 2022, 14, 1
Rajkumar Dual Cloud Secure Keyword Search Scheme with Public Key Encryption

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant