KR20220141058A - Method for managing data, computing device for executing the method - Google Patents

Method for managing data, computing device for executing the method Download PDF

Info

Publication number
KR20220141058A
KR20220141058A KR1020210047133A KR20210047133A KR20220141058A KR 20220141058 A KR20220141058 A KR 20220141058A KR 1020210047133 A KR1020210047133 A KR 1020210047133A KR 20210047133 A KR20210047133 A KR 20210047133A KR 20220141058 A KR20220141058 A KR 20220141058A
Authority
KR
South Korea
Prior art keywords
pseudonym
verifying
user
signature
computing device
Prior art date
Application number
KR1020210047133A
Other languages
Korean (ko)
Other versions
KR102500419B1 (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 KR1020210047133A priority Critical patent/KR102500419B1/en
Publication of KR20220141058A publication Critical patent/KR20220141058A/en
Application granted granted Critical
Publication of KR102500419B1 publication Critical patent/KR102500419B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/31User authentication
    • G06F21/33User authentication using certificates
    • 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/602Providing cryptographic facilities or services
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/78Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
    • G06F21/79Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data in semiconductor storage media, e.g. directly-addressable memories
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • H04L9/0825Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) using asymmetric-key encryption or public key infrastructure [PKI], e.g. key signature or public key certificates
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/321Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving a third party or a trusted authority
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/50Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/42Anonymization, e.g. involving pseudonyms

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)

Abstract

Disclosed are a data management method and a computing device for performing the same. The computing device according to one embodiment comprises: a signature generation module that generates a signature for the user-related information based on an authenticated pseudonym; a transaction generation module that generates a transaction comprising the pseudonym and the user-related information and signature; and a communication module that posts a generated transaction to a blockchain network. Therefore, the present invention is capable of guaranteeing integrity and confidentiality.

Description

데이터 관리 방법과 이를 수행하기 위한 컴퓨팅 장치{METHOD FOR MANAGING DATA, COMPUTING DEVICE FOR EXECUTING THE METHOD}Data management method and computing device for performing the same

개시되는 실시예들은 블록체인 기반의 데이터 관리 기술에 관한 것이다.Disclosed embodiments relate to blockchain-based data management technology.

날이 갈수록 여러 분야에서 방대한 양의 데이터가 축적됨에 따라, 데이터의 무결성(Integrity)을 보증하기 위해 탈중앙화(Decentralization) 기반의 데이터 관리 기법이 각광받고 있다.As a large amount of data is accumulated in various fields day by day, a data management technique based on decentralization is in the spotlight to guarantee data integrity.

그러나, 데이터가 분산원장에 기록됨으로써 무결성은 담보된다 하더라도, 데이터의 기밀성(Confidentiality)까지 담보되는 것은 아니다. 데이터는 그 특성에 따라 접근 가능한 레벨이 다양하게 설정되어야 하기 때문에, 탈중앙화 기반의 데이터 관리에 있어서도 데이터의 무결성 뿐만 아니라 기밀성까지 달성할 수 있는 기법을 고려할 필요가 있다.However, even if the integrity of data is guaranteed by being recorded in the distributed ledger, the confidentiality of the data is not guaranteed. Since the level of access to data must be set in various ways according to its characteristics, it is necessary to consider a technique that can achieve not only data integrity but also confidentiality in data management based on decentralization.

일본 공개특허공보 제2018-020944호(2018.02.01 공개)Japanese Unexamined Patent Publication No. 2018-020944 (published on February 1, 2018)

개시되는 실시예들은 블록체인을 기반으로 탈중앙화(Decentralization)된 데이터 관리 기법에 있어서, 데이터의 기밀성을 달성하기 위한 수단을 제공하기 위한 것이다.The disclosed embodiments are intended to provide a means for achieving data confidentiality in a decentralized data management technique based on a block chain.

개시되는 일 실시예에 따른 사용자 단말로 동작되는 컴퓨팅 장치는, 하나 이상의 프로세서들, 및 하나 이상의 프로세서들에 의해 실행되는 하나 이상의 프로그램들을 저장하는 메모리를 구비하는 컴퓨팅 장치로서, 인증된 가명(Pseudonym)에 기초하여 사용자 관련 정보에 대한 서명을 생성하는 서명 생성 모듈; 가명, 사용자 관련 정보 및 서명을 포함하는 트랜잭션을 생성하는 트랜잭션 생성 모듈; 및 생성된 트랜잭션을 블록체인 망에 게시하는 통신 모듈을 포함한다.A computing device operated as a user terminal according to an embodiment of the present disclosure is a computing device having one or more processors and a memory for storing one or more programs executed by the one or more processors, and includes an authenticated pseudonym. a signature generation module for generating a signature for user-related information based on the a transaction creation module for generating a transaction including a pseudonym, user-related information, and a signature; and a communication module that posts the generated transaction to the blockchain network.

서명 생성 모듈은, 가명 및 가명에 대응되는 비밀키를 생성하고, 비밀키를 이용하여 사용자 관련 정보에 대한 서명을 생성할 수 있고, 트랜잭션 생성 모듈은, 가명, 가명에 대한 인증서, 사용자 관련 정보 및 서명을 포함하는 트랜잭션을 생성할 수 있다.The signature generation module may generate a pseudonym and a secret key corresponding to the pseudonym, and generate a signature for user related information using the secret key, and the transaction generation module may include a pseudonym, a certificate for the pseudonym, user related information and You can create a transaction that includes a signature.

가명은, 컴퓨팅 장치의 공개키일 수 있고, 가명에 대한 인증서는, 블록체인 망에 포함된 인증 기관으로부터 컴퓨팅 장치로 발급될 수 있다.The pseudonym may be a public key of the computing device, and the certificate for the pseudonym may be issued to the computing device from a certification authority included in the blockchain network.

개시되는 일 실시예에 따른 서비스 서버로 동작되는 컴퓨팅 장치는, 하나 이상의 프로세서들, 및 하나 이상의 프로세서들에 의해 실행되는 하나 이상의 프로그램들을 저장하는 메모리를 구비하는 컴퓨팅 장치로서, 블록체인 망의 블록체인을 구성하는 하나 이상의 블록 중 마지막 블록을 참조하여, 마지막 블록 내 가명(Pseudonym)의 유효성을 검증하는 가명 검증 모듈; 및 검증된 가명에 기초하여 마지막 블록 내 사용자 관련 정보의 유효성을 검증하는 사용자 관련 정보 검증 모듈을 포함한다.A computing device operating as a service server according to an embodiment of the disclosure is a computing device having one or more processors and a memory for storing one or more programs executed by the one or more processors, and is a block chain of a blockchain network. a pseudonym verification module for verifying the validity of a pseudonym in the last block by referring to a last block among one or more blocks constituting the ; and a user-related information verification module that verifies the validity of the user-related information in the last block based on the verified pseudonym.

가명 검증 모듈은, 마지막 블록의 블룸 필터(Bloom Filter)를 조회하고, 가명에 대한 블룸 필터의 조회 결과에 기초하여 가명의 유효성을 검증할 수 있다.The pseudonym verification module may query a Bloom Filter of the last block and verify the validity of the pseudonym based on the search result of the bloom filter for the pseudonym.

가명 검증 모듈은, 마지막 블록에서 가명이 포함된 트랜잭션을 탐색하고, 탐색된 트랜잭션에 포함된 가명에 대한 인증서를 검증함으로써 가명의 유효성을 검증할 수 있다.The pseudonym verification module may verify the validity of the pseudonym by searching for a transaction including the pseudonym in the last block and verifying the certificate for the pseudonym included in the searched transaction.

사용자 관련 정보는, 검증된 가명에 대응되는 비밀키로 서명될 수 있고, 사용자 관련 정보 검증 모듈은, 검증된 가명을 이용하여 마지막 블록 내 사용자 관련 정보에 대한 서명을 검증함으로써 사용자 관련 정보의 유효성을 검증할 수 있다.The user-related information may be signed with a secret key corresponding to the verified pseudonym, and the user-related information verification module verifies the validity of the user-related information by verifying the signature on the user-related information in the last block using the verified pseudonym. can do.

개시되는 일 실시예에 따라 사용자 단말에서 수행되는 데이터 관리 방법은, 하나 이상의 프로세서들, 및 하나 이상의 프로세서들에 의해 실행되는 하나 이상의 프로그램들을 저장하는 메모리를 구비하는 컴퓨팅 장치에서 수행되는 방법으로서, 인증된 가명(Pseudonym)에 기초하여 사용자 관련 정보에 대한 서명을 생성하는 단계; 가명, 사용자 관련 정보 및 서명을 포함하는 트랜잭션을 생성하는 단계; 및 생성된 트랜잭션을 블록체인 망에 게시하는 단계를 포함한다.A data management method performed in a user terminal according to an embodiment disclosed is a method performed in a computing device having one or more processors and a memory for storing one or more programs executed by the one or more processors, the authentication method comprising: generating a signature for user-related information based on the pseudonym; generating a transaction comprising a pseudonym, user-related information, and a signature; and posting the generated transaction to the blockchain network.

서명을 생성하는 단계는, 가명 및 가명에 대응되는 비밀키를 생성하는 단계; 및 비밀키를 이용하여 사용자 관련 정보에 대한 서명을 생성하는 단계를 포함할 수 있고, 트랜잭션을 생성하는 단계는, 가명, 가명에 대한 인증서, 사용자 관련 정보 및 서명을 포함하는 트랜잭션을 생성할 수 있다.The generating of the signature may include: generating a pseudonym and a secret key corresponding to the pseudonym; and generating a signature for the user-related information using the private key, wherein the generating of the transaction may include generating a transaction including a pseudonym, a certificate for the pseudonym, user-related information, and a signature. .

가명은, 컴퓨팅 장치의 공개키일 수 있고, 가명에 대한 인증서는, 블록체인 망에 포함된 인증 기관으로부터 컴퓨팅 장치로 발급될 수 있다.The pseudonym may be a public key of the computing device, and the certificate for the pseudonym may be issued to the computing device from a certification authority included in the blockchain network.

개시되는 일 실시예에 따라 서비스 서버에서 수행되는 데이터 관리 방법은, 하나 이상의 프로세서들, 및 하나 이상의 프로세서들에 의해 실행되는 하나 이상의 프로그램들을 저장하는 메모리를 구비하는 컴퓨팅 장치에서 수행되는 방법으로서, 블록체인 망의 블록체인을 구성하는 하나 이상의 블록 중 마지막 블록을 참조하여, 마지막 블록 내 가명(Pseudonym)의 유효성을 검증하는 단계; 및 검증된 가명에 기초하여 마지막 블록 내 사용자 관련 정보의 유효성을 검증하는 단계를 포함한다.According to an embodiment disclosed herein, a data management method performed in a service server is a method performed in a computing device having one or more processors and a memory storing one or more programs executed by the one or more processors, the block verifying the validity of a pseudonym in the last block by referring to the last block among one or more blocks constituting the block chain of the chain network; and verifying the validity of the user-related information in the last block based on the verified pseudonym.

가명의 유효성을 검증하는 단계는, 마지막 블록의 블룸 필터(Bloom Filter)를 조회하는 단계; 및 가명에 대한 블룸 필터의 조회 결과에 기초하여 가명의 유효성을 검증하는 단계를 포함할 수 있다.The step of verifying the validity of the pseudonym includes: querying a Bloom Filter of the last block; and verifying the validity of the pseudonym based on the search result of the bloom filter for the pseudonym.

가명의 유효성을 검증하는 단계는, 마지막 블록에서 가명이 포함된 트랜잭션을 탐색하는 단계; 및 탐색된 트랜잭션에 포함된 가명에 대한 인증서를 검증함으로써 가명의 유효성을 검증하는 단계를 포함할 수 있다.The step of verifying the validity of the pseudonym may include: searching for a transaction including the pseudonym in the last block; and verifying the validity of the pseudonym by verifying the certificate for the pseudonym included in the searched transaction.

사용자 관련 정보는, 검증된 가명에 대응되는 비밀키로 서명될 수 있고, 사용자 관련 정보의 유효성을 검증하는 단계는, 검증된 가명을 이용하여 마지막 블록 내 사용자 관련 정보에 대한 서명을 검증함으로써 사용자 관련 정보의 유효성을 검증할 수 있다.The user-related information may be signed with a secret key corresponding to the verified pseudonym, and the step of verifying the validity of the user-related information includes verifying the signature on the user-related information in the last block using the verified pseudonym. can be validated.

개시되는 다른 실시예에 따른 사용자 단말은, 하나 이상의 프로세서들, 및 하나 이상의 프로세서들에 의해 실행되는 하나 이상의 프로그램들을 저장하는 메모리를 구비하는 컴퓨팅 장치로서, 블록체인 망에 포함된 서비스 서버의 공개키를 이용하여 사용자 관련 정보에 대한 암호문을 생성하는 암호화 모듈; 인증된 가명(Pseudonym)에 기초하여 암호문에 대한 서명을 생성하는 서명 생성 모듈; 가명, 암호문 및 서명을 포함하는 트랜잭션을 생성하는 트랜잭션 생성 모듈; 및 생성된 트랜잭션을 블록체인 망에 게시하는 통신 모듈을 포함한다.A user terminal according to another disclosed embodiment is a computing device having one or more processors, and a memory for storing one or more programs executed by one or more processors, and a public key of a service server included in a blockchain network. an encryption module for generating a cipher text for user-related information using; a signature generation module for generating a signature for the ciphertext based on the authenticated pseudonym; a transaction creation module for generating a transaction including a pseudonym, a ciphertext, and a signature; and a communication module that posts the generated transaction to the blockchain network.

서명 생성 모듈은, 가명 및 가명에 대응되는 비밀키를 생성하고, 비밀키를 이용하여 암호문에 대한 서명을 생성할 수 있고, 트랜잭션 생성 모듈은, 가명, 가명에 대한 인증서, 암호문 및 서명을 포함하는 트랜잭션을 생성할 수 있다.The signature generation module may generate a pseudonym and a secret key corresponding to the pseudonym, and generate a signature for the ciphertext using the secret key, and the transaction generation module includes a pseudonym, a certificate for the pseudonym, a ciphertext and a signature. You can create a transaction.

