KR101841563B1 - Method for issuing, using, refunding, settling and revocating electric voucher in use of merkle tree structure on the basis of unspent transaction output, and server using the same - Google Patents

Method for issuing, using, refunding, settling and revocating electric voucher in use of merkle tree structure on the basis of unspent transaction output, and server using the same Download PDF

Info

Publication number
KR101841563B1
KR101841563B1 KR1020160131085A KR20160131085A KR101841563B1 KR 101841563 B1 KR101841563 B1 KR 101841563B1 KR 1020160131085 A KR1020160131085 A KR 1020160131085A KR 20160131085 A KR20160131085 A KR 20160131085A KR 101841563 B1 KR101841563 B1 KR 101841563B1
Authority
KR
South Korea
Prior art keywords
hash value
value
block chain
electronic voucher
specific
Prior art date
Application number
KR1020160131085A
Other languages
Korean (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 KR1020160131085A priority Critical patent/KR101841563B1/en
Priority to PCT/KR2017/011208 priority patent/WO2018070783A2/en
Application granted granted Critical
Publication of KR101841563B1 publication Critical patent/KR101841563B1/en

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
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • 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/38Payment protocols; Details thereof
    • G06Q20/387Payment using discounts or coupons
    • 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/38Payment protocols; Details thereof
    • G06Q20/382Payment protocols; Details thereof insuring higher security of transaction
    • G06Q20/3825Use of electronic signatures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/382Payment protocols; Details thereof insuring higher security of transaction
    • G06Q20/3829Payment protocols; Details thereof insuring higher security of transaction involving key management
    • 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
    • G06Q30/00Commerce
    • G06Q30/02Marketing; Price estimation or determination; Fundraising
    • 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
    • G06Q30/00Commerce
    • G06Q30/02Marketing; Price estimation or determination; Fundraising
    • G06Q30/0207Discounts or incentives, e.g. coupons or rebates
    • 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
    • G06Q30/00Commerce
    • G06Q30/04Billing or invoicing

Landscapes

  • Business, Economics & Management (AREA)
  • Accounting & Taxation (AREA)
  • Engineering & Computer Science (AREA)
  • Finance (AREA)
  • Strategic Management (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • General Business, Economics & Management (AREA)
  • Physics & Mathematics (AREA)
  • Development Economics (AREA)
  • Economics (AREA)
  • Marketing (AREA)
  • Computer Security & Cryptography (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Game Theory and Decision Science (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

The present invention relates to a method to issue an electronic voucher for registering an electronic voucher in a block chain of virtual cash to make copy or forgery/alternation impossible. According to the present invention, the method comprises: a step (a) of allowing a server to register an electronic voucher issuance transaction in a private block chain database and provide the predetermined issuer with PrivTxid representing location information on the private block chain database of the electronic voucher issuance transaction if the electronic voucher data, and the public key and a signature value of the predetermined issuer are valid when electronic voucher data to issue an electronic voucher, a public key of a predetermined issuer, and a signature value of a predetermined issuer signing a hash value of the electronic voucher data or a value including the same with a private key of the predetermined issuer are acquired; and a step (b) of allowing the server to register a representative hash value, generated by calculating the predetermined hash value and at least one neighboring hash value matched with the predetermined hash value, or a value, processing the representative hash value, in a public block chain database, and acquire Txid representing location information on the public block chain database of the representative hash value or the value processing the representative hash value.

Description

UTXO 기반으로 머클트리 구조를 사용하여 전자 바우처를 발행, 사용, 환불, 정산 및 파기하는 방법과 이를 이용한 서버{METHOD FOR ISSUING, USING, REFUNDING, SETTLING AND REVOCATING ELECTRIC VOUCHER IN USE OF MERKLE TREE STRUCTURE ON THE BASIS OF UNSPENT TRANSACTION OUTPUT, AND SERVER USING THE SAME}METHOD FOR ISSUING, USING, REFUNDING, SETTLING AND REVOCATING ELECTRIC VOUCHER IN USE OF MERKLE TREE STRUCTURE ON THE BASIS USING THE MULTI-TREE STRUCTURE BASED ON UTXO BASED OF UNSPENT TRANSACTION OUTPUT, AND SERVER USING THE SAME}

UTXO 기반으로 머클트리 구조를 사용하여 전자 바우처를 발행, 사용, 환불, 정산 및 파기하는 방법과 이를 이용한 서버에 관한 것으로, 보다 상세하게는, (a) 특정 발행자로부터의 상기 전자 바우처의 발행을 위한 (i) 전자 바우처 데이터, (ii) 상기 특정 발행자의 public key 및 (iii) 상기 전자 바우처 데이터의 해쉬값 또는 이를 포함한 값을 상기 특정 발행자의 private key로 서명한 상기 특정 발행자의 서명값이 획득되면, (i) 상기 전자 바우처 데이터, (ii) 상기 특정 발행자의 public key 및 (iii) 상기 특정 발행자의 서명값의 유효 여부를 확인하고, 유효일 경우, (i) 상기 전자 바우처 데이터, (ii) 상기 특정 발행자의 public key 및 (iii) 상기 특정 발행자의 서명값을 포함하는 전자 바우처 발행 transaction을 프라이빗 블록체인 데이터베이스에 등록하며, 상기 프라이빗 블록체인 데이터베이스에 등록된 상기 전자 바우처 발행 transaction의 상기 프라이빗 블록체인 데이터베이스 상의 위치 정보를 나타내는 PrivTxid를 상기 특정 발행자에게 제공하고; 및 (b) 소정의 조건이 만족되면, 특정 해쉬값 - 상기 특정 해쉬값은 (i) 상기 전자 바우처 데이터, (ii) 상기 특정 발행자의 public key 및 (iii) 상기 특정 발행자의 서명값에 대한 해쉬값임 - 및 상기 특정 해쉬값과 매칭되는 적어도 하나의 이웃 해쉬값을 연산함으로써 생성되는 대표 해쉬값 또는 상기 대표 해쉬값을 가공한 값을 퍼블릭 블록체인 데이터베이스에 등록하며, 상기 퍼블릭 블록체인 데이터베이스에 등록된 상기 대표 해쉬값 또는 상기 대표 해쉬값을 가공한 값의 상기 퍼블릭 블록체인 데이터베이스 상의 위치 정보를 나타내는 Txid를 획득하는 방법과 이를 이용하는 서버에 관한 것이며, 더 나아가 특정 사용자가 전자 바우처를 사용하는 방법, 그리고, 특정 사용자가 전자 바우처를 환불하는 방법, 특정 판매자가 전자 바우처를 정산하는 방법, 특정 발행자가 전자 바우처를 파기하는 방법 및 이를 이용하는 서버에 관한 것이다.The present invention relates to a method for issuing, using, refusing, accounting, and destroying an electronic voucher using a merge tree structure based on UTXO and a server using the method. More particularly, the present invention relates to a method for issuing, (i) e-voucher data, (ii) a public key of the specific issuer, and (iii) a hash value of the electronic voucher data or a value including the hash value of the issuer is obtained with the private key of the specific issuer (i) the electronic voucher data, (ii) the public key of the specific issuer, and (iii) the validity of the signature value of the specific issuer, (I) a public key of a specific issuer, and (iii) a signature value of the specific issuer, into a private block chain database, Providing PrivTxid indicating the location information on the private block chain database of the electronic voucher-issued transaction registered in the chain database to the specific issuer; (Ii) a public key of the particular issuer; and (iii) a hash value for the signature value of the particular issuer. And a value obtained by processing the representative hash value or the representative hash value generated by calculating at least one neighboring hash value matching the specific hash value in the public block chain database, A method of obtaining a Txid representing positional information on the public block chain database of a value obtained by processing the representative hash value or the representative hash value, and a server using the method. Further, the present invention relates to a method of using a specific voucher by a specific user, , How a particular user refunds an electronic voucher, how a particular seller clears an electronic voucher, How to destroy the e-voucher issuer and to the server using the same.

일반적으로 쿠폰, 상품권 등을 포함하는 바우처(voucher)는 상품이나 서비스 등을 이용하기 위한 금액이나 수량 등이 기재된 증표(이용권)로, 상품이나 서비스의 판매를 촉진시키거나 광고 등의 목적을 위해 제작되며, 음식점과 백화점 등에서 소정의 상품을 구매한 사람에게 다음에 재차 구매할 경우 그 상품에 대하여 소정의 금액만큼 할인이 적용되도록 하는 할인권 또는 소정 금액 이상의 상품을 구매한 대가로 지급되어 소정의 경품과 교환할 수 있도록 하는 경품 교환권 등을 통칭한다.In general, vouchers including coupons and vouchers are used to promote the sale of goods or services or for the purpose of advertising, etc. in the form of a voucher (a right of use) stating the amount or quantity for using goods or services. A discount voucher for discounting a predetermined amount of the product when a customer purchases a predetermined product at a restaurant or a department store or the like, or a discount voucher for purchasing a product of a predetermined amount or more, And the right to exchange prizes to enable them to do so.

근래에 들어서는 음식점과 백화점 등에서의 물품 구입뿐 아니라 연극, 영화, 도서 구입에도 활용할 수 있는 다양한 바우처가 제작되고 있으며, 또한 인터넷의 보편화에 따른 전자 바우처도 등장하는 등 사회 전반에 걸쳐 새로운 문화로써 정착되고 있고 있다.Recently, various vouchers that can be used not only for purchasing goods at restaurants and department stores but also for purchasing plays, films, and books have been produced. Electronic vouchers have also been introduced due to the widespread use of the Internet. It is.

그러나, 전자 바우처로 일반적으로 많이 사용되고 있는 모바일 쿠폰, 기프트 쿠폰, 할인 쿠폰이나 상품권 등은 대부분 바코드나 등록번호를 등록할 수 있는 체계로 제작되어 있으며, 이러한 전자 바우처는 대부분 이미지라는 단순 데이터가 문자 형식으로 전송되는 방식이기 때문에 복사 또는 위변조될 위험성이 높은 문제점이 있다. 또한, 시스템 상의 오류로 인하여 중복 발행되는 등의 문제점이 발생할 가능성이 높다.However, most mobile coupons, gift coupons, discount coupons, and gift certificates, which are generally used as electronic vouchers, are produced in a system in which most of the bar codes and registration numbers can be registered. In many of such electronic vouchers, So that there is a high risk of being copied or forged. In addition, there is a high possibility that problems such as duplication are caused due to errors in the system.

KRKR 10-2010-011637910-2010-0116379 AA USUS 2016-02839202016-0283920 A1A1 USUS 2016-00285522016-0028552 A1A1

본 발명은 상술한 문제점들을 모두 해결하는 것을 그 목적으로 한다. SUMMARY OF THE INVENTION The present invention has been made to solve all the problems described above.

또한, 본 발명은 가상 화폐의 블록체인에 전자 바우처를 등록하여 복사 또는 위/변조가 불가능하도록 하는 방법 및 서버를 제공하는 것을 다른 목적으로 한다. It is another object of the present invention to provide a method and server for registering an electronic voucher in a block chain of virtual money to make it impossible to copy or up / modulate.

또한, 본 발명은 전자 바우처의 사용 등의 정보를 해쉬함수와 암호화 기술을 이용하여 보안이 보장되고 위/변조가 불가능하도록 하는 방법 및 서버를 제공하는 것을 또 다른 목적으로 한다.It is another object of the present invention to provide a method and server for securing security by using a hash function and an encryption technique, such that the use of an electronic voucher or the like is prohibited.

또한, 본 발명은 가상 화폐의 블록체인에 전자 바우처를 등록함으로써 전자 바우처가 중복 발행되는 등의 문제점을 미연에 방지할 수 있도록 하는 방법 및 서버를 제공하는 것을 또 다른 목적으로 한다.It is another object of the present invention to provide a method and a server for preventing an electronic voucher from being duplicated by registering an electronic voucher in a block chain of virtual money.

상기 목적을 달성하기 위한 본 발명의 대표적인 구성은 다음과 같다.In order to accomplish the above object, a representative structure of the present invention is as follows.

본 발명의 일 실시예에 따르면, 전자 바우처를 발행하는 방법에 있어서, (a) 특정 발행자로부터의 상기 전자 바우처의 발행을 위한 (i) 전자 바우처 데이터, (ii) 상기 특정 발행자의 public key 및 (iii) 상기 전자 바우처 데이터의 해쉬값 또는 이를 포함한 값을 상기 특정 발행자의 private key로 서명한 상기 특정 발행자의 서명값이 획득되면, 서버는, (i) 상기 전자 바우처 데이터, (ii) 상기 특정 발행자의 public key 및 (iii) 상기 특정 발행자의 서명값의 유효 여부를 확인하여 유효일 경우, (i) 상기 전자 바우처 데이터, (ii) 상기 특정 발행자의 public key 및 (iii) 상기 특정 발행자의 서명값을 포함하는 전자 바우처 발행 transaction을 프라이빗 블록체인 데이터베이스에 등록하거나 등록하도록 지원하며, 상기 프라이빗 블록체인 데이터베이스에 등록된 상기 전자 바우처 발행 transaction의 상기 프라이빗 블록체인 데이터베이스 상의 위치 정보를 나타내는 PrivTxid를 상기 특정 발행자에게 제공하거나 제공하도록 지원하는 단계; 및 (b) 소정의 조건이 만족되면, 상기 서버가, 특정 해쉬값 - 상기 특정 해쉬값은 (i) 상기 전자 바우처 데이터, (ii) 상기 특정 발행자의 public key 및 (iii) 상기 특정 발행자의 서명값에 대한 해쉬값임 - 및 상기 특정 해쉬값과 매칭되는 적어도 하나의 이웃 해쉬값을 연산함으로써 생성되는 대표 해쉬값 또는 상기 대표 해쉬값을 가공한 값을 퍼블릭 블록체인 데이터베이스에 등록하거나 등록하도록 지원하며, 상기 퍼블릭 블록체인 데이터베이스에 등록된 상기 대표 해쉬값 또는 상기 대표 해쉬값을 가공한 값의 상기 퍼블릭 블록체인 데이터베이스 상의 위치 정보를 나타내는 Txid를 획득하거나 획득하도록 지원하는 단계; 를 포함하는 것을 특징으로 하는 방법이 제공된다.According to an embodiment of the present invention, there is provided a method of issuing an electronic voucher, comprising the steps of: (a) issuing electronic vouchers from a specific issuer; (ii) iii) When the signature value of the specific issuer that has signed the hash value of the electronic voucher data or a value including the hash value of the electronic coupon data with the private key of the specific issuer is obtained, the server obtains the electronic coupon data, (I) the electronic voucher data, (ii) the public key of the specific issuer, and (iii) the signature value of the specific issuer, if the signature value of the specific issuer is valid, And registering or registering an electronic voucher-issuing transaction including the electronic voucher-issued transaction in the private block chain database with the electronic voucher- Providing a PrivTxid indicating location information on the private block chain database of the issuing transaction to the specific issuer; And (b) if the predetermined condition is satisfied, the server determines whether the particular hash value - the particular hash value - is (i) the electronic voucher data, (ii) the public key of the particular issuer, and (iii) And a value obtained by processing the representative hash value or the representative hash value generated by calculating at least one neighbor hash value matched with the specific hash value is registered or registered in the public block chain database, Acquiring or obtaining a Txid indicating location information on the public block chain database of the representative hash value or the value obtained by processing the representative hash value registered in the public block chain database; The method comprising the steps of:

본 발명의 실 실시예에 따르면, 전자 바우처를 사용하는 방법에 있어서, (a) 특정 사용자로부터 상기 전자 바우처의 사용을 위한 (i) 이전에 적어도 일부 미사용된 상기 전자 바우처에 대한 PrivTxid를 포함하는 전자 바우처 데이터, (ii) 상기 특정 사용자의 public key 및 (iii) 상기 전자 바우처 데이터의 해쉬값 또는 이를 포함한 값을 상기 특정 사용자의 private key로 서명한 상기 특정 사용자의 서명값이 획득되면, 서버는, (i) 상기 전자 바우처 데이터, (ii) 상기 특정 사용자의 public key 및 (iii) 상기 특정 사용자의 서명값의 유효 여부를 확인하여 유효일 경우, (i) 상기 전자 바우처 데이터, (ii) 상기 특정 사용자의 public key 및 (iii) 상기 특정 사용자의 서명값을 포함하는 전자 바우처 사용 transaction을 프라이빗 블록체인 데이터베이스에 등록하거나 등록하도록 지원하며, 상기 프라이빗 블록체인 데이터베이스에 등록된 상기 전자 바우처 사용 transaction의 상기 프라이빗 블록체인 데이터베이스 상의 위치 정보를 나타내는 PrivTxid를 상기 특정 발행자에게 제공하거나 제공하도록 지원하는 단계; 및 (b) 소정의 조건이 만족되면, 상기 서버가, 특정 해쉬값 - 상기 특정 해쉬값은 (i) 상기 전자 바우처 데이터, (ii) 상기 특정 사용자의 public key 및 (iii) 상기 특정 사용자의 서명값의 해쉬값임 - 및 상기 특정 해쉬값과 매칭되는 적어도 하나의 이웃 해쉬값을 연산함으로써 생성되는 대표 해쉬값 또는 상기 대표 해쉬값을 가공한 값을 퍼블릭 블록체인 데이터베이스에 등록하거나 등록하도록 지원하며, 상기 퍼블릭 블록체인 데이터베이스에 등록된 상기 대표 해쉬값 또는 상기 대표 해쉬값을 가공한 값의 상기 퍼블릭 블록체인 데이터베이스 상의 위치 정보를 나타내는 Txid를 획득하거나 획득하도록 지원하는 단계; 를 포함하는 것을 특징으로 하는 방법이 제공된다.According to an embodiment of the present invention, there is provided a method of using an electronic voucher, comprising the steps of: (a) transmitting an electronic voucher to the electronic voucher, the electronic voucher comprising (i) When the signature value of the specific user who has signed the private key of the specific user with the hash value of the electronic coupon data or a value including the hash value of the electronic coupon data is obtained, (i) the electronic voucher data, (ii) the public key of the specific user, and (iii) the validity of the signature value of the specific user, And (iii) registering or registering an electronic voucher use transaction including the signature value of the specific user in the private block chain database It said, method comprising: supporting PrivTxid indicating location information on the private block the private block of the electronic voucher using transaction registered in the database chain chain database to provide or offer the particular issuer; And (b) if the predetermined condition is satisfied, the server sends a hash value having a specific hash value, wherein the particular hash value includes (i) the electronic voucher data, (ii) the public key of the particular user, and (iii) And a value obtained by processing the representative hash value or the representative hash value generated by calculating at least one neighbor hash value matching the specific hash value with the public block chain database, Acquiring or obtaining a Txid indicating location information on the public block chain database of the representative hash value or the value obtained by processing the representative hash value registered in the public block chain database; The method comprising the steps of:

본 발명의 일 실시예에 따르면, 전자 바우처를 환불하는 방법에 있어서, (a) 특정 사용자로부터 상기 전자 바우처의 환불을 위한 (i) 이전에 적어도 일부 미사용되었으며 만료된 상기 전자 바우처에 대한 PrivTxid를 포함하는 전자 바우처 데이터, (ii) 상기 특정 사용자의 public key 및 (iii) 상기 전자 바우처 데이터의 해쉬값 또는 이를 포함한 값을 상기 특정 사용자의 private key로 서명한 상기 특정 사용자의 서명값이 획득되면, 서버는, (i) 상기 전자 바우처 데이터, (ii) 상기 특정 사용자의 public key 및 (iii) 상기 특정 사용자의 서명값의 유효 여부를 확인하여 유효일 경우, (i) 상기 전자 바우처 데이터, (ii) 상기 특정 사용자의 public key 및 (iii) 상기 특정 사용자의 서명값을 포함하는 전자 바우처 환불 transaction을 프라이빗 블록체인 데이터베이스에 등록하거나 등록하도록 지원하며, 상기 프라이빗 블록체인 데이터베이스에 등록된 상기 전자 바우처 환불 transaction의 상기 프라이빗 블록체인 데이터베이스 상의 위치 정보를 나타내는 PrivTxid를 상기 특정 사용자에게 제공하거나 제공하도록 지원하는 단계; 및 (b) 소정의 조건이 만족되면, 상기 서버가, 특정 해쉬값 - 상기 특정 해쉬값은 (i) 상기 전자 바우처 데이터, (ii) 상기 특정 사용자의 public key 및 (iii) 상기 특정 사용자의 서명값의 해쉬값임 - 및 상기 특정 해쉬값과 매칭되는 적어도 하나의 이웃 해쉬값을 연산함으로써 생성되는 대표 해쉬값 또는 상기 대표 해쉬값을 가공한 값을 퍼블릭 블록체인 데이터베이스에 등록하거나 등록하도록 지원하며, 상기 퍼블릭 블록체인 데이터베이스에 등록된 상기 대표 해쉬값 또는 상기 대표 해쉬값을 가공한값의 상기 퍼블릭 블록체인 데이터베이스 상의 위치 정보를 나타내는 Txid를 획득하거나 획득하도록 지원하는 단계; 를 포함하는 것을 특징으로 하는 방법이 제공된다.In accordance with an embodiment of the present invention, there is provided a method for refunding an electronic voucher, comprising the steps of: (a) including a PrivTxid for at least some unused and expired electronic vouchers for refund of said electronic voucher prior to (i) (Ii) a public key of the specific user, and (iii) a signature value of the specific user who has signed the hash value of the electronic voucher data or a value including the hash value with the private key of the specific user, (I) the electronic voucher data, (ii) the public key of the specific user, and (iii) the validity of the signature value of the specific user, A public key of a specific user, and (iii) an electronic coupon refund transaction including the signature value of the specific user in the private block chain database To support and, further comprising: support PrivTxid indicating location information on the private block the private block of the electronic voucher refund transaction registered in the database chain chain database for the particular user to provide or offer; And (b) if the predetermined condition is satisfied, the server sends a hash value having a specific hash value, wherein the particular hash value includes (i) the electronic voucher data, (ii) the public key of the particular user, and (iii) And a value obtained by processing the representative hash value or the representative hash value generated by calculating at least one neighbor hash value matching the specific hash value with the public block chain database, Acquiring or obtaining a Txid indicating location information on the public block chain database of the representative hash value or the value obtained by processing the representative hash value registered in the public block chain database; The method comprising the steps of:

본 발명의 일 실시예에 따르면, 전자 바우처를 정산하는 방법에 있어서, (a) 특정 판매자로부터 상기 전자 바우처의 정산을 위한 (i) 사용된 상기 전자 바우처에 대한 PrivTxid의 개수 및 각각의 사용 시점에서 적어도 일부 미사용된 상기 전자 바우처에 대한 PrivTxid를 적어도 포함하는 전자 바우처 데이터, (ii) 상기 특정 판매자의 public key 및 (iii) 상기 전자 바우처 데이터의 해쉬값 또는 이를 포함한 값을 상기 특정 판매자의 private key로 서명한 상기 특정 판매자의 서명값이 획득되면, 서버는, (i) 상기 전자 바우처 데이터, (ii) 상기 특정 판매자의 public key 및 (iii) 상기 특정 판매자의 서명값의 유효 여부를 확인하여 유효일 경우, (i) 상기 전자 바우처 데이터, (ii) 상기 특정 판매자의 public key 및 (iii) 상기 특정 판매자의 서명값을 포함하는 전자 바우처 정산 transaction을 프라이빗 블록체인 데이터베이스에 등록하거나 등록하도록 지원하며, 상기 프라이빗 블록체인 데이터베이스에 등록된 상기 전자 바우처 정산 transaction의 상기 프라이빗 블록체인 데이터베이스 상의 위치 정보를 나타내는 PrivTxid를 상기 특정 판매자에게 제공하거나 제공하도록 지원하는 단계; 및 (b) 소정의 조건이 만족되면, 상기 서버가, 특정 해쉬값 - 상기 특정 해쉬값은 (i) 상기 전자 바우처 데이터, (ii) 상기 특정 판매자의 public key 및 (iii) 상기 특정 판매자의 서명값의 해쉬값임 - 및 상기 특정 해쉬값과 매칭되는 적어도 하나의 이웃 해쉬값을 연산함으로써 생성되는 대표 해쉬값 또는 상기 대표 해쉬값을 가공한 값을 퍼블릭 블록체인 데이터베이스에 등록하거나 등록하도록 지원하며, 상기 퍼블릭 블록체인 데이터베이스에 등록된 상기 대표 해쉬값 또는 상기 대표 해쉬값을 가공한 값의 상기 퍼블릭 블록체인 데이터베이스 상의 위치를 나타내는 Txid를 획득하거나 획득하도록 지원하는 단계; 를 포함하는 것을 특징으로 하는 방법이 제공된다.In accordance with an embodiment of the present invention, there is provided a method for settlement of an electronic voucher, comprising the steps of: (a) determining the number of PrivTxids for the electronic voucher used for settlement of the electronic voucher from a particular seller, (Ii) a public key of the specific seller and (iii) a hash value of the electronic voucher data or a value including the PrivTxid for at least some unused electronic vouchers, to the private key of the specific seller When the signature value of the specific seller that has signed is obtained, the server confirms the validity of the electronic coupon data, (ii) the public key of the specific seller, and (iii) the signature value of the specific seller, (ii) a public key of the specific seller, and (iii) a signature value of the specific seller, the electronic coupon settlement trans action to the private block chain database and to provide or provide the PrivTxid indicating the location information on the private block chain database of the electronic courier settlement transaction registered in the private block chain database to the specific seller step; And (b) if the predetermined condition is satisfied, the server determines whether the particular hash value - the particular hash value - is (i) the electronic voucher data, (ii) the public key of the particular seller, and (iii) And a value obtained by processing the representative hash value or the representative hash value generated by calculating at least one neighbor hash value matching the specific hash value with the public block chain database, Obtaining or obtaining the representative hash value registered in the public block chain database or a Txid indicating a position on the public block chain database of the value obtained by processing the representative hash value; The method comprising the steps of:

본 발명의 일 실시예에 따르면, 전자 바우처를 파기하는 방법에 있어서, (a) 특정 발행자로부터 상기 전자 바우처의 파기를 위한 (i) 이전에 적어도 일부 사용되지 않았으며 만료된 상기 전자 바우처에 대한 PrivTxid를 포함하는 전자 바우처 데이터, (ii) 상기 특정 발행자의 public key 및 (iii) 상기 전자 바우처 데이터의 해쉬값 또는 이를 포함한 값을 상기 특정 발행자의 private key로 서명한 상기 특정 발행자의 서명값이 획득되면, 서버는, (i) 상기 전자 바우처 데이터, (ii) 상기 특정 발행자의 public key 및 (iii) 상기 특정 발행자의 서명값의 유효 여부를 확인하여 유효일 경우, (i) 상기 전자 바우처 데이터, (ii) 상기 특정 발행자의 public key 및 (iii) 상기 특정 발행자의 서명값을 포함하는 전자 바우처 파기 transaction을 프라이빗 블록체인 데이터베이스에 등록하거나 등록하도록 지원하고, 상기 프라이빗 블록체인 데이터베이스에 등록된 상기 전자 바우처 파기 transaction의 상기 프라이빗 블록체인 데이터베이스 상의 위치 정보를 나타내는 PrivTxid를 상기 특정 발행자에게 제공하거나 제공하도록 지원하는 단계; 및 (b) 소정의 조건이 만족되면, 상기 서버가, 특정 해쉬값 - 상기 특정 해쉬값은 (i) 상기 전자 바우처 데이터, (ii) 상기 특정 발행자의 public key 및 (iii) 상기 특정 발행자의 서명값의 해쉬값임 - 및 상기 특정 해쉬값과 매칭되는 적어도 하나의 이웃 해쉬값을 연산함으로써 생성되는 대표 해쉬값 또는 상기 대표 해쉬값을 가공한 값을 퍼블릭 블록체인 데이터베이스에 등록하거나 등록하도록 지원하며, 상기 퍼블릭 블록체인 데이터베이스에 등록된 상기 대표 해쉬값 또는 상기 대표 해쉬값을 가공한 값의 상기 퍼블릭 블록체인 데이터베이스 상의 위치 정보를 나타내는 Txid를 획득하거나 획득하도록 지원하는 단계; 를 포함하는 것을 특징으로 하는 방법이 제공된다.In accordance with an embodiment of the present invention, there is provided a method for destroying an electronic voucher, comprising the steps of: (a) providing a PrivTxid for an electronic voucher that has been at least partially unused and expired prior to (i) (Ii) a public key of the specific issuer, and (iii) a signature value of the particular issuer that has signed the hash value of the electronic voucher data or a value including the hash value with the private key of the specific issuer is obtained (I) the electronic voucher data, (ii) the public key of the specific issuer, and (iii) the validity of the signature value of the specific issuer, ) The public key of the specific issuer and (iii) the signature value of the specific issuer in the private block chain database Providing a PrivTxid indicating location information on the private block chain database of the electronic voucher destruction transaction registered in the private block chain database to provide or provide the PrivTxid to the specific issuer; And (b) if the predetermined condition is satisfied, the server determines whether the particular hash value - the particular hash value - is (i) the electronic voucher data, (ii) the public key of the particular issuer, and (iii) And a value obtained by processing the representative hash value or the representative hash value generated by calculating at least one neighbor hash value matching the specific hash value with the public block chain database, Acquiring or obtaining a Txid indicating location information on the public block chain database of the representative hash value or the value obtained by processing the representative hash value registered in the public block chain database; The method comprising the steps of:

또한, 본 발명의 일 실시예에 따르면, 상기의 방법들을 수행하기 위한 서버가 제공된다.According to an embodiment of the present invention, there is also provided a server for performing the above methods.

이 외에도, 본 발명의 방법을 실행하기 위한 컴퓨터 프로그램을 기록하기 위한 컴퓨터 판독 가능한 기록 매체가 더 제공된다.In addition, a computer readable recording medium for recording a computer program for executing the method of the present invention is further provided.

본 발명에 의하면, 다음과 같은 효과가 있다.The present invention has the following effects.

본 발명은 가상 화폐의 블록체인에 전자 바우처를 등록하여 복사 또는 위/변조가 불가능하도록 하여 전자 바우처의 신뢰성 및 보안성을 향상시킬 수 있다. In the present invention, an electronic voucher is registered in a block chain of a virtual currency to make it impossible to copy or digitally change the electronic voucher, thereby improving the reliability and security of the electronic voucher.

또한, 본 발명은 전자 바우처의 사용 등의 정보를 해쉬함수와 암호화 기술을 이용하여 보안이 보장되고 위/변조가 불가능하도록 하여 전자 바우처의 신뢰성 및 보안성을 향상시킬 수 있다.In addition, the present invention can secure the security of the electronic voucher by using a hash function and an encryption technique, and can prevent the use of the electronic voucher, thereby improving the reliability and security of the electronic voucher.

또한, 본 발명은 가상 화폐의 블록체인에 전자 바우처를 등록함으로써 전자 바우처가 중복 발행되는 등의 문제점을 미연에 방지할 수 있어 전자 바우처의 신뢰성 및 보안성을 향상시킬 수 있다.In addition, the present invention can prevent problems such as duplicate issuance of an electronic voucher by registering an electronic voucher in a block chain of virtual money, thereby improving the reliability and security of the electronic voucher.

도 1은 본 발명의 일 실시예에 따라 전자 바우처를 발행하는 서버를 개략적으로 도시한 것이고,
도 2는 본 발명의 일 실시예에 따라 전자 바우처를 발행하는 방법을 개략적으로 도시한 것이고,
도 3과 도 4는 본 발명이 일 실시예에 따른 전자 바우처 발행 transaction을 퍼블릭 블록체인 데이터베이스에 등록하는 과정을 개략적으로 도시한 것이고,
도 5는 본 발명의 일 실시예에 따른 전자 바우처를 발행하는 방법에서 전자 바우처를 발행하는 전자 바우처 발행자를 등록하는 방법을 개략적으로 도시한 것이고,
도 6은 본 발명의 일 실시예에 따라 전자 바우처를 사용하는 방법을 개략적으로 도시한 것이고,
도 7은 본 발명의 일 실시예에 따라 전자 바우처를 환불하는 방법을 개략적으로 도시한 것이고,
도 8은 본 발명의 일 실시예에 따라 전자 바우처를 정산하는 방법을 개략적으로 도시한 것이고,
도 9는 본 발명의 일 실시예에 따라 전자 바우처를 파기하는 방법을 개략적으로 도시한 것이다.
1 schematically shows a server for issuing an electronic voucher according to an embodiment of the present invention,
2 schematically shows a method of issuing an electronic voucher according to an embodiment of the present invention,
3 and 4 are views schematically illustrating a process of registering an electronic voucher-issued transaction according to an embodiment of the present invention in a public block chain database,
5 schematically shows a method of registering an electronic voucher issuer that issues an electronic voucher in a method of issuing an electronic voucher according to an embodiment of the present invention,
Figure 6 schematically illustrates a method of using an electronic voucher in accordance with one embodiment of the present invention,
7 schematically illustrates a method for refunding an electronic voucher according to an embodiment of the present invention,
8 schematically shows a method of settlement of an electronic voucher according to an embodiment of the present invention,
9 schematically shows a method for destroying an electronic voucher according to an embodiment of the present invention.

후술하는 본 발명에 대한 상세한 설명은, 본 발명이 실시될 수 있는 특정 실시예를 예시로서 도시하는 첨부 도면을 참조한다. 이들 실시예는 당업자가 본 발명을 실시할 수 있기에 충분하도록 상세히 설명된다. 본 발명의 다양한 실시예는 서로 다르지만 상호 배타적일 필요는 없음이 이해되어야 한다. 예를 들어, 여기에 기재되어 있는 특정 형상, 구조 및 특성은 일 실시예에 관련하여 본 발명의 정신 및 범위를 벗어나지 않으면서 다른 실시예로 구현될 수 있다. 또한, 각각의 개시된 실시예 내의 개별 구성요소의 위치 또는 배치는 본 발명의 정신 및 범위를 벗어나지 않으면서 변경될 수 있음이 이해되어야 한다. 따라서, 후술하는 상세한 설명은 한정적인 의미로서 취하려는 것이 아니며, 본 발명의 범위는, 적절하게 설명된다면, 그 청구항들이 주장하는 것과 균등한 모든 범위와 더불어 첨부된 청구항에 의해서만 한정된다. 도면에서 유사한 참조부호는 여러 측면에 걸쳐서 동일하거나 유사한 기능을 지칭한다.The following detailed description of the invention refers to the accompanying drawings, which illustrate, by way of illustration, specific embodiments in which the invention may be practiced. These embodiments are described in sufficient detail to enable those skilled in the art to practice the invention. It should be understood that the various embodiments of the present invention are different, but need not be mutually exclusive. For example, certain features, structures, and characteristics described herein may be implemented in other embodiments without departing from the spirit and scope of the invention in connection with an embodiment. It is also to be understood that the position or arrangement of the individual components within each disclosed embodiment may be varied without departing from the spirit and scope of the invention. The following detailed description is, therefore, not to be taken in a limiting sense, and the scope of the present invention is to be limited only by the appended claims, along with the full scope of equivalents to which such claims are entitled, if properly explained. In the drawings, like reference numerals refer to the same or similar functions throughout the several views.

이하, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 본 발명을 용이하게 실시할 수 있도록 하기 위하여, 본 발명의 바람직한 실시예들에 관하여 첨부된 도면을 참조하여 상세히 설명하기로 한다.Hereinafter, preferred embodiments of the present invention will be described in detail with reference to the accompanying drawings, so that those skilled in the art can easily carry out the present invention.

도 1은 본 발명의 일 실시예에 따라 전자 바우처를 발행하는 서버를 개략적으로 도시한 것이고, 서버(100)는 통신부(101)와 프로세서(102)를 포함할 수 있다. 동일한 참조 부호를 이용하여 나타낸 것은 설명의 편의를 위한 것일 뿐, 이들 개별 장치들이 동일하다는 의미로 의도된 것은 아니다. 그리고, 본 발명의 다른 실시예에서의 방법은 서버를 상이하게 구성하여 해당 방법을 수행하거나 동일한 서버(100)를 통해 해당 방법을 수행할 수도 있다.FIG. 1 schematically shows a server for issuing an electronic voucher according to an embodiment of the present invention. The server 100 may include a communication unit 101 and a processor 102. The use of the same reference numerals is for convenience of explanation only and is not intended to mean that these individual devices are the same. In another embodiment of the present invention, the server may be configured differently to perform the corresponding method, or may perform the corresponding method through the same server 100.

구체적으로, 서버(100)는 전형적으로 컴퓨팅 장치(예컨대, 컴퓨터 프로세서, 메모리, 스토리지, 입력 장치 및 출력 장치, 기타 기존의 컴퓨팅 장치의 구성요소들을 포함할 수 있는 장치; 라우터, 스위치 등과 같은 전자 통신 장치; 네트워크 부착 스토리지(NAS) 및 스토리지 영역 네트워크(SAN)와 같은 전자 정보 스토리지 시스템)와 컴퓨터 소프트웨어(즉, 컴퓨팅 장치로 하여금 특정의 방식으로 기능하게 하는 인스트럭션들)의 조합을 이용하여 원하는 시스템 성능을 달성하는 것일 수 있다.In particular, the server 100 typically includes a computing device (e.g., a computer processor, memory, storage, input and output devices, and other devices capable of including components of a conventional computing device; (E.g., an electronic information storage system such as a network attached storage (NAS) and a storage area network (SAN)) and computer software (i.e., instructions that cause a computing device to function in a particular manner) ≪ / RTI >

이와 같은 컴퓨팅 장치의 통신부(101)는 연동되는 타 컴퓨팅 장치와 요청과 응답을 송수신할 수 있는바, 일 예시로서 그러한 요청과 응답은 동일한 TCP 세션에 의하여 이루어질 수 있지만, 이에 한정되지는 않는바, 예컨대 UDP 데이터그램으로서 송수신될 수도 있을 것이다.The communication unit 101 of such a computing device can send and receive requests and responses to and from other interworking computing devices. As an example, such requests and responses can be made by the same TCP session, For example, as a UDP datagram.

또한, 컴퓨팅 장치의 프로세서(102)는 MPU(Micro Processing Unit) 또는 CPU(Central Processing Unit), 캐쉬 메모리(Cache Memory), 데이터 버스(Data Bus) 등의 하드웨어 구성을 포함할 수 있다. 또한, 운영체제, 특정 목적을 수행하는 애플리케이션의 소프트웨어 구성을 더 포함할 수도 있다.The processor 102 of the computing device may include a hardware configuration such as a micro processing unit (MPU) or a central processing unit (CPU), a cache memory, and a data bus. It may further include a software configuration of an operating system and an application that performs a specific purpose.

그리고, 본 발명에서의 전자 바우처는 쿠폰, 상품권, 교환권, 사용권 등에서와 같이 금액이나 사용/이용 회수, 교환할 수 있는 상품 등 중 적어도 일부와 같은 유무형의 가치 정보를 가지는 것으로, 유무형의 가치 정보를 기록한 모든 유형의 전자 파일을 포함할 수 있다.The electronic voucher according to the present invention is a voucher having an intangible value information such as a coupon, a voucher, a voucher, a usage right, at least a part of the amount, the number of times of use / You can include any type of electronic file you have recorded.

먼저, 도 2를 참조하여 본 발명의 일 실시예에 따른 전자 바우처를 발행하는 방법을 도 1의 서버를 통해 설명하면 다음과 같다.First, referring to FIG. 2, a method of issuing an electronic voucher according to an embodiment of the present invention will be described with reference to a server of FIG.

전자 바우처를 발행하기 위하여, 전자 바우처 발행자인 특정 발행자(110)로부터 전자 바우처의 발행을 위한 (i) 전자 바우처 데이터, (ii) 특정 발행자의 public key 및 (iii) 전자 바우처 데이터의 해쉬값 또는 이를 포함한 값을 특정 발행자의 private key로 서명한 특정 발행자의 서명값에 의한 전자 바우처 발행 요청(request(issue TrxA))이 특정 발행자의 단말로부터 송신되면 서버(100)는 이를 통신부(101)를 통해 수신한다(S100).(Ii) a public key of a specific issuer and (iii) a hash value of the electronic voucher data, or a hash value of the electronic coupon data for issuance of the electronic coupon from the specific issuer 110, which is the electronic coupon issuer When a request for issuing an electronic coupon (request (issue TrxA)) based on a signature value of a specific issuer that has signed a value including the private key of a specific issuer is transmitted from a terminal of a specific issuer, the server 100 receives (S100).

이때, 전자 바우처 데이터는, 전자 바우처의 타입 정보, 상기 전자 바우처를 구매하는 특정 사용자의 public key, 상기 전자 바우처의 가치 정보, 상기 특정 발행자의 고유 ID 정보 및 상기 전자 바우처의 사용 기한 정보 중 적어도 하나 이상을 포함할 수 있다. 그리고, 전자 바우처의 타입 정보는 현재 수행하는 동작을 정의하기 위한 것으로 전자 바우처 발행을 표시하는 정보일 수 있다. 또한, 전자 바우처를 구매하는 특정 사용자의 public key는 특정 사용자를 지정함으로써 해당 전자 바우처를 구매한 사용자를 특정할 수도 있으며, 이와는 달리 사용자를 특정하지 않음으로써 무기명 상품권과 같이 일반 화폐와 유사하게 사용되게 할 수도 있다. 그리고, 전자 바우처의 가치 정보는 사용 금액, 사용 회수, 교환 가능한 상품 정보 등을 포함하는 유무형의 가치에 대한 정보일 수 있다. 또한, 특정 발행자의 고유 ID는 특정 발행자를 식별하기 위한 정보일 수 있으며, 일 예로 특정 발행자의 public key의 해쉬값 또는 이를 포함한 값일 수 있다. 그리고, 특정 발행자 또는 특정 사용자에 대한 정보는 사전에 서버(100)에 등록된 것이거나, 필요에 따라 해당 시점에 서버(100)에 등록할 수도 있으며, 등록 정보는 private key와 public key를 가진 발행자 또는 사용자가 자신의 public key를 서버(100)에 등록한 것으로, 이에 대한 설명은 다른 동작에서 설명한다. 또한, 전자 바우처의 사용 기한 정보는 전자 바우처를 사용할 수 있는 기한을 지정한 날짜 정보일 수 있다.At this time, the electronic voucher data includes at least one of the type information of the electronic voucher, the public key of the specific user purchasing the electronic voucher, the value information of the electronic voucher, the unique ID information of the specific issuer, Or more. The type information of the electronic voucher is for defining an operation to be performed at present, and may be information for displaying an electronic voucher issuance. In addition, the public key of a specific user purchasing an electronic voucher may specify a user who purchased the electronic voucher by designating a specific user. Alternatively, the public key may be used similar to an ordinary voucher You may. And, the value information of the electronic voucher may be information on the value of money or money including the amount of usage, the number of times of use, exchangeable commodity information, and the like. In addition, the unique ID of a specific issuer may be information for identifying a particular issuer, for example, a hash value of a public key of a specific issuer, or a value including the hash value. The information about a particular issuer or a specific user may be registered in advance in the server 100 or may be registered in the server 100 at the time when necessary. The registration information may include a public key and a public key Or the user has registered his or her public key in the server 100, and the description thereof will be described in another operation. In addition, the expiration date information of the electronic voucher may be date information specifying a time limit in which the electronic voucher can be used.

그리고, 일 예로, 전자 바우처 발행을 위한 transaction(TrxA)은 1. 타입(발행), 2. 이전 transaction에 대한 PrivTxid 또는 Txid(본 실시예에서는 전자 바우처의 발행이므로 이전 PrivTxid 또는 Txid가 없음), 3. 수신자로 전자 바우처를 구매하는 사용자의 public key(PubA), 4. 전자 바우처의 발행 가치 정보, 5. 전자 바우처 발행인 ID, 6. 전자 바우처의 만료일, 7. 이번 동작의 주체 확인을 위한 public key인 특정 발행자의 public key(MpubA), 8. 서명값으로 특정 발행자가 private key로 서명한 1, 2, 3, 4, 5, 6, 7의 서명값(SigMPrivA(1:2:3:4:5:6:7))을 포함할 수 있다.For example, the transaction (TrxA) for issuing an electronic voucher is of type 1 (issuance), 2. PrivTxid or Txid for the previous transaction (there is no previous PrivTxid or Txid since it is an issuance of an electronic voucher in this embodiment) The public key (PubA) of the user who purchases the electronic voucher as the receiver, 4. the issuance value information of the electronic voucher, 5. the electronic voucher issuer ID, 6. the expiration date of the electronic voucher, 7. the public key (SigMPrivA (1: 2: 3: 4: 1) signature values of 1, 2, 3, 4, 5, 6 and 7 signed by a particular issuer with a private key, 5: 6: 7).

그러면, 서버(100)의 프로세서(102)는 통신부(101)를 통해 획득된 (i) 전자 바우처 데이터, (ii) 특정 발행자의 public key 및 (iii) 특정 발행자의 서명값의 유효 여부를 확인한다(S101). 또한, 서버(100)는 전자 바우처 데이터에 대한 포맷 형식의 유효 여부를 확인할 수도 있다.Then, the processor 102 of the server 100 confirms whether the electronic coupon data obtained through the communication unit 101, (ii) the public key of the specific issuer, and (iii) the signature value of the specific issuer are valid (S101). In addition, the server 100 may check whether the format of the electronic voucher data is valid.

이때, 서버(100)의 프로세서(101)는 상기 (i) 전자 바우처 데이터에 해쉬 함수를 적용하여 생성한 해쉬값과 상기 (iii) 특정 발행자의 서명값에 대해 특정 발행자의 public key 를 사용하여 획득한 값을 비교 분석하여 전자 바우처 데이터의 유효 여부를 확인할 수 있다.At this time, the processor 101 of the server 100 obtains (i) the hash value generated by applying the hash function to the electronic voucher data and (iii) the signature value of the specific issuer using the public key of the specific issuer And the validity of the electronic voucher data can be confirmed by comparing and analyzing one value.

일 예로, 상기 특정 발행자에 의해 등록된 public key를 이용하여 상기 특정 발행자의 서명값에 대한 유효 여부를 확인할 수 있다. For example, the validity of the signature value of the specific issuer can be verified by using the public key registered by the specific issuer.

즉, 서버(100)는 등록된 특정 발행자의 public key를 사용하여 획득된 전자 바우처 데이터에 해쉬 함수를 적용하여 해쉬값을 획득하며, 등록된 특정 발행자의 public key를 사용하여 확인한 특정 발행자의 서명값이 일치하는지를 확인하여 전자 바우처 데이터가 유효하며 정상적인 특정 발행자에 의해 서명된 것인지를 확인할 수 있다.That is, the server 100 obtains a hash value by applying a hash function to the electronic voucher data obtained by using the public key of the specific issuer registered, and obtains the hash value of the signature value of the specific issuer confirmed by using the registered public key of the specific issuer Can be checked to see if the electronic voucher data is valid and signed by a certain authorized issuer.

그리고, 서버(100)는 확인 결과(S110) 유효한 것으로 판단하면, (i) 전자 바우처 데이터, (ii) 특정 발행자의 public key 및 (iii) 특정 발행자의 서명값을 포함하는 전자 바우처 발행 transaction(TrxA)을 프라이빗 블록체인 데이터베이스에 등록하거나 등록하도록 지원하고, 프라이빗 블록체인 데이터베이스에 등록된 전자 바우처 발행 transaction의 프라이빗 블록체인 데이터베이스 상의 위치 정보를 나타내는 PrivTxid를 포함하는 등록이 성공했음을 나타내는 응답을 특정 발행자에게 제공하거나 제공하도록 지원할 수 있다(S111). 하지만, 서버(100)는 확인 결과(S110) 유효가 아니면, 특정 발행자(110)에게 에러 메시지를 포함하는 실패를 나타내는 응답을 제공하거나 제공하도록 지원할 수 있다(S112).If the server 100 determines that the validation result (S110) is valid, the server 100 transmits an electronic voucher-issued transaction TrxA (i) containing electronic coupon data, (ii) a public key of a specific issuer, and (iii) ) To the private block chain database and provides a response to the specific issuer indicating that the registration including the PrivTxid indicating the location information on the private block chain database of the electronic voucher issuance transaction registered in the private block chain database is successful (S111). However, if the confirmation result (S110) is not valid, the server 100 may support to provide or provide a response indicating failure including the error message to the specific issuer 110 (S112).

또한, 서버(100)는 유효한 확인 결과에 대응하여, 소정의 조건, 일 예로 퍼블릭 블록체인 데이터베이스에 소정의 해쉬값을 등록하기 위한 트리거링 조건이 만족되면(S120), (i) 전자 바우처 데이터, (ii) 특정 발행자의 public key 및 (iii) 특정 발행자의 서명값에 대한 해쉬값인 특정 해쉬값 및 특정 해쉬값과 매칭되는 적어도 하나의 이웃 해쉬값을 연산함으로써 대표 해쉬값 또는 대표 해쉬값을 가공한 값을 생성하고(S121), 생성된 대표 해쉬값 또는 대표 해쉬값을 가공한 값을 퍼블릭 블록체인 데이터베이스(120)에 등록하거나 등록하도록 지원하며(S122), 퍼블릭 블록체인 데이터베이스(120)에 등록된 대표 해쉬값 또는 대표 해쉬값을 가공한 값의 퍼블릭 블록체인 데이터베이스 상의 위치 정보를 나타내는 transaction ID 인 Txid를 획득하거나 획득하도록 지원할 수 있다(S123).If the triggering condition for registering a predetermined hash value in the public block chain database is satisfied (S120), the server 100 determines (i) the electronic coupon data ( (ii) a public key of a specific issuer, and (iii) at least one neighboring hash value matching a specific hash value, which is a hash value for a signature value of a particular issuer, and a particular hash value, (S121), and supports the registration or registration of the generated value of the representative hash value or representative hash value in the public block chain database 120 (S122), and registers the registered value in the public block chain database 120 It is possible to obtain or acquire a transaction ID Txid indicating positional information on a public block chain database of values obtained by processing representative hash values or representative hash values (S123).

그리고, 특정 해쉬값과 적어도 하나의 이웃 해쉬값과의 연산은 다양한 해쉬 함수에 의해 수행 될 수 있으며, 해쉬함수는 MD4 함수, MD5 함수, SHA-0 함수, SHA-1 함수, SHA-224 함수, SHA-256 함수, SHA-384 함수, SHA-512 함수 및 HAS-160 함수를 포함할 수 있으나, 이에 한정되지 않음은 통상의 기술자가 알 수 있을 것이다. 예를 들어 Triple SHA256도 가능할 것이다.The hash function may be an MD4 function, an MD5 function, a SHA-0 function, a SHA-1 function, a SHA-224 function, A SHA-256 function, an SHA-384 function, a SHA-512 function, and a HAS-160 function. For example, Triple SHA256 would be possible.

이때, 서버(100)는 특정 해쉬값과 적어도 하나의 이웃 해쉬값을 소정의 데이터 구조로 저장하여 관리할 수 있다. 여기서, 데이터 구조는 다양할 수 있는데, 일 예로 머클 트리(merkle tree) 구조가 될 수도 있다. 이 경우, 특정 해쉬값과 적어도 하나의 이웃 해쉬값의 연산은 머클 트리(merkle tree)를 통해 이루어질 수 있다.At this time, the server 100 may store and manage a specific hash value and at least one neighbor hash value in a predetermined data structure. Here, the data structure may be various, for example, a merkle tree structure. In this case, the calculation of a particular hash value and at least one neighbor hash value can be done through a merkle tree.

즉, 서버(100)는 특정 해쉬값이 특정 리프 노드에 할당된 머클 트리(merkle tree)를 생성하거나 생성하도록 지원할 수 있고, 소정의 조건이 만족되면, 특정 해쉬값과 매칭되는 적어도 하나의 다른 리프 노드에 할당된 해쉬값을 연산하여 생성되는 대표 해쉬값 또는 대표 해쉬값을 가공한 값을 퍼블릭 블록체인 데이터베이스(120)에 등록하거나 등록하도록 지원할 수 있다.That is, the server 100 may support to generate or generate a merkle tree that a particular hash value is assigned to a particular leaf node, and if the predetermined condition is satisfied, at least one other leaf It is possible to register or register a value obtained by processing a representative hash value or a representative hash value generated by computing a hash value assigned to a node in the public block chain database 120. [

좀더 구체적으로 설명하면, (x1) 서버(100)는, (i) 특정 해쉬값과 (ii) 특정 해쉬값이 할당된 노드의 형제 노드에 할당된 해쉬값을 연산하거나 연산하도록 지원하고, 연산값에 대한 해쉬값을 노드의 부모 노드에 할당하거나 할당하도록 지원할 수 있다. (x2) 만일, 부모 노드가 머클 트리의 루트 노드이면, 부모 노드에 할당된 해쉬값이 대표 해쉬값이 된다. (x3) 반면, 부모 노드가 머클 트리의 루트 노드가 아니면, 서버(100)는, 부모 노드에 할당된 해쉬값을 특정 해쉬값으로 하여 (x1) 내지 (x3)를 반복하여 수행한다.More specifically, (x1) server 100 supports to calculate or operate a hash value assigned to (i) a particular hash value and (ii) a sibling node of a node to which a particular hash value is assigned, To assign or assign a hash value to the parent node of the node. (x2) If the parent node is the root node of the merge tree, the hash value assigned to the parent node is the representative hash value. (x3). On the other hand, if the parent node is not the root node of the merge tree, the server 100 repeats (x1) to (x3) with the hash value assigned to the parent node as a specific hash value.

그리고, 서버(100)는 최종적으로 머클 트리의 루트 노드에 할당된 해쉬값을 대표 해쉬값으로서 퍼블릭 블록체인 데이터베이스(120)에 등록하거나 등록하도록 지원한다. 이때, 대표 해쉬값을 가공한 값이 등록될 수도 있다. 예를 들어, 대표 해쉬값에 hex 연산이 수행된 결과값이 등록될 수도 있다. Then, the server 100 finally registers the hash value assigned to the root node of the merge tree as a representative hash value in the public block chain database 120 or supports registration. At this time, a value obtained by processing the representative hash value may be registered. For example, a result obtained by performing a hex operation on a representative hash value may be registered.

한편, 서버(100)가 특정 해쉬값과 적어도 하나의 이웃 해쉬값을 소정의 제1 데이터 구조로 저장하고, 이후 제1 데이터 구조와 동일한 형태의 제2 데이터 구조를 저장하여 관리하는 경우, 제1 데이터 구조와 제2 데이터 구조는 체인 형태로 연결될 수 있다.Meanwhile, when the server 100 stores a specific hash value and at least one neighbor hash value in a predetermined first data structure and then stores and manages a second data structure of the same type as the first data structure, The data structure and the second data structure may be concatenated in a chain form.

특히, 상술한 예에서와 같이 제1 데이터 구조 및 제2 데이터 구조가 머클 트리인 경우, 제1 데이터 구조의 루트값 또는 루트값의 해쉬값이 제2 데이터 구조의 첫번째 리프 노드에 할당될 수 있다.In particular, if the first data structure and the second data structure are merc trees as in the above example, the root value of the first data structure or the hash value of the root value may be assigned to the first leaf node of the second data structure .

또한, 제2 데이터 구조를 생성할 때는 제1 데이터 구조에 대한 검증이 이루어짐으로써 데이터 integrity가 좀더 보장될 수 있다. 제2 데이터 구조의 검증에 대해서는 후술하기로 한다. In addition, when the second data structure is created, verification of the first data structure is performed, so that data integrity can be further guaranteed. Verification of the second data structure will be described later.

또한, 체인 형태로 연결된 적어도 하나의 머클 트리 중 첫번째 머클 트리의 경우, 첫번째 머클 트리의 첫번째 리프 노드에는 텍스트, 숫자, 또는 기호로 이루어진 소정의 메시지 데이터의 해쉬값 또는 이를 가공한 값이 할당될 수 있다. 예를 들어, 머클 트리 생성시 서버(100)에 의해 최초로 부여된 입력 메시지의 해쉬값이 할당될 수 있다. In addition, in the case of the first one of the at least one merch tree connected in a chain form, the first leaf node of the first merch tree may be assigned a hash value or a processed value of predetermined message data composed of text, numbers, or symbols have. For example, a hash value of an input message initially assigned by the server 100 when generating a merge tree can be assigned.

도 3 및 도 4는 본 발명의 일 실시예에 따라 생성된 머클 트리의 예를 도시한 도면이다.FIG. 3 and FIG. 4 are views showing examples of a merge tree generated according to an embodiment of the present invention.

도 3에서는 리프 노드의 개수가 4개인 머클 트리가 도시된다. 도시된 머클 트리는 첫번째 머클 트리이기 때문에(tree_id=0), 첫번째 리프 노드인 h0 노드에는 소정의 메시지 데이터의 해쉬값 (sha256digest(coinplug_unique_message))이 할당되었음을 알 수 있다. 기록 데이터에 대한 등록 요청(즉, 메신저 서비스 송수신 데이터에 관한 기록 요청)이 있는 경우, 서버(100)는 현재 구성 중인 머클 트리의 가장 마지막 리프 노드의 다음 리프 노드를 생성하여 특정 해쉬값 또는 특정 해쉬값을 가공한 값을 할당하거나 할당하도록 지원한다. 예를 들어, 도 3의 머클 트리에서 두번째 리프 노드인 h1 노드까지 값 할당이 완료된 상태에서 새로운 리프 노드를 생성하여야 하는 경우, 다음 리프 노드인 h2 노드를 생성하여 특정 해쉬값 또는 특정 해쉬값을 가공한 값(sha256digest(input2))을 할당할 수 있다. 또한, 서버(100)는 (i) h2 노드에 할당된 특정 해쉬값과 (ii) h2 노드의 형제 노드인 h3 노드에 할당된 해쉬값을 연산하거나 연산하도록 지원할 수 있다. 상기 연산값에 대한 해쉬값은 h2 노드와 h3 노드의 부모 노드(h23 노드)에 할당된다. 부모 노드(h23 노드)가 머클 트리의 루트 노드가 아니므로 서버(100)는 h23 노드에 할당된 해쉬값을 특정 해쉬값으로 하여 상기 과정을 반복하여 수행할 수 있다. 즉, h23 노드에 할당된 해쉬값을 특정 해쉬값으로 하고, h23 노드에 할당된 해쉬값과 h01 노드에 할당된 해쉬값을 연산하여 h23 노드와 h01 노드의 부모 노드(h0123 노드)에 할당할 수 있다. 이때, h0123 노드가 머클 트리의 루트 노드이므로 서버(100)는, h0123 노드에 할당된 해쉬값을 가공한 값(hex(h{node_index}))을 퍼블릭 블록체인 데이터베이스(120)에 등록하거나 등록하도록 지원할 수 있다. FIG. 3 shows a merge tree having four leaf nodes. Since the illustrated merge tree is the first merge tree (tree_id = 0), it can be seen that a hash value (sha256digest (coinplug_unique_message)) of a predetermined message data is assigned to the first leaf node h0. When there is a registration request for write data (i.e., a write request related to messenger service transmission / reception data), the server 100 generates a next leaf node of the last leaf node of the currently configured MUCLE tree, Supports assignment or assignment of processed values. For example, if a new leaf node needs to be created in a state where the value assignment from the merge tree to the h1 node as the second leaf node is completed, a h2 node, which is a next leaf node, is generated to process a specific hash value or a specific hash value One value (sha256digest (input2)) can be assigned. The server 100 may also support computing or computing (i) a particular hash value assigned to the h2 node and (ii) a hash value assigned to the h3 node, which is a sibling node of the h2 node. The hash value for the computed value is assigned to the h2 node and the parent node (h23 node) of the h3 node. Since the parent node (h23 node) is not the root node of the merge tree, the server 100 can repeat the above process with the hash value assigned to the h23 node as a specific hash value. That is, the hash value assigned to the h23 node is set as a specific hash value, and the hash value assigned to the h23 node and the hash value assigned to the h01 node are calculated and assigned to the h23 node and the parent node (h0123 node) of the h01 node have. At this time, since the h0123 node is the root node of the merge tree, the server 100 registers or registers the value (hex (h {node_index})) obtained by processing the hash value assigned to the node h0123 in the public block chain database 120 .

한편, 전술한 소정의 조건이란, (i) 소정의 개수만큼 전자 바우처 발행 transaction 또는 전자 바우처와 관련한 "관련 transaction"이 생성되는 조건, (ii) 소정 시간이 경과하는 조건, (iii) 블록 체인, 일 예로 프라이빗 블록체인에서 블록이 생성되는 조건, (iv) 서비스 특성에 대한 조건 중 적어도 하나를 포함할 수 있다. 이때, 전자 바우처와 관련한 "관련 transaction"은 전자 바우처의 발행에 더하여, 후술할 전자 바우처의 사용, 전자 바우처의 환불, 전자 바우처의 정산, 전자 바우처의 파기 등을 포함할 수 있다. 그러나, 전자 바우처와 관련한 "관련 transaction"은 이에 한정되지 않으며, 전자 바우처의 양도, 매매 등과 같이 전자 바우처와 관련하여 발생할 수 있는 모든 상태를 포함할 수 있다.(Ii) a condition that a predetermined time has elapsed; (iii) a condition in which a block chain, an electronic coupon transaction, For example, a condition in which a block is generated in a private block chain, and (iv) a condition for a service characteristic. At this time, the "related transaction" related to the electronic voucher may include the use of the electronic voucher, the refund of the electronic voucher, the settlement of the electronic voucher, the destruction of the electronic voucher, etc., in addition to issuance of the electronic voucher. However, the "related transaction" with respect to the electronic voucher is not limited thereto and may include any state that may arise in connection with the electronic voucher, such as the transfer or sale of the electronic voucher.

한편, 예를 들어, 복수의 전자 바우처 발행 transaction이 머클 트리의 리프 노드 수만큼 획득되면 머클 트리를 생성하고, 머클 트리의 루트값을 퍼블릭 블록체인 데이터베이스(120)에 등록하거나 등록하도록 지원할 수 있다.On the other hand, for example, when a plurality of electronic voucher-issuing transactions are acquired for the leaf nodes of the merge tree, a merge tree may be created and the root value of the merge tree may be registered or registered in the public block chain database 120.

또한, 서버(100)는 소정 시간 단위로 전술한 머클 트리의 루트값을 생성할 수 있다(상기 (ii) 조건). 이 경우 서버(100)는 소정의 시간이 경과되면 그때까지의 입력값을 이용하여 머클 트리를 생성하고 머클 트리의 루트값을 퍼블릭 블록체인 데이터베이스(120)에 등록하거나 등록하도록 지원할 수 있다. In addition, the server 100 can generate the root value of the aforementioned mu tree at predetermined time intervals (condition (ii) above). In this case, the server 100 may generate a merge tree using the input values up to that time and register or register the root value of the merge tree in the public block chain database 120 when a predetermined time has elapsed.

그런데, 이 경우에는 소정 시간이 경과하였음에도 머클 트리의 특정 해쉬값이 할당된 노드의 형제 노드에 값이 할당되지 않을 수 있다. 이처럼 소정의 조건이 만족되었음에도 특정 해쉬값이 할당된 노드의 형제 노드에 해쉬값이 할당되어 있지 않은 경우, 서버(100)는, 형제 노드에 소정의 해쉬값을 할당하거나 할당하도록 지원하여 전술한 방식으로 머클 트리의 루트값이 산출되도록 할 수 있다. 예를 들어, 서버(100)는 특정 해쉬값을 복제하여 형제 노드에 할당하거나 할당하도록 지원할 수 있다.In this case, although a predetermined time has elapsed, a value may not be assigned to a sibling node of a node to which a particular hash value of the merge tree is assigned. If the hash value is not allocated to the sibling node of the node to which the specific hash value is assigned even though the predetermined condition is satisfied, the server 100 supports to assign or assign a predetermined hash value to the sibling node, The root value of the merge tree can be calculated. For example, the server 100 may support to replicate and allocate or assign a particular hash value to a sibling node.

그리고, 서비스 특성이란, 전자 바우처 발행 요청을 한 특정 발행자가 제공한 비용 정보, 전자 바우처 발행 transaction 등록이 이루어지는 시간대 정보, 전자 바우처 발행 transaction 등록 서비스가 이루어지는 지역 정보, 전자 바우처 발행 transaction 등록 요청을 한 회사 타입 정보 중 적어도 일부가 될 수 있다. 다만, 여기서 기재한 것에 한정할 것은 아니고, 통상적으로 인정되는 차등적 서비스가 제공될 수 있는 다양한 조건 정보를 포함한다. The service characteristic includes at least one of the following: cost information provided by a specific issuer issuing an electronic voucher issuance request, time zone information at which an electronic voucher issuance transaction registration is made, region information at which an electronic voucher issuance transaction registration service is performed, And may be at least a part of the type information. However, the present invention is not limited to the one described here, but includes various condition information in which a generally accepted differential service can be provided.

한편, 새로운 머클 트리 생성이 시작되고, 전자 바우처 발행 transaction이 없는 상태에서 소정의 조건이 만족되면, 서버(120)는, 소정의 메시지 데이터가 첫번째 리프 노드와 두번째 리프 노드에 할당된 머클 트리를 생성하거나 생성하도록 지원하고, 머클 트리의 루트값 또는 이를 가공한 값을 퍼블릭 블록체인 데이터베이스(120)에 등록하거나 등록하도록 지원할 수 있다. 이 경우에는 리프 노드 2개짜리 머클 트리가 생성될 수도 있는 것이다.On the other hand, when a new merge tree generation is started and a predetermined condition is satisfied in the absence of an electronic coupon issued transaction, the server 120 generates a merge tree in which predetermined message data is allocated to the first leaf node and the second leaf node And support to register or register the root value of the merge tree or the processed value in the public block chain database 120. In this case, a merge tree with two leaf nodes may be created.

한편, 전술한 것처럼 서버(100)가 특정 해쉬값과 적어도 하나의 이웃 해쉬값을 소정의 제1 데이터 구조로 저장하고, 이후 제1 데이터 구조와 동일한 형태의 제2 데이터 구조를 저장하여 관리하는 경우, 제1 데이터 구조와 제2 데이터 구조는 체인 형태로 연결될 수 있다. 특히, 제1 데이터 구조 및 제2 데이터 구조가 머클 트리인 경우, 제1 데이터 구조의 루트값 또는 루트값의 해쉬값이 제2 데이터 구조의 첫번째 리프 노드에 할당될 수 있다.Meanwhile, as described above, when the server 100 stores a specific hash value and at least one neighbor hash value in a predetermined first data structure and then stores and manages a second data structure of the same type as the first data structure , The first data structure and the second data structure may be connected in a chain form. In particular, if the first data structure and the second data structure are merc trees, the root value of the first data structure or the hash value of the root value may be assigned to the first leaf node of the second data structure.

도 4는 본 발명의 일 실시예에 따라 제2 데이터 구조로서 생성된 머클 트리를 도시한 도면이다.4 is a diagram illustrating a merge tree generated as a second data structure according to an embodiment of the present invention.

도 4를 참조하면, 도 3의 머클 트리(tree_id=0)의 루트값(hex(h0123))이 새로운 머클 트리의 첫번째 리프 노드(h4 노드)에 할당되었음을 알 수 있다(sha256digest(input4)). 본 발명은 이와 같이 트랜잭션 발생시 생성되는 복수의 데이터 구조를 연결함으로써 중간에 데이터가 변조가 발생되는 경우라도 쉽게 트래킹이 가능하여 데이터 integrity를 향상시키는 장점을 가진다.Referring to FIG. 4, it can be seen that the root value (hex (h0123)) of the merge tree (tree_id = 0) of FIG. 3 is assigned to the first leaf node (h4 node) of the new merge tree (sha256digest (input4)). The present invention has an advantage of improving data integrity by enabling easy tracking even when data is modulated in the middle by connecting a plurality of data structures generated at the time of occurrence of a transaction.

다음으로, 전술한 데이터 구조를 이용하여 등록된 전자 바우처 발행 transaction에 대해 검증을 수행하는 과정을 설명한다.Next, a process of performing verification for a registered electronic voucher-issued transaction using the above-described data structure will be described.

기존에 서버(100)가 전자 바우처 발행 transaction을 획득하여, 제1 특정 해쉬값(설명의 편의를 위하여 전술한 특정 해쉬값을 여기서는 제1 특정 해쉬값이라 지칭함)과 소정의 조건 하에서 매칭되는 적어도 하나의 이웃 해쉬값을 연산함으로써 생성되는 제1 대표 해쉬값(설명의 편의를 위하여 전술한 대표 해쉬값을 여기서는 제1 대표 해쉬값이라 지칭함) 또는 제1 대표 해쉬값을 가공한 값을 퍼블릭 블록체인 데이터베이스(120)에 등록하고 있는 상태에서, 서버(100)가 전자 바우처 발행 transaction과 관련된 검증 요청을 획득하고, 검증 요청에 포함된 입력 데이터를 사용하여 생성된 제2 대표 해쉬값 또는 상기 제2 대표 해쉬값을 가공한 값이 퍼블릭 블록체인 데이터베이스(120)에 등록된 제1 대표 해쉬값 또는 제1 대표 해쉬값을 가공한 값과 대응되면, 서버(100)가 기록 데이터와 관련된 검증이 이루어진 것으로 판단하거나 판단하도록 지원할 수 있다. 여기서, 제1 특정 해쉬값은, (i) 서버의 private key로 서명된 전자 바우처 발행 transaction의 해쉬값, (ii) 특정 발행인 private key 및 서버의 private key로 서명된 전자 바우처 발행 transaction의 해쉬값 중 어느 하나일 수 있다.The server 100 acquires an electronic coupon-issued transaction and acquires an electronic coupon transaction with at least one first hash value (referred to herein as a first specified hash value for the convenience of description) (The above-described representative hash value is referred to as a first representative hash value herein for convenience of explanation) or a value obtained by processing the first representative hash value is stored in the public block chain database The server 100 acquires a verification request related to the electronic coupon issue transaction and registers the second representative hash value generated using the input data included in the verification request or the second representative hash value If the processed value corresponds to a value obtained by processing the first representative hash value or the first representative hash value registered in the public block chain database 120, And to judge or judge that the verification related to the lock data has been performed. Here, the first specific hash value includes (i) a hash value of an electronic voucher-issued transaction signed with a server private key, (ii) a hash value of an electronic voucher-issued transaction signed with a private key of a specific issuer and a server private key It can be either.

또한, 제2 대표 해쉬값은, 제2 특정 해쉬값 및 제2 특정 해쉬값과 매칭되는 적어도 하나의 이웃 해쉬값을 연산함으로써 생성될 수 있다. 여기서, 제2 특정 해쉬값은, 서버의 private key로 서명되거나 특정 발행인의 private key 및 서버의 private key로 서명된 입력 데이터에 포함된 검증 요청 데이터(A)의 해쉬값일 수 있다.Further, the second representative hash value may be generated by calculating at least one neighboring hash value matching the second specific hash value and the second specific hash value. Here, the second specific hash value may be a hash value of the verification request data (A) included in the input data signed by the private key of the server or the private key of the specific issuer and the private key of the server.

이때, 검증 요청에 포함된 입력 데이터는, (i) 검증 요청 데이터, (ii) 검증 요청 데이터에 대한 message digest, 또는 (iii) 전자 바우처 발행 transaction의 등록 당시 발급된 ID 중 어느 하나를 포함할 수 있다.The input data included in the verification request may include any one of (i) verification request data, (ii) a message digest for the verification request data, or (iii) an ID issued at the time of registration of the electronic voucher issuance transaction have.

입력 데이터에 검증 요청 데이터가 포함되는 경우, 전술한 방법으로 검증 요청 데이터에 대한 message digest가 생성되고 이를 기초로 하여 제2 특정 해쉬값이 산출될 수 있다. 그리고, 제2 대표 해쉬값은 제2 특정 해쉬값과 매칭되는 적어도 하나의 이웃 해쉬값을 연산하여 생성될 수 있다.When the input data includes the verification request data, the message digest for the verification request data is generated in the above-described manner, and the second specific hash value can be calculated based on the message digest. The second representative hash value may be generated by calculating at least one neighboring hash value matching the second specific hash value.

입력 데이터에 기록 데이터 등록 당시 발급된 ID가 포함되는 경우 기존에 생성된 머클 트리에서 ID에 대응되는 리프 노드에 할당된 값이 제2 특정 해쉬값으로 설정될 수 있다. In a case where an ID issued at the time of registration of record data is included in the input data, a value assigned to a leaf node corresponding to an ID in an existing generated tree can be set as a second specified hash value.

제2 특정 해쉬값에 대해서는 전술한 제1 특정 해쉬값에 대한 설명이 동일하게 적용될 수 있다. 즉, 제2 특정 해쉬값과 적어도 하나의 이웃 해쉬값의 연산은 다양한 해쉬 함수에 의해 수행될 수 있다. 이에 대해서는 전술하였으므로 설명을 생략한다.For the second specific hash value, the description of the first specific hash value described above can be applied equally. That is, the operation of the second specific hash value and the at least one neighbor hash value can be performed by various hash functions. Since this has been described above, the explanation is omitted.

또한, 제2 특정 해쉬값과 적어도 하나의 이웃 해쉬값의 연산은 머클 트리(merkle tree)를 통해 이루어질 수 있다. 전자 바우처 발행 transaction과 관련된 검증 요청이 획득되면, 서버(100)는, 입력 데이터와 관련된 머클 트리 정보 및 리프 노드 정보를 식별할 수 있다.In addition, the operation of the second specific hash value and the at least one neighbor hash value can be performed through a merkle tree. Once a validation request associated with an electronic voucher-issued transaction is obtained, the server 100 may identify the merge tree information and leaf node information associated with the input data.

그리고, 제2 대표 해쉬값은, 제2 특정 해쉬값이 특정 리프 노드에 할당된 머클 트리(merkle tree)에서 제2 특정 해쉬값 및 제2 특정 해쉬값과 매칭되는 적어도 하나의 다른 리프 노드에 할당된 해쉬값을 연산하여 생성될 수 있다.The second representative hash value is assigned to at least one other leaf node whose second specific hash value matches a second specific hash value and a second specific hash value in a merkle tree assigned to a specific leaf node Lt; RTI ID = 0.0 > hash < / RTI > value.

또한, 서버(100)는, 전자 바우처 발행 transaction과 관련한 검증 요청이 획득되면, 전자 바우처 발행 transaction ID를 참조하고, transaction ID를 사용하여 퍼블릭 블록체인 데이터베이스(120)로부터 OP 메시지를 획득하거나 획득하도록 지원할 수 있다. 또한, 검증 요청에 포함된 입력 데이터를 사용하여 생성된 제2 대표 해쉬값 또는 제2 대표 해쉬값을 가공한 값이 OP 메시지에 포함된 제1 대표 해쉬값 또는 제1 대표 해쉬값을 가공한 값과 대응되면, 전자 바우처 발행 transaction과 관련된 검증이 이루어진 것으로 판단하거나 판단하도록 지원할 수 있다.In addition, when the verification request relating to the electronic voucher-issued transaction is obtained, the server 100 refers to the electronic voucher-issued transaction ID and supports to acquire or acquire the OP message from the public block chain database 120 using the transaction ID . In addition, a value obtained by processing the second representative hash value or the second representative hash value generated using the input data included in the verification request is a value obtained by processing the first representative hash value or the first representative hash value included in the OP message It is possible to support judgment or judgment that the verification related to the electronic voucher-issued transaction has been performed.

한편, 소정의 transaction ID는 입력 데이터에 포함되어 제공될 수도 있다. 즉, 특정 발행자는 검증 요청시 전술한 (i) 검증 요청 데이터, (ii) 검증 요청 데이터에 대한 message digest, 또는 (iii) 전자 바우처 발행 transaction 의 등록 당시 발급된 ID 중 어느 하나와 함께 transaction ID를 서버(100)에 전달할 수도 있다.On the other hand, a predetermined transaction ID may be provided in the input data. That is, a specific issuer may send a transaction ID together with either (i) the verification request data described above, (ii) the message digest of the verification request data, or (iii) the ID issued at the time of registration of the electronic voucher- To the server (100).

검증 연산 과정에서 서버(100)는 새로운 머클 트리를 생성하거나 생성하도록 지원할 수 있는데, 여기에는 전술한 기록 데이터의 데이터베이스 등록 과정에서 생성된 머클 트리가 이용될 수 있다. 즉, 서버(100)는 (y1) (i) 제2 특정 해쉬값과 (ii) 기존에 생성된 머클 트리에서 제2 특정 해쉬값이 할당된 노드의 형제 노드에 할당된 해쉬값을 연산하거나 연산하도록 지원하고, 연산값에 대한 해쉬값을 새로운 머클 트리에서 노드의 부모 노드에 할당하거나 할당하도록 지원할 수 있다. 또한, (y2) 부모 노드가 새로운 머클 트리의 루트 노드이면, 부모 노드에 할당된 해쉬값을 제2 대표 해쉬값으로서 OP 메시지에 포함된 값과 비교하거나 비교하도록 지원하고, (y3) 부모 노드가 새로운 머클 트리의 루트 노드가 아니면, 부모 노드에 할당된 해쉬값을 제2 특정 해쉬값으로 하여 (y1) 내지 (y3)를 반복하여 수행할 수 있다.In the verification operation process, the server 100 can support creation or creation of a new merge tree, in which a merge tree generated in the database registration process of the record data described above can be used. That is, the server 100 calculates (i) a second specific hash value and (ii) a hash value assigned to the sibling node of the node to which the second specific hash value is assigned in the existing generated merge tree, And support to assign or assign the hash value of the operation value to the node's parent node in the new merge tree. (Y2) if the parent node is the root node of the new merge tree, to compare or compare the hash value assigned to the parent node with the value contained in the OP message as the second representative hash value, and (y3) If it is not the root node of the new merge tree, (y1) to (y3) can be repeatedly performed using the hash value assigned to the parent node as the second specified hash value.

서버(100)는, 최종적으로 생성된 머클 트리의 루트값 또는 이를 가공한 값이 OP 메시지에 포함된 제1 대표 해쉬값 또는 제1 대표 해쉬값을 가공한 값과 대응되면, 전자 바우처 발행 transaction과 관련된 검증이 이루어진 것으로 판단하거나 판단하도록 지원할 수 있다.When the route value of the finally generated muckree or the processed value corresponds to a value obtained by processing the first representative hash value or the first representative hash value included in the OP message, the server 100 transmits an e- And can help judge or judge that relevant verification has been done.

이처럼 본 발명은 전자 바우처 발행 transaction의 등록 단계에서 nm(=N)개의 리프 노드를 가지는 머클 트리가 생성이 되면, 머클 트리의 높이(lognN=m)만큼의 연산만을 수행함으로써 파일에 대한 검증을 수행할 수 있어 빠르게 transaction의 integrity 확인이 가능하게 된다.As described above, when a merge tree having nm (= N) leaf nodes is created in the registration step of an electronic voucher-issuing transaction, verification of the file is performed by performing only the operation of the merge tree height (lognN = m) This makes it possible to quickly check transaction integrity.

한편, 서버(100)는 입력 데이터를 획득하는 경우, 입력 데이터와 관련된 시간 정보를 참조로 하여 입력 데이터와 관련된 머클 트리 정보 및 리프 노드 정보 중 적어도 하나를 식별할 수도 있다.Meanwhile, when acquiring input data, the server 100 may identify at least one of the merge tree information and the leaf node information related to the input data with reference to time information related to the input data.

이하에서는 도 3에 도시된 구체적인 예를 들어 검증 과정을 설명한다.Hereinafter, a verification process will be described with reference to a concrete example shown in FIG.

다시 도 3을 참조하면, input 2에 대한 검증 요청이 있는 경우, 서버(120)는 입력 데이터 정보를 참조로 하여 기존에 생성된 머클 트리와 리프 노드 정보를 식별하고, 식별된 머클 트리 정보(tree_id = 0)에 대응되는 소정의 transaction ID를 퍼블릭 블록체인 데이터베이스(120)에 전송하여 퍼블릭 블록체인 데이터베이스(120)로부터 OP 메시지를 획득한다. 그리고, 서버(100)는 input 2를 이용하여 새로운 머클 트리를 생성하거나 생성하도록 지원할 수 있다. input 2의 해쉬값(sha256digest(input2))이 h2 노드에 할당되어 있으므로 서버(100)는 h2 노드에 할당된 해쉬값과 기존에 생성된 머클 트리에서 h2 노드의 형제 노드인 h3 노드에 할당된 해쉬값을 연산하거나 연산하도록 지원할 수 있다. 연산값에 대한 해쉬값은 h2 노드와 h3 노드의 부모 노드인 h23 노드에 할당된다. h23 노드가 새로운 머클 트리의 루트 노드가 아니므로 서버(100)는 h23 노드에 할당된 해쉬값을 제2 특정 해쉬값으로 하여 상기 과정을 반복하여 수행할 수 있다. 즉, h23 노드에 할당된 해쉬값을 제2 특정 해쉬값으로 하고, h23 노드에 할당된 해쉬값과 기존에 생성된 머클 트리에서 h01 노드에 할당된 해쉬값을 연산하여 h23 노드와 h01 노드의 부모 노드인 h0123 노드에 할당할 수 있다. 이때, h0123 노드가 머클 트리의 루트 노드이므로 서버(100)는, h0123 노드에 할당된 해쉬값을 가공한 값(hex(h{node_index}))을 상기 OP 메시지에 포함된 값과 비교하거나 비교하도록 지원할 수 있다.Referring again to FIG. 3, if there is a verification request for input 2, the server 120 identifies the existing generated merge tree and leaf node information with reference to the input data information, and outputs the identified merge tree information (tree_id = 0) to the public block chain database 120 to acquire an OP message from the public block chain database 120. [0050] FIG. Then, the server 100 can support creation or generation of a new merge tree using input 2. Since the hash value of input 2 (sha256digest (input2)) is assigned to the h2 node, the server 100 determines the hash value assigned to the h2 node and the hash value assigned to the h3 node, which is the sibling node of the h2 node, It can be used to calculate or calculate values. The hash value for the operation value is assigned to the h2 node and the h23 node, which is the parent node of the h3 node. Since the h23 node is not the root node of the new merge tree, the server 100 can repeat the above process with the hash value assigned to the h23 node as the second specified hash value. That is, the hash value assigned to the h23 node is set as the second specific hash value, and the hash value assigned to the h23 node and the hash value assigned to the h01 node in the existing generated merge tree are calculated, Quot; node " node " h0123 " Since the h0123 node is the root node of the merge tree, the server 100 compares the value (hex (h {node_index}) obtained by processing the hash value assigned to the h0123 node with the value included in the OP message .

다음으로, 도 5를 참조하여 특정 발행자(110)를 등록하는 과정을 설명하면 다음과 같다.Next, a process of registering a specific issuer 110 will be described with reference to FIG.

특정 발행자(100)의 public key(MPubA)에 의한 발행자 등록 요청이 획득되면(S200), 서버(100)는, 특정 발행자(110)의 유효 여부를 확인하여(S210) 특정 발행자(110)가 유효할 경우 random nonce(RN)를 특정 발행자(110)에게 전달하거나 전달하도록 지원할 수 있다(S211). 그리고, 특정 발행자(110)가 유효하지 않을 경우, 일 예로 타인의 명의를 도용한 사람일 경우, 서버(100)는 특정 발행자(110)에게 발행자 확인 실패를 나타내는 응답을 제공하거나 제공하도록 지원할 수 있다(S213).When the issuer registration request by the public key (MPubA) of the specific issuer 100 is obtained (S200), the server 100 confirms the validity of the specific issuer 110 (S210) (RN) to the specific issuer 110 (S211). If the specific issuer 110 is not valid, for example, a person who has stolen the name of another person, the server 100 may support the specific issuer 110 to provide or provide a response indicating the issuer verification failure (S213).

구체적으로, 특정 발행자가 단말에서 private key(MPrivA)와 public key(MPubA)를 생성한 상태에서, 전자 바우처를 발행하기 위한 발행자로 등록하기 위하여 public key를 서버(100)로 전송하면, 서버(100)는 획득되는 public key의 특정 발행자(110)가 유효한지를 확인한다. 이때, 특정 발행자(100)의 유효 여부는 PKI 기반 인증서를 이용하거나 특정 발행자의 신분 증명 정보를 이용할 수 있으나, 이에 한정되는 것은 아니다. 일예로, PKI 기반 인증서인 공인인증서, OPSign 인증서 등을 통해 특정 발행자를 확인하거나, 주민 번호, 여권 등과 같이 개인 신분을 증명할 수 있는 신분 증명 정보를 통해 특정 발행자를 확인할 수 있다.Specifically, when a specific issuer generates a private key (MPrivA) and a public key (MPubA) at the terminal, if a public key is transmitted to the server 100 for registration as an issuer for issuing the electronic voucher, the server 100 Confirms whether the specific issuer 110 of the obtained public key is valid. At this time, the validity of the specific issuer 100 can be achieved by using a PKI-based certificate or by using identification information of a specific issuer, but the present invention is not limited thereto. For example, a specific issuer can be identified through a PKI-based certificate, an OPSign certificate, or the like, or a specific issuer can be identified through identification ID information such as a resident registration number, a passport, etc.

이후, random nonce를 특정 발행자의 private key로 서명한 random nonce 서명값(SigMPrivA(RN))이 획득되면(S212), 서버(100)는, random nonce 서명값이 정상적으로 서명되었는지를 특정 발행자의 public key를 사용하여 검증한다(S220). 즉, 서버(100)는 특정 발행자의 public key를 사용하여 획득한 서명값인 SjgMPrivA(RN)으로부터 RN인 random nonce를 확인하고, 확인된 random nonce가 특정 발행자에게 전달한 random nonce와 일치하는지를 확인하여 일치할 경우 유효한 서명인 것으로 검증한다.When the random nonce signature value SigMPrivA (RN) obtained by signing the random nonce with the private key of the specific issuer is obtained (S212), the server 100 determines whether the random nonce signature value is normally signed by using the public key (S220). That is, the server 100 checks the random nonce, which is the RN, from the signature value SjgMPrivA (RN) obtained using the public key of the specific issuer, and checks whether the random nonce is identical to the random nonce that is transmitted to the specific issuer It is verified that it is a valid signature.

그리고, 서버(100)는 특정 발행자(110)로부터 획득된 서명값이 유효한 것일 경우, random nonce, random nonce 서명값 및 특정 발행자의 public key를 포함하는 발행자 등록 transaction(RN, SigMPrivA(RN), MPubA)을 프라이빗 블록체인 데이터베이스에 등록하거나 등록하도록 지원하며(S221), 프라이빗 블록체인 데이터베이스에 등록된 발행자 등록 transaction의 프라이빗 블록체인 데이터베이스 상의 위치 정보를 나타내는 PrivTxid을 포함하는 등록이 성공했음을 나타내는 응답을 특정 발행자에게 제공하거나 제공하도록 지원할 수 있다(S222).When the signature value obtained from the specific issuer 110 is valid, the server 100 transmits an issuer registration transaction (RN, SigMPrivA (RN), MPubA (RN)) including a random nonce, ) In the private block chain database (S221), and transmits a response indicating that the registration including the PrivTxid indicating the location information on the private block chain database of the issuer registration transaction registered in the private block chain database is successful, to the specific issuer (S222).

그러나, 서버(100)는 특정 발행자(110)로부터 획득된 서명값이 유효하지 않을 경우, 특정 발행자(110)에게 서명값 확인 실패를 나타내는 응답을 제공하거나 제공하도록 지원할 수 있다(S223).However, if the signature value obtained from the specific issuer 110 is not valid, the server 100 may support to provide or provide a response to the specific issuer 110 indicating failure to verify the signature value (S223).

또한, 서버(100)는 발행자와 서명값이 유효한 경우, 소정의 조건이 만족되면(S230), random nonce, random nonce 서명값 및 특정 발행자의 public key의 해쉬값인 특정 해쉬값 및 특정 해쉬값과 매칭되는 적어도 하나의 이웃 해쉬값을 연산함으로써 생성되는 대표 해쉬값 또는 대표 해쉬값을 가공한 값을 퍼블릭 블록체인 데이터베이스에 등록하거나 등록하도록 지원하며(S231), 퍼블릭 블록체인 데이터베이스(120)에 등록된 대표 해쉬값 또는 대표 해쉬값을 가공한 값의 퍼블릭 블록체인 데이터베이스(120) 상의 위치 정보를 나타내는 transaction ID인 Txid를 획득하거나 획득하도록 지원할 수 있다(S233). 이때, 특정 발행자 등록 transaction의 퍼블릭 블록체인 데이터베이스(120)로의 등록은 도 2에서와 같은 방법에 의한 머클 트리에 의해 생성된 루트 해쉬값이 등록되도록 할 수 있다.If the issuer and the signature value are valid, if the predetermined condition is satisfied (S230), the server 100 determines whether the hash value of the specific random number, the random nonce signature value, the hash value of the public key of the specific issuer, (S231) and registers the representative hash value or the representative hash value generated by computing the at least one neighboring hash value to be registered in the public block chain database (S231) (S233) to acquire or acquire a transaction ID Txid indicating positional information on the public block chain database 120 of a value obtained by processing a representative hash value or a representative hash value. At this time, the registration of the specific issuer registration transaction into the public block chain database 120 can register the root hash value generated by the merge tree by the method as shown in FIG.

다음으로, 도 6을 참조하여 본 발명의 일 실시예에 따른 전자 바우처를 사용하는 방법을 설명하면 다음과 같다. 다음의 설명에서 도 2의 본 발명의 실시예에서 전자 바우처를 발행하는 방법에서와 유사한 부분은 도 2의 설명으로부터 이해 가능하므로 상세한 설명을 생략한다.Next, a method of using an electronic voucher according to an embodiment of the present invention will be described with reference to FIG. In the following description, parts similar to those of the method of issuing an electronic voucher in the embodiment of the present invention shown in Fig. 2 can be understood from the description of Fig. 2, and detailed description thereof will be omitted.

전자 바우처를 사용하기 위하여, 전자 바우처를 구매한 특정 사용자(111)로부터 전자 바우처의 사용을 위한 (i) 이전에 적어도 일부 미사용된 전자 바우처에 대한 PrivTxid를 포함하는 전자 바우처 데이터, (ii) 특정 사용자의 public key 및 (iii) 전자 바우처 데이터의 해쉬값 또는 이를 포함한 값을 특정 사용자의 private key로 서명한 특정 사용자의 서명값에 의한 전자 바우처 사용 요청(request(use TrxA))이 특정 사용자의 단말로부터 송신되면 서버(100)는 이를 통신부(101)를 통해 수신한다(S300).In order to use the electronic voucher, electronic voucher data including (i) PrivTxid for at least some unused electronic vouchers previously used for the use of the electronic voucher from the specific user 111 who purchased the electronic voucher, (ii) (Iii) a request for use of an electronic voucher (request (use TrxA)) by a signature value of a specific user who has signed a hash value of the electronic voucher data or a value including the hash value with a private key of a specific user When it is transmitted, the server 100 receives it through the communication unit 101 (S300).

이때, 전자 바우처 데이터는 전자 바우처의 타입 정보, 전자 바우처를 수신하는 특정 판매자의 public key, 전자 바우처의 가치 정보 중에서 이번에 사용하기 위한 사용 가치 정보, 전자 바우처를 발행한 특정 발행자의 고유 ID, 전자 바우처의 사용 기한 정보, 전자 바우처에서 사용 가치 정보를 사용한 이후 돌려받아야 할 차감 가치 정보 및 차감 가치 정보의 확인을 위한 특정 사용자의 public key 중 적어도 하나 이상을 더 포함할 수 있다. 그리고, 전자 바우처의 타입 정보는 현재 수행하는 동작을 정의하기 위한 것으로 전자 바우처 사용을 표시하는 정보일 수 있다. 또한, 전자 바우처를 수신하는 특정 판매자의 public key는 특정 판매자를 지정함으로써 해당 전자 바우처를 수신한, 즉 특정 사용자에 의해 사용되는 전자 바우처를 수령하는 판매자를 특정할 수도 있으며, 이와는 달리 판매자를 특정하지 않음으로써 무기명 상품권과 같이 일반 화폐와 유사하게 사용되게 할 수도 있다. 그리고, 전자 바우처의 가치 정보 중에서 이번에 사용하기 위한 사용 가치 정보는 사용 금액, 사용 회수, 교환 가능한 상품 정보 등을 포함하는 유무형의 가치에 대한 정보일 수 있다. 또한, 전자 바우처를 발행한 특정 발행자의 고유 ID는 특정 발행자를 식별하기 위한 정보일 수 있으며, 일 예로 특정 발행자의 public key의 해쉬값 또는 이를 포함한 값일 수 있다. 그리고, 전자 바우처의 사용 기한 정보는 전자 바우처를 사용할 수 있는 기한을 지정한 날짜 정보일 수 있다. 또한, 전자 바우처에서 사용 가치 정보를 사용한 이후 돌려받아야 할 차감 가치 정보는 전자 바우처의 사용 이후 잔액에 대한 정보일 수 있으며, 차감 가치 정보의 확인을 위한 특정 사용자의 public key는 전자 바우처의 사용 이후 잔액에 대한 소유권 확인을 위한 정보일 수 있다. 이때, 전자 바우처에서 차감 가치가 없을 경우, 차감 가치 정보와 차감 가치 정보의 확인을 위한 특정 사용자의 public key는 없을 수도 있다.At this time, the electronic voucher data includes the type information of the electronic voucher, the public key of the specific seller receiving the electronic voucher, the value information for use at this time from the value information of the electronic voucher, the unique ID of the specific issuer who issued the electronic voucher, And a public key of a specific user for confirming the deduction value information and the deduction value information to be returned after using the use value information in the electronic voucher. The type information of the electronic voucher is used to define an operation to be performed and may be information indicating the use of the electronic voucher. In addition, the public key of the specific seller receiving the electronic voucher may specify a seller who receives the electronic voucher, that is, the electronic voucher used by the specific user, by designating a specific seller, It is also possible to make it similar to general currency like anonymous gift certificates. Among the value information of the electronic voucher, the value-at-use information for use at this time may be information on the value of the non-value-type including the amount of usage, the number of times of use, exchangeable product information, and the like. The unique ID of a specific issuer issuing the electronic voucher may be information for identifying a particular issuer, for example, a hash value of a public key of a specific issuer or a value including the hash value. The use time information of the electronic voucher may be date information specifying a time limit in which the electronic voucher can be used. In addition, the deduction value information to be returned after using the use value information in the electronic voucher may be information on the remaining amount after use of the electronic voucher, and the public key of the specific user for confirming the deduction value information is the balance Lt; / RTI > At this time, if the electronic voucher does not have a deduction value, there may not be a public key of a specific user for confirming the deduction value information and the deduction value information.

그리고, 일 예로, 전자 바우처 사용을 위한 transaction(TrxA)은 1. 타입(사용), 2. 이전 transaction에 대한 PrivTxid 또는 Txid, 3. 수신자로 전자 바우처를 수령하는 특정 판매자의 public key, 4. 전자 바우처의 사용 가치 정보, 5. 전자 바우처의 발행인 ID. 6. 전자 바우처의 만료일, 7. 전자 바우처의 차감 가치 정보, 8. 전자 바우처의 차감 가치에 대한 소유권 확인을 위한 특정 사용자의 Public key, 9. 이번 동작의 주체 확인을 위한 public key인 특정 사용자의 public key(PubA), 10. 서명값으로 특정 발행자가 private key로 서명한 1, 2, 3, 4, 5, 6, 7, 8, 9, 10의 서명값(SigPrivA(1:2:3:4:5:6:7:8:9:10))을 포함할 수 있다.For example, transaction (TrxA) for electronic voucher use is of 1. type (use), 2. PrivTxid or Txid for previous transaction, 3. public key of specific seller to receive electronic voucher as receiver, 4. electronic Voucher usage value information, and 5. Electronic voucher issuer ID. 6. The expiration date of the electronic voucher, 7. The deduction value information of the electronic voucher, 8. The public key of the specific user for confirming ownership of the deduction value of the electronic voucher, 9. The public key for identifying the subject of this operation (SigPrivA (1: 2: 3: 1) signature values of 1, 2, 3, 4, 5, 6, 7, 8, 9, 4: 5: 6: 7: 8: 9: 10).

그러면, 서버(100)는 획득된 (i) 전자 바우처 데이터, (ii) 특정 사용자의 public key 및 (iii) 특정 사용자의 서명값의 유효 여부를 확인한다(S301). 또한, 서버(100)는 전자 바우처 데이터에 대한 포맷 형식의 유효 여부를 확인할 수도 있다.Then, the server 100 confirms whether the acquired (i) electronic voucher data, (ii) the public key of the specific user, and (iii) the signature value of the specific user are valid (S301). In addition, the server 100 may check whether the format of the electronic voucher data is valid.

그리고, 서버(100)는 확인 결과(S310) 유효인 것으로 판단하면, (i) 전자 바우처 데이터, (ii) 특정 사용자의 public key 및 (iii) 특정 사용자의 서명값을 포함하는 전자 바우처 사용 transaction(TrxA)을 프라이빗 블록체인 데이터베이스에 등록하거나 등록하도록 지원하고, 프라이빗 블록체인 데이터베이스에 등록된 전자 바우처 사용 transaction의 프라이빗 블록체인 데이터베이스 상의 위치 정보를 나타내는 PrivTxid를 포함하는 등록이 성공했음을 나타내는 응답을 특정 사용자(111)에게 제공하거나 제공하도록 지원할 수 있다(S311). 하지만, 서버(100)는 확인 결과(S110) 유효가 아니면, 특정 사용자(111)에게 에러 메시지를 포함하는 실패를 나타내는 응답을 제공하거나 제공하도록 지원할 수 있다(S312).If the server 100 determines that the confirmation result (S310) is valid, the server 100 transmits an electronic voucher use transaction (i) including the electronic coupon data, (ii) the public key of the specific user, and (iii) TrxA) is registered in the private block chain database, and a response indicating that the registration including the PrivTxid indicating the location information on the private block chain database of the electronic voucher use transaction registered in the private block chain database is successful is transmitted to the specific user 111) (S311). However, if the confirmation result (S110) is not valid, the server 100 may support to provide or provide a response indicating failure including the error message to the specific user 111 (S312).

