KR102052036B1 - 블록체인에 분산저장된 데이터의 탐색 및 조합을 통한 데이터 획득방법 - Google Patents

블록체인에 분산저장된 데이터의 탐색 및 조합을 통한 데이터 획득방법 Download PDF

Info

Publication number
KR102052036B1
KR102052036B1 KR1020190096189A KR20190096189A KR102052036B1 KR 102052036 B1 KR102052036 B1 KR 102052036B1 KR 1020190096189 A KR1020190096189 A KR 1020190096189A KR 20190096189 A KR20190096189 A KR 20190096189A KR 102052036 B1 KR102052036 B1 KR 102052036B1
Authority
KR
South Korea
Prior art keywords
data
authentication
user terminal
information
stored
Prior art date
Application number
KR1020190096189A
Other languages
English (en)
Inventor
문인식
Original Assignee
주식회사 바스랩
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 주식회사 바스랩 filed Critical 주식회사 바스랩
Application granted granted Critical
Publication of KR102052036B1 publication Critical patent/KR102052036B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/30Payment architectures, schemes or protocols characterised by the use of specific devices or networks
    • G06Q20/36Payment architectures, schemes or protocols characterised by the use of specific devices or networks using electronic wallets or electronic money safes
    • G06Q20/367Payment architectures, schemes or protocols characterised by the use of specific devices or networks using electronic wallets or electronic money safes involving electronic purses or money safes
    • G06Q20/3674Payment architectures, schemes or protocols characterised by the use of specific devices or networks using electronic wallets or electronic money safes involving electronic purses or money safes involving authentication
    • 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/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • 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
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/04Payment circuits
    • G06Q20/06Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme
    • G06Q20/065Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme using e-cash
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/30Payment architectures, schemes or protocols characterised by the use of specific devices or networks
    • G06Q20/36Payment architectures, schemes or protocols characterised by the use of specific devices or networks using electronic wallets or electronic money safes
    • G06Q20/367Payment architectures, schemes or protocols characterised by the use of specific devices or networks using electronic wallets or electronic money safes involving electronic purses or money safes
    • G06Q20/3672Payment architectures, schemes or protocols characterised by the use of specific devices or networks using electronic wallets or electronic money safes involving electronic purses or money safes initialising or reloading thereof
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/382Payment protocols; Details thereof insuring higher security of transaction
    • G06Q20/3825Use of electronic signatures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/40Authorisation, e.g. identification of payer or payee, verification of customer or shop credentials; Review and approval of payers, e.g. check credit lines or negative lists
    • G06Q20/401Transaction verification
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0815Network architectures or network communication protocols for network security for authentication of entities providing single-sign-on or federations
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/06Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
    • 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/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q2220/00Business processing using cryptography
    • G06Q2220/10Usage protection of distributed data files
    • H04L2209/38
    • 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/56Financial cryptography, e.g. electronic payment or e-cash

Abstract

컴퓨터에 의하여 수행되는 방법에 있어서, 블록체인에 저장된 탐색값을 획득하는 단계, 상기 탐색값을 이용하여 분산저장 네트워크에 분산저장된 데이터 조각들을 획득하는 단계, 상기 데이터 조각들을 조합하는 단계 및 조합된 데이터를 후처리하여 결과 데이터를 획득하는 단계를 포함하는, 블록체인에 분산저장된 데이터의 탐색 및 조합을 통한 데이터 획득방법이 개시된다.

Description