가명은, 컴퓨팅 장치의 공개키일 수 있고, 가명에 대한 인증서는, 블록체인 망에 포함된 인증 기관으로부터 컴퓨팅 장치로 발급될 수 있다.The pseudonym may be a public key of the computing device, and the certificate for the pseudonym may be issued to the computing device from a certification authority included in the blockchain network.

개시되는 다른 실시예에 따른 서비스 서버는, 하나 이상의 프로세서들, 및 하나 이상의 프로세서들에 의해 실행되는 하나 이상의 프로그램들을 저장하는 메모리를 구비하는 컴퓨팅 장치로서, 블록체인 망의 블록체인을 구성하는 하나 이상의 블록 중 마지막 블록을 참조하여, 마지막 블록 내 가명(Pseudonym)의 유효성을 검증하는 가명 검증 모듈; 검증된 가명에 기초하여 마지막 블록 내 암호문의 유효성을 검증하는 암호문 검증 모듈; 및 컴퓨팅 장치의 비밀키로 검증된 암호문을 복호화하는 복호화 모듈을 포함하고, 암호문은, 컴퓨팅 장치의 공개키로 마지막 블록 내 사용자 관련 정보를 암호화하여 생성된 후 가명에 기초하여 서명된다.A service server according to another disclosed embodiment is a computing device including one or more processors, and a memory for storing one or more programs executed by one or more processors, and one or more components constituting a block chain of a block chain network. a pseudonym verification module for verifying the validity of a pseudonym in the last block by referring to the last block among the blocks; a ciphertext verification module for verifying the validity of the ciphertext in the last block based on the verified pseudonym; and a decryption module for decrypting the encrypted text verified with the private key of the computing device, wherein the encrypted text is generated by encrypting user-related information in the last block with the public key of the computing device and then signed based on the pseudonym.

가명 검증 모듈은, 마지막 블록의 블룸 필터(Bloom Filter)를 조회하고, 가명에 대한 블룸 필터의 조회 결과에 기초하여 가명의 유효성을 검증할 수 있다.The pseudonym verification module may query a Bloom Filter of the last block and verify the validity of the pseudonym based on the search result of the bloom filter for the pseudonym.

가명 검증 모듈은, 마지막 블록에서 가명이 포함된 트랜잭션을 탐색하고, 탐색된 트랜잭션에 포함된 가명에 대한 인증서를 검증함으로써 가명의 유효성을 검증할 수 있다.The pseudonym verification module may verify the validity of the pseudonym by searching for a transaction including the pseudonym in the last block and verifying the certificate for the pseudonym included in the searched transaction.

암호문은, 검증된 가명에 대응되는 비밀키로 서명될 수 있고, 암호문 검증 모듈은, 검증된 가명을 이용하여 마지막 블록 내 암호문에 대한 서명을 검증함으로써 암호문의 유효성을 검증할 수 있다.The ciphertext may be signed with a secret key corresponding to the verified pseudonym, and the ciphertext verification module may verify the validity of the ciphertext by verifying the signature for the ciphertext in the last block using the verified pseudonym.

개시되는 다른 실시예에 따라 사용자 단말에서 수행되는 데이터 관리 방법은, 하나 이상의 프로세서들, 및 하나 이상의 프로세서들에 의해 실행되는 하나 이상의 프로그램들을 저장하는 메모리를 구비하는 컴퓨팅 장치에서 수행되는 방법으로서, 블록체인 망에 포함된 서비스 서버의 공개키를 이용하여 사용자 관련 정보에 대한 암호문을 생성하는 단계; 인증된 가명(Pseudonym)에 기초하여 암호문에 대한 서명을 생성하는 단계; 가명, 암호문 및 서명을 포함하는 트랜잭션을 생성하는 단계; 및 생성된 트랜잭션을 블록체인 망에 게시하는 단계를 포함한다.According to another disclosed embodiment, a data management method performed in a user terminal is a method performed in a computing device including one or more processors and a memory storing one or more programs executed by the one or more processors, the block generating an encrypted text for user-related information using a public key of a service server included in a chain network; generating a signature for the ciphertext based on the authenticated pseudonym; generating a transaction comprising a pseudonym, a ciphertext and a signature; and posting the generated transaction to the blockchain network.

서명을 생성하는 단계는, 가명 및 가명에 대응되는 비밀키를 생성하는 단계; 및 비밀키를 이용하여 암호문에 대한 서명을 생성하는 단계를 포함할 수 있고, 트랜잭션을 생성하는 단계는, 가명, 가명에 대한 인증서, 암호문 및 서명을 포함하는 트랜잭션을 생성할 수 있다.The generating of the signature may include: generating a pseudonym and a secret key corresponding to the pseudonym; and generating a signature for the ciphertext by using the private key, wherein the generating of the transaction may generate a transaction including a pseudonym, a certificate for the pseudonym, a ciphertext, and a signature.

가명은, 컴퓨팅 장치의 공개키일 수 있고, 가명에 대한 인증서는, 블록체인 망에 포함된 인증 기관으로부터 컴퓨팅 장치로 발급될 수 있다.The pseudonym may be a public key of the computing device, and the certificate for the pseudonym may be issued to the computing device from a certification authority included in the blockchain network.

개시되는 다른 실시예에 따라 서비스 서버에서 수행되는 데이터 관리 방법은, 하나 이상의 프로세서들, 및 하나 이상의 프로세서들에 의해 실행되는 하나 이상의 프로그램들을 저장하는 메모리를 구비하는 컴퓨팅 장치에서 수행되는 방법으로서, 블록체인 망의 블록체인을 구성하는 하나 이상의 블록 중 마지막 블록을 참조하여, 마지막 블록 내 가명(Pseudonym)의 유효성을 검증하는 단계; 검증된 가명에 기초하여 마지막 블록 내 암호문의 유효성을 검증하는 단계; 및 컴퓨팅 장치의 비밀키로 검증된 암호문을 복호화하는 단계를 포함하고, 암호문은, 컴퓨팅 장치의 공개키로 마지막 블록 내 사용자 관련 정보를 암호화하여 생성된 후 가명에 기초하여 서명된다.According to another disclosed embodiment, a data management method performed in a service server is a method performed in a computing device having one or more processors, and a memory storing one or more programs executed by the one or more processors, comprising: verifying the validity of a pseudonym in the last block by referring to the last block among one or more blocks constituting the block chain of the chain network; verifying the validity of the ciphertext in the last block based on the verified pseudonym; and decrypting the encrypted text verified with the private key of the computing device, wherein the encrypted text is generated by encrypting the user-related information in the last block with the public key of the computing device and then signed based on the pseudonym.

가명의 유효성을 검증하는 단계는, 마지막 블록의 블룸 필터(Bloom Filter)를 조회하는 단계; 및 가명에 대한 블룸 필터의 조회 결과에 기초하여 가명의 유효성을 검증하는 단계를 포함할 수 있다.The step of verifying the validity of the pseudonym includes: querying a Bloom Filter of the last block; and verifying the validity of the pseudonym based on the search result of the bloom filter for the pseudonym.

가명의 유효성을 검증하는 단계는, 마지막 블록에서 가명이 포함된 트랜잭션을 탐색하는 단계; 및 탐색된 트랜잭션에 포함된 가명에 대한 인증서를 검증함으로써 가명의 유효성을 검증하는 단계를 포함할 수 있다.The step of verifying the validity of the pseudonym may include: searching for a transaction including the pseudonym in the last block; and verifying the validity of the pseudonym by verifying the certificate for the pseudonym included in the searched transaction.

암호문은, 검증된 가명에 대응되는 비밀키로 서명되고, 암호문의 유효성을 검증하는 단계는, 검증된 가명을 이용하여 마지막 블록 내 암호문에 대한 서명을 검증함으로써 암호문의 유효성을 검증할 수 있다.The ciphertext is signed with a secret key corresponding to the verified pseudonym, and the step of verifying the validity of the ciphertext may verify the validity of the ciphertext by verifying the signature for the ciphertext in the last block using the verified pseudonym.

개시되는 실시예들에 따르면, 블록체인을 기반으로 사용자 단말의 가명(Pseudonym)을 이용하여 탈중앙화 방식의 데이터 서비스를 제공함으로써, 서비스에 관련된 데이터의 무결성(Integrity)과 더불어 기밀성(Confidentiality)을 보증할 수 있다.According to the disclosed embodiments, by providing a data service in a decentralized manner using a pseudonym of a user terminal based on a block chain, the integrity and confidentiality of data related to the service are guaranteed. can do.

도 1은 일 실시예에 따른 데이터 관리 시스템을 설명하기 위한 블록도
도 2는 제1 실시예에 따른 사용자 단말을 설명하기 위한 블록도
도 3은 제1 실시예에 따른 서비스 서버를 설명하기 위한 블록도
도 4는 제2 실시예에 따른 사용자 단말을 설명하기 위한 블록도
도 5는 제2 실시예에 따른 서비스 서버를 설명하기 위한 블록도
도 6은 제1 실시예에 따라 사용자 단말에서 수행되는 데이터 관리 방법을 설명하기 위한 흐름도
도 7은 제1 실시예에 따라 서비스 서버에서 수행되는 데이터 관리 방법을 설명하기 위한 흐름도
도 8은 일 실시예에서 블록에 블룸 필터를 생성하는 상태를 나타내는 도면
도 9는 제2 실시예에 따라 사용자 단말에서 수행되는 데이터 관리 방법을 설명하기 위한 흐름도
도 10은 제2 실시예에 따라 서비스 서버에서 수행되는 데이터 관리 방법을 설명하기 위한 흐름도
도 11은 일 실시예에 따른 컴퓨팅 장치를 포함하는 컴퓨팅 환경을 예시하여 설명하기 위한 블록도
1 is a block diagram illustrating a data management system according to an embodiment;
2 is a block diagram illustrating a user terminal according to the first embodiment;
3 is a block diagram illustrating a service server according to the first embodiment;
4 is a block diagram illustrating a user terminal according to the second embodiment;
5 is a block diagram illustrating a service server according to the second embodiment.
6 is a flowchart illustrating a data management method performed in a user terminal according to the first embodiment;
7 is a flowchart illustrating a data management method performed in a service server according to the first embodiment;
8 is a diagram illustrating a state of creating a bloom filter in a block in an embodiment;
9 is a flowchart illustrating a data management method performed in a user terminal according to a second embodiment;
10 is a flowchart illustrating a data management method performed in a service server according to the second embodiment;
11 is a block diagram illustrating and explaining a computing environment including a computing device according to an embodiment;

이하, 도면을 참조하여 구체적인 실시형태를 설명하기로 한다. 이하의 상세한 설명은 본 명세서에서 기술된 방법, 장치 및/또는 시스템에 대한 포괄적인 이해를 돕기 위해 제공된다. 그러나 이는 예시에 불과하며 개시되는 실시예들은 이에 제한되지 않는다.Hereinafter, specific embodiments will be described with reference to the drawings. The following detailed description is provided to provide a comprehensive understanding of the methods, apparatus, and/or systems described herein. However, this is merely an example and the disclosed embodiments are not limited thereto.

실시예들을 설명함에 있어서, 관련된 공지기술에 대한 구체적인 설명이 개시되는 실시예들의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략하기로 한다. 그리고, 후술되는 용어들은 개시되는 실시예들에서의 기능을 고려하여 정의된 용어들로서 이는 사용자, 운용자의 의도 또는 관례 등에 따라 달라질 수 있다. 그러므로 그 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다. 상세한 설명에서 사용되는 용어는 단지 실시예들을 기술하기 위한 것이며, 결코 제한적이어서는 안 된다. 명확하게 달리 사용되지 않는 한, 단수 형태의 표현은 복수 형태의 의미를 포함한다. 본 설명에서, "포함" 또는 "구비"와 같은 표현은 어떤 특성들, 숫자들, 단계들, 동작들, 요소들, 이들의 일부 또는 조합을 가리키기 위한 것이며, 기술된 것 이외에 하나 또는 그 이상의 다른 특성, 숫자, 단계, 동작, 요소, 이들의 일부 또는 조합의 존재 또는 가능성을 배제하도록 해석되어서는 안 된다.In describing the embodiments, if it is determined that a detailed description of a related known technology may unnecessarily obscure the gist of the disclosed embodiments, the detailed description thereof will be omitted. And, the terms to be described later are terms defined in consideration of functions in the disclosed embodiments, which may vary according to intentions or customs of users and operators. Therefore, the definition should be made based on the content throughout this specification. The terminology used in the detailed description is for the purpose of describing the embodiments only, and should in no way be limiting. Unless explicitly used otherwise, expressions in the singular include the meaning of the plural. In this description, expressions such as “comprising” or “comprising” are intended to indicate certain features, numbers, steps, acts, elements, some or a combination thereof, one or more other than those described. It should not be construed to exclude the presence or possibility of other features, numbers, steps, acts, elements, or any part or combination thereof.

이하의 설명에 있어서, 신호 또는 정보의 "전송", "통신", "송신", "수신" 기타 이와 유사한 의미의 용어는 일 구성요소에서 다른 구성요소로 신호 또는 정보가 직접 전달되는 것뿐만이 아니라 다른 구성요소를 거쳐 전달되는 것도 포함한다.In the following description, the terms "transmission", "communication", "transmission", "reception" and other similar meanings of a signal or information are not only directly transmitted from one component to another component, but also a signal or information This includes passing through other components.

특히 신호 또는 정보를 일 구성요소로 "전송" 또는 "송신"한다는 것은 그 신호 또는 정보의 최종 목적지를 지시하는 것이고 직접적인 목적지를 의미하는 것이 아니다. 이는 신호 또는 정보의 "수신"에 있어서도 동일하다. 또한 본 명세서에 있어서, 2 이상의 데이터 또는 정보가 "관련"된다는 것은 하나의 데이터(또는 정보)를 획득하면, 그에 기초하여 다른 데이터(또는 정보)의 적어도 일부를 획득할 수 있음을 의미한다.In particular, to “transmit” or “transmit” a signal or information to a component indicates the final destination of the signal or information and does not imply a direct destination. The same is true for "reception" of signals or information. In addition, in this specification, when two or more data or information are "related", it means that when one data (or information) is acquired, at least a part of other data (or information) can be acquired based thereon.

