KR102517001B1 - 블록체인 네트워크 상에서 전자서명 처리 시스템 및 방법 - Google Patents

블록체인 네트워크 상에서 전자서명 처리 시스템 및 방법 Download PDF

Info

Publication number
KR102517001B1
KR102517001B1 KR1020220097927A KR20220097927A KR102517001B1 KR 102517001 B1 KR102517001 B1 KR 102517001B1 KR 1020220097927 A KR1020220097927 A KR 1020220097927A KR 20220097927 A KR20220097927 A KR 20220097927A KR 102517001 B1 KR102517001 B1 KR 102517001B1
Authority
KR
South Korea
Prior art keywords
information
address information
private key
user terminal
transaction
Prior art date
Application number
KR1020220097927A
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 주식회사 더문랩스
Priority to KR1020220097927A priority Critical patent/KR102517001B1/ko
Application granted granted Critical
Publication of KR102517001B1 publication Critical patent/KR102517001B1/ko

Links

Images

Classifications

    • 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/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
    • 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/3226Cryptographic 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 a predetermined code, e.g. password, passphrase or PIN
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/50Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)

Abstract

본 발명에 따른 블록체인 네트워크 상에서 전자서명 처리 시스템은 개인키를 이용해 단말기에 대한 고유 주소정보를 생성 및 전송하는 사용자 단말기; 상기 사용자 단말기의 블록체인 네트워크에 접속하기 위한 인증 서비스를 제공하는 인증 서버; 및 상기 사용자 단말기로부터 전송되는 상기 고유 주소정보를 상기 블록체인 서비스를 이용하기 위한 사용자 계정정보와 매핑하여 저장하고, 상기 사용자 단말기로부터 전송된 트랜잭션 데이터와 상기 계정정보 머클트리에 저장된 상기 고유 주소정보를 이용하여 상기 트랜잭션 데이터의 검증을 수행하는 블록체인 노드를 포함하는 것을 특징으로 한다.

Description

