KR102503028B1 - Method of resolving decentralized identifier using bloom filter - Google Patents

Method of resolving decentralized identifier using bloom filter Download PDF

Info

Publication number
KR102503028B1
KR102503028B1 KR1020200161907A KR20200161907A KR102503028B1 KR 102503028 B1 KR102503028 B1 KR 102503028B1 KR 1020200161907 A KR1020200161907 A KR 1020200161907A KR 20200161907 A KR20200161907 A KR 20200161907A KR 102503028 B1 KR102503028 B1 KR 102503028B1
Authority
KR
South Korea
Prior art keywords
identifier
bit
bloom
search
registration server
Prior art date
Application number
KR1020200161907A
Other languages
Korean (ko)
Other versions
KR20220073951A (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 KR1020200161907A priority Critical patent/KR102503028B1/en
Publication of KR20220073951A publication Critical patent/KR20220073951A/en
Application granted granted Critical
Publication of KR102503028B1 publication Critical patent/KR102503028B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2228Indexing structures
    • G06F16/2255Hash tables
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/182Distributed file systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/30Managing network names, e.g. use of aliases or nicknames
    • H04L61/3015Name registration, generation or assignment
    • H04L61/302Administrative registration, e.g. for domain names at internet corporation for assigned names and numbers [ICANN]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2101/00Indexing scheme associated with group H04L61/00
    • H04L2101/30Types of network names
    • H04L2101/365Application layer names, e.g. buddy names, unstructured names chosen by a user or home appliance name

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computational Linguistics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

다수의 식별자 등록서버 환경에서 블룸필터(bloom filter)를 이용하여 검색대상 식별자가 있을 가능성이 있는 식별자 등록서버를 선별하여 검색요청을 함으로써, 분산식별자 검색을 위한 통신량과 검색 소요시간을 줄일 수 있는 블룸필터를 이용한 분산식별자 검색 장치 및 그 방법이 개시된다. 본 발명의 실시예에 따른 블룸필터를 이용한 분산식별자 검색 방법은: 블룸필터 수집부에 의해, 각 식별자 등록서버에 등록된 식별자들을 대표하는 비트패턴인 블룸필터를 다수의 식별자 등록서버로부터 각각 수집하는 단계; 블룸매트릭스 생성부에 의해, 상기 다수의 식별자 등록서버로부터 수집된 다수의 블룸필터를 매트릭스 형식으로 구성하여 블룸 매트릭스를 생성하는 단계; 비트 추출부에 의해, 검색대상 식별자에 대응되는 해쉬 함수를 기반으로, 상기 블룸 매트릭스로부터 상기 해쉬 함수에 해당하는 비트들을 추출하는 단계; 식별자 등록서버 선택부에 의해, 상기 비트들에 기초한 연산 결과에 따라 상기 검색대상 식별자를 보유할 가능성이 있는 식별자 등록서버를 선별하는 단계; 및 식별자 검색 요청부에 의해, 상기 다수의 식별자 등록서버 중에서 선별된 식별자 등록서버에만 상기 검색대상 식별자의 검색을 요청하는 단계;를 포함한다.In a multi-identifier registration server environment, a bloom filter can be used to select an identifier registration server that is likely to have a search target identifier and request a search, thereby reducing the amount of traffic and search time for distributed identifier search. Distributed identifier search apparatus and method using a filter are disclosed. A distributed identifier search method using a bloom filter according to an embodiment of the present invention: Collecting, by a bloom filter collector, bloom filters, which are bit patterns representing identifiers registered in each identifier registration server, from a plurality of identifier registration servers, respectively step; generating a bloom matrix by configuring a plurality of bloom filters collected from the plurality of identifier registration servers in a matrix form by a bloom matrix generator; extracting bits corresponding to the hash function from the bloom matrix based on the hash function corresponding to the search target identifier by a bit extraction unit; selecting, by an identifier registration server selector, an identifier registration server that may hold the search target identifier according to an operation result based on the bits; and requesting, by an identifier search requesting unit, to search for the identifier to be searched only for the identifier registration server selected from among the plurality of identifier registration servers.

Figure R1020200161907
Figure R1020200161907

Description

블룸필터를 이용한 분산식별자 검색 방법{Method of resolving decentralized identifier using bloom filter}Distributed identifier search method using bloom filter {Method of resolving decentralized identifier using bloom filter}

본 발명은 분산식별자 검색 장치 및 그 방법에 관한 것으로, 보다 상세하게는 다수의 식별자 등록서버 환경에서 블룸필터(bloom filter)를 이용하여 검색대상 식별자가 있을 가능성이 있는 식별자 등록서버를 선별하여 검색요청을 함으로써 분산식별자 검색을 위한 통신량과 검색 소요시간을 줄일 수 있는 블룸필터를 이용한 분산식별자 검색 장치 및 그 방법에 관한 것이다.The present invention relates to a distributed identifier search apparatus and method, and more particularly, to a search request by selecting an identifier registration server having a possibility of having a search target identifier using a bloom filter in a plurality of identifier registration server environments. Distributed identifier retrieval apparatus and method using a bloom filter that can reduce the amount of communication and search time for distributed identifier retrieval by doing.

분산식별자(DID; Decentralized Identifier)는 다양한 엔티티(예를 들어, 사람, 기관, 사물, 데이터 등)를 네트워크 연결된 다수의 식별자 등록서버(다수의 DID 레지스트리)에 분산된 방식으로 식별하는 새로운 유형의 식별자이다. 식별자 등록서버는 분산식별자들과, 분산식별자들과 관련된 분산식별자 문서들을 기록하여 관리한다.Decentralized Identifier (DID) is a new type of identifier that identifies various entities (e.g., people, institutions, things, data, etc.) in a distributed manner to a number of networked identifier registration servers (multiple DID registries). am. The identifier registration server records and manages distributed identifiers and distributed identifier documents related to distributed identifiers.

이러한 다수의 식별자 등록서버 환경에서는 검색대상 식별자가 어느 식별자 등록서버에 등록되어 있는지 알 수 없다. 이로 인해, 종래에는 분산식별자를 검색시 검색대상 식별자가 등록되어 있는지 확인을 요청하는 검색요청을 모든 식별자 등록서버로 보내야 하므로, 분산식별자 검색을 위한 통신량이 많아지고, 검색 소요시간도 길어지는 문제가 있다. 대한민국특허청 등록특허공보 10-1120724호(2012.03.23. 공고)에는 P2P 네트워크에서의 라우팅이 개시되어 있다.In such a plurality of identifier registration server environments, it is not known which identifier registration server the identifier to be searched for is registered. Because of this, in the prior art, when searching for a distributed identifier, a search request requesting confirmation of whether the identifier to be searched is registered must be sent to all identifier registration servers, so there is a problem in that the amount of communication for the distributed identifier search increases and the search time also increases. there is. Korean Intellectual Property Office Registration No. 10-1120724 (published on March 23, 2012) discloses routing in a P2P network.

본 발명은 다수의 식별자 등록서버 환경에서 블룸필터(bloom filter)를 이용하여 검색대상 식별자가 있을 가능성이 있는 식별자 등록서버를 선별하여 검색요청을 함으로써, 분산식별자 검색을 위한 통신량과 검색 소요시간을 줄일 수 있는 블룸필터를 이용한 분산식별자 검색 장치 및 그 방법을 제공하기 위한 것이다.The present invention selects an identifier registration server with a possibility of having a search target identifier using a bloom filter in a plurality of identifier registration server environments and requests a search, thereby reducing the amount of traffic and search time required for distributed identifier search. It is to provide a distributed identifier retrieval device and method using a bloom filter that can be used.

본 발명의 실시예에 따른 블룸필터를 이용한 분산식별자 검색 방법은: 블룸필터 수집부에 의해, 각 식별자 등록서버에 등록된 식별자들을 대표하는 비트패턴인 블룸필터를 다수의 식별자 등록서버로부터 각각 수집하는 단계; 블룸매트릭스 생성부에 의해, 상기 다수의 식별자 등록서버로부터 수집된 다수의 블룸필터를 매트릭스 형식으로 구성하여 블룸 매트릭스를 생성하는 단계; 비트 추출부에 의해, 검색대상 식별자에 대응되는 해쉬 함수를 기반으로, 상기 블룸 매트릭스로부터 상기 해쉬 함수에 해당하는 비트들을 추출하는 단계; 식별자 등록서버 선택부에 의해, 상기 비트들에 기초한 연산 결과에 따라 상기 검색대상 식별자를 보유할 가능성이 있는 식별자 등록서버를 선별하는 단계; 및 식별자 검색 요청부에 의해, 상기 다수의 식별자 등록서버 중에서 선별된 식별자 등록서버에만 상기 검색대상 식별자의 검색을 요청하는 단계;를 포함한다.A distributed identifier search method using a bloom filter according to an embodiment of the present invention: Collecting, by a bloom filter collector, bloom filters, which are bit patterns representing identifiers registered in each identifier registration server, from a plurality of identifier registration servers, respectively step; generating a bloom matrix by configuring a plurality of bloom filters collected from the plurality of identifier registration servers in a matrix form by a bloom matrix generator; extracting bits corresponding to the hash function from the bloom matrix based on the hash function corresponding to the search target identifier by a bit extraction unit; selecting, by an identifier registration server selector, an identifier registration server that may hold the search target identifier according to an operation result based on the bits; and requesting, by an identifier search requesting unit, to search for the identifier to be searched only for the identifier registration server selected from among the plurality of identifier registration servers.

본 발명의 실시예에 따른 블룸필터를 이용한 분산식별자 검색 방법은: 식별자 수신부에 의해, 클라이언트 단말로부터 상기 검색대상 식별자에 해당하는 식별자 정보를 수신하는 단계; 해쉬함수 결정부에 의해, 상기 식별자 정보를 미리 정의된 함수에 적용하여 상기 해쉬 함수를 결정하는 단계; 및 비트와이즈 앤드연산부에 의해, 상기 비트들에 대해 비트와이즈 앤드 연산을 수행하여 비트와이즈 앤드 연산 데이터를 생성하는 단계;를 더 포함할 수 있다.A distributed identifier search method using a bloom filter according to an embodiment of the present invention includes: receiving identifier information corresponding to the search target identifier from a client terminal by an identifier receiver; determining the hash function by applying the identifier information to a predefined function by a hash function determiner; and generating bitwise and operation data by performing a bitwise and operation on the bits by a bitwise and operation unit.

상기 비트들을 추출하는 단계는 상기 블룸 매트릭스 중 상기 해쉬 함수에 해당하는 비트열들 또는 비트행들을 추출하는 단계를 포함할 수 있다. 상기 식별자 등록서버를 선별하는 단계는 상기 비트와이즈 앤드 연산 데이터 중 비트 '1'에 해당하는 식별자 등록서버를 선택하는 단계를 포함할 수 있다.Extracting the bits may include extracting bit strings or bit rows corresponding to the hash function from the bloom matrix. Selecting the identifier registration server may include selecting an identifier registration server corresponding to bit '1' of the bitwise and operation data.

본 발명의 실시예에 따르면, 상기 블룸필터를 이용한 분산식별자 검색 방법을 실행하기 위한 프로그램이 기록된 컴퓨터로 판독 가능한 기록 매체가 제공된다.According to an embodiment of the present invention, a computer-readable recording medium on which a program for executing the distributed identifier search method using the bloom filter is recorded is provided.

본 발명의 실시예에 따른 블룸필터를 이용한 분산식별자 검색 장치는: 각 식별자 등록서버에 등록된 식별자들을 대표하는 비트패턴인 블룸필터를 다수의 식별자 등록서버로부터 각각 수집하도록 구성되는 블룸필터 수집부; 상기 다수의 식별자 등록서버로부터 수집된 다수의 블룸필터를 매트릭스 형식으로 구성하여 블룸 매트릭스를 생성하도록 구성되는 블룸매트릭스 생성부; 검색대상 식별자에 대응되는 해쉬 함수를 기반으로, 상기 블룸 매트릭스로부터 상기 해쉬 함수에 해당하는 비트들을 추출하도록 구성되는 비트 추출부; 상기 비트들에 기초한 연산 결과에 따라 상기 검색대상 식별자를 보유할 가능성이 있는 식별자 등록서버를 선별하도록 구성되는 식별자 등록서버 선택부; 및 상기 다수의 식별자 등록서버 중에서 선별된 식별자 등록서버에만 상기 검색대상 식별자의 검색을 요청하도록 구성되는 식별자 검색 요청부;를 포함한다.A distributed identifier search apparatus using a bloom filter according to an embodiment of the present invention includes: a bloom filter collection unit configured to collect bloom filters, which are bit patterns representing identifiers registered in each identifier registration server, from a plurality of identifier registration servers; a bloom matrix generation unit configured to generate a bloom matrix by composing a plurality of bloom filters collected from the plurality of identifier registration servers in a matrix form; a bit extraction unit configured to extract bits corresponding to the hash function from the bloom matrix based on a hash function corresponding to a search target identifier; an identifier registration server selector configured to select an identifier registration server that may have the search target identifier according to an operation result based on the bits; and an identifier search request unit configured to request a search for the identifier to be searched only for the identifier registration server selected from among the plurality of identifier registration servers.

본 발명의 실시예에 따른 블룸필터를 이용한 분산식별자 검색 장치는: 클라이언트 단말로부터 상기 검색대상 식별자에 해당하는 식별자 정보를 수신하도록 구성되는 식별자 수신부; 상기 식별자 정보를 미리 정의된 함수에 적용하여 상기 해쉬 함수를 결정하도록 구성되는 해쉬함수 결정부; 및 상기 비트들에 대해 비트와이즈 앤드 연산을 수행하여 비트와이즈 앤드 연산 데이터를 생성하도록 구성되는 비트와이즈 앤드연산부;를 더 포함할 수 있다.A distributed identifier search apparatus using a bloom filter according to an embodiment of the present invention includes: an identifier receiver configured to receive identifier information corresponding to the identifier to be searched from a client terminal; a hash function determiner configured to determine the hash function by applying the identifier information to a predefined function; and a bitwise AND operator configured to generate bitwise AND operation data by performing a bitwise AND operation on the bits.

상기 비트 추출부는 상기 블룸 매트릭스 중 상기 해쉬 함수에 해당하는 비트열들 또는 비트행들을 추출하도록 구성될 수 있다. 상기 식별자 등록서버 선택부는 상기 비트와이즈 앤드 연산 데이터 중 비트 '1'에 해당하는 식별자 등록서버를 선택하도록 구성될 수 있다.The bit extraction unit may be configured to extract bit strings or bit rows corresponding to the hash function from the bloom matrix. The identifier registration server selection unit may be configured to select an identifier registration server corresponding to bit '1' of the bitwise and operation data.

본 발명의 실시예에 의하면, 다수의 식별자 등록서버 환경에서 블룸필터(bloom filter)를 이용하여 검색대상 식별자가 있을 가능성이 있는 식별자 등록서버를 선별하여 검색요청을 함으로써, 분산식별자 검색을 위한 통신량과 검색 소요시간을 줄일 수 있는 블룸필터를 이용한 분산식별자 검색 장치 및 그 방법이 제공된다.According to an embodiment of the present invention, in a plurality of identifier registration server environments, by using a bloom filter to select an identifier registration server with a possibility of having a search target identifier and requesting a search, the traffic for distributed identifier search and A distributed identifier search apparatus and method using a bloom filter capable of reducing search time are provided.

도 1은 본 발명의 실시예에 따른 블룸필터를 이용한 분산식별자 검색 장치의 구성도이다.
도 2는 본 발명의 실시예에 따른 블룸필터를 이용한 분산식별자 검색 장치를 구성하는 분산식별자 검색부의 구성도이다.
도 3은 본 발명의 실시예에 따른 블룸필터를 이용한 분산식별자 검색 방법의 순서도이다.
도 4는 본 발명의 실시예에 따른 블룸필터를 이용한 분산식별자 검색 방법을 설명하기 위한 개념도이다.
1 is a block diagram of a distributed identifier search apparatus using a bloom filter according to an embodiment of the present invention.
2 is a block diagram of a distributed identifier search unit constituting a distributed identifier search apparatus using a bloom filter according to an embodiment of the present invention.
3 is a flowchart of a distributed identifier search method using a bloom filter according to an embodiment of the present invention.
4 is a conceptual diagram for explaining a distributed identifier search method using a bloom filter according to an embodiment of the present invention.

본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 개시되는 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 본 실시예들은 본 발명의 개시가 완전하도록 하고, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다. 명세서 전체에 걸쳐 동일 참조 부호는 동일 구성 요소를 지칭한다.Advantages and features of the present invention, and methods of achieving them, will become clear with reference to the detailed description of the following embodiments taken in conjunction with the accompanying drawings. However, the present invention is not limited to the embodiments disclosed below, but may be implemented in various different forms, and only these embodiments make the disclosure of the present invention complete, and common knowledge in the art to which the present invention belongs. It is provided to completely inform the person who has the scope of the invention, and the present invention is only defined by the scope of the claims. Like reference numbers designate like elements throughout the specification.

본 명세서에서, 어떤 부분이 어떤 구성요소를 '포함'한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있는 것을 의미한다. 본 명세서에서 사용되는 '~부'는 적어도 하나의 기능이나 동작을 처리하는 단위로서, 예를 들어 소프트웨어, FPGA 또는 하드웨어 구성요소를 의미할 수 있다. '~부'에서 제공하는 기능은 복수의 구성요소에 의해 분리되어 수행되거나, 다른 추가적인 구성요소와 통합될 수도 있다. 본 명세서의 '~부'는 반드시 소프트웨어 또는 하드웨어에 한정되지 않으며, 어드레싱할 수 있는 저장 매체에 있도록 구성될 수도 있고, 하나 또는 그 이상의 프로세서들을 재생시키도록 구성될 수도 있다. 이하에서는 도면을 참조하여 본 발명의 실시예에 대해서 구체적으로 설명하기로 한다.In the present specification, when a part 'includes' a certain component, it means that it may further include other components without excluding other components unless otherwise stated. '~ unit' used in this specification is a unit that processes at least one function or operation, and may mean, for example, software, an FPGA, or a hardware component. Functions provided by '~unit' may be performed separately by a plurality of components or may be integrated with other additional components. '~unit' in this specification is not necessarily limited to software or hardware, and may be configured to be in an addressable storage medium or configured to reproduce one or more processors. Hereinafter, embodiments of the present invention will be described in detail with reference to the drawings.

도 1은 본 발명의 실시예에 따른 블룸필터를 이용한 분산식별자 검색 장치의 구성도이다. 본 발명의 실시예에 따른 블룸필터를 이용한 분산식별자 검색 장치는 분산식별자 검색부(100)를 포함한다. 분산식별자 검색부(100)는 클라이언트 단말(10) 및 다수의 식별자 등록서버(20)와 네트워크 통신을 통해 연결될 수 있다.1 is a block diagram of a distributed identifier search apparatus using a bloom filter according to an embodiment of the present invention. A distributed identifier search apparatus using a bloom filter according to an embodiment of the present invention includes a distributed identifier search unit 100 . The distributed identifier search unit 100 may be connected to the client terminal 10 and the plurality of identifier registration servers 20 through network communication.

클라이언트 단말(10)은 분산식별자 검색부(100)로 검색대상 식별자(클라이언트의 상대방에 해당하는 상대방 단말의 식별자)에 해당하는 식별자 정보를 전달할 수 있다. 클라이언트 단말(10)은 스마트폰, 스마트패드, 노트북, 랩탑, 데스크탑 PC 등의 단말기일 수 있으나, 이에 한정되는 것은 아니다.The client terminal 10 may transmit identifier information corresponding to a search object identifier (identifier of a counterpart terminal corresponding to a counterpart of the client) to the distributed identifier search unit 100 . The client terminal 10 may be a terminal such as a smart phone, smart pad, notebook, laptop, desktop PC, but is not limited thereto.

각 식별자 등록서버(22, 24, 26)는 분산식별자(DID; Decentralized Identifier) 등록을 위한 DID 레지스트리(registry)를 포함할 수 있다. 분산식별자(DID)는 다양한 엔티티(예를 들어, 사람, 기관, 사물, 데이터 등)를 분산된 방식으로 식별하기 위한 식별자일 수 있다. 각 식별자 등록서버(22, 24, 26)는 분산식별자들과, 분산식별자들과 관련된 분산식별자 문서들을 기록하여 관리할 수 있다.Each identifier registration server 22, 24, 26 may include a DID registry for registering a decentralized identifier (DID). A distributed identifier (DID) may be an identifier for identifying various entities (eg, people, institutions, things, data, etc.) in a distributed manner. Each of the identifier registration servers 22, 24, and 26 may record and manage distributed identifiers and distributed identifier documents related to the distributed identifiers.

이와 같은 다수의 식별자 등록서버 환경에서는 검색대상 식별자가 어느 식별자 등록서버에 등록되어 있는지 알 수 없다. 이에 본 발명의 실시예에서는 다수의 식별자 등록서버(20) 중 검색대상 식별자가 있을 가능성이 있는 일부 식별자 등록서버들을 선별하여, 선별된 식별자 등록서버들에만 검색대상 식별자의 검색을 요청하는 방법을 제안한다.In such an environment of multiple identifier registration servers, it is not possible to know in which identifier registration server an identifier to be searched is registered. Therefore, in the embodiment of the present invention, a method of selecting some identifier registration servers that may have search target identifiers among a plurality of identifier registration servers 20 and requesting search for search target identifiers only to the selected identifier registration servers is proposed. do.

이를 위해, 다수의 식별자 등록서버(20)의 각 식별자 등록서버(22, 24, 26)는 블룸필터(bloom filter)를 분산식별자 검색부(100)로 전파할 수 있다. 블룸필터는 각 식별자 등록서버(22, 24, 26)에 등록된 식별자들을 대표하는 비트패턴일 수 있다.To this end, each identifier registration server 22, 24, 26 of the plurality of identifier registration servers 20 may propagate a bloom filter to the distributed identifier search unit 100. The bloom filter may be a bit pattern representing identifiers registered in the respective identifier registration servers 22, 24, and 26.

보다 구체적으로 설명하면, 각 식별자 등록서버(22, 24, 26)의 초기(최초) 블룸필터는 모든 비트값이 '0'의 값으로 생성되며, 이후 블룸필터는 해당 식별자 등록서버(22, 24, 26)에 새로운 식별자 등록시 마다, 해당 식별자로부터 미리 정의된 규칙(또는 제1 함수)에 따라 생성되는 일부의 비트값들을 '1'로 갱신하게 된다.More specifically, in the initial (first) bloom filter of each identifier registration server 22, 24, 26, all bit values are generated with a value of '0', and then the bloom filter corresponds to the identifier registration server 22, 24 , 26), when a new identifier is registered, some bit values generated from the corresponding identifier according to a predefined rule (or first function) are updated to '1'.