블록체인에 분산저장된 데이터의 탐색 및 조합을 통한 데이터 획득방법 {METHOD FOR OBTAINING DATA THROUGH SEARCHING AND MERGING DISTRIBUTED DATA STORED USING BLOCKCHAIN}
본 발명은 블록체인에 분산저장된 데이터의 탐색 및 조합을 통한 데이터 획득방법에 관한 것이다.
블록체인 기술이 제시된 이후 관련 기술의 발전은 박차를 가해, 현재 블록체인 기술의 구현은 산업 전반에 걸쳐 높은 수준에서 범용화가 되었으며, 관련기술을 활용한 산업 현장의 변화도 발 빠르게 이루어져 사회 곳곳에서 블록체인을 활용한 개량기술들이 활약하고 있다. 이러한 환경의 변화에 따라, 사회와 시장의 요청 또한 블록체인 기술 자체의 활용여부 또는 복잡성보다는 기술을 활용하여 어떠한 비즈니스 모델을 창출하였는가에 자연스레 무게중심이 이동하게 되었다.
즉, 최근 블록체인 기술은 그 고도성이 충분한 성숙기에 이르러 기술 자체의 복잡성보다는 어떠한 비즈니스 모델을 창출할 것인지, 그 비즈니스 모델로 구축된 생태계 안에서 참여자들이 원활하게 기술을 활용할 수 있도록 하는 거버넌스 문제를 어떻게 해결할 것인지의 2가지 핵심 목적으로 수렴되고 있다고 할 수 있다.
본원 발명은 이러한 이해와 변화한 시장환경, 사용자 및 사회의 요청에 기반하여 창작되었다. 사용자와 기업이 직접 블록체인 인프라를 구축하지 않더라도 기술의 이점을 활용할 수 있는 비즈니스 모델을 제시하며, 이용자가 신뢰할 수 있는 투명한 거버넌스를 함께 제공한다.
공개특허공보 제10-2019-0075772호, 2019.07.01 공개
본 발명이 해결하고자 하는 과제는 블록체인에 분산저장된 데이터의 탐색 및 조합을 통한 데이터 획득방법을 제공하는 것이다.
본 발명이 해결하고자 하는 과제들은 이상에서 언급된 과제로 제한되지 않으며, 언급되지 않은 또 다른 과제들은 아래의 기재로부터 통상의 기술자에게 명확하게 이해될 수 있을 것이다.
상술한 과제를 해결하기 위한 본 발명의 일 면에 따른 블록체인에 분산저장된 데이터의 탐색 및 조합을 통한 데이터 획득방법은, 블록체인에 저장된 탐색값을 획득하는 단계, 상기 탐색값을 이용하여 분산저장 네트워크에 분산저장된 데이터 조각들을 획득하는 단계, 상기 데이터 조각들을 조합하는 단계 및 조합된 데이터를 후처리하여 결과 데이터를 획득하는 단계를 포함한다.
또한, 상기 조합된 데이터를 후처리하는 단계는, 상기 조합된 데이터를 복호화하는 단계 및 상기 복호화된 데이터로부터 비식별화 코드를 제거하는 단계를 포함할 수 있다.
또한, 사용자 단말로부터 인증요청 데이터를 획득하는 단계, 상기 인증요청 데이터를 해시하는 단계, 상기 해시된 값을 상기 결과 데이터와 비교하는 단계 및 상기 비교 결과에 따라 인증 결과를 획득하는 단계를 더 포함할 수 있다.
또한, 상기 블록체인에 저장된 탐색값을 획득하는 단계는, 사용자 단말로부터 상기 탐색값이 분할된 조각의 M%를 획득하는 단계, 상기 블록체인으로부터 상기 탐색값이 분할된 조각의 나머지 N%를 획득하는 단계 및 상기 M% 및 상기 N%의 분할된 조각을 조합하여 상기 탐색값을 복원하는 단계를 포함하고, 상기 데이터 조각들을 획득하는 단계는, 상기 복원된 탐색값을 이용하여 상기 분산저장 네트워크에 분산저장된 데이터 조각들을 획득하는 단계를 포함할 수 있다.
또한, 상기 데이터 조각들을 획득하는 단계는, 상기 복원된 탐색값을 폐기하는 단계를 더 포함할 수 있다.
또한, 상기 데이터 조각들을 획득하는 단계는, 기 설정된 IPFS 시스템에 상기 탐색값을 전달하는 단계 및 상기 IPFS 시스템으로부터 상기 데이터 조각들을 획득하는 단계를 포함할 수 있다.
또한, 상기 탐색값은, 상기 IPFS 시스템에 저장된 데이터의 해시 값인 것을 특징으로 할 수 있다.
상술한 과제를 해결하기 위한 본 발명의 일 면에 따른 장치는, 하나 이상의 인스트럭션을 저장하는 메모리 및 상기 메모리에 저장된 상기 하나 이상의 인스트럭션을 실행하는 프로세서를 포함하고, 상기 프로세서는 상기 하나 이상의 인스트럭션을 실행함으로써, 개시된 실시 예에 따른 블록체인에 분산저장된 데이터의 탐색 및 조합을 통한 데이터 획득방법을 수행한다.
상술한 과제를 해결하기 위한 본 발명의 일 면에 따른 컴퓨터프로그램은, 하드웨어인 컴퓨터와 결합되어, 개시된 실시 예에 따른 블록체인에 분산저장된 데이터의 탐색 및 조합을 통한 데이터 획득방법을 수행할 수 있도록 컴퓨터에서 독출가능한 기록매체에 저장된다.
본 발명의 기타 구체적인 사항들은 상세한 설명 및 도면들에 포함되어 있다.
도 1은 일 실시 예에 따른 인증 시스템을 도시한 도면이다.
도 2는 일 실시 예에 따른 멤버 OSP를 포함하는 시스템을 도시한 도면이다.
도 3은 일 실시 예에 따른 EID의 발급 및 이를 활용한 인증방법을 설명하기 위한 도면이다.
도 4는 일 실시 예에 따라 2차인증을 위해 디바이스를 등록하는 방법을 도시한 도면이다.
도 5는 2차인증을 위한 OSP의 사용자 등록방법을 도시한 도면이다.
도 6은 일 실시 예에 따른 2차인증 수행방법을 도시한 도면이다.
도 7은 일 실시 예에 따른 인증수단을 이용하는 사용자에게 보상을 지급하는 방법을 도시한 개념도이다.
도 8은 일 실시 예에 따른 BCE(BaaS Currency Exchange) 및 이를 포함하는 시스템을 도시한 도면이다.
도 9는 일 실시 예에 따른 OSP 및 이를 포함하는 시스템의 동작을 도시한 흐름도이다.
도 10은 일 실시 예에 따른 사용자 단말의 월렛 및 이를 포함하는 시스템의 동작을 도시한 흐름도이다.
도 11은 일 실시 예에 따른 BCE의 계정관리 방법을 설명하기 위한 도면이다.
도 12는 일 실시 예에 따른 사용자의 월렛을 도시한 개념도이다.
도 13은 월렛의 신분증 기능을 제공하는 화면의 일 예를 도시한 도면이다.
도 14는 월렛의 전자지갑 기능을 제공하는 화면의 일 예를 도시한 도면이다.
도 15는 월렛의 드라이브 기능을 제공하는 화면의 일 예를 도시한 도면이다.
도 16은 일 실시 예에 따른 데이터 분산저장 및 조합방법을 도시한 도면이다.
도 17은 일 실시 예에 따른 데이터의 전처리 및 후처리 방법을 설명하기 위한 도면이다.
도 18은 일 실시 예에 따른 분산저장 및 조합을 통한 인증시스템을 도시한 도면이다.
도 19는 일 실시 예에 따른 비식별화 방법을 도시한 도면이다.
도 20은 일 실시 예에 따른 연결자에 기반한 데이터 분산저장 및 조합방법을 도시한 도면이다.
도 21은 일 실시 예에 따라 사용자 단말을 포함하는 데이터의 분산저장 시스템을 도시한 도면이다.
도 22는 일 실시 예에 따른 사용자 단말을 포함하는 분산저장 시스템에서 조합을 통해 데이터를 획득하는 방법을 도시한 도면이다.
도 23은 일 실시 예에 따른 일회성 인증방법을 도시한 도면이다.
도 24는 개시된 실시 예에 따른 시스템을 이용하여 인증정보 또는 파일을 분산저장 및 조합하여 이용하는 방법을 도시한 흐름도이다.
도 25는 일 실시 예에 따른 컴퓨팅 파워 제공 및 이에 대한 보상방법을 도시한 도면이다.
도 26은 일 실시 예에 따른 블록체인에 분산저장된 데이터의 탐색 및 조합을 통한 데이터 획득방법을 도시한 흐름도이다.
도 27은 일 실시 예에 따른 장치를 도시한 도면이다.
본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나, 본 발명은 이하에서 개시되는 실시예들에 제한되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 본 실시예들은 본 발명의 개시가 완전하도록 하고, 본 발명이 속하는 기술 분야의 통상의 기술자에게 본 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다.
본 명세서에서 사용된 용어는 실시예들을 설명하기 위한 것이며 본 발명을 제한하고자 하는 것은 아니다. 본 명세서에서, 단수형은 문구에서 특별히 언급하지 않는 한 복수형도 포함한다. 명세서에서 사용되는 "포함한다(comprises)" 및/또는 "포함하는(comprising)"은 언급된 구성요소 외에 하나 이상의 다른 구성요소의 존재 또는 추가를 배제하지 않는다. 명세서 전체에 걸쳐 동일한 도면 부호는 동일한 구성 요소를 지칭하며, "및/또는"은 언급된 구성요소들의 각각 및 하나 이상의 모든 조합을 포함한다. 비록 "제1", "제2" 등이 다양한 구성요소들을 서술하기 위해서 사용되나, 이들 구성요소들은 이들 용어에 의해 제한되지 않음은 물론이다. 이들 용어들은 단지 하나의 구성요소를 다른 구성요소와 구별하기 위하여 사용하는 것이다. 따라서, 이하에서 언급되는 제1 구성요소는 본 발명의 기술적 사상 내에서 제2 구성요소일 수도 있음은 물론이다.
다른 정의가 없다면, 본 명세서에서 사용되는 모든 용어(기술 및 과학적 용어를 포함)는 본 발명이 속하는 기술분야의 통상의 기술자에게 공통적으로 이해될 수 있는 의미로 사용될 수 있을 것이다. 또한, 일반적으로 사용되는 사전에 정의되어 있는 용어들은 명백하게 특별히 정의되어 있지 않는 한 이상적으로 또는 과도하게 해석되지 않는다.
명세서에서 사용되는 "부" 또는 “모듈”이라는 용어는 소프트웨어, FPGA 또는 ASIC과 같은 하드웨어 구성요소를 의미하며, "부" 또는 “모듈”은 어떤 역할들을 수행한다. 그렇지만 "부" 또는 “모듈”은 소프트웨어 또는 하드웨어에 한정되는 의미는 아니다. "부" 또는 “모듈”은 어드레싱할 수 있는 저장 매체에 있도록 구성될 수도 있고 하나 또는 그 이상의 프로세서들을 재생시키도록 구성될 수도 있다. 따라서, 일 예로서 "부" 또는 “모듈”은 소프트웨어 구성요소들, 객체지향 소프트웨어 구성요소들, 클래스 구성요소들 및 태스크 구성요소들과 같은 구성요소들과, 프로세스들, 함수들, 속성들, 프로시저들, 서브루틴들, 프로그램 코드의 세그먼트들, 드라이버들, 펌웨어, 마이크로 코드, 회로, 데이터, 데이터베이스, 데이터 구조들, 테이블들, 어레이들 및 변수들을 포함한다. 구성요소들과 "부" 또는 “모듈”들 안에서 제공되는 기능은 더 작은 수의 구성요소들 및 "부" 또는 “모듈”들로 결합되거나 추가적인 구성요소들과 "부" 또는 “모듈”들로 더 분리될 수 있다.
본 명세서에서, 컴퓨터는 적어도 하나의 프로세서를 포함하는 모든 종류의 하드웨어 장치를 의미하는 것이고, 실시 예에 따라 해당 하드웨어 장치에서 동작하는 소프트웨어적 구성도 포괄하는 의미로서 이해될 수 있다. 예를 들어, 컴퓨터는 스마트폰, 태블릿 PC, 데스크톱, 노트북 및 각 장치에서 구동되는 사용자 클라이언트 및 애플리케이션을 모두 포함하는 의미로서 이해될 수 있으며, 또한 이에 제한되는 것은 아니다.
이하, 첨부된 도면을 참조하여 본 발명의 실시예를 상세하게 설명한다.
본 명세서에서 설명되는 각 단계들은 컴퓨터에 의하여 수행되는 것으로 설명되나, 각 단계의 주체는 이에 제한되는 것은 아니며, 실시 예에 따라 각 단계들의 적어도 일부가 서로 다른 장치에서 수행될 수도 있다.
개시되는 기술의 상세한 내용을 기술하기에 앞서, 사용되는 용어들의 정의와 배경 및 기술의 목적을 선행하여 서술한다.
BaaS는 Blockchain as a Service의 약어로서, 블록체인 기술로 갖춰진 인프라를 일반에 제공하여, 개인이나 기업이 블록체인 기술의 이점을 손쉽게 이용할 수 있도록 하는 기술을 지칭하기 위해 제시된 개념어이다.
본 명세서에서, BaaSid는 개시된 실시 예에 따른 서비스 및 시스템을 제공하는 주체를 나타내는 의미로도 이해될 수 있다. 예를 들어, 본 명세서에서 개시된 실시 예에 따른 서비스 및 시스템을 제공, 운영 및 관리하는 서버를 BaaSid 서버라고 칭할 수 있으며, 개시된 실시 예에서 이용되는 블록체인을 BaaS 체인이라고 칭할 수도 있다. 또한, 개시된 실시 예에 따른 블록체인 시스템에서 이용 및 제공되는 암호화폐를 BAAS 코인이라고 칭할 수 있다.
본 발명은 이와 조합되어 하나의 블록체인 기술 생태계를 이루는 집단적 기술의 일부를 구성한다. 상술한 블록체인 기술 생태계를 통해 구현하고자 하는 모습의 개괄은 다음과 같다.
사용자는 개인정보에 기반하여 상술한 블록체인 생태계에서 널리 사용할 수 있는 계정정보를 생성할 수 있다. 이렇게 생성한 개인정보를 토대로, 사용자는 BaaS 생태계와 연결된 다른 OSP(Online Service Provider)에서도 별도의 회원가입 등의 절차 없이 인증된 사용자로서 서비스를 이용할 수 있다.
상술한 개인정보 및 계정정보 등은 암호화된 이후 임의적으로 분산되어 블록체인 상에 저장된다. 이러한 임의적인 분산을 전제로 사용자의 정보는 원본이 존재하지 않는 상태에서 필요시에만 일시적으로 재조합되어 사용되며, 재조합 또한 사용자의 생체정보 또는 소유기반 인증도구에 의하므로 사용자 외에는 원본의 열람 또는 접근 등이 불가능한 구조를 구현하였다.
이처럼 고도한 안정성에 기반하여, 사용자는 시스템 상에서 월렛을 개설하고 재산정보를 관리할 수 있다. 이를 통하여 다른 OSP들이 제공하는 서비스 또는 재화를 구매할 수 있으며, 각종 암호화폐 거래 및 실물 화폐와 교환할 수 있다.
또한 사용자는 상술한 분산저장 및 제한적 재조합의 기술을 이용하여 각종의 디지털 정보를 분산 저장할 수 있다. 이렇게 분산 저장된 정보는, 보편화된 클라우드 서비스와는 달리, 본인이 인증하여 재조합 하지 않으면 서비스 제공자라고 하더라도 정보에 접근, 열람, 수정, 저장, 배포, 삭제 등의 동작을 수행할 수 없다. 이는 상술한 바와 마찬가지로, 본인이 아니면 원본 데이터에 접근 자체가 불가능하기 때문이다.
극단적으로는 BaaSid 시스템을 제공하는 모든 서버가 탈취된다고 하더라도, 블록체인 상에 분산 저장된 정보는 마치 순서가 망실된 상태로 한 글자씩 파쇄된 책의 종이뭉치와 같은 상태이므로, 사용자의 인증없이는 분산된 데이터를 제대로 된 순서와 방법으로 조합할 수 없다.
이처럼 사용자는 자신의 재정을 비롯한 각종 정보에 관해 극히 고도한 안정성을 담보할 수 있으며, 지문과 같은 자신의 생체정보와 스마트폰과 같은 소유기반 인증도구에 의한 손쉬운 인증과정에 기반하여 편의성을 동시에 확보할 수 있다.
도 1은 일 실시 예에 따른 인증 시스템을 도시한 도면이다.
도 1을 참조하면, 사용자 단말(300), OSP(Online Service Provider, 200) 및 인증서버(100)가 도시되어 있다.
개시된 실시 예에서, 사용자 단말(300)은 상술한 컴퓨터의 일종일 수 있으며, 예를 들어 사용자가 이용하는 퍼스널 컴퓨터 혹은 스마트폰일 수 있으나, 이에 제한되는 것은 아니다.
개시된 실시 예에서, OSP(200)는 온라인을 통해 특정한 서비스 및 플랫폼을 제공하는 제공자를 의미할 수 있으며, 제공되는 서비스 및 플랫폼의 종류는 제한되지 않는다. 예를 들어, OSP(200)는 포털, 금융, 학습, 쇼핑 등의 서비스를 온라인을 통해 제공하는 주체 및 이에 기반하여 제공되는 서비스 및 플랫폼을 의미할 수 있으나, 이에 제한되는 것은 아니다.
또한, BSP(Blockchain Service Provider)는 블록체인에 기반한 서비스를 제공하는 공급자를 의미할 수 있으며, 이하에서 설명되는 OSP(200)와 관련된 동작 및 단계들은 BSP에 의하여서도 수행될 수 있다.
개시된 실시 예에서, 인증서버(100)는 블록체인에 기반하여 인증을 수행하는 개시된 실시 예에 따른 방법을 수행하는 서버를 의미할 수 있다. 서버는 상술한 컴퓨터의 일종일 수 있으나 이에 제한되는 것은 아니며, 클라우드 형태의 서버를 의미할 수도 있다.
일 실시 예에서, 사용자 단말(300)은 인증서버(100)를 통해 EID(Electrical ID: 전자 식별자)를 발급받을 수 있다.
개시된 실시 예에서, EID는 인증서버(100)와 제휴된 사이트 및 기타 일반 사이트에 별도의 회원가입 없이 로그인할 수 있도록 하는 일종의 온라인 신분증을 의미할 수 있다.
사용자 단말(300)은 발급받은 EID를 서로 다른 OSP(200)에서 인증 수단으로 활용할 수 있다.
OSP(200)는 사용자 단말(300)로부터 EID에 기반한 인증 요청을 획득하는 경우, 이를 인증서버(100)에 전달하여 인증을 요청한다. 인증서버(100)에서 인증이 완료되고 인증서버(100)로부터 인증에 대한 정보가 획득되는 경우, OSP(200)는 인증서버(100)의 인증 결과를 신뢰하여 사용자에 대한 인증이 완료된 것으로 판단할 수 있다.
예를 들어, 사용자 단말(300)은 OSP(200)의 서비스를 이용하기 위한 로그인을 요청하면서, 로그인 수단으로서 EID에 기반한 인증을 사용할 수 있다. OSP(200)는 인증서버(100)를 통해 사용자 단말(300)에 대한 인증이 완료되는 경우, 사용자 단말(300)의 로그인 요청을 승낙할 수 있다.
실시 예에 따라서, 사용자 단말(300)은 OSP(200)에서 제공되는 서비스를 이용하기 위해 OSP용 계정을 생성(즉, OSP에 회원가입)하고, 해당 계정에 대한 로그인 수단으로서 EID에 기반한 인증을 선택한 것일 수 있다.
이 경우, 사용자 단말(300)이 OSP(200)에 회원가입한 정보에 기반하여 1차적으로 로그인을 수행하고, 이후 EID에 기반한 2차 인증을 통해 OSP(200)에 가입된 사용자 단말(300)의 계정의 보안을 강화하는 수단으로도 EID에 기반한 인증이 활용될 수 있다. 이에 대한 구체적인 내용에 대해서는 후술한다.
다른 실시 예에서, 사용자 단말(300)은 OSP(200)에 대한 별도의 회원가입을 하지 않을 수 있고, 대신 EID에 기반한 인증을 통해 OSP(200)에 최초로 로그인할 때, OSP(200)는 사용자 단말(300)에 대응하는 계정을 생성하고, 생성된 계정을 사용자 단말(300)에 할당할 수 있다. 이후 사용자 단말(300)이 EID에 기반한 인증을 통해 로그인하는 경우, OSP(200)는 기 할당된 사용자 단말(300)의 계정을 획득하고, 이에 기반하여 서비스를 제공할 수 있다.
도 2는 일 실시 예에 따른 멤버 OSP를 포함하는 시스템을 도시한 도면이다.
일 실시 예에서, OSP(200)는 인증서버를 통해 EID(Electrical ID: 전자 식별자)를 발급받을 수 있다.
개시된 실시 예에서, EID를 발급받은 OSP를 멤버 OSP(210)라고 칭할 수 있다.
멤버 OSP(210)는 발급받은 EID를 이용하여 자체 EID를 발급할 수 있으며, 이는 발급받은 자신의 EID를 이용하여 서브 EID를 생성하는 것이다. 이 경우 EID를 사용할 수 있는 곳이 제한적일 수 있으며, 예를 들어 특정 OSP에서 발급된 EID는 해당 OSP에서만 인증에 사용할 수 있도록 구성될 수 있다.
일 실시 예에서, 멤버 OSP(210)는 서브 EID를 발급할 수는 있지만, 이를 검증할 수는 없도록 구성될 수 있다. 이 경우, 멤버 OSP(210)는 서브 EID를 발급하되, 이에 대한 검증은 인증서버(100)에 요청하여야 할 수 있다. 다른 실시 예에서, 멤버 OSP(210)는 서브 EID에 대한 발급 및 검증을 모두 수행할 수 있도록 구성될 수도 있다.
도 3은 일 실시 예에 따른 EID의 발급 및 이를 활용한 인증방법을 설명하기 위한 도면이다.
도 3을 참조하면, 비회원 단말(330), OSP 회원 단말(320) 및 BaaSid 회원 단말(310)이 도시되어 있다.
비회원 단말(330)은 어디에서도 가입되거나 EID를 발급받은 적이 없는 비회원의 단말을 의미한다.
OSP 회원 단말(320)은 OSP에 가입된 회원의 단말을 의미하며, 회원 가입 방식은 제한되지 않는다. 예를 들어, OSP의 회원은 ID 및 비밀번호에 기반하여 OSP에 가입하였을 수도 있고, 상술한 바와 같이 OSP의 EID를 이용하여 서브 EID를 발급받는 형태로 가입하였을 수도 있다.
BaaSid 회원 단말(310)은 개시된 실시 예에 따라 BaaSid 인증 서버(100)로부터 EID를 발급받은 회원을 의미할 수 있다.
개시된 실시 예에서, BaaSid 인증 서버(100)로부터 EID를 발급받은 BaaSid 회원 단말(310)은 EID를 이용하여 서로 다른 OSP(200)에 별도의 회원가입 없이 로그인할 수 있다. 즉, 개시된 실시 예에서 BaaSid 인증 서버(100)로부터 발급받은 EID는 모든 웹 서비스에서 회원가입 없이 사용할 수 있는 온라인 통합 신분증으로서 기능할 수 있다.
또한, OSP 회원 단말(320)은 OSP(200)에 로그인시 OSP(200)로부터 발급받은 EID를 제시하거나, BaaSid 인증 서버(100)로부터 발급받은 EID를 제시함으로써 OSP(200)에 로그인할 수 있다. 실시 예에 따라, BaaSid 인증 서버(100)로부터 발급받은 EID는 OSP 로그인을 위한 2차인증 수단으로도 활용될 수 있다.
또한, 비회원 단말(310)은 BaaSid 인증서버(100)로부터 EID를 발급받거나, OSP(200)에 회원가입을 한 후 OSP(200)에 로그인할 수 있다.
일 실시 예에서, BaaSid 인증 서버(100)는 EID를 발급받고자 하는 주체로부터 EID 발급을 위한 정보를 획득하고, 획득된 정보를 검증한 후 획득된 정보에 기반하여 EID를 생성 및 발급할 수 있다.
예를 들어, BaaSid 인증 서버(100)는 획득된 정보를 검증하여 EID 생성 여부를 결정하고, 결정 여부에 따라 생성 및 생성 거부를 결정할 수 있다. 생성 거부 메시지 또는 생성된 EID는 EID 발급을 신청한 사용자, OSP 또는 BSP에게 전달된다.
예를 들어, 사용자가 EID를 발급받고자 하는 경우, BaaSid 인증 서버(100)는 사용자의 개인식별정보(예를 들어, 이름, 전화번호, 주민등록번호, 생년월일 등의 개인정보, 민감정보, 생체정보 등)를 이용하여 EID를 생성할 수 있으며, 그 구체적인 방법은 제한되지 않는다. 예를 들어, EID는 문자와 숫자를 포함하는 특정 길이의 문자열일 수 있으나, 이에 제한되는 것은 아니다.
일 실시 예에서, EID는 다른 사용자와 겹치지 않도록 유일하게 생성되어야 하며, 이를 위하여 사용자의 개인정보에 기반하여 생성되는 고유값이 특정 위치에 삽입될 수 있다.
실시 예에 따라서, BaaSid 인증 서버(100)는 사용자 단말의 디바이스 정보를 획득하고, 사용자의 개인정보와 사용자 단말의 디바이스 정보를 함께 이용하여 EID를 생성할 수도 있다. 이 경우, 사용자 단말이 변경되는 경우 EID가 재생성되어야 할 수 있으나, 이에 제한되는 것은 아니다.
이외에도 다양한 정보들이 사용자의 EID를 생성하는 데 활용될 수 있다.
EID의 생성방법에 대한 구체적인 내용에 대해서는 후술한다.
일 실시 예에서, 인증 서버(100)는 사용자의 계정(Account) 생성 및 EID 생성을 위하여 인증절차를 진행할 수 있다.
인증절차는 복수의 단계를 포함할 수 있으며, 그 구체적인 구성은 제한되지 않는다. 예를 들어, 인증절차는 1단계 이메일 인증, 2단계 SMS 인증, 3단계 거주지 인증, 4단계 KYC(Know Your Customer) 인증, 5단계 계좌정보 인증을 포함할 수 있다. 일 실시 예에서, 1단계 이메일 인증이 완료되는 경우 인증서버(100)는 사용자의 계정(Account)을 생성하여 발급하며, 4단계 이상의 인증이 완료되는 경우 인증서버는 EID를 발급할 수 있다.
또한, BaaSid 인증 서버(100)로부터 EID를 발급받은 멤버 OSP(210)에 의하여 사용자의 서브 EID가 생성되는 경우, OSP(210)는 자신의 EID를 함께 이용하여 사용자의 서브 EID를 생성할 수 있다.
멤버를 통하여 발급된 서브 EID는 BaaSid 인증 서버(100)를 통하여 발급받은 EID와 형식(예를 들어, 길이나 문자의 배치 등)이 상이할 수 있으며, 예를 들어 서브 EID를 발급한 멤버의 EID 정보가 기록되는 영역이 서브 EID에 포함될 수 있다.
이를 통해, 인증단계에서 서브 EID는 EID를 발급한 멤버의 EID 정보와 일치하는 EID를 보유한 멤버 OSP에서만 활용되도록 인증단계가 구성될 수 있다.
사용자는 발급받은 EID를 사용자 단말에 보관하며, 사용자 단말에는 EID 보관을 위한 전자 월렛(Wallet)이 설치될 수 있다. 개시된 실시 예에 따른 월렛은 이외에도 다양한 정보를 저장할 수 있을 뿐 아니라, 다양한 기능들을 수행할 수 있다. 개시된 실시 예에 따른 월렛에 대해서는 후술한다.
다른 예로, OSP(200)와 같은 서비스 제공자가 EID를 발급받고자 하는 경우, BaaSid 인증 서버(100)는 OSP(200)에 대한 정보를 OSP로부터 획득한다.
BaaSid 인증 서버(100)는 획득된 OSP 정보를 검증하여 EID 생성 여부를 결정하고, EID 생성이 결정되는 경우 생성된 EID를 OSP(200)에게 전달한다.
OSP(200)는 BaaSid 인증 서버(100)로부터 발급된 EID를 서버 또는 보안토큰 등의 장비에 저장할 수 있으나, 이에 제한되는 것은 아니다.
이하에서는, 개시된 실시 예에 따른 EID의 구조 및 그 생성방법에 대하여 구체적으로 서술한다.
EID는 두 개의 블록체인에 의하여 관리되며, 이는 EID의 발급 정보 관리를 위한 블록체인과, 폐기 관리를 위한 블록체인으로 구성된다.
일 실시 예에서, EID 발급 관리를 위한 블록체인은 프라이빗(Private) 블록체인 또는 컨소시엄(Consortium)블록체인 형태로 구성되며, EID 폐기 관리를 위한 블록체인은 퍼블릭(Public), 프라이빗 또는 컨소시엄 형태로 구성될 수 있다.
EID 발급에는 DPoS(Delegated Proof of Stake) 방식이 사용될 수 있다. 발급된 EID는 블록체인에 분산저장 형태로 배포된다.
EID 생성을 위해서는 이메일 인증과 SMS 인증 및 KYC 인증이 수행된다. EID 발급을 위해 사용된 모든 정보는 프라이빗 혹은 컨소시엄 블록체인에 비식별화, 암호화 및 분할되어 불특정 다수의 노드에 분산 저장된다.
일 실시 예에서, 인증 서버(100)는 EID 생성을 위한 시리얼 넘버 생성 및 관리를 통해 중복된 시리얼 넘버가 생성되지 않도록 할 수 있다. 이에 따라, 인증 서버는 EID에 포함된 시리얼 넘버만으로도 EID에 대한 유효성을 검증할 수 있다.
인증 서버(100)는 사용자 단말(300)의 월렛에서 생성된 공개키를 블록체인에 등록하고, SPLIT 엔진을 이용하여 사용자 정보를 블록체인에 분리 및 분산 저장할 수 있다. 사용자로부터 EID 제공을 요청받는 경우, 인증 서버는 SPLIT 엔진을 이용하여 OTP 값을 생성하고, 생성된 OTP값과 EID를 조합하여 사용자 단말에 EID를 제공할 수 있다.
EID의 제공형태는 제한되지 않으나, 예를 들어 QR 코드 이미지 또는 스트링 형태의 EID 값으로 제공될 수 있다. EID 제공에 OTP 값을 이용하는 것은 이미지 캡쳐 혹은 값 탈취를 통한 위조, 위임으로 인해 발생될 수 있는 위험을 제거하기 위함이다. OTP값 외에도 임의의 랜덤넘버가 EID와 조합될 수 있다.
사용자 공개키의 등록을 위하여, 인증 서버(100)는 챌린지 값을 생성하여 사용자 단말(300)의 월렛에 전달할 수 있다. 사용자 단말(300)은 월렛에 저장된 개인키를 이용하여 챌린지 값을 전자서명(암호화)하여 인증 서버에 전달할 수 있다. 인증 서버(100)는 사용자 단말(300)로부터 전달받은 전자서명값(암호화된 챌린지값)을 공개키로 복호화하여 인증 서버(100)에서 생성한 챌린지 값과 비교하고, 일치하는 경우 공개키를 등록할 수 있다. 일치하지 않는 경우, 인증서버(100)는 사용자의 공개키를 등록하지 않는다.
일 실시 예에서, 사용자 단말(300)의 월렛은 BIP39 알고리즘을 이용하여 사용자의 키 쌍을 생성한다. 생성된 키 쌍 중 공개키는 인증 서버(100)를 통해 블록체인에 등록된다. 공개키 등록을 위하여 사용자 단말(300)은 월렛을 이용하여 인증 서버(100)로부터 전달된 챌린지 값을 개인키로 암호화하여 공개키와 함께 인증 서버(100)에 전송하며, 이에 따른 공개키 등록방법은 상술한 바와 같다.
일 실시 예에서, EID는 아래와 같은 구성요소들을 포함하는 구조로 구성된다.
- 시리얼 넘버(Serial No) : 발급 기관의 식별번호 및 일련번호의 조합으로 구성된다. 예를 들어, 시리얼 넘버는 34byte(long serial)를 포함하며, 이는 전세계 인구수 약 77억 8천만명(현 시점 기준)을 기준으로 중복되지 않은 숫자를 발급하기 위하여 필요한 자릿수를 의미할 수 있다. 또한, 시리얼 넘버는 12byte(int issue_auth)를 포함하며, 이는 고유한 발급기관 코드 부여를 위하여 필요한 자릿수와 전자서명 값을 포함할 수 있다.
- EID 식별자(EID identity) : 개시된 실시 예에 따른 서비스 및 그 인증서버를 통하여 제공되는 통합 아이디로서, 이는 16진수 64byte로 구성되는 온라인 통합 아이디일 수 있으나, 이에 제한되는 것은 아니다.
- 이름 : 사용자 이름으로서, 예를 들어 20byte(string name)로 구성되며, 전 세계 언어를 이용한 사용자 이름을 모두 표기하기에는 그 자릿수가 과도하게 늘어날 수 있으므로 최대 한글 기준 5자로 제한할 수 있으며, 이에 제한되는 것은 아니다.
- 생년월일 : 사용자의 생년월일을 의미하며, 8byte로 구성될 수 있다.
- 발급일자 : EID의 발급일자로서, 8byte로 구성될 수 있다.
- 확장 필드(Extension Field) : 확장 필드는 다양한 정보들을 포함할 수 있으며, 예를 들어 아래와 같은 구성요소들을 포함할 수 있다.
i) 국가코드 : 10bit 정보로서, 현 시점 기준 전 세계 국가수를 약 228개국이라 하였을 때 국가별 고유 코드를 발급하기 위하여 필요한 자릿수를 의미한다. 예를 들어, 전화번호 국가코드를 참조할 수 있다.
ii) 휴대폰 번호 : 사용자의 휴대폰 번호를 표기하기 위하여, 12byte의 자릿수가 이용될 수 있다.
iii) E-mail : 사용자의 이메일 주소 입력을 위하여 사용되며, 이는 분실시 사용자의 EID를 찾는 데에도 이용될 수 있다.
iv) SMS 또는 KYC : 2bit 정보로서, SMS 또는 KYC 인증 성공 여부에 따른 True / False 값으로 1bit 정보를 포함할 수 있고, 예외상황을 고려하여 1bit가 추가적으로 포함될 수 있다.
- 결과 값 : 일 실시 예에서, 결과 값은 EID에 포함되는 정보들로부터 기 설정된 기준에 따라 산출된 값이 입력될 수 있으나, 이에 제한되지 않는다.
- 전자서명(DS: Digital Signature) : 전자서명 값은 사용자 전자서명 값과, 발급 기관의 전자서명 값을 포함할 수 있다. 사용자 전자서명 값은 사용자의 개인키로 암호화한 값이고, 발급 기관의 전자서명 값은 발급 기관의 개인키로 암호화한 값일 수 있으며, 각각의 데이터는 256bit로 구성될 수 있으나, 이에 제한되는 것은 아니다.
상술한 바와 같은 EID는 DPoS 방식에 기반하여 생성 및 등록될 수 있다. DPoS 방식은 선출된 BP(Block Producer)들의 투표에 의하여 의사결정을 수행하는 방식으로, 예를 들어 21명의 BP중 15명 이상이 찬성하는 경우 EID가 생성될 수 있다. BP의 운영 및 정책 설정은 개시된 실시 예에 따른 시스템 관리자에 의하여 수행될 수 있다.
BP들은 SMS 및 KYC 인증 여부를 확인한 후 EID 생성을 찬성 혹은 거부할 수 있으나, 이에 제한되지 않으며, SMS 및 KYC 인증 없이도 BP들의 과반수 찬성 혹은 기 설정된 수 이상의 찬성이 있는 경우 EID가 생성될 수도 있다. 단, 생성된 EID에 의하여 발생되는 사고에 대해 BP에 페널티가 부여될 수 있는 바, BP는 이를 고려하여 EID 생성의 찬성여부를 결정할 수 있다.
EID 생성을 위해 모든 BP가 투표를 수행한 후, 마지막 BP는 최종적으로 모든 BP들의 서명을 모아 최종적으로 전자서명을 할 수 있다. 서명된 데이터는 EID에 첨부되며, BP들의 순서에는 정해진 것이 없고, 먼저 처리된 결과가 순차적으로 쌓일 수 있다.
도 4는 일 실시 예에 따라 2차인증을 위해 디바이스를 등록하는 방법을 도시한 도면이다.
이하에서는 도면들을 참조하여 개시된 실시 예에 따른 2차인증을 수행하는 방법에 대하여 서술하나, 이는 2차인증뿐 아니라 단일 인증 혹은 2차 이상의 다차 인증에도 동일 또는 유사하게 활용될 수 있다.
개시된 실시 예에서, 2차인증은 등록된 디바이스에서만 사용이 가능하도록 구성된다. 따라서, 2차인증을 수행하기 전에 디바이스를 등록하는 과정이 선행되어야 하며, 디바이스가 변경되는 경우 등록 절차를 통해 디바이스를 등록하여야 한다.
도 4를 참조하면, 2차인증을 위한 시스템은 사용자 단말(300), 앱 마켓(500), 인증 플랫폼(100) 및 인증 체인(400)을 포함한다.
개시된 실시 예에서, 앱 마켓(500)은 애플리케이션을 구매 및 다운로드할 수 있는 모든 종류의 플랫폼을 포괄하는 것으로 이해된다.
또한, 인증 플랫폼(100)은 개시된 실시 예에 따른 2차인증 서비스를 제공하는 플랫폼으로서, 개시된 실시 예에 따른 2차인증 서비스를 제공하는 서버를 의미할 수도 있다.
실시 예에 따라서, 인증 플랫폼(100)은 도 1 내지 도 3에서 상술한 인증서버에 대응할 수 있다.
개시된 실시 예에서, 인증 체인(400)은 개시된 인증 플랫폼(100)에 기반한 인증 및 2차인증을 위해 필요한 정보들을 저장하기 위하여 이용되는 블록체인을 의미할 수 있다. 인증 체인(400)의 구조 및 인증 체인에 정보를 저장하는 구체적인 방법에 대해서는 후술한다.
일 실시 예에서, 사용자 단말(300)은 앱 마켓(500)으로부터 2차인증을 위한 애플리케이션을 다운로드 및 설치할 수 있다. 단, 사용자 단말(300)이 애플리케이션을 획득하는 경로가 앱 마켓(500)으로 제한되는 것은 아니다.
일 실시 예에서, 사용자 단말(300)이 다운로드 및 설치하는 애플리케이션은 상술한 월렛 애플리케이션일 수 있으나, 이에 제한되는 것은 아니다.
사용자 단말(300)은 설치된 애플리케이션을 이용하여 계정(Account)을 생성하고, 실시 예에 따라 계정(Account)에 대응하는 월렛을 생성할 수 있다. 일 실시 예에서, 계정(Account)은 개시된 실시 예에 따른 전자지갑의 주소를 의미할 수 있으며, 이에 제한되는 것은 아니다.
일 실시 예에서, 계정(Account)은 문자와 숫자의 조합으로 이루어진 기 설정된 길이의 문자열(예를 들어, 12자리)로 구성될 수 있으나, 이에 제한되는 것은 아니다.
일 실시 예에서, 계정(Account) 생성시 이와 함께 사용자의 공개키와 개인키를 생성할 수 있고, 또한 계정의 복구를 위하여 이용되는 복구 코드를 생성 및 제공할 수 있다.
일 실시 예에서, BIP 39 표준에 기반한 12개의 단어를 포함하는 니모닉 코드(Mnemonic code)가 계정(Account)의 복구에 이용될 수 있으나, 이에 제한되는 것은 아니다. 예를 들어, 제공되는 12개의 단어에 기반하여 시드 키(Seed key)를 획득하고, 획득된 시드 키를 이용하여 사용자의 공개키와 개인키를 생성할 수 있다.
생성된 개인키는 개시된 실시 예에 따른 월렛의 안전공간(Safe Zone)에 안전하게 저장되며, 공개키는 블록체인을 통해 배포될 수 있다.
또한, 계정(Account) 생성 과정에서 별도 채널을 이용한 본인확인 과정이 수행될 수 있다. 예를 들어, 본인확인은 이메일 인증에 기반하여 수행될 수 있으며, 인증서버(100)는 본인확인을 위하여 사용자의 이메일 주소로 6개의 인증코드를 발송하고, 사용자는 해당 인증코드를 입력함으로써 본인인증을 수행할 수 있다.
계정(Account) 생성이 완료된 후 간편 인증 수단으로서 패턴, 핀(PIN), 텍스트, 생체 정보 등이 선택적으로 입력될 수 있으며, 사용자는 해당 간편 인증 수단을 이용하여 애플리케이션을 실행할 수 있다.
일 실시 예에서, 사용자 단말에 의하여 수행되는 계정 생성방법에는 상술한 사용자 단말의 EID 획득방법이 활용될 수 있으나, 이에 제한되는 것은 아니다.
일 실시 예에서, 사용자 단말(300)은 계정(Account)을 생성하고, 생성된 계정(Account)을 이용하여 상술한 인증서버로부터 EID를 발급받아 생성된 계정에 의하여 관리되는 월렛에 EID를 저장할 수 있다.
일 실시 예에서, 사용자 단말(300)은 푸시 키(Push Key)를 생성할 수 있다.
사용자 단말(300)은 생성된 푸시 키와 사용자 단말(300)의 디바이스 정보를 인증 플랫폼에 전달하고, 인증 플랫폼(100)에 디바이스 등록을 요청할 수 있다.
인증 플랫폼(100)은 디바이스 정보를 인증 체인(400)에 등록하고, 이에 대응하는 푸시 키를 저장할 수 있다.
도 5는 2차인증을 위한 OSP의 사용자 등록방법을 도시한 도면이다.
일 실시 예에서, OSP(200)와 인증 플랫폼(100)은 티켓정보를 공유한다. 예를 들어, 인증 플랫폼(100)은 티켓 번호를 생성하고, 생성된 티켓 번호를 OSP(200)에 발급할 수 있다. 다른 예로, OSP(200)는 티켓을 발행하여 인증 플랫폼(100)에 전송할 수 있다.
개시된 실시 예에서 티켓은 디바이스 정보를 OSP(200)에 대응하여 인증 플랫폼(100)에 등록하기 위하여 이용된다. 티켓의 형태 및 유형은 제한되지 않으며, 예를 들어 소정의 문자열이나 숫자 등으로 구성될 수 있다.
일 실시 예에서, 티켓은 특정 OSP를 다른 OSP와 구별하기 위하여 사용되는 OSP의 식별자로서 구성될 수 있으나, 이에 제한되는 것은 아니다.
인증 플랫폼(100) 또는 OSP(200)는 티켓 정보를 이용하여 QR 코드를 생성할 수 있다. 생성된 QR 코드는 사용자에게 전달되며, 사용자 단말(300)은 전달된 QR 코드를 스캔할 수 있다. 예를 들어, 생성된 QR 코드는 사용자에게 전달되어 사용자가 이용하는 컴퓨터의 모니터에 표시될 수 있으며, 사용자 단말(300)은 이를 스캔함으로써 QR 코드에 포함된 정보를 획득할 수 있다.
단, 티켓 정보를 사용자 단말(300)에 전달하는 방법은 이에 제한되지 않으며, QR코드 외에 다양한 전자코드 혹은 데이터 암호화 및 송수신 수단들이 활용될 수 있다.
일 실시 예에서, QR코드는 티켓 정보와 함께 디바이스 등록을 위한 링크정보(예를 들어, URL)를 포함할 수 있다.
실시 예에 따라서, QR코드에는 티켓 정보와 링크정보가 함께 포함되고, 사용자 단말(300)은 QR코드를 통해 획득된 티켓정보와 사용자 단말(300)의 디바이스 정보를 링크정보를 통해 연결된 대상에 전달할 수 있다.
다른 실시 예에서, 티켓 정보에 대응하는 링크정보가 QR코드에 저장되고, 사용자 단말(300)은 링크정보를 통하여 티켓 정보에 대응하는 대상(예를 들어, 웹페이지)에 접속한 후, 이를 통해 디바이스 정보를 인증 플랫폼(100)에 제공할 수 있다. 이 경우, 인증 플랫폼(100)은 디바이스 정보가 획득된 웹페이지에 대응하는 티켓정보를 디바이스 정보와 함께 획득할 수 있다.
인증 플랫폼(100)은 OSP(200)의 티켓정보와 사용자 단말(300)의 디바이스 정보를 획득하고, 획득된 티켓정보 및 디바이스 정보를 이용하여 인증정보를 생성할 수 있다.
인증정보를 생성하는 방법은 제한되지 않으며, 티켓정보와 디바이스 정보를 조합하는 다양한 방법들이 이용될 수 있다.
인증 플랫폼(100)은 생성된 인증정보를 인증 체인에 저장하고, 이에 대응하는 인증 토큰을 생성할 수 있다.
인증 토큰에 저장되는 정보의 종류는 제한되지 않으며, 예를 들어 티켓정보와 디바이스 정보, 또는 티켓정보와 디바이스 정보에 기반하여 생성된 정보가 저장될 수 있다. 또한, 인증 토큰에는 인증 체인에 저장된 인증정보를 획득하기 위하여 필요한 정보가 저장될 수 있다.
인증 플랫폼(100)은 생성된 토큰을 OSP(200)에 전달한다.
OSP(200)는 인증 플랫폼으로부터 전달받은 토큰을 사용자 단말(300)의 OSP 계정과 연결하여 저장하고, 디바이스 등록과정을 완료할 수 있다. OSP 계정은 사용자 단말(300)이 OSP에 대한 회원가입을 통해 생성한 OSP의 계정을 의미할 수 있으나, 이에 제한되는 것은 아니다.
상술한 바와 같은 디바이스 등록과정은 OSP별로 최초에 1회 수행될 수 있으며, 소정의 기간이 도과하거나 사용자 단말이 다른 디바이스로 변경되었을 때 다시 수행될 수 있다.
도 6은 일 실시 예에 따른 2차인증 수행방법을 도시한 도면이다.
일 실시 예에서, 사용자 단말(300)은 OSP(200)에 대한 로그인 혹은 인증을 요청한다. 사용자 단말(300)은 1차 인증수단을 이용하여 OSP(200)에 대한 로그인 혹은 인증을 요청할 수 있으며, 예를 들어 사용자 단말(300)은 계정 정보를 이용하여 OSP(200)에 대해 로그인 혹은 인증을 요청할 수 있으나, 이에 제한되는 것은 아니다.
OSP(200)는 사용자의 계정정보를 통해 인증 토큰을 조회하고, 2차 인증이 완료될 때까지 인증과정을 완료하지 않고 대기한다.
OSP(200)는 인증 토큰을 인증 플랫폼(100)에 전송하여 인증을 요청하고, 인증 플랫폼(100)은 OSP(200)로부터 전송된 인증 토큰을 이용하여 인증을 수행한 후, 인증 결과를 OSP(200)에 전달한다. OSP(200)는 인증 플랫폼(100)으로부터 전달된 인증 결과에 따라 인증을 완료하거나, 재인증을 요청한다.
구체적으로, OSP(200)는 사용자 인증 요청이 수신되는 경우 사용자의 계정정보에 대응하는 인증 토큰을 획득하고, 이를 인증 플랫폼(100)에 전달할 수 있다.
또한, 인증 플랫폼(100)은 인증 토큰을 포함하는 OSP(200)의 인증 요청을 검증할 수 있다. 인증 요청에 대해 검증이 완료되는 경우, 인증 플랫폼(100)은 인증 토큰에 포함된 정보에 기반하여 인증 체인(400)에서 사용자 단말에 대응하는 디바이스 정보를 검색할 수 있다.
인증 체인(400)에서 기 등록된 사용자 단말(300)의 디바이스 정보가 획득되는 경우, 인증 플랫폼(100)은 기 저장된 사용자 단말(300)의 푸시 키를 획득하고, 획득된 푸시 키를 푸시 서버(600)에 전달하여 사용자 단말(300)에 푸시 메시지를 전송할 수 있다.
사용자 단말(300)은 수신된 푸시 메시지에 따라 EID가 저장된 월렛을 실행시키고 EID에 기반한 인증과정을 개시하거나, 월렛이 이미 실행중인 경우 바로 EID에 기반한 인증과정을 개시한다.
인증 플랫폼(100)에서 사용자 단말(300)의 EID에 기반한 인증이 완료되는 경우, 인증 플랫폼(100)은 OSP에 인증 결과를 전송(Call Back)할 수 있다.
OSP는 인증 플랫폼(100)에서 전송된 인증 결과에 따라 인증 절차를 마무리하거나, 재인증을 요청할 수 있다.
개시된 실시 예에 따른 인증 수단 및 이를 활용한 인증절차는 상술한 바와 같이 OSP(200)의 2차인증에 활용될 수 있으나 이에 제한되지 않으며, 예를 들어 서로 다른 OSP에서의 1차 인증에 활용되어, 사용자 단말(300)에 저장된 EID에 기반한 SSO(Single Sign On)을 구현하는 데에도 활용될 수 있다.
도 7은 일 실시 예에 따른 인증수단을 이용하는 사용자에게 보상을 지급하는 방법을 도시한 개념도이다.
도 7을 참조하면, 도 1에 도시된 바와 같은 인증시스템이 도시되어 있다.
개시된 실시 예에서, BAAS는 BAAS Coin으로서, 개시된 실시 예에 따른 서비스에서 제공되는 암호화폐를 의미한다.
또한, BIDT는 BaaS ID Token의 약자로, 개시된 실시 예에 따른 인증시스템에서 사용자 보상을 위해 이용되는 토큰을 의미한다.
일 실시 예에서, OSP(200)는 인증서버(100)로부터 BIDT를 구매한다. OSP(200)는 인증서버(100)로부터 구매한 BIDT를 직접 수령 및 보유할 수도 있고, BIDT를 사용자에게 지급할 권한을 구매하되, 이에 해당하는 BIDT를 직접 보관하지는 않을 수도 있다.
개시된 실시 예에서, OSP(200)는 인증서버(100)를 통해 제공되는 인증시스템을 이용하는 대가로서 BIDT를 구매할 수 있다. OSP(200)는 BIDT를 구매하고, OSP(200)에서 인증서버(100)를 통한 인증을 요청하는 사용자에게 인증서비스 이용에 대한 보상으로서 BIDT를 지급할 수 있다. 지급되는 BIDT의 양은 제한되지 않으나, 예를 들어 인증요청시마다 0.01 BIDT가 지급될 수 있다.
구매한 BIDT가 소진되면, OSP(200)는 인증서비스 이용을 위하여 BIDT를 추가로 구매하여야 한다.
일 실시 예에서, BIDT 획득을 위한 과도한 인증요청이 있을 수 있다. 따라서, 1인당 인증요청을 통해 BIDT를 획득할 수 있는 횟수 또는 그 양이 제한될 수 있다.
예를 들어, 1인당 하루에 최대 0.05 BIDT를 지급받을 수 있는 것으로 제한될 수 있다.
다른 예로, 1인당 BIDT를 획득할 수 있는 횟수가 OSP별로 혹은 개인별로 제한될 수도 있으며, 이에 제한되는 것은 아니다.
또한, 1인당 1시간 이내 3회까지 재 로그인 또는 인증 요청시 추가 BIDT를 지급하지 않도록 설정되는 것과 같이 소정의 시간범위 내 반복횟수에 제한을 둘 수도 있다.
사용자 단말(300)은 상술한 바와 같은 월렛(700)을 구비하며, OSP(200)에 인증요청을 할 때마다 OSP(200) 또는 인증서버(100)로부터 BIDT를 지급받는다. 사용자 단말(300)은 지급받은 BIDT를 월렛(700)에 저장할 수 있다.
사용자 단말(300)은 소정의 BIDT가 모이면 이를 BAAS로 교환해줄 것을 인증서버(100)에 요청할 수 있다. 인증서버(100)는 사용자 단말(300)로부터 BIDT를 받고, 이에 대응하는 BAAS를 사용자 단말(300)에 지급할 수 있다.
예를 들어, 1,000BIDT가 1BAAS로 교환될 수 있으나, 이에 제한되는 것은 아니다.
사용자 단말(300)은 획득된 BAAS를 월렛(700)에 저장할 수 있다.
도 8은 일 실시 예에 따른 BCE(BaaS Currency Exchange) 및 이를 포함하는 시스템을 도시한 도면이다.
개시된 실시 예에서, BCE(800)를 통하여 관리 및 제공되는 암호화폐는 BAAS(BAAS Coin), BIDT(BaaS ID Token) 및 BRC(BaaS Reward Coin)을 포함할 수 있다.
도 8을 참조하면, BCE(800), 사용자 단말(300), OSP(200), BP(Block Producer, 900) 및 각각의 암호화폐를 관리하는 BAAS 관리부(810), BRC 관리부(820) 및 BIDT 관리부(830)가 도시되어 있다.
일 실시 예에서, BP는 Block Producer, 즉 블록 생성자를 의미한다. 예를 들어 DPoS(Delegated Proof of Stake: 위임지분증명) 방식의 블록체인의 경우 투표를 통해 정해진 수(예를 들어, 21개)의 블록 생성자를 결정한다.
블록 생성자에게는 보상이 지급되는데, 개시된 실시 예에서 블록 생성자에게는 BRC가 보상으로 지급될 수 있다.
이외에도 개시된 실시 예에 따른 시스템에 기반한 다양한 DApp이 제작 및 배포되어 이용될 수 있는데, 이 경우 각각의 DApp에서는 BRC를 이용한 보상을 지급할 수 있다.
BCE(800)는 각 암호화폐의 구매, 지급 및 환전을 관리한다.
일 실시 예에서, BAAS는 개시된 실시 예에 따른 시스템의 메인 암호화폐이고, BIDT 및 BRC는 시스템 이용자 및 구성원들에 대한 보상을 위해 이용되는 암호화폐일 수 있다.
BIDT 및 BRC는 일정 개수가 모이면 BAAS와 교환될 수 있으며, 이러한 교환은 BCE를 통하여 수행될 수 있다.
BaaS Relay는 사용자 단말, OSP 및 BP와 각각의 암호화폐 관리부를 중개하며, 암호화폐의 구매 요청 및 환전 요청을 중개하는 역할을 수행한다.
일 실시 예에서, BCE(800)는 사용자 단말(300)의 BRC 구매 요청을 BRC 코인 관리부(820)에 전달하고, BRC 코인 관리부(820)로부터 지급받은 BRC를 사용자 단말(300)에 전달할 수 있다.
또한, BCE(800)는 사용자 단말(300)의 BIDT에 기반한 BAAS 교환 요청이 수신되면 이를 BIDT 관리부(830)에 전달하고, BIDT 관리부(830)는 사용자 단말(300)의 BIDT를 BAAS로 교환하여 지급한다. BCE(800)는 BIDT 관리부(830)로부터 지급받은 BAAS를 사용자 단말(300)에 전달할 수 있다. 일 실시 예에서, BIDT 관리부(830)는 BIDT를 BAAS로 교환해주기 위한 BAAS를 보유할 수 있다.
또한, BCE(800)는 OSP(200)의 BIDT 구매 요청을 획득하고, 이를 직접 보유하여 관리하거나, BIDT 관리부(830)에 전달할 수 있다.
이후 OSP(200)로부터 인증 요청 및 이에 따른 BIDT 지급 요청이 획득되는 경우, BCE(800)는 이를 BIDT 관리부(830)에 전달하고, BIDT 관리부(830)로부터 BIDT를 지급받아 사용자 단말(300)에 전달할 수 있다.
이 과정에서, BCE(800) 또는 BIDT 관리부(830)는 OSP(200)가 구매한 BIDT 한도 내에서 BIDT가 지급되는지 여부를 판단하고, 한도를 초과한 경우 OSP(200)에게 BIDT 추가구매를 요청할 수 있다.
또한, BCE(800)는 BP(900)로부터 BRC 교환 요청을 수신하고, 이를 BRC 관리부(820)에 전달할 수 있다. BRC 관리부(820)는 BRC를 BAAS로 교환하여 지급할 수 있고, BCE(800)는 BRC 관리부(820)로부터 지급된 BAAS를 BP에 지급할 수 있다. BRC 관리부(820)는 BRC를 BAAS로 교환해주기 위한 BAAS를 보유할 수 있다.
상술한 실시 예에서, BAAS 및 BRC의 구매는 현금(예를 들어, USD)을 통해 이루어질 수 있으나, 이에 제한되는 것은 아니다.
또한, BIDT의 구매 또한 현금을 통해 직접 구매도 가능할 수 있으나, 실시 예에 따라 BIDT의 구매는 BAAS의 구매를 통해 이에 대응하는 BIDT를 획득하거나, 이에 대응하는 BIDT를 지급할 수 있는 권한을 획득할 수 있다.
도 9는 일 실시 예에 따른 OSP 및 이를 포함하는 시스템의 동작을 도시한 흐름도이다.
일 실시 예에서, OSP(200)는 인증 서버(100)에 서비스 가입 및 이용을 신청한다. 인증 서버(100)는 OSP(200)의 계정인 AccountOSP를 확인하고, 서비스 이용 요청에 대하여 회신한다.
일 실시 예에서, 인증 서버(100)는 OSP(200)에 서비스 이용을 위한 BAAS의 충전을 요청한다.
일 실시 예에서, OSP(200)는 AccountOSP에 대한 정보와 함께, BAAS를 구매하기 위한 금액(예를 들어, USD)을 인증 서버(100)에 전송한다.
일 실시 예에서, 인증 서버(100)는 AccountOSP에 대한 정보와 USD의 입금을 확인한다. 확인이 완료되는 경우, 인증 서버(100)는 BCE(800)에 BAAS의 충전을 요청하며, AccountOSP에 대한 정보와 USD의 입금정보를 전달한다.
BCE(800)는 수신된 AccountOSP에 대한 정보와 USD의 입금, 그리고 정책 정보를 확인한 후, AccountOSP의 BAAS를 관리하기 위한 계정인 AccountOSP_BAAS 계정을 생성할 수 있다.
BCE(800)는 BAAS 관리부(810)에 AccountOSP_BAAS 계정 및 입금된 USD에 대한 정보를 전달하고, BAAS의 충전을 요청할 수 있다.
BAAS 관리부(810)는 AccountOSP_BAAS 계정 및 입금된 USD에 대한 정보를 확인하고, AccountOSP_BAAS 계정에 BAAS를 충전함으로써 충전과정을 완료할 수 있다.
나아가, BCE(800)는 OSP(200)의 서비스 이용에 필요한 BIDT를 충전하기 위하여 AccountOSP_BIDT 계정을 생성할 수 있다.
또한, BCE(800)는 BIDT 관리부(830)에 대하여 AccountOSP_BIDT 계정에 대한 정보 및 AccountOSP_BIDT 계정에 충전된 BAAS를 제공하며 BIDT의 충전(구매)을 요청할 수 있다.
BIDT 관리부(830)는 AccountOSP_BIDT 계정 정보 및 AccountOSP_BAAS 계정으로부터 입금된 BAAS를 확인하고, 이에 대응하는 BIDT를 AccountOSP_BIDT 계정에 지급할 수 있다.
이후, BCE(800)는 BIDT 충전이 완료되었다는 사실을 인증 서버(100)에 전달하고, 인증 서버(100)는 OSP(200)에 대하여 서비스 이용을 위한 준비가 완료되었음을 알릴 수 있다.
도 10은 일 실시 예에 따른 사용자 단말의 월렛 및 이를 포함하는 시스템의 동작을 도시한 흐름도이다.
일 실시 예에서, 사용자 단말(300)은 설치된 월렛(700)을 통해 생성된 사용자의 계정인 AccountUSER를 이용해 OSP(200)에 서비스 사용을 신청할 수 있다.
OSP(200)는 인증 서버(100)에 AccountUSER의 정보 확인을 요청할 수 있다.
인증 서버(100)는 AccountUSER정보를 확인하고, 확인 결과를 OSP(200) 및 사용자 단말(300)에 전달할 수 있다. 확인 결과는 인증 성공 또는 실패여부에 대한 정보를 포함할 수 있다.
또한, 인증 서버(100)는 BCE(800)에 인증 수행에 따른 BIDT 지급 요청을 수행할 수 있다. 일 실시 예에서, 인증 서버(100)는 BCE(800)에 AccountUSER정보 및 AccountOSP에 대한 정보를 전달할 수 있다.
BCE(800)는 AccountOSP_BIDT 계정에 충전된 잔액 및 정책을 확인하고, 이에 따라 사용자 단말(300)에 BIDT를 지급할 수 있다.
일 실시 예에서, BCE(800)는 BIDT 관리부(830)에 대하여 사용자 단말(300)에 지급한 BIDT에 대응하는 비용을 요청할 수 있다. BIDT 관리부(830)는 AccountOSP_BAAS 계정에 충전된 BAAS를 지급함으로써 BCE(800)에 비용을 지급할 수 있다.
일 실시 예에서, BCE(800)는 사용자 단말(300)로부터 BIDT를 BAAS로 교환해줄 것을 요청받을 수 있다. 이 경우, BCE(800)는 환전 정책을 확인하고, 사용자 단말(300)에 BAAS를 지급할 수 있다.
이후, BCE(800)는 BIDT를 BIDT 관리부(830)에 제공하고, BIDT 관리부(830)는 이에 대응하는 BAAS를 BCE(800)에 지급할 수 있다.
도 11은 일 실시 예에 따른 BCE의 계정관리 방법을 설명하기 위한 도면이다.
도 11을 참조하면, 도 8에 도시된 바와 같은 BCE(800)의 구조가 도시되어 있다.
일 실시 예에서, OSP(200)는 BCE(800)에게 AccountOSP를 전달하고, BCE(800)는 OSP(200)의 AccountOSP를 이용하여 서브 계정인 AccountOSP_BAAS와 AccountOSP_BIDT를 생성할 수 있다.
BCE(800)는 OSP(200)에 대한 서브 계정들을 생성한 후, 각각의 서브 계정에 OSP의 BAAS 및 BIDT를 보관할 수 있다.
마찬가지로, BCE(800)는 BP(900)로부터 BP(900)의 계정인 AccountBP를 획득하고, 서브 계정인 AccountBP_BAAS 및 AccountBP_BRC를 생성할 수 있다. 마찬가지로, BCE(800)는 각각의 서브 계정에 BP의 BAAS 및 BRC를 저장할 수 있다.
일 실시 예에서, BaaS Relay는 OSP 계정 및 USD 입금을 확인한다.
예를 들어, BaaS Relay는 서로 다른 OSP 계정인 Account1OSP, Account2OSP, Account3OSP 등을 관리할 수 있다.
또한, BaaS Relay는 외부 요청이 획득되는 경우 이를 BAAS 관리부(810), BRC 관리부(820) 및 BIDT 관리부(830) 중 각 요청에 대응하는 주체에 요청을 전달할 수 있다.
BAAS 관리부(810)는 서브 계정인 Account1OSP_BAAS, Account2OSP_BAAS, Account3OSP_BAAS 등을 관리할 수 있다.
BRC 관리부(820)는 서브 계정인 Account1BP_BRC, Account2 BP_BRC, Account3 BP_BRC 등을 관리할 수 있다.
BIDT 관리부(830)는 서브 계정인 Account1OSP_BIDT, Account2OSP_BIDT, Account3OSP_BIDT 등을 관리할 수 있다.
도 12는 일 실시 예에 따른 사용자의 월렛을 도시한 개념도이다.
상술한 바와 같이, 사용자 단말(300)에는 개시된 실시 예에 따른 서비스 및 시스템을 이용하기 위한 애플리케이션이 설치된다. 본 명세서에서, 월렛(700)은 상술한 애플리케이션에 의하여 생성 및 저장되고, 인증정보 및 암호화폐 등을 저장하는 데 활용되는 일련의 전자지갑을 의미할 수 있다.
또한, 본 명세서에서, 월렛(700)은 상술한 애플리케이션 자체를 의미할 수도 있으며, 이는 사용자의 인증정보뿐 아니라 다양한 암호화폐의 저장기능, 클라우드 저장공간(드라이브) 기능 등을 포함하는 일종의 “슈퍼 월렛”을 의미할 수도 있으며, 월렛의 구체적인 구성 및 기능은 제한되지 않는다.
일 실시 예에서, 사용자 단말(300)에 설치된 애플리케이션에 로그인하여 개시된 실시 예에 따른 시스템에 의하여 제공되는 서비스를 이용하기 위한 계정에 해당하는 BaaSid가 사용자에게 부여될 수 있다. 사용자는 BaaSid를 이용하여 애플리케이션에 로그인할 수 있으며, 이후 개시된 실시 예에 따른 애플리케이션의 서비스를 이용할 수 있다.
일 실시 예에서, BaaSid 인증을 위한 간편 인증 수단으로서 패턴, 핀(PIN), 텍스트, 생체 정보 등이 선택적으로 입력될 수 있으며, 사용자는 해당 간편 인증 수단을 이용하여 애플리케이션을 실행할 수도 있다.
도 12를 참조하면, 개시된 실시 예에 따른 월렛(700)에서 제공할 수 있는 기능들이 도시되어 있다. 예를 들어, 월렛(700)에서 제공할 수 있는 기능으로는 전자 신분증(710), 전자지갑(720), 드라이브(730) 및 기타 다양한 기능들(740)을 포함할 수 있으나, 이에 제한되는 것은 아니다.
기존의 블록체인 지갑(월렛)은 단순히 이체, 송금, 잔고확인 정도의 기능을 수행하였으나, 개시된 실시 예에 따른 월렛(700)은 다양한 암호화폐의 보관 및 거래, EID 및 신분증 기능, 웹사이트 로그인, 클라우드 드라이브 등 다양한 기능을 수행할 수 있다.
특히, 드라이브의 경우 블록체인 및 분산저장에 기반한 보안기능을 제공하여, 기존의 드라이브와 달리 사용자 단말 및 월렛에 저장된 인증수단 없이는 서버 관리자도 그 내용을 확인할 수 없도록 하는 것을 특징으로 하며, 이에 대한 구체적인 내용은 후술한다.
나아가, 월렛은 사용자의 개인정보, 인증정보, 카드결제 정보 등 보안이 필요한 모든 정보를 저장할 수 있으며, 이에 기반한 다양한 서비스를 제공하되, 다른 서비스들에 비해 높은 수준의 보안성을 제공할 수 있는 것을 특징으로 한다.
도 13은 월렛의 신분증 기능을 제공하는 화면의 일 예를 도시한 도면이다.
도 13을 참조하면, 사용자 단말(300)에서 월렛 애플리케이션이 실행되는 화면의 일 예가 도시되어 있다.
일 실시 예에서, 월렛 애플리케이션은 ID탭(710), 월렛 탭(720) 및 드라이브 탭(730)과 개인 설정 탭을 포함할 수 있으나, 이에 제한되는 것은 아니다.
도 13에 도시된 화면은 ID탭(710)을 선택한 경우 표시되는 화면의 일 예이다.
일 실시 예에서, ID 탭 화면에는 개인 인증정보를 포함하는 전자 신분증이 표시될 수 있다. 전자 신분증에 포함되는 정보는 제한되지 않으나, 사용자의 사진, 이름, 국적, 생년월일 및 발급일자 등에 대한 정보가 포함될 수 있다.
화면에 표시되는 정보 외에도, 월렛 애플리케이션에는 사용자의 계정 정보와 EID 등 인증정보가 저장될 수 있으며, 웹사이트 로그인 혹은 본인인증 등을 위해 인증정보가 필요한 경우 월렛 애플리케이션은 저장된 인증정보 및 인증을 위하여 필요한 기타 정보들을 인증 주체에 전송할 수 있다.
실시 예에 따라서, 도 13에 도시된 전자 신분증은 온라인 및 오프라인 양측에서 사용될 수도 있으나, 온라인에서만 사용 가능한 것으로 그 용도가 제한될 수도 있다. 나아가, 도 13에 도시된 전자 신분증 및 월렛에 저장된 인증정보는 웹사이트의 로그인에만 사용할 수 있도록 그 용도가 제한될 수도 있으며, 이 경우 본인인증 등 기타 인증에는 사용할 수 없도록 용도가 제한될 수도 있다.
이외에도 전자 신분증을 사용할 수 있는 대상 및 그 용도는 기 설정된 기준에 따라 제한될 수 있다.
또한, 도 13에 도시된 도면을 참조하면 사용자에게 제공할 공지사항 또는 알림정보와, 과거의 애플리케이션, 신분증 및 인증정보 등의 이용 히스토리가 표시될 수 있다.
화면에 표시되는 정보의 종류는 제한되지 않으며, 기 설정된 목록 내에서 사용자가 선택한 정보들이 선별적으로 화면에 표시될 수도 있다.
일 실시 예에서, 사용자의 계정별로 등급이 부여될 수 있다. 예를 들어, 사용자의 등급은 보유한 BAAS 또는 BIDT의 양, 개시된 실시 예에 따른 서비스 이용횟수 및 기간 등 다양한 기준에 기반하여 산정 및 부여될 수 있으며, 이에 제한되는 것은 아니다.
다른 실시 예에서, 등급은 사용자가 수행한 인증의 단계를 의미할 수도 있다. 예를 들어, 상술한 바와 같이 사용자의 인증은 이메일 인증, SMS인증, KYC 인증 등을 단계적으로 포함하며, 사용자가 기 수행한 인증의 단계가 등급으로 표시될 수도 있다.
일 실시 예에서, 각 사용자에게 등급별로 상이한 혜택이 주어질 수 있다. 예를 들어, 사용자의 등급이 높을수록 하루에 보상으로 획득할 수 있는 BIDT의 양이나 BIDT를 획득할 수 있는 횟수가 증가할 수 있으나, 이에 제한되는 것은 아니다. 다른 예로, 사용자의 등급이 높을수록 암호화폐 거래에 따른 수수료가 감면될 수도 있다.
또한, 사용자의 등급이 높을수록 개시된 실시 예에 따른 전자 신분증을 사용할 수 있는 대상이 확대될 수도 있다. 예를 들어, 낮은 등급의 경우 전자 신분증을 특정 웹 사이트에서의 로그인에만 활용할 수 있지만, 등급이 높아질수록 전자 신분증을 이용하여 로그인할 수 있는 웹사이트의 종류가 다양해질 수 있다. 또한, 등급이 높아지면 전자 신분증을 이용하여 로그인뿐 아니라 본인인증을 수행할 수도 있으며, 그 외에도 전자 신분증을 이용할 수 있는 분야가 넓어질 수 있으나, 이에 제한되는 것은 아니다.
도 14는 월렛의 전자지갑 기능을 제공하는 화면의 일 예를 도시한 도면이다.
도 14를 참조하면, 월렛에 저장된, 혹은 저장될 수 있는 하나 이상의 암호화폐에 대한 정보가 화면에 표시되어 있다. 화면에 표시되는 암호화폐의 종류는 제한되지 않으며, 월렛에 저장되거나 저장될 수 있는 하나 이상의 암호화폐 중 사용자가 선택한 암호화폐의 목록이 표시될 수 있다.
또한, 실시 예에 따라 월렛에 한 번 이상 저장되었던 암호화폐들의 목록이 화면에 표시될 수 있으며, 이외에도 다양한 기준에 따라 암호화폐들이 화면에 표시될 수 있다.
일 실시 예에서, 화면에는 상술한 BAAS 코인이 표시될 수 있으며, 코인의 보유량 및 이에 해당하는 현금가치 혹은 코인 1개당 현재 시세가 표시될 수도 있으며, 표시되는 정보의 종류는 제한되지 않는다.
이외에도, BIDT와 같은 토큰 및 그 보유량이 월렛에 표시될 수도 있다.
일 실시 예에서, BIDT와 같이 직접 현금으로 교환되지 않을 수 있는 형태의 암호화폐라 할지라도 그 교환가치를 산정하여 현금가치가 화면에 표시될 수도 있다.
실시 예에 따라서, 사용자가 보유한 암호화폐라 할지라도 화면에 표시되지 않고 숨겨질 수 있으며, 각각의 암호화폐 보유량 또한 화면에 표시될 수도 있으나, 사용자의 선택에 따라 표시되지 않을 수도 있다.
도 15는 월렛의 드라이브 기능을 제공하는 화면의 일 예를 도시한 도면이다.
도 15를 참조하면, 월렛의 드라이브를 통해 제공하는 하나 이상의 항목의 카테고리가 화면에 표시될 수 있다.
예를 들어, 드라이브를 통해 저장 및 제공될 수 있는 항목의 카테고리는 메모, 패스워드, 문서, 사진, 신용카드 및 동영상 등을 포함할 수 있으나, 이에 제한되는 것은 아니다.
상술한 바와 같이, 드라이브를 통해 저장되는 정보는 블록체인에 기반하여 분산저장되므로, 일반적인 저장매체 혹은 클라우드 저장공간에 비해 높은 보안성을 제공한다.
블록체인에 기반한 데이터의 분산저장 방법에 대해서는 후술한다.
또한, 사용자 단말(300)에 저장된 정보가 없으면 드라이브 관리자 및 서버에서도 그 내용을 확인하는 것이 불가능하며, 사용자 단말(300)에 저장된 정보는 사용자를 통해 제공되는 인증정보(예를 들어, 생체정보 등) 없이는 접근이 불가능하도록 설정된다.
예를 들어, 개시된 실시 예에 따른 애플리케이션을 실행할 때 사용자 단말(300)은 사용자에게 인증정보 제공을 요청할 수 있다. 또한, 웹사이트 로그인, 본인인증 및 드라이브 접근 등을 위해 애플리케이션에 기반한 인증을 수행할 때, 사용자 단말(300)은 사용자에게 인증정보 제공을 요청할 수 있다.
따라서, 사용자 단말(300)이 분실되는 경우 혹은 타인에 의하여 사용자 단말(300)이 이용되는 경우에도 드라이브에 저장된 정보는 획득이 불가능하도록 설정되며, 오직 사용자 본인이 직접 사용자 단말(300)을 이용하는 경우에만 드라이브에 저장된 정보들을 확인할 수 있도록 구성된다.
따라서, 사용자는 일반적인 문서, 파일이나 메모 외에도 외부에 공개할 수 없는 기밀정보나, 본인의 아이디 및 패스워드 정보, 신용카드 및 기타 결제정보 등을 개시된 실시 예에 따른 드라이브에 안전하게 저장할 수 있다.
단, 서로 다른 노드에 분산저장된 데이터의 적어도 일부에 대해 접근이 불가능한 경우가 있을 수 있다. 예를 들어, 노드들 중 적어도 일부에 대한 통신이 어렵거나, 노드들 중 적어도 일부에 장애가 발생하거나, 노드들 중 적어도 일부가 노드로서의 역할을 중단할 수 있다.
이러한 경우에 대비하기 위하여, 개시된 실시 예에서는 안전 노드(Safe Node)를 마련하여 드라이브에 저장되는 모든 데이터를 안전 노드에도 함께 저장할 수 있다.
이에 따라, 분산저장 네트워크에 포함된 노드로부터 특정 데이터의 획득이 어려운 경우, 해당 데이터는 안전 노드로부터 획득되어 사용자 단말(300)에 제공될 수 있다.
도 12 내지 도 15를 참조하여 상술한 바와 같이, 개시된 실시 예에 따른 월렛 애플리케이션은 사용자의 인증정보, 전자 신분증, 전자지갑 및 각종 정보가 저장되는 드라이브를 포함하는 통합 서비스를 제공할 수 있다.
이에 따라, 사용자의 이용상의 편의성을 높일 수 있으며, 동시에 개인정보 유출이나 해킹 등으로부터 안전한 높은 보안성을 갖는 서비스를 제공할 수 있는 바 기존의 서비스들과 차별화된 사용자 경험을 제공할 수 있다.
도 16은 일 실시 예에 따른 데이터 분산저장 및 조합방법을 도시한 도면이다.
상술한 바와 같이, 개시된 실시 예에 따른 시스템은 데이터를 분산저장함으로써 데이터를 안전하게 보관하고, 사용자 단말(300)을 통한 사용자 본인의 인증이 없으면 저장된 데이터를 확인하는 것이 불가능하도록 구성되는 것을 특징으로 한다.
이하에서 설명되는 실시 예의 각 단계들은 개시된 실시 예에 따른 시스템의 서버에 의하여 수행될 수 있으나, 이에 제한되는 것은 아니다. 일 실시 예에서, 본 실시 예에서 언급되는 서버는 상술한 인증서버(100)에 대응할 수 있다.
일 실시 예에서, 서버(100)는 사용자 단말(300)로부터 시스템에 저장하기 위한 입력 데이터(1000)를 획득한다. 시스템에 저장되는 입력 데이터(1000)의 종류는 제한되지 않으며, 예를 들어 개인식별정보 등의 인증 데이터와, 결제정보, 그리고 텍스트, 이미지, 동영상, 음성, 문서 등의 파일 정보를 포함할 수 있다. 개시된 실시 예에서, 파일은 컴퓨터에서 사용 가능한 모든 형태의 데이터를 의미하며, 예를 들어 문서의 경우 hwp, doc, pdf 등을 포함할 수 있으나, 이에 제한되는 것은 아니다.
즉, 본 실시 예에 따른 분산저장 방법은 도 13에 도시된 전자 신분증과 도 15에 도시된 드라이브 서비스를 제공하는 데 활용될 수 있다.
일 실시 예에서, 서버(100)는 입력 데이터(1000)에 대한 전처리를 수행한다. 입력 데이터(1000)의 구체적인 전처리 방법에 대해서는 후술한다.
일 실시 예에서, 서버(100)는 SPLIT 모듈을 호출하고, SPLIT 모듈은 입력 데이터(1000)를 복수의 조각으로 분할한다. 데이터를 복수의 조각으로 분할하는 구체적인 방법 및 입력 데이터(1000)가 분할되는 조각의 개수는 제한되지 않는다.
일 실시 예에서, 서버(100)는 분할된 조각들을 IPFS(Inter-Planetary File System) 시스템(1100)을 이용하여 저장한다. IPFS 시스템(1100)은 데이터를 분산저장 네트워크(1200)에 분할하여 저장하며, 데이터를 해시한 값(1002)을 블록체인(1110)에 저장한다. 분산저장 네트워크(1200)에 분할하여 저장된 데이터는 데이터의 해시값(1002)에 기반하여 탐색 및 획득될 수 있다.
일 실시 예에서, IPFS 시스템(1100)은 SPLIT 모듈에 의하여 분할된 데이터 조각들을 분산저장 네트워크(1200)에 분할하여 저장하며, 데이터를 해시한 값(1002)을 블록체인(1110)에 저장할 수 있다.
일 실시 예에서, 분산저장 네트워크(1200)는 복수의 노드로 구성되며, 각각의 노드에 데이터 조각들이 분산저장될 수 있다. 일 실시 예에서, IPFS 시스템(1100)은 데이터 조각들이 분산저장된 위치에 대한 정보를 저장할 수 있으며, 이는 데이터의 해시값(1002)에 기반하여 탐색될 수 있다. 실시 예에 따라서, 분산저장 네트워크(1200)에 포함된 각각의 노드들은 동일한 데이터의 다른 데이터 조각을 저장하는 다른 노드에 대한 정보를 저장할 수도 있다.
다른 실시 예에서, IPFS 시스템(1100)은 SPLIT 모듈에 의하여 분할된 데이터 조각 자체를 IPFS 시스템(1100)의 분할 도구를 이용하여 다시 분할하고, 분할된 데이터 조각 각각을 해시하여 그 해시값을 블록체인에 저장할 수도 있다.
IPFS 시스템(1100)은 블록체인(1110)에 저장된 해시값(1002)을 리턴하며, 서버(100)는 리턴된 해시값(1002)의 적어도 일부를 저장할 수 있다. 실시 예에 따라서, 서버(100)는 리턴된 해시값(1002)을 다시 분산저장할 수 있으며, 이에 대한 구체적인 내용은 후술한다.
이후 분산저장된 데이터를 획득하고자 하는 경우, 서버(100)는 해시값(1002)에 기반하여 분산저장 네트워크(1200)에 저장된 데이터 조각들을 획득할 수 있다.
서버(100)는 MERGE 모듈을 호출하고, 분산저장 네트워크(1200)로부터 획득된 데이터 조각들을 병합하여 데이터를 획득할 수 있다.
서버(100)는 데이터에 대하여 수행된 전처리에 대응하는 후처리를 통해 최종 데이터(1010)를 획득할 수 있으며, 최종 데이터(1010)를 획득하기 위하여 수행되는 구체적인 후처리 방법에 대해서는 후술한다.
일 실시 예에서, 도 16에 도시된 입력 데이터(1000)와 획득 데이터(1010)는 서로 동일한 데이터일 수도 있고, 입력 데이터(1000)에 대하여 수행되는 전처리 및 후처리 방법에 따라 입력 데이터(1000)와 획득 데이터(1010)는 서로 상이할 수도 있다.
예를 들어, 입력 데이터(1000)가 인증 데이터인 경우 입력 데이터(1000)와 획득 데이터(1010)는 서로 상이할 수 있으며, 이에 대해서는 도 18을 참조하여 후술한다.
도 17은 일 실시 예에 따른 데이터의 전처리 및 후처리 방법을 설명하기 위한 도면이다.
도 17을 참조하면, 도 16에 도시된 바와 같은 분산저장 시스템이 도시되어 있다.
일 실시 예에서, 서버(100)는 사용자 단말(300)로부터 획득된 입력 데이터(1000)에 대한 비식별화를 수행할 수 있다. 예를 들어, 서버(100)는 사용자 단말(300)로부터 획득되는 사용자의 개인식별정보에 대한 비식별화를 수행할 수 있다. 개시된 실시 예에서, 개인식별정보(Personally Identifiable Information)란 생존하는 개인에 관한 정보로서 해당 정보에 의하여 개인을 식별할 수 있는 정보를 말한다. 즉, 하나 이상의 다른 정보와 결합하여 개인을 식별할 수 있는 정보들을 포함하며, 예를 들어 개인정보, 민감정보, 생체정보 등을 포함할 수 있다.
비식별화는 원본 데이터를 가공 및 변조하여 원본 데이터의 내용을 직접적으로 파악할 수 없도록 하는 것으로, 데이터 저장의 전처리 단계에서 수행된다. 일반적으로 데이터에 포함된 개인정보를 식별할 수 없도록 하는 데 이용되나, 반드시 이에 제한되는 것은 아니다.
입력 데이터(1000)에 대한 비식별화 방법은 특정한 방법으로 제한되지 않으나, 개시된 실시 예에서 이용될 수 있는 구체적인 비식별화 방법의 일 예에 대해서는 후술한다.
일 실시 예에서, 서버(100)는 비식별화 처리된 데이터의 암호화를 수행할 수 있다. 암호화에 사용되는 구체적인 기술이나 알고리즘은 제한되지 않으나, 예를 들어 AES256 알고리즘에 의한 암호화가 수행될 수 있다.
암호화된 데이터는 SPLIT 모듈에 의하여 분할 여부, 분할 사이즈 및 분할 개수를 포함하는 분할 설정이 결정된 후 데이터 조각들로 분할될 수 있다. 분할 설정을 수행하는 방법은 제한되지 않으나, 사용자에 의하여 기 설정된 분할 설정이 적용될 수도 있으며, 이 경우 해당 분할 설정은 설정 파일에 의하여 SPLIT 모듈에 전달될 수 있다. 또한, 분할 설정은 데이터의 크기 및 종류 등에 기반하여 SPLIT 모듈에 의하여 자동으로 결정될 수도 있다.
SPLIT 모듈에 의하여 분할된 데이터 조각들은 IPFS 시스템(1100)에 전달되며, IPFS 시스템(1100)은 분할된 데이터 조각들을 분산저장 네트워크(1200)의 노드들에 저장하고, 데이터를 해시한 해시 결과값(1002)을 리턴한다.
서버(100)는 분산저장된 데이터를 획득하고자 하는 경우 상술한 바와 같이 데이터의 해시값에 기반하여 IPFS 시스템(1100)으로부터 데이터 조각들을 획득한 후, MERGE 모듈을 호출하여 데이터를 조합한다.
서버(100)는 조합된 데이터들을 복호화하며, 복호화에 이용되는 알고리즘은 제한되지 않으나 상술한 바와 같이 데이터가 AES256 알고리즘에 기반하여 암호화된 경우 동일한 방법을 이용하여 데이터를 복호화할 수 있다.
서버(100)는 복호화된 데이터로부터 비식별화 코드를 제거함으로써 최종 데이터(1010)를 획득할 수 있다.
서버(100)는 데이터를 비식별화하는 데 이용한 방법에 대한 정보를 저장하거나, 데이터의 비식별화 규칙을 저장함으로써, 비식별화된 데이터로부터 비식별화 코드를 제거할 수 있도록 구성될 수 있다.
도 17에 도시된 실시 예에 따르면, 도 17에 도시된 입력 데이터(1000)와 최종적으로 획득된 획득 데이터(1010)는 서로 동일할 수 있다. 이는 개시된 실시 예에 따른 시스템이 인증정보의 저장 및 인증에 활용되는 경우에는 상이할 수 있다.
도 18은 일 실시 예에 따른 분산저장 및 조합을 통한 인증시스템을 도시한 도면이다.
일 실시 예에서, 서버(100)는 사용자 단말(300)로부터 인증 데이터(1000)를 획득할 수 있다. 예를 들어, 인증 데이터(1000)는 상술한 EID 또는 사용자의 개인식별정보를 포함할 수 있으나, 이에 제한되는 것은 아니다.
일 실시 예에서, 서버(100)는 인증 데이터(1000)를 해시할 수 있다.
인증 데이터의 경우, 보안을 위해 원본이 아닌 해시값을 저장하는 것이 일반적이다. 또한, 인증 데이터의 경우 인증시 저장된 인증 데이터와의 동일성만을 확인하면 되기 때문에, 서버(100)는 인증 데이터(1000)에 대한 해시를 수행한다.
이후 절차는 도 17과 관련하여 설명된 바와 같다. 일 실시 예에서, 서버(100)는 인증 데이터(1000)의 해시값을 비식별화하고, 비식별화된 데이터를 암호화한다. 서버는 암호화된 데이터를 SPLIT 모듈을 이용하여 분할하고, 분할된 데이터 조각들은 IPFS 시스템(1100)에 기반하여 분산저장된다.
일 실시 예에서, 서버(100)는 사용자 단말(300)로부터 인증요청을 수신할 수 있다. 서버는 인증요청과 함께 수신된 인증정보(1020)를 해시할 수 있으며, 실시 예에 따라 해시된 인증정보(1030)가 인증요청과 함께 서버에서 수신될 수도 있다.
서버는 IPFS 시스템(1100)으로부터 사용자의 인증 데이터(1000)를 분산저장한 데이터 조각들을 획득하고, MERGE 모듈을 이용하여 획득된 데이터 조각들을 조합한다. 서버는 조합된 데이터를 복호화하고, 이로부터 비식별화 코드를 제거함으로써 해시된 인증 데이터(1010)를 획득한다.
서버는 인증요청과 함께 획득된 인증 데이터(1020)의 해시값(1030)을, 분산저장된 데이터로부터 획득된 데이터(1010)와 비교하고, 그 일치여부에 따라 인증 성공여부를 결정할 수 있다.
도 19는 일 실시 예에 따른 비식별화 방법을 도시한 도면이다.
개시된 실시 예에서, 서버는 데이터를 분산저장하기 전의 전처리 단계의 하나로서 데이터에 대한 비식별화를 수행한다. 일 실시 예에서, 데이터의 비식별화는 데이터의 암호화 전단계에서 수행될 수 있다. 또한, 데이터의 비식별화는 데이터의 해시 이후 단계에서 수행될 수 있다.
개시된 실시 예에서, 데이터의 비식별화는 랜덤 문자 집합(Random Character Set, 1350)으로부터 랜덤하게 추출된 문자와 데이터(1300)를 결합하는 방식으로 데이터를 가공함으로써 수행된다.
랜덤 문자 집합(1350)에 포함되는 문자의 종류는 제한되지 않으며, 랜덤 문자 집합(1350)은 공통적으로 이용되거나 기 설정된 기준에 따라 변경될 수 있으며, 실시 예에 따라 사용자별로 상이한 랜덤 문자 집합(1350)이 이용될 수도 있다.
또한, 랜덤 문자 집합(1350)으로부터 추출된 문자와 데이터(1300)의 결합방식 또한 제한되지 않는다. 예를 들어, 서버(100)는 비식별화를 수행할 데이터(1300)에서 랜덤 문자 집합(1350)으로부터 추출된 문자가 결합될 위치를 결정할 수 있으며, 이는 기 설정된 규칙에 의하여 결정될 수도 있고, 임의로 결정될 수도 있다. 서버(100)는 결정된 위치에 랜덤 문자 집합(1350)으로부터 추출된 문자를 결합할 수 있으며, 추출된 문자가 결합되는 순서 또한 다양하게 결정될 수 있다.
또한, 비식별화 코드(랜덤 문자 집합으로부터 추출된 문자)가 데이터(1300)와 결합되는 방법은 제한되지 않으며, 도 19에 도시된 바와 같은 단순 삽입뿐 아니라 비식별화 코드를 이용하여 데이터를 연산함으로써 데이터를 가공하는 방법도 이용될 수 있다.
비식별화 데이터가 결합된 위치 혹은 결합 규칙에 대한 정보는 추후 비식별화된 데이터의 비식별화 코드 제거를 위해 별도로 저장될 수 있다.
도 20은 일 실시 예에 따른 연결자에 기반한 데이터 분산저장 및 조합방법을 도시한 도면이다.
도 20을 참조하면, 도 16에 도시된 바와 같은 데이터 분산저장 시스템이 도시되어 있다. 단, 도 20에는 도 16에 도시된 IPFS 시스템 대신 분산저장 네트워크(1200)와 블록체인(1400) 및 연결자(1250)가 도시되어 있다.
일 실시 예에서, 서버(100)는 입력 데이터(1000)에 대한 전처리를 수행한 후, SPLIT 모듈을 호출하여 데이터를 분할함으로써 데이터 조각들을 생성할 수 있다.
분할된 데이터 조각들은 분산저장 네트워크(1200)의 노드들에 분산저장되며, 분산저장된 데이터들을 추적하기 위한 정보로서 연결자(1250)가 생성된다. 실시 예에 따라서, 연결자(1250)와 데이터가 분산저장된 노드들 간의 관계를 나타내는 조각 분산 맵이 생성되어 저장될 수도 있다.
일 실시 예에서, 조각 분산 맵은 분산저장 네트워크(1200)에서 데이터 조각들이 저장된 노드에 관한 정보 및 데이터 조각들이 저장된 순서에 대한 정보를 포함할 수 있다. 서버(100)는 연결자(1250)를 이용하여 조각 분산 맵에서 추적할 데이터에 대한 정보를 탐색할 수 있으며, 탐색된 정보에 기반하여 데이터 조각들을 추적할 수 있다.
또한, 연결자(1250)는 블록체인(1400)에 분산저장될 수 있다. 예를 들어, 연결자(1250)는 2개 이상의 조각으로 분할되어, 블록체인(1400)의 2개 이상의 노드에 분산저장될 수 있다.
일 실시 예에서, 연결자(1250)가 저장된 노드의 위치에 대한 정보를 포함하는 연결자 분산 맵이 생성되어 저장될 수도 있다.
분산저장된 데이터의 획득이 필요한 경우, 서버(100)는 연결자 분산 맵에 기반하여 블록체인(1400)으로부터 연결자(1250)를 획득할 수 있다. 또한, 서버(100)는 연결자 및 조각 분산 맵을 이용하여 분산저장 네트워크(1200)에 저장된 데이터 조각들을 획득할 수 있다.
이후, 서버(100)는 MERGE 모듈을 호출하여 데이터 조각들을 조합하고, 이를 후처리함으로써 데이터를 획득할 수 있다.
도 20에 도시된 실시 예에서, 분산저장 네트워크(1200)는 도 16에 도시된 분산저장 네트워크(1200)에, 블록체인(1400)은 도 16에 도시된 IPFS 시스템 내부의 블록체인(1110)에 각각 대응할 수 있으며, 실시 예에 따라 연결자(1250)는 도 16에 도시된 데이터의 해시 값(1002)에 대응할 수도 있다.
도 21은 일 실시 예에 따라 사용자 단말을 포함하는 데이터의 분산저장 시스템을 도시한 도면이다.
도 21을 참조하면, 도 16에 도시된 바와 유사한 데이터의 분산저장 시스템이 도시되어 있다.
단, 도 21에 도시된 실시 예에 따르면 분산저장 과정에 사용자 단말(300)을 참여시킴으로써, 사용자 단말(300) 없이는 분산저장된 데이터를 획득할 수 없도록 하는 것을 특징으로 한다.
일 실시 예에서, 서버(100)는 입력 데이터(1000)에 대한 전처리를 수행하고, SPLIT 모듈에 기반하여 데이터를 복수의 데이터 조각으로 분할한 후, 이를 IPFS 시스템(1100)을 통해 분산저장한다.
서버(100)는 IPFS 시스템(1100)으로부터 데이터의 해시값(1002)을 리턴받으며, 데이터의 해시값(1002)을 이용하여 IPFS 시스템(1100)으로부터 데이터 조각들을 탐색 및 획득할 수 있다.
서버(100)는 리턴된 해시값(1002)을 M:N으로 분할하여, M%는 사용자 단말(300)에 전송하고, N%는 블록체인(1500)에 배포하여 저장한다. N%의 해시값이 저장되는 블록체인의 종류 및 구성은 제한되지 않는다.
일 실시 예에서, M%와 N%의 합은 100%가 되도록 구성되며, 그 구체적인 비율은 한정되지 않으나, 예를 들어, M%는 51%, N%는 49%가 되도록 해시값이 분할될 수 있다. 단, 해시값을 분할하는 M%와 N%의 비율은 이에 제한되지 않으며, 사용자의 설정 혹은 데이터의 특성에 따라 다양하게 설정될 수 있고, 또한 유동적으로 변경될 수 있다.
사용자 단말(300)은 상술한 애플리케이션에 기반하여, 서버(100)로부터 수신된 M%의 해시값을 저장한다. 예를 들어, M%의 해시값은 사용자의 인증 데이터와 함께 애플리케이션을 통해 저장될 수 있다.
사용자 단말(300)에 저장되는 M%의 데이터는 서버(100) 또는 블록체인(1500)에는 저장되지 않거나, 사용자 인증이 없이는 접근할 수 없는 형태로 저장됨으로써, 사용자가 M%의 데이터를 제공하지 않으면 서버(100)가 저장된 데이터를 획득할 수 없도록 구성될 수 있다.
일 실시 예에서, 사용자가 M%의 데이터가 저장된 사용자 단말(300)을 분실하거나, 사용자 단말(300)이 백업되지 않은 상태로 파손될 수 있다.
이러한 경우를 대비하여, 서버(100)는 사용자의 계정과 관련된 데이터를 별도로 저장하며, 사용자 단말(300)을 통해 사용자의 계정을 복구하기 위한 정보가 획득되는 경우 복구 데이터를 사용자 단말로 전송할 수 있다.
일 실시 예에서, 사용자 계정의 복구에는 BIP 39 표준에 기반한 12개의 단어를 포함하는 니모닉 코드(Mnemonic code)가 이용될 수 있으나, 이에 제한되는 것은 아니다.
일 실시 예에서, 사용자 계정의 복구에 이용되는 니모닉 코드가 분실되는 경우를 대비하기 위하여 안전 노드(Safe Node)에 니모닉 코드가 보관될 수 있다. 일 실시 예에서, 안전 노드는 프라이빗 블록체인 형태로 구성될 수 있으며, 안전 노드에 저장되는 데이터는 개시된 실시 예에 따른 분할 방법을 통해 분산저장될 수 있다. 다른 실시 예에서, 안전 노드와 별도의 프라이빗 블록체인 형태로 구성되는 사용자의 프라이빗 클라우드를 통해 복구를 위한 데이터가 저장되거나, 일부 정보가 백업될 수도 있다.
안전 노드는 복수의 관리자에 의하여 관리되며, 사용자가 복구를 요청하는 경우 모든 관리자의 승인이 있어야 안전 노드로부터 니모닉 코드가 사용자 단말(300)에 제공되도록 하는 것을 특징으로 한다.
단일 관리자가 안전 노드를 관리하는 경우 관리자가 임의로 특정 사용자의 니모닉 코드를 유출시킬 수 있는 바, 모든 관리자의 서명이 있어야만 사용자 단말(300)이 안전 노드에 저장된 니모닉 코드를 획득할 수 있도록 구성된다.
또한, 사용자 단말(300)이 계정을 생성하고 월렛을 설치하는 경우, 추후 복구를 위해 일회용 키 쌍을 생성할 수 있다. 일회용 키 쌍은 개인키와 공개키를 포함하며, 개인키는 사용자 단말(300)에 저장되고, 공개키는 블록체인에 배포될 수 있다.
사용자가 계정 복구를 원하는 경우, 사용자 단말(300)은 안전 노드에 니모닉 코드를 요청할 수 있다. 안전 노드를 관리하는 복수의 관리자의 승인 및 서명이 완료되는 경우, 안전 노드에 저장된 니모닉 코드는 사용자의 공개키로 암호화되어 사용자 단말(300)에 전달된다.
즉, 관리자는 복구 승인에 대한 권한이 있을 뿐, 사용자의 개인키를 보유하지 않는 바 그 내용을 확인할 권한은 부여되지 않는다.
사용자 단말(300)은 개인키를 이용하여 암호화된 데이터를 복호화함으로써 니모닉 코드를 획득하고, 이를 이용하여 계정을 복구할 수 있다. 계정 복구가 완료되는 경우, 일회용 키 쌍은 더 이상 사용되지 않고 폐기될 수 있다.
실시 예에 따라서, 안전 노드에 사용자의 개인키가 보관될 수도 있다.
또한, 상술한 바와 같이 사용자 단말(300)에 저장되는 M%의 데이터 또한 안전 노드에 보관되어 상술한 방법을 이용하여 복구될 수 있다.
상술한 니모닉 코드와 개인키는 개시된 실시 예에 따른 방법에 의하여 분할되며, 분할된 데이터 중 M%의 데이터는 OSP의 안전 노드에, N%의 데이터는 프라이빗 블록체인에 각각 분산저장될 수도 있다.
분산저장된 데이터는 복구 요청시 획득 및 조합되어 이용되고, 복구에 사용된 데이터는 시스템에 저장하지 않고 폐기(삭제)될 수 있다.
일 실시 예에서, 사용자 계정이나 백업된 데이터의 복구에는 사용자 정보에 기반한 검증과, 사용자의 생체정보를 이용한 2차 검증이 필수적으로 수행될 수 있다. 예를 들어, 계정의 복구에는 FIDO(Fast Identity Online)에 기반한 2차 인증이 필수적으로 수행되도록 설정될 수 있다. FIDO 인증에는 사용자의 생체정보가 이용될 수 있으나, 이에 제한되는 것은 아니다.
상술한 바와 같이, 안전 노드는 복수의 관리자에 의하여 관리되고, 복수의 관리자 전원의 승인 및 서명을 요하고, 데이터의 전송은 사용자의 비대칭 키 쌍에 기반하여 수행된다는 점에서, 사용자 단말(300)과 직접적으로 1:1로 연결되는 프라이빗 저장공간과 같은 역할을 수행한다. 즉, 관리자가 임의로 데이터 반출을 승인하거나, 데이터의 내용을 확인할 수 없는 바, 마치 사용자가 직접 물리적으로 보유하는 저장공간(예를 들어, 저장 토큰이나 사용자 단말 등)과 같은 보안성을 제공할 수 있다.
따라서, 개시된 실시 예에 따른 사용자의 개인키나 M%의 데이터, 니모닉 코드 등은 사용자 단말(300)뿐 아니라 안전 노드에도 저장될 수 있다.
또한, 안전 노드에 저장되는 정보들은 개시된 실시 예에 따른 분할방법을 통해 분산저장되고, 이용시에는 조합되어 이용될 수 있다.
일 실시 예에서, 안전 노드를 이용한 콜드 월렛 서비스가 제공될 수 있다. 콜드 월렛은 사용자가 보유한 물리적 저장장치에 월렛을 저장하는 것이 일반적이나, 개시된 실시 예에 따르면 물리적 저장장치와 같은 수준의 보안을 제공하는 안전 노드를 이용하여 콜드 월렛을 구현할 수 있다.
예를 들어, 콜드 월렛에 사용자의 개인키가 분산되어 저장될 수 있다. 사용자가 트랜젝션을 요청하는 경우, 이에 대하여 상술한 바와 같이 복수 관리자의 승인 및 서명을 통해 개인키 이용을 허가할 수 있고, 안전 노드에 분산저장된 개인키는 조합되어 트랜젝션 서명에 사용되고, 이후 개인키를 조합하는 데 사용된 정보 및 조합된 개인키는 모두 폐기될 수 있다.
도 22는 일 실시 예에 따른 사용자 단말을 포함하는 분산저장 시스템에서 조합을 통해 데이터를 획득하는 방법을 도시한 도면이다.
일 실시 예에서, 서버(100)는 사용자 단말(300)로부터 사용자 단말(300)에 분산저장된 M%의 정보를 획득할 수 있다.
또한, 서버(100)는 이에 대응하는 나머지 N%의 정보를 블록체인(1500)으로부터 획득할 수 있다.
서버(100)는 M%의 데이터와 N%의 데이터를 조합하여 결과 데이터를 획득할 수 있다. 일 실시 예에서, 결과 데이터는 IPFS 시스템(1100)에서 데이터 획득을 위해 이용되는 데이터의 해시 값(1002)일 수 있으나, 이에 제한되는 것은 아니다.
서버는 IPFS 시스템(1100)을 통하여 분산저장 네트워크(1200)에 저장된 데이터 조각들을 획득하고, 획득된 데이터 조각들을 병합하여 데이터를 획득할 수 있다.
도 23은 일 실시 예에 따른 일회성 인증방법을 도시한 도면이다.
도 22를 참조하여 설명한 바와 같이, 서버(100)는 사용자 단말(300)로부터 M%의 데이터를, 블록체인(1500)으로부터 N%의 데이터를 획득한다.
서버(100)는 M%의 데이터와 N%의 데이터를 조합하여 데이터 획득을 위한 정보(예를 들어, 데이터의 해시값)를 획득하고, 획득된 정보에 기반하여 IPFS 시스템(1100)으로부터 분산저장된 데이터를 획득한다.
단, 서버(100)에 M%의 데이터와 N%의 데이터를 조합하여 획득된 정보가 저장되는 경우, 개시된 실시 예에 따른 분산저장 시스템의 이점이 사라지게 되는 문제점이 존재한다
따라서, 서버(100)는 M%의 데이터와 N%의 데이터를 조합하여 획득된 정보의 이용이 완료되는 경우(즉, IPFS 시스템에 분산저장된 데이터의 획득이 완료되는 경우) M%의 데이터와 N%의 데이터를 조합하여 획득된 정보를 반드시 폐기하도록 구성된다.
특히 사용자 단말(300)로부터 획득한 M%의 정보는 반드시 폐기되어야 하며, 이를 통해 사용자 단말(300)로부터 획득한 M%의 정보는 서버(100)에서 일회성으로 이용되며, 이용 후에는 반드시 폐기된다는 점이 보장되어야 한다.
이는 개시된 실시 예에 따른 시스템을 이용하는 사용자 인증방법에서도 일회성으로 그 인증이 수행됨을 의미할 수 있다. 예를 들어, 사용자 단말(300)이 서버(100)에 인증을 요청하는 경우, 사용자 단말(300)은 인증 데이터와 함께 이에 대응하는 M%의 정보를 서버(100)에 제공할 수 있다.
서버(100)는 M%의 정보를 이용하여 분산저장된 인증 데이터를 획득하고, 이를 사용자 단말(300)로부터 제공된 인증 데이터와 비교함으로써 인증을 수행할 수 있다. 인증이 완료되면 서버(100)는 사용자 단말(300)로부터 제공받은 M%의 정보를 폐기하고, 사용자 단말(300)로부터 제공된 정보를 이용하여 1회 이상의 인증을 수행하지는 않도록 구성될 수 있다.
이러한 일회성 인증방법을 통하여, 서버(100)는 사용자 단말(300)을 통한 인증요청이 수신되는 경우에만 단 한 번 분산저장된 사용자 인증정보에 접근할 수 있도록 구성되고, 이외에는 서버 관리자라 할지라도 분산저장된 사용자 인증정보에 접근할 수 없도록 하여, 사용자 인증정보를 더욱 안전하게 보관할 수 있다.
도 24는 개시된 실시 예에 따른 시스템을 이용하여 인증정보 또는 파일을 분산저장 및 조합하여 이용하는 방법을 도시한 흐름도이다.
일 실시 예에서, 서버(100)는 사용자 단말(300)로부터 요청을 획득할 수 있다.
서버(100)는 요청의 종류를 판단할 수 있으며, 예를 들어 요청의 종류는 인증요청과 파일요청을 포함할 수 있다.
요청의 종류가 인증요청인 것으로 판단되는 경우, 서버(100)는 인증단계를 개시할 수 있다. 서버(100)는 인증요청의 종류가 인증 데이터의 저장 요청인지, 혹은 인증 수행 요청인지를 판단할 수 있다.
인증요청의 종류가 인증 데이터의 저장 요청인 경우, 서버(100)는 데이터 전처리 후 SPLIT 모듈을 호출하여 데이터를 IPFS 모듈에 분산저장할 수 있다. 인증요청의 종류가 인증 수행 요청인 경우, 서버(100)는 MERGE 모듈을 호출하여 IPFS에 분산저장된 인증 데이터를 조합하여 획득하고, 인증을 수행할 수 있다.
마찬가지로, 요청의 종류가 파일요청인 것으로 판단되는 경우, 서버(100)는 파일 관리단계를 개시할 수 있다. 서버(100)는 파일요청의 종류가 파일 저장요청인지, 혹은 파일 획득(열람 또는 다운로드)요청인지를 판단할 수 있다.
파일요청의 종류가 파일 저장요청인 경우, 서버(100)는 데이터 전처리 후 SPLIT 모듈을 호출하여 데이터를 IPFS 모듈에 분산저장할 수 있다. 파일요청의 종류가 파일 획득요청인 경우, 서버(100)는 MERGE 모듈을 호출하여 IPFS에 분산저장된 파일 데이터를 조합하여 획득하고, 이를 사용자 단말(300)에 제공할 수 있다.
파일의 저장 및 획득 과정에서, 서버(100)는 파일의 손상 여부를 확인할 수 있다. 또한, 서버(100)는 파일의 속성을 통해 파일의 종류를 확인하고, 파일의 종류에 따라 구체적인 분산저장 방법을 결정할 수 있다.
도 25는 일 실시 예에 따른 컴퓨팅 파워 제공 및 이에 대한 보상방법을 도시한 도면이다.
도 25를 참조하면, 개시된 실시 예에 따른 BaaSid 시스템(1600) 및 BaaSid 시스템에 컴퓨팅 파워를 제공하는 사용자 단말들(1700)이 도시되어 있다.
일 실시 예에서, 사용자 단말들(1700)은 각각의 컴퓨팅 파워의 적어도 일부를 개시된 실시 예에 따른 BaaSid 시스템(1600)에 위탁할 수 있다. 예를 들어, 컴퓨팅 파워는 CPU, RAM 및 네트워크 자원을 의미할 수 있으나, 이에 제한되는 것은 아니다.
BaaSid 시스템(1600)은 컴퓨팅 파워 제공에 대한 대가로서 사용자 단말에 보상을 지급할 수 있다. 지급되는 보상의 형태 및 양은 제한되지 않으나, 예를 들어 서버(100)는 사용자가 위탁한 컴퓨팅 파워의 양을 정량적으로 측정하고, 이에 비례하는 양의 보상을 지급할 수 있다. 보상은 상술한 BRC 또는 BIDT로 지급될 수 있다.
사용자 단말은 위탁할 컴퓨팅 파워의 양 및 위탁기간을 결정할 수 있으며, 보상은 컴퓨팅 파워의 양 및 위탁기간에 따라 상이하게 책정될 수 있다. 예를 들어, 사용자 단말이 위탁기간을 길게 설정할수록, 단위 기간당 보상의 크기가 증가할 수 있다.
단, 사용자 단말이 계약된 위탁기간이 만료되기 전에 컴퓨팅 파워의 거치를 해지하는 경우, 지급되는 보상의 양이 조정될 수 있다.
사용자 단말들(1700)로부터 제공되는 컴퓨팅 파워는 개시된 실시 예에 따른 시스템의 저장공간, 프로세싱 능력 향상 및 통신능력 향상에 활용될 수 있다.
실시 예에 따라서, 도 16에 도시된 분산저장 네트워크(1200)를 구성하는 노드에 해당하는 각각의 사용자 단말에 대해서도 보상이 지급될 수 있다. 각각의 사용자 단말에 저장된 정보의 안정적인 보관 및 유지관리를 위하여 서버(100)는 보상을 지급할 수 있으며, 마찬가지로 보상은 BRC 또는 BIDT 형태로 지급될 수 있다.
일 실시 예에서, 특정한 정보를 보관하는 노드가 그 역할을 종료하고자 하는 경우, 서버(100)에 사전에 해지요청을 하도록 하여야 서버(100)가 해당 정보를 다른 노드에 옮겨서 저장함으로써 정보를 안정적으로 관리할 수 있다.
일 실시 예에서, 서버(100)는 노드의 역할종료 고지를 유도하기 위하여 노드가 역할종료를 고지하고 해당 노드에 저장된 정보가 다른 노드에 옮겨서 저장된 후에 해당 노드에 대한 보상을 정산하여 지급하거나, 해당 노드에 대하여 추가 보상을 지급하도록 하는 등의 규칙을 설정할 수 있다.
또한, 서버(100)는 도 8과 관련하여 설명한 바와 같이 블록체인 시스템을 유지하는 BP(900)에 대해서도 보상을 지급할 수 있다. 보상은 BRC 형태로 지급될 수 있으며, DPoS 기반의 블록체인 시스템의 경우 BP는 기 설정된 수(예를 들어, 21개)가 구성원들의 투표에 기반하여 선출될 수 있다. 선출된 BP는 블록체인 시스템의 안정적인 유지를 위한 역할을 수행하며, 이에 대한 보상을 획득한다.
이하에서는, 도면을 참조하여 본 발명의 실시 예를 구체적으로 설명한다.
도 26은 일 실시 예에 따른 블록체인에 분산저장된 데이터의 탐색 및 조합을 통한 데이터 획득방법을 도시한 흐름도이다.
이하의 실시 예는 도 1 내지 도 25와 관련하여 상술한 내용들에 기반하며, 이에 도 26과 관련하여 생략된 내용이라 하더라도 도 1 내지 도 25와 관련하여 설명된 내용은 본 실시 예에도 적용될 수 있다.
단계 S110에서, 컴퓨터는 블록체인에 저장된 탐색값을 획득할 수 있다.
일 실시 예에서, 컴퓨터는 사용자 단말로부터 상기 탐색값이 분할된 조각의 M%를 획득할 수 있다. 컴퓨터는 상기 블록체인으로부터 상기 탐색값이 분할된 조각의 나머지 N%를 획득하고, 상기 M% 및 상기 N%의 분할된 조각을 조합하여 상기 탐색값을 복원할 수 있다.
단계 S120에서, 컴퓨터는 상기 탐색값을 이용하여 분산저장 네트워크에 분산저장된 데이터 조각들을 획득할 수 있다.
일 실시 예에서, 컴퓨터는 사용자 단말 및 블록체인으로부터 각각 획득된 조각을 조합하여 복원된 탐색값을 이용하여 상기 분산저장 네트워크에 분산저장된 데이터 조각들을 획득할 수 있다.
일 실시 예에서, 컴퓨터는 복원된 탐색값을 폐기하여 재사용이 불가능하도록 할 수 있다.
일 실시 예에서, 컴퓨터는 기 설정된 IPFS 시스템에 상기 탐색값을 전달하고, 상기 IPFS 시스템으로부터 상기 데이터 조각들을 획득할 수 있다. 이 경우, 탐색 값은 상기 IPFS 시스템에 저장된 데이터의 해시 값을 의미할 수 있다.
단계 S130에서, 컴퓨터는 상기 데이터 조각들을 조합할 수 있다.
단계 S140에서, 컴퓨터는 조합된 데이터를 후처리하여 결과 데이터를 획득할 수 있다.
일 실시 예에서, 컴퓨터는 상기 조합된 데이터를 복호화하고, 상기 복호화된 데이터로부터 비식별화 코드를 제거할 수 있다.
일 실시 예에서, 컴퓨터는 사용자 단말로부터 인증요청 데이터를 획득할 수 있다. 컴퓨터는 상기 인증요청 데이터를 해시하고, 상기 해시된 값을 상기 결과 데이터와 비교할 수 있다.
컴퓨터는 상기 비교 결과에 따라 인증 결과를 획득할 수 있다. 예를 들어, 결과 데이터와 해시된 인증요청 데이터가 일치하는 경우 인증에 성공한 것으로 판단할 수 있으나, 이에 제한되는 것은 아니다.
도 27은 일 실시 예에 따른 장치의 구성도이다.
일 실시 예에서, 장치(10)는 프로세서(12) 및 메모리(14)를 포함한다.
프로세서(12)는 하나 이상의 코어(core, 미도시) 및 그래픽 처리부(미도시) 및/또는 다른 구성 요소와 신호를 송수신하는 연결 통로(예를 들어, 버스(bus) 등)를 포함할 수 있다.
일 실시예에 따른 프로세서(12)는 메모리(14)에 저장된 하나 이상의 인스트럭션을 실행함으로써, 도 1 내지 도 26과 관련하여 설명된 방법을 수행한다.
한편, 프로세서(12)는 프로세서(12) 내부에서 처리되는 신호(또는, 데이터)를 일시적 및/또는 영구적으로 저장하는 램(RAM: Random Access Memory, 미도시) 및 롬(ROM: Read-Only Memory, 미도시)을 더 포함할 수 있다. 또한, 프로세서(12)는 그래픽 처리부, 램 및 롬 중 적어도 하나를 포함하는 시스템온칩(SoC: system on chip) 형태로 구현될 수 있다.
메모리(14)에는 프로세서(12)의 처리 및 제어를 위한 프로그램들(하나 이상의 인스트럭션들)을 저장할 수 있다. 메모리(14)에 저장된 프로그램들은 기능에 따라 복수 개의 모듈들로 구분될 수 있다.
이하에서는, 본 발명의 다른 실시 예에 대하여 설명한다. 이하에서 설명되는 실시 예들은 본 발명에 적용되거나 본 발명이 응용될 수 있는 기술분야의 예시를 설명하기 위한 것으로, 이하의 구성들이 본 발명에 반드시 포함되거나 본 발명의 구성이 이에 제한되는 것은 아니다.
일 실시 예에서, 서버(100)는 사용자 단말(300)에 인증 절차의 개시를 위해 푸시 메시지를 전달할 수 있다. 예를 들어, 도 6에 도시된 실시 예를 참조할 수 있다.
단, 실시 예에 따라 사용자 단말(300)에서 푸시 메시지를 수신하기 어려운 경우가 있을 수 있다.
예를 들어, 사용자 단말(300)에 설치된 애플리케이션에서 푸시 메시지 수신을 거부한 상태이거나, 애플리케이션이 푸시 메시지를 수신할 수 있도록 백그라운드에서 동작중인 상태가 아닐 수 있다.
일 실시 예에서, 서버(100)는 사용자 단말(300)이 푸시 메시지 수신이 가능한 상태인지 여부를 판단하고, 사용자 단말(300)이 푸시 메시지 수신이 어려운 상태인 것으로 판단되는 경우 푸시 메시지 대신 SMS, LMS 및 MMS 등의 문자 메시지를 사용자 단말(300)에 전송할 수 있다.
다른 실시 예에서, 서버(100)는 사용자 단말(300)이 푸시 메시지를 수신할 수 없는 경우, 다른 단말을 통하여 사용자 단말(300)에 문자 메시지를 발송할 수도 있다.
일 실시 예에서, 서버(100)에 의하여 서로 문자 메시지를 발송할 수 있는 단말은 각각의 단말로부터의 신청 혹은 신청 및 승인에 근거하여 서버(100)에 기 등록된 단말들일 수 있다.
예를 들어, 제1 사용자 단말에 대하여 제2 사용자 단말이 상호 간 신청 및 승인에 기반하여 서버(100)에 등록되어 있는 경우, 제1 사용자 단말이 푸시 메시지를 받을 수 없는 단말이거나, 푸시 메시지를 받을 수 없는 상태에 있는 경우 서버(100)는 푸시 메시지를 받을 수 있는 상태에 있는 제2 사용자 단말에 푸시 메시지를 전송하고, 제2 사용자 단말은 푸시 메시지에 대응하는 문자 메시지를 생성하여 제1 사용자 단말에 전송할 수 있다.
이 경우, 메시지에는 애플리케이션을 실행하여 인증절차를 개시하도록 하는 명령어만이 포함되어, 제1 사용자 단말의 개인정보가 제2 사용자 단말에 공유되거나 노출되는 문제가 발생하지 않도록 한다.
서버(100)가 사용자 단말 각각에 문자 메시지를 보내는 것은 시스템상 어려움이 있을 수 있다. 따라서, 제1 사용자 단말이 푸시 메시지를 받을 수 없는 경우 서버(100)는 제2 사용자 단말을 통하여 제1 사용자 단말에 문자 메시지를 발송하도록 하고, 대신 서버(100)는 제2 사용자 단말에 소정의 보상을 제공할 수 있다. 제공되는 보상은 상술한 BIDT 또는 BRC로 제공될 수 있으나, 이에 제한되는 것은 아니다.
다른 예로, 서버(100)에 의하여 서로 문자 메시지를 발송할 수 있는 단말은 서버(100)의 요청을 승인하여 특정한 풀에 등록된 단말들일 수 있다.
예를 들어, 상술한 예와 같이 일대일로 등록되는 것과 달리, 본 실시 예에 따르면 복수의 사용자 단말들이 사전 승인에 기반하여 서버(100)에 풀로서 등록되어 있을 수 있다.
예를 들어, 풀은 개시된 실시 예에 따른 분산저장 네트워크 또는 블록체인의 노드를 구성하는 사용자 단말들을 포함할 수 있으며, 또한 개시된 실시 예에 따라 컴퓨팅 파워를 BaaSid 시스템에 제공하는 사용자 단말을 포함할 수도 있으나, 이에 제한되는 것은 아니다.
다른 예로, 풀은 개시된 실시 예에 따른 BP 또는 안전 노드를 관리하는 관리자들 중 적어도 일부로 구성될 수도 있다.
일 실시 예에서, 서버(100)는 제1 사용자 단말에 대하여 푸시 메시지 수신이 가능한지 여부를 확인하기 위한 질의 메시지를 전송하고, 제1 사용자 단말로부터 질의 메시지에 대한 회신이 수신되는 경우 제1 사용자 단말에 푸시 메시지를 전송하고, 제1 사용자 단말로부터 회신이 수신되지 않는 경우, 풀에 등록된 사용자 단말들 중 푸시 메시지 수신이 가능한 적어도 하나의 단말을 선택하고, 해당 단말에 푸시 메시지를 전송하면서 제1 사용자 단말에 문자 메시지 발송을 요청할 수 있다.
일 실시 예에서, 서버(100)는 사용자 단말(300)로부터 문자 메시지 발송 실패정보가 수신되는 경우에도, 다른 사용자 단말에 사용자 단말(300)로 문자 메시지 발송을 요청하는 푸시 메시지를 전송할 수 있다.
일 실시 예에서, 서버(100)는 풀에 등록된 사용자 단말들에게 소정의 보상을 지급할 수 있다. 보상 지급의 주기, 정도 및 방법은 제한되지 않는다.
상기한 실시 예를 수행하기 위하여, 사용자 단말(300)은 서버(100)로부터 제1 사용자 단말에 대한 문자 메시지 발송 승인요청을 수신하는 단계, 상기 승인요청에 대한 승인정보를 상기 서버에 전송하는 단계, 상기 제1 사용자 단말의 전화번호를 포함하는, 상기 제1 사용자 단말에 대한 정보를 저장하는 단계, 상기 서버로부터 상기 제1 사용자 단말에 대한 메시지 발송 요청정보를 포함하는 제1 푸시 메시지를 수신하는 단계, 상기 제1 푸시 메시지에 포함된 콘텐츠를 획득하는 단계, 상기 제1 푸시 메시지에 포함된 콘텐츠를 이용하여 제1 문자 메시지를 생성하는 단계, 상기 제1 푸시 메시지에 포함된 제1 전화번호를 획득하는 단계, 상기 제1 전화번호와 상기 제1 사용자 단말의 전화번호를 비교하는 단계, 상기 제1 전화번호와 상기 제1 사용자 단말의 전화번호가 일치하는 경우, 상기 제1 전화번호로 상기 제1 문자 메시지를 전송하는 단계, 상기 서버에 상기 제1 문자 메시지의 전송결과를 전송하는 단계, 상기 서버로부터 상기 제1 문자 메시지 전송결과에 대응하는 포인트를 획득하는 단계, 상기 서버로부터 제1 풀에 대한 등록요청을 수신하는 단계, 상기 등록요청에 대한 승인정보를 상기 서버에 전송하는 단계, 상기 서버로부터 상기 제1 풀에 대응하는 암호화 키를 수신하는 단계, 상기 서버로부터 상기 제1 풀에 포함된 제2 사용자 단말에 대한 메시지 발송 요청정보를 포함하는 제2 푸시 메시지를 수신하는 단계, 상기 제2 푸시 메시지에 포함된 콘텐츠를 획득하는 단계, 상기 제2 푸시 메시지에 포함된 콘텐츠를 이용하여 제2 문자 메시지를 생성하는 단계, 상기 암호화 키를 이용하여 상기 제2 문자 메시지를 암호화하는 단계, 상기 제2 푸시 메시지에 포함된 제2 전화번호를 획득하는 단계, 상기 암호화된 제2 문자 메시지를 상기 제2 전화번호로 전송하는 단계, 상기 서버에 상기 제2 문자 메시지의 전송결과를 전송하는 단계 및 상기 서버로부터 상기 제2 문자 메시지 전송결과에 대응하는 포인트를 획득하는 단계를 수행할 수 있다.
또한, 사용자 단말(300)은, 문자 메시지 발송에 실패하는 경우, 서버(100)에 문자 메시지 발송 실패사실을 전송할 수 있다.
또한, 사용자 단말(300)은, 문자 메시지를 수신할 때 제3 사용자 단말로부터 제3 문자 메시지를 수신하는 단계, 상기 제3 문자 메시지의 암호화 여부를 확인하는 단계, 상기 제3 문자 메시지가 암호화되어 있는 경우, 암호화 키를 이용하여 상기 제3 문자 메시지를 복호화하는 단계, 상기 푸시 메시지의 콘텐츠와 상기 제3 문자 메시지에 포함된 콘텐츠를 비교하는 단계 및 상기 푸시 메시지의 콘텐츠와 상기 제3 문자 메시지에 포함된 콘텐츠가 일치하는 경우, 상기 서버에 상기 제3 문자 메시지 획득사실을 전송하는 단계를 수행할 수 있다.
본 실시 예에 따른 암호화 키는 각 사용자 단말의 월렛에 저장될 수 있으나, 이에 제한되는 것은 아니다. 예를 들어, 암호화 키는 안전 노드에 저장될 수도 있고, 개시된 실시 예에 따른 분산저장 시스템에 분산저장될 수도 있다.
암호화 키가 안전 노드에 저장되고, 개시된 실시 예에 따라 문자 메시지를 발송하는 풀이 안전 노드의 관리자들로 구성되는 경우, 사용자 단말에 대한 문자 메시지는 모든 관리자의 승인 및 서명이 이루어지는 경우에만 발송될 수도 있다.
또한, 서버(100)는 메시지의 내용을 사용자 단말(300)에 저장된 개인키에 대응하는 공개키로 암호화하여 푸시 메시지를 통하여 중간 전달자에게 전달하고, 중간 전달자는 문자 메시지를 통하여 사용자 단말(300)에 전달함으로써, 사용자 단말(300)만이 메시지의 내용을 확인 가능하도록 할 수도 있다.
일 실시 예에서, 서버(100) 또는 OSP(200)는 QR코드를 이용하여 티켓 정보를 사용자 단말(300)에 전달할 수 있다. 일 실시 예에서 사용자 단말(300)은 QR코드가 다른 단말에 전달되고, 디스플레이를 통하여 표시되는 경우 이를 촬영 및 스캔하여 티켓 정보를 획득하고, 디바이스 등록절차를 개시할 수 있다.
다른 실시 예에서, QR코드가 사용자 단말(300)에 직접 전달되는 경우, 사용자 단말(300)은 QR코드 이미지를 캡쳐하여 캡쳐된 이미지를 분석하고, 이에 기반하여 QR코드에 저장된 정보를 획득할 수 있다.
일 실시 예에서, 사용자 단말(300)에 전달되는 QR코드는 이미지 유출에 따른 정보유출을 막기 위하여, 기 설정된 조각으로 분할, 회전 및 재조합된 것일 수 있다. 예를 들어, QR코드는 기 설정된 규칙에 따라 복수의 조각으로 분할되고, 회전 및 재조합된 것일 수 있다. 사용자 단말(300)은 획득된 QR코드 이미지를 기 설정된 규칙에 따라 분할, 회전 및 재조합함으로써 최종 QR코드 이미지를 획득하고, 획득된 이미지를 분석하여 이에 포함된 정보를 획득할 수 있다.
예를 들어, QR코드는 원본 QR코드 이미지를 9분할하여 각각의 분할된 이미지 중 적어도 일부를 90도 회전하고, 분할된 이미지를 재배치하여 사용자 단말(300)에 전달될 수 있다.
이러한 분할 및 재조합 규칙은 기 설정된 규칙 테이블에 기반하여 결정될 수 있으며, 이는 시간에 따라 달라질 수 있다. 예를 들어, 규칙 테이블의 인덱스를 탐색함으로써 이에 대응하는 규칙을 획득할 수 있으며, 규칙 테이블의 인덱스는 OTP값에 기반하여 산출될 수 있다. 즉, 시간에 따라 OTP값이 변하고, 이에 따라 코드를 분할, 회전 및 조합하는 규칙이 달라지는 바, QR코드 이미지가 유출되더라도 이에 기반한 정보유출을 막을 수 있다.
또한, QR코드에 저장되는 데이터 또한 상술한 바와 같이 OTP값에 기반하여 암호화 혹은 비식별화된 것일 수 있다.
개시된 실시 예에 따른 데이터의 비식별화 방법에 있어서, 도 19에 도시된 바와 같이 데이터의 임의의 위치에 랜덤문자집합으로부터 추출된 문자가 삽입되는 방법이 활용될 수 있다.
랜덤문자집합의 구성과 랜덤문자집합으로부터 문자를 추출하는 방법, 그리고 추출된 문자를 삽입할 데이터의 위치를 결정하는 방법은 제한되지 않으나, 실시 예에 따라 아래와 같은 방법이 이용될 수 있다.
일 실시 예에서, 서버는 비식별화를 수행할 데이터를 분석하여, 비식별화를 수행할 대상 데이터에서 등장하지 않는 n글자의 문자열을 m개 생성할 수 있다. 실시 예에 따라서, n글자는 비식별화를 수행할 대상 데이터에서 등장하지 않는 m개의 문자열을 획득할 수 있는 최소한의 글자 수로 결정될 수 있으나, 이에 제한되는 것은 아니다.
서버는 결정된 m개의 문자열을 포함하는 랜덤문자집합을 생성할 수 있다.
일 실시 예에서, 랜덤문자집합은 결정된 m개의 문자열 및 m개의 문자열 전후로 기 설정된 수의 랜덤문자가 결합된 문자열들을 포함할 수 있다.
일 실시 예에서, m개의 문자열은 사용자의 계정을 생성하는 데 이용되는 12개의 니모닉 코드 단어에 포함된 문자열만으로 구성될 수 있고, n과 m은 본 조건을 만족하는 숫자로 결정될 수 있으나, 이에 제한되는 것은 아니다.
일 실시 예에서, 서버는 랜덤문자집합에 포함된 문자열을 데이터의 임의의 위치에 삽입함으로써 비식별화를 수행할 수 있다. 실시 예에 따라서, 문자열은 연속된 형태로 삽입될 수도 있으나, 기 설정된 간격 또는 기 설정된 규칙에 기반하여 산출되는 위치에 삽입될 수도 있다.
서버는 비식별화에 사용된 규칙을 저장하고, 추후 저장된 규칙에 기반하여 비식별화 코드 제거를 수행할 수 있다.
일 실시 예에서, 서버는 랜덤문자집합에 포함된 문자열들을 비식별화된 데이터에서 탐색하고, 탐색된 문자열들을 제거함으로써 비식별화 코드 제거를 수행할 수 있다.
실시 예에 따라서, 각각의 문자열을 연산한 결과에 따라 문자열의 전후로 특정한 수의 문자가 결합될 수 있다. 예를 들어, 문자열에 포함된 문자들의 아스키 코드에 기반하여 제1 수식을 이용하여 산출된 특정한 값에 해당하는 문자가 문자열의 앞 또는 뒤에 삽입될 수 있다. 또한, 제2 수식을 이용하여 산출된 값을 통해 문자를 삽입할 위치와 개수가 결정될 수 있다.
즉, 랜덤문자집합에 속하는 문자열들에 대한 정보와, 문자열 연산을 위한 수식정보를 저장함으로써 직접적으로 비식별화 코드가 저장된 위치나 해당 코드에 대한 정보를 저장하지 않고도 비식별화 코드 제거를 수행할 수 있다.
실시 예에 따라서, 랜덤문자집합에 속하는 문자열들에 대한 정보 또한 사용자의 니모닉 코드에 기반하여 재구성될 수도 있다. 예를 들어, 랜덤문자집합에 속하는 문자열들은 사용자의 니모닉 코드에 속하는 문자열들로부터 추출되도록 구성되며, 각각의 단어의 몇 번째 문자로부터 몇 개의 문자를 포함하는 문자열을 추출하는가에 대한 규칙을 공유함으로써, 랜덤문자집합을 별도로 저장하지 않고도 그 재구성이 가능할 수 있다. 문자열 추출에 대한 규칙은, 상술한 바와 같이 n과 m의 산출조건을 만족하도록 계산되어 저장 및 공유될 수 있으나, 이에 제한되는 것은 아니다.
일 실시 예에서, IPFS시스템으로부터 리턴되는 해시 값을 M:N으로 분할함에 있어서, M:N의 분할비율은 다양하게 설정될 수 있고, 이를 M:N의 비율로 분할하는 방법 또한 제한되지 않는다.
예를 들어, 분할은 글자수를 기준으로 수행될 수도 있고, 해시 값을 기 설정된 글자수 단위의 복수의 문자열로 분할한 후 각각의 문자열을 분산저장하는 방식으로도 수행될 수도 있다. 분산저장된 정보는 순서에 따라 재조합되어 복구될 수 있다.
다른 예로, 해시 값의 분할은 문자 혹은 문자열이 아닌 이를 구성하는 아스키 코드를 기반으로도 수행될 수 있다. 예를 들어, 특정 문자를 구성하는 아스키 코드의 숫자를 M:N비율으로 분할하여 사용자 단말과 블록체인에 각각 저장할 수 있으며, 양쪽에서 획득된 값을 합산함으로써 원래의 문자를 복구하는 방식도 이용될 수 있다.
일 실시 예에서, 사용자는 복수의 단말을 이용하여 분산저장을 수행할 수도 있다. 예를 들어, 사용자의 설정에 따라 사용자 단말에 저장되는 M%의 값이 다시 서로 다른 2개의 단말에 분산저장될 수 있다.
이 경우, 사용자는 제1 단말을 통해 저장된 데이터를 요청하는 경우, 제2 단말을 통한 인증 및 데이터 전송을 함께 수행하여야 한다. 이는 저장되는 데이터의 유형이나, 사용자가 보안 강화를 선택한 특정 데이터에 대하여 수행될 수 있다.
예를 들어, 사용자가 특정 데이터에 대하여 복수 단말을 이용한 보안을 선택하는 경우, 해당 데이터를 탐색하기 위한 값의 M%가 복수 단말에 분산저장되고, 복수 단말 전체로부터 인증이 수행되고, 분산저장된 M%의 값이 취합되는 경우에 원하는 데이터에 접근이 가능하도록 구성될 수도 있다.
일 실시 예에서, M% 및 N%가 취합되어 데이터 획득에 활용된 이후, 취합된 데이터는 폐기됨으로써 재활용을 방지할 수 있다.
일 실시 예에서, 취합된 데이터의 폐기를 보장하기 위한 수단이 마련될 수 있다.
예를 들어, 데이터의 취합과, 취합된 데이터에 기반한 탐색, 그리고 취합된 데이터의 삭제를 포함하는 일련의 과정이 블록체인의 스마트 컨트랙트에 기반하여 수행될 수 있다.
이 경우, 스마트 컨트랙트의 무결성에 문제가 없는 한 취합된 데이터가 사용 이후 반드시 폐기됨이 보장될 수 있다. 이는 스마트 컨트랙트의 내용을 공개함으로써 사용된 데이터가 반드시 폐기된다는 것을 대외적으로 보장하는 데에도 활용될 수 있다.
또한, 도 25에 도시된 실시 예에 따라 컴퓨팅 파워를 제공받고, 이에 대응하여 보상을 지급하는 시스템에 있어서, 컴퓨팅 파워를 제공하는 각각의 단말들은 컴퓨팅 파워의 실제 제공량에 대응하는 보상을 받도록 구성될 수도 있다. 이 경우, 서버는 필요한 컴퓨팅 파워의 총량이 있을 때 컴퓨팅 파워를 제공하는 각각의 단말들의 성능 및 설정된 제공량의 상한에 기반하여 각각의 단말이 제공할 수 있는 컴퓨팅 파워의 양을 산출할 수 있다.
서버는 계약된 단말들 각각이 제공할 수 있는 컴퓨팅 파워의 양을 산출하고, 산출된 양에 비례하는 컴퓨팅 파워를 각각 분배하여 이용할 수 있다. 이에 따라 높은 성능의 단말을 제공하고, 더 많은 컴퓨팅 파워를 제공하는 것으로 계약할수록 더 많은 보상을 지급받을 기회를 획득할 수 있다.
또한, 실시 예에 따라 본 시스템에 컴퓨팅 파워를 제공하기 위해서만 이용되는 전용 단말이 등록될 수 있다.
전용 단말은 기 설정된 기준 이상의 성능을 구비하고, 모든 컴퓨팅 파워를 개시된 실시 예에 따른 시스템에 제공하는 것으로 계약되는 단말을 의미할 수 있다. 전용 단말 설정에 따른 보상비율은 일반 단말과 상이하게 설정될 수 있다.
일 실시 예에서, 컴퓨팅 파워 지급에 따른 보상으로서 개시된 실시 예에 따른 월렛 애플리케이션 및 제반 서비스의 이용비용을 할인하거나, 갈음할 수도 있다. 실시 예에 따라 보상액이 서비스의 이용비용을 초과하는 경우, 초과분에 대해서 BIDT 혹은 BRC에 기반한 보상이 지급될 수도 있다.
본 발명의 실시예와 관련하여 설명된 방법 또는 알고리즘의 단계들은 하드웨어로 직접 구현되거나, 하드웨어에 의해 실행되는 소프트웨어 모듈로 구현되거나, 또는 이들의 결합에 의해 구현될 수 있다. 소프트웨어 모듈은 RAM(Random Access Memory), ROM(Read Only Memory), EPROM(Erasable Programmable ROM), EEPROM(Electrically Erasable Programmable ROM), 플래시 메모리(Flash Memory), 하드 디스크, 착탈형 디스크, CD-ROM, 또는 본 발명이 속하는 기술 분야에서 잘 알려진 임의의 형태의 컴퓨터 판독가능 기록매체에 상주할 수도 있다.
본 발명의 구성 요소들은 하드웨어인 컴퓨터와 결합되어 실행되기 위해 프로그램(또는 애플리케이션)으로 구현되어 매체에 저장될 수 있다. 본 발명의 구성 요소들은 소프트웨어 프로그래밍 또는 소프트웨어 요소들로 실행될 수 있으며, 이와 유사하게, 실시 예는 데이터 구조, 프로세스들, 루틴들 또는 다른 프로그래밍 구성들의 조합으로 구현되는 다양한 알고리즘을 포함하여, C, C++, 자바(Java), 어셈블러(assembler) 등과 같은 프로그래밍 또는 스크립팅 언어로 구현될 수 있다. 기능적인 측면들은 하나 이상의 프로세서들에서 실행되는 알고리즘으로 구현될 수 있다.
이상, 첨부된 도면을 참조로 하여 본 발명의 실시예를 설명하였지만, 본 발명이 속하는 기술분야의 통상의 기술자는 본 발명이 그 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있을 것이다. 그러므로, 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며, 제한적이 아닌 것으로 이해해야만 한다.