블록체인 네트워크 상에서 전자서명 처리 시스템 및 방법{System and method for processing digital signature on a blockchain network}
본 발명은 블록체인을 기반으로 트랜잭션의 전자서명을 처리하기 위한 시스템 및 방법에 관한 것이다.
전자서명(Digital Signature)은 전자문서나 디지털 테이터가 원래 내용에서 위조 또는 변조되지 않았다는 것(Data origin Authentication)과 서명을 생성한 주체가 누구인지를 증명(Entity Authentication)하기 위한 기술이다.
전자서명은 자신이 생성한 데이터를 다수의 타인에게 증명할 수 있는 기능을 가지므로, 서명 생성 과정에서 자신만 아는 비밀키를 사용한다. 또한 생성된 전자서명은 다수의 타인이 검증할 수 있어야 하므로 검증과정에서 공개키를 사용한다.
때문에, 전자서명을 생성하기 위해서는 개인키를 안전하게 관리하기 위한 별도의 장치가 필요하다. 개인키를 관리하는 장치에 문제가 발생하거나 개인키가 타인에게 유출되면 데이터에 대한 위조 또는 변조가 가능하게 되는 문제가 발생할 수 있다.
한편, 블록체인은 공공 거래 장부라고도 부르며 가상 화폐로 거래할 때 발생할 수 있는 해킹을 막는 기술이다.
기존 금융 회사의 경우 중앙 집중형 서버에 거래 기록을 보관하는 반면, 블록체인은 블록체인 네트워크에 참여한 사용자 모두의 공동 작업을 통하여 블록을 생성하며, 생성된 블록을 모든 참여자가 검증하고 이를 승인함으로써 모두가 동일한 블록을 보유하는 것과 일부 사용자에의해 데이터 위조를 막는 방식을 사용한다. 블록체인은 대표적인 온라인 가상 화폐인 비트코인에 적용되어 있다. 비트코인은 누구나 열람할 수 있는 장부에 거래내역을 투명하게 기록하며, 비트코인을 사용하는 여러 컴퓨터가 이 기록을 검증하여 해킹을 막는다. 블록체인은 단순히 비트코인에만 적용되는 기술이 아니며, 여러 데이터를 보관하는 데에도 적용함으로써 데이터베이스(DB)의 유지 보수와 보안에 따른 막대한 비용을 줄일 수 있는 효과를 가진 기술이다.
블록체인은 사용자 계정 주소에 해당하는 개인키와 공개키가 부가되어, 블록체인 네트워크가 허락하는 트랜잭션을 개인키로 서명해서 보낼 수 있으며, 블록체인 네트워크는 공개키를 이용하여 검증하고 합의하여 거래장부에 반영할 수 있다.
비트코인과 이더리움을 비롯한 대부분의 블록체인은 사용자의 디지털 서명을 생성하는 기술로 타원곡선 디지털서명 알고리즘(ECDSA) 등을 사용한다. 디지털 서명은 공개 키 암호 방식을 사용할 때 데이터 변조 여부와 데이터 송신자를 확인하기 위해서 사용되는 메시지에 추가되는 정보다. 여기서 디지털 서명이란 데이터로 계산한 '해시값'을 송신자의 개인키로 암호화한 것이다.
데이터를 수신한 수신자는 데이터 부분으로부터 해시값을 계산한다. 그리고 송신자의 공개키로 디지털 서명을 복호화한다. 수신자가 계산한 해시 값과 디지털 서명을 복호화한 해시 값이 일치하면 데이터가 변조되지 않았다는 것을 확인할 수 있다. 또한, 송신자의 공개 키로 디지털 서명을 복호화할 수 있다면, 송신자는 페어인 개인키를 가지고 있는 올바른 송신자라는 것 또한 확인할 수 있다.
그런데, 종래에는 블록체인에서 계정 및 개인 키를 사용자 부주의로 인하여 분실하는 경우, 해당 계정 내 보관된 자산을 찾을 수 있는 방법이 없다. 개인키는 64자의 16비트 문자열 형태의 난수로서, 인간의 관점에서는 직접 외우고 입력하는 것이 사실상 불가능에 가깝다. 따라서 대부분의 일반인의 경우 개인키를 대신 생성해서 관리해주는 외부 프로그램을 통해서 관리하고 있다. 이는 사용상의 문제로 인해서 블록체인의 보안성을 훼손하는 것이며, 이를 보완하기 위한 방안의 모색이 필요하다. (선행기술: 한국공개특허공보 제10-2020-0064663)
본 발명이 해결하고자 하는 과제는, 블록체인에서 단일한 사용자 계정정보에 따라 기기별로 할당된 복수개의 주소정보들을 이용하여 각각 전자 서명이 안전하게 이루어질 수 있도록 하는 블록체인 네트워크 상에서 전자서명 처리 시스템 및 방법에 관한 것이다.
상기 과제를 해결하기 위한 본 발명에 따른 블록체인 네트워크 상에서 전자서명 처리 시스템은 개인키를 이용해 단말기에 대한 고유 주소정보를 생성 및 전송하는 사용자 단말기; 상기 사용자 단말기의 블록체인 네트워크에 접속하기 위한 인증 서비스를 제공하는 인증 서버; 및 상기 사용자 단말기로부터 전송되는 상기 고유 주소정보를 상기 블록체인 서비스를 이용하기 위한 사용자 계정정보와 매핑하여 저장하고, 상기 사용자 단말기로부터 전송된 트랜잭션 데이터와 상기 계정정보 머클트리에 저장된 상기 고유 주소정보를 이용하여 상기 트랜잭션 데이터의 검증을 수행하는 블록체인 노드를 포함하는 것을 특징으로 한다.
상기 사용자 단말기는, 상기 개인키를 생성하고, 상기 개인키를 이용해 생성된 공개키로부터 상기 고유 주소정보를 생성하는 주소정보 생성부;
상기 개인키를 자바스크립트 객체 형식으로 암호화한 암호화 개인키를 생성하되, 상기 암호화 개인키를 전자서명을 위한 비밀번호와 매핑하는 암호화 개인키 생성부; 상기 비밀번호와 매핑된 상기 암호화 개인키를 저장하는 인덱스 데이터베이스; 및 상기 블록체인 노드로 전송할 트랜잭션을 생성하고, 상기 암호화 개인키를 이용하여 상기 트랜잭션에 대한 전자서명정보를 생성하는 트랜잭션 생성부를 포함하는 것을 특징으로 한다.
상기 트랜잭션 생성부는, 입력되는 비밀번호가 상기 인덱스 데이터베이스에 저장된 비밀번호와 일치하는 경우에, 상기 비밀번호에 매핑된 상기 암호화 개인키를 상기 인덱스 데이터베이스로부터 호출하고, 상기 호출된 암호화 개인키를 이용하여 상기 트랜잭션에 대한 상기 전자서명정보를 생성하는 것을 특징으로 한다.
상기 전자서명정보는, 상기 사용자 계정정보를 포함하는 것을 특징으로 한다.
상기 블록체인 노드는, 상기 사용자 계정정보와 매핑된 적어도 하나 이상의 고유 주소정보를 저장하는 계정정보 머클트리; 상기 사용자 단말기로부터 전송된 상기 트랜잭션 데이터의 공개키에 대응하는 검증대상 주소정보를 도출하는 주소정보 도출부; 및 상기 도출된 검증대상 주소정보와 상기 계정정보 머클트리에 저장된 상기 고유 주소정보를 비교하여, 상기 트랜잭션 데이터에 대한 검증 절차를 수행하는 검증 처리부를 포함하는 것을 특징으로 한다.
상기 주소정보 도출부는, 상기 트랜잭션의 해시값을 이용하여 상기 전자서명정보로부터 상기 사용자 단말기에 대한 상기 공개키를 복원하고, 상기 복원된 공개키로부터 상기 검증대상 주소정보를 도출하는 것을 특징으로 한다.
상기 과제를 해결하기 위한 본 발명에 따른 블록체인 네트워크 상에서 전자서명 처리방법은, 상기 사용자 단말기가 상기 사용자 단말기에 대한 고유 주소정보 및 암호화 개인키를 생성하는 단계; 상기 블록체인 노드가 상기 사용자 단말기로부터 전송되는 상기 고유 주소정보를 블록체인 네트워크 서비스를 이용하기 위한 사용자 계정정보와 매핑하여 저장하는 단계; 상기 사용자 단말기가 트랜잭션 및 전자서명정보를 포함하는 트랜잭션 데이터를 생성하고 상기 블록체인 노드로 전송하는 단계; 및 상기 블록체인 노드가 상기 사용자 단말기로부터 전송된 상기 트랜잭션 데이터와 상기 계정정보 머클트리에 저장된 상기 고유 주소정보를 이용하여 상기 트랜잭션 데이터의 검증을 수행하는 단계를 포함하는 것을 특징으로 한다.
상기 고유 주소정보 및 상기 암호화 개인키를 생성하는 단계는, 상기 개인키를 생성하고, 상기 개인키를 이용해 생성된 공개키로부터 상기 고유 주소정보를 생성하는 단계; 상기 개인키를 자바스크립트 객체 형식으로 암호화한 암호화 개인키를 생성하되, 상기 암호화 개인키를 전자서명을 위한 비밀번호와 매핑하는 단계; 및 상기 비밀번호와 매핑된 상기 암호화 개인키를 상기 인덱스 데이터베이스에 저장하는 단계를 포함하는 것을 특징으로 한다.
상기 트랜잭션 및 전자서명정보를 생성하는 단계는, 입력되는 비밀번호가 상기 인덱스 데이터베이스에 저장된 비밀번호와 일치하는 경우에, 상기 비밀번호에 매핑된 상기 암호화 개인키를 상기 인덱스 데이터베이스로부터 호출하고, 상기 호출된 암호화 개인키를 이용하여 상기 트랜잭션에 대한 상기 전자서명정보를 생성하는 것을 특징으로 한다.
상기 전자서명정보는, 상기 사용자 계정정보를 포함하는 것을 특징으로 한다.
상기 트랜잭션 데이터의 검증을 수행하는 단계는, 상기 사용자 단말기로부터 전송된 상기 트랜잭션 데이터의 공개키에 대응하는 검증대상 주소정보를 도출하는 단계; 및 상기 도출된 검증대상 주소정보와 상기 계정정보 머클트리에 저장된 상기 고유 주소정보를 비교하여, 상기 트랜잭션 데이터에 대한 검증 절차를 수행하는 단계를 포함하는 것을 특징으로 한다.
상기 검증대상 주소정보를 도출하는 단계는, 상기 트랜잭션의 해시값을 이용하여 상기 전자서명정보로부터 상기 사용자 단말기에 대한 상기 공개키를 복원하고, 상기 복원된 공개키로부터 상기 검증대상 주소정보를 도출하는 것을 특징으로 한다.
본 발명에 따르면, 사용자의 계정과 해당 계정에 매핑된 기기별 주소정보들을 블록 내에 저장하고, 트랜잭션 요청에 대해서 전자 서명을 검증할 때 확인함으로서 복수개의 전자서명을 하나의 사용자 계정에서 생성할 수 있도록 한다. 이에 따라, 사용자가 트랜잭션을 전송 과정에서 외부 플러그인의 도움을 받을 필요 없이 직접 해당 기기의 클라이언트 레벨에서 안전하게 전자 서명을 생성하고, 각 노드에서는 이를 용이하게 검증할 수 있다.
따라서, 본 발명의 경우에, 사용자는 블록체인 기반 서비스를 사용하는 동안 개별 기기에서 별도의 간단한 비밀번호만으로 디지털 서명을 안전하게 생성할 수 있고, 해당 개인키들은 브라우저 내에 반출 불가능한 형태로 안전하게 저장됨으로써, 해킹의 위험으로부터 안전하게 보호할 수 있다.
도 1은 본 발명의 일 실시예에 따른 블록체인 네트워크 상에서 전자서명 처리 시스템을 설명하기 위한 구성 블록도이다.
도 2는 도 1에 도시된 사용자 단말기를 설명하기 위한 일 실시예의 구성 블록도이다.
도 3은 트랜잭션 데이터 생성부에서 생성되는 트랜잭션 데이터를 예시하는 참조도이다.
도 4는 도 1에 도시된 블록체인 노드를 설명하기 위한 일 실시예의 구성 블록도이다.
도 5는 블록체인 노드에 저장되어 있는 블록의 구조를 예시하는 참조도이다.
도 6은 본 발명에 따른 블록체인 네트워크 상에서 전자서명 처리 시스템의 동작 과정을 설명하기 위한 참조도이다.
도 7은 본 발명의 일 실시예에 따른 블록체인 네트워크 상에서 전자서명 처리방법을 설명하기 위한 플로차트이다.
도 8은 도 7에 도시된 고유 주소정보 및 자바스크립트 코딩정보를 생성하는 단계를 설명하기 위한 일 실시예의 플로차트이다.
도 9는 도 7에 도시된 트랜잭션 데이터의 검증을 수행하는 단계를 설명하기 위한 일 실시예의 플로차트이다.
이하, 첨부된 도면을 참조하여 본 발명의 바람직한 실시예를 상세히 설명하기로 한다. 
본 발명의 실시예들은 당해 기술 분야에서 통상의 지식을 가진 자에게 본 발명을 더욱 완전하게 설명하기 위하여 제공되는 것이며, 아래의 실시예들은 여러 가지 다른 형태로 변형될 수 있으며, 본 발명의 범위가 아래의 실시예들로 한정되는 것은 아니다. 오히려, 이들 실시예는 본 개시를 더욱 충실하고 완전하게 하며 당업자에게 본 발명의 사상을 완전하게 전달하기 위하여 제공되는 것이다. 
본 명세서에서 사용된 용어는 특정 실시예를 설명하기 위하여 사용되며, 본 발명을 제한하기 위한 것이 아니다. 본 명세서에서 사용된 바와 같이 단수 형태는 문맥상 다른 경우를 분명히 지적하는 것이 아니라면, 복수의 형태를 포함할 수 있다. 본 명세서에서 사용된 바와 같이, 용어 "및/또는"은 해당 열거된 항목 중 어느 하나 및 하나 이상의 모든 조합을 포함한다.
도 1은 본 발명의 일 실시예에 따른 블록체인 네트워크 상에서 전자서명 처리 시스템(이하, '전자서명 처리 시스템'이라 칭함)을 설명하기 위한 구성 블록도이다.
도 1을 참조하면, 전자서명 처리 시스템(10)은 사용자 단말기(100), 인증 서버(200) 및 블록체인 노드(300)를 포함할 수 있다.
전자서명 처리 시스템(10)은 이들 구성요소를 연결하기 위해 블록체인 네트워크(N)를 포함할 수 있다. 블록체인 네트워크(N)는 프라이빗 블록체인(private blockchain) 또는 퍼블릭 블록체인(public blockchain)이거나, 이들의 혼합된 블록체인일 수도 있다. 프라이빗 블록체인은 미리 정해진 컴퓨팅 장치가 노드로서 동작하는 것으로, 시스템의 운영 비용, 이용 용이성, 속도, 안정성 등의 측면에서 이점을 가진다. 이에 비해, 퍼블릭 블록체인은 개방성을 갖는다는 점에서 이점이 있으나, 시스템 운영이나 속도 등에서 프라이빗 블록체인에 비해 취약할 수 있다.
사용자 단말기(100)는 사용자 지갑(Wallet)을 지원하기 위해 마련되는 스마트폰, 태블릿 PC, 노트북, 데스크 탑과 같은 정보처리 단말기이다. 사용자 지갑(Wallet)은, 재화의 가치로 환산 가능한 토큰 등의 자산이 보관되는 지갑 파일을 의미할 수 있다.
도 1에서, 사용자 단말기(100)는 블록체인 네트워크(N)의 외부에 있는 것으로 도시되었지만, 블록체인 네트워크(N) 내에 포함된 블록체인 노드로서 동작할 수도 있다. 이하에서는 일부 실시예에 따라 사용자 단말기(100)는 블록체인에 추가되는 트랜잭션 데이터를 생성하여 블록체인 네트워크(N)에 전송하는 것으로 설명되는 한편, 다른 실시예에서는 사용자 단말기(100)는 트랜잭션 데이터를 생성하고 그러한 트랜잭션 데이터를 포함하는 블록체인의 블록을 생성하며, 생성된 블록을 다른 블록체인 노드로 전파하는 것도 가능하다.
사용자 단말기(100)는 블록체인 네트워크(N)를 통해 하나 이상의 블록체인 노드들과 접속할 수 있다. 또한, 일부 다른 예시에서, 사용자 단말기(100)는 하나 이상의 노드들과 통신하는 인증 서버(200))를 통하여 블록체인 노드들과 접속할 수 있다.
사용자 단말기(100)는 인증 서버(200)와 접속하여 블록체인 네트워크와 접속하기 위한 인증 절차를 수행한다. 이를 위해, 사용자는 로그인 정보(예를 들어, 아이디 및 패스워드)를 입력하게 되며, 사용자 단말기(100)는 입력된 로그인 정보를 인증 서버(200)로 전송한다.
인증 서버(200)는 사용자 단말기(100)로부터 전송된 로그인 정보가 이전에 등록된 로그인 정보와 일치하는지 여부를 판단하고, 로그인 정보가 일치하면 해당 사용자 단말기(100)의 인증 절차가 유효하다고 판단하고, 사용자 단말기(100)에 대해 블록체인 네트워크(N)를 통한 접속을 허용한다. 인증 서버(200)의 접속 허용에 따라, 사용자 단말기(100)는 블록체인 네트워크에 접속할 수 있다.
사용자 단말기(100)는 블록체인 네트워크(N)에 접속하여, 블록체인 서비스를 위한 사용자 계정정보를 생성할 수 있다. 생성된 사용자 계정정보는 블록체인 노드(300)로 전송되며, 블록체인 노드(300)에 저장될 수 있다.
또한, 사용자 단말기(100)는 블록체인 네트워크(N)에서 사용할 수 있는 비대칭키 세트, 즉 개인키 및 공개키를 생성할 수 있다. 예를 들어, 사용자 단말기(100)는 RSA, DSA, ECDSA 등의 알고리즘을 이용하여 비대칭키 세트를 생성할 수 있다.
특히, 사용자 단말기(100)는 개인키(private key)를 이용해 단말기에 대한 고유 주소정보를 생성하고, 생성된 고유 주소정보를 블록체인 노드(300)로 전송한다.
도 2는 도 1에 도시된 사용자 단말기(100)를 설명하기 위한 일 실시예의 구성 블록도이다.
도 2를 참조하면, 사용자 단말기(100)는 주소정보 생성부(110), 암호화 개인키 생성부(120), 인덱스 데이터베이스(130), 트랜잭션 생성부(140)를 포함한다.
주소정보 생성부(110)는 먼저, 개인키를 생성하고, 생성된 개인키를 이용해 공개키(public key)를 생성하며, 생성된 공개키로부터 단말기에 대한 고유 주소정보를 생성한다.
주소정보 생성부(110)는 시드를 이용해서 개인키와 공개키를 생성한다. 이때, 주소정보 생성부(110)는 시드를 키 생성 함수의 인자값으로 하여 개인키와 공개키를 생성하거나, 또는 시드 자체를 개인키로 설정하고 이에 대응하는 공개키를 생성할 수도 있다.
주소정보 생성부(110)는 인증 절차에 사용된 로그인 정보를 이용하여 시드 값을 생성할 수 있다. 주소정보 생성부(110)는 로그인 정보인 아이디 및 패스워드 등을 미리 정해진 방식으로 조합할 수 있다. 주소정보 생성부(110)는 개인키의 인코딩 방식에 따라 적합한 방식, 예컨대, 압축, 해싱 등을 이용하여 아이디 및 패스워드를 조합할 수 있다. 주소정보 생성부(110)는 생성된 시드 값을 대칭키로서 이용하여 개인키를 대칭 인코딩할 수 있다. 대칭 인코딩에는 예컨대, AES256 알고리즘이 이용될 수 있으나, 이에 제한되지 않는다.
공개키는 사용자의 계정 주소(account address)로 기능하거나, 트랜잭션에 포함된 디지털 서명이 올바른 사용자의 개인키에 의해 생성된 것임을 검증하기 위한 수단으로 기능할 수 있다. 주소정보 생성부(110)는 생성된 공개키에 해시 함수를 적용함으로써, 해당 사용자 단말기(100)에 대한 고유 주소정보를 생성할 수 있다.
주소정보 생성부(110)는 블록체인 플랫폼 서비스를 위해 필요한 사용자 계정정보를 고유 주소정보와 함께 매핑한다. 그 후, 주소정보 생성부(110)는 사용자 계정정보와 매핑된 고유 주소정보를 통신부(미도시)로 전달한다. 이에 따라, 통신부는 전달받은 사용자 계정정보 및 고유 주소정보를 블록체인 노드(300)로 전송할 수 있다.
암호화 개인키 생성부(120)는 주소정보 생성부(110)에서 생성된 개인키를 자바스크립트 객체 형식으로 암호화한 암호화 개인키를 생성한다. 암호화 개인키 생성부(120)가 생성하는 자바스크립트 객체 형식의 암호화 개인키는 웹 브라우저의 자바스크립트가 이해할 수 있는 소스 코드에 해당하며, 사용자의 웹 브라우저 내에서만 생성되는 전자서명을 위한 스크립트 정보이다.
암호화 개인키 생성부(120)는 생성된 자바스크립트 객체 형식의 암호화 개인키를 전자서명을 위한 비밀번호와 매핑한다. 암호화 개인키 생성부(120)는 암호화 개인키의 생성시에 사용자에게 비밀번호를 입력하도록 사용자 인터페이스 기능을 제공하고, 사용자로부터 입력된 비밀번호를 암호화 개인키와 매핑하여, 인덱스 데이터베이스(130)에 전달한다. 여기서, 비밀번호는 적어도 하나의 문자, 숫자, 특수문자 등을 포함하는 임의의 문자일 수 있으며, PIN(personalized identification number)일 수도 있다.
인덱스 데이터베이스(130)는 암호화 개인키 생성부(120)에서 생성된 암호화 개인키를 비밀번호와 함께 저장한다. 인덱스 데이터베이스(130)는 웹 브라우저 내에 색인이 포함된 JSON 객체를 모아서 저장하는 웹브라우저 표준 인터페이스이다. 이러한, 인덱스 데이터베이스(130)는 transaction model과 동일 출처 정책(same-origin policy)를 따르도록 설계되어 있다.
동일 출처 정책은 인덱스 데이터베이스(130)에 저장된 정보를 호출하기 위해서는 해당 정보를 저장한 원 페이지 주소에서만 가능함을 의미한다.
웹브라우저에서 특정 주소를 기반으로 하는 웹페이지 내의 코드가 인덱스 데이터베이스(130)에 정보를 저장하거나, 인덱스 데이터베이스(130)에서 정보를 요청할 때 다음과 같이 동작하게 된다. 예를 들어, 정보의 저장인 경우에, 브라우저 내의 인덱스 데이터베이스(130)에 정보를 저장할 때, 해당 정보의 저장을 요청한 웹 페이지 출처(예를 들어, domain 주소, 프로토콜, 포트 등)를 기억한다. 또한, 정보의 호출 시에, 브라우저에서 인덱스 데이터베이스(130)의 해당 정보에 대한 조회를 요청할 때, 저장을 요청한 주소와 동일한 주소에서 요청이 되지 않을 경우 조회가 불가능하다. 이러한 정책으로 인해, 인덱스 데이터베이스(130)의 경우에 다른 웹 페이지로의 정보 유출이 차단될 수 있다.
따라서, 동일 출처 정책은 신규 정보의 저장과 저장된 정보의 조회가 동일한 페이지 주소(출처)로부터 이루어질 때만 가능하게 하는 보안상의 제약이라는 점에서, 인덱스 데이터베이스(130)에 저장된 암호화 개인키와 비밀번호가 유출되는 것을 방지할 수 있다.
인덱스 데이터베이스(130)는 트랜잭션 생성부(140)의 호출 요청에 따라, 비밀번호에 매핑된 암호화 개인키를 트랜잭션 생성부(140)에 제공한다. 이때, 인덱스 데이터베이스(130)는 사용자로부터 입력되는 비밀번호가 이전에 저장되어 있던 비밀번호와 일치하는 경우에만 해당 비밀번호에 매핑된 암호화 개인키를 제공할 수 있다.
트랜잭션 생성부(140)는 전자서명정보와 트랜잭션을 포함하는 전자서명 데이터를 생성한다. 그 후, 트랜잭션 생성부(140)는 생성된 트랜잭션 데이터를 통신부로 전달한다. 트랜잭션 생성부(140)에서 생성되는 트랜잭션은 사용자의 전자거래에 관한 정보 및 전달하고자 하는 메시지 등을 포함할 수 있다.
트랜잭션 생성부(140)는 인덱스 데이터베이스(130)로부터 호출된 암호화 개인키를 이용하여, 기 생성된 트랜잭션에 대한 전자서명정보를 생성한다. 이때, 전자서명정보는 생성된 트랜잭션이 해당 블록에 존재하는 트랜잭션임을 확인해 주는 용도로 사용될 수 있다. 전자서명정보는 공개키에 의한 전자서명, 전자서명을 생성한 서명 생성자 정보, 전자서명을 생성하는데 사용된 알고리즘 정보, 블록을 식별할 수 있는 정보인 블록 식별정보 및 트랜잭션을 식별할 수 있는 정보인 트랜잭션 식별정보 등을 포함할 수 있다. 또한, 트랜잭션 생성부(140)에서 생성되는 전자서명정보는 사용자 계정정보를 포함하고 있다.
트랜잭션 생성부(140)는 사용자로부터 입력되는 비밀번호가 인덱스 데이터베이스(130)에 저장된 비밀번호와 일치하는 경우에, 해당 비밀번호에 매핑된 암호화 개인키를 인덱스 데이터베이스(130)로부터 호출하고, 호출된 암호화 개인키를 이용하여 해당 트랜잭션에 대한 전자서명정보를 생성한다.
도 3은 트랜잭션 생성부(140)에서 생성되는 트랜잭션 데이터를 예시하는 참조도이다.
도 3을 참조하면, 트랜잭션 데이터는 트랜잭션(예를 들어, 메시지)과 전자서명정보를 포함할 수 있다. 트랜잭션 생성부(140)는 암호화 개인키를 이용해 공개키를 포함하는 전자서명(v, r, s)를 생성할 수 있다. 이러한, 전자서명정보는 전자서명(v, r, s)과 함께 사용자 계정정보(예를 들어, 계정명)를 포함하고 있다. 트랜잭션 생성부(140)는 생성된 트랜잭션과 전자서명정보 즉, 트랜잭션 데이터를 블록체인 노드(300)로 전송하도록 통신부에 전달한다.
통신부는 주소정보 생성부(110)로부터 전달받은 사용자 계정정보 및 고유 주소정보를 블록체인 노드(300)로 전송할 수 있다. 또한, 통신부는 트랜잭션 생성부(140)로부터 전달받은 트랜잭션 데이터를 블록체인 네트워크를 통해 블록체인 노드(300)로 전송한다. 이를 위해, 통신부는 수신기(Receiver)와 송신기(transmitter)를 포함하며, 유선 또는 무선으로 데이터를 송수신한다.
인증 서버(200)는 사용자 단말기(100)에 대한 인증 처리 서비스를 제공한다. 인증 서버(200)는 인증 절차를 통해 등록된 사용자 정보와 로그인 정보(아이디 및 패스워드)를 매핑시켜 데이터베이스에 저장하며 관리할 수 있다.
블록체인 노드(300)는 블록체인에 대한 데이터를 저장한다. 블록체인 노드(300)는 다른 블록체인 노드들로부터 블록을 수신한 이후, 수신된 블록의 유효성을 검증하고, 블록이 유효하면, 블록체인에 블록을 추가하는 한편, 블록체인 내 다른 노드로 블록을 전송한다.
이러한, 블록체인 노드(300)는 예컨대, 데스크 탑 컴퓨터, 랩탑 컴퓨터, 스마트폰, 태블릿 컴퓨터, 휴대 전화기, 개인 휴대용 단말기(PDA), 특정 용도 장치 또는 상기 기능 중 임의의 것을 포함하는 융합 장치와 같은 단일 컴퓨팅 장치; 또는 서버 팜(server farm), 분산형 네트워크, 클라우드 컴퓨팅 구성과 같이 복수의 컴퓨팅 장치를 포함하는 복수 컴퓨팅 구성일 수 있다. 또한, 둘 이상의 노드가 단일 컴퓨팅 장치에서 가상 노드의 형태로 구현되는 것 또한 가능하다.
블록체인 노드(300)는 복수개일 수 있으며, 이러한 복수개의 블록체인 노드(N) 각각이 블록체인 네트워크(N)에 접속되어 있다. 블록체인 노드(300) 각각은 블록을 생성하고, 생성된 블록을 블록체인 네트워크(N)에 접속된 다른 블록체인 노드들로 전파하고, 다른 블록체인 노드들로부터 수신된 블록을 검증하고, 검증된 블록을 추가하는 기능을 수행한다.
블록체인 노드(300)는 사용자 단말기(100)로부터 전송되는 고유 주소정보를 사용자 계정정보와 매핑하여 저장하고, 사용자 단말기(100)로부터 전송된 트랜잭션 데이터와 기 저장된 고유 주소정보를 이용하여 트랜잭션 데이터의 검증을 수행한다.
도 4는 도 1에 도시된 블록체인 노드(300)를 설명하기 위한 일 실시예의 구성 블록도이다.
도 4를 참조하면, 블록체인 노드(300)는 계정정보 머클트리(310), 주소정보 도출부(320) 및 검증 처리부(330)를 포함한다.
계정정보 머클트리(310)는 사용자 계정정보와 매핑된 적어도 하나 이상의 고유 주소정보를 저장한다. 계정정보 머클트리(310)는 블록체인에 연결되는 블록의 세부 구성요소에 해당하는 것일 수 있다.
도 5는 블록체인 노드(300)에 저장되어 있는 블록의 구조를 예시하는 참조도이다. 도 5를 참조하면, 블록은 블록 바디(BB: Block Body) 및 블록 헤더(BH: Block Header)를 포함할 수 있다.
블록 바디(BB)는 수신된 하나 이상의 트랜잭션을 포함할 수 있다. 각각의 트랜잭션이 블록체인 노드에 의해 생성되는 경우, 해당 블록체인 노드는 생성된 트랜잭션을 블록체인 네트워크 내 다른 블록체인 노드로 전송할 수 있다. 블록체인 노드가 트랜?Ъ퓽? 수신하는 경우, 해당 트랜잭션이 유효한 블록체인 노드로부터 수신된 것인지와 같이 트랜잭션의 유효성을 결정하며, 트랜잭션이 유효하면 해당 트랜잭션을 블록에 추가한다. 트랜잭션의 수 또는 사이즈는 구현예에 따라 미리 정해질 수 있다.
블록 바디(BB)에 저장되는 트랜잭션이 미리 정해진 기간, 미리 정해진 트랜잭션의 수 등과 같은 미리 정해진 조건에 만족하는 경우, 블록 바디(BB)에 포함된 하나 이상의 트랜잭션과 연관된 값으로부터 데이터 해시값이 연산된다. 일부 예시에서, 데이터 해시값은 머클 트리(merkle tree) 구조를 이용하여 머클 루트(merkle root)를 연산함으로써 획득할 수 있다. 이후, 이러한 데이터 해시 값을 포함하는 블록 헤더부 내 다양한 값에 기초하여, 블록 해시값이 연산되어, 결과적으로 블록이 생성된다.
블록 헤더(BH)는 블록 해시, 블록 인덱스, 타임 스템프, 이전 블록 해시, 트랜잭션 머클 트리 및 난스(Nounce) 등을 포함할 수 있다. 블록 해시는 블록을 식별하는 고유 값에 해당한다. 블록 해시값은 블록 내의 블록 헤더부 및 블록 바디부에 포함된 데이터에 기초하여 연산된다. 블록 해시는 다음 블록이 생성될때 이전 블록 해시로 사용되는 값일 수 있다. 블록 인덱스는 블록 체인에서 블록을 식별할 수 있는 정보이다. 타임스템프는 블록을 생성한 시간을 나타내는 정보이다. 이전 블록 해시는 블록체인에서 블록의 이전에 위치한 블록을 해시한 값을 나타내는 정보이다. 트랜잭션 머클트리는 블록에 포함된 모든 트랜잭션을 머클 트리로 구성하여 획득할 수 있는 머클 트리의 루트에 대한 해시값을 나타내는 정보이다. 난스는 블록을 입력값으로 했을 때 SHA-2(X)의 출력값의 상위 기설정된 비트가 0이 되도록 하는 값을 나타낸다.
특히, 본 발명의 경우에 블록 헤더(BH)는 계정정보 머클트리(310)를 포함할 수 있다. 계정정보 머클트리(310)는 사용자 계정정보를 도메인으로 사용하고, 해당 도메인에 대해서 복수개의 개인키, 공개키, 및 고유 주소정보의 쌍을 별도로 저장 및 관리한다. 계정정보 머클트리(310)는 하나의 사용자 계정정보에 사용자 단말기들의 종류에 따른 복수개의 고유 주소정보들을 각각 매핑하여 저장할 수 있다. 즉, 계정정보 머클트리(310)는 사용자 계정정보를 키 값으로 사용하고, 해당 사용자의 각각의 기기들에 대한 고유 주소정보들의 목록을 밸류로 저장할 수 있다. 이러한, 계정정보 머클트리(310)의 루트 해시값은 블록 헤더(BH)에 따로 기록됨으로써, 위변조가 방지되도록 한다.
주소정보 도출부(320)는 사용자 단말기(100)로부터 전송된 트랜잭션 데이터의 공개키에 대응하는 검증대상 주소정보를 도출한다.
주소정보 도출부(320)는 트랜잭션의 해시값을 이용하여 전자서명정보로부터 사용자 단말기(100)에 대한 공개키를 복원하고, 복원된 공개키로부터 검증대상 주소정보를 도출한다. 즉, 주소정보 도출부(320)는 트랜잭션 데이터를 구성하는 트랜잭션에 대한 해시값을 추출한다. 그 후, 주소정보 도출부(320)는 추출된 트랜잭션의 해시값을 트랜잭션 데이터의 또 다른 구성요소인 전자서명정보에 적용하여 사용자 단말기(100)에 대한 공개키를 복원한다. 그 후, 주소정보 도출부(320)는 복원된 공개키에 해시 함수를 적용함으로써 트랜잭션 데이터에 대응하는 검증대상 주소정보를 도출할 수 있다. 주소정보 도출부(320)는 도출된 검증대상 주소정보를 검증 처리부(330)로 전달한다.
검증 처리부(330)는 주소정보 도출부(320)에서 도출된 검증대상 주소정보와 계정정보 머클트리(310)에 저장된 고유 주소정보를 비교하여, 트랜잭션 데이터에 대한 검증 절차를 수행한다.
검증 처리부(330)는 해당 사용자의 트랜잭션 요청을 검증하기 위해서 계정정보 머클트리(310)를 참조해서 적법한 디지털 서명이 첨부되어 있는지 확인한다. 검증 처리부(330)는 미등록 계정의 경우, 다른 블록체인과 마찬가지로, 사용자의 개인 키에 의해서 생성된 주소를 기본으로 정상적으로 작동한다.
우선, 검증 처리부(330)는 트랜잭션 데이터의 전자서명정보에 포함된 사용자 계정정보를 추출한다. 그 후, 검증 처리부(330)는 추출된 사용자 계정정보와 일치하는 사용자 계정정보가 계정정보 머클트리(310)에 존재하는가를 판단한다.
추출된 사용자 계정정보가 계정정보 머클트리에 존재한다면, 검증 처리부(330)는 계정정보 머클트리(310)에 저장된 사용자 계정정보와 매핑되어 있는 적어도 하나 이상의 고유 주소정보 중에서 주소정보 도출부(320)에서 도출된 검증대상 주소정보와 일치하는 고유 주소정보가 존재하는가를 판단한다. 계정정보 머클트리(310)의 사용자 계정정보와 매핑된 고유 주소정보들 중에서 검증대상 주소정보와 일치하는 고유 주소정보가 존재한다면, 검증 처리부(330)는 사용자 단말기(100)로부터 전송된 트랜잭션 데이터에 대한 전자서명이 유효하다는 검증 결과를 출력한다. 이에 따라, 블록체인 노드(300)는 서명 검증이 완료된 트랜잭션 데이터에 대해 신규 블록에 추가한다.
도 6은 본 발명에 따른 블록체인 네트워크 상에서 전자서명 처리 시스템의 동작 과정을 설명하기 위한 참조도이다.
도 6에 도시된 바와 같이, 전자서명 처리 시스템은 유저의 요청에 따라 블록체인 내 사용자 계정(즉, 도메인 네임)에 대응하여 사용자 기기별(접속 환경 별)로 각각의 고유 주소정보를 할당하여 계정정보 머클트리에 저장한다. 또한, 전자서명 처리 시스템은 해당 접속 환경의 웹브라우저의 인덱스 데이터베이스(Indexed DB)에 해당 고유 주소정보와 1:1로 매칭되는 개인키를 이용해서 디지털 서명을 위한 암호화 개인키를 생성 및 저장한다. 그 후, 전자서명 처리 시스템은 사용자가 트랜잭션을 생성할 때 해당 브라우저의 인덱스 데이터베이스 내에 저장된 암호화 개인키를 이용해서 해당 트랜잭션에 대한 전자서명정보를 생성한다. 이에 따라, 트랜잭션 데이터를 수신한 블록체인 노드는 해당 트랜잭션의 생성자의 도메인 네임에 대응하는 고유 주소정보를 블록 내의 계정정보 머클트리에서 조회하여 해당 전자 서명이 머클트리 내에 등록된 고유 주소정보인지 여부를 확인함으로써, 트랜잭션 데이터에 대한 검증을 수행할 수 있다.
도 7은 본 발명의 일 실시예에 따른 블록체인 네트워크 상에서 전자서명 처리방법을 설명하기 위한 플로차트이다.
사용자 단말기는 해당 사용자 단말기에 대한 고유 주소정보 및 암호화 개인키를 생성 및 전송한다(S1000 단계).
도 8은 도 7에 도시된 고유 주소정보 및 암호화 개인키를 생성하는 단계를 설명하기 위한 일 실시예의 플로차트이다.
먼저, 사용자 단말기와 인증 서버는 사용자로부터 입력된 로그인 정보를 이용하여 블록체인 네트워크에 접속하기 위한 인증절차를 수행한다(S1002 단계). 사용자 단말기는 사용자로부터 입력된 로그인 정보(예를 들어, 아이디 및 패스워드)를 인증 서버로 전송한다. 이에 따라, 인증 서버는 사용자 단말기로부터 전송된 로그인 정보가 이전에 등록된 로그인 정보와 일치하는지 여부를 판단하고, 로그인 정보가 일치하면 해당 사용자 단말기의 인증 절차가 유효하다고 판단하고, 상기 사용자 단말기에 대해 블록체인 네트워크를 통한 접속을 허용한다.
S1002 단계 후에, 사용자 단말기는 개인키로부터 공개키를 생성하고, 생성된 공개키를 이용해 고유 주소정보를 생성한다(S1004 단계).
사용자 단말기는 시드를 이용해서 개인키와 공개키를 생성한다. 이때, 사용자 단말기는 시드를 키 생성 함수의 인자값으로 하여 개인키와 공개키를 생성하거나, 또는 시드 자체를 개인키로 설정하고 이에 대응하는 공개키를 생성할 수도 있다. 사용자 단말기는 인증 절차에 사용된 아이디 및 패스워드 등을 조합하여 시드값을 생성할 수 있다.
사용자 단말기는 생성된 공개키에 해시 함수를 적용함으로써, 해당 사용자 단말기(100)에 대한 고유 주소정보를 생성할 수 있다. 사용자 단말기는 블록체인 플랫폼 서비스를 위해 필요한 사용자 계정정보를 고유 주소정보와 함께 매핑한다. 그 후, 사용자 단말기는 사용자 계정정보와 매핑된 고유 주소정보를 블록체인 노드로 전송한다.
S1004 단계 후에, 사용자 단말기는 생성된 개인키를 이용해 자바스크립트 객체 형식으로 암호화한 암호화 개인키를 생성한다(S1006 단계). 사용자 단말기가 생성하는 자바스크립트 객체 형식의 암호화 개인키는 웹 브라우저의 자바스크립트가 이해할 수 있는 소스 코드에 해당하며, 사용자의 웹 브라우저 내에서만 생성되는 전자서명을 위한 스크립트 정보이다. 이러한, 암호화 개인키는 사용자의 웹 브라우저 내에서만 호출될 수 있으며, 외부에서 호출이 불가능한 전자서명의 생성을 위한 스크립트 정보이다.
사용자 단말기는 생성된 자바스크립트 객체 형식의 암호화 개인키를 전자서명을 위한 비밀번호와 매핑한다. 사용자 단말기는 암호화 개인키의 생성시에 사용자에게 비밀번호를 입력하도록 사용자 인터페이스 기능을 제공하고, 사용자로부터 입력된 비밀번호를 암호화 개인키와 매핑하여, 인덱스 데이터베이스에 전달한다.
S1006 단계 후에, 사용자 단말기는 생성된 암호화 개인키를 비밀번호와 함께 인덱스 데이터베이스에 저장한다(S1008 단계). 인덱스 데이터베이스는 웹 브라우저 내에 색인이 포함된 JSON 객체를 모아서 저장하는 웹브라우저 표준 인터페이스에 해당하며, 동일 출처 정책(same-origin policy)을 따르도록 설계되어 있다. 즉, 인덱스 데이터베이스는 transaction model과 same-origin policy를 따르며, 이를 이용한 API의 작동은 transaction 내부에서만 호출 가능하며 외부에서는 호출이 불가능하다. 인덱스 데이터베이스는 사용자로부터 입력되는 비밀번호가 이전에 저장되어 있던 비밀번호와 일치하는 경우에만 해당 비밀번호에 매핑된 암호화 개인키를 제공할 수 있다.
한편, S1000 단계 후에, 블록체인 노드는 사용자 단말기로부터 전송되는 상기 고유 주소정보를 사용자 계정정보와 매핑하여 저장한다(S1010 단계). 블록체인 노드는 사용자 단말기로부터 전송된 고유 주소정보를 확인하고, 이전에 등록되어 있던 사용자 계정정보와 매핑하여 저장한다. 이에 따라, 블록체인 노드에는 하나의 사용자 계정정보에 사용자 단말기들의 종류에 따른 복수개의 고유 주소정보들이 매핑되어 저장될 수 있다. 또한, 블록체인 노드는 고유 주소정보와 사용자 계정정보가 함께 전송된 경우에는, 해당 사용자 계정정보와 고유 주소정보를 매핑하여 저장할 수도 있다.
블록체인 노드는 계정정보 머클트리에 사용자 계정정보와 매핑된 고유 주소정보들을 저장한다. 예를 들어, 블록체인 노드는 사용자의 계정을 도메인으로 사용하고, 해당 도메인에 대해서 복수개의 개인키, 공개키, 및 고유 주소정보의 쌍을 계정정보 머클트리에 저장 및 관리한다. 계정정보 머클트리는 사용자의 계정명을 키 값으로 사용하고, 해당 사용자의 고유 주소정보의 목록을 밸류로 저장할 수 있다. 계정정보 머클트리의 루트 해시값은 블록 헤더에 따로 기록되어 위변조가 방지되도록 한다.
S1010 단계 후에, 사용자 단말기는 블록체인 노드로 전송할 트랜잭션 및 전자서명정보를 포함하는 트랜잭션 데이터를 생성 및 전송한다(S1020 단계).
사용자 단말기는 사용자의 요청에 대응하는 트랜잭션을 생성한다. 여기서, 트랜잭션은 사용자의 전자거래에 관한 정보 및 전달하고자 하는 메시지 등을 포함할 수 있다. 사용자 단말기는 전자 서명을 위해 사용자로부터 비밀번호를 입력받으면, 입력되는 비밀번호가 인덱스 데이터베이스에 저장된 비밀번호와 일치하는가를 판단한다. 비밀번호가 일치하는 경우에, 사용자 단말기는 해당 비밀번호에 매핑된 암호화 개인키를 인덱스 데이터베이스로부터 호출하고, 호출된 암호화 개인키를 이용하여 해당 트랜잭션에 대한 전자서명정보를 생성한다. 사용자 단말기에서 생성되는 전자서명정보는 사용자 계정정보를 포함하고 있다.
S1020 단계 후에, 블록체인 노드는 사용자 단말기로부터 전송된 트랜잭션 데이터와 계정정보 머클트리에 저장된 고유 주소정보를 이용하여 상기 트랜잭션 데이터의 검증을 수행한다(S1030 단계).
도 9는 도 7에 도시된 트랜잭션 데이터의 검증을 수행하는 단계(S1030 단계)를 설명하기 위한 일 실시예의 플로차트이다.
블록체인 노드는 사용자 단말기로부터 전송된 트랜잭션 데이터의 공개키에 대응하는 검증대상 주소정보를 도출한다(S1032 단계). 블록체인 노드는 트랜잭션의 해시값을 이용하여 전자서명정보로부터 사용자 단말기에 대한 공개키를 복원하고, 복원된 공개키로부터 검증대상 주소정보를 도출한다. 먼저, 블록체인 노드는 트랜잭션 데이터에 포함된 트랜잭션의 해시값을 추출한다. 그 후, 블록체인 노드는 추출된 트랜잭션의 해시값을 전자서명정보에 적용하여 사용자 단말기에 대한 공개키를 복원한다. 그 후, 블록체인 노드는 복원된 공개키에 해시 함수를 적용함으로써 트랜잭션 데이터에 대응하는 검증대상 주소정보를 도출한다.
S1032 단계 후에, 블록체인 노드는 도출된 검증대상 주소정보와 상기 계정정보 머클트리에 저장된 고유 주소정보를 비교하여, 트랜잭션 데이터에 대한 검증 절차를 수행한다(S1034 단계).
블록체인 노드는 전자서명정보에 포함된 사용자 계정정보를 추출한다. 그 후, 블록체인 노드는 추출된 사용자 계정정보와 일치하는 사용자 계정정보가 계정정보 머클트리에 존재하는가를 판단한다.
추출된 사용자 계정정보가 계정정보 머클트리에 존재한다면, 블록체인 노드는 계정정보 머클트리에 저장된 사용자 계정정보와 매핑되어 있는 적어도 하나 이상의 고유 주소정보들 중에서 검증대상 주소정보와 일치하는 고유 주소정보가 존재하는가를 판단한다. 계정정보 머클트리의 사용자 계정정보와 매핑된 고유 주소정보들 중에서 검증대상 주소정보와 일치하는 고유 주소정보가 존재한다면, 블록체인 노드는 사용자 단말기로부터 전송된 트랜잭션 데이터의가 유효하다는 검증 결과를 출력한다. 이에 따라, 블록체인 노드는 검증이 완료된 트랜잭션 데이터에 포함된 트랜잭션을 신규 블록에 추가한다.
본 발명은 소프트웨어적인 프로그램으로 구현하여 컴퓨터로 읽을 수 있는 소정 기록매체에 기록해 둠으로써 다양한 장치에 적용할 수 있다. 다양한 장치는 PC, 노트북, 휴대용 단말 등일 수 있다. 예컨대, 기록매체는 각 재생장치의 내장형으로 하드디스크, 플래시 메모리, RAM, ROM 등이거나, 외장형으로 CD-R, CD-RW와 같은 광디스크, 콤팩트 플래시 카드, 스마트 미디어, 메모리 스틱, 멀티미디어 카드일 수 있다.
이상과 같이 본 발명의 실시예를 설명하였으나, 본 발명의 명세서에 개시된 실시예들은 본 발명을 한정하는 것이 아니다. 본 발명의 범위는 아래의 특허청구범위에 의해 해석되어야 하며, 그와 균등한 범위 내에 있는 모든 기술도 본 발명의 범위에 포함되는 것으로 해석해야 할 것이다.
10: 전자서명 처리 시스템
100: 사용자 단말기
110: 주소정보 생성부
120: 암호화 개인키 생성부
130: 인덱스 데이터베이스
140: 트랜잭션 생성부
200: 인증 서버
300: 블록체인 노드
310: 계정정보 머클트리
320: 주소정보 도출부
330: 검증 처리부