예를 들어, 식별자를 제1 함수에 적용하여 생성되는 비트열의 k번째(예를 들어, 3번째, 6번째, 및 8번째) 비트값이 '1'인 경우, 블룸필터의 k번째(예를 들어, 3번째, 6번째, 및 8번째) 비트값이 '0'에서 '1'로 갱신된다. 블룸필터의 k번째 비트값이 원래 '1'인 경우, 블룸필터의 k번째 비트값은 '1'로 그대로 유지된다.For example, when the k-th (eg, 3rd, 6th, and 8th) bit values of a bit string generated by applying the identifier to the first function are '1', the k-th (eg, For example, the third, sixth, and eighth) bit values are updated from '0' to '1'. When the k-th bit value of the bloom filter is originally '1', the k-th bit value of the bloom filter remains '1'.

도 2는 본 발명의 실시예에 따른 블룸필터를 이용한 분산식별자 검색 장치를 구성하는 분산식별자 검색부의 구성도이다. 도 1 및 도 2를 참조하면, 분산식별자 검색부(100)는 식별자 수신부(110), 해쉬함수 결정부(120), 블룸필터 수집부(130), 블룸매트릭스 생성부(140), 비트 추출부(150), 비트와이즈앤드 연산부(160), 식별자 등록서버 선택부(170), 및 식별자 검색 요청부(180)를 포함할 수 있다.2 is a block diagram of a distributed identifier search unit constituting a distributed identifier search apparatus using a bloom filter according to an embodiment of the present invention. 1 and 2, the distributed identifier search unit 100 includes an identifier receiver 110, a hash function determiner 120, a bloom filter collector 130, a bloom matrix generator 140, and a bit extractor. 150, a bitwise and operation unit 160, an identifier registration server selection unit 170, and an identifier search request unit 180.