또한, 제1, 제2 등의 용어는 다양한 구성 요소들을 설명하는데 사용될 수 있지만, 상기 구성 요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성 요소를 다른 구성 요소로부터 구별하는 목적으로 사용될 수 있다.Also, terms such as first and second may be used to describe various components, but the components should not be limited by the terms. The above terms may be used for the purpose of distinguishing one component from another.

예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제1 구성 요소는 제2 구성 요소로 명명될 수 있고, 유사하게 제2 구성 요소도 제1 구성 요소로 명명될 수 있다.For example, without departing from the scope of the present invention, a first component may be referred to as a second component, and similarly, the second component may also be referred to as a first component.

도 1은 일 실시예에 따른 데이터 관리 시스템(100)을 설명하기 위한 블록도이다.1 is a block diagram illustrating a data management system 100 according to an embodiment.

도시된 바와 같이, 일 실시예에 따른 데이터 관리 시스템(100)은 사용자 단말(110), 서비스 서버(120), 인증 기관(130) 및 마이너 노드(140)를 포함한다. 사용자 단말(110)은 서비스 서버(120), 인증 기관(130) 및 마이너 노드(140)와 통신 네트워크(150)를 통해 상호 통신 가능하게 연결된다.As shown, the data management system 100 according to an embodiment includes a user terminal 110 , a service server 120 , a certification authority 130 , and a minor node 140 . The user terminal 110 is communicatively connected to the service server 120 , the certification authority 130 , and the minor node 140 through the communication network 150 .

몇몇 실시예들에서, 통신 네트워크(150)는 인터넷, 하나 이상의 로컬 영역 네트워크(local area networks), 광역 네트워크(wire area networks), 셀룰러 네트워크, 모바일 네트워크, 그 밖에 다른 종류의 네트워크들, 또는 이러한 네트워크들의 조합을 포함할 수 있다.In some embodiments, communication network 150 is the Internet, one or more local area networks, wire area networks, cellular networks, mobile networks, other types of networks, or such networks. may include combinations of these.

도시된 실시예에서, 각 구성들은 이하에 기술된 것 이외에 상이한 기능 및 능력을 가질 수 있고, 이하에 기술된 것 이외에도 추가적인 구성을 포함할 수 있다. In the illustrated embodiment, each of the components may have different functions and capabilities other than those described below, and may include additional components in addition to those described below.

또한, 일 실시예에서, 서비스 서버(120), 인증 기관(130) 및 마이너 노드(140)는 물리적으로 구분된 하나 이상의 장치를 이용하여 구현되거나, 하나 이상의 프로세서 또는 하나 이상의 프로세서 및 소프트웨어의 결합에 의해 구현될 수 있으며, 도시된 예와 달리 구체적 동작에 있어 명확히 구분되지 않을 수 있다.Also, in one embodiment, the service server 120, the certification authority 130, and the minor node 140 are implemented using one or more physically separate devices, or one or more processors or one or more processors and a combination of software. may be implemented, and unlike the illustrated example, specific operations may not be clearly distinguished.

한편 개시되는 실시예에서, 블록체인은 프라이빗(Private) 블록체인일 수 있으나, 이에 한정되는 것은 아니며, 퍼블릭(Public) 블록체인 또는 컨소시움(Consortium) 블록체인일 수도 있다.Meanwhile, in the disclosed embodiment, the block chain may be a private block chain, but is not limited thereto, and may be a public block chain or a consortium block chain.

사용자 단말(110)은 사용자 관련 정보를 포함하여 트랜잭션(Transaction)을 생성할 수 있다. 이하의 실시예들에서, '사용자 관련 정보'는 일련의 서비스와 관련된 사용자의 입력 정보를 포함할 수 있으며, 예를 들어 상품 또는 서비스와 관련된 리뷰 정보, 온라인 게시판에 쓰여지는 게시물 정보, 온라인 설문 조사와 관련된 응답 정보, 온라인 상담과 관련된 증상 정보 등을 포함할 수 있으나, 이에 한정되는 것은 아니며 사용자가 향유하는 상품 또는 서비스의 종류에 따라 다양한 정보가 포함될 수 있다. 이때, 사용자가 향유하는 일련의 서비스는 서비스 서버(120)에 의해 블록체인 망에서 제공되는 서비스일 수 있다.The user terminal 110 may generate a transaction including user-related information. In the following embodiments, 'user-related information' may include user input information related to a series of services, for example, product or service-related review information, post information written on an online bulletin board, and online survey. It may include response information related to , symptom information related to online counseling, etc., but is not limited thereto, and various information may be included depending on the type of product or service that the user enjoys. In this case, the series of services enjoyed by the user may be services provided in the blockchain network by the service server 120 .

서비스 서버(120)는 블록체인 망을 통해 사용자 단말(110)에 데이터 관리 서비스를 제공하는 장치를 의미한다. 이하의 실시예들에서, 데이터 관리 서비스라 함은 사용자 단말(110)이 블록체인 망에 개시하는 데이터를 블록체인을 구성하는 노드(Node) 사이에서 공유하되, 사용자 단말(110)이 블록체인 망에 개시하는 데이터로부터 사용자 단말(110)을 식별할 수 있는 '공개 데이터 서비스'와, 사용자 단말(110)이 블록체인 망에 개시하는 데이터로부터 사용자 단말(110)을 식별할 수 없는 '비공개 데이터 서비스'를 포함한다.The service server 120 refers to a device that provides a data management service to the user terminal 110 through a block chain network. In the following embodiments, the data management service means that the data that the user terminal 110 initiates in the block chain network is shared among the nodes constituting the block chain, but the user terminal 110 is the block chain network A 'public data service' that can identify the user terminal 110 from data disclosed in ' includes

일 실시예에 따르면, 서비스 서버(120)는 블록체인 망에서 풀 노드(Full node)로 동작할 수 있으나, 이에 한정되는 것은 아니며, 실시예에 따라서는 후술할 마이너 노드(140)를 겸하여 동작할 수도 있다.According to an embodiment, the service server 120 may operate as a full node in the block chain network, but is not limited thereto, and may operate as a minor node 140 to be described later depending on the embodiment. may be

인증 기관(130)은 사용자 단말(110)이 생성하는 가명(Pseudonym)에 대해 인증서를 발급하는 장치를 의미한다. 일 실시예에서, 도시된 블록체인 망이 프라이빗 블록체인을 기반으로 하는 경우, 인증 기관(130)은 블록체인 망을 구성하는 참여자가 사전 등록된 참여자인지 검증하기 위한 인증서를 발급할 수도 있다.The certification authority 130 refers to a device that issues a certificate for a pseudonym generated by the user terminal 110 . In an embodiment, when the illustrated block chain network is based on a private block chain, the certification authority 130 may issue a certificate for verifying whether a participant constituting the block chain network is a pre-registered participant.

일 실시예에 따르면, 인증 기관(130)은 사용자 단말과 상호 간 블라인드 서명을 수행함으로써 가명에 대한 인증서를 발급할 수 있다. 예시적으로, 상세한 발급 과정은 다음과 같이 진행될 수 있다.According to an embodiment, the certification authority 130 may issue a certificate for the pseudonym by performing blind signing with the user terminal. Illustratively, the detailed issuance process may proceed as follows.

(1) 인증 기관(130)은 사전 정의된 블라인드 서명 키 생성 알고리즘을 실행하고, 이에 따라 공개 검증키(cvk)와 개인 서명키(csk)를 획득(1) The certification authority 130 executes a predefined blind signing key generation algorithm, thereby obtaining a public verification key (cvk) and a private signing key (csk)

(2) 인증 기관(130)은 cvk를 블록체인 망에 공개하고, csk를 비밀로 유지(2) The certification authority 130 discloses cvk to the blockchain network and keeps csk secret

(3) 인증 기관(130) 및 인증 기관(130)에 대해 인증된 사용자 단말(110)이 인증할 가명의 수 v에 동의(3) Agree on the number of pseudonyms v to be authenticated by the certification authority 130 and the user terminal 110 authenticated to the certification authority 130

(4) 인증 기관(130)은 사용자 단말(110)이 선택한 가명 pk에 대해, 사용자 단말(110)을 수신자(receiver)로 하고, 인증 기관(130)을 서명자(signer)로 하여 인증서 s를 발급(4) The certification authority 130 issues a certificate s with the user terminal 110 as a receiver and the certification authority 130 as a signer for the pseudonym pk selected by the user terminal 110

(5) 인증할 가명들 중 나머지 가명 각각에 대해 (4)의 과정을 반복(5) Repeat the process of (4) for each of the remaining pseudonyms among the pseudonyms to be authenticated.

일 실시예에 따르면, 인증 기관(130)은 블록체인 망에서 풀 노드(Full node)로 동작할 수 있으나, 이에 한정되는 것은 아니며, 실시예에 따라서는 후술할 마이너 노드(140)를 겸하여 동작할 수도 있다.According to an embodiment, the certification authority 130 may operate as a full node in the block chain network, but is not limited thereto. may be

마이너 노드(140)는 블록체인 상에서 유효성이 검증된 트랜잭션을 블록에 기록하여 공유하는 작업을 수행하는 장치를 의미한다.The minor node 140 refers to a device that records and shares a transaction validated on the block chain in a block.

구체적으로, 마이너 노드(140)는 블록체인 망에서 각 사용자 단말(110)들이 전송하는 트랜잭션들을 수집하여 블록을 생성할 수 있으며, 생성한 블록을 블록체인에 연결할 수 있다.Specifically, the minor node 140 may generate a block by collecting transactions transmitted by each user terminal 110 in the block chain network, and may connect the generated block to the block chain.

일 실시예에 따르면, 마이너 노드(140)는 블록을 구성하는 각 트랜잭션에 포함된 사용자 관련 정보와 가명을 이용하여 블룸 필터(Bloom Filter)를 생성할 수 있다. 즉, 마이너 노드(140)는 각 트랜잭션에 포함된 사용자 관련 정보 및 가명을 블룸 필터의 멤버(Member)로 하여 블룸 필터를 생성할 수 있다. 이때, 블룸 필터는 소정 멤버가 집합에 속하는지 여부를 검사하기 위해 사용되는 확률적 자료 구조를 의미할 수 있다. 이와 관련해서는, 이하의 도 8을 참조하여 후술하기로 한다.According to an embodiment, the minor node 140 may generate a Bloom Filter by using user-related information and pseudonyms included in each transaction constituting the block. That is, the minor node 140 may create a bloom filter by using user-related information and pseudonyms included in each transaction as members of the bloom filter. In this case, the bloom filter may mean a probabilistic data structure used to check whether a predetermined member belongs to a set. In this regard, it will be described later with reference to FIG. 8 .

도 2는 제1 실시예에 따른 사용자 단말(110)을 설명하기 위한 블록도이다.2 is a block diagram illustrating the user terminal 110 according to the first embodiment.

도시된 바와 같이, 제1 실시예에 따른 사용자 단말(110)은 서명 생성 모듈(111), 트랜잭션 생성 모듈(113) 및 통신 모듈(115)을 포함한다.As shown, the user terminal 110 according to the first embodiment includes a signature generation module 111 , a transaction generation module 113 , and a communication module 115 .

도시된 실시예에서, 각 구성들은 이하에 기술된 것 이외에 상이한 기능 및 능력을 가질 수 있고, 이하에 기술된 것 이외에도 추가적인 구성을 포함할 수 있다. In the illustrated embodiment, each of the components may have different functions and capabilities other than those described below, and may include additional components in addition to those described below.

또한, 일 실시예에서, 서명 생성 모듈(111), 트랜잭션 생성 모듈(113) 및 통신 모듈(115)은 물리적으로 구분된 하나 이상의 장치를 이용하여 구현되거나, 하나 이상의 프로세서 또는 하나 이상의 프로세서 및 소프트웨어의 결합에 의해 구현될 수 있으며, 도시된 예와 달리 구체적 동작에 있어 명확히 구분되지 않을 수 있다.In addition, in one embodiment, the signature generation module 111 , the transaction generation module 113 and the communication module 115 are implemented using one or more physically separated devices, or one or more processors or one or more processors and software. It may be implemented by combination, and unlike the illustrated example, it may not be clearly distinguished in specific operation.

서명 생성 모듈(111)은 인증된 가명(Pseudonym)에 기초하여 사용자 관련 정보에 대한 서명을 생성한다.The signature generation module 111 generates a signature for user-related information based on the authenticated pseudonym.

일 실시예에 따르면, '가명'은 사용자 단말(110)과 일대일 대응되는 사용자 단말(110)의 공개키일 수 있다.According to an embodiment, the 'pseudonym' may be a public key of the user terminal 110 and one-to-one correspondence with the user terminal 110 .

일 실시예에 따르면, 서명 생성 모듈(111)은 가명 및 가명에 대응되는 비밀키를 생성하고, 비밀키를 이용하여 사용자 관련 정보에 대한 서명을 생성할 수 있다.According to an embodiment, the signature generation module 111 may generate a pseudonym and a secret key corresponding to the pseudonym, and generate a signature for user related information using the secret key.

트랜잭션 생성 모듈(113)은 가명, 사용자 관련 정보 및 서명을 포함하는 트랜잭션을 생성한다.The transaction creation module 113 generates a transaction including a pseudonym, user-related information, and a signature.

일 실시예에 따르면, 트랜잭션 생성 모듈(113)은 통신 모듈(115)을 통해 획득한 가명에 대한 인증서를 부가하여, 가명, 가명에 대한 인증서, 사용자 관련 정보 및 서명을 포함하는 트랜잭션을 생성할 수 있다.According to an embodiment, the transaction generating module 113 may generate a transaction including a pseudonym, a certificate for the pseudonym, user-related information, and a signature by adding the certificate for the pseudonym obtained through the communication module 115 . have.

