KR20190031989A - 블록체인 기반의 전자 계약 처리 시스템 및 방법 - Google Patents

블록체인 기반의 전자 계약 처리 시스템 및 방법 Download PDF

Info

Publication number
KR20190031989A
KR20190031989A KR1020170120378A KR20170120378A KR20190031989A KR 20190031989 A KR20190031989 A KR 20190031989A KR 1020170120378 A KR1020170120378 A KR 1020170120378A KR 20170120378 A KR20170120378 A KR 20170120378A KR 20190031989 A KR20190031989 A KR 20190031989A
Authority
KR
South Korea
Prior art keywords
contract
block chain
data
encrypted
hash value
Prior art date
Application number
KR1020170120378A
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 KR1020170120378A priority Critical patent/KR20190031989A/ko
Publication of KR20190031989A publication Critical patent/KR20190031989A/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
    • G06Q50/00Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
    • G06Q50/10Services
    • G06Q50/18Legal services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6209Protecting access to data via a platform, e.g. using keys or access control rules to a single file or object, e.g. in a secure envelope, encrypted and accessed using a key, or with access control rules appended to the object itself
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/10Office automation; Time management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Strategic Management (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Tourism & Hospitality (AREA)
  • Human Resources & Organizations (AREA)
  • Computer Security & Cryptography (AREA)
  • General Engineering & Computer Science (AREA)
  • Economics (AREA)
  • General Business, Economics & Management (AREA)
  • Bioethics (AREA)
  • Marketing (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Quality & Reliability (AREA)
  • Operations Research (AREA)
  • Data Mining & Analysis (AREA)
  • Technology Law (AREA)
  • Primary Health Care (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

블록체인 기반의 전자 계약 처리 시스템 및 방법에 관한 기술이 개시된다.
본 발명의 일 실시예에 따른 블록체인 기반의 전자 계약 처리 시스템은, 사용자의 단말로부터 전자 계약에 필요한 계약 정보를 수집하여 상기 전자 계약의 체결을 증명하는 계약서 데이터를 생성하는 계약 처리부; 상기 계약서 데이터를 암호화하여 암호화된 계약서 데이터를 생성하는 암호 처리부; 및 블록체인 노드의 블록체인에 데이터를 저장하는 트랜잭션을 발생시켜 상기 블록체인에 상기 암호화된 계약서 데이터를 저장하고, 상기 사용자의 요청이 있는 경우 상기 블록체인을 조회하여 상기 암호화된 계약서 데이터를 획득하는 계약서 관리부를 포함하고, 상기 계약서 관리부는, 상기 암호화된 계약서 데이터의 임시 보관 필요 여부에 따라 상기 암호화된 계약서 데이터를, 일정한 존속 기간이 부여되는 블록체인으로서 해당 존속 기간의 경과시 블록체인 전체가 삭제되는 임시 보관용 블록체인에 저장하거나, 존속 기간이 부여되지 않은 영구 보관용 블록체인에 저장하여, 전자 계약의 체결에 따라 생성되는 계약서 데이터의 위·변조를 방지하고, 저장된 계약서 데이터의 손실 발생시 데이터 복구를 용이하게 함은 물론, 계약이 철회 또는 취소된 경우 등과 같이 블록체인에 저장된 계약서 데이터의 삭제가 필요한 경우에도 능동적 대처가 가능하다.

Description

블록체인 기반의 전자 계약 처리 시스템 및 방법{System and method for processing electronic contracts based on blockchain}
본 발명은 블록체인 기반의 전자 계약 처리 시스템 및 방법에 관한 것으로서, 더욱 상세하게는, 사용자 단말과 통신하여 전자 계약 체결 절차를 진행하고 해당 전자 계약의 계약서 데이터를 블록체인에 저장하여 관리하는 블록체인 기반의 전자 계약 처리 시스템 및 방법에 관한 것이다.
일반적으로, 전자 계약(electronic contract)은 통신 네트워크를 통한 전자적 의사 표시의 합의로 성립되는 계약을 말한다. 최근, 통신 기술의 발전과 개인 통신 장치의 보급에 따라 전자 계약 기술은 금융, 보험, 통신 서비스 등 당사자들 간의 계약을 요하는 다양한 산업 분야에 적용되고 있다.
그러나, 한국 등록특허 제10-1132672호 등에 개시된 바와 같이, 기존 기술들은 전자 계약 체결에 따라 작성된 전자 계약서를 단일한 중앙 서버에 집중적으로 저장하여 관리하기 때문에, 저장된 데이터의 위·변조가 용이하고, 해커 등과 같은 악의적인 공격자들의 집중 공격 대상이 되며, 저장된 데이터의 손실 발생시 데이터 복구가 어렵다는 문제가 있다. 또한, 이러한 기존 기술들은 중앙 서버가 전체 시스템의 단일 장애 지점(SPOF:Single Point of Failure)을 구성하기 때문에, 전자 계약서를 저장하는 중앙 서버에 장애가 발생하면 시스템 전체가 중단되어 전자 계약서의 열람이나 출력 등이 불가능해진다는 문제가 있다.
또한, 한국 등록특허 제10-1680540호 등에 개시된 바와 같이, 기존 기술들은 블록체인 기술을 이용하여 증명서 등에 대한 인증을 수행하고 있으나, 해당 문서를 직접 블록체인에 저장하여 관리하는 방안을 제시하지 못하고 있는 문제가 있다. 더욱이, 기존 기술들은, 저장된 데이터의 변경과 삭제가 불가능한 블록체인의 비가역적 특성을 보완하여 블록체인에 저장된 데이터를 삭제하는 방안을 전혀 제시하지 못하고 있기 때문에, 전자 계약서의 저장은 물론 계약의 철회나 취소에 따라 저장된 전자 계약서를 삭제해야 하는 전자 계약 처리 시스템에 적용될 수 없다는 문제가 있다.
본 발명이 해결하고자 하는 기술적 과제는, 전자 계약의 체결에 따라 생성되는 계약서 데이터의 위·변조를 방지하고, 저장된 계약서 데이터의 손실 발생시 데이터 복구를 용이하게 함은 물론, 계약이 철회 또는 취소된 경우 등과 같이 블록체인에 저장된 계약서 데이터의 삭제가 필요한 경우에도 능동적 대처가 가능한 블록체인 기반의 전자 계약 처리 시스템 및 방법을 제공하는 것이다.
본 발명의 일 실시예에 따른 블록체인 기반의 전자 계약 처리 시스템은, 사용자의 단말로부터 전자 계약에 필요한 계약 정보를 수집하여 상기 전자 계약의 체결을 증명하는 계약서 데이터를 생성하는 계약 처리부; 상기 계약서 데이터를 암호화하여 암호화된 계약서 데이터를 생성하는 암호 처리부; 및 블록체인 노드의 블록체인에 데이터를 저장하는 트랜잭션을 발생시켜 상기 블록체인에 상기 암호화된 계약서 데이터를 저장하고, 상기 사용자의 요청이 있는 경우 상기 블록체인을 조회하여 상기 암호화된 계약서 데이터를 획득하는 계약서 관리부를 포함하고, 상기 계약서 관리부는, 상기 암호화된 계약서 데이터의 임시 보관 필요 여부에 따라 상기 암호화된 계약서 데이터를, 일정한 존속 기간이 부여되는 블록체인으로서 해당 존속 기간의 경과시 블록체인 전체가 삭제되는 임시 보관용 블록체인에 저장하거나, 존속 기간이 부여되지 않은 영구 보관용 블록체인에 저장할 수 있다.
일 실시예에 있어서, 상기 계약 처리부는, 상기 단말과 통신하여 상기 사용자가 입력한 계약 정보를 수집하는 계약 정보 수집부; 및 상기 계약 정보에 따른 전자 계약서를 이미지 파일로 획득하고 상기 이미지 파일을 HEX 코드로 변환하여 상기 계약서 데이터를 생성하는 이미지 처리부를 포함할 수 있다.
일 실시예에 있어서, 상기 암호 처리부는, 대칭키 암호화 방식으로 상기 암호화된 계약서 데이터를 생성하여 상기 계약서 관리부로 전송하고, 차후 상기 사용자의 요청이 있는 경우 상기 계약서 관리부를 통해 상기 블록체인에 저장된 상기 암호화된 계약서 데이터를 수신하여 복호화할 수 있다.
일 실시예에 있어서, 상기 계약서 관리부는, 상기 암호화된 계약서 데이터의 임시 보관 필요 여부에 따라 상기 임시 보관용 블록체인 또는 상기 영구 보관용 블록체인을 상기 암호화된 계약서 데이터를 저장할 블록체인으로 결정하는 블록체인 관리부; 상기 블록체인 관리부의 결정에 따라 상기 임시 보관용 블록체인 또는 상기 영구 보관용 블록체인에 상기 암호화된 계약서 데이터를 저장하기 위한 블록체인 주소를 생성하는 블록체인 주소 생성부; 및 상기 블록체인 관리부의 결정에 따라 트랜잭션을 발생시켜 상기 트랜잭션을 식별하는 트랜잭션 ID와 함께 상기 블록체인 주소, 상기 트랜잭션의 발생 시각을 나타내는 타임스탬프, 및 상기 암호화된 계약서 데이터를 해당 블록체인에 저장하는 트랜잭션 발생부를 포함할 수 있다.
일 실시예에 있어서, 상기 블록체인 관리부는, 상기 암호화된 계약서 데이터가 상기 임시 보관용 블록체인에 저장된 후 상기 전자 계약의 계약 내용에 따른 계약서 임시 보관 기간이 경과된 경우, 상기 영구 보관용 블록체인을 상기 암호화된 계약서 데이터를 저장할 블록체인으로 결정하고, 상기 계약서 관리부는, 상기 임시 보관용 블록체인을 조회하여 상기 임시 보관용 블록체인에 저장된 상기 암호화된 계약서 데이터를 획득하는 블록체인 조회부를 더 포함할 수 있다.
일 실시예에 있어서, 상기 시스템은, 상기 전자 계약과 관련하여 인증용 키 페어를 생성하고, 상기 인증용 키 페어의 제1 인증용 키를 자체 저장하는 한편, 상기 인증용 키 페어의 제2 인증용 키를 상기 계약서 관리부로 전송하여 상기 암호화된 계약서 데이터와 함께 상기 블록체인에 저장되도록 하는 인증 정보 관리부; 및 상기 사용자의 요청에 대응하여 상기 블록체인에 저장된 상기 제2 인증용 키를 획득하고, 상기 제1 인증용 키를 보관 중인 상기 인증 정보 관리부와 연동하여 상기 제1 인증용 키와 상기 획득된 제2 인증용 키가 인증용 키 페어에 해당하는 것임을 검증함으로써 사용자 인증을 수행하는 사용자 인증부를 더 포함할 수 있다.
일 실시예에 있어서, 상기 인증 정보 관리부는, 상기 제1 인증용 키로서 비밀키를 생성하고 상기 제2 인증용 키로서 상기 비밀키에 대응하는 공개키를 생성하는 인증용 키 페어 생성부; 상기 사용자에게 제공되는 개인 고유 코드를 생성하는 개인 고유 코드 생성부; 및 상기 인증용 키 페어 중 상기 제1 인증용 키와 상기 개인 고유 코드를 상호 연관시켜 저장하는 키 관리부를 포함할 수 있다.
일 실시예에 있어서, 상기 사용자 인증부는, 상기 사용자의 요청에 대응하여 상기 블록체인에 저장된 상기 제2 인증용 키를 획득하는 키 획득부; 임의의 토큰을 생성하여 상기 인증 정보 관리부로 전송하는 토큰 생성부; 및 상기 토큰을 상기 제1 인증용 키로 암호화한 암호화 토큰을 상기 인증 정보 관리부로부터 수신하고, 상기 암호화 토큰을 상기 획득된 제2 인증용 키로 복호화하여 상기 토큰과 비교함으로써 상기 사용자 인증을 수행하는 인증 수행부를 포함할 수 있다.
일 실시예에 있어서, 상기 시스템은, 상기 계약 처리부에 의해 생성된 상기 계약서 데이터로부터 계약서 원본 증명용 해시값을 생성하여 상기 사용자에게 제공되도록 하고, 상기 사용자의 계약서 원본 증명 요청이 있는 경우, 상기 블록체인에 저장된 상기 암호화된 계약서 데이터를 복호화함으로써 생성되는 복호화된 계약서 데이터로부터 계약서 해시값을 생성하는 증명 정보 생성부; 및 상기 시스템이 상기 사용자의 상기 단말 또는 타 단말로부터 상기 사용자에게 제공된 계약서 원본 증명용 해시값을 수신하면, 상기 수신된 계약서 원본 증명용 해시값과 상기 계약서 해시값을 비교하여 상기 복호화된 계약서 데이터가 상기 전자 계약의 계약서 원본에 대응하는 것임을 증명하는 계약서 원본 증명부를 더 포함할 수 있다.
일 실시예에 있어서, 상기 증명 정보 생성부는, 상기 계약 처리부에 의해 생성된 상기 계약서 데이터를 1차 해시 처리함으로써 제1 중간 해시값을 생성하는 1차 해시 처리부; 상기 제1 중간 해시값을 상기 트랙잭션의 발생 시각을 나타내는 타임스탬프와 연관시켜 2차 해시 처리함으로써 상기 계약서 원본 증명용 해시값을 생성하는 2차 해시 처리부를 포함할 수 있다.
일 실시예에 있어서, 상기 1차 해시 처리부는, 상기 사용자의 계약서 원본 증명 요청이 있는 경우, 상기 복호화된 계약서 데이터를 1차 해시 처리함으로써 제2 중간 해시값을 생성하고, 상기 2차 해시 처리부는, 상기 제2 중간 해시값을 상기 타임스탬프와 연관시켜 2차 해시 처리함으로써 상기 계약서 해시값을 생성할 수 있다.
일 실시예에 있어서, 상기 계약서 원본 증명부는, 상기 수신된 계약서 원본 증명용 해시값과 상기 계약서 해시값을 비교하여 상기 복호화된 계약서 데이터가 상기 전자 계약의 계약서 원본에 대응하는 것인지를 판별하는 계약서 원본 판별부; 및 상기 복호화된 계약서 데이터가 상기 전자 계약의 계약서 원본에 대응하는 것으로 판별되면, 상기 복호화된 계약서 데이터 또는 상기 복호화된 계약서 데이터로부터 생성되는 전자 계약서에 대한 원본 증명서를 발급하는 원본 증명서 발급부를 포함할 수 있다.
일 실시예에 있어서, 상기 시스템은, 상기 수신된 계약서 원본 증명용 해시값을 인증용 키 페어의 제1 인증용 키로 암호화하여 암호화된 해시값을 생성하고, 상기 암호화된 해시값을 상기 계약서 원본 증명부로 전송하는 인증 정보 관리부를 더 포함하고, 상기 계약서 원본 증명부는, 상기 인증용 키 페어의 제2 인증용 키로서 상기 암호화된 계약서 데이터와 함께 상기 블록체인에 저장된 제2 인증용 키를 이용하여 상기 암호화된 해시값을 복호화함으로써, 상기 수신된 계약서 원본 증명용 해시값을 획득하는 해시값 획득부를 더 포함할 수 있다.
본 발명에 일 실시예에 따른 블록체인 기반의 전자 계약 처리 방법은, 사용자의 단말 및 블록체인 네트워크의 블록체인 노드와 통신하는 전자 계약 처리 시스템이 블록체인을 기반으로 전자 계약을 처리하는 방법으로서, 상기 시스템이 상기 단말로부터 전자 계약에 필요한 계약 정보를 수집하여 상기 전자 계약의 체결을 증명하는 계약서 데이터를 생성하는 단계; 상기 시스템이 상기 계약서 데이터를 암호화하여 암호화된 계약서 데이터를 생성하는 단계; 상기 시스템이 상기 블록체인 노드의 블록체인에 데이터를 저장하는 트랜잭션을 발생시켜 상기 블록체인에 상기 암호화된 계약서 데이터를 저장하는 단계; 및 상기 사용자의 요청이 있는 경우, 상기 시스템이 상기 블록체인을 조회하여 상기 암호화된 계약서 데이터를 획득하는 단계를 포함하고, 상기 암호화된 계약서 데이터를 저장하는 단계는, 상기 시스템이 상기 암호화된 계약서 데이터의 임시 보관 필요 여부에 따라 상기 암호화된 계약서 데이터를, 일정한 존속 기간이 부여되는 블록체인으로서 해당 존속 기간의 경과시 블록체인 전체가 삭제되는 임시 보관용 블록체인에 저장하거나, 존속 기간이 부여되지 않은 영구 보관용 블록체인에 저장하는 단계를 포함할 수 있다.
일 실시예에 있어서, 상기 계약서 데이터를 생성하는 단계는, 상기 시스템이 상기 단말과 통신하여 상기 사용자가 입력한 계약 정보를 수집하는 단계; 및 상기 시스템이 상기 계약 정보에 따른 전자 계약서를 이미지 파일로 획득하고 상기 이미지 파일을 HEX 코드로 변환하여 상기 계약서 데이터를 생성하는 단계를 포함할 수 있다.
일 실시예에 있어서, 상기 암호화된 계약서 데이터를 저장하는 단계는, 상기 시스템이 상기 암호화된 계약서 데이터의 임시 보관 필요 여부에 따라 상기 임시 보관용 블록체인 또는 상기 영구 보관용 블록체인을 상기 암호화된 계약서 데이터를 저장할 블록체인으로 결정하는 단계; 상기 시스템이 상기 임시 보관용 블록체인 또는 상기 영구 보관용 블록체인에 상기 암호화된 계약서 데이터를 저장하기 위한 블록체인 주소를 생성하는 단계; 및 상기 시스템이 트랜잭션을 발생시켜 상기 트랜잭션을 식별하는 트랜잭션 ID와 함께 상기 블록체인 주소, 상기 트랜잭션의 발생 시각을 나타내는 타임스탬프, 및 상기 암호화된 계약서 데이터를 해당 블록체인에 저장하는 단계를 포함할 수 있다.
일 실시예에 있어서, 상기 암호화된 계약서 데이터를 저장하는 단계는, 상기 암호화된 계약서 데이터가 상기 임시 보관용 블록체인에 저장된 후 상기 전자 계약의 계약 내용에 따른 계약서 임시 보관 기간이 경과된 경우, 상기 시스템이 상기 영구 보관용 블록체인을 상기 암호화된 계약서 데이터를 저장할 블록체인으로 결정하는 단계; 및 상기 시스템이 상기 임시 보관용 블록체인을 조회하여 상기 임시 보관용 블록체인에 저장된 상기 암호화된 계약서 데이터를 획득하고, 상기 획득된 암호화된 계약서 데이터를 상기 영구 보관용 블록체인에 저장하는 단계를 더 포함할 수 있다.
일 실시예에 있어서, 상기 방법은, 상기 시스템이 상기 전자 계약과 관련하여 인증용 키 페어를 생성하고, 상기 인증용 키 페어의 제1 인증용 키를 자체 저장하는 한편, 상기 인증용 키 페어의 제2 인증용 키를 상기 암호화된 계약서 데이터와 함께 상기 블록체인에 저장하는 인증용 키 저장 단계; 및 상기 시스템이 상기 사용자의 요청에 대응하여 상기 블록체인에 저장된 상기 제2 인증용 키를 획득하고, 자체 보관 중인 상기 제1 인증용 키와 상기 획득된 제2 인증용 키가 인증용 키 페어에 해당하는 것임을 검증함으로써 사용자 인증을 수행하는 사용자 인증 단계를 더 포함할 수 있다.
일 실시예에 있어서, 상기 인증용 키 저장 단계는, 상기 시스템이 상기 제1 인증용 키로서 비밀키를 생성하고 상기 제2 인증용 키로서 상기 비밀키에 대응하는 공개키를 생성하는 단계; 상기 시스템이 상기 사용자에게 제공되는 개인 고유 코드를 생성하는 단계; 및 상기 시스템이 상기 인증용 키 페어 중 상기 제1 인증용 키와 상기 개인 고유 코드를 상호 연관시켜 저장하는 단계를 포함할 수 있다.
일 실시예에 있어서, 상기 사용자 인증 단계는, 상기 시스템이 상기 사용자의 요청에 대응하여 상기 블록체인에 저장된 상기 제2 인증용 키를 획득하는 단계; 상기 시스템이 임의의 토큰을 생성하는 단계; 및 상기 시스템이 상기 토큰을 상기 제1 인증용 키로 암호화하고, 상기 암호화된 토큰을 상기 획득된 제2 인증용 키로 복호화하여 상기 토큰과 비교함으로써 상기 사용자 인증을 수행하는 단계를 포함할 수 있다.
일 실시예에 있어서, 상기 방법은, 상기 시스템이 상기 계약서 데이터로부터 계약서 원본 증명용 해시값을 생성하는 단계; 상기 시스템이 상기 계약서 원본 증명용 해시값을 상기 사용자에게 제공하는 단계; 상기 사용자의 계약서 원본 증명 요청이 있는 경우, 상기 시스템이 상기 사용자의 상기 단말 또는 타 단말로부터 상기 사용자에게 제공된 계약서 원본 증명용 해시값을 수신하고, 상기 블록체인에 저장된 상기 암호화된 계약서 데이터를 복호화함으로써 생성되는 복호화된 계약서 데이터로부터 계약서 해시값을 생성하는 단계; 및 상기 시스템이 상기 수신된 계약서 원본 증명용 해시값과 상기 계약서 해시값을 비교하여 상기 복호화된 계약서 데이터가 상기 전자 계약에 대응하는 것임을 증명하는 단계를 더 포함할 수 있다.
일 실시예에 있어서, 상기 계약서 원본 증명용 해시값을 생성하는 단계는, 상기 계약서 데이터를 1차 해시 처리함으로써 제1 중간 해시값을 생성하는 단계; 및 상기 제1 중간 해시값을 상기 트랙잭션의 발생 시각을 나타내는 타임스탬프와 연관시켜 2차 해시 처리함으로써 상기 계약서 원본 증명용 해시값을 생성하는 단계를 포함할 수 있다.
일 실시예에 있어서, 상기 계약서 해시값을 생성하는 단계는, 상기 사용자의 계약서 원본 증명 요청이 있는 경우, 상기 복호화된 계약서 데이터를 1차 해시 처리함으로써 제2 중간 해시값을 생성하는 단계; 및 상기 제2 중간 해시값을 상기 타임스탬프와 연관시켜 2차 해시 처리함으로써 상기 계약서 해시값을 생성하는 단계를 포함할 수 있다.
일 실시예에 있어서, 상기 증명하는 단계는, 상기 시스템이 상기 수신된 계약서 원본 증명용 해시값과 상기 계약서 해시값을 비교하여 상기 복호화된 계약서 데이터가 상기 전자 계약의 계약서 원본에 대응하는 것인지를 판별하는 단계; 및 상기 복호화된 계약서 데이터가 상기 전자 계약의 계약서 원본에 대응하는 것으로 판별되면, 상기 시스템이 상기 복호화된 계약서 데이터 또는 상기 복호화된 계약서 데이터로부터 생성되는 전자 계약서에 대한 원본 증명서를 발급하는 단계를 포함할 수 있다.
일 실시예에 있어서, 상기 증명하는 단계는, 상기 판별하는 단계 전에, 상기 시스템이 상기 수신된 계약서 원본 증명용 해시값을 인증용 키 페어의 제1 인증용 키로 암호화하여 암호화된 해시값을 생성하는 단계; 및 상기 시스템이 상기 인증용 키 페어의 제2 인증용 키로서 상기 암호화된 계약서 데이터와 함께 상기 블록체인에 저장된 제2 인증용 키를 이용하여 상기 암호화된 해시값을 복호화하는 단계를 더 포함할 수 있다.
본 발명에 따른 실시예들은, 상술한 동작 또는 방법을 컴퓨터 시스템을 통해 실행하는 컴퓨터 프로그램으로서 기록매체에 기록되는 컴퓨터 프로그램을 이용하여을 구현될 수 있다.
본 발명에 따르면, 사용자 단말과 통신하는 전자 계약 처리 시스템을 통해 전자 계약의 체결을 증명하는 계약서 데이터를 생성하고, 저장된 데이터의 변경과 삭제가 불가능한 블록체인에 해당 계약서 데이터를 저장함으로써, 계약서 데이터의 위·변조를 방지하고 데이터 무결성을 보장할 수 있다.
또한, 전자 계약의 계약서 데이터가 블록체인 기술의 분산 저장 방식을 통해 다수의 블록체인 노드에 분산 저장되도록 함으로써, 해커 등과 같은 악의적인 공격자들의 집중 공격 문제를 해결하고, 저장된 데이터의 손실 발생시 데이터 복구를 용이하게 함은 물론, 특정 노드에 장애가 발생한 경우라도 사용자의 계약서 열람 또는 출력 등을 가능하게 할 수 있다.
또한, 전자 계약의 계약서 데이터를 암호화된 상태로 블록체인에 저장함으로써, 전자 계약의 보안성을 확보하고 개인 정보 등의 유출을 방지할 수 있다.
또한, 전자 계약의 계약 철회 기간이나 계약 취소 기간이 정해지는 등 전자 계약의 계약 내용상 계약서 데이터의 임시 보관이 필요한 경우, 일정한 존속 기간이 부여되어 해당 존속 기간의 경과시 블록체인 전체가 삭제되는 임시 보관용 블록체인에 해당 계약서 데이터를 저장함으로써, 계약이 철회 또는 취소된 경우 등과 같이 블록체인에 저장된 계약서 데이터의 삭제가 필요한 경우에도 능동적으로 대처할 수 있다.
또한, 계약서 데이터를 블록체인에 저장하는 트랜잭션의 타임스탬프와 연관되어 중복적으로 해시 처리된 해시값들을 이용하여 상기 블록체인에 저장된 계약서 데이터가 계약서 원본에 대응하는 것임을 증명함으로써, 상기 전자 계약 처리 시스템에 의해 제공되는 전자 계약서의 위·변조 여부를 계약서 데이터의 저장 시점을 기반으로 판별하고, 전자 계약 처리 시스템의 신뢰성과 계약 증명력을 개선할 수 있다.
나아가, 본 발명이 속하는 기술 분야의 통상의 지식을 가진 자라면, 본 발명에 따른 여러 실시예들이 상기 언급되지 않은 여러 기술적 과제들을 해결할 수 있음을 이하의 설명으로부터 자명하게 이해할 수 있을 것이다.
도 1은 본 발명이 적용되는 통신 네트워크 환경의 일례를 나타낸 도면이다.
도 2는 본 발명의 일 실시예에 따른 블록체인 기반의 전자 계약 처리 시스템을 나타낸 블록도이다.
도 3은 본 발명의 일 실시예에 따른 블록체인 기반의 전자 계약 처리 방법의 계약서 데이터 생성 및 저장 프로세스를 나타낸 흐름도이다.
도 4는 본 발명의 일 실시예에 따른 블록체인 기반의 전자 계약 처리 시스템에 저장된 데이터 구조의 일례를 나타낸 도면이다.
도 5는 블록체인에 저장된 트랜잭션 데이터 구조의 일례를 나타낸 도면이다.
도 6은 본 발명의 일 실시예에 따른 블록체인 기반의 전자 계약 처리 방법의 계약서 원본 증명 정보 생성 프로세스를 나타낸 흐름도이다.
도 7은 본 발명의 일 실시예에 따른 블록체인 기반의 전자 계약 처리 방법의 계약서 데이터 이전 프로세스를 나타낸 흐름도이다.
도 8은 본 발명의 일 실시예에 따른 블록체인 기반의 전자 계약 처리 방법의 사용자 보관용 전자 계약 정보 제공 프로세스를 나타낸 흐름도이다.
도 9는 본 발명의 일 실시예에 따른 블록체인 기반의 전자 계약 처리 방법의 사용자 인증 프로세스를 나타낸 흐름도이다.
도 10은 본 발명의 일 실시예에 따른 블록체인 기반의 전자 계약 처리 방법의 계약서 열람 프로세스를 나타낸 흐름도이다.
도 11은 본 발명의 일 실시예에 따른 블록체인 기반의 전자 계약 처리 방법의 계약서 원본 증명 프로세스를 나타낸 흐름도이다.
이하, 본 발명의 기술적 과제에 대한 해결 방안을 명확화하기 위해 첨부도면을 참조하여 본 발명의 실시예들을 상세하게 설명한다. 다만, 본 발명을 설명함에 있어서 관련 공지기술에 관한 설명이 오히려 본 발명의 요지를 불명료하게 하는 경우 그에 관한 설명은 생략하기로 한다. 또한, 후술하는 용어들은 본 발명에서의 기능을 고려하여 정의된 용어들로서 이는 설계자, 제조자 등의 의도 또는 관례 등에 따라 달라질 수 있을 것이다. 그러므로 그 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다.
도 1에는 본 발명이 적용되는 통신 네트워크 환경의 일례가 도시되어 있다.
도 1에 도시된 바와 같이, 본 발명이 적용되는 통신 네트워크 환경은 사용자 단말(10) 및 블록체인 시스템(20)과, 본 발명에 따른 전자 계약 처리 시스템(100)을 포함할 수 있다.
상기 사용자 단말(10)은, 전자 계약의 당사자인 사용자가 사용하는 유·무선 통신 장치로서, 스마트폰, 태블릿 PC, 노트북 등과 같은 모바일 단말(10a)이거나 데스크톱 컴퓨터 등과 같은 고정 단말(10b)일 수 있다. 사용자 단말(10)은, 전자 계약의 당사자인 사용자로부터 전자 계약 체결에 필요한 계약 정보를 입력받아 전자 계약 처리 시스템(100)으로 전송함으로써 전자 계약 절차를 진행하고, 전자 계약 처리 시스템(100)에 접속하여 전자 계약서를 열람하거나, 전자 계약 처리 시스템(100)으로부터 전자 계약서 파일 또는 전자 계약서의 원본 증명서 파일 등을 수신할 수 있다. 이를 위해, 사용자 단말(10)은 유·무선 통신을 수행하는 통신부와 함께, 입력부, 저장부, 출력부 및 이들을 제어하는 제어부 등을 포함할 수 있다. 이 경우, 입력부는 터치 패널, 키보드, 마우스 등을 포함할 수 있다. 저장부는 RAM, ROM 등의 메모리와 버퍼 등을 포함할 수 있다. 출력부는 디스플레이, 스피커, 프린터 등을 포함할 수 있다. 또한, 이러한 사용자 단말(10)에는 전자 계약 처리 시스템(100)과 연동하여 전자 계약 절차를 진행하는 애플리케이션 또는 소프트웨어가 설치되어 구동될 수 있다.
상기 블록체인 시스템(20)은, 각각 블록체인을 보유하며 블록체인 네트워크를 구성하는 다수의 블록체인 노드(22)를 포함할 수 있다. 블록체인 시스템(20)은 전자 계약 처리 시스템(100)에서 생성된 전자 계약 관련 데이터를 블록체인 노드(22)의 블록체인에 보관할 수 있다.
블록체인 네트워크를 구성하는 블록체인 노드들은, 전자 계약 처리 시스템(100)에서 생성된 전자 계약 관련 데이터들을, 블록체인 기술을 통해 분산 저장할 수 있다. 블록체인(block chain) 기술은, 예컨대 비트코인(Bitcoin), 이더리움(Ethereum), 하이퍼렛저 패브릭(Hyperledger Fabric) 등과 같이 특정 데이터나 디지털 거래 장부 등을 중앙 집중형 서버가 아닌 다수의 블록체인 노드에 분산 저장하여 공동으로 관리하는 기술이다. 즉, 블록체인 기술은 정보로의 접근을 차단하는 방식이 아닌 정보를 공유하고 분산 저장하는 방식으로 해당 정보의 위·변조를 방지하는 기술이다. 이러한 블록체인 기술의 블록체인은 저장된 데이터의 변경과 삭제가 불가능한 비가역적 특성을 가진다.
이러한 블록체인 노드들은, 블록체인에 데이터를 저장하기 위해 발생되는 트랜잭션(transaction)의 승인, 블록체인을 이용한 트랜잭션 데이터의 저장, 다른 노드들과의 주기적인 블록 분산 합의 등을 수행할 수 있다. 각각의 블록체인 노드(22)는 서버나 PC 등과 같은 컴퓨터 시스템으로 구성될 수 있으며, 블록체인 기술을 지원하는 블록체인 프로그램이 설치될 수 있다. 이 경우, 블록체인 노드(22)에 설치된 블록체인 프로그램은 블록체인에 저장되는 데이터의 크기나 종류를 제한하지 않도록 설정될 수 있다.
한편, 본 발명에 있어서 블록체인 시스템(20)은, 임시 보관용 블록체인 시스템(20a)과 영구 보관용 블록체인 시스템(20b)으로 분리되어 운영될 수 있다. 이 경우, 임시 보관용 블록체인 시스템(20a)에 포함된 블록체인 노드(22)는 일정한 존속 기간이 부여되는 블록체인으로서 해당 존속 기간의 경과시 블록체인 전체가 삭제되는 임시 보관용 블록체인을 보유할 수 있다. 반면, 영구 보관용 블록체인 시스템(20b)에 포함된 블록체인 노드(22)는 존속 기간이 부여되지 않은 영구 보관용 블록체인을 보유할 수 있다. 이와 같이 블록체인 시스템(20)이 임시 보관용 블록체인 시스템(20a)과 영구 보관용 블록체인 시스템(20b)으로 분리되어 운영되는 이유는, 전자 계약 처리 시스템(100)을 통해 체결되는 전자 계약의 목적, 계약 조건 등에 따라 해당 계약서 데이터를 일정 기간 삭제 가능한 상태로 임시 보관할 필요가 있기 때문이다. 예컨대, 전자 계약의 계약 조건상 계약 철회 기간이나 계약 취소 기간이 정해져 있고, 실제로 계약 당사자에 의한 계약 철회나 계약 취소가 발생한 경우, 해당 전자 계약의 계약서 데이터는 삭제되어야 한다. 그러나 해당 전자 계약의 계약서 데이터가 일반적인 블록체인에 저장되어 있다면, 저장된 데이터의 삭제 및 변경이 불가능한 블록체인의 특성상 계약서 데이터를 삭제할 수 없다. 따라서, 본 발명은, 전자 계약의 목적, 계약 조건 등에 따라 계약서 데이터를 일정 기간 삭제 가능한 상태로 임시 보관할 필요가 있는 경우, 해당 계약서 데이터를 일정한 존속 기간이 부여되어 해당 존속 기간의 경과시 블록체인 전체가 삭제되는 임시 보관용 블록체인에 저장한다. 또한, 본 발명은, 전자 계약의 계약 조건으로 정해진 계약 철회 기간이나 계약 취소 기간이 계약 당사자의 계약 철회나 취소 없이 경과되어 계약 데이터를 임시 보관할 필요가 없어지면, 임시 보관용 블록체인에 저장되었던 해당 계약서 데이터를 영구 보관용 블록체인으로 이전하여 저장할 수 있다.
실시예에 따라, 상기 블록체인 시스템(20)은 단일한 블록체인 시스템으로 구성되되, 해당 블록체인 시스템에 포함된 각각의 블록체인 노드(22)가 상술한 임시 보관용 블록체인과 영구 보관용 블록체인을 모두 보유하도록 구성될 수도 있다.
또한, 상기 블록체인 시스템(20)은 비트코인이나 이더리움 등과 같이 누구나 접근할 수 있는 퍼블릭 체인(public chain)이 아닌, 전자 계약 서비스 사용자들만 접근할 수 있는 프라이빗 체인(private chain)으로 구성될 수 있다.
본 발명에 따른 블록체인 기반의 전자 계약 처리 시스템(100)은, 이러한 통신 네트워크 환경에 적용되어 서비스 사용자 단말(10) 및 블록체인 시스템(20)의 블록체인 노드(22)와 통신을 수행하며 전자 계약 체결 절차를 진행하고 해당 전자 계약의 계약서 데이터를 블록체인에 저장하여 관리할 수 있다. 또한, 본 발명에 따른 블록체인 기반의 전자 계약 처리 시스템(100)은, 사용자의 계약서 열람 요청 또는 계약서 원본 증명 요청에 따라, 해당 사용자에 대한 인증을 수행하고, 블록체인에 저장된 데이터를 처리하여 사용자에게 전자 계약서를 제공함은 물론, 해당 전자 계약서가 계약서 원본에 대응하는 것임을 증명하는 원본 증명서를 발급할 수 있다.
도 2에는 본 발명의 일 실시예에 따른 블록체인 기반의 전자 계약 처리 시스템(100)이 블록도로 도시되어 있다.
도 2에 도시된 바와 같이, 본 발명의 일 실시예에 따른 블록체인 기반의 전자 계약 처리 시스템(100)은 계약 처리부(110), 암호 처리부(120) 및 계약서 관리부(130)를 포함할 수 있으며, 실시예에 따라 인증 정보 관리부(140), 사용자 인증부(150), 증명 정보 생성부(160), 계약서 원본 증명부(170), 계약 정보 발송부(180) 등을 더 포함할 수 있다. 또한, 상기 전자 계약 처리 시스템(100)은 통신 네트워크를 통해 사용자 단말(10) 및 블록체인 시스템(20)의 블록체인 노드(22)와 유·무선 통신을 수행하는 통신부(101), 시스템 운영자의 명령을 입력받는 입력부(102), 전자 계약 체결 과정에서 수집 또는 생성되는 데이터를 저장하는 저장부(103), 데이터를 시·청각적으로 출력하는 출력부(104), 및 시스템 동작을 전반적으로 제어하는 제어부(105)를 포함하는 서버 등의 컴퓨터 시스템으로 구성될 수 있다. 이 경우, 계약 처리부(110), 암호 처리부(120), 계약서 관리부(130), 인증 정보 관리부(140), 사용자 인증부(150), 증명 정보 생성부(160), 계약서 원본 증명부(170), 계약 정보 발송부(180)는 마이크로프로세서와 이를 구동하는 컴퓨터 프로그램의 결합으로 구현되는 제어부(105)의 구성 모듈들일 수 있다. 또한, 상기 전자 계약 처리 시스템(100)은 단일한 서버로 구성되거나 물리적으로 독립되어 상호 연동하는 복수의 서버들로 구성될 수 있다.
우선, 상기 계약 처리부(110)는, 사용자의 단말로부터 전자 계약에 필요한 계약 정보를 수집하여 상기 전자 계약의 체결을 증명하는 계약서 데이터를 생성할 수 있다. 이를 위해, 계약 처리부(110)는 후술되는 계약 정보 수집부(112) 및 이미지 처리부(112)를 포함할 수 있다.
상기 암호 처리부(120)는, 계약 처리부(110)에서 생성된 계약서 데이터를 암호화하여 암호화된 계약서 데이터를 생성할 수 있다. 이 경우, 암호 처리부(120)는 대칭키 암호화 방식으로 상기 암호화된 계약서 데이터를 생성하여 계약서 관리부(130)로 전송하고, 차후 사용자의 계약서 열람 요청 또는 계약서 원본 증명 요청 등이 있는 경우 블록체인에 저장된 암호화된 계약서 데이터를 상기 계약서 관리부(130)를 통해 수신하여 복호화할 수 있다.
상기 계약서 관리부(130)는, 블록체인 노드(22)의 블록체인에 데이터를 저장하는 트랜잭션을 발생시켜 해당 블록체인에 상기 암호화된 계약서 데이터를 저장할 수 있다. 이 경우, 상기 계약서 관리부(130)는 상기 암호화된 계약서 데이터의 임시 보관 필요 여부에 따라 상기 암호화된 계약서 데이터를, 일정한 존속 기간이 부여되는 블록체인으로서 해당 존속 기간의 경과시 블록체인 전체가 삭제되는 임시 보관용 블록체인에 저장하거나, 존속 기간이 부여되지 않은 영구 보관용 블록체인에 저장할 수 있다. 또한, 추후 사용자의 계약서 열람 요청 또는 계약서 원본 증명 요청 등이 있는 경우, 상기 계약서 관리부(130)는 블록체인을 조회하여 상기 암호화된 계약서 데이터를 획득할 수 있다. 이를 위해, 계약서 관리부(130)는 후술되는 블록체인 관리부(132), 블록체인 주소 생성부(134), 트랜잭션 발생부(136), 및 블록체인 조회부(138)를 포함할 수 있다.
상기 인증 정보 관리부(140)는, 계약 처리부(110)를 통해 처리되는 전자 계약과 관련하여 인증용 키 페어(key pair)를 생성하고, 상기 인증용 키 페어의 제1 인증용 키를 자체 저장하는 한편, 상기 인증용 키 페어의 제2 인증용 키를 계약서 관리부(130)로 전송하여 상기 암호화된 계약서 데이터와 함께 블록체인에 저장되도록 할 수 있다. 이를 위해, 인증 정보 관리부(140)는 후술되는 인증용 키 페어 생성부(142), 개인 고유 코드 생성부(144), 및 키 관리부(146)를 포함할 수 있다.
상기 사용자 인증부(150)는, 사용자의 계약서 열람 요청 또는 계약서 원본 증명 요청 등에 대응하여 블록체인에 저장된 제2 인증용 키를 획득하고, 상기 제1 인증용 키를 보관 중인 상기 인증 정보 관리부(140)와 연동하여 상기 제1 인증용 키와 상기 획득된 제2 인증용 키가 인증용 키 페어에 해당하는 것임을 검증함으로써 사용자 인증을 수행할 수 있다. 이를 위해, 사용자 인증부(150)는 후술되는 키 획득부(152), 토큰 생성부(154), 및 인증 수행부(156)를 포함할 수 있다.
상기 증명 정보 생성부(160)는, 상기 계약 처리부(110)에 의해 생성된 계약서 데이터로부터 계약서 원본 증명용 해시값을 생성하여 사용자에게 제공되도록 하고, 상기 사용자의 계약서 원본 증명 요청이 있는 경우, 블록체인에 저장된 암호화된 계약서 데이터를 복호화함으로써 생성된 복호화된 계약서 데이터로부터 계약서 해시값을 생성할 수 있다. 이 겨우, 증명 정보 생성부(160)는 상기 생성된 계약서 데이터를 블록체인에 저장하는 트랜잭션의 타임스탬프(time stamp)와 연관시켜 상기 생성된 계약서 데이터를 중복적으로 해시 처리함으로써 상기 계약서 원본 증명용 해시값을 생성하고, 상기 타임스탬프와 연관시켜 상기 복호화된 계약서 데이터를 중복적으로 해시 처리함으로써 상기 계약서 해시값을 생성할 수 있다. 이를 위해, 증명 정보 생성부(160)는 후술되는 1차 해시 처리부(162) 및 2차 해시 처리부(164)를 포함할 수 있다.
상기 계약서 원본 증명부(170)는, 상기 시스템(100)이 사용자 단말(10) 또는 상기 사용자의 타 단말로부터 상기 사용자에게 제공된 계약서 원본 증명용 해시값을 수신하면, 상기 수신된 계약서 원본 증명용 해시값과 상기 계약서 해시값을 비교하여 상기 블록체인에 저장된 암호화된 계약서 데이터로부터 복호화된 계약서 데이터가 상기 전자 계약의 계약서 원본에 대응하는 것임을 증명할 수 있다. 이를 위해, 계약서 원본 증명부(170)는 후술되는 해시값 획득부(172), 계약서 원본 판별부(174), 및 원본 증명서 발급부를 포함할 수 있다.
상기 계약 정보 발송부(180)는, 전자 계약 체결에 따라 생성된 전자 계약 관련 정보 중에서 사용자에게 제공해야 할 정보를 상기 사용자 단말(10)로 전송하거나 상기 사용자의 연락처로 발송할 수 있다.
도 3에는 본 발명의 일 실시예에 따른 블록체인 기반의 전자 계약 처리 방법의 계약서 데이터 생성 및 저장 프로세스가 흐름도로 도시되어 있다. 이하, 도 3을 참조하여 도 2에 도시된 전자 계약 처리 시스템(100)의 세부 구성들과 그 동작들을 더욱 상세하게 설명한다.
도 3에 도시된 바와 같이, 상기 계약 처리부(110)는, 사용자의 단말로부터 전자 계약에 필요한 계약 정보를 수집하여 상기 전자 계약의 체결을 증명하는 계약서 데이터를 생성할 수 있다. 이를 위해, 계약 처리부(110)는 후술되는 계약 정보 수집부(112) 및 이미지 처리부(112)를 포함할 수 있다.
상기 암호 처리부(120)는, 계약 처리부(110)에서 생성된 계약서 데이터를 암호화하여 암호화된 계약서 데이터를 생성할 수 있다. 이 경우, 암호 처리부(120)는 대칭키 암호화 방식으로 상기 암호화된 계약서 데이터를 생성하여 계약서 관리부(130)로 전송하고, 차후 사용자의 계약서 열람 요청 또는 계약서 원본 증명 요청 등이 있는 경우 블록체인에 저장된 암호화된 계약서 데이터를 상기 계약서 관리부(130)를 통해 수신하여 복호화할 수 있다.
상기 계약서 관리부(130)는, 블록체인 노드(22)의 블록체인에 데이터를 저장하는 트랜잭션을 발생시켜 해당 블록체인에 상기 암호화된 계약서 데이터를 저장할 수 있다. 이 경우, 상기 계약서 관리부(130)는 상기 암호화된 계약서 데이터의 임시 보관 필요 여부에 따라 상기 암호화된 계약서 데이터를, 일정한 존속 기간이 부여되는 블록체인으로서 해당 존속 기간의 경과시 블록체인 전체가 삭제되는 임시 보관용 블록체인에 저장하거나, 존속 기간이 부여되지 않은 영구 보관용 블록체인에 저장할 수 있다. 또한, 추후 사용자의 계약서 열람 요청 또는 계약서 원본 증명 요청 등이 있는 경우, 상기 계약서 관리부(130)는 블록체인을 조회하여 상기 암호화된 계약서 데이터를 획득할 수 있다. 이를 위해, 계약서 관리부(130)는 후술되는 블록체인 관리부(132), 블록체인 주소 생성부(134), 트랜잭션 발생부(136), 및 블록체인 조회부(138)를 포함할 수 있다.
상기 인증 정보 관리부(140)는, 계약 처리부(110)를 통해 처리되는 전자 계약과 관련하여 인증용 키 페어(key pair)를 생성하고, 상기 인증용 키 페어의 제1 인증용 키를 자체 저장하는 한편, 상기 인증용 키 페어의 제2 인증용 키를 계약서 관리부(130)로 전송하여 상기 암호화된 계약서 데이터와 함께 블록체인에 저장되도록 할 수 있다. 이를 위해, 인증 정보 관리부(140)는 후술되는 인증용 키 페어 생성부(142), 개인 고유 코드 생성부(144), 및 키 관리부(146)를 포함할 수 있다.
상기 사용자 인증부(150)는, 사용자의 계약서 열람 요청 또는 계약서 원본 증명 요청 등에 대응하여 블록체인에 저장된 제2 인증용 키를 획득하고, 상기 제1 인증용 키를 보관 중인 상기 인증 정보 관리부(140)와 연동하여 상기 제1 인증용 키와 상기 획득된 제2 인증용 키가 인증용 키 페어에 해당하는 것임을 검증함으로써 사용자 인증을 수행할 수 있다. 이를 위해, 사용자 인증부(150)는 후술되는 키 획득부(152), 토큰 생성부(154), 및 인증 수행부(156)를 포함할 수 있다.
상기 증명 정보 생성부(160)는, 상기 계약 처리부(110)에 의해 생성된 계약서 데이터로부터 계약서 원본 증명용 해시값을 생성하여 사용자에게 제공되도록 하고, 상기 사용자의 계약서 원본 증명 요청이 있는 경우, 블록체인에 저장된 암호화된 계약서 데이터를 복호화함으로써 생성된 복호화된 계약서 데이터로부터 계약서 해시값을 생성할 수 있다. 또한, 증명 정보 생성부(160)는 상기 생성된 계약서 데이터를 블록체인에 저장하는 트랜잭션의 타임스탬프(time stamp)와 연관시켜 상기 생성된 계약서 데이터를 중복적으로 해시 처리함으로써 계약서 원본 증명용 해시값을 생성하고, 상기 타임스탬프와 연관시켜 상기 복호화된 계약서 데이터를 중복적으로 해시 처리함으로써 계약서 해시값을 생성할 수 있다. 이를 위해, 증명 정보 생성부(160)는 후술되는 1차 해시 처리부(162) 및 2차 해시 처리부(164)를 포함할 수 있다.
상기 계약서 원본 증명부(170)는, 상기 시스템(100)이 사용자 단말(10) 또는 상기 사용자의 타 단말로부터 상기 사용자에게 제공된 계약서 원본 증명용 해시값을 수신하면, 상기 수신된 계약서 원본 증명용 해시값과 상기 계약서 해시값을 비교하여 상기 블록체인에 저장된 암호화된 계약서 데이터로부터 복호화된 계약서 데이터가 상기 전자 계약의 계약서 원본에 대응하는 것임을 증명할 수 있다. 이를 위해, 계약서 원본 증명부(170)는 후술되는 해시값 획득부(172), 계약서 원본 판별부(174), 및 원본 증명서 발급부를 포함할 수 있다.
상기 계약 정보 발송부(180)는, 전자 계약 체결에 따라 생성되는 전자 계약 관련 정보 중에서 사용자에게 제공해야 할 정보를 상기 사용자의 단말(10)로 전송하거나 상기 사용자의 연락처로 발송할 수 있다.
도 3에는 본 발명의 일 실시예에 따른 블록체인 기반의 전자 계약 처리 방법의 계약서 데이터 생성 및 저장 프로세스가 흐름도로 도시되어 있다. 도 3을 참조하여, 도 2에 도시된 전자 계약 처리 시스템(100)의 세부 구성들과 그 동작들을 상세히 설명한다.
도 3에 도시된 바와 같이, 상기 전자 계약 처리 시스템(100)의 계약 처리부(110)는, 사용자의 단말(10)로부터 전자 계약에 필요한 계약 정보를 수집하여 전자 계약을 체결하고, 전자 계약의 체결을 증명하는 계약서 데이터를 생성할 수 있다.
예컨대, 스마트폰 등과 같은 사용자 단말(10)에 설치된 애플리케이션 실행되어 사용자 단말(10)의 화면에 전자 계약 체결용 템플레이트(template)가 표시되면, 사용자는 해당 단말의 입력 수단을 통해 계약 체결에 필요한 계약 정보를 입력할 수 있다. 이러한 계약 정보에는 사용자의 성명, 주소, 연락처 등과 같은 계약자 정보와, 해당 전자 계약의 계약 조항에 대한 동의 여부 등과 같은 계약 내용 정보 등이 포함될 수 있다. 실시예에 따라, 사용자 단말(10)은 터치 패널과 같은 사용자 터치 방식의 입력 수단을 포함하여, 전자 계약 체결시 사용자의 서명(signature)을 필기로 입력받도록 구성될 수 있다.
상기 계약 처리부(110)의 계약 정보 수집부(112)는, 사용자 단말(10)과 통신하여 해당 사용자가 입력한 계약 정보를 수집할 수 있다(S300). 이 경우, 계약 정보 수집부(112)는 계약 정보의 보안을 위해 사용자 단말(10)과의 통신시 SSL(Secure Socket Layer) 등과 같은 보안 전송 방식을 추가로 사용할 수 있다. 또한, 계약 정보 수집부(112)는 수집된 계약 정보 중에서 전자 계약 처리 시스템(100)에 저장할 정보를 선택하여 저장부(103)에 저장할 수 있다. 예컨대, 계약 정보 수집부(112)는 계약 당사자인 사용자의 식별정보와 함께, 상기 사용자의 전화번호나 이메일 주소 등의 연락처 정보, 해당 전자 계약의 계약 철회 기간이나 계약 취소 기간 등의 계약 조건 정보 등을 저장부(103)에 저장할 수 있다.
상기 계약 처리부(110)의 이미지 처리부(112)는, 수집된 계약 정보에 따른 전자 계약서를 이미지 파일로 획득하고 상기 이미지 파일을 HEX 코드로 변환하여 계약서 데이터를 생성할 수 있다(S310). 예컨대, 이미지 처리부(112)는 전자 계약 체결용 템플레이트 화면을 이미지 또는 스캔 형태로 추출하여 이미지 파일을 획득하고, 해당 이미지 파일의 바이너리 값을 16진수 HEX 코드로 변환할 수 있다. 상기 이미지 파일은 특정 파일 포맷으로 제한되지 않으며, BMP, JPG, JPEG, PNG, GIF 등과 같이 이미지 데이터를 표현하는 포맷을 가지거나, PDF, TIF, TIFF, XPS 등과 같이 이미지가 포함된 스캔 파일 포맷을 가질 수 있다. 또한, 상기 이미지 처리부(112)는 차후 사용자의 요청에 따라 블록체인 저장된 암호화된 계약서 데이터가 복호화되면, 복호화된 계약서 데이터의 16진수 HEX 코드를 이미지 형태로 변환할 수 있다.
상기 계약 처리부(110)는 전자 계약 체결이 완료되어 계약서 데이터가 생성되면, 상기 전자 계약 처리 시스템(100)의 암호 처리부(120)로 해당 계약서 데이터를 전송하고(S312), 상기 전자 계약 처리 시스템(100)의 인증 정보 관리부(140)로 전자 계약의 체결 사실을 통지할 수 있다(S314). 한편, 상기 계약 처리부(110)는 상기 시스템(100)이 제공하는 전자 계약서의 계약서 원본 증명용 해시값을 생성하기 위해 상기 HEX 코드 상태의 계약서 데이터를 상기 증명 정보 생성부(160)로 전송할 수 있다.
상기 암호 처리부(120)는, 상기 계약 처리부(110)에서 생성된 HEX 코드 상태의 계약서 데이터가 수신되면, 상기 계약서 데이터를 암호화하여 암호화된 계약서 데이터를 생성할 수 있다(S320). 예컨대, 암호 처리부(120)는 AES-256 등과 같은 대칭키 암호화 방식으로 상기 암호화된 계약서 데이터를 생성하여 상기 전자 계약 처리 시스템(100)의 계약서 관리부(130)로 전송할 수 있다(S322). 이와 같이, 암호 처리부(120)가 HEX 코드 상태의 계약서 데이터에 대해 암호화를 수행하는 이유는, 블록체인 기술이 분산 저장 기술이기 때문이다. 즉, 블록체인 기술에 있어서, 블록체인에 보관된 데이터는 블록체인 네트워크를 구성하는 다수의 블록체인 노드에 동일한 내용으로 동기화되어 분산 저장되며, 각각의 블록체인 노드는 자신이 보유한 블록체인에 저장된 데이터를 조회할 수 있다. 따라서, 상기 암호 처리부(120)는 HEX 코드 상태의 계약서 데이터를 암호화하여 해당 계약서 데이터가 블록체인에 암호화된 상태로 저장되도록 함으로써, 전자 계약의 보안성을 확보하고 개인 정보 등의 유출을 방지할 수 있다. 또한, 상기 암호 처리부(120)는 차후 사용자의 계약서 열람 요청 또는 계약서 원본 증명 요청 등이 있는 경우 블록체인에 저장된 암호화된 계약서 데이터를 상기 계약서 관리부(130)를 통해 수신하여 복호화하고, 복호화된 계약서 데이터를 상기 계약 처리부(110)의 이미지 처리부(112)로 전송할 수 있다. 일 실시예에 있어서, 상기 계약 처리부(110)와 암호 처리부(120)가 각각 별개의 서버나 장치로 구성되는 경우, 상기 계약서 데이터의 보안을 위해 SSL(Secure Socket Layer) 등과 같은 보안 전송 방식이 상기 계약 처리부(110)와 암호 처리부(120) 간의 통신에 추가로 적용될 수 있다.
상기 인증 정보 관리부(140)는, 상기 계약 처리부(110)를 통해 처리된 전자 계약과 관련하여 인증용 키 페어(key pair)를 생성하고, 상기 인증용 키 페어의 제1 인증용 키를 자체 저장하는 한편, 상기 인증용 키 페어의 제2 인증용 키를 상기 전자 계약 처리 시스템(100)의 계약서 관리부(130)로 전송하여, 상기 제2 인증용 키가 상기 암호화된 계약서 데이터와 함께 블록체인에 저장되도록 할 수 있다.
이를 위해, 상기 인증 정보 관리부(140)의 인증용 키 페어 생성부(142)는, PKI(Public Key Infrastructure)를 적용하여 상기 제1 인증용 키로서 비밀키(private key)를 생성하고 상기 제2 인증용 키로서 상기 비밀키에 대응하는 공개키(public key)를 생성할 수 있다(S330). 예컨대, 인증용 키 페어 생성부(142)는 1부터 n-1 사이의 숫자 중 무작위로 256비트의 숫자를 선택하고, 이 숫자가 n-1보다 작은지 검사하여 상기 제1 인증용 키에 해당하는 비밀키를 생성할 수 있다. 여기서, n은 타원 곡선 암호 방식(elliptic curve cryptosystem)의 위수(order)로 정의된 상수이며, 2256보다 약간 작은 1.158×1077의 값을 가질 수 있다. 또한, 상기 인증용 키 페어 생성부(142)는 상기 생성된 비밀키에 타원 곡선 암호 방식을 적용하여 단방향으로 풀어냄으로써 상기 제2 인증용 키에 해당하는 공개키를 생성할 수 있다. 그 결과, 공개키는 비밀키를 이용하여 얼마든지 재생성될 수 있으나, 비밀키는 공개키로부터 유추되거나 재생성될 수 없다. 본 발명에 있어서 상기 제1 인증용 키는 후술되는 사용자 인증 절차와 계약서 원본 증명 절차 등에서 핵심적인 역할을 담당하는 정보인 바, 보안성과 안전성이 높은 시스템 또는 서버에 보관되어야 할 필요가 있다. 따라서, 상기 인증용 키 페어 생성부(142)는 상기 제1 인증용 키를 보안성이 확보된 상기 인증 정보 관리부(140)의 키 관리부(146)로 전송할 수 있다. 일 실시예에 있어서, 상기 인증용 키 페어 생성부(142)와 키 관리부(146)가 각각 별개의 서버나 장치로 구성되는 경우, 상기 제1 인증용 키의 보안을 위해 SSL 등과 같은 보안 전송 방식이 상기 인증용 키 페어 생성부(142)와 키 관리부(146) 간의 통신에 추가로 적용될 수 있다.
상기 인증 정보 관리부(140)의 개인 고유 코드 생성부(144)는, 전자 계약의 당사자인 사용자에게 제공되는 개인 고유 코드를 생성할 수 있다(S340). 예컨대, 상기 개인 고유 코드 생성부(144)는 상기 개인 고유 코드로서, 랜덤하게 선택되는 PIN(Personal Identification Number) 코드를 생성할 수 있다. 이 경우, PIN 코드의 길이는 제한되지 않지만, 사용자 편의를 고려하여 8자리 미만의 값으로 선택될 수 있다. 이러한 개인 고유 코드는 해당 사용자의 연락처 정보 등과 함께 저장부(103)에 저장되었다가 사용자에게 제공될 수 있으며, 추후 발생하는 사용자 인증 절차를 위해 상기 제1 인증용 키와 함께 상기 인증 정보 관리부(140)의 키 관리부(146)에 저장될 수 있다.
상기 인증 정보 관리부(140)의 키 관리부(146)는, 상기 인증용 키 페어 중 상기 제1 인증용 키와 상기 개인 고유 코드를 상호 연관시켜 저장할 수 있다(S350). 상기 키 관리부(146)는 차후 사용자의 계약서 열람 요청이나 계약서 원본 증명 요청 등에 따라 선결 조건인 사용자 인증 절차가 개시되면, 사용자 측에서 전송된 개인 고유 정보를 이용하여 해당 사용자에 대한 1차 인증 절차를 수행하고, 해당 개인 고유 정보와 연관되어 저장된 제1 인증용 키를 이용하여 해당 사용자에 대한 2차 인증 절차를 수행할 수 있다.
한편, 상기 인증 정보 관리부(140)의 인증용 키 페어 생성부(142)는, 상기 인증용 키 페어의 제2 인증용 키를 상기 전자 계약 처리 시스템(100)의 계약서 관리부(130)로 전송하여, 상기 제2 인증용 키가 상기 암호화된 계약서 데이터와 함께 블록체인에 저장되도록 할 수 있다(S352).
상기 전자 계약 처리 시스템(100)의 계약서 관리부(130)는, 블록체인 노드(22)의 블록체인에 데이터를 저장하는 트랜잭션을 발생시켜 상기 암호 처리부(120)에서 전송된 암호화된 계약서 데이터와 함께 상기 인증 정보 관리부(140)에서 전송된 상기 제2 인증용 키를 해당 블록체인에 저장할 수 있다. 또한, 상기 계약서 관리부(130)는 추후 사용자의 계약서 열람 요청이나 계약서 원본 증명 요청 등이 있는 경우, 해당 블록체인을 조회하여 상기 암호화된 계약서 데이터를 획득할 수 있다.
이를 위해, 상기 계약서 관리부(130)의 블록체인 관리부(132)는, 상기 암호화된 계약서 데이터의 임시 보관 필요 여부에 따라 임시 보관용 블록체인 또는 영구 보관용 블록체인을 상기 암호화된 계약서 데이터를 저장할 블록체인으로 결정할 수 있다. 상술한 바와 같이, 상기 임시 보관용 블록체인은 일정한 존속 기간이 부여되어 해당 존속 기간의 경과시 블록체인 전체가 삭제되는 블록체인이고, 상기 영구 보관용 블록체인은 존속 기간이 부여되지 않은 블록체인이다. 예컨대, 상기 전자 계약의 계약 조건에 계약 철회 기간이나 계약 취소 기간이 포함되어 상기 암호화된 계약서 데이터 등을 해당 기간의 경과시까지 삭제 가능한 상태로 임시 보관할 필요가 있는 경우, 상기 블록체인 관리부(132)는 상기 임시 보관용 블록체인을 상기 암호화된 계약서 데이터를 저장할 블록체인으로 결정할 수 있다.
상기 계약서 관리부(130)의 블록체인 주소 생성부(134)는, 상기 블록체인 관리부(132)의 결정에 따라 상기 임시 보관용 블록체인 또는 상기 영구 보관용 블록체인에 상기 암호화된 계약서 데이터와 제2 인증용 키를 저장하기 위한 블록체인 주소를 생성할 수 있다(S360). 이 경우, 상기 블록체인 주소 생성부(134)는 상기 전자 계약에 대한 블록체인 주소를 생성하기 위해, 상기 인증 정보 관리부(140)의 인증용 키 페어 생성부(142)에서 생성된 제2 인증용 키를 이용할 수 있다. 예컨대, 상기 블록체인 주소 생성부(134)는 상기 인증용 키 페어 생성부(142)에서 생성된 공개키에 SHA256 등과 같은 보안 해시 알고리즘을 적용하여 해시 처리한 이후, 해당 해시값을 RIPEMD(RACE Integrity Primitives Evaluation Message Digest)로 처리할 수 있다. 이러한 처리 과정은 다음과 같이 해시 함수로 표현될 수 있다.
A = RIPEMD160(SHA256(K))
여기서, K는 입력값에 해당하는 공개키이고, A는 해시 함수 출력값에 해당하는 블록체인 주소이다. 이와 같이 해시 처리되어 산출된 A는 Base58Check로 인코딩 처리됨으로써, 인간이 읽을 수 있는 문자로 변형될 수 있다.
상기 계약서 관리부(130)의 트랜잭션 발생부(136)는, 상기 블록체인 관리부(132)의 결정에 따라 트랜잭션을 발생시켜 상기 트랜잭션을 식별하는 트랜잭션 ID와 함께 상기 블록체인 주소, 상기 트랜잭션의 발생 시각을 나타내는 타임스탬프(time stamp), 및 상기 암호화된 계약서 데이터와 제2 인증용 키를 해당 블록체인에 저장할 수 있다(S370). 예컨대, 트랜잭션 발생부(136)는 상기 블록체인 주소에 상기 암호화된 계약서 데이터와 제2 인증용 키 등과 같은 전자 계약 관련 데이터를 저장하기 위해 블록체인 프로그램에 일반적으로 구현되어 있는 OP-RETURN 스크립트 기능을 활용할 수 있다. 이 경우, 트랜잭션 발생부(136)는 OP_RETURN 스크립트의 구조에 따라 상기 트랜잭션 ID와, 암호화된 계약서 데이터, 및 제2 인증용 키를 각각 접두부(prefix)로 구분하여 OP_RETURN 스크립트의 페이로드(payload) 부분에 기록할 수 있다. 한편, 비트코인 등과 같은 일반적인 퍼블릭 블록체인 기술을 기반으로 OP_RETURN 스크립트 기능을 이용할 경우, 블록체인에 저장할 수 있는 데이터의 길이가 최대 80바이트 정도로 제한된다. 따라서, 본 발명에 있어서, 상기 블록체인 시스템(20)은 전자 계약 서비스 사용자들만 접근할 수 있는 프라이빗 블록체인으로 구성될 수 있으며, 각각의 블록체인 노드에 설치되는 블록체인 프로그램의 설정은 블록체인에 저장되는 데이터에 대한 길이 제한을 완화하거나 길이 제한을 적용하지 않도록 변경될 수 있다.
또한, 상기 트랜잭션 발생부(136)는 상기 트랜잭션 발생시 생성된 트랜잭션 ID와 타임스탬프를 저장부(103)에 저장하여, 추후 사용자 인증 절차나 계약서 원본 증명 절차 등에서 사용되도록 할 수 있다(S380).
도 4에는 본 발명의 일 실시예에 따른 블록체인 기반의 전자 계약 처리 시스템에 저장된 데이터 구조의 일례가 도시되어 있다.
도 4에 도시된 바와 같이, 전자 계약 처리 시스템(100)의 저장부(103)는, 상기 전자 계약의 당사자인 사용자의 식별정보, 상기 사용자의 전화번호나 이메일 주소 등의 연락처 정보, 상기 개인 고유 코드 생성부(144)가 상기 사용자에게 할당한 PIN 코드, 상기 트랜잭션 발생시 생성된 트랜잭션 ID와 타임스탬프 등을 포함하는 전자 계약 관련 정보를 저장할 수 있다. 일 실시예에 있어서, 상기 저장부(103)는 상기 전자 계약의 계약서 보관 기간과 관련된 계약 조건 정보 등을 더 저장할 수 있다. 이 경우, 상기 계약 조건 정보는 상기 전자 계약의 체결시 상기 계약 처리부(110)에 의해 상기 전자 계약의 계약 내용에서 추출되어 저장되거나, 상기 전자 계약의 청약자나 당사자의 요청에 따라 미리 설정되어 저장될 수 있다.
도 5에는 블록체인에 저장된 트랜잭션 데이터 구조의 일례가 도시되어 있다.
도 5에 도시된 바와 같이, 블록체인 노드(22)의 블록체인에는 트랜잭션 데이터가 키(key)-밸류(value) 형식으로 저장된다. 즉, 전자 계약 체결에 따라 발생된 트랜잭션을 조회하기 위한 키로서 상기 트랜잭션 ID가 저장되고, 상기 트랜잭션 ID에 관련된 밸류로서 상기 블록체인 주소 생성부(134)에 의해 생성된 블록체인 주소, 상기 트랜잭션의 발생 시각을 나타내는 타임스탬프, 상기 제2 인증용 키에 해당하는 공개키, 및 상기 전자 계약의 암호화된 계약서 데이터 등이 저장될 수 있다.
도 6에는 본 발명의 일 실시예에 따른 블록체인 기반의 전자 계약 처리 방법의 계약서 원본 증명 정보 생성 프로세스가 흐름도로 도시되어 있다. 도 6을 참조하여, 도 2에 도시된 전자 계약 처리 시스템(100)의 세부 구성들과 그 동작들을 상세히 설명한다.
도 6에 도시된 바와 같이, 상기 전자 계약 처리 시스템(100)의 증명 정보 생성부(160)는, 상기 계약 처리부(110)에 의해 생성된 계약서 데이터로부터 계약서 원본 증명용 해시값을 생성하여 사용자에게 제공되도록 하고, 추후 상기 사용자의 계약서 원본 증명 요청이 있는 경우, 블록체인에 저장된 암호화된 계약서 데이터를 복호화함으로써 생성된 복호화된 계약서 데이터로부터 계약서 해시값을 생성할 수 있다. 이 경우, 증명 정보 생성부(160)는 상기 생성된 계약서 데이터를 블록체인에 저장하는 트랜잭션의 타임스탬프(time stamp)와 연관시켜 상기 생성된 계약서 데이터를 중복적으로 해시 처리함으로써 상기 계약서 원본 증명용 해시값을 생성하고, 상기 타임스탬프와 연관시켜 상기 복호화된 계약서 데이터를 중복적으로 해시 처리함으로써 상기 계약서 해시값을 생성할 수 있다.
이를 위해, 상기 증명 정보 생성부(160)의 1차 해시 처리부(162)는, 상기 계약 처리부(110)로부터 HEX 코드 상태의 계약서 데이터가 전송되면(S600), 상기 계약서 데이터를 1차 해시 처리함으로써 중간 해시값을 생성할 수 있다(S610). 예컨대, 1차 해시 처리부(162)는 상기 계약 처리부(110)의 이미지 처리부(112)로부터 수신된 계약서 데이터의 HEX 코드를 SHA-256 등과 같은 단방향 보안 해시 알고리즘을 적용하여 중간 해시값을 생성할 수 있다. 해시 알고리즘의 비가역적 특성상 상기 중간 해시값을 이용하여 상기 계약서 데이터의 HEX 코드를 다시 생성하는 것은 사실상 불가능하므로, 계약서 내용에 대한 보안을 유지하면서 후속 절차가 진행될 수 있다. 상기 중간 해시값은 상기 증명 정보 생성부(160)의 2차 해시 처리부(164)로 전송된다. 일 실시예에 있어서, 상기 1차 해시 처리부(162)와 상기 2차 해시 처리부(164)가 각각 별개의 서버나 장치로 구성되는 경우, 상기 중간 해시값의 보안을 위해 SSL 등과 같은 보안 전송 방식이 상기 1차 해시 처리부(162)와 상기 2차 해시 처리부(164) 간의 통신에 추가로 적용될 수 있다.
상기 증명 정보 생성부(160)의 2차 해시 처리부(164)는, 상기 계약서 관리부(130)의 트랜잭션 발생부(136)에 의해 발생된 트랜잭션의 타임스탬프를 상기 저장부(103)에 요청하여 수신할 수 있다(S620, S630). 그리고 2차 해시 처리부(164)는 상기 1차 해시 처리부(162)로부터 수신된 중간 해시값을 상기 타임스탬프와 연관시켜 2차 해시 처리함으로써 상기 계약서 원본 증명용 해시값을 생성할 수 있다(S640). 예컨대, 2차 해시 처리부(164)는 상기 중간 해시값과 상기 타임스탬프의 문자열에 대하여 배타적 논리합(XOR)을 수행한 결과값, 또는 상기 중간 해시값과 상기 타임스탬프를 결합한 결과값에 SHA-256 등과 같은 단방향 보안 해시 알고리즘을 2차로 적용하여 상기 계약서 원본 증명용 해시값을 생성할 수 있다.
이와 같이 생성된 계약서 원본 증명용 해시값은, 상기 전자 계약과 관련된 트랜잭션 ID, PIN 코드 등과 함께 상기 사용자의 연락처로 전송될 수 있다(S650).
도 7에는 본 발명의 일 실시예에 따른 블록체인 기반의 전자 계약 처리 방법의 계약서 데이터 이전 프로세스가 흐름도로 도시되어 있다. 도 7을 참조하여, 도 2에 도시된 전자 계약 처리 시스템(100)의 세부 구성들과 그 동작들을 상세히 설명한다.
상술한 바와 같이, 상기 전자 계약 처리 시스템(100)을 통해 체결되는 전자 계약의 목적, 또는 계약 철회 기간이나 계약 취소 기간의 존부 등에 따라, 상기 전자 계약의 계약서 데이터를 삭제 가능한 상태로 일정 기간 임시 보관할 필요가 있는 경우, 해당 계약서 데이터를 포함하는 트랜잭션 데이터는 일단 임시 보관용 블록체인(이하, ‘미니 체인’으로 명명함)에 저장된다. 상기 블록체인 시스템(20)의 블록체인 노드(22)는 상기 전자 계약의 체결 일자(YY-MM-DD)에 대응하는 미니 체인이 생성되어 있지 않으면, 상기 전자 계약의 체결 일자(YY-MM-DD)를 포함하는 ID와 일정한 존속 기간이 부여되는 미니 체인을 생성하여, 상기 미니 체인에 상기 전자 계약과 관련된 트랜잭션 ID, 암호화된 계약서 데이터, 및 공개키 등을 포함하는 트랜잭션 데이터를 저장할 수 있다. 이 경우, 상기 미니 체인에 부여되는 존속 기간은, 상기 미니 체인에 데이터를 저장하는 전자 계약 건들 중 최후에 종료되는 임시 보관 기간(예컨대, 계약 철회 기간, 계약 취소 기간 등)을 가지는 전자 계약 건을 기준으로 결정될 수 있다. 이를 위해, 상기 전자 계약 처리 시스템(100)의 계약서 관리부(130)는 상기 저장부(103)에서 해당 전자 계약의 데이터 임시 보관 기간과 관련된 계약 조건 정보를 획득하여 상기 블록체인 노드(22)로 전달할 수 있다.
예컨대, 상기 전자 계약 처리 시스템(100)을 통해 2017년 1월 1일에 전자 계약이 체결되는 경우, 상기 전자 계약 처리 시스템(100)으로부터 상기 전자 계약의 트랜잭션 데이터를 수신한 블록체인 노드(22)는, ‘Mini-chain_17-01-01’라는 ID와 일정한 존속 기간이 부여된 미니 체인을 생성하여 상기 미니 체인의 일 블록에 해당 트랜잭션 데이터를 저장할 수 있다.
차후, 상기 체결 일자를 기준으로 상기 미니 체인에 부여된 존속 기간이 경과된 경우, 상기 블록체인 노드(22)는 상기 미니 체인 전체를 삭제할 수 있다. 따라서, 상기 미니 체인에 암호화된 계약서 데이터 등을 저장한 전자 계약 건에 대하여, 계약 당사자인 사용자의 계약 철회 요청 또는 계약 취소 요청 등이 있는 경우, 상기 전자 계약 처리 시스템(100)의 계약서 관리부(130)는 상기 미니 체인의 존속 기간 만료시에도 상기 전자 계약의 암호화된 계약서 데이터 등을 상기 미니 체인에 그대로 남겨두어 상기 미니 체인과 함께 삭제되도록 할 수 있다.
반면, 상기 사용자의 계약 철회 요청 없이 상기 전자 계약의 계약 철회 기간이 종료된 경우 등과 같이, 상기 전자 계약의 암호화된 계약서 데이터를 삭제할 필요가 없어지면, 상기 계약서 관리부(130)는 상기 미니 체인의 존속 기간 만료 전에 상기 미니 체인에 저장된 암호화된 계약서 데이터 등을 상기 영구 보관용 블록체인으로 이전하여 저장할 수 있다.
따라서, 도 7에 도시된 바와 같이, 상기 계약서 관리부(130)의 블록체인 관리부(132)는, 상기 전자 계약의 암호화된 계약서 데이터 등이 상기 미니 체인에 저장된 후 상기 전자 계약의 계약 내용에 따른 계약서 임시 보관 기간이 경과된 경우, 상기 영구 저장용 블록체인을 상기 암호화된 계약서 데이터 등을 저장할 블록체인으로 결정할 수 있다. 이를 위해, 블록체인 관리부(132)는 임시 보관용 블록체인인 미니 체인을 모니터링하여 영구 보관용 블록체인으로 이전해야 할 이전 대상 데이터를 발견할 수 있다(S700). 예컨대, 상기 블록체인 관리부(132)는 블록체인 노드(22)에 생성되어 가동 중인 미니 체인의 ID를 조회하여, 상기 전자 계약의 체결 일자를 나타내는 YY-MM-DD 값을 추출한 후, 상기 체결 일자를 기준으로 현재 상기 전자 계약의 계약 내용에 따른 계약서 임시 보관 기간이 경과되었는지를 검사할 수 있다. 이 경우, 블록체인 관리부(132)는 상기 저장부(103)에 저장된 계약 조건 정보를 참조하여 상기 전자 계약의 계약서 임시 보관 기간을 확인할 수 있다. 상기 블록체인 관리부(132)는 상기 전자 계약의 계약서 임시 보관 기간이 경과된 것으로 판단되면, 상기 영구 저장용 블록체인을 상기 암호화된 계약서 데이터 등을 저장할 블록체인으로 결정하고, 해당 미니 체인의 ID를 상기 계약서 관리부(130)의 블록체인 조회부(138)로 전송하여 데이터 이전 절차 진행을 요청할 수 있다(S702).
상기 계약서 관리부(130)의 블록체인 조회부(138)는, 상기 미니 체인 ID에 대응하는 미니 체인을 조회하여 상기 미니 체인에 저장된 트랜잭션 ID, 암호화된 계약서 데이터, 및 공개키 등을 획득할 수 있다(S710). 이 경우, 블록체인 조회부(138)는 상기 획득된 데이터 중에서 상기 공개키를 상기 계약서 관리부(130)의 블록체인 주소 생성부(134)로 전송할 수 있다(S712). 또한, 상기 블록체인 조회부(138)는 상기 획득된 트랜잭션 ID, 암호화된 계약서 데이터, 및 공개키 등을 상기 계약서 관리부(130)의 트랜잭션 발생부(136)로 전송할 수 있다. 일 실시예에 있어서, 상기 블록체인 조회부(138), 블록체인 주소 생성부(134) 및 트랜잭션 발생부(136)가 각각 별개의 서버나 장치로 구성되는 경우, 이전 대상 데이터의 보안을 위해 SSL(Secure Socket Layer) 등과 같은 보안 전송 방식이 상기 블록체인 조회부(138)와 블록체인 주소 생성부(134) 간의 통신이나, 상기 블록체인 조회부(138)와 트랜잭션 발생부(136) 간의 통신에 추가로 적용될 수 있다.
상기 계약서 관리부(130)의 블록체인 주소 생성부(134)는, 상술한 바와 같이 상기 블록체인 조회부(138)로부터 수신한 공개키를 기반으로, 상기 암호화된 계약서 데이터 등을 상기 영구 보관용 블록체인에 저장하기 위한 신규 블록체인 주소를 생성하고(S720), 상기 신규 블록체인 주소를 상기 트랜잭션 발생부(136)로 전송할 수 있다(S722).
상기 계약서 관리부(130)의 트랜잭션 발생부(136)는, 상기 블록체인 주소 생성부(134)로부터 수신한 신규 블록체인 주소를 기반으로 트랜잭션을 발생시켜, 상기 블록체인 조회부(138)로부터 수신한 암호화된 계약서 데이터 및 공개키를 영구 보관용 블록체인에 저장할 수 있다(S730). 이러한 데이터 이전 과정이 완료되면, 상기 트랜잭션 발생부(136)는 상기 미니 체인에서 획득된 종래 트랜잭션 ID와 함께 상기 영구 보관용 블록체인에 데이터를 저장하는 트랜잭션의 발생에 따라 생성된 신규 트랜잭션의 ID 및 타임스탬프를 상기 저장부(103)로 전송하여, 상기 저장부(103)로 하여금 해당 전자 계약에 대응하여 저장된 종래 트랜잭션 ID와 타임스탬프를 상기 신규 트랜잭션 ID와 타임스탬프로 갱신하도록 할 수 있다(S740).
도 8에는 본 발명의 일 실시예에 따른 블록체인 기반의 전자 계약 처리 방법의 사용자 보관용 전자 계약 정보 제공 프로세스가 흐름도로 도시되어 있다. 도 8을 참조하여, 도 2에 도시된 전자 계약 처리 시스템(100)의 세부 구성들과 그 동작들을 상세히 설명한다.
도 8에 도시된 바와 같이, 상기 전자 계약 처리 시스템(100)을 통해 전자 계약이 체결되면, 상기 계약서 관리부(130)의 블록체인 관리부(132)는 블록체인 시스템(20)의 임시 보관용 블록체인인 미니 체인과 영구 보관용 블록체인을 모니터링하여 신생 트랜잭션을 발견할 수 있다(S800). 상술한 바와 같이 미니 체인과 영구 보관용 블록체인은 용도와 존속 기간 등이 다른 반면, 블록체인 기술을 기반으로 데이터를 분산 저장하여 관리하는 점은 동일하다. 즉, 이러한 블록체인들에 데이터가 보관되기 위해서는 트랜잭션이 발생되어야 하며, 트랜잭션의 발생 시 해당 트랜잭션의 고유의 키 값인 트랜잭션 ID가 생성되어 블록체인에 데이터를 저장할 수 있게 된다. 블록체인 노드는 여러 트랜잭션의 데이터를 합친 일정한 크기의 데이터 블록을 형성하여 처리하며, 다수의 블록체인 노드들이 해당 데이터 블록에 포함된 데이터의 정상 여부를 검증하고, 검증을 통과한 데이터 블록만이 최종적으로 블록체인에 저장된다. 검증을 통과한 데이터 블록은 다른 블록체인 노드들로 전파되어 분산 저장되며, 그 결과 블록체인 노드들은 동일한 데이터를 공유하게 된다.
상기 블록체인 관리부(132)는 이러한 블록체인 기술의 분산 저장 방식을 기반으로 미니 체인과 영구 보관용 블록체인에 신규 트랜잭션이 발생하였는지를 모니터링하고, 신규 트랜잭션이 발견된 경우에는 상기 계약서 관리부(130)의 블록체인 조회부(138)로 신규 트랜잭션의 조회를 요청할 수 있다(S802).
상기 블록체인 조회부(138)는, 상기 블록체인 관리부(132)의 요청에 따라 신규 트랜잭션을 조회하여 해당 트랜잭션의 키 값인 트랜잭션 ID를 획득할 수 있다(S810). 이와 같이 획득된 트랜잭션 ID는 상기 전자 계약 처리 시스템(100)의 계약 정보 발송부(180)로 전송될 수 있다(S812).
상기 전자 계약 처리 시스템(100)의 계약 정보 발송부(180)는, 상기 저장부(103)에서 상기 트랜잭션 ID와 연관되어 저장된 사용자의 연락처 정보, PIN 코드, 계약서 원본 증명용 해시값 등을 검출하고(S820), 상기 트랜잭션 ID, PIN 코드, 계약서 원보 증명용 해시값 등을 포함하는 사용자 보관용 전자 계약 정보를 상기 사용자의 연락처로 발송할 수 있다(S830). 이 경우, 계약 정보 발송부(180)는 상기 사용자 보관용 전자 계약 정보를 SMS 메시지나 이메일 등으로 발송할 수 있으며, 실시예에 따라 상기 사용자의 단말(10)과의 피투피(peer-to-peer) 통신으로 전송할 수도 있다.
일 실시예에 있어서, 본 발명은, 상기 블록체인 조회부(138)가 상기 트랜잭션 ID를 상기 저장부(103)로 전송하고, 상기 저장부(103)가 자신이 저장하고 있는 데이터 중에서 상기 트랜잭션 ID와 연관되어 저장된 사용자의 연락처 정보, PIN 코드, 계약서 원본 증명용 해시값 등을 검색하여 상기 계약 정보 발송부(180)로 전달하도록 구성될 수도 있다. 또한 일 실시예에 있어서, 상기 저장부(103)와 계약 정보 발송부(180)가 각각 별도의 서버나 장치로 구성되는 경우, 상기 사용자 보관용 전자 계약 정보의 보안을 위해 SSL 등과 같은 보안 전송 방식이 상기 저장부(103)와 계약 정보 발송부(180) 간의 통신에 추가로 적용될 수 있다.
도 9에는 본 발명의 일 실시예에 따른 블록체인 기반의 전자 계약 처리 방법의 사용자 인증 프로세스가 흐름도로 도시되어 있다. 도 9를 참조하여, 도 2에 도시된 전자 계약 처리 시스템(100)의 세부 구성들과 그 동작들을 상세히 설명한다.
도 9에 도시된 바와 같이, 사용자로부터 전자 계약에 대한 계약서 열람 요청이나 계약서 원본 증명 요청 등이 있는 경우, 상기 전자 계약 처리 시스템(100)의 사용자 인증부(150)는 우선적으로 해당 사용자에 대한 사용자 인증을 수행할 수 있다. 이 경우, 사용자 인증부(150)는 상기 사용자의 계약서 열람 요청 또는 계약서 원본 증명 요청 등에 대응하여, 상기 블록체인에 저장된 제2 인증용 키를 획득하고, 상기 제1 인증용 키를 보관 중인 상기 인증 정보 관리부(140)와 연동하여, 상기 제1 인증용 키와 상기 획득된 제2 인증용 키가 인증용 키 페어에 해당하는 것임을 검증함으로써 상기 사용자 인증을 수행할 수 있다. 이 경우, 상술한 바와 같이 상기 제1 인증용 키와 제2 인증용 키는 각각, 상기 인증 정보 관리부(140)의 인증용 키 페어 생성부(142)에서 비대칭키 방식으로 생성된 비밀키와 공개키일 수 있다.
이러한 사용자 인증 절차를 위해, 상기 사용자 인증부(150)의 키 획득부(152)는, 상기 사용자의 요청에 대응하여 상기 블록체인에 저장된 제2 인증용 키를 획득할 수 있다. 예컨대, 상기 사용자의 단말로부터 상기 사용자의 요청과 함께 상기 사용자에게 제공되었던 트랜잭션 ID, PIN 코드 등이 수신되면(S900), 상기 키 획득부(152)는 상기 계약서 관리부(130)로 상기 수신된 트랜잭션 ID를 전송하여 상기 수신된 트랜잭션 ID가 블록체인에 이미 저장된 트랜잭션 ID에 해당하는지 확인을 요청할 수 있다(S910). 해당 요청에 따라, 상기 계약서 관리부(130)의 블록체인 조회부(138)는 임시 보관용 블록체인인 미니 체인이나 영구 보관용 블록체인에 상기 수신된 트랜잭션 ID에 대응하는 트랜잭션 ID가 저장되어 있는지 조회할 수 있다(S920). 상기 수신된 트랜잭션 ID에 대응하는 트랜잭션 ID가 블록체인에 저장되어 있지 않은 경우, 해당 사용자 인증 절차는 바로 종료될 수 있다(S922). 반면, 상기 수신된 트랜잭션 ID에 대응하는 트랜잭션 ID가 블록체인에 저장되어 있는 경우, 상기 사용자 인증의 제1차 인증이 성공하게 되고, 상기 계약서 관리부(130)는 해당 블록체인에서 상기 트랜잭션 ID와 연관되어 저장된 제2 인증용 키, 예컨대 공개키를 획득하여 상기 사용자 인증부(150)로 전송할 수 있다(S924).
그 다음, 상기 사용자 인증부(150)는 상기 사용자의 단말로부터 수신된 PIN 코드를 상기 인증 정보 관리부(140)로 전송하여 상기 수신된 PIN 코드가 상기 인증 정보 관리부(140)에 이미 저장된 PIN 코드에 해당하는지 확인을 요청할 수 있다(S930). 해당 요청에 따라, 상기 인증 정보 관리부(140)의 키 관리부(146)는 상기 수신된 PIN 코드에 대응하는 PIN 코드를 자체 저장 중인지 확인할 수 있다(S920). 상기 키 관리부(146)가 상기 수신된 PIN 코드에 대응하는 PIN 코드를 저장하지 않은 경우, 해당 사용자 인증 절차는 바로 종료될 수 있다(S942). 반면, 상기 키 관리부(146)가 상기 수신된 PIN 코드에 대응하는 PIN 코드를 자체 저장 중인 경우, 상기 사용자 인증의 제2차 인증이 성공하게 되고, 상기 인증 정보 관리부(140)는 상기 사용자 인증부(150)로 인증 절차의 진행을 요청할 수 있다(S944).
그 다음, 상기 사용자 인증부(150)의 토큰 생성부(154)는, 상기 계약서 관리부(130)로부터 수신된 제2 인증용 키를 검증하기 위해 임의의 토큰(token)을 생성하고(S950), 해당 토큰을 상기 인증 정보 관리부(140)로 전송할 수 있다(S952). 그러면, 상기 인증 정보 관리부(140)의 키 관리부(146)는 상기 수신된 PIN 코드와 연관된 제1 인증용 키, 예컨대 비밀키로 상기 토큰을 암호화하고(S960), 해당 암호화 토큰을 상기 사용자 인증부(150)로 다시 전송할 수 있다(S962). 일 실시예에 있어서, 상기 사용자 인증부(150)와 인증 정보 관리부(140)가 각각 별도의 서버나 장치로 구성되는 경우, 상기 토큰 값이나 암호화 토큰 값의 보안을 위해 SSL 등과 같은 보안 전송 방식이 상기 사용자 인증부(150)와 인증 정보 관리부(140) 간의 통신에 추가로 적용될 수 있다.
그 다음, 상기 사용자 인증부(150)의 인증 수행부(156)는, 상기 계약서 관리부(130)로부터 수신된 제2 인증용 키로 상기 암호화 토큰을 복호화하고(S970), 복호화된 토큰이 상기 토큰 생성부(154)에 의해 생성된 토큰과 일치하는지 상호 비교할 수 있다(S980). 양 토큰이 상호 일치하지 않는 경우, 해당 사용자 인증 절차는 바로 종료될 수 있다(S982). 반면, 양 토큰이 상호 일치하는 경우, 상기 사용자 인증의 최종적인 제3차 인증이 성공하게 되고, 상기 사용자 인증부(150)는 상기 사용자의 해당 요청에 따른 후속 절차를 진행하도록 상기 계약서 관리부(130) 등에 요청할 수 있다(S984).
도 10에는 본 발명의 일 실시예에 따른 블록체인 기반의 전자 계약 처리 방법의 계약서 열람 프로세스가 흐름도로 도시되어 있다. 도 10을 참조하여, 도 2에 도시된 전자 계약 처리 시스템(100)의 세부 구성들과 그 동작들을 상세히 설명한다.
도 10에 도시된 바와 같이, 상기 전자 계약 처리 시스템(100)을 통해 전자 계약을 체결한 사용자의 소정 단말로부터 상기 사용자에게 제공되었던 트랜잭션 ID, PIN 코드 등과 함께 해당 전자 계약에 대한 계약서 열람 요청이 수신되면(S1000), 도 9를 참조하여 설명된 바와 같이, 상기 사용자 인증부(150)는 상기 수신된 트랜잭션 ID 및 PIN 코드를 이용하여 상기 사용자에 대한 사용자 인증을 우선적으로 수행할 수 있다(S1010). 상기 사용자 인증이 실패한 경우, 계약서 열람 절차는 바로 종료될 수 있다(S1012). 반면, 상기 사용자 인증이 성공한 경우, 사용자 인증부(150)는 상기 계약서 관리부(130) 등으로 계약서 열람 제공을 위한 후속 절차를 요청할 수 있다(S1014).
상기 계약서 관리부(130)의 블록체인 조회부(138)는, 상기 사용자 인증이 성공한 경우, 상기 수신된 트랜잭션 ID 또는 상술한 사용자 인증 절차에서 블록체인 조회시 사용한 트랜잭션 ID로 상기 임시 보관용 블록체인 또는 영구 보관용 블록체인을 조회하여, 해당 트랜잭션에 저장된 암호화된 계약서 데이터를 획득할 수 있다(S1020). 그리고 상기 계약서 관리부(130)는 상기 암호화된 계약서 데이터를 상기 암호 처리부(120)로 전송하여 해당 데이터의 복호화 절차를 요청할 수 있다(S1022).
상기 암호 처리부(120)는, 상기 암호화된 계약서 데이터를 복호화하여 HEX 코드 상태의 복호화된 계약서 데이터를 생성할 수 있다. 그리고 상기 암호 처리부(120)는 상기 복호화된 계약서 데이터를 상기 계약 처리부(110)로 전송하여 이미지 파일 형태로의 포맷 변환을 요청할 수 있다(S1032).
상기 계약 처리부(110)의 이미지 처리부(114)는, HEX 코드 상태의 상기 복호화된 계약서 데이터를 이미지 파일 포맷으로 변환하여 계약서 이미지 파일을 생성하고, 상기 계약서 이미지 파일을 상기 사용자의 단말로 전송하거나 상기 사용자의 단말에서 해당 계약서 이미지가 디스플레이되도록 할 수 있다(S1040).
도 11에는 본 발명의 일 실시예에 따른 블록체인 기반의 전자 계약 처리 방법의 계약서 원본 증명 프로세스가 흐름도로 도시되어 있다. 도 11을 참조하여, 도 2에 도시된 전자 계약 처리 시스템(100)의 세부 구성들 및 그 동작들을 상세히 설명한다.
도 11에 도시된 바와 같이, 상기 전자 계약 처리 시스템(100)을 통해 전자 계약을 체결한 사용자의 소정 단말로부터, 상기 사용자에게 제공되었던 트랜잭션 ID, PIN 코드, 및 계약서 원본 증명용 해시값 등과 함께, 해당 전자 계약서에 대한 원본성 증명을 요청하는 계약서 원본 증명 요청이 수신되면(S1100), 도 9를 참조하여 설명된 바와 같이, 상기 사용자 인증부(150)는 상기 수신된 트랜잭션 ID 및 PIN 코드를 이용하여 상기 사용자에 대한 사용자 인증을 우선적으로 수행할 수 있다(S1110). 상기 사용자 인증이 실패한 경우, 계약서 원본 증명 절차는 바로 종료될 수 있다(S1112). 반면, 상기 사용자 인증이 성공한 경우, 사용자 인증부(150)는 상기 계약서 관리부(130) 등으로 계약서 원본 증명을 위한 후속 절차를 요청할 수 있다(S1114).
상기 계약서 관리부(130)의 블록체인 조회부(138)는, 상기 사용자 인증이 성공한 경우, 상기 수신된 트랜잭션 ID 또는 상술한 사용자 인증 절차에서 블록체인 조회시 사용한 트랜잭션 ID로 상기 임시 보관용 블록체인 또는 영구 보관용 블록체인을 조회하여, 해당 트랜잭션에 저장된 암호화된 계약서 데이터와 상기 제2 인증용 키에 해당하는 공개키 등을 획득할 수 있다(S1120). 그리고 상기 계약서 관리부(130)는 상기 암호화된 계약서 데이터를 상기 암호 처리부(120)로 전송하여 해당 데이터의 복호화 절차를 요청할 수 있다(S1122).
상기 암호 처리부(120)는, 상기 암호화된 계약서 데이터를 복호화하여 HEX 코드 상태의 복호화된 계약서 데이터를 생성할 수 있다. 그리고 상기 암호 처리부(120)는 상기 복호화된 계약서 데이터를 상기 전자 계약 처리 시스템(100)의 증명 정보 생성부(160)로 전송하여 전자 계약서의 원본성 증명을 위한 계약서 해시값을 생성하도록 요청할 수 있다(S1132).
상기 증명 정보 생성부(160)는, 상기 암호 처리부(120)로부터 HEX 코드 상태의 복호화된 계약서 데이터가 수신되면, 상기 계약서 원본 증명용 해시값을 생성한 방식과 동일한 방식을 적용하여 상기 복호화된 계약서 데이터로부터 계약서 해시값을 생성할 수 있다. 즉, 상기 증명 정보 생성부(160)는 상기 저장부(103)로부터 상기 수신된 트랜잭션 ID에 대응하는 타임스탬프를 획득하고, 상기 타임스탬프와 연관시켜 상기 복호화된 계약서 데이터를 중복적으로 해시 처리함으로써 상기 계약서 해시값을 생성할 수 있다(S1140). 이 경우, 상기 증명 정보 생성부(160)의 1차 해시 처리부(162)는, 사용자의 계약서 원본 증명 요청이 있는 경우, 상기 암호 처리부(120)로부터 HEX 코드 상태의 복호화된 계약서 데이터를 수신하여 1차 해시 처리함으로써 중간 해시값을 생성할 수 있다. 그리고 상기 증명 정보 생성부(160)의 2차 해시 처리부(164)는, 상기 저장부(103)에 요청하여 상기 수신된 트랜잭션 ID에 대응하는 타임스탬프를 획득하고, 상기 1차 해시 처리부(162)로부터 수신된 중간 해시값을 상기 타임스탬프와 연관시켜 2차 해시 처리함으로써 상기 계약서 해시값을 생성할 수 있다. 예컨대, 상기 2차 해시 처리부(164)는 상기 중간 해시값과 상기 타임스탬프의 문자열에 대하여 배타적 논리합(XOR)을 수행한 결과값, 또는 상기 중간 해시값과 상기 타임스탬프를 결합한 결과값에 SHA-256 등과 같은 단방향 보안 해시 알고리즘을 2차로 적용하여 상기 계약서 해시값을 생성할 수 있다. 상기 증명 정보 생성부(160)는 계약서 해시값을 상기 전자 계약 처리 시스템(100)의 계약서 원본 증명부(170)로 전송하여 계약서 원본 증명 절차를 요청할 수 있다(S1142).
상기 계약서 원본 증명부(170)는, 상기 증명 정보 생성부(160)로부터 상기 계약서 해시값이 수신되면, 상기 사용자의 단말로부터 수신된 계약서 원본 증명용 해시값과 상기 계약서 해시값을 비교함으로써, 상기 복호화된 계약서 데이터 또는 상기 복호화된 계약서 데이터로부터 생성되는 전자 계약서가 해당 전자 계약의 계약서 원본에 대응하는 것임을 증명할 수 있다(S1150).
이를 위해, 상기 계약서 원본 증명부(170)의 해시값 획득부(172)는, 상기 사용자의 단말로부터 수신된 계약서 원본 증명용 해시값과, 상기 증명 정보 생성부(160)로부터 수신된 상기 계약서 해시값을 획득할 수 있다.
일 실시예에 있어서, 상기 해시값 획득부(172)가 상기 계약서 원본 증명용 해시값을 획득하기 전에, 상기 인증 정보 관리부(140)의 키 관리부(146)는 상기 사용자의 단말로부터 수신된 계약서 원본 증명용 해시값을, 인증용 키 페어의 제1 인증용 키로 암호화하여 암호화된 해시값을 생성할 수 있다. 그리고 해시값 획득부(172)는, 상기 인증용 키 페어의 제2 인증용 키로서 상기 암호화된 계약서 데이터와 함께 블록체인에 저장되었던 제2 인증용 키를 이용하여 상기 암호화된 해시값을 복호화함으로써, 상기 수신된 계약서 원본 증명용 해시값을 획득할 수 있다. 예컨대, 상기 사용자 인증이 성공하면 상기 키 관리부(146)는 자체 저장 중인 비밀키를 활성화하고 상기 비밀키로 상기 수신된 계약서 원본 증명용 해시값을 암호화하여 상기 암호화된 해시값을 생성하고, 상기 암호화된 해시값을 상기 해시값 획득부(172)로 전송할 수 있다. 이 경우, 상기 해시값 획득부(172)는 블록체인에서 상기 제2 인증용 키에 해당하는 공개키를 획득한 상기 블록체인 조회부(138)로부터 해당 공개키를 수신하고, 해당 공개키로 상기 암호화된 해시값을 복호화함으로써 상기 계약서 원본 증명용 해시값을 획득할 수 있다.
그 다음, 상기 계약서 원본 증명부(170)의 계약서 원본 판별부(174)는, 상기 수신된 계약서 원본 증명용 해시값과 상기 계약서 해시값이 서로 일치하는지를 비교하여 상기 복호화된 계약서 데이터가 상기 전자 계약의 계약서 원본에 대응하는 것인지를 판별할 수 있다(S1160). 양 해시값이 상호 일치하지 않는 경우, 해당 계약서 원본 증명 절차는 바로 종료될 수 있다(S1162). 반면, 양 해시값이 상호 일치하는 경우, 상기 계약서 원본 판별부(174)는 상기 복호화된 계약서 데이터가 해당 전자 계약의 계약서 원본에 대응하는 것으로 판단하여 상기 계약서 원본 증명부(170)의 원본 증명서 발급부(176)로 원본 증명서의 발급을 요청하고, 상기 원본 증명서 발급부(176)는 상기 복호화된 계약서 데이터 또는 상기 복호화된 계약서 데이터로부터 생성되는 전자 계약서에 대한 원본 증명서를 발급할 수 있다(S1164). 이 경우, 상기 원본 증명서 발급부(176)는 원본 증명서 파일을 상기 사용자의 단말로 전송하거나, 상기 사용자의 단말에서 해당 원본 증명서가 디스플레이되도록 할 수 있다. 또한, 상기 원본 증명서 발급부(176)는 상기 원본 증명서를 상기 전자 계약 처리 시스템(100)의 출력부(104)를 통해 직접 출력할 수도 있다.
한편, 본 발명에 따른 실시예들은 컴퓨터 시스템과 이러한 컴퓨터 시스템을 구동하는 컴퓨터 프로그램으로 구현될 수 있다. 본 발명의 실시예들이 컴퓨터 프로그램으로 구현되는 경우, 본 발명의 구성요소들은 해당 컴퓨터 시스템을 통해 해당 동작이나 작업을 실행하는 프로그램 세그먼트들이다. 이러한 컴퓨터 프로그램 내지 프로그램 세그먼트들은 컴퓨터로 판독 가능한 다양한 기록매체에 저장될 수 있다. 컴퓨터로 판독 가능한 기록매체에는 컴퓨터 시스템이 읽어들일 수 있는 데이터를 기록하는 모든 종류의 매체가 포함된다. 예컨대, 컴퓨터로 판독 가능한 기록매체에는 ROM, RAM, CD-ROM, 자기 테이프, 플로피디스크, 광 데이터 저장 장치 등이 포함될 수 있다. 또한, 이러한 기록매체는 다양한 네트워크로 연결된 컴퓨터 시스템들에 분산 배치되어 프로그램 코드들을 분산 방식으로 저장하거나 실행시킬 수 있다.
상술한 바와 같이 본 발명에 따르면, 사용자 단말과 통신하는 전자 계약 처리 시스템을 통해 전자 계약의 체결을 증명하는 계약서 데이터를 생성하고, 저장된 데이터의 변경과 삭제가 불가능한 블록체인에 해당 계약서 데이터를 저장함으로써, 계약서 데이터의 위·변조를 방지하고 데이터 무결성을 보장할 수 있다. 또한, 전자 계약의 계약서 데이터가 블록체인 기술의 분산 저장 방식을 통해 다수의 블록체인 노드에 분산 저장되도록 함으로써, 해커 등과 같은 악의적인 공격자들의 집중 공격 문제를 해결하고, 저장된 데이터의 손실 발생시 데이터 복구를 용이하게 함은 물론, 특정 노드에 장애가 발생한 경우라도 사용자의 계약서 열람 또는 출력 등을 가능하게 할 수 있다. 또한, 전자 계약의 계약서 데이터를 암호화된 상태로 블록체인에 저장함으로써, 전자 계약의 보안성을 확보하고 개인 정보 등의 유출을 방지할 수 있다. 또한, 전자 계약의 계약 철회 기간이나 계약 취소 기간이 정해지는 등 전자 계약의 계약 내용상 계약서 데이터의 임시 보관이 필요한 경우, 일정한 존속 기간이 부여되어 해당 존속 기간의 경과시 블록체인 전체가 삭제되는 임시 보관용 블록체인에 해당 계약서 데이터를 저장함으로써, 계약이 철회 또는 취소된 경우 등과 같이 블록체인에 저장된 계약서 데이터의 삭제가 필요한 경우에도 능동적으로 대처할 수 있다. 또한, 계약서 데이터를 블록체인에 저장하는 트랜잭션의 타임스탬프와 연관되어 중복적으로 해시 처리된 해시값들을 이용하여 상기 블록체인에 저장된 계약서 데이터가 계약서 원본에 대응하는 것임을 증명함으로써, 상기 전자 계약 처리 시스템에 의해 제공되는 전자 계약서의 위·변조 여부를 계약서 데이터의 저장 시점을 기반으로 판별하고, 전자 계약 처리 시스템의 신뢰성과 계약 증명력을 개선할 수 있다. 나아가, 본 발명에 따른 실시예들은, 당해 기술 분야는 물론 관련 기술 분야에서 본 명세서에 언급된 내용 이외의 다른 여러 기술적 과제들을 해결할 수 있음은 물론이다.
지금까지 본 발명에 대해 구체적인 실시예들을 참고하여 설명하였다. 그러나 당업자라면 본 발명의 기술적 범위에서 다양한 변형된 실시예들이 구현될 수 있음을 명확하게 이해할 수 있을 것이다. 그러므로 앞서 기재된 실시예들은 한정적인 관점이 아니라 설명적인 관점에서 고려되어야 할 것이다. 즉, 본 발명의 진정한 기술적 사상의 범위는 청구범위에 나타나 있으며, 그와 균등범위 내에 있는 모든 차이점은 본 발명에 포함되는 것으로 해석되어야 할 것이다.
100 : 전자 계약 처리 시스템 110 : 계약 처리부
112 : 계약 정보 수집부 114 : 이미지 처리부
120 : 암호 처리부 130 : 계약서 관리부
132 : 블록체인 관리부 134 : 블록체인 주소 생성부
136 : 트랜잭션 발생부 138 : 블록체인 조회부
140 : 인증 정보 관리부 142 : 인증용 키 페어 생성부
144 : 개인 고유 코드 생성부 146 : 키 관리부
150 : 사용자 인증부 152 : 키 획득부
154 : 토큰 생성부 156 : 인증 수행부
160 : 증명 정보 생성부 162 : 1차 해시 처리부
164 : 2차 해시 처리부 170 : 계약서 원본 증명부
172 : 해시값 획득부 174 : 계약서 원본 판별부
176 : 원본 증명서 발급부 180 : 계약 정보 발송부

Claims (26)

  1. 사용자의 단말로부터 전자 계약에 필요한 계약 정보를 수집하여 상기 전자 계약의 체결을 증명하는 계약서 데이터를 생성하는 계약 처리부;
    상기 계약서 데이터를 암호화하여 암호화된 계약서 데이터를 생성하는 암호 처리부; 및
    블록체인 노드의 블록체인에 데이터를 저장하는 트랜잭션을 발생시켜 상기 블록체인에 상기 암호화된 계약서 데이터를 저장하고, 상기 사용자의 요청이 있는 경우 상기 블록체인을 조회하여 상기 암호화된 계약서 데이터를 획득하는 계약서 관리부를 포함하고,
    상기 계약서 관리부는, 상기 암호화된 계약서 데이터의 임시 보관 필요 여부에 따라 상기 암호화된 계약서 데이터를, 일정한 존속 기간이 부여되는 블록체인으로서 해당 존속 기간의 경과시 블록체인 전체가 삭제되는 임시 보관용 블록체인에 저장하거나, 존속 기간이 부여되지 않은 영구 보관용 블록체인에 저장하는 블록체인 기반의 전자 계약 처리 시스템.
  2. 제1항에 있어서,
    상기 계약 처리부는,
    상기 단말과 통신하여 상기 사용자가 입력한 계약 정보를 수집하는 계약 정보 수집부; 및
    상기 계약 정보에 따른 전자 계약서를 이미지 파일로 획득하고 상기 이미지 파일을 HEX 코드로 변환하여 상기 계약서 데이터를 생성하는 이미지 처리부를 포함하는 것을 특징으로 하는 블록체인 기반의 전자 계약 처리 시스템.
  3. 제1항에 있어서,
    상기 암호 처리부는, 대칭키 암호화 방식으로 상기 암호화된 계약서 데이터를 생성하여 상기 계약서 관리부로 전송하고, 차후 상기 사용자의 요청이 있는 경우 상기 계약서 관리부를 통해 상기 블록체인에 저장된 상기 암호화된 계약서 데이터를 수신하여 복호화하는 것을 특징으로 하는 블록체인 기반의 전자 계약 처리 시스템.
  4. 제1항에 있어서,
    상기 계약서 관리부는,
    상기 암호화된 계약서 데이터의 임시 보관 필요 여부에 따라 상기 임시 보관용 블록체인 또는 상기 영구 보관용 블록체인을 상기 암호화된 계약서 데이터를 저장할 블록체인으로 결정하는 블록체인 관리부;
    상기 블록체인 관리부의 결정에 따라 상기 임시 보관용 블록체인 또는 상기 영구 보관용 블록체인에 상기 암호화된 계약서 데이터를 저장하기 위한 블록체인 주소를 생성하는 블록체인 주소 생성부; 및
    상기 블록체인 관리부의 결정에 따라 트랜잭션을 발생시켜 상기 트랜잭션을 식별하는 트랜잭션 ID와 함께 상기 블록체인 주소, 상기 트랜잭션의 발생 시각을 나타내는 타임스탬프, 및 상기 암호화된 계약서 데이터를 해당 블록체인에 저장하는 트랜잭션 발생부를 포함하는 것을 특징으로 하는 블록체인 기반의 전자 계약 처리 시스템.
  5. 제4항에 있어서,
    상기 블록체인 관리부는, 상기 암호화된 계약서 데이터가 상기 임시 보관용 블록체인에 저장된 후 상기 전자 계약의 계약 내용에 따른 계약서 임시 보관 기간이 경과된 경우, 상기 영구 보관용 블록체인을 상기 암호화된 계약서 데이터를 저장할 블록체인으로 결정하고,
    상기 계약서 관리부는, 상기 임시 보관용 블록체인을 조회하여 상기 임시 보관용 블록체인에 저장된 상기 암호화된 계약서 데이터를 획득하는 블록체인 조회부를 더 포함하는 것을 특징으로 하는 블록체인 기반의 전자 계약 처리 시스템.
  6. 제1항에 있어서,
    상기 시스템은,
    상기 전자 계약과 관련하여 인증용 키 페어를 생성하고, 상기 인증용 키 페어의 제1 인증용 키를 자체 저장하는 한편, 상기 인증용 키 페어의 제2 인증용 키를 상기 계약서 관리부로 전송하여 상기 암호화된 계약서 데이터와 함께 상기 블록체인에 저장되도록 하는 인증 정보 관리부; 및
    상기 사용자의 요청에 대응하여 상기 블록체인에 저장된 상기 제2 인증용 키를 획득하고, 상기 제1 인증용 키를 보관 중인 상기 인증 정보 관리부와 연동하여 상기 제1 인증용 키와 상기 획득된 제2 인증용 키가 인증용 키 페어에 해당하는 것임을 검증함으로써 사용자 인증을 수행하는 사용자 인증부를 더 포함하는 것을 특징으로 하는 블록체인 기반의 전자 계약 처리 시스템.
  7. 제6항에 있어서,
    상기 인증 정보 관리부는,
    상기 제1 인증용 키로서 비밀키를 생성하고 상기 제2 인증용 키로서 상기 비밀키에 대응하는 공개키를 생성하는 인증용 키 페어 생성부;
    상기 사용자에게 제공되는 개인 고유 코드를 생성하는 개인 고유 코드 생성부; 및
    상기 인증용 키 페어 중 상기 제1 인증용 키와 상기 개인 고유 코드를 상호 연관시켜 저장하는 키 관리부를 포함하는 것을 특징으로 하는 블록체인 기반의 전자 계약 처리 시스템.
  8. 제6항에 있어서,
    상기 사용자 인증부는,
    상기 사용자의 요청에 대응하여 상기 블록체인에 저장된 상기 제2 인증용 키를 획득하는 키 획득부;
    임의의 토큰을 생성하여 상기 인증 정보 관리부로 전송하는 토큰 생성부; 및
    상기 토큰을 상기 제1 인증용 키로 암호화한 암호화 토큰을 상기 인증 정보 관리부로부터 수신하고, 상기 암호화 토큰을 상기 획득된 제2 인증용 키로 복호화하여 상기 토큰과 비교함으로써 상기 사용자 인증을 수행하는 인증 수행부를 포함하는 것을 특징으로 하는 블록체인 기반의 전자 계약 처리 시스템.
  9. 제1항에 있어서,
    상기 시스템은,
    상기 계약 처리부에 의해 생성된 상기 계약서 데이터로부터 계약서 원본 증명용 해시값을 생성하여 상기 사용자에게 제공되도록 하고, 상기 사용자의 계약서 원본 증명 요청이 있는 경우, 상기 블록체인에 저장된 상기 암호화된 계약서 데이터를 복호화함으로써 생성되는 복호화된 계약서 데이터로부터 계약서 해시값을 생성하는 증명 정보 생성부; 및
    상기 시스템이 상기 사용자의 상기 단말 또는 타 단말로부터 상기 사용자에게 제공된 계약서 원본 증명용 해시값을 수신하면, 상기 수신된 계약서 원본 증명용 해시값과 상기 계약서 해시값을 비교하여 상기 복호화된 계약서 데이터가 상기 전자 계약의 계약서 원본에 대응하는 것임을 증명하는 계약서 원본 증명부를 더 포함하는 것을 특징으로 하는 블록체인 기반의 전자 계약 처리 시스템.
  10. 제9항에 있어서,
    상기 증명 정보 생성부는,
    상기 계약 처리부에 의해 생성된 상기 계약서 데이터를 1차 해시 처리함으로써 제1 중간 해시값을 생성하는 1차 해시 처리부;
    상기 제1 중간 해시값을 상기 트랙잭션의 발생 시각을 나타내는 타임스탬프와 연관시켜 2차 해시 처리함으로써 상기 계약서 원본 증명용 해시값을 생성하는 2차 해시 처리부를 포함하는 것을 특징으로 하는 블록체인 기반의 전자 계약 처리 시스템.
  11. 제10항에 있어서,
    상기 1차 해시 처리부는, 상기 사용자의 계약서 원본 증명 요청이 있는 경우, 상기 복호화된 계약서 데이터를 1차 해시 처리함으로써 제2 중간 해시값을 생성하고,
    상기 2차 해시 처리부는, 상기 제2 중간 해시값을 상기 타임스탬프와 연관시켜 2차 해시 처리함으로써 상기 계약서 해시값을 생성하는 것을 특징으로 하는 블록체인 기반의 전자 계약 처리 시스템.
  12. 제9항에 있어서,
    상기 계약서 원본 증명부는,
    상기 수신된 계약서 원본 증명용 해시값과 상기 계약서 해시값을 비교하여 상기 복호화된 계약서 데이터가 상기 전자 계약의 계약서 원본에 대응하는 것인지를 판별하는 계약서 원본 판별부; 및
    상기 복호화된 계약서 데이터가 상기 전자 계약의 계약서 원본에 대응하는 것으로 판별되면, 상기 복호화된 계약서 데이터 또는 상기 복호화된 계약서 데이터로부터 생성되는 전자 계약서에 대한 원본 증명서를 발급하는 원본 증명서 발급부를 포함하는 것을 특징으로 하는 블록체인 기반의 전자 계약 처리 시스템.
  13. 제12항에 있어서,
    상기 시스템은, 상기 수신된 계약서 원본 증명용 해시값을 인증용 키 페어의 제1 인증용 키로 암호화하여 암호화된 해시값을 생성하고, 상기 암호화된 해시값을 상기 계약서 원본 증명부로 전송하는 인증 정보 관리부를 더 포함하고,
    상기 계약서 원본 증명부는, 상기 인증용 키 페어의 제2 인증용 키로서 상기 암호화된 계약서 데이터와 함께 상기 블록체인에 저장된 제2 인증용 키를 이용하여 상기 암호화된 해시값을 복호화함으로써, 상기 수신된 계약서 원본 증명용 해시값을 획득하는 해시값 획득부를 더 포함하는 것을 특징으로 하는 블록체인 기반의 전자 계약 처리 시스템.
  14. 사용자의 단말 및 블록체인 네트워크의 블록체인 노드와 통신하는 전자 계약 처리 시스템이 블록체인을 기반으로 전자 계약을 처리하는 방법으로서,
    상기 시스템이 상기 단말로부터 전자 계약에 필요한 계약 정보를 수집하여 상기 전자 계약의 체결을 증명하는 계약서 데이터를 생성하는 단계;
    상기 시스템이 상기 계약서 데이터를 암호화하여 암호화된 계약서 데이터를 생성하는 단계;
    상기 시스템이 상기 블록체인 노드의 블록체인에 데이터를 저장하는 트랜잭션을 발생시켜 상기 블록체인에 상기 암호화된 계약서 데이터를 저장하는 단계; 및
    상기 사용자의 요청이 있는 경우, 상기 시스템이 상기 블록체인을 조회하여 상기 암호화된 계약서 데이터를 획득하는 단계를 포함하고,
    상기 암호화된 계약서 데이터를 저장하는 단계는, 상기 시스템이 상기 암호화된 계약서 데이터의 임시 보관 필요 여부에 따라 상기 암호화된 계약서 데이터를, 일정한 존속 기간이 부여되는 블록체인으로서 해당 존속 기간의 경과시 블록체인 전체가 삭제되는 임시 보관용 블록체인에 저장하거나, 존속 기간이 부여되지 않은 영구 보관용 블록체인에 저장하는 단계를 포함하는 블록체인 기반의 전자 계약 처리 방법.
  15. 제14항에 있어서,
    상기 계약서 데이터를 생성하는 단계는,
    상기 시스템이 상기 단말과 통신하여 상기 사용자가 입력한 계약 정보를 수집하는 단계; 및
    상기 시스템이 상기 계약 정보에 따른 전자 계약서를 이미지 파일로 획득하고 상기 이미지 파일을 HEX 코드로 변환하여 상기 계약서 데이터를 생성하는 단계를 포함하는 것을 특징으로 하는 블록체인 기반의 전자 계약 처리 방법.
  16. 제14항에 있어서,
    상기 암호화된 계약서 데이터를 저장하는 단계는,
    상기 시스템이 상기 암호화된 계약서 데이터의 임시 보관 필요 여부에 따라 상기 임시 보관용 블록체인 또는 상기 영구 보관용 블록체인을 상기 암호화된 계약서 데이터를 저장할 블록체인으로 결정하는 단계;
    상기 시스템이 상기 임시 보관용 블록체인 또는 상기 영구 보관용 블록체인에 상기 암호화된 계약서 데이터를 저장하기 위한 블록체인 주소를 생성하는 단계; 및
    상기 시스템이 트랜잭션을 발생시켜 상기 트랜잭션을 식별하는 트랜잭션 ID와 함께 상기 블록체인 주소, 상기 트랜잭션의 발생 시각을 나타내는 타임스탬프, 및 상기 암호화된 계약서 데이터를 해당 블록체인에 저장하는 단계를 포함하는 것을 특징으로 하는 블록체인 기반의 전자 계약 처리 방법.
  17. 제16항에 있어서,
    상기 암호화된 계약서 데이터를 저장하는 단계는,
    상기 암호화된 계약서 데이터가 상기 임시 보관용 블록체인에 저장된 후 상기 전자 계약의 계약 내용에 따른 계약서 임시 보관 기간이 경과된 경우, 상기 시스템이 상기 영구 보관용 블록체인을 상기 암호화된 계약서 데이터를 저장할 블록체인으로 결정하는 단계; 및
    상기 시스템이 상기 임시 보관용 블록체인을 조회하여 상기 임시 보관용 블록체인에 저장된 상기 암호화된 계약서 데이터를 획득하고, 상기 획득된 암호화된 계약서 데이터를 상기 영구 보관용 블록체인에 저장하는 단계를 더 포함하는 것을 특징으로 하는 블록체인 기반의 전자 계약 처리 방법.
  18. 제14항에 있어서,
    상기 방법은,
    상기 시스템이 상기 전자 계약과 관련하여 인증용 키 페어를 생성하고, 상기 인증용 키 페어의 제1 인증용 키를 자체 저장하는 한편, 상기 인증용 키 페어의 제2 인증용 키를 상기 암호화된 계약서 데이터와 함께 상기 블록체인에 저장하는 인증용 키 저장 단계; 및
    상기 시스템이 상기 사용자의 요청에 대응하여 상기 블록체인에 저장된 상기 제2 인증용 키를 획득하고, 자체 보관 중인 상기 제1 인증용 키와 상기 획득된 제2 인증용 키가 인증용 키 페어에 해당하는 것임을 검증함으로써 사용자 인증을 수행하는 사용자 인증 단계를 더 포함하는 것을 특징으로 하는 블록체인 기반의 전자 계약 처리 방법.
  19. 제18항에 있어서,
    상기 인증용 키 저장 단계는,
    상기 시스템이 상기 제1 인증용 키로서 비밀키를 생성하고 상기 제2 인증용 키로서 상기 비밀키에 대응하는 공개키를 생성하는 단계;
    상기 시스템이 상기 사용자에게 제공되는 개인 고유 코드를 생성하는 단계; 및
    상기 시스템이 상기 인증용 키 페어 중 상기 제1 인증용 키와 상기 개인 고유 코드를 상호 연관시켜 저장하는 단계를 포함하는 것을 특징으로 하는 블록체인 기반의 전자 계약 처리 방법.
  20. 제18항에 있어서,
    상기 사용자 인증 단계는,
    상기 시스템이 상기 사용자의 요청에 대응하여 상기 블록체인에 저장된 상기 제2 인증용 키를 획득하는 단계;
    상기 시스템이 임의의 토큰을 생성하는 단계; 및
    상기 시스템이 상기 토큰을 상기 제1 인증용 키로 암호화하고, 상기 암호화된 토큰을 상기 획득된 제2 인증용 키로 복호화하여 상기 토큰과 비교함으로써 상기 사용자 인증을 수행하는 단계를 포함하는 것을 특징으로 하는 블록체인 기반의 전자 계약 처리 방법.
  21. 제14항에 있어서,
    상기 방법은,
    상기 시스템이 상기 계약서 데이터로부터 계약서 원본 증명용 해시값을 생성하는 단계;
    상기 시스템이 상기 계약서 원본 증명용 해시값을 상기 사용자에게 제공하는 단계;
    상기 사용자의 계약서 원본 증명 요청이 있는 경우, 상기 시스템이 상기 사용자의 상기 단말 또는 타 단말로부터 상기 사용자에게 제공된 계약서 원본 증명용 해시값을 수신하고, 상기 블록체인에 저장된 상기 암호화된 계약서 데이터를 복호화함으로써 생성되는 복호화된 계약서 데이터로부터 계약서 해시값을 생성하는 단계; 및
    상기 시스템이 상기 수신된 계약서 원본 증명용 해시값과 상기 계약서 해시값을 비교하여 상기 복호화된 계약서 데이터가 상기 전자 계약에 대응하는 것임을 증명하는 단계를 더 포함하는 것을 특징으로 하는 블록체인 기반의 전자 계약 처리 방법.
  22. 제21항에 있어서,
    상기 계약서 원본 증명용 해시값을 생성하는 단계는,
    상기 계약서 데이터를 1차 해시 처리함으로써 제1 중간 해시값을 생성하는 단계; 및
    상기 제1 중간 해시값을 상기 트랙잭션의 발생 시각을 나타내는 타임스탬프와 연관시켜 2차 해시 처리함으로써 상기 계약서 원본 증명용 해시값을 생성하는 단계를 포함하는 것을 특징으로 하는 블록체인 기반의 전자 계약 처리 방법.
  23. 제22항에 있어서,
    상기 계약서 해시값을 생성하는 단계는,
    상기 사용자의 계약서 원본 증명 요청이 있는 경우, 상기 복호화된 계약서 데이터를 1차 해시 처리함으로써 제2 중간 해시값을 생성하는 단계; 및
    상기 제2 중간 해시값을 상기 타임스탬프와 연관시켜 2차 해시 처리함으로써 상기 계약서 해시값을 생성하는 단계를 포함하는 것을 특징으로 하는 블록체인 기반의 전자 계약 처리 방법.
  24. 제21항에 있어서,
    상기 증명하는 단계는,
    상기 시스템이 상기 수신된 계약서 원본 증명용 해시값과 상기 계약서 해시값을 비교하여 상기 복호화된 계약서 데이터가 상기 전자 계약의 계약서 원본에 대응하는 것인지를 판별하는 단계; 및
    상기 복호화된 계약서 데이터가 상기 전자 계약의 계약서 원본에 대응하는 것으로 판별되면, 상기 시스템이 상기 복호화된 계약서 데이터 또는 상기 복호화된 계약서 데이터로부터 생성되는 전자 계약서에 대한 원본 증명서를 발급하는 단계를 포함하는 것을 특징으로 하는 블록체인 기반의 전자 계약 처리 방법.
  25. 제24항에 있어서,
    상기 증명하는 단계는, 상기 판별하는 단계 전에,
    상기 시스템이 상기 수신된 계약서 원본 증명용 해시값을 인증용 키 페어의 제1 인증용 키로 암호화하여 암호화된 해시값을 생성하는 단계; 및
    상기 시스템이 상기 인증용 키 페어의 제2 인증용 키로서 상기 암호화된 계약서 데이터와 함께 상기 블록체인에 저장된 제2 인증용 키를 이용하여 상기 암호화된 해시값을 복호화하는 단계를 더 포함하는 것을 특징으로 하는 블록체인 기반의 전자 계약 처리 방법.
  26. 제14항 내지 제25항 중 어느 한 항에 따른 방법을 컴퓨터 시스템을 통해 실행하는 컴퓨터 프로그램으로서 기록매체에 기록된 컴퓨터 프로그램.
KR1020170120378A 2017-09-19 2017-09-19 블록체인 기반의 전자 계약 처리 시스템 및 방법 KR20190031989A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020170120378A KR20190031989A (ko) 2017-09-19 2017-09-19 블록체인 기반의 전자 계약 처리 시스템 및 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020170120378A KR20190031989A (ko) 2017-09-19 2017-09-19 블록체인 기반의 전자 계약 처리 시스템 및 방법

Publications (1)

Publication Number Publication Date
KR20190031989A true KR20190031989A (ko) 2019-03-27

Family

ID=65906662

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170120378A KR20190031989A (ko) 2017-09-19 2017-09-19 블록체인 기반의 전자 계약 처리 시스템 및 방법

Country Status (1)

Country Link
KR (1) KR20190031989A (ko)

Cited By (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102115309B1 (ko) * 2019-04-24 2020-05-26 엘에스웨어(주) 블록체인 기반의 회화작품 분석정보 관리 시스템 및 방법
KR102118586B1 (ko) * 2019-11-20 2020-06-03 한국건설기술연구원 블록 체인 기술을 이용하여 bim 데이터를 전송하기 위한 시스템 및 그 방법
KR102165157B1 (ko) * 2019-07-29 2020-10-13 손성일 빅데이터 기반 건물 화재보험 자동 가입 시스템 및 방법
KR20200124182A (ko) * 2019-04-23 2020-11-02 주식회사 한국에프에스 분산 어플리케이션 및 이를 포함하는 블록체인 기반 개인 금융상품 관리 시스템
KR20200125181A (ko) * 2019-04-26 2020-11-04 주식회사 다솜소프트 이사날짜 예측을 통한 부동산 정보 제공 방법
KR20200127591A (ko) * 2019-05-03 2020-11-11 주식회사 뉴젠피앤피 전자 근로 계약을 위한 무인 정보 단말 장치
CN112035895A (zh) * 2020-07-20 2020-12-04 江苏傲为控股有限公司 一种基于交易方式的电子合同取证方法及系统
CN112035891A (zh) * 2020-07-20 2020-12-04 江苏傲为控股有限公司 一种去中心化电子合同证明平台
CN112131599A (zh) * 2020-09-15 2020-12-25 北京海益同展信息科技有限公司 校验数据的方法、装置、设备和计算机可读介质
KR20210011122A (ko) * 2019-07-22 2021-02-01 주식회사 국민랩스 전자 계약 관리 시스템 및 그 방법
KR20210017964A (ko) * 2019-08-05 2021-02-17 주식회사 인터리핀 블록체인 기반의 p2p 대출 서비스 자율보증증명 방법 및 장치
KR20210060224A (ko) * 2019-11-18 2021-05-26 서강대학교산학협력단 블록체인을 기반으로 한 음성 녹취 정보 저장 시스템
KR20210059856A (ko) 2019-11-15 2021-05-26 서강대학교산학협력단 블록체인 원장에 대한 검증 가능한 블록체인 네트워크 시스템 및 상기 블록체인 네트워크에서의 블록체인 원장 검증 방법
CN113128951A (zh) * 2021-03-24 2021-07-16 广州智投链码科技有限公司 一种基于企业链码的电子合同管理方法及系统
KR102287979B1 (ko) * 2020-12-11 2021-08-09 (주) 이노트리 블록체인 기반의 영지식 증명을 이용한 온라인 전자 계약 플랫폼 시스템
KR102295113B1 (ko) * 2020-11-20 2021-08-31 주식회사 마크애니 영지식증명을 이용한 블록체인 기반의 전자 계약 관리 시스템 및 그 방법
KR20210129367A (ko) * 2020-04-20 2021-10-28 두산중공업 주식회사 블록체인 기반의 플랜트 관련 중개 서비스를 제공하는 방법 및 이를 위한 중개 서버
US20220006648A1 (en) * 2018-11-13 2022-01-06 Sang Yub Lee Contract apparatus and method of blockchain using digital contents orginal key
KR20220125130A (ko) * 2021-03-04 2022-09-14 주식회사 한컴코드게이트 2차원 코드를 활용하여 당사자 간의 전자 계약을 처리하는 전자 계약 처리 서버 및 그 동작 방법

Cited By (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20220006648A1 (en) * 2018-11-13 2022-01-06 Sang Yub Lee Contract apparatus and method of blockchain using digital contents orginal key
KR20200124182A (ko) * 2019-04-23 2020-11-02 주식회사 한국에프에스 분산 어플리케이션 및 이를 포함하는 블록체인 기반 개인 금융상품 관리 시스템
KR102115309B1 (ko) * 2019-04-24 2020-05-26 엘에스웨어(주) 블록체인 기반의 회화작품 분석정보 관리 시스템 및 방법
KR20200125181A (ko) * 2019-04-26 2020-11-04 주식회사 다솜소프트 이사날짜 예측을 통한 부동산 정보 제공 방법
KR20200127591A (ko) * 2019-05-03 2020-11-11 주식회사 뉴젠피앤피 전자 근로 계약을 위한 무인 정보 단말 장치
KR20210011122A (ko) * 2019-07-22 2021-02-01 주식회사 국민랩스 전자 계약 관리 시스템 및 그 방법
KR102165157B1 (ko) * 2019-07-29 2020-10-13 손성일 빅데이터 기반 건물 화재보험 자동 가입 시스템 및 방법
KR20210017964A (ko) * 2019-08-05 2021-02-17 주식회사 인터리핀 블록체인 기반의 p2p 대출 서비스 자율보증증명 방법 및 장치
KR20210059856A (ko) 2019-11-15 2021-05-26 서강대학교산학협력단 블록체인 원장에 대한 검증 가능한 블록체인 네트워크 시스템 및 상기 블록체인 네트워크에서의 블록체인 원장 검증 방법
WO2021101096A1 (ko) * 2019-11-18 2021-05-27 서강대학교 산학협력단 블록체인을 기반으로 한 음성 녹취 정보 저장 시스템
KR20210060224A (ko) * 2019-11-18 2021-05-26 서강대학교산학협력단 블록체인을 기반으로 한 음성 녹취 정보 저장 시스템
KR102118586B1 (ko) * 2019-11-20 2020-06-03 한국건설기술연구원 블록 체인 기술을 이용하여 bim 데이터를 전송하기 위한 시스템 및 그 방법
KR20210129367A (ko) * 2020-04-20 2021-10-28 두산중공업 주식회사 블록체인 기반의 플랜트 관련 중개 서비스를 제공하는 방법 및 이를 위한 중개 서버
CN112035895A (zh) * 2020-07-20 2020-12-04 江苏傲为控股有限公司 一种基于交易方式的电子合同取证方法及系统
CN112035891A (zh) * 2020-07-20 2020-12-04 江苏傲为控股有限公司 一种去中心化电子合同证明平台
CN112131599A (zh) * 2020-09-15 2020-12-25 北京海益同展信息科技有限公司 校验数据的方法、装置、设备和计算机可读介质
KR102295113B1 (ko) * 2020-11-20 2021-08-31 주식회사 마크애니 영지식증명을 이용한 블록체인 기반의 전자 계약 관리 시스템 및 그 방법
KR102287979B1 (ko) * 2020-12-11 2021-08-09 (주) 이노트리 블록체인 기반의 영지식 증명을 이용한 온라인 전자 계약 플랫폼 시스템
KR20220125130A (ko) * 2021-03-04 2022-09-14 주식회사 한컴코드게이트 2차원 코드를 활용하여 당사자 간의 전자 계약을 처리하는 전자 계약 처리 서버 및 그 동작 방법
CN113128951A (zh) * 2021-03-24 2021-07-16 广州智投链码科技有限公司 一种基于企业链码的电子合同管理方法及系统
CN113128951B (zh) * 2021-03-24 2024-05-31 广州智投链码科技有限公司 一种基于企业链码的电子合同管理方法及系统

Similar Documents

Publication Publication Date Title
KR20190031989A (ko) 블록체인 기반의 전자 계약 처리 시스템 및 방법
CN107925581B (zh) 生物体认证系统以及认证服务器
US20220191012A1 (en) Methods For Splitting and Recovering Key, Program Product, Storage Medium, and System
KR101658501B1 (ko) 해시함수 기반의 전자서명 서비스 시스템 및 그 방법
CN110798315B (zh) 基于区块链的数据处理方法、装置及终端
KR101054970B1 (ko) 개인 정보를 포함하는 전자 증명서를 이용하여 통신 상대를 인증하기 위한 시스템, 장치, 방법, 및 컴퓨터 판독 가능한 기록 매체
US20070136599A1 (en) Information processing apparatus and control method thereof
US8369521B2 (en) Smart card based encryption key and password generation and management
CN113067699B (zh) 基于量子密钥的数据共享方法、装置和计算机设备
WO2004095772A1 (ja) 機器認証システム
CN102427442A (zh) 组合请求相关元数据和元数据内容
CN110460581B (zh) 文件分享方法、系统、设备、se装置、被分享端和介质
US10887110B2 (en) Method for digital signing with multiple devices operating multiparty computation with a split key
CN114900304B (zh) 数字签名方法和装置、电子设备和计算机可读存储介质
CN110690956B (zh) 双向认证方法及系统、服务器和终端
JP2010231404A (ja) 秘密情報管理システム、秘密情報管理方法、および秘密情報管理プログラム
CN111970114A (zh) 文件加密方法、系统、服务器和存储介质
CN109391473B (zh) 一种电子签章的方法、装置及存储介质
CN113347143A (zh) 一种身份验证方法、装置、设备及存储介质
US20220216999A1 (en) Blockchain system for supporting change of plain text data included in transaction
US20220247729A1 (en) Message transmitting system with hardware security module
KR20210060745A (ko) 블록체인 기반의 전자계약 서비스 시스템
JP4684714B2 (ja) ファイル管理システム、及びプログラム
JP5142599B2 (ja) 情報処理装置及びその制御方法、コンピュータプログラム
KR101745482B1 (ko) 스마트홈 시스템에서의 통신 방법 및 그 장치