또한, 서버(100)는 유효한 확인 결과에 대응하여, 소정의 조건이 만족되면(S320), (i) 전자 바우처 데이터, (ii) 특정 사용자의 public key 및 (iii) 특정 사용자의 서명값의 해쉬값인 특정 해쉬값 및 특정 해쉬값과 매칭되는 적어도 하나의 이웃 해쉬값을 연산함으로써 대표 해쉬값 또는 대표 해쉬값을 가공한 값을 생성하고(S321), 퍼블릭 블록체인 데이터베이스(120)에 등록하거나 등록하도록 지원하며(S322), 퍼블릭 블록체인 데이터베이스(120)에 등록된 대표 해쉬값 또는 대표 해쉬값을 가공한 값의 퍼블릭 블록체인 데이터베이스(120) 상의 위치 정보를 나타내는 Txid를 획득하거나 획득하도록 지원할 수 있다(S323). 이때, 대표 해쉬값 또는 대표 해쉬값을 가공한 값은 도 2에서의 설명에서와 같이 머클 트리에 의해 생성될 수 있다.If the predetermined condition is satisfied (S320), the server 100 determines whether the electronic coupon data (ii) the public key of the specific user and (iii) the hash of the signature value of the specific user (S321). The public key chain database 120 registers the public hash value or the representative hash value in the public block chain database 120, (S322), and can support to obtain or acquire Txid indicating positional information on the public block chain database 120 of values obtained by processing representative hash values or representative hash values registered in the public block chain database 120 (S323). At this time, the value obtained by processing the representative hash value or the representative hash value can be generated by the merge tree as shown in FIG.

