KR102426736B1 - 블록체인 상에서 개인정보보호를 위한 영지식 증명 생성 및 검증 스마트 컨트랙트 생성 시스템과 그 방법 - Google Patents

블록체인 상에서 개인정보보호를 위한 영지식 증명 생성 및 검증 스마트 컨트랙트 생성 시스템과 그 방법 Download PDF

Info

Publication number
KR102426736B1
KR102426736B1 KR1020200173535A KR20200173535A KR102426736B1 KR 102426736 B1 KR102426736 B1 KR 102426736B1 KR 1020200173535 A KR1020200173535 A KR 1020200173535A KR 20200173535 A KR20200173535 A KR 20200173535A KR 102426736 B1 KR102426736 B1 KR 102426736B1
Authority
KR
South Korea
Prior art keywords
verification
proof
smart contract
issuer
result
Prior art date
Application number
KR1020200173535A
Other languages
English (en)
Other versions
KR20220083931A (ko
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 KR1020200173535A priority Critical patent/KR102426736B1/ko
Publication of KR20220083931A publication Critical patent/KR20220083931A/ko
Application granted granted Critical
Publication of KR102426736B1 publication Critical patent/KR102426736B1/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/3218Cryptographic 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 proof of knowledge, e.g. Fiat-Shamir, GQ, Schnorr, ornon-interactive zero-knowledge proofs
    • 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/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0643Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • H04L9/0825Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) using asymmetric-key encryption or public key infrastructure [PKI], e.g. key signature or public key certificates
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/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)
  • Power Engineering (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

본 발명은 사용자가 프레젠테이션(Presentation)에 대한 내용을 드러내지 않으면서도 발급자(Issuer)로부터 전달받은 정보를 검증할 수 있는 블록체인 상에서 개인정보보호를 위한 영지식 증명 생성 및 검증 스마트 컨트랙트 생성 시스템과 그 방법에 관한 것이다. 본 발명의 실시 예에 따른 영지식 증명 생성 및 검증 스마트 컨트랙트 생성 방법은 발급자 단말(Issuer)에서 서명에 사용되는 개인키와 대응하는 공개키를 블록체인에 업로드하는 단계(S10)와, 상기 발급자 단말이 사용자의 어드레스(Address)에 매핑이 된 정보를 포함하여 크리덴셜(Credential)을 발급하는 단계(S20)를 포함한다. 또한, 사용자 단말(Holder)에서 자신이 증명하고자 하는 값과 동시에 발급자 단말로부터 만들어진 크리덴셜임을 증명하기 위해 내부적으로 생성된 증명(proof)과 결과(result)를 생성하여 스마트 컨트랙트(400)를 호출하는 단계(S30)와, 스마트 컨트랙트가 상기 블록체인에 업로드된 공개키를 토대로 사용자 단말이 생성한 증명(proof) 및 결과(result)를 검증하는 단계(S40)를 포함한다.

Description

블록체인 상에서 개인정보보호를 위한 영지식 증명 생성 및 검증 스마트 컨트랙트 생성 시스템과 그 방법{System and method for creating a zero-knowledge proof generation and verification smart contract for personal information protection on the blockchain}
본 발명은 블록체인 상에서 개인정보보호를 위한 영지식 증명 생성 및 검증 스마트 컨트랙트 생성 시스템과 그 방법에 관한 것으로서, 더욱 상세하게는 사용자가 프레젠테이션(Presentation)에 대한 내용을 드러내지 않으면서도 발급자(Issuer)로부터 전달받은 정보를 검증할 수 있는 블록체인 상에서 개인정보보호를 위한 영지식 증명 생성 및 검증 스마트 컨트랙트 생성 시스템과 그 방법에 관한 것이다.
DID(Decentralized Identity)가 발전함으로써 종래의 중앙화된 신원 인증 시스템에서 분산 신원 관리 시스템으로 변경이 진행되고 있다. 종래의 신원 인증 시스템에서는 1) 정보 검증의 중앙화 문제와, 2) 증명서의 모든 정보가 공개되는 문제, 3) 사용자의 증명서 관리에 어려움이 있는 문제 등이 존재한다.
따라서, 중앙 시스템에 의해 통제되지 않으며 개개인이 자신의 정보에 완전한 통제권을 가질 수 있도록 하는 디지털화된 신원 관리 체계인 분산 ID(DID)가 발전되고 있다.
도 1은 DID(Decentralized Identity) 검증 과정을 나타내는 도면이다. 즉, 도 1은 현재 DID를 토대로 주민등록증과 같이 사용자를 인증할 수 있는 정보인 크리덴셜(Credential)을 이용하여 검증자(Verifier)에게 검증받는 과정을 나타낸다.
도 1과 같이 사용자의 신원을 확인하기 위한 검증자(Verifier)는 하나의 서버로 이루어져 있어 사용자(Holder)가 제출한 신원인증을 그대로 전달받고, Verifiable Data Registry(Blockchain)에서 인증서를 발급해준 발급자 단말(Issuer)의 검증 정보를 받아와 사용자가 보낸 정보를 검증할 수 있다.
하지만, 도 1의 시스템을 중앙화된 서버 클라이언트 환경이 아닌 투명한 블록체인 환경에서 컨트랙트(contract)를 통해 사용자의 신원을 확인한다고 가정할 때, 사용자가 제출한 신원 정보가 블록체인에 모두 공개되기 때문에 사용자의 정보가 노출될 수 있는 프라이버시 문제가 발생한다.
또한, 종래의 검증 컨트랙트 생성 도구인 조크라테스(ZoKrates)의 경우 입력 값에 대한 제한이 있어 int 형태의 값을 입력해야 하며, 종래의 인증서 형태는 입력으로 받을 수 없는 문제가 있다.
또한, 증명(Proof) 생성시 발급자(Issuer)가 생성해 주었다는 점을 입증할 수 없고, 입력 과정에서 외부의 값이 맞게 들어왔는지에 대한 오라클 문제(Oracle problem)가 발생한다.
대한민국 등록특허 제10-2157208호(2020년 09월 18일 공고)
본 발명이 이루고자 하는 기술적 과제는 종래의 단점을 해결한 것으로서, 사용자가 프레젠테이션(Presentation)을 그대로 제출하지 않으면서도 특정 조건에 해당하는 신원을 만족하고 증명할 수 있도록 하는데 그 목적이 있다.
또한, 발급자 단말(Issuer)에서 발급하는 크리덴셜(Credential)의 증명(Proof)을 위한 입력 값의 제한을 극복하고자 하는데 그 목적이 있다. 또한, 증명(Proof) 생성시 발급자가 생성해 주었다는 점을 입증함으로써 데이터의 신뢰성을 증대하고자 하는데 그 목적이 있다.
이러한 기술적 과제를 이루기 위한 본 발명의 일 측면에 따른 영지식 증명 생성 및 검증 스마트 컨트랙트 생성 방법은 발급자 단말(Issuer)에서 서명에 사용되는 개인키와 대응하는 공개키를 블록체인에 업로드하는 단계(S10)와, 상기 발급자 단말이 사용자의 어드레스(Address)에 매핑이 된 정보를 포함하여 크리덴셜(Credential)을 발급하는 단계(S20)를 포함한다.
또한, 사용자 단말(Holder)에서 자신이 증명하고자 하는 값과 동시에 발급자 단말로부터 만들어진 크리덴셜임을 증명하기 위해 내부적으로 생성된 증명(proof)과 결과(result)를 생성하여 스마트 컨트랙트(400)를 호출하는 단계(S30)와, 스마트 컨트랙트가 상기 블록체인에 업로드된 공개키를 토대로 사용자 단말이 생성한 증명(proof) 및 결과(result)를 검증하는 단계(S40)를 포함한다.
이때, 상기 증명(proof) 및 결과(result)를 검증하는 단계(S40)는 상기 발급자 단말에서 발급한 크리덴셜을 토대로 사용자 단말이 증명하고자 하는 값에 대한 해쉬(Hash) 값을 생성하는 단계(S41)와, 상기 발급자 단말의 공개키를 통해 사용자의 서명을 검증하고, 검증된 서명의 해쉬(Hash) 값을 생성하는 단계(S42)를 포함한다.
또한, 상기 증명하고자 하는 값의 해쉬(Hash) 값과 서명의 해쉬(Hash) 값을 비교하여 증명(proof)을 검증하는 단계(S43)와, 상기 증명하고자 하는 값의 해쉬(Hash) 값을 토대로 스마트 컨트랙트가 제시한 특정 조건을 만족하는지에 대해 검증하는 단계(S44) 및 상기 (S43) 단계의 증명(proof) 검증 결과와, (S44) 단계의 특정 조건에 대한 검증 결과값을 리턴(return)하여 결과(result)를 검증하는 단계(S45)를 포함한다.
또한, 본 발명의 다른 측면에 따른 영지식 증명 생성 및 검증 스마트 컨트랙트 생성 시스템은 크리덴셜(Credential)을 발급해주는 발급자 단말(Issuer)과, 상기 발급자 단말(Issuer)에게 크리덴셜(Credential)의 발급을 요청하는 사용자 단말(Holder)과, 블록체인(Blockchain)과, 상기 블록체인(Blockchain) 상에서 크리덴셜(Credential)의 증명(Proof)과 결과(result)의 검증을 수행하는 스마트 컨트랙트(smart contract)로 구성된다.
상기 사용자 단말(Holder)은 사용자가 증명하고자 하는 값과 동시에 발급자 단말로부터 만들어진 크리덴셜임을 증명하기 위해 내부적으로 생성된 증명(proof)과 결과(result)를 생성하여 스마트 컨트랙트를 호출한다.
또한, 상기 사용자 단말은 발급자 단말에서 발급한 크리덴셜을 토대로 사용자 단말이 증명하고자 하는 값에 대한 해쉬(Hash) 값을 생성하며, 상기 발급자 단말의 공개키를 통해 사용자의 서명을 검증하고, 검증된 서명의 해쉬(Hash) 값을 생성한다.
또한, 상기 발급자 단말(Issuer)은 서명에 사용되는 개인키와 대응하는 공개키를 상기 블록체인에 업로드하고, 상기 사용자 단말의 요청에 따라 사용자의 어드레스(Address)에 매핑이 된 정보를 포함하여 크리덴셜(Credential)을 발급한다.
또한, 상기 스마트 컨트랙트는 사용자가 증명하고자 하는 값의 해쉬(Hash) 값과 서명의 해쉬(Hash) 값을 비교하여 증명(proof)의 검증을 수행하고, 상기 증명하고자 하는 값의 해쉬(Hash) 값을 토대로 스마트 컨트랙트가 제시한 특정 조건을 만족하는지에 대해 검증을 수행한다. 또한, 상기 스마트 컨트랙트는 증명(proof)의 검증 수행 결과와, 특정 조건을 만족하는지에 대한 검증 수행 결과 값을 리턴(return)하여 결과(result)의 검증을 수행한다.
이상에서 설명한 바와 같이, 본 발명에 따른 블록체인 상에서 개인정보보호를 위한 영지식 증명 생성 및 검증 스마트 컨트랙트 생성 시스템과 그 방법은 사용자가 발급받은 신원 정보에 대한 증명(Proof)을 생성해줌으로써 사용자는 프레젠테이션(Presentation)을 그대로 드러내지 않으면서도 특정 조건에 해당하는 신원을 만족하고 있음을 증명할 수 있는 효과가 있다.
또한, 크리덴셜(Credential)의 증명(Proof)을 위한 입력 값에 제한이 없어 제이슨(json, Javascript Object Notation) 데이터의 입력이 가능하고, 인증서 형태를 입력으로 받을 수 있다.
또한, 영지식 증명(Proof) 생성시 cert 타입(type)을 지원하여 외부 데이터에 대한 값뿐만 아니라 발급자 단말(Issuer)에서 전달해준 값이 맞는지에 대한 검증도 진행하기 때문에 신뢰할 수 있는 기관에서 생성한 값임을 증명할 수 있어 데이터의 신뢰성을 증대할 수 있는 효과가 있다.
도 1은 DID(Decentralized Identity) 검증 과정을 나타내는 도면이다.
도 2는 본 발명의 실시 예에 따른 영지식 증명 생성 및 검증 스마트 컨트랙트 생성 시스템을 나타내는 구성도이다.
도 3은 본 발명의 실시 예에 따른 영지식 증명 생성 및 검증 스마트 컨트랙트 생성 방법을 나타내는 순서도이다.
도 4는 본 발명의 실시 예에 따른 영지식 증명 생성 및 검증 스마트 컨트랙트 생성 프로토콜을 나타내는 도면이다.
도 5는 본 발명의 실시 예에 따른 영지식 증명 생성 및 검증 스마트 컨트랙트 생성 알고리즘을 나타내는 도면이다.
도 6은 본 발명의 실시 예에 따른 온체인(on-chain) 검증 절차를 나타내는 도면이다.
도 7은 도 3의 증명(proof) 및 결과(result)를 검증하는 단계(S40)를 세부적으로 나타내는 순서도이다.
아래에서는 첨부한 도면을 참고로 하여 본 발명의 실시 예에 대하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상세히 설명한다. 그러나 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시 예에 한정되지 않는다. 그리고 도면에서 본 발명을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면부호를 붙였다.
명세서 전체에서, 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있는 것을 의미한다. 또한, 명세서에 기재된 "…부", "…기", "…모듈" 등의 용어는 적어도 하나의 기능이나 동작을 처리하는 단위를 의미하며, 이는 하드웨어나 또는 소프트웨어 또는 하드웨어 및 소프트웨어의 결합으로 구현될 수 있다.
이하, 첨부된 도면을 참조하여 본 발명의 바람직한 실시 예를 설명함으로써, 본 발명을 상세히 설명한다.
각 도면에 제시된 동일한 참조 부호는 동일한 부재를 나타낸다.
도 1은 DID(Decentralized Identity) 검증 과정을 나타내는 도면이고, 도 2는 본 발명의 실시 예에 따른 영지식 증명 생성 및 검증 스마트 컨트랙트 생성 시스템(10)을 나타내는 구성도이다.
본 발명의 실시 예에 따른 블록체인 상에서 개인정보보호를 위한 영지식 증명 생성 및 검증 스마트 컨트랙트 생성 시스템(10)은 종래의 영지식 증명 검증 컨트랙트 생성 도구인 조크라테스(ZoKrates)를 수정하여 사용자가 발급받은 신원 정보에 대한 증명(Proof)을 생성해줌으로써 사용자가 프레젠테이션(Presentation)에 대한 내용을 드러내지 않으면서도 발급자 단말(Issuer)(100)로부터 전달받은 정보를 검증할 수 있고, 누구나 증명(proof) 및 검증 컨트랙트를 생성할 수 있으며, 공개적으로 검증할 수 있기 때문에 블록체인(Blockchain)(300)의 투명한 생태계 유지가 가능하다.
본 발명의 실시 예에 따른 영지식 증명 생성 및 검증 스마트 컨트랙트 생성 시스템(10)은 도 2에서 도시된 바와 같이 크리덴셜(Credential)을 발급해주는 발급자 단말(Issuer)(100)과, 발급자 단말(Issuer)(100)에게 크리덴셜(Credential)의 발급을 요청하는 사용자 단말(Holder)(200)과, 블록체인(Blockchain)(300)과, 블록체인(Blockchain)(300) 상에서 상기 크리덴셜(Credential)의 증명(Proof)과 결과(result)의 검증을 수행하는 스마트 컨트랙트(smart contract)(400)로 구성된다.
발급자 단말(Issuer)(100)은 크리덴셜(Credential)의 발급을 위한 서명에 사용되는 개인키와 대응하는 공개키(public key)를 블록체인(Blockchain)(300)에 업로드한다. 또한, 발급자 단말(Issuer)(100)은 사용자의 어드레스(Address)에 매핑이 된 정보를 포함하여 크리덴셜(Credential)을 발급한다.
예를 들어, 상기 사용자 어드레스(Address)에 매핑이 된 정보는 사용자의 이름, 학위 및 대학교와 같은 신원정보가 될 수 있다.
또한, 사용자 단말(Holder)(200)은 자신이 증명하고자 하는 값과 동시에 발급자 단말(100)로부터 만들어진 크리덴셜임을 증명하기 위해 내부적으로 생성된 증명(proof)과 결과(result)를 생성하여 스마트 컨트랙트(400)를 호출한다.
즉, 사용자 단말(Holder)(200)은 발급자 단말(100)로부터 크리덴셜(Credential) 또는 증명서를 발급받고, 컨트랙트(contract)를 확인하여 자신이 제출해야 할 정보를 획득하고 그에 맞는 증명(Proof)과 검증에 대한 결과(result)를 생성하여 스마트 컨트랙트(400)로 제출한다.
여기에서, 상기 증명(Proof)은 영지식 증명(Zero-knowledge proof)을 기반으로 생성된다.
또한, 사용자 단말(Holder)(200)은 스마트 컨트랙트(400)에서의 영지식 증명을 사용하기 위해 검증 컨트랙트를 생성하여 블록체인(300)에 배포한다. 또한, 사용자 단말(200)은 블록체인(300)의 온체인(on-chain)에서 검증을 수행하기 위해 제이슨(json, Javascript Object Notation) 데이터를 입력으로 받아 자동으로 증명(proof)을 생성한다.
즉, 사용자 단말(200)은 발급자 단말(100)에서 발급한 크리덴셜을 토대로 사용자 단말(200)이 증명하고자 하는 값(이름, 학위, 대학교)에 대한 해쉬(Hash) 값을 생성하며, 발급자 단말(100)의 공개키를 통해 사용자의 서명을 검증하고, 검증된 서명의 해쉬(Hash) 값을 생성한다.
스마트 컨트랙트(400)에서는 블록체인(300)에 저장된 발급자 단말(Issuer)(100)의 공개키와 전달받은 증명(Proof) 및 결과(result)에 대한 검증을 수행한다.
즉, 스마트 컨트랙트(400)는 증명하고자 하는 값의 해쉬(Hash) 값과 서명의 해쉬(Hash) 값을 비교하여 증명(proof)의 검증을 수행한다. 또한, 스마트 컨트랙트(400)는 상기 증명하고자 하는 값의 해쉬(Hash) 값을 토대로 스마트 컨트랙트(400)가 제시한 특정 조건을 만족하는지에 대해 검증을 수행한다.
또한, 스마트 컨트랙트(400)는 증명(proof)의 검증 수행 결과와, 특정 조건을 만족하는지에 대한 검증 수행 결과 값을 리턴(return)하여 결과(result)의 검증을 수행한다.
이때, 스마트 컨트랙트(400)는 증명(proof)의 검증 수행 결과와, 특정 조건을 만족하는지에 대한 검증 수행 결과를 판단하여 모두 만족하는 경우에 트루(T, True) 결과값을 리턴한다.
예를 들어, 해당 사용자의 학위가 석사 이상인가? 라는 검증을 진행할 때 사용자 단말(200)은 사용자 자신의 대학교와 정확한 학위 정보(석사 또는 박사)를 드러내지 않고도 석사 이상임을 스마트 컨트랙트(400) 상에서 투명하게 검증할 수 있다.
도 3은 본 발명의 실시 예에 따른 영지식 증명 생성 및 검증 스마트 컨트랙트 생성 방법을 나타내는 순서도이고, 도 4는 본 발명의 실시 예에 따른 영지식 증명 생성 및 검증 스마트 컨트랙트 생성 프로토콜을 나타내는 도면이며, 도 5는 본 발명의 실시 예에 따른 영지식 증명 생성 및 검증 스마트 컨트랙트 생성 알고리즘을 나타내는 도면이다.
본 발명의 실시 예에 따른 영지식 증명 생성 및 검증 스마트 컨트랙트 생성 방법은 발급자 단말(Issuer)(100)에서 서명에 사용되는 개인키와 대응하는 공개키를 블록체인(300)에 업로드하는 단계(S10)와, 발급자 단말(100)이 사용자의 어드레스(Address)에 매핑이 된 정보를 포함하여 크리덴셜(Credential)을 발급하는 단계(S20)를 포함한다.
예를 들어, 상기 어드레스(Address)에 매핑이 된 정보는 사용자의 이름, 학위 및 대학교와 같은 정보가 될 수 있다.
또한, 본 발명의 실시 예에 따른 영지식 증명 생성 및 검증 스마트 컨트랙트 생성 방법은 사용자 단말(Holder)(200)에서 자신이 증명하고자 하는 값과 동시에 발급자 단말(100)로부터 만들어진 크리덴셜임을 증명하기 위해 내부적으로 생성된 증명(proof)과 결과(result)를 생성하여 스마트 컨트랙트(400)를 호출하는 단계(S30)를 포함한다.
즉, 상기 증명(proof)과 결과(result)를 생성하여 스마트 컨트랙트(400)를 호출하는 단계(S30)에서 발급자 단말(Issuer)(100)로부터 크리덴셜 또는 증명서를 받은 사용자 단말(Holder)(200)은 컨트랙트(contract)를 확인하여 자신이 제출해야 할 정보를 획득하고, 그에 맞는 증명(Proof)과 검증에 대한 결과를 생성하여 스마트 컨트랙트(400)로 제출한다.
이때, 상기 증명(Proof)은 영지식 증명(Zero-knowledge proof)을 기반으로 생성된다.
또한, 도 4에서 도시된 바와 같이 스마트 컨트랙트(400)에서의 영지식 증명을 사용하기 위해 검증 컨트랙트를 생성하여 블록체인(300)에 배포하고, 제이슨(json, Javascript Object Notation) 데이터를 입력으로 받아 자동으로 증명(proof)을 생성해 블록체인(300)의 온체인(on-chain)에서 검증을 수행한다.
종래의 영지식 증명 검증 컨트랙트 생성 도구인 조크라테스(ZoKrates)는 블록체인(300)의 외부 데이터인 제이슨(json) 형태를 입력으로 받지 못하고, 자체 생성한 코드를 통해 증명(proof)과 검증 컨트랙트를 생성한다.
반면에, 본 발명의 실시 예에 따른 영지식 증명 생성 및 검증 스마트 컨트랙트 생성 시스템(10)과 그 방법은 제이슨(json) 형태의 외부 데이터로 값들을 입력 받을 수 있으므로 종래에 사용하고 있던 DID의 크리덴셜(Credential)을 그대로 입력 받을 수 있는 장점이 있다.
이를 통해 사용자는 직접적으로 영지식 증명 검증 컨트랙트를 구현하지 않아도 되며, 영지식 증명(Proof)을 직접 만들 필요 없이 본 발명의 영지식 증명 생성 및 검증 스마트 컨트랙트 생성 시스템(10)과 그 방법을 통해 쉽게 구현할 수 있다.
또한, 본 발명의 실시 예에 따른 영지식 증명 생성 및 검증 스마트 컨트랙트 생성 시스템(10)과 그 방법은 도 5와 같이 솔리디티(solidity)를 통해 인증서 형태의 타입(type)을 지원해주며, 인증서 검증 함수를 제공한다.
따라서, 사용자가 직접적으로 컨트랙트 및 증명(Proof)을 만들 필요 없이 사용자 단말(200)에서 명령 함수만을 입력하여 도 5의 우측과 같이 블록체인(300)의 오프체인(off-chain)에서 크리덴셜(Credential) 또는 증명서 값을 통해 증명(Proof)을 생성하고 검증 컨트랙트 또한 제시할 수 있다.
또한, 제이슨(json) 데이터에 대한 발급자 단말(Issuer)(100)의 서명 검증 값까지 확인할 수 있는 장점이 있다.
이때, 스마트 컨트랙트(400)에서는 사용자의 구체적인 정보를 파악할 수 없으며, 스마트 컨트랙트(400)가 제시한 특정 조건을 만족하는지에 대한 여부를 파악할 수 있다.
또한, 본 발명의 실시 예에 따른 영지식 증명 생성 및 검증 스마트 컨트랙트 생성 방법은 스마트 컨트랙트(400)가 상기 (S10) 단계에서 업로드된 발급자 단말(Issuer)(100)의 공개키를 토대로 사용자 단말(200)이 생성한 증명(proof) 및 결과(result)를 검증하는 단계(S40)를 포함한다.
즉, 스마트 컨트랙트(400)에서는 저장된 발급자 단말(Issuer)(100)의 공개키와 전달받은 증명(Proof) 및 결과에 대한 검증을 수행할 수 있다.
도 6은 본 발명의 실시 예에 따른 온체인(on-chain) 검증 절차를 나타내는 도면이고, 도 7은 도 3의 증명(proof) 및 결과(result)를 검증하는 단계(S40)를 세부적으로 나타내는 순서도이다.
상기 증명(proof) 및 결과(result)를 검증하는 단계(S40)는 도 6 및 도 7에서 도시된 바와 같이 발급자 단말(100)에서 발급한 크리덴셜을 토대로 사용자 단말(200)이 증명하고자 하는 값(이름, 학위, 대학교)에 대한 해쉬(Hash) 값을 생성하는 단계(S41)와, 발급자 단말(100)의 공개키를 통해 사용자의 서명을 검증하고, 검증된 서명의 해쉬(Hash) 값을 생성하는 단계(S42)와, 상기 증명하고자 하는 값의 해쉬(Hash) 값과 서명의 해쉬(Hash) 값을 비교하여 증명(proof)을 검증하는 단계(S43)를 포함한다.
또한, 상기 증명하고자 하는 값의 해쉬(Hash) 값을 토대로 스마트 컨트랙트(400)가 제시한 특정 조건을 만족하는지에 대해 검증하는 단계(S44)와, 상기 (S43) 단계 및 (S44) 단계의 결과값을 리턴(return)하여 결과(result)를 검증하는 단계(S45)를 포함한다. 즉, 상기 결과(result)를 검증하는 단계(S45)는 상기 (S43) 단계 및 (S44) 단계의 결과를 모두 만족하는지 여부를 판단하여 모두 만족하는 경우에 결과값을 리턴한다.
이때, 상기 (S43) 단계와, (S44) 단계 및 (S45) 단계는 도 6에서 도시된 바와 같이 영지식 증명(Zero-knowledge proof)을 기반으로 검증을 수행한다. 즉, 검증의 수행 결과로 T(참, True) 또는 F(거짓, False) 여부 외에는 사용자의 신원 정보가 노출되지 않는다.
이와 같이 본 발명의 실시 예에 따른 영지식 증명 생성 및 검증 스마트 컨트랙트 생성 시스템(10)과 그 방법은 이름, 주민번호, 주거지역, 자격 현황, 직업 현황, 자산 현황 등과 같은 사용자의 신원내용을 확인하는 모든 곳에서 사용자의 프라이버시를 유지하며, 발급자 단말(100)이 발급하는 정보를 검증할 수 있는 효과가 있다.
또한, 현재 DID 시장이 활발히 성장하고 있는 추세에 발급받은 크리덴셜(Credential)에 대한 내용을 드러내지 않으면서도 발급자 단말(200)로부터 전달받은 정보를 검증할 수 있고, DID와 연동이 되어 구현가능한 장점이 있다.
또한, 누구나 증명(proof) 및 검증 컨트랙트를 생성할 수 있으며, 공개적으로 검증할 수 있기 때문에 블록체인(Blockchain)(300)의 투명한 생태계 유지가 가능한 효과가 있다.
이상으로 본 발명에 관한 바람직한 실시예를 설명하였으나, 본 발명은 상기 실시예에 한정되지 아니하며, 본 발명의 실시예로부터 당해 발명이 속하는 기술분야에서 통상의 지식을 가진 자에 의한 용이하게 변경되어 균등하다고 인정되는 범위의 모든 변경을 포함한다.
10 : 영지식 증명 생성 및 검증 스마트 컨트랙트 생성 시스템
100 : 발급자 단말(Issuer)
200 : 사용자 단말(Holder)
300 : 블록체인(Blockchain)
400 : 스마트 컨트랙트(smart contract)

