KR102054581B1 - 블록 체인을 이용한 발신자 확인 방법, 장치 및 시스템 - Google Patents
블록 체인을 이용한 발신자 확인 방법, 장치 및 시스템 Download PDFInfo
- Publication number
- KR102054581B1 KR102054581B1 KR1020180037541A KR20180037541A KR102054581B1 KR 102054581 B1 KR102054581 B1 KR 102054581B1 KR 1020180037541 A KR1020180037541 A KR 1020180037541A KR 20180037541 A KR20180037541 A KR 20180037541A KR 102054581 B1 KR102054581 B1 KR 102054581B1
- Authority
- KR
- South Korea
- Prior art keywords
- node
- member node
- record
- authentication
- hash value
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04M—TELEPHONIC COMMUNICATION
- H04M3/00—Automatic or semi-automatic exchanges
- H04M3/42—Systems providing special services or facilities to subscribers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/0819—Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
- H04L9/0825—Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) using asymmetric-key encryption or public key infrastructure [PKI], e.g. key signature or public key certificates
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic 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/3236—Cryptographic 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
Landscapes
- Engineering & Computer Science (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Telephonic Communication Services (AREA)
Abstract
블록 체인을 이용한 발신자 확인 방법, 장치 및 시스템이 개시된다. 일 실시예에 따른 블록체인을 이용한 발신자 확인 방법은, 대표 노드에 의해 수행되는, 구성원 노드를 위한 인증 토큰 및 상기 구성원 노드의 주소를 획득하는 단계, 상기 인증 토큰 및 상기 구성원 노드의 주소를 상기 대표 노드의 비밀 키로 서명하여 대표 서명을 생성하는 단계, 상기 인증 토큰, 상기 구성원 노드의 주소, 상기 대표 서명 및 상기 대표 노드의 공개 키에 기초하여 상기 구성원 노드를 인증하는 인증 레코드를 생성하는 단계, 및 상기 인증 레코드를 블록체인 네트워크에 전파하는 단계를 포함한다.
Description
아래 실시예들은 블록 체인을 이용한 발신자 확인 방법, 장치 및 시스템에 관한 것이다.
블록체인(blockchain)은 관리 대상 데이터를 블록이라고 하는 소규모 데이터들이 P2P(peer-to-peer) 방식을 기반으로 생성된 체인 형태의 연결고리 기반 분산 데이터 저장환경에 저장되어 누구도 임의로 수정될 수 없고 누구나 변경의 결과를 열람할 수 있는 분산 컴퓨팅 기술 기반의 데이터 위변조 방지 기술이다. 이는 분산 데이터 저장기술의 한 형태로, 지속적으로 변경되는 데이터를 모든 참여 노드에 기록한 변경 리스트로서 분산 노드의 운영자에 의한 임의 조작이 불가능하도록 고안되었다. 잘 알려진 블록체인의 응용 사례는 암호화폐의 거래과정을 기록하는 탈중앙화된 전자장부로서 비트코인이 있다. 이 거래 기록은 의무적으로 암호화되고 블록체인 소프트웨어를 실행하는 컴퓨터상에서 운영된다. 비트코인을 비롯한 대부분의 암호화폐들이 블록체인 기술 형태에 기반하고 있다.
일 실시예에 따르면, 블록체인을 이용한 발신자 확인 방법은, 대표 노드에 의해 수행되는, 구성원 노드를 위한 인증 토큰 및 상기 구성원 노드의 주소를 획득하는 단계; 상기 인증 토큰 및 상기 구성원 노드의 주소를 상기 대표 노드의 비밀 키로 서명하여 대표 서명을 생성하는 단계; 상기 인증 토큰, 상기 구성원 노드의 주소, 상기 대표 서명 및 상기 대표 노드의 공개 키에 기초하여 상기 구성원 노드를 인증하는 인증 레코드를 생성하는 단계; 및 상기 인증 레코드를 블록체인 네트워크에 전파하는 단계를 포함한다.
상기 블록체인을 이용한 발신자 확인 방법은, 상기 구성원 노드에 의해 수행되는, 상기 인증 레코드의 해쉬 값 및 상기 구성원 노드의 주소를 상기 구성원 노드의 비밀 키로 서명하여 구성원 서명을 생성하는 단계; 상기 인증 레코드의 해쉬 값, 상기 구성원 노드의 주소, 상기 구성원 서명 및 상기 구성원 노드의 공개 키에 기초하여 상기 구성원 노드를 확인하는 확인 레코드를 생성하는 단계; 및 상기 확인 레코드를 상기 블록체인 네트워크에 전파하는 단계를 더 포함할 수 있다.
상기 블록체인을 이용한 발신자 확인 방법은, 상기 구성원 노드에 의해 수행되는, 상기 구성원 노드의 식별정보 및 수신 노드의 식별 정보 중 적어도 하나를 상기 구성원 노드의 비밀 키로 서명하여 확인 서명을 생성하는 단계; 및 상기 구성원 노드의 주소 및 상기 확인 서명을 포함하는 확인 정보를 통화 혹은 메시지에 첨부하여 상기 수신 노드로 발신하는 단계를 더 포함할 수 있다.
상기 블록체인을 이용한 발신자 확인 방법은, 상기 수신 노드에 의해 수행되는, 상기 구성원 노드의 주소에 기초하여 상기 블록체인 네트워크에서 상기 인증 레코드의 해쉬 값을 획득하는 단계; 상기 인증 레코드의 해쉬 값을 이용하여 상기 블록체인 네트워크에서 상기 인증 레코드를 검색하는 단계; 및 상기 인증 레코드에 포함된 상기 대표 노드의 공개 키를 이용하여 상기 구성원 노드의 소속 정보를 결정하는 단계를 더 포함할 수 있다.
상기 수신 노드에 의해 수행되는, 상기 구성원 노드의 식별정보 및 상기 수신 노드의 식별 정보 중 적어도 하나에 기초하여 제1 해쉬 값을 생성하는 단계; 상기 구성원 노드의 공개 키로 상기 확인 서명을 복호화한 데이터에 기초하여 제2 해쉬 값을 생성하는 단계; 및 상기 제1 해쉬 값 및 상기 제2 해쉬 값을 비교하여 상기 확인 서명을 검증하는 단계를 더 포함할 수 있다.
상기 블록체인을 이용한 발신자 확인 방법은, 상기 구성원 노드에 의해 수행되는, 상기 구성원 노드의 식별정보, 및 수신 노드의 식별 정보 중 적어도 하나를 상기 구성원 노드의 비밀 키로 서명하여 확인 서명을 생성하는 단계; 상기 수신 노드로 통화 혹은 메시지를 발신하는 단계; 및 상기 구성원 노드의 주소 및 상기 확인 서명을 포함하는 확인 정보를 상기 구성원 노드의 소속을 확인하는 서비스 서버로 전달하는 단계를 더 포함할 수 있다.
일 실시예에 따르면, 블록체인을 이용한 수신 노드의 발신자 확인 방법은, 구성원 노드의 주소를 포함하는 확인 정보가 첨부된 통화 혹은 메시지를 상기 구성원 노드로부터 수신하는 단계; 상기 구성원 노드의 주소에 기초하여 블록체인 네트워크에서 상기 구성원 노드의 확인을 위해 상기 구성원 노드에 의해 전파된 확인 레코드를 검색하는 단계; 상기 확인 레코드에서 상기 구성원 노드의 인증을 위해 상기 구성원 노드가 속한 대표 노드에 의해 전파된 인증 레코드의 해쉬 값을 획득하는 단계; 상기 인증 레코드의 해쉬 값을 이용하여 상기 블록체인 네트워크에서 상기 인증 레코드를 검색하는 단계; 및 상기 인증 레코드에 포함된 상기 대표 노드의 공개 키를 이용하여 상기 구성원 노드의 소속 정보를 결정하는 단계를 포함한다.
상기 인증 레코드는 상기 구성원 노드를 위한 인증 토큰, 상기 구성원 노드의 주소, 상기 인증 토큰 및 상기 구성원 노드의 주소를 상기 대표 노드의 비밀 키로 서명한 대표 서명, 및 상기 대표 노드의 공개 키를 포함하고, 상기 확인 레코드는 상기 인증 레코드의 해쉬 값, 상기 구성원 노드의 주소, 상기 인증 레코드의 해쉬 값 및 상기 구성원 노드의 주소를 상기 구성원 노드의 비밀 키로 서명한 구성원 서명, 및 상기 구성원 노드의 공개 키를 포함할 수 있다.
상기 확인 정보는 상기 구성원 노드가 상기 구성원 노드의 식별정보 및 상기 수신 노드의 식별 정보 중 적어도 하나를 상기 구성원 노드의 비밀 키로 서명한 확인 서명을 더 포함할 수 있다.
상기 블록체인을 이용한 수신 노드의 발신자 확인 방법은, 상기 구성원 노드의 식별정보 및 상기 수신 노드의 식별 정보 중 적어도 하나에 기초하여 제1 해쉬 값을 생성하는 단계; 상기 구성원 노드의 공개 키로 상기 확인 서명을 복호화한 데이터에 기초하여 제2 해쉬 값을 생성하는 단계; 및 상기 제1 해쉬 값 및 상기 제2 해쉬 값을 비교하여 상기 확인 서명을 검증하는 단계를 더 포함할 수 있다.
일 실시예에 따르면, 블록체인을 이용한 서비스 서버의 발신자 확인 방법은 구성원 노드에 의해 수신 노드로 통화 또는 메시지가 송신됨에 따라, 상기 구성원 노드로부터 상기 구성원 노드의 주소를 포함하는 확인 정보를 수신하는 단계; 상기 구성원 노드의 주소에 기초하여 블록체인 네트워크에서 상기 구성원 노드의 확인을 위해 상기 구성원 노드에 의해 전파된 확인 레코드를 검색하는 단계; 상기 확인 레코드에서 상기 구성원 노드의 인증을 위해 상기 구성원 노드가 속한 대표 노드에 의해 전파된 인증 레코드의 해쉬 값을 획득하는 단계; 상기 인증 레코드의 해쉬 값을 이용하여 상기 블록체인 네트워크에서 상기 인증 레코드를 검색하는 단계; 상기 인증 레코드에 포함된 상기 대표 노드의 공개 키를 이용하여 상기 구성원 노드의 소속 정보를 결정하는 단계; 및 상기 수신 노드로 상기 소속 정보를 전달하는 단계를 포함한다.
도 1은 일 실시예에 따른 블록 체인을 이용한 발신자 확인 시스템을 나타낸 도면.
도 2는 일 실시예에 따른 블록체인 네트워크를 구성하는 레코드들을 나타낸 도면.
도 3은 일 실시예에 따른 블록체인 네트워크를 구성하는 방법을 나타낸 동작 흐름도.
도 4는 일 실시예에 따른 블록체인 네트워크를 이용하여 발신자를 확인하는 과정을 나타낸 도면.
도 5는 일 실시예에 따른 블록체인 네트워크를 이용하여 발신자를 확인하는 방법을 나타낸 동작 흐름도.
도 6은 일 실시예에 따른 레코드의 형식을 나타낸 도면.
도 7은 일 실시예에 따른 레코드의 검증 과정을 나타낸 도면.
도 8은 인증 토큰의 발급 형태에 관한 실시예들을 나타낸 도면.
도 9는 구성원 노드의 타입에 관한 실시예들을 나타낸 도면.
도 10은 소속 정보를 확인하는 주체에 관한 실시예들을 나타낸 도면.
도 2는 일 실시예에 따른 블록체인 네트워크를 구성하는 레코드들을 나타낸 도면.
도 3은 일 실시예에 따른 블록체인 네트워크를 구성하는 방법을 나타낸 동작 흐름도.
도 4는 일 실시예에 따른 블록체인 네트워크를 이용하여 발신자를 확인하는 과정을 나타낸 도면.
도 5는 일 실시예에 따른 블록체인 네트워크를 이용하여 발신자를 확인하는 방법을 나타낸 동작 흐름도.
도 6은 일 실시예에 따른 레코드의 형식을 나타낸 도면.
도 7은 일 실시예에 따른 레코드의 검증 과정을 나타낸 도면.
도 8은 인증 토큰의 발급 형태에 관한 실시예들을 나타낸 도면.
도 9는 구성원 노드의 타입에 관한 실시예들을 나타낸 도면.
도 10은 소속 정보를 확인하는 주체에 관한 실시예들을 나타낸 도면.
본 명세서에 개시되어 있는 본 발명의 개념에 따른 실시예들에 대해서 특정한 구조적 또는 기능적 설명들은 단지 본 발명의 개념에 따른 실시예들을 설명하기 위한 목적으로 예시된 것으로서, 본 발명의 개념에 따른 실시예들은 다양한 형태로 실시될 수 있으며 본 명세서에 설명된 실시예들에 한정되지 않는다.
본 발명의 개념에 따른 실시예들은 다양한 변경들을 가할 수 있고 여러 가지 형태들을 가질 수 있으므로 실시예들을 도면에 예시하고 본 명세서에 상세하게 설명하고자 한다. 그러나, 이는 본 발명의 개념에 따른 실시예들을 특정한 개시형태들에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 변경, 균등물, 또는 대체물을 포함한다.
제1 또는 제2 등의 용어를 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만, 예를 들어 본 발명의 개념에 따른 권리 범위로부터 이탈되지 않은 채, 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소는 제1 구성요소로도 명명될 수 있다.
어떤 구성요소가 다른 구성요소에 “연결되어” 있다거나 “접속되어” 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 “직접 연결되어” 있다거나 “직접 접속되어” 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다. 구성요소들 간의 관계를 설명하는 표현들, 예를 들어 “~사이에”와 “바로~사이에” 또는 “~에 직접 이웃하는” 등도 마찬가지로 해석되어야 한다.
본 명세서에서 사용한 용어는 단지 특정한 실시예들을 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, “포함하다” 또는 “가지다” 등의 용어는 설시된 특징, 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것이 존재함으로 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가진다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미를 갖는 것으로 해석되어야 하며, 본 명세서에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
이하, 실시예들을 첨부된 도면을 참조하여 상세하게 설명한다. 그러나, 특허출원의 범위가 이러한 실시예들에 의해 제한되거나 한정되는 것은 아니다. 각 도면에 제시된 동일한 참조 부호는 동일한 부재를 나타낸다.
도 1은 일 실시예에 따른 블록 체인을 이용한 발신자 확인 시스템을 나타낸 도면이다.
기관 A(110), 기관 B(120) 및 기관 C(130)에는 각각 소속 직원이 속해있을 수 있고, 소속 직원이 고객이나 민원인과 같은 일반인에게 통화나 메시지를 통해 접촉할 때 소속 직원 본인의 신분 확인이 요구될 수 있다. 예를 들어, 기관 A(110), 기관 B(120) 및 기관 C(130)는 각각 관공서, 금융기관, 기업 등을 나타낼 수 있다. 기관 A(110), 기관 B(120) 및 기관 C(130)는 각각 대표 노드 및 적어도 하나의 구성원 노드를 포함한다. 대표 노드는 기관을 대표하는 서버에 대응할 수 있다. 회사의 소속 직원은 구성원으로 지칭될 수 있고, 구성원 노드는 각 소속 직원이 사용하는 통신단말, 혹은 각 소속 직원이 사용하는 통신단말이 연결된 교환기일 수 있다. 구성원 노드의 타입에 관해서는 추후 상세히 설명한다.
이하, 대표 노드(111) 및 구성원 노드(112)에 관한 설명은 다른 대표 노드 및 다른 구성원 노드들에 적용될 수 있다. 대표 노드(111) 및 구성원 노드(112)는 각각 블록체인 네트워크(100)에 레코드를 전파한다. 레코드는 블록체인 네트워크(100)에 전파되어 저장 내지 등록될 수 있다. 블록체인 네트워크(100)에 전파된 레코드 등의 정보는 대표 노드(111) 및 구성원 노드(112)뿐만 아니라 수신 노드(150) 등 다른 장치들에 의해서도 자유롭게 접근 가능하다. 수신 노드(150)는 통신단말일 수 있다.
아래에서 상세히 설명되겠지만, 대표 노드(111)는 구성원 노드(112)에 대응하는 인증 레코드를 생성하여 블록체인 네트워크(100)에 전파하고, 구성원 노드(112)는 상기 생성된 인증 레코드에 대응하는 확인 레코드를 생성하여 블록체인 네트워크(100)에 전파한다. 예를 들어, 인증 레코드는 구성원이 기관에 입사한 것에 대응하여 생성될 수 있다. 이들은 다른 대표 노드들에 의해 전파된 인증 레코드들 및 다른 구성원 노드들에 의해 전파된 확인 레코드들과 함께 블록체인을 구성할 수 있다. 하나의 블록에는 다수의 인증 레코드들 및 확인 레코드들이 포함될 수 있다. 구성원 노드(112)가 수신 노드(150)에 통화 또는 메시지를 발신할 경우, 수신 노드(150)는 블록체인 네트워크(100)에서 구성원 노드(112)에 관련된 인증 레코드 및 확인 레코드를 검색하여 구성원 노드(112)의 소속 정보를 확인할 수 있다.
기존에 발신 번호에 대응하는 소속 정보를 제공하는 어플리케이션이 존재하지만, 이러한 어플리케이션은 이용자의 의견에 따라 구축된 데이터베이스를 이용하므로, 악의의 발신자가 자신의 전화번호를 바꾸어 접촉하면 소속 정보가 제공되지 않는다. 즉, 소속 정보가 전화번호에 의존하여 제공되므로 전화번호 변경에 따라 데이터베이스의 기능이 상실되게 된다. 발신자인 관공서, 금융기관, 기업 등의 소속 직원도 수신자인 고객이나 민원인의 신뢰를 위해 수신자에게 자신의 소속을 알릴 필요가 있으므로, 발신자 및 수신자 양측 모두에 발신자 확인은 중요할 수 있다. 실시예들에 따르면 블록체인을 통해 발신자의 소속 정보가 수신자에게 높은 신뢰도로 제공될 수 있다.
도 2는 일 실시예에 따른 블록체인 네트워크를 구성하는 레코드들을 나타낸 도면이다.
도 2를 참조하면, 대표 노드(210)는 구성원 노드(230)에 관해 인증 레코드(220)를 생성하여 블록체인 네트워크(250)에 전파하고, 구성원 노드(230)는 구성원 노드(230)에 관해 확인 레코드(240)를 생성하여 블록체인 네트워크(250)에 전파한다.
인증 레코드(220)는 인증 토큰(221), 구성원 노드의 주소(222), 대표 서명(224) 및 대표 노드의 공개 키(225)를 포함한다.
인증 토큰(221)은 구성원 노드 각각을 위해 발급될 수 있다. 아래에서 다시 설명되겠으나, 인증 토큰은 총괄 기관에 의해 참여 기관들에게 발급되거나, 참여 기관에 의해 자체적으로 생성될 수 있다. 총괄 기관에 의해 인증 토큰이 발급될 경우, 각 참여 기관은 인증 토큰이 총괄 기관에서 발급된 것인지 확인하여 인증 토큰을 검증할 수 있다. 참여 기관에 의해 인증 토큰이 생성될 경우, 각 참여 기관은 모든 참여 기관의 정보(예: 주소)를 공유하고, 인증 토큰이 정당한 참여 기관에 의해 생성된 것인지 확인하여 인증 토큰을 검증할 수 있다. 인증 토큰(221)은 구성원 노드(230)를 위해 발급된 것으로, 대표 노드(210)는 이를 인증 레코드(220)에 포함시킬 수 있다.
구성원은 구성원 노드(230)에 관해 비밀 키, 공개 키 및 주소를 생성할 수 있고, 구성원 노드(230)의 주소를 대표 노드(210)로 전달할 수 있다. 구성원은 이메일, 메신저와 같은 온라인 채널, 혹은 오프라인을 통해 대표 노드(210)에 구성원 노드(230)의 주소를 전달할 수 있다. 구성원 노드의 주소(222)는 구성원 노드(230)로부터 전달 받은 것으로, 대표 노드(210)는 이를 인증 레코드(220)에 포함시킬 수 있다.
구성원 노드(230)와 마찬가지로 대표 노드(210)를 위한 비밀 키, 공개 키, 및 주소가 생성될 수 있다. 대표 노드(210)는 인증 토큰(221) 및 구성원 노드의 주소(222)를 획득하고, 인증 토큰(221) 및 구성원 노드의 주소(222)를 대표 노드의 비밀 키(223)로 서명하여 대표 서명(224)을 생성할 수 있다. 대표 노드(210)는 대표 서명(224) 및 대표 노드의 공개 키(225)를 인증 레코드(220)에 포함시킬 수 있다. 대표 노드의 공개 키(225)를 통해 대표 서명(224)이 검증될 수 있다. 아래에서 상세히 설명될 것처럼, 대표 노드의 공개 키(225)를 통해 구성원 노드(230)의 소속 정보가 확인될 수 있다.
확인 레코드(240)는 인증 레코드의 해쉬 값(241), 구성원 노드의 주소(242), 구성원 서명(244) 및 구성원 노드의 공개 키(245)를 포함한다. 인증 레코드(220) 내 구성원 노드의 주소(222) 및 확인 레코드(240) 내 구성원 노드의 주소(242)는 동일한 값을 가질 수 있다.
구성원 노드(230)는 인증 레코드(220) 및 해쉬 함수로 인증 레코드의 해쉬 값(241)을 계산할 수 있고, 이를 확인 레코드(240)에 포함시킬 수 있다. 아래에서 다시 설명되겠지만, 블록체인 네트워크(250) 내 복수의 인증 레코드들의 해쉬 값들 및 인증 레코드의 해쉬 값(241) 간의 비교를 통해, 복수의 인증 레코드들에서 인증 레코드(220)가 검색될 수 있다.
전술된 것처럼, 구성원에 의해 구성원 노드의 비밀 키(243) 및 구성원 노드의 공개 키(245)가 생성될 수 있다. 구성원 노드(230)는 인증 레코드의 해쉬 값(241) 및 구성원 노드의 주소(242)를 구성원 노드의 비밀 키(243)로 서명하여 구성원 서명(244)을 생성할 수 있다. 구성원 노드(230)는 구성원 서명(244) 및 구성원 노드의 공개 키(245)를 확인 레코드(240)에 포함시킬 수 있다. 구성원 노드의 공개 키(245)를 통해 구성원 서명(244)이 검증될 수 있다.
아래에서 다시 설명되겠으나, 실시예에 따라 구성원 서명은 인증 레코드의 해쉬 값, 구성원 노드의 주소 및 추가 데이터에 기초하여 생성될 수 있다. 예를 들어, 추가 데이터는 이름, 부서 등 구성원의 개인 정보를 포함할 수 있다. 구성원 서명은 추가 데이터를 통해 구성원에 관해 개인화될 수 있다.
도 3은 일 실시예에 따른 블록체인 네트워크를 구성하는 방법을 나타낸 동작 흐름도이다.
구성원 노드(310)는 단계(301)에서 개인 키, 공개 키 및 주소를 생성하고, 단계(302)에서 대표 노드(320)에게 자신의 주소를 알린다. 대표 노드(320)는 단계(303)에서 구성원 노드(310)를 수신으로 하여 인증 레코드를 생성하고, 단계(304)에서 블록체인 네트워크(330)로 인증 레코드를 전파한다. 인증 레코드가 구성원 노드(310)를 수신으로 한다는 것은 구성원 노드(310)가 인증 레코드에 관련된 레코드를 생성할 수 있다는 것을 의미한다.
구성원 노드(310)는 단계(305)에서 블록체인 네트워크(330)에 인증 레코드가 등록된 것을 확인하고, 단계(306)에서 자신을 수신으로 하는 확인 레코드를 생성한다. 확인 레코드가 구성원 노드(310)를 수신으로 한다는 것은 구성원 노드(310)가 확인 레코드에 관련된 레코드를 생성할 수 있다는 것을 의미한다. 아래에서 다시 설명되겠지만, 구성원 노드(310)는 확인 레코드의 등록 이후에 기관에서 퇴사한 경우 대표 노드(320)를 수신으로 하는 반환 레코드를 생성하여 블록체인 네트워크(330)에 등록할 수 있다. 추가로, 구성원 노드(310)는 확인 레코드의 등록 이후에 확인 레코드 내 개인 정보의 변경이 필요한 경우 추가 확인 레코드를 생성하여 개인 정보를 갱신할 수 있다.
단계(308)에서 블록체인 네트워크(330)를 통해 인증 레코드 및 확인 레코드가 검증되고, 검증이 완료된 인증 레코드 및 확인 레코드는 단계(309)에서 블록체인 네트워크(330)의 블록에 저장된다. 레코드의 검증에 관해서는 추후 상세히 설명한다.
그 밖에 도 3의 블록체인 네트워크를 구성하는 방법에는 상술된 사항 및 후술될 사항이 적용될 수 있으며, 보다 상세한 설명은 생략한다.
도 4는 일 실시예에 따른 블록체인 네트워크를 이용하여 발신자를 확인하는 과정을 나타낸 도면이다.
도 4를 참조하면, 구성원 노드(410)는 수신 노드(430)로 통화 또는 메시지를 발신한다. 전화 또는 메시지에는 확인 정보(421)가 첨부될 수 있다. 확인 정보(421)는 구성원 노드(410)의 식별정보, 수신 노드(430)의 식별정보, 타임스탬프, 구성원 노드(410)의 주소, 검색 키 및 확인 서명 중 적어도 하나를 포함할 수 있다.
식별 정보는 전화번호를 포함할 수 있다. 타임스탬프는 통화 또는 메시지가 발신된 연도, 날짜 및 시간을 포함할 수 있다. 확인 서명은 확인 정보(421)를 검증하기 위한 것이다. 구성원 노드(410)는 구성원 노드(410)의 식별정보, 수신 노드(430)의 식별정보 및 타임스탬프 중 적어도 하나를 구성원 노드(410)의 비밀 키로 서명하여 확인 서명을 생성할 수 있다. 아래에서는 대표적으로 확인 서명이 구성원 노드(410)의 식별정보, 수신 노드(430)의 식별정보 및 타임스탬프가 구성원 노드(410)의 비밀 키로 서명된 것을 예시로 설명한다.
검색 키는 블록체인 네트워크(450)에서 구성원 노드(410)에 관한 레코드를 빠르게 검색하기 위한 것으로, 블록 인덱스 및 레코드 인덱스를 포함할 수 있다. 구성원 노드(410)의 주소가 있으면 블록체인 네트워크(450)에서 구성원 노드(410)에 관한 레코드를 검색할 수 있으나, 검색 키를 통해 검색 시간이 단축될 수 있다. 예를 들어, 검색 키에서 블록 인덱스가 x, 레코드 인덱스가 y라면, 이는 구성원 노드(410)에 관한 레코드가 블록체인 내 x번째 블록의 y번째 레코드에 대응하는 것을 나타낼 수 있다. 검색 키는 인증 레코드, 확인 레코드 및 반환 레코드 중 적어도 하나를 나타낼 수 있고, 각 레코드에 관해 블록 인덱스 및 레코드 인덱스를 포함할 수 있다.
전화 또는 메시지가 수신되면, 수신 노드(430)는 확인 정보(421) 내 타임스탬프의 유효성을 검증할 수 있다. 예를 들어, 수신 노드(430)는 타임스탬프가 나타내는 시간으로부터 미리 정해진 기간이 도과된 경우, 확인 정보(421)가 유효하지 않은 것으로 결정할 수 있다.
또한, 전화 또는 메시지가 수신되면, 수신 노드(430)는 확인 서명을 검증하기 위한 제1 해쉬 값을 생성하고, 구성원 노드(410)의 소속을 확인하기 위해 검색 API(440)를 호출할 수 있다. 수신 노드(430)는 확인 서명이 기초하는 정보, 즉 앞선 예시에서 구성원 노드(410)의 식별정보, 수신 노드(430)의 식별정보 및 타임스탬프에 기초하여 제1 해쉬 값을 생성할 수 있다. 수신 노드(430)는 구성원 노드(410)의 주소, 제1 해쉬 값, 및 확인 서명을 입력으로 하여 검색 API(440)를 호출할 수 있다.
검색 API(440)는 확인 정보(421)에 기초하여 구성원 노드(410)에 관한 소속 정보(480)를 수신 노드(430)에 제공할 수 있다. 검색 API(440)는 수신 노드(430)에 저장되거나, 수신 노드(430) 외부의 장치에 저장될 수 있다. 검색 API(440)가 수신 노드(430)에 저장된 경우, 아래에서 설명되는 검색 API(440)의 동작은 수신 노드(430)에 의해 수행되는 것으로 볼 수 있다.
검색 API(440)는 구성원 노드(410)의 주소에 기초하여 블록체인 네트워크(450)에서 확인 레코드(460)를 검색할 수 있다. 만약 확인 정보(421)에 검색 키가 포함되었고, 이 것이 수신 노드(430)를 통해 검색 API(440)에 제공된 경우, 검색 API(440)는 검색 키를 이용하여 블록체인 네트워크(450)에서 확인 레코드(460) 및 인증 레코드(470) 중 적어도 하나를 검색할 수 있다.
블록체인 네트워크(450)에서 확인 레코드(460)가 검색되면, 검색 API(440)는 확인 레코드(460)에서 구성원 노드의 공개 키(464)를 획득하고, 구성원 노드의 공개 키(464)로 확인 서명을 복호화하여 데이터를 획득할 수 있고, 해당 데이터에 기초하여 제2 해쉬 값을 생성할 수 있다. 검색 API(440)는 제1 해쉬 값 및 제2 해쉬 값을 비교하여 확인 서명을 검증할 수 있다. 즉, 제1 해쉬 값 및 제2 해쉬 값이 동일한 경우 확인 서명이 구성원 노드(410)에 의해 생성된 것이 검증될 수 있다.
블록체인 네트워크(450)에서 확인 레코드(460)가 검색되면, 검색 API(440)는 확인 레코드(460)에서 인증 레코드의 해쉬 값(461)을 획득할 수 있다. 검색 API(440)는 인증 레코드의 해쉬 값(461)을 이용하여 블록체인 네트워크(450)에서 인증 레코드(470)를 검색할 수 있다. 예를 들어, 검색 API(440)는 블록체인 네트워크(450) 내 인증 레코드들의 해쉬 값들을 계산할 수 있고, 이 중에 인증 레코드의 해쉬 값(461)과 동일한 해쉬 값을 갖는 인증 레코드(470)를 찾아낼 수 있다.
검색 API(440)는 대표 노드의 공개 키 및 기관 명칭이 서로 매칭되어 저장된 데이터베이스를 유지하거나, 해당 데이터베이스에 접근할 수 있다. 검색 API(440)는 인증 레코드(470)에 포함된 대표 노드의 공개 키(474), 및 해당 데이터베이스에 기초하여 구성원 노드(410)의 소속 정보(480)를 결정할 수 있다. 소속 정보(480)는 구성원 노드(410)가 속한 기관 명칭을 포함할 수 있다. 검색 API(440)는 확인 서명이 검증되었는지 여부를 나타내는 서명 검증 정보 및 소속 정보(480)를 수신 노드(430)에 제공할 수 있다.
도 5는 일 실시예에 따른 블록체인 네트워크를 이용하여 발신자를 확인하는 방법을 나타낸 동작 흐름도이다.
구성원 노드(510)는 단계(501)에서 확인 정보를 생성하고, 단계(502)에서 통화 또는 메시지에 확인 정보를 첨부하여 수신 노드(520)로 발신한다. 수신 노드(520)는 단계(503)에서 서명 확인용 해쉬 값을 생성하고, 단계(504)에서 검색 API(530)를 호출한다. 검색 API(530)는 단계(505)에서 구성원 노드(510)의 소속 정보를 확인하고, 단계(506)에서 수신 노드(520)에게 구성원 노드(510)의 소속 정보를 전달한다. 그 밖에 도 5의 블록체인 네트워크를 이용하여 발신자를 확인하는 방법에는 상술된 사항 및 후술될 사항이 적용될 수 있으며, 보다 상세한 설명은 생략한다.
도 6은 일 실시예에 따른 레코드의 형식을 나타낸 도면이다.
도 6을 참조하면, 레코드(600)는 Input(610), Output(620), Extra Data(630) 및 Signature(640)를 포함한다.
Input(610)은 Record Type 및 Token/Previous Record Hash를 포함한다. Record Type은 레코드(600)의 종류를 인증 레코드, 확인 레코드 및 반환 레코드 중 어느 하나로 나타낼 수 있다. 예를 들어, 인증 레코드는 소속 직원의 입사 시 생성될 수 있고, 확인 레코드는 인증 레코드가 생성된 이후, 혹은 확인 레코드 내 정보가 변경된 경우 생성될 수 있고, 반환 레코드는 소속 직원의 퇴사 시 생성될 수 있다. 특정 구성원 노드에 관해 반환 레코드가 존재한다면, 해당 구성원 노드는 더 이상 대응하는 대표 노드에 소속되어 있지 않음을 의미할 수 있다.
Token/Previous Record Hash는 인증 토큰, 혹은 연관된 이전 레코드의 해쉬 값을 나타낸다. Record Type이 인증 레코드인 경우 Token/Previous Record Hash는 인증 토큰을 포함하며, Record Type이 확인 레코드 혹은 반환 레코드인 경우 Token/Previous Record Hash는 이전 레코드의 해쉬 값을 나타낼 수 있다. 예를 들어, Record Type이 확인 레코드인 경우 Token/Previous Record Hash는 인증 레코드의 해쉬 값을 나타낼 수 있고, Record Type이 반환 레코드인 경우 Token/Previous Record Hash는 확인 레코드의 해쉬 값을 나타낼 수 있다. 정보 변경으로 인해 확인 레코드가 복수 존재하는 경우 현재 확인 레코드의 Token/Previous Record Hash는 이전 확인 레코드의 해쉬 값을 나타낼 수 있다.
Output(620)은 수신자의 주소를 포함한다. 예를 들어, 인증 레코드의 수신자는 구성원 노드이고, 확인 레코드의 수신자는 구성원 노드이고, 반환 레코드의 수신자는 대표 노드가 될 수 있다. 수신자는 연관된 다음 레코드를 작성하여 블록체인 네트워크에 전파할 수 있다.
Extra Data(630)는 Input(610), Output(620) 이외에 필요한 추가 데이터를 포함할 수 있다. 예를 들어, 확인 레코드의 경우 이름, 부서 등 구성원의 개인 정보를 포함할 수 있고, 이를 통해 구성원 서명이 대응하는 구성원에 관해 개인화될 수 있다.
Signature(640)는 Digital Signature 및 Public Key를 포함한다. Digital Signature는 개인 키를 이용하여 Input(610), Output(620) 및 Extra Data(630)를 서명한 것이다. 예를 들어, Digital Signature는 인증 레코드의 경우 대표 노드의 개인 키에 기초한 대표 서명을 나타내고, 확인 레코드 및 반환 레코드의 경우 구성원 노드의 개인 키에 기초한 구성원 서명을 나타낼 수 있다.
레코드(600)에서 Token/Previous Record Hash는 이전 레코드를 입력으로 사용 가능한지 검증하는데 이용될 수 있고, Digital Signature는 레코드(600)가 변경되지 않았는지 검증하는데 이용될 수 있다. 레코드의 검증 과정은 아래 도 7을 참조하여 설명한다.
도 7은 일 실시예에 따른 레코드의 검증 과정을 나타낸 도면이다.
특정 레코드에서 Input, Output 및 Extra Data에 관한 해쉬 값 및 디지털 서명을 공개 키로 복호화한 값이 동일하면, 해당 개인 키 및 공개 키 쌍을 보유한 노드에 의해 생성되어 변경되지 않은 레코드임이 검증될 수 있다. 예를 들어, 인증 레코드(710)의 경우 Input, Output 및 Extra Data에 관한 해쉬 값 및 대표 서명을 대표 노드의 공개 키로 복호화한 값이 동일하면, 인증 레코드(710)가 대응하는 대표 노드에 의해 생성되어 변경되지 않았음이 검증되며, 확인 레코드(720)의 경우 Input, Output 및 Extra Data에 관한 해쉬 값 및 구성원 서명을 구성원 노드의 공개 키로 복호화한 값이 동일하면, 확인 레코드(720)가 대응하는 구성원 노드에 의해 생성되어 변경되지 않았음이 검증된다.
특정 레코드에서 공개 키로 디지털 서명을 복호화하여 획득된 Output 내 주소 및 해당 레코드의 Input 내 해쉬 값에 대응하는 이전 레코드의 Output 내 주소가 동일하면, 해당 레코드가 이전 레코드의 수신 노드인 것이 검증될 수 있다. 예를 들어, 확인 레코드(720)의 경우, 구성원 노드의 공개 키로 구성원 서명을 복호화하여 획득된 Output 내 주소 1234567890 및 Input 내 해쉬 값에 대응하는 인증 레코드(710)의 Output 내 주소 1234567890가 동일하므로, 확인 레코드(720)가 인증 레코드(710)의 정당한 수신 노드인 것이 검증된다.
레코드들은 상술된 검증 과정을 통해 검증이 완료된 이후에 블록체인에 저장될 수 있다.
도 8은 인증 토큰의 발급 형태에 관한 실시예들을 나타낸 도면이다.
도 8에서 참여 기관은 상술된 대표 기관에 대응한다. 도 8(a)의 실시예에 따르면, 총괄 기관은 참여 기관에 인증 토큰을 발급할 수 있고, 참여 기관은 발급된 인증 토큰에 기초하여 자신에게 소속된 구성원들에 관해 인증 레코드를 생성할 수 있다. 이 경우, 각 참여 기관은 인증 토큰이 총괄 기관에서 발급된 것인지 확인하여 인증 토큰을 검증할 수 있다. 도 8(b)의 실시예에 따르면, 참여 기관은 스스로 인증 토큰을 생성할 수 있고, 생성된 인증 토큰에 기초하여 자신에게 소속된 구성원들에 관해 인증 레코드를 생성할 수 있다. 이 경우, 각 참여 기관은 모든 참여 기관의 정보(예: 주소)를 공유하고, 인증 토큰이 정당한 참여 기관에 의해 생성된 것인지 확인하여 인증 토큰을 검증할 수 있다.
도 9는 구성원 노드의 타입에 관한 실시예들을 나타낸 도면이다.
도 9(a)의 실시예에 따르면, 구성원 개인이 사용하는 통신단말(910)이 구성원 노드에 대응할 수 있다. 이 경우, 통신단말(910)에 비밀 키 및 대응 키 쌍이 저장된다. 도 9(b)의 실시예에 따르면, 구성원 개인이 사용하거나, 혹은 구성원들이 공유하는 통신단말(921, 922)을 연결하는 교환기(920)가 구성원 노드에 대응할 수 있다. 이 경우, 교환기(920)에 비밀 키 및 대응 키 쌍이 저장된다.
도 10은 소속 정보를 확인하는 주체에 관한 실시예들을 나타낸 도면이다.
도 10(a)의 실시예에 따르면, 앞서 설명되었던 것과 같이 구성원 노드(1010)는 통화 또는 메시지에 확인 정보를 첨부되어 수신 노드(1020)에 발신하며, 검색 API(1030)가 확인 정보에 기초하여 구성원 노드(1010)의 소속 정보를 확인한다.
도 10(b)의 실시예에 따르면, 앞서 설명되었던 것과 달리 구성원 노드(1050)는 확인 정보가 첨부되지 않은 일반 통화 또는 메시지를 수신 노드(1060)에 발신하며, 이와 별도로 서비스 서버(1070)에 확인 정보를 전달한다. 서비스 서버(1070)는 검색 API(1030)와 같이 확인 정보에 기초하여 구성원 노드(1050)의 소속 정보를 확인한다. 소속 정보는 수신 노드(1060)에 설치된 어플리케이션에 전달될 수 있고, 어플리케이션은 소속 정보를 수신자에게 제공할 수 있다. 그 밖에, 전술된 블록체인을 이용한 발신자 확인 방법이 도 10(b)의 실시예에 적용될 수 있다.
이상에서 설명된 장치는 하드웨어 구성요소, 소프트웨어 구성요소, 및/또는 하드웨어 구성요소 및 소프트웨어 구성요소의 조합으로 구현될 수 있다. 예를 들어, 실시예들에서 설명된 장치 및 구성요소는, 예를 들어, 프로세서, 콘트롤러, ALU(Arithmetic Logic Unit), 디지털 신호 프로세서(digital signal processor), 마이크로컴퓨터, FPGA(Field Programmable Gate Array), PLU(Programmable Logic Unit), 마이크로프로세서, 또는 명령(instruction)을 실행하고 응답할 수 있는 다른 어떠한 장치와 같이, 하나 이상의 범용 컴퓨터 또는 특수 목적 컴퓨터를 이용하여 구현될 수 있다. 처리 장치는 운영 체제(OS) 및 상기 운영 체제 상에서 수행되는 하나 이상의 소프트웨어 애플리케이션을 수행할 수 있다. 또한, 처리 장치는 소프트웨어의 실행에 응답하여, 데이터를 접근, 저장, 조작, 처리 및 생성할 수도 있다. 이해의 편의를 위하여, 처리 장치는 하나가 사용되는 것으로 설명된 경우도 있지만, 해당 기술분야에서 통상의 지식을 가진 자는, 처리 장치가 복수 개의 처리 요소(processing element) 및/또는 복수 유형의 처리 요소를 포함할 수 있음을 알 수 있다. 예를 들어, 처리 장치는 복수 개의 프로세서 또는 하나의 프로세서 및 하나의 콘트롤러를 포함할 수 있다. 또한, 병렬 프로세서(parallel processor)와 같은, 다른 처리 구성(processing configuration)도 가능하다.
소프트웨어는 컴퓨터 프로그램(computer program), 코드(code), 명령(instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로(collectively) 처리 장치를 명령할 수 있다. 소프트웨어 및/또는 데이터는, 처리 장치에 의하여 해석되거나 처리 장치에 명령 또는 데이터를 제공하기 위하여, 어떤 유형의 기계, 구성요소(component), 물리적 장치, 가상 장치(virtual equipment), 컴퓨터 저장 매체 또는 장치, 또는 전송되는 신호 파(signal wave)에 영구적으로, 또는 일시적으로 구체화(embody)될 수 있다. 소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 하나 이상의 컴퓨터 판독 가능 기록 매체에 저장될 수 있다.
실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 실시예의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
이상과 같이 실시예들이 비록 한정된 실시예와 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기의 기재로부터 다양한 수정 및 변형이 가능하다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.
그러므로, 다른 구현들, 다른 실시예들 및 특허청구범위와 균등한 것들도 후술하는 특허청구범위의 범위에 속한다.
Claims (11)
- 블록체인을 이용한 발신자 확인 방법에 있어서,
대표 노드에 의해 수행되는,
구성원 노드를 위한 인증 토큰 및 상기 구성원 노드의 주소를 획득하는 단계;
상기 인증 토큰 및 상기 구성원 노드의 주소를 상기 대표 노드의 비밀 키로 서명하여 대표 서명을 생성하는 단계;
상기 인증 토큰, 상기 구성원 노드의 주소, 상기 대표 서명 및 상기 대표 노드의 공개 키에 기초하여 상기 구성원 노드를 인증하는 인증 레코드를 생성하는 단계; 및
상기 인증 레코드를 블록체인 네트워크에 전파하는 단계
를 포함하는 발신자 확인 방법. - 제1항에 있어서,
상기 구성원 노드에 의해 수행되는,
상기 인증 레코드의 해쉬 값 및 상기 구성원 노드의 주소를 상기 구성원 노드의 비밀 키로 서명하여 구성원 서명을 생성하는 단계;
상기 인증 레코드의 해쉬 값, 상기 구성원 노드의 주소, 상기 구성원 서명 및 상기 구성원 노드의 공개 키에 기초하여 상기 구성원 노드를 확인하는 확인 레코드를 생성하는 단계; 및
상기 확인 레코드를 상기 블록체인 네트워크에 전파하는 단계
를 더 포함하는 발신자 확인 방법. - 제1항에 있어서,
상기 구성원 노드에 의해 수행되는,
상기 구성원 노드의 식별정보 및 수신 노드의 식별 정보 중 적어도 하나를 상기 구성원 노드의 비밀 키로 서명하여 확인 서명을 생성하는 단계; 및
상기 구성원 노드의 주소 및 상기 확인 서명을 포함하는 확인 정보를 통화 혹은 메시지에 첨부하여 상기 수신 노드로 발신하는 단계
를 더 포함하는, 발신자 확인 방법. - 제3항에 있어서,
상기 수신 노드에 의해 수행되는,
상기 구성원 노드의 주소에 기초하여 상기 블록체인 네트워크에서 상기 인증 레코드의 해쉬 값을 획득하는 단계;
상기 인증 레코드의 해쉬 값을 이용하여 상기 블록체인 네트워크에서 상기 인증 레코드를 검색하는 단계; 및
상기 인증 레코드에 포함된 상기 대표 노드의 공개 키를 이용하여 상기 구성원 노드의 소속 정보를 결정하는 단계
를 더 포함하는, 발신자 확인 방법. - 제3항에 있어서,
상기 수신 노드에 의해 수행되는,
상기 구성원 노드의 식별정보 및 상기 수신 노드의 식별 정보 중 적어도 하나에 기초하여 제1 해쉬 값을 생성하는 단계;
상기 구성원 노드의 공개 키로 상기 확인 서명을 복호화한 데이터에 기초하여 제2 해쉬 값을 생성하는 단계; 및
상기 제1 해쉬 값 및 상기 제2 해쉬 값을 비교하여 상기 확인 서명을 검증하는 단계
를 더 포함하는, 발신자 확인 방법. - 제1항에 있어서,
상기 구성원 노드에 의해 수행되는,
상기 구성원 노드의 식별정보, 및 수신 노드의 식별 정보 중 적어도 하나를 상기 구성원 노드의 비밀 키로 서명하여 확인 서명을 생성하는 단계;
상기 수신 노드로 통화 혹은 메시지를 발신하는 단계; 및
상기 구성원 노드의 주소 및 상기 확인 서명을 포함하는 확인 정보를 상기 구성원 노드의 소속을 확인하는 서비스 서버로 전달하는 단계
를 더 포함하는, 발신자 확인 방법. - 블록체인을 이용한 수신 노드의 발신자 확인 방법에 있어서,
구성원 노드의 주소를 포함하는 확인 정보가 첨부된 통화 혹은 메시지를 상기 구성원 노드로부터 수신하는 단계;
상기 구성원 노드의 주소에 기초하여 블록체인 네트워크에서 상기 구성원 노드의 확인을 위해 상기 구성원 노드에 의해 전파된 확인 레코드를 검색하는 단계;
상기 확인 레코드에서 상기 구성원 노드의 인증을 위해 상기 구성원 노드가 속한 대표 노드에 의해 전파된 인증 레코드의 해쉬 값을 획득하는 단계;
상기 인증 레코드의 해쉬 값을 이용하여 상기 블록체인 네트워크에서 상기 인증 레코드를 검색하는 단계; 및
상기 인증 레코드에 포함된 상기 대표 노드의 공개 키를 이용하여 상기 구성원 노드의 소속 정보를 결정하는 단계
를 포함하는 발신자 확인 방법. - 제7항에 있어서,
상기 인증 레코드는 상기 구성원 노드를 위한 인증 토큰, 상기 구성원 노드의 주소, 상기 인증 토큰 및 상기 구성원 노드의 주소를 상기 대표 노드의 비밀 키로 서명한 대표 서명, 및 상기 대표 노드의 공개 키를 포함하고,
상기 확인 레코드는 상기 인증 레코드의 해쉬 값, 상기 구성원 노드의 주소, 상기 인증 레코드의 해쉬 값 및 상기 구성원 노드의 주소를 상기 구성원 노드의 비밀 키로 서명한 구성원 서명, 및 상기 구성원 노드의 공개 키를 포함하는,
발신자 확인 방법. - 제7항에 있어서,
상기 확인 정보는
상기 구성원 노드가 상기 구성원 노드의 식별정보 및 상기 수신 노드의 식별 정보 중 적어도 하나를 상기 구성원 노드의 비밀 키로 서명한 확인 서명을 더 포함하는, 발신자 확인 방법. - 제9항에 있어서,
상기 구성원 노드의 식별정보 및 상기 수신 노드의 식별 정보 중 적어도 하나에 기초하여 제1 해쉬 값을 생성하는 단계;
상기 구성원 노드의 공개 키로 상기 확인 서명을 복호화한 데이터에 기초하여 제2 해쉬 값을 생성하는 단계; 및
상기 제1 해쉬 값 및 상기 제2 해쉬 값을 비교하여 상기 확인 서명을 검증하는 단계
를 더 포함하는, 발신자 확인 방법. - 블록체인을 이용한 서비스 서버의 발신자 확인 방법에 있어서,
구성원 노드에 의해 수신 노드로 통화 또는 메시지가 송신됨에 따라, 상기 구성원 노드로부터 상기 구성원 노드의 주소를 포함하는 확인 정보를 수신하는 단계;
상기 구성원 노드의 주소에 기초하여 블록체인 네트워크에서 상기 구성원 노드의 확인을 위해 상기 구성원 노드에 의해 전파된 확인 레코드를 검색하는 단계;
상기 확인 레코드에서 상기 구성원 노드의 인증을 위해 상기 구성원 노드가 속한 대표 노드에 의해 전파된 인증 레코드의 해쉬 값을 획득하는 단계;
상기 인증 레코드의 해쉬 값을 이용하여 상기 블록체인 네트워크에서 상기 인증 레코드를 검색하는 단계;
상기 인증 레코드에 포함된 상기 대표 노드의 공개 키를 이용하여 상기 구성원 노드의 소속 정보를 결정하는 단계; 및
상기 수신 노드로 상기 소속 정보를 전달하는 단계
를 포함하는 발신자 확인 방법.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020180037541A KR102054581B1 (ko) | 2018-03-30 | 2018-03-30 | 블록 체인을 이용한 발신자 확인 방법, 장치 및 시스템 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020180037541A KR102054581B1 (ko) | 2018-03-30 | 2018-03-30 | 블록 체인을 이용한 발신자 확인 방법, 장치 및 시스템 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20190114597A KR20190114597A (ko) | 2019-10-10 |
KR102054581B1 true KR102054581B1 (ko) | 2019-12-12 |
Family
ID=68206515
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020180037541A KR102054581B1 (ko) | 2018-03-30 | 2018-03-30 | 블록 체인을 이용한 발신자 확인 방법, 장치 및 시스템 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR102054581B1 (ko) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20220066842A (ko) * | 2020-11-16 | 2022-05-24 | 포항공과대학교 산학협력단 | 블록체인 기반 스미싱 방지 방법 및 장치 |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102298716B1 (ko) * | 2020-01-15 | 2021-09-06 | 성기운 | 통신 노드, 이의 동작 방법 및 협업 시스템 |
KR102581477B1 (ko) | 2021-07-30 | 2023-09-21 | 주식회사 비비도 | 집중 광조사 장치 및 이를 포함하는 미용장치 세트 |
KR102474855B1 (ko) * | 2022-06-29 | 2022-12-06 | 주식회사 호패 | 메신저 서비스를 제공하기 위한 방법, 시스템 및 비일시성의 컴퓨터 판독 가능한 기록 매체 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101575030B1 (ko) | 2014-07-11 | 2015-12-07 | 조선대학교산학협력단 | 클라우드 상의 공유 데이터에 대한 다중 서명생성방법 |
KR101799343B1 (ko) | 2016-05-16 | 2017-11-22 | 주식회사 코인플러그 | 인증 정보의 사용 방법, 파기 방법 및 이를 지원하는 블록체인기반 인증 정보 관리 서버 |
KR101837166B1 (ko) | 2016-10-26 | 2018-03-09 | 주식회사 코인플러그 | 블록체인 내의 블록별로 발란스 데이터베이스를 관리하여 통화를 발행 및 지급 결제하는 방법과 이를 이용한 서버 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101673073B1 (ko) * | 2015-02-25 | 2016-11-04 | 이진희 | 블록체인 구조를 사용하는 암호화화폐 거래방법 |
-
2018
- 2018-03-30 KR KR1020180037541A patent/KR102054581B1/ko active IP Right Grant
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101575030B1 (ko) | 2014-07-11 | 2015-12-07 | 조선대학교산학협력단 | 클라우드 상의 공유 데이터에 대한 다중 서명생성방법 |
KR101799343B1 (ko) | 2016-05-16 | 2017-11-22 | 주식회사 코인플러그 | 인증 정보의 사용 방법, 파기 방법 및 이를 지원하는 블록체인기반 인증 정보 관리 서버 |
KR101837166B1 (ko) | 2016-10-26 | 2018-03-09 | 주식회사 코인플러그 | 블록체인 내의 블록별로 발란스 데이터베이스를 관리하여 통화를 발행 및 지급 결제하는 방법과 이를 이용한 서버 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20220066842A (ko) * | 2020-11-16 | 2022-05-24 | 포항공과대학교 산학협력단 | 블록체인 기반 스미싱 방지 방법 및 장치 |
KR102522981B1 (ko) | 2020-11-16 | 2023-04-18 | 포항공과대학교 산학협력단 | 블록체인 기반 스미싱 방지 방법 및 장치 |
Also Published As
Publication number | Publication date |
---|---|
KR20190114597A (ko) | 2019-10-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US12021992B2 (en) | System and method for authenticating user identity | |
US10708060B2 (en) | System and method for blockchain-based notification | |
US10917246B2 (en) | System and method for blockchain-based cross-entity authentication | |
US10756885B2 (en) | System and method for blockchain-based cross entity authentication | |
CN111144881B (zh) | 对资产转移数据的选择性访问 | |
US20220084027A1 (en) | Blockchain based account funding and distribution | |
WO2021000337A1 (en) | System and method for mapping decentralized identifiers to real-world entities | |
KR102054581B1 (ko) | 블록 체인을 이용한 발신자 확인 방법, 장치 및 시스템 | |
US20210390558A1 (en) | Smart logistics management using blockchain | |
EP3593515B1 (en) | Managing housing scores using smart contracts in blockchain networks | |
EP3935586A1 (en) | Method of using a blockchain | |
JP2020526052A (ja) | ブロックチェーンネットワーク内でスマート・コントラクトを使用する製品プロモーション | |
CN112600830B (zh) | 业务数据处理方法、装置、电子设备及存储介质 | |
CN111416709A (zh) | 基于区块链系统的投票方法、装置、设备及存储介质 | |
Ahmed et al. | Turning trust around: smart contract-assisted public key infrastructure | |
GB2581970A (en) | Method of using a blockchain | |
US11283623B1 (en) | Systems and methods of using group functions certificate extension | |
KR20210004842A (ko) | 탈중앙화 아이디 기반의 가상 자산 서비스 제공 방법 및 이를 이용한 가상 자산 서비스 제공 서버 | |
Kumar et al. | Preserving Location Data Integrity in Location Based Servers using Blockchain Technology | |
Chen et al. | Fail‐Stop Group Signature Scheme | |
Liu | Improving the security and reliability of application systems with blockchain technology | |
JP2023019673A (ja) | 電子契約方法、電子契約システムおよびプログラム | |
CN115599773A (zh) | 分布式资源转移方法、装置、系统与计算机设备 | |
Aseres et al. | FAYDA-IM: End-to-End Encrypted (E2EE) Instant Messaging with Blockchain-Based Authentication for National ID Customer Support Services |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E701 | Decision to grant or registration of patent right |