그리고, 서버(100)가 특정 사용자를 등록하는 과정을 설명하면 다음과 같다. 특정 사용자의 등록 또한 도 5에서의 특정 발행자의 등록과 같은 방법을 수행하는 것으로 유사한 부분은 도 5에서의 설명으로 이해 가능하므로 생략한다.A process of registering a specific user by the server 100 will now be described. The registration of the specific user also performs the same method as the registration of the specific issuer in Fig. 5, and a similar portion is omitted because it can be understood by the description in Fig.

특정 사용자(111)의 public key에 의한 사용자 등록 요청이 획득되면, 서버(100)는, 특정 사용자(111)의 유효 여부를 확인하여 특정 사용자(111)가 유효할 경우 random nonce를 특정 사용자(111)에게 전달하거나 전달하도록 지원할 수 있다. 그리고, 특정 사용자(111)가 유효하지 않을 경우, 서버(100)는 특정 사용자(111)에게 사용자 확인 실패를 나타내는 응답을 제공하거나 제공하도록 지원할 수 있다.When the user registration request by the public key of the specific user 111 is obtained, the server 100 confirms the validity of the specific user 111 and, if the specific user 111 is valid, ) To the customer. If the specific user 111 is not valid, the server 100 may support the specific user 111 to provide or provide a response indicating the failure of the user confirmation.