Claims (9)

  1. 발급자 단말(Issuer)에서 서명에 사용되는 개인키와 대응하는 공개키를 블록체인에 업로드하는 단계(S10);
    상기 발급자 단말이 사용자의 어드레스(Address)에 매핑이 된 정보를 포함하여 크리덴셜(Credential)을 발급하는 단계(S20);
    사용자 단말(Holder)이 자신이 증명하고자 하는 값과 동시에 발급자 단말로부터 만들어진 크리덴셜임을 증명하기 위해 내부적으로 생성된 증명(proof)과 결과(result)를 생성하여 스마트 컨트랙트를 호출하는 단계(S30); 및
    스마트 컨트랙트가 상기 블록체인에 업로드된 공개키를 토대로 사용자 단말이 생성한 증명(proof) 및 결과(result)를 검증하는 단계(S40)를 포함하고,
    상기 스마트 컨트랙트를 호출하는 단계(S30)는,
    증명(proof)과 결과(result)가 영지식 증명(Zero-knowledge proof)을 기반으로 생성되고, 스마트 컨트랙트에서의 영지식 증명(Zero-knowledge proof)을 사용하기 위해 검증 컨트랙트를 생성하여 블록체인에 배포하고, 상기 블록체인의 온체인(on-chain)에서 검증을 수행하기 위해 제이슨(json, Javascript Object Notation) 데이터를 입력으로 받아 증명(proof)을 생성하며,
    상기 검증하는 단계(S40)는,
    블록체인의 온체인(on-chain)에서 스마트 컨트랙트가 검증을 수행하여,
    검증결과가 블록체인상에 공개되어 누구나 검증결과를 확인할 수 있고, 검증결과에 대한 투명성을 제공하는 것을 특징으로 하는 영지식 증명 생성 및 검증 스마트 컨트랙트 생성 방법.
  2. 삭제
  3. 삭제
  4. 제1항에 있어서,
    상기 증명(proof) 및 결과(result)를 검증하는 단계(S40)는
    상기 발급자 단말에서 발급한 크리덴셜을 토대로 사용자 단말이 증명하고자 하는 값에 대한 해쉬(Hash) 값을 생성하는 단계(S41)와,
    상기 발급자 단말의 공개키를 통해 사용자의 서명을 검증하고, 검증된 서명의 해쉬(Hash) 값을 생성하는 단계(S42)와,
    상기 증명하고자 하는 값의 해쉬(Hash) 값과 서명의 해쉬(Hash) 값을 비교하여 증명(proof)을 검증하는 단계(S43)와,
    상기 증명하고자 하는 값의 해쉬(Hash) 값을 토대로 스마트 컨트랙트가 제시한 특정 조건을 만족하는지에 대해 검증하는 단계(S44) 및
    상기 (S43) 단계의 증명(proof) 검증 결과와, (S44) 단계의 특정 조건에 대한 검증 결과값을 리턴(return)하여 결과(result)를 검증하는 단계(S45)를 포함하는 영지식 증명 생성 및 검증 스마트 컨트랙트 생성 방법.
  5. 블록체인(Blockchain);
    발급자 단말(Issuer)에게 크리덴셜(Credential)의 발급을 요청하고, 사용자가 증명하고자 하는 값과 동시에 발급자 단말로부터 만들어진 크리덴셜임을 증명하기 위해 내부적으로 생성된 증명(proof)과 결과(result)를 생성하여 스마트 컨트랙트를 호출하는 사용자 단말(Holder);
    서명에 사용되는 개인키와 대응하는 공개키를 상기 블록체인에 업로드하고, 상기 사용자 단말의 요청에 따라 사용자의 어드레스(Address)에 매핑이 된 정보를 포함하여 크리덴셜(Credential)을 발급하는 발급자 단말(Issuer); 및
    상기 블록체인(Blockchain) 상에서 크리덴셜(Credential)의 증명(Proof)과 결과(result)의 검증을 수행하는 스마트 컨트랙트(smart contract)를 포함하고,
    상기 사용자 단말은,
    솔리디티(solidity)를 이용하여 인증서 타입(type)을 제공하며, 블록체인의 오프체인(off-chain)에서 크리덴셜(Credential) 값을 통해 증명(Proof)을 생성하고, 영지식 증명(Zero-knowledge proof)을 기반으로 검증 컨트랙트를 생성하고, 블록체인의 온체인(on-chain)에서 검증을 수행하기 위해 제이슨(json, Javascript Object Notation) 데이터를 입력으로 받아 증명(proof)을 생성하며,
    상기 스마트 컨트랙트는,
    상기 블록체인의 온체인(on-chain)에서 검증을 수행하여,
    검증결과가 블록체인상에 공개되어 누구나 검증결과를 확인할 수 있고, 검증결과에 대한 투명성을 제공하는 것을 특징으로 하는 영지식 증명 생성 및 검증 스마트 컨트랙트 생성 시스템.
  6. 삭제
  7. 삭제
  8. 제5항에 있어서,
    상기 사용자 단말은
    발급자 단말에서 발급한 크리덴셜을 토대로 사용자 단말이 증명하고자 하는 값에 대한 해쉬(Hash) 값을 생성하며, 상기 발급자 단말의 공개키를 통해 사용자의 서명을 검증하고, 검증된 서명의 해쉬(Hash) 값을 생성하는 것을 특징으로 하는 영지식 증명 생성 및 검증 스마트 컨트랙트 생성 시스템.
  9. 제5항에 있어서,
    상기 스마트 컨트랙트는
    사용자가 증명하고자 하는 값의 해쉬(Hash) 값과 서명의 해쉬(Hash) 값을 비교하여 증명(proof)의 검증을 수행하고,
    상기 증명하고자 하는 값의 해쉬(Hash) 값을 토대로 스마트 컨트랙트가 제시한 특정 조건을 만족하는지에 대해 검증을 수행하며,
    상기 증명(proof)의 검증 수행 결과와, 특정 조건을 만족하는지에 대한 검증 수행 결과 값을 리턴(return)하여 결과(result)의 검증을 수행하는 것을 특징으로 하는 영지식 증명 생성 및 검증 스마트 컨트랙트 생성 시스템.