Claims (9)

  1. 컴퓨터에 의하여 수행되는 방법에 있어서,
    블록체인에 저장된 탐색값을 획득하는 단계;
    상기 탐색값을 이용하여 분산저장 네트워크에 분산저장된 데이터 조각들을 획득하는 단계;
    상기 데이터 조각들을 조합하는 단계; 및
    조합된 데이터를 후처리하여 결과 데이터를 획득하는 단계; 를 포함하고,
    상기 블록체인에 저장된 탐색값을 획득하는 단계는,
    사용자 단말로부터 상기 탐색값이 분할된 조각의 M%를 획득하는 단계;
    상기 블록체인으로부터 상기 탐색값이 분할된 조각의 나머지 N%를 획득하는 단계; 및
    상기 M% 및 상기 N%의 분할된 조각을 조합하여 상기 탐색값을 복원하는 단계; 를 포함하고,
    상기 데이터 조각들을 획득하는 단계는,
    상기 복원된 탐색값을 이용하여 상기 분산저장 네트워크에 분산저장된 데이터 조각들을 획득하는 단계; 를 포함하고,
    상기 M%와 상기 N%의 합은 100%이고, 상기 M%는 상기 N%보다 큰 것을 특징으로 하고,
    상기 방법은,
    상기 분할된 조각의 M%를 복수의 관리자에 의하여 관리되는 안전 노드에 저장하는 단계; 및
    상기 사용자 단말로부터 상기 분할된 조각의 M%에 대한 복구 요청이 획득되는 경우, 상기 복수의 관리자 전원의 승인 및 전자서명이 획득됨에 따라, 상기 안전 노드에 저장된 상기 분할된 조각의 M%를 상기 사용자 단말에 제공하되, 상기 분할된 조각의 M%는 상기 사용자 단말에 저장된 개인키에 대응하는 공개키에 의하여 암호화되어 상기 사용자 단말에 전송되는, 단계; 를 더 포함하는,
    블록체인에 분산저장된 데이터의 탐색 및 조합을 통한 데이터 획득방법.
  2. 삭제
  3. 제1 항에 있어서,
    사용자 단말로부터 인증요청 데이터를 획득하는 단계;
    상기 인증요청 데이터를 해시하는 단계;
    상기 해시된 값을 상기 결과 데이터와 비교하는 단계; 및
    상기 비교 결과에 따라 인증 결과를 획득하는 단계; 를 더 포함하는,
    블록체인에 분산저장된 데이터의 탐색 및 조합을 통한 데이터 획득방법.
  4. 삭제
  5. 제1 항에 있어서,
    상기 데이터 조각들을 획득하는 단계는,
    상기 복원된 탐색값을 폐기하는 단계; 를 더 포함하는,
    블록체인에 분산저장된 데이터의 탐색 및 조합을 통한 데이터 획득방법.
  6. 제1 항에 있어서,
    상기 데이터 조각들을 획득하는 단계는,
    기 설정된 IPFS 시스템에 상기 탐색값을 전달하는 단계; 및
    상기 IPFS 시스템으로부터 상기 데이터 조각들을 획득하는 단계; 를 포함하는,
    블록체인에 분산저장된 데이터의 탐색 및 조합을 통한 데이터 획득방법.
  7. 제6 항에 있어서,
    상기 탐색값은,
    상기 IPFS 시스템에 저장된 데이터의 해시 값인 것을 특징으로 하는,
    블록체인에 분산저장된 데이터의 탐색 및 조합을 통한 데이터 획득방법.
  8. 하나 이상의 인스트럭션을 저장하는 메모리; 및
    상기 메모리에 저장된 상기 하나 이상의 인스트럭션을 실행하는 프로세서를 포함하고,
    상기 프로세서는 상기 하나 이상의 인스트럭션을 실행함으로써,
    제1 항의 방법을 수행하는, 장치.
  9. 하드웨어인 컴퓨터와 결합되어, 제1 항의 방법을 수행할 수 있도록 컴퓨터에서 독출가능한 기록매체에 저장된 컴퓨터프로그램.
