KR101954268B1 - 블록체인 기반의 문서 관리 방법 및 이를 이용한 문서 관리 서버 - Google Patents

블록체인 기반의 문서 관리 방법 및 이를 이용한 문서 관리 서버 Download PDF

Info

Publication number
KR101954268B1
KR101954268B1 KR1020170138691A KR20170138691A KR101954268B1 KR 101954268 B1 KR101954268 B1 KR 101954268B1 KR 1020170138691 A KR1020170138691 A KR 1020170138691A KR 20170138691 A KR20170138691 A KR 20170138691A KR 101954268 B1 KR101954268 B1 KR 101954268B1
Authority
KR
South Korea
Prior art keywords
document
information
transaction
version
request transaction
Prior art date
Application number
KR1020170138691A
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 KR1020170138691A priority Critical patent/KR101954268B1/ko
Application granted granted Critical
Publication of KR101954268B1 publication Critical patent/KR101954268B1/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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/93Document management systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/31User authentication

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Business, Economics & Management (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Strategic Management (AREA)
  • Human Resources & Organizations (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • General Business, Economics & Management (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Economics (AREA)
  • Marketing (AREA)
  • Operations Research (AREA)
  • Multimedia (AREA)
  • Technology Law (AREA)
  • Tourism & Hospitality (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

본 발명은 문서 관리 서버의 문서 등록 요청 트랜잭션에 대응하여 문서 생성 스마트 컨트렉트를 실행하여 등록 요청된 문서를 블록체인 데이터베이스에 등록하며 그에 따른 트랜잭션 아이디를 획득하고, 상태 데이터베이스에 설정된 문서 정보 테이블에 문서 식별값에 대응되는 문서 상태 정보를 등록하며, 상태 데이터베이스에 설정된 버전 정보 테이블에 문서 식별값에 대응되는 버전 상태 정보를 등록하며, 문서의 등록 결과 정보를 문서 관리 서버로 전송하여 주는 블록체인 기반의 문서 관리 방법 및 이를 이용한 문서 관리 서버에 관한 것이다.

Description

블록체인 기반의 문서 관리 방법 및 이를 이용한 문서 관리 서버{METHOD FOR MANAGING ELECTRONIC DOCUMENT BASED ON BLOCKCHAIN, AND ELECTRONIC DOCUMENT MANAGEMENT SERVER USING THE SAME}
본 발명은 블록체인 기반의 문서 관리 방법 및 이를 이용한 문서 관리 서버에 관한 것으로, 보다 상세하게는, 문서 관리 서버의 문서 등록 요청 트랜잭션에 대응하여 문서 생성 스마트 컨트렉트를 실행하여 등록 요청된 문서를 블록체인 데이터베이스에 등록하며 그에 따른 트랜잭션 아이디를 획득하고, 상태 데이터베이스에 설정된 문서 정보 테이블에 문서 식별값에 대응되는 문서 상태 정보를 등록하며, 상태 데이터베이스에 설정된 버전 정보 테이블에 문서 식별값에 대응되는 버전 상태 정보를 등록하며, 문서의 등록 결과 정보를 문서 관리 서버로 전송하여 주는 블록체인 기반의 문서 관리 방법 및 이를 이용한 문서 관리 서버에 관한 것이다.
대한민국 정부를 비롯한 세계 각국 정부, 그리고 관련 단체들은 수많은 관련 문서의 처리에 많은 자원과 노력을 들이고 있다. 정부와 같은 거대 조직에서 취급하는 문서들은 때로는 고도의 기밀성과 보안성이 요구되기도 하고, 때로는 정확성과 신속성, 그리고 공개성이 요구되기도 한다. 한편, 전세계적인 전산화 추세에 맞춰 문서들은 보다 가볍고 복제 및 보관에 유리한 전자 문서의 형태로 유통된다.
그런데, 이와 같은 전산화에도 불구하고 전자 문서들이 외부 해킹이나 내부 조작 등에 노출될 위험은 상존해 있다. 공무원들의 개입에 의하여 허가 없이 원본 문서의 위변조가 이루어질 수도 있으며, 문서를 취급하는 사람들이 위변조를 이유로 그 문서의 실질적인 내용을 부인할 우려도 있다. 권한 없는 사람이 권한자를 사칭하여 문서를 허위로 작성하는 것도 문제가 될 수 있다.
본 발명은 상술한 문제점들을 모두 해결하는 것을 그 목적으로 한다.
또한, 본 발명은 문서에 대한 히스토리를 관리할 수 있도록 하는 것을 다른 목적으로 한다.
또한, 본 발명은 권한없는 자가 문서를 임의로 허위 작성할 위험을 최소화시키는 것을 또 다른 목적으로 한다.
또한, 본 발명은 발급된 문서는 권한자에 의하여 만들어지고 동일한 내용으로 유통되었다는 것을 확인시켜줌으로써 이른바 강력한 부인 방지 기능을 제공하는 것을 또 다른 목적으로 한다.
또한, 본 발명은 문서의 무결성을 검증할 수 있도록 하여 문서의 위변조가 이루어지지 않았다는 점을 보장하는 것을 또 다른 목적으로 한다.
상기 목적을 달성하기 위한 본 발명의 대표적인 구성은 다음과 같다.
본 발명의 일 실시예에 따르면, 블록체인 기반의 문서를 관리하는 방법에 있어서, (a) 문서 작성자 단말에서의 문서 등록 요청에 대응하여 문서 관리 서버로부터 문서 등록 요청 트랜잭션이 획득되면, 문서 관리 지원 서버가, 상기 문서 등록 요청 트랜잭션의 유효 여부를 확인하여 유효일 경우, 문서 생성 스마트 컨트렉트 - 상기 문서 생성 스마트 컨트렉트는 실행 가능한 바이트 코드로 컴파일되어 적어도 하나의 컴퓨팅 장치 상에서 실행될 수 있는 소스 코드이고, 상기 문서 등록 요청 트랜잭션에 대응하여 문서를 생성하여 주기 위하여 미리 정해진 절차를 수행하도록 구성된 것임 - 를 실행하여 등록 요청된 문서를 블록체인 데이터베이스에 등록하거나 상기 문서 관리 지원 서버에 연동되는 타 장치로 하여금 상기 문서를 상기 블록체인 데이터베이스에 등록하도록 지원하고, 상기 블록체인 데이터베이스에 등록된 상기 문서의 상기 블록체인 데이터베이스 상의 위치 정보를 나타내는 트랜잭션 아이디를 획득하는 단계; 및 (b) 상기 문서 관리 지원 서버가, 상태 데이터베이스에 설정된 문서 정보 테이블에 상기 문서에 대응되는 문서 식별값을 등록하고, 상기 문서 식별값에 대응되는 문서 상태 정보 - 상기 문서 상태 정보는 상기 문서 식별값, 상기 문서가 작성된 시각 정보, 및 상기 문서에 대한 버전 정보를 포함함 - 를 등록하며, 상기 상태 데이터베이스에 설정된 버전 정보 테이블에 상기 버전 정보에 대응되는 상기 문서 식별값을 등록하고, 상기 문서 식별값에 대응되는 버전 상태 정보 - 상기 버전 상태 정보는 상기 문서 식별값, 상기 트랜잭션 아이디, 상기 버전 정보에 대응되는 상기 문서의 해시값, 및 상기 버전 정보에 대응하는 상기 문서가 등록된 시각 정보를 포함함 - 를 등록하고, 상기 문서의 등록 결과 정보를 상기 문서 관리 서버를 통해 상기 문서 작성자 단말로 전송하여 주는 단계; 를 포함하는 방법이 제공된다.
또한, 본 발명의 일 실시예에 따르면, 블록체인 기반의 문서를 관리하는 방법에 있어서, (a) 문서 작성자 단말에서의 제1 문서에 대한 문서 등록 요청에 대응하여 문서 관리 서버로부터 문서 등록 요청 트랜잭션이 획득되면, 문서 관리 지원 서버가, 상기 문서 등록 요청 트랜잭션의 유효 여부를 확인하여 유효일 경우, 문서 생성 스마트 컨트렉트 - 상기 문서 생성 스마트 컨트렉트는 실행 가능한 바이트 코드로 컴파일되어 적어도 하나의 컴퓨팅 장치 상에서 실행될 수 있는 소스 코드이고, 상기 문서 등록 요청 트랜잭션에 대응하여 상기 문서를 생성하여 주기 위하여 미리 정해진 절차를 수행하도록 구성된 것임 - 를 실행하여 등록 요청된 제1 문서를 블록체인 데이터베이스에 등록하거나 상기 문서 관리 지원 서버에 연동되는 타 장치로 하여금 상기 제1 문서를 상기 블록체인 데이터베이스에 등록하도록 지원하고, 상기 블록체인 데이터베이스에 등록된 상기 제1 문서의 상기 블록체인 데이터베이스 상의 위치 정보를 나타내는 제1 트랜잭션 아이디를 획득하는 단계; (b) 상기 문서 관리 지원 서버가, 상태 데이터베이스에 설정된 문서 정보 테이블에 상기 제1 문서에 대응되는 문서 식별값을 등록하고, 상기 문서 식별값에 대응되는 문서 상태 정보 - 상기 문서 상태 정보는 상기 문서 식별값, 상기 제1 문서가 작성된 시각 정보, 및 상기 제1 문서에 대한 제1 버전 정보를 포함함 - 를 등록하며, 상기 상태 데이터베이스에 설정된 버전 정보 테이블에 상기 제1 버전 정보에 대응되는 상기 문서 식별값을 등록하고, 상기 문서 식별값에 대응되는 버전 상태 정보 - 상기 버전 상태 정보는 상기 문서 식별값, 상기 제1 트랜잭션 아이디, 상기 제1 버전 정보에 대응되는 상기 제1 문서의 해시값, 및 상기 제1 버전 정보에 대응하는 상기 제1 문서가 등록된 시각 정보를 포함함 - 를 등록하고, 상기 제1 문서의 등록 결과 정보를 상기 문서 관리 서버를 통해 상기 문서 작성자 단말로 전송하여 주는 단계; (c) 사용자 단말에서의 상기 문서 식별값에 대응하는 등록된 제1 문서에 대한 조회 요청에 대응하여 상기 블록체인 데이터베이스에 등록된 상기 제1 문서를 획득하고, 상기 획득된 제1 문서를 상기 사용자 단말에 표시하여 준 상태에서, 상기 사용자 단말에서의 상기 제1 문서를 수정한 제2 문서에 대한 문서 수정 요청에 대응하여 상기 문서 관리 서버로부터 문서 수정 요청 트랜잭션이 획득되면, 상기 문서 관리 지원 서버가, 상기 문서 수정 요청 트랜잭션의 유효 여부를 확인하여 유효일 경우, 문서 수정 스마트 컨트렉트 - 상기 문서 수정 스마트 컨트렉트는 실행 가능한 바이트 코드로 컴파일되어 적어도 하나의 컴퓨팅 장치 상에서 실행될 수 있는 소스 코드이고, 상기 문서 수정 요청 트랜잭션에 대응하여 상기 제1 문서를 수정하여 주기 위하여 미리 정해진 절차를 수행하도록 구성된 것임 - 를 실행하여 수정 요청된 제2 문서를 상기 블록체인 데이터베이스에 등록하거나 상기 문서 관리 지원 서버에 연동되는 타 장치로 하여금 상기 제2 문서를 상기 블록체인 데이터베이스에 등록하도록 지원하고, 상기 블록체인 데이터베이스에 등록된 상기 제2 문서의 상기 블록체인 데이터베이스 상의 위치 정보를 나타내는 제2 트랜잭션 아이디를 획득하는 단계; 및 (d) 상기 문서 관리 지원 서버가, 상기 상태 데이터베이스에 설정된 문서 정보 테이블에 등록된 상기 문서 식별값에 대응되는 문서 상태 정보에서 상기 제1 문서에 대한 제1 버전 정보에 더하여 상기 제2 문서에 대한 제2 버전 정보를 등록하며, 상기 상태 데이터베이스에 설정된 버전 정보 테이블에 상기 제2 버전 정보에 대응되는 상기 문서 식별값을 등록하고, 상기 문서 식별값에 대응되는 제2 버전 상태 정보 - 상기 제2 버전 상태 정보는 상기 문서 식별값, 상기 제2 트랜잭션 아이디, 상기 제2 버전 정보에 대응되는 상기 제2 문서의 해시값, 및 상기 제2 버전 정보에 대응하는 상기 제2 문서가 등록된 시각 정보를 포함함 - 를 등록하고, 상기 제2 문서의 등록 결과 정보를 상기 문서 관리 서버를 통해 상기 사용자 단말로 전송하여 주는 단계; 를 포함하는 방법이 제공된다.
또한, 본 발명의 일 실시예에 따르면, 상기의 방법들을 수행하기 위한 문서 관리 서버가 제공된다.
이 외에도, 본 발명의 방법을 실행하기 위한 컴퓨터 프로그램을 기록하기 위한 컴퓨터 판독 가능한 기록 매체가 더 제공된다.
본 발명에 의하면, 다음과 같은 효과가 있다.
본 발명은 스마트 컨트렉트(smart contract)를 이용함으로써 문서의 등록, 조회, 수정 등을 위하여 필요한 권한이 엄격하게 관리되어 권한 없는 자가 임의로 문서의 내용을 작성, 그 내용을 열람하거나 파기하는 행위를 할 수 없게 되는 효과가 있다.
다시 말하자면, 본 발명에 따르면 한번 발급된 문서는 권한자에 의하여 만들어지고 동일한 내용으로 유통되었다는 것을 확인시켜줌으로써 이른바 강력한 부인 방지 기능이 제공되는 효과가 있다.
또한, 본 발명에 의하면 문서의 무결성이 검증됨으로써 문서의 위변조가 이루어지지 않았다는 점이 보장되는 효과가 있다.
또한, 본 발명에 의하면 문서의 변경에 대하여 버전 정보를 통해 변경 내용을 확인할 수 있도록 함으로써 문서에 대한 히스토리를 관리할 수 있게 된다.
도 1은 본 발명의 일 실시예에 따라 문서를 관리하는 문서 관리 서버를 개략적으로 도시한 것이고,
도 2는 본 발명의 일 실시예에 따라 작성된 문서를 등록하는 방법을 개략적으로 도시한 것이고,
도 3은 본 발명의 일 실시예에 따라 등록된 문서를 조회하는 방법을 개략적으로 도시한 것이고,
도 4와 도 5는 본 발명의 일 실시예에 따라 특정 문서를 검증하는 방법을 개략적으로 도시한 것이고,
도 6은 본 발명의 일 실시예에 따라 등록된 문서를 수정하는 방법을 개략적으로 도시한 것이고,
도 7은 본 발명의 일 실시예에 따라 등록된 문서에 변경이력을 조회하는 방법을 개략적으로 도시한 것이고,
도 8과 도 9는 본 발명의 일 실시예에 따라 문서 관리와 관련한 정보를 다른 블록체인 데이터베이스 또는 퍼블릭 블록체인 데이터베이스에 등록하는 과정을 개략적으로 도시한 것이다.
후술하는 본 발명에 대한 상세한 설명은, 본 발명이 실시될 수 있는 특정 실시예를 예시로서 도시하는 첨부 도면을 참조한다. 이들 실시예는 당업자가 본 발명을 실시할 수 있기에 충분하도록 상세히 설명된다. 본 발명의 다양한 실시예는 서로 다르지만 상호 배타적일 필요는 없음이 이해되어야 한다. 예를 들어, 여기에 기재되어 있는 특정 형상, 구조 및 특성은 일 실시예에 관련하여 본 발명의 정신 및 범위를 벗어나지 않으면서 다른 실시예로 구현될 수 있다. 또한, 각각의 개시된 실시예 내의 개별 구성요소의 위치 또는 배치는 본 발명의 정신 및 범위를 벗어나지 않으면서 변경될 수 있음이 이해되어야 한다. 따라서, 후술하는 상세한 설명은 한정적인 의미로서 취하려는 것이 아니며, 본 발명의 범위는, 적절하게 설명된다면, 그 청구항들이 주장하는 것과 균등한 모든 범위와 더불어 첨부된 청구항에 의해서만 한정된다. 도면에서 유사한 참조부호는 여러 측면에 걸쳐서 동일하거나 유사한 기능을 지칭한다.
이하, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 본 발명을 용이하게 실시할 수 있도록 하기 위하여, 본 발명의 바람직한 실시예들에 관하여 첨부된 도면을 참조하여 상세히 설명하기로 한다.
도 1은 본 발명의 일 실시예에 따라 블록체인 기반의 문서를 관리하는 문서 관리 지원 서버를 개략으로 도시한 것이고, 문서 관리 지원 서버(300)는 통신부(310)와 프로세서(320)를 포함할 수 있다. 동일한 참조 부호를 이용하여 나타낸 것은 설명의 편의를 위한 것일 뿐, 이들 개별 장치들이 동일하다는 의미로 의도된 것은 아니다. 그리고, 본 발명의 다른 실시예에서의 방법은 서버를 상이하게 구성하여 해당 방법을 수행하거나 동일한 서버(300)를 통해 해당 방법을 수행할 수도 있다.
또한, 문서 관리 지원 서버(300)는 문서 관리와 관련하여 각각 기능을 수행하는 다수의 서버로 구성될 수 있다. 또한, 문서 관리 지원 서버(300)는 블록체인 데이터베이스의 각각의 노드에 대응되는 서버이거나, 블록체인 데이터베이스의 각각의 노드를 관리하는 서버일 수 있다. 이에 더하여, 문서 관리 지원 서버(300)는 상태 데이터베이스와의 통신을 통해 문서의 상태 정보를 관리할 수 있다. 그리고, 블록체인 데이터베이스는 제1 블록체인 데이터베이스와 제2 블록체인 데이터베이스로 구성될 수 있다. 이때, 제1 블록체인 데이터베이스는 프라이빗 블록체인 데이터베이스로 구성될수 있으며, 제2 블록체인 데이터베이스는 프라이빗 블록체인 데이터베이스 또는 퍼블릭 블록체인 데이터베이스로 구성될 수 있다.
구체적으로, 문서 관리 지원 서버(300)는 전형적으로 컴퓨팅 장치(예컨대, 컴퓨터 프로세서, 메모리, 스토리지, 입력 장치 및 출력 장치, 기타 기존의 컴퓨팅 장치의 구성요소들을 포함할 수 있는 장치; 라우터, 스위치 등과 같은 전자 통신 장치; 네트워크 부착 스토리지(NAS) 및 스토리지 영역 네트워크(SAN)와 같은 전자 정보 스토리지 시스템)와 컴퓨터 소프트웨어(즉, 컴퓨팅 장치로 하여금 특정의 방식으로 기능하게 하는 인스트럭션들)의 조합을 이용하여 원하는 시스템 성능을 달성하는 것일 수 있다.
이와 같은 컴퓨팅 장치의 통신부(310)는 연동되는 타 컴퓨팅 장치와 요청과 응답을 송수신할 수 있는바, 일 예시로서 그러한 요청과 응답은 동일한 TCP 세션에 의하여 이루어질 수 있지만, 이에 한정되지는 않는바, 예컨대 UDP 데이터그램으로서 송수신될 수도 있을 것이다.
또한, 컴퓨팅 장치의 프로세서(320)는 MPU(Micro Processing Unit) 또는 CPU(Central Processing Unit), 캐쉬 메모리(Cache Memory), 데이터 버스(Data Bus) 등의 하드웨어 구성을 포함할 수 있다. 또한, 운영체제, 특정 목적을 수행하는 애플리케이션의 소프트웨어 구성을 더 포함할 수도 있다.
먼저, 도 2를 참조하여 본 발명의 일 실시예에 따른 문서를 등록하는 방법을 도 1의 문서 관리 지원 서버(300)를 통해 설명하면 다음과 같다.
문서 작성자가 문서 작성자 단말(110)에서 작성한 문서를 등록하기 위하여 문서 관리 서버(200)로 문서 등록 요청을 전송하면(S11), 문서 관리 서버(200)는 문서 작성자에 의해 작성된 문서를 등록하기 위한 문서 등록 요청 트랜잭션을 문서 관리 지원 서버(300)로 전송하여 준다(S12). 이때, 문서 등록 요청 트랜잭션은 등록하고자 하는 문서, 문서의 제목, 문서 작성자 정보, 문서 작성 기관 정보, 및 문서 파일의 확장자 중 적어도 하나를 포함할 수 있으나, 이에 한정되지 않으며, 문서 작성자 또는 문서 작성 기관의 퍼블릭키, 문서 작성자 또는 문서 작성 기관의 프라이빗키를 이용한 서명값 등을 포함할 수 있다.
그러면, 문서 관리 지원 서버(300)의 통신부(310)는 문서 관리 서버(200)로부터 전송되는 문서 등록 요청 트랜잭션을 획득하며, 문서 관리 지원 서버(300)의 프로세서(320)는 통신부(310)에서 획득된 문서 등록 요청 트랜잭션의 유효성을 검증한다(S13). 일 예로, 문서 관리 지원 서버(300)는 획득된 문서 등록 요청 트랜잭션에 대한 포맷 형식의 유효 여부를 확인할 수 있다. 또한, 문서 관리 지원 서버(300)는 획득된 문서 등록 요청 트랜잭션으로부터 서명값을 확인함으로써 문서 등록 요청 트랜잭션의 유효 여부를 확인할 수 있다. 즉, 문서 등록 요청 트랜잭션의 서명값이 문서 작성자의 프라이빗키를 이용하여 등록하고자 하는 문서를 서명한 것일 경우, 문서 관리 지원 서버(300)는 문서 작성자의 퍼블릭키를 이용하여 문서 등록 요청 트랜잭션의 서명값을 확인하여 서명된 문서를 확인하며, 서명값으로부터 확인한 문서가 문서 등록 요청 트랜잭션에 포함된 문서와 일치하는 지를 확인하여 문서 등록 요청 트랜잭션이 유효하며 정상적인 문서 작성자에 의해 서명된 것인지를 확인할 수 있게 된다.
그리고, 문서 관리 지원 서버(300)는 검증 결과(S13) 유효한 것으로 판단되면, 문서 생성 스마트 컨트렉트를 실행한다(S14).
이때, 문서 생성 스마트 컨트렉트는 실행 가능한 바이트 코드로 컴파일되어 적어도 하나의 컴퓨팅 장치 상에서 실행될 수 있는 소스 코드이며, 문서 등록 요청 트랜잭션에 대응하여 문서를 생성하여 주기 위하여 미리 정해진 절차를 수행하도록 구성될 수 있다.
그러면, 문서 관리 지원 서버(300)는 문서 생성 스마트 컨트렉트에 대응하여 등록 요청된 문서를 블록체인 데이터베이스(410)에 등록하거나 문서 관리 지원 서버(300)에 연동되는 타 장치로 하여금 등록 요청된 문서를 블록체인 데이터베이스(410)에 등록하도록 지원하여 준다(S15).
그리고, 문서 관리 지원 서버(300)는 블록체인 데이터베이스(410)에 등록된 문서의 블록체인 데이터베이스 상의 위치 정보를 나타내는 트랜잭션 아이디를 획득할 수 있다(S16).
또한, 문서 관리 지원 서버(300)는 상태 데이터베이스(420)에 설정된 문서 정보 테이블에 문서에 대응되는 문서 식별값을 등록하고, 문서 식별값에 대응되는 문서 상태 정보를 등록할 수 있다(S17).
이때, 문서 상태 정보는 문서 식별값, 문서가 작성된 시각 정보, 및 문서에 대한 버전 정보를 포함할 수 있으나, 이에 한정되지 않으며, 문서의 최초 작성자 정보, 또는 문서의 최초 작성 기관 정보 등을 더 포함할 수 있다.
이에 더하여, 문서 관리 지원 서버(300)는 상태 데이터베이스(420)에 설정된 버전 정보 테이블에 버전 정보에 대응되는 문서 식별값을 등록하고, 문서 식별값에 대응되는 버전 상태 정보를 등록할 수 있다(S18).
이때, 버전 상태 정보는 문서 식별값, 문서가 등록된 블록체인 데이터베이스(410) 상의 위치를 나타내는 트랜잭션 아이디, 버전 정보에 대응되는 문서의 해시값, 및 버전 정보에 대응하는 문서가 등록된 시각 정보 중 적어도 하나를 포함할 수 있으나, 이에 한정되지 않으며, 문서의 내용, 문서의 제목, 문서 파일의 확장자, 문서의 버전 명칭, 버전 정보에 대응되는 문서의 작성자, 버전 정보에 대응되는 문서의 변경 내용 정보, 및 버전 정보에 대응되는 문서의 작성 기관 정보 중 적어도 하나를 더 포함할 수 있다.
이후, 문서 관리 지원 서버(300)는 문서의 등록 결과 정보를 문서 관리 서버(200)로 전송하여 줄 수 있으며(S19), 문서 관리 서버(200)는 문서 관리 지원 서버(300)로부터 수신되는 문서 등록 결과 정보를 문서 작성자 단말(110)로 전송하여 줄 수 있다(S20).
다음으로, 도 3을 참조하여 본 발명의 일 실시예에 따른 문서를 조회하는 방법을 설명하면 다음과 같다.
문서 조회를 원하는 사용자가 사용자 단말(120)에서 문서 관리 서버(200)로부터 제공되는 문서 리스트에서 조회를 원하는 문서에 대하여 문서 관리 서버(200)로 문서 조회 요청을 하면(S21), 문서 관리 서버(200)는 조회 요청된 문서에 대한 문서 식별값을 포함하는 문서 조회 요청 트랜잭션을 문서 관리 지원 서버(300)로 전송하여 준다(S22).
이때, 문서 조회 요청 트랜잭션은 사용자의 퍼블릭키, 사용자의 프라이빗키를 이용한 서명값 등을 포함할 수 있다.
그러면, 문서 관리 지원 서버(300)의 통신부(310)는 문서 관리 서버(200)로부터 전송되는 문서 조회 요청 트랜잭션을 획득하며, 문서 관리 지원 서버(300)의 프로세서(320)는 통신부(310)에서 획득된 문서 조회 요청 트랜잭션의 유효성을 검증한다(S23). 일 예로, 문서 관리 지원 서버(300)는 획득된 문서 조회 요청 트랜잭션에 대한 포맷 형식의 유효 여부를 확인할 수 있다. 또한, 문서 관리 지원 서버(300)는 획득된 문서 조회 요청 트랜잭션으로부터 서명값을 확인함으로써 문서 조회 요청 트랜잭션의 유효 여부를 확인할 수 있다. 즉, 문서 조회 요청 트랜잭션의 서명값이 사용자의 프라이빗키를 이용하여 조회하고자 하는 문서의 식별값을 서명한 것일 경우, 문서 관리 지원 서버(300)는 사용자의 퍼블릭키를 이용하여 문서 조회 요청 트랜잭션의 서명값을 확인하여 서명된 문서 식별값을 확인하며, 서명값으로부터 확인한 문서 식별값이 문서 조회 요청 트랜잭션에 포함된 문서 식별값과 일치하는 지를 확인하여 문서 조회 요청 트랜잭션이 유효하며 정상적인 사용자에 의해 서명된 것인지를 확인할 수 있게 된다.
그리고, 문서 관리 지원 서버(300)는 검증 결과(S23) 유효한 것으로 판단되면, 문서 조회 스마트 컨트렉트를 실행한다(S24).
이때, 문서 조회 스마트 컨트렉트는 실행 가능한 바이트 코드로 컴파일되어 적어도 하나의 컴퓨팅 장치 상에서 실행될 수 있는 소스 코드이며, 문서 조회 요청 트랜잭션에 대응하여 블록체인 데이터베이스(410)에 등록된 문서를 조회하여 주기 위하여 미리 정해진 절차를 수행하도록 구성될 수 있다.
그러면, 문서 관리 지원 서버(300)는 문서 조회 스마트 컨트렉트에 대응하여 조회 요청된 문서에 대한 문서 식별값을 참조하여 상태 데이터베이스(420)의 문서 정보 테이블로부터 문서 식별값에 대응하는 버전 정보를 확인하며(S25), 확인된 버전 정보와 문서 식별값을 참조하여 상태 데이터베이스(420)의 버전 정보 테이블로부터 문서 식별값에 대응하는 문서가 등록된 블록체인 데이터베이스(410)의 위치를 나타내는 트랜잭션 아이디를 확인한다(S26).
이후, 문서 관리 지원 서버(300)는 상태 데이터베이스(410)로부터 확인된 트랜잭션 아이디를 이용하여 블록체인 데이터베이스(410)에 등록된 문서를 획득할 수 있다(S27, S28).
그리고, 문서 관리 지원 서버(300)는 획득된 문서를 참조하여 문서 관리 서버(200)를 통해 사용자 단말(120)로 획득된 문서를 표시하여 주거나 문서에 대한 문서 파일로 사용자 단말(120)로 전송하여 줄 수 있다(S29, S30). 즉, 문서 관리 지원 서버(300)는 획득된 문서를 문서 관리 서버(200)로 전송하여 줌으로써 문서 관리 서버(200)로 하여금 해당 문서를 사용자 단말(120)에 표시하도록 하거나, 문서에 대한 파일 데이터를 사용자 단말(120)로 전송하여 줄 수 있다.
이때, 문서에 대한 파일 데이터를 사용자 단말(120)로 전송하여 줄 경우, 문서 파일 데이터를 수신한 사용자 단말(120)의 사용자는 게시판, 메일 등을 이용하여 문서 파일 데이터를 배포할 수 있게 된다.
다음으로, 도 4를 참조하여 본 발명의 일 실시예에 따른 문서를 검증하는 방법을 설명하면 다음과 같다.
문서 검증을 원하는 사용자가 사용자 단말(120)에서 문서 관리 서버(200)로 특정 문서에 대한 검증을 하면(S31), 문서 관리 서버(200)는 특정 문서를 검증하기 위한 문서 검증 요청 트랜잭션을 문서 관리 지원 서버(300)로 전송하여 준다(S32).
이때, 문서 검증 요청 트랜잭션은 사용자의 퍼블릭키, 사용자의 프라이빗키를 이용한 서명값 등을 포함할 수 있다.
그러면, 문서 관리 지원 서버(300)의 통신부(310)는 문서 관리 서버(200)로부터 전송되는 문서 검증 요청 트랜잭션을 획득하며, 문서 관리 지원 서버(300)의 프로세서(320)는 통신부(310)에서 획득된 문서 검증 요청 트랜잭션의 유효성을 검증한다(S33). 일 예로, 문서 관리 지원 서버(300)는 획득된 문서 검증 요청 트랜잭션에 대한 포맷 형식의 유효 여부를 확인할 수 있다. 또한, 문서 관리 지원 서버(300)는 획득된 문서 검증 요청 트랜잭션으로부터 서명값을 확인함으로써 문서 검증 요청 트랜잭션의 유효 여부를 확인할 수 있다. 즉, 문서 검증 요청 트랜잭션의 서명값이 사용자의 프라이빗키를 이용하여 검증하고자 하는 특정 문서를 서명한 것일 경우, 문서 관리 지원 서버(300)는 사용자의 퍼블릭키를 이용하여 문서 검증 요청 트랜잭션의 서명값을 확인하여 서명된 특정 문서를 확인하며, 서명값으로부터 확인한 특정 문서와 문서 검증 요청 트랜잭션에 포함된 특정 문서가 일치하는 지를 확인하여 문서 검증 요청 트랜잭션이 유효하며 정상적인 사용자에 의해 서명된 것인지를 확인할 수 있게 된다. 또한, 상기에서는 특정 문서 자체를 이용하였지만, 이와는 달리 특정 문서에 대한 해시값을 이용할 수도 있다.
그리고, 문서 관리 지원 서버(300)는 검증 결과(S33) 유효한 것으로 판단되면, 문서 검증 스마트 컨트렉트를 실행한다(S34).
이때, 문서 검증 스마트 컨트렉트는 실행 가능한 바이트 코드로 컴파일되어 적어도 하나의 컴퓨팅 장치 상에서 실행될 수 있는 소스 코드이며, 문서 검증 요청 트랜잭션에 대응하여 검증 요청된 특정 문서를 검증하여 주기 위하여 미리 정해진 절차를 수행하도록 구성될 수 있다.
그러면, 문서 관리 지원 서버(300)는 문서 검증 스마트 컨트렉트에 대응하여 검증 요청된 특정 문서에 대한 해시값을 획득한다(S35).
이때, 문서 관리 지원 서버(300)는 문서 검증 요청 트랜잭션으로부터 특정 문서에 대한 해시값을 획득하거나, 상기 문서 검증 요청 트랜잭션으로부터 검증 요청된 특정 문서를 획득하고 획득된 특정 문서를 해시 연산하여 특정 문서에 대한 해시값을 획득할 수 있다.
그리고, 문서 관리 지원 서버(300)는 획득된 특정 문서의 해시값을 참조하여, 상태 데이터베이스(420)의 버전 정보 테이블에 등록된 문서의 해시값 중에서 특정 문서의 해시값과 일치되는 해시값이 있는지를 확인하여 특정 문서에 대한 검증을 수행할 수 있다(S36, S37).
즉, 문서 관리 지원 서버(300)는 검증 요청된 특정 문서에 대한 해시값이 상태 데이터베이스(420)의 버전 정보 테이블에 등록된 문서의 해시값 중 어느 하나와 일치할 경우 특정 문서는 위변조 등이 이루어지지 않았으며, 정상적인 절차에 의해 발행된 문서인 것으로 판단할 수 있게 된다. 하지만, 문서 관리 지원 서버(300)는 검증 요청된 특정 문서에 대한 해시값이 상태 데이터베이스(420)의 버전 정보 테이블에 등록된 문서의 해시값 중 어느 하나와 일치하지 않을 경우 특정 문서는 위변조 등이 이루어졌거나, 정상적인 절차에 의해 발행된 문서가 아닌 것으로 판단할 수 있다.
이에 따라 문서 관리 지원 서버(300)는 검증 요청된 특정 문서에 대한 검증 결과를 생성하고, 검증 결과 정보를 블록체인 데이터베이스에 등록하며(S39), 검증 결과 정보를 문서 관리 서버(200)를 통해 사용자 단말(120)로 전송하여 줄 수 있다(S40, S41).
다음으로, 도 5를 참조하여 본 발명의 일 실시예에 따른 문서를 검증하는 다른 방법을 설명하면 다음과 같다.
문서 검증을 원하는 사용자가 사용자 단말(120)에서 문서 관리 서버(200)로 특정 문서에 대한 검증을 하면(S51), 문서 관리 서버(200)는 특정 문서를 검증하기 위한 문서 검증 요청 트랜잭션을 문서 관리 지원 서버(300)로 전송하여 준다(S52).
이때, 문서 검증 요청 트랜잭션은 사용자의 퍼블릭키, 사용자의 프라이빗키를 이용한 서명값 등을 포함할 수 있다.
그러면, 문서 관리 지원 서버(300)의 통신부(310)는 문서 관리 서버(200)로부터 전송되는 문서 검증 요청 트랜잭션을 획득하며, 문서 관리 지원 서버(300)의 프로세서(320)는 통신부(310)에서 획득된 문서 검증 요청 트랜잭션의 유효성을 검증한다(S53). 일 예로, 문서 관리 지원 서버(300)는 획득된 문서 검증 요청 트랜잭션에 대한 포맷 형식의 유효 여부를 확인할 수 있다. 또한, 문서 관리 지원 서버(300)는 획득된 문서 검증 요청 트랜잭션으로부터 서명값을 확인함으로써 문서 검증 요청 트랜잭션의 유효 여부를 확인할 수 있다. 즉, 문서 검증 요청 트랜잭션의 서명값이 사용자의 프라이빗키를 이용하여 검증하고자 하는 특정 문서를 서명한 것일 경우, 문서 관리 지원 서버(300)는 사용자의 퍼블릭키를 이용하여 문서 검증 요청 트랜잭션의 서명값을 확인하여 서명된 특정 문서를 확인하며, 서명값으로부터 확인한 특정 문서와 문서 검증 요청 트랜잭션에 포함된 특정 문서가 일치하는 지를 확인하여 문서 검증 요청 트랜잭션이 유효하며 정상적인 사용자에 의해 서명된 것인지를 확인할 수 있게 된다. 또한, 상기에서는 특정 문서 자체를 이용하였지만, 이와는 달리 특정 문서에 대한 해시값을 이용할 수도 있다.
그리고, 문서 관리 지원 서버(300)는 검증 결과(S33) 유효한 것으로 판단되면, 문서 검증 스마트 컨트렉트를 실행한다(S54).
이때, 문서 검증 스마트 컨트렉트는 실행 가능한 바이트 코드로 컴파일되어 적어도 하나의 컴퓨팅 장치 상에서 실행될 수 있는 소스 코드이며, 문서 검증 요청 트랜잭션에 대응하여 검증 요청된 특정 문서를 검증하여 주기 위하여 미리 정해진 절차를 수행하도록 구성될 수 있다.
그러면, 문서 관리 지원 서버(300)는 문서 검증 스마트 컨트렉트에 대응하여 검증 요청된 특정 문서에 대한 해시값을 획득한다(S55).
이때, 문서 관리 지원 서버(300)는 문서 검증 요청 트랜잭션으로부터 특정 문서에 대한 해시값을 획득하거나, 상기 문서 검증 요청 트랜잭션으로부터 검증 요청된 특정 문서를 획득하고 획득된 특정 문서를 해시 연산하여 특정 문서에 대한 해시값을 획득할 수 있다.
그리고, 문서 관리 지원 서버(300)는 획득된 특정 문서의 해시값을 참조하여, 상태 데이터베이스(420)의 버전 정보 테이블에 등록된 문서의 해시값 중에서 특정 문서의 해시값과 일치되는 문서의 해시값을 확인하고, 확인된 문서의 해시값에 대응하는 문서 식별값을 획득하며, 획득된 문서 식별값에 대응하여 등록된 문서의 작성자 정보, 문서의 작성 기관 정보, 및 문서의 버전 정보 등을 포함하는 문서 정보를 상태 데이터베이스(420)로부터 획득한다(S56, S57).
이후, 문서 관리 지원 서버(300)는 획득된 문서 정보를 문서 관리 서버(200)로 전송(S58)하여 줌으로써 문서 관리 서버(200)로 하여금 문서의 작성자 정보, 문서의 작성 기관 정보, 및 문서의 버전 정보 중 적어도 하나가 기등록되어 있는 정보인지를 확인하여 특정 문서에 대한 검증 결과를 생성(S58)하도록 하고, 생성된 검증 결과를 사용자 단말(120)로 전송하여 주도록 할 수 있다(S59).
다음으로, 도 6을 참조하여 본 발명의 일 실시예에 따른 문서를 수정하는 방법을 설명하면 다음과 같다.
도 6에 의한 문서 수정 방법은, 도 2를 참조하여 설명한 바에 의해 문서들이 등록되며, 도 3을 참조하여 설명한 바에 의해 수정하고자 하는 문서가 사용자 단말(120)에 표시된 상태에서 문서를 수정하는 방법을 설명하고자 한다. 그리고, 설명의 편의를 위하여, 이전 등록되어 있는 문서를 제1 문서라 하고, 사용자에 의해 제1 문서가 수정된 상태인 수정 문서를 제2 문서라 한다.
사용자가 도 3에서와 같은 방법에 의해 제1 문서를 수정한 상태에서, 사용자 단말(120)을 통해 문서 관리 서버(200)로 문서 수정을 요청하면(S61), 문서 관리 서버(200)는 사용자에 의해 수정된 제2 문서에 의해 등록된 제1 문서를 수정하기 위한 문서 수정 요청 트랜잭션을 문서 관리 지원 서버(300)로 전송하여 준다(S62).
이때, 문서 수정 요청 트랜잭션은 수정하고자 하는 제1 문서의 문서 식별값, 제1 문서를 수정한 제2 문서의 작성자, 수정된 제2 문서, 제2 문서 작성 기관 정보 중 적어도 하나를 포함할 수 있으나, 이에 한정되지 않으며, 제2 문서 작성자 또는 제2 문서 작성 기관의 퍼블릭키, 제2 문서 작성자 또는 제2 문서 작성 기관의 프라이빗키를 이용한 서명값 등을 포함할 수 있다. 즉, 제1 문서를 수정하는 사용자의 퍼블릭키와 서명값 등을 포함할 수 있다.
그러면, 문서 관리 지원 서버(300)의 통신부(310)는 문서 관리 서버(200)로부터 전송되는 문서 수정 요청 트랜잭션을 획득하며, 문서 관리 지원 서버(300)의 프로세서(320)는 통신부(310)에서 획득된 문서 수정 요청 트랜잭션의 유효성을 검증한다(S63). 일 예로, 문서 관리 지원 서버(300)는 획득된 문서 수정 요청 트랜잭션에 대한 포맷 형식의 유효 여부를 확인할 수 있다. 또한, 문서 관리 지원 서버(300)는 획득된 문서 수정 요청 트랜잭션으로부터 서명값을 확인함으로써 문서 수정 요청 트랜잭션의 유효 여부를 확인할 수 있다. 즉, 문서 수정 요청 트랜잭션의 서명값이 사용자의 프라이빗키를 이용하여 수정된 제2 문서를 서명한 것일 경우, 문서 관리 지원 서버(300)는 사용자의 퍼블릭키를 이용하여 문서 수정 요청 트랜잭션의 서명값을 확인하여 서명된 제2 문서를 확인하며, 서명값으로부터 확인한 제2 문서가 문서 수정 요청 트랜잭션에 포함된 제2 문서와 일치하는 지를 확인하여 문서 수정 요청 트랜잭션이 유효하며 정상적인 문서 작성자에 의해 서명된 것인지를 확인할 수 있게 된다.
그리고, 문서 관리 지원 서버(300)는 검증 결과(S63) 유효한 것으로 판단되면, 문서 수정 스마트 컨트렉트를 실행한다(S64).
이때, 문서 수정 스마트 컨트렉트는 실행 가능한 바이트 코드로 컴파일되어 적어도 하나의 컴퓨팅 장치 상에서 실행될 수 있는 소스 코드이며, 문서 수정 요청 트랜잭션에 대응하여 문서를 수정하여 주기 위하여 미리 정해진 절차를 수행하도록 구성될 수 있다.
그러면, 문서 관리 지원 서버(300)는 문서 수정 스마트 컨트렉트에 대응하여 수정 요청된 제2 문서를 블록체인 데이터베이스(410)에 등록하거나 문서 관리 지원 서버(300)에 연동되는 타 장치로 하여금 수정 요청된 제2 문서를 블록체인 데이터베이스(410)에 등록하도록 지원하여 준다(S65).
그리고, 문서 관리 지원 서버(300)는 블록체인 데이터베이스(410)에 등록된 제2 문서의 블록체인 데이터베이스 상의 위치 정보를 나타내는 제2 트랜잭션 아이디를 획득할 수 있다(S66).
또한, 문서 관리 지원 서버(300)는 상태 데이터베이스(420)에 설정된 문서 정보 테이블에 등록된 제1 문서의 문서 식별값에 대응되는 문서 상태 정보를 업데이트한다(S67). 즉, 문서 관리 지원 서버(300)는 제1 문서의 문서 상태 중 버전 정보를 추가할 수 있으며, 제1 문서에 대한 제1버전 정보에 추가하여 제2 문서에 대한 제2 버전 정보를 등록할 수 있다.
그리고, 문서 관리 지원 서버(300)는 상태 데이터베이스(420)에 설정된 버전 정보 테이블에 제2 버전 정보에 대한 제2 버전 상태 정보를 등록할 수 있다(S68).
즉, 문서 관리 지원 서버(300)는 상태 데이터베이스(420)의 문서 정보 테이블에 제1 문서에 대하여 수정된 제2 문서가 생성된 것을 알 수 있도록 버전 정보를 업데이트하며, 수정된 제2 문서에 대한 정보를 확인할 수 있도록 상태 데이터베이스(420)의 버전 정보 테이블에 제2 문서에 대한 제2 버전 정보 상태를 생성하여 줄 수 있다. 이때, 제2 버전 상태 정보는 제1 문서 또는 제2 문서에 대한 문서 식별값, 제2 트랜잭션 아이디, 제2 버전 정보에 대응되는 제2 문서의 해시값, 및 제2 버전 정보에 대응하는 제2 문서가 등록된 시각 정보 등을 포함할 수 있다.
이후, 문서 관리 지원 서버(300)는 문서의 수정 결과 정보를 문서 관리 서버(200)로 전송하여 줄 수 있으며(S69), 문서 관리 서버(200)는 문서 관리 지원 서버(300)로부터 수신되는 문서 등록 결과 정보를 사용자 단말(120)로 전송하여 줄 수 있다(S70).
다음으로, 도 7을 참조하여 본 발명의 일 실시예에 따른 문서의 변경이력을 조회하는 방법을 설명하면 다음과 같다.
사용자가 사용자 단말(120)에서 문서 관리 서버(200)로 문서에 대한 변경이력 조회를 요청하면(S71), 문서 관리 서버(200)는 문서의 변경이력을 조회하기 위한 문서 변경이력 조회 요청 트랜잭션을 문서 관리 지원 서버(300)로 전송하여 준다(S72).
이때, 문서 검증 요청 트랜잭션은 사용자의 퍼블릭키, 사용자의 프라이빗키를 이용한 서명값 등을 포함할 수 있다.
그러면, 문서 관리 지원 서버(300)의 통신부(310)는 문서 관리 서버(200)로부터 전송되는 문서 변경이력 조회 요청 트랜잭션을 획득하며, 문서 관리 지원 서버(300)의 프로세서(320)는 통신부(310)에서 획득된 문서 변경이력 조회 요청 트랜잭션의 유효성을 검증한다(S73). 일 예로, 문서 관리 지원 서버(300)는 획득된 문서 변경이력 조회 요청 트랜잭션에 대한 포맷 형식의 유효 여부를 확인할 수 있다. 또한, 문서 관리 지원 서버(300)는 획득된 문서 변경이력 조회 요청 트랜잭션으로부터 서명값을 확인함으로써 문서 변경이력 조회 요청 트랜잭션의 유효 여부를 확인할 수 있다. 즉, 문서 변경이력 조회 요청 트랜잭션의 서명값이 사용자의 프라이빗키를 이용하여 변경이력을 조회하고자 하는 문서의 문서 식별값을 서명한 것일 경우, 문서 관리 지원 서버(300)는 사용자의 퍼블릭키를 이용하여 문서 변경이력 조회 요청 트랜잭션의 서명값을 확인하여 서명된 문서 식별값을 확인하며, 서명값으로부터 확인한 문서 식별값과 문서 변경이력 조회 요청 트랜잭션에 포함된 문서 식별값이 일치하는 지를 확인하여 문서 변경이력 조회 요청 트랜잭션이 유효하며 정상적인 사용자에 의해 서명된 것인지를 확인할 수 있게 된다.
그리고, 문서 관리 지원 서버(300)는 검증 결과(S73) 유효한 것으로 판단되면, 문서 변경이력 조회 스마트 컨트렉트를 실행한다(S74).
이때, 문서 변경이력 조회 스마트 컨트렉트는 실행 가능한 바이트 코드로 컴파일되어 적어도 하나의 컴퓨팅 장치 상에서 실행될 수 있는 소스 코드이며, 문서 변경이력 조회 요청 트랜잭션에 대응하여 요청된 문서의 변경이력을 조회하기 위하여 미리 정해진 절차를 수행하도록 구성될 수 있다.
그러면, 문서 관리 지원 서버(300)는 문서 변경이력 조회 요청 스마트 컨트렉트에 대응하여 변경이력 조회가 요청된 문서의 문서 식별값을 획득한다(S75). 이때, 문서 관리 지원 서버(300)는 문서 변경이력 조회 요청 트랜잭션으로부터 변경이력 조회가 요청된 문서의 문서 식별값을 획득할 수 있다.
그리고, 문서 관리 지원 서버(300)는 획득된 문서 식별값을 참조하여, 상태 데이터베이스(420)의 문서 정보 테이블과 버전 정보 테이블로부터 문서 식별값에 대응하는 버전 정보들과, 각각의 버전 정보들에 대응하는 문서의 작성자 정보, 문서 정보, 및 문서의 변경 내용 정보 등을 획득하며(S76, S77), 획득된 정보들을 이용하여 문서 변경이력 정보를 생성할 수 있다(S78).
이후, 문서 관리 지원 서버(300)는 문서 변경이력 정보를 문서 관리 서버(200)를 통해 사용자 단말(120)로 전송하여 줄 수 있다(S79, S80).
상기 도 2 내지 도 7의 방법에서는 문서 관리 지원 서버(300)가 하나의 네트워크로 이루어진 블록체인 데이터베이스에 문서 관리와 관련한 정보를 등록하는 것으로 설명하였지만, 이와는 달리, 블록체인 데이터베이스를 제1 블록체인 데이터베이스와 제2 데이터베이스로 구성할 경우에는 제1 블록체인 데이터베이스에 정보를 등록하며, 제2 블록체인 데이터베이스에 머클트리를 이용하여 블록을 등록할 수 있다.
일 예로, 문서 관리 지원 서버(300)는 제2 블록체인 데이터베이스에 소정의 해시값을 등록하기 위한 트리거링 조건이 만족되면, 제1 블록체인 데이터베이스(410)에 등록된 트랜잭션에 해시 함수를 적용하여 생성한 특정 해시값 및 특정 해시값과 매칭되는 적어도 하나의 이웃 해시값을 연산함으로써 대표 해시값 또는 대표 해시값을 가공한 값을 머클 루트로 생성하고, 생성된 머클 루트인 대표 해시값 또는 대표 해시값을 가공한 값을 제2 블록체인 데이터베이스에 등록하거나 타 장치로 하여금 등록하도록 지원하며, 제2 블록체인 데이터베이스에 등록된 대표 해시값 또는 대표 해시값을 가공한 값의 제2 블록체인 데이터베이스 상의 위치 정보를 나타내는 트랜잭션 아이디를 획득하여 관리할 수 있다.
이때, 이웃 해시값 중 적어도 하나는, 블록 내에 포함되는 모든 트랜잭션에 의해 업데이트된 상태 데이터베이스(420)의 최종 상태 정보에 해시 함수를 적용하여 생성한 해시값일 수 있다.
그리고, 특정 해시값과 적어도 하나의 이웃 해시값과의 연산은 다양한 해시 함수에 의해 수행될 수 있으며, 해시함수는 MD4 함수, MD5 함수, SHA-0 함수, SHA-1 함수, SHA-224 함수, SHA-256 함수, SHA-384 함수, SHA-512 함수 및 HAS-160 함수를 포함할 수 있으나, 이에 한정되지 않음은 통상의 기술자가 알 수 있을 것이다. 예를 들어 Triple SHA256도 가능할 것이다.
이때, 문서 관리 지원 서버(300)는 특정 해시값과 적어도 하나의 이웃 해시값을 소정의 데이터 구조로 저장하여 관리할 수 있다. 여기서, 데이터 구조는 다양할 수 있는데, 일 예로 머클 트리(merkle tree) 구조가 될 수도 있다.
즉, 문서 관리 지원 서버(300)는 특정 해시값이 특정 리프 노드에 할당된 머클 트리(merkle tree)를 생성하거나 생성하도록 지원할 수 있고, 소정의 조건이 만족되면, 특정 해시값과 매칭되는 적어도 하나의 다른 리프 노드에 할당된 해시값을 연산하여 생성되는 대표 해시값 또는 대표 해시값을 가공한 값을 제2 블록체인 데이터베이스에 등록하거나 등록하도록 지원할 수 있다.
좀 더 구체적으로 설명하면, (x1) 문서 관리 지원 서버(300)는, (i) 특정 해시값과 (ii) 특정 해시값이 할당된 노드의 형제 노드에 할당된 해시값을 연산하거나 연산하도록 지원하고, 연산값에 대한 해시값을 노드의 부모 노드에 할당하거나 할당하도록 지원할 수 있다. (x2) 만일, 부모 노드가 머클 트리의 루트 노드이면, 부모 노드에 할당된 해시값이 대표 해시값이 된다. (x3) 반면, 부모 노드가 머클 트리의 루트 노드가 아니면, 문서 관리 서버(300)는, 부모 노드에 할당된 해시값을 특정 해시값으로 하여 (x1) 내지 (x3)를 반복하여 수행한다.
그리고, 문서 관리 지원 서버(300)는 최종적으로 머클 트리의 루트 노드에 할당된 해시값을 대표 해시값으로서 제2 블록체인 데이터베이스에 등록하거나 등록하도록 지원한다. 이때, 대표 해시값을 가공한 값이 등록될 수도 있다. 예를 들어, 대표 해시값에 hex 연산이 수행된 결과값이 등록될 수도 있다.
한편, 문서 관리 지원 서버(300)가 특정 해시값과 적어도 하나의 이웃 해시값을 소정의 제1 데이터 구조로 저장하고, 이후 제1 데이터 구조와 동일한 형태의 제2 데이터 구조를 저장하여 관리하는 경우, 제1 데이터 구조와 제2 데이터 구조는 체인 형태로 연결될 수 있다.
특히, 상술한 예에서와 같이 제1 데이터 구조 및 제2 데이터 구조가 머클 트리인 경우, 제1 데이터 구조의 루트값 또는 루트값의 해시값이 제2 데이터 구조의 첫번째 리프 노드에 할당될 수 있다.
또한, 제2 데이터 구조를 생성할 때는 제1 데이터 구조에 대한 검증이 이루어짐으로써 데이터 integrity가 좀 더 보장될 수 있다. 제2 데이터 구조의 검증에 대해서는 후술하기로 한다.
또한, 체인 형태로 연결된 적어도 하나의 머클 트리 중 첫번째 머클 트리의 경우, 첫번째 머클 트리의 첫번째 리프 노드에는 텍스트, 숫자, 또는 기호로 이루어진 소정의 메시지 데이터의 해시값 또는 이를 가공한 값이 할당될 수 있다. 예를 들어, 머클 트리 생성시 문서 관리 지원 서버(300)에 의해 최초로 부여된 입력 메시지의 해시값이 할당될 수 있다.
도 8 및 9는 본 발명의 일 실시예에 따라 생성된 머클 트리의 예를 도시한 도면이다.
도 8에서는 리프 노드의 개수가 4개인 머클 트리가 도시된다. 도시된 머클 트리는 첫번째 머클 트리이기 때문에(tree_id=0), 첫번째 리프 노드인 h0 노드에는 소정의 메시지 데이터의 해시값 (sha256digest(coinplug_unique_message))이 할당되었음을 알 수 있다. 기록 데이터에 대한 등록 요청이 있는 경우, 문서 관리 지원 서버(300)는 현재 구성 중인 머클 트리의 가장 마지막 리프 노드의 다음 리프 노드를 생성하여 특정 해시값 또는 특정 해시값을 가공한 값을 할당하거나 할당하도록 지원한다. 예를 들어, 도 8의 머클 트리에서 두번째 리프 노드인 h1 노드까지 값 할당이 완료된 상태에서 새로운 리프 노드를 생성하여야 하는 경우, 다음 리프 노드인 h2 노드를 생성하여 특정 해시값 또는 특정 해시값을 가공한 값(sha256digest(input2))을 할당할 수 있다. 또한, 문서 관리 지원 서버(300)는 (i) h2 노드에 할당된 특정 해시값과 (ii) h2 노드의 형제 노드인 h3 노드에 할당된 해시값을 연산하거나 연산하도록 지원할 수 있다. 연산값에 대한 해시값은 h2 노드와 h3 노드의 부모 노드(h23 노드)에 할당된다. 부모 노드(h23 노드)가 머클 트리의 루트 노드가 아니므로 문서 관리 지원 서버(300)는 h23 노드에 할당된 해시값을 특정 해시값으로 하여 상기 과정을 반복하여 수행할 수 있다. 즉, h23 노드에 할당된 해시값을 특정 해시값으로 하고, h23 노드에 할당된 해시값과 h01 노드에 할당된 해시값을 연산하여 h23 노드와 h01 노드의 부모 노드(h0123 노드)에 할당할 수 있다. 이때, h0123 노드가 머클 트리의 루트 노드이므로 문서 관리 지원 서버(300)는, h0123 노드에 할당된 해시값을 가공한 값(hex(h{node_index}))을 제2 블록체인 데이터베이스에 등록하거나 등록하도록 지원할 수 있다.
한편, 전술한 소정의 조건, 즉, 트리거링 조건은, (i) 소정의 개수만큼 문서 관리와 관련한 트랜잭션이 생성되는 조건, (ii) 소정 시간이 경과하는 조건, (iii) 제1 블록체인 데이터베이스에서 블록이 생성되는 조건, (iv) 서비스 특성에 대한 조건 중 적어도 하나를 포함할 수 있다.
한편, 예를 들어, 복수의 문서 관리 트랜잭션이 머클 트리의 리프 노드 수만큼 획득되면 머클 트리를 생성하고, 머클 트리의 루트값을 제2 블록체인 데이터베이스에 등록하거나 등록하도록 지원할 수 있다.
또한, 문서 관리 지원 서버(300)는 소정 시간 단위로 전술한 머클 트리의 루트값을 생성할 수 있다(상기 (ii) 조건). 이 경우 문서 관리 지원 서버(300)는 소정의 시간이 경과되면 그때까지의 입력값을 이용하여 머클 트리를 생성하고 머클 트리의 루트값을 제2 블록체인 데이터베이스에 등록하거나 등록하도록 지원할 수 있다.
그런데, 이 경우에는 소정 시간이 경과하였음에도 머클 트리의 특정 해시값이 할당된 노드의 형제 노드에 값이 할당되지 않을 수 있다. 이처럼 소정의 조건이 만족되었음에도 특정 해시값이 할당된 노드의 형제 노드에 해시값이 할당되어 있지 않은 경우, 문서 관리 지원 서버(300)는, 형제 노드에 소정의 해시값을 할당하거나 할당하도록 지원하여 전술한 방식으로 머클 트리의 루트값이 산출되도록 할 수 있다. 예를 들어, 문서 관리 지원 서버(300)는 특정 해시값을 복제하여 형제 노드에 할당하거나 할당하도록 지원할 수 있다.
또한, 문서 관리 지원 서버(300)는 제1 블록체인 데이터베이스에서 블록이 생성되는 때(상기 (iii) 조건)에, 상기 생성되는 블록의 블록 헤더(block header)에 상태 데이터베이스에 등록된 최종 문서 상태 정보에 대한 해시값인 상태 데이터베이스 해시값이 기록되도록 하거나 기록되도록 지원할 수 있다.
일 예로, (i) random nonce, random nonce 서명값 및 public key로부터 연산된 해시값들만이 리프 노드들에 할당된 머클 트리로부터 대표 해시값인 거래자 정보 대표 해시값이 생성되고, (ii) 문서 관리 데이터, public key 및 서명값으로부터 연산된 해시값들만이 리프 노드들에 할당된 머클 트리로부터 대표 해시값인 문서 관리 정보 대표 해시값이 생성된 후, 거래자 정보 대표 해시값 및 문서 관리 정보 대표 해시값이 생성되는 블록의 블록 헤더에 더 기록된 상태에서, 문서 관리 지원 서버(300)가, 상태 데이터베이스 해시값, 거래자 정보 대표 해시값 및 문서 관리 정보 대표 해시값 또는 이들을 가공한 값에 대한 해시값을 제2 블록체인 데이터베이스에 등록하거나 등록하도록 지원할 수도 있다.
또한, 문서 관리 지원 서버(300)는 (i) random nonce, random nonce 서명값 및 public key로부터 연산된 해시값, 및 (ii) 문서 관리 데이터, public key 및 서명값으로부터 연산된 해시값들이 리프 노드들에 할당된 머클 트리로부터 프라이빗 대표 해시값이 생성된 후, 상기 프라이빗 대표 해시값이 상기 생성되는 블록의 블록 헤더에 더 기록된 상태에서, 상기 상태 데이터베이스 해시값 및 상기 프라이빗 대표 해시값, 또는 이들을 가공한 값을 제2 블록체인 데이터베이스에 등록하거나 등록하도록 지원할 수도 있다.
그리고, 서비스 특성이란, 문서 관리와 관련한 트랜잭션 등록을 요청한 사용자가 제공한 비용 정보, 문서 관리와 관련한 트랜잭션 등록이 이루어지는 시간대 정보, 문서 관리와 관련한 트랜잭션 등록 서비스가 이루어지는 지역 정보, 문서 관리와 관련한 트랜잭션 등록 요청을 한 회사 타입 정보 중 적어도 일부가 될 수 있다. 다만, 여기서 기재한 것에 한정할 것은 아니고, 통상적으로 인정되는 차등적 서비스가 제공될 수 있는 다양한 조건 정보를 포함한다.
한편, 새로운 머클 트리 생성이 시작되고, 문서 관리와 관련한 트랜잭션이 없는 상태에서 소정의 조건이 만족되면, 문서 관리 지원 서버(300)는, 소정의 메시지 데이터가 첫번째 리프 노드와 두번째 리프 노드에 할당된 머클 트리를 생성하거나 생성하도록 지원하고, 머클 트리의 루트값 또는 이를 가공한 값을 제2 블록체인 데이터베이스에 등록하거나 등록하도록 지원할 수 있다. 이 경우에는 리프 노드 2개짜리 머클 트리가 생성될 수도 있는 것이다.
한편, 전술한 것처럼 문서 관리 지원 서버(300)가 특정 해시값과 적어도 하나의 이웃 해시값을 소정의 제1 데이터 구조로 저장하고, 이후 제1 데이터 구조와 동일한 형태의 제2 데이터 구조를 저장하여 관리하는 경우, 제1 데이터 구조와 제2 데이터 구조는 체인 형태로 연결될 수 있다. 특히, 제1 데이터 구조 및 제2 데이터 구조가 머클 트리인 경우, 제1 데이터 구조의 루트값 또는 루트값의 해시값이 제2 데이터 구조의 첫번째 리프 노드에 할당될 수 있다.
도 9는 본 발명의 일 실시예에 따라 제2 데이터 구조로서 생성된 머클 트리를 도시한 도면이다.
도 9를 참조하면, 도 8의 머클 트리(tree_id=0)의 루트값(hex(h0123))이 새로운 머클 트리의 첫번째 리프 노드(h4 노드)에 할당되었음을 알 수 있다(sha256digest(input4)). 본 발명은 이와 같이 트랜잭션 발생시 생성되는 복수의 데이터 구조를 연결함으로써 중간에 데이터가 변조가 발생되는 경우라도 쉽게 트래킹이 가능하여 데이터 integrity를 향상시키는 장점을 가진다.
또한, 이상 설명된 본 발명에 따른 실시예들은 다양한 컴퓨터 구성요소를 통하여 수행될 수 있는 프로그램 명령어의 형태로 구현되어 컴퓨터 판독 가능한 기록 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능한 기록 매체는 프로그램 명령어, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 컴퓨터 판독 가능한 기록 매체에 기록되는 프로그램 명령어는 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 분야의 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능한 기록 매체의 예에는, 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체, CD-ROM, DVD와 같은 광기록 매체, 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 ROM, RAM, 플래시 메모리 등과 같은 프로그램 명령어를 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령어의 예에는, 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드도 포함된다. 상기 하드웨어 장치는 본 발명에 따른 처리를 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
이상에서 본 발명이 구체적인 구성요소 등과 같은 특정 사항들과 한정된 실시예 및 도면에 의해 설명되었으나, 이는 본 발명의 보다 전반적인 이해를 돕기 위해서 제공된 것일 뿐, 본 발명이 상기 실시예들에 한정되는 것은 아니며, 본 발명이 속하는 기술분야에서 통상적인 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형을 꾀할 수 있다.
따라서, 본 발명의 사상은 상기 설명된 실시예에 국한되어 정해져서는 아니 되며, 후술하는 특허청구범위뿐만 아니라 이 특허청구범위와 균등하게 또는 등가적으로 변형된 모든 것들은 본 발명의 사상의 범주에 속한다고 할 것이다.
110: 문서 작성자 단말,
120: 사용자 단말,
200: 문서 관리 서버,
300: 문서 관리 지원 서버,
310: 통신부,
320: 프로세서,
410: 블록체인 데이터베이스
420: 상태 데이터베이스

Claims (26)

  1. 블록체인 기반의 문서를 관리하는 방법에 있어서,
    (a) 문서 작성자 단말에서의 문서 등록 요청에 대응하여 문서 관리 서버로부터 문서 등록 요청 트랜잭션이 획득되면, 문서 관리 지원 서버가, 상기 문서 등록 요청 트랜잭션의 유효 여부를 확인하여 유효일 경우, 문서 생성 스마트 컨트렉트 - 상기 문서 생성 스마트 컨트렉트는 실행 가능한 바이트 코드로 컴파일되어 적어도 하나의 컴퓨팅 장치 상에서 실행될 수 있는 소스 코드이고, 상기 문서 등록 요청 트랜잭션에 대응하여 문서를 생성하여 주기 위하여 미리 정해진 절차를 수행하도록 구성된 것임 - 를 실행하여 등록 요청된 문서를 블록체인 데이터베이스에 등록하거나 상기 문서 관리 지원 서버에 연동되는 타 장치로 하여금 상기 문서를 상기 블록체인 데이터베이스에 등록하도록 지원하고, 상기 블록체인 데이터베이스에 등록된 상기 문서의 상기 블록체인 데이터베이스 상의 위치 정보를 나타내는 트랜잭션 아이디를 획득하는 단계; 및
    (b) 상기 문서 관리 지원 서버가, 상태 데이터베이스에 설정된 문서 정보 테이블에 상기 문서에 대응되는 문서 식별값을 등록하고, 상기 문서 식별값에 대응되는 문서 상태 정보 - 상기 문서 상태 정보는 상기 문서 식별값, 상기 문서가 작성된 시각 정보, 및 상기 문서에 대한 버전 정보를 포함함 - 를 등록하며, 상기 상태 데이터베이스에 설정된 버전 정보 테이블에 상기 버전 정보에 대응되는 상기 문서 식별값을 등록하고, 상기 문서 식별값에 대응되는 버전 상태 정보 - 상기 버전 상태 정보는 상기 문서 식별값, 상기 트랜잭션 아이디, 상기 버전 정보에 대응되는 상기 문서의 해시값, 및 상기 버전 정보에 대응하는 상기 문서가 등록된 시각 정보를 포함함 - 를 등록하고, 상기 문서의 등록 결과 정보를 상기 문서 관리 서버를 통해 상기 문서 작성자 단말로 전송하여 주는 단계;
    를 포함하되,
    (c) 사용자 단말에서의 상기 문서 식별값에 대응하는 상기 문서에 대한 조회 요청에 대응하여 상기 문서 관리 서버로부터 문서 조회 요청 트랜잭션이 획득되면, 문서 관리 지원 서버가, 상기 문서 조회 요청 트랜잭션의 유효 여부를 확인하여 유효일 경우, 문서 조회 스마트 컨트렉트 - 상기 문서 조회 스마트 컨트렉트는 실행 가능한 바이트 코드로 컴파일되어 적어도 하나의 컴퓨팅 장치 상에서 실행될 수 있는 소스 코드이고, 상기 문서 조회 요청 트랜잭션에 대응하여 상기 블록체인 데이터베이스에 등록된 상기 문서를 조회하여 주기 위하여 미리 정해진 절차를 수행하도록 구성된 것임 - 를 실행하여 상기 문서 식별값을 참조하여 상기 상태 데이터베이스의 상기 문서 정보 테이블로부터 버전 정보를 확인하며, 상기 확인된 버전 정보와 상기 문서 식별값을 참조하여 상기 상태 데이터베이스의 상기 버전 정보 테이블로부터 상기 트랜잭션 아이디를 확인하고, 상기 확인된 트랜잭션 아이디를 이용하여 상기 블록체인 데이터베이스에 등록된 상기 문서를 획득하며, 상기 획득된 문서를 참조하여 상기 문서 관리 서버를 통해 상기 사용자 단말로 상기 획득된 문서를 표시하여 주거나 상기 문서에 대한 문서 파일로 상기 사용자 단말로 전송하여 주는 단계; 및
    (d) 사용자 단말에서의 특정 문서에 대한 검증 요청에 대응하여 상기 문서 관리 서버로부터 문서 검증 요청 트랜잭션이 획득되면, 상기 문서 관리 지원 서버가, 상기 문서 검증 요청 트랜잭션의 유효 여부를 확인하여 유효일 경우, 문서 검증 스마트 컨트렉트 - 상기 문서 검증 스마트 컨트렉트는 실행 가능한 바이트 코드로 컴파일되어 적어도 하나의 컴퓨팅 장치 상에서 실행될 수 있는 소스 코드이고, 상기 문서 검증 요청 트랜잭션에 대응하여 검증 요청된 상기 특정 문서를 검증하여 주기 위하여 미리 정해진 절차를 수행하도록 구성된 것임 - 를 실행하여 상기 문서 검증 요청 트랜잭션에 포함된 상기 특정 문서에 대한 해시값을 획득하거나, 상기 문서 검증 요청 트랜잭션에 포함된 상기 특정 문서를 획득하고 상기 특정 문서를 해시 연산하여 상기 특정 문서에 대한 해시값을 획득하며, 상기 상태 데이터베이스의 상기 버전 정보 테이블에 등록된 상기 문서의 해시값 중에서 상기 특정 문서의 해시값과 일치되는 해시값이 있는지를 확인하여 상기 특정 문서에 대한 검증을 하며, 검증 결과 정보를 상기 블록체인 데이터베이스에 등록하며, 상기 검증 결과 정보를 상기 문서 관리 서버를 통해 상기 사용자 단말로 전송하여 주는 단계;
    를 더 포함하는 것을 특징으로 하는 방법.
  2. 삭제
  3. 삭제
  4. 제1항에 있어서,
    (e) 사용자 단말에서의 특정 문서에 대한 검증 요청에 대응하여 상기 문서 관리 서버로부터 문서 검증 요청 트랜잭션이 획득되면, 상기 문서 관리 지원 서버가, 상기 문서 검증 요청 트랜잭션의 유효 여부를 확인하여 유효일 경우, 문서 검증 스마트 컨트렉트 - 상기 문서 검증 스마트 컨트렉트는 실행 가능한 바이트 코드로 컴파일되어 적어도 하나의 컴퓨팅 장치 상에서 실행될 수 있는 소스 코드이고, 상기 문서 검증 요청 트랜잭션에 대응하여 검증 요청된 상기 특정 문서를 검증하여 주기 위하여 미리 정해진 절차를 수행하도록 구성된 것임 - 를 실행하여 상기 문서 검증 요청 트랜잭션에 포함된 상기 특정 문서 정보에 대한 해시값을 획득하거나, 상기 문서 검증 요청 트랜잭션에 포함된 상기 특정 문서를 획득하고 상기 특정 문서를 해시 연산하여 상기 특정 문서에 대한 해시값을 획득하며, 상기 상태 데이터베이스의 상기 버전 정보 테이블에 등록된 상기 문서의 해시값 중에서 상기 특정 문서의 해시값과 일치되는 상기 문서의 해시값에 대응하는 상기 문서 식별값을 획득하며, 상기 문서 식별값에 대응하여 등록된 상기 문서의 작성자 정보, 상기 문서의 작성 기관 정보, 및 상기 문서의 버전 정보 중 적어도 하나를 상기 문서 관리 서버로 전송하여 줌으로써 상기 문서 관리 서버로 하여금 상기 문서의 작성자 정보, 상기 문서의 작성 기관 정보, 및 상기 문서의 버전 정보 중 적어도 하나가 기등록되어 있는 정보인지를 확인하여 상기 특정 문서에 대한 검증 결과를 생성하고 상기 사용자 단말로 전송하여 주도록 지원하는 단계;
    를 더 포함하는 것을 특징으로 하는 방법.
  5. 제1항에 있어서,
    상기 문서 상태 정보는, 상기 문서의 최초 작성자 정보, 또는 상기 문서의 최초 작성 기관 정보를 더 포함하는 것을 특징으로 하는 방법.
  6. 제1항에 있어서,
    상기 버전 상태 정보는, 상기 문서의 내용, 상기 문서의 제목, 상기 문서의 확장자, 상기 문서의 버전 명칭, 상기 버전 정보에 대응되는 상기 문서의 작성자, 상기 버전 정보에 대응되는 상기 문서의 변경 내용 정보, 및 상기 버전 정보에 대응되는 상기 문서의 작성 기관 정보 중 적어도 하나를 더 포함하는 것을 특징으로 하는 방법.
  7. 블록체인 기반의 문서를 관리하는 방법에 있어서,
    (a) 문서 작성자 단말에서의 제1 문서에 대한 문서 등록 요청에 대응하여 문서 관리 서버로부터 문서 등록 요청 트랜잭션이 획득되면, 문서 관리 지원 서버가, 상기 문서 등록 요청 트랜잭션의 유효 여부를 확인하여 유효일 경우, 문서 생성 스마트 컨트렉트 - 상기 문서 생성 스마트 컨트렉트는 실행 가능한 바이트 코드로 컴파일되어 적어도 하나의 컴퓨팅 장치 상에서 실행될 수 있는 소스 코드이고, 상기 문서 등록 요청 트랜잭션에 대응하여 상기 문서를 생성하여 주기 위하여 미리 정해진 절차를 수행하도록 구성된 것임 - 를 실행하여 등록 요청된 제1 문서를 블록체인 데이터베이스에 등록하거나 상기 문서 관리 지원 서버에 연동되는 타 장치로 하여금 상기 제1 문서를 상기 블록체인 데이터베이스에 등록하도록 지원하고, 상기 블록체인 데이터베이스에 등록된 상기 제1 문서의 상기 블록체인 데이터베이스 상의 위치 정보를 나타내는 제1 트랜잭션 아이디를 획득하는 단계;
    (b) 상기 문서 관리 지원 서버가, 상태 데이터베이스에 설정된 문서 정보 테이블에 상기 제1 문서에 대응되는 문서 식별값을 등록하고, 상기 문서 식별값에 대응되는 문서 상태 정보 - 상기 문서 상태 정보는 상기 문서 식별값, 상기 제1 문서가 작성된 시각 정보, 및 상기 제1 문서에 대한 제1 버전 정보를 포함함 - 를 등록하며, 상기 상태 데이터베이스에 설정된 버전 정보 테이블에 상기 제1 버전 정보에 대응되는 상기 문서 식별값을 등록하고, 상기 문서 식별값에 대응되는 버전 상태 정보 - 상기 버전 상태 정보는 상기 문서 식별값, 상기 제1 트랜잭션 아이디, 상기 제1 버전 정보에 대응되는 상기 제1 문서의 해시값, 및 상기 제1 버전 정보에 대응하는 상기 제1 문서가 등록된 시각 정보를 포함함 - 를 등록하고, 상기 제1 문서의 등록 결과 정보를 상기 문서 관리 서버를 통해 상기 문서 작성자 단말로 전송하여 주는 단계;
    (c) 사용자 단말에서의 상기 문서 식별값에 대응하는 등록된 제1 문서에 대한 조회 요청에 대응하여 상기 블록체인 데이터베이스에 등록된 상기 제1 문서를 획득하고, 상기 획득된 제1 문서를 상기 사용자 단말에 표시하여 준 상태에서, 상기 사용자 단말에서의 상기 제1 문서를 수정한 제2 문서에 대한 문서 수정 요청에 대응하여 상기 문서 관리 서버로부터 문서 수정 요청 트랜잭션이 획득되면, 상기 문서 관리 지원 서버가, 상기 문서 수정 요청 트랜잭션의 유효 여부를 확인하여 유효일 경우, 문서 수정 스마트 컨트렉트 - 상기 문서 수정 스마트 컨트렉트는 실행 가능한 바이트 코드로 컴파일되어 적어도 하나의 컴퓨팅 장치 상에서 실행될 수 있는 소스 코드이고, 상기 문서 수정 요청 트랜잭션에 대응하여 상기 제1 문서를 수정하여 주기 위하여 미리 정해진 절차를 수행하도록 구성된 것임 - 를 실행하여 수정 요청된 제2 문서를 상기 블록체인 데이터베이스에 등록하거나 상기 문서 관리 지원 서버에 연동되는 타 장치로 하여금 상기 제2 문서를 상기 블록체인 데이터베이스에 등록하도록 지원하고, 상기 블록체인 데이터베이스에 등록된 상기 제2 문서의 상기 블록체인 데이터베이스 상의 위치 정보를 나타내는 제2 트랜잭션 아이디를 획득하는 단계; 및
    (d) 상기 문서 관리 지원 서버가, 상기 상태 데이터베이스에 설정된 문서 정보 테이블에 등록된 상기 문서 식별값에 대응되는 문서 상태 정보에서 상기 제1 문서에 대한 제1 버전 정보에 더하여 상기 제2 문서에 대한 제2 버전 정보를 등록하며, 상기 상태 데이터베이스에 설정된 버전 정보 테이블에 상기 제2 버전 정보에 대응되는 상기 문서 식별값을 등록하고, 상기 문서 식별값에 대응되는 제2 버전 상태 정보 - 상기 제2 버전 상태 정보는 상기 문서 식별값, 상기 제2 트랜잭션 아이디, 상기 제2 버전 정보에 대응되는 상기 제2 문서의 해시값, 및 상기 제2 버전 정보에 대응하는 상기 제2 문서가 등록된 시각 정보를 포함함 - 를 등록하고, 상기 제2 문서의 등록 결과 정보를 상기 문서 관리 서버를 통해 상기 사용자 단말로 전송하여 주는 단계;
    를 포함하되,
    (e) 상기 사용자 단말에서의 특정 문서에 대한 검증 요청에 대응하여 상기 문서 관리 서버로부터 문서 검증 요청 트랜잭션이 획득되면, 상기 문서 관리 지원 서버가, 상기 문서 검증 요청 트랜잭션의 유효 여부를 확인하여 유효일 경우, 문서 검증 스마트 컨트렉트 - 상기 문서 검증 스마트 컨트렉트는 실행 가능한 바이트 코드로 컴파일되어 적어도 하나의 컴퓨팅 장치 상에서 실행될 수 있는 소스 코드이고, 상기 문서 검증 요청 트랜잭션에 대응하여 검증 요청된 상기 특정 문서를 검증하여 주기 위하여 미리 정해진 절차를 수행하도록 구성된 것임 - 를 실행하여 상기 문서 검증 요청 트랜잭션에 포함된 상기 특정 문서에 대한 해시값을 획득하거나, 상기 문서 검증 요청 트랜잭션에 포함된 상기 특정 문서를 획득하고 상기 특정 문서를 해시 연산하여 상기 특정 문서에 대한 해시값을 획득하며, 상기 상태 데이터베이스의 상기 버전 정보 테이블에 등록된 상기 문서의 해시값 중에서 상기 특정 문서에 대한 해시값과 일치되는 해시값이 있는지를 확인하여 상기 특정 문서에 대한 검증을 하며, 검증 결과 정보를 상기 블록체인 데이터베이스에 등록하며, 상기 검증 결과 정보를 상기 문서 관리 서버를 통해 상기 사용자 단말로 전송하여 주는 단계;
    를 더 포함하며,
    상기 (c) 단계에서,
    상기 문서 관리 지원 서버는,
    상기 사용자 단말에서의 상기 문서 식별값에 대응하는 제1 문서에 대한 조회 요청에 대응하여 상기 문서 관리 서버로부터 문서 조회 요청 트랜잭션이 획득되면, 상기 문서 조회 요청 트랜잭션의 유효 여부를 확인하여 유효일 경우, 문서 조회 스마트 컨트렉트 - 상기 문서 조회 스마트 컨트렉트는 실행 가능한 바이트 코드로 컴파일되어 적어도 하나의 컴퓨팅 장치 상에서 실행될 수 있는 소스 코드이고, 상기 문서 조회 요청 트랜잭션에 대응하여 상기 블록체인 데이터베이스에 등록된 상기 제1 문서를 조회하여 주기 위하여 미리 정해진 절차를 수행하도록 구성된 것임 - 를 실행하여 상기 문서 식별값을 참조하여 상기 상태 데이터베이스의 상기 문서 정보 테이블로부터 제1 버전 정보를 확인하며, 상기 확인된 제1 버전 정보와 상기 문서 식별값을 참조하여 상기 상태 데이터베이스의 상기 버전 정보 테이블로부터 상기 제1 트랜잭션 아이디를 확인하고, 상기 확인된 제1 트랜잭션 아이디를 이용하여 상기 블록체인 데이터베이스에 등록된 상기 제1 문서를 획득하며, 상기 획득된 제1 문서를 참조하여 상기 문서 관리 서버를 통해 상기 사용자 단말로 상기 획득된 제1 문서를 표시하여 주는 것을 특징으로 하는 방법.
  8. 삭제
  9. 삭제
  10. 제7항에 있어서,
    (f) 상기 사용자 단말에서의 특정 문서에 대한 검증 요청에 대응하여 상기 문서 관리 서버로부터 문서 검증 요청 트랜잭션이 획득되면, 상기 문서 관리 지원 서버가, 상기 문서 검증 요청 트랜잭션의 유효 여부를 확인하여 유효일 경우, 문서 검증 스마트 컨트렉트 - 상기 문서 검증 스마트 컨트렉트는 실행 가능한 바이트 코드로 컴파일되어 적어도 하나의 컴퓨팅 장치 상에서 실행될 수 있는 소스 코드이고, 상기 문서 검증 요청 트랜잭션에 대응하여 검증 요청된 상기 특정 문서를 검증하여 주기 위하여 미리 정해진 절차를 수행하도록 구성된 것임 - 를 실행하여 상기 문서 검증 요청 트랜잭션에 포함된 상기 특정 문서에 대한 해시값을 획득하거나, 상기 문서 검증 요청 트랜잭션에 포함된 상기 특정 문서를 획득하고 상기 특정 문서를 해시 연산하여 상기 특정 문서에 대한 해시값을 획득하며, 상기 상태 데이터베이스의 상기 버전 정보 테이블에 등록된 상기 문서의 해시값 중에서 상기 특정 문서에 대한 해시값과 일치되는 상기 문서의 해시값에 대응하는 상기 문서 식별값을 획득하며, 상기 문서 식별값에 대응하여 등록된 상기 문서의 작성자 정보, 상기 문서의 작성 기관 정보, 및 상기 문서의 버전 정보 중 적어도 하나를 상기 문서 관리 서버로 전송하여 줌으로써 상기 문서 관리 서버로 하여금 상기 문서의 작성자 정보, 상기 문서의 작성 기관 정보, 및 상기 문서의 버전 정보 중 적어도 하나가 기등록되어 있는 정보인지를 확인하여 상기 특정 문서에 대한 검증 결과를 생성하여 상기 사용자 단말로 전송하여 주도록 지원하는 단계;
    를 더 포함하는 것을 특징으로 하는 방법.
  11. 제7항에 있어서,
    (g) 상기 사용자 단말에서의 문서 변경이력 조회 요청에 대응하여 상기 문서 관리 서버로부터 문서 변경이력 조회 요청 트랜잭션이 획득되면, 상기 문서 관리 지원 서버가, 상기 문서 변경이력 조회 요청 트랜잭션의 유효 여부를 확인하여 유효일 경우, 문서 변경이력 조회 스마트 컨트렉트 - 상기 문서 변경이력 조회 스마트 컨트렉트는 실행 가능한 바이트 코드로 컴파일되어 적어도 하나의 컴퓨팅 장치 상에서 실행될 수 있는 소스 코드이고, 상기 문서 변경이력 조회 요청 트랜잭션에 대응하여 요청된 상기 문서 변경이력을 조회하기 위하여 미리 정해진 절차를 수행하도록 구성된 것임 - 를 실행하여 상기 문서 변경이력 조회 요청 트랜잭션에 포함된 상기 문서 식별값을 확인하고, 상기 확인된 문서 식별값을 참조하여 상기 상태 데이터베이스의 상기 문서 정보 테이블과 상기 버전 정보 테이블로부터 상기 문서 식별값에 대응하는 상기 제1 버전 정보와 상기 제2 버전 정보, 그리고, 상기 제1 버전 정보와 상기 제2 버전 정보에 각각 대응되는 상기 제1, 제2 문서의 작성자 정보, 상기 제1, 제2 문서 정보, 및 상기 제2 문서 정보의 변경 내용 정보 중 적어도 하나를 상기 문서 관리 서버를 통해 상기 사용자 단말로 전송하여 주는 단계;
    를 더 포함하는 것을 특징으로 하는 방법.
  12. 제7항에 있어서,
    상기 문서 상태 정보는, 상기 제1 문서와 상기 제2 문서 각각의 작성자 정보, 또는 상기 제1 문서와 상기 제2 문서 각각의 작성 기관 정보를 더 포함하는 것을 특징으로 하는 방법.
  13. 제7항에 있어서,
    상기 버전 상태 정보는, 상기 제1 문서의 내용, 상기 제1 문서의 제목, 상기 제1 문서의 확장자, 상기 제1 문서와 상기 제2 문서 각각의 버전 명칭, 상기 제1 버전 정보와 상기 제2 버전 정보 각각에 대응되는 상기 제1문서와 상기 제2 문서 각각의 작성자, 상기 제1 버전 정보와 상기 제2 버전 정보 각각에 대응되는 상기 제1 문서와 상기 제2 문서 각각의 변경 내용 정보, 및 상기 제1 문서와 상기 제2 문서 각각의 작성 기관 정보 중 적어도 하나를 더 포함하는 것을 특징으로 하는 방법.
  14. 블록체인 기반의 문서를 관리하는 문서 관리 지원 서버에 있어서,
    문서 작성자 단말에서의 문서 등록 요청에 대응하여 문서 관리 서버로부터 문서 등록 요청 트랜잭션을 획득하는 통신부; 및
    (i) 상기 통신부에서 획득된 상기 문서 등록 요청 트랜잭션의 유효 여부를 확인하여 유효일 경우, 문서 생성 스마트 컨트렉트 - 상기 문서 생성 스마트 컨트렉트는 실행 가능한 바이트 코드로 컴파일되어 적어도 하나의 컴퓨팅 장치 상에서 실행될 수 있는 소스 코드이고, 상기 문서 등록 요청 트랜잭션에 대응하여 문서를 생성하여 주기 위하여 미리 정해진 절차를 수행하도록 구성된 것임 - 를 실행하여 등록 요청된 문서 정보를 블록체인 데이터베이스에 등록하거나 상기 문서 관리 지원 서버에 연동되는 타 장치로 하여금 상기 문서를 상기 블록체인 데이터베이스에 등록하도록 지원하고, 상기 블록체인 데이터베이스에 등록된 상기 문서의 상기 블록체인 데이터베이스 상의 위치 정보를 나타내는 트랜잭션 아이디를 획득하는 프로세스, 및 (ii) 상태 데이터베이스에 설정된 문서 정보 테이블에 상기 문서에 대응되는 문서 식별값을 등록하고, 상기 문서 식별값에 대응되는 문서 상태 정보 - 상기 문서 상태 정보는 상기 문서 식별값, 상기 문서가 작성된 시각 정보, 및 상기 문서에 대한 버전 정보를 포함함 - 를 등록하며, 상기 상태 데이터베이스에 설정된 버전 정보 테이블에 상기 버전 정보에 대응되는 상기 문서 식별값을 등록하고, 상기 문서 식별값에 대응되는 버전 상태 정보 - 상기 버전 상태 정보는 상기 문서 식별값, 상기 트랜잭션 아이디, 상기 버전 정보에 대응되는 상기 문서의 해시값, 및 상기 버전 정보에 대응하는 상기 문서가 등록된 시각 정보를 포함함 - 를 등록하고, 상기 문서의 등록 결과 정보를 상기 문서 관리 서버를 통해 상기 문서 작성자 단말로 전송하여 주는 프로세스를 수행하는 프로세서;
    를 포함하되,
    상기 프로세서는,
    (iii) 사용자 단말에서의 상기 문서 식별값에 대응하는 문서에 대한 조회 요청에 대응하여 상기 문서 관리 서버로부터 문서 조회 요청 트랜잭션이 획득되면, 상기 문서 조회 요청 트랜잭션의 유효 여부를 확인하여 유효일 경우, 문서 조회 스마트 컨트렉트 - 상기 문서 조회 스마트 컨트렉트는 실행 가능한 바이트 코드로 컴파일되어 적어도 하나의 컴퓨팅 장치 상에서 실행될 수 있는 소스 코드이고, 상기 문서 조회 요청 트랜잭션에 대응하여 상기 블록체인 데이터베이스에 등록된 상기 문서를 조회하여 주기 위하여 미리 정해진 절차를 수행하도록 구성된 것임 - 를 실행하여 상기 문서 식별값을 참조하여 상기 상태 데이터베이스의 상기 문서 정보 테이블로부터 버전 정보를 확인하며, 상기 확인된 버전 정보와 상기 문서 식별값을 참조하여 상기 상태 데이터베이스의 상기 버전 정보 테이블로부터 상기 트랜잭션 아이디를 확인하고, 상기 확인된 트랜잭션 아이디를 이용하여 상기 블록체인 데이터베이스에 등록된 상기 문서를 획득하며, 상기 획득된 문서를 참조하여 상기 문서 관리 서버를 통해 상기 사용자 단말로 상기 획득된 문서를 표시하여 주거나 상기 문서에 대한 문서 파일로 상기 사용자 단말로 전송하여 주는 프로세스, 및
    (iv) 사용자 단말에서의 특정 문서에 대한 검증 요청에 대응하여 상기 문서 관리 서버로부터 문서 검증 요청 트랜잭션이 획득되면, 상기 문서 검증 요청 트랜잭션의 유효 여부를 확인하여 유효일 경우, 문서 검증 스마트 컨트렉트 - 상기 문서 검증 스마트 컨트렉트는 실행 가능한 바이트 코드로 컴파일되어 적어도 하나의 컴퓨팅 장치 상에서 실행될 수 있는 소스 코드이고, 상기 문서 검증 요청 트랜잭션에 대응하여 검증 요청된 상기 특정 문서를 검증하여 주기 위하여 미리 정해진 절차를 수행하도록 구성된 것임 - 를 실행하여 상기 문서 검증 요청 트랜잭션에 포함된 상기 특정 문서에 대한 해시값을 획득하거나, 상기 문서 검증 요청 트랜잭션에 포함된 상기 특정 문서를 획득하고 상기 특정 문서를 해시 연산하여 상기 특정 문서에 대한 해시값을 획득하며, 상기 상태 데이터베이스의 상기 버전 정보 테이블에 등록된 상기 문서의 해시값 중에서 상기 특정 문서에 대한 해시값과 일치되는 해시값이 있는지를 확인하여 상기 특정 문서에 대한 검증을 하며, 검증 결과 정보를 상기 블록체인 데이터베이스에 등록하며, 상기 검증 결과 정보를 상기 문서 관리 서버를 통해 상기 사용자 단말로 전송하여 주는 프로세스를 더 수행하는 것을 특징으로 하는 문서 관리 지원 서버.
  15. 삭제
  16. 삭제
  17. 제14항에 있어서,
    상기 프로세서는,
    (v) 사용자 단말에서의 특정 문서에 대한 검증 요청에 대응하여 상기 문서 관리 서버로부터 문서 검증 요청 트랜잭션이 획득되면, 상기 문서 검증 요청 트랜잭션의 유효 여부를 확인하여 유효일 경우, 문서 검증 스마트 컨트렉트 - 상기 문서 검증 스마트 컨트렉트는 실행 가능한 바이트 코드로 컴파일되어 적어도 하나의 컴퓨팅 장치 상에서 실행될 수 있는 소스 코드이고, 상기 문서 검증 요청 트랜잭션에 대응하여 검증 요청된 상기 특정 문서를 검증하여 주기 위하여 미리 정해진 절차를 수행하도록 구성된 것임 - 를 실행하여 상기 문서 검증 요청 트랜잭션에 포함된 상기 특정 문서에 대한 해시값을 획득하거나, 상기 문서 검증 요청 트랜잭션에 포함된 상기 특정 문서를 획득하고 상기 특정 문서를 해시 연산하여 상기 특정 문서 정보에 대한 해시값을 획득하며, 상기 상태 데이터베이스의 상기 버전 정보 테이블에 등록된 상기 문서의 해시값 중에서 상기 특정 문서에 대한 해시값과 일치되는 상기 문서의 해시값에 대응하는 상기 문서 식별값을 획득하며, 상기 문서 식별값에 대응하여 등록된 상기 문서의 작성자 정보, 상기 문서의 작성 기관 정보, 및 상기 문서의 버전 정보 중 적어도 하나를 상기 문서 관리 서버로 전송하여 줌으로써 상기 문서 관리 서버로 하여금 상기 문서의 작성자 정보, 상기 문서의 작성 기관 정보, 및 상기 문서의 버전 정보 중 적어도 하나가 기등록되어 있는 정보인지를 확인하여 상기 특정 문서에 대한 검증 결과를 생성하여 상기 사용자 단말로 전송하여 주도록 지원하는 프로세스를 더 수행하는 것을 특징으로 하는 문서 관리 지원 서버.
  18. 제14항에 있어서,
    상기 문서 상태 정보는, 상기 문서의 최초 작성자 정보, 또는 상기 문서의 최초 작성 기관 정보를 더 포함하는 것을 특징으로 하는 문서 관리 지원 서버.
  19. 제14항에 있어서,
    상기 버전 상태 정보는, 상기 문서의 내용, 상기 문서의 제목, 상기 문서의 확장자, 상기 문서의 버전 명칭, 상기 버전 정보에 대응되는 상기 문서의 작성자, 상기 버전 정보에 대응되는 상기 문서의 변경 내용 정보, 및 상기 버전 정보에 대응되는 상기 문서의 작성 기관 정보 중 적어도 하나를 더 포함하는 것을 특징으로 하는 문서 관리 지원 서버.
  20. 블록체인 기반의 문서를 관리하는 문서 관리 지원 서버에 있어서,
    문서 작성자 단말에서의 제1 문서에 대한 문서 등록 요청에 대응하여 문서 관리 서버로부터 문서 등록 요청 트랜잭션을 획득하는 통신부; 및
    (i) 상기 통신부에서 획득된 상기 문서 등록 요청 트랜잭션의 유효 여부를 확인하여 유효일 경우, 문서 생성 스마트 컨트렉트 - 상기 문서 생성 스마트 컨트렉트는 실행 가능한 바이트 코드로 컴파일되어 적어도 하나의 컴퓨팅 장치 상에서 실행될 수 있는 소스 코드이고, 상기 문서 등록 요청 트랜잭션에 대응하여 상기 문서를 생성하여 주기 위하여 미리 정해진 절차를 수행하도록 구성된 것임 - 를 실행하여 등록 요청된 제1 문서를 블록체인 데이터베이스에 등록하거나 상기 문서 관리 지원 서버에 연동되는 타 장치로 하여금 상기 제1 문서를 상기 블록체인 데이터베이스에 등록하도록 지원하고, 상기 블록체인 데이터베이스에 등록된 상기 제1 문서의 상기 블록체인 데이터베이스 상의 위치 정보를 나타내는 제1 트랜잭션 아이디를 획득하는 프로세스, (ii) 상태 데이터베이스에 설정된 문서 정보 테이블에 상기 제1 문서에 대응되는 문서 식별값을 등록하고, 상기 문서 식별값에 대응되는 문서 상태 정보 - 상기 문서 상태 정보는 상기 문서 식별값, 상기 제1 문서가 작성된 시각 정보, 및 상기 제1 문서에 대한 제1 버전 정보를 포함함 - 를 등록하며, 상기 상태 데이터베이스에 설정된 버전 정보 테이블에 상기 제1 버전 정보에 대응되는 상기 문서 식별값을 등록하고, 상기 문서 식별값에 대응되는 버전 상태 정보 - 상기 버전 상태 정보는 상기 문서 식별값, 상기 제1 트랜잭션 아이디, 상기 제1 버전 정보에 대응되는 상기 제1 문서의 해시값, 및 상기 제1 버전 정보에 대응하는 상기 제1 문서가 등록된 시각 정보를 포함함 - 를 등록하고, 상기 제1 문서의 등록 결과 정보를 상기 문서 관리 서버를 통해 상기 문서 작성자 단말로 전송하여 주는 프로세스, (iii) 사용자 단말에서의 상기 문서 식별값에 대응하는 등록된 제1 문서에 대한 조회 요청에 대응하여 상기 블록체인 데이터베이스에 등록된 상기 제1 문서를 획득하고, 상기 획득된 제1 문서를 상기 사용자 단말에 표시하여 준 상태에서, 상기 사용자 단말에서의 상기 제1 문서를 수정한 제2 문서에 대한 문서 수정 요청에 대응하여 상기 문서 관리 서버로부터 문서 수정 요청 트랜잭션이 획득되면, 상기 문서 수정 요청 트랜잭션의 유효 여부를 확인하여 유효일 경우, 문서 수정 스마트 컨트렉트 - 상기 문서 수정 스마트 컨트렉트는 실행 가능한 바이트 코드로 컴파일되어 적어도 하나의 컴퓨팅 장치 상에서 실행될 수 있는 소스 코드이고, 상기 문서 수정 요청 트랜잭션에 대응하여 상기 제1 문서를 수정하여 주기 위하여 미리 정해진 절차를 수행하도록 구성된 것임 - 를 실행하여 수정 요청된 제2 문서를 상기 블록체인 데이터베이스에 등록하거나 상기 문서 관리 지원 서버에 연동되는 타 장치로 하여금 상기 제2 문서를 상기 블록체인 데이터베이스에 등록하도록 지원하고, 상기 블록체인 데이터베이스에 등록된 상기 제2 문서의 상기 블록체인 데이터베이스 상의 위치 정보를 나타내는 제2 트랜잭션 아이디를 획득하는 프로세스, 및 (iv) 상기 상태 데이터베이스에 설정된 문서 정보 테이블에 등록된 상기 문서 식별값에 대응되는 문서 상태 정보에서 상기 제1 문서 정보에 대한 제1 버전 정보에 더하여 상기 제2 문서 정보에 대한 제2 버전 정보를 등록하며, 상기 상태 데이터베이스에 설정된 버전 정보 테이블에 상기 제2 버전 정보에 대응되는 상기 문서 식별값을 등록하고, 상기 문서 식별값에 대응되는 제2 버전 상태 정보 - 상기 제2 버전 상태 정보는 상기 문서 식별값, 상기 제2 트랜잭션 아이디, 상기 제2 버전 정보에 대응되는 상기 제2 문서의 해시값, 및 상기 제2 버전 정보에 대응하는 상기 제2 문서가 등록된 시각 정보를 포함함 - 를 등록하고, 상기 제2 문서의 등록 결과 정보를 상기 문서 관리 서버를 통해 상기 사용자 단말로 전송하여 주는 프로세스를 수행하는 프로세서;
    를 포함하되,
    상기 프로세서는,
    (v) 상기 사용자 단말에서의 특정 문서에 대한 검증 요청에 대응하여 상기 문서 관리 서버로부터 문서 검증 요청 트랜잭션이 획득되면, 상기 문서 검증 요청 트랜잭션의 유효 여부를 확인하여 유효일 경우, 문서 검증 스마트 컨트렉트 - 상기 문서 검증 스마트 컨트렉트는 실행 가능한 바이트 코드로 컴파일되어 적어도 하나의 컴퓨팅 장치 상에서 실행될 수 있는 소스 코드이고, 상기 문서 검증 요청 트랜잭션에 대응하여 검증 요청된 상기 특정 문서를 검증하여 주기 위하여 미리 정해진 절차를 수행하도록 구성된 것임 - 를 실행하여 상기 문서 검증 요청 트랜잭션에 포함된 상기 특정 문서에 대한 해시값을 획득하거나, 상기 문서 검증 요청 트랜잭션에 포함된 상기 특정 문서를 획득하고 상기 특정 문서를 해시 연산하여 상기 특정 문서에 대한 해시값을 획득하며, 상기 상태 데이터베이스의 상기 버전 정보 테이블에 등록된 상기 문서의 해시값 중에서 상기 특정 문서에 대한 해시값과 일치되는 해시값이 있는지를 확인하여 상기 특정 문서에 대한 검증을 하며, 검증 결과 정보를 상기 블록체인 데이터베이스에 등록하며, 상기 검증 결과 정보를 상기 문서 관리 서버를 통해 상기 사용자 단말로 전송하여 주는 프로세스를 더 수행하며,
    상기 (iii) 프로세스에서,
    상기 사용자 단말에서의 상기 문서 식별값에 대응하는 제1 문서에 대한 조회 요청에 대응하여 상기 문서 관리 서버로부터 문서 조회 요청 트랜잭션이 획득되면, 상기 문서 조회 요청 트랜잭션의 유효 여부를 확인하여 유효일 경우, 문서 조회 스마트 컨트렉트 - 상기 문서 조회 스마트 컨트렉트는 실행 가능한 바이트 코드로 컴파일되어 적어도 하나의 컴퓨팅 장치 상에서 실행될 수 있는 소스 코드이고, 상기 문서 조회 요청 트랜잭션에 대응하여 상기 블록체인 데이터베이스에 등록된 상기 제1 문서를 조회하여 주기 위하여 미리 정해진 절차를 수행하도록 구성된 것임 - 를 실행하여 상기 문서 식별값을 참조하여 상기 상태 데이터베이스의 상기 문서 정보 테이블로부터 제1 버전 정보를 확인하며, 상기 확인된 제1 버전 정보와 상기 문서 식별값을 참조하여 상기 상태 데이터베이스의 상기 버전 정보 테이블로부터 상기 제1 트랜잭션 아이디를 확인하고, 상기 확인된 제1 트랜잭션 아이디를 이용하여 상기 블록체인 데이터베이스에 등록된 상기 제1 문서를 획득하며, 상기 획득된 제1 문서를 참조하여 상기 문서 관리 서버를 통해 상기 사용자 단말로 상기 획득된 제1 문서를 표시하여 주는 것을 특징으로 하는 문서 관리 지원 서버.
  21. 삭제
  22. 삭제
  23. 제20항에 있어서,
    상기 프로세서는,
    (vi) 상기 사용자 단말에서의 특정 문서에 대한 검증 요청에 대응하여 상기 문서 관리 서버로부터 문서 검증 요청 트랜잭션이 획득되면, 상기 문서 검증 요청 트랜잭션의 유효 여부를 확인하여 유효일 경우, 문서 검증 스마트 컨트렉트 - 상기 문서 검증 스마트 컨트렉트는 실행 가능한 바이트 코드로 컴파일되어 적어도 하나의 컴퓨팅 장치 상에서 실행될 수 있는 소스 코드이고, 상기 문서 검증 요청 트랜잭션에 대응하여 검증 요청된 상기 특정 문서를 검증하여 주기 위하여 미리 정해진 절차를 수행하도록 구성된 것임 - 를 실행하여 상기 문서 검증 요청 트랜잭션에 포함된 상기 특정 문서에 대한 해시값을 획득하거나, 상기 문서 검증 요청 트랜잭션에 포함된 상기 특정 문서를 획득하고 상기 특정 문서를 해시 연산하여 상기 특정 문서에 대한 해시값을 획득하며, 상기 상태 데이터베이스의 상기 버전 정보 테이블에 등록된 상기 문서의 해시값 중에서 상기 특정 문서에 대한 해시값과 일치되는 상기 문서의 해시값에 대응하는 상기 문서 식별값을 획득하며, 상기 문서 식별값에 대응하여 등록된 상기 문서의 작성자 정보, 상기 문서의 작성 기관 정보, 및 상기 문서의 버전 정보 중 적어도 하나를 상기 문서 관리 서버로 전송하여 줌으로써 상기 문서 관리 서버로 하여금 상기 문서의 작성자 정보, 상기 문서의 작성 기관 정보, 및 상기 문서의 버전 정보 중 적어도 하나가 기등록되어 있는 정보인지를 확인하여 상기 특정 문서에 대한 검증 결과를 생성하여 상기 사용자 단말로 전송하여 주도록 지원하는 프로세스를 더 수행하는 것을 특징으로 하는 문서 관리 지원 서버.
  24. 제20항에 있어서,
    상기 프로세서는,
    (vii) 상기 사용자 단말에서의 문서 변경이력 조회 요청에 대응하여 상기 문서 관리 서버로부터 문서 변경이력 조회 요청 트랜잭션이 획득되면, 상기 문서 변경이력 조회 요청 트랜잭션의 유효 여부를 확인하여 유효일 경우, 문서 변경이력 조회 스마트 컨트렉트 - 상기 문서 변경이력 조회 스마트 컨트렉트는 실행 가능한 바이트 코드로 컴파일되어 적어도 하나의 컴퓨팅 장치 상에서 실행될 수 있는 소스 코드이고, 상기 문서 변경이력 조회 요청 트랜잭션에 대응하여 요청된 상기 문서 변경이력을 조회하기 위하여 미리 정해진 절차를 수행하도록 구성된 것임 - 를 실행하여 상기 문서 변경이력 조회 요청 트랜잭션에 포함된 상기 문서 식별값을 확인하고, 상기 확인된 문서 식별값을 참조하여 상기 상태 데이터베이스의 상기 문서 정보 테이블과 상기 버전 정보 테이블로부터 상기 문서 식별값에 대응하는 상기 제1 버전 정보와 상기 제2 버전 정보, 그리고, 상기 제1 버전 정보와 상기 제2 버전 정보에 각각 대응되는 상기 제1, 제2 문서의 작성자 정보, 상기 제1, 제2 문서 정보, 및 상기 제2 문서 정보의 변경 내용 정보 중 적어도 하나를 상기 문서 관리 서버를 통해 상기 사용자 단말로 전송하여 주는 프로세스를 더 수행하는 것을 특징으로 하는 문서 관리 지원 서버.
  25. 제20항에 있어서,
    상기 문서 상태 정보는, 상기 제1 문서와 상기 제2 문서 각각의 작성자 정보, 또는 상기 제1 문서와 상기 제2 문서 각각의 작성 기관 정보를 더 포함하는 것을 특징으로 하는 문서 관리 지원 서버.
  26. 제20항에 있어서,
    상기 버전 상태 정보는, 상기 제1 문서의 내용, 상기 제1 문서의 제목, 상기 제1 문서의 확장자, 상기 제1 문서와 상기 제2 문서 각각의 버전 명칭, 상기 제1 버전 정보와 상기 제2 버전 정보 각각에 대응되는 상기 제1문서와 상기 제2 문서 각각의 작성자, 상기 제1 버전 정보와 상기 제2 버전 정보 각각에 대응되는 상기 제1 문서와 상기 제2 문서 각각의 변경 내용 정보, 및 상기 제1 문서와 상기 제2 문서 각각의 작성 기관 정보 중 적어도 하나를 더 포함하는 것을 특징으로 하는 문서 관리 지원 서버.
KR1020170138691A 2017-10-24 2017-10-24 블록체인 기반의 문서 관리 방법 및 이를 이용한 문서 관리 서버 KR101954268B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020170138691A KR101954268B1 (ko) 2017-10-24 2017-10-24 블록체인 기반의 문서 관리 방법 및 이를 이용한 문서 관리 서버

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020170138691A KR101954268B1 (ko) 2017-10-24 2017-10-24 블록체인 기반의 문서 관리 방법 및 이를 이용한 문서 관리 서버

Publications (1)

Publication Number Publication Date
KR101954268B1 true KR101954268B1 (ko) 2019-03-05

Family

ID=65760231

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170138691A KR101954268B1 (ko) 2017-10-24 2017-10-24 블록체인 기반의 문서 관리 방법 및 이를 이용한 문서 관리 서버

Country Status (1)

Country Link
KR (1) KR101954268B1 (ko)

Cited By (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102038088B1 (ko) 2019-04-03 2019-11-26 주식회사 한국정보보호경영연구소 디지털 인감을 제공하는 블록체인 기반의 전자문서 관리 시스템
US10602202B1 (en) 2019-07-30 2020-03-24 Capital One Services, Llc System and techniques for digital data lineage verification
KR20200114434A (ko) * 2019-03-28 2020-10-07 한국정보화기술 주식회사 본인정보 판매대금 정산 방법
WO2020246705A1 (ko) * 2019-06-04 2020-12-10 주식회사 한글과컴퓨터 블록체인을 기반으로 문서 정보의 관리를 가능하게 하는 문서 정보 관리 장치 및 그 동작 방법
WO2020246706A1 (ko) * 2019-06-04 2020-12-10 주식회사 한글과컴퓨터 문서의 신뢰성을 보장하기 위한 블록체인 기반의 문서 정보 관리 장치 및 그 동작 방법
KR102204313B1 (ko) * 2019-09-17 2021-01-18 삼정데이타서비스 주식회사 블록체인 기반의 기부 관리 서버 및 방법
KR20210012781A (ko) * 2019-07-26 2021-02-03 이인형 공유 자전거 서비스 시스템 및 이의 시스템에서 블록체인 기반 보상 프로그램 구현 방법
KR102217052B1 (ko) 2020-02-26 2021-02-18 (주)소셜인프라테크 블록체인 기반 합의를 통한 전자문서 통합 관리 시스템
US10999060B2 (en) 2018-10-26 2021-05-04 Advanced New Technologies Co., Ltd. Data processing method and apparatus
KR20210062906A (ko) 2019-11-22 2021-06-01 주식회사 티맥스비아이 블록체인 네트워크에서 데이터를 관리하기 위한 기법
KR102267560B1 (ko) * 2020-11-13 2021-06-21 주식회사 케이사인 블록 체인에 저장되는 데이터 크기를 축소할 수 있는 데이터의 변경 이력 관리 방법
CN113227992A (zh) * 2019-11-27 2021-08-06 天阔株式会社 管理服务器、文档文件管理系统、文档文件管理方法及文档文件管理程序
KR20210114763A (ko) 2020-03-11 2021-09-24 (주)소셜인프라테크 블록체인 기반 전자 합의 문서를 이용한 그룹 전산 관리 시스템
KR20210121865A (ko) * 2020-03-31 2021-10-08 주식회사 현신특허컨설팅 특허 중개 과정에서의 특허 명세서 관리용 블록체인 기반 패치 관리 장치
WO2022186506A1 (ko) * 2021-03-04 2022-09-09 주식회사 한컴코드게이트 전자 문서에 삽입되는 2차원 코드와의 연동을 통해 상기 전자 문서에 대한 저자 정보의 저장 및 조회를 가능하게 하는 블록체인 기반의 저자 정보 관리 서버 및 그 동작 방법
KR20220125129A (ko) * 2021-03-04 2022-09-14 주식회사 한컴코드게이트 전자 문서에 삽입되는 2차원 코드와의 연동을 통해 상기 전자 문서에 대한 저자 정보의 저장 및 조회를 가능하게 하는 블록체인 기반의 저자 정보 관리 서버 및 그 동작 방법
KR20230132318A (ko) 2022-03-08 2023-09-15 주식회사 네츠로 가상 화폐 지불을 통한 전자 문서 관리 장치 및 방법

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20140140280A (ko) * 2013-05-29 2014-12-09 허윤 전자문서 검증 시스템 및 방법
KR101637868B1 (ko) * 2016-02-22 2016-07-08 주식회사 코인플러그 블록체인을 기반으로 하는 금융기관 제증명서류 위변조 검증시스템 및 방법

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20140140280A (ko) * 2013-05-29 2014-12-09 허윤 전자문서 검증 시스템 및 방법
KR101637868B1 (ko) * 2016-02-22 2016-07-08 주식회사 코인플러그 블록체인을 기반으로 하는 금융기관 제증명서류 위변조 검증시스템 및 방법

Cited By (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11626972B2 (en) 2018-10-26 2023-04-11 Advanced New Technologies Co., Ltd. Data processing method and apparatus
US10999060B2 (en) 2018-10-26 2021-05-04 Advanced New Technologies Co., Ltd. Data processing method and apparatus
KR20200114434A (ko) * 2019-03-28 2020-10-07 한국정보화기술 주식회사 본인정보 판매대금 정산 방법
KR102227442B1 (ko) * 2019-03-28 2021-03-15 한국정보화기술 주식회사 본인정보 판매대금 정산 방법
KR102038088B1 (ko) 2019-04-03 2019-11-26 주식회사 한국정보보호경영연구소 디지털 인감을 제공하는 블록체인 기반의 전자문서 관리 시스템
WO2020246705A1 (ko) * 2019-06-04 2020-12-10 주식회사 한글과컴퓨터 블록체인을 기반으로 문서 정보의 관리를 가능하게 하는 문서 정보 관리 장치 및 그 동작 방법
WO2020246706A1 (ko) * 2019-06-04 2020-12-10 주식회사 한글과컴퓨터 문서의 신뢰성을 보장하기 위한 블록체인 기반의 문서 정보 관리 장치 및 그 동작 방법
KR20210012781A (ko) * 2019-07-26 2021-02-03 이인형 공유 자전거 서비스 시스템 및 이의 시스템에서 블록체인 기반 보상 프로그램 구현 방법
KR102282796B1 (ko) * 2019-07-26 2021-07-27 이인형 공유 자전거 서비스 시스템 및 이의 시스템에서 블록체인 기반 보상 프로그램 구현 방법
US10602202B1 (en) 2019-07-30 2020-03-24 Capital One Services, Llc System and techniques for digital data lineage verification
KR102204313B1 (ko) * 2019-09-17 2021-01-18 삼정데이타서비스 주식회사 블록체인 기반의 기부 관리 서버 및 방법
KR20210080325A (ko) 2019-11-22 2021-06-30 주식회사 티맥스비아이 블록체인 네트워크에서 데이터를 관리하기 위한 기법
KR102274656B1 (ko) 2019-11-22 2021-07-09 주식회사 티맥스엔터프라이즈 블록체인 네트워크에서 데이터를 관리하기 위한 기법
KR20210062906A (ko) 2019-11-22 2021-06-01 주식회사 티맥스비아이 블록체인 네트워크에서 데이터를 관리하기 위한 기법
CN113227992A (zh) * 2019-11-27 2021-08-06 天阔株式会社 管理服务器、文档文件管理系统、文档文件管理方法及文档文件管理程序
KR102217052B1 (ko) 2020-02-26 2021-02-18 (주)소셜인프라테크 블록체인 기반 합의를 통한 전자문서 통합 관리 시스템
KR20210114763A (ko) 2020-03-11 2021-09-24 (주)소셜인프라테크 블록체인 기반 전자 합의 문서를 이용한 그룹 전산 관리 시스템
KR20210121865A (ko) * 2020-03-31 2021-10-08 주식회사 현신특허컨설팅 특허 중개 과정에서의 특허 명세서 관리용 블록체인 기반 패치 관리 장치
KR102406242B1 (ko) * 2020-03-31 2022-06-10 주식회사 현신특허컨설팅 특허 중개 과정에서의 특허 명세서 관리용 블록체인 기반 패치 관리 장치
KR102267560B1 (ko) * 2020-11-13 2021-06-21 주식회사 케이사인 블록 체인에 저장되는 데이터 크기를 축소할 수 있는 데이터의 변경 이력 관리 방법
WO2022186506A1 (ko) * 2021-03-04 2022-09-09 주식회사 한컴코드게이트 전자 문서에 삽입되는 2차원 코드와의 연동을 통해 상기 전자 문서에 대한 저자 정보의 저장 및 조회를 가능하게 하는 블록체인 기반의 저자 정보 관리 서버 및 그 동작 방법
KR20220125129A (ko) * 2021-03-04 2022-09-14 주식회사 한컴코드게이트 전자 문서에 삽입되는 2차원 코드와의 연동을 통해 상기 전자 문서에 대한 저자 정보의 저장 및 조회를 가능하게 하는 블록체인 기반의 저자 정보 관리 서버 및 그 동작 방법
KR102574293B1 (ko) * 2021-03-04 2023-09-06 주식회사 한컴위드 전자 문서에 삽입되는 2차원 코드와의 연동을 통해 상기 전자 문서에 대한 저자 정보의 저장 및 조회를 가능하게 하는 블록체인 기반의 저자 정보 관리 서버 및 그 동작 방법
KR20230132318A (ko) 2022-03-08 2023-09-15 주식회사 네츠로 가상 화폐 지불을 통한 전자 문서 관리 장치 및 방법

Similar Documents

Publication Publication Date Title
KR101954268B1 (ko) 블록체인 기반의 문서 관리 방법 및 이를 이용한 문서 관리 서버
CN110495132B (zh) 用于在分布式网络节点内生成、上传和执行代码区块的系统和方法
US10846416B2 (en) Method for managing document on basis of blockchain by using UTXO-based protocol, and document management server using same
JP7141193B2 (ja) ブロックチェーン・ネットワークに対するドキュメント・アクセス
US11469886B2 (en) System or method to implement record level access on metadata driven blockchain using shared secrets and consensus on read
US11128467B2 (en) Systems and methods for digital identity management and permission controls within distributed network nodes
US11139979B2 (en) Primary and secondary blockchain device
AU2022226929B2 (en) Advanced non-fungible token blockchain architecture
EP3726412B1 (en) Selectively verifying personal data
US10476911B2 (en) Data access policies
US11941583B1 (en) Intelligent employment-based blockchain
KR102116235B1 (ko) 블록체인 네트워크를 이용하여 사용자의 아이덴티티를 관리하는 방법 및 서버, 그리고, 블록체인 네트워크 기반의 사용자 아이덴티티를 이용하여 사용자를 인증하는 방법 및 단말
US11157876B1 (en) Intelligent employment-based blockchain
CA3088147C (en) Data isolation in distributed hash chains
US11003653B2 (en) Method and system for secure digital documentation of subjects using hash chains
US20230206199A1 (en) Ownership data management system and method
KR102118935B1 (ko) 블록체인 네트워크를 이용하여 사용자의 아이덴티티를 관리하는 방법 및 서버, 그리고, 블록체인 네트워크 기반의 사용자 아이덴티티를 이용하여 사용자를 인증하는 방법 및 단말
CN115114372A (zh) 基于区块链的数据处理方法、装置、设备及可读存储介质
Saldamli et al. Identity management via blockchain
Alam et al. Utilizing hyperledger fabric based private blockchain and ipfs to secure educational certificate management
TW202334847A (zh) 用於安全且有效之資料儲存之電腦實現方法及系統
JP2024512068A (ja) ブロックチェーンで実行されるデータ・アプリケーションにおける改善されたシグネチャ検証方法及びシステム
Xu et al. An Authentication Data Structure of Provable Data Possession with Dynamic Data Operation in Cloud Computing

Legal Events

Date Code Title Description
GRNT Written decision to grant