KR1020200173535A 2020-12-11 2020-12-11 블록체인 상에서 개인정보보호를 위한 영지식 증명 생성 및 검증 스마트 컨트랙트 생성 시스템과 그 방법 KR102426736B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020200173535A KR102426736B1 (ko) 2020-12-11 2020-12-11 블록체인 상에서 개인정보보호를 위한 영지식 증명 생성 및 검증 스마트 컨트랙트 생성 시스템과 그 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020200173535A KR102426736B1 (ko) 2020-12-11 2020-12-11 블록체인 상에서 개인정보보호를 위한 영지식 증명 생성 및 검증 스마트 컨트랙트 생성 시스템과 그 방법

Publications (2)

Publication Number Publication Date
KR20220083931A KR20220083931A (ko) 2022-06-21
KR102426736B1 true KR102426736B1 (ko) 2022-08-01

Family

ID=82221395

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200173535A KR102426736B1 (ko) 2020-12-11 2020-12-11 블록체인 상에서 개인정보보호를 위한 영지식 증명 생성 및 검증 스마트 컨트랙트 생성 시스템과 그 방법

Country Status (1)

Country Link
KR (1) KR102426736B1 (ko)

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102157208B1 (ko) 2018-11-05 2020-09-18 충남대학교산학협력단 스마트 컨트랙트 실행 장치 및 그 장치에서 취약점 탐지 방법
KR102250081B1 (ko) * 2019-02-22 2021-05-10 데이터얼라이언스 주식회사 공개 원장 기반 크리덴셜 자율적 운영 시스템 및 방법

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
Diogo Serranito 외 3명, "Blockchain Ecosystem for Verifiable Qualifications", 2020 2nd Conference on Blockchain Research &Applications for Innovative Networks and Services (BRAINS), IEEE, (2020.10.14.)*
Martin Schaffner, "Analysis and Evaluation of Blockchain-based Self-Sovereign Identity Systems", Technical University of Munich (2019.)*
Shuang Wu, "Evaluation and Improvement of Two Blockchain Based E-voting System: Agora and Proof of Vote", Edited by David Galindo. University of Birmingham (2018.)*

