KR102295113B1 - 영지식증명을 이용한 블록체인 기반의 전자 계약 관리 시스템 및 그 방법 - Google Patents

영지식증명을 이용한 블록체인 기반의 전자 계약 관리 시스템 및 그 방법 Download PDF

Info

Publication number
KR102295113B1
KR102295113B1 KR1020200157123A KR20200157123A KR102295113B1 KR 102295113 B1 KR102295113 B1 KR 102295113B1 KR 1020200157123 A KR1020200157123 A KR 1020200157123A KR 20200157123 A KR20200157123 A KR 20200157123A KR 102295113 B1 KR102295113 B1 KR 102295113B1
Authority
KR
South Korea
Prior art keywords
contract
electronic
contractor
information
electronic contract
Prior art date
Application number
KR1020200157123A
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 KR1020200157123A priority Critical patent/KR102295113B1/ko
Application granted granted Critical
Publication of KR102295113B1 publication Critical patent/KR102295113B1/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
    • G06Q10/00Administration; Management
    • G06Q10/10Office automation; Time management
    • 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/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
    • H04L2209/38
    • 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

Abstract

본 발명은 전자 계약서를 작성하고 이를 검증하는 전자 계약 관리 시스템 및 그에 관한 방법에 관한 것이다.
본 발명에 따른 전자 계약 관리 시스템에 의해 수행되는 전자 계약 관리 방법은, 계약자로부터의 요청에 기초하여 전자 계약서 작성을 시작하고, 계약 시작 정보와 계약자로부터의 입력에 따른 계약 관련 정보 및 상기 계약 시작 정보와 상기 계약 관련 정보의 적어도 일부의 해시 값 중 적어도 하나를 블록체인에 기록하는 제 1 기록 단계; 계약자들에게 전자 서명을 요청하거나 또는 계약자들로부터의 전자 서명 요청을 수락하는 단계; 전자 계약서에 계약자의 개인키를 이용하여 생성된 전자 서명과 전자 계약서의 검증에 이용될 부가 정보를 추가하여 최종 전자 계약서를 생성하는 단계; 계약 완료 정보를 블록체인에 기록하는 제 2 기록 단계; 및 전자 서명이 완료된 상기 최종 전자 계약서를 계약자에게 전송하는 단계를 포함할 수 있다.

Description