KR1020190096189A 2019-07-30 2019-08-07 블록체인에 분산저장된 데이터의 탐색 및 조합을 통한 데이터 획득방법 KR102052036B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR20190092569 2019-07-30
KR1020190092569 2019-07-30

Related Child Applications (1)

Application Number Title Priority Date Filing Date
KR1020190153410A Division KR20210017968A (ko) 2019-11-26 2019-11-26 블록체인에 분산저장된 데이터의 탐색 및 조합을 통한 데이터 획득방법

Publications (1)

Publication Number Publication Date
KR102052036B1 true KR102052036B1 (ko) 2019-12-04

Family

ID=68578732

Family Applications (11)

Application Number Title Priority Date Filing Date
KR1020190096194A KR102054410B1 (ko) 2019-07-30 2019-08-07 블록체인 서비스 운영을 위해 위탁된 컴퓨팅 파워에 대한 보상을 제공하는 방법
KR1020190096187A KR102044748B1 (ko) 2019-07-30 2019-08-07 개인정보 보관 및 인증정보 관리가 가능한 블록체인 전자지갑 제공 시스템
KR1020190096188A KR102041911B1 (ko) 2019-07-30 2019-08-07 블록체인을 이용한 데이터 분할 및 분산저장 방법
KR1020190096186A KR102044751B1 (ko) 2019-07-30 2019-08-07 블록체인 기반 사용자 인증에 따른 보상을 제공하는 방법
KR1020190096191A KR102051895B1 (ko) 2019-07-30 2019-08-07 사용자와 블록체인 간 데이터 분할저장을 통한 데이터 관리방법
KR1020190096189A KR102052036B1 (ko) 2019-07-30 2019-08-07 블록체인에 분산저장된 데이터의 탐색 및 조합을 통한 데이터 획득방법
KR1020190096193A KR102062919B1 (ko) 2019-07-30 2019-08-07 블록체인 기반 데이터 클라우드 서비스 제공방법
KR1020190096184A KR102047260B1 (ko) 2019-07-30 2019-08-07 블록체인 기반 사용자 통합계정 생성, 발급 및 관리방법
KR1020190096192A KR102044749B1 (ko) 2019-07-30 2019-08-07 블록체인 기반 인증을 위한 일회성 인증정보 획득방법
KR1020190096190A KR102046383B1 (ko) 2019-07-30 2019-08-07 블록체인 기반 인증정보 저장 및 관리를 위한 개인식별정보 비식별화 방법
KR1020190096185A KR102044747B1 (ko) 2019-07-30 2019-08-07 블록체인 기반 사용자 인증서비스 제공방법