Also Published As

Publication number Publication date
KR20220083931A (ko) 2022-06-21

Similar Documents

Publication Publication Date Title
KR101883156B1 (ko) 인증 시스템 및 방법과 이를 수행하기 위한 사용자 단말, 인증 서버 및 서비스 서버
US10735182B2 (en) Apparatus, system, and methods for a blockchain identity translator
EP3732857B1 (en) Apparatus and method for decentralized-identifier creation
US11329981B2 (en) Issuing, storing and verifying a rich credential
US9992189B2 (en) Generation and validation of derived credentials
US10382427B2 (en) Single sign on with multiple authentication factors
US10404680B2 (en) Method for obtaining vetted certificates by microservices in elastic cloud environments
US7698736B2 (en) Secure delegation using public key authentication
KR102267735B1 (ko) 영지식 증명을 이용한 탈중앙화 신원증명 시스템 및 방법
US20220020020A1 (en) Methods, systems, and devices for managing digital assets
CN115460019B (zh) 基于数字身份的目标应用提供方法和装置、设备和介质
US7287156B2 (en) Methods, systems and computer program products for authentication between clients and servers using differing authentication protocols
US20150341342A1 (en) Automated step-up digital certificate installation process
CN112035870A (zh) 去中心化身份系统中隐藏用户具体年龄的方法和计算机可读介质
CN111901106A (zh) 去中心化身份系统中隐藏用户真实公钥的方法和计算机可读介质
CN112035814B (zh) 区块链中基于虹膜识别生成分布式身份的方法和计算机可读介质
CN112035813B (zh) 区块链中基于指纹识别分层生成分布式身份的方法和计算机可读介质
US11863689B1 (en) Security settlement using group signatures
KR102426736B1 (ko) 블록체인 상에서 개인정보보호를 위한 영지식 증명 생성 및 검증 스마트 컨트랙트 생성 시스템과 그 방법
CN113647080A (zh) 以密码保护的方式提供数字证书
WO2022205961A1 (zh) 一种更新区块链域名配置的方法和装置
JP7222436B2 (ja) 保証制御方法、情報処理装置および保証制御プログラム
KR20230020735A (ko) 스마트 컨트랙트 지갑 기반 탈중앙화 신원 키 복구 시스템 및 방법
JP2023132934A (ja) 認証情報署名システム、認証装置、認証情報署名プログラム及び認証情報署名方法
Beuchat et al. A Digital Identity in the Hands of Swiss Citizens

Legal Events

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