유효한 사용자일 경우, random nonce를 특정 사용자의 private key로 서명한 random nonce 서명값이 획득되면, 서버(100)는, random nonce 서명값이 정상적으로 서명되었는지를 특정 사용자의 public key를 사용하여 검증한다.In the case of a valid user, if the random nonce signature value obtained by signing the random nonce with the private key of the specific user is obtained, the server 100 verifies whether the random nonce signature value is normally signed using the public key of the specific user.

그리고, 서버(100)는 특정 사용자(111)로부터 획득된 서명값이 유효한 것일 경우, random nonce, random nonce 서명값 및 특정 사용자의 public key을 포함하는 사용자 등록 transaction을 프라이빗 블록체인 데이터베이스에 등록하거나 등록하도록 지원하고, 프라이빗 블록체인 데이터베이스에 등록된 사용자 등록 transaction의 프라이빗 블록체인 데이터베이스 상의 위치 정보를 나타내는 PrivTxid를 특정 사용자(111)에게 제공하거나 제공하도록 지원할 수 있다.If the signature value obtained from the specific user 111 is valid, the server 100 registers the user registration transaction including the random nonce, the random nonce signature value, and the public key of the specific user in the private block chain database or registers And to provide or provide the specific user 111 with a PrivTxid indicating the location information on the private block chain database of the user registration transaction registered in the private block chain database.