이때, '가명에 대한 인증서'는 블록체인 망에 포함된 인증 기관(130)으로부터 사용자 단말(110)로 발급되는 인증서일 수 있다.In this case, the 'certificate for the pseudonym' may be a certificate issued to the user terminal 110 from the certification authority 130 included in the block chain network.

통신 모듈(115)은 생성된 트랜잭션을 블록체인 망에 게시한다.The communication module 115 posts the generated transaction to the blockchain network.

일 실시예에 따르면, 통신 모듈(115)은 블록체인 망을 통해 가명에 대한 인증서를 획득할 수 있다.According to an embodiment, the communication module 115 may obtain a certificate for a pseudonym through a blockchain network.

한편, 일 실시예에 따르면, 제1 실시예에 따른 사용자 단말(110)은 서비스 서버(120)로부터 제공받는 서비스에 대한 비용을 지불하기 위한 결제 모듈(미도시)을 더 포함할 수 있다.Meanwhile, according to an embodiment, the user terminal 110 according to the first embodiment may further include a payment module (not shown) for paying for a service provided from the service server 120 .

구체적으로, 결제 모듈(미도시)은 사용자 단말(110)이 인증 기관(130)으로부터 가명에 대한 인증서를 획득하는 경우, 해당 인증서에 지정된 가격만큼의 비용을 서비스 서버(120)에 지불할 수 있다.Specifically, when the user terminal 110 obtains a certificate for a pseudonym from the certification authority 130, the payment module (not shown) may pay the service server 120 a cost corresponding to the price specified in the certificate. .

더욱 상세하게, 결제 모듈(미도시)은 비용을 지불함에 있어서, 블록체인 망에서 서비스에 대한 비용 지불 수단으로 설정, 유통되는 토큰(token)으로 상기 비용을 지불할 수 있다. 예를 들어, 결제 모듈(미도시)은 블록체인 망에서 사용되는 암호화폐로 상기 비용을 지불할 수 있다.In more detail, the payment module (not shown) may pay the cost with a token set and distributed as a payment means for a service in the block chain network when paying the cost. For example, the payment module (not shown) may pay the above cost with cryptocurrency used in the blockchain network.

이때, 가명에 대한 인증서에 지정된 가격은 정적 가격 측정(Static pricing)에 따라 고정된 값을 가질 수도 있고, 동적 가격 측정(Dynamic pricing)에 따라 기 설정된 단위 시간마다 새로이 책정되는 값을 가질 수도 있다.In this case, the price specified in the certificate for the pseudonym may have a fixed value according to static pricing, or may have a value newly set every preset unit time according to dynamic pricing.

한편, 이상의 결제 모듈(미도시)과 관련된 실시예는 후술할 제2 실시예에서도 적용될 수 있다.Meanwhile, the embodiment related to the above payment module (not shown) may also be applied to the second embodiment to be described later.

도 3은 제1 실시예에 따른 서비스 서버(120)를 설명하기 위한 블록도이다.3 is a block diagram illustrating the service server 120 according to the first embodiment.

도시된 바와 같이, 제1 실시예에 따른 서비스 서버(120)는 가명 검증 모듈(121) 및 사용자 관련 정보 검증 모듈(123)을 포함한다.As shown, the service server 120 according to the first embodiment includes a pseudonym verification module 121 and a user-related information verification module 123 .

도시된 실시예에서, 각 구성들은 이하에 기술된 것 이외에 상이한 기능 및 능력을 가질 수 있고, 이하에 기술된 것 이외에도 추가적인 구성을 포함할 수 있다. In the illustrated embodiment, each of the components may have different functions and capabilities other than those described below, and may include additional components in addition to those described below.

또한, 일 실시예에서, 가명 검증 모듈(121) 및 사용자 관련 정보 검증 모듈(123)은 물리적으로 구분된 하나 이상의 장치를 이용하여 구현되거나, 하나 이상의 프로세서 또는 하나 이상의 프로세서 및 소프트웨어의 결합에 의해 구현될 수 있으며, 도시된 예와 달리 구체적 동작에 있어 명확히 구분되지 않을 수 있다.In addition, in one embodiment, the pseudonym verification module 121 and the user-related information verification module 123 are implemented using one or more physically separated devices, or implemented by one or more processors or a combination of one or more processors and software. may be, and unlike the illustrated example, it may not be clearly distinguished in a specific operation.

가명 검증 모듈(121)은 블록체인 망의 블록체인을 구성하는 하나 이상의 블록 중 마지막 블록을 참조하여, 마지막 블록 내 가명의 유효성을 검증한다.The pseudonym verification module 121 refers to the last block among one or more blocks constituting the block chain of the block chain network, and verifies the validity of the pseudonym in the last block.

일 실시예에 따르면, 가명 검증 모듈(121)은 마지막 블록의 블룸 필터를 조회하고, 검증 대상인 가명에 대한 블룸 필터의 조회 결과에 기초하여 해당 가명의 유효성을 검증할 수 있다.According to an embodiment, the pseudonym verification module 121 may inquire the Bloom filter of the last block and verify the validity of the pseudonym based on the result of the inquiry of the bloom filter for the pseudonym to be verified.

구체적으로, 가명 검증 모듈(121)은 마지막 블록의 블룸 필터를 조회한 결과, 블룸 필터가 검증 대상인 가명에 대해 예(Yes)를 보고하면 해당 가명을 유효한 것으로 판단할 수 있다.Specifically, the pseudonym verification module 121 may determine that the pseudonym is valid if, as a result of querying the Bloom filter of the last block, the Bloom filter reports Yes for the pseudonym to be verified.

한편, 가명 검증 모듈(121)은 마지막 블록의 블룸 필터를 조회한 결과, 블룸 필터가 검증 대상인 가명에 대해 아니오(No)를 보고하면 해당 가명을 유효하지 않은 것으로 판단할 수 있다.Meanwhile, the pseudonym verification module 121 may determine that the pseudonym is invalid if, as a result of inquiring the Bloom filter of the last block, the Bloom filter reports No for the pseudonym to be verified.

다른 실시예에 따르면, 가명 검증 모듈(121)은 마지막 블록에서 검증 대상인 가명이 포함된 트랜잭션을 탐색하고, 탐색된 트랜잭션에 포함된 검증 대상인 가명에 대한 인증서를 검증함으로써 해당 가명의 유효성을 검증할 수 있다.According to another embodiment, the pseudonym verification module 121 can verify the validity of the pseudonym by searching for a transaction including the pseudonym to be verified in the last block and verifying the certificate for the pseudonym as the verification target included in the searched transaction. have.

구체적으로, 가명 검증 모듈(121)은 인증 기관(130)에 의해 생성된 공개키로 검증 대상인 가명에 대한 인증서를 검증할 수 있다.Specifically, the pseudonym verification module 121 may verify the certificate for the pseudonym to be verified with the public key generated by the certification authority 130 .

또 다른 실시예에 따르면, 가명 검증 모듈(121)은 상술한 각 실시예의 '블룸 필터를 조회하는 방식'과 '가명에 대한 인증서를 검증하는 방식'을 모두 사용하여 가명의 유효성을 검증할 수도 있다. 예를 들어, 가명 검증 모듈(121)은 '블룸 필터를 조회하는 방식'을 적용한 후, 블룸 필터의 조회 결과가 예(Yes)인 경우에 '가명에 대한 인증서를 검증하는 방식'을 사용할 수도 있다.According to another embodiment, the pseudonym verification module 121 may verify the validity of the pseudonym by using both the 'method of inquiring the bloom filter' and the 'method of verifying the certificate for the pseudonym' of each of the above-described embodiments. . For example, the pseudonym verification module 121 may use the 'method of verifying the certificate for the pseudonym' when the 'Bloom filter inquiry method' is applied and the result of the Bloom filter inquiry is Yes. .

사용자 관련 정보 검증 모듈(123)은 검증된 가명에 기초하여 마지막 블록 내 사용자 관련 정보의 유효성을 검증한다.The user-related information verification module 123 verifies the validity of the user-related information in the last block based on the verified pseudonym.

일 실시예에 따르면, 사용자 관련 정보는 가명 검증 모듈(121)에 의해 검증된 가명에 대응되는 비밀키로 서명될 수 있고, 사용자 관련 정보 검증 모듈(123)은 검증된 가명을 이용하여 마지막 블록 내 사용자 관련 정보에 대한 서명을 검증함으로써 해당 사용자 관련 정보의 유효성을 검증할 수 있다.According to an embodiment, the user-related information may be signed with a secret key corresponding to the pseudonym verified by the pseudonym verification module 121, and the user-related information verification module 123 uses the verified pseudonym to display the user in the last block. By verifying the signature on the relevant information, the validity of the corresponding user-related information can be verified.

즉 다시 말하면, 사용자 관련 정보 검증 모듈(123)은 검증된 가명이 사용자 관련 정보의 서명에 사용된 비밀키에 대응되는 공개키인 경우, 해당 사용자 관련 정보가 유효한 것으로 판단할 수 있다.In other words, when the verified pseudonym is a public key corresponding to the private key used to sign the user-related information, the user-related information verification module 123 may determine that the corresponding user-related information is valid.

이로써, 제1 실시예에 따라 유효한 것으로 검증된 사용자 관련 정보는 서비스 서버(120)가 제공하는 서비스에 이용될 때, 해당 사용자 관련 정보와 대응되는 가명과 함께 블록체인 망 하에서 공개될 수 있다.Accordingly, when the user-related information verified as valid according to the first embodiment is used for the service provided by the service server 120, the user-related information and the corresponding pseudonym may be disclosed under the blockchain network.

도 4는 제2 실시예에 따른 사용자 단말(110)을 설명하기 위한 블록도이다.4 is a block diagram illustrating the user terminal 110 according to the second embodiment.

도시된 바와 같이, 제2 실시예에 따른 사용자 단말(110)은 서명 생성 모듈(111), 트랜잭션 생성 모듈(113), 통신 모듈(115) 및 암호화 모듈(117)을 포함한다.As shown, the user terminal 110 according to the second embodiment includes a signature generation module 111 , a transaction generation module 113 , a communication module 115 , and an encryption module 117 .

도시된 실시예에서, 각 구성들은 이하에 기술된 것 이외에 상이한 기능 및 능력을 가질 수 있고, 이하에 기술된 것 이외에도 추가적인 구성을 포함할 수 있다. In the illustrated embodiment, each of the components may have different functions and capabilities other than those described below, and may include additional components in addition to those described below.

또한, 일 실시예에서, 서명 생성 모듈(111), 트랜잭션 생성 모듈(113), 통신 모듈(115) 및 암호화 모듈(117)은 물리적으로 구분된 하나 이상의 장치를 이용하여 구현되거나, 하나 이상의 프로세서 또는 하나 이상의 프로세서 및 소프트웨어의 결합에 의해 구현될 수 있으며, 도시된 예와 달리 구체적 동작에 있어 명확히 구분되지 않을 수 있다.Further, in one embodiment, the signature generation module 111 , the transaction generation module 113 , the communication module 115 , and the encryption module 117 are implemented using one or more physically separated devices, or one or more processors or It may be implemented by a combination of one or more processors and software, and unlike the illustrated example, specific operations may not be clearly distinguished.

암호화 모듈(117)은 블록체인 망에 포함된 서비스 서버(120)의 공개키를 이용하여 사용자 관련 정보에 대한 암호문을 생성한다.The encryption module 117 generates an encrypted text for user-related information using the public key of the service server 120 included in the block chain network.

즉 다시 말하면, 암호화 모듈(117)은 사용자 관련 정보를 처리하는 엔티티(Entity)인 서비스 서버(120)의 공개키로 사용자 관련 정보를 암호화함으로써, 서비스 서버(120) 및 인증 기관(130)이 사용자 단말(110)과 가명 사이의 연관 관계를 식별할 수 없도록 할 수 있다.In other words, the encryption module 117 encrypts the user-related information with the public key of the service server 120, which is an entity that processes user-related information, so that the service server 120 and the authentication authority 130 are connected to the user terminal. The association between (110) and the pseudonym may not be discernable.

이로써, 제2 실시예에 따르면, 추후 유효한 것으로 검증된 사용자 관련 정보가 서비스 서버(120)가 제공하는 서비스에 이용되더라도, 블록체인 망에 포함된 각 주체들은 해당 사용자 관련 정보 및 가명을 통해 대응되는 사용자 단말을 식별할 수 없게 되어, 사용자 단말(110)의 프라이버시(Privacy)가 유지될 수 있다.Accordingly, according to the second embodiment, even if the user-related information verified to be valid later is used for the service provided by the service server 120, each subject included in the block chain network corresponds to the user-related information and the pseudonym. Since the user terminal cannot be identified, the privacy of the user terminal 110 may be maintained.

서명 생성 모듈(111)은 인증된 가명에 기초하여 암호문에 대한 서명을 생성한다.The signature generation module 111 generates a signature for the encrypted text based on the authenticated pseudonym.

일 실시예에 따르면, 서명 생성 모듈(111)은 가명 및 가명에 대응되는 비밀키를 생성하고, 생성된 비밀키를 이용하여 암호문에 대한 서명을 생성할 수 있다.According to an embodiment, the signature generation module 111 may generate a pseudonym and a secret key corresponding to the pseudonym, and generate a signature for the encrypted text using the generated secret key.

트랜잭션 생성 모듈(113)은 가명, 암호문 및 암호문에 대한 서명을 포함하는 트랜잭션을 생성한다.The transaction creation module 113 generates a transaction including a pseudonym, a ciphertext, and a signature for the ciphertext.

일 실시예에 따르면, 트랜잭션 생성 모듈(113)은 가명, 가명에 대한 인증서, 암호문 및 암호문에 대한 서명을 포함하는 트랜잭션을 생성할 수 있다.According to an embodiment, the transaction generation module 113 may generate a transaction including a pseudonym, a certificate for the pseudonym, a ciphertext, and a signature for the ciphertext.