식별자 수신부(110)는 클라이언트 단말(10)로부터 검색대상 식별자에 해당하는 식별자 정보(30)를 수신할 수 있다. 해쉬함수 결정부(120)는 식별자 수신부(110)에서 수신한 식별자 정보를 미리 정의된 함수에 적용하여 해쉬 함수들(hash function)(해쉬 함수값들)을 결정할 수 있다.The identifier receiver 110 may receive identifier information 30 corresponding to an identifier to be searched from the client terminal 10 . The hash function determiner 120 may determine hash functions (hash function values) by applying the identifier information received from the identifier receiver 110 to a predefined function.

해쉬 함수값들의 개수 k는 1 보다 크고 m(블룸필터의 비트수) 보다 작은 정수일 수 있다. 해쉬 함수들의 결정을 위한 미리 정의된 함수는 다수의 식별자 등록서버(20)에서 블룸필터를 생성하는데 활용되는 블룸필터 함수에 대응되는 함수(예를 들어, 앞서 언급한 제1 함수와 같은 함수)일 수 있다.The number k of hash function values may be an integer larger than 1 and smaller than m (the number of bits of the bloom filter). A predefined function for determining hash functions is a function corresponding to a bloom filter function used to generate a bloom filter in a plurality of identifier registration servers 20 (eg, the same function as the first function mentioned above). can