Claims (12)

  1. 개인키를 이용해 사용자 단말기에 대한 고유 주소정보를 생성 및 전송하는 상기 사용자 단말기;
    상기 사용자 단말기의 블록체인 네트워크에 접속하기 위한 인증 서비스를 제공하는 인증 서버; 및
    상기 사용자 단말기로부터 전송되는 상기 고유 주소정보를 블록체인 서비스를 이용하기 위한 사용자 계정정보와 매핑하여 저장하고, 상기 사용자 단말기로부터 전송된 트랜잭션 데이터와 블록체인에 저장된 상기 고유 주소정보를 이용하여 상기 트랜잭션 데이터의 검증을 수행하는 블록체인 노드를 포함하고,
    상기 사용자 단말기는,
    상기 개인키를 생성하고, 상기 개인키를 이용해 생성된 공개키로부터 상기 고유 주소정보를 생성하는 주소정보 생성부;
    상기 개인키를 상기 사용자 단말기 내에 저장하기 위해 자바스크립트 객체 형식으로 암호화한 암호화 개인키를 생성하되, 상기 암호화 개인키를 전자서명을 위한 비밀번호와 매핑하는 암호화 개인키 생성부;
    상기 비밀번호와 매핑된 상기 암호화 개인키를 저장하는 인덱스 데이터베이스; 및
    상기 블록체인 노드로 전송할 트랜잭션을 생성하고, 상기 암호화 개인키를 이용하여 상기 트랜잭션에 대한 전자서명정보를 생성하는 트랜잭션 생성부를 포함하고,
    상기 블록체인 노드는,
    상기 사용자 계정정보와 매핑된 적어도 하나 이상의 고유 주소정보를 상기 블록체인 내에 저장하되, 상기 사용자 계정정보를 키 값으로 사용하고, 사용자 단말기들 각각의 고유 주소정보들의 목록을 밸류로 저장하는 계정정보 머클트리;
    상기 사용자 단말기로부터 전송된 상기 트랜잭션 데이터의 상기 전자서명정보에 대응하는 검증대상 주소정보를 도출하는 주소정보 도출부; 및
    상기 도출된 검증대상 주소정보와 상기 계정정보 머클트리에 저장된 상기 고유 주소정보를 비교하여, 상기 트랜잭션 데이터에 대한 검증 절차를 수행하는 검증 처리부를 포함하는 것을 특징으로 하는 블록체인 네트워크 상에서 전자서명 처리 시스템.
  2. 삭제
  3. 청구항 1에 있어서,
    상기 트랜잭션 생성부는,
    입력되는 비밀번호가 상기 인덱스 데이터베이스에 저장된 비밀번호와 일치하는 경우에, 상기 비밀번호에 매핑된 상기 암호화 개인키를 상기 인덱스 데이터베이스로부터 호출하고, 상기 호출된 암호화 개인키를 이용하여 상기 트랜잭션에 대한 상기 전자서명정보를 생성하는 것을 특징으로 하는 블록체인 네트워크 상에서 전자서명 처리 시스템.
  4. 청구항 3에 있어서,
    상기 전자서명정보는,
    상기 사용자 계정정보를 포함하는 것을 특징으로 하는 블록체인 네트워크 상에서 전자서명 처리 시스템.
  5. 삭제
  6. 청구항 1에 있어서,
    상기 주소정보 도출부는,
    상기 트랜잭션의 해시값을 이용하여 상기 전자서명정보로부터 상기 사용자 단말기에 대한 상기 공개키를 복원하고, 상기 복원된 공개키로부터 상기 검증대상 주소정보를 도출하는 것을 특징으로 하는 블록체인 네트워크 상에서 전자서명 처리 시스템.
  7. 청구항 1의 전자서명 처리 시스템을 이용한 블록체인 네트워크 상에서 전자서명 처리방법에 있어서,
    상기 사용자 단말기가 상기 사용자 단말기에 대한 상기 고유 주소정보 및 상기 암호화 개인키를 생성하는 단계;
    상기 블록체인 노드가 상기 사용자 단말기로부터 전송되는 상기 고유 주소정보를 블록체인 네트워크 서비스를 이용하기 위한 상기 사용자 계정정보와 매핑하여 저장하는 단계;
    상기 사용자 단말기가 트랜잭션 및 상기 전자서명정보를 포함하는 상기 트랜잭션 데이터를 생성하고 상기 블록체인 노드로 전송하는 단계; 및
    상기 블록체인 노드가 상기 사용자 단말기로부터 전송된 상기 트랜잭션 데이터의 상기 전자서명정보와 상기 계정정보 머클트리에 저장된 상기 고유 주소정보를 이용하여 상기 트랜잭션 데이터의 검증을 수행하는 단계를 포함하는 것을 특징으로 하는 블록체인 네트워크 상에서 전자서명 처리방법.
  8. 청구항 7에 있어서,
    상기 고유 주소정보 및 상기 암호화 개인키를 생성하는 단계는,
    상기 개인키를 생성하고, 상기 개인키를 이용해 생성된 공개키로부터 상기 고유 주소정보를 생성하는 단계;
    상기 개인키를 상기 자바스크립트 객체 형식으로 암호화한 상기 암호화 개인키를 생성하되, 상기 암호화 개인키를 전자서명을 위한 비밀번호와 매핑하는 단계;
    상기 비밀번호와 매핑된 상기 암호화 개인키를 상기 인덱스 데이터베이스에 저장하는 단계를 포함하는 것을 특징으로 하는 블록체인 네트워크 상에서 전자서명 처리방법.
  9. 청구항 7에 있어서,
    상기 트랜잭션 및 전자서명정보를 생성하는 단계는,
    입력되는 비밀번호가 상기 인덱스 데이터베이스에 저장된 비밀번호와 일치하는 경우에, 상기 비밀번호에 매핑된 상기 암호화 개인키를 상기 인덱스 데이터베이스로부터 호출하고, 상기 호출된 암호화 개인키를 이용하여 상기 트랜잭션에 대한 상기 전자서명정보를 생성하는 것을 특징으로 하는 블록체인 네트워크 상에서 전자서명 처리방법.
  10. 청구항 9에 있어서,
    상기 전자서명정보는,
    상기 사용자 계정정보를 포함하는 것을 특징으로 하는 블록체인 네트워크 상에서 전자서명 처리방법.
  11. 청구항 9에 있어서,
    상기 트랜잭션 데이터의 검증을 수행하는 단계는,
    상기 사용자 단말기로부터 전송된 상기 트랜잭션 데이터의 상기 전자서명정보에 대응하는 검증대상 주소정보를 도출하는 단계; 및
    상기 도출된 검증대상 주소정보와 상기 계정정보 머클트리에 저장된 상기 고유 주소정보를 비교하여, 상기 트랜잭션 데이터에 대한 검증 절차를 수행하는 단계를 포함하는 것을 특징으로 하는 블록체인 네트워크 상에서 전자서명 처리방법.
  12. 청구항 11에 있어서,
    상기 검증대상 주소정보를 도출하는 단계는,
    상기 트랜잭션의 해시값을 이용하여 상기 전자서명정보로부터 상기 사용자 단말기에 대한 상기 공개키를 복원하고, 상기 복원된 공개키로부터 상기 검증대상 주소정보를 도출하는 것을 특징으로 하는 블록체인 네트워크 상에서 전자서명 처리방법.