Family Applications Before (5)

Application Number Title Priority Date Filing Date
KR1020190096194A KR102054410B1 (ko) 2019-07-30 2019-08-07 블록체인 서비스 운영을 위해 위탁된 컴퓨팅 파워에 대한 보상을 제공하는 방법
KR1020190096187A KR102044748B1 (ko) 2019-07-30 2019-08-07 개인정보 보관 및 인증정보 관리가 가능한 블록체인 전자지갑 제공 시스템
KR1020190096188A KR102041911B1 (ko) 2019-07-30 2019-08-07 블록체인을 이용한 데이터 분할 및 분산저장 방법
KR1020190096186A KR102044751B1 (ko) 2019-07-30 2019-08-07 블록체인 기반 사용자 인증에 따른 보상을 제공하는 방법
KR1020190096191A KR102051895B1 (ko) 2019-07-30 2019-08-07 사용자와 블록체인 간 데이터 분할저장을 통한 데이터 관리방법

Family Applications After (5)

Application Number Title Priority Date Filing Date
KR1020190096193A KR102062919B1 (ko) 2019-07-30 2019-08-07 블록체인 기반 데이터 클라우드 서비스 제공방법
KR1020190096184A KR102047260B1 (ko) 2019-07-30 2019-08-07 블록체인 기반 사용자 통합계정 생성, 발급 및 관리방법
KR1020190096192A KR102044749B1 (ko) 2019-07-30 2019-08-07 블록체인 기반 인증을 위한 일회성 인증정보 획득방법
KR1020190096190A KR102046383B1 (ko) 2019-07-30 2019-08-07 블록체인 기반 인증정보 저장 및 관리를 위한 개인식별정보 비식별화 방법
KR1020190096185A KR102044747B1 (ko) 2019-07-30 2019-08-07 블록체인 기반 사용자 인증서비스 제공방법