해쉬 함수값들은 블룸필터의 비트열 또는 비트행 중 비트값이 '1'인 일부 행들(또는 일부 열들)을 나타낼 수 있다. 해쉬 함수값들은 각각 비트 '1' 값을 가지며, 블룸필터의 비트행 또는 비트열의 m개의 비트들 중 어느 하나의 행 또는 열의 번호에 매핑될 수 있다.The hash function values may represent some rows (or some columns) of which a bit value is '1' among bit rows or bit rows of the bloom filter. The hash function values each have a bit '1' value, and may be mapped to any one row or column number among m bits of the bit row or bit string of the bloom filter.

예를 들어, 해쉬 함수값들은 검색대상 식별자를 미리 정의된 규칙에 해당하는 제1 함수에 적용하였을 때 출력되는 비트열(또는 비트행) 중에서 비트 '1' 값에 해당하는 행들(또는 열들)이 각각 비트열(또는 비트행) 중에서 몇번째 순번인지를 나타낼 수 있다.For example, hash function values include rows (or columns) corresponding to the bit '1' value among bit strings (or bit rows) output when a search target identifier is applied to a first function corresponding to a predefined rule. Each bit string (or bit row) may indicate what order it is.

검색대상 식별자를 미리 정의된 규칙에 해당하는 제1 함수에 적용하였을 때 2번째, 4번째, 및 8번째 순번에 해당하는 비트값이 '1'인 경우, 블룸 매트릭스(40)의 2번째, 4번째, 및 8번째 순번에 해당하는 비트행들(또는 비트열들)을 추출하는 해쉬 함수들이 결정될 수 있다.When the search target identifier is applied to the first function corresponding to the predefined rule, when the bit values corresponding to the second, fourth, and eighth sequential numbers are '1', the second and fourth Hash functions for extracting bit rows (or bit strings) corresponding to the th and 8th sequences may be determined.

블룸필터 수집부(130)는 각 식별자 등록서버(22, 24, 26)에 등록된 식별자들을 대표하는 비트패턴인 블룸필터(bloom filter)를 다수의 식별자 등록서버(20)로부터 각각 수집할 수 있다.The bloom filter collection unit 130 may collect bloom filters, which are bit patterns representing identifiers registered in each identifier registration server 22, 24, and 26, from a plurality of identifier registration servers 20, respectively. .

블룸매트릭스 생성부(140)는 다수의 식별자 등록서버(20)로부터 수집된 다수의 블룸필터를 매트릭스(Matrix) 형식으로 구성하여 블룸 매트릭스(bloom matrix)(40)를 생성할 수 있다.The bloom matrix generation unit 140 may generate a bloom matrix 40 by configuring a plurality of bloom filters collected from a plurality of identifier registration servers 20 in a matrix format.

비트 추출부(150)는 검색대상 식별자에 대응되는 해쉬 함수를 기반으로, 블룸 매트릭스(40)로부터 해쉬 함수에 해당하는 비트들을 추출할 수 있다. 즉, 비트 추출부(150)는 블룸 매트릭스(40) 중 해쉬함수 결정부(120)에 의해 결정된 해쉬 함수들에 해당하는 비트열들 또는 비트행들을 추출할 수 있다.The bit extractor 150 may extract bits corresponding to the hash function from the bloom matrix 40 based on the hash function corresponding to the search target identifier. That is, the bit extractor 150 may extract bit strings or bit rows corresponding to the hash functions determined by the hash function determiner 120 from the bloom matrix 40 .

비트와이즈앤드 연산부(160)는 비트 추출부(150)에 의해 추출된 비트들에 대해 비트와이즈 앤드(Bitwise And) 연산을 수행하여 비트와이즈 앤드 연산 데이터(50)를 생성할 수 있다.The bitwise and operation unit 160 may generate bitwise and operation data 50 by performing a bitwise and operation on the bits extracted by the bit extraction unit 150 .

식별자 등록서버 선택부(170)는 비트 추출부(150)에 의해 블룸매트릭스로부터 추출된 비트들에 기초한 연산 결과에 따라, 검색대상 식별자를 보유할 가능성이 있는 식별자 등록서버를 선별할 수 있다.The identifier registration server selector 170 may select an identifier registration server that may have an identifier to be searched according to an operation result based on the bits extracted from the bloom matrix by the bit extractor 150.

이때, 식별자 등록서버 선택부(170)는 비트와이즈앤드 연산부(160)에 의해 생성된 비트와이즈 앤드 연산 데이터 중 비트 '1'에 해당하는 식별자 등록서버를 선택할 수 있다.At this time, the identifier registration server selection unit 170 may select an identifier registration server corresponding to bit '1' among the bitwise and operation data generated by the bitwise and operation unit 160 .

식별자 검색 요청부(180)는 식별자 등록서버 선택부(170)에 의해 다수의 식별자 등록서버(20) 중에서 선별된 식별자 등록서버에만 검색대상 식별자의 검색을 요청할 수 있다.The identifier search request unit 180 may request search target identifier search only for the identifier registration server selected from among the plurality of identifier registration servers 20 by the identifier registration server selection unit 170 .

이때 식별자 검색 요청부(180)는 멀티캐스트(multicast), 반복적(iterative) 또는 임의(random) 검색 요청을 통해, 식별자 등록서버 선택부(170)에 의해 선택된 식별자 등록서버에만 검색대상 식별자의 검색을 요청할 수 있다.At this time, the identifier search request unit 180 searches for the search target identifier only for the identifier registration server selected by the identifier registration server selection unit 170 through a multicast, iterative, or random search request. can request

상술한 바와 같은 본 발명의 실시예에 의하면, 다수의 식별자 등록서버 환경에서 블룸필터를 이용하여 검색대상 식별자가 있을 가능성이 있는 식별자 등록서버를 선별하여 검색요청을 함으로써, 분산식별자 검색을 위한 통신량과 검색 소요시간을 줄일 수 있다.According to the embodiment of the present invention as described above, by using a bloom filter in a plurality of identifier registration server environments, an identifier registration server with a possibility of having an identifier to be searched is selected and a search request is made, thereby reducing the traffic volume for distributed identifier search and Search time can be reduced.

도 3은 본 발명의 실시예에 따른 블룸필터를 이용한 분산식별자 검색 방법의 순서도이다. 도 4는 본 발명의 실시예에 따른 블룸필터를 이용한 분산식별자 검색 방법을 설명하기 위한 개념도이다. 이하에서 도 1 내지 도 4를 참조하여, 본 발명의 실시예에 따른 블룸필터를 이용한 분산식별자 검색 방법에 대해 설명한다.3 is a flowchart of a distributed identifier search method using a bloom filter according to an embodiment of the present invention. 4 is a conceptual diagram for explaining a distributed identifier search method using a bloom filter according to an embodiment of the present invention. Hereinafter, a distributed identifier search method using a bloom filter according to an embodiment of the present invention will be described with reference to FIGS. 1 to 4.

다수의 식별자 등록서버(20)의 각 식별자 등록서버(22, 24, 26)는 각 식별자 등록서버(22, 24, 26)에 등록된 식별자들을 대표하는 비트패턴인 블룸필터(bloom filter)를 분산식별자 검색부(100)로 전파할 수 있다(S10).Each identifier registration server 22, 24, 26 of the plurality of identifier registration servers 20 distributes a bloom filter, which is a bit pattern representing identifiers registered in each identifier registration server 22, 24, 26 It can propagate to the identifier search unit 100 (S10).

분산식별자 검색부(100)의 블룸필터 수집부(130)는 각 식별자 등록서버(22, 24, 26)에 등록된 식별자들을 대표하는 비트패턴인 블룸필터를 다수의 식별자 등록서버(20)로부터 각각 수집할 수 있다.The bloom filter collection unit 130 of the distributed identifier search unit 100 obtains a bloom filter, which is a bit pattern representing identifiers registered in each identifier registration server 22, 24, 26, from a plurality of identifier registration servers 20, respectively. can be collected

분산식별자 검색부(100)의 블룸매트릭스 생성부(140)는 다수의 식별자 등록서버(20)로부터 수집된 다수의 블룸필터를 매트릭스 형식으로 구성하여 블룸 매트릭스(40)를 생성할 수 있다(S20).The bloom matrix generation unit 140 of the distributed identifier search unit 100 may generate a bloom matrix 40 by configuring a plurality of bloom filters collected from a plurality of identifier registration servers 20 in a matrix format (S20). .

이때 블룸 매트릭스 생성부(140)는 각 식별자 등록서버(22, 24, 26)의 블룸필터에 해당하는 청크(chunk)(42)를 열 단위 또는 행 단위로 합성하여 매트릭스 형식으로 구성함으로써 블룸 매트릭스(40)를 생성할 수 있다.At this time, the bloom matrix generator 140 synthesizes the chunks 42 corresponding to the bloom filters of each identifier registration server 22, 24, and 26 column by row or row by column and configures them in a matrix form to obtain a bloom matrix ( 40) can be created.

도 4의 예시에서, 각 청크(42)에 해당하는 블룸필터는 블룸 매트릭스(40)의 비트열(44) 또는 비트행을 구성하고, 블룸 매트릭스(40)의 열은 S개의 식별자 등록서버(20)의 인덱스들(S1, S2, S3, ..., SS)에 해당한다.In the example of FIG. 4, the bloom filter corresponding to each chunk 42 constitutes a bit string 44 or a bit row of the bloom matrix 40, and the columns of the bloom matrix 40 are S identifier registration servers 20 ) corresponds to the indices (S 1 , S 2 , S 3 , ..., S S ).

클라이언트 단말(10)은 분산식별자 검색부(100)로 검색대상 식별자(클라이언트의 상대방에 해당하는 상대방 단말의 식별자)에 해당하는 식별자 정보를 전달할 수 있다(S30). 분산식별자 검색부(100)의 식별자 수신부(110)는 클라이언트 단말(10)로부터 검색대상 식별자에 해당하는 식별자 정보(30)를 수신할 수 있다.The client terminal 10 may transmit identifier information corresponding to a search target identifier (identifier of the counterpart terminal corresponding to the counterpart of the client) to the distributed identifier search unit 100 (S30). The identifier receiver 110 of the distributed identifier search unit 100 may receive identifier information 30 corresponding to an identifier to be searched from the client terminal 10 .

분산식별자 검색부(100)의 해쉬함수 결정부(120)는 식별자 수신부(110)에서 수신한 식별자 정보(30)를 미리 정의된 함수에 적용하여 해쉬 함수(hash function)(122)를 결정할 수 있다(S40).The hash function determiner 120 of the distributed identifier search unit 100 may determine a hash function 122 by applying the identifier information 30 received from the identifier receiver 110 to a predefined function. (S40).

해쉬 함수값들의 개수 k는 1 보다 크고 m(블룸필터의 비트수) 보다 작은 정수일 수 있다. 해쉬 함수들의 결정을 위한 미리 정의된 함수는 다수의 식별자 등록서버(20)에서 블룸필터를 생성하는데 활용되는 블룸필터 함수에 대응되는 함수일 수 있다.The number k of hash function values may be an integer larger than 1 and smaller than m (the number of bits of the bloom filter). A predefined function for determining hash functions may be a function corresponding to a bloom filter function used to generate a bloom filter in the plurality of identifier registration servers 20 .

해쉬 함수들은 블룸필터의 비트열 또는 비트행 중 비트값이 '1'인 일부 행들(또는 일부 열들)을 나타낼 수 있다. 해쉬 함수값들은 각각 비트 '1' 값을 가지며, 블룸필터의 비트행 또는 비트열의 m개의 비트들 중 어느 하나의 행 또는 열의 번호에 매핑될 수 있다.The hash functions may represent some rows (or some columns) of which a bit value is '1' among bit rows or bit rows of the bloom filter. The hash function values each have a bit '1' value, and may be mapped to any one row or column number among m bits of the bit row or bit string of the bloom filter.

분산식별자 검색부(100)의 비트 추출부(150)는 검색대상 식별자에 대응되는 해쉬 함수를 기반으로, 블룸 매트릭스(40)로부터 해쉬 함수에 해당하는 비트들을 추출할 수 있다(S50).The bit extraction unit 150 of the distributed identifier search unit 100 may extract bits corresponding to the hash function from the bloom matrix 40 based on the hash function corresponding to the search target identifier (S50).

즉, 분산식별자 검색부(100)의 비트 추출부(150)는 블룸 매트릭스(40) 중 해쉬함수 결정부(120)에 의해 결정된 해쉬 함수에 해당하는 비트열들 또는 비트행들을 추출할 수 있다. 비트 추출부(150)에 의해 블룸 매트릭스(40)로부터 추출된 비트열들 또는 비트행들은 메모리에 저장될 수 있다.That is, the bit extractor 150 of the distributed identifier search unit 100 may extract bit strings or bit rows corresponding to the hash function determined by the hash function determiner 120 from the bloom matrix 40 . Bit strings or bit rows extracted from the bloom matrix 40 by the bit extractor 150 may be stored in a memory.

분산식별자 검색부(100)의 비트와이즈앤드 연산부(160)는 비트 추출부(150)에 의해 추출된 비트들에 대해 청크(42) 단위로 비트와이즈 앤드(Bitwise And) 연산을 수행하여 비트와이즈 앤드 연산 데이터(50)를 생성할 수 있다(S60).The bitwise and operation unit 160 of the distributed identifier search unit 100 performs a bitwise and operation on the bits extracted by the bit extraction unit 150 in units of chunks 42 to perform a bitwise AND operation. Operation data 50 may be generated (S60).

비트와이즈앤드 연산부(160)는 하나 이상의 프로세서(Processor), 예를 들어, 그래픽 처리장치(GPU; Graphic Processing Unit)에 의해 비트와이즈 앤드 연산을 수행할 수 있다.The bitwise and operation unit 160 may perform bitwise and operation by one or more processors, for example, a graphic processing unit (GPU).