KR1020220097927A 2022-08-05 2022-08-05 블록체인 네트워크 상에서 전자서명 처리 시스템 및 방법 KR102517001B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020220097927A KR102517001B1 (ko) 2022-08-05 2022-08-05 블록체인 네트워크 상에서 전자서명 처리 시스템 및 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020220097927A KR102517001B1 (ko) 2022-08-05 2022-08-05 블록체인 네트워크 상에서 전자서명 처리 시스템 및 방법

Publications (1)

Publication Number Publication Date
KR102517001B1 true KR102517001B1 (ko) 2023-04-03

Family

ID=85936614

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020220097927A KR102517001B1 (ko) 2022-08-05 2022-08-05 블록체인 네트워크 상에서 전자서명 처리 시스템 및 방법

Country Status (1)

Country Link
KR (1) KR102517001B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102593468B1 (ko) 2023-04-26 2023-10-24 마이클 동 리 전자 서명을 인증 및 관리하기 위한 장치 및 방법

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101924026B1 (ko) * 2017-11-10 2018-11-30 부산대학교 산학협력단 해시 기반 서명 기법을 적용한 블록체인 시스템 및 방법
KR20200065939A (ko) * 2018-11-30 2020-06-09 사단법인 전국은행연합회 블록체인 및 스마트 컨트랙트 기반 인증서 상태 관리 장치 및 방법
KR20210049421A (ko) * 2019-10-25 2021-05-06 주식회사 락키 블록체인 키를 이용한 사용자 인증 기반의 요청 처리 방법, 그 방법이 적용된 시스템
KR20210051077A (ko) * 2019-10-29 2021-05-10 성균관대학교산학협력단 블록체인 기반 아이디 관리 방법 및 시스템
KR20210131031A (ko) * 2020-04-23 2021-11-02 에스케이 주식회사 블록체인 상의 스마트 계약을 이용한 사용자 키 관리 방법

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101924026B1 (ko) * 2017-11-10 2018-11-30 부산대학교 산학협력단 해시 기반 서명 기법을 적용한 블록체인 시스템 및 방법
KR20200065939A (ko) * 2018-11-30 2020-06-09 사단법인 전국은행연합회 블록체인 및 스마트 컨트랙트 기반 인증서 상태 관리 장치 및 방법
KR20210049421A (ko) * 2019-10-25 2021-05-06 주식회사 락키 블록체인 키를 이용한 사용자 인증 기반의 요청 처리 방법, 그 방법이 적용된 시스템
KR20210051077A (ko) * 2019-10-29 2021-05-10 성균관대학교산학협력단 블록체인 기반 아이디 관리 방법 및 시스템
KR20210131031A (ko) * 2020-04-23 2021-11-02 에스케이 주식회사 블록체인 상의 스마트 계약을 이용한 사용자 키 관리 방법

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102593468B1 (ko) 2023-04-26 2023-10-24 마이클 동 리 전자 서명을 인증 및 관리하기 위한 장치 및 방법

