KR101841567B1 - 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 - Google Patents

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 Download PDF

Info

Publication number
KR101841567B1
KR101841567B1 KR1020170054695A KR20170054695A KR101841567B1 KR 101841567 B1 KR101841567 B1 KR 101841567B1 KR 1020170054695 A KR1020170054695 A KR 1020170054695A KR 20170054695 A KR20170054695 A KR 20170054695A KR 101841567 B1 KR101841567 B1 KR 101841567B1
Authority
KR
South Korea
Prior art keywords
hash value
value
electronic voucher
specific
block chain
Prior art date
Application number
KR1020170054695A
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 KR1020170054695A priority Critical patent/KR101841567B1/en
Application granted granted Critical
Publication of KR101841567B1 publication Critical patent/KR101841567B1/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
    • 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
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/385Payment protocols; Details thereof using an alias or single-use codes
    • 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

Abstract

The present invention relates to a method for issuing an electronic voucher, which comprises the steps of: (a) updating value information included in electronic voucher data as delta, which is a variation, in a balance database of a private block chain to register or supporting to register the same; and (b) acquiring or supporting to acquire Txid indicating location information on a public block chain database of a representative hash value registered in the public block chain database, or a value obtained by processing the representative hash value. According to the present invention, the problem of repeatedly issuing an electronic voucher can be prevented in advance.

Description

블록체인 내의 블록별로 발란스 데이터베이스를 관리하여 전자 바우처를 발행, 사용, 환불, 정산 및 파기하는 방법과 이를 이용한 서버{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}BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a method of issuing, using, refunding, clearing, and destroying an electronic voucher by managing a balance database for each block in a block chain and a server using the method. BLOCKS IN BLOCKCHAIN, AND SERVER USING THE SAME}

블록체인 내의 블록별로 발란스 데이터베이스를 관리하여 전자 바우처를 발행, 사용, 환불, 정산 및 파기하는 방법과 이를 이용한 서버에 관한 것으로, 보다 상세하게는, (a) 특정 발행자로부터의 상기 전자 바우처의 발행을 위한 (i) 특정 unique nonce 및 가치 정보를 적어도 포함하는 전자 바우처 데이터, (ii) 상기 특정 발행자의 public key 및 (iii) 상기 전자 바우처 데이터의 해쉬값 또는 이를 포함한 값을 상기 특정 발행자의 private key로 서명한 상기 특정 발행자의 서명값이 획득되면, (i) 상기 전자 바우처 데이터, (ii) 상기 특정 발행자의 public key 및 (iii) 상기 특정 발행자의 서명값의 유효 여부를 확인하여 유효일 경우, (i) 상기 전자 바우처 데이터, (ii) 상기 특정 발행자의 public key 및 (iii) 상기 특정 발행자의 서명값을 포함하는 전자 바우처 발행 transaction을 생성하여 프라이빗 블록체인 데이터베이스에 등록하며, 상기 프라이빗 블록체인 데이터베이스에 등록된 상기 전자 바우처 발행 transaction의 상기 프라이빗 블록체인 데이터베이스 상의 위치 정보를 나타내는 PrivTxid를 상기 특정 발행자에게 제공하고, 상기 전자 바우처 데이터에 포함된 상기 가치 정보를 프라이빗 블록체인의 발란스 데이터베이스에 변화량인 delta로 업데이트하여 등록하며, (b) 소정의 조건이 만족되면, 특정 해쉬값 - 상기 특정 해쉬값은 (i) 상기 전자 바우처 데이터, (ii) 상기 특정 발행자의 public key 및 (iii) 상기 특정 발행자의 서명값에 대한 해쉬값임 - 및 상기 특정 해쉬값과 매칭되는 적어도 하나의 이웃 해쉬값 - 상기 적어도 하나의 이웃 해쉬값 중 특정 이웃 해쉬값은 블록체인의 하나의 블록에서의 모든 PrivTxid에 의해 상기 프라이빗 블록체인 데이터베이스에 등록된 상기 전자 바우처의 가치 정보에 대한 변화량인 delta_n의 해쉬값임 - 을 연산함으로써 생성되는 대표 해쉬값 또는 상기 대표 해쉬값을 가공한 값을 퍼블릭 블록체인 데이터베이스에 등록하며, 상기 퍼블릭 블록체인 데이터베이스에 등록된 상기 대표 해쉬값 또는 상기 대표 해쉬값을 가공한 값의 상기 퍼블릭 블록체인 데이터베이스 상의 위치 정보를 나타내는 Txid를 획득하는 방법과 이를 이용하는 서버에 관한 것이며, 더 나아가 특정 사용자가 전자 바우처를 사용하는 방법, 그리고, 특정 사용자가 전자 바우처를 환불하는 방법, 특정 판매자가 전자 바우처를 정산하는 방법, 특정 발행자가 전자 바우처를 파기하는 방법 및 이를 이용하는 서버에 관한 것이다.The present invention relates to a method of issuing, using, refunding, settlement and destruction of an electronic voucher by managing a balance database for each block in a block chain, and a server using the method. More particularly, (Ii) e-voucher data including at least a specific unique nonce and value information, (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 as a private key of the specific issuer (I) the electronic coupon data, (ii) the public key of the specific issuer, and (iii) the validity of the signature value of the specific issuer, and if the signature value of the specific issuer is valid, ) Electronic coupon data, (ii) a public key of the specific issuer, and (iii) a signature value of the specific issuer. And provides PrivTxid indicating location information on the private block chain database of the electronic coupon issued transaction registered in the private block chain database to the specific issuer, (B) if the predetermined condition is satisfied, the specific hash value - the specific hash value is (i) the electronic voucher data, (ii) the electronic coupon data, A public key of the specific issuer; (iii) a hash value for the signature value of the specific issuer; and at least one neighborhood hash value matching the specific hash value. The particular neighbor hash value of the at least one neighbor hash value is By all PrivTxid in one block of the chain, Registering in the public block chain database a value obtained by processing a representative hash value or the representative hash value generated by calculating a hash value of delta_n, which is a change amount with respect to the value information of the electronic voucher registered in the block chain database, A method for acquiring Txid representing location information on the public block chain database of values representative of the representative hash value or the representative hash value registered in a chain database and a server using the method. A method of using the electronic voucher, a method of using the electronic voucher by a specific seller, a method by which a specific seller clears the electronic voucher, a method by which a specific issuer cancels the electronic voucher, and a server using the electronic voucher.

일반적으로 쿠폰, 상품권 등을 포함하는 바우처(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 emerged 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, 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) 특정 unique nonce 및 가치 정보를 적어도 포함하는 전자 바우처 데이터, (ii) 상기 특정 발행자의 public key 및 (iii) 상기 전자 바우처 데이터의 해쉬값 또는 이를 포함한 값을 상기 특정 발행자의 private key로 서명한 상기 특정 발행자의 서명값이 획득되면, 서버는, (i) 상기 전자 바우처 데이터, (ii) 상기 특정 발행자의 public key 및 (iii) 상기 특정 발행자의 서명값의 유효 여부를 확인하여 유효일 경우, (i) 상기 전자 바우처 데이터, (ii) 상기 특정 발행자의 public key 및 (iii) 상기 특정 발행자의 서명값을 포함하는 전자 바우처 발행 transaction을 생성하여 프라이빗 블록체인 데이터베이스에 등록하거나 등록하도록 지원하며, 상기 프라이빗 블록체인 데이터베이스에 등록된 상기 전자 바우처 발행 transaction의 상기 프라이빗 블록체인 데이터베이스 상의 위치 정보를 나타내는 PrivTxid를 상기 특정 발행자에게 제공하거나 제공하도록 지원하고, 상기 전자 바우처 데이터에 포함된 상기 가치 정보를 프라이빗 블록체인의 발란스 데이터베이스에 변화량인 delta로 업데이트하여 등록하거나 등록하도록 지원하는 단계; 및 (b) 소정의 조건이 만족되면, 상기 서버가, 특정 해쉬값 - 상기 특정 해쉬값은 (i) 상기 전자 바우처 데이터, (ii) 상기 특정 발행자의 public key 및 (iii) 상기 특정 발행자의 서명값에 대한 해쉬값임 - 및 상기 특정 해쉬값과 매칭되는 적어도 하나의 이웃 해쉬값 - 상기 적어도 하나의 이웃 해쉬값 중 특정 이웃 해쉬값은 블록체인의 하나의 블록에서의 모든 PrivTxid에 의해 상기 프라이빗 블록체인 데이터베이스에 등록된 상기 전자 바우처의 가치 정보에 대한 변화량인 delta_n의 해쉬값임 - 을 연산함으로써 생성되는 대표 해쉬값 또는 상기 대표 해쉬값을 가공한 값을 퍼블릭 블록체인 데이터베이스에 등록하거나 등록하도록 지원하며, 상기 퍼블릭 블록체인 데이터베이스에 등록된 상기 대표 해쉬값 또는 상기 대표 해쉬값을 가공한 값의 상기 퍼블릭 블록체인 데이터베이스 상의 위치 정보를 나타내는 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; (i) electronic voucher data including at least specific unique nonce and value information; (ii) a public key of the specific issuer, and (iii) a signature value of the specific issuer that has signed the hash value of the electronic voucher data or a value including the hash with the private key of the specific issuer, (Ii) the public key of the specific issuer, (iii) the validity of the signature value of the specific issuer, and (iii) the electronic coupon data, (ii) (iii) generating an electronic voucher-issuing transaction including the signature value of the specific issuer and registering or registering the transaction in the private block chain database, To provide or provide a PrivTxid indicating location information on the private block chain database of the electronic voucher-issued transaction registered in the electronic block chain database to the specific issuer, and to provide the value information contained in the electronic voucher data as a private block Updating the balance database with delta, which is a variation amount, to register or register; 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) Value and at least one neighborhood hash value that matches the particular hash value. The particular neighborhood hash value of the at least one neighborhood hash value is determined by all PrivTxid in one block of the block chain to be the private block < RTI ID = 0.0 > A representative hash value generated by calculating a hash value of delta_n, which is a change amount with respect to the value information of the electronic voucher registered in the database, or a value obtained by processing the representative hash value is registered or registered in the public block chain database, The representative hash value or the representative hash value registered in the public block chain database, The step of obtaining the support Txid indicating the location information in the database, or to obtain; The method comprising the steps of:

본 발명의 일 실시예에 따르면, 전자 바우처를 사용하는 방법에 있어서, (a) 특정 사용자로부터 상기 전자 바우처의 사용을 위한 (i) 특정 unique nonce 및 사용 가치 정보를 적어도 포함하는 전자 바우처 데이터, (ii) 상기 특정 사용자의 public key 및 (iii) 상기 전자 바우처 데이터의 해쉬값 또는 이를 포함한 값을 상기 특정 사용자의 private key로 서명한 상기 특정 사용자의 서명값이 획득되면, 서버는, (i) 상기 전자 바우처 데이터, (ii) 상기 특정 사용자의 public key 및 (iii) 상기 특정 사용자의 서명값의 유효 여부를 확인하여 유효일 경우, (i) 상기 전자 바우처 데이터, (ii) 상기 특정 사용자의 public key 및 (iii) 상기 특정 사용자의 서명값을 포함하는 전자 바우처 사용 transaction을 프라이빗 블록체인 데이터베이스에 등록하거나 등록하도록 지원하며, 상기 프라이빗 블록체인 데이터베이스에 등록된 상기 전자 바우처 사용 transaction의 상기 프라이빗 블록체인 데이터베이스 상의 위치 정보를 나타내는 PrivTxid를 상기 특정 사용자에게 제공하거나 제공하도록 지원하고, 상기 전자 바우처 데이터의 상기 사용 가치 정보에 대응하여 프라이빗 블록체인의 발란스 데이터베이스에 등록된 상기 전자 바우처의 가치 정보를 변화량인 delta로 업데이트하여 등록하거나 등록하도록 지원하는 단계; 및 (b) 소정의 조건이 만족되면, 상기 서버가, 특정 해쉬값 - 상기 특정 해쉬값은 (i) 상기 전자 바우처 데이터, (ii) 상기 특정 사용자의 public key 및 (iii) 상기 특정 사용자의 서명값에 대한 해쉬값임 - 및 상기 특정 해쉬값과 매칭되는 적어도 하나의 이웃 해쉬값 - 상기 적어도 하나의 이웃 해쉬값 중 특정 이웃 해쉬값은 블록체인의 하나의 블록에서의 모든 PrivTxid에 의해 상기 프라이빗 블록체인 데이터베이스에 등록된 상기 전자 바우처의 가치 정보에 대한 변화량인 delta_n의 해쉬값임 - 을 연산함으로써 생성되는 대표 해쉬값 또는 상기 대표 해쉬값을 가공한 값을 퍼블릭 블록체인 데이터베이스에 등록하거나 등록하도록 지원하며, 상기 퍼블릭 블록체인 데이터베이스에 등록된 상기 대표 해쉬값 또는 상기 대표 해쉬값을 가공한 값의 상기 퍼블릭 블록체인 데이터베이스 상의 위치 정보를 나타내는 Txid를 획득하거나 획득하도록 지원하는 단계; 를 포함하는 것을 특징으로 하는 방법이 제공된다.According to an embodiment of the present invention, there is provided a method of using an electronic voucher, comprising the steps of: (a) receiving electronic voucher data from a specific user at least including (i) (ii) a public key of the specific user, and (iii) a signature value of the particular user who has signed the private key of the particular user with a hash value or a value including the hash value of the electronic voucher data, (Ii) the public key of the specific user, (iii) the validity of the signature value of the specific user, and (iii) the electronic coupon data, (ii) (iii) support to register or register an electronic coupon use transaction including the signature value of the specific user in a private block chain database, Providing a PrivTxid indicating location information on the private block chain database of the electronic coupon transaction registered in the lock chain database to the specific user; providing, in response to the use value information of the electronic voucher data, Updating the value information of the electronic voucher registered in the balance database of the electronic voucher to delta which is a change amount and registering or registering it; 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) Value and at least one neighborhood hash value that matches the particular hash value. The particular neighborhood hash value of the at least one neighborhood hash value is determined by all PrivTxid in one block of the block chain to be the private block < RTI ID = 0.0 > A representative hash value generated by calculating a hash value of delta_n, which is a change amount with respect to the value information of the electronic voucher registered in the database, or a value obtained by processing the representative hash value is registered or registered in the public block chain database, The representative hash value or the representative hash value registered in the public block chain database, The step of obtaining the support Txid indicating the location information in the database, or to obtain; The method comprising the steps of:

본 발명의 일 실시예에 따르면, 전자 바우처를 환불하는 방법에 있어서, (a) 특정 사용자로부터 상기 전자 바우처의 환불을 위한 (i) 특정 unique nonce 및 환불 가치 정보를 적어도 포함하는 전자 바우처 데이터, (ii) 상기 특정 사용자의 public key 및 (iii) 상기 전자 바우처 데이터의 해쉬값 또는 이를 가공한 값을 상기 특정 사용자의 private key로 서명한 상기 특정 사용자의 서명값이 획득되면, 서버는, (i) 상기 전자 바우처 데이터, (ii) 상기 특정 사용자의 public key 및 (iii) 상기 특정 사용자의 서명값의 유효 여부를 확인하여 유효일 경우, (i) 상기 전자 바우처 데이터, (ii) 상기 특정 사용자의 public key 및 (iii) 상기 특정 사용자의 서명값을 포함하는 전자 바우처 환불 transaction을 생성하여 프라이빗 블록체인 데이터베이스에 등록하거나 등록하도록 지원하며, 상기 프라이빗 블록체인 데이터베이스에 등록된 상기 전자 바우처 환불 transaction의 상기 프라이빗 블록체인 데이터베이스 상의 위치 정보를 나타내는 PrivTxid를 상기 특정 사용자에게 제공하거나 제공하도록 지원하고, 상기 전자 바우처 데이터의 상기 환불 가치 정보에 대응하여 프라이빗 블록체인의 발란스 데이터베이스에 등록된 상기 전자 바우처의 가치 정보를 변화량인 delta로 업데이트하여 등록하거나 등록하도록 하거나 업데이트하도록 지원하는 단계; 및 (b) 소정의 조건이 만족되면, 상기 서버가, 특정 해쉬값 - 상기 특정 해쉬값은 (i) 상기 전자 바우처 데이터, (ii) 상기 특정 사용자의 public key 및 (iii) 상기 특정 사용자의 서명값에 대한 해쉬값임 - 및 상기 특정 해쉬값과 매칭되는 적어도 하나의 이웃 해쉬값 - 상기 적어도 하나의 이웃 해쉬값 중 특정 이웃 해쉬값은 블록체인의 하나의 블록에서의 모든 PrivTxid에 의해 상기 프라이빗 블록체인 데이터베이스에 등록된 상기 전자 바우처의 가치 정보에 대한 변화량인 delta_n의 해쉬값임 - 을 연산함으로써 생성되는 대표 해쉬값 또는 상기 대표 해쉬값을 가공한 값을 퍼블릭 블록체인 데이터베이스에 등록하거나 등록하도록 지원하며, 상기 퍼블릭 블록체인 데이터베이스에 등록된 상기 대표 해쉬값 또는 상기 대표 해쉬값을 가공한 값의 상기 퍼블릭 블록체인 데이터베이스 상의 위치 정보를 나타내는 Txid를 획득하거나 획득하도록 지원하는 단계; 를 포함하는 것을 특징으로 하는 방법이 제공된다.According to an embodiment of the present invention, there is provided a method for refunding an electronic voucher, comprising the steps of: (a) receiving electronic voucher data including at least (i) a specific unique nonce and refund value information for refund of the electronic voucher from a specific user; (ii) a public key of the specific user, and (iii) a hash value of the electronic voucher data or a value obtained by processing the hash value of the electronic voucher data with the private key of the specific user, (Ii) the public key of the specific user, and (iii) the validity of the signature value of the specific user. If the validity is valid, (i) the electronic voucher data, (ii) And (iii) creating and registering an electronic voucher refund transaction including the signature value of the specific user in the private block chain database, To provide or provide the PrivTxid indicating location information on the private block chain database of the electronic voucher refund transaction registered in the library block chain database to the specific user, Registering, registering, or updating the value information of the electronic voucher registered in the balance database of the block chain with a delta, which is a change amount, 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) Value and at least one neighborhood hash value that matches the particular hash value. The particular neighborhood hash value of the at least one neighborhood hash value is determined by all PrivTxid in one block of the block chain to be the private block < RTI ID = 0.0 > A representative hash value generated by calculating a hash value of delta_n, which is a change amount with respect to the value information of the electronic voucher registered in the database, or a value obtained by processing the representative hash value is registered or registered in the public block chain database, The representative hash value or the representative hash value registered in the public block chain database, The step of obtaining the support Txid indicating the location information in the database, or to obtain; The method comprising the steps of:

본 발명의 일 실시예에 따르면, 전자 바우처를 정산하는 방법에 있어서, (a) 특정 판매자로부터 상기 전자 바우처의 정산을 위한 (i) 특정 unique nonce 및 정산 가치 정보를 적어도 포함하는 전자 바우처 데이터, (ii) 상기 특정 판매자의 public key 및 (iii) 상기 전자 바우처 데이터의 해쉬값 또는 이를 포함한 값을 상기 특정 판매자의 private key로 서명한 상기 특정 판매자의 서명값이 획득되면, 서버는, (i) 상기 전자 바우처 데이터, (ii) 상기 특정 판매자의 public key 및 (iii) 상기 특정 판매자의 서명값의 유효 여부를 확인하여 유효일 경우, (i) 상기 전자 바우처 데이터, (ii) 상기 특정 판매자의 public key 및 (iii) 상기 특정 판매자의 서명값을 포함하는 전자 바우처 정산 transaction을 생성하여 프라이빗 블록체인 데이터베이스에 등록하거나 등록하도록 지원하며, 상기 프라이빗 블록체인 데이터베이스에 등록된 상기 전자 바우처 정산 transaction의 상기 프라이빗 블록체인 데이터베이스 상의 위치 정보를 나타내는 PrivTxid를 상기 특정 판매자에게 제공하거나 제공하도록 지원하고, 상기 전자 바우처 데이터의 상기 정산 가치 정보에 대응하여 프라이빗 블록체인의 발란스 데이터베이스에 등록된 상기 전자 바우처의 가치 정보를 변화량인 delta로 업데이트하여 등록하거나 등록하도록 지원하는 단계; 및 (b) 소정의 조건이 만족되면, 상기 서버가, 특정 해쉬값 - 상기 특정 해쉬값은 (i) 상기 전자 바우처 데이터, (ii) 상기 특정 판매자의 public key 및 (iii) 상기 특정 판매자의 서명값의 해쉬값임 - 및 상기 특정 해쉬값과 매칭되는 적어도 하나의 이웃 해쉬값 - 상기 적어도 하나의 이웃 해쉬값 중 특정 이웃 해쉬값은 블록체인의 하나의 블록에서의 모든 PrivTxid에 의해 상기 프라이빗 블록체인 데이터베이스에 등록된 상기 전자 바우처의 가치 정보에 대한 변화량인 delta_n의 해쉬값임 - 을 연산함으로써 생성되는 대표 해쉬값 또는 상기 대표 해쉬값을 가공한 값을 퍼블릭 블록체인 데이터베이스에 등록하거나 등록하도록 지원하며, 상기 퍼블릭 블록체인 데이터베이스에 등록된 상기 대표 해쉬값 또는 상기 대표 해쉬값을 가공한 값의 상기 퍼블릭 블록체인 데이터베이스 상의 위치 정보를 나타내는 Txid를 획득하거나 획득하도록 지원하는 단계; 를 포함하는 것을 특징으로 하는 방법이 제공된다.According to an embodiment of the present invention, there is provided a method for settlement of an electronic voucher, comprising the steps of: (a) electronic voucher data including at least (i) specific unique nonce and settlement value information for settlement of the electronic voucher from a specific seller; (ii) a public key of the specific seller, and (iii) a signature value of the specific seller that has signed the private key of the particular seller with a hash value or a value including the hash value of the electronic voucher data, The electronic coupon data, (ii) the public key of the specific seller, and (iii) the validity of the signature value of the specific seller. If valid, the electronic coupon data, (ii) (iii) generating an electronic coupon settlement transaction including the signature value of the specific seller and registering or registering the electronic coupon settlement transaction in the private block chain database, 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 library block chain database to the specific seller, Updating the value information of the electronic voucher registered in the balance database of the block chain to delta, which is a change amount, to register or register; 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 at least one neighborhood hash value that matches the particular hash value. The particular neighborhood hash value of the at least one neighborhood hash value is determined by the PrivTxid in one block of the block chain, And a value obtained by processing the representative hash value or the representative hash value generated by calculating a hash value of delta_n, which is a variation amount of the value of the electronic voucher registered in the public key chain database, The public block chain of values obtained by processing the representative hash value or the representative hash value registered in the block- Emitter comprising: support to obtain or acquire Txid indicating location information on the base; The method comprising the steps of:

본 발명의 일 실시예에 따르면, 전자 바우처를 파기하는 방법에 있어서, (a) 특정 발행자로부터 상기 전자 바우처의 파기를 위한 (i) 특정 unique nonce 및 파기 가치 정보를 적어도 포함하는 전자 바우처 데이터, (ii) 상기 특정 발행자의 public key 및 (iii) 상기 전자 바우처 데이터의 해쉬값 또는 이를 포함한 값을 상기 특정 발행자의 private key로 서명한 상기 특정 발행자의 서명값이 획득되면, 서버는, (i) 상기 전자 바우처 데이터, (ii) 상기 특정 발행자의 public key 및 (iii) 상기 특정 발행자의 서명값의 유효 여부를 확인하여 유효일 경우, (i) 상기 전자 바우처 데이터, (ii) 상기 특정 발행자의 public key 및 (iii) 상기 특정 발행자의 서명값을 포함하는 전자 바우처 파기 transaction을 프라이빗 블록체인 데이터베이스에 등록하거나 등록하도록 지원하며, 상기 프라이빗 블록체인 데이터베이스에 등록된 상기 전자 바우처 파기 transaction의 상기 프라이빗 블록체인 데이터베이스 상의 위치 정보를 나타내는 PrivTxid를 상기 특정 발행자에게 제공하거나 제공하도록 지원하고, 상기 전자 바우처 데이터의 상기 파기 가치 정보에 대응하여 프라이빗 블록체인의 발란스 데이터베이스에 등록된 상기 전자 바우처의 가치 정보를 변화량인 delta로 업데이트하여 등록하거나 등록하도록 지원하는 단계; 및 (b) 소정의 조건이 만족되면, 상기 서버가, 특정 해쉬값 - 상기 특정 해쉬값은 (i) 상기 전자 바우처 데이터, (ii) 상기 특정 발행자의 public key 및 (iii) 상기 특정 발행자의 서명값에 대한 해쉬값임 - 및 상기 특정 해쉬값과 매칭되는 적어도 하나의 이웃 해쉬값 - 상기 적어도 하나의 이웃 해쉬값 중 특정 이웃 해쉬값은 블록체인의 하나의 블록에서의 모든 PrivTxid에 의해 상기 프라이빗 블록체인 데이터베이스에 등록된 상기 전자 바우처의 가치 정보에 대한 변화량인 delta_n의 해쉬값임 - 을 연산함으로써 생성되는 대표 해쉬값 또는 상기 대표 해쉬값을 가공한 값을 퍼블릭 블록체인 데이터베이스에 등록하거나 등록하도록 지원하며, 상기 퍼블릭 블록체인 데이터베이스에 등록된 상기 대표 해쉬값 또는 상기 대표 해쉬값을 가공한 값의 상기 퍼블릭 블록체인 데이터베이스 상의 위치 정보를 나타내는 Txid를 획득하거나 획득하도록 지원하는 단계; 를 포함하는 것을 특징으로 하는 방법이 제공된다.According to an embodiment of the present invention, there is provided a method for destroying an electronic voucher, comprising the steps of: (a) receiving electronic voucher data including at least (i) specific unique nonce and destroyed value information for destruction of the electronic voucher from a specific issuer; (ii) a public key of the specific issuer, and (iii) a signature value of the specific issuer that has signed the hash value of the electronic voucher data or a value including the hash with the private key of the specific issuer, (Ii) the public key of the specific issuer, (iii) the validity of the signature value of the specific issuer, and (iii) the electronic coupon data, (ii) (iii) an electronic voucher destruction transaction including a signature value of the specific issuer is registered or registered in a 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 lock chain database to the specific issuer; providing, in response to the destruction value information of the electronic voucher data, Updating the value information of the electronic voucher registered in the balance database of the electronic voucher to delta which is a change amount and registering or registering it; 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) Value and at least one neighborhood hash value that matches the particular hash value. The particular neighborhood hash value of the at least one neighborhood hash value is determined by all PrivTxid in one block of the block chain to be the private block < RTI ID = 0.0 > A representative hash value generated by calculating a hash value of delta_n, which is a change amount with respect to the value information of the electronic voucher registered in the database, or a value obtained by processing the representative hash value is registered or registered in the public block chain database, The representative hash value or the representative hash value registered in the public block chain database, The step of obtaining the support Txid indicating the location information in the database, or to obtain; 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) 특정 unique nonce 및 가치 정보를 적어도 포함하는 전자 바우처 데이터, (ii) 특정 발행자의 public key 및 (iii) 전자 바우처 데이터의 해쉬값 또는 이를 포함한 값을 특정 발행자의 private key로 서명한 특정 발행자의 서명값에 의한 전자 바우처 발행 요청(request(issue TrxA))이 특정 발행자의 단말로부터 송신되면 서버(100)는 이를 통신부(101)를 통해 수신한다(S100).(Ii) e-voucher data including at least a specific unique nonce and value information for issuance of an electronic voucher from an issuer 110 that is an electronic voucher issuer, (ii) a public key of a specific issuer and iii) When an electronic coupon issue request (issue (issue TrxA)) based on a signature value of a specific issuer that has signed the hash value of the electronic coupon data or a value including the hash value of the electronic coupon data with the private key of the specific issuer is transmitted from the terminal of the specific issuer, Receives it through the communication unit 101 (S100).

이때, 전자 바우처 데이터는, 전자 바우처의 타입 정보, 전자 바우처의 송신자인 특정 발급자의 public key, 전자 바우처의 수신자인 바우처를 구매하는 특정 사용자의 public key, 특정 발행자의 고유 ID 정보 및 전자 바우처의 사용 기한 정보 중 적어도 하나 이상을 더 포함할 수 있다. 또한, 전자 바우처를 구매하는 특정 사용자의 public key는 특정 사용자를 지정함으로써 해당 전자 바우처를 구매한 사용자를 특정할 수도 있으며, 이와는 달리 사용자를 특정하지 않음으로써 무기명 상품권과 같이 일반 화폐와 유사하게 사용되게 할 수도 있다. 그리고, 전자 바우처의 가치 정보는 사용 금액, 사용 회수, 교환 가능한 상품 정보 등을 포함하는 유무형의 가치에 대한 정보일 수 있다. 또한, 특정 발행자의 고유 ID는 특정 발행자를 식별하기 위한 정보일 수 있으며, 일 예로 특정 발행자의 public key의 해쉬값 또는 이를 포함한 값일 수 있다. 그리고, 특정 발행자 또는 특정 사용자에 대한 정보는 사전에 서버(100)에 등록된 것이거나, 필요에 따라 해당 시점에 서버(100)에 등록할 수도 있으며, 등록 정보는 private key와 public key를 가진 발행자 또는 사용자가 자신의 public key를 서버(100)에 등록한 것으로, 이에 대한 설명은 다른 동작에서 설명한다. 또한, 전자 바우처의 사용 기한 정보는 전자 바우처를 사용할 수 있는 기한을 지정한 날짜 정보일 수 있다. 또한, unique nonce는 특정 발행자 또는 사용자가 생성한 유효한 거래를 악의자인 특정 판매자가 여러 번 네트워크에 전송하면, 특정 발행자 또는 사용자의 account가 충분할 경우 모두 유효한 거래로 인정하여 특정 발행자 또는 사용자의 전자 바우처로부터 여러 번 지불되는 것을 방지하기 위한 것으로 각각의 거래에 고유한 nonce를 제공함으로써 replay attacker을 차단하기 위한 것이다.At this time, the electronic voucher data includes the type information of the electronic voucher, the public key of the specific issuer who is the sender of the electronic voucher, the public key of the specific user who purchases the voucher which is the recipient of the electronic voucher, the unique ID information of the specific issuer, And may further include at least one or more of the time limit information. 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. In addition, a unique nonce is a unique nonce that if a specific seller, who is a malicious seller, sends a valid transaction created by a specific issuer or a user to the network several times, if the account of a specific issuer or user is sufficient, This is to prevent replay attackers by providing a unique nonce for each transaction to prevent multiple payments.

그리고, 일 예로, 전자 바우처 발행을 위한 transaction(TrxA)은 1. 타입(발행), 2. Unique nonce, 3. 송신자인 특정 발행자의 public key, 4. 수신자인 특정 사용자의 public key, 5. 전자 바우처의 발행 가치 정보, 6. 전자 바우처를 발행한 특정 발행자의 고유 ID, 7. 전자 바우처의 만료일, 8. 이번 동작의 주체 확인을 위한 public key인 특정 발행자의 public key(MPubA), 9. 서명값으로 특정 발행자가 private key로 서명한 1, 2, 3, 4, 5, 6, 7, 8의 서명값(SigMPrivA(1:2:3:4:5:6:7:8))을 포함할 수 있다.The transaction (TrxA) for issuing an electronic voucher is, for example, 1. type (issuance), 2. a unique nonce, 3. a public key of the specific issuer as the sender, 4. a public key of the specific user as the recipient, 6. The issuer value information of the voucher, 6. the unique ID of the specific issuer issuing the electronic voucher, 7. the expiration date of the electronic voucher, 8. the public key (MPubA) of the specific issuer, (SigMPrivA (1: 2: 3: 4: 5: 6: 7: 8)) signature values of 1, 2, 3, 4, 5, 6, 7, can do.

그러면, 서버(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 acquires (i) the hash value generated by applying the hash function to the electronic voucher data and (iii) the signature value of the acquired 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 signature value of a particular issuer can be validated using a public key registered by a specific issuer.

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

그리고, 서버(100)는 확인 결과(S110) 유효한 것으로 판단하면, 전자 바우처 데이터에 포함된 가치 정보를 발란스 데이터베이스에 변화량인 delta 만큼 업데이트하여 등록하거나 등록하도록 지원할 수 있다(S111). 즉, 발란스 데이터베이스에 등록된 전자 바우처의 이전 가치 정보(BDBprev)를 전자 바우처 발행 transaction에 의한 변화량인 deltaA와 합산한 현재 가치 정보인 BDBnow = BDBprev + deltaA로 업데이트한다. 이때, 전자 바우처의 발행에서는 이전 가치 정보가 없거나 “0”이므로 업데이트되는 발란스 데이터베이스의 발란스는 변화량(delta)인 전자 바우처의 발행 가치 정보가 될 수 있다.If the server 100 determines that the verification result (S110) is valid, the server 100 may update or register the value information included in the electronic voucher data by the amount of delta, which is a change amount, in the balance database (S111). That is, the old value information (BDBprev) of the electronic voucher registered in the balance database is updated to BDBnow = BDBprev + deltaA, which is the present value information which is the sum of deltaA, which is a variation amount by the electronic voucher-issued transaction. At this time, in the issuance of the electronic voucher, since the previous value information is absent or is " 0 ", the balance of the updated balance database can be the issuance value information of the electronic voucher as the change amount delta.

그리고, 서버(100)는 유효인 확인 결과에 대응하여, (i) 전자 바우처 데이터, (ii) 특정 발행자의 public key 및 (iii) 특정 발행자의 서명값을 포함하는 전자 바우처 발행 transaction(TrxA)을 프라이빗 블록체인 데이터베이스에 등록하거나 등록하도록 지원하고, 프라이빗 블록체인 데이터베이스에 등록된 전자 바우처 발행 transaction의 프라이빗 블록체인 데이터베이스 상의 위치 정보를 나타내는 PrivTxid를 포함하는 등록이 성공했음을 나타내는 응답을 특정 발행자에게 제공하거나 제공하도록 지원할 수 있다(S112). 하지만, 서버(100)는 확인 결과(S110) 유효가 아니면, 특정 발행자(110)에게 에러 메시지를 포함하는 실패를 나타내는 응답을 제공하거나 제공하도록 지원할 수 있다(S113).In response to the validation result, the server 100 transmits an electronic voucher issuance transaction (TrxA) including (i) electronic voucher data, (ii) a public key of a specific issuer, and (iii) And provides a response indicating that the registration including the PrivTxid representing the location information on the private block chain database of the electronic voucher issuance transaction registered in the private block chain database to the private block chain database is successful or not provided to the specific issuer (S112). 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 (S113).

또한, 서버(100)는 유효한 확인 결과에 대응하여, 소정의 조건이 만족되면(S120), 하나의 블록에서의 모든 PrivTxid에 의해 프라이빗 블록체인 데이터베이스에 등록된 전자 바우처의 가치 정보에 대한 변화량(즉, 한 블록 내의 총 변화량)인 delta_n을 발란스 데이터베이스에 등록하며, 특정 해쉬값(특정 해쉬값은 (i) 전자 바우처 데이터, (ii) 특정 발행자의 public key 및 (iii) 특정 발행자의 서명값에 대한 해쉬값임) 및 특정 해쉬값과 매칭되는 적어도 하나의 이웃 해쉬값(적어도 하나의 이웃 해쉬값 중 특정 하나의 이웃 해쉬값은 블록체인의 하나의 블록에서의 모든 PrivTxid에 의해 프라이빗 블록체인 데이터베이스에 등록된 전자 바우처의 가치 정보에 대한 변화량인 delta_n의 해쉬값임)을 연산함으로써 대표 해쉬값 또는 대표 해쉬값을 가공한 값을 생성한다(S121). 그리고, 생성된 대표 해쉬값 또는 대표 해쉬값을 가공한 값을 퍼블릭 블록체인 데이터베이스(120)에 등록하거나 등록하도록 지원하며(S122), 퍼블릭 블록체인 데이터베이스(120)에 등록된 대표 해쉬값 또는 대표 해쉬값을 가공한 값의 퍼블릭 블록체인 데이터베이스 상의 위치 정보를 나타내는 Txid를 획득하거나 획득하도록 지원할 수 있다(S123).If the predetermined condition is satisfied (S120), the server 100 determines whether the amount of change (i.e., the amount of change in the value of the electronic voucher registered in the private block chain database by all PrivTxid in one block (I) the electronic voucher data, (ii) the public key of the particular issuer, and (iii) the signature value of the particular issuer. The delta_n is stored in the balance database, And at least one neighborhood hash value that matches a particular hash value (a particular one of the at least one neighbor hash values is registered in the private block chain database by all PrivTxid in one block of the block chain) (A hash value of delta_n, which is a change amount with respect to the value information of the electronic voucher) to generate a value obtained by processing the representative hash value or the representative hash value (S121). The generated representative hash value or the processed value of the representative hash value is registered or registered in the public block chain database 120 (S122), and the representative hash value or the representative hash value registered in the public block chain database 120 (Step S123) to acquire or obtain a Txid indicating positional information on the public block chain database of the processed values.

그리고, 특정 해쉬값과 적어도 하나의 이웃 해쉬값과의 연산은 다양한 해쉬 함수에 의해 수행 될 수 있으며, 해쉬함수는 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) 구조가 될 수도 있다.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.

즉, 서버(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는 본 발명의 일 실시예에 따라 생성된 머클 트리의 예를 도시한 도면이다.FIGS. 3 and 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 operation 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 elapses; (iii) a condition in which a transaction is generated in the private block chain A condition for generating a block in the database, 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.

또한, 서버(100)는 프라이빗 블록체인 데이터베이스에서 블록이 생성되는 때(상기 (iii) 조건)에, 상기 생성되는 블록의 블록 헤더(block header)에 발란스 데이터베이스에 등록된 전자 바우처의 가치 정보에 대한 전체 또는 상기 전자 바우처의 가치 정보의 변화량인 delta_n 으로부터 연산된 해쉬값인 발란스 데이터베이스 헤더 해쉬값이 기록되도록 하거나 기록되도록 지원할 수 있다.In addition, when a block is generated in the private block chain database (condition (iii)), the server 100 stores the value of the electronic voucher value registered in the balance database in the block header of the generated block And a balance database header hash value, which is a hash value calculated from the delta_n which is the change amount of the value information of the electronic voucher as a whole or the delta_n.

일 예로, (i) random nonce, random nonce 서명값 및 public key로부터 연산된 해쉬값들만이 리프 노드들에 할당된 머클 트리로부터 대표 해쉬값인 거래자 정보 대표 해쉬값이 생성되고, (ii) 전자 바우처의 발행, 사용, 환불, 정산 또는 파기에 대한 정보를 포함하는 전자 바우처 데이터, public key 및 서명값으로부터 연산된 해쉬값들만이 리프 노드들에 할당된 머클 트리로부터 대표 해시값인 바우처 거래 정보 대표 해쉬값이 생성된 후, 거래자 정보 대표 해쉬값 및 바우처 거래 정보 대표 해쉬값이 생성되는 블록의 블록 헤더에 더 기록된 상태에서, 서버가, 상기 발란스 데이터베이스 헤더 해쉬값, 상기 거래자 정보 대표 해쉬값 및 상기 바우처 거래 정보 대표 해쉬값 또는 이들을 가공한 값에 대한 해쉬값을 퍼블릭 블록체인 데이터베이스에 등록하거나 등록하도록 지원할 수도 있다.For example, (i) only a hash value calculated from a random nonce, a random nonce signature value, and a public key is generated from a merge tree assigned to leaf nodes as a representative hash value, (ii) an electronic voucher Only the hash values calculated from the public key and the signature value are extracted from the merge tree allocated to the leaf nodes from the representative hash value voucher transaction information representative hash A hash value of the trader information and a representative hash value of the voucher transaction information are further recorded in the block header of the block in which the representative information has been generated, the server stores the balance database header hash value, the trader information representative hash value, The hash value of the voucher transaction information representative hash value or the processed value thereof is registered or registered in the public block chain database You may want.

또한, 서버(100)는 (i) random nonce, random nonce 서명값 및 public key로부터 연산된 해쉬값, 및 (ii) 전자 바우처의 발행, 사용, 환불, 정산 또는 파기에 대한 정보를 포함하는 전자 바우처 데이터, public key 및 서명값으로부터 연산된 해쉬값들이 리프 노드들에 할당된 머클 트리로부터 프라이빗 대표 해쉬값이 생성된 후, 상기 프라이빗 대표 해쉬값이 상기 생성되는 블록의 블록 헤더에 더 기록된 상태에서, 상기 발란스 데이터베이스 헤더 해쉬값 및 상기 프라이빗 대표 해쉬값, 또는 이들을 가공한 값을 퍼블릭 블록체인 데이터베이스에 등록하거나 등록하거나 등록하도록 지원할 수도 있다.The server 100 may also include an electronic voucher that includes information about issuance, use, refund, settlement, or destruction of an electronic voucher (i) a random nonce, a random nonce signature value and a hash value computed from a public key, After the private representative hash value is generated from the merge tree in which the hash values calculated from the data, the public key and the signature value are assigned to the leaf nodes, the private representative hash value is further recorded in the block header of the generated block , The balance database header hash value, and the private representative hash value, or a value obtained by processing them, in the public block chain database.

그리고, 서비스 특성이란, 전자 바우처 발행 요청을 한 특정 발행자가 제공한 비용 정보, 전자 바우처 발행 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 the verification request related to the electronic coupon-issued transaction and registers the second representative hash value or the second representative hash value generated using the input data included in the verification request, Server 100 matches 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 verification related to the data has been made. 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)는 새로운 머클 트리를 생성하거나 생성하도록 지원할 수 있는데, 여기에는 전술한 전자 바우처 발행 traction의 퍼블릭 블록체인 데이터베이스 등록 과정에서 생성된 머클 트리가 이용될 수 있다. 즉, 서버(100)는 (y1) (i) 제2 특정 해쉬값과 (ii) 기존에 생성된 머클 트리에서 제2 특정 해쉬값이 할당된 노드의 형제 노드에 할당된 해쉬값을 연산하거나 연산하도록 지원하고, 연산값에 대한 해쉬값을 새로운 머클 트리에서 노드의 부모 노드에 할당하거나 할당하도록 지원할 수 있다. 또한, (y2) 부모 노드가 새로운 머클 트리의 루트 노드이면, 부모 노드에 할당된 해쉬값을 제2 대표 해쉬값으로서 OP 메시지에 포함된 값과 비교하거나 비교하도록 지원하고, (y3) 부모 노드가 새로운 머클 트리의 루트 노드가 아니면, 부모 노드에 할당된 해쉬값을 제2 특정 해쉬값으로 하여 (y1) 내지 (y3)를 반복하여 수행할 수 있다.In the verification operation process, the server 100 may support creating or creating a new merge tree, in which a merge tree generated in the public block chain database registration process of the electronic coupon issue traction described above may 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 " At this time, since h0123 node is the root node of the merge tree, the server 100 supports to compare the value (hex (h {node_index})) obtained by processing the hash value assigned to the node h0123 with the value contained 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), 생성된 대표 해쉬값 또는 대표 해쉬값을 가공한 값을 퍼블릭 블록체인 데이터베이스에 등록하거나 등록하도록 지원하며(S232), 퍼블릭 블록체인 데이터베이스에 등록된 대표 해쉬값 또는 대표 해쉬값을 가공한 값의 퍼블릭 블록체인 데이터베이스 상의 위치 정보를 나타내는 Txid를 획득하거나 획득하도록 지원할 수 있다(S233). 이때, 특정 발행자 등록 transaction의 퍼블릭 블록체인 데이터베이스(120)로의 등록은 도 2에서와 같은 방법에 의한 머클 트리에 의해 생성된 대표 해쉬값 또는 대표 해쉬값을 가공한 값이 등록되도록 할 수 있다.In addition, when the issuer and the signature value are valid, if the predetermined condition is satisfied (S230), the server 100 determines whether the random hash value of the public key of the specific issuer matches at least one A value obtained by processing the representative hash value or the representative hash value is generated (S231), and a value obtained by processing the generated representative hash value or the representative hash value is registered or registered in the public block chain database (S232), and obtain or obtain a Txid indicating positional information on a public block chain database of a value obtained by processing a representative hash value or a representative hash value registered in the public block chain database (S233). At this time, the registration of the specific issuer registration transaction in the public block chain database 120 can register a value obtained by processing the representative hash value or the representative 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) 특정 unique nonce 사용 가치 정보를 적어도 포함하는 전자 바우처 데이터, (ii) 특정 사용자의 public key 및 (iii) 전자 바우처 데이터의 해쉬값 또는 이를 포함한 값을 특정 사용자의 private key로 서명한 특정 사용자의 서명값에 의한 전자 바우처 사용 요청(request(use TrxA))이 특정 사용자의 단말로부터 송신되면 서버(100)는 이를 통신부(101)를 통해 수신한다(S300).In order to use the electronic voucher, electronic coupon data including (i) at least the specific unique nonce use value information for use of the electronic voucher from the specific user 111 purchasing the electronic voucher, (ii) (iii) When a request for use of an electronic coupon (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 of the electronic coupon data with a private key of a specific user is transmitted from a terminal of a specific user, 100) through the communication unit 101 (S300).

이때, 전자 바우처 데이터는 전자 바우처의 타입 정보, 전자 바우처의 송신자인 특정 사용자의 public key, 전자 바우처의 수신자인 특정 판매자의 public key, 전자 바우처를 발행한 특정 발행자의 고유 ID 및 전자 바우처의 사용 기한 정보 중 적어도 하나 이상을 더 포함할 수 있다. 그리고, 전자 바우처의 타입 정보는 현재 수행하는 동작을 정의하기 위한 것으로 전자 바우처 사용을 표시하는 정보일 수 있다. 또한, 전자 바우처를 수신하는 특정 판매자의 public key는 특정 판매자를 지정함으로써 해당 전자 바우처를 수신한, 즉 특정 사용자에 의해 사용되는 전자 바우처를 수령하는 판매자를 특정할 수도 있으며, 이와는 달리 판매자를 특정하지 않음으로써 무기명 상품권과 같이 일반 화폐와 유사하게 사용되게 할 수도 있다. 그리고, 전자 바우처의 가치 정보 중에서 이번에 사용하기 위한 사용 가치 정보는 사용 금액, 사용 회수, 교환 가능한 상품 정보 등을 포함하는 유무형의 가치에 대한 정보일 수 있다. 또한, 전자 바우처를 발행한 특정 발행자의 고유 ID는 특정 발행자를 식별하기 위한 정보일 수 있으며, 일 예로 특정 발행자의 public key의 해쉬값 또는 이를 포함한 값일 수 있다.At this time, the electronic voucher data includes the type information of the electronic voucher, the public key of the specific user who is the sender of the electronic voucher, the public key of the specific seller who is the receiver of the electronic voucher, the unique ID of the specific issuer who issued the electronic voucher, And may further include at least one or more of the information. 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.

그리고, 일 예로, 전자 바우처 사용을 위한 transaction(TrxA)은 1. 타입(사용), 2. Unique nonce, 3. 송신자인 특정 사용자의 public key, 4. 수신자인 특정 판매자의 public key, 5. 전자 바우처의 사용할 가치 정보, 6. 전자 바우처를 발행한 특정 발행자의 고유 ID, 7. 전자 바우처의 만료일, 8. 이번 동작의 주체 확인을 위한 public key인 특정 사용자의 public key, 9. 서명값으로 특정 사용자가 private key로 서명한 1, 2, 3, 4, 5, 6, 7, 8의 서명값(SigMPrivA(1:2:3:4:5:6:7:8))을 포함할 수 있다.For example, a transaction (TrxA) for use of an electronic voucher may be of 1. type (use), 2. a unique nonce, 3. a public key of a specific user who is the sender, 4. a public key of a particular seller, 6. The unique ID of the specific issuer that issued the electronic voucher, 7. The expiration date of the electronic voucher, 8. The public key of the specific user that is the public key for identifying the subject of this operation, (SigMPrivA (1: 2: 3: 4: 5: 6: 7: 8) of 1, 2, 3, 4, 5, 6, 7, 8 signed by the user with a private key .

그러면, 서버(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) 유효한 것으로 판단하면, 전자 바우처 데이터에 포함된 가치 정보를 해당 변화량인 delta 만큼 발란스 데이터베이스에 업데이트하여 등록하거나 등록하도록 지원할 수 있다(S311). 즉, 발란스 데이터베이스에 등록된 전자 바우처의 이전 가치 정보(BDBprev)를 전자 바우처 사용 transaction에 의한 변화량인 deltaA와 합산한 현재 가치 정보인 BDBnow = BDBprev + deltaA로 업데이트한다. 이때, 변화량(delta)은 사용할 가치 정보로 감산이 이루어질 수도 있다.If the server 100 determines that the confirmation result (S310) is valid, the server 100 may update the balance information database by registering or registering the value information included in the electronic voucher data by a corresponding change amount delta (S311). That is, the old value information (BDBprev) of the electronic voucher registered in the balance database is updated to BDBnow = BDBprev + deltaA, which is the present value information which is the sum of deltaA, which is a variation amount by the electronic voucher use transaction. At this time, the amount of change (delta) may be subtracted from the value information to be used.

그리고, 서버(100)는 유효인 확인 결과에 대응하여, (i) 전자 바우처 데이터, (ii) 특정 사용자의 public key 및 (iii) 특정 사용자의 서명값을 포함하는 전자 바우처 사용 transaction(TrxA)을 프라이빗 블록체인 데이터베이스에 등록하거나 등록하도록 지원하고, 프라이빗 블록체인 데이터베이스에 등록된 전자 바우처 사용 transaction의 프라이빗 블록체인 데이터베이스 상의 위치 정보를 나타내는 PrivTxid를 포함하는 등록이 성공했음을 나타내는 응답을 특정 사용자(111)에게 제공하거나 제공하도록 지원할 수 있다(S312). 하지만, 서버(100)는 확인 결과(S110) 유효가 아니면, 특정 사용자(111)에게 에러 메시지를 포함하는 실패를 나타내는 응답을 제공하거나 제공하도록 지원할 수 있다(S313).In response to the validation result, the server 100 transmits an electronic voucher use transaction (TrxA) including (i) electronic voucher data, (ii) a public key of a specific user, and (iii) To the private block chain database, and sends a response indicating that the registration including the PrivTxid indicating the location information on the private block chain database of the electronic coupon transaction registered in the private block chain database to the specific user 111 (S312). ≪ / RTI > 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 (S313).

또한, 서버(100)는 유효한 확인 결과에 대응하여, 소정의 조건이 만족되면(S320), 하나의 블록에서의 모든 PrivTxid에 의해 프라이빗 블록체인 데이터베이스에 등록된 전자 바우처의 가치 정보에 대한 총 변화량인 delta_n을 발란스 데이터베이스에 등록하며, 특정 해쉬값(특정 해쉬값은 (i) 전자 바우처 데이터, (ii) 특정 사용자의 public key 및 (iii) 특정 사용자의 서명값에 대한 해쉬값임) 및 특정 해쉬값과 매칭되는 적어도 하나의 이웃 해쉬값(적어도 하나의 이웃 해쉬값 중 하나의 특정 이웃 해쉬값은 블록체인의 하나의 블록에서의 모든 PrivTxid에 의해 프라이빗 블록체인 데이터베이스에 등록된 전자 바우처의 가치 정보에 대한 총 변화량인 delta_n의 해쉬값임)을 연산함으로써 대표 해쉬값 또는 대표 해쉬값을 가공한 값을 생성한다(S321). 그리고, 생성된 대표 해쉬값 또는 대표 해쉬값을 가공한 값을 퍼블릭 블록체인 데이터베이스에 등록하거나 등록하도록 지원하며(S322), 퍼블릭 블록체인 데이터베이스에 등록된 대표 해쉬값 또는 대표 해쉬값을 가공한 값의 퍼블릭 블록체인 데이터베이스 상의 위치 정보를 나타내는 Txid를 획득하거나 획득하도록 지원할 수 있다(S323). 이때, 전자 바우처 사용 transaction의 퍼블릭 블록체인 데이터베이스(120)로의 등록은 도 2에서와 같은 방법에 의한 머클 트리에 의해 생성된 대표 해쉬값 또는 대표 해쉬값을 가공한 값이 등록되도록 할 수 있다.If the predetermined condition is satisfied (S320), the server 100 determines whether or not the total amount of change in the value information of the electronic voucher registered in the private block chain database by all PrivTxid in one block delta_n is registered in the balance database and a hash value (a specific hash value is (i) electronic voucher data, (ii) a public key of a specific user, and (iii) (At least one neighbor hash value of at least one neighboring hash value is a sum of the value of the value of the electronic voucher registered in the private block chain database by all PrivTxid in one block of the block chain (I.e., a hash value of delta_n, which is a change amount), thereby generating a value obtained by processing the representative hash value or the representative hash value (S321). The generated representative hash value or the processed value of the representative hash value is registered or registered in the public block chain database (S322), and a representative hash value or representative hash value registered in the public block chain database is processed And acquire or obtain a Txid indicating location information on the public block chain database (S323). At this time, the registration of the electronic coupon transaction in the public block chain database 120 can register the processed value of the representative hash value or the representative hash value generated by the merge tree by the method 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의 해쉬값인 특정 해쉬값 및 특정 해쉬값과 매칭되는 적어도 하나의 이웃 해쉬값을 연산함으로써 생성되는 대표 해쉬값 또는 대표 해쉬값을 가공한 값을 퍼블릭 블록체인 데이터베이스에 등록하거나 등록하도록 지원하며, 퍼블릭 블록체인 데이터베이스에 등록된 대표 해쉬값 또는 대표 해쉬값을 가공한 값의 퍼블릭 블록체인 데이터베이스 상의 위치 정보를 나타내는 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 To obtain or obtain a Txid indicating location information on a public block chain database of a 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) 특정 unique nonce 및 환불 가치 정보를 적어도 포함하는 전자 바우처 데이터, (ii) 특정 사용자의 public key 및 (iii) 전자 바우처 데이터의 해쉬값 또는 이를 포함한 값을 특정 사용자의 private key로 서명한 특정 사용자의 서명값에 의한 전자 바우처 환불 요청(request(refund TrxA))이 특정 사용자(111)의 단말로부터 송신되면 서버(100)는 이를 통신부를 통해 수신한다(S400).In order to refund the electronic voucher, electronic voucher data including (i) at least a specific unique nonce and refund value information for refund of the electronic voucher from the specific user 111 who purchased the electronic voucher, (ii) (Iii) a request for refund of an electronic coupon (refund TrxA) by a signature value of a specific user who has signed the hash value of the electronic coupon data or a value including the hash value of the electronic coupon data with the private key of the specific user is received from the terminal of the specific user 111 When it is transmitted, the server 100 receives it through the communication unit (S400).

이때, 전자 바우처 데이터는 전자 바우처의 타입 정보, 전자 바우처의 송신자인 특정 사용자의 public key, 전자 바우처의 수신자인 전자 바우처를 발행한 특정 발행자의 public key, 특정 발행자의 고유 ID 및 전자 바우처의 사용 기한 정보 중 적어도 하나 이상을 더 포함할 수 있다. 그리고, 전자 바우처의 타입 정보는 현재 수행하는 동작을 정의하기 위한 것으로 전자 바우처 환불을 표시하는 정보일 수 있다.At this time, the electronic voucher data includes the type information of the electronic voucher, the public key of the specific user who is the sender of the electronic voucher, the public key of the specific issuer who issued the electronic voucher which is the receiver of the electronic voucher, And may further include at least one or more of the information. 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.

그리고, 일 예로, 전자 바우처 발행을 위한 transaction(TrxA)은 1. 타입(환불), 2. Unique nonce, 3. 송신자인 특정 사용자의 public key, 4. 수신자인 특정 발행자의 public key, 5. 전자 바우처의 환불 가치 정보, 6. 전자 바우처를 발행한 특정 발행자의 고유 ID, 7. 전자 바우처의 만료일, 8. 이번 동작의 주체 확인을 위한 public key인 특정 사용자의 public key(PubA), 9. 서명값으로 특정 사용자가 private key로 서명한 1, 2, 3, 4, 5, 6, 7, 8의 서명값(SigMPrivA(1:2:3:4:5:6:7:8))을 포함할 수 있다.For example, a transaction (TrxA) for issuing an electronic voucher is of a type 1. (refund), 2. a unique nonce, 3. a public key of a specific user who is the sender, 4. a public key of a particular issuer, 6. The public key (PubA) of the public key (PubA), which is the public key for identifying the subject of this operation. 9. The signature (SigMPrivA (1: 2: 3: 4: 5: 6: 7: 8)) signature values of 1, 2, 3, 4, 5, 6, can do.

그러면, 서버(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) 유효한 것으로 판단하면, 전자 바우처 데이터에 포함된 환불 정보를 변화량인 delta 만큼 발란스 데이터베이스에 업데이트하여 등록하거나 등록하도록 지원할 수 있다(S411). 즉, 발란스 데이터베이스에 등록된 전자 바우처의 이전 가치 정보(BDBprev)를 전자 바우처 발행 transaction에 의한 변화량인 deltaA와 합산한 현재 가치 정보인 BDBnow = BDBprev + deltaA로 업데이트한다. 이때, 전자 바우처의 환불에서는 발란스의 변화량인 delta는 환불 가치 정보와 동일할 수 있다.If the server 100 determines that the check result (S410) is valid, the server 100 can update the balance database by registering or registering the refund information included in the electronic voucher data by the change amount delta (S411). That is, the old value information (BDBprev) of the electronic voucher registered in the balance database is updated to BDBnow = BDBprev + deltaA, which is the present value information which is the sum of deltaA, which is a variation amount by the electronic voucher-issued transaction. At this time, in the electronic voucher refund, the change amount of the balance, delta, may be the same as the refund value information.

그리고, 서버(100)는 유효인 확인 결과에 대응하여, (i) 전자 바우처 데이터, (ii) 특정 사용자의 public key 및 (iii) 특정 사용자의 서명값을 포함하는 전자 바우처 환불 transaction(TrxA)을 프라이빗 블록체인 데이터베이스에 등록하거나 등록하도록 지원하고, 프라이빗 블록체인 데이터베이스에 등록된 전자 바우처 환불 transaction의 프라이빗 블록체인 데이터베이스 상의 위치 정보를 나타내는 PrivTxid를 포함하는 등록이 성공했음을 나타내는 응답을 특정 사용자(111)에게 제공하거나 제공하도록 지원할 수 있다(S412). 하지만, 서버(100)는 확인 결과(S410) 유효가 아니면, 특정 사용자(111)에게 에러 메시지를 포함하는 실패를 나타내는 응답을 제공하거나 제공하도록 지원할 수 있다(S413).In response to the validation result, the server 100 transmits an electronic voucher refund transaction (TrxA) including (i) electronic voucher data, (ii) a public key of a specific user, and (iii) To 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 refund transaction registered in the private block chain database is successful is transmitted to the specific user 111 (S412). 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 (S413).

또한, 서버(100)는 유효한 확인 결과에 대응하여, 소정의 조건이 만족되면(S420), 특정 해쉬값은 (i) 전자 바우처 데이터, (ii) 특정 사용자의 public key 및 (iii) 특정 사용자의 서명값에 대한 해쉬값임 - 및 특정 해쉬값과 매칭되는 적어도 하나의 이웃 해쉬값(적어도 하나의 이웃 해쉬값 중 특정 이웃 해쉬값은 블록체인의 하나의 블록에서의 모든 PrivTxid에 의해 프라이빗 블록체인 데이터베이스에 등록된 전자 바우처의 가치 정보에 대한 변화량인 delta_n의 해쉬값임)을 연산함으로써 대표 해쉬값 또는 대표 해쉬값을 가공한 값을 생성한다(S421). 그리고 생성된 대표 해쉬값 또는 대표 해쉬값을 가공한 값을 퍼블릭 블록체인 데이터베이스에 등록하거나 등록하도록 지원하며(S422), 퍼블릭 블록체인 데이터베이스에 등록된 대표 해쉬값 또는 대표 해쉬값을 가공한 값의 퍼블릭 블록체인 데이터베이스 상의 위치 정보를 나타내는 Txid를 획득하거나 획득하도록 지원할 수 있다(S423). 이때, 전자 바우처 환불 transaction의 퍼블릭 블록체인 데이터베이스(120)로의 등록은 도 2에서와 같은 방법에 의한 머클 트리에 의해 생성된 대표 해쉬값 또는 대표 해쉬값을 가공한 값이 등록되도록 할 수 있다.If the predetermined condition is satisfied (S420), the server 100 determines that the hash value is (i) the electronic voucher data, (ii) the public key of the specific user, and (iii) A hash value for the signature value and at least one neighborhood hash value matching a particular hash value (the particular neighbor hash value of at least one neighbor hash value is assigned to the private block chain database by all PrivTxid in one block of the block chain) (A hash value of delta_n, which is a change amount with respect to the value information of the registered electronic voucher), to generate a value obtained by processing the representative hash value or the representative hash value (S421). The generated representative hash value or the processed value of the representative hash value is registered or registered in the public block chain database (S422), and a representative hash value or representative hash value registered in the public block chain database is public To acquire or obtain a Txid indicating location information on the block chain database (S423). At this time, the registration of the electronic voucher refund transaction in the public block chain database 120 can register a value obtained by processing the representative hash value or representative hash value generated by the merge tree by the method as shown in FIG.

다음으로, 도 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) 특정 unique nonce 및 정산 가치 정보를 적어도 포함하는 전자 바우처 데이터, (ii) 특정 판매자의 public key 및 (iii) 전자 바우처 데이터의 해쉬값 또는 이를 포함한 값을 특정 판매자의 private key로 서명한 특정 판매자의 서명값에 의한 전자 바우처 정산 요청(request(merchant TrxA)이 특정 판매자의 단말로부터 송신되면 서버(100)를 통신부를 통해 이를 수신한다(S500).In order to settle the electronic voucher, electronic voucher data including at least (i) a specific unique nonce and settlement value information for settlement of the electronic voucher from the specific seller 112 receiving the electronic voucher at the opposite payment of goods or service, (ii) a public key of a specific seller, and (iii) an electronic coupon settlement request (merchant TrxA) by a signature value of a specific seller who has signed a hash value of the e-voucher data or a value including the hash with a private key of a specific seller When it is transmitted from the seller's terminal, the server 100 is received through the communication unit (S500).

이때, 전자 바우처 데이터는 전자 바우처의 타입 정보, 전자 바우처의 송신자인 특정 판매자의 public key, 전자 바우처의 수신자인 전자 바우처를 발행한 특정 발행자의 public key 및 특정 발행자의 고유 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 seller who is the sender of the electronic voucher, the public key of the specific issuer who issued the electronic voucher which is the receiver of the electronic voucher, . 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. Unique nonce, 3. 송신자인 특정 판매자의 public key, 4. 수신자인 특정 발행자의 public key, 5. 전자 바우처의 정산 가치 정보, 6. 전자 바우처를 발행한 특정 발행자의 고유 ID, 7. 전자 바우처의 만료일(없음), 8. 이번 동작의 주체 확인을 위한 public key인 특정 판매자의 public key, 9. 서명값으로 특정 판매자가 private key로 서명한 1, 2, 3, 4, 5, 6, 7, 8의 서명값(SigMPrivA(1:2:3:4:5:6:7:8))을 포함할 수 있다.For example, a transaction (TrxA) for issuing an electronic voucher may be of 1. type (settlement), 2. a unique nonce, 3. a public key of the specific seller as the sender, 4. a public key of the specific issuer as the receiver, 6. The electronic coupon's unique ID, 7. The electronic voucher's expiration date (none), 8. The public key of the specific seller, which is the public key for confirming the subject of this action, 9. The signature (SigMPrivA (1: 2: 3: 4: 5: 6: 7: 8) of 1, 2, 3, 4, 5, 6, 7, can do.

그러면, 서버는 획득된 (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) 유효한 것으로 판단하면, 전자 바우처 데이터에 포함된 가치 정보를 발란스 데이터베이스에 변화량인 delta로 업데이트하여 등록하거나 등록하도록 지원할 수 있다(S511). 즉, 발란스 데이터베이스에 등록된 전자 바우처의 이전 가치 정보(BDBprev)를 전자 바우처 발행 transaction에 의한 변화량인 deltaA와 합산한 현재 가치 정보인 BDBnow = BDBprev + deltaA로 업데이트한다. 이때, 발란스의 변화량인 delta는 전자 바우처의 정산 가치 정보일 수 있다.If the server 100 determines that the validation result is valid (S510), the server 100 may update the value information included in the electronic voucher data to delta, which is a change amount, in the balance database to register or register the value information in step S511. That is, the old value information (BDBprev) of the electronic voucher registered in the balance database is updated to BDBnow = BDBprev + deltaA, which is the present value information which is the sum of deltaA, which is a variation amount by the electronic voucher-issued transaction. At this time, delta, which is the change amount of the balance, may be the settlement value information of the electronic voucher.

그리고, 서버(100)는 유효인 확인 결과에 대응하여, (i) 전자 바우처 데이터, (ii) 특정 판매자의 public key 및 (iii) 특정 판매자의 서명값을 포함하는 전자 바우처 정산 transaction(TrxA)을 프라이빗 블록체인 데이터베이스에 등록하거나 등록하도록 지원하고, 프라이빗 블록체인 데이터베이스에 등록된 전자 바우처 정산 Transaction의 프라이빗 블록체인 데이터베이스 상의 위치 정보를 나타내는 PrivTxid를 특정 판매자(112)에게 제공하거나 제공하도록 지원할 수 있다(S512). 하지만, 서버(100)는 확인 결과(S510) 유효가 아니면, 특정 판매자(112)에게 에러 메시지를 포함하는 실패를 나타내는 응답을 제공하거나 제공하도록 지원할 수 있다(S513).In response to the validation result, the server 100 transmits an electronic voucher settlement transaction (TrxA) including (i) electronic voucher data, (ii) a public key of a specific seller, and (iii) To support registration or registration 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 electronic courier settlement transaction registered in the private block chain database (S512 ). 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 (S513).

또한, 서버(100)는 유효한 확인 결과에 대응하여, 소정의 조건이 만족되면(S520), 특정 해쉬값(특정 해쉬값은 (i) 전자 바우처 데이터, (ii) 특정 판매자의 public key 및 (iii) 특정 판매자의 서명값의 해쉬값임) 및 특정 해쉬값과 매칭되는 적어도 하나의 이웃 해쉬값(적어도 하나의 이웃 해쉬값 중 특정 이웃 해쉬값은 블록체인의 하나의 블록에서의 모든 PrivTxid에 의해 프라이빗 블록체인 데이터베이스에 등록된 전자 바우처의 가치 정보에 대한 변화량인 delta_n의 해쉬값임)을 연산함으로써 대표 해쉬값 또는 대표 해쉬값을 가공한 값을 생성한다(S521). 그리고, 생성된 대표 해쉬값 또는 대표 해쉬값을 가공한 값을 퍼블릭 블록체인 데이터베이스에 등록하거나 등록하도록 지원하며(S522), 퍼블릭 블록체인 데이터베이스에 등록된 대표 해쉬값 또는 대표 해쉬값을 가공한 값의 퍼블릭 블록체인 데이터베이스 상의 위치 정보를 나타내는 Txid를 획득하거나 획득하도록 지원할 수 있다(S523). 이때, 전자 바우처 정산 transaction의 퍼블릭 블록체인 데이터베이스(120)로의 등록은 도 3에서와 같은 방법에 의한 머클 트리에 의해 생성된 대표 해쉬값 또는 대표 해쉬값을 가공한 값이 등록되도록 할 수 있다.If the predetermined condition is satisfied (S520), 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 seller, and (iii) ) And at least one neighborhood hash value that matches a particular hash value (a particular neighbor hash value of at least one neighbor hash value is determined by all PrivTxid in one block of the block chain to be a private block < RTI ID = 0.0 > (The value of the hash value of delta_n, which is a change amount with respect to the value information of the electronic voucher registered in the chain database) to generate a value obtained by processing the representative hash value or the representative hash value (S521). The generated representative hash value or the processed value of the representative hash value is registered or registered in the public block chain database (S522), and a representative hash value or representative hash value registered in the public block chain database is processed To acquire or obtain a Txid indicating location information on the public block chain database (S523). At this time, the registration of the electronic couch settlement transaction in the public block chain database 120 can register a value obtained by processing the representative hash value or the representative hash value generated by the merge tree by the method as shown in FIG.

그리고, 서버(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)는 판매자와 서명값이 유효한 경우, 소정의 조건이 만족되면, random nonce, random nonce 서명값 및 특정 판매자의 public key의 해쉬값인 특정 해쉬값 및 특정 해쉬값과 매칭되는 적어도 하나의 이웃 해쉬값을 연산함으로써 생성되는 대표 해쉬값 또는 대표 해쉬값을 가공한 값을 퍼블릭 블록체인 데이터베이스에 등록하거나 등록하도록 지원하며, 퍼블릭 블록체인 데이터베이스에 등록된 대표 해쉬값 또는 대표 해쉬값을 가공한 값의 퍼블릭 블록체인 데이터베이스 상의 위치를 나타내는 Txid를 획득하거나 획득하도록 지원할 수 있다. 이때, 특정 판매자 등록 transaction의 퍼블릭 블록체인 데이터베이스(120)로의 등록은 도 2에서와 같은 방법에 의한 머클 트리에 의해 생성된 대표 해쉬값 또는 대표 해쉬값을 가공한 값이 등록되도록 할 수 있다.If the seller 100 and the signature value are valid, the server 100 obtains a random hash value, a random nonce signature value, and a specific hash value, which is a hash value of the public key of the specific seller, 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 To obtain or obtain a Txid indicating a location on a public block chain database of a value. At this time, the registration of the specific seller registration transaction into the public block chain database 120 may register a value obtained by processing the representative hash value or the representative hash value generated by the merge tree by the method as shown in FIG.

다음으로, 도 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) 특정 unique nonce 및 파기 가치 정보를 적어도 포함하는 전자 바우처 데이터, (ii) 특정 발행자의 public key 및 (iii) 전자 바우처 데이터의 해쉬값 또는 이를 포함한 값을 특정 발행자의 private key로 서명한 특정 발행자의 서명값에 의한 전자 바우처 파기 요청(request(revocate TrxA))이 특정 발행자의 단말로부터 송신되면 서버(100)는 이를 통신부를 통해 수신한다(S600).(Ii) e-voucher data including at least a specific unique nonce and discard value information for discarding an electronic voucher from a specific issuer 110, (ii) a public key of a particular issuer, and (iii) When an electronic voucher destruction request (revocate TrxA) based on a signature value of a specific issuer that has signed the hash value of the voucher data or a value including the hash value of the voucher data with the private key of the specific issuer is transmitted from the terminal of the specific issuer, Through the communication unit (S600).

이때, 전자 바우처 데이터는 전자 바우처의 타입 정보, 전자 바우처의 송신자인 특정 사용자의 public key, 바우처의 수신자인 특정 발행자의 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 user who is the sender of the electronic voucher, the public key of the specific issuer who is the receiver of the 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. Unique nonce, 3. 송신자인 특정 사용자의 public key, 4. 수신자인 특정 발행자의 public key, 5. 전자 바우처의 파기 가치 정보, 6. 전자 바우처를 발행한 특정 발행자의 고유 ID, 7. 전자 바우처의 만료일(없음), 8. 이번 동작의 주체 확인을 위한 public key인 특정 발행자의 public key, 9. 서명값으로 특정 발행자가 private key로 서명한 1, 2, 3, 4, 5, 6, 7, 8의 서명값(SigMPrivA(1:2:3:4:5:6:7:8))을 포함할 수 있다.For example, the transaction (TrxA) for e-voucher destruction is: 1. type (destroy), 2. a unique nonce, 3. the public key of the specific user who sent it, 4. the public key of the particular issuer, 6. Unique ID of a specific issuer issuing the electronic voucher, 7. Expiration date of the electronic voucher (none), 8. Public key of the specific issuer, which is a public key for identifying the subject of this operation, 9. Signature (SigMPrivA (1: 2: 3: 4: 5: 6: 7: 8)) signature values of 1, 2, 3, 4, 5, 6, 7, can do.

그러면, 서버(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) 유효한 것으로 판단하면, 전자 바우처 데이터에 포함된 가치 정보를 발란스 데이터베이스에 변화량인 delta로 업데이트하여 등록하거나 등록하도록 지원할 수 있다(S611). 즉, 발란스 데이터베이스에 등록된 전자 바우처의 이전 가치 정보(BDBprev)를 전자 바우처 파기 transaction에 의한 변화량인 deltaA와 합산한 현재 가치 정보인 BDBnow = BDBprev + deltaA로 업데이트한다.If the server 100 determines that the verification result (S610) is valid, the server 100 can update the value information included in the electronic voucher data to delta, which is a change amount, in the balance database, and register or register the value information in step S611. That is, the old value information (BDBprev) of the electronic voucher registered in the balance database is updated with BDBnow = BDBprev + deltaA, which is the present value information which is the sum of the deltaA, which is the variation amount by the electronic voucher destruction transaction.

그리고, 서버(100)는 유효인 확인 결과에 대응하여, (i) 전자 바우처 데이터, (ii) 특정 발행자의 public key 및 (iii) 특정 발행자의 서명값을 포함하는 전자 바우처 파기 transaction(TrxA)을 프라이빗 블록체인 데이터베이스에 등록하거나 등록하도록 지원하고, 프라이빗 블록체인 데이터베이스에 등록된 전자 바우처 파기 transaction의 프라이빗 블록체인 데이터베이스 상의 위치 정보를 나타내는 PrivTxid를 포함하는 등록이 성공했음을 나타내는 응답을 특정 발행자(110)에게 제공하거나 제공하도록 지원할 수 있다(S612). 하지만, 서버(100)는 확인 결과(S610) 유효가 아니면, 특정 발행자(110)에게 에러 메시지를 포함하는 실패를 나타내는 응답을 제공하거나 제공하도록 지원할 수 있다(S613).In response to the validation result, the server 100 sends an electronic voucher destruction transaction (TrxA) including (i) electronic voucher data, (ii) a public key of a specific issuer, and (iii) To the specific issuer 110, 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, (S612). ≪ / 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 (S613).

또한, 서버(100)는 유효한 확인 결과에 대응하여, 소정의 조건이 만족되면(S620), 특정 해쉬값(특정 해쉬값은 (i) 전자 바우처 데이터, (ii) 특정 발행자의 public key 및 (iii) 특정 발행자의 서명값에 대한 해쉬값임) 및 특정 해쉬값과 매칭되는 적어도 하나의 이웃 해쉬값(적어도 하나의 이웃 해쉬값 중 특정 이웃 해쉬값은 블록체인의 하나의 블록에서의 모든 PrivTxid에 의해 프라이빗 블록체인 데이터베이스에 등록된 전자 바우처의 가치 정보에 대한 변화량인 delta_n의 해쉬값임)을 연산함으로써 대표 해쉬값 또는 대표 해쉬값을 가공한 값을 생성한다(S621). 그리고, 생성된 대표 해쉬값 또는 대표 해쉬값을 가공한 값을 퍼블릭 블록체인 데이터베이스에 등록하거나 등록하도록 지원하며(S622), 퍼블릭 블록체인 데이터베이스에 등록된 대표 해쉬값 또는 대표 해쉬값을 가공한 값의 퍼블릭 블록체인 데이터베이스 상의 위치 정보를 나타내는 Txid를 획득하거나 획득하도록 지원할 수 있다(S623). 이때, 전자 바우처 파기 transaction의 퍼블릭 블록체인 데이터베이스(120)로의 등록은 도 2에서와 같은 방법에 의한 머클 트리에 의해 생성된 대표 해쉬값 또는 대표 해쉬값을 가공한 값이 등록되도록 할 수 있다.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 at least one neighbor hash value that matches a particular hash value (a particular neighbor hash value of at least one neighbor hash value is a private hash value that is a private hash value in one block in the block chain) (A hash value of delta_n, which is a change amount with respect to the value information of the electronic voucher registered in the block chain database) to generate a value obtained by processing the representative hash value or representative hash value (S621). In step S622, a value obtained by processing the generated representative hash value or the representative hash value is registered or registered in the public block chain database (S622). A value obtained by processing the representative hash value or the representative hash value registered in the public block chain database To obtain or obtain a Txid indicating location information on the public block chain database (S623). At this time, the registration of the electronic voucher destruction transaction into the public block chain database 120 can register a value obtained by processing the representative hash value or the representative hash value generated by the merge tree by the method as shown in FIG.

또한, 이상 설명된 본 발명에 따른 실시예들은 다양한 컴퓨터 구성요소를 통하여 수행될 수 있는 프로그램 명령어의 형태로 구현되어 컴퓨터 판독 가능한 기록 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능한 기록 매체는 프로그램 명령어, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 컴퓨터 판독 가능한 기록 매체에 기록되는 프로그램 명령어는 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 분야의 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능한 기록 매체의 예에는, 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체, CD-ROM, DVD와 같은 광기록 매체, 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 ROM, RAM, 플래시 메모리 등과 같은 프로그램 명령어를 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령어의 예에는, 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드도 포함된다. 상기 하드웨어 장치는 본 발명에 따른 처리를 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.In addition, the embodiments of the present invention described above can be implemented in the form of program instructions that can be executed through various computer components and recorded in a computer-readable 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 (22)

전자 바우처를 발행하는 방법에 있어서,
(a) 특정 발행자로부터의 상기 전자 바우처의 발행을 위한 (i) 특정 unique nonce 및 가치 정보를 적어도 포함하는 전자 바우처 데이터, (ii) 상기 특정 발행자의 public key 및 (iii) 상기 전자 바우처 데이터의 해쉬값 또는 이를 포함한 값을 상기 특정 발행자의 private key로 서명한 상기 특정 발행자의 서명값이 획득되면, 서버는, (i) 상기 전자 바우처 데이터, (ii) 상기 특정 발행자의 public key 및 (iii) 상기 특정 발행자의 서명값의 유효 여부를 확인하여 유효일 경우, (i) 상기 전자 바우처 데이터, (ii) 상기 특정 발행자의 public key 및 (iii) 상기 특정 발행자의 서명값을 포함하는 전자 바우처 발행 transaction을 생성하여 프라이빗 블록체인 데이터베이스에 등록하거나 상기 서버에 연동된 타 장치로 하여금 상기 프라이빗 블록체인 데이터베이스에 등록하도록 지원하며, 상기 프라이빗 블록체인 데이터베이스에 등록된 상기 전자 바우처 발행 transaction의 상기 프라이빗 블록체인 데이터베이스 상의 위치 정보를 나타내는 PrivTxid를 상기 특정 발행자에게 제공하거나 상기 타 장치로 하여금 상기 특정 발행자에게 제공하도록 지원하고, 상기 전자 바우처 데이터에 포함된 상기 가치 정보를 발란스 데이터베이스에 변화량인 delta로 업데이트하여 등록하거나 상기 타 장치로 하여금 상기 발란스 데이터베이스에 등록하도록 지원하는 단계; 및
(b) 소정의 조건이 만족되면, 상기 서버가, 특정 해쉬값 - 상기 특정 해쉬값은 (i) 상기 전자 바우처 데이터, (ii) 상기 특정 발행자의 public key 및 (iii) 상기 특정 발행자의 서명값에 대한 해쉬값임 - 및 상기 특정 해쉬값과 매칭되는 적어도 하나의 이웃 해쉬값 - 상기 적어도 하나의 이웃 해쉬값 중 특정 이웃 해쉬값은 블록체인의 하나의 블록에서의 모든 PrivTxid에 의해 상기 프라이빗 블록체인 데이터베이스에 등록된 상기 전자 바우처의 가치 정보에 대한 변화량인 delta_n의 해쉬값임 - 을 연산함으로써 생성되는 대표 해쉬값 또는 상기 대표 해쉬값을 가공한 값을 퍼블릭 블록체인 데이터베이스에 등록하거나 상기 타 장치로 하여금 상기 퍼블릭 블록체인 데이터베이스에 등록하도록 지원하며, 상기 퍼블릭 블록체인 데이터베이스에 등록된 상기 대표 해쉬값 또는 상기 대표 해쉬값을 가공한 값의 상기 퍼블릭 블록체인 데이터베이스 상의 위치 정보를 나타내는 Txid를 획득하거나 상기 타 장치로 하여금 상기 퍼블릭 블록체인 데이터베이스로부터 획득하도록 지원하는 단계;
를 포함하되,
상기 전자 바우처 데이터는,
상기 전자 바우처의 타입 정보 - 상기 전자 바우처의 타입 정보는 현재 수행하는 동작을 정의하기 위한 것으로 전자 바우처 발행을 표시하는 정보임 - , 상기 전자 바우처의 송신자인 상기 특정 발행자의 public key, 상기 전자 바우처의 수신자인 상기 바우처를 구매하는 특정 사용자의 public key, 상기 특정 발행자의 고유 ID 정보 및 상기 전자 바우처의 사용 기한 정보 중 적어도 하나 이상을 포함하는 것을 특징으로 하는 방법.
A method for issuing an electronic voucher,
(ii) a public key of the specific issuer; and (iii) a hash of the electronic voucher data. The electronic coupon data includes at least one of (i) a unique unique nonce and value information for issuance of the electronic voucher from a specific issuer, (I) the electronic voucher data, (ii) the public key of the specific issuer, and (iii) the public key of the specific issuer. (I) the electronic voucher data, (ii) the public key of the specific issuer, and (iii) the signature value of the specific issuer when the validity of the signature value of the specific issuer is validated Thereby registering the private block in the private block chain database or registering the other devices interlocked with the server in the private block chain database, To provide the PrivTxid indicating location information on the private block chain database of the electronic coupon issue transaction registered in the private block chain database to the specific issuer or to provide the other device to the specific issuer, Updating the value information included in the balance database to delta, which is a change amount, in the balance database, or registering the value information in the balance database; And
(ii) a public key of the particular issuer; and (iii) a signature value of the specific issuer, and (iii) And at least one neighborhood hash value that matches the specific hash value. The specific neighbor hash value of the at least one neighborhood hash value is determined by the PrivTxid in one block of the block chain, A value obtained by processing a representative hash value or the representative hash value generated by calculating a hash value of delta_n, which is a change amount with respect to the value information of the electronic voucher registered in the public key chain database, Wherein the representative hash value is registered in the public block chain database, Or acquiring a Txid indicating positional information on the public block chain database of values obtained by processing the representative hash value or supporting the other device to acquire from the public block chain database;
, ≪ / RTI &
The electronic voucher data includes:
The type information of the electronic voucher, the type information of the electronic voucher is information indicating an operation performed by the electronic voucher, the information indicating the issuance of the electronic voucher, the public key of the specific issuer as the sender of the electronic voucher, A public key of a specific user purchasing the voucher as a receiver, unique ID information of the specific issuer, and an expiration date of the electronic voucher.
제1항에 있어서,
상기 (b) 단계에서,
상기 소정의 조건은,
(i) 소정의 개수만큼 상기 전자 바우처 발행용 transaction 또는 상기 전자 바우처와 관련한 관련 transaction이 생성되는 조건, (ii) 소정 시간이 경과하는 조건, (iii) 상기 프라이빗 블록체인 데이터베이스에서 블록이 생성되는 조건, (iv) 서비스 특성에 대한 조건 중 적어도 하나를 포함하는 것을 특징으로 하는 방법.
The method according to claim 1,
In the step (b)
The predetermined condition is that,
(ii) a condition that a predetermined time elapses; (iii) a condition in which a block is generated in the private block chain database; and (iii) a condition in which a transaction is generated for a predetermined number of transactions for electronic coupon issuance or electronic voucher, , and (iv) conditions for service characteristics.
제2항에 있어서,
상기 서버는,
상기 프라이빗 블록체인 데이터베이스에서 블록이 생성되는 때에, 상기 생성되는 블록의 블록 헤더(block header)에 상기 발란스 데이터베이스에 등록된 상기 전자 바우처의 가치 정보에 대한 전체 또는 상기 전자 바우처의 가치 정보의 변화량인 delta_n 으로부터 연산된 해쉬값인 발란스 데이터베이스 헤더 해쉬값이 기록되도록 하는 것을 특징으로 하는 방법.
3. The method of claim 2,
The server comprises:
When a block is generated in the private block chain database, a block header of the generated block includes delta_n, which is the change amount of the value information of the electronic voucher registered in the balance database or the value information of the electronic voucher And a balance database header hash value, which is a hash value computed from the balance database header hash value, is recorded.
제3항에 있어서,
상기 (b) 단계는,
(i) random nonce, random nonce 서명값 및 public key로부터 연산된 해쉬값들만이 리프 노드들에 할당된 머클 트리로부터 대표 해쉬값인 거래자 정보 대표 해쉬값이 생성되고, (ii) 상기 전자 바우처의 발행, 사용, 환불, 정산 또는 파기에 대한 정보를 포함하는 상기 전자 바우처 데이터, public key 및 서명값으로부터 연산된 해쉬값들만이 리프 노드들에 할당된 머클 트리로부터 대표 해시값인 바우처 거래 정보 대표 해쉬값이 생성된 후, 상기 거래자 정보 대표 해쉬값 및 상기 바우처 거래 정보 대표 해쉬값이 상기 생성되는 블록의 블록 헤더에 더 기록된 상태에서, 상기 서버가, 상기 발란스 데이터베이스 헤더 해쉬값, 상기 거래자 정보 대표 해쉬값 및 상기 바우처 거래 정보 대표 해쉬값 또는 이들을 가공한 값에 대한 해쉬값을 퍼블릭 블록체인 데이터베이스에 등록하거나 상기 타 장치로 하여금 상기 퍼블릭 블록체인 데이터베이스에 등록하도록 지원하는 것을 특징으로 하는 방법.
The method of claim 3,
The step (b)
(i) only a hash value calculated from a random nonce, a random nonce signature value, and a public key is generated from a merge tree assigned to leaf nodes, and a representative hash value, which is a representative hash value, is generated; and (ii) Only the hash values calculated from the electronic voucher data, the public key, and the signature value including information on use, refund, settlement, or destruction are extracted from the merge tree assigned to the leaf nodes by the representative hash value voucher transaction information representative hash value The server information representative hash value and the voucher transaction information representative hash value are further recorded in the block header of the generated block, the server stores the balance database header hash value, the trader information representative hash value, Value and the hash value of the voucher transaction information representative hash value or the processed value thereof to the public block chain database Or causing the other device wherein the support so as to register with the chain block the public database.
제3항에 있어서,
상기 (b) 단계는,
(i) random nonce, random nonce 서명값 및 public key로부터 연산된 해쉬값, 및 (ii) 상기 전자 바우처의 발행, 사용, 환불, 정산 또는 파기에 대한 정보를 포함하는 상기 전자 바우처 데이터, public key 및 서명값으로부터 연산된 해쉬값들이 리프 노드들에 할당된 머클 트리로부터 프라이빗 대표 해쉬값이 생성된 후, 상기 프라이빗 대표 해쉬값이 상기 생성되는 블록의 블록 헤더에 더 기록된 상태에서, 상기 서버가, 상기 발란스 데이터베이스 헤더 해쉬값 및 상기 프라이빗 대표 해쉬값, 또는 이들을 가공한 값을 퍼블릭 블록체인 데이터베이스에 등록하거나 상기 타 장치로 하여금 상기 퍼블릭 블록체인 데이터베이스에 등록하도록 지원하는 것을 특징으로 하는 방법.
The method of claim 3,
The step (b)
(ii) the electronic voucher data, the public key, and the public key including the information on issuance, use, refund, settlement, or destruction of the electronic voucher; In the state where the private representative hash value is further recorded in the block header of the generated block after the private representative hash value is generated from the merge tree in which the hash values calculated from the signature value are allocated to the leaf nodes, And registering the balance database header hash value, the private representative hash value, or a value obtained by processing the balance database header hash value and the private hash value, in the public block chain database, or registering the other apparatuses in the public block chain database.
제1항에 있어서,
상기 (b) 단계에서,
상기 서버는, 상기 특정 해쉬값이 리프 노드에 할당된 머클 트리(merkle tree)를 생성하거나 상기 타 장치로 하여금 생성하도록 지원하고,
상기 소정의 조건이 만족되면, 상기 특정 해쉬값과 매칭되는 적어도 하나의 다른 리프 노드에 할당된 해쉬값을 연산하여 생성되는 상기 대표 해쉬값 또는 상기 해쉬값을 가공한 값을 상기 퍼블릭 블록체인 데이터베이스에 등록하거나 상기 타 장치로 하여금 상기 퍼블릭 블록체인 데이터베이스에 등록하도록 지원하는 것을 특징으로 하는 방법.
The method according to claim 1,
In the step (b)
Wherein the server is configured to support a particular hash value to generate or generate a merge tree assigned to a leaf node,
If the predetermined condition is satisfied, a value obtained by processing the representative hash value or the hash value generated by computing a hash value assigned to at least one other leaf node matching the specific hash value is stored in the public block chain database Or registering the other device in the public block chain database.
제6항에 있어서,
상기 머클 트리가 체인 형태로 연결된 적어도 하나의 머클 트리 중 첫번째 트리인 경우, 상기 머클 트리의 첫번째 리프 노드에는 텍스트, 숫자 또는 기호로 이루어진 소정의 메시지 데이터의 해쉬값 또는 이를 가공한 값이 할당되는 것을 특징으로 하는 방법.
The method according to claim 6,
If the merge tree is a first tree among at least one merge tree connected in a chain form, the first leaf node of the merge tree is assigned a hash value or a processed value of predetermined message data composed of text, numbers or symbols Lt; / RTI >
제6항에 있어서,
상기 소정의 조건이 만족되면,
(x1) 상기 서버는, (i) 상기 특정 해쉬값과 (ii) 상기 특정 해쉬값이 할당된 노드의 형제 노드에 할당된 해쉬값을 연산하거나 상기 타 장치로 하여금 연산하도록 지원하고, 상기 연산값에 대한 해쉬값을 상기 노드의 부모 노드에 할당하거나 상기 타 장치로 하여금 상기 부모 노드에 할당하도록 지원하며,
(x2) 상기 부모 노드가 상기 머클 트리의 루트 노드이면, 상기 부모 노드에 할당된 해쉬값을 상기 대표 해쉬값으로서 상기 퍼블릭 블록체인 데이터베이스에 등록하거나 상기 타 장치로 하여금 상기 퍼블릭 블록체인 데이터베이스에 등록하도록 지원하고,
(x3) 상기 부모 노드가 상기 머클 트리의 루트 노드가 아니면, 상기 부모 노드에 할당된 해쉬값을 상기 특정 해쉬값으로 하여 상기 (x1) 내지 (x2)을 반복하여 수행하는 것을 특징으로 하는 방법.
The method according to claim 6,
If the predetermined condition is satisfied,
(x1) The server supports (i) computing the hash value assigned to the sibling node of the node to which the specific hash value is assigned and (ii) computing the hash value, and To assign a hash value for the node to the parent node of the node or assign the other device to the parent node,
(x2) If the parent node is the root node of the merge tree, the hash value assigned to the parent node is registered as the representative hash value in the public block chain database or the other device is registered in the public block chain database Support,
(x3) If the parent node is not the root node of the merge tree, the step (x1) to (x2) are repeated by using the hash value assigned to the parent node as the specific hash value.
제8항에 있어서,
상기 (x1)에서
상기 소정의 조건이 만족되었음에도 상기 특정 해쉬값이 할당된 노드의 형제 노드에 해쉬값이 할당되어 있지 않은 경우, 상기 서버는, 상기 형제 노드에 소정의 해쉬값을 할당하거나 상기 타 장치로 하여금 할당하도록 지원하여 상기 (x1) 내지 (x3)를 수행하는 것을 특징으로 하는 방법.
9. The method of claim 8,
At (x1)
If the hash value is not allocated to the sibling node of the node to which the specific hash value is allocated even though the predetermined condition is satisfied, the server allocates a hash value to the sibling node or allocates the hash value to the sibling node To perform (x1) to (x3).
제1항에 있어서,
상기 서버가 상기 특정 해쉬값과 상기 적어도 하나의 이웃 해쉬값을 소정의 제1 데이터 구조로 저장하고, 이후 상기 제1 데이터 구조와 동일한 형태의 제2 데이터 구조를 저장하여 관리하는 경우, 상기 제1 데이터 구조와 상기 제2 데이터 구조는 체인 형태로 연결되는 것을 특징으로 하는 방법.
The method according to claim 1,
When the server stores the specific hash value and the 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, Wherein the data structure and the second data structure are connected in a chain form.
제10항에 있어서,
상기 제1 데이터 구조 및 상기 제2 데이터 구조가 머클 트리인 경우, 상기 제1 데이터 구조의 루트값 또는 상기 루트값의 해쉬값이 상기 제2 데이터 구조의 첫번째 리프 노드에 할당되는 것을 특징으로 하는 방법.
11. The method of claim 10,
Wherein a root value of the first data structure or a hash value of the root value is assigned to a first leaf node of the second data structure if the first data structure and the second data structure are merc trees. .
제1항에 있어서,
상기 (a) 단계에서,
상기 서버는,
(1) 상기 획득한 (i) 전자 바우처 데이터에 해쉬 함수를 적용하여 생성한 해쉬값과 (2) 상기 획득한 (iii) 특정 발행자의 서명값에 대해 상기 특정 발행자의 public key 를 사용하여 획득한 값을 비교 분석하여 상기 전자 바우처 데이터의 유효 여부를 확인하는 것을 특징으로 하는 방법.
The method according to claim 1,
In the step (a)
The server comprises:
(1) a hash value generated by applying the hash function to the obtained electronic voucher data, and (2) the signature value of the specific issuer acquired by using the public key of the specific issuer And verifies whether the electronic voucher data is valid or not.
제1항에 있어서,
상기 특정 발행자의 고유 ID 정보는, 상기 특정 발행자의 public key의 해쉬값 또는 이를 포함한 값인 것을 특징으로 하는 방법.
The method according to claim 1,
Wherein the unique ID information of the specific issuer is a hash value of the public key of the specific issuer or a value including the hash value.
제1항에 있어서,
상기 (a) 단계에서,
상기 서버는,
상기 특정 발행자에 의해 등록된 public key를 이용하여 상기 특정 발행자의 서명값에 대한 유효 여부를 확인하는 것을 특징으로 하는 방법.
The method according to claim 1,
In the step (a)
The server comprises:
And validating the signature value of the specific issuer using the public key registered by the specific issuer.
제1항에 있어서,
상기 (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를 획득하거나 상기 타 장치로 하여금 상기 퍼블릭 블록체인 데이터베이스로부터 획득하도록 지원하는 단계;
를 더 포함하는 것을 특징으로 하는 방법.
The method according to claim 1,
Before the step (a)
(a01) When the issuer registration request by the public key of the specific issuer is obtained, the server confirms validity of the specific issuer, and when the specific issuer is valid, transmits a random nonce to the specific issuer, To deliver to the specific issuer;
(a02) If a random nonce signature value obtained by signing the random nonce with the private key of the specific issuer is obtained, the server verifies whether the random nonce signature value is normally signed using the public key of the specific issuer, A random nonce and a public key of the specific issuer, or registers the issuer registration transaction in the private block chain database or registers the issuer registration transaction in the private block chain database, Providing PrivTxid indicating location information on the private block chain database of the issuer registration transaction registered in the private block chain database to the specific issuer or providing the other device to the specific issuer; And
(a03) If the predetermined condition is satisfied, the server determines whether the hash value is a specific hash value, the specific hash value is the random nonce signature value, the random nonce and the hash value of the public key of the specific issuer, A value obtained by processing a representative hash value or the representative hash value generated by calculating at least one neighboring hash value to be registered in the public block chain database or registering the other hash value in the public block chain database, 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 block chain database or supporting the other device to acquire from the public block chain database ;
≪ / RTI >
전자 바우처를 파기하는 방법에 있어서,
(a) 특정 발행자로부터 상기 전자 바우처의 파기를 위한 (i) 특정 unique nonce 및 파기 가치 정보를 적어도 포함하는 전자 바우처 데이터, (ii) 상기 특정 발행자의 public key 및 (iii) 상기 전자 바우처 데이터의 해쉬값 또는 이를 포함한 값을 상기 특정 발행자의 private key로 서명한 상기 특정 발행자의 서명값이 획득되면, 서버는, (i) 상기 전자 바우처 데이터, (ii) 상기 특정 발행자의 public key 및 (iii) 상기 특정 발행자의 서명값의 유효 여부를 확인하여 유효일 경우, (i) 상기 전자 바우처 데이터, (ii) 상기 특정 발행자의 public key 및 (iii) 상기 특정 발행자의 서명값을 포함하는 전자 바우처 파기 transaction을 프라이빗 블록체인 데이터베이스에 등록하거나 상기 서버에 연동된 타 장치로 하여금 상기 프라이빗 블록체인 데이터베이스에 등록하도록 지원하며, 상기 프라이빗 블록체인 데이터베이스에 등록된 상기 전자 바우처 파기 transaction의 상기 프라이빗 블록체인 데이터베이스 상의 위치 정보를 나타내는 PrivTxid를 상기 특정 발행자에게 제공하거나 상기 타 장치로 하여금 상기 특정 발행자에게 제공하도록 지원하고, 상기 전자 바우처 데이터의 상기 파기 가치 정보에 대응하여 발란스 데이터베이스에 등록된 상기 전자 바우처의 가치 정보를 변화량인 delta로 업데이트하여 등록하거나 상기 타 장치로 하여금 상기 발란스 데이터베이스에 등록하도록 지원하는 단계; 및
(b) 소정의 조건이 만족되면, 상기 서버가, 특정 해쉬값 - 상기 특정 해쉬값은 (i) 상기 전자 바우처 데이터, (ii) 상기 특정 발행자의 public key 및 (iii) 상기 특정 발행자의 서명값에 대한 해쉬값임 - 및 상기 특정 해쉬값과 매칭되는 적어도 하나의 이웃 해쉬값 - 상기 적어도 하나의 이웃 해쉬값 중 특정 이웃 해쉬값은 블록체인의 하나의 블록에서의 모든 PrivTxid에 의해 상기 프라이빗 블록체인 데이터베이스에 등록된 상기 전자 바우처의 가치 정보에 대한 변화량인 delta_n의 해쉬값임 - 을 연산함으로써 생성되는 대표 해쉬값 또는 상기 대표 해쉬값을 가공한 값을 퍼블릭 블록체인 데이터베이스에 등록하거나 상기 타 장치로 하여금 상기 퍼블릭 블록체인 데이터베이스에 등록하도록 지원하며, 상기 퍼블릭 블록체인 데이터베이스에 등록된 상기 대표 해쉬값 또는 상기 대표 해쉬값을 가공한 값의 상기 퍼블릭 블록체인 데이터베이스 상의 위치 정보를 나타내는 Txid를 획득하거나 상기 타 장치로 하여금 상기 퍼블릭 블록체인 데이터베이스로부터 획득하도록 지원하는 단계;
를 포함하되,
상기 전자 바우처 데이터는,
상기 전자 바우처의 타입 정보 - 상기 전자 바우처의 타입 정보는 현재 수행하는 동작을 정의하기 위한 것으로 전자 바우처 파기를 표시하는 정보임 - , 상기 전자 바우처의 송신자인 특정 사용자의 public key, 상기 전자 바우처의 수신자인 상기 특정 발행자의 public key 및 상기 특정 발행자의 고유 ID 중 적어도 어느 하나 이상을 포함하는 것을 특징으로 하는 방법.
A method for destroying an electronic voucher,
(ii) a public key of the particular issuer; and (iii) a hash of the electronic voucher data. The electronic coupon data includes at least one of (i) a specific unique nonce and destroyed value information for destruction of the electronic voucher from a specific issuer, (I) the electronic voucher data, (ii) the public key of the specific issuer, and (iii) the public key of the specific issuer. (I) the electronic voucher data, (ii) the public key of the specific issuer, and (iii) the signature value of the specific issuer, to the private Registering in a block-chain database or registering another device interlocked with the server in the private block-chain database, A PrivTxid indicating position information on the private block chain database of the electronic voucher destruction transaction registered in the bid block chain database is provided to the specific issuer or the other device is provided to the specific issuer, Updating the value information of the electronic voucher registered in the balance database corresponding to the destruction value information to delta which is a change amount and registering or registering the value of the electronic voucher in the balance database; And
(ii) a public key of the particular issuer; and (iii) a signature value of the specific issuer, and (iii) And at least one neighborhood hash value that matches the specific hash value. The specific neighbor hash value of the at least one neighborhood hash value is determined by the PrivTxid in one block of the block chain, A value obtained by processing a representative hash value or the representative hash value generated by calculating a hash value of delta_n, which is a change amount with respect to the value information of the electronic voucher registered in the public key chain database, Wherein the representative hash value is registered in the public block chain database, Or acquiring a Txid indicating positional information on the public block chain database of values obtained by processing the representative hash value or supporting the other device to acquire from the public block chain database;
, ≪ / RTI &
The electronic voucher data includes:
The type information of the electronic voucher, the type information of the electronic voucher is information for indicating an operation performed by the electronic voucher, the information indicating the electronic voucher destruction, the public key of the specific user who is the sender of the electronic voucher, A public key of the specific issuer and a unique ID of the specific issuer.
제16항에 있어서,
상기 (b) 단계에서,
상기 소정의 조건은,
(i) 소정의 개수만큼 상기 전자 바우처 파기용 transaction 또는 상기 전자 바우처와 관련한 관련 transaction이 생성되는 조건, (ii) 소정 시간이 경과하는 조건, (iii) 프라이빗 블록체인 데이터베이스에서 블록이 생성되는 조건, (iv) 서비스 특성에 대한 조건 중 적어도 하나를 포함하는 것을 특징으로 하는 방법.
17. The method of claim 16,
In the step (b)
The predetermined condition is that,
(ii) a condition in which a predetermined time elapses; (iii) a condition in which a block is generated in a private block chain database; and (iii) a condition in which a transaction is generated for a predetermined number of transactions for electronic voucher destruction or the electronic voucher, (iv) a condition for a service characteristic.
전자 바우처를 발행하는 서버에 있어서,
특정 발행자로부터의 상기 전자 바우처의 발행을 위한 (i) 특정 unique nonce 및 가치 정보를 적어도 포함하는 전자 바우처 데이터, (ii) 상기 특정 발행자의 public key 및 (iii) 상기 전자 바우처 데이터의 해쉬값 또는 이를 포함한 값을 상기 특정 발행자의 private key로 서명한 상기 특정 발행자의 서명값을 획득하는 통신부; 및
(a) 상기 획득된 (i) 상기 전자 바우처 데이터, (ii) 상기 특정 발행자의 public key 및 (iii) 상기 특정 발행자의 서명값의 유효 여부를 확인하여 유효일 경우, (i) 상기 전자 바우처 데이터, (ii) 상기 특정 발행자의 public key 및 (iii) 상기 특정 발행자의 서명값을 포함하는 전자 바우처 발행 transaction을 생성하여 프라이빗 블록체인 데이터베이스에 등록하거나 상기 서버에 연동된 타 장치로 하여금 상기 프라이빗 블록체인 데이터베이스에 등록하도록 지원하며, 상기 프라이빗 블록체인 데이터베이스에 등록된 상기 전자 바우처 발행 transaction의 상기 프라이빗 블록체인 데이터베이스 상의 위치 정보를 나타내는 PrivTxid를 상기 특정 발행자에게 제공하거나 상기 타 장치로 하여금 상기 특정 발행자에게 제공하도록 지원하고, 상기 전자 바우처 데이터에 포함된 상기 가치 정보를 발란스 데이터베이스에 변화량인 delta로 업데이트하여 등록하거나 상기 타 장치로 하여금 상기 발란스 데이터베이스에 등록하도록 지원하는 프로세스, 및 (b) 소정의 조건이 만족되면, 특정 해쉬값 - 상기 특정 해쉬값은 (i) 상기 전자 바우처 데이터, (ii) 상기 특정 발행자의 public key 및 (iii) 상기 특정 발행자의 서명값에 대한 해쉬값임 - 및 상기 특정 해쉬값과 매칭되는 적어도 하나의 이웃 해쉬값 - 상기 적어도 하나의 이웃 해쉬값 중 특정 이웃 해쉬값은 블록체인의 하나의 블록에서의 모든 PrivTxid에 의해 상기 프라이빗 블록체인 데이터베이스에 등록된 상기 전자 바우처의 가치 정보에 대한 변화량인 delta_n의 해쉬값임 - 을 연산함으로써 생성되는 대표 해쉬값 또는 상기 대표 해쉬값을 가공한 값을 퍼블릭 블록체인 데이터베이스에 등록하거나 상기 타 장치로 하여금 상기 퍼블릭 블록체인 데이터베이스에 등록하도록 지원하며, 상기 퍼블릭 블록체인 데이터베이스에 등록된 상기 대표 해쉬값 또는 상기 대표 해쉬값을 가공한 값의 상기 퍼블릭 블록체인 데이터베이스 상의 위치 정보를 나타내는 Txid를 획득하거나 상기 타 장치로 하여금 상기 퍼블릭 블록체인 데이터베이스로부터 획득하도록 지원하는 프로세스를 수행하는 프로세서;
를 포함하되,
상기 전자 바우처 데이터는,
상기 전자 바우처의 타입 정보 - 상기 전자 바우처의 타입 정보는 현재 수행하는 동작을 정의하기 위한 것으로 전자 바우처 발행을 표시하는 정보임 - , 상기 전자 바우처의 송신자인 상기 특정 발행자의 public key, 상기 전자 바우처의 수신자인 상기 바우처를 구매하는 특정 사용자의 public key, 상기 특정 발행자의 고유 ID 정보 및 상기 전자 바우처의 사용 기한 정보 중 적어도 하나 이상을 포함하는 것을 특징으로 하는 서버.
A server for issuing an electronic voucher,
(Ii) e-voucher data of at least the specific unique nonce and value information for issuance of the electronic voucher from a specific issuer; (ii) a public key of the specific issuer; and (iii) And acquiring a signature value of the specific issuer that has signed the private value of the issuer with the private key of the specific issuer; And
(i) checking 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, and (i) (ii) a public key of the specific issuer and (iii) a signature value of the specific issuer, and registers the electronic coupon issuing transaction in the private block chain database, or causes the other device coupled to the server to transmit the private key chain database To provide the PrivTxid indicating the location information on the private block chain database of the electronic voucher-issued transaction registered in the private block chain database to the specific issuer or to provide the other device to the specific issuer The electronic voucher data, Updating the value information to delta, which is a change amount in the balance database, or registering the other information in the balance database; and (b) if the predetermined condition is satisfied, the specific hash value, (i) the electronic voucher data, (ii) the public key of the particular issuer, (iii) a hash value for the signature value of the particular issuer, and at least one neighbor hash value matching the particular hash value, A hash value of delta_n which is a variation amount of value of the electronic voucher registered in the private block chain database by all PrivTxid in one block of the block chain in the block chain, A value obtained by processing the hash value or the representative hash value is registered in the public block chain database 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 or supporting the other apparatuses to register in the public block chain database, Or perform the process of supporting the other device to acquire from the public block chain database;
, ≪ / RTI &
The electronic voucher data includes:
The type information of the electronic voucher, the type information of the electronic voucher is information indicating an operation performed by the electronic voucher, the information indicating the issuance of the electronic voucher, the public key of the specific issuer as the sender of the electronic voucher, A public key of a specific user purchasing the voucher as a receiver, unique ID information of the specific issuer, and an expiration date of the electronic voucher.
제18항에 있어서,
상기 소정의 조건은,
(i) 소정의 개수만큼 상기 전자 바우처 발행용 transaction 또는 상기 전자 바우처와 관련한 관련 transaction이 생성되는 조건, (ii) 소정 시간이 경과하는 조건, (iii) 상기 프라이빗 블록체인 데이터베이스에서 블록이 생성되는 조건, (iv) 서비스 특성에 대한 조건 중 적어도 하나를 포함하는 것을 특징으로 하는 서버.
19. The method of claim 18,
The predetermined condition is that,
(ii) a condition that a predetermined time elapses; (iii) a condition in which a block is generated in the private block chain database; and (iii) a condition in which a transaction is generated for a predetermined number of transactions for electronic coupon issuance or electronic voucher, , and (iv) a condition for a service characteristic.
제18항에 있어서,
상기 프로세서는,
상기 특정 해쉬값이 리프 노드에 할당된 머클 트리(merkle tree)를 생성하거나 상기 타 장치로 하여금 생성하도록 지원하고,
상기 소정의 조건이 만족되면, 상기 특정 해쉬값과 매칭되는 적어도 하나의 다른 리프 노드에 할당된 해쉬값을 연산하여 생성되는 상기 대표 해쉬값 또는 상기 해쉬값을 가공한 값을 상기 퍼블릭 블록체인 데이터베이스에 등록하거나 상기 타 장치로 하여금 상기 퍼블릭 블록체인 데이터베이스에 등록하도록 지원하는 것을 특징으로 하는 서버.
19. The method of claim 18,
The processor comprising:
Wherein the particular hash value either generates a merkle tree assigned to the leaf node or supports the other device to generate,
If the predetermined condition is satisfied, a value obtained by processing the representative hash value or the hash value generated by computing a hash value assigned to at least one other leaf node matching the specific hash value is stored in the public block chain database Or to register the other device in the public block chain database.
제18항에 있어서,
상기 프로세서는,
상기 (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를 획득하거나 상기 타 장치로 하여금 상기 퍼블릭 블록체인 데이터베이스로부터 획득하도록 지원하는 프로세스를 더 수행하는 것을 특징으로 하는 서버.
19. The method of claim 18,
The processor comprising:
Prior to the (a) process,
(a01) If the issuer registration request by the public key of the specific issuer is obtained, validity of the specific issuer is confirmed, and if the specific issuer is valid, a random nonce is delivered to the specific issuer, (A02) a random nonce signature value obtained by signing the random nonce with a private key of the specific issuer is used to determine whether the random nonce signature value is normally signed, using the public key of the specific issuer And registers the issuer registration transaction including the random nonce signature value, the random nonce, and the public key of the specific issuer in the private block chain database when the verification is completed, or registers the issuer registration transaction in the private block chain database , And the private block (A3) providing a PrivTxid indicating the location information on the private block chain database of the issuer registration transaction registered in the database to the specific issuer or providing the other device to the specific issuer; and The particular hash value is calculated by computing the random nonce signature value, the random nonce and the hash value of the public key of the particular issuer, and at least one neighbor hash value matching the particular hash value And registers the generated representative hash value or the processed value of the representative hash value in the public block chain database or supports the other device to register in the public block chain database, Value or the representative And obtaining a Txid indicating positional information on the public block chain database of the value obtained by processing the hash value or supporting the other device to acquire from the public block chain database.
전자 바우처를 파기하는 서버에 있어서,
특정 발행자로부터 상기 전자 바우처의 파기를 위한 (i) 특정 unique nonce 및 파기 가치 정보를 적어도 포함하는 전자 바우처 데이터, (ii) 상기 특정 발행자의 public key 및 (iii) 상기 전자 바우처 데이터의 해쉬값 또는 이를 포함한 값을 상기 특정 발행자의 private key로 서명한 상기 특정 발행자의 서명값을 획득하는 통신부; 및
(a) (i) 상기 전자 바우처 데이터, (ii) 상기 특정 발행자의 public key 및 (iii) 상기 특정 발행자의 서명값의 유효 여부를 확인하여 유효일 경우, (i) 상기 전자 바우처 데이터, (ii) 상기 특정 발행자의 public key 및 (iii) 상기 특정 발행자의 서명값을 포함하는 전자 바우처 파기 transaction을 프라이빗 블록체인 데이터베이스에 등록하거나 상기 서버에 연동된 타 장치로 하여금 상기 프라이빗 블록체인 데이터베이스에 등록하도록 지원하며, 상기 프라이빗 블록체인 데이터베이스에 등록된 상기 전자 바우처 파기 transaction의 상기 프라이빗 블록체인 데이터베이스 상의 위치 정보를 나타내는 PrivTxid를 상기 특정 발행자에게 제공하거나 상기 타 장치로 하여금 상기 특정 발행자에게 제공하도록 지원하고, 상기 전자 바우처 데이터의 상기 파기 가치 정보에 대응하여 발란스 데이터베이스에 등록된 상기 전자 바우처의 가치 정보를 변화량인 delta로 업데이트하여 등록하거나 상기 타 장치로 하여금 상기 발란스 데이터베이스에 등록하도록 지원하는 프로세스, 및 (b) 소정의 조건이 만족되면, 특정 해쉬값 - 상기 특정 해쉬값은 (i) 상기 전자 바우처 데이터, (ii) 상기 특정 발행자의 public key 및 (iii) 상기 특정 발행자의 서명값에 대한 해쉬값임 - 및 상기 특정 해쉬값과 매칭되는 적어도 하나의 이웃 해쉬값 - 상기 적어도 하나의 이웃 해쉬값 중 특정 이웃 해쉬값은 블록체인의 하나의 블록에서의 모든 PrivTxid에 의해 상기 프라이빗 블록체인 데이터베이스에 등록된 상기 전자 바우처의 가치 정보에 대한 변화량인 delta_n의 해쉬값임 - 을 연산함으로써 생성되는 대표 해쉬값 또는 상기 대표 해쉬값을 가공한 값을 퍼블릭 블록체인 데이터베이스에 등록하거나 상기 타 장치로 하여금 상기 퍼블릭 블록체인 데이터베이스에 등록하도록 지원하며, 상기 퍼블릭 블록체인 데이터베이스에 등록된 상기 대표 해쉬값 또는 상기 대표 해쉬값을 가공한 값의 상기 퍼블릭 블록체인 데이터베이스 상의 위치 정보를 나타내는 Txid를 획득하거나 상기 타 장치로 하여금 상기 퍼블릭 블록체인 데이터베이스로부터 획득하도록 지원하는 프로세스를 수행하는 프로세서;
를 포함하되,
상기 전자 바우처 데이터는,
상기 전자 바우처의 타입 정보 - 상기 전자 바우처의 타입 정보는 현재 수행하는 동작을 정의하기 위한 것으로 전자 바우처 파기를 표시하는 정보임 - , 상기 바우처의 송신자인 특정 사용자의 public key, 상기 바우처의 수신자인 상기 특정 발행자의 public key 및 상기 특정 발행자의 고유 ID 중 적어도 어느 하나 이상을 포함하는 것을 특징으로 하는 서버.
A server for destroying an electronic voucher,
(Ii) e-voucher data including at least a specific unique nonce and destruction value information for destruction of the electronic voucher from a specific issuer; (ii) a public key of the specific issuer; and (iii) And acquiring a signature value of the specific issuer that has signed the private value of the issuer with the private key of the specific issuer; And
(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, A public key of the specific issuer, and (iii) a signature value of the specific issuer, in a private block chain database, or to allow other devices connected to the server to register in the private block chain database Providing PrivTxid indicating location information on the private block chain database of the electronic voucher destruction transaction registered in the private block chain database to the specific issuer or providing the other device to the specific issuer, Corresponding to the destroy value information of the data A process of updating the value information of the electronic voucher registered in the lane database with delta which is a change amount or registering it in the balance database or supporting other devices to register in the balance database, and (b) if a predetermined condition is satisfied, Wherein the specific hash value is at least one of: (i) the electronic voucher data, (ii) a public key of the particular issuer, and (iii) a hash value for the signature value of the particular issuer, Value is a hash value of delta_n, which is a change amount with respect to the value information of the electronic voucher registered in the private block chain database by all PrivTxid in one block of the block chain, A value obtained by processing the representative hash value or the representative hash value, Or a location on the public block chain database of a value obtained by processing the representative hash value or the representative hash value registered in the public block chain database, A processor for obtaining a Txid indicating information or for supporting the other device to acquire from the public block chain database;
, ≪ / RTI &
The electronic voucher data includes:
The type information of the electronic voucher, the type information of the electronic voucher is information for indicating an operation performed by the electronic voucher, the information indicating the electronic voucher destruction, the public key of the specific user who is the sender of the voucher, A public key of a specific issuer, and a unique ID of the specific issuer.
KR1020170054695A 2017-04-27 2017-04-27 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 KR101841567B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020170054695A KR101841567B1 (en) 2017-04-27 2017-04-27 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

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020170054695A KR101841567B1 (en) 2017-04-27 2017-04-27 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

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
KR1020160131086A Division KR101841566B1 (en) 2016-10-11 2016-10-11 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

Publications (1)

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

Family

ID=62199306

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170054695A KR101841567B1 (en) 2017-04-27 2017-04-27 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

Country Status (1)

Country Link
KR (1) KR101841567B1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101954739B1 (en) * 2018-06-15 2019-03-07 (주)블록체인연구소 Method for recognizing and saving biometric marker based block chain

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
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
KR101661933B1 (en) 2015-12-16 2016-10-05 주식회사 코인플러그 Ccertificate 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
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
KR101661933B1 (en) 2015-12-16 2016-10-05 주식회사 코인플러그 Ccertificate authentication system and method based on block chain

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101954739B1 (en) * 2018-06-15 2019-03-07 (주)블록체인연구소 Method for recognizing and saving biometric marker based block chain

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
KR101837166B1 (en) Method for issuing and paying money 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
US11301933B2 (en) Method for providing united point service using updated status of balance database with blockchain and server using the same
US20220215132A1 (en) Methods and systems for using digital signatures to create trusted digital asset transfers
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
KR101835521B1 (en) Method for providing united point service using updated status of balance database by respective blocks in blockchain 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
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
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
US20200320490A1 (en) Method and system for conducting a transaction using private blockchain
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
KR20190043117A (en) Method for payment based on blockchain and payment 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
KR20190084923A (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
EP4348550A1 (en) A system and method for trading cryptocurrencies, tokenized assets and/or fiat currencies on a permission-less unified and interoperable blockchain distributed ledger system with anchor-of-trust organizations
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
JP7048039B1 (en) Payment systems, payment devices, payment methods and payment programs
WO2022118565A1 (en) Control method, control device, and program

Legal Events

Date Code Title Description
GRNT Written decision to grant