비트와이즈앤드 연산부(160)에 의해, 해쉬 함수들 H1(ID), H2(ID), H3(ID), H4(ID), H5(ID)에 대응되는 비트열들(또는 비트행)들이 모두 비트 '1'에 해당하는 청크(42)는 비트 '1'의 값이 출력되고, 해쉬 함수들에 대응되는 비트열들(또는 비트행들) 중 적어도 하나가 비트 '0'에 해당하는 청크(42)는 비트 '0'의 값이 출력될 수 있다. Bit strings ( or _ A value of bit '1' is output for the chunk 42 in which all bit rows) correspond to bit '1', and at least one of the bit strings (or bit rows) corresponding to hash functions is bit '0'. The chunk 42 corresponding to may output a value of bit '0'.

분산식별자 검색부(100)의 식별자 등록서버 선택부(170)는 비트 추출부(150)에 의해 블룸매트릭스로부터 추출된 비트들에 기초한 연산 결과에 따라, 검색대상 식별자를 보유할 가능성이 있는 식별자 등록서버를 선별할 수 있다(S70).The identifier registration server selection unit 170 of the distributed identifier search unit 100 registers an identifier that may have a search target identifier according to an operation result based on the bits extracted from the bloom matrix by the bit extractor 150 A server may be selected (S70).

이때, 식별자 등록서버 선택부(170)는 비트와이즈앤드 연산부(160)에 의해 생성된 비트와이즈 앤드 연산 데이터(50) 중 비트 '1'에 해당하는 식별자 등록서버(S3, S7, S10, ..., SK)(K는 1 이상, S 이하의 정수)를 선택할 수 있다.At this time, the identifier registration server selection unit 170 selects the identifier registration server (S 3 , S 7 , S 10 ) corresponding to bit '1' of the bitwise and operation data 50 generated by the bitwise and operation unit 160. , ..., S K ) (K is an integer of 1 or more and S or less) can be selected.

즉, 분산식별자 검색부(100)의 비트와이즈앤드 연산부(160)는 블룸 매트릭스(40)의 특정 비트열 또는 특정 비트행이 모두 비트 '1'인 블룸필터를 가지는 식별자 등록서버(S3, S7, S10, ..., SK) 만을 선택할 수 있다.That is, the bitwise and operation unit 160 of the distributed identifier search unit 100 generates an identifier registration server (S 3 , S 7 , S 10 , ..., S K ) can be selected.

분산식별자 검색부(100)의 식별자 검색 요청부(180)는 식별자 등록서버 선택부(170)에 의해 다수의 식별자 등록서버(20) 중에서 선별된 식별자 등록서버(S3, S7, S10, ..., SK)에만 검색대상 식별자의 검색을 요청할 수 있다(S80).The identifier search request unit 180 of the distributed identifier search unit 100 selects the identifier registration servers S 3 , S 7 , S 10 , ..., S K ) can be requested to search for a search target identifier (S80).

상술한 바와 같은 본 발명의 실시예에 따른 블룸필터를 이용한 분산식별자 검색 방법은 다수의 식별자 등록서버들(예를 들어, 수십만 내지 수백만 개의 식별자 등록서버들)이 존재하는 환경에서 분산식별자(DID) 검색시 모든 식별자 등록서버들을 모두 검색하는 대신, 해당 검색대상 식별자를 보유하고 있을 가능성이 있는 식별자 등록서버만을 선별하여 검색한다.As described above, the distributed identifier search method using the bloom filter according to the embodiment of the present invention is a distributed identifier (DID) in an environment where a large number of identifier registration servers (eg, hundreds of thousands to millions of identifier registration servers) exist. When searching, instead of searching all identifier registration servers, only identifier registration servers that are likely to have the relevant search target identifier are selected and searched.

따라서, 본 발명의 실시예에 의하면, 다수의 식별자 등록서버 환경에서 블룸필터를 이용하여 검색대상 식별자가 있을 가능성이 있는 식별자 등록서버를 선별하여 검색요청을 함으로써, 모든 식별자 등록서버로 검색요청을 보내는 방식에 비하여 분산식별자 검색을 위한 통신량과 검색시간을 단축할 수 있다.Therefore, according to an embodiment of the present invention, by using a bloom filter in a plurality of identifier registration server environments, an identifier registration server with a possibility of having a search target identifier is selected and a search request is made, thereby sending a search request to all identifier registration servers Compared to the method, the amount of communication and search time for distributed identifier search can be reduced.

또한, 본 발명의 실시예에 의하면, 검색대상 식별자가 특정 식별자 등록서버에 있음에도 불구하고 해당 식별자 등록서버에 검색대상 식별자가 없는 것으로 판단되는 부정 오류(false negatives)를 허용하지 않으므로(검색대상 식별자가 위치한 식별자 등록서버에 해당하는 비트와이즈 앤드 연산 데이터의 비트 값이 '0'이 될 수 없음), 통신량과 검색시간을 단축하면서 검색대상 식별자를 찾을 수 있다.In addition, according to the embodiment of the present invention, even though the identifier to be searched is in the specific identifier registration server, false negatives are not allowed in which it is determined that there is no identifier to be searched in the corresponding identifier registration server (the identifier to be searched is The bit value of the bitwise AND operation data corresponding to the located identifier registration server cannot be '0'), and the search target identifier can be found while reducing the amount of communication and search time.

이상에서 설명된 실시예들은 하드웨어 구성요소, 소프트웨어 구성요소, 및/ 또는 하드웨어 구성요소 및 소프트웨어 구성요소의 조합으로 구현될 수 있다. 예를 들어, 실시예들에서 설명된 장치, 방법 및 구성요소는, 예를 들어, 프로세서, 콘트롤러, ALU(Arithmetic Logic Unit), 디지털 신호 프로세서(Digital Signal Processor), 마이크로컴퓨터, FPGA(Field Programmable Gate Array), PLU(Programmable Logic Unit), 마이크로프로세서, 또는 명령(instruction)을 실행하고 응답할 수 있는 다른 어떠한 장치와 같이, 하나 이상의 범용 컴퓨터 또는 특수 목적 컴퓨터를 이용하여 구현될 수 있다.The embodiments described above may be implemented as hardware components, software components, and/or a combination of hardware components and software components. For example, the devices, methods and components described in the embodiments may include, for example, a processor, a controller, an arithmetic logic unit (ALU), a digital signal processor, a microcomputer, a field programmable gate (FPGA) array), programmable logic units (PLUs), microprocessors, or any other device capable of executing and responding to instructions.

처리 장치는 운영 체제 및 상기 운영 체제 상에서 수행되는 하나 이상의 소프트웨어 애플리케이션을 수행할 수 있다. 또한, 처리 장치는 소프트웨어의 실행에 응답하여, 데이터를 접근, 저장, 조작, 처리 및 생성할 수도 있다. 이해의 편의를 위하여, 처리 장치는 하나가 사용되는 것으로 설명된 경우도 있지만, 해당 기술 분야에서 통상의 지식을 가진 자는 처리 장치가 복수 개의 처리 요소(Processing Element) 및/또는 복수 유형의 처리요소를 포함할 수 있음을 이해할 것이다.A processing device may run an operating system and one or more software applications running on the operating system. A processing device may also access, store, manipulate, process, and generate data in response to execution of software. For convenience of understanding, there are cases in which one processing device is used, but those skilled in the art know that a processing device includes a plurality of processing elements and/or a plurality of types of processing elements. It will be understood that it can include