Country Status (1)

Country Link
KR (11) KR102054410B1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102179497B1 (ko) 2020-04-13 2020-11-17 주식회사 한국정보보호경영연구소 멀티 클라우드 기반의 데이터 저장 및 관리 시스템 및 그 구동방법
KR20210073057A (ko) * 2019-12-10 2021-06-18 손종희 블록체인 조회코드를 이용한 전자영수증 제공 장치 및 방법

Families Citing this family (39)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102337836B1 (ko) * 2019-11-11 2021-12-10 한국전자기술연구원 블록체인 응용 외부 정보 인식 및 정보 제공방법
CN110944301A (zh) * 2019-12-02 2020-03-31 重庆瑞坤科技发展股份有限公司 基于区块链的智慧小区设备监控系统及密钥管理方法
KR102397404B1 (ko) * 2019-12-10 2022-05-13 손종희 블록체인 기반의 전자영수증 관리를 위한 인센티브 제공 장치 및 방법
KR102496436B1 (ko) * 2019-12-30 2023-02-06 주식회사 안랩 블록체인 네트워크에서 저장소에 복수의 데이터 조각들을 저장하는 방법 및 저장된 복수의 데이터 조각들을 수신하는 방법
KR102094705B1 (ko) 2020-01-17 2020-03-30 주식회사 에프엔에스벨류 블록 체인을 기반으로 한 다중 노드 인증 방법 및 이를 위한 장치
KR102287729B1 (ko) * 2020-02-17 2021-08-20 주식회사 아웃라이어스 블록체인 기반 사용자 정보 관리 방법 및 시스템
US11626997B2 (en) * 2020-03-06 2023-04-11 Vaultie, Inc. System and method for authenticating digitally signed documents
KR102330240B1 (ko) * 2020-03-17 2021-11-24 남기원 메신저 기반의 데이터 자동 분산관리 시스템 및 그 방법
US11206544B2 (en) 2020-04-13 2021-12-21 Apple Inc. Checkpoint identity verification on validation using mobile identification credential
KR102160819B1 (ko) * 2020-04-24 2020-09-28 주식회사 미소트리 블록체인기반의 투표시스템
KR102191676B1 (ko) * 2020-05-12 2020-12-16 윤희정 무인 매장에서의 스마트 단말기를 이용한 성인인증 방법 및 이를 이용한 인증 시스템
CN113752963A (zh) * 2020-06-02 2021-12-07 汽车科睿特股份有限责任公司 车辆信息处理装置及其操作方法
KR102201679B1 (ko) * 2020-06-12 2021-01-12 박성갑 마이데이터 공유 서비스 방법
KR102426124B1 (ko) * 2020-07-24 2022-07-26 박성배 블록체인에 기반한 개인 정보 운용 방법, 장치 및 시스템
KR102258064B1 (ko) * 2020-07-28 2021-05-28 주식회사 라젠 융복합 블록체인 기반 유인 항공기 및 무인 항공기 관제 시스템 및 서비스 제공 방법
KR102447334B1 (ko) * 2020-08-13 2022-09-26 주식회사 한컴위드 금과 디지털 골드 토큰을 기초로 전자 상거래를 가능하게 하는 클라우드 기반의 전자 상거래 플랫폼 서버 및 그 동작 방법
KR102464429B1 (ko) 2020-08-13 2022-11-09 주식회사 한컴위드 디지털 골드 토큰을 기초로 금 거래를 가능하게 하는 클라우드 기반의 금 거래 플랫폼 서버 및 그 동작 방법
KR102398592B1 (ko) * 2020-08-13 2022-05-13 이승재 블록체인 분산 신원 확인 기반의 티켓 예약 방법 및 이를 위한 장치
KR102417839B1 (ko) * 2020-08-13 2022-07-06 주식회사 한컴위드 금과 디지털 골드 토큰을 기초로 오프라인 상거래를 가능하게 하는 클라우드 기반의 오프라인 상거래 플랫폼 서버 및 그 동작 방법
KR102493780B1 (ko) * 2020-09-16 2023-02-02 이민형 융복합 블록체인 기반의 하이브리드 무인 비행선을 이용한 지상감시시스템 및 방법
KR102409822B1 (ko) * 2020-11-03 2022-06-20 (주)드림시큐리티 신원정보 검증 장치 및 방법
KR102475662B1 (ko) * 2020-11-06 2022-12-09 김봉건 분산원장 기반의 블록체인을 이용한 포인트 관리 방법 및 시스템
KR102437462B1 (ko) * 2020-12-04 2022-08-26 성시현 인공지능 기반의 의료 데이터 중개 서비스 제공 방법, 서버 및 프로그램
KR20220095891A (ko) * 2020-12-30 2022-07-07 (주)누리플렉스 블록체인과 연계된 개인정보 관리를 위한 데이터 맵핑 방법 및 장치
WO2022204041A1 (en) * 2021-03-20 2022-09-29 Solydaria, Inc. Systems and methods for generating and transmitting digital proofs of ownership for purchased products
KR102601098B1 (ko) * 2021-03-26 2023-11-10 비씨카드(주) 바우처 승인 정보를 제공하는 방법 및 디바이스
CN116529788A (zh) 2021-06-06 2023-08-01 苹果公司 数字标识凭据用户界面
WO2023277444A1 (ko) * 2021-06-30 2023-01-05 주식회사 아티프렌즈 블록체인에서 블록 최대 크기보다 더 큰 용량의 단일 데이터의 업로드 및 관리 방법
KR102569132B1 (ko) * 2021-09-29 2023-08-24 한국전자통신연구원 분산 아이디 기반 서비스에서의 위임 크리덴셜 발급 장치 및 방법
KR102648612B1 (ko) * 2021-10-28 2024-03-18 주식회사 케이사인 개인정보 파편화 방법 및 장치
KR20230120606A (ko) 2022-02-09 2023-08-17 (주)보헤미안오에스 블록체인을 이용한 인증 정보 분산을 위한 미확정 알고리즘을 구비하는 서비스 시스템 및 그 처리 방법
KR102610237B1 (ko) * 2023-01-26 2023-12-06 주식회사 인피닛블록 멀티팩터 인증과 멀티시그를 활용한 디지털 자산 커스터디 시스템 및 디지털 자산 관리 방법
KR20230140183A (ko) * 2022-03-29 2023-10-06 주식회사 리드포인트시스템 개인 식별화 정보의 관리를 위한 비식별화 처리 방법 및 그 장치
CN114707975B (zh) * 2022-06-06 2022-08-23 佳瑛科技有限公司 一种具有历史处理信息的数据处理方法及系统
KR102497076B1 (ko) 2022-06-23 2023-02-07 (주)탭핀 Fido 생체인증 보안키 기반의 블록체인 전자지갑 서비스를 제공하는 컴퓨터 장치, 방법 및 컴퓨터 프로그램
KR102471998B1 (ko) 2022-06-23 2022-12-02 (주)탭핀 Fido 생체인증 보안키 기반의 파일 관리 서비스를 제공하는 컴퓨터 장치, 방법 및 컴퓨터 프로그램
KR20240003621A (ko) * 2022-07-01 2024-01-09 주식회사 에이나 Otac 기반 모바일 신분증 발급 및 이용 시스템
KR102641811B1 (ko) * 2022-07-29 2024-02-29 주식회사 스탬퍼 블록체인 네트워크의 암호화폐 거래 보안 강화를 위한 전자지갑 관리 방법 및 그 시스템
KR102550125B1 (ko) * 2022-10-04 2023-06-30 주식회사 블록오디세이 서비스의 이용을 위한 nft를 대량으로 발송 및 관리하기 위한 방법, 이를 수행하는 서비스서버 및 컴퓨터-판독가능 매체

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101704702B1 (ko) * 2016-04-18 2017-02-08 (주)케이사인 태깅 기반의 개인 정보 비식별화 시스템 및 방법
KR101984254B1 (ko) * 2018-09-21 2019-05-30 김성완 블록체인 네트워크를 구성하는 노드 장치 및 그 노드 장치의 동작 방법
KR20190075772A (ko) 2017-12-21 2019-07-01 바스아이디 랩 재팬 컴퍼니 리미티드 블록체인을 이용한 개인정보 분리 후 조합을 통한 인증 시스템

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20010104905A (ko) * 2000-05-16 2001-11-28 이민영 광고정보를 포함하는 패스워드 정보 생성 시스템 및 그운영방법
KR100448258B1 (ko) * 2000-10-24 2004-09-10 주식회사 스마트로 고유 식별자 정보를 이용한 서비스 제공 시스템 및 방법,그 프로그램 소스를 기록한 기록매체
KR20020048319A (ko) * 2002-03-19 2002-06-22 문의선 분산컴퓨팅에 사용된 정보처리기에 대한 보상 방법 및 장치
KR100839767B1 (ko) * 2006-12-18 2008-06-19 이일용 광고를 매개로 방문한 사용자에게 광고비를 보상하는 광고보상 시스템 및 광고 보상 방법
KR100869157B1 (ko) * 2007-01-17 2008-11-19 김춘길 전자지갑 서비스를 제공하는 장치, 방법 및 기록매체
KR100941321B1 (ko) * 2007-10-08 2010-02-11 프롬투정보통신(주) Tpm과 rfid칩을 이용한 안전하고 반출입 감시가능한휴대형 usb 저장장치 관리방법 및 시스템
JP2011039712A (ja) * 2009-08-07 2011-02-24 Tokai Rika Co Ltd カーシェアリングシステム
KR20120037330A (ko) * 2010-10-11 2012-04-19 (주) 나무인터넷 이미지객체를 이용한 로그인 인증 방법 및 그 시스템
KR101779713B1 (ko) * 2016-06-01 2017-09-19 엔에이치엔엔터테인먼트 주식회사 프로세싱 파워의 제공에 따른 보상에 기반한 클라우드 서비스 방법 및 시스템
KR101891125B1 (ko) * 2016-12-07 2018-08-24 데이터얼라이언스 주식회사 분산된 네트워크 노드의 서비스 기여도 산출 시스템 및 방법
KR101877333B1 (ko) * 2017-01-02 2018-08-09 주식회사 코인플러그 블록체인 기반의 모바일 아이디를 이용하여 사용자를 비대면 인증하는 방법, 단말 및 이를 이용한 서버
KR101837168B1 (ko) * 2017-04-18 2018-03-09 주식회사 코인플러그 블록체인 기반의 토큰 아이디를 이용하여 카드 사용을 승인하는 방법 및 이를 이용한 서버
KR101976027B1 (ko) * 2017-10-24 2019-05-08 한국조폐공사 암호 화폐의 전자 지갑 생성 및 백업 방법 및 이를 이용한 단말 장치와 서버
KR102122831B1 (ko) * 2017-11-07 2020-06-15 고려대학교 산학협력단 단말 장치의 유휴 컴퓨팅 자원 활용 시스템 및 이를 이용한 유휴 컴퓨팅 자원 활용 방법
KR20190070163A (ko) * 2017-12-12 2019-06-20 엔에이치엔 주식회사 네트워크를 통해 서로 통신하는 노드들 각각의 자원 운영 방법, 그리고 그러한 노드들 중 어느 하나로 동작하는 컴퓨터 장치
KR101986725B1 (ko) * 2018-04-27 2019-06-07 (주)에스씨씨 블록체인 기술을 이용한 상부상조 시스템
KR101955025B1 (ko) * 2018-05-15 2019-03-06 김광호 개인정보 자동보호처리를 이용한 의료자문 서비스 제공 방법

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101704702B1 (ko) * 2016-04-18 2017-02-08 (주)케이사인 태깅 기반의 개인 정보 비식별화 시스템 및 방법
KR20190075772A (ko) 2017-12-21 2019-07-01 바스아이디 랩 재팬 컴퍼니 리미티드 블록체인을 이용한 개인정보 분리 후 조합을 통한 인증 시스템
KR20190075793A (ko) * 2017-12-21 2019-07-01 바스아이디 랩 재팬 컴퍼니 리미티드 블록체인을 이용한 일회성 접근 권한 부여 시스템
KR101984254B1 (ko) * 2018-09-21 2019-05-30 김성완 블록체인 네트워크를 구성하는 노드 장치 및 그 노드 장치의 동작 방법

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
https://medium.com/@kblockresearch/8-ipfs-interplanetary-file-system-%EC%9D%B4%ED%95%B4%ED%95%98%EA%B8%B0-1%EB%B6%80-http-web%EC%9D%84-%EB%84%98%EC%96%B4%EC%84%9C-ipfs-web%EC%9C%BC%EB%A1%9C-46382a2a65 *

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20210073057A (ko) * 2019-12-10 2021-06-18 손종희 블록체인 조회코드를 이용한 전자영수증 제공 장치 및 방법
KR102327668B1 (ko) * 2019-12-10 2021-11-17 손종희 블록체인 조회코드를 이용한 전자영수증 제공 장치 및 방법
KR102179497B1 (ko) 2020-04-13 2020-11-17 주식회사 한국정보보호경영연구소 멀티 클라우드 기반의 데이터 저장 및 관리 시스템 및 그 구동방법