그러나, 서버(100)는 특정 사용자(111)로부터 획득된 서명값이 유효하지 않을 경우, 특정 사용자(111)에게 서명값 확인 실패를 나타내는 응답을 제공하거나 제공하도록 지원할 수 있다.However, the server 100 may assist the specific user 111 to provide or provide a response indicating failure to verify the signature value when the signature value obtained from the specific user 111 is invalid.

또한, 서버(100)는 발행자와 서명값이 유효한 경우, 소정이 조건이 만족되면, random nonce, random nonce 서명값 및 특정 사용자의 public key의 해쉬값인 특정 해쉬값 및 특정 해쉬값과 매칭되는 적어도 하나의 이웃 해쉬값을 연산함으로써 생성되는 대표 해쉬값 또는 대표 해쉬값을 가공한 값을 퍼블릭 블록체인 데이터베이스에 등록하거나 등록하도록 지원하며, 퍼블릭 블록체인 데이터베이스에 등록된 대표 해쉬값 또는 대표 해쉬값을 가공한 값의 퍼블릭 블록체인 데이터베이스 상의 위치 정보를 나타내는 transaction ID인 Txid를 획득하거나 획득하도록 지원할 수 있다.If the signature value of the issuer is valid, if the predetermined condition is satisfied, the server 100 transmits a random hash value, a random nonce signature value, and a specific hash value, which is a hash value of a specific user's public key, A representative hash value or a representative hash value generated by computing an adjacent hash value is registered or registered in a public block chain database, and a representative hash value or representative hash value registered in the public block chain database is processed And acquire or obtain a transaction ID Txid that indicates location information on a public block chain database of one value.