통신 모듈(115)은 생성된 트랜잭션을 블록체인 망에 게시한다.The communication module 115 posts the generated transaction to the blockchain network.

일 실시예에 따르면, 통신 모듈(115)은 블록체인 망을 통해 가명에 대한 인증서를 획득할 수 있다.According to an embodiment, the communication module 115 may obtain a certificate for a pseudonym through a blockchain network.

이때, 가명에 대한 인증서는 블록체인 망에 포함된 인증 기관으로부터 사용자 단말(110)로 발급될 수 있다.In this case, the certificate for the pseudonym may be issued to the user terminal 110 from a certification authority included in the block chain network.

도 5는 제2 실시예에 따른 서비스 서버(120)를 설명하기 위한 블록도이다.5 is a block diagram illustrating the service server 120 according to the second embodiment.

도시된 바와 같이, 제2 실시예에 따른 서비스 서버(120)는 가명 검증 모듈(121), 암호문 검증 모듈(125) 및 복호화 모듈(127)을 포함한다.As shown, the service server 120 according to the second embodiment includes a pseudonym verification module 121 , a ciphertext verification module 125 , and a decryption module 127 .

도시된 실시예에서, 각 구성들은 이하에 기술된 것 이외에 상이한 기능 및 능력을 가질 수 있고, 이하에 기술된 것 이외에도 추가적인 구성을 포함할 수 있다. In the illustrated embodiment, each of the components may have different functions and capabilities other than those described below, and may include additional components in addition to those described below.

또한, 일 실시예에서, 가명 검증 모듈(121), 암호문 검증 모듈(125) 및 복호화 모듈(127)은 물리적으로 구분된 하나 이상의 장치를 이용하여 구현되거나, 하나 이상의 프로세서 또는 하나 이상의 프로세서 및 소프트웨어의 결합에 의해 구현될 수 있으며, 도시된 예와 달리 구체적 동작에 있어 명확히 구분되지 않을 수 있다.Further, in one embodiment, the pseudonym verification module 121, the ciphertext verification module 125 and the decryption module 127 are implemented using one or more physically separated devices, or one or more processors or one or more processors and software. It may be implemented by combination, and unlike the illustrated example, it may not be clearly distinguished in specific operation.

가명 검증 모듈(121)은 블록체인 망의 블록체인을 구성하는 하나 이상의 블록 중 마지막 블록을 참조하여, 마지막 블록 내 가명의 유효성을 검증한다.The pseudonym verification module 121 refers to the last block among one or more blocks constituting the block chain of the block chain network, and verifies the validity of the pseudonym in the last block.

일 실시예에 따르면, 가명 검증 모듈(121)은 마지막 블록의 블룸 필터를 조회하고, 검증 대상인 가명에 대한 블룸 필터의 조회 결과에 기초하여 해당 가명의 유효성을 검증할 수 있다.According to an embodiment, the pseudonym verification module 121 may inquire the Bloom filter of the last block and verify the validity of the pseudonym based on the result of the inquiry of the bloom filter for the pseudonym to be verified.

다른 실시예에 따르면, 가명 검증 모듈(121)은 마지막 블록에서 검증 대상인 가명이 포함된 트랜잭션을 탐색하고, 탐색된 트랜잭션에 포함된 검증 대상인 가명에 대한 인증서를 검증함으로써 해당 가명의 유효성을 검증할 수 있다.According to another embodiment, the pseudonym verification module 121 may verify the validity of the pseudonym by searching for a transaction including the pseudonym to be verified in the last block and verifying the certificate for the pseudonym to be verified included in the searched transaction. have.

암호문 검증 모듈(125)은 검증된 가명에 기초하여 마지막 블록 내 암호문의 유효성을 검증한다. 이때, 암호문은 서비스 서버(120)의 공개키로 마지막 블록 내 사용자 관련 정보를 암호화하여 생성된 후, 가명에 기초하여 서명된다.The ciphertext verification module 125 verifies the validity of the ciphertext in the last block based on the verified pseudonym. At this time, the encrypted text is generated by encrypting the user-related information in the last block with the public key of the service server 120, and then signed based on the pseudonym.

일 실시예에 따르면, 암호문은 가명 검증 모듈(121)에 의해 검증된 가명에 대응되는 비밀키로 서명되고, 암호문 검증 모듈(125)은 검증된 가명을 이용하여 마지막 블록 내 암호문에 대한 서명을 검증함으로써 해당 암호문의 유효성을 검증할 수 있다.According to one embodiment, the ciphertext is signed with a secret key corresponding to the pseudonym verified by the pseudonym verification module 121, and the encrypted text verification module 125 uses the verified pseudonym to verify the signature for the encrypted text in the last block. The validity of the ciphertext can be verified.

복호화 모듈(127)은 서비스 서버의 비밀키로 검증된 암호문을 복호화한다.The decryption module 127 decrypts the encrypted text verified with the private key of the service server.

도 6은 제1 실시예에 따라 사용자 단말(110)에서 수행되는 데이터 관리 방법을 설명하기 위한 흐름도이다.6 is a flowchart illustrating a data management method performed in the user terminal 110 according to the first embodiment.

우선, 사용자 단말(110)은 인증된 가명에 기초하여 사용자 관련 정보에 대한 서명을 생성한다(610).First, the user terminal 110 generates a signature for the user-related information based on the authenticated pseudonym ( 610 ).

이후, 사용자 단말(110)은 인증된 가명, 사용자 관련 정보 및 사용자 관련 정보에 대한 서명을 포함하는 트랜잭션을 생성한다(620).Thereafter, the user terminal 110 generates a transaction including the authenticated pseudonym, user-related information, and a signature for the user-related information ( 620 ).

이후, 사용자 단말(110)은 생성된 트랜잭션을 블록체인 망에 게시한다(630).Thereafter, the user terminal 110 posts the generated transaction to the blockchain network ( 630 ).

도 7은 제1 실시예에 따라 서비스 서버(120)에서 수행되는 데이터 관리 방법을 설명하기 위한 흐름도이다.7 is a flowchart illustrating a data management method performed by the service server 120 according to the first embodiment.

우선, 서비스 서버(120)는 블록체인 망의 블록체인을 구성하는 하나 이상의 블록 중 마지막 블록을 참조하여, 마지막 블록 내 가명의 유효성을 검증한다(710).First, the service server 120 refers to the last block among one or more blocks constituting the block chain of the block chain network, and verifies the validity of the pseudonym in the last block ( 710 ).

이후, 서비스 서버(120)는 검증된 가명에 기초하여 마지막 블록 내 사용자 관련 정보의 유효성을 검증한다(720).Thereafter, the service server 120 verifies the validity of the user-related information in the last block based on the verified pseudonym ( 720 ).

상기 도시된 흐름도 도 6 및 도 7에서는 상기 방법을 복수 개의 단계로 나누어 기재하였으나, 적어도 일부의 단계들은 순서를 바꾸어 수행되거나, 다른 단계와 결합되어 함께 수행되거나, 생략되거나, 세부 단계들로 나뉘어 수행되거나, 또는 도시되지 않은 하나 이상의 단계가 부가되어 수행될 수 있다.6 and 7, the method is described by dividing the method into a plurality of steps, but at least some steps are performed in a different order, performed together in combination with other steps, omitted, or divided into detailed steps Alternatively, one or more steps not shown may be added and performed.

도 8은 일 실시예에서 블록에 블룸 필터를 생성하는 상태를 나타내는 도면이다. 도 8을 참조하면, 블록체인의 첫 번째 블록(S1)이 6개의 트랜잭션으로 구성되고, 마지막 트랜잭션은 5개의 트랜잭션(T1 ~ T5)에 포함된 사용자 관련 정보를 기반으로 생성된 제1 블룸 필터(BF1)일 수 있다.8 is a diagram illustrating a state in which a bloom filter is generated in a block according to an embodiment. Referring to Figure 8, the first block (S1) of the block chain consists of 6 transactions, and the last transaction is a first bloom filter ( BF1).

여기서, 두 번째 블록(S2)을 첫 번째 블록(S1)에 연결하는 경우, 마이너 노드(140)는 첫 번째 블록(S1)의 제1 블룸 필터(BF1)에 두 번째 블록(S2)의 5개의 트랜잭션(T1 ~ T5)에 포함된 사용자 관련 정보를 추가하여 제2 블룸 필터(BF2)를 생성할 수 있다. 이때, 제2 블룸 필터(BF2)는 두 번째 블록(S2)의 마지막 트랜잭션일 수 있다.Here, when the second block (S2) is connected to the first block (S1), the minor node 140 is the first bloom filter (BF1) of the first block (S1) of the 5 The second bloom filter BF2 may be created by adding user-related information included in the transactions T1 to T5. In this case, the second bloom filter BF2 may be the last transaction of the second block S2.

그리고, 세 번째 블록(S3)을 두 번째 블록(S2)에 연결하는 경우, 마이너 노드(140)는 두 번째 블록(S2)의 제2 블룸 필터(BF2)에 세 번째 블록(S3)의 5개의 트랜잭션(T1 ~ T5)에 포함된 사용자 관련 정보를 추가하여 제3 블룸 필터(BF3)를 생성할 수 있다. 이때, 제3 블룸 필터(BF3)는 세 번째 블록(S3)의 마지막 트랜잭션일 수 있다.And, when connecting the third block (S3) to the second block (S2), the minor node 140 is the second bloom filter (BF2) of the second block (S2) 5 of the third block (S3) The third bloom filter BF3 may be created by adding user-related information included in the transactions T1 to T5. In this case, the third bloom filter BF3 may be the last transaction of the third block S3.

이러한 방식으로 블룸 필터를 생성하면, 블록체인에서 각 블록의 블룸 필터는 이전 블록의 블룸 필터가 누적된 값을 가지게 된다. 이 경우, 블록체인의 마지막 블록의 블룸 필터는 블록체인에 포함된 각 트랜잭션들에 포함된 사용자 관련 정보들을 멤버로 하게 되므로, 멤버쉽 체크가 필요한 경우 블록체인의 마지막 블록의 블룸 필터를 이용하여 용이하게 수행할 수 있게 된다.When a bloom filter is created in this way, the bloom filter of each block in the blockchain has the accumulated value of the bloom filter of the previous block. In this case, the bloom filter of the last block of the block chain is made up of user-related information included in each transaction included in the block chain. be able to perform