Also Published As

Publication number Publication date
KR102054410B1 (ko) 2019-12-10
KR102062919B1 (ko) 2020-01-06
KR102044747B1 (ko) 2019-11-15
KR102044751B1 (ko) 2019-11-15
KR102046383B1 (ko) 2019-11-19
KR102041911B1 (ko) 2019-11-27
KR102044748B1 (ko) 2019-11-15
KR102047260B1 (ko) 2019-11-21
KR102051895B1 (ko) 2019-12-06
KR102044749B1 (ko) 2019-11-15

Similar Documents

Publication Publication Date Title
KR102052036B1 (ko) 블록체인에 분산저장된 데이터의 탐색 및 조합을 통한 데이터 획득방법
US20220321359A1 (en) Methods and systems for ownership verification using blockchain
US20210314313A1 (en) Certificate issuing system based on block chain
US10846663B2 (en) Systems and methods for securing cryptocurrency purchases
US9892404B2 (en) Secure identity authentication in an electronic transaction
JP6046765B2 (ja) 秘密情報にアクセスするための、多重パーティ及び多重レベルの承認を可能にするシステム及び方法
KR102255287B1 (ko) 블록체인 상에서 일회용 비밀번호를 적용한 신원관리 시스템
JP2020517201A (ja) ブロックチェーン基盤のトークンidを利用してカード使用を承認する方法及びこれを利用したサーバ{method for approving use of card by using blockchain−based token id and server using method}
KR20190075793A (ko) 블록체인을 이용한 일회성 접근 권한 부여 시스템
US20130226813A1 (en) Cyberspace Identification Trust Authority (CITA) System and Method
KR102333811B1 (ko) 블록체인 기반의 카드 결제 처리 시스템 및 방법
Ahmed et al. A self-sovereign identity architecture based on blockchain and the utilization of customer’s banking cards: The case of bank scam calls prevention
US10867326B2 (en) Reputation system and method
KR20210017308A (ko) 디바이스 등록 및 데이터 분산저장을 이용하는 2차인증 서비스 제공방법
KR20190132160A (ko) 스마트 컨트랙트를 이용한 암호화폐 거래 플랫폼 제공 방법
KR20210014458A (ko) 블록체인 기반 통합인증 서비스 제공방법
CN112970234B (zh) 账户断言
KR20210017310A (ko) 블록체인 기반 암호화폐의 지급 및 교환을 관리하는 시스템
KR20210017969A (ko) 사용자와 블록체인 간 데이터 분할저장을 통한 데이터 관리방법
KR20210017968A (ko) 블록체인에 분산저장된 데이터의 탐색 및 조합을 통한 데이터 획득방법
KR20210041984A (ko) Kyc 데이터와 생체인증정보를 보유한 스마트 디바이스를 활용한 블록체인 개인키 생성 방법
KR20210014457A (ko) 블록체인 기반 데이터 분산저장을 통한 데이터 클라우드 서비스 제공방법
CN111695096B (zh) 一种身份验证的方法及装置
JP7171977B1 (ja) デジタル認証システム
RU2795371C1 (ru) Способ и система обезличенной оценки клиентов организаций для проведения операций между организациями

Legal Events

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