다음으로, 도 7을 참조하여 본 발명의 일 실시예에 따른 전자 바우처를 환불하는 방법을 설명하면 다음과 같다. 다음의 설명에서 도 2의 본 발명의 실시예에서 전자 바우처를 발행하는 방법에서와 유사한 부분은 도 2의 설명으로부터 이해 가능하므로 상세한 설명을 생략한다.Next, a method for refunding an electronic voucher according to an embodiment of the present invention will be described with reference to FIG. In the following description, parts similar to those of the method of issuing an electronic voucher in the embodiment of the present invention shown in Fig. 2 can be understood from the description of Fig. 2, and detailed description thereof will be omitted.

전자 바우처를 환불하기 위하여, 전자 바우처를 구매한 특정 사용자(111)로부터 전자 바우처의 환불을 위한 (i) 이전에 적어도 일부 미사용되었으며 만료된 전자 바우처에 대한 PrivTxid를 포함하는 전자 바우처 데이터, (ii) 특정 사용자의 public key 및 (iii) 전자 바우처 데이터의 해쉬값 또는 이를 포함한 값을 특정 사용자의 private key로 서명한 특정 사용자의 서명값에 의한 전자 바우처 환불 요청(request(refund TrxA))이 특정 사용자(111)의 단말로부터 송신되면 서버(100)는 이를 통신부를 통해 수신한다(S400).(Ii) e-voucher data including at least some unused and expired electronic vouchers for which the PrivTxid has been previously used for refunding the electronic voucher from the specific user 111 who purchased the electronic voucher, (Refund TrxA) by a signature value of a specific user who has signed the hash value of the e-voucher data or a value including the hash value of the e-voucher data with the private key of the specific user 111), the server 100 receives it through the communication unit (S400).

이때, 전자 바우처 데이터는 전자 바우처의 타입 정보, 전자 바우처를 발행한 특정 발행자의 public key, 전자 바우처의 환불 가치 정보, 특정 발행자의 고유 ID 및 전자 바우처에 대응되는 사용 기한 정보 중 적어도 하나 이상을 더 포함할 수 있다. 그리고, 전자 바우처의 타입 정보는 현재 수행하는 동작을 정의하기 위한 것으로 전자 바우처 환불을 표시하는 정보일 수 있다. 또한, 전자 바우처를 발행한 특정 발행자의 public key는 환불 바우처의 수신으로서 전자 바우처를 발행한 특정 발행자의 public key이다. 그리고, 전자 바우처의 환불 가치 정보는 전자 바우처를 통해 환불할 수 있는 가치 정보이며, 특정 발행자의 고유 ID는 전자 바우처를 발행한 특정 발행자의 ID이다. 또한, 전자 바우처에 대응되는 사용 기한 정보는 전자 바우처를 사용할 수 있는 기한을 지정한 날짜 정보일 수 있다.At this time, the electronic voucher data includes at least one of the type information of the electronic voucher, the public key of the specific issuer that issued the electronic voucher, the refund value information of the electronic voucher, the unique ID of the specific issuer, and the use period information corresponding to the electronic voucher . In addition, the type information of the electronic voucher is for defining an operation to be carried out and may be information indicating an electronic voucher refund. Also, the public key of the specific issuer issuing the electronic voucher is the public key of the specific issuer who issued the electronic voucher as the receipt of the refund voucher. The refund value information of the electronic voucher is the value information that can be refunded through the electronic voucher, and the unique ID of the specific issuer is the ID of the specific issuer issuing the electronic voucher. Further, the expiration date information corresponding to the electronic voucher may be date information specifying a time limit in which the electronic voucher can be used.

그리고, 일 예로, 전자 바우처 환불을 위한 transaction(TrxA)은 1, 타입(환불), 2. 이전 transaction에 대한 PrivTxid 또는 Txid, 3. 수신자로 환불할 전자 바우처를 수령하는 특정 발행자의 public key, 4. 전자 바우처의 환불 가치 정보, 5. 전자 바우처의 발행인 ID. 6. 전자 바우처의 만료일, 7. 이번 동작의 주체 확인을 위한 public key인 특정 사용자의 public key(PubA), 8. 서명값으로 특정 사용자가 private key로 서명한 1, 2, 3, 4, 5, 6, 7의 서명값(SigPrivA(1:2:3:4:5:6:7))을 포함할 수 있다.For example, transaction (TrxA) for electronic voucher refund is 1, type (refund), 2. PrivTxid or Txid for the previous transaction, 3. public key of the specific issuer receiving the electronic voucher to be refunded to the receiver The electronic voucher's refund value information, and 5. the issuer ID of the electronic voucher. 6. The expiration date of the electronic voucher, 7. The public key (PubA) of a specific user, which is a public key for identifying the subject of this operation, 8. The signature value of 1, 2, 3, 4, 5 , 6, 7 signature values (SigPrivA (1: 2: 3: 4: 5: 6: 7)).

그러면, 서버(100)는 획득된 (i) 전자 바우처 데이터, (ii) 특정 사용자의 public key 및 (iii) 특정 사용자의 서명값의 유효 여부를 확인한다(S401).In step S401, the server 100 checks whether the obtained electronic coupon data, (ii) the public key of the specific user, and (iii) the signature value of the specific user are valid.

그리고, 서버(100)는 확인 결과(S410) 유효한 것으로 판단하면, (i) 전자 바우처 데이터, (ii) 특정 사용자의 public key 및 (iii) 특정 사용자의 서명값을 포함하는 전자 바우처 환불 transaction(TrxA)을 프라이빗 블록체인 데이터베이스에 등록하거나 등록하도록 지원하고, 프라이빗 블록체인 데이터베이스에 등록된 전자 바우처 환불 transaction의 프라이빗 블록체인 데이터베이스 상의 위치 정보를 나타내는 PrivTxid를 포함하는 등록이 성공했음을 나타내는 응답을 특정 사용자(111)에게 제공하거나 제공하도록 지원할 수 있다(S411). 하지만, 서버(100)는 확인 결과(S410) 유효가 아니면, 특정 사용자(111)에게 에러 메시지를 포함하는 실패를 나타내는 응답을 제공하거나 제공하도록 지원할 수 있다(S412).If the server 100 determines that the validation result is valid (S410), the server 100 transmits an electronic voucher refund transaction (TrxA) including the electronic coupon data, (ii) the public key of the specific user, and (iii) ) To the private block chain database, and transmits a response indicating that the registration including the PrivTxid indicating the location information on the private block chain database of the electronic voucher refund transaction registered in the private block chain database is successful to the specific user 111 ) (S411). However, if the confirmation result (S410) is not valid, the server 100 may support to provide or provide a response indicating failure including the error message to the specific user 111 (S412).

또한, 서버(100)는 유효한 확인 결과에 대응하여, 소정의 조건이 만족되면(S420), (i) 전자 바우처 데이터, (ii) 특정 사용자의 public key 및 (iii) 특정 사용자의 서명값의 해쉬값인 특정 해쉬값 및 특정 해쉬값과 매칭되는 적어도 하나의 이웃 해쉬값을 연산함으로써 대표 해쉬값 또는 대표 해쉬값을 가공한 값을 생성하고(S421), 생성된 대표 해쉬값 또는 대표 해쉬값을 가공한 값을 퍼블릭 블록체인 데이터베이스에 등록하거나 등록하도록 지원하며(S422), 퍼블릭 블록체인 데이터베이스에 등록된 대표 해쉬값 또는 대표 해쉬값을 가공한 값의 상기 퍼블릭 블록체인 데이터베이스 상의 위치 정보를 나타내는 transaction ID인 Txid를 획득하거나 획득하도록 지원할 수 있다(S423).If the predetermined condition is satisfied (S420), the server 100 determines whether or not the electronic coupon data, (ii) the public key of the specific user, and (iii) the hash of the signature value of the specific user A representative hash value or a representative hash value is generated by computing a specific hash value and at least one neighbor hash value that matches the specific hash value at step S421 and the generated representative hash value or representative hash value is processed (S422), and stores a transaction ID representing the location information on the public block chain database of the value obtained by processing the representative hash value or the representative hash value registered in the public block chain database Txid may be acquired or obtained (S423).

다음으로, 도 8을 참조하여 본 발명의 일 실시예에 따른 전자 바우처를 정산하는 방법을 설명하면 다음과 같다. 다음의 설명에서 도 2의 본 발명의 실시예에서 전자 바우처를 발행하는 방법에서와 유사한 부분은 도 2의 설명으로부터 이해 가능하므로 상세한 설명을 생략한다.Next, a method for settlement of an electronic voucher according to an embodiment of the present invention will be described with reference to FIG. In the following description, parts similar to those of the method of issuing an electronic voucher in the embodiment of the present invention shown in Fig. 2 can be understood from the description of Fig. 2, and detailed description thereof will be omitted.