예를 들어, 처리 장치는 복수 개의 프로세서 또는 하나의 프로세서 및 하나의 콘트롤러를 포함할 수 있다. 또한, 병렬 프로세서(Parallel Processor) 와 같은, 다른 처리 구성(Processing configuration)도 가능하다. 소프트웨어는 컴퓨터 프로그램(Computer Program), 코드(code), 명령(instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로(collectively) 처리 장치를 명령할 수 있다.For example, a processing device may include a plurality of processors or a processor and a controller. Also, other processing configurations are possible, such as a parallel processor. Software may include a computer program, code, instructions, or a combination of one or more of the foregoing, which configures a processing device to operate as desired or processes independently or collectively. You can command the device.

소프트웨어 및/ 또는 데이터는, 처리 장치에 의하여 해석되거나 처리 장치에 명령 또는 데이터를 제공하기 위하여, 어떤 유형의 기계, 구성요소(component), 물리적 장치, 가상 장치(virtual equipment), 컴퓨터 저장 매체 또는 장치에 구체화(embody) 될 수 있다. 소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 하나 이상의 컴퓨터 판독 가능 기록 매체에 저장될 수 있다.Software and/or data may be any tangible machine, component, physical device, virtual equipment, computer storage medium or device, intended to be interpreted by or provide instructions or data to a processing device. can be embodied in Software may be distributed on networked computer systems and stored or executed in a distributed manner. Software and data may be stored on one or more computer readable media.

실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다.The method according to the embodiment may be implemented in the form of program instructions that can be executed through various computer means and recorded on a computer readable medium. Computer readable media may include program instructions, data files, data structures, etc. alone or in combination. Program commands recorded on the medium may be specially designed and configured for the embodiment or may be known and usable to those skilled in computer software.

컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CDROM, DVD와 같은 광기록 매체(optical media) 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 실시예의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.Examples of computer-readable recording media include magnetic media such as hard disks, floppy disks and magnetic tapes, optical media such as CDROMs and DVDs, and ROMs, RAMs, and flash memories. hardware devices specially configured to store and execute program instructions, such as; Examples of program instructions include high-level language codes that can be executed by a computer using an interpreter, as well as machine language codes such as those produced by a compiler. The hardware devices described above may be configured to operate as one or more software modules to perform the operations of the embodiments, and vice versa.

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

10: 클라이언트 단말
20: 다수의 식별자 등록서버
22, 24, 26: 식별자 등록서버
30: 식별자 정보
40: 블룸 매트릭스
50: 비트와이즈앤드 연산 데이터
100: 분산식별자 검색부
110: 식별자 수신부
120: 해쉬함수 결정부
130: 블룸필터 수집부
140: 블룸매트릭스 생성부
150: 비트 추출부
160: 비트와이즈앤드 연산부
170: 식별자 등록서버 선택부
180: 식별자 검색 요청부
10: client terminal
20: multiple identifier registration server
22, 24, 26: identifier registration server
30: identifier information
40: Bloom Matrix
50: bitwise and operation data
100: distributed identifier search unit
110: identifier receiver
120: hash function determining unit
130: Bloom filter collection unit
140: bloom matrix generator
150: bit extraction unit
160: bitwise and operation unit
170: identifier registration server selection unit
180: identifier search request unit

Claims (5)

블룸필터 수집부에 의해, 다수의 식별자 등록서버 중의 각 식별자 등록서버에 등록된 식별자들을 대표하는 비트패턴인 블룸필터를 상기 다수의 식별자 등록서버로부터 각각 수집하는 단계;
블룸매트릭스 생성부에 의해, 상기 다수의 식별자 등록서버로부터 수집된 다수의 블룸필터를 기초로, 상기 각 식별자 등록서버의 블룸필터에 해당하는 청크를 열 단위 또는 행 단위로 합성하여 매트릭스 형식으로 구성함으로써 블룸 매트릭스를 생성하는 단계;
식별자 수신부에 의해, 클라이언트 단말로부터 상기 클라이언트 단말의 상대방에 해당하는 상대방 단말의 식별자인 검색대상 식별자에 해당하는 식별자 정보를 수신하는 단계;
해쉬함수 결정부에 의해, 상기 식별자 수신부가 수신한 상기 식별자 정보를 미리 정의된 함수에 적용하여 상기 검색대상 식별자에 대응되는 해쉬 함수값들을 결정하는 단계;
비트 추출부에 의해, 상기 검색대상 식별자에 대응되는 상기 해쉬 함수값들을 기반으로, 상기 블룸 매트릭스로부터 상기 해쉬 함수값들에 해당하는 비트열들 또는 비트행들의 비트값들을 추출하는 단계;
비트와이즈 앤드연산부에 의해, 상기 비트 추출부에 의해 추출된 상기 비트값들에 대해 청크 단위로 비트와이즈 앤드 연산을 수행하여 비트와이즈 앤드 연산 데이터를 생성하는 단계;
식별자 등록서버 선택부에 의해, 상기 비트 추출부에 의해 상기 블룸 매트릭스로부터 추출된 상기 비트값들에 기초한 비트와이즈 앤드 연산 결과에 따라 상기 다수의 식별자 등록서버 중 상기 검색대상 식별자를 보유할 가능성이 있는 식별자 등록서버를 선별하는 단계; 및
식별자 검색 요청부에 의해, 상기 다수의 식별자 등록서버 중에서 상기 식별자 등록서버 선택부에 의해 선별된 식별자 등록서버에만 상기 검색대상 식별자의 검색을 요청하는 단계를 포함하고,
상기 각 식별자 등록서버는 분산식별자(DID) 등록을 위한 DID 레지스트리를 포함하며, 분산식별자들과 상기 분산식별자들과 관련된 분산식별자 문서들을 기록하여 관리하는 서버이고,
상기 분산식별자(DID)는 사람, 기관 및 사물을 포함하는 다수의 엔티티를 분산된 방식으로 식별하기 위한 식별자이고,
상기 청크에 해당하는 블룸필터는 상기 블룸 매트릭스의 비트열 또는 비트행을 구성하고, 상기 블룸 매트릭스의 열은 상기 식별자 등록서버의 인덱스들에 해당하고,
상기 각 식별자 등록서버의 초기 블룸필터는 모든 비트값이 '0'의 값으로 생성되며,
상기 식별자 등록서버에 새로운 식별자 등록시 마다, 새로 등록되는 식별자를 미리 정의된 제1 함수에 적용하여 생성되는 비트행 또는 비트열 중 정수인 k번째 비트값이 '1'인 경우, 상기 식별자 등록서버의 상기 블룸필터의 k번째 비트값이 '0'에서 '1'로 갱신되고,
상기 해쉬 함수값들의 개수는 1 보다 크고 상기 블룸필터의 비트수 보다 작은 정수이고,
상기 해쉬 함수값들의 결정을 위한 상기 미리 정의된 함수는 상기 다수의 식별자 등록서버에서 상기 블룸필터를 생성하는데 활용되는 블룸필터 함수인 상기 제1 함수이고,
상기 해쉬 함수값들은 상기 블룸필터의 비트행 또는 비트열 중 비트값이 '1'인 일부 행들 또는 일부 열들을 나타내고,
상기 해쉬 함수값들은 각각 비트 '1' 값을 가지며, 상기 블룸필터의 비트행 또는 비트열의 비트들 중 어느 하나의 행 또는 열의 번호에 매핑되고,
상기 해쉬 함수값들은 상기 검색대상 식별자를 상기 제1 함수에 적용하였을 때 출력되는 비트행 또는 비트열 중에서 비트 '1' 값에 해당하는 행들 또는 열들이 각각 비트열 또는 비트행 중에서 몇번째 순번인지를 나타내고,
상기 비트와이즈앤드 연산부에 의해, 상기 해쉬 함수값들에 대응되는 비트열들 또는 비트행들이 모두 비트 '1'에 해당하는 청크인 경우 비트 '1'의 값이 출력되고, 상기 해쉬 함수값들에 대응되는 비트열들 또는 비트행들 중 적어도 하나가 비트 '0'에 해당하는 청크인 경우 비트 '0'의 값이 출력되며,
상기 식별자 등록서버를 선별하는 단계는 상기 비트와이즈 앤드 연산 데이터 중 비트 '1'에 해당하는 식별자 등록서버를 선택하는 단계를 포함하는,
블룸필터를 이용한 분산식별자 검색 방법.
Collecting bloom filters, which are bit patterns representing identifiers registered in each identifier registration server among the plurality of identifier registration servers, from the plurality of identifier registration servers, by a bloom filter collecting unit;
By the bloom matrix generator, based on the plurality of bloom filters collected from the plurality of identifier registration servers, the chunks corresponding to the bloom filters of each identifier registration server are synthesized in column or row units to form a matrix. generating a bloom matrix;
receiving identifier information corresponding to a search target identifier, which is an identifier of a counterpart terminal corresponding to a counterpart of the client terminal, from a client terminal by an identifier receiver;
determining hash function values corresponding to the search target identifier by applying the identifier information received by the identifier receiver to a predefined function, by a hash function determiner;
extracting, by a bit extraction unit, bit values of bit strings or bit rows corresponding to the hash function values from the bloom matrix, based on the hash function values corresponding to the search target identifier;
generating bitwise AND operation data by performing a bitwise AND operation in units of chunks on the bit values extracted by the bit extraction unit, by a bitwise AND operation unit;
Possibility of holding the search target identifier among the plurality of identifier registration servers according to the bitwise and operation result based on the bit values extracted from the bloom matrix by the identifier registration server selection unit, Selecting an identifier registration server; and
requesting, by an identifier search request unit, to search for the search target identifier only to the identifier registration server selected by the identifier registration server selection unit among the plurality of identifier registration servers;
Each of the identifier registration servers includes a DID registry for registering a distributed identifier (DID), and is a server that records and manages distributed identifiers and distributed identifier documents related to the distributed identifiers,
The distributed identifier (DID) is an identifier for identifying a plurality of entities including people, institutions, and things in a distributed manner,
The bloom filter corresponding to the chunk constitutes a bit string or bit row of the bloom matrix, and the columns of the bloom matrix correspond to indices of the identifier registration server,
In the initial bloom filter of each identifier registration server, all bit values are generated with a value of '0',
Whenever a new identifier is registered in the identifier registration server, when the k-th bit value, which is an integer among bit rows or bit strings generated by applying a newly registered identifier to a predefined first function, is '1', the identifier registration server The k-th bit value of the bloom filter is updated from '0' to '1',
The number of hash function values is an integer greater than 1 and smaller than the number of bits of the bloom filter,
The predefined function for determining the hash function values is the first function, which is a bloom filter function used to generate the bloom filter in the plurality of identifier registration servers,
The hash function values indicate some rows or some columns in which the bit value is '1' among the bit rows or bit strings of the bloom filter,
Each of the hash function values has a bit '1' value, and is mapped to a row or column number of any one of bits of the bit row or bit string of the bloom filter,
The hash function values determine the order in which rows or columns corresponding to the value of bit '1' among bit rows or bit strings output when the search target identifier is applied to the first function are in order among bit strings or bit rows, respectively. indicate,
When bit strings or bit rows corresponding to the hash function values are all chunks corresponding to bit '1' by the bitwise and operation unit, a value of bit '1' is output, and the value of the hash function is If at least one of the corresponding bit strings or bit rows is a chunk corresponding to bit '0', a value of bit '0' is output,
Selecting the identifier registration server includes selecting an identifier registration server corresponding to bit '1' in the bitwise and operation data.
Distributed identifier search method using bloom filter.
제1항의 블룸필터를 이용한 분산식별자 검색 방법을 실행하기 위한 프로그램이 기록된 컴퓨터로 판독 가능한 기록 매체.A computer-readable recording medium in which a program for executing the distributed identifier search method using the bloom filter of claim 1 is recorded. 삭제delete 삭제delete 삭제delete
KR1020200161907A 2020-11-27 2020-11-27 Method of resolving decentralized identifier using bloom filter KR102503028B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020200161907A KR102503028B1 (en) 2020-11-27 2020-11-27 Method of resolving decentralized identifier using bloom filter

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020200161907A KR102503028B1 (en) 2020-11-27 2020-11-27 Method of resolving decentralized identifier using bloom filter

Publications (2)

Publication Number Publication Date
KR20220073951A KR20220073951A (en) 2022-06-03
KR102503028B1 true KR102503028B1 (en) 2023-02-23

Family

ID=81982810

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200161907A KR102503028B1 (en) 2020-11-27 2020-11-27 Method of resolving decentralized identifier using bloom filter

Country Status (1)

Country Link
KR (1) KR102503028B1 (en)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101120724B1 (en) 2004-03-31 2012-03-23 마이크로소프트 코포레이션 Routing in peer-to-peer networks
US20120246301A1 (en) 2011-03-21 2012-09-27 Vyrros Andrew H Apparatus and method for managing peer-to-peer connections between different service providers
US20130124559A1 (en) 2009-10-22 2013-05-16 Vmware, Inc, Method and system for inserting data records into files
KR101648317B1 (en) 2015-12-09 2016-08-16 성균관대학교산학협력단 Method for searching data using partitioned bloom filter for supporting item elimination, cache memory apparatus and storage apparatus using the same
CN110209874A (en) 2019-04-24 2019-09-06 北京奇艺世纪科技有限公司 Information processing method, device, electronic equipment and storage medium

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20130068051A (en) * 2011-12-15 2013-06-25 한국전자통신연구원 Identifiers management apparatus and identifiers management method thereof
KR20150145327A (en) * 2014-06-18 2015-12-30 한국전자통신연구원 System and Method for mapping an identifier with a locator using a bloom filter

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101120724B1 (en) 2004-03-31 2012-03-23 마이크로소프트 코포레이션 Routing in peer-to-peer networks
US20130124559A1 (en) 2009-10-22 2013-05-16 Vmware, Inc, Method and system for inserting data records into files
US20120246301A1 (en) 2011-03-21 2012-09-27 Vyrros Andrew H Apparatus and method for managing peer-to-peer connections between different service providers
KR101648317B1 (en) 2015-12-09 2016-08-16 성균관대학교산학협력단 Method for searching data using partitioned bloom filter for supporting item elimination, cache memory apparatus and storage apparatus using the same
CN110209874A (en) 2019-04-24 2019-09-06 北京奇艺世纪科技有限公司 Information processing method, device, electronic equipment and storage medium

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
BANDER Alzahrani, "An Information-Centric Networking Based Registry for Decentralized Identifiers and Verifiable Credentials", IEEE, 2020 Vol 8, pp.137198-137208

Also Published As

Publication number Publication date
KR20220073951A (en) 2022-06-03

Similar Documents

Publication Publication Date Title
JP7046172B2 (en) Computer implementation methods, computer program products, and systems for storing records in shard database shard tables, computer implementation methods, computer program products, and systems for retrieving records from shard database shard tables. System, as well as a system for storing shard databases
JP6626211B2 (en) Method and apparatus for processing short link and short link server
CN105049287A (en) Log processing method and log processing devices
CN106209488B (en) Method and device for detecting website attack
EP3767483A1 (en) Method, device, system, and server for image retrieval, and storage medium
US9906477B2 (en) Distributing retained messages information in a clustered publish/subscribe system
CN111966633B (en) Method, device, electronic equipment and medium for inquiring child node under directory
US11570196B2 (en) Method for determining duplication of security vulnerability and analysis apparatus using same
US20170339252A1 (en) Generating a response to a client device in an internet of things domain
CN110888837A (en) Object storage small file merging method and device
US11249885B2 (en) Test case generator and user interface
US10678789B2 (en) Batch data query method and apparatus
CN109698814B (en) Botnet discovery method and botnet discovery device
CN108021339B (en) Method and device for reading and writing magnetic disk and computer readable storage medium
CN111026709A (en) Data processing method and device based on cluster access
KR102503028B1 (en) Method of resolving decentralized identifier using bloom filter
JP2018536247A (en) Cloud-based session management system
CN107085681B (en) Robust computing device identification framework
CN110555158A (en) mutually exclusive data processing method and system, and computer readable storage medium
CN114417069A (en) Page data interaction method and device and electronic equipment
US20180052899A1 (en) Multiple parallel reducer types in a single map-reduce job
CN113486025A (en) Data storage method, data query method and device
CN116932555B (en) Target object slice position determining method, device, equipment and storage medium
US20170220571A1 (en) Information Processing Device, Information Processing Method, and Non-Transitory Computer Readable Medium Storing Information Processing Program
KR101638048B1 (en) Sql query processing method using mapreduce

Legal Events

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