영지식증명을 이용한 블록체인 기반의 전자 계약 관리 시스템 및 그 방법 {ELECTRONIC CONTRACT MANAGEMENT SYSTEM USING ZERO KNOWLEDGE PROOF BASED ON BLOCKCHAIN, AND METHOD THEREOF}
본 발명은 전자 계약서를 작성하고 이를 검증하는 전자 계약 관리 시스템 및 그에 관한 방법에 관한 것이다.
종래의 종이 계약서를 대체하는 전자 계약서 및 이에 대한 전자 서명 기술이 제안되어 왔으며, 예를 들면, 공개특허공보 제10-2002-0015544호(2002. 2. 28. 공개)와 같이, 사용자 단말기, 사용자에 의해 작성된 전자 문서를 관리하는 서버, 전자 문서에 대한 서명을 관리하는 서버, 사용자에 대한 인증을 처리하는 인증 센터 시스템으로 이루어지는 전자 계약 시스템과 같이, 중앙 집중적인 서명 관리 및 사용자 인증 시스템을 이용한 전자 계약 시스템이 있다.
그러나 종래의 중앙 집중적인 서명 관리 및 사용자 인증 시스템을 이용한 전자 계약 시스템에서는, 시스템에 대한 불법적인 공격 또는 시스템의 오류에 의해, 전자 계약이 위/변조되거나, 전자 계약의 비밀 정보가 유출되거나, 전자 계약의 서명의 검증이 실패하는 등의 문제의 발생 가능성이 있다.
이에 본 발명의 전자 계약 관리 시스템 및 방법은, 전자 계약의 관리의 신뢰성을 담보할 수 있고, 계약자가 전자 계약서에서 필요에 따라 선택한 정보만을 공개한 검증용의 전자 계약서에 대해서도 신뢰 가능한 검증이 가능한, 전자 계약 관리 시스템 및 그 방법을 제공하는 것을 해결 과제로 한다.
상기 과제를 해결하기 위하여, 본 발명에 따른 전자 계약 관리 시스템에 의해 수행되는 전자 계약 관리 방법은, 계약자로부터의 요청에 기초하여 전자 계약서 작성을 시작하고, 계약 시작 정보와 계약자로부터의 입력에 따른 계약 관련 정보 및 상기 계약 시작 정보와 상기 계약 관련 정보의 적어도 일부의 해시 값 중 적어도 하나를 블록체인에 기록하는 제 1 기록 단계; 계약자들에게 전자 서명을 요청하거나 또는 계약자들로부터의 전자 서명 요청을 수락하는 단계; 전자 계약서에 계약자의 개인키를 이용하여 생성된 전자 서명과 전자 계약서의 검증에 이용될 부가 정보를 추가하여 최종 전자 계약서를 생성하는 단계; 계약 완료 정보를 블록체인에 기록하는 제 2 기록 단계; 및 전자 서명이 완료된 상기 최종 전자 계약서를 계약자에게 전송하는 단계를 포함할 수 있다.
일 실시예에 있어서, 상기 최종 전자 계약서를 생성하는 단계에서는, 전자 계약서에 상기 계약자의 개인키를 이용한 영지식증명 (Zero Knowledge Proof) 에 기초한 전자 서명이 추가됨으로써 상기 최종 전자 계약서가 생성될 수 있다.
일 실시예에 있어서, 상기 계약 시작 정보는, 계약 번호, 계약자의 식별정보, 계약서 작성의 시작 시점 중 적어도 하나 또는 그의 해시 값을 포함하고, 상기 계약 완료 정보는, 계약 번호, 계약 완료 시점 중 적어도 하나 또는 그의 해시 값을 포함할 수 있다. 또한, 상기 전자 계약서의 검증에 이용될 부가 정보는, 계약자의 식별정보, 전자 서명 시점, 계약 번호 중 적어도 하나를 포함할 수 있다.
일 실시예에 있어서, 본 발명에 따른 전자 계약 관리 시스템에 의해 수행되는 전자 계약 관리 방법은, 상기 제 1 기록 단계 이전에, 계약자의 요청에 기초하여, 계약자의 공개키와 계약자의 식별정보를 블록체인에 등록하는 단계; 신원 확인 기관의 요청에 기초하여, 블록체인으로부터 계약자의 식별정보와 계약자의 공개키를 획득하는 단계; 및 계약자의 식별정보와 계약자의 공개키에 기초하여 계약자의 개인키로 서명된 계약자의 식별정보가 검증되고, 신원 확인 증명서가 발급되면, 신원 확인 증명서의 발급에 관한 정보를 블록체인에 기록하는 단계를 더 포함할 수 있다.
일 실시예에 있어서, 상기 계약자의 식별정보는 계약자의 DID (Decentralized ID) 이고, 상기 신원 확인 증명서의 발급에 관한 정보는, 신원 확인 증명서의 발급 번호, 발급 일자, 신원 확인 기관의 식별정보 및 신원 확인 증명서의 당사자의 식별정보 중 적어도 하나를 포함할 수 있다.
일 실시예에 있어서, 본 발명에 따른 전자 계약 관리 시스템에 의해 수행되는 전자 계약 관리 방법은, 상기 최종 전자 계약서를 계약자에게 전송하는 단계 이후에, 상기 최종 전자 계약서의 속성들 중에서 일부의 속성만이 선택적으로 공개되도록 상기 최종 전자 계약서가 처리되고, 그 처리된 계약서에 계약자의 개인키를 이용한 영지식증명에 기초한 전자 서명이 추가됨으로써 생성된 검증용 전자 계약서를 계약자로부터 수신하는 단계; 및 상기 검증용 전자 계약서를 계약자의 공개키를 이용하여 검증함으로써, 상기 검증용 전자 계약서를 검증하는 단계를 더 포함할 수 있다.
일 실시예에 있어서, 본 발명에 따른 전자 계약 관리 시스템에 의해 수행되는 전자 계약 관리 방법은, 상기 검증용 전자 계약서를 수신하는 단계 이후, 그리고 상기 검증용 전자 계약서를 검증하는 단계 이전에, 상기 검증용 전자 계약서에 기록되어 있는 상기 부가 정보를 이용하여, 블록체인에서 계약자의 정보, 계약에 관한 정보 및 계약자의 공개키 중 적어도 하나를 검색하여 획득하고, 그 획득한 정보를 이용하여 검증용 전자 계약서의 전자 서명의 유효성에 대한 사전 검증을 수행하는 단계를 더 포함할 수 있다.
일 실시예에 있어서, 본 발명에 따른 전자 계약 관리 시스템에 의해 수행되는 전자 계약 관리 방법은, 상기 검증용 전자 계약서를 수신하는 단계 이후, 그리고 상기 검증용 전자 계약서를 검증하는 단계 이전에, 계약자로부터 신원 확인 증명서를 수신하는 단계; 상기 신원 확인 증명서에 기록된 신원 확인 증명서의 발급 번호와 신원 확인 기관 식별정보 (DID) 중 적어도 하나를 이용하여, 블록체인에서 신원 확인 증명서의 발급 이력 정보, 신원 확인 기관의 식별정보 및 신원 확인 기관의 공개키 중 적어도 하나를 검색하여 획득하고, 그 획득한 정보를 이용하여 상기 신원 확인 증명서의 유효성을 검증하는 단계; 및 검증된 신원 확인 증명서에 기록된 신원 확인 증명서의 대상자가 상기 사전 검증이 완료된 검증용 전자 계약서의 계약자인지 여부를 확인하는 단계를 더 포함할 수 있다.
일 실시예에 있어서, 상기 블록체인은 복수의 노드들과 연동되고, 상기 노드들은 상기 블록체인의 원장을 공유하고, 상기 노드들은 미리 규정된 합의 알고리즘에 기초하여 이력 또는 이력 증명서에 관한 정보를 포함하는 트랜잭션 또는 상기 트랜잭션을 적어도 포함하는 블록의 유효성을 검증한 후, 상기 트랜잭션을 포함하는 상기 블록을 상기 블록체인에 등록할 수 있다.
또 다른 실시예에 있어서, 본 발명에 따른 전자 계약 관리 시스템은, 메모리; 및 상기 메모리에 연결된 적어도 하나의 프로세서를 포함하며, 상기 적어도 하나의 프로세서는: 계약자로부터의 요청에 기초하여 전자 계약서 작성을 시작하고, 계약 시작 정보와 계약자로부터의 입력에 따른 계약 관련 정보 및 상기 계약 시작 정보와 상기 계약 관련 정보의 적어도 일부의 해시 값 중 적어도 하나를 블록체인에 기록하는 제 1 기록 단계를 수행하고, 계약자들에게 전자 서명을 요청하거나 또는 계약자들로부터의 전자 서명 요청을 수락하는 단계를 수행하고, 전자 계약서에 계약자의 개인키를 이용하여 생성된 전자 서명과 전자 계약서의 검증에 이용될 부가 정보를 추가하여 최종 전자 계약서를 생성하는 단계를 수행하고, 계약 완료 정보를 블록체인에 기록하는 제 2 기록 단계를 수행하고, 그리고 전자 서명이 완료된 상기 최종 전자 계약서를 계약자에게 전송하는 단계를 수행하도록, 구성될 수 있다.
또 다른 실시예에 있어서, 본 발명에 따른 전자 계약 관리 시스템의 적어도 하나의 프로세서에 의해 실행 가능한 코드를 저장하는 컴퓨터 판독 가능 저장 매체에 저장된 프로그램으로서, 상기 코드는: 계약자로부터의 요청에 기초하여 전자 계약서 작성을 시작하고, 계약 시작 정보와 계약자로부터의 입력에 따른 계약 관련 정보 및 상기 계약 시작 정보와 상기 계약 관련 정보의 적어도 일부의 해시 값 중 적어도 하나를 블록체인에 기록하는 제 1 기록 단계를 수행하기 위한 코드; 계약자들에게 전자 서명을 요청하거나 또는 계약자들로부터의 전자 서명 요청을 수락하는 단계를 수행하기 위한 코드; 전자 계약서에 계약자의 개인키를 이용하여 생성된 전자 서명과 전자 계약서의 검증에 이용될 부가 정보를 추가하여 최종 전자 계약서를 생성하는 단계를 수행하기 위한 코드; 계약 완료 정보를 블록체인에 기록하는 제 2 기록 단계를 수행하기 위한 코드; 그리고 전자 서명이 완료된 상기 최종 전자 계약서를 계약자에게 전송하는 단계를 수행하기 위한 코드를 포함할 수 있다. 상기한 본 발명의 프로그램은, 본 발명에 따른 전자 계약 관리 시스템에 의해 수행되는 방법에 기재된 각 단계의 처리를 수행하기 위한 코드를 포함하는 프로그램이 될 수 있다.
또 다른 실시예에 따른 본 발명의 장치의 적어도 하나의 프로세서에 의해 실행 가능한 코드가 저장된 컴퓨터 판독 가능 저장 매체는, 상기 코드가 실행될 때 본 발명에 따른 전자 계약 관리 시스템에 의해 수행되는 방법에 기재된 각 단계의 처리를 수행하기 위한 코드를 저장하는, 컴퓨터 판독 가능 저장 매체가 될 수 있다.
본 발명의 전자 계약 관리 시스템 및 그에 관한 방법에 의하면, 전자 계약 과정의 중요 이력 및 확정된 최종 계약서에 관한 정보를 블록체인에 기록함으로써, 전자 계약의 위/변조가 방지되고 계약 당사자 간에 신뢰성 높은 전자 계약 절차가 진행될 수 있게 된다. 또한 계약자 정보와 그의 신원 확인 증명 정보 그리고 전자 계약서와 그 전자 서명의 검증에 필요한 정보도 블록체인에 의해 기록 및 관리되고, 이를 이용하여 검증을 수행할 수 있으므로, 전자 계약에 대한 투명한 관리가 가능하며 계약의 신뢰성을 더욱 향상시킬 수 있다. 본 발명에서는 이와 같이 전자 계약에 관한 정보를 블록체인에 저장/등록함으로써 저장/등록 시점을 증명할 수 있고, 저장/등록된 정보의 변경 불가능성 (Immutability) 을 제공하여 전자 계약 정보의 신뢰성을 높일 수 있다.
또한, 본 발명의 전자 계약 관리 시스템 및 그에 관한 방법에 의하면, 영지식증명 기반의 전자 서명을 이용하여 전자 계약서를 전자 서명함으로써, 검증용 전자 계약서에서는 계약자의 선택에 따라 전자 계약서의 내용 중 일부만을 공개하고도, 그 검증용 전자 계약서 및 전자 서명의 유효성을 증명할 수 있도록 한다. 따라서, 검증용 전자 계약서에는 비밀로 유지될 필요가 있는 속성들이 은닉될 수 있다.
도 1 은 본 발명의 일 실시예에 따른 전자 계약 관리 시스템을 나타내는 도면이다.
도 2 는 본 발명의 일 실시예에 따른 신원 확인 증명서의 발급 절차를 설명하기 위한 참고도이다.
도 3 은 본 발명의 일 실시예에 따른 전자 계약 및 그의 검증 절차를 설명하기 위한 참고도이다.
도 4 는 본 발명의 일 실시예에 따른 전자 계약 절차를 설명하기 위한 참고도이다.
도 5 는 본 발명의 일 실시예에 따른 전자 계약서를 설명하기 위한 참고도이다.
도 6 은 본 발명의 일 실시예에 따른 전자 계약 검증 절차를 설명하기 위한 참고도이다.
도 7 은 본 발명의 각 장치의 블록도를 나타내는 도면이다.
이하에서는 본 발명의 다양한 실시예들을 설명할 것이나, 본 발명의 기술적 사상은 이에 한정되지 않고 당업자에 의해 변형되어 다양하게 실시될 수 있음은 물론이다. 또한, 본 명세서에서 사용한 용어는 본 발명의 개념 및 그에 따른 실시예들을 설명하기 위해 사용된 것으로, 본 발명을 해당 용어의 사전적 또는 어구적 의미만으로 한정하려는 의도가 아니다. 예를 들어, 본 명세서에서 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함할 수 있다. 또한, 본 명세서에서, "포함하다" 또는 "가지다" 등의 용어는 어느 구성, 단계, 동작, 처리 또는 이들을 조합한 것의 존재를 의미하며, 문맥상 명백하게 다르게 뜻하지 않는 한 다른 구성, 단계, 동작, 처리의 존재 또는 부가 가능성을 배제하지 않는다.
본 명세서에서 달리 언급되지 않는다면, "접속되는" 또는 "연결되는" 은 하나의 엘리먼트/특징이 다른 엘리먼트/특징과 직접적으로 접속 또는 연결되는 것 또는 타 엘리먼트/특징을 개재하여 간접적으로 접속 또는 연결되는 것을 포함할 수 있고, 반드시 기계적으로 바로 접속 또는 연결되는 것만을 의미하는 것은 아니다. 따라서, 도면들에 도시된 다양한 모식도들은 엘리먼트들과 컴포넌트들의 예시적인 배열들을 도시하지만, 추가의 중재 엘리먼트들, 디바이스들, 특징들 또는 컴포넌트들이 (도시된 엘리먼트들의 기능이 악영향을 받지 않는다고 가정할 때) 실제 실시형태에서 존재할 수도 있다.
또한, 본 명세서에서 "전송하는" 또는 "수신하는" 은 전송자와 수신자 간에 정보를 직접 전송 또는 수신하는 것뿐만 아니라, 달리 언급되지 않는다면 타 객체를 개재하여 정보를 전송 또는 수신하는 것을 포함할 수 있다.
도 1 은 본 발명의 전자 계약 관리 시스템 (100) 및 이와 접속하는 사용자 단말 (200) 및/또는 서버 (300) 그리고 블록 체인 (1) 을 나타내는 블록도이다.
본 발명에서는 블록체인 엔진 (10) 과 연동하여 전자 계약 관리에 특화된 서비스를 제공하기 위한 전자 계약 관리 시스템 (100) 이 제공된다. 전자 계약 관리 시스템 (100) 은 블록체인 엔진 (10) 과 연동하여 이하에서 설명하는 블록체인에 대한 처리를 수행할 수 있고, 해당 처리를 트리거하는 인터페이스를 사용자 단말 (200) 및/또는 서버 (300) 에 제공할 수 있다.
도 1 에서는 전자 계약 관리 시스템 (100) 이 블록체인 엔진 (10) 의 기능을 포함하는 것으로 도시되었으나, 전자 계약 관리 시스템 (100) 과 별도의 블록체인 엔진 (10) 이 존재하고, 상호 접속되는 것으로 구현되어도 무관하다. 전자 계약 관리 시스템 (100) 은 하나 또는 그 이상의 서버/장치의 형태로 구현될 수 있고, 필요에 따라 노드가 포함될 수도 있는 복수의 서버/장치에 분산되어 구현될 수도 있다.
본 발명에 따른 전자 계약 관리 시스템 (100) 은 사용자 단말 (200) 이나 서버 (300) 또는 이들이 접속되어 있는 장치/노드들 중 적어도 하나와 접속될 수 있다. 일 실시예에 있어서 사용자 단말 (200) 을 사용하는 사용자는, 본 발명에서 설명하는 전자 계약의 계약 당사자나 그로부터 적법한 권한을 위임받고 정보를 전달받은 수임인, 신원 확인 기관 또는 전자 계약을 검증하고자 하는 검증자 등이 될 수 있다. 또한, 서버 (300) 는 일 실시예에 있어서 계약 당사자나 그 수임인이나 신원 확인 기관 또는 검증자가 접속한 서버가 될 수 있다. 즉, 이하에서 계약 당사자나 그 수임인 (이하 통칭하여 '계약자'라고 한다), 신원 확인 기관 또는 검증자를 주체로 하여 설명하는 처리는 이들이 사용하는 사용자 단말 (200) 및/또는 서버 (300) 에 의해 수행되는 처리가 될 수 있다. 또한, 당해 처리는 필요에 따라 사용자 단말 (200) 및/또는 서버 (300) 가 접속하는 전자 계약 관리 시스템 (100) 을 통하여 수행될 수도 있다.
본 발명의 전자 계약 관리 시스템 (100) 은 블록체인 엔진 (10) 과 연동하기 위한 블록체인 엔진 연계 모듈을 포함할 수 있고, 또한 사용자 단말 (200), 서버 (300) 와 각각 연동하기 위한 연계 API 를 제공할 수 있다.
본 발명에 따른 블록체인 엔진 (10) 은 블록체인 네트워크와 블록체인 채널을 관리하고, 노드의 인증 등 블록체인의 기본 기능을 지원하는 엔진이며, 본 발명의 전자 계약 기능을 지원할 수 있다. 블록체인 엔진 (10) 은 블록체인 시스템과 이에 연동할 수 있는 API 들을 포함할 수 있으며, 블록체인 분야의 알려진 블록체인 기술들을 지원하는 다양한 엔진이 될 수 있다. 블록체인 엔진 (10) 은 퍼블릭 블록체인 (비트코인, 이더리움, EOS 등) 혹은 콘소시엄 블록체인 (하이퍼레저, EEA 등) 등을 지원할 수 있다. 블록체인 엔진 (10) 은, 예를 들면, 사용자 확인 기능, 블록체인 채널 기능, 블록체인 네트워크 구성 기능, ACL(Access Control Logic), 이벤트 리스너, Docker Swarm, 블록체인 엔진 I/F(SDK, REST APIs) 등의 기능을 선택적으로 지원할 수 있으며, 이에 한정되지 않고 알려진 블록체인 코어 모듈의 기능을 지원하는 엔진 (10) 이 될 수 있다. 본 발명에서 블록체인 엔진 (10) 의 기능으로는 예를 들어, 인증용 PKI, 분산 원장 처리 엔진, P2P 통신 라이브러리, 합의 알고리즘, 스마트 계약, 노드 서비스 프로세스와 같이 블록체인을 운용하기 위해서 필요한 기능들이 구현될 수 있으며, 예를 들어 ㈜ 마크애니의 AnyBlock 을 포함할 수 있다.
본 발명의 일 실시예에 따른 전자 계약 관리 시스템 (100) 은 블록체인 엔진 (10) 을 통해 블록체인의 노드들과 연동될 수 있다. 블록체인의 노드들은 블록체인 원장을 보유, 유지, 관리하며, 이하 설명하는 전자 계약 및/또는 전자 계약의 검증과 관련하여 새로 발생한 트랜잭션을 수신하는 처리, 이를 포함하는 블록을 생성하는 처리, 그 생성한 블록을 블록체인에 추가하려는 요청을 다른 노드에 전송하는 처리, 다른 노드로부터 수신한 블록 추가 요청을 미리 규정된 합의 알고리즘에 따라 검증하여 본인이 보유 또는 접속하고 있는 블록체인에 해당 블록을 추가하는 처리 중 적어도 하나를 수행할 수 있다.
또한, 본 발명의 사용자 단말 (200), 서버 (300) 는 직접 또는 전자 계약 관리 시스템 (100) 을 통해, 상기한 노드의 기능을 트리거하기 위한 요청을 노드에 전송하고, 그에 대한 응답을 수신함으로써 전자 계약 관리 시스템 (100) 에 연동될 수 있다. 또는, 이들 각 장치는 필요에 따라 상술한 노드의 처리 중 적어도 하나를 직접 수행하여 노드로써 기능할 수도 있다. 이하 설명하는 계약자나 신원 확인 기관 또는 검증자 등의 사용자의 처리는, 사용자가 접속하는 사용자 단말 (200) 및/또는 서버 (300) 를 통해 이루어질 수 있으며, 사용자 단말 (200) 및/또는 서버 (300) 가 블록체인 과 직접 접속되어 블록체인에 정보를 기록하거나 블록체인으로부터 정보를 검색하여 획득하는 등의 이하의 설명하는 처리가 수행될 수 있고, 또는 사용자 단말 (200) 및/또는 서버 (300) 가 본 발명의 전자 계약 관리 시스템 (100) 이 제공하는 블록체인과의 인터페이스를 통하여 블록체인에 접속되어 해당 처리가 수행될 수도 있다.
본 발명의 블록체인을 구성하는 각 블록들은 해시 체인 (Hash Chain), 해시 트리 (Hash Tree) 등의 해시를 기반으로 한 연관 관계를 갖도록 상호 연결된다. 즉, 어느 블록은 그 이전 순번의 블록의 해시 값을 저장하거나, 각 블록들은 그 해시 값이 트리 구조를 갖도록 상호 연관될 수 있으며, 기타 해시를 기반으로 한 연관 관계를 가질 수 있다. 예를 들어 해시 체인에서는, 어느 한 블록의 정보의 변경은, 해당 블록으로부터 산출한 해당 블록의 해시 값의 변경을 초래하고, 이는 그 다음 블록의 내용의 변경을 초래하기 때문에, 필수적으로 해당 블록 이후의 모든 블록들의 정보의 변경을 초래한다. 예를 들어 머클 트리에 기초하여 블록체인이 구성될 경우, 블록의 생성 및 등록 시 모든 트랜잭션 및 앞 블록의 해시에 대한 머클 루트를 계산하여 저장할 수 있고, 머클 루트에는 항상 앞 블록의 해시가 저장되므로, 악의적인 사용자가 특정 트랜잭션을 조작하면, 머클 루트가 변경되므로 조작을 쉽게 알 수 있다.
여기서 해시 값은 임의의 크기의 데이터를 미리 결정된 크기를 갖는 데이터로 변환하는 해시 함수에 의해 산출될 수 있으며, 예를 들면 MD5, SHA1, SHA2 등 필요에 따라 선택한 해시 함수를 이용할 수 있다.
본 발명의 블록은 적어도 하나 이상의 트랜잭션을 포함한다. 일 실시예에 있어서 블록은 타임 스탬프를 포함할 수 있고, 타임 스탬프는 블록 및/또는 트랜잭션과 관련된 시간 정보(예를 들면, 블록 생성 시간)를 나타낼 수 있다. 본 발명의 트랜잭션은 전자 계약 관리 시스템 (100) 이나 전자 계약 관리 시스템 (100) 과 연동되는 사용자 단말 (200), 서버 (300) 및/또는 이들과 접속하는 장치/노드로부터의 정보에 따라 구성될 수 있다. 예를 들면, 상기 각 주체가 요청하는 특정 정보의 등록/변경/폐기가 하나의 트랜잭션으로 구성될 수 있다. 그리고 이러한 트랜잭션의 생성 및 블록체인에의 등록이 각 노드에서 이루어질 수 있다.
일 실시예에 있어서, 각 트랜잭션은 공개키 암호 방식 (Public Key Cryptography, PKC) 에 의해 디지털 서명되고 검증될 수 있다. 이를 위하여 트랜잭션에 따른 정보 (예를 들면, 트랜잭션을 해시 함수의 입력 중 적어도 하나로 하여 산출된 해시 값 등) 를 개인키 (Private Key) 로 서명한 디지털 서명과, 공개키 (Public Key) 가, 트랜잭션에 포함되거나 또는 기타 경로로 노드에 제공될 수 있다. 그리고 노드는 공개키를 이용하여 디지털 서명을 검증하여 해당 트랜잭션의 유효성을 검증할 수 있다. 또한, 트랜잭션의 소유자 또는 트랜잭션의 생성에 연관된 자가 보유하는 개인키를 통하여 트랜잭션의 소유나 트랜잭션과의 연관이 증명될 수 있다. 이때 공개키 및 개인키는 트랜잭션에 관여하는 주체에 의해 생성될 수도 있고, 예를 들어 퍼미션드 블록체인인 경우 블록체인에의 참가를 관리하는 멤버십 관리자에 의해 발급되어 트랜잭션에 관여하는 주체에 제공될 수도 있다. 여기서 각 트랜잭션은 상술한 공개키 암호 방식 이외의 알려진 다른 암호 방식에 의해 서명되고 검증될 수도 있다.
본 발명의 블록체인과 연동되는 노드는 트랜잭션을 생성하여 다른 노드들에 전송 및/또는 브로드캐스트 한다. 노드들 전부 또는 이들 중 일부 노드는, 시스템에서 새로 발생한 적어도 하나 이상의 트랜잭션을 포함하는 새로운 블록을 생성할 수 있다. 또한 노드는 해당 트랜잭션의 유효성을 검증할 수 있다. 또한 노드는 새로 생성한 블록을 기존의 블록체인에 추가하는 요청을 다른 노드들에 할 수 있다. 본 발명에서 상기 요청을 수신한 노드들은 이하 설명하는 미리 규정된 합의 알고리즘에 따라 트랜잭션 및/또는 블록의 유효성을 검증하고, 검증이 성공할 경우 해당 블록을 본인이 보유 또는 접속하고 있는 블록체인에 등록할 수 있다.
본 발명의 노드들은 통일된 블록체인 원장을 각 보유 또는 접속하고 이를 공유하는 것을 지향한다. 이를 위하여 노드 전부 또는 이들 중 일부 노드는, 미리 규정된 합의 알고리즘에 따라, 블록 및/또는 트랜잭션의 유효성 검증, 블록 및/또는 트랜잭션의 순서 결정, 새로운 블록의 블록체인에의 추가 중 적어도 하나를 수행할 수 있다. 그리고 합의 알고리즘에 의해 검증된 블록만이 블록체인에 최종적으로 추가될 수 있다. 이때 경우에 따라서 임시적으로 블록이 추가된 복수개의 블록체인이 동시에 존재할 수도 있고, 합의 알고리즘에 따른 후속 검증에 의해 유효하지 않은 것으로 판정된 블록체인이 폐기됨으로써, 최종적인 블록체인이 결정될 수도 있다. 이로써, 각 노드들이 보유 또는 접속하고 있는 블록체인들이 서로 일치화되어 공유될 수 있다. 본 발명의 합의 알고리즘은 상기 기능을 수행할 수 있도록 정의된 알고리즘이면 되며, 특정한 합의 알고리즘으로 한정되는 것은 아니다. 예를 들면, 작업 증명 (Proof-of-Work, POW) 알고리즘, 지분 증명 (Proof-of-Stake, POS) 알고리즘, 프랙티컬 비잔틴 장애 허용 (Practical Byzantine Fault Tolerance, PBFT) 알고리즘, 경과 시간 증명 (Proof of Elapsed Time, PoET) 알고리즘 등이 이용될 수 있으며, 이외에도 상기 기능을 수행하도록 설계된 임의의 알고리즘이 이용될 수도 있다.
일 실시예에 있어서 본 발명에 따른 블록체인은 퍼미션드 블록체인 (Permissioned Block Chain) 의 형태로 운영될 수 있다. 퍼미션드 블록체인에서는 허가된 참여자만이 블록체인에 접근할 수 있고, 그 접근에 권한이 설정될 수 있다. 이러한 퍼미션드 블록체인에서는, 제한적인 사용자만 블록체인 네트워크에 참여하며, 사용자의 참여를 관리하는 멤버십이 존재하고, 블록을 생성하는 일부 노드만 합의에 참여할 수 있다. 이러한 퍼미션드 블록체인은 일 예로써, 제한된 사용자만 블록 생성 및 데이터 열람이 가능한 사설 블록체인이나, 제한된 사용자만 블록을 생성하되, 열람은 누구나 가능한 콘소시엄 블록체인 등이 될 수 있고, 이에 제한되지는 않는다.
본 발명에서, 사용자 단말 (200), 서버 (300) 중 적어도 하나는 퍼미션드 블록체인에 참여하기 위하여, 멤버십 관리자로부터의 인증을 통해 허가를 받을 수 있고, 허가 시에 블록체인에 대한 권한을 설정받을 수 있다. 퍼미션드 블록체인을 이용하는 경우, 허가된 자만이 블록체인에 접근할 수 있도록 하기 위하여 참여자의 참가를 관리하는 멤버십 관리자가 관리자 서버 등의 형태로 전자 계약 관리 시스템 (100) 에 접속될 수 있고, 또는 멤버십 관리 기능이 전자 계약 관리 시스템 (100) 에 포함되어 있을 수 있고, 또는 별도의 관리자가 존재하지 않고, 미리 규정되어 참여자들 간에 공유되는 합의된 규약에 따른 멤버십 관리가 분산 시스템 방식으로 이루어질 수도 있다. 한편, 공개키 암호 방식 (Public Key Cryptography, PKC) 에 의해 트랜잭션을 디지털 서명하고 검증하는 경우, 공개키 및 개인키는, 트랜잭션에 관여하는 주체에 의해 생성될 수도 있지만, 퍼미션드 블록체인에서 바람직하게는 멤버십 관리자에 의해 발급되어 트랜잭션에 관여하는 주체에 제공될 수도 있다.
또는, 일 실시예에 있어서 본 발명에 따른 블록체인은 필요에 따라 누구나 블록체인 네트워크에 참여하여 데이터를 열람할 수 있고 특정 조건만 만족하면 누구나 블록의 생성이 가능한 공개 블록체인에 기초할 수도 있다.
도 2 ~ 7 은 본 발명의 일 실시예에 따른 전자 계약 관리 시스템 (100) 에 의한 전자 계약 관리 방법을 설명하기 위한 도면이다.
이하에서 본 발명에 따른 전자 계약 관리 시스템 (100) 에 의한 전자 계약 관리 방법은 설명의 편의를 위하여 정보들의 송수신 주체를 일부의 실시예로 한정하여 설명하지만, 본 발명의 시스템과 방법이 이하의 설명에 한정되는 것은 아니다. 이하에서는 본 발명에 따른 전자 계약 관리 방법의 각 단계를 설명하며, 각 단계들 중 일부는 필요에 따라 생략될 수 있고, 본 발명의 목적을 달성할 수 있는 경우 각 단계의 수행 순서가 바뀌거나 복수의 단계가 병렬적으로 수행될 수도 있다.
1. 계약자의 공개키 및 신원 확인 증명서의 등록 절차
도 2 는 본 발명에서 블록체인에 계약자의 식별정보와 공개키 및 신원 확인 증명서를 등록하는 처리에 관한 참고도이다. 본 발명의 전자 계약 및 그 검증을 위하여, 계약자는 사전에 블록체인에 본인의 식별정보와 공개키 및 신원 확인 증명서를 등록할 수 있다. 상술한 바와 같이 본 발명에서 계약자 및/또는 신원 확인 기관은 사용자 단말 (200) 및/또는 서버 (300) 를 통하여 직접 블록체인에 접속하여 이하 설명하는 처리를 수행할 수 있고, 도 2 에서 도시는 생략되었지만 사용자 단말 (200) 및/또는 서버 (300) 가 필요에 따라 전자 계약 관리 시스템 (100) 을 개재하여 블록체인에 접속하여 그 처리를 수행할 수도 있다.
계약자는 공개키 기반 구조 (Public Key Infrastructure, PKI) 방식으로 생성된 공개키 (Public Key) 와 계약자 본인에 대하여 생성된 식별정보를 블록체인에 등록할 수 있다(S11, S12, S13). 또한 개인키 (Private Key) 는 계약자가 보유할 수 있다. 본 발명에서 개인키는 서명의 대상이 되는 식별정보나 계약 등을 전자 서명하는데 이용되며, 공개키는 그 서명을 검증하기 위하여 이용된다. 예를 들면, 서명의 대상이 되는 정보 또는 그 해시 값을 개인키로 암호화함으로써 서명이 생성될 수 있고, 그 생성된 서명은 공개키로 이용하여 복호화되고 서명의 대상이 되는 정보 또는 그 해시 값과 비교됨으로서 검증될 수 있다. 또는 PKI 방식의 공개키 및 개인키를 이용한 알려진 다른 디지털 서명 방식이 사용될 수도 있다.
여기서 바람직하게는 계약자나 신원 확인 기관의 식별정보는 DID (Decentralized ID) 가 될 수 있으며, 알려진 DID 방식으로 생성된 DID 가 될 수 있다. DID 는 기존의 공인인증 시스템을 대신할 수 있는 기술로 주목받고 있는 기술로서, DID 를 이용할 경우 공인인증서와 같은 인증기관이 필요 없으며, 사설인증서를 사용하는 경우 그 인증서의 신뢰에 의심을 받게 되는 문제를 극복할 수 있다. 또한, DID 의 경우 그 관리가 블록체인 기반으로 이루어지게 되므로 투명성과 신뢰성에 있어서 우수하다. 본 발명에서 DID 는 {Scheme, DID Method, DID Method Specific String} 의 구조를 갖도록 생성되는 등 W3C (World Wide Web Consortium) 의 DID 표준형식에 따라 생성되고 블록체인에 기록될 수 있다. 상술한 이유로, 본 발명에서 계약자를 비롯하여 참여 주체인 신원 확인 기관이나 검증자의 식별정보는 DID 로 생성 및 관리되는 것이 바람직하다. 이에 이하에서는 계약자의 식별정보가 DID 인 실시예를 중심으로 설명하나, 이에 반드시 한정되는 것은 아니며 식별정보는 필요에 따라 다른 방식으로 구현된 식별정보가 될 수도 있다.
계약자는 본인의 신원 확인 증명서 (Verifiable Claim, VC) 의 발급에 대한 요청을 신원 확인 기관에 전송할 수 있다(S14). 여기서 신원 확인 증명서 (VC) 의 발급에 대한 요청은, 계약자 본인의 DID 를 계약자의 개인키로 서명하여 서명된 DID 를 포함할 수 있다.
신원 확인 기관은 신원 확인 증명서 (VC) 의 발급을 요청한 계약자의 본인 확인을 수행할 수 있다. 이를 위하여 신원 확인 기관은 블록체인으로부터 계약자의 DID 및/또는 공개키를 획득하고(S15), 이를 이용하여, 계약자로부터 수신한 서명된 DID 를 검증할 수 있다(S16). 예를 들면, 서명된 DID 의 서명을 공개키로 복호화하고 이를 계약자의 DID 또는 그 해시 값과 대비함으로서 계약자의 DID 를 검증할 수 있다. 이와 같이, 신원 확인 기관은 신원 확인 증명서 (VC) 의 발급을 요청한 사람이 계약자 본인이 맞는지를 확인함으로써 신원 정보를 확인할 수 있고, 그 이후 신원 확인 증명서 (VC) 를 발급하여 계약자에게 전송할 수 있다(S17).
또한, 신원 확인 기관은 신원 확인 증명서 (VC) 를 발급한 이후, 그 발급에 관한 정보를 블록체인에 기록할 수 있고, 예를 들면 발급의 이력에 관한 정보로서 발급 번호, 발급 일자나 신원 확인 기관의 DID, 신원 확인 증명서의 당사자의 식별정보 중 적어도 일부를 블록체인에 기록할 수 있다(S18).
2. 전자 계약 절차
도 3 내지 도 6 은 본 발명에서 계약자가 전자 계약서를 작성하고, 추후 검증자가 그 전자 계약서를 검증하는 처리에 관한 참고도이다. 본 발명에서 계약자는 사용자 단말 (200) 및/또는 서버 (300) 를 이용하여 전자 계약 관리 시스템 (100) 에 접속하여 블록체인에 대한 이하 설명하는 처리를 수행할 수도 있다. 또한, 검증자는 사용자 단말 (200) 및/또는 서버 (300) 를 통하여 직접 블록체인에 접속하여 이하 설명하는 처리를 수행할 수 있고, 도 3 에서 도시에는 생략되었지만 검증자가 이용하는 사용자 단말 (200) 및/또는 서버 (300) 는 필요에 따라 전자 계약 관리 시스템 (100) 를 개재하여 그 처리를 수행할 수도 있다.
계약자는 공개키 기반 구조 (PKI) 방식으로 생성된 공개키를 블록체인에 등록할 수 있다(S201, S202). 여기서 단계 S201 및 S202 는 상술한 단계 S11 및 S13 에 상응할 수 있다.
또한, 계약자는 본인의 사용자 정보로서, 계약자의 식별정보 (DID) 및 신원 확인 증명서 (VC) 의 발급 이력에 관한 정보를 블록체인에 등록할 수 있다. 이는 상술한 단계 S13, S18 에 상응할 수 있다.
계약자는 전자 계약 관리 시스템 (100) 에 접속하여, 계약 대상을 확인하고 계약서 작성 절차를 시작할 수 있다(S203). 이를 위하여 전자 계약 관리 시스템 (100) 은 계약에 관한 기본 정보 (예를 들면, 계약의 대상이 되는 물건이나 용역에 관한 식별 정보나 그 내용을 서술한 정보 등) 를 계약자에게 전송하여 계약 대상을 확인하도록 할 수 있다.
계약자로부터의 요청에 기초하여 계약서 작성 절차가 시작되면, 전자 계약 관리 시스템 (100) 은 계약 시작 정보를 블록체인에 기록할 수 있고, 예를 들면 계약 번호, 계약자의 식별정보, 계약서 작성의 시작 시점 등의 정보 또는 필요에 따라 그의 적어도 일부의 해시 값을 블록체인에 기록할 수 있다(S204).
계약서 작성 절차의 시작 후 계약자들은 전자 계약 관리 시스템 (100) 을 통하여 계약에 관한 정보를 확인하거나 입력할 수 있고, 계약서 작성에 관해 입력된 일부 정보는 계약자의 요청 또는 미리 정의된 규칙에 의해 중요 정보로서 분류되어 그 정보나 그의 적어도 일부의 해시 값이 블록체인에 기록될 수 있다(S205). 예를 들면, 계약의 대상의 설정이나 변경 또는 거래 대금의 설정이나 변경 또는 특약 사항 또는 잠정 합의 사항 등이 중요 정보로서 분류되어 그 정보나 그의 적어도 일부의 해시 값이 블록체인에 기록될 수 있고, 이때 중요 정보에 관한 이벤트의 발생 시점 정보 또는 중요 정보의 기록 시점 정보도 함께 기록될 수 있다. 바람직하게는 계약 내용의 비밀 유지가 필요한 것으로 분류된 범위의 중요 정보에 대해서는 그 해시 값이 블록체인에 기록될 수 있다. 또는 비밀 유지가 불필요하거나 공개가 필요한 것으로 분류된 범위의 중요 정보는 그 자체가 블록체인에 기록될 수도 있다. 이와 같이 기록된 중요 정보들은 추후 해당 중요 정보의 이력 검증에 이용될 수 있다.
계약자들은 전자 계약 관리 시스템 (100) 에게 서명을 요청하거나 및/또는 전자 계약 관리 시스템 (100) 으로부터의 서명 요청을 수락할 수 있다(S206). 계약자들 모두가 서명을 요청하거나 서명 요청을 수락하면, 계약자들은 각각 본인의 개인키를 이용하여 전자 계약서에 대해 영지식증명 (Zero Knowledge Proof, ZKP) 에 기초한 전자 서명을 하고(S207), 그 전자 서명을 전자 계약 관리 시스템 (100) 에 제출할 수 있다(S208). 전자 계약 관리 시스템 (100) 은 모든 계약자의 전자 서명이 이루어지면, 계약이 완료되었다는 사실에 관한 계약 완료 정보를 블록체인에 기록할 수 있고(S209), 예를 들면, 계약 번호, 계약 완료 시간, 전자 서명 시간 등의 정보 또는 그의 적어도 일부의 해시 값을 기록할 수 있다.
영지식증명 (Zero Knowledge Proof, ZKP) 이란 어떤 내용을 알고 있을 경우 그 내용을 직접 보여주지 않고, 그것을 알고 있다는 것을 증명하는 방법으로, 증명하고자 하는 자가 그 지식을 알고 있다는 것을 제외하고 어떤 정보도 확인자에게 노출하지 않는 증명을 의미하며, 이러한 기능을 제공하는 프로토콜을 영지식증명 프로토콜이라 한다. 본 발명에서는 이러한 영지식증명 프로토콜이 구현된 전자 서명으로서, (1) 전자 계약서 (D1) 을 계약자의 개인키 (K1) 로 서명하여 서명 (Sig. A) 이 적어도 부가된 서명된 전자 계약서 (D2) (예를 들면, 도 5 (b)) 에 대해, 그 계약서 (D2) 및 그 서명 (Sig. A) 를 계약자의 공개키 (K2) 로 검증 가능한 기능과, (2) 전자 계약서 (D2) 의 속성들 중에서 선택적으로 일부는 공개되고 나머지 일부는 비공개되도록 처리된 검증용 전자 계약서 (D3) (예를 들면, 도 5 (c)) 라고 할지라도, 그 계약서 (D3) 및 그 서명 (Sig. A') 를 동일한 계약자의 공개키 (K2) 로 검증이 가능한 기능 모두를 제공하는 전자 서명을 영지식증명에 기초한 전자 서명으로 정의한다. 여기서 서명 (Sig. A') 는 전자 계약서 (D2) 의 속성들 중에서 선택적으로 일부는 공개되고 나머지 일부는 비공개되도록 처리된 검증용 전자 계약서 (D3) 에 대해, 계약자가 개인키 (K1) 를 이용하여 다시 전자 서명을 하여 부가한 서명이다. 이때 도 5 (c) 의 예를 들면, 일 실시예에서, 전자 계약서 (D2) 에서 속성들 중에서 선택적으로 일부는 공개되고 나머지 일부는 비공개되도록 처리되고 종래의 Sig. A 및 Sig. B 도 포함하는 문서에 대해, 계약자가 개인키 (K1) 를 이용하여 다시 전자 서명을 함으로써 서명 (Sig. A') 를 부가할 수 있다. 본 발명의 영지식증명에 기초한 전자 서명을 구현하는 영지식증명 프로토콜은, 상술한 기능을 제공하는 영지식증명 프로토콜이면 되며, 구체적인 특정 알고리즘으로 한정되지 아니하며, 알려진 영지식증명 프로토콜을 이용할 수 있다. 예를 들면, ZK-SNARK, ZK-STARK, CL서명, BBS+(plus), bulletproofs 등의 영지식증명 프로토콜을 이용하여 상술한 기능을 제공하는 영지식증명에 기초한 전자 서명은 구현할 수 있다.
이와 같이 계약이 완료되면, 전자 계약 관리 시스템 (100) 은 전자 서명이 첨부된 최종 전자 계약서를 생성할 수 있다(S210). 이와 같이 전자 서명이 추가된 최종 전자 계약서에는, 필요에 따라 계약자나 계약자의 서명 또는 계약에 관한 부가 정보가 포함될 수 있다. 이와 같은 부가 정보는 추후 계약서의 검증에 필요한 정보로서, 전자 서명 검증에 필요한 계약자의 식별정보, 전자 서명 시점, 계약 번호 등의 정보를 포함할 수 있다. 최종 계약서가 생성되면 전자 계약 관리 시스템 (100) 은 그 계약서를 계약자들에게 전송할 수 있다(S211).
예를 들어 도 5 를 참조하면, 계약자들의 합의에 의해 특정된 계약 내용을 적어도 포함하는 속성들 (Attribute 1 ~ 6) 을 포함하는 전자 계약서 (D1) 이 확정되면(도 5 (a)), 계약자 A, B 는 각각 본인의 개인키를 이용하여 확정된 전자 계약서 (D1) 에 영지식증명에 기초한 전자 서명 (Signature A, Signature B) 을 생성하여 부가할 수 있다. 또한, 이때 최종 전자 계약서 (D2) 에 계약자 또는 계약자의 서명에 대한 부가 정보 (Sig. A info, Sig. B info) 가 추가될 수 있다(도 5 (b)).
이와 같이 전자 서명이 추가된 최종 전자 계약서는 계약자가 보관/관리할 수 있다.
본 발명의 최종 전자 계약서에는 계약자의 전자 서명과 계약서의 서명 검증에 필요한 부가 정보가 포함된다. 계약자의 전자 서명은 전자 계약서의 속성에 대한 영지식증명에 기초한 전자 서명 값이고, 부가 정보는 계약서의 검증에 필요한 내용으로서, 전자 서명 검증에 필요한 계약자의 식별정보, 전자 서명 시점, 계약 번호 등의 정보를 포함하여, 후술하는 서명 검증 시 블록체인에서 해당 계약자의 식별정보를 획득 및 이용하여 계약자의 공개키와 유효시점 정보를 얻을 수 있도록 한다.
3. 전자 계약의 검증 절차
도 3, 도 5, 도 6 은 본 발명에서 검증자가 전자 계약서를 검증하는 처리에 관한 참고도이다. 본 발명에서 전자 계약서의 검증자는 사용자 단말 (200) 및/또는 서버 (300) 를 통하여 직접 블록체인에 접속하여 이하 설명하는 처리를 수행할 수 있고, 도 3 에서 도시에는 생략되었지만 검증자가 이용하는 사용자 단말 (200) 및/또는 서버 (300) 는 필요에 따라 전자 계약 관리 시스템 (100) 를 개재하여 그 처리를 수행할 수도 있다. 즉, 필요에 따라 후술하는 검증자의 처리는 전자 계약 관리 시스템 (100) 을 통해 수행될 수도 있다.
본 발명에서, 전자 계약에 대한 검증이 필요한 경우, 계약자는 본인 소유의 전자 계약서에서 공개할 내용을 선택하여 그 선택된 내용만이 외부에 공개되도록 속성이 선택된 검증용 전자 계약서를 생성할 수 있다(S301). 즉 이와 같이 생성된 검증용 전자 계약서에서는 공개되도록 선택되지 않은 속성의 정보는 외부에서 확인될 수 없다. 도 5 의 예를 들면, 계약자들이 작성하여 최종 전자 서명한 최종 전자 계약서 (D2, 도 5 (b)) 에 대하여, 계약자 A 가 속성들 (Attribute 1 ~ 6) 중 일부 (Attribute 1, 3, 6) 만이 외부에 공개되도록 속성을 선택한 검증용 전자 계약서 (D3, 도 5 (c)) 를 생성할 수 있다. 여기서, 계약자 A 는 전자 계약서 (D2) 의 속성들 중에서 선택적으로 의해 일부 (Attribute 1, 3, 6) 는 공개되고 나머지 일부는 비공개되도록 처리된 검증용 전자 계약서 (D3) 에 대해, 계약자가 개인키 (K1) 를 이용하여 다시 영지식증명에 기초한 전자 서명을 하여 서명 (Sig. A') 를 부가할 수 있다.
계약자는 상술한 바와 같이 작성된 검증용 전자 계약서와 신원 확인 증명서 (VC) 를 검증자 또는 검증자가 접속한 전자 계약 관리 시스템 (100) 에게 전송할 수 있다(S302).
검증자는 전송받은 검증용 전자 계약서와 신원 확인 증명서 (VC) 를 이용하여 블록체인에 접속하여 계약서 검증 및 계약자의 신원 검증을 수행한다.
보다 구체적으로, 검증자는 검증용 전자 계약서에 기록되어 있는 부가 정보에서 계약 번호, 계약자(서명자)의 식별정보, 전자 서명 시점을 확인하고, 그 확인한 정보 중 적어도 일부에 기초하여 블록체인에 미리 기록되어 있는 관련 정보를 블록체인에서 검색하여(S303), 계약자의 정보, 계약에 관한 정보 및/또는 계약자의 공개키를 획득하고(S304), 이 중 적어도 일부에 기초하여 전자 서명의 유효성에 대한 1 차 검증 및 해당 계약서의 유효성에 관한 1 차 검증을 수행할 수 있다(S305). 예를 들면, 검증자는, 검증용 전자 계약서에 부가 정보로서 기록되어 있는 계약 번호 및/또는 계약자(서명자)의 식별정보에 기초하여, 블록체인에서 계약자(서명자)의 식별정보 및/또는 전자 서명 시점 정보 또는 그 해시 값을 획득하고, 그 획득한 정보와 검증용 전자 계약서에 기록된 정보를 이용하여, 계약자(서명자)의 공개키와 개인키 및/또는 이에 기초한 전자 서명이 당해 서명의 시점에 유효하였던 것인지 여부를 검증하는 등, 전자 서명의 유효성에 대한 1 차 검증을 수행할 수 있다. 예를 들면, 전자 서명 시점 정보를 비교하거나, 계약자의 식별정보를 계약자의 공개키로 검증하는 등으로 전자 서명의 유효성에 대한 1 차 검증을 수행할 수 있다. 또한 검증자는 블록체인에서 전자 계약 번호를 검색 및 획득하여, 그 획득한 정보와 검증용 전자 계약서에 기록된 부가 정보를 이용하여, 전자 계약 번호의 유효성 여부를 검증하는 등, 해당 계약서의 유효성에 관한 1 차 검증을 수행할 수 있다.
또한, 검증자는 상술한 전자 서명 및/또는 계약서의 유효성에 관한 1 차 검증과 함께, 또는 그 이후에 계약자로부터 전송받은 신원 확인 증명서 (VC) 를 이용하여 블록체인에 접속하여 계약자의 신원 검증을 수행할 수 있다.
보다 구체적으로, 검증자는 신원 확인 증명서에 기록된 신원 확인 증명서의 발급 번호와 신원 확인 기관 식별정보 (DID) 중 적어도 일부에 기초하여 블록체인에 미리 기록되어 있는 신원 증명과 관련된 정보를 블록체인에서 검색하여(S306), 신원 확인 증명서의 발급 이력 정보, 신원 확인 기관의 식별정보 및/또는 신원 확인 기관의 공개키를 획득하고(S307), 이 중 적어도 일부에 기초하여 신원 확인 증명서의 유효성을 검증하고, 검증된 신원 확인 증명서의 당사자가 검증용 전자 계약서의 계약자임을 확인할 수 있다(S308). 예를 들면, 검증자는, 신원 확인 증명서에 기록된 신원 확인 증명서의 발급 번호 및/또는 신원 확인 기관 식별정보에 기초하여, 블록체인에서 신원 확인 증명서의 발급 이력 정보, 신원 확인 기관의 식별정보 및/또는 신원 확인 기관의 공개키를 획득할 수 있다. 그리고 검증자는 그 획득한 정보를 이용하여, 신원 확인 증명서의 발급 이력과 유효 시점을 확인할 수 있다. 그리고 검증자는 신원 확인 기관의 공개키를 이용하여 신원 확인 증명서에 대한 검증을 수행하고, 검증된 신원 확인 증명서의 당사자의 식별정보와 검증용 전자 계약서의 계약자의 식별정보를 비교하여, 신원 확인 증명서의 당사자가 검증용 전자 계약서의 계약자임을 확인할 수 있다.
또한, 검증자는 검증용 전자 계약서의 영지식증명에 기초한 전자 서명 (예를 들면 도 5 (c) 의 서명 (Sig. A')) 을, 계약자의 공개키를 이용하여 검증함으로써, 검증용 전자 계약서의 유효성을 최종 검증할 수 있다(S309). 즉, 전자 계약서 (D2) 의 속성들 중에서 선택적으로 일부는 공개되고 나머지 일부는 비공개되도록 처리된 검증용 전자 계약서 (D3) (예를 들면, 도 5 (c)) 이어도, 영지식증명에 기초한 전자 서명에 의해, 그 계약서 (D3) 및 그 서명 (Sig. A') 를 동일한 계약자의 공개키 (K2) 로 검증이 가능하다. 또한, 검증자는 검증용 전자 계약서의 최종 검증 결과를 계약자에게 전송할 수 있다(S310).
본 발명의 전자 계약 관리 시스템 및 그에 관한 방법에 의하면, 전자 계약 과정의 중요 이력 및 확정된 최종 계약서에 관한 정보를 블록체인에 기록함으로써, 전자 계약의 위/변조가 방지되고 계약 당사자 간에 신뢰성 높은 전자 계약 절차가 진행될 수 있게 된다. 또한 계약자 정보와 그의 신원 확인 증명 정보 그리고 전자 계약서와 그 전자 서명의 검증에 필요한 정보도 블록체인에 의해 기록 및 관리되고, 이를 이용하여 검증을 수행할 수 있으므로, 전자 계약에 대한 투명한 관리가 가능하며 계약의 신뢰성을 더욱 향상시킬 수 있다. 본 발명에서는 이와 같이 전자 계약에 관한 정보를 블록체인에 저장/등록함으로써 저장/등록 시점을 증명할 수 있고, 저장/등록된 정보의 변경 불가능성 (Immutability) 을 제공하여 전자 계약 정보의 신뢰성을 높일 수 있다.
또한, 본 발명의 전자 계약 관리 시스템 및 그에 관한 방법에 의하면, 영지식증명 기반의 전자 서명을 이용하여 전자 계약서를 전자 서명함으로써, 검증용 전자 계약서에서는 계약자의 선택에 따라 전자 계약서의 내용 중 일부만을 공개하고도, 그 검증용 전자 계약서 및 전자 서명의 유효성을 증명할 수 있도록 한다. 따라서, 검증용 전자 계약서에는 비밀로 유지될 필요가 있는 속성들이 은닉될 수 있다.
본 발명에서는, 전자 계약서에 영지식증명에 기초한 계약자의 전자 서명과 서명 검증에 필요한 부가 정보를 포함하도록 함으로써, 블록체인에 기록된 계약자의 공개키를 이용하여 서명검증을 할 수 있도록 하면서도, 계약자의 비밀 정보를 노출을 최소화할 수 있다. 또한, 본 발명에서는, 전자 서명에 관한 공개키는 계약자의 DID 를 이용하여 블록체인으로 관리되며, 이로써 계약자의 신원 증명에도 이용 가능하다.
본 발명의 전자 계약 관리 시스템 (100), 사용자 단말 (200), 서버 (300) 는, 도 7 과 같이, 통신부와 저장부(일시적/비일시적 저장 장치, 메모리 등) 및 제어부(적어도 하나의 프로세서나 논리 회로 등)를 포함하도록 구성될 수 있다. 여기서 저장부는 각 장치의 기능 실행을 위한 프로그램 인스트럭션들과 데이터베이스들 중 적어도 일부를 일시적/비일시적으로 저장할 수 있고, 저장부에 저장된 프로그램 인스트럭션이 제어부에서 수행됨에 따라 상술한 각 장치의 기능들이 실행될 수 있다. 이와 같은 장치로 상용되는 컴퓨터가 이용될 수도 있고 임베디드 시스템이 설계되어 이용될 수도 있다. 또한, 전자 계약 관리 시스템 (100), 사용자 단말 (200), 서버 (300) 는 필요에 따라 복수의 서버/장치/노드에 분산되어 구현될 수도 있다.
또한 블록체인 원장을 보유하는 노드들도, 도 7 과 같이, 통신부와 저장부 및 제어부를 포함하도록 구성될 수 있다. 여기서 저장부는 블록체인의 적어도 일부 정보를 저장할 수 있고 노드의 기능 실행을 위한 프로그램 인스트럭션들과 데이터베이스들 중 적어도 일부를 일시적/비일시적으로 저장할 수 있고, 저장부에 저장된 프로그램 인스트럭션이 제어부에서 수행됨에 따라 상술한 노드의 기능들이 실행될 수 있다.
본 명세서에서 개시된 방법 또는 프로세스에서 설명된 처리의 순서는 일 예로서 설명된 것이다. 따라서 필요에 따라 각 단계들의 순서는 본 발명의 사상 내에서 조정될 수 있다. 또한 본 명세서에서 개시된 디바이스 및 시스템은 본 명세서에서 설명된 기능들을 수행할 수 있는 수단들을 포함할 수 있고, 필요에 따라 독립된 디바이스 또는 시스템으로 구현되거나 또는 다른 시스템과 연동되거나 통합된 형태로 존재할 수도 있다.
본 명세서에서 설명된 기술들은 적어도 부분적으로 하드웨어, 소프트웨어, 펌웨어, 또는 이들의 임의의 조합으로 구현될 수도 있다. 이들은 예를 들어 하나 이상의 프로세서들, DSP, ASIC, FPGA, 또는 등가의 집적 또는 이산 로직 회로, 또는 이들 중 적어도 하나 이상의 임의의 조합으로 구현될 수도 있다. 이러한 하드웨어, 소프트웨어 및 펌웨어는 본 명세서에 개시된 처리들 및 기능들을 지원하기 위해 하나의 또는 복수개의 시스템이나 디바이스 내에서 구현될 수 있고, 또는 다른 시스템이나 디바이스와 연동되거나 통합된 형태로 구현될 수도 있다. 또한, 본 명세서에서 설명된 컴포넌트들은 별개이지만 상호 운용 가능한 로직 디바이스들과 함께 또는 별개로 구현될 수도 있다. 본 명세서에서 구분되어 설명된 각 기능 및 처리들은 각각의 기능을 강조하기 위하여 그와 같이 설명된 것일 뿐, 그러한 기능들이 각각 별개의 하드웨어, 펌웨어 또는 소프트웨어 컴포넌트들에 실현되어야 하는 것은 아니며, 공통의 또는 별개의 하드웨어 및/또는 소프트웨어의 조합 내에 통합될 수도 있다. 용어 "프로세서" 또는 "프로세싱 회로"는 일반적으로 임의의 전술된 로직 회로 단독 또는 다른 로직 회로와 결합된 것, 또는 임의의 다른 등가 회로를 지칭할 수도 있다. 하드웨어를 포함하는 제어 유닛은 본 개시물의 기술들 중 하나 이상을 수행할 수도 있다.
또한, 본 명세서에서 설명된 기술들은 또한 명령들을 포함하는 컴퓨터 판독가능 저장 매체에서 구현되거나 저장될 수도 있다. 그리고 컴퓨터 판독가능 매체에 저장된 명령들은 각 장치에서 프로세서에 의해 그 명령과 관련된 방법 및 처리가 수행되게 할 수 있다. 컴퓨터 판독가능 저장 매체는 RAM, ROM, PROM, EPROM, EEPROM, 플래시 메모리, 하드 디스크, CD-ROM, 자기 매체, 광학 매체, 또는 기타 저장 매체들을 포함할 수도 있다.
1 블록체인
10 블록체인 엔진
100 전자 계약 관리 시스템
200 사용자 단말
300 서버

Claims (12)

  1. 전자 계약 관리 시스템에 의해 수행되는 전자 계약 관리 방법으로서,
    계약자로부터의 요청에 기초하여 전자 계약서 작성을 시작하고, 계약 시작 정보와 계약자로부터의 입력에 따른 계약 관련 정보 및 상기 계약 시작 정보와 상기 계약 관련 정보의 적어도 일부의 해시 값 중 적어도 하나를 블록체인에 기록하는 제 1 기록 단계;
    계약자들에게 전자 서명을 요청하거나 또는 계약자들로부터의 전자 서명 요청을 수락하는 단계;
    전자 계약서에 계약자의 개인키를 이용하여 생성된 영지식증명 (Zero Knowledge Proof) 에 기초한 제 1 전자 서명과 전자 계약서의 검증에 이용될 부가 정보를 추가하여 최종 전자 계약서를 생성하는 단계;
    계약 완료 정보를 블록체인에 기록하는 제 2 기록 단계;
    상기 제 1 전자 서명이 완료된 상기 최종 전자 계약서를 계약자에게 전송하는 단계;
    상기 최종 전자 계약서의 속성들 중에서 일부의 속성만이 선택적으로 공개되도록 상기 최종 전자 계약서가 처리되고, 그 처리된 계약서에 계약자의 개인키를 이용한 영지식증명에 기초한 제 2 전자 서명이 추가됨으로써 생성된 검증용 전자 계약서를 계약자로부터 수신하는 단계;
    상기 검증용 전자 계약서에 기록되어 있는 상기 부가 정보를 이용하여, 블록체인에서 계약자의 정보, 계약에 관한 정보 및 계약자의 공개키 중 적어도 하나를 검색하여 획득하고, 그 획득한 정보를 이용하여 검증용 전자 계약서의 전자 서명의 유효성에 대한 사전 검증을 수행하는 단계; 및
    상기 제 2 전자 서명이 추가된 상기 검증용 전자 계약서를, 계약자의 상기 공개키를 이용하여 검증함으로써, 상기 검증용 전자 계약서를 검증하는 단계를 포함하고,
    상기 최종 전자 계약서와 상기 제 1 전자 서명 및 상기 검증용 전자 계약서와 상기 제 2 전자 서명은 모두 상기 계약자의 동일한 상기 공개키를 이용하여 검증이 가능한 것을 특징으로 하는, 전자 계약 관리 방법.
  2. 삭제
  3. 제 1 항에 있어서,
    상기 계약 시작 정보는, 계약 번호, 계약자의 식별정보, 계약서 작성의 시작 시점 중 적어도 하나 또는 그의 해시 값을 포함하고,
    상기 계약 완료 정보는, 계약 번호, 계약 완료 시점 중 적어도 하나 또는 그의 해시 값을 포함하는, 전자 계약 관리 방법.
  4. 제 3 항에 있어서,
    상기 전자 계약서의 검증에 이용될 부가 정보는, 계약자의 식별정보, 전자 서명 시점, 계약 번호 중 적어도 하나를 포함하는, 전자 계약 관리 방법.
  5. 제 1 항에 있어서,
    상기 제 1 기록 단계 이전에,
    계약자의 요청에 기초하여, 계약자의 공개키와 계약자의 식별정보를 블록체인에 등록하는 단계;
    신원 확인 기관의 요청에 기초하여, 블록체인으로부터 계약자의 식별정보와 계약자의 공개키를 획득하는 단계; 및
    계약자의 식별정보와 계약자의 공개키에 기초하여 계약자의 개인키로 서명된 계약자의 식별정보가 검증되고, 신원 확인 증명서가 발급되면, 신원 확인 증명서의 발급에 관한 정보를 블록체인에 기록하는 단계를 더 포함하는, 전자 계약 관리 방법.
  6. 제 5 항에 있어서,
    상기 계약자의 식별정보는 계약자의 DID (Decentralized ID) 이고,
    상기 신원 확인 증명서의 발급에 관한 정보는, 신원 확인 증명서의 발급 번호, 발급 일자, 신원 확인 기관의 식별정보 및 신원 확인 증명서의 당사자의 식별정보 중 적어도 하나를 포함하는, 전자 계약 관리 방법.
  7. 삭제
  8. 삭제
  9. 제 1 항에 있어서,
    상기 검증용 전자 계약서를 수신하는 단계 이후, 그리고 상기 검증용 전자 계약서를 검증하는 단계 이전에,
    계약자로부터 신원 확인 증명서를 수신하는 단계;
    상기 신원 확인 증명서에 기록된 신원 확인 증명서의 발급 번호와 신원 확인 기관 식별정보 (DID) 중 적어도 하나를 이용하여, 블록체인에서 신원 확인 증명서의 발급 이력 정보, 신원 확인 기관의 식별정보 및 신원 확인 기관의 공개키 중 적어도 하나를 검색하여 획득하고, 그 획득한 정보를 이용하여 상기 신원 확인 증명서의 유효성을 검증하는 단계; 및
    검증된 신원 확인 증명서에 기록된 신원 확인 증명서의 대상자가 상기 사전 검증이 완료된 검증용 전자 계약서의 계약자인지 여부를 확인하는 단계를 더 포함하는, 전자 계약 관리 방법.
  10. 제 1 항에 있어서,
    상기 블록체인은 복수의 노드들과 연동되고, 상기 노드들은 상기 블록체인의 원장을 공유하고, 상기 노드들은 미리 규정된 합의 알고리즘에 기초하여 이력 또는 이력 증명서에 관한 정보를 포함하는 트랜잭션 또는 상기 트랜잭션을 적어도 포함하는 블록의 유효성을 검증한 후, 상기 트랜잭션을 포함하는 상기 블록을 상기 블록체인에 등록하는, 전자 계약 관리 방법.
  11. 전자 계약 관리 시스템으로서,
    메모리; 및
    상기 메모리에 연결된 적어도 하나의 프로세서를 포함하며,
    상기 적어도 하나의 프로세서는:
    계약자로부터의 요청에 기초하여 전자 계약서 작성을 시작하고, 계약 시작 정보와 계약자로부터의 입력에 따른 계약 관련 정보 및 상기 계약 시작 정보와 상기 계약 관련 정보의 적어도 일부의 해시 값 중 적어도 하나를 블록체인에 기록하는 제 1 기록 단계를 수행하고,
    계약자들에게 전자 서명을 요청하거나 또는 계약자들로부터의 전자 서명 요청을 수락하는 단계를 수행하고,
    전자 계약서에 계약자의 개인키를 이용하여 생성된 영지식증명 (Zero Knowledge Proof) 에 기초한 제 1 전자 서명과 전자 계약서의 검증에 이용될 부가 정보를 추가하여 최종 전자 계약서를 생성하는 단계를 수행하고,
    계약 완료 정보를 블록체인에 기록하는 제 2 기록 단계를 수행하고,
    상기 제 1 전자 서명이 완료된 상기 최종 전자 계약서를 계약자에게 전송하는 단계를 수행하고,
    상기 최종 전자 계약서의 속성들 중에서 일부의 속성만이 선택적으로 공개되도록 상기 최종 전자 계약서가 처리되고, 그 처리된 계약서에 계약자의 개인키를 이용한 영지식증명에 기초한 제 2 전자 서명이 추가됨으로써 생성된 검증용 전자 계약서를 계약자로부터 수신하는 단계를 수행하고,
    상기 검증용 전자 계약서에 기록되어 있는 상기 부가 정보를 이용하여, 블록체인에서 계약자의 정보, 계약에 관한 정보 및 계약자의 공개키 중 적어도 하나를 검색하여 획득하고, 그 획득한 정보를 이용하여 검증용 전자 계약서의 전자 서명의 유효성에 대한 사전 검증을 수행하는 단계를 수행하고, 그리고
    상기 제 2 전자 서명이 추가된 상기 검증용 전자 계약서를, 계약자의 상기 공개키를 이용하여 검증함으로써, 상기 검증용 전자 계약서를 검증하는 단계를 수행하도록 구성되고,
    상기 최종 전자 계약서와 상기 제 1 전자 서명 및 상기 검증용 전자 계약서와 상기 제 2 전자 서명은 모두 상기 계약자의 동일한 상기 공개키를 이용하여 검증이 가능한 것을 특징으로 하는, 전자 계약 관리 시스템.
  12. 전자 계약 관리 시스템의 적어도 하나의 프로세서에 의해 실행 가능한 코드를 저장하는 컴퓨터 판독 가능 저장 매체에 저장된 프로그램으로서,
    상기 코드는:
    계약자로부터의 요청에 기초하여 전자 계약서 작성을 시작하고, 계약 시작 정보와 계약자로부터의 입력에 따른 계약 관련 정보 및 상기 계약 시작 정보와 상기 계약 관련 정보의 적어도 일부의 해시 값 중 적어도 하나를 블록체인에 기록하는 제 1 기록 단계를 수행하기 위한 코드;
    계약자들에게 전자 서명을 요청하거나 또는 계약자들로부터의 전자 서명 요청을 수락하는 단계를 수행하기 위한 코드;
    전자 계약서에 계약자의 개인키를 이용하여 생성된 영지식증명 (Zero Knowledge Proof) 에 기초한 제 1 전자 서명과 전자 계약서의 검증에 이용될 부가 정보를 추가하여 최종 전자 계약서를 생성하는 단계를 수행하기 위한 코드;
    계약 완료 정보를 블록체인에 기록하는 제 2 기록 단계를 수행하기 위한 코드;
    상기 제 1 전자 서명이 완료된 상기 최종 전자 계약서를 계약자에게 전송하는 단계를 수행하기 위한 코드;
    상기 최종 전자 계약서의 속성들 중에서 일부의 속성만이 선택적으로 공개되도록 상기 최종 전자 계약서가 처리되고, 그 처리된 계약서에 계약자의 개인키를 이용한 영지식증명에 기초한 제 2 전자 서명이 추가됨으로써 생성된 검증용 전자 계약서를 계약자로부터 수신하는 단계를 수행하기 위한 코드;
    상기 검증용 전자 계약서에 기록되어 있는 상기 부가 정보를 이용하여, 블록체인에서 계약자의 정보, 계약에 관한 정보 및 계약자의 공개키 중 적어도 하나를 검색하여 획득하고, 그 획득한 정보를 이용하여 검증용 전자 계약서의 전자 서명의 유효성에 대한 사전 검증을 수행하는 단계를 수행하기 위한 코드; 그리고
    상기 제 2 전자 서명이 추가된 상기 검증용 전자 계약서를, 계약자의 상기 공개키를 이용하여 검증함으로써, 상기 검증용 전자 계약서를 검증하는 단계를 수행하기 위한 코드를 포함하고,
    상기 최종 전자 계약서와 상기 제 1 전자 서명 및 상기 검증용 전자 계약서와 상기 제 2 전자 서명은 모두 상기 계약자의 동일한 상기 공개키를 이용하여 검증이 가능한 것을 특징으로 하는, 컴퓨터 판독 가능 저장 매체에 저장된 프로그램.
KR1020200157123A 2020-11-20 2020-11-20 영지식증명을 이용한 블록체인 기반의 전자 계약 관리 시스템 및 그 방법 KR102295113B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020200157123A KR102295113B1 (ko) 2020-11-20 2020-11-20 영지식증명을 이용한 블록체인 기반의 전자 계약 관리 시스템 및 그 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020200157123A KR102295113B1 (ko) 2020-11-20 2020-11-20 영지식증명을 이용한 블록체인 기반의 전자 계약 관리 시스템 및 그 방법

Publications (1)

Publication Number Publication Date
KR102295113B1 true KR102295113B1 (ko) 2021-08-31

Family

ID=77489290

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200157123A KR102295113B1 (ko) 2020-11-20 2020-11-20 영지식증명을 이용한 블록체인 기반의 전자 계약 관리 시스템 및 그 방법

Country Status (1)

Country Link
KR (1) KR102295113B1 (ko)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113642048A (zh) * 2021-09-17 2021-11-12 安徽高山科技有限公司 一种保护隐私的合同传输签名方法
CN113761597A (zh) * 2021-09-17 2021-12-07 安徽高山科技有限公司 一种基于可验证凭证vc和区块链签章的合同签署方法
CN113824564A (zh) * 2021-09-17 2021-12-21 江苏通付盾科技有限公司 一种基于区块链的线上签约方法及系统
CN115345760A (zh) * 2022-10-20 2022-11-15 中国信息通信研究院 基于区块链的多方签约方法和装置、电子设备和存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20180024857A (ko) * 2016-08-31 2018-03-08 한국정보인증주식회사 전자 계약 서비스 제공 서버 및 방법
KR20180054530A (ko) * 2018-05-03 2018-05-24 유비벨록스(주) 중계 서버를 이용하는 본인인증 시스템 및 이에 의한 본인인증 방법
KR20190031989A (ko) * 2017-09-19 2019-03-27 주식회사 케이티 블록체인 기반의 전자 계약 처리 시스템 및 방법
KR102074381B1 (ko) * 2019-04-15 2020-02-06 팀블랙버드 주식회사 블록체인 기반의 익명 거래 수행 방법, 장치 및 기록 매체
KR20200094983A (ko) * 2019-01-31 2020-08-10 주식회사 하나은행 블록체인 기반의 전자 계약 방법 및 시스템

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20180024857A (ko) * 2016-08-31 2018-03-08 한국정보인증주식회사 전자 계약 서비스 제공 서버 및 방법
KR20190031989A (ko) * 2017-09-19 2019-03-27 주식회사 케이티 블록체인 기반의 전자 계약 처리 시스템 및 방법
KR20180054530A (ko) * 2018-05-03 2018-05-24 유비벨록스(주) 중계 서버를 이용하는 본인인증 시스템 및 이에 의한 본인인증 방법
KR20200094983A (ko) * 2019-01-31 2020-08-10 주식회사 하나은행 블록체인 기반의 전자 계약 방법 및 시스템
KR102074381B1 (ko) * 2019-04-15 2020-02-06 팀블랙버드 주식회사 블록체인 기반의 익명 거래 수행 방법, 장치 및 기록 매체

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113642048A (zh) * 2021-09-17 2021-11-12 安徽高山科技有限公司 一种保护隐私的合同传输签名方法
CN113761597A (zh) * 2021-09-17 2021-12-07 安徽高山科技有限公司 一种基于可验证凭证vc和区块链签章的合同签署方法
CN113824564A (zh) * 2021-09-17 2021-12-21 江苏通付盾科技有限公司 一种基于区块链的线上签约方法及系统
CN113642048B (zh) * 2021-09-17 2023-09-26 安徽高山科技有限公司 一种保护隐私的合同传输签名方法
CN113761597B (zh) * 2021-09-17 2024-01-19 安徽高山科技有限公司 一种基于可验证凭证vc和区块链签章的合同签署方法
CN115345760A (zh) * 2022-10-20 2022-11-15 中国信息通信研究院 基于区块链的多方签约方法和装置、电子设备和存储介质

Similar Documents

Publication Publication Date Title
KR102295113B1 (ko) 영지식증명을 이용한 블록체인 기반의 전자 계약 관리 시스템 및 그 방법
US11349674B2 (en) Digital certificate management method and apparatus, computer device, and storage medium
CN111213147B (zh) 用于基于区块链的交叉实体认证的系统和方法
US20230376584A1 (en) Systems and methods for device and user authorization
RU2434340C2 (ru) Инфраструктура верификации биометрических учетных данных
KR102177848B1 (ko) 액세스 요청을 검증하기 위한 방법 및 시스템
WO2020062668A1 (zh) 一种身份认证方法、身份认证装置及计算机可读介质
JP4796971B2 (ja) Ocsp及び分散型ocspのための効率的に署名可能なリアルタイム・クレデンシャル
US20020004800A1 (en) Electronic notary method and system
US20030093678A1 (en) Server-side digital signature system
CN111133435B (zh) 用于证实电子文档的方法和服务器
JP2007081482A (ja) 端末認証方法及びその装置、プログラム
KR100731491B1 (ko) 인증서 폐지목록 분산 관리 방법
US11025643B2 (en) Mobile multi-party digitally signed documents and techniques for using these allowing detection of tamper
US20220094542A1 (en) Methods and devices for public key management using a blockchain
WO2018088475A1 (ja) 電子認証方法及びプログラム
JP2023503607A (ja) 自動デジタル証明書検証のための方法およびデバイス
CN112199721A (zh) 认证信息处理方法、装置、设备及存储介质
JP2002101093A (ja) 認証局の公開鍵および秘密鍵満了時の認証のための方法およびシステム
KR20220006234A (ko) 사용자 권한 관리가 가능한 did 생성 방법 및 이를 이용한 사용자 권한 관리 시스템
US20230232222A1 (en) User terminal, authentication terminal, registration terminal, management system and program
Ozcelik et al. Cryptorevocate: A cryptographic accumulator based distributed certificate revocation list
KR102487849B1 (ko) 블록체인에 기반한 민감 정보의 위변조 방지 장치 및 그 방법
JP2023087665A (ja) システム、方法、およびコンピュータプログラム製品(許可型ブロックチェーンのためのマルチ発行者匿名クレデンシャル)
CN117280346A (zh) 用于生成、提供和转发基于与用户相关的电子文件的可信电子数据集或证书的方法和装置

Legal Events

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