Similar Documents

Publication Publication Date Title
CN111429254B (zh) 一种业务数据处理方法、设备以及可读存储介质
US20210258164A1 (en) Methods and systems for universal storage and access to user-owned credentials for trans-institutional digital authentication
CN107925581B (zh) 生物体认证系统以及认证服务器
JP6877448B2 (ja) 分散ハッシュテーブル及びブロックチェーンを用いてコンピュータソフトウェアを保証する方法及びシステム
KR101781583B1 (ko) 블록체인을 기반으로 한 파일 관리/검색 시스템 및 파일 관리/검색 방법
CN114726643B (zh) 云平台上的数据存储、访问方法及装置
WO2020073513A1 (zh) 基于区块链的用户认证方法及终端设备
CN116842483A (zh) 验证数字资产完整性的方法和系统
JP6543743B1 (ja) 管理プログラム
CN111476573B (zh) 一种账户数据处理方法、装置、设备及存储介质
CN112733178B (zh) 基于数字证书认证的跨链信任方法、装置、设备以及介质
US8924725B2 (en) Authenticated file handles for network file systems
CN111131336B (zh) 多方授权场景下的资源访问方法、装置、设备及存储介质
CN112699353B (zh) 一种金融信息传输方法以及金融信息传输系统
CN111566647B (zh) 基于区块链的身份识别系统
CN115380303A (zh) 基于区块链的可信平台
KR102329221B1 (ko) 블록체인 기반 사용자 인증 방법
CN114244508A (zh) 数据加密方法、装置、设备及存储介质
KR102517001B1 (ko) 블록체인 네트워크 상에서 전자서명 처리 시스템 및 방법
WO2024011863A9 (zh) 通信方法、装置、sim卡、电子设备和终端设备
CN114514550A (zh) 将请求分区成区块链的交易
CN116263834A (zh) 许可区块链的多发布者匿名证书
US20230360123A1 (en) Cryptocurrency exchange platform
Gagged et al. Improved secure dynamic bit standard technique for a private cloud platform to address security challenges
Chang et al. A dependable storage service system in cloud environment

Legal Events

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