즉, 블록체인 내에서 소정 사용자에 대한 멤버쉽 체크가 필요한 경우, 블록체인의 마지막 블록의 블룸 필터를 조회하고, 소정 사용자의 사용자 관련 정보(예를 들어, 사용자의 가명 등)에 대해 블룸 필터가 예스(Yes) 또는 노(No)를 보고하는지를 확인하여 멤버쉽 체크를 진행할 수 있다. 블룸 필터가 예스(Yes)로 보고하는 경우, 마이너 노드(140)는 해당 사용자가 유효한 멤버인 것으로 판단할 수 있다. 블룸 필터가 노(No)로 보고하는 경우, 마이너 노드(140)는 해당 사용자가 유효하지 않은 멤버인 것으로 판단할 수 있다.That is, when a membership check for a given user in the blockchain is required, the Bloom filter of the last block of the blockchain is queried, and the Bloom filter is Yes for the user-related information of the given user (for example, the user's pseudonym, etc.) You can proceed with the membership check by checking whether it reports (Yes) or No (No). When the bloom filter reports as Yes, the minor node 140 may determine that the corresponding user is a valid member. If the bloom filter reports No, the minor node 140 may determine that the corresponding user is an invalid member.

여기서, 각 블록의 블룸 필터는 이전 블록의 블룸 필터가 누적된 상태이므로, 어떤 시점에서는 블룸 필터의 긍정 오류(False Positive)가 무시할 수 없는 수준에 도달할 수 있게 된다. 이에, 마이너 노드(140)는 블룸 필터의 긍정 오류가 기 설정된 임계 값을 초과하는 경우, 블룸 필터의 크기를 키울 수 있다.Here, since the bloom filter of each block is in a state in which the bloom filters of the previous block are accumulated, the false positive of the bloom filter may reach a level that cannot be ignored at some point. Accordingly, when the false positive error of the bloom filter exceeds a preset threshold, the minor node 140 may increase the size of the bloom filter.

구체적으로, 마이너 노드(140)는 소정 블록에 대해 블룸 필터를 생성하는 경우, 이전 블록의 블룸 필터를 조회하여 긍정 오류(False Positive)를 산출할 수 있다. 여기서, 긍정 오류(FP)는 하기의 수학식을 통해 산출할 수 있다.Specifically, when generating a bloom filter for a predetermined block, the minor node 140 may calculate a false positive by inquiring the bloom filter of the previous block. Here, the false positive FP may be calculated through the following equation.

[수학식][Equation]

Figure pat00001
Figure pat00001

여기서, M은 현재 블룸 필터의 크기를 나타내고, l은 블룸 필터를 위한 해쉬 함수의 수를 나타내며, N은 블룸 필터의 축적된 수를 나타낸다.Here, M represents the size of the current bloom filter, l represents the number of hash functions for the bloom filter, and N represents the accumulated number of bloom filters.

마이너 노드(140)는 산출된 긍정 오류(FP)가 기 설정된 임계 값을 초과하는 경우, 블룸 필터의 크기를 리사이징(Resizing) 할 수 있다. 즉, 블룸 필터의 크기를 현재 블룸 필터의 크기보다 크게 리사이징 할 수 있다. 이때, 마이너 노드(140)는 블록체인의 모든 트랜잭션(즉, 첫 번째 블록에서 현재 블록에 포함된 모든 트랜잭션)들에 포함된 사용자 관련 정보들을 사용하여 블룸 필터를 재구성할 수 있다. 블룸 필터의 크기는 블룸 필터의 크기의 성장 속도에 따라 조정될 수 있다.The minor node 140 may resize the size of the bloom filter when the calculated false positive FP exceeds a preset threshold value. That is, the size of the bloom filter can be resized to be larger than the size of the current bloom filter. In this case, the minor node 140 may reconfigure the bloom filter using user-related information included in all transactions of the block chain (ie, all transactions included in the current block in the first block). The size of the bloom filter can be adjusted according to the growth rate of the size of the bloom filter.

한편, 개시되는 실시예에서는 블룸 필터로 카운팅 블룸 필터(Counting Bloom Filter)를 사용할 수도 있다. 일반적인 블룸 필터는 멤버의 삭제가 불가능하나, 카운팅 블룸 필터는 멤버의 삭제가 가능하다.Meanwhile, in the disclosed embodiment, a counting bloom filter may be used as the bloom filter. A normal bloom filter cannot delete a member, but a counting bloom filter can delete a member.

예시적인 실시예에서, 사용자 단말(110)은 특정 사용자 관련 정보의 삭제를 마이너 노드(140)에 요청할 수 있다. 이를 위해, 블록체인의 트랜잭션은 멤버의 삽입 요청인지 삭제 요청인지를 나타내는 필드를 포함할 수 있다. 마이너 노드(140)는 트랜잭션의 해당 필드에서 멤버의 삽입 요청인지 삭제 요청인지를 확인하여 삭제 요청인 경우 해당 셀에서 해당 멤버의 해쉬값에 대응하는 카운트를 줄일 수 있다. 만약, 멤버의 삽입 요청인 경우, 마이너 노드(140)는 해당 멤버의 해쉬 값에 해당하는 각 셀의 카운트를 증가시킬 수 있다.In an exemplary embodiment, the user terminal 110 may request the minor node 140 to delete specific user-related information. To this end, a transaction in the blockchain may include a field indicating whether a member's insertion request or deletion request is made. The minor node 140 may check whether a member's insertion request or a delete request is made in the corresponding field of the transaction, and, in the case of the deletion request, may decrease the count corresponding to the hash value of the corresponding member in the corresponding cell. In the case of a member insertion request, the minor node 140 may increase the count of each cell corresponding to the hash value of the member.

또한, 개시되는 실시예에서는 취소된 멤버를 위한 블룸 필터를 별도로 사용할 수도 있다. 이 경우, 2개의 블룸 필터가 존재할 수 있다. 즉, 유효한 멤버를 위한 블룸 필터(유효 멤버 블룸 필터)와 취소된 멤버를 위한 블룸 필터(취소 멤버 블룸 필터)가 있을 수 있다.In addition, in the disclosed embodiment, a bloom filter for a canceled member may be used separately. In this case, there may be two bloom filters. That is, there may be a bloom filter for valid members (valid member bloom filter) and a bloom filter for canceled members (cancel member bloom filter).

사용자 단말(110)은 특정 사용자 관련 정보에 대해 삭제 또는 추가를 마이너 노드(140)에 요청할 수 있다. 마이너 노드(140)는 트랜잭션에서 멤버의 삽입 요청인지 삭제 요청인지를 나타내는 필드를 확인하여 삭제 요청이면 해당 사용자 관련 정보를 취소 멤버 블룸 필터에 추가하고, 삽입 요청이면 해당 사용자 관련 정보를 유효 멤버 블룸 필터에 추가할 수 있다.The user terminal 110 may request the minor node 140 to delete or add specific user-related information. The minor node 140 checks a field indicating whether a member is an insert request or a delete request in the transaction, and adds the user-related information to the cancel member bloom filter if it is a delete request, and adds the user-related information to the valid member bloom filter if it is an insert request. can be added to

개시되는 실시예에 의하면, 사용자 단말(110)이 사용자 관련 정보를 포함하는 트랜잭션을 서명하여 블록체인 망에 브로드캐스팅 하고, 블록체인 망의 마이너 노드(140)에서 트랜잭션을 기반으로 각 블록에 대해 블룸 필터를 생성함으로써, 탈 중앙화된(Decentralized) 방식으로 블룸 필터를 생성할 수 있게 된다.According to the disclosed embodiment, the user terminal 110 signs a transaction including user-related information and broadcasts it to the blockchain network, and blooms for each block based on the transaction in the minor node 140 of the blockchain network. By creating a filter, it is possible to create a bloom filter in a decentralized manner.

또한, 블록체인의 각 블록에서 이전 블록의 블룸 필터를 누적시킴으로써, 블록체인의 마지막 블록의 블룸 필터를 확인하면 해당 블록체인 망에 대해 멤버쉽 체크를 용이하게 수행할 수 있게 된다. 또한, 블룸 필터를 통해 사용자 멤버쉽의 삭제 및 추가 기능을 제공할 수 있게 된다.In addition, by accumulating the bloom filter of the previous block in each block of the block chain, checking the bloom filter of the last block of the block chain makes it easy to perform membership checks on the corresponding block chain network. In addition, it will be possible to provide the ability to delete and add user membership through the bloom filter.

도 9는 제2 실시예에 따라 사용자 단말(110)에서 수행되는 데이터 관리 방법을 설명하기 위한 흐름도이다.9 is a flowchart illustrating a data management method performed in the user terminal 110 according to the second embodiment.

우선, 사용자 단말(110)은 블록체인 망에 포함된 서비스 서버의 공개키를 이용하여 사용자 관련 정보에 대한 암호문을 생성한다(910).First, the user terminal 110 uses the public key of the service server included in the block chain network to generate an encrypted text for user-related information ( 910 ).

이후, 사용자 단말(110)은 인증된 가명에 기초하여 암호문에 대한 서명을 생성한다(920).Thereafter, the user terminal 110 generates a signature for the encrypted text based on the authenticated pseudonym ( 920 ).

이후, 사용자 단말(110)은 인증된 가명, 암호문 및 암호문에 대한 서명을 포함하는 트랜잭션을 생성한다(930).Thereafter, the user terminal 110 generates a transaction including the authenticated pseudonym, a cipher text, and a signature for the cipher text ( 930 ).

이후, 사용자 단말(110)은 생성된 트랜잭션을 블록체인 망에 게시한다(940).Thereafter, the user terminal 110 posts the generated transaction to the blockchain network ( 940 ).

도 10은 제2 실시예에 따라 서비스 서버(120)에서 수행되는 데이터 관리 방법을 설명하기 위한 흐름도이다.10 is a flowchart illustrating a data management method performed by the service server 120 according to the second embodiment.

우선, 서비스 서버(120)는 블록체인 망의 블록체인을 구성하는 하나 이상의 블록 중 마지막 블록을 참조하여, 마지막 블록 내 가명의 유효성을 검증한다(1010).First, the service server 120 refers to the last block among one or more blocks constituting the block chain of the block chain network, and verifies the validity of the pseudonym in the last block (1010).

이후, 서비스 서버(120)는 검증된 가명에 기초하여 마지막 블록 내 암호문의 유효성을 검증한다(1020).Thereafter, the service server 120 verifies the validity of the ciphertext in the last block based on the verified pseudonym ( 1020 ).

이후, 서비스 서버(120)는 서비스 서버의 비밀키로 검증된 암호문을 복호화한다(1030).Thereafter, the service server 120 decrypts the encrypted text verified with the private key of the service server ( 1030 ).

상기 도시된 흐름도 도 9 및 도 10에서는 상기 방법을 복수 개의 단계로 나누어 기재하였으나, 적어도 일부의 단계들은 순서를 바꾸어 수행되거나, 다른 단계와 결합되어 함께 수행되거나, 생략되거나, 세부 단계들로 나뉘어 수행되거나, 또는 도시되지 않은 하나 이상의 단계가 부가되어 수행될 수 있다.9 and 10, the method is described by dividing the method into a plurality of steps, but at least some of the steps are performed in a reversed order, performed together in combination with other steps, omitted, or divided into detailed steps. Alternatively, one or more steps not shown may be added and performed.

도 11은 일 실시예에 따른 컴퓨팅 장치를 포함하는 컴퓨팅 환경(10)을 예시하여 설명하기 위한 블록도이다. 도시된 실시예에서, 각 컴포넌트들은 이하에 기술된 것 이외에 상이한 기능 및 능력을 가질 수 있고, 이하에 기술된 것 이외에도 추가적인 컴포넌트를 포함할 수 있다.11 is a block diagram illustrating and describing a computing environment 10 including a computing device according to an embodiment. In the illustrated embodiment, each component may have different functions and capabilities other than those described below, and may include additional components in addition to those described below.

도시된 컴퓨팅 환경(10)은 컴퓨팅 장치(12)를 포함한다. 일 실시예에서, 컴퓨팅 장치(12)는 사용자 단말(110)일 수 있다. 또한, 컴퓨팅 장치(12)는 서비스 서버(120)일 수 있다. 또한, 컴퓨팅 장치(12)는 인증 기관(130)일 수 있다. 또한, 컴퓨팅 장치(12)는 마이너 노드(140)일 수 있다.The illustrated computing environment 10 includes a computing device 12 . In one embodiment, computing device 12 may be user terminal 110 . Also, the computing device 12 may be a service server 120 . Computing device 12 may also be a certification authority 130 . Also, the computing device 12 may be a minor node 140 .

컴퓨팅 장치(12)는 적어도 하나의 프로세서(14), 컴퓨터 판독 가능 저장 매체(16) 및 통신 버스(18)를 포함한다. 프로세서(14)는 컴퓨팅 장치(12)로 하여금 앞서 언급된 예시적인 실시예에 따라 동작하도록 할 수 있다. 예컨대, 프로세서(14)는 컴퓨터 판독 가능 저장 매체(16)에 저장된 하나 이상의 프로그램들을 실행할 수 있다. 상기 하나 이상의 프로그램들은 하나 이상의 컴퓨터 실행 가능 명령어를 포함할 수 있으며, 상기 컴퓨터 실행 가능 명령어는 프로세서(14)에 의해 실행되는 경우 컴퓨팅 장치(12)로 하여금 예시적인 실시예에 따른 동작들을 수행하도록 구성될 수 있다.Computing device 12 includes at least one processor 14 , computer readable storage medium 16 , and communication bus 18 . The processor 14 may cause the computing device 12 to operate in accordance with the exemplary embodiments discussed above. For example, the processor 14 may execute one or more programs stored in the computer-readable storage medium 16 . The one or more programs may include one or more computer-executable instructions that, when executed by the processor 14, configure the computing device 12 to perform operations in accordance with the exemplary embodiment. can be

컴퓨터 판독 가능 저장 매체(16)는 컴퓨터 실행 가능 명령어 내지 프로그램 코드, 프로그램 데이터 및/또는 다른 적합한 형태의 정보를 저장하도록 구성된다. 컴퓨터 판독 가능 저장 매체(16)에 저장된 프로그램(20)은 프로세서(14)에 의해 실행 가능한 명령어의 집합을 포함한다. 일 실시예에서, 컴퓨터 판독 가능 저장 매체(16)는 메모리(랜덤 액세스 메모리와 같은 휘발성 메모리, 비휘발성 메모리, 또는 이들의 적절한 조합), 하나 이상의 자기 디스크 저장 디바이스들, 광학 디스크 저장 디바이스들, 플래시 메모리 디바이스들, 그 밖에 컴퓨팅 장치(12)에 의해 액세스되고 원하는 정보를 저장할 수 있는 다른 형태의 저장 매체, 또는 이들의 적합한 조합일 수 있다.Computer-readable storage medium 16 is configured to store computer-executable instructions or program code, program data, and/or other suitable form of information. The program 20 stored in the computer readable storage medium 16 includes a set of instructions executable by the processor 14 . In one embodiment, computer-readable storage medium 16 includes memory (volatile memory, such as random access memory, non-volatile memory, or a suitable combination thereof), one or more magnetic disk storage devices, optical disk storage devices, flash It may be memory devices, other forms of storage medium that can be accessed by computing device 12 and store desired information, or a suitable combination thereof.

통신 버스(18)는 프로세서(14), 컴퓨터 판독 가능 저장 매체(16)를 포함하여 컴퓨팅 장치(12)의 다른 다양한 컴포넌트들을 상호 연결한다.Communication bus 18 interconnects various other components of computing device 12 , including processor 14 and computer readable storage medium 16 .

컴퓨팅 장치(12)는 또한 하나 이상의 입출력 장치(24)를 위한 인터페이스를 제공하는 하나 이상의 입출력 인터페이스(22) 및 하나 이상의 네트워크 통신 인터페이스(26)를 포함할 수 있다. 입출력 인터페이스(22) 및 네트워크 통신 인터페이스(26)는 통신 버스(18)에 연결된다. 입출력 장치(24)는 입출력 인터페이스(22)를 통해 컴퓨팅 장치(12)의 다른 컴포넌트들에 연결될 수 있다. 예시적인 입출력 장치(24)는 포인팅 장치(마우스 또는 트랙패드 등), 키보드, 터치 입력 장치(터치패드 또는 터치스크린 등), 음성 또는 소리 입력 장치, 다양한 종류의 센서 장치 및/또는 촬영 장치와 같은 입력 장치, 및/또는 디스플레이 장치, 프린터, 스피커 및/또는 네트워크 카드와 같은 출력 장치를 포함할 수 있다. 예시적인 입출력 장치(24)는 컴퓨팅 장치(12)를 구성하는 일 컴포넌트로서 컴퓨팅 장치(12)의 내부에 포함될 수도 있고, 컴퓨팅 장치(12)와는 구별되는 별개의 장치로 컴퓨팅 장치(12)와 연결될 수도 있다.Computing device 12 may also include one or more input/output interfaces 22 and one or more network communication interfaces 26 that provide interfaces for one or more input/output devices 24 . The input/output interface 22 and the network communication interface 26 are coupled to the communication bus 18 . Input/output device 24 may be coupled to other components of computing device 12 via input/output interface 22 . Exemplary input/output device 24 may include a pointing device (such as a mouse or trackpad), a keyboard, a touch input device (such as a touchpad or touchscreen), a voice or sound input device, various types of sensor devices, and/or imaging devices. input devices and/or output devices such as display devices, printers, speakers and/or network cards. The exemplary input/output device 24 may be included in the computing device 12 as a component constituting the computing device 12 , and may be connected to the computing device 12 as a separate device distinct from the computing device 12 . may be

한편, 본 발명의 실시예는 본 명세서에서 기술한 방법들을 컴퓨터상에서 수행하기 위한 프로그램, 및 상기 프로그램을 포함하는 컴퓨터 판독 가능 기록매체를 포함할 수 있다. 상기 컴퓨터 판독 가능 기록매체는 프로그램 명령, 로컬 데이터 파일, 로컬 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체는 본 발명을 위하여 특별히 설계되고 구성된 것들이거나, 또는 컴퓨터 소프트웨어 분야에서 통상적으로 사용 가능한 것일 수 있다. 컴퓨터 판독 가능 기록매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체, CD-ROM, DVD와 같은 광 기록 매체, 및 롬, 램, 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 상기 프로그램의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함할 수 있다.Meanwhile, an embodiment of the present invention may include a program for performing the methods described in this specification on a computer, and a computer-readable recording medium including the program. The computer-readable recording medium may include program instructions, local data files, local data structures, etc. alone or in combination. The medium may be specially designed and configured for the present invention, or may be commonly used in the field of computer software. Examples of computer-readable recording media include hard disks, magnetic media such as floppy disks and magnetic tapes, optical recording media such as CD-ROMs and DVDs, and program instructions specially configured to store and execute program instructions such as ROMs, RAMs, flash memories, and the like. Hardware devices are included. Examples of the program may include not only machine language codes such as those generated by a compiler, but also high-level language codes that can be executed by a computer using an interpreter or the like.

이상에서 본 발명의 대표적인 실시예들을 상세하게 설명하였으나, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 상술한 실시예에 대하여 본 발명의 범주에서 벗어나지 않는 한도 내에서 다양한 변형이 가능함을 이해할 것이다. 그러므로 본 발명의 권리범위는 설명된 실시예에 국한되어 정해져서는 안 되며, 후술하는 청구범위 뿐만 아니라 이 청구범위와 균등한 것들에 의해 정해져야 한다.Although representative embodiments of the present invention have been described in detail above, those of ordinary skill in the art to which the present invention pertains will understand that various modifications are possible within the limits without departing from the scope of the present invention with respect to the above-described embodiments. . Therefore, the scope of the present invention should not be limited to the described embodiments, but should be defined by the following claims as well as the claims and equivalents.

10: 컴퓨팅 환경
12: 컴퓨팅 장치
14: 프로세서
16: 컴퓨터 판독 가능 저장 매체
18: 통신 버스
20: 프로그램
22: 입출력 인터페이스
24: 입출력 장치
26: 네트워크 통신 인터페이스
100: 데이터 관리 시스템
110: 사용자 단말
111: 서명 생성 모듈
113: 트랜잭션 생성 모듈
115: 통신 모듈
117: 암호화 모듈
120: 서비스 서버
121: 가명 검증 모듈
123: 사용자 관련 정보 검증 모듈
125: 암호문 검증 모듈
127: 복호화 모듈
130: 인증 기관
140: 마이너 노드
150: 통신 네트워크
10: Computing Environment
12: computing device
14: Processor
16: computer readable storage medium
18: communication bus
20: Program
22: input/output interface
24: input/output device
26: network communication interface
100: data management system
110: user terminal
111: signature generation module
113: transaction creation module
115: communication module
117: encryption module
120: service server
121: pseudonym verification module
123: User-related information verification module
125: ciphertext verification module
127: decryption module
130: certification authority
140: minor node
150: communication network

Claims (28)

하나 이상의 프로세서들, 및
상기 하나 이상의 프로세서들에 의해 실행되는 하나 이상의 프로그램들을 저장하는 메모리를 구비하는 컴퓨팅 장치로서,
인증된 가명(Pseudonym)에 기초하여 사용자 관련 정보에 대한 서명을 생성하는 서명 생성 모듈;
상기 가명, 상기 사용자 관련 정보 및 상기 서명을 포함하는 트랜잭션을 생성하는 트랜잭션 생성 모듈; 및
상기 생성된 트랜잭션을 블록체인 망에 게시하는 통신 모듈을 포함하는, 컴퓨팅 장치.
one or more processors, and
A computing device having a memory storing one or more programs executed by the one or more processors, the computing device comprising:
a signature generation module for generating a signature for user-related information based on an authenticated pseudonym;
a transaction generating module for generating a transaction including the pseudonym, the user-related information, and the signature; and
Computing device comprising a communication module for posting the generated transaction to a blockchain network.
청구항 1항에 있어서,
상기 서명 생성 모듈은,
상기 가명 및 상기 가명에 대응되는 비밀키를 생성하고, 상기 비밀키를 이용하여 상기 사용자 관련 정보에 대한 상기 서명을 생성하고,
상기 트랜잭션 생성 모듈은,
상기 가명, 상기 가명에 대한 인증서, 상기 사용자 관련 정보 및 상기 서명을 포함하는 트랜잭션을 생성하는, 컴퓨팅 장치.
The method according to claim 1,
The signature generation module,
generating the pseudonym and a secret key corresponding to the pseudonym, and generating the signature for the user-related information using the secret key;
The transaction creation module,
and generate a transaction comprising the pseudonym, the certificate for the pseudonym, the user-related information, and the signature.
청구항 1항에 있어서,
상기 가명은,
상기 컴퓨팅 장치의 공개키이고,
상기 가명에 대한 인증서는,
상기 블록체인 망에 포함된 인증 기관으로부터 상기 컴퓨팅 장치로 발급되는, 컴퓨팅 장치.
The method according to claim 1,
The pseudonym is
a public key of the computing device;
The certificate for the pseudonym is:
A computing device that is issued to the computing device from a certification authority included in the blockchain network.
하나 이상의 프로세서들, 및
상기 하나 이상의 프로세서들에 의해 실행되는 하나 이상의 프로그램들을 저장하는 메모리를 구비하는 컴퓨팅 장치로서,
블록체인 망의 블록체인을 구성하는 하나 이상의 블록 중 마지막 블록을 참조하여, 상기 마지막 블록 내 가명(Pseudonym)의 유효성을 검증하는 가명 검증 모듈; 및
검증된 가명에 기초하여 상기 마지막 블록 내 사용자 관련 정보의 유효성을 검증하는 사용자 관련 정보 검증 모듈을 포함하는, 컴퓨팅 장치.
one or more processors, and
A computing device comprising a memory storing one or more programs to be executed by the one or more processors;
a pseudonym verification module that verifies the validity of a pseudonym in the last block by referring to the last block among one or more blocks constituting the block chain of the block chain network; and
and a user-related information verification module that verifies the validity of the user-related information in the last block based on the verified pseudonym.
청구항 4항에 있어서,
상기 가명 검증 모듈은,
상기 마지막 블록의 블룸 필터(Bloom Filter)를 조회하고, 상기 가명에 대한 상기 블룸 필터의 조회 결과에 기초하여 상기 가명의 유효성을 검증하는, 컴퓨팅 장치.
5. The method of claim 4,
The pseudonym verification module,
Inquiring a Bloom Filter of the last block, and verifying the validity of the pseudonym based on the query result of the Bloom filter for the pseudonym.
청구항 4항에 있어서,
상기 가명 검증 모듈은,
상기 마지막 블록에서 상기 가명이 포함된 트랜잭션을 탐색하고, 상기 탐색된 트랜잭션에 포함된 상기 가명에 대한 인증서를 검증함으로써 상기 가명의 유효성을 검증하는, 컴퓨팅 장치.
5. The method of claim 4,
The pseudonym verification module,
and verifying the validity of the pseudonym by searching for a transaction including the pseudonym in the last block and verifying a certificate for the pseudonym included in the searched transaction.
청구항 4항에 있어서,
상기 사용자 관련 정보는,
상기 검증된 가명에 대응되는 비밀키로 서명되고,
상기 사용자 관련 정보 검증 모듈은,
상기 검증된 가명을 이용하여 상기 마지막 블록 내 상기 사용자 관련 정보에 대한 서명을 검증함으로써 상기 사용자 관련 정보의 유효성을 검증하는, 컴퓨팅 장치.
5. The method of claim 4,
The user-related information is
signed with a secret key corresponding to the verified pseudonym,
The user-related information verification module,
and verifying the validity of the user-related information by verifying a signature for the user-related information in the last block using the verified pseudonym.
하나 이상의 프로세서들, 및
상기 하나 이상의 프로세서들에 의해 실행되는 하나 이상의 프로그램들을 저장하는 메모리를 구비하는 컴퓨팅 장치에서 수행되는 방법으로서,
인증된 가명(Pseudonym)에 기초하여 사용자 관련 정보에 대한 서명을 생성하는 단계;
상기 가명, 상기 사용자 관련 정보 및 상기 서명을 포함하는 트랜잭션을 생성하는 단계; 및
상기 생성된 트랜잭션을 상기 블록체인 망에 게시하는 단계를 포함하는, 데이터 관리 방법.
one or more processors, and
A method performed in a computing device having a memory storing one or more programs to be executed by the one or more processors, the method comprising:
generating a signature for user-related information based on the authenticated pseudonym;
generating a transaction including the pseudonym, the user-related information, and the signature; and
and posting the generated transaction to the blockchain network.
청구항 8항에 있어서,
상기 서명을 생성하는 단계는,
상기 가명 및 상기 가명에 대응되는 비밀키를 생성하는 단계; 및
상기 비밀키를 이용하여 상기 사용자 관련 정보에 대한 상기 서명을 생성하는 단계를 포함하고,
상기 트랜잭션을 생성하는 단계는,
상기 가명, 상기 가명에 대한 인증서, 상기 사용자 관련 정보 및 상기 서명을 포함하는 트랜잭션을 생성하는, 데이터 관리 방법.
9. The method of claim 8,
The step of generating the signature includes:
generating the pseudonym and a secret key corresponding to the pseudonym; and
generating the signature for the user-related information using the private key;
The step of creating the transaction comprises:
and generating a transaction including the pseudonym, a certificate for the pseudonym, the user-related information, and the signature.
청구항 8항에 있어서,
상기 가명은,
상기 컴퓨팅 장치의 공개키이고,
상기 가명에 대한 인증서는,
상기 블록체인 망에 포함된 인증 기관으로부터 상기 컴퓨팅 장치로 발급되는, 데이터 관리 방법.
9. The method of claim 8,
The pseudonym is
a public key of the computing device;
The certificate for the pseudonym is:
A data management method that is issued to the computing device from a certification authority included in the blockchain network.
하나 이상의 프로세서들, 및
상기 하나 이상의 프로세서들에 의해 실행되는 하나 이상의 프로그램들을 저장하는 메모리를 구비하는 컴퓨팅 장치에서 수행되는 방법으로서,
블록체인 망의 블록체인을 구성하는 하나 이상의 블록 중 마지막 블록을 참조하여, 상기 마지막 블록 내 가명(Pseudonym)의 유효성을 검증하는 단계; 및
검증된 가명에 기초하여 상기 마지막 블록 내 사용자 관련 정보의 유효성을 검증하는 단계를 포함하는, 데이터 관리 방법.
one or more processors, and
A method performed in a computing device having a memory storing one or more programs to be executed by the one or more processors, the method comprising:
verifying the validity of a pseudonym in the last block by referring to the last block among one or more blocks constituting the block chain of the block chain network; and
and verifying the validity of the user-related information in the last block based on the verified pseudonym.
청구항 11항에 있어서,
상기 가명의 유효성을 검증하는 단계는,
상기 마지막 블록의 블룸 필터(Bloom Filter)를 조회하는 단계; 및
상기 가명에 대한 상기 블룸 필터의 조회 결과에 기초하여 상기 가명의 유효성을 검증하는 단계를 포함하는, 데이터 관리 방법.
12. The method of claim 11,
The step of verifying the validity of the pseudonym comprises:
inquiring a Bloom Filter of the last block; and
and verifying the validity of the pseudonym based on a query result of the bloom filter for the pseudonym.
청구항 11항에 있어서,
상기 가명의 유효성을 검증하는 단계는,
상기 마지막 블록에서 상기 가명이 포함된 트랜잭션을 탐색하는 단계; 및
상기 탐색된 트랜잭션에 포함된 상기 가명에 대한 인증서를 검증함으로써 상기 가명의 유효성을 검증하는 단계를 포함하는, 데이터 관리 방법.
12. The method of claim 11,
The step of verifying the validity of the pseudonym comprises:
searching for a transaction including the pseudonym in the last block; and
and verifying the validity of the pseudonym by verifying a certificate for the pseudonym included in the searched transaction.
청구항 11항에 있어서,
상기 사용자 관련 정보는,
상기 검증된 가명에 대응되는 비밀키로 서명되고,
상기 사용자 관련 정보의 유효성을 검증하는 단계는,
상기 검증된 가명을 이용하여 상기 마지막 블록 내 상기 사용자 관련 정보에 대한 서명을 검증함으로써 상기 사용자 관련 정보의 유효성을 검증하는, 데이터 관리 방법.
12. The method of claim 11,
The user-related information is
signed with a secret key corresponding to the verified pseudonym,
The step of verifying the validity of the user-related information,
and verifying the validity of the user-related information by verifying a signature on the user-related information in the last block using the verified pseudonym.
하나 이상의 프로세서들, 및
상기 하나 이상의 프로세서들에 의해 실행되는 하나 이상의 프로그램들을 저장하는 메모리를 구비하는 컴퓨팅 장치로서,
블록체인 망에 포함된 서비스 서버의 공개키를 이용하여 사용자 관련 정보에 대한 암호문을 생성하는 암호화 모듈;
인증된 가명(Pseudonym)에 기초하여 상기 암호문에 대한 서명을 생성하는 서명 생성 모듈;
상기 가명, 상기 암호문 및 상기 서명을 포함하는 트랜잭션을 생성하는 트랜잭션 생성 모듈; 및
상기 생성된 트랜잭션을 상기 블록체인 망에 게시하는 통신 모듈을 포함하는, 컴퓨팅 장치.
one or more processors, and
A computing device comprising a memory storing one or more programs to be executed by the one or more processors;
an encryption module for generating a cipher text for user-related information by using the public key of the service server included in the block chain network;
a signature generation module for generating a signature for the encrypted text based on an authenticated pseudonym;
a transaction generating module for generating a transaction including the pseudonym, the encrypted text, and the signature; and
Computing device comprising a communication module for posting the generated transaction to the blockchain network.
청구항 15항에 있어서,
상기 서명 생성 모듈은,
상기 가명 및 상기 가명에 대응되는 비밀키를 생성하고, 상기 비밀키를 이용하여 상기 암호문에 대한 상기 서명을 생성하고,
상기 트랜잭션 생성 모듈은,
상기 가명, 상기 가명에 대한 인증서, 상기 암호문 및 상기 서명을 포함하는 트랜잭션을 생성하는, 컴퓨팅 장치.
16. The method of claim 15,
The signature generation module,
generating the pseudonym and a secret key corresponding to the pseudonym, and generating the signature for the encrypted text using the secret key;
The transaction creation module,
and generate a transaction comprising the pseudonym, the certificate for the pseudonym, the ciphertext, and the signature.
청구항 15항에 있어서,
상기 가명은,
상기 컴퓨팅 장치의 공개키이고,
상기 가명에 대한 인증서는,
상기 블록체인 망에 포함된 인증 기관으로부터 상기 컴퓨팅 장치로 발급되는, 컴퓨팅 장치.
16. The method of claim 15,
The pseudonym is
a public key of the computing device;
The certificate for the pseudonym is:
A computing device that is issued to the computing device from a certification authority included in the blockchain network.
하나 이상의 프로세서들, 및
상기 하나 이상의 프로세서들에 의해 실행되는 하나 이상의 프로그램들을 저장하는 메모리를 구비하는 컴퓨팅 장치로서,
블록체인 망의 블록체인을 구성하는 하나 이상의 블록 중 마지막 블록을 참조하여, 상기 마지막 블록 내 가명(Pseudonym)의 유효성을 검증하는 가명 검증 모듈;
검증된 가명에 기초하여 상기 마지막 블록 내 암호문의 유효성을 검증하는 암호문 검증 모듈; 및
상기 컴퓨팅 장치의 비밀키로 상기 검증된 암호문을 복호화하는 복호화 모듈을 포함하고,
상기 암호문은, 상기 컴퓨팅 장치의 공개키로 상기 마지막 블록 내 사용자 관련 정보를 암호화하여 생성된 후 상기 가명에 기초하여 서명된, 컴퓨팅 장치.
one or more processors, and
A computing device comprising a memory storing one or more programs to be executed by the one or more processors;
a pseudonym verification module that verifies the validity of a pseudonym in the last block by referring to the last block among one or more blocks constituting the block chain of the block chain network;
a ciphertext verification module for verifying the validity of the ciphertext in the last block based on the verified pseudonym; and
A decryption module for decrypting the verified ciphertext with the secret key of the computing device,
The cipher text is generated by encrypting user-related information in the last block with a public key of the computing device and then signed based on the pseudonym.
청구항 18항에 있어서,
상기 가명 검증 모듈은,
상기 마지막 블록의 블룸 필터(Bloom Filter)를 조회하고, 상기 가명에 대한 상기 블룸 필터의 조회 결과에 기초하여 상기 가명의 유효성을 검증하는, 컴퓨팅 장치.
19. The method of claim 18,
The pseudonym verification module,
Inquiring a Bloom Filter of the last block, and verifying the validity of the pseudonym based on the query result of the Bloom filter for the pseudonym.
청구항 18항에 있어서,
상기 가명 검증 모듈은,
상기 마지막 블록에서 상기 가명이 포함된 트랜잭션을 탐색하고, 상기 탐색된 트랜잭션에 포함된 상기 가명에 대한 인증서를 검증함으로써 상기 가명의 유효성을 검증하는, 컴퓨팅 장치.
19. The method of claim 18,
The pseudonym verification module,
and verifying the validity of the pseudonym by searching for a transaction including the pseudonym in the last block and verifying a certificate for the pseudonym included in the searched transaction.
청구항 18항에 있어서,
상기 암호문은,
상기 검증된 가명에 대응되는 비밀키로 서명되고,
상기 암호문 검증 모듈은,
상기 검증된 가명을 이용하여 상기 마지막 블록 내 상기 암호문에 대한 서명을 검증함으로써 상기 암호문의 유효성을 검증하는, 컴퓨팅 장치.
19. The method of claim 18,
The cipher text is
signed with a secret key corresponding to the verified pseudonym,
The cipher text verification module,
and verifying the validity of the ciphertext by verifying the signature for the ciphertext in the last block using the verified pseudonym.
하나 이상의 프로세서들, 및
상기 하나 이상의 프로세서들에 의해 실행되는 하나 이상의 프로그램들을 저장하는 메모리를 구비하는 컴퓨팅 장치에서 수행되는 방법으로서,
블록체인 망에 포함된 서비스 서버의 공개키를 이용하여 사용자 관련 정보에 대한 암호문을 생성하는 단계;
인증된 가명(Pseudonym)에 기초하여 상기 암호문에 대한 서명을 생성하는 단계;
상기 가명, 상기 암호문 및 상기 서명을 포함하는 트랜잭션을 생성하는 단계; 및
상기 생성된 트랜잭션을 상기 블록체인 망에 게시하는 단계를 포함하는, 데이터 관리 방법.
one or more processors, and
A method performed on a computing device having a memory storing one or more programs to be executed by the one or more processors, the method comprising:
generating a cipher text for user-related information using a public key of a service server included in a block chain network;
generating a signature for the encrypted text based on an authenticated pseudonym;
generating a transaction comprising the pseudonym, the ciphertext, and the signature; and
and posting the generated transaction to the blockchain network.
청구항 22항에 있어서,
상기 서명을 생성하는 단계는,
상기 가명 및 상기 가명에 대응되는 비밀키를 생성하는 단계; 및
상기 비밀키를 이용하여 상기 암호문에 대한 상기 서명을 생성하는 단계를 포함하고,
상기 트랜잭션을 생성하는 단계는,
상기 가명, 상기 가명에 대한 인증서, 상기 암호문 및 상기 서명을 포함하는 트랜잭션을 생성하는, 데이터 관리 방법.
23. The method of claim 22,
The step of generating the signature includes:
generating the pseudonym and a secret key corresponding to the pseudonym; and
generating the signature for the cipher text using the private key;
The step of creating the transaction comprises:
and generating a transaction comprising the pseudonym, the certificate for the pseudonym, the ciphertext and the signature.
청구항 22항에 있어서,
상기 가명은,
상기 컴퓨팅 장치의 공개키이고,
상기 가명에 대한 인증서는,
상기 블록체인 망에 포함된 인증 기관으로부터 상기 컴퓨팅 장치로 발급되는, 데이터 관리 방법.
23. The method of claim 22,
The pseudonym is
a public key of the computing device;
The certificate for the pseudonym is:
A data management method that is issued to the computing device from a certification authority included in the blockchain network.
하나 이상의 프로세서들, 및
상기 하나 이상의 프로세서들에 의해 실행되는 하나 이상의 프로그램들을 저장하는 메모리를 구비하는 컴퓨팅 장치에서 수행되는 방법으로서,
블록체인 망의 블록체인을 구성하는 하나 이상의 블록 중 마지막 블록을 참조하여, 상기 마지막 블록 내 가명(Pseudonym)의 유효성을 검증하는 단계;
검증된 가명에 기초하여 상기 마지막 블록 내 암호문의 유효성을 검증하는 단계; 및
상기 컴퓨팅 장치의 비밀키로 상기 검증된 암호문을 복호화하는 단계를 포함하고,
상기 암호문은, 상기 컴퓨팅 장치의 공개키로 상기 마지막 블록 내 사용자 관련 정보를 암호화하여 생성된 후 상기 가명에 기초하여 서명된, 데이터 관리 방법.
one or more processors, and
A method performed in a computing device having a memory storing one or more programs to be executed by the one or more processors, the method comprising:
verifying the validity of a pseudonym in the last block by referring to the last block among one or more blocks constituting the block chain of the block chain network;
verifying the validity of the ciphertext in the last block based on the verified pseudonym; and
Decrypting the verified ciphertext with the secret key of the computing device,
The encrypted text is generated by encrypting user-related information in the last block with a public key of the computing device and then signed based on the pseudonym.
청구항 25항에 있어서,
상기 가명의 유효성을 검증하는 단계는,
상기 마지막 블록의 블룸 필터(Bloom Filter)를 조회하는 단계; 및
상기 가명에 대한 상기 블룸 필터의 조회 결과에 기초하여 상기 가명의 유효성을 검증하는 단계를 포함하는, 데이터 관리 방법.
26. The method of claim 25,
The step of verifying the validity of the pseudonym comprises:
inquiring a Bloom Filter of the last block; and
and verifying the validity of the pseudonym based on a query result of the bloom filter for the pseudonym.
청구항 25항에 있어서,
상기 가명의 유효성을 검증하는 단계는,
상기 마지막 블록에서 상기 가명이 포함된 트랜잭션을 탐색하는 단계; 및
상기 탐색된 트랜잭션에 포함된 상기 가명에 대한 인증서를 검증함으로써 상기 가명의 유효성을 검증하는 단계를 포함하는, 데이터 관리 방법.
26. The method of claim 25,
The step of verifying the validity of the pseudonym comprises:
searching for a transaction including the pseudonym in the last block; and
and verifying the validity of the pseudonym by verifying a certificate for the pseudonym included in the searched transaction.
청구항 25항에 있어서,
상기 암호문은,
상기 검증된 가명에 대응되는 비밀키로 서명되고,
상기 암호문의 유효성을 검증하는 단계는,
상기 검증된 가명을 이용하여 상기 마지막 블록 내 상기 암호문에 대한 서명을 검증함으로써 상기 암호문의 유효성을 검증하는, 데이터 관리 방법.
26. The method of claim 25,
The cipher text is
signed with a secret key corresponding to the verified pseudonym,
The step of verifying the validity of the ciphertext is
and verifying the validity of the ciphertext by verifying the signature for the ciphertext in the last block using the verified pseudonym.
KR1020210047133A 2021-04-12 2021-04-12 Method for managing data, computing device for executing the method KR102500419B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020210047133A KR102500419B1 (en) 2021-04-12 2021-04-12 Method for managing data, computing device for executing the method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020210047133A KR102500419B1 (en) 2021-04-12 2021-04-12 Method for managing data, computing device for executing the method

Publications (2)

Publication Number Publication Date
KR20220141058A true KR20220141058A (en) 2022-10-19
KR102500419B1 KR102500419B1 (en) 2023-02-15

Family

ID=83804628

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020210047133A KR102500419B1 (en) 2021-04-12 2021-04-12 Method for managing data, computing device for executing the method

Country Status (1)

Country Link
KR (1) KR102500419B1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102638798B1 (en) * 2023-09-11 2024-02-21 주식회사 페어스퀘어랩 Method and system for managing wallets on blockchain networks

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101590076B1 (en) * 2015-11-18 2016-02-01 주식회사 웨이브스트링 Method for managing personal information
JP2018020944A (en) 2016-08-05 2018-02-08 デンカ株式会社 Manufacturing method of refractory concrete
KR20180129027A (en) * 2017-05-24 2018-12-05 라온시큐어(주) Authentification methods and system based on programmable blockchain and one-id

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101590076B1 (en) * 2015-11-18 2016-02-01 주식회사 웨이브스트링 Method for managing personal information
JP2018020944A (en) 2016-08-05 2018-02-08 デンカ株式会社 Manufacturing method of refractory concrete
KR20180129027A (en) * 2017-05-24 2018-12-05 라온시큐어(주) Authentification methods and system based on programmable blockchain and one-id

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102638798B1 (en) * 2023-09-11 2024-02-21 주식회사 페어스퀘어랩 Method and system for managing wallets on blockchain networks

Also Published As

Publication number Publication date
KR102500419B1 (en) 2023-02-15

Similar Documents

Publication Publication Date Title
US11252132B2 (en) Generating and linking private transaction identifiers to distributed data repositories
JP7426031B2 (en) Key security management system and method, medium, and computer program
US20200119904A1 (en) Tamper-proof privileged user access system logs
US20210006410A1 (en) Method for providing virtual asset service based on decentralized identifier and virtual asset service providing server using them
EP1698993B1 (en) Method and system for integrating multiple identities, identity mechanisms and identity providers in a single user paradigm
WO2021169107A1 (en) Internet identity protection method and apparatus, electronic device, and storage medium
WO2019032089A1 (en) Blockchain architecture with record security
US11791990B2 (en) Apparatus and method for managing personal information
CN111914293B (en) Data access right verification method and device, computer equipment and storage medium
US20210036854A1 (en) Dynamic implementation and management of hash-based consent and permissioning protocols
CN109981287B (en) Code signing method and storage medium thereof
CN110543545A (en) file management method and device based on block chain and storage medium
CN113169866A (en) Techniques to prevent collusion using simultaneous key distribution
CN112600830B (en) Service data processing method and device, electronic equipment and storage medium
CN112712372A (en) Alliance chain cross-chain system and information calling method
CN114172663B (en) Business right determining method and device based on block chain, storage medium and electronic equipment
KR102500419B1 (en) Method for managing data, computing device for executing the method
CN110830428A (en) Block chain financial big data processing method and system
CN113591121A (en) Resource access authority configuration method, device, equipment and storage medium
KR102318947B1 (en) Method for protecting privacy data, computing device and system for executing the method
CN116032627A (en) Unified authentication and authorization method and device based on micro-service architecture
CN112232956B (en) Intelligent parking data processing method and device based on blockchain
CN114861144A (en) Data authority processing method based on block chain
CN112733166A (en) license authentication and authorization function realization method and system
CN116155565B (en) Data access control method and device

Legal Events

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