전자 바우처를 정산하기 위하여, 상품이나 서비스 등의 반대 급부로 전자 바우처를 수령한 특정 판매자(112)로부터 전자 바우처의 정산을 위한 (i) 이번 transaction에서 사용된 전자 바우처에 대한 PrivTxid의 개수 및 각각의 사용 시점에서 적어도 일부 미사용된 전자 바우처에 대한 PrivTxid를 적어도 포함하는 전자 바우처 데이터, (ii) 상기 특정 판매자의 public key 및 (iii) 상기 전자 바우처 데이터의 해쉬값 또는 이를 포함한 값을 상기 특정 판매자의 private key로 서명한 상기 특정 판매자의 서명값에 의한 전자 바우처 정산 요청(request(merchant TrxA)이 특정 판매자의 단말로부터 송신되면 서버(100)를 통신부를 통해 이를 수신한다(S500).(I) the number of PrivTxids for the electronic voucher used in this transaction, and the number of PrivTxid for each electronic voucher used in this transaction, for the settlement of the electronic voucher from the specific seller 112 receiving the electronic voucher at the opposite payment of the goods or service, Electronic coupon data including at least a PrivTxid for at least some unused electronic coupons at the time of use, (ii) a public key of the specific seller, and (iii) a hash value of the electronic coupon data, (merchant TrxA) is transmitted from the terminal of the specific seller (step S500), the server 100 receives the e-voucher settlement request (merchant TrxA) based on the signature value of the specific seller.

이때, 전자 바우처 데이터는 전자 바우처의 타입 정보, 전자 바우처를 발행한 특정 발행자의 public key, 전자 바우처의 정산 가치 정보 및 특정 발행자의 고유 ID 중 적어도 하나 이상을 더 포함할 수 있다. 그리고, 전자 바우처의 타입 정보는 현재 수행하는 동작을 정의하기 위한 것으로 전자 바우처 정산을 표시하는 정보일 수 있다. 또한, 전자 바우처의 정산 가치 정보는 특정 판매자가 상품, 서비스 등의 반대 급부로 수령한 가치에 대한 정보일 수 있다.At this time, the electronic voucher data may further include at least one of the type information of the electronic voucher, the public key of the specific issuer that issued the electronic voucher, the settlement value information of the electronic voucher, and the unique ID of the specific issuer. The type information of the electronic voucher is information for defining an operation to be performed at present and may be information indicating an electronic coupon settlement. In addition, the settlement value information of the electronic voucher may be information on the value received by a particular seller as a counterprogram of goods, services, and the like.

그리고, 일 예로, 전자 바우처 정산을 위한 transaction(TrxA)은 1. 타입(정산), 2. 이번 transaction에서 사용된 전자 바우처의 PrivTxid 또는 Txid, 3. 각각의 사용 시점에서 적어도 일부 미사용된 전자 바우처에 대한 PrivTxid, 4. 수신자로 전자 바우처를 정산하기 위하여 수령하는 특정 발행자의 public key, 5. 전자 바우처의 정산 가치 정보, 6. 전자 바우처의 발행인 ID. 7. 이번 동작의 주체 확인을 위한 public key인 특정 판매자의 public key(PubA), 8. 서명값으로 특정 판매자가 private key로 서명한 1, 2, 3, 4, 5, 6, 7의 서명값(SigPrivA(1:2:3:4:5:6:7)을 포함할 수 있다.For example, the transaction (TrxA) for electronic coupon settlement is: 1. type (settlement), 2. PrivTxid or Txid of the electronic voucher used in this transaction, 3. at least some unused electronic vouchers 4. PrivTxid, 4. Public key of the specific issuer to receive the electronic voucher to settle to the receiver, 5. Settlement value information of the electronic voucher, and 6. Issuer ID of the electronic voucher. 7. The public key (PubA) of a specific seller, which is a public key for identifying the subject of this operation. 8. The signature value of 1, 2, 3, 4, 5, 6 and 7, (SigPrivA (1: 2: 3: 4: 5: 6: 7).

그러면, 서버는 획득된 (i) 전자 바우처 데이터, (ii) 특정 판매자의 public key 및 (iii) 특정 판매자의 서명값의 유효 여부를 확인한다(S501). 또한, 서버(100)는 전자 바우처 데이터에 대한 포맷 형식의 유효 여부를 확인할 수도 있다.Then, the server confirms whether the acquired (i) electronic voucher data, (ii) the public key of the specific seller, and (iii) the signature value of the specific seller are valid (S501). In addition, the server 100 may check whether the format of the electronic voucher data is valid.

그리고, 서버(100)는 확인 결과(S510) 유효한 것으로 판단하면, (i) 전자 바우처 데이터, (ii) 상기 특정 판매자의 public key 및 (iii) 특정 판매자의 서명값을 포함하는 전자 바우처 정산 transaction(TrxA)을 프라이빗 블록체인 데이터베이스에 등록하거나 등록하도록 지원하고, 프라이빗 블록체인 데이터베이스에 등록된 전자 바우처 정산 Transaction의 프라이빗 블록체인 데이터베이스 상의 위치 정보를 나타내는 PrivTxid를 특정 판매자(112)에게 제공하거나 제공하도록 지원할 수 있다(S511). 하지만, 서버(100)는 확인 결과(S510) 유효가 아니면, 특정 판매자(112)에게 에러 메시지를 포함하는 실패를 나타내는 응답을 제공하거나 제공하도록 지원할 수 있다(S512).If the server 100 determines that the confirmation result (S510) is valid, the server 100 transmits an electronic voucher settlement transaction (e) including electronic coupon data, (ii) a public key of the specific seller, and (iii) TrxA) to the private block chain database and to provide or provide the specific seller 112 with a PrivTxid indicating the location information on the private block chain database of the electronic courier settlement transaction registered in the private block chain database (S511). However, if the confirmation result (S510) is not valid, the server 100 may support to provide or provide a response indicating failure including the error message to the specific seller 112 (S512).

또한, 서버(100)는 유효한 확인 결과에 대응하여, 소정의 조건이 만족되면(S520), (i) 전자 바우처 데이터, (ii) 특정 사용자의 public key 및 (iii) 특정 사용자의 서명값의 해쉬값인 특정 해쉬값 및 특정 해쉬값과 매칭되는 적어도 하나의 이웃 해쉬값을 연산함으로써 대표 해쉬값 또는 대표 해쉬값을 가공한 값을 생성하고(S521), 생성된 대표 해쉬값 또는 대표 해쉬값을 가공한 값을 퍼블릭 블록체인 데이터베이스(120)에 등록하거나 등록하도록 지원하며(S522), 퍼블릭 블록체인 데이터베이스(120)에 등록된 대표 해쉬값 또는 대표 해쉬값을 가공한 값의 퍼블릭 블록체인 데이터베이스 상의 위치 정보를 나타내는 transaction ID인 Txid를 획득하거나 획득하도록 지원할 수 있다(S523).If the predetermined condition is satisfied (S520), the server 100 determines whether or not the electronic coupon data (ii) the public key of the specific user and (iii) the hash of the signature value of the specific user A representative hash value or a representative hash value is generated by calculating a specific hash value and at least one neighbor hash value matching the specific hash value at step S521, and the generated representative hash value or representative hash value is processed (S522), and stores the position information on the public block chain database of the value obtained by processing the representative hash value or the representative hash value registered in the public block chain database 120 To obtain or acquire a transaction ID Txid indicating the transaction ID (step S523).

그리고, 서버(100)가 특정 판매자를 등록하는 과정을 설명하면 다음과 같다. 특정 판매자의 등록 또한 도 5에서의 특정 발행자의 등록과 같은 방법을 수행하는 것으로 유사한 부분은 도 5에서의 설명으로 이해 가능하므로 생략한다.A process of registering a specific seller by the server 100 will now be described. The registration of the specific seller also performs the same method as the registration of the specific issuer in FIG. 5, and a similar portion is omitted because it can be understood by the description in FIG.

특정 판매자(112)의 public key에 의한 사용자 등록 요청이 획득되면, 서버(100)는, 특정 판매자(112)의 유효 여부를 확인하여 특정 판매자(112)가 유효할 경우 random nonce를 특정 판매자(112)에게 전달하거나 전달하도록 지원할 수 있다. 그리고, 특정 판매자(112)가 유효하지 않을 경우, 서버(100)는 특정 판매자(112)에게 사용자 확인 실패를 나타내는 응답을 제공하거나 제공하도록 지원할 수 있다.When the user registration request by the public key of the specific seller 112 is obtained, the server 100 confirms the validity of the specific seller 112 and sends a random nonce to the specific seller 112 ) To the customer. Then, when the specific seller 112 is not valid, the server 100 can assist the specific seller 112 to provide or provide a response indicating the user confirmation failure.

이후, 유효한 판매자일 경우, random nonce를 특정 판매자의 private key로 서명한 random nonce 서명값이 획득되면, 서버(100)는, random nonce 서명값이 정상적으로 서명되었는지를 특정 판매자의 public key를 사용하여 검증한다.Thereafter, in the case of a valid seller, when a random nonce signature value obtained by signing a random nonce with a private key of a specific seller is obtained, the server 100 verifies whether the random nonce signature value is normally signed using the public key of the specific seller do.

그리고, 서버(100)는 특정 판매자(112)로부터 획득된 서명값이 유효한 것일 경우, random nonce, random nonce 서명값 및 특정 판매자의 public key을 포함하는 판매자 등록 transaction을 프라이빗 블록체인 데이터베이스에 등록하거나 등록하도록 지원하고, 프라이빗 블록체인 데이터베이스에 등록된 판매자 등록 transaction의 프라이빗 블록체인 데이터베이스 상의 위치 정보를 나타내는 PrivTxid를 특정 판매자(112)에게 제공하거나 제공하도록 지원할 수 있다.When the signature value obtained from the specific seller 112 is valid, the server 100 registers the seller registration transaction including the random nonce, the random nonce signature value, and the public key of the specific seller in the private block chain database, And to provide or provide the specific seller 112 with a PrivTxid indicating the location information on the private block chain database of the seller registration transaction registered in the private block chain database.

그러나, 서버(100)는 특정 판매자(112)로부터 획득된 서명값이 유효하지 않을 경우, 특정 판매자(112)에게 서명값 확인 실패를 나타내는 응답을 제공하거나 제공하도록 지원할 수 있다.However, the server 100 may assist the specific seller 112 to provide or provide a response indicating failure to verify the signature value if the signature value obtained from the particular seller 112 is not valid.

또한, 서버(100)는 판매자와 서명값이 유효한 경우, 소정의 조건이 만족되면, (i) 전자 바우처 데이터, (ii) 특정 판매자의 public key 및 (iii) 특정 판매자의 서명값의 해쉬값인 특정 해쉬값 및 특정 해쉬값과 매칭되는 적어도 하나의 이웃 해쉬값을 연산함으로써 생성되는 대표 해쉬값 또는 대표 해쉬값을 가공한 값을 퍼블릭 블록체인 데이터베이스에 등록하거나 등록하도록 지원하며, 퍼블릭 블록체인 데이터베이스에 등록된 대표 해쉬값 또는 대표 해쉬값을 가공한 값의 퍼블릭 블록체인 데이터베이스 상의 위치를 나타내는 Txid를 획득하거나 획득하도록 지원할 수 있다.In addition, if the seller and the signature value are valid, the server 100 determines that the hash value of the signature value of the specific seller is (i) the electronic coupon data, (ii) A value obtained by processing a representative hash value or a representative hash value generated by calculating a specific hash value and at least one neighbor hash value matched with the specified hash value is registered or registered in the public block chain database, To obtain or obtain a Txid that indicates the location on the public block chain database of the value of the registered representative hash value or the representative hash value.

다음으로, 도 9를 참조하여 본 발명의 일 실시예에 따른 전자 바우처를 파기하는 방법을 설명하면 다음과 같다. 다음의 설명에서 도 2의 본 발명의 실시예에서 전자 바우처를 발행하는 방법에서와 유사한 부분은 도 2의 설명으로부터 이해 가능하므로 상세한 설명을 생략한다.Next, a method for canceling an electronic voucher according to an embodiment of the present invention will be described with reference to FIG. In the following description, parts similar to those of the method of issuing an electronic voucher in the embodiment of the present invention shown in Fig. 2 can be understood from the description of Fig. 2, and detailed description thereof will be omitted.

전자 바우처를 파기하기 위하여, 특정 발행자(110)로부터 전자 바우처의 파기를 위한 (i) 이전에 적어도 일부 사용되지 않았으며 만료된 전자 바우처에 대한 PrivTxid를 포함하는 전자 바우처 데이터, (ii) 특정 발행자의 public key 및 (iii) 전자 바우처 데이터의 해쉬값 또는 이를 포함한 값을 특정 발행자의 private key로 서명한 특정 발행자의 서명값에 의한 전자 바우처 파기 요청(request(revocate TrxA))이 특정 발행자의 단말로부터 송신되면 서버(100)는 이를 통신부를 통해 수신한다(S600).(I) electronic voucher data including PrivTxid for at least some unused and expired electronic vouchers prior to destruction of an electronic voucher from a particular issuer 110, (ii) electronic voucher data for a particular issuer 110, (revocate TrxA) based on a signature value of a specific issuer that has signed a hash value of the e-voucher data or a value including the hash value with a private key of a specific issuer is transmitted from a terminal of a specific issuer The server 100 receives it through the communication unit (S600).

이때, 전자 바우처 데이터는 전자 바우처의 타입 정보, 특정 발행자의 public key, 전자 바우처에서 파기할 가치 정보 및 특정 발행자의 고유 ID 중 적어도 어느 하나 이상을 더 포함할 수 있다. 그리고, 전자 바우처의 타입 정보는 현재 수행하는 동작을 정의하기 위한 것으로 전자 바우처 파기를 표시하는 정보일 수 있다.At this time, the electronic voucher data may further include at least one of the type information of the electronic voucher, the public key of the specific issuer, the value information to be discarded by the electronic voucher, and the unique ID of the specific issuer. The type information of the electronic voucher is used to define an operation to be performed at present and may be information indicating an electronic voucher destruction.

그리고, 일 예로, 전자 바우처 파기를 위한 transaction(TrxA)은 1. 타입(파기), 2. 이전에 적어도 일부 사용되지 않았으며 만료된 상기 전자 바우처에 대한 PrivTxid 또는 Txid, 3. 수신자로 전자 바우처를 수령하는 특정 발행자의 public key, 4. 전자 바우처의 파기 가치 정보, 5. 전자 바우처의 발행인 ID. 6. 이번 동작의 주체 확인을 위한 public key인 특정 발행자의 public key, 7. 서명값으로 특정 발행자가 private key로 서명한 1, 2, 3, 4, 5, 6의 서명값(SigPrivA(1:2:3:4:5:6))을 포함할 수 있다.For example, the transaction (TrxA) for the electronic voucher destruction may be of type 1. (destroy), 2. PrivTxid or Txid for the electronic voucher that has not been used at least partially and has expired before, and 3. Electronic voucher The public key of the specific issuer to receive, 4. the destroyed value information of the electronic voucher, and 5. the issuer ID of the electronic voucher. 6. The public key of the specific issuer, which is the public key for checking the subject of this operation. 7. The signature value of 1, 2, 3, 4, 5, 6 (SigPrivA (1: 2: 3: 4: 5: 6).

그러면, 서버(100)는 획득된 (i) 전자 바우처 데이터, (ii) 특정 발행자의 public key 및 (iii) 특정 발행자의 서명값의 유효 여부를 확인한다(S601). 또한, 서버(100)는 전자 바우처 데이터에 대한 포맷 형식의 유효 여부를 확인할 수도 있다.Then, the server 100 confirms whether the obtained electronic coupon data (ii) the public key of the specific issuer and (iii) the signature value of the specific issuer are valid (S601). In addition, the server 100 may check whether the format of the electronic voucher data is valid.

그리고, 서버(100)는 확인 결과(S610) 유효한 것으로 판단하면, (i) 전자 바우처 데이터, (ii) 특정 발행자의 public key 및 (iii) 특정 발행자의 서명값을 포함하는 전자 바우처 파기 transaction(TrxA)을 프라이빗 블록체인 데이터베이스에 등록하거나 등록하도록 지원하고, 프라이빗 블록체인 데이터베이스에 등록된 전자 바우처 파기 transaction의 프라이빗 블록체인 데이터베이스 상의 위치 정보를 나타내는 PrivTxid를 포함하는 등록이 성공했음을 나타내는 응답을 특정 발행자(110)에게 제공하거나 제공하도록 지원할 수 있다(S611). 하지만, 서버(100)는 확인 결과(S610) 유효가 아니면, 특정 발행자(110)에게 에러 메시지를 포함하는 실패를 나타내는 응답을 제공하거나 제공하도록 지원할 수 있다(S612).If the server 100 determines that the validation result (S610) is valid, the server 100 transmits an electronic voucher destruction transaction (TrxA) including the electronic coupon data, (ii) the public key of the specific issuer, and (iii) ) To the private block chain database, and transmits a response indicating that the registration including the PrivTxid indicating the location information on the private block chain database of the electronic voucher destruction transaction registered in the private block chain database is successful, to the specific issuer 110 (S611). ≪ / RTI > However, if the confirmation result (S610) is not valid, the server 100 may support to provide or provide a response indicating failure including the error message to the specific issuer 110 (S612).

또한, 서버(100)는 유효한 확인 결과에 대응하여, 소정의 조건이 만족되면(S620), 특정 해쉬값(특정 해쉬값은 (i) 전자 바우처 데이터, (ii) 특정 발행자의 public key 및 (iii) 특정 발행자의 서명값의 해쉬값임) 및 특정 해쉬값과 매칭되는 적어도 하나의 이웃 해쉬값을 연산함으로써 대표 해쉬값 또는 대표 해쉬값을 가공한 값을 생성하고(S621), 생성된 대표 해쉬값 또는 대표 해쉬값을 가공한 값을 퍼블릭 블록체인 데이터베이스에 등록하거나 등록하도록 지원하며(S622), 상기 퍼블릭 블록체인 데이터베이스에 등록된 상기 대표 해쉬값 또는 상기 대표 해쉬값을 가공한 값의 상기 퍼블릭 블록체인 데이터베이스 상의 위치 정보를 나타내는 Txid를 획득하거나 획득하도록 지원할 수 있다(S623).If the predetermined condition is satisfied (S620), the server 100 determines whether the hash value (the specific hash value is (i) the electronic voucher data, (ii) the public key of the specific issuer and (iii) ) And a representative hash value by computing at least one neighbor hash value that matches the specific hash value (S621), and generates a representative hash value or a generated hash value (S622) a value obtained by processing the representative hash value is registered or registered in the public block chain database (S622), and a value obtained by processing the representative hash value or the representative hash value registered in the public block chain database To acquire or acquire Txid indicating the positional information on the terminal (S623).

또한, 이상 설명된 본 발명에 따른 실시예들은 다양한 컴퓨터 구성요소를 통하여 수행될 수 있는 프로그램 명령어의 형태로 구현되어 컴퓨터 판독 가능한 It will also be appreciated that embodiments of the invention described above may be implemented in the form of program instructions that may be executed through various computer components,

기록 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능한 기록 매체는 프로그램 명령어, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 컴퓨터 판독 가능한 기록 매체에 기록되는 프로그램 명령어는 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 분야의 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능한 기록 매체의 예에는, 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체, CD-ROM, DVD와 같은 광기록 매체, 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 ROM, RAM, 플래시 메모리 등과 같은 프로그램 명령어를 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령어의 예에는, 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드도 포함된다. 상기 하드웨어 장치는 본 발명에 따른 처리를 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.And recorded on a recording medium. The computer-readable recording medium may include program commands, data files, data structures, and the like, alone or in combination. The program instructions recorded on the computer-readable recording medium may be those specially designed and constructed for the present invention or may be those known and used by those skilled in the computer software arts. Examples of computer-readable recording media include magnetic media such as hard disks, floppy disks and magnetic tape, optical recording media such as CD-ROMs and DVDs, magneto-optical media such as floptical disks, media, and hardware devices specifically configured to store and execute program instructions such as ROM, RAM, flash memory, and the like. Examples of program instructions include machine language code such as those generated by a compiler, as well as high-level language code that can be executed by a computer using an interpreter or the like. The hardware device may be configured to operate as one or more software modules for performing the processing according to the present invention, and vice versa.

이상에서 본 발명이 구체적인 구성요소 등과 같은 특정 사항들과 한정된 실시예 및 도면에 의해 설명되었으나, 이는 본 발명의 보다 전반적인 이해를 돕기 위해서 제공된 것일 뿐, 본 발명이 상기 실시예들에 한정되는 것은 아니며, 본 발명이 속하는 기술분야에서 통상적인 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형을 꾀할 수 있다.While the present invention has been particularly shown and described with reference to exemplary embodiments thereof, it is to be understood that the invention is not limited to the disclosed exemplary embodiments, but, on the contrary, Those skilled in the art will appreciate that various modifications, additions and substitutions are possible, without departing from the scope and spirit of the invention as disclosed in the accompanying claims.

따라서, 본 발명의 사상은 상기 설명된 실시예에 국한되어 정해져서는 아니 되며, 후술하는 특허청구범위뿐만 아니라 이 특허청구범위와 균등하게 또는 등가적으로 변형된 모든 것들은 본 발명의 사상의 범주에 속한다고 할 것이다.Therefore, the spirit of the present invention should not be construed as being limited to the above-described embodiments, and all of the equivalents or equivalents of the claims, as well as the following claims, I will say.

100: 서버,
101: 통신부,
102: 프로세서,
110: 특정 발행자,
111: 특정 사용자,
112: 특정 판매자
100: server,
101:
102: processor,
110: a specific issuer,
111: Specific user,
112: Specific seller

Claims (48)

삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 전자 바우처를 사용하는 방법에 있어서,
(a) 특정 사용자로부터 상기 전자 바우처의 사용을 위한 (i) 이전에 적어도 일부 미사용된 상기 전자 바우처에 대한 PrivTxid를 포함하는 전자 바우처 데이터, (ii) 상기 특정 사용자의 public key 및 (iii) 상기 전자 바우처 데이터의 해쉬값 또는 이를 포함한 값을 상기 특정 사용자의 private key로 서명한 상기 특정 사용자의 서명값이 획득되면, 서버는, (i) 상기 전자 바우처 데이터, (ii) 상기 특정 사용자의 public key 및 (iii) 상기 특정 사용자의 서명값의 유효 여부를 확인하여 유효일 경우, (i) 상기 전자 바우처 데이터, (ii) 상기 특정 사용자의 public key 및 (iii) 상기 특정 사용자의 서명값을 포함하는 전자 바우처 사용 transaction을 프라이빗 블록체인 데이터베이스에 등록하거나 상기 서버에 연동된 타 장치로 하여금 상기 프라이빗 블록체인 데이터베이스에 등록하도록 지원하며, 상기 프라이빗 블록체인 데이터베이스에 등록된 상기 전자 바우처 사용 transaction의 상기 프라이빗 블록체인 데이터베이스 상의 위치 정보를 나타내는 PrivTxid를 특정 발행자에게 제공하거나 상기 타 장치로 하여금 특정 발행자에게 제공하도록 지원하는 단계; 및
(b) 소정의 조건이 만족되면, 상기 서버가, 특정 해쉬값 - 상기 특정 해쉬값은 (i) 상기 전자 바우처 데이터, (ii) 상기 특정 사용자의 public key 및 (iii) 상기 특정 사용자의 서명값의 해쉬값임 - 및 상기 특정 해쉬값과 매칭되는 적어도 하나의 이웃 해쉬값을 연산함으로써 생성되는 대표 해쉬값 또는 상기 대표 해쉬값을 가공한 값을 퍼블릭 블록체인 데이터베이스에 등록하거나 상기 타 장치로 하여금 상기 퍼블릭 블록체인 데이터베이스에 등록하도록 지원하며, 상기 퍼블릭 블록체인 데이터베이스에 등록된 상기 대표 해쉬값 또는 상기 대표 해쉬값을 가공한 값의 상기 퍼블릭 블록체인 데이터베이스 상의 위치 정보를 나타내는 Txid를 획득하거나 상기 타 장치로 하여금 상기 퍼블릭 블록체인 데이터베이스로부터 획득하도록 지원하는 단계;
를 포함하되,
상기 전자 바우처 데이터는,
상기 전자 바우처의 타입 정보 - 상기 전자 바우처의 타입 정보는 현재 수행하는 동작을 정의하기 위한 것으로 전자 바우처 사용을 표시하는 정보임 - , 상기 전자 바우처를 수신하는 특정 판매자의 public key, 상기 전자 바우처의 가치 정보 중에서 이번에 사용하기 위한 사용 가치 정보, 상기 전자 바우처를 발행한 특정 발행자의 고유 ID, 상기 전자 바우처의 사용 기한 정보, 상기 전자 바우처에서 상기 사용 가치 정보를 사용한 이후 돌려받아야 할 차감 가치 정보 및 상기 차감 가치 정보의 확인을 위한 상기 특정 사용자의 public key 중 적어도 하나 이상을 포함하는 것을 특징으로 하는 방법.
In a method of using an electronic voucher,
(a) electronic voucher data including (i) PrivTxid for at least some unused electronic vouchers previously used for the use of said electronic voucher from a particular user, (ii) public key of said particular user, and (iii) When the hash value of the voucher data or the signature value of the specific user who has signed the private key of the specific user with the hash value of the voucher data is obtained, the server obtains the electronic coupon data, (ii) (iii) if the validity of the signature value of the specific user is valid and valid, (i) the electronic voucher data, (ii) the public key of the specific user, and (iii) Register the used transaction in the private block chain database or register the other transaction-related device with the private block chain database Supports, the PrivTxid indicating the private block location information in the chain database of the electronic transaction voucher use register with the private block chain database available to particular issuers or other device for causing the stage to support so as to provide a specific issuer; And
(ii) a public key of the specific user; and (iii) a signature value of the particular user. The method of claim 1, wherein the predetermined hash value comprises: And a value obtained by processing the representative hash value or the representative hash value generated by calculating the at least one neighbor hash value matching the specific hash value in the public block chain database, And acquiring Txid indicating positional information on the public block chain database of values obtained by processing the representative hash value or the representative hash value registered in the public block chain database, To obtain from the public block chain database;
, ≪ / RTI &
The electronic voucher data includes:
Type information of the electronic voucher, the type information of the electronic voucher is information for indicating an operation of an electronic voucher to define a current operation, a public key of a specific seller receiving the electronic voucher, a value of the electronic voucher Information on use value for use at this time, unique ID of a specific issuer issuing the electronic voucher, use time limit information of the electronic voucher, deduction value information to be returned after using the use value information in the electronic voucher, And at least one of the public key of the specific user for confirmation of the value information.
제11항에 있어서,
상기 소정의 조건은,
(i) 소정의 개수만큼 상기 전자 바우처 사용 transaction 또는 상기 전자 바우처와 관련한 관련 transaction이 생성되는 조건, (ii) 소정 시간이 경과하는 조건, (iii) 블록 체인에서 블록이 생성되는 조건, (iv) 서비스 특성에 대한 조건 중 적어도 하나를 포함하는 것을 특징으로 하는 방법.
12. The method of claim 11,
The predetermined condition is that,
(ii) a condition that a predetermined time elapses; (iii) a condition in which a block is generated in a block chain; (iv) a condition in which a transaction is generated in the block chain; And conditions for service characteristics. ≪ Desc / Clms Page number 22 >
삭제delete 제11항에 있어서,
상기 (a) 단계 이전에,
(a01) 상기 특정 사용자의 public key에 의한 사용자 등록 요청이 획득되면, 상기 서버는, 상기 특정 사용자의 유효 여부를 확인하여 상기 특정 사용자가 유효할 경우 random nonce를 상기 특정 사용자에게 전달하거나 상기 타 장치로 하여금 상기 특정 사용자에게 전달하도록 지원하는 단계;
(a02) 상기 random nonce를 상기 특정 사용자의 private key로 서명한 random nonce 서명값이 획득되면, 상기 서버는, 상기 random nonce 서명값이 정상적으로 서명되었는지를 상기 특정 사용자의 public key를 사용하여 검증하고 검증이 완료되면 상기 random nonce 서명값, 상기 random nonce 및 상기 특정 사용자의 public key를 포함하는 사용자 등록 transaction을 상기 프라이빗 블록체인 데이터베이스에 등록하거나 상기 타 장치로 하여금 상기 프라이빗 블록체인 데이터베이스에 등록하도록 지원하며, 상기 프라이빗 블록체인 데이터베이스에 등록된 상기 사용자 등록 transaction의 상기 프라이빗 블록체인 데이터베이스 상의 위치 정보를 나타내는 PrivTxid를 상기 특정 사용자에게 제공하거나 상기 타 장치로 하여금 상기 특정 사용자에게 제공하도록 지원하는 단계; 및
(a03) 소정이 조건이 만족되면, 상기 서버가, 특정 해쉬값 - 상기 특정 해쉬값은 상기 random nonce 서명값, 상기 random nonce 및 상기 특정 사용자의 public key의 해쉬값임 - 및 상기 특정 해쉬값과 매칭되는 적어도 하나의 이웃 해쉬값을 연산함으로써 생성되는 대표 해쉬값 또는 상기 대표 해쉬값을 가공한 값을 상기 퍼블릭 블록체인 데이터베이스에 등록하거나 상기 타 장치로 하여금 상기 퍼블릭 블록체인 데이터베이스에 등록하도록 지원하며, 상기 퍼블릭 블록체인 데이터베이스에 등록된 상기 대표 해쉬값 또는 상기 대표 해쉬값을 가공한 값의 상기 퍼블릭 블록체인 데이터베이스 상의 위치 정보를 나타내는 Txid를 획득하거나 상기 타 장치로 하여금 상기 퍼블릭 블록체인 데이터베이스로부터 획득하도록 지원하는 단계;
를 더 포함하는 것을 특징으로 하는 방법.
12. The method of claim 11,
Before the step (a)
(a01) When a user registration request by the public key of the specific user is obtained, the server confirms the validity of the specific user, and when the specific user is valid, transmits a random nonce to the specific user, To deliver the message to the specific user;
(a02) If a random nonce signature value obtained by signing the random nonce with the private key of the specific user is obtained, the server verifies whether the random nonce signature value is normally signed using the public key of the specific user, A random nonce and a public key of the specific user are registered in the private block chain database or the other device is registered in the private block chain database, Providing a PrivTxid indicating location information on the private block chain database of the user registration transaction registered in the private block chain database to the specific user or providing the other device to the specific user; And
(a03) If the predetermined condition is satisfied, the server transmits the random hash value, the random hash value, the random nonce and the hash value of the public key of the specific user, and the specific hash value A representative hash value generated by computing at least one neighboring hash value or a value obtained by processing the representative hash value in the public block chain database or registering the other hash table in the public block chain database, Acquiring a representative hash value registered in the public block chain database or a Txid representing location information on the public block chain database of the value obtained by processing the representative hash value or allowing the other device to acquire from the public block chain database step;
≪ / RTI >
삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 전자 바우처를 사용하는 서버에 있어서,
특정 사용자로부터 상기 전자 바우처의 사용을 위한 (i) 이전에 적어도 일부 미사용된 상기 전자 바우처에 대한 PrivTxid를 포함하는 전자 바우처 데이터, (ii) 상기 특정 사용자의 public key 및 (iii) 상기 전자 바우처 데이터의 해쉬값 또는 이를 포함한 값을 상기 특정 사용자의 private key로 서명한 상기 특정 사용자의 서명값을 획득하는 통신부; 및
(a) 상기 획득된 (i) 상기 전자 바우처 데이터, (ii) 상기 특정 사용자의 public key 및 (iii) 상기 특정 사용자의 서명값의 유효 여부를 확인하여 유효일 경우, (i) 상기 전자 바우처 데이터, (ii) 상기 특정 사용자의 public key 및 (iii) 상기 특정 사용자의 서명값을 포함하는 전자 바우처 사용 transaction을 프라이빗 블록체인 데이터베이스에 등록하거나 상기 서버에 연동된 타 장치로 하여금 상기 프라이빗 블록체인 데이터베이스에 등록하도록 지원하며, 상기 프라이빗 블록체인 데이터베이스에 등록된 상기 전자 바우처 사용 transaction의 상기 프라이빗 블록체인 데이터베이스 상의 위치 정보를 나타내는 PrivTxid를 특정 발행자에게 제공하거나 상기 타 장치로 하여금 특정 발행자에게 제공하도록 지원하는 프로세스와, (b) 소정의 조건이 만족되면, 상기 서버가, 특정 해쉬값 - 상기 특정 해쉬값은 (i) 상기 전자 바우처 데이터, (ii) 상기 특정 사용자의 public key 및 (iii) 상기 특정 사용자의 서명값의 해쉬값임 - 및 상기 특정 해쉬값과 매칭되는 적어도 하나의 이웃 해쉬값을 연산함으로써 생성되는 대표 해쉬값 또는 상기 대표 해쉬값을 가공한 값을 퍼블릭 블록체인 데이터베이스에 등록하거나 상기 타 장치로 하여금 상기 퍼블릭 블록체인 데이터베이스에 등록하도록 지원하며, 상기 퍼블릭 블록체인 데이터베이스에 등록된 상기 대표 해쉬값 또는 상기 대표 해쉬값을 가공한 값의 상기 퍼블릭 블록체인 데이터베이스 상의 위치 정보를 나타내는 Txid를 획득하거나 상기 타 장치로 하여금 상기 퍼블릭 블록체인 데이터베이스로부터 획득하도록 지원하는 프로세스를 수행하는 프로세서;
를 포함하되,
상기 전자 바우처 데이터는,
상기 전자 바우처의 타입 정보 - 상기 전자 바우처의 타입 정보는 현재 수행하는 동작을 정의하기 위한 것으로 전자 바우처 사용을 표시하는 정보임 - , 상기 전자 바우처를 수신하는 특정 판매자의 public key, 상기 전자 바우처의 가치 정보 중에서 이번에 사용하기 위한 사용 가치 정보, 상기 전자 바우처를 발행한 특정 발행자의 고유 ID, 상기 전자 바우처의 사용 기한 정보, 상기 전자 바우처에서 상기 사용 가치 정보를 사용한 이후 돌려받아야 할 차감 가치 정보 및 상기 차감 가치 정보의 확인을 위한 상기 특정 사용자의 public key 중 적어도 하나 이상을 포함하는 것을 특징으로 하는 서버.
In a server using an electronic voucher,
(Ii) e-voucher data including a PrivTxid for at least some unused electronic vouchers previously used for use of the electronic voucher from a specific user, (ii) a public key of the specific user, and (iii) A communication unit for obtaining a signature value of the specific user who has signed the hash value or a value including the hash value with the private key of the specific user; And
(i) checking whether the obtained electronic voucher data, (ii) the public key of the specific user and (iii) the signature value of the specific user are valid, and (i) (ii) a public key of the specific user, and (iii) a signature value of the specific user, in a private block chain database or registering the electronic coupon transaction in the private block database Providing a PrivTxid indicating location information on the private block chain database of the electronic coupon transaction registered in the private block chain database to a specific issuer or providing the other device with a specific issuer; (b) if the predetermined condition is satisfied, Wherein the particular hash value comprises at least one of: (i) the electronic voucher data; (ii) a public key of the particular user; (iii) a hash value of the signature value of the particular user; A method of registering a representative hash value generated by computing a hash value or a value obtained by processing the representative hash value in a public block chain database or registering the representative hash value in the public block chain database, A processor that obtains a Txid indicating location information on the public block chain database of the representative hash value or the value obtained by processing the representative hash value or supports the other device to obtain the other hash value from the public block chain database;
, ≪ / RTI &
The electronic voucher data includes:
Type information of the electronic voucher, the type information of the electronic voucher is information for indicating an operation of an electronic voucher to define a current operation, a public key of a specific seller receiving the electronic voucher, a value of the electronic voucher Information on use value for use at this time, unique ID of a specific issuer issuing the electronic voucher, use time limit information of the electronic voucher, deduction value information to be returned after using the use value information in the electronic voucher, And at least one of the public key of the specific user for confirming the value information.
제35항에 있어서,
상기 소정의 조건은,
(i) 소정의 개수만큼 상기 전자 바우처 사용 transaction 또는 상기 전자 바우처와 관련한 관련 transaction이 생성되는 조건, (ii) 소정 시간이 경과하는 조건, (iii) 블록 체인에서 블록이 생성되는 조건, (iv) 서비스 특성에 대한 조건 중 적어도 하나를 포함하는 것을 특징으로 하는 서버.
36. The method of claim 35,
The predetermined condition is that,
(ii) a condition that a predetermined time elapses; (iii) a condition in which a block is generated in a block chain; (iv) a condition in which a transaction is generated in the block chain; And a condition for a service characteristic.
삭제delete 제35항에 있어서,
상기 프로세서는,
상기 (a)의 프로세스 이전에,
상기 특정 사용자의 public key에 의한 사용자 등록 요청이 상기 통신부를 통해 획득되면, 상기 특정 사용자의 유효 여부를 확인하여 상기 특정 사용자가 유효할 경우 random nonce를 상기 특정 사용자에게 전달하거나 상기 타 장치로 하여금 상기 특정 사용자에게 전달하도록 지원하며,
상기 random nonce를 상기 특정 사용자의 private key로 서명한 random nonce 서명값이 상기 통신부를 통해 획득되면, 상기 random nonce 서명값이 정상적으로 서명되었는지를 상기 특정 사용자의 public key를 사용하여 검증하고 검증이 완료되면 상기 random nonce 서명값, 상기 random nonce 및 상기 특정 사용자의 public key를 포함하는 사용자 등록 transaction을 상기 프라이빗 블록체인 데이터베이스에 등록하거나 상기 타 장치로 하여금 상기 프라이빗 블록체인 데이터베이스에 등록하도록 지원하며, 상기 프라이빗 블록체인 데이터베이스에 등록된 상기 사용자 등록 transaction의 상기 프라이빗 블록체인 데이터베이스 상의 위치 정보를 나타내는 PrivTxid를 상기 특정 사용자에게 제공하거나 상기 타 장치로 하여금 상기 특정 사용자에게 제공하도록 지원하며,
소정이 조건이 만족되면, 특정 해쉬값 - 상기 특정 해쉬값은 상기 random nonce 서명값, 상기 random nonce 및 상기 특정 사용자의 public key의 해쉬값임 - 및 상기 특정 해쉬값과 매칭되는 적어도 하나의 이웃 해쉬값을 연산함으로써 생성되는 대표 해쉬값 또는 상기 대표 해쉬값을 가공한 값을 상기 퍼블릭 블록체인 데이터베이스에 등록하거나 상기 타 장치로 하여금 상기 퍼블릭 블록체인 데이터베이스에 등록하도록 지원하며, 상기 퍼블릭 블록체인 데이터베이스에 등록된 상기 대표 해쉬값 또는 상기 대표 해쉬값을 가공한 값의 상기 퍼블릭 블록체인 데이터베이스 상의 위치 정보를 나타내는 Txid를 획득하거나 상기 타 장치로 하여금 상기 퍼블릭 블록체인 데이터베이스로부터 획득하도록 지원하는 것을 특징으로 하는 서버.

36. The method of claim 35,
The processor comprising:
Prior to the process of (a) above,
When the user registration request by the public key of the specific user is acquired through the communication unit, validity of the specific user is checked and if the specific user is valid, the random nonce is transmitted to the specific user, Supports delivery to specific users,
When the random nonce signature value obtained by signing the random nonce with the private key of the specific user is obtained through the communication unit, the public key of the specific user is verified whether or not the random nonce signature value is normally signed. When the verification is completed Registering a user registered transaction including the random nonce signature value, the random nonce, and the public key of the specific user in the private block chain database or registering the other registered device in the private block chain database, Providing a PrivTxid indicating location information on the private block chain database of the user registration transaction registered in the chain database to the specific user or providing the other device to the specific user,
If the predetermined condition is satisfied, a specific hash value, the specific hash value being a random nonce signature value, a random nonce and a hash value of a public key of the particular user, and at least one neighbor hash value matching the specific hash value Or a value obtained by processing the representative hash value is registered in the public block chain database or the other device is registered in the public block chain database, And obtains a Txid indicating positional information on the public block chain database of the representative hash value or the value obtained by processing the representative hash value or supports the other device to acquire from the public block chain database.

삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete
KR1020160131085A 2016-10-11 2016-10-11 Method for issuing, using, refunding, settling and revocating electric voucher in use of merkle tree structure on the basis of unspent transaction output, and server using the same KR101841563B1 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020160131085A KR101841563B1 (en) 2016-10-11 2016-10-11 Method for issuing, using, refunding, settling and revocating electric voucher in use of merkle tree structure on the basis of unspent transaction output, and server using the same
PCT/KR2017/011208 WO2018070783A2 (en) 2016-10-11 2017-10-11 Method for issuing, redeeming, refunding, settling and revoking electronic voucher on basis of utxo and by using merkle tree structure, and server employing same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020160131085A KR101841563B1 (en) 2016-10-11 2016-10-11 Method for issuing, using, refunding, settling and revocating electric voucher in use of merkle tree structure on the basis of unspent transaction output, and server using the same

Related Child Applications (2)

Application Number Title Priority Date Filing Date
KR1020170054692A Division KR101841565B1 (en) 2017-04-27 2017-04-27 Method for issuing, using, refunding, settling and revocating electric voucher in use of merkle tree structure on the basis of unspent transaction output, and server using the same
KR1020170054691A Division KR101841564B1 (en) 2017-04-27 2017-04-27 Method for issuing, using, refunding, settling and revocating electric voucher in use of merkle tree structure on the basis of unspent transaction output, and server using the same

Publications (1)

Publication Number Publication Date
KR101841563B1 true KR101841563B1 (en) 2018-05-04

Family

ID=61906199

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020160131085A KR101841563B1 (en) 2016-10-11 2016-10-11 Method for issuing, using, refunding, settling and revocating electric voucher in use of merkle tree structure on the basis of unspent transaction output, and server using the same

Country Status (2)

Country Link
KR (1) KR101841563B1 (en)
WO (1) WO2018070783A2 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110166220A (en) * 2019-05-06 2019-08-23 山东公链信息科技有限公司 A kind of sharding method carrying out cutting according to the hashed value of subregion key
KR20220134126A (en) * 2021-03-26 2022-10-05 비씨카드(주) Method and device for providing voucher approval information

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109087099A (en) * 2018-07-31 2018-12-25 杭州复杂美科技有限公司 A kind of privacy method of commerce and system, equipment and storage medium
CN108985100B (en) * 2018-08-15 2022-02-25 百度在线网络技术(北京)有限公司 Block chain-based element security certification method, device, equipment and medium
CN111984616B (en) * 2020-08-04 2023-08-01 中国人民银行数字货币研究所 Method, device and system for updating shared file
CN113935072B (en) * 2021-09-26 2024-04-30 网易(杭州)网络有限公司 Issuer registration method, issuer registration device, computer device, and storage medium

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101575030B1 (en) * 2014-07-11 2015-12-07 조선대학교산학협력단 Method of multi-signature generation for shared data in the cloud
KR101591244B1 (en) 2014-11-06 2016-02-05 주식회사 코인플러그 Apparatus for converting membership point and cybermoney into digital virtual currency with block chain
KR101637854B1 (en) * 2015-10-16 2016-07-08 주식회사 코인플러그 Certificate issuance system and method based on block chain, certificate authentication system and method based on block chain

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101575030B1 (en) * 2014-07-11 2015-12-07 조선대학교산학협력단 Method of multi-signature generation for shared data in the cloud
KR101591244B1 (en) 2014-11-06 2016-02-05 주식회사 코인플러그 Apparatus for converting membership point and cybermoney into digital virtual currency with block chain
KR101637854B1 (en) * 2015-10-16 2016-07-08 주식회사 코인플러그 Certificate issuance system and method based on block chain, certificate authentication system and method based on block chain

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
FORBES(2015.07.17)*

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110166220A (en) * 2019-05-06 2019-08-23 山东公链信息科技有限公司 A kind of sharding method carrying out cutting according to the hashed value of subregion key
CN110166220B (en) * 2019-05-06 2022-05-06 山东公链信息科技有限公司 Slicing method for slicing according to hash value of partition key
KR20220134126A (en) * 2021-03-26 2022-10-05 비씨카드(주) Method and device for providing voucher approval information
KR102601098B1 (en) * 2021-03-26 2023-11-10 비씨카드(주) Method and device for providing voucher approval information

Also Published As

Publication number Publication date
WO2018070783A2 (en) 2018-04-19
WO2018070783A3 (en) 2018-07-19

Similar Documents

Publication Publication Date Title
KR101841566B1 (en) Method for issuing, using, refunding, settling and revocating electric voucher using updated status of balance database by respective blocks in blockchain, and server using the same
KR101841560B1 (en) Method for issuing, using, refunding, settling and revocating electric voucher in use of unspent transaction output based protocol, and server using the same
KR101841563B1 (en) Method for issuing, using, refunding, settling and revocating electric voucher in use of merkle tree structure on the basis of unspent transaction output, and server using the same
KR101835520B1 (en) Method for providing united point service using updated status of balance database with blockchain and server using the same
KR101837166B1 (en) Method for issuing and paying money using updated status of balance database by respective blocks in blockchain, and server using the same
US11488169B2 (en) Converting exchange items associated with static exchange item identifiers into dynamically identified exchange items
KR101835521B1 (en) Method for providing united point service using updated status of balance database by respective blocks in blockchain and server using the same
KR101841564B1 (en) Method for issuing, using, refunding, settling and revocating electric voucher in use of merkle tree structure on the basis of unspent transaction output, and server using the same
KR101841565B1 (en) Method for issuing, using, refunding, settling and revocating electric voucher in use of merkle tree structure on the basis of unspent transaction output, and server using the same
JPH1079006A (en) Using request considering method for virtual prepaid card capable of reusing continuous number
KR101835519B1 (en) Method for providing united point service in use of merkle tree structure on the basis of unspent transaction output protocol and server using the same
KR101837167B1 (en) Method for issuing and paying money in use of merkle tree structure on the basis of unspent transaction output protocol, and server using the same
KR102050271B1 (en) Method for payment based on blockchain and payment server using the same
US8468100B2 (en) Issuing electronic vouchers
US11416930B2 (en) Method for providing united point service in use of unspent transaction output based protocol and server using the same
KR101841568B1 (en) Method for issuing, using, refunding, settling and revocating electric voucher using updated status of balance database by respective blocks in blockchain, and server using the same
KR101841561B1 (en) Method for issuing, using, refunding, settling and revocating electric voucher in use of unspent transaction output based protocol, and server using the same
KR102063628B1 (en) Method for paying based on blockchain and payment server using the same
KR101849918B1 (en) Method for issuing and paying money in use of unspent transaction output based protocol, and server using the same
KR101841567B1 (en) Method for issuing, using, refunding, settling and revocating electric voucher using updated status of balance database by respective blocks in blockchain, and server using the same
KR101936417B1 (en) Method for providing a service of electronic gift certificate based on blockchain, and vending machine and server using the same
KR101841562B1 (en) Method for issuing, using, refunding, settling and revocating electric voucher in use of unspent transaction output based protocol, and server using the same

Legal Events

Date Code Title Description
GRNT Written decision to grant