KR101798119B1 - 주주명부를 등록하고 주식 소유권 이전을 기록하고 등록된 주주명부 파일을 검증하는 방법 및 서버 - Google Patents

주주명부를 등록하고 주식 소유권 이전을 기록하고 등록된 주주명부 파일을 검증하는 방법 및 서버 Download PDF

Info

Publication number
KR101798119B1
KR101798119B1 KR1020160021166A KR20160021166A KR101798119B1 KR 101798119 B1 KR101798119 B1 KR 101798119B1 KR 1020160021166 A KR1020160021166 A KR 1020160021166A KR 20160021166 A KR20160021166 A KR 20160021166A KR 101798119 B1 KR101798119 B1 KR 101798119B1
Authority
KR
South Korea
Prior art keywords
hash value
management server
private key
block chain
value
Prior art date
Application number
KR1020160021166A
Other languages
English (en)
Other versions
KR20170099154A (ko
Inventor
어준선
홍재우
송주한
Original Assignee
주식회사 코인플러그
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 주식회사 코인플러그 filed Critical 주식회사 코인플러그
Priority to KR1020160021166A priority Critical patent/KR101798119B1/ko
Publication of KR20170099154A publication Critical patent/KR20170099154A/ko
Application granted granted Critical
Publication of KR101798119B1 publication Critical patent/KR101798119B1/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
    • G06Q40/00Finance; Insurance; Tax strategies; Processing of corporate or income taxes
    • G06Q40/04Trading; Exchange, e.g. stocks, commodities, derivatives or currency exchange
    • G06F17/30097
    • 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
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/30Payment architectures, schemes or protocols characterised by the use of specific devices or networks
    • G06Q20/36Payment architectures, schemes or protocols characterised by the use of specific devices or networks using electronic wallets or electronic money safes
    • G06Q20/363Payment architectures, schemes or protocols characterised by the use of specific devices or networks using electronic wallets or electronic money safes with the personal data of a user
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • H04L9/0631Substitution permutation network [SPN], i.e. cipher composed of a number of stages or rounds each involving linear and nonlinear transformations, e.g. AES algorithms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • H04L9/0637Modes of operation, e.g. cipher block chaining [CBC], electronic codebook [ECB] or Galois/counter mode [GCM]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0643Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy

Landscapes

  • Engineering & Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computer Security & Cryptography (AREA)
  • Signal Processing (AREA)
  • Accounting & Taxation (AREA)
  • Finance (AREA)
  • Theoretical Computer Science (AREA)
  • General Business, Economics & Management (AREA)
  • Strategic Management (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Development Economics (AREA)
  • Economics (AREA)
  • Marketing (AREA)
  • Technology Law (AREA)
  • Computing Systems (AREA)
  • Power Engineering (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)

Abstract

본 발명의 일 태양에 따르면, 주주명부를 등록하는 방법에 있어서, (a) 서버가 주주명부 파일을 획득하거나 상기 주주명부 파일의 message digest를 획득하거나 획득하도록 지원하는 단계, (b) 소정의 조건이 만족되면, 상기 서버가, 특정 해쉬값 - 상기 특정 해쉬값은, (i) 상기 특정 회사의 private key 및 상기 서버의 private key로 서명된 상기 주주명부 파일의 해쉬값, (ii) 상기 서버의 private key로 서명된 상기 주주명부 파일의 해쉬값, (iii) 상기 특정 회사의 private key 및 상기 서버의 private key로 인코딩된 상기 message digest의 해쉬값 및 (iv) 상기 서버의 private key로 인코딩된 상기 message digest의 해쉬값 중 어느 하나임 - 및 상기 특정 해쉬값과 매칭되는 적어도 하나의 이웃 해쉬값을 연산함으로써 생성되는 대표 해쉬값 또는 상기 대표 해쉬값을 가공한 값을 데이터베이스에 등록하거나 등록하도록 지원하는 단계를 포함하는 방법이 제공된다.

Description

주주명부를 등록하고 주식 소유권 이전을 기록하고 등록된 주주명부 파일을 검증하는 방법 및 서버{METHOD AND SERVER FOR REGISTERING STOCKHOLDER'S LIST, RECORDING TRANSFER OF STOCK OWNERSHIP AND VERIFYING THE REGISTERED STOCKHOLDER'S LIST FILE}
본 발명은, 주주명부를 등록하고 주식 소유권 이전을 기록하고 등록된 주주명부 파일을 검증하는 방법 및 서버에 관한 것으로, 좀더 상세하게는, (A) 주주명부 파일을 획득하거나 상기 주주명부 파일의 message digest를 획득하거나 획득하도록 지원하고, 소정의 조건이 만족되면, 특정 해쉬값 - 상기 특정 해쉬값은, (i) 특정 회사의 private key 및 서버의 private key로 서명된 상기 주주명부 파일의 해쉬값, (ii) 상기 서버의 private key로 서명된 상기 주주명부 파일의 해쉬값, (iii) 상기 특정 회사의 private key 및 상기 서버의 private key로 인코딩된 상기 message digest의 해쉬값 및 (iv) 상기 서버의 private key로 인코딩된 상기 message digest의 해쉬값 중 어느 하나임 - 및 상기 특정 해쉬값과 매칭되는 적어도 하나의 이웃 해쉬값을 연산함으로써 생성되는 대표 해쉬값 또는 상기 대표 해쉬값을 가공한 값을 데이터베이스에 등록하거나 등록하도록 지원하는 “주주명부 등록 프로세스”를 수행하고, (B) 1 사용자와 제2 사용자 간에 특정 회사의 주식 소유권에 대한 이전 거래 내역이 반영된 주주명부 파일을 획득하거나 상기 주주명부 파일의 message digest를 획득하거나 획득하도록 지원하고, 소정의 조건이 만족되면, 상기 특정 해쉬값 및 상기 특정 해쉬값과 매칭되는 적어도 하나의 이웃 해쉬값을 연산함으로써 생성되는 대표 해쉬값 또는 상기 대표 해쉬값을 가공한 값을 데이터베이스에 등록하거나 등록하도록 지원하는 “주식 소유권 이전 기록 프로세스”를 수행하고, 상기 특정 해쉬값을 제1 특정 해쉬값이라 하고, 상기 대표 해쉬값을 제1 대표 해쉬값이라 할때, 상기 주주명부 파일과 관련된 검증 요청이 획득되면, 상기 검증 요청에 포함된 입력 데이터를 사용하여 생성된 제2 대표 해쉬값 또는 상기 제2 대표 해쉬값을 가공한 값이 상기 데이터베이스에 등록된 상기 제1 대표 해쉬값 또는 상기 제1 대표 해쉬값을 가공한 값과 대응되면, 상기 주주명부 파일과 관련된 검증이 이루어진 것으로 판단하거나 판단하도록 지원하는 “검증 프로세스”를 수행하는, 주주명부를 등록하고 주식 소유권 이전을 기록하고 등록된 주주명부 파일을 검증하는 방법 및 서버에 관한 것이다.
비상장 주식이란, 증권 거래소에 상장되지 않은 주식을 의미한다. 비상장 주식은 상장되어 있지 않기 때문에 거래가 장외에서 이루어지는데, 통상적으로 비상장 주식시장 또는 프리보드 시장에서 거래가 이루어지고 있다.
이처럼 종래에는 비상장 주식 거래가 온라인 네트워크를 통해서 이루어지지 않아 비상장 주식 거래에 있어서 불편함이 있었다. 이에 따라 온라인상에서 거래 내역의 변조가 불가능한 실시간 비상장 주식 거래 지원 플랫폼 또한 제공된 바가 없었다.
이에 발명자는, 가상 화폐의 블록체인에 주주명부와 주식 소유권 이전 정보를 기록하여 거래 내역의 위/변조가 불가능하고 공간적 제약이 없이 실시간으로 주주명부 등록 또는 주식 소유권 이전을 지원할 수 있는 비상장 주식 거래 지원 플랫폼을 개발하기에 이르렀다.
그런데, 이 경우 매 파일마다 OP 메시지를 생성하여 블록체인에 기록하므로 transaction 요청이 많아졌을 때, 서비스 제공의 bottle neck 현상이 발생될 수 있고, 매번 transaction fee를 지불해야 하므로 서비스 운영에 많은 비용이 들 수 있는 우려가 있다.
이에 발명자는 위/변조가 불가능하고 실시간으로 주주명부 등록 또는 주식 소유권 이전을 지원할 수 있는 장점을 살리면서도 상기와 같은 단점을 보완하여 서비스 요청이 몰릴 경우에도 빠른 서비스 속도를 보장하고 비용도 절감할 수 있는 비상장 주식 거래 지원 시스템을 개발하였다.
본 발명은 상술한 문제점들을 모두 해결하는 것을 그 목적으로 한다.
또한, 본 발명은 가상 화폐의 블록체인에 주주명부와 주식 소유권 이전 정보를 기록하여 위/변조가 불가능하고 공간적 제약이 없이 실시간으로 주주명부 등록 또는 주식 소유권 이전을 지원할 수 있는 비상장 주식 거래 지원 플랫폼을 제공하는 것을 다른 목적으로 한다.
또한, 본 발명은 위와 같은 비상장 주식 거래 지원 플랫폼을 제공함에 있어, 빠른 서비스 속도를 보장하고 transaction 비용을 절감할 수 있는 것을 또 다른 목적으로 한다.
또한, 본 발명은 모든 주주명부와 주식 소유권 이전 정보를 블록체인에 올리는 대신에 이를 이용하여 머클 트리를 구성하여 상기 구성된 머클 트리의 루트값만을 블록체인에 등록함으로써 서비스의 속도를 향상시키고 transaction 비용을 절감할 수 있는 것을 또 다른 목적으로 한다.
또한, 본 발명은, 파일에 대한 검증 요청시 상기와 같이 생성된 머클 트리를 이용하여 검증을 수행함으로써 데이터베이스의 integrity를 좀더 보장할 수 있는 것을 또 다른 목적으로 한다.
상기 목적을 달성하기 위한 본 발명의 대표적인 구성은 다음과 같다.
본 발명의 일 태양에 따르면, 주주명부를 등록하는 방법에 있어서, (a) 서버가 주주명부 파일을 획득하거나 상기 주주명부 파일의 message digest를 획득하거나 획득하도록 지원하는 단계, (b) 소정의 조건이 만족되면, 상기 서버가, 특정 해쉬값 - 상기 특정 해쉬값은, (i) 상기 특정 회사의 private key 및 상기 서버의 private key로 서명된 상기 주주명부 파일의 해쉬값, (ii) 상기 서버의 private key로 서명된 상기 주주명부 파일의 해쉬값, (iii) 상기 특정 회사의 private key 및 상기 서버의 private key로 인코딩된 상기 message digest의 해쉬값 및 (iv) 상기 서버의 private key로 인코딩된 상기 message digest의 해쉬값 중 어느 하나임 - 및 상기 특정 해쉬값과 매칭되는 적어도 하나의 이웃 해쉬값을 연산함으로써 생성되는 대표 해쉬값 또는 상기 대표 해쉬값을 가공한 값을 데이터베이스에 등록하거나 등록하도록 지원하는 단계를 포함하는 방법이 제공된다.
본 발명의 다른 태양에 따르면, 주식 소유권 이전을 기록하는 방법에 있어서, (a) 서버가, 제1 사용자와 제2 사용자 간에 특정 회사의 주식 소유권에 대한 이전 거래 내역이 반영된 주주명부 파일을 획득하거나 상기 주주명부 파일의 message digest를 획득하거나 획득하도록 지원하는 단계, (b) 소정의 조건이 만족되면, 상기 서버가, 특정 해쉬값 - 상기 특정 해쉬값은, (i) 상기 특정 회사의 private key 및 상기 서버의 private key로 서명된 상기 주주명부 파일의 해쉬값, (ii) 상기 서버의 private key로 서명된 상기 주주명부 파일의 해쉬값, (iii) 상기 특정 회사의 private key 및 상기 서버의 private key로 인코딩된 상기 message digest의 해쉬값 및 (iv) 상기 서버의 private key로 인코딩된 상기 message digest의 해쉬값 중 어느 하나임 - 및 상기 특정 해쉬값과 매칭되는 적어도 하나의 이웃 해쉬값을 연산함으로써 생성되는 대표 해쉬값 또는 상기 대표 해쉬값을 가공한 값을 데이터베이스에 등록하거나 등록하도록 지원하는 단계를 포함하는 방법이 제공된다.
본 발명의 또 다른 태양에 따르면, 등록된 주주명부 파일을 검증하는 방법에 있어서, (a) 기존에 서버가 특정 회사의 주주명부 파일을 획득하거나 상기 주주명부 파일의 message digest를 획득하여, 제1 특정 해쉬값 - 상기 제1 특정 해쉬값은, (i) 상기 특정 회사의 private key 및 상기 서버의 private key로 서명된 상기 주주명부 파일의 해쉬값, (ii) 상기 서버의 private key로 서명된 상기 주주명부 파일의 해쉬값, (iii) 상기 특정 회사의 private key 및 상기 서버의 private key로 인코딩된 상기 message digest의 해쉬값 및 (iv) 상기 서버의 private key로 인코딩된 상기 message digest의 해쉬값 중 어느 하나임 - 과 소정의 조건 하에서 매칭되는 적어도 하나의 이웃 해쉬값을 연산함으로써 생성되는 제1 대표 해쉬값 또는 상기 제1 대표 해쉬값을 가공한 값을 데이터베이스에 등록하고 있는 상태에서, 상기 서버가, 상기 주주명부 파일과 관련된 검증 요청을 획득하는 단계, 및 (b) 상기 검증 요청에 포함된 입력 데이터를 사용하여 생성된 제2 대표 해쉬값 또는 상기 제2 대표 해쉬값을 가공한 값이 상기 데이터베이스에 등록된 상기 제1 대표 해쉬값 또는 상기 제1 대표 해쉬값을 가공한 값과 대응되면, 상기 서버가, 상기 주주명부 파일과 관련된 검증이 이루어진 것으로 판단하거나 판단하도록 지원하는 단계를 포함하는 방법이 제공된다.
본 발명의 또 다른 태양에 따르면, 주주명부를 등록하는 서버에 있어서, 서버가 주주명부 파일을 획득하거나 상기 주주명부 파일의 message digest를 획득하는 통신부, 및 상기 주주명부 파일이 획득되거나 상기 주주명부 파일의 message digest가 획득되고 소정의 조건이 만족되면, 특정 해쉬값 - 상기 특정 해쉬값은, (i) 상기 특정 회사의 private key 및 상기 서버의 private key로 서명된 상기 주주명부 파일의 해쉬값, (ii) 상기 서버의 private key로 서명된 상기 주주명부 파일의 해쉬값, (iii) 상기 특정 회사의 private key 및 상기 서버의 private key로 인코딩된 상기 message digest의 해쉬값 및 (iv) 상기 서버의 private key로 인코딩된 상기 message digest의 해쉬값 중 어느 하나임 - 및 상기 특정 해쉬값과 매칭되는 적어도 하나의 이웃 해쉬값을 연산함으로써 생성되는 대표 해쉬값 또는 상기 대표 해쉬값을 가공한 값을 데이터베이스에 등록하거나 등록하도록 지원하는 프로세서를 포함하는 서버가 제공된다.
본 발명의 또 다른 태양에 따르면, 주식 소유권 이전을 기록하는 서버에 있어서, 제1 사용자와 제2 사용자 간에 특정 회사의 주식 소유권에 대한 이전 거래 내역이 반영된 주주명부 파일을 획득하거나 상기 주주명부 파일의 message digest를 획득하는 통신부, 및 상기 주주명부 파일이 획득되거나 상기 주주명부 파일의 message digest가 획득되고 소정의 조건이 만족되면, 특정 해쉬값 - 상기 특정 해쉬값은, (i) 상기 특정 회사의 private key 및 상기 서버의 private key로 서명된 상기 주주명부 파일의 해쉬값, (ii) 상기 서버의 private key로 서명된 상기 주주명부 파일의 해쉬값, (iii) 상기 특정 회사의 private key 및 상기 서버의 private key로 인코딩된 상기 message digest의 해쉬값 및 (iv) 상기 서버의 private key로 인코딩된 상기 message digest의 해쉬값 중 어느 하나임 - 및 상기 특정 해쉬값과 매칭되는 적어도 하나의 이웃 해쉬값을 연산함으로써 생성되는 대표 해쉬값 또는 상기 대표 해쉬값을 가공한 값을 데이터베이스에 등록하거나 등록하도록 지원하는 프로세서를 포함하는 서버가 제공된다.
본 발명의 또 다른 태양에 따르면, 등록된 주주명부 파일을 검증하는 서버에 있어서, 등록된 주주명부 파일과 관련된 검증 요청을 획득하는 통신부, 및 기존에 상기 서버가 특정 회사의 주주명부 파일을 획득하거나 상기 주주명부 파일의 message digest를 획득하여, 제1 특정 해쉬값 - 상기 제1 특정 해쉬값은, (i) 상기 특정 회사의 private key 및 상기 서버의 private key로 서명된 상기 주주명부 파일의 해쉬값, (ii) 상기 서버의 private key로 서명된 상기 주주명부 파일의 해쉬값, (iii) 상기 특정 회사의 private key 및 상기 서버의 private key로 인코딩된 상기 message digest의 해쉬값 및 (iv) 상기 서버의 private key로 인코딩된 상기 message digest의 해쉬값 중 어느 하나임 - 과 소정의 조건 하에서 매칭되는 적어도 하나의 이웃 해쉬값을 연산함으로써 생성되는 제1 대표 해쉬값 또는 상기 제1 대표 해쉬값을 가공한 값을 데이터베이스에 등록하고 있는 상태에서, 상기 주주명부 파일과 관련된 검증 요청이 획득하고, 상기 검증 요청에 포함된 입력 데이터를 사용하여 생성된 제2 대표 해쉬값 또는 상기 제2 대표 해쉬값을 가공한 값이 상기 데이터베이스에 등록된 상기 제1 대표 해쉬값 또는 상기 제1 대표 해쉬값을 가공한 값과 대응되면, 상기 주주명부 파일과 관련된 검증이 이루어진 것으로 판단하거나 판단하도록 지원하는 프로세서를 포함하는 서버가 제공된다.
본 발명에 의하면, 다음과 같은 효과가 있다.
본 발명은 가상 화폐의 블록체인에 주주명부와 주식 소유권 이전 정보를 기록하여 위/변조가 불가능하고 공간적 제약이 없이 실시간으로 주주명부 등록 또는 주식 소유권 이전을 지원할 수 있는 효과가 있다.
또한, 본 발명은 위와 같은 비상장 주식 거래 지원 플랫폼을 제공함에 있어, 빠른 서비스 속도를 보장하고 transaction 비용을 절감할 수 있는 효과가 있다.
또한, 본 발명은 모든 주주명부와 주식 소유권 이전 정보를 블록체인에 올리는 대신에 이를 이용하여 머클 트리를 구성하여 상기 구성된 머클 트리의 루트값만을 블록체인에 등록함으로써 서비스의 속도를 향상시키고 transaction 비용을 절감할 수 있는 효과가 있다.
또한, 본 발명은, 파일에 대한 검증 요청시 상기와 같이 생성된 머클 트리를 이용하여 검증을 수행함으로써 데이터베이스의 integrity를 좀더 보장할 수 있는 효과가 있다.
도 1은 본 발명의 일 실시예에 따른 주주명부를 등록하고 주식 소유권 이전을 기록하는 서버의 구성을 도시한 블록도이다.
도 2는 본 발명의 일 실시예에 따라 주주명부를 등록하는 과정을 도시한 시퀀스 다이어그램이다.
도 3 및 4는 본 발명의 일 실시예에 따라 생성된 머클 트리의 예를 도시한 도면이다.
도 5는 본 발명의 일 실시예에 따라 주식 소유권 이전을 기록하는 과정을 도시한 시퀀스 다이어그램이다.
후술하는 본 발명에 대한 상세한 설명은, 본 발명이 실시될 수 있는 특정 실시예를 예시로서 도시하는 첨부 도면을 참조한다. 이들 실시예는 당업자가 본 발명을 실시할 수 있기에 충분하도록 상세히 설명된다. 본 발명의 다양한 실시예는 서로 다르지만 상호 배타적일 필요는 없음이 이해되어야 한다. 예를 들어, 여기에 기재되어 있는 특정 형상, 구조 및 특성은 일 실시예에 관련하여 본 발명의 정신 및 범위를 벗어나지 않으면서 다른 실시예로 구현될 수 있다. 또한, 각각의 개시된 실시예 내의 개별 구성요소의 위치 또는 배치는 본 발명의 정신 및 범위를 벗어나지 않으면서 변경될 수 있음이 이해되어야 한다. 따라서, 후술하는 상세한 설명은 한정적인 의미로서 취하려는 것이 아니며, 본 발명의 범위는, 적절하게 설명된다면, 그 청구항들이 주장하는 것과 균등한 모든 범위와 더불어 첨부된 청구항에 의해서만 한정된다. 도면에서 유사한 참조부호는 여러 측면에 걸쳐서 동일하거나 유사한 기능을 지칭한다.
도 1은 본 발명의 일 실시예에 따른 주주명부를 등록하고 주식 소유권 이전을 기록하는 서버의 구성을 도시한 블록도이고, 도 2는 본 발명의 일 실시예에 따라 주주명부를 등록하는 과정을 도시한 시퀀스 다이어그램이다.
각 실시예에 대한 설명에 앞서 본 명세서에서 사용되는 표현식을 다음과 같이 정의한다. ':' 의 왼쪽은 표현식을 나타내며 오른쪽은 표현식의 정의를 나타낸다.
<표현식 정의>
PrivX : Private key of X
PubX : Public key of X
AESX : AES secret key of X
SigPrivX (Y): Output of ECDSA or RSA signature of Y using PrivX
VerPubX (Y): Output result of SigPrivX (Y) verification using PubX (True or False)
Enc PrivX (Y): Output of ECC or RSA encryption of Y using PrivX
Dec PubX (Y): Output of ECC or RSA decryption of Y using PubX
Enc AESX (Y): Output of AES encryption of Y using AESX
Dec AESX (Y): Output of AES decryption of Y using AESX
Hash(Y): triple sha256 (Hash value of Y)
SigECC256 PrivX (Y): ECC256 Signature of Y using PrivX
VerECC256 PubX (Y): ECC256 signature verification of Y using PubX
우선, 주주명부를 등록하는 과정을 도 1 및 2를 참조로 하여 설명한다. 주주명부 등록은 최초 주식 발행 및 등록 시에도 이루어지나 이 밖에도 증자, 감자 시에나 주식 분할, 병합 시에도 이루어질 수 있다.
도 1을 참조로 하면, 본 발명의 일 실시예에 따른 서버(100)는 통신부(110), 프로세서(120)를 포함한다. 각 실시예에서 설명되는 서버는 상이하게 구성될 수도 있을 것이나, 설명의 편의상 동일한 서버(100)를 통해 서비스가 이루어지는 것으로 설명한다.
통신부(110)는 주주명부 파일(File)을 획득하거나 상기 주주명부 파일의 message digest를 획득하는 구성이다. 도 2에 도시된 것처럼 주주명부 파일 등록 요청과 함께 주주명부 파일(File)이 획득되는 경우 특정 회사(300)의 public key(PubA)가 획득될 수 있다. 통신부(110)는, 이에 대한 응답을 할 수 있는데(S220), 요청(request)과 대응되는 응답(response)는 하나의 TCP 세션 동안 이루어질 수 있다.
프로세서(120)는, 상기 주주명부 파일이 획득되면, hash 함수를 사용하여 상기 주주명부 파일의 message digest(MD=Hash(File))를 생성하거나 생성하도록 지원할 수 있다(S215). 여기서 hash 함수의 종류는 한정되지 않는다. 예를 들어, hash 함수는 triple sha256일 수 있다. 또한, 본 명세서에서 hash 함수는 일반적으로는 원본 파일을 변형시키기 위한 함수를 의미하지만, 극단적인 경우로서, 특정 파일에 대해 아무런 처리를 하지 않고 단순히 저장하는 함수를 포함할 수도 있다. 이 경우, hash 함수가 적용되어 생성된 message digest는 특정 파일과 동일할 수도 있을 것이다.
상기 S220 단계에서 상기 주주명부 파일 등록 요청에 대한 응답으로 상기 생성된 message digest가 주주명부 파일 등록 요청을 한 특정 회사(300)에게 전달될 수 있다. 상기 특정 회사(300)가 단말(미도시)을 통해 주주명부 파일에 대한 등록 요청을 한 경우라면, 상기 단말로 상기 생성된 message digest가 전송될 수 있다.
다음으로 통신부(110)는 상기 특정 회사(300)로부터 상기 특정 회사(300)의 private key(PrivA)로 서명된 message digest(SigPrivA(MD))를 획득할 수 있다(S225). 이 경우, S220 단계의 응답 후 TCP 세션이 끊어질 수 있으므로 특정 회사(300)로부터 message digest와 특정 회사(300)의 public key(PubA)도 수신될 수 있다.
또한, 프로세서(120)는 특정 회사(300)의 private key로 서명된 message digest가 획득되고, 상기 특정 회사(300)의 private key로 서명된 message digest에 대해 상기 특정 회사(300)의 public key를 사용하여 확인한 결과가 참인지 판단할 수 있다(S230).
상기 확인 결과가 참이면(S230-2), 프로세서(120)는 (i) 상기 특정 회사(300)의 private key 및 서버(100)의 private key로 서명된 주주명부 파일의 해쉬값 또는 (ii) 상기 특정 회사(300)의 private key 및 상기 서버(100)의 private key로 인코딩된 상기 message digest의 해쉬값을 생성하거나 생성하도록 지원할 수 있다(S240). 그리고, 이렇게 생성된 해쉬값을 데이터베이스(200)에 등록하거나 등록하도록 지원할 수 있다(S250). 이처럼 해쉬값의 형태로 데이터베이스(200)에 등록하는 이유는 데이터베이스(200)의 저장 용량 제한 등으로 인해 데이터의 사이즈를 줄이기 위함이다. 여기서, 데이터베이스(200)는 가상 화폐의 블록체인일 수 있다. 예를 들어, 비트코인 블록체인일 수 있다.
참고로, 본 명세서에서는 private key나 public key를 이용하여 File을 서명하는 표현식(SigPriv(File), SigPub(File))을 기준으로 설명을 하나 이는 private key나 public key를 이용하여 MD를 인코딩하는 표현식(EncPriv(MD), EncPub(MD))로 대체될 수 있다.
계속해서 설명을 하면, 상기 확인 결과가 참이면, 프로세서(120)는, (i) 상기 특정 회사(300)의 private key, 상기 서버(100)의 private key 순으로 서명된 주주명부 파일의 해쉬값 또는 (ii) 상기 특정 회사(300)의 private key, 상기 서버(100)의 private key 순으로 인코딩된 상기 message digest의 해쉬값을 상기 데이터베이스(200)에 등록하거나 등록하도록 지원할 수 있다. 즉, 특정 회사(300)가 먼저 자신의 private key로 서명을 하고 서버(100)의 private key로 서명을 한 후 그 해쉬값을 데이터베이스(200)에 등록할 수 있는 것이다. 그러나, 서명의 순서는 이와 다르게 구현될 수도 있다. 특히, 특정 회사(300)와 서버(100) 간의 세션이 유지되는 경우라면 서버(100)가 먼저 서명을 하고 특정 회사(300)가 다음에 서명을 하도록 구현될 수도 있을 것이다.
상기 해쉬값이 데이터베이스(200)에 등록되는 경우, 통신부(110)는 데이터베이스(200)로부터 상기 등록된 해쉬값의 상기 데이터베이스(200) 상의 위치 정보를 나타내는 transaction ID(TxID)를 획득할 수 있다(S255).
한편, 전술한 확인 결과가 거짓이면(S230-1), 프로세서(120)는 상기 특정 회사(300)에 주주명부 등록 실패를 통지할 수 있다(S260).
또한, 프로세서(120)는 상기 확인 결과가 참이면, 상기 주주명부 파일을 저장하거나 저장하도록 지원할 수 있다(S245). 이때 주주명부 파일은 AES(Advanced Encryption Standard)와 같은 대칭키 암호 알고리즘으로 암호화될 수 있다. 이 경우 비밀키는 특정 회사(300)의 public key로부터 가공된 특정한 비밀키일 수 있으나 이에 한정되는 것은 아니다. 또한, 프로세서(120)는 상기 특정 회사(300)의 private key, 상기 서버(100)의 private key를 이용한 서명 정보를 주주명부 파일에 attach 시켜 저장할 수도 있다.
프로세서(120)는 특정 회사(300)의 public key(PubA), 상기 주주명부 파일의 message digest(MD), 상기 특정 회사(300)의 private key로 서명된 주주명부 파일(SigPrivA(File)), 상기 획득된 transaction ID(TxID), 주주명부 파일(EncAESC(File))을 저장하거나 저장하도록 지원할 수 있다. 또한, 이 밖에도 상기 특정 회사(300)의 private key, 상기 서버(100)의 private key 순으로 서명된 주주명부 파일(SigPrivC(SigPrivA(File))) 및 이것의 해쉬값 중 적어도 일부를 더 저장하거나 저장하도록 지원할 수도 있다.
위와 같이 주주명부가 데이터베이스(200)에 등록되면, 통신부(110)는 특정 회사(300)에게 주주명부 등록이 성공했음을 나타내는 응답을 전달할 수 있다(S260).
그런데, 전술한 실시예의 경우, 매 파일마다 OP 메시지를 생성하여 블록체인에 기록하므로 transaction 요청이 많아졌을 때, 서비스 제공의 bottle neck 현상이 발생될 수 있고, 매번 transaction fee를 지불해야 하므로 서비스 운영에 많은 비용이 들 수 있는 단점이 있다.
이하에서는 위/변조가 불가능하고 실시간으로 주주명부 등록 또는 주식 소유권 이전을 지원할 수 있는 장점을 살리면서도 상기와 같은 단점을 보완하여 서비스 요청이 몰릴 경우에도 빠른 서비스 속도를 보장하고 비용도 절감할 수 있는 비상장 주식 거래 지원 시스템을 설명한다. 이러한 시스템은 전술한 실시예와 달리 서버(100)에 의해 관리되는 별도의 데이터 구조를 이용한다.
전술한 프로세서(120)는, 상기 주주명부 파일이 획득되거나 상기 주주명부 파일의 message digest가 획득되고 소정의 조건이 만족되면, 특정 해쉬값 - 상기 특정 해쉬값은, (a) 상기 특정 회사(300)의 private key 및 상기 서버(100)의 private key로 서명된 상기 주주명부 파일의 해쉬값, (b) 상기 서버(100)의 private key로 서명된 상기 주주명부 파일의 해쉬값, (c) 상기 특정 회사(300)의 private key 및 상기 서버(100)의 private key로 인코딩된 상기 message digest의 해쉬값 및 (d) 상기 서버(100)의 private key로 인코딩된 상기 message digest의 해쉬값 중 어느 하나임 - 및 상기 특정 해쉬값과 매칭되는 적어도 하나의 이웃 해쉬값을 연산함으로써 생성되는 대표 해쉬값 또는 상기 대표 해쉬값을 가공한 값을 데이터베이스에 등록하거나 등록하도록 지원할 수 있다.
즉, 프로세서(120)는 전술한 실시예의 S250 단계와 같이 (i) 상기 특정 회사(300)의 private key(PrivA)와 상기 서버(100)의 private key(PrivC)로 서명된 주주명부 파일에 대한 해쉬값 또는 (ii) 상기 특정 회사(300)의 private key 및 상기 서버(100)의 private key로 인코딩된 상기 message digest의 해쉬값을 데이터베이스(200)에 등록하는 대신, 소정의 조건이 만족되면, 상기 (a) 내지 (d) 중 어느 하나와 적어도 하나의 이웃 해쉬값을 연산하여 대표 해쉬값을 생성하거나 생성하도록 지원하고, 생성된 대표 해쉬값 또는 이를 가공한 값을 데이터베이스에 등록하거나 등록하도록 지원할 수 있다. 여기서, 데이터베이스는 전술한 데이터베이스(200)와 같이 상기 서버(100)가 관리하지 않는 데이터베이스(예를 들어, 가상 화폐의 블록체인)일 수도 있으나 이와 달리 상기 서버(100)에 의해 관리되는 데이터베이스일 수도 있다. 본 명세서에서 서버(100)가 관리하지 않는 데이터베이스(200)를 중심으로 설명을 하나, 본 발명의 기술 사상은 서버(100)에 의해 관리되는 데이터베이스의 경우도 적용될 수 있다.
특정 해쉬값과 적어도 하나의 이웃 해쉬값의 연산은 다양한 함수에 의해 수행될 수 있다. 특정 해쉬값을 input 이라고 나타내고, 적어도 하나의 이웃 해쉬값을 x1, x2, …, xn이라고 나타낼 때, 대표 해쉬값 t는 다음 수학식과 같이 나타낼 수 있다.
<수학식>
t = hash(function(input, x1, x2, …, xn))
이때 서버(100)는 상기 특정 해쉬값과 상기 적어도 하나의 이웃 해쉬값을 소정의 데이터 구조로 저장하여 관리할 수 있다. 여기서, 데이터 구조는 다양할 수 있는데, 일 예로 머클 트리(merkle tree) 구조가 될 수도 있다. 이 경우, 상기 특정 해쉬값과 적어도 하나의 이웃 해쉬값의 연산은 머클 트리(merkle tree)를 통해 이루어질 수 있다.
즉, 프로세서(120)는 상기 특정 해쉬값이 특정 리프 노드에 할당된 머클 트리(merkle tree)를 생성하거나 생성하도록 지원할 수 있고, 상기 소정의 조건이 만족되면, 상기 특정 해쉬값과 매칭되는 적어도 하나의 다른 리프 노드에 할당된 해쉬값을 연산하여 생성되는 상기 대표 해쉬값 또는 상기 대표 해쉬값을 가공한 값을 데이터베이스(200)에 등록하거나 등록하도록 지원할 수 있다.
좀더 구체적으로 설명하면, (x1) 프로세서(120)는, (i) 상기 특정 해쉬값과 (ii) 상기 특정 해쉬값이 할당된 노드의 형제 노드에 할당된 해쉬값을 연산하거나 연산하도록 지원하고, 상기 연산값에 대한 해쉬값을 상기 노드의 부모 노드에 할당하거나 할당하도록 지원할 수 있다. (x2) 만일, 상기 부모 노드가 상기 머클 트리의 루트 노드이면, 상기 부모 노드에 할당된 해쉬값이 상기 대표 해쉬값이 된다. (x3) 반면, 상기 부모 노드가 상기 머클 트리의 루트 노드가 아니면, 프로세서(120)는, 상기 부모 노드에 할당된 해쉬값을 상기 특정 해쉬값으로 하여 상기 (x1) 내지 (x3)를 반복하여 수행한다.
그리고, 프로세서(120)는 최종적으로 머클 트리의 루트 노드에 할당된 해쉬값을 대표 해쉬값으로서 데이터베이스(200)에 등록하거나 등록하도록 지원한다. 이때, 대표 해쉬값을 가공한 값이 등록될 수도 있다. 예를 들어, 대표 해쉬값에 hex 연산이 수행된 결과값이 등록될 수 있다.
한편, 상기 서버(100)가 상기 특정 해쉬값과 상기 적어도 하나의 이웃 해쉬값을 소정의 제1 데이터 구조로 저장하고, 이후 상기 제1 데이터 구조와 동일한 형태의 제2 데이터구조를 저장하여 관리하는 경우, 상기 제1 데이터 구조와 상기 제2 데이터 구조는 체인 형태로 연결될 수 있다.
특히, 상술한 예에서와 같이 상기 제1 데이터 구조 및 상기 제2 데이터 구조가 머클 트리인 경우, 상기 제1 데이터 구조의 루트값 또는 상기 루트값의 해쉬값이 상기 제2 데이터 구조의 첫번째 리프 노드에 할당될 수 있다.
또한, 제2 데이터 구조를 생성할 때는 제1 데이터 구조에 대한 검증이 이루어짐으로써 데이터 integrity가 좀더 보장될 수 있다. 제2 데이터 구조의 검증에 대해서는 후술하기로 한다.
또한, 체인 형태로 연결된 적어도 하나의 머클 트리 중 첫번째 머클 트리의 경우, 상기 첫번째 머클 트리의 첫번째 리프 노드에는 텍스트, 숫자, 또는 기호로 이루어진 소정의 메시지 데이터의 해쉬값 또는 이를 가공한 값이 할당될 수 있다. 예를 들어, 머클 트리 생성시 서버(100)에 의해 최초로 부여된 입력 메시지의 해쉬값이 할당될 수 있다.
도 3 및 4는 본 발명의 일 실시예에 따라 생성된 머클 트리의 예를 도시한 도면이다.
도 3에서는 리프 노드의 개수가 4(22)개인 머클 트리가 도시된다. 도시된 머클 트리는 첫번째 머클 트리이기 때문에(tree_id=0), 첫번째 리프 노드인 h1 노드에는 소정의 메시지 데이터 “Coinplug 2016-01-01”의 해쉬값(triplesha256digest(coinplug_unique_message))이 할당되었음을 알 수 있다. 주주명부 파일에 대한 등록 요청이 있는 경우, 프로세서(120)는 현재 구성 중인 머클 트리의 가장 마지막 리프 노드의 다음 리프 노드를 생성하여 특정 해쉬값 또는 특정 해쉬값을 가공한 값을 할당하거나 할당하도록 지원한다. 예를 들어, 도 3의 머클 트리에서 이전 단계에서 두번째 리프 노드인 h1 노드까지 값 할당이 완료된 경우, 다음 리프 노드인 h2 노드를 생성하여 특정 해쉬값 또는 특정 해쉬값을 가공한 값(triplesha256digest(input2))을 할당할 수 있다. 또한, 프로세서(120)는 (i) 특정 해쉬값과 (ii) 상기 특정 해쉬값이 할당된 세번째 리프 노드인 h2 노드의 형제 노드인 h3 노드에 할당된 해쉬값을 연산하거나 연산하도록 지원할 수 있다. 상기 연산값에 대한 해쉬값은 h2 노드와 h3 노드의 부모 노드(h23 노드)에 할당된다. 부모 노드(h23 노드)가 머클 트리의 루트 노드가 아니므로 프로세서(120)는 상기 h23 노드에 할당된 해쉬값을 상기 특정 해쉬값으로 하여 상기 과정을 반복하여 수행할 수 있다. 즉, h23 노드에 할당된 해쉬값을 특정 해쉬값으로 하고, h23 노드에 할당된 해쉬값과 h01 노드에 할당된 해쉬값을 연산하여 h23 노드와 h01 노드의 부모 노드(h0123 노드)에 할당할 수 있다. 이때, h0123 노드가 머클 트리의 루트 노드이므로 프로세서(120)는, h0123 노드에 할당된 해쉬값을 가공한 값(hex(h{node_index}))을 데이터베이스(200)에 등록하거나 등록하도록 지원할 수 있다.
한편, 전술한 소정의 조건이란, (i) 소정의 개수만큼의 주주명부 파일이 획득되거나 소정의 개수만큼의 message digest가 생성되는 조건, (ii) 소정 시간이 경과하는 조건, (iii) 블록 체인에서 블록이 생성되는 조건, (iv) 서비스 특성에 대한 조건 중 적어도 하나를 포함할 수 있다.
예를 들어, 복수의 주주명부 등록 요청이 이루어져 message digest가 머클 트리의 리프 노드 수만큼 획득되면, 각각의 message digest에 대하여 각 사용자의 private key 및 서버(100)의 private key로 인코딩한 결과에 대한 해쉬값이 전술한 머클 트리의 입력값(리프 노드에 할당된 값)이 될 수 있다.
또한, 프로세서(120)는 소정 시간 단위로 전술한 머클 트리의 루트값을 생성할 수 있다(상기 (ii) 조건). 이 경우 프로세서(120)는 소정의 시간이 경과되면 그때까지의 입력값을 이용하여 머클 트리를 생성하고 머클 트리의 루트값을 데이터베이스(200)에 등록하거나 등록하도록 지원할 수 있다.
그런데, 이 경우에는 소정 시간이 경과하였음에도 머클 트리의 특정 해쉬값이 할당된 노드의 형제 노드에 값이 할당되지 않을 수 있다. 이처럼 소정의 조건이 만족되었음에도 상기 특정 해쉬값이 할당된 노드의 형제 노드에 해쉬값이 할당되어 있지 않은 경우, 프로세서(120)는, 상기 형제 노드에 소정의 해쉬값을 할당하거나 할당하도록 지원하여 전술한 방식으로 머클 트리의 루트값이 산출되도록 할 수 있다. 예를 들어, 프로세서(120)는 상기 특정 해쉬값을 복제하여 상기 형제 노드에 할당하거나 할당하도록 지원할 수 있다.
상기 서비스 특성이란, 주주명부 등록 요청을 한 사용자(회사)가 지급한 비용 정보, 주주명부 등록이 이루어지는 시간대 정보, 주주명부 등록 서비스가 이루어지는 지역 정보, 주주명부 등록 요청을 한 회사 타입 정보 중 적어도 일부가 될 수 있다. 다만, 여기서 기재한 것에 한정할 것은 아니고, 통상적으로 인정되는 차등적 서비스가 제공될 수 있는 다양한 조건 정보를 포함한다.
한편, 새로운 머클 트리 생성이 시작되고, 주주명부 파일이나 message digest 획득이 없는 상태에서 상기 소정의 조건이 만족되면, 상기 프로세서(120)는, 소정의 메시지 데이터가 첫번째 리프 노드와 두번째 리프 노드에 할당된 머클 트리를 생성하거나 생성하도록 지원하고, 상기 머클 트리의 루트값 또는 이를 가공한 값을 데이터베이스(200)에 등록하거나 등록하도록 지원할 수 있다. 이 경우에는 리프 노드 2개짜리 머클 트리가 생성될 수 있는 것이다.
한편, 전술한 것처럼 서버(100)가 상기 특정 해쉬값과 상기 적어도 하나의 이웃 해쉬값을 소정의 제1 데이터 구조로 저장하고, 이후 상기 제1 데이터 구조와 동일한 형태의 제2 데이터구조를 저장하여 관리하는 경우, 상기 제1 데이터 구조와 상기 제2 데이터 구조는 체인 형태로 연결될 수 있다. 특히, 상기 제1 데이터 구조 및 상기 제2 데이터 구조가 머클 트리인 경우, 상기 제1 데이터 구조의 루트값 또는 상기 루트값의 해쉬값이 상기 제2 데이터 구조의 첫번째 리프 노드에 할당될 수 있다.
도 4는 본 발명의 일 실시예에 따라 상기 제2 데이터 구조로서 생성된 머클 트리를 도시한 도면이다.
도 4를 참조하면, 도 3의 머클 트리(tree_id=0)의 루트값(hex(h0123))이 새로운 머클 트리의 첫번째 리프 노드(h4 노드)에 할당되었음을 알 수 있다(triplesha256digest(input4)). 본 발명은 이와 같이 트랜잭션 발생시 생성되는 복수의 데이터 구조를 연결함으로써 중간에 데이터가 변조가 발생되는 경우라도 쉽게 트래킹이 가능하여 데이터 integrity를 향상시키는 장점을 가진다.
다음으로, 전술한 데이터 구조를 이용하여 등록된 주주명부 파일에 대해 검증을 수행하는 과정을 설명한다.
기존에 서버(100)가 특정 회사(300)의 주주명부 파일을 획득하거나 상기 주주명부 파일의 message digest를 획득하여, 제1 특정 해쉬값(설명의 편의를 위하여 전술한 특정 해쉬값을 여기서는 제1 특정 해쉬값이라 지칭한다.) - 상기 제1 특정 해쉬값은, (i) 상기 특정 회사(300)의 private key 및 상기 서버(100)의 private key로 서명된 상기 주주명부 파일의 해쉬값, (ii) 상기 서버(100)의 private key로 서명된 상기 주주명부 파일의 해쉬값, (iii) 상기 특정 회사(300)의 private key 및 상기 서버(100)의 private key로 인코딩된 상기 message digest의 해쉬값 및 (iv) 상기 서버(100)의 private key로 인코딩된 상기 message digest의 해쉬값 중 어느 하나임 - 과 소정의 조건 하에서 매칭되는 적어도 하나의 이웃 해쉬값을 연산함으로써 생성되는 제1 대표 해쉬값(설명의 편의를 위하여 전술한 대표 해쉬값을 여기서는 제1 대표 해쉬값이라 지칭한다.) 또는 상기 제1 대표 해쉬값을 가공한 값을 데이터베이스(200)에 등록하고 있는 상태에서, 통신부(110)를 통해 상기 주주명부 파일과 관련된 검증 요청이 획득되면, 상기 검증 요청에 포함된 입력 데이터를 사용하여 생성된 제2 대표 해쉬값 또는 상기 제2 대표 해쉬값을 가공한 값이 상기 데이터베이스(200)에 등록된 상기 제1 대표 해쉬값 또는 상기 제1 대표 해쉬값을 가공한 값과 대응되면, 프로세서(120)는 상기 주주명부 파일과 관련된 검증이 이루어진 것으로 판단하거나 판단하도록 지원할 수 있다.
여기서, 상기 제2 대표 해쉬값은, 제2 특정 해쉬값 - 상기 제2 특정 해쉬값은, 상기 검증 요청에 포함된 입력 데이터에 관한 (i) 주주명부 파일(A)에 대하여 상기 특정 회사(300)의 private key 및 상기 서버(100)의 private key로 서명한 결과의 해쉬값, (ii) 상기 주주명부 파일(A)을 상기 서버(100)의 private key로 서명한 파일의 해쉬값, (iii) 상기 주주명부 파일(A)의 message digest에 대하여 상기 특정 회사(300)의 private key 및 상기 서버(100)의 private key로 인코딩된 결과의 해쉬값 및 (iv) 상기 주주명부 파일(A)의 message digest에 대하여 상기 서버(100)의 private key로 인코딩된 결과의 해쉬값 중 어느 하나임 - 및 상기 제2 특정 해쉬값과 매칭되는 적어도 하나의 이웃 해쉬값을 연산함으로써 생성될 수 있다.
이때, 상기 검증 요청에 포함된 입력 데이터는, (i) 상기 주주명부 파일, (ii) 상기 주주명부 파일에 대한 message digest, 또는 (iii) 상기 주주명부 파일 등록 당시 발급된 ID 중 어느 하나를 포함할 수 있다.
입력 데이터에 주주명부 파일이 포함되는 경우, 전술한 방법으로 주주명부 파일에 대한 message digest가 생성되고 이를 기초로 하여 상기 제2 특정 해쉬값이 산출될 수 있다. 그리고, 상기 제2 대표 해쉬값은 상기 제2 특정 해쉬값과 매칭되는 적어도 하나의 이웃 해쉬값을 연산하여 생성될 수 있다.
입력 데이터에 주주명부 파일 등록 당시 발급된 ID가 포함되는 경우 기존에 생성된 머클 트리에서 상기 ID에 대응되는 리프 노드에 할당된 값이 상기 제2 특정 해쉬값으로 설정될 수 있다. 도 3 및 4에 도시된 예에서, 상기 ID는 unique ID일 수 있다.
제2 특정 해쉬값에 대해서는 전술한 제1 특정 해쉬값에 대한 설명이 동일하게 적용될 수 있다. 즉, 제2 특정 해쉬값과 적어도 하나의 이웃 해쉬값의 연산은 다양한 함수에 의해 수행될 수 있다. 이에 대해서는 전술하였으므로 설명을 생략한다.
이 경우, 상기 제2 특정 해쉬값과 적어도 하나의 이웃 해쉬값의 연산은 머클 트리(merkle tree)를 통해 이루어질 수 있다. 상기 주주명부 파일과 관련된 검증 요청이 획득되면, 프로세서(120)는, 상기 입력 데이터와 관련된 머클 트리 정보 및 리프 노드 정보를 식별할 수 있다.
그리고, 상기 제2 대표 해쉬값은, 상기 제2 특정 해쉬값이 특정 리프 노드에 할당된 머클 트리(merkle tree)에서 상기 제2 특정 해쉬값 및 상기 제2 특정 해쉬값과 매칭되는 적어도 하나의 다른 리프 노드에 할당된 해쉬값을 연산하여 생성될 수 있다.
서버(100)가 관리하지 않는 데이터베이스(예를 들어, 가상 화폐의 블록체인)를 사용하여 서비스가 이루어지는 경우, 프로세서(120)는, 상기 식별된 머클 트리 정보에 대응되는 상기 소정의 transaction ID를 참조할 수 있다.
이 경우, 프로세서(120)는, 상기 주주명부 파일과 관련된 검증 요청이 획득되면, 상기 주주명부 파일과 관련된 소정의 transaction ID를 참조하고, 상기 transaction ID를 사용하여 상기 데이터베이스(200)로부터 OP 메시지를 획득하거나 획득하도록 지원할 수 있다. 또한, 상기 검증 요청에 포함된 입력 데이터를 사용하여 생성된 상기 제2 대표 해쉬값 또는 상기 제2 대표 해쉬값을 가공한 값이 상기 OP 메시지에 포함된 상기 제1 대표 해쉬값 또는 상기 제1 대표 해쉬값을 가공한 값과 대응되면, 상기 특정 파일과 관련된 검증이 이루어진 것으로 판단하거나 판단하도록 지원할 수 있다.
한편, 상기 소정의 transaction ID는 입력 데이터에 포함되어 제공될 수도 있다. 즉, 사용자는 검증 요청시 전술한 (i) 상기 주주명부 파일, (ii) 상기 주주명부 파일에 대한 message digest, 또는 (iii) 상기 주주명부 파일 등록 당시 발급된 ID 중 어느 하나와 함께 transaction ID를 서버(100)에 전달할 수도 있다.
검증 연산과정에서 프로세서(120)는 새로운 머클 트리를 생성하거나 생성하도록 지원할 수 있는데, 여기에는 전술한 주주명부 등록 과정에서 생성된 머클 트리가 이용될 수 있다. 즉, 프로세서(120)는 (y1) (i) 상기 제2 특정 해쉬값과 (ii) 기존에 생성된 머클 트리에서 상기 제2 특정 해쉬값이 할당된 노드의 형제 노드에 할당된 해쉬값을 연산하거나 연산하도록 지원하고, 상기 연산값에 대한 해쉬값을 새로운 머클 트리에서 상기 노드의 부모 노드에 할당하거나 할당하도록 지원할 수 있다. 또한, (y2) 상기 부모 노드가 상기 새로운 머클 트리의 루트 노드이면, 상기 부모 노드에 할당된 해쉬값을 상기 제2 대표 해쉬값으로서 상기 OP 메시지에 포함된 값과 비교하거나 비교하도록 지원하고, (y3) 상기 부모 노드가 상기 새로운 머클 트리의 루트 노드가 아니면, 상기 부모 노드에 할당된 해쉬값을 상기 제2 특정 해쉬값으로 하여 상기 (y1) 내지 (y3)를 반복하여 수행할 수 있다.
프로세서(120)는, 최종적으로 생성된 머클 트리의 루트값 또는 이를 가공한 값이 상기 OP 메시지에 포함된 상기 제1 대표 해쉬값 또는 상기 제1 대표 해쉬값을 가공한 값과 대응되면, 상기 특정 파일과 관련된 검증이 이루어진 것으로 판단하거나 판단하도록 지원할 수 있다.
이처럼 본 발명은 주주명부 등록 단계에서 nm(=N)개의 리프 노드를 가지는 머클 트리가 생성이 되면, 머클 트리의 높이(lognN=m)만큼의 연산만을 수행함으로써 파일에 대한 검증을 수행할 수 있어 빠르게 transaction의 integrity 확인이 가능하게 된다.
한편, 프로세서(120)는 입력 데이터를 획득하는 경우, 입력 데이터와 관련된 시간 정보를 참조로 하여 상기 입력 데이터와 관련된 머클 트리 정보 및 리프 노드 정보 중 적어도 하나를 식별할 수도 있다.
이하에서는 도 3에 도시된 구체적인 예를 들어 검증 과정을 설명한다.
다시 도 3을 참조하면, input 2에 대한 검증 요청이 있는 경우, 프로세서(120)는 입력 데이터 정보를 참조로 하여 기존에 생성된 머클 트리와 리프 노드 정보를 식별하고, 식별된 머클 트리 정보(tree_id = 0)에 대응되는 소정의 transaction ID를 데이터베이스(200)에 전송하여 데이터베이스(200)로부터 OP 메시지를 획득한다. 그리고, 프로세서(120)는 input 2를 이용하여 새로운 머클 트리를 생성하거나 생성하도록 지원할 수 있다. input 2의 해쉬값(triplesha256digest(input2))이 h2 노드에 할당되어 있으므로 프로세서(120)는 h2 노드에 할당된 해쉬값과 기존에 생성된 머클 트리에서 h2 노드의 형제 노드인 h3 노드에 할당된 해쉬값을 연산하거나 연산하도록 지원할 수 있다. 상기 연산값에 대한 해쉬값은 h2 노드와 h3 노드의 부모 노드인 h23 노드에 할당된다. h23 노드가 새로운 머클 트리의 루트 노드가 아니므로 프로세서(120)는 상기 h23 노드에 할당된 해쉬값을 상기 제2 특정 해쉬값으로 하여 상기 과정을 반복하여 수행할 수 있다. 즉, h23 노드에 할당된 해쉬값을 제2 특정 해쉬값으로 하고, h23 노드에 할당된 해쉬값과 기존에 생성된 머클 트리에서 h01 노드에 할당된 해쉬값을 연산하여 h23 노드와 h01 노드의 부모 노드인 h0123 노드에 할당할 수 있다. 이때, h0123 노드가 머클 트리의 루트 노드이므로 프로세서(120)는, h0123 노드에 할당된 해쉬값을 가공한 값(hex(h{node_index}))을 상기 OP 메시지에 포함된 값과 비교하거나 비교하도록 지원할 수 있다.
이하에서는 본 발명의 일 실시예에 따른 주식 소유권 이전을 기록하는 방법을 설명한다. 다만, 전술한 실시예와 중복되는 설명은 생략한다.
도 5는 본 발명의 일 실시예에 따라 주식 소유권 이전을 기록하는 과정을 도시한 시퀀스 다이어그램이다.
도 5를 참조하면, 통신부(110)는 제1 사용자(400-1)와 제2 사용자(400-2) 간에 특정 회사(300)의 주식 소유권에 대한 이전 거래 내역을 나타내는 주식 소유권 이전 거래 정보(TransDE)를 획득한다(S505).
프로세서(120)는 상기 획득된 주식 소유권 이전 거래 정보와 관련된 정보가 진정한 것인지 확인하거나 확인하도록 지원할 수 있다. 상기 확인 결과가 참이면(S550), 프로세서(120)는, 상기 주식 소유권에 대한 이전 거래 내역이 반영된 주주명부 파일(File')을 생성하거나 생성하도록 지원하고(S555), 상기 주주명부 파일(File')에 대하여 (l) 상기 특정 회사(300)의 private key 및 상기 서버(100)의 private key 또는 (m) 상기 서버(100)의 private key 로 서명된 파일을 생성하거나 생성하도록 지원할 수 있고(S575), 생성된 파일의 해쉬값을 생성하여(S577) 데이터베이스(200)에 등록하거나 등록하도록 지원할 수 있다(S580). 상기 (m)의 경우는 서버(100)가 특정 회사(300)로부터 권한을 위임받은 경우를 상정할 수 있다. 또한, 새로운 주주명부 파일(File')은 기존의 주주명부 파일(File)에 새로운 내용이 추가될 수도 있고(attach) 새로운 내용으로 파일 자체가 덮어쓰기 되어 생성될 수도 있다. 새로운 주주명부 파일은 기존의 주주명부 파일에 TransDE 및 SigPrivE(SigPrivD(TransDE)) 중 적어도 하나가 추가된 형태일 수 있다.
통신부(110)는, 상기 등록된 해쉬값의 데이터베이스(200) 상의 위치 정보를 나타내는 transaction ID를 획득할 수 있다(S582).
한편, 상기 획득된 주식 소유권 이전 거래 정보와 관련된 정보가 진정한 것인지 확인하는 과정은 다음과 같이 이루어질 수 있다.
우선, 주식 소유권 이전 기록 요청(S505)을 통해 제1 사용자(400-1)의 private key로 서명된 주식 소유권 이전 거래 정보(SigPrivD(TransDE))가 획득되면, 프로세서(120)는, 상기 제1 사용자(400-1)의 public key를 이용하여 상기 주식 소유권 이전 거래 정보를 확인하거나 확인하도록 지원한다(S510).
S510 단계의 확인 결과가 참이면(S510-2), 통신부(110)는 제1 사용자(400-1)의 public key, 주식 소유권 이전 거래 정보(TransDE), 제1 사용자(400-1)의 private key로 서명된 주식 소유권 이전 거래 정보를 제2 사용자(400-2)에 전달한다(S520).
제1 사용자(400-1)의 private key로 서명된 주식 소유권 이전 거래 정보(SigPrivD(TransDE))에 대하여 상기 제2 사용자(400-2)의 private key로 서명된 정보(SigPrivE(SigPrivD(TransDE)))가 획득되면, 프로세서(120)는 상기 제1 사용자(400-1)의 public key 및 상기 제2 사용자(400-2)의 public key를 이용하여 상기 주식 소유권 이전 거래 정보를 확인하거나 확인하도록 지원할 수 있다(S535).
상기 S535 단계의 확인 결과 역시 참이면 전술한 S550이하의 단계가 수행된다.
이 경우, 프로세서(120)는, 기저장된 주주명부 파일을 복호화하거나 복호화하도록 지원하고(S552), 복호화된 주주명부 파일에 상기 주식 소유권 이전 거래 내역을 반영하여 새로운 주주명부 파일(File')을 생성하거나 생성하도록 지원할 수 있다(S555).
이렇게 새롭게 생성된 주주명부 파일(File')은, (i) 상기 주식 소유권 이전 거래 정보에 대하여 상기 제1 사용자(400-1)의 private key 및 상기 제2 사용자(400-2)의 private key로 서명된 정보(X 정보) 또는 (ii) 상기 X 정보 및 상기 주식 소유권 이전 거래 정보를 포함하여 획득될 수 있다.
또한, 프로세서(120)는, hash 함수를 사용하여 상기 새롭게 생성된 주주명부 파일에 대한 message digest를 생성하거나 생성하도록 지원할 수 있다(S557).
그리고, 통신부(110)가, 상기 생성된 message digest, 상기 생성된 주주명부 파일, 상기 주식 소유권 이전 거래 정보에 대하여 상기 제1 사용자(400-1)의 private key 및 상기 제2 사용자(400-2)의 private key로 서명된 정보, 상기 주식 소유권 이전 거래 정보를 포함한 정보를 상기 특정 회사(300)에 전송할 수 있다(S562).
그러면, 프로세서(120)는, 상기 특정 회사(300)가, (i) 상기 주주명부 파일로부터 상기 message digest가 생성된 것인지 확인하는 프로세스, (ii) 상기 message digest에 대하여 상기 특정 회사(300)의 private key로 서명된 정보(N 정보)을 생성하는 프로세스, (iii) 상기 주식 소유권 이전 거래 정보에 대한 정보를 확인하는 프로세스를 수행하도록 지원하고(S565), 상기 특정 회사(300)로부터 message digest 및 상기 N 정보를 수신하고(S567), 상기 특정 회사(300)의 public key를 이용하여 상기 특정 회사(300)의 서명 정보가 맞는지 확인할 수 있다(S570).
한편, 프로세서(120)는 새롭게 생성된 주주명부 파일을 저장하거나 저장하도록 지원할 수 있고(S560), 생성된 주주명부 파일은 AES encryption되어 저장될 수 있다.
통신부(110)는 transaction ID가 수신되면, 등록이 성공되었음을 나타내는 정보를 제1 사용자(400-1), 제2 사용자(400-2), 특정 회사(300)에 전송한다(S585).
한편, 프로세서(120)는 상기 특정 회사(300)의 public key, 상기 주주명부 파일의 message digest, 상기 특정 회사(300)의 private key로 서명된 주주명부 파일, 상기 획득된 transaction ID, 상기 주주명부 파일을 저장하거나 저장하도록 지원할 수 있다. 또한, 상기 특정 회사(300)의 private key, 상기 서버(100)의 private key 순으로 서명된 주주명부 파일(L 파일) 및 상기 L 파일의 해쉬값 중 적어도 일부를 더 저장하거나 저장하도록 지원할 수 있다.
이하에서는 전술한 별도의 데이터 구조를 이용하여 주식 소유권 이전을 기록하는 실시예를 설명한다. 다만, 중복되는 설명은 생략한다.
전술한 프로세서(120)는, 주주명부 파일이 획득되거나 상기 주주명부 파일의 message digest가 획득되고 소정의 조건이 만족되면, 특정 해쉬값 - 상기 특정 해쉬값은, (i) 상기 특정 회사(300)의 private key 및 상기 서버(100)의 private key로 서명된 상기 주주명부 파일의 해쉬값, (ii) 상기 서버(100)의 private key로 서명된 상기 주주명부 파일의 해쉬값, (iii) 상기 특정 회사(300)의 private key 및 상기 서버(100)의 private key로 인코딩된 상기 message digest의 해쉬값 및 (iv) 상기 서버(100)의 private key로 인코딩된 상기 message digest의 해쉬값 중 어느 하나임 - 및 상기 특정 해쉬값과 매칭되는 적어도 하나의 이웃 해쉬값을 연산함으로써 생성되는 대표 해쉬값 또는 상기 대표 해쉬값을 가공한 값을 데이터베이스(200)에 등록하거나 등록하도록 지원할 수 있다.
이때, 주식 소유권에 대한 이전 거래 내역을 나타내는 주식 소유권 이전 거래 정보가 획득되면, 프로세서(120)는 상기 획득된 주식 소유권 이전 거래 정보와 관련된 정보가 진정한 것인지 확인하거나 확인하도록 지원하고, 상기 확인 결과가 참이면, 상기 주주명부 파일이 획득되거나 상기 주주명부 파일의 message digest가 획득될 수 있다.
한편, 전술한 프로세서(120)는 통신부(110) 및 다른 구성요소 간의 데이터의 흐름을 제어하는 기능을 수행한다. 즉, 프로세서(120)는 서버(100)의 각 구성요소 간의 데이터의 흐름을 제어함으로써, 통신부(110) 및 다른 구성요소에서 각각 고유 기능을 수행하도록 제어한다.
프로세서(120)는 MPU(Micro Processing Unit) 또는 CPU(Central Processing Unit), 캐쉬 메모리(Cache Memory), 데이터 버스(Data Bus) 등의 하드웨어 구성을 포함할 수 있다. 또한, 운영체제, 특정 목적을 수행하는 어플리케이션의 소프트웨어 구성을 더 포함할 수도 있다.
또한, 이상 설명된 본 발명에 따른 실시예들은 다양한 컴퓨터 구성요소를 통하여 수행될 수 있는 프로그램 명령어의 형태로 구현되어 컴퓨터 판독 가능한 기록 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능한 기록 매체는 프로그램 명령어, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 컴퓨터 판독 가능한 기록 매체에 기록되는 프로그램 명령어는 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 분야의 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능한 기록 매체의 예에는, 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체, CD-ROM, DVD와 같은 광기록 매체, 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 ROM, RAM, 플래시 메모리 등과 같은 프로그램 명령어를 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령어의 예에는, 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드도 포함된다. 상기 하드웨어 장치는 본 발명에 따른 처리를 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
이상에서 본 발명이 구체적인 구성요소 등과 같은 특정 사항들과 한정된 실시예 및 도면에 의해 설명되었으나, 이는 본 발명의 보다 전반적인 이해를 돕기 위해서 제공된 것일 뿐, 본 발명이 상기 실시예들에 한정되는 것은 아니며, 본 발명이 속하는 기술분야에서 통상적인 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형을 꾀할 수 있다.
따라서, 본 발명의 사상은 상기 설명된 실시예에 국한되어 정해져서는 아니 되며, 후술하는 특허청구범위뿐만 아니라 이 특허청구범위와 균등하게 또는 등가적으로 변형된 모든 것들은 본 발명의 사상의 범주에 속한다고 할 것이다.
100 : 서버
110 : 통신부
120 : 프로세서
200 : 데이터베이스
300 : 특정 회사
400-1 : 제1 사용자
400-2 : 제2 사용자

Claims (36)

  1. 특정 회사의 주주명부에 대한 등록을 요청하는 회사 서버, 상기 요청에 따라 상기 특정 회사의 주주명부를 가상 화폐의 블록체인에 등록하기 위한 관리 서버, 및 상기 블록체인을 운용하는 블록체인 서버로 구성된 시스템에서, 상기 주주명부를 등록하는 방법에 있어서,
    (a) 상기 관리 서버가 주주명부 파일을 획득하거나 상기 주주명부 파일의 message digest를 획득하거나 획득하도록 지원하는 단계,
    (b) 소정의 조건이 만족되면, 상기 관리 서버가, 특정 해쉬값 - 상기 특정 해쉬값은, (i) 상기 특정 회사의 private key 및 상기 관리 서버의 private key로 서명된 상기 주주명부 파일의 해쉬값, (ii) 상기 관리 서버의 private key로 서명된 상기 주주명부 파일의 해쉬값, (iii) 상기 특정 회사의 private key 및 상기 관리 서버의 private key로 인코딩된 상기 message digest의 해쉬값 및 (iv) 상기 관리 서버의 private key로 인코딩된 상기 message digest의 해쉬값 중 어느 하나임 - 및 상기 특정 해쉬값과 매칭되는 적어도 하나의 이웃 해쉬값을 연산함으로써 생성되는 대표 해쉬값 또는 상기 대표 해쉬값을 가공한 값을 획득하고, 상기 획득된 값을 상기 블록체인 서버에 의해 관리되는 상기 가상 화폐의 블록체인 상에 등록하도록 지원하는 단계를 포함하되,
    상기 (b) 단계에서,
    상기 관리 서버는, 상기 특정 해쉬값이 리프 노드에 할당된 머클 트리(merkle tree)를 생성하거나 생성하도록 지원하고,
    상기 소정의 조건이 만족되면, 상기 특정 해쉬값과 매칭되는 적어도 하나의 다른 리프 노드에 할당된 해쉬값을 연산하여 생성되는 상기 대표 해쉬값 또는 상기 대표 해쉬값을 가공한 값을 획득하고, 상기 획득된 값을 상기 블록체인 서버에 의해 관리되는 상기 가상 화폐의 블록체인 상에 등록하도록 지원하는 것을 특징으로 하고,
    상기 소정의 조건이 만족되면,
    (x1) 상기 관리 서버는, (i) 상기 특정 해쉬값과 (ii) 상기 특정 해쉬값이 할당된 노드의 형제 노드에 할당된 해쉬값을 연산하거나 연산하도록 지원하고, 상기 연산의 결과인 연산값에 대한 해쉬값을 상기 노드의 부모 노드에 할당하거나 할당하도록 지원하며,
    (x2) 상기 부모 노드가 상기 머클 트리의 루트 노드이면, 상기 부모 노드에 할당된 해쉬값을 상기 대표 해쉬값으로서 상기 블록체인 서버에 의해 관리되는 상기 가상 화폐의 블록체인 상에 등록하도록 지원하고,
    (x3) 상기 부모 노드가 상기 머클 트리의 루트 노드가 아니면, 상기 부모 노드에 할당된 해쉬값을 상기 특정 해쉬값으로 하여 상기 (x1) 내지 (x3)를 반복하여 수행하는 것을 특징으로 하는 방법.
  2. 제1항에 있어서,
    상기 (b) 단계에서,
    상기 소정의 조건은,
    (i) 소정의 개수만큼의 주주명부 파일이 획득되거나 소정의 개수만큼의 message digest가 생성되는 조건, (ii) 소정 시간이 경과하는 조건, (iii) 블록 체인에서 블록이 생성되는 조건, (iv) 서비스 특성에 대한 조건 중 적어도 하나를 포함하는 것을 특징으로 하는 방법.
  3. 삭제
  4. 제1항에 있어서,
    상기 머클 트리가 체인 형태로 연결된 적어도 하나의 머클 트리 중 첫번째 머클 트리인 경우, 상기 머클 트리의 첫번째 리프 노드에는 텍스트, 숫자, 또는 기호로 이루어진 소정의 메시지 데이터의 해쉬값 또는 이를 가공한 값이 할당되는 것을 특징으로 하는 방법.
  5. 삭제
  6. 제1항에 있어서,
    상기 (x1)에서
    상기 소정의 조건이 만족되었음에도 상기 특정 해쉬값이 할당된 노드의 형제 노드에 해쉬값이 할당되어 있지 않은 경우, 상기 관리 서버는, 상기 형제 노드에 소정의 해쉬값을 할당하거나 할당하도록 지원하여 상기 (x1) 내지 (x3)를 수행하는 것을 특징으로 하는 방법.
  7. 제1항에 있어서,
    상기 관리 서버가 상기 특정 해쉬값과 상기 적어도 하나의 이웃 해쉬값을 소정의 제1 데이터 구조로 저장하고, 이후 상기 제1 데이터 구조와 동일한 형태의 제2 데이터 구조를 저장하여 관리하는 경우, 상기 제1 데이터 구조와 상기 제2 데이터 구조는 체인 형태로 연결되는 것을 특징으로 하는 방법.
  8. 제7항에 있어서,
    상기 제1 데이터 구조 및 상기 제2 데이터 구조가 머클 트리인 경우, 상기 제1 데이터 구조의 루트값 또는 상기 루트값의 해쉬값이 상기 제2 데이터 구조의 첫번째 리프 노드에 할당되는 것을 특징으로 하는 방법.
  9. 제1항에 있어서,
    상기 (a) 단계에서, 주주명부 파일이나 message digest 획득이 없고,
    상기 (b) 단계에서, 상기 소정의 조건이 만족되면, 상기 관리 서버는, 소정의 메시지 데이터가 첫번째 리프 노드와 두번째 리프 노드에 할당된 머클 트리를 생성하거나 생성하도록 지원하고, 상기 머클 트리의 루트값 또는 이를 가공한 값을 상기 블록체인 서버에 의해 관리되는 상기 가상 화폐의 블록체인 상에 등록하도록 지원하는 것을 특징으로 하는 방법.
  10. 삭제
  11. 특정 회사의 주식 소유권 이전의 당사자로서 해당 주식을 매도하고자 하는 제1 사용자에 대응되는 제1 사용자 단말, 상기 특정 회사의 주식 소유권 이전의 당사자로서 해당 주식을 매수하고자 하는 제2 사용자에 대응되는 제2 사용자 단말, 상기 특정 회사의 회사 서버, 상기 주식 소유권 이전을 가상 화폐의 블록체인에 기록하기 위한 관리 서버, 및 상기 블록체인을 운용하는 블록체인 서버로 구성된 시스템에서, 상기 주식 소유권 이전을 기록하는 방법에 있어서,
    (a) 상기 관리 서버가, 상기 제1 사용자와 상기 제2 사용자 간에 상기 특정 회사의 주식 소유권에 대한 이전 거래 내역이 반영된 주주명부 파일을 획득하거나 상기 주주명부 파일의 message digest를 획득하거나 획득하도록 지원하는 단계,
    (b) 소정의 조건이 만족되면, 상기 관리 서버가, 특정 해쉬값 - 상기 특정 해쉬값은, (i) 상기 특정 회사의 private key 및 상기 관리 서버의 private key로 서명된 상기 주주명부 파일의 해쉬값, (ii) 상기 관리 서버의 private key로 서명된 상기 주주명부 파일의 해쉬값, (iii) 상기 특정 회사의 private key 및 상기 관리 서버의 private key로 인코딩된 상기 message digest의 해쉬값 및 (iv) 상기 관리 서버의 private key로 인코딩된 상기 message digest의 해쉬값 중 어느 하나임 - 및 상기 특정 해쉬값과 매칭되는 적어도 하나의 이웃 해쉬값을 연산함으로써 생성되는 대표 해쉬값 또는 상기 대표 해쉬값을 가공한 값을 획득하고, 상기 획득된 값을 상기 블록체인 서버에 의해 관리되는 상기 가상 화폐의 블록체인 상에 등록하도록 지원하는 단계
    를 포함하되,
    상기 (b) 단계에서,
    상기 관리 서버는, 상기 특정 해쉬값이 리프 노드에 할당된 머클 트리(merkle tree)를 생성하거나 생성하도록 지원하고,
    상기 소정의 조건이 만족되면, 상기 특정 해쉬값과 매칭되는 적어도 하나의 다른 리프 노드에 할당된 해쉬값을 연산하여 생성되는 상기 대표 해쉬값 또는 상기 대표 해쉬값을 가공한 값을 획득하고, 상기 획득된 값을 상기 블록체인 서버에 의해 관리되는 상기 가상 화폐의 블록체인 상에 등록하도록 지원하며,
    상기 소정의 조건이 만족되면,
    (x1) 상기 관리 서버는, (i) 상기 특정 해쉬값과 (ii) 상기 특정 해쉬값이 할당된 노드의 형제 노드에 할당된 해쉬값을 연산하거나 연산하도록 지원하고, 상기 연산의 결과인 연산값에 대한 해쉬값을 상기 노드의 부모 노드에 할당하거나 할당하도록 지원하며,
    (x2) 상기 부모 노드가 상기 머클 트리의 루트 노드이면, 상기 부모 노드에 할당된 해쉬값을 상기 대표 해쉬값으로서 상기 블록체인 서버에 의해 관리되는 상기 가상 화폐의 블록체인 상에 등록하도록 지원하고,
    (x3) 상기 부모 노드가 상기 머클 트리의 루트 노드가 아니면, 상기 부모 노드에 할당된 해쉬값을 상기 특정 해쉬값으로 하여 상기 (x1) 내지 (x3)를 반복하여 수행하는 것을 특징으로 하는 방법.
  12. 제11항에 있어서,
    상기 (a) 단계 이전에,
    (a0) 상기 주식 소유권에 대한 이전 거래 내역을 나타내는 주식 소유권 이전 거래 정보가 획득되면, 상기 관리 서버가, 상기 획득된 주식 소유권 이전 거래 정보와 관련된 정보가 진정한 것인지 확인하거나 확인하도록 지원하는 단계를 더 포함하고,
    상기 확인 결과가 참이면, 상기 (a) 단계가 수행되는 것을 특징으로 하는 방법.
  13. 제12항에 있어서,
    상기 (a0) 단계는,
    (a01) 상기 제1 사용자의 private key로 서명된 주식 소유권 이전 거래 정보(A 정보)가 상기 제1 사용자 단말로부터 획득되면, 상기 관리 서버가, 상기 제1 사용자의 public key를 이용하여 상기 주식 소유권 이전 거래 정보를 확인하거나 확인하도록 지원하는 단계, 및
    (a02) 상기 A 정보에 대하여 상기 제2 사용자의 private key로 서명된 정보가 상기 제2 사용자 단말로부터 획득되면, 상기 관리 서버가, 상기 제1 사용자의 public key 및 상기 제2 사용자의 public key를 이용하여 상기 주식 소유권 이전 거래 정보를 확인하거나 확인하도록 지원하는 단계를 포함하는 것을 특징으로 하는 방법.
  14. 제11항에 있어서,
    상기 (b) 단계에서,
    상기 소정의 조건은,
    (i) 소정의 개수만큼의 주주명부 파일이 획득되거나 소정의 개수만큼의 message digest가 생성되는 조건, (ii) 소정 시간이 경과하는 조건, (iii) 블록 체인에서 블록이 생성되는 조건, (iv) 서비스 특성에 대한 조건 중 적어도 하나를 포함하는 것을 특징으로 하는 방법.
  15. 삭제
  16. 제11항에 있어서,
    상기 머클 트리가 체인 형태로 연결된 적어도 하나의 머클 트리 중 첫번째 머클 트리인 경우, 상기 머클 트리의 첫번째 리프 노드에는 텍스트, 숫자, 또는 기호로 이루어진 소정의 메시지 데이터의 해쉬값 또는 이를 가공한 값이 할당되는 것을 특징으로 하는 방법.
  17. 삭제
  18. 특정 회사의 주주명부에 대한 검증을 요청하는 사용자의 단말, 상기 특정 회사의 회사 서버, 상기 요청에 따라 가상 화폐의 블록체인에 등록된 상기 특정회사의 주주명부를 검증하기 위한 관리 서버, 및 상기 블록체인을 운용하는 블록체인 서버로 구성된 시스템에서, 상기 등록된 주주명부 파일을 검증하는 방법에 있어서,
    (a) 기존에 관리 서버가 특정 회사의 주주명부 파일을 획득하거나 상기 주주명부 파일의 message digest를 획득하여, 제1 특정 해쉬값 - 상기 제1 특정 해쉬값은, (i) 상기 특정 회사의 private key 및 상기 관리 서버의 private key로 서명된 상기 주주명부 파일의 해쉬값, (ii) 상기 관리 서버의 private key로 서명된 상기 주주명부 파일의 해쉬값, (iii) 상기 특정 회사의 private key 및 상기 관리 서버의 private key로 인코딩된 상기 message digest의 해쉬값 및 (iv) 상기 관리 서버의 private key로 인코딩된 상기 message digest의 해쉬값 중 어느 하나임 - 과 소정의 조건 하에서 매칭되는 적어도 하나의 이웃 해쉬값을 연산함으로써 생성되는 제1 대표 해쉬값 또는 상기 제1 대표 해쉬값을 가공한 값을 획득하여 상기 블록체인 서버에 의해 관리되는 상기 가상 화폐의 블록체인 상에 등록하고 있는 상태에서, 상기 관리 서버가, 상기 주주명부 파일과 관련된 검증 요청을 상기 사용자 단말로부터 획득하는 단계, 및
    (b) 상기 검증 요청에 포함된 입력 데이터를 사용하여 생성된 제2 대표 해쉬값 또는 상기 제2 대표 해쉬값을 가공한 값이 상기 가상 화폐의 블록체인 상에 등록된 상기 제1 대표 해쉬값 또는 상기 제1 대표 해쉬값을 가공한 값과 대응되면, 상기 관리 서버가, 상기 주주명부 파일과 관련된 검증이 이루어진 것으로 판단하거나 판단하도록 지원하는 단계를 포함하되,
    상기 (a) 단계는,
    (a1) 상기 주주명부 파일과 관련된 검증 요청이 획득되면, 상기 관리 서버가, 상기 주주명부 파일과 관련된 소정의 transaction ID를 참조하는 단계, 및
    (a2) 상기 관리 서버가, 상기 transaction ID를 사용하여 상기 블록체인 서버에 의해 관리되는 상기 가상 화폐의 블록체인으로부터 OP 메시지를 획득하는 단계를 포함하고,
    상기 (b) 단계에서,
    상기 검증 요청에 포함된 입력 데이터를 사용하여 생성된 상기 제2 대표 해쉬값 또는 상기 제2 대표 해쉬값을 가공한 값이 상기 OP 메시지에 포함된 상기 제1 대표 해쉬값 또는 상기 제1 대표 해쉬값을 가공한 값과 대응되면, 상기 관리 서버가, 상기 주주명부 파일과 관련된 검증이 이루어진 것으로 판단하거나 판단하도록 지원하는 것을 특징으로 하며,
    상기 (a1) 단계에서,
    상기 주주명부 파일과 관련된 검증 요청이 상기 사용자 단말로부터 획득되면, 상기 관리 서버는, 상기 입력 데이터와 관련된 머클 트리 정보 및 리프 노드 정보를 식별하고, 상기 식별된 머클 트리 정보에 대응되는 상기 소정의 transaction ID를 참조하는 것을 특징으로 하는 방법.
  19. 삭제
  20. 삭제
  21. 제18항에 있어서,
    상기 (b) 단계에서,
    상기 입력 데이터는, (i) 주주명부 파일, (ii) 상기 주주명부 파일에 대한 message digest, 또는 (iii) 상기 주주명부 파일 등록 당시 발급된 ID 중 어느 하나를 포함하는 것을 특징으로 하는 방법.
  22. 제18항에 있어서,
    상기 제2 대표 해쉬값은, 제2 특정 해쉬값 - 상기 제2 특정 해쉬값은, 상기 검증 요청에 포함된 입력 데이터에 관한 (i) 주주명부 파일(A)에 대하여 상기 특정 회사의 private key 및 상기 관리 서버의 private key로 서명한 결과의 해쉬값, (ii) 상기 주주명부 파일(A)을 상기 관리 서버의 private key로 서명한 파일의 해쉬값, (iii) 상기 주주명부 파일(A)의 message digest에 대하여 상기 특정 회사의 private key 및 상기 관리 서버의 private key로 인코딩된 결과의 해쉬값 및 (iv) 상기 주주명부 파일(A)의 message digest에 대하여 상기 관리 서버의 private key로 인코딩된 결과의 해쉬값 중 어느 하나임 - 및 상기 제2 특정 해쉬값과 매칭되는 적어도 하나의 이웃 해쉬값을 연산함으로써 생성되는 것을 특징으로 하는 방법.
  23. 제22항에 있어서,
    상기 제2 대표 해쉬값은,
    상기 제2 특정 해쉬값이 특정 리프 노드에 할당된 머클 트리(merkle tree)에서 상기 제2 특정 해쉬값 및 상기 제2 특정 해쉬값과 매칭되는 적어도 하나의 다른 리프 노드에 할당된 해쉬값을 연산하여 생성되는 것을 특징으로 하는 방법.
  24. 제23항에 있어서,
    (x1) 상기 관리 서버는, (i) 상기 제2 특정 해쉬값과 (ii) 상기 제2 특정 해쉬값이 할당된 노드의 형제 노드에 할당된 해쉬값을 연산하거나 연산하도록 지원하고, 상기 연산의 결과인 연산값에 대한 해쉬값을 상기 노드의 부모 노드에 할당하거나 할당하도록 지원하며,
    (x2) 상기 부모 노드가 상기 머클 트리의 루트 노드이면, 상기 부모 노드에 할당된 해쉬값을 상기 제2 대표 해쉬값으로서 상기 OP 메시지에 포함된 값과 비교하거나 비교하도록 지원하고,
    (x3) 상기 부모 노드가 상기 머클 트리의 루트 노드가 아니면, 상기 부모 노드에 할당된 해쉬값을 상기 제2 특정 해쉬값으로 하여 상기 (x1) 내지 (x3)를 반복하여 수행하는 것을 특징으로 하는 방법.
  25. 특정 회사의 주주명부에 대한 등록을 요청하는 회사 서버, 상기 요청에 따라 상기 특정 회사의 주주명부를 가상 화폐의 블록체인에 등록하기 위한 관리 서버, 및 상기 블록체인을 운용하는 블록체인 서버로 구성된 시스템에 포함된 상기 관리 서버에 있어서,
    주주명부 파일을 획득하거나 상기 주주명부 파일의 message digest를 획득하는 통신부, 및
    상기 주주명부 파일이 획득되거나 상기 주주명부 파일의 message digest가 획득되고 소정의 조건이 만족되면, 특정 해쉬값 - 상기 특정 해쉬값은, (i) 상기 특정 회사의 private key 및 상기 관리 서버의 private key로 서명된 상기 주주명부 파일의 해쉬값, (ii) 상기 관리 서버의 private key로 서명된 상기 주주명부 파일의 해쉬값, (iii) 상기 특정 회사의 private key 및 상기 관리 서버의 private key로 인코딩된 상기 message digest의 해쉬값 및 (iv) 상기 관리 서버의 private key로 인코딩된 상기 message digest의 해쉬값 중 어느 하나임 - 및 상기 특정 해쉬값과 매칭되는 적어도 하나의 이웃 해쉬값을 연산함으로써 생성되는 대표 해쉬값 또는 상기 대표 해쉬값을 가공한 값을 획득하고, 상기 획득된 값을 상기 블록체인 서버에 의해 관리되는 상기 가상 화폐의 블록체인 상에 등록하도록 지원하는 프로세서
    를 포함하되,
    상기 프로세서는,
    상기 특정 해쉬값이 리프 노드에 할당된 머클 트리(merkle tree)를 생성하거나 생성하도록 지원하고,
    상기 소정의 조건이 만족되면, 상기 특정 해쉬값과 매칭되는 적어도 하나의 다른 리프 노드에 할당된 해쉬값을 연산하여 생성되는 상기 대표 해쉬값 또는 상기 대표 해쉬값을 가공한 값을 획득하고, 상기 획득된 값을 상기 블록체인 서버에 의해 관리되는 상기 가상 화폐의 블록체인 상에 등록하도록 지원하는 것을 특징으로 하며,
    상기 소정의 조건이 만족되면,
    (x1) 상기 프로세서는, (i) 상기 특정 해쉬값과 (ii) 상기 특정 해쉬값이 할당된 노드의 형제 노드에 할당된 해쉬값을 연산하거나 연산하도록 지원하고, 상기 연산의 결과인 연산값에 대한 해쉬값을 상기 노드의 부모 노드에 할당하거나 할당하도록 지원하며,
    (x2) 상기 부모 노드가 상기 머클 트리의 루트 노드이면, 상기 부모 노드에 할당된 해쉬값을 상기 대표 해쉬값으로서 상기 블록체인 서버에 의해 관리되는 상기 가상 화폐의 블록체인 상에 등록하도록 지원하고,
    (x3) 상기 부모 노드가 상기 머클 트리의 루트 노드가 아니면, 상기 부모 노드에 할당된 해쉬값을 상기 특정 해쉬값으로 하여 상기 (x1) 내지 (x3)를 반복하여 수행하는 것을 특징으로 하는 서버.
  26. 제25항에 있어서,
    상기 소정의 조건은,
    (i) 소정의 개수만큼의 주주명부 파일이 획득되거나 소정의 개수만큼의 message digest가 생성되는 조건, (ii) 소정 시간이 경과하는 조건, (iii) 블록 체인에서 블록이 생성되는 조건, (iv) 서비스 특성에 대한 조건 중 적어도 하나를 포함하는 것을 특징으로 하는 서버.
  27. 삭제
  28. 제25항에 있어서,
    상기 머클 트리가 체인 형태로 연결된 적어도 하나의 머클 트리 중 첫번째 머클 트리인 경우, 상기 머클 트리의 첫번째 리프 노드에는 텍스트, 숫자, 또는 기호로 이루어진 소정의 메시지 데이터의 해쉬값 또는 이를 가공한 값이 할당되는 것을 특징으로 하는 서버.
  29. 특정 회사의 주식 소유권 이전의 당사자로서 해당 주식을 매도하고자 하는 제1 사용자에 대응되는 제1 사용자 단말, 상기 특정 회사의 주식 소유권 이전의 당사자로서 해당 주식을 매수하고자 하는 제2 사용자에 대응되는 제2 사용자 단말, 상기 특정 회사의 회사 서버, 상기 주식 소유권 이전을 가상 화폐의 블록체인에 기록하기 위한 관리 서버, 및 상기 블록체인을 운용하는 블록체인 서버로 구성된 시스템에 포함된 상기 관리 서버에 있어서,
    상기 제1 사용자와 상기 제2 사용자 간에 특정 회사의 주식 소유권에 대한 이전 거래 내역이 반영된 주주명부 파일을 획득하거나 상기 주주명부 파일의 message digest를 획득하는 통신부, 및
    상기 주주명부 파일이 획득되거나 상기 주주명부 파일의 message digest가 획득되고 소정의 조건이 만족되면, 특정 해쉬값 - 상기 특정 해쉬값은, (i) 상기 특정 회사의 private key 및 상기 관리 서버의 private key로 서명된 상기 주주명부 파일의 해쉬값, (ii) 상기 관리 서버의 private key로 서명된 상기 주주명부 파일의 해쉬값, (iii) 상기 특정 회사의 private key 및 상기 관리 서버의 private key로 인코딩된 상기 message digest의 해쉬값 및 (iv) 상기 관리 서버의 private key로 인코딩된 상기 message digest의 해쉬값 중 어느 하나임 - 및 상기 특정 해쉬값과 매칭되는 적어도 하나의 이웃 해쉬값을 연산함으로써 생성되는 대표 해쉬값 또는 상기 대표 해쉬값을 가공한 값을 획득하고, 상기 획득된 값을 상기 블록체인 서버에 의해 관리되는 상기 가상 화폐의 블록체인 상에 등록하도록 지원하는 프로세서
    를 포함하되,
    상기 프로세서는, 상기 특정 해쉬값이 리프 노드에 할당된 머클 트리(merkle tree)를 생성하거나 생성하도록 지원하고,
    상기 소정의 조건이 만족되면, 상기 특정 해쉬값과 매칭되는 적어도 하나의 다른 리프 노드에 할당된 해쉬값을 연산하여 생성되는 상기 대표 해쉬값 또는 상기 대표 해쉬값을 가공한 값을 획득하고, 상기 획득된 값을 상기 블록체인 서버에 의해 관리되는 상기 가상 화폐의 블록체인 상에 등록하도록 지원하는 것을 특징으로 하며,
    상기 소정의 조건이 만족되면,
    (x1) 상기 프로세서는, (i) 상기 특정 해쉬값과 (ii) 상기 특정 해쉬값이 할당된 노드의 형제 노드에 할당된 해쉬값을 연산하거나 연산하도록 지원하고, 상기 연산의 결과인 연산값에 대한 해쉬값을 상기 노드의 부모 노드에 할당하거나 할당하도록 지원하며,
    (x2) 상기 부모 노드가 상기 머클 트리의 루트 노드이면, 상기 부모 노드에 할당된 해쉬값을 상기 대표 해쉬값으로서 상기 블록체인 서버에 의해 관리되는 상기 가상 화폐의 블록체인 상에 등록하도록 지원하고,
    (x3) 상기 부모 노드가 상기 머클 트리의 루트 노드가 아니면, 상기 부모 노드에 할당된 해쉬값을 상기 특정 해쉬값으로 하여 상기 (x1) 내지 (x3)를 반복하여 수행하는 것을 특징으로 하는 서버.
  30. 제29항에 있어서,
    상기 프로세서는,
    상기 주식 소유권에 대한 이전 거래 내역을 나타내는 주식 소유권 이전 거래 정보가 획득되면, 상기 관리 서버가, 상기 획득된 주식 소유권 이전 거래 정보와 관련된 정보가 진정한 것인지 확인하거나 확인하도록 지원하고,
    상기 확인 결과가 참이면, 상기 주주명부 파일이 획득되거나 상기 주주명부 파일의 message digest가 획득되는 것을 특징으로 하는 서버.
  31. 제30항에 있어서,
    상기 프로세서는,
    상기 제1 사용자의 private key로 서명된 주식 소유권 이전 거래 정보(A 정보)가 상기 제1 사용자 단말로부터 획득되면, 상기 제1 사용자의 public key를 이용하여 상기 주식 소유권 이전 거래 정보를 확인하거나 확인하도록 지원하고,
    상기 A 정보에 대하여 상기 제2 사용자의 private key로 서명된 정보가 상기 제2 사용자 단말로부터 획득되면, 상기 제1 사용자의 public key 및 상기 제2 사용자의 public key를 이용하여 상기 주식 소유권 이전 거래 정보를 확인하거나 확인하도록 지원하는 것을 특징으로 하는 서버.
  32. 삭제
  33. 제29항에 있어서,
    상기 머클 트리가 체인 형태로 연결된 적어도 하나의 머클 트리 중 첫번째 머클 트리인 경우, 상기 머클 트리의 첫번째 리프 노드에는 텍스트, 숫자, 또는 기호로 이루어진 소정의 메시지 데이터의 해쉬값 또는 이를 가공한 값이 할당되는 것을 특징으로 하는 서버.
  34. 특정 회사의 주주명부에 대한 검증을 요청하는 사용자의 단말, 상기 특정 회사의 회사 서버, 상기 요청에 따라 가상 화폐의 블록체인에 등록된 상기 특정회사의 주주명부를 검증하기 위한 관리 서버, 및 상기 블록체인을 운용하는 블록체인 서버로 구성된 시스템에 포함된 상기 관리 서버에 있어서,
    등록된 주주명부 파일과 관련된 검증 요청을 상기 사용자 단말로부터 획득하는 통신부, 및
    기존에 상기 관리 서버가 특정 회사의 주주명부 파일을 획득하거나 상기 주주명부 파일의 message digest를 획득하여, 제1 특정 해쉬값 - 상기 제1 특정 해쉬값은, (i) 상기 특정 회사의 private key 및 상기 관리 서버의 private key로 서명된 상기 주주명부 파일의 해쉬값, (ii) 상기 관리 서버의 private key로 서명된 상기 주주명부 파일의 해쉬값, (iii) 상기 특정 회사의 private key 및 상기 관리 서버의 private key로 인코딩된 상기 message digest의 해쉬값 및 (iv) 상기 관리 서버의 private key로 인코딩된 상기 message digest의 해쉬값 중 어느 하나임 - 과 소정의 조건 하에서 매칭되는 적어도 하나의 이웃 해쉬값을 연산함으로써 생성되는 제1 대표 해쉬값 또는 상기 제1 대표 해쉬값을 가공한 값을 획득하여 상기 블록체인 서버에 의해 관리되는 상기 가상 화폐의 블록체인 상에 등록하고 있는 상태에서, 상기 주주명부 파일과 관련된 검증 요청이 획득되고, 상기 검증 요청에 포함된 입력 데이터를 사용하여 생성된 제2 대표 해쉬값 또는 상기 제2 대표 해쉬값을 가공한 값이 상기 가상 화폐의 블록체인 상에 등록된 상기 제1 대표 해쉬값 또는 상기 제1 대표 해쉬값을 가공한 값과 대응되면, 상기 주주명부 파일과 관련된 검증이 이루어진 것으로 판단하거나 판단하도록 지원하는 프로세서
    를 포함하되,
    상기 프로세서는,
    상기 주주명부 파일과 관련된 검증 요청이 상기 사용자 단말로부터 획득되면, 상기 주주명부 파일과 관련된 소정의 transaction ID를 참조하고, 상기 transaction ID를 사용하여 상기 블록체인 서버에 의해 관리되는 상기 가상 화폐의 블록체인으로부터 OP 메시지를 획득하며,
    상기 검증 요청에 포함된 입력 데이터를 사용하여 생성된 상기 제2 대표 해쉬값 또는 상기 제2 대표 해쉬값을 가공한 값이 상기 OP 메시지에 포함된 상기 제1 대표 해쉬값 또는 상기 제1 대표 해쉬값을 가공한 값과 대응되면, 상기 주주명부 파일과 관련된 검증이 이루어진 것으로 판단하거나 판단하도록 지원하는 것을 특징으로 하고,
    상기 주주명부 파일과 관련된 검증 요청이 상기 사용자 단말로부터 획득되면, 상기 프로세서는, 상기 입력 데이터와 관련된 머클 트리 정보 및 리프 노드 정보를 식별하고, 상기 식별된 머클 트리 정보에 대응되는 상기 소정의 transaction ID를 참조하는 것을 특징으로 하는 서버.
  35. 삭제
  36. 삭제
KR1020160021166A 2016-02-23 2016-02-23 주주명부를 등록하고 주식 소유권 이전을 기록하고 등록된 주주명부 파일을 검증하는 방법 및 서버 KR101798119B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020160021166A KR101798119B1 (ko) 2016-02-23 2016-02-23 주주명부를 등록하고 주식 소유권 이전을 기록하고 등록된 주주명부 파일을 검증하는 방법 및 서버

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020160021166A KR101798119B1 (ko) 2016-02-23 2016-02-23 주주명부를 등록하고 주식 소유권 이전을 기록하고 등록된 주주명부 파일을 검증하는 방법 및 서버

Publications (2)

Publication Number Publication Date
KR20170099154A KR20170099154A (ko) 2017-08-31
KR101798119B1 true KR101798119B1 (ko) 2017-11-16

Family

ID=59761289

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020160021166A KR101798119B1 (ko) 2016-02-23 2016-02-23 주주명부를 등록하고 주식 소유권 이전을 기록하고 등록된 주주명부 파일을 검증하는 방법 및 서버

Country Status (1)

Country Link
KR (1) KR101798119B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20210058018A (ko) * 2019-11-13 2021-05-24 (주)인프라케이 블록체인과 인공지능을 활용한 온라인시험 평가시스템 및 그 방법

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107590659A (zh) * 2017-09-07 2018-01-16 中链科技有限公司 土地权属数据处理方法、系统和计算机可读存储介质
KR102026470B1 (ko) * 2017-11-06 2019-09-30 주식회사 트루테크놀로지스 분산원장을 이용하여 유가증권 공매도를 지원하는 방법, 시스템 및 비일시성의 컴퓨터 판독 가능 기록 매체
KR101937188B1 (ko) * 2018-02-06 2019-04-09 주식회사 코인플러그 블록체인 기반의 머클트리를 이용한 정보 관리 방법, 이를 이용한 서버 및 단말
WO2019240499A1 (ko) * 2018-06-12 2019-12-19 주식회사 트루쇼트 유가증권의 공매도를 지원하는 방법, 시스템 및 비일시성의 컴퓨터 판독 가능 기록 매체
CN112152981B (zh) * 2019-06-29 2021-11-19 华为技术有限公司 一种通信方法、节点以及通信系统
KR20210057641A (ko) * 2019-11-12 2021-05-21 주식회사 코스콤 비상장 주식의 거래 방법 및 이를 위한 매매플랫폼장치
CN111740915B (zh) * 2020-08-05 2020-12-11 百度在线网络技术(北京)有限公司 邻居节点确定方法、装置、设备和存储介质
CN117112573A (zh) * 2023-10-16 2023-11-24 中国科学技术大学 基于树形结构的数据权利转移记录的结构设计方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000250408A (ja) * 1999-03-01 2000-09-14 Ntt Data Corp ファイル認証システム、署名システム及び署名方法、認証システム及び認証方法、及び記録媒体
JP2014042214A (ja) * 2012-08-23 2014-03-06 Seiko Instruments Inc データ証明システムおよびデータ証明サーバ

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000250408A (ja) * 1999-03-01 2000-09-14 Ntt Data Corp ファイル認証システム、署名システム及び署名方法、認証システム及び認証方法、及び記録媒体
JP2014042214A (ja) * 2012-08-23 2014-03-06 Seiko Instruments Inc データ証明システムおよびデータ証明サーバ

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20210058018A (ko) * 2019-11-13 2021-05-24 (주)인프라케이 블록체인과 인공지능을 활용한 온라인시험 평가시스템 및 그 방법
KR102305863B1 (ko) * 2019-11-13 2021-09-29 (주)인프라케이 블록체인과 인공지능을 활용한 온라인시험 평가시스템 및 그 방법

Also Published As

Publication number Publication date
KR20170099154A (ko) 2017-08-31

Similar Documents

Publication Publication Date Title
KR101798119B1 (ko) 주주명부를 등록하고 주식 소유권 이전을 기록하고 등록된 주주명부 파일을 검증하는 방법 및 서버
US10491396B2 (en) Method and server for providing notary service for file and verifying file recorded by notary service
US11651109B2 (en) Permission management method, permission verification method, and related apparatus
US11790370B2 (en) Techniques for expediting processing of blockchain transactions
US10235538B2 (en) Method and server for providing notary service for file and verifying file recorded by notary service
US11849051B2 (en) System and method for off-chain cryptographic transaction verification
US20170316497A1 (en) Method for creating, registering, revoking authentication information and server using the same
EP3454238A1 (en) Registration and authorization method, device and system
JP6756041B2 (ja) 情報保護用のシステム及び方法
CN108985772A (zh) 一种区块链的验证方法、装置、设备及存储介质
JP7319961B2 (ja) 一対の結合ブロックチェーンを構成するバイナリブロックチェーンに関連するコンピュータ実装システム及び方法
EP3739538A1 (en) System and method of supporting reflection of transactions between blockchain networks
KR101780634B1 (ko) 가상 화폐를 이용하여 주식을 발행하여 분배하고 발행된 주식의 소유권을 이전하는 방법 및 서버
KR101890584B1 (ko) m of n 다중 서명에 의한 인증서 서비스를 제공하는 방법 및 이를 이용한 서버
CN109447636A (zh) 一种资产转移方法及装置
KR101829731B1 (ko) 주주명부를 등록하고 주식 소유권 이전을 기록하는 방법 및 서버
KR101849920B1 (ko) 머클 트리 구조를 사용하여 m of n 다중 서명에 의한 인증서 서비스를 제공하는 방법 및 이를 이용한 서버
CN109067849A (zh) 基于区块的数据同步方法
KR20180041050A (ko) 머클 트리 구조를 사용하여 m of n 다중 서명에 의한 인증서 서비스를 제공하는 방법 및 이를 이용한 서버
KR101890587B1 (ko) 머클 트리 구조를 사용하여 m of n 다중 서명에 의한 인증서 서비스를 제공하는 방법 및 이를 이용한 서버
CN118202622A (zh) 用于分布式区块链功能的方法和系统
KR20180041053A (ko) 머클 트리 구조를 사용하여 m of n 다중 서명에 의한 인증서 서비스를 제공하는 방법 및 이를 이용한 서버
CN114036229A (zh) 一种基于区块链的数据流转溯源方法
CN109063493A (zh) 去中心化高性能同步方法
KR20190101700A (ko) 프라이뱃 블록체인과 유효 거래기록 블록 위치값을 이용한 결제 보안 검증 시스템 및 방법

Legal Events

Date Code Title Description
A201 Request for examination
A302 Request for accelerated examination
E902 Notification of reason for refusal
E90F Notification of reason for final refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant