KR102331971B1 - Method and System for Providing Voucher based Blockchain - Google Patents

Method and System for Providing Voucher based Blockchain Download PDF

Info

Publication number
KR102331971B1
KR102331971B1 KR1020200029568A KR20200029568A KR102331971B1 KR 102331971 B1 KR102331971 B1 KR 102331971B1 KR 1020200029568 A KR1020200029568 A KR 1020200029568A KR 20200029568 A KR20200029568 A KR 20200029568A KR 102331971 B1 KR102331971 B1 KR 102331971B1
Authority
KR
South Korea
Prior art keywords
voucher
recipient
node
virtual
contract
Prior art date
Application number
KR1020200029568A
Other languages
Korean (ko)
Other versions
KR20210114585A (en
Inventor
이건명
이용주
Original Assignee
충북대학교 산학협력단
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 충북대학교 산학협력단 filed Critical 충북대학교 산학협력단
Priority to KR1020200029568A priority Critical patent/KR102331971B1/en
Publication of KR20210114585A publication Critical patent/KR20210114585A/en
Application granted granted Critical
Publication of KR102331971B1 publication Critical patent/KR102331971B1/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/04Payment circuits
    • G06Q20/045Payment circuits using payment protocols involving tickets
    • G06Q20/0457Payment circuits using payment protocols involving tickets the tickets being sent electronically
    • 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/04Payment circuits
    • G06Q20/06Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme
    • G06Q20/065Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme using e-cash
    • 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/381Currency conversion
    • 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/3827Use of message hashing
    • 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/40Authorisation, e.g. identification of payer or payee, verification of customer or shop credentials; Review and approval of payers, e.g. check credit lines or negative lists
    • G06Q20/401Transaction verification
    • 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/40Authorisation, e.g. identification of payer or payee, verification of customer or shop credentials; Review and approval of payers, e.g. check credit lines or negative lists
    • G06Q20/401Transaction verification
    • G06Q20/4014Identity check for transactions
    • 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/42Confirmation, e.g. check or permission by the legal debtor of payment
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/56Financial cryptography, e.g. electronic payment or e-cash

Landscapes

  • Business, Economics & Management (AREA)
  • Accounting & Taxation (AREA)
  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Strategic Management (AREA)
  • General Business, Economics & Management (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Finance (AREA)
  • Computer Security & Cryptography (AREA)
  • Economics (AREA)
  • Development Economics (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)

Abstract

본 실시예는 블록체인 특히 스마트컨트렉트 기반의 이더리움 플랫폼에서 송신자 계좌와 수신자 계좌의 연결 정보를 노출하지 않고 바우처를 익명으로 전송할 수 있도록 하는 바우처 제공방법 및 그를 위한 시스템에 관한 것이다.This embodiment relates to a method for providing a voucher and a system therefor that allow an anonymous transmission of a voucher without exposing the connection information between the sender account and the recipient account in the Ethereum platform based on a blockchain, particularly a smart contract.

Description

블록체인 기반의 바우처 제공방법 및 시스템{Method and System for Providing Voucher based Blockchain}Method and System for Providing Voucher based Blockchain

본 발명은 블록체인 기반의 바우처 제공방법 및 시스템에 관한 것이다. 더욱 상세하게는, 블록체인 기반의 바우처 전송 어플리케이션 등에서 바우처를 전송하는 송신자와 수신하는 바우처 수신자 사이에 연결 고리를 노출하지 않는 방법과 그 시스템 구성 방법에 관한 것이다.The present invention relates to a method and system for providing a voucher based on a blockchain. More specifically, it relates to a method of not exposing a link between a sender who transmits a voucher and a recipient of a voucher to receive it in a blockchain-based voucher transmission application and a method for configuring the system.

이 부분에 기술된 내용은 단순히 본 실시예에 대한 배경 정보를 제공할 뿐 종래기술을 구성하는 것은 아니다.The content described in this section merely provides background information for the present embodiment and does not constitute the prior art.

블록체인 기술은 한번 저장이 되면 모든 노드에 복사가 되고 무결성이 제공되는 시스템적인 특징을 가진 분산원장기술로써, 개인의 민감한 정보(결제정보, 서비스 이용정보, 송금내역 등)가 한번 등록이 되면 사용자의 프라이버시에 매우 큰 영향을 미치고 범죄에 악용될 수 있다는 문제가 존재한다.Blockchain technology is a distributed ledger technology with a systemic feature that provides integrity and is copied to all nodes once stored. There is a problem that it has a very large impact on the privacy of people and can be used for criminal purposes.

종래의 기술은, 암호화폐를 전송하기 위해서는 송신자가 전송하고자 하는 트랜잭션을 자신의 비밀키로 디지털서명을 한 후 전송하게 된다. 이러한, 트랜잭션에는 어떤 사용자가 암호화폐를 수신할 것인지 수신자정보가 들어있으며, 이 정보가 들어있지 않다면 누구에게 암호화폐를 송금하는지 모르기 때문에 반드시 수신자의 정보가 들어 있어야 하고 송신자의 비밀키로 디지털 서명을 해야 정상적인 거래가 이루어지게 된다. 따라서 모든 트랜잭션은 누가 보냈는지 추적이 가능한 특징이 있다.In the prior art, in order to transmit cryptocurrency, the sender digitally signs the transaction to be transmitted with his/her private key and then transmits it. Such a transaction contains the recipient information about which user will receive the cryptocurrency, and if this information is not included, the recipient's information must be included and digitally signed with the sender's private key, because it is unknown to whom the cryptocurrency is sent. Normal transactions take place. Therefore, every transaction has the characteristic of being able to trace who sent it.

이러한 특징 때문에 바우처 시스템을 블록체인 스마트컨트렉트 상에서 개발하게 된다면, 어떤 송신자 계좌가 어떤 수신자 계좌로 얼마의 바우처를 송금했는지 노출하게 된다. 즉, 수신자를 지정하지 않고 바우처를 송금한다면 바우처 스마트 컨트렉트는 수신자를 검증할 수 없게 되고 결국 송금하는 돈의 주인을 찾지 못하게 된다는 한계가 존재한다.Due to these characteristics, if a voucher system is developed on a blockchain smart contract, which sender account and how much voucher is transferred to which receiver account is exposed. In other words, if the voucher is sent without specifying the recipient, the voucher smart contract cannot verify the recipient, and there is a limit in that the owner of the money to be remitted cannot be found.

따라서, 블록체인 특히 스마트컨트렉트 기반의 이더리움 플랫폼에서 송신자 계좌와 수신자 계좌의 연결 정보를 노출하지 않고 바우처를 익명으로 전송하는 기술을 필요로 한다.Therefore, in the Ethereum platform based on blockchain, especially smart contract, a technology is required to anonymously transmit the voucher without exposing the connection information between the sender's account and the receiver's account.

본 발명은 블록체인 특히 스마트컨트렉트 기반의 이더리움 플랫폼에서 송신자 계좌와 수신자 계좌의 연결 정보를 노출하지 않고 바우처를 익명으로 전송할 수 있도록 하는 바우처 제공방법 및 그를 위한 시스템을 제공하고자 하는 데 그 목적이 있다.The purpose of the present invention is to provide a voucher providing method and a system for anonymously transmitting the voucher without exposing the connection information between the sender account and the recipient account on the Ethereum platform based on a blockchain, particularly a smart contract, and a system for the same. There is this.

본 실시예는, 바우처 수신자의 가상화폐 계정정보를 기반으로 하여 기 생성된 바우처 수신자 아이디(rid: recipient id)를 활용하여 바우처 송신을 위한 바우처 아이디(vid: voucher id)를 생성하고, 상기 바우처 아이디 및 바우처 금액을 블록체인 상에 등록하여 스마트 계약에 따른 바우처가 생성되도록 하는 바우처 송신자 노드; 상기 바우처 수신자 아이디를 생성하여 상기 블록체인 상에 등록하며, 상기 바우처 수신자 아이디를 기반으로 한 수신자 인증결과에 따라 상기 바우처에 상응하는 상기 바우처 금액을 제공받는 바우처 수신자 노드; 및 상기 블록체인 및 상기 스마트 계약에 기반하여 상기 바우처를 발행 및 관리하는 바우처 컨트렉트 노드를 포함하는 것을 특징으로 하는 바우처 제공 시스템을 제공한다.In this embodiment, based on the virtual currency account information of the voucher recipient, a voucher ID (vid: voucher id) for sending a voucher is generated using a previously created voucher recipient ID (rid: recipient id), and the voucher ID and a voucher sender node that registers the voucher amount on the blockchain to generate a voucher according to a smart contract; a voucher recipient node that generates the voucher recipient ID and registers it on the blockchain, and receives the voucher amount corresponding to the voucher according to a recipient authentication result based on the voucher recipient ID; and a voucher contract node that issues and manages the voucher based on the block chain and the smart contract.

또한, 본 실시예의 다른 측면에 의하면, 바우처 제공 시스템의 바우처 제공방법에 있어서, 바우처 수신자 노드가 바우처 수신자의 가상화폐 계정정보를 기반으로 하여 바우처 수신자 아이디를 생성하고, 상기 바우처 수신자 아이디를 블록체인 상에 등록하는 과정; 바우처 송신자 노드가 상기 바우처 수신자 아이디를 기반으로 바우처 아이디를 생성하고, 상기 바우처 아이디 및 바우처 금액을 상기 블록체인 상에 등록하여 스마트 계약에 따른 바우처가 생성되도록 하는 과정; 및 상기 바우처 수신자 노드가 상기 바우처를 수신하기 위해 바우처 컨트렉트 노드로부터 상기 바우처 수신자 아이디에 기반하는 수신자 인증을 받고, 인증결과에 따라 상기 바우처에 상응하는 상기 바우처 금액을 제공받는 과정을 포함하는 것을 특징으로 하는 바우처 제공방법을 제공한다.Further, according to another aspect of this embodiment, in the voucher providing method of the voucher providing system, the voucher recipient node generates a voucher recipient ID based on the virtual currency account information of the voucher recipient, and sets the voucher recipient ID on the blockchain the process of enrolling in; a process in which the voucher sender node generates a voucher ID based on the voucher recipient ID, and registers the voucher ID and voucher amount on the blockchain to generate a voucher according to a smart contract; and receiving, by the voucher recipient node, a recipient authentication based on the voucher recipient ID from a voucher contract node to receive the voucher, and receiving the voucher amount corresponding to the voucher according to the authentication result It provides a method of providing a voucher that is characterized.

본 실시예에 의하면, 바우처의 송신자와 수신자의 이더리움 계정정보를 트랜잭션에 포함하지 않기 때문에 송수신자의 민감한 정보를 외부에 노출하지 않고 프라이버시를 제공할 수 있는 효과가 있다.According to this embodiment, since the Ethereum account information of the sender and receiver of the voucher is not included in the transaction, there is an effect that privacy can be provided without exposing the sender's sensitive information to the outside.

또한, 본 실시예에 의하면, 바우처 수신자임을 익명으로 인증 받음과 동시에 바우처 금액을 바로 송금 받지 않고 서비스 토큰으로 발급받아 사용하게 되며, 최종 바우처 금액은 서비스 제공자에게 입금됨으로써 송금내역뿐만 아니라 서비스 사용내역에 대한 프라이버시까지 제공가능하게 되는 효과가 있다.In addition, according to this embodiment, as the recipient of the voucher is anonymously authenticated, the voucher amount is issued and used as a service token without being remitted immediately, and the final voucher amount is deposited to the service provider so that the remittance history as well as the service usage history are displayed. It has the effect of being able to provide privacy for

또한, 본 실시예 따른 블록체인에서 검증 가능한 새로운 아이디의 조합으로 개인정보를 보호하는 방법에 의하는 경우 제3자를 포함하지 않고, 실행 가능한 스마트 컨트랙트 상에서 진행되는 것이므로, 중간자 공격 등에 노출되지 않고, 어느 한쪽의 변심으로 위험에 처할 가능성도 없는 효과가 있다.In addition, in the case of the method of protecting personal information with a combination of a new verifiable ID in the block chain according to this embodiment, since it does not include a third party and proceeds on an executable smart contract, it is not exposed to man-in-the-middle attacks, etc. There is no possibility of risking a change of heart on one side.

또한, 본 실시예에 의하면 바우처 사용자 검증과정에서 아이디 생성에 중요한 요소는 검증 요청자의 실제 이더리움 주소임으로써 요청자가 제3의 인물로 가장하여 바우처 사용자인 척 거짓 요청할 수 있는 가능성이 없으므로 보안위협에 대해서도 탁월한 효과가 있다.In addition, according to this embodiment, an important factor for ID generation in the voucher user verification process is the actual Ethereum address of the verification requester, so there is no possibility that the requestor can pretend to be a voucher user and make a false request by pretending to be a third person. It also has an excellent effect.

도 1은 본 실시예에 따른 블록체인 기반의 바우처 제공 시스템을 설명하기 위한 구조도이다.
도 2는 본 실시예에 따른 익명 바우처 제공을 위한 아이덴티티 체인을 설명하기 위한 개념도이다.
도 3은 본 실시예에 따른 바우처 상태천이를 설명하기 위한 다이어그램을 도시한 도면이다.
도 4는 본 실시예에 따른 바우처 아이디 생성을 위한 단계를 설명하기 위한 개념도이다.
도 5는 본 실시예에 따른 바우처 아이디 검증을 위한 단계를 설명하기 위한 개념도이다.
도 6은 본 실시예에 따른 바우처 제공방법을 설명하기 위한 순서도이다.
1 is a structural diagram for explaining a system for providing a voucher based on a block chain according to this embodiment.
2 is a conceptual diagram for explaining an identity chain for providing an anonymous voucher according to the present embodiment.
3 is a diagram illustrating a voucher state transition according to the present embodiment.
4 is a conceptual diagram for explaining the steps for generating a voucher ID according to the present embodiment.
5 is a conceptual diagram for explaining the steps for verifying a voucher ID according to the present embodiment.
6 is a flowchart illustrating a method for providing a voucher according to the present embodiment.

이하, 본 발명의 실시예들을 첨부된 도면을 참조하여 상세하게 설명한다.Hereinafter, embodiments of the present invention will be described in detail with reference to the accompanying drawings.

블록 체인(Blockchain)은 트랜잭션들로 구성된 블록들로 이루어진 컴퓨터 기반의 분산형 분산 시스템으로 구현되는 전자 원장(Ledgers)이다. 각 트랜잭션은 적어도 하나의 입력과 적어도 하나의 출력을 포함한다. 각 블록은 이전 블록의 해시를 포함하여 처음부터 블록 체인에 기록된 모든 트랜잭션에 대하여 영구적이며 변경 불가능한 기록을 생성하도록 해당 블록들이 함께 연결된다.Blockchain is an electronic ledger implemented as a computer-based distributed distributed system made up of blocks composed of transactions. Each transaction includes at least one input and at least one output. Each block is linked together to create a permanent and immutable record of every transaction written to the blockchain from the beginning, including the hash of the previous block.

스마트 계약은 계약 또는 합의 조건의 실행을 자동화하도록 설계된 컴퓨터 프로그램이다. 자연어로 기재된 전통적인 계약과는 달리, 스마트 계약은 결과를 산출하기 위해 입력을 처리할 수 있는 규칙을 포함하는 기계가 실행할 수 있는 프로그램으로, 그 결과들에 따라 수행되어야 하는 액션들이 유발될 수 있다.A smart contract is a computer program designed to automate the execution of the terms of a contract or agreement. Unlike traditional contracts written in natural language, smart contracts are machine-executable programs that contain rules that can process inputs to produce results, from which actions can be triggered to be performed.

본 발명은 이러한, 블록체인 및 스마트 계약을 활용한 바우처 제공방법에 관한 것이다. 더욱 상세하게는 블록체인 기반의 바우처 전송 어플리케이션 등에서 바우처를 전송하는 송신자와 수신하는 바우처 수신자 사이에 연결 고리가 노출되지 않도록 함으로써 바우처를 익명으로 전송할 수 있도록 하는 익명 바우처 제공 서비스 구조를 제안한다.The present invention relates to a method of providing a voucher using such a block chain and smart contract. More specifically, we propose an anonymous voucher providing service structure that enables anonymous transmission of vouchers by preventing the link between the sender sending the voucher and the recipient of the receiving voucher from being exposed in a blockchain-based voucher sending application, etc.

도 1은 본 실시예에 따른 블록체인 기반의 바우처 제공 시스템을 설명하기 위한 구조도이며, 도 2는 본 실시예에 따른 익명 바우처 제공을 위한 아이덴티티 체인을 설명하기 위한 개념도이다.1 is a structural diagram for explaining a system for providing a voucher based on a blockchain according to this embodiment, and FIG. 2 is a conceptual diagram for explaining an identity chain for providing an anonymous voucher according to this embodiment.

이하, 도 1 및 도 2를 함께 참조하여, 본 실시예에 따른 블록체인 기반의 바우처 제공 시스템의 동작에 대하여 설명하도록 한다.Hereinafter, with reference to FIGS. 1 and 2 together, the operation of the blockchain-based voucher providing system according to the present embodiment will be described.

한편, 본 발명에서 블록체인은 스마트 컨트렉트 기술을 지원하는 이더리움을 기반으로 하여 구현될 수 있다.Meanwhile, in the present invention, the blockchain can be implemented based on Ethereum supporting smart contract technology.

본 실시예에 따른 바우처 제공 시스템(100)은 블록체인 네트워크를 구성하는 바우처 송신자 노드(110), 바우처 수신자 노드(120), 바우처 컨트렉트 노드(130) 및 서비스 제공자 노드(140)를 포함한다. 이때, 본 실시예에 따른 바우처 제공 시스템(100)에 포함되는 구성요소는 반드시 이에 한정되는 것은 아니다. 예컨대, 바우처 제공 시스템(100)에 있어서, 바우처 제공을 위해 블록체인 네트워크를 구성하는 노드의 종류는 서비스의 종류에 따라 도시한 것보다 많거나 적은 구성요소 또는 상이한 구성요소의 구성(Configuration)을 가질 수 있음을 인식하여야 한다.The voucher providing system 100 according to this embodiment includes a voucher sender node 110, a voucher recipient node 120, a voucher contract node 130, and a service provider node 140 constituting a blockchain network. . In this case, the components included in the voucher providing system 100 according to the present embodiment are not necessarily limited thereto. For example, in the voucher providing system 100, the type of node constituting the blockchain network for providing the voucher may have more or fewer components or different components than those shown depending on the type of service. It should be recognized that

한편, 본 실시예에 있어서, 바우처 제공 시스템(100)의 블록체인 네트워크를 구성하는 각 노드들은 컴퓨팅 장치에서 프로그램에 의해 구현될 수 있다. 예컨대, 각 노드는 컴퓨팅 장치에서 탈중앙화 앱의 일종인 DAPP(Decentralized Application)에 의해 구현될 수 있다.Meanwhile, in this embodiment, each node constituting the blockchain network of the voucher providing system 100 may be implemented by a program in the computing device. For example, each node may be implemented by a DAPP (Decentralized Application), which is a kind of decentralized app in the computing device.

이러한, DAPP에 의하는 경우 기본적으로 참여자로 하여금 블록 체인에 있는 장부를 볼 수 있고, 필요한 데이터를 입력시키고 토큰 등을 송수신 가능토록 하는 기능을 제공한다.In the case of such a DAPP, it basically provides a function that allows participants to see the ledger in the block chain, input necessary data, and transmit/receive tokens.

바우처 송신자 노드(110)는 원하는 금액의 암호화폐를 스마트 컨트렉트에 지불하고 그 금액에 해당하는 바우처를 생성하여 바우처 수신자에게 보내는 바우처 송신자용 노드를 의미한다. 이러한, 바우처 송신자 노드(110)는 이더리움 스마트 컨트랙트의 사용자 계정을 소유하고 있으며 EOA_vs(Externally Owned Account_voucher sender)로 정의될 수 있다.The voucher sender node 110 means a node for a voucher sender that pays a desired amount of cryptocurrency to the smart contract, generates a voucher corresponding to the amount, and sends it to the voucher recipient. Such, the voucher sender node 110 owns the user account of the Ethereum smart contract and may be defined as EOA_vs (Externally Owned Account_voucher sender).

바우처 송신자 노드(110)는 스마트 컨트렉트 기술을 제공하는 블록체인인 이더리움 플랫폼상에서 바우처 컨트렉트를 통해 바우처를 생성하며, 특정 수신자만 그 바우처를 수신할 수 있도록 지정한다.The voucher sender node 110 creates a voucher through a voucher contract on the Ethereum platform, which is a blockchain that provides smart contract technology, and specifies that only specific recipients can receive the voucher.

한편, 본 실시예에 있어서, 바우처 송신자 노드(110)는 바우처를 생성함에 있어서, 바우처 수신자의 이더리움 계정을 지정하지 않고, 익명의 바우처 수신자 아이디를 지정 함으로써, 해당 바우처에 대한 송수신자 연결정보가 노출되지 않도록 동작한다.On the other hand, in this embodiment, when the voucher sender node 110 creates a voucher, by designating an anonymous voucher recipient ID without designating the voucher recipient's Ethereum account, the sender/receiver connection information for the voucher is Operate so as not to be exposed.

이를 위해, 바우처 송신자 노드(110)는 이더리움 계정이 드러나지 않지만, 바우처 수신자를 특정할 수 있도록 하는 새로운 아이덴티티 체인을 활용한다.To this end, the voucher sender node 110 utilizes a new identity chain that allows the Ethereum account to be invisible, but to specify the voucher recipient.

즉, 바우처 송신자 노드(110)는 바우처 수신자의 가상화폐 계정정보를 기반으로 하여 기 생성된 바우처 수신자 아이디(rid: recipient id)를 활용하여 바우처 송신을 위한 바우처 아이디(vid: voucher id)를 생성하고, 이를 기반으로 하여 바우처가 생성될 수 있도록 동작한다.That is, the voucher sender node 110 creates a voucher ID (vid: voucher id) for sending the voucher using the previously created voucher recipient ID (rid: recipient id) based on the virtual currency account information of the voucher recipient, , operates so that a voucher can be created based on this.

이때 사용되는 익명의 바우처 수신자 아이디는 실제 바우처 수신자의 이더리움 계정 정보 등을 기반으로 생성되어 본인 외에 다른 사람들은 만들 수 없으며, 생성된 바우처 수신자 아이디로부터 거꾸로 바우처 수신자의 이더리움 계정을 추적할 수도 없도록 하는 특징이 있다. 동시에, 해당 바우처를 사용 요청했을 때 오직 바우처 수신자만이 진정한 사용자임을 인증 받을 수 있도록 하는 정보를 담고 있는 특징이 있다.The anonymous voucher recipient ID used at this time is generated based on the actual voucher recipient's Ethereum account information, so that no one other than you can create it, and you cannot trace the voucher recipient's Ethereum account backwards from the created voucher recipient ID. has a characteristic that At the same time, there is a feature that contains information that allows only the recipient of the voucher to be authenticated as a true user when the voucher is requested to be used.

다시 말해, 본 실시예에 따른 바우처 송신자 노드(110)는 바우처 수신자에게 바우처를 선물하되, 어떤 수신자에게 얼마의 금액을 선물하였는지 그 근거가 블록체인에 남아 있지 않도록 바우처 수신자 정보를 익명으로 처리 가능한 구조를 갖는다.In other words, the voucher sender node 110 according to this embodiment presents the voucher to the voucher recipient, but the voucher recipient information can be processed anonymously so that the basis of how much amount was presented to which recipient does not remain in the block chain. has

도 2를 참조하여 설명하면, 제안하는 아이덴티티 체인을 구성하는 각 아이디는 여러 아이디와 키 값의 종합적인 해시 값으로 생성된다. 이때, 해시함수는 입력값에 상관없이 일정 길이의 출력을 생성하고, 입력 값이 한 비트만 달라도 전혀 다른 아이디가 생성되므로, 모든 입력 요소가 정확해야 하며, 생성된 출력값으로는 거꾸로 어떤 입력을 사용했는지 추출하지 못하는 단 방향 함수의 특징을 가진다. 따라서 가상의 아이디를 공개하여도 어떤 이더리움 아이디로부터 생성되었는지 추적할 수 없어 익명성을 제공할 수 있다.Referring to FIG. 2 , each ID constituting the proposed identity chain is generated as a comprehensive hash value of several IDs and key values. At this time, the hash function generates an output of a certain length regardless of the input value, and a completely different ID is generated even if the input value is different by just one bit. It has the characteristic of a one-way function that cannot be extracted. Therefore, even if the virtual ID is disclosed, it is not possible to trace which Ethereum ID it was created from, so anonymity can be provided.

이러한, 아이덴티티 체인에 의하는 경우 바우처 송신자 노드(110)는 바우처 송신자의 가상화폐 계정정보를 대체하여 사용하기 위한 가상의 바우처 아이디(vvid: virtual voucher id)를 생성하고, 가상의 바우처 아이디 및 바우처 수신자 아이디를 기반으로 바우처 아이디(vid: voucher id)를 생성한다.In this case, according to the identity chain, the voucher sender node 110 creates a virtual voucher ID (vvid: virtual voucher id) to replace the voucher sender's virtual currency account information, and creates a virtual voucher ID and voucher recipient Create a voucher ID (vid: voucher id) based on the ID.

여기서, 가상의 바우처 아이디는 바우처 송신자가 자신의 송신자 계정 외에 바우처 아이디를 사용하기 위해 생성하는 아이디로서, 바우처 송신자의 가상화폐 계정정보, rccv(randomly created new identity for voucher sender), 랜덤하게 생성한 암호텍스트의 해시 값(hnonce)을 통합한 전체 해시 값을 활용하여 생성될 수 있다(vvid=hash(EOA_vs∥rccv∥hnonce)).Here, the virtual voucher ID is an ID generated by the voucher sender to use the voucher ID in addition to his/her own sender account. It can be generated by using a full hash value that incorporates the hash value (hnonce) of the text (vvid=hash(EOA_vs|rccv|hnonce)).

바우처 아이디는 바우처 송신자가 특정 바우처 수신자에게 보내는 아이디로서, 가상의 바우처 아이디, 바우처 수신자 아이디 및 타임스탬프(time stamp)의 전체 해시 값을 활용하여 생성될 수 있다(vid=hash(rid∥vvid∥ts)). 이러한, 바우처 아이디에 의하는 경우 바우처의 주인이 누구인지 인증할 수 있다.The voucher ID is an ID that the voucher sender sends to a specific voucher recipient, and can be generated by using the full hash value of the virtual voucher ID, voucher recipient ID, and time stamp (vid=hash(rid|vvid|ts) )). In this case, it is possible to authenticate who the owner of the voucher is based on the voucher ID.

바우처 송신자 노드(110)는 바우처 아이디 및 바우처 금액을 블록체인 상에 등록하여 스마트 계약에 따른 바우처가 생성되도록 한다. 이때, 바우처 금액을 등록하는 과정은 바우처 송신자가 보내고자 하는 돈을 바우처 컨트렉트에 송금하는 것을 의미한다.The voucher sender node 110 registers the voucher ID and voucher amount on the blockchain to generate a voucher according to the smart contract. At this time, the process of registering the voucher amount means that the voucher sender wants to send money to the voucher contract.

바우처 수신자 노드(120)는 바우처 송신자가 전송한 바우처를 수신하여 바우처 금액에 해당하는 서비스 토큰을 수령할 수 있는 바우처의 주인에 상응하는 노드를 의미한다. 이러한, 바우처 수신자 노드(120)는 이더리움 스마트 컨트랙트의 사용자 계정을 소유하고 있으며 EOA_vr(Externally Owned Account_voucher recipient)로 정의될 수 있다.The voucher recipient node 120 means a node corresponding to the owner of the voucher that can receive the voucher sent by the voucher sender and receive the service token corresponding to the voucher amount. This voucher recipient node 120 owns the user account of the Ethereum smart contract and may be defined as EOA_vr (Externally Owned Account_voucher recipient).

먼저, 본 실시예에 있어서, 바우처 수신자 노드(120)는 바우처 수신자의 가상화폐 계정정보를 기반으로 한 익명의 바우처 수신자 아이디를 생성하여 블록체인 상에 등록하며, 이를 기반으로 바우처 수신자에 대한 민감한 정보의 노출없이 바우처 제공 서비스를 지원받을 수 있도록 동작한다.First, in this embodiment, the voucher recipient node 120 creates an anonymous voucher recipient ID based on the virtual currency account information of the voucher recipient and registers it on the blockchain, based on this, sensitive information about the voucher recipient It operates so that the voucher provision service can be supported without exposure of

도 4를 참조하여 설명하면, 바우처 수신자 노드(120)는 총 3단계에 거쳐 바우처 수신자 아이디를 생성할 수 있다Referring to FIG. 4 , the voucher recipient node 120 may generate a voucher recipient ID through a total of three steps.

단계 1에서 바우처 수신자 노드(120)는 바우처 수신자에 상응하는 20바이트의 새로운 ID인 rccr(randomly created new identity for recipient)을 생성한다.In step 1, the voucher recipient node 120 generates a randomly created new identity for recipient (rccr), which is a new 20-byte ID corresponding to the voucher recipient.

단계 1에서 바우처 수신자 노드(120)는 이더리움 암호화 패키지(ethCypto)에서 제공되는 createNewIdentity() 기능을 사용하여 rccr을 생성할 수 있다.In step 1, the voucher recipient node 120 may create an rccr using the createNewIdentity() function provided in the Ethereum encryption package (ethCypto).

단계 2에서 바우처 수신자 노드(120)는 단계 1에서 생성한 rccr을 활용하여 바우처 수신자가 자신의 바우처 수신자 아이디를 생성하기 위하여 사용하는 가상의 수신자 아이디(rvid: virtual recipent id)를 생성한다.In step 2, the voucher recipient node 120 uses the rccr generated in step 1 to generate a virtual recipient ID (rvid: virtual recipent id) used by the voucher recipient to generate their own voucher recipient ID.

단계 2에서 바우처 수신자 노드(120)는 rccr, 바우처 수신자의 가상화폐 계정정보, 랜덤하게 생성한 암호텍스트의 해시 값(hnonce)을 통합한 전체 해시 값을 활용하여 가상의 수신자 아이디를 생성할 수 있다(rvid=hash(EOA_vr∥rccr∥hnonce).In step 2, the voucher recipient node 120 generates a virtual recipient ID by using the entire hash value that integrates rccr, the virtual currency account information of the voucher recipient, and the hash value (hnonce) of the randomly generated cipher text. (rvid=hash(EOA_vr|rccr|hnonce).

단계 3에서 바우처 수신자 노드(120)는 단계 2에서 생성한 가상의 수신자 아이디를 기반으로 바우처 수신자의 가상화폐 계정정보를 대체하여 외부에 공개되는 정보인 바우처 수신자 아이디를 생성한다.In step 3, the voucher recipient node 120 replaces the virtual currency account information of the voucher recipient based on the virtual recipient ID generated in step 2 to generate a voucher recipient ID, which is information disclosed to the outside.

단계 3에서 바우처 수신자 노드(120)는 가상의 수신자 아이디와 바우처 컨트렉트에서 생성한 타임 스템프의 해시 값으로 구성될 수 있다(rid=hash(rvid∥ts)).In step 3, the voucher recipient node 120 may be composed of a virtual recipient ID and a hash value of a time stamp generated in the voucher contract (rid=hash(rvid|ts)).

바우처 수신자 노드(120)는 바우처 컨트렉트 노드(130)를 통해 공개되는 바우처를 수신하기 위해 바우처 수신자 아이디를 기반으로 한 바우처 컨트렉트 노드(130)로부터 수신자 인증을 받는다.The voucher recipient node 120 receives a recipient authentication from the voucher contract node 130 based on the voucher recipient ID in order to receive a voucher published through the voucher contract node 130 .

이를 위해, 바우처 수신자 노드(120)는 바우처 수신자 아이디를 생성하는 과정에서 생성한 아이덴티티 정보인 rccr을 이용하여 서명(signature) 정보를 생성하고, 서명 정보 및 기 정의된 암호텍스트의 해시 값으로 구성되는 바우처 수신 요청신호를 바우처 컨트렉트 노드(130)로 송신할 수 있다.To this end, the voucher recipient node 120 generates signature information using rccr, which is the identity information generated in the process of generating the voucher recipient ID, and consists of a hash value of the signature information and a predefined cipher text. A voucher reception request signal may be transmitted to the voucher contract node 130 .

이후, 바우처 수신자 노드(120)는 바우처 컨트렉트 노드(130)로부터 바우처 수신자에 대한 인증 결과에 따라 바우처에 상응하는 바우처 금액을 제공받는다. 이때, 바우처 수신자 노드(120)는 바우처 컨트렉트 노드(130)로부터 바우처 금액에 해당하는 서비스 토큰을 제공받는 것이 바람직하나 반드시 이에 한정되는 것은 아니다.Thereafter, the voucher recipient node 120 receives a voucher amount corresponding to the voucher according to the authentication result for the voucher recipient from the voucher contract node 130 . At this time, the voucher recipient node 120 is preferably provided with a service token corresponding to the voucher amount from the voucher contract node 130, but is not necessarily limited thereto.

바우처 수신자 노드(120)는 수신한 서비스 토큰을 서비스 제공자 노드(140)로 전달하고, 서비스 제공자 노드(140)로부터 서비스 토큰에 상응하는 서비스를 제공받는다.The voucher recipient node 120 transfers the received service token to the service provider node 140 , and receives a service corresponding to the service token from the service provider node 140 .

바우처 컨트렉트 노드(130)는 블록체인 및 스마트 계약에 기반하여 바우처를 발행 및 관리하는 기능을 수행한다. 이러한, 바우처 컨트렉트 노드(130)는 블록체인에 해당하는 스마트 컨트렉트 소프트웨어로서 이더리움 플랫폼에 배포된 바우처 컨트렉트를 의미한다.The voucher contract node 130 performs a function of issuing and managing vouchers based on blockchain and smart contracts. Such, the voucher contract node 130 means a voucher contract distributed on the Ethereum platform as smart contract software corresponding to the block chain.

바우처 컨트렉트 노드(130)는 바우처 수신자 노드(120)로부터 생성된 바우처 수신자 아이디를 전달받아 블록체인 상에 등록하고, 이를 활용하여 바우처 발행 및 관리를 수행한다.The voucher contract node 130 receives the voucher recipient ID generated from the voucher recipient node 120, registers it on the block chain, and uses it to issue and manage the voucher.

바우처 컨트렉트 노드(130)는 바우처 송신자 노드(110)로부터 바우처 아이디 및 바우처 금액이 등록되는 경우 스마트 계약에 따라 바우처를 생성하며, 이를 활성화시켜 바우처 수신자에게 노출될 수 있도록 한다.When the voucher ID and voucher amount are registered from the voucher sender node 110, the voucher contract node 130 creates a voucher according to the smart contract, activates it, and allows it to be exposed to the voucher recipient.

한편, 바우처 컨트렉트 노드(130)는 바우처 송신자 노드(110)로부터의 바우처 금액에 대한 송금 완료가 확인되는 경우 바우처 보다 자세하게는 블록체인 상에 등록된 바우처 금액과 관련한 정보에 바우처 수신자 아이디를 매핑시켜 바우처를 활성화시킨다.On the other hand, the voucher contract node 130 maps the voucher recipient ID to information related to the voucher amount registered on the blockchain in more detail when the transfer of the voucher amount from the voucher sender node 110 is confirmed. to activate the voucher.

바우처 컨트렉트 노드(130)는 특정 바우처 수신자가 바우처 수신을 요청하면, 해당 바우처 수신자가 정당한 수신자인지 여부를 검증하고, 검증이 완료되는 경우 한해 바우처 수신자에게 바우처를 제공한다.When a specific voucher recipient requests receipt of a voucher, the voucher contract node 130 verifies whether the voucher recipient is a legitimate recipient, and provides a voucher to the voucher recipient only when verification is completed.

본 실시예에 있어서, 바우처 컨트렉트 노드(130)는 바우처 수신자 아이디를 기반으로 바우처 수신자에 대한 인증을 수행한다. 즉, 바우처 컨트렉트 노드(130)는 인증 대상이 되는 바우처 수신자가 바우처 수신자 아이디를 직접 생성한 이더리움 계정자가 맞는지를 검증함으로써 바우처 수신자에 대한 인증을 수행할 수 있다.In this embodiment, the voucher contract node 130 performs authentication for the voucher recipient based on the voucher recipient ID. That is, the voucher contract node 130 can authenticate the voucher recipient by verifying that the voucher recipient, which is the subject of authentication, is the Ethereum account holder who directly generated the voucher recipient ID.

예컨대, 바우처 수신자 노드(120)로부터 수신한 바우처 수신 요청신호에 포함되는 서명 정보로부터 바우처 수신자 아이디를 복구하고, 복구한 바우처 수신자 아이디와 바우처 상에 매핑된 바우처 수신자 아이디가 동일한지를 검증하여 바우처 수신자에 대한 인증을 수행한다.For example, the voucher recipient ID is recovered from the signature information included in the voucher reception request signal received from the voucher recipient node 120, and the recovered voucher recipient ID and the voucher recipient ID mapped on the voucher are verified to be identical to the voucher recipient. perform authentication for

도 5를 참조하여 설명하면, 바우처 컨트렉트 노드(130)는 총 3단계에 거처 바우처 수신자에 대한 인증을 수행할 수 있다.Referring to FIG. 5 , the voucher contract node 130 may perform authentication for the voucher recipient through a total of three steps.

단계 1에서 바우처 컨트렉트 노드(130)는 바우처 수신 요청신호에 포함된 서명 정보로부터 rccr을 복구한다.In step 1, the voucher contract node 130 recovers rccr from the signature information included in the voucher reception request signal.

단계 1에서 바우처 컨트렉트 노드(130)는 이더리움 암호화 패키지의 recoverSigner() 기능을 사용하여 rccr을 복구할 수 있다. 이때, 복구된 rccr은 rccr'로 표기될 수 있다.In step 1, the voucher contract node 130 can recover rccr using the recoverSigner() function of the Ethereum encryption package. In this case, the restored rccr may be expressed as rccr'.

단계 2에서 바우처 컨트렉트 노드(130)는 단계 1에서 복구된 rccr'을 이용하여 rvid'를 복구한다.In step 2, the voucher contract node 130 recovers rvid' using the rccr' recovered in step 1.

단계 2에서 rvid'를 복구하는 과정에서 이용되는 EOA_vr은 검증을 요청하는 바우처 수신자의 이더리움 주소로서 이더리움에서 제공하는 msg.sender 기능을 통해 제공될 수 있으며, 저장하거나 요청하여 묻는 방식이 아니라 시스템 상에서 요청자의 주소를 이용하는 것이므로 거짓 정보를 사용할 수 없게 된다.The EOA_vr used in the process of recovering 'rvid' in step 2 is the Ethereum address of the recipient of the voucher requesting verification, and it can be provided through the msg.sender function provided by Ethereum. Since the requester's address is used in the above, false information cannot be used.

단계 3에서 바우처 컨트렉트 노드(130)는 단계 2에서 복구된 rvid'를 이용하여 rid'를 복구한다.In step 3, the voucher contract node 130 recovers rid' using the rvid' recovered in step 2.

이후, 바우처 컨트렉트 노드(130)는 복구된 rid'와 바우처와 매핑된 rid가 같다면 인증을 요청한 사용자는 해당 바우처의 수신 자격이 있는 바우처 수신자인 것으로 검증한다. 이때, 각 rid가 상이한 경우에는 최초에 바우처 수신자가 생성한 서명 정보에 다른 ID가 사용된 것이거나, 바우처 수신을 요청하는 수신자의 이더리움 주소가 원래 주인의 주소와 같지 않다는 것이기 때문에 검증에 실패하게 된다.Thereafter, the voucher contract node 130 verifies that if the restored rid' and the rid mapped to the voucher are the same, the user who requested authentication is a voucher recipient who is entitled to receive the voucher. At this time, if each rid is different, the verification fails because a different ID is used for the signature information initially generated by the voucher recipient or the recipient's Ethereum address requesting the voucher is not the same as the original owner's address. do.

바우처 컨트렉트 노드(130)는 바우처 수신자에 대한 인증이 완료되는 경우 바우처 금액에 해당하는 서비스 토큰을 바우처 수신자 노드(120)로 발행한다.The voucher contract node 130 issues a service token corresponding to the voucher amount to the voucher recipient node 120 when authentication for the voucher recipient is completed.

한편, 블록체인에 한번 등록된 정보는 삭제나 수정이 어렵다는 한계가 존재한다. 이 점에 기인하여, 바우처 컨트렉트 노드(130)는 하나의 바우처와 관련한 이벤트 발생정보에 맞춰 바우처의 상태정보를 지속적으로 업데이트시킴으로써 바우처 상태를 유연하게 적용 가능토록 동작한다.On the other hand, there is a limitation that it is difficult to delete or modify information once registered in the block chain. Due to this, the voucher contract node 130 operates to flexibly apply the voucher status by continuously updating the status information of the voucher in accordance with event occurrence information related to one voucher.

도 3은 바우처의 상태정보에 따른 바우처 상태 천이 다이어그램을 예시한 예시도이다.3 is an exemplary diagram illustrating a voucher state transition diagram according to the state information of the voucher.

도 3을 참조하면, 바우처 컨트렉트 노드(130)는 바우처 아이디가 생성되는 경우 바우처 상태정보를 created 단계로 전환한다(S302). 한편, 바우처 아이디가 생성된 것은 바우처 수신자 아이디와 관련한 해싱이 이루어졌다는 뜻이므로 유효한 바이처 수신자 아이디가 이미 바우처 아이디 생성에 사용된 것을 의미한다.Referring to FIG. 3 , the voucher contract node 130 converts the voucher status information to the created step when a voucher ID is generated ( S302 ). On the other hand, the creation of a voucher ID means that hashing related to the voucher recipient ID has been performed, so it means that a valid voucher recipient ID has already been used to generate the voucher ID.

바우처 컨트렉트 노드(130)는 바우처 송신자가 보내고자 하는 돈이 바우처 컨트렉트에 송금 완료되었는지 여부를 확인하고(S302), 송금 완료가 확인되면 바우처의 상태정보를 delivered로 전환한다(S303). 이러한, delivered 상태는 바우처에 대하여 바우처 수신자의 수신이 가능한 상태임을 의미한다. 이때, 바우처가 바우처 수신자에 의해 accepted 되기 전까지는 바우처 송신자는 바우처의 전송을 취소할 수 있다.The voucher contract node 130 checks whether the money that the sender of the voucher wants to send has been transferred to the voucher contract (S302), and when the transfer is confirmed, the status information of the voucher is converted to delivered (S303) . This delivered state means that the voucher recipient can receive the voucher. At this time, until the voucher is accepted by the voucher recipient, the voucher sender can cancel the transmission of the voucher.

바우처 컨트렉트 노드(130)는 바우처 수신자가 자신에게 전송된 바우처를 확인하고 수신을 결정하면(S304), 바우처 상태정보를 accepted 상태로 전환한다(S305). 한편, 바우처가 accepted 상태로 전환되는 경우 바우처 송신자도 바우처의 전송을 취소할 수 없게 된다.The voucher contract node 130 checks the voucher sent to the voucher recipient and determines to receive it (S304), and converts the voucher status information to the accepted state (S305). On the other hand, when the voucher is converted to the accepted state, the sender of the voucher cannot cancel the transmission of the voucher.

바우처 컨트렉트 노드(130)는 바우처 수신자가 바우처 한도 내에서 원하는 금액을 서비스 토큰으로 발행 요청하면, 바우처 상태정보를 micro-payed 상태로 전환한다(S306).The voucher contract node 130 converts the voucher status information to a micro-payed state when the voucher recipient requests issuance of a desired amount as a service token within the voucher limit (S306).

바우처 컨트렉트 노드(130)는 바우처 금액이 다 소진되면 바우처 상태를 transferred 상태로 전환하고, 바우처 상태 천이를 종료한다(S307).When the voucher amount is exhausted, the voucher contract node 130 switches the voucher state to the transferred state, and ends the voucher state transition (S307).

한편, 바우처 컨트렉트 노드(130)는 바우처 수신자가 바우처 수신을 accepted하기 전에 바우처 송신을 취소하면, 바우처 상태를 cancelled 상태로 전환한다(S308).On the other hand, if the voucher contract node 130 cancels the voucher transmission before the voucher recipient accepts the voucher reception, it switches the voucher state to the cancelled state (S308).

바우처 컨트렉트 노드(130)는 바우처가 전송된 경우라도, 바우처 수신자가 바우처 수신을 거절하면 바우처의 상태정보를 rejected 상태로 전환한다(S309). 이 경우, 바우처 금액은 바우처 송신자가 환불 요청 시 환불될 수 있다.Even when the voucher is transmitted, the voucher contract node 130 converts the status information of the voucher into a rejected state when the voucher recipient rejects the voucher reception (S309). In this case, the voucher amount may be refunded when the voucher sender requests a refund.

바우처 컨트렉트 노드(130)는 바우처 송신자가 취소요청하여 cancelled 되었건, 바우처 수신자가 수신을 거절하여 rejected 되었을 경우, 바우처 송신자가 환불 요청을 하면 바우처 상태를 refunded 상태로 전환한다.The voucher contract node 130 converts the voucher state to a refunded state when the voucher sender requests a refund if the voucher sender requests a cancellation or is canceled or the voucher receiver rejects the reception and is rejected.

서비스 제공자 노드(140)는 바우처 수신자로부터 바우처 금약에 해당하는 서비스 토큰을 제공받아 암호화 화폐로 교환하고, 암호화 화폐에 상응하는 서비스를 바우처 수신자에게 제공한다. 서비스 제공자는 이더리움 스마트 컨트렉트의 사용자 계정을 소유하고 있으며, EOA_sp(Externally Owned Account_service provider)로 표기될 수 있다.The service provider node 140 receives a service token corresponding to the voucher deductible from the voucher recipient, exchanges it with cryptocurrency, and provides a service corresponding to the cryptocurrency to the voucher recipient. The service provider owns the user account of the Ethereum smart contract and can be expressed as EOA_sp (Externally Owned Account_service provider).

도 6은 본 실시예에 따른 바우처 제공방법을 설명하기 위한 순서도이다.6 is a flowchart illustrating a method for providing a voucher according to the present embodiment.

바우처 수신자 노드(120)는 바우처 수신자의 가상화폐 계정정보를 기반으로 한 익명의 바우처 수신자 아이디를 생성하고, 생성한 바우처 수신자 아이디를 블록체인 상에 등록한다(S602). 단계 S602에서 바우처 수신자 노드(120)는 바우처 수신자에 상응하는 가상의 수신자 아이디를 생성하고, 가상의 수신자 아이디와 타임스템프를 기반으로 바우처 수신자 아이디를 생성한다.The voucher recipient node 120 generates an anonymous voucher recipient ID based on the virtual currency account information of the voucher recipient, and registers the generated voucher recipient ID on the block chain (S602). In step S602, the voucher recipient node 120 generates a virtual recipient ID corresponding to the voucher recipient, and generates a voucher recipient ID based on the virtual recipient ID and timestamp.

바우처 송신자 노드(110)는 단계 S602에서 생성된 바우처 수신자 아이디를 기반으로 바우처 아이디를 생성하고, 생성한 바우처 아이디 및 바우처 금액을 블록체인 상에 등록한다(S604). 단계 S604에서 바우처 송신자 노드(110)는 가상의 바우처 아이디를 생성하고, 가상의 바우처 아이디 및 바우처 수신자 아이디를 기반으로 바우처 아이디를 생성한다.The voucher sender node 110 generates a voucher ID based on the voucher recipient ID generated in step S602, and registers the generated voucher ID and voucher amount on the block chain (S604). In step S604, the voucher sender node 110 generates a virtual voucher ID, and generates a voucher ID based on the virtual voucher ID and the voucher recipient ID.

바우처 수신자 노드(120)는 바우처를 수신하기 위해 바우처 컨트렉트 노드(130)로부터 바우처 수신자 아이디에 기반하는 수신자 인증을 받고, 인증결과에 따라 바우처에 상응하는 바우처 금액을 제공받는다(S606). 단계 S606에서 바우처 컨트렉트 노드(130)는 바우처 수신자 노드(120)로부터 수신한 바우처 수신 요청신호에 포함되는 서명 정보로부터 바우처 수신자 아이디를 복구하고, 복구한 바우처 수신자 아이디와 바우처 상에 매핑된 바우처 수신자 아이디가 동일한지를 검증하여 바우처 수신자에 대한 인증을 수행한다.The voucher recipient node 120 receives a recipient authentication based on the voucher recipient ID from the voucher contract node 130 to receive the voucher, and receives a voucher amount corresponding to the voucher according to the authentication result (S606). In step S606, the voucher contract node 130 recovers the voucher recipient ID from the signature information included in the voucher reception request signal received from the voucher recipient node 120, and the restored voucher recipient ID and the voucher mapped on the voucher Authenticate the voucher recipient by verifying that the recipient ID is the same.

여기서, 단계 S602 내지 S606은 앞서 설명된 바우처 제공 시스템의 각 구성요소의 동작에 대응되므로 더 이상의 상세한 설명은 생략한다.Here, since steps S602 to S606 correspond to the operation of each component of the voucher providing system described above, further detailed description will be omitted.

도 6에서는 각각의 과정을 순차적으로 실행하는 것으로 기재하고 있으나, 반드시 이에 한정되는 것은 아니다. 다시 말해, 도 6에 기재된 과정을 변경하여 실행하거나 하나 이상의 과정을 병렬적으로 실행하는 것으로 적용 가능할 것이므로, 도 6은 시계열적인 순서로 한정되는 것은 아니다.Although it is described that each process is sequentially executed in FIG. 6 , the present invention is not limited thereto. In other words, since it may be applicable to changing and executing the process described in FIG. 6 or executing one or more processes in parallel, FIG. 6 is not limited to a time series sequence.

전술한 바와 같이 도 6에 기재된 바우처 제공 시스템의 바우처 제공방법은 프로그램으로 구현되고 컴퓨터의 소프트웨어를 이용하여 읽을 수 있는 기록매체(CD-ROM, RAM, ROM, 메모리 카드, 하드 디스크, 광자기 디스크, 스토리지 디바이스 등)에 기록될 수 있다.As described above, the voucher providing method of the voucher providing system described in FIG. 6 is implemented as a program and readable recording medium (CD-ROM, RAM, ROM, memory card, hard disk, magneto-optical disk, storage device, etc.).

이상의 설명은 본 실시예의 기술 사상을 예시적으로 설명한 것에 불과한 것으로서, 본 실시예가 속하는 기술 분야에서 통상의 지식을 가진 자라면 본 실시예의 본질적인 특성에서 벗어나지 않는 범위에서 다양한 수정 및 변형이 가능할 것이다. 따라서, 본 실시예들은 본 실시예의 기술 사상을 한정하기 위한 것이 아니라 설명하기 위한 것이고, 이러한 실시예에 의하여 본 실시예의 기술 사상의 범위가 한정되는 것은 아니다. 본 실시예의 보호 범위는 아래의 청구범위에 의하여 해석되어야 하며, 그와 동등한 범위 내에 있는 모든 기술 사상은 본 실시예의 권리범위에 포함되는 것으로 해석되어야 할 것이다.The above description is merely illustrative of the technical idea of this embodiment, and various modifications and variations will be possible by those skilled in the art to which this embodiment belongs without departing from the essential characteristics of the present embodiment. Accordingly, the present embodiments are intended to explain rather than limit the technical spirit of the present embodiment, and the scope of the technical spirit of the present embodiment is not limited by these embodiments. The protection scope of this embodiment should be interpreted by the following claims, and all technical ideas within the equivalent range should be interpreted as being included in the scope of the present embodiment.

100: 바우처 제공 시스템 110: 바우처 송신자 노드
120: 바우처 수신자 노드 130: 바우처 컨트렉트 노드
140: 서비스 제공자 노드
100: Voucher providing system 110: Voucher sender node
120: voucher recipient node 130: voucher contract node
140: service provider node

Claims (12)

바우처 수신자의 가상화폐 계정정보를 기반으로 하여 기 생성된 바우처 수신자 아이디(rid: recipient id)를 활용하여 바우처 송신을 위한 바우처 아이디(vid: voucher id)를 생성하고, 상기 바우처 아이디 및 바우처 금액을 블록체인 상에 등록하여 스마트 계약에 따른 바우처가 생성되도록 하는 바우처 송신자 노드;
상기 바우처 수신자 아이디를 생성하여 상기 블록체인 상에 등록하며, 상기 바우처 수신자 아이디를 기반으로 한 수신자 인증결과에 따라 상기 바우처에 상응하는 상기 바우처 금액을 제공받는 바우처 수신자 노드; 및
상기 블록체인 및 상기 스마트 계약에 기반하여 상기 바우처를 발행 및 관리하는 바우처 컨트렉트 노드
를 포함하는 것을 특징으로 하는 바우처 제공 시스템.
Based on the virtual currency account information of the voucher recipient, create a voucher ID (vid: voucher id) for sending the voucher by using the previously created voucher recipient ID (rid: recipient id), and block the voucher ID and voucher amount a voucher sender node that registers on the chain to generate a voucher according to a smart contract;
a voucher recipient node that generates the voucher recipient ID and registers it on the blockchain, and receives the voucher amount corresponding to the voucher according to a recipient authentication result based on the voucher recipient ID; and
A voucher contract node that issues and manages the voucher based on the blockchain and the smart contract
Voucher providing system comprising a.
제 1항에 있어서,
상기 바우처 송신자 노드는,
바우처 송신자의 가상화폐 계정정보를 대체하여 사용하기 위한 가상의 바우처 아이디(vvid: virtual voucher id)를 생성하고, 상기 가상의 바우처 아이디 및 상기 바우처 수신자 아이디를 기반으로 상기 바우처 아이디를 생성하는 것을 특징으로 하는 바우처 제공 시스템.
The method of claim 1,
The voucher sender node,
Creating a virtual voucher id (vvid) for use as a substitute for the virtual currency account information of the voucher sender, and generating the voucher ID based on the virtual voucher ID and the voucher recipient ID Voucher providing system.
제 2항에 있어서,
상기 바우처 송신자 노드는,
상기 바우처 송신자의 가상화폐 계정정보, rccv(randomly created new identity for voucher sender), 랜덤하게 생성한 암호텍스트의 해시 값(hnonce)을 통합한 전체 해시 값을 활용하여 상기 가상의 바우처 아이디를 생성하며,
상기 가상의 바우처 아이디, 상기 바우처 수신자 아이디 및 타임스탬프(time stamp)의 전체 해시 값을 활용하여 상기 바우처 아이디를 생성하는 것을 특징으로 하는 바우처 제공 시스템.
3. The method of claim 2,
The voucher sender node,
The virtual voucher ID is generated by using the entire hash value integrating the virtual currency account information of the voucher sender, rccv (randomly created new identity for voucher sender), and the hash value (hnonce) of the randomly generated cipher text,
Voucher providing system, characterized in that generating the voucher ID by using the virtual voucher ID, the voucher recipient ID and the entire hash value of the time stamp (time stamp).
제 1항에 있어서,
상기 바우처 수신자 노드는,
상기 바우처 수신자에 상응하는 가상의 수신자 아이디(rvid: virtual recipent id)를 생성하고, 상기 가상의 수신자 아이디와 타임스템프를 기반으로 상기 바우처 수신자의 가상화폐 계정정보를 대체하여 외부에 공개되는 정보인 상기 바우처 수신자 아이디를 생성하는 것을 특징으로 하는 바우처 제공 시스템.
The method of claim 1,
The voucher recipient node,
Generates a virtual recipient ID (rvid: virtual recipent id) corresponding to the voucher recipient, and replaces the virtual currency account information of the voucher recipient based on the virtual recipient ID and timestamp. Voucher providing system, characterized in that for generating a voucher recipient ID.
제 4항에 있어서,
상기 바우처 수신자 노드는,
상기 바우처 수신자에 상응하는 새로운 아이덴티티 정보인 rccr(randomly created new identity for recipient)을 생성하고, 상기 rccr, 상기 바우처 수신자의 가상화폐 계정정보, 랜덤하게 생성한 암호텍스트의 해시 값(hnonce)을 통합한 전체 해시 값을 활용하여 가상의 수신자 아이디를 생성하는 것을 특징으로 하는 바우처 제공 시스템.
5. The method of claim 4,
The voucher recipient node,
Generates rccr (randomly created new identity for recipient), which is new identity information corresponding to the voucher recipient, and integrates the rccr, virtual currency account information of the voucher recipient, and hash value (hnonce) of the randomly generated cryptographic text A system for providing a voucher, characterized in that it generates a virtual recipient ID by using the entire hash value.
제 1항에 있어서,
상기 바우처 수신자 노드는,
상기 바우처 수신자 아이디를 생성하는 과정에서 생성한 아이덴티티 정보인 rccr을 이용하여 서명(signature) 정보를 생성하고, 상기 서명 정보 및 기 정의된 암호텍스트의 해시 값으로 구성되는 바우처 수신 요청신호를 상기 바우처 컨트렉트 노드로 전달하는 것을 특징으로 하는 바우처 제공 시스템.
The method of claim 1,
The voucher recipient node,
Generates signature information using rccr, which is the identity information generated in the process of generating the voucher recipient ID, and sends a voucher reception request signal composed of a hash value of the signature information and a predefined cipher text to the voucher controller A system for providing a voucher, characterized in that it is delivered to a tract node.
제 1항에 있어서,
상기 바우처 컨트렉트 노드는,
상기 바우처 금액에 대한 송금 완료가 확인되는 경우 상기 바우처 상에 상기 바우처 수신자 아이디를 매핑시켜 상기 바우처를 활성화시키는 것을 특징으로 하는 바우처 제공 시스템.
The method of claim 1,
The voucher contract node is
When it is confirmed that the remittance of the voucher amount is completed, the voucher providing system characterized in that the voucher is activated by mapping the voucher recipient ID on the voucher.
제 7항에 있어서,
상기 바우처 컨트렉트 노드는,
상기 바우처 아이디가 생성되는 경우 바우처 상태정보를 생성(created) 단계로 전환하고, 상기 매핑이 이루어지는 경우 상기 바우처의 상태정보를 전달(delivered) 단계로 전환하며, 상기 바우처와 관련한 이벤트 발생정보에 맞춰 상기 바우처의 상태정보를 지속적으로 업데이트시키는 것을 특징으로 하는 바우처 제공 시스템.
8. The method of claim 7,
The voucher contract node is
When the voucher ID is generated, the voucher status information is converted to a created step, and when the mapping is made, the voucher status information is converted to a delivered step, and according to the event occurrence information related to the voucher Voucher providing system, characterized in that the status information of the voucher is continuously updated.
제 1항에 있어서,
상기 바우처 컨트렉트 노드는,
상기 바우처 수신자 노드로부터 수신한 바우처 수신 요청신호에 포함되는 서명 정보로부터 바우처 수신자 아이디를 복구하고, 복구한 바우처 수신자 아이디와 상기 바우처 상에 매핑된 바우처 수신자 아이디가 동일한지를 검증하여 상기 바우처 수신자에 대한 인증을 수행하는 것을 특징으로 하는 바우처 제공 시스템.
The method of claim 1,
The voucher contract node is
Authenticate the voucher recipient by recovering the voucher recipient ID from the signature information included in the voucher reception request signal received from the voucher recipient node, and verifying that the recovered voucher recipient ID and the voucher recipient ID mapped on the voucher are the same Voucher providing system, characterized in that to perform.
제 9항에 있어서,
상기 바우처 컨트렉트 노드는,
상기 바우처 수신자에 대한 인증이 완료되는 경우 상기 바우처 금액에 해당하는 서비스 토큰을 상기 바우처 수신자 노드로 발행하는 것을 특징으로 하는 바우처 제공 시스템.
10. The method of claim 9,
The voucher contract node is
When authentication of the voucher recipient is completed, a service token corresponding to the voucher amount is issued to the voucher recipient node.
제 1항에 있어서,
상기 바우처 수신자로부터 상기 바우처 금액에 해당하는 서비스 토큰을 제공받아 암호화 화폐로 교환하고, 상기 암호화 화폐에 상응하는 서비스를 상기 바우처 수신자에게 제공하는 서비스 제공자 노드를 더 포함하는 것을 특징으로 하는 바우처 제공 시스템.
The method of claim 1,
Voucher providing system, characterized in that it further comprises a service provider node that receives a service token corresponding to the voucher amount from the voucher recipient, exchanges it with cryptocurrency, and provides a service corresponding to the cryptocurrency to the voucher recipient.
바우처 제공 시스템의 바우처 제공방법에 있어서,
바우처 수신자 노드가 바우처 수신자의 가상화폐 계정정보를 기반으로 하여 바우처 수신자 아이디를 생성하고, 상기 바우처 수신자 아이디를 블록체인 상에 등록하는 과정;
바우처 송신자 노드가 상기 바우처 수신자 아이디를 기반으로 바우처 아이디를 생성하고, 상기 바우처 아이디 및 바우처 금액을 상기 블록체인 상에 등록하여 스마트 계약에 따른 바우처가 생성되도록 하는 과정; 및
상기 바우처 수신자 노드가 상기 바우처를 수신하기 위해 바우처 컨트렉트 노드로부터 상기 바우처 수신자 아이디에 기반하는 수신자 인증을 받고, 인증결과에 따라 상기 바우처에 상응하는 상기 바우처 금액을 제공받는 과정
을 포함하는 것을 특징으로 하는 바우처 제공방법.
In the voucher providing method of the voucher providing system,
A process in which the voucher recipient node generates a voucher recipient ID based on the virtual currency account information of the voucher recipient, and registers the voucher recipient ID on the block chain;
a process in which the voucher sender node generates a voucher ID based on the voucher recipient ID, and registers the voucher ID and voucher amount on the blockchain to generate a voucher according to a smart contract; and
A process in which the voucher recipient node receives recipient authentication based on the voucher recipient ID from the voucher contract node to receive the voucher, and receives the voucher amount corresponding to the voucher according to the authentication result
Voucher providing method comprising a.
KR1020200029568A 2020-03-10 2020-03-10 Method and System for Providing Voucher based Blockchain KR102331971B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020200029568A KR102331971B1 (en) 2020-03-10 2020-03-10 Method and System for Providing Voucher based Blockchain

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020200029568A KR102331971B1 (en) 2020-03-10 2020-03-10 Method and System for Providing Voucher based Blockchain

Publications (2)

Publication Number Publication Date
KR20210114585A KR20210114585A (en) 2021-09-24
KR102331971B1 true KR102331971B1 (en) 2021-11-26

Family

ID=77914847

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200029568A KR102331971B1 (en) 2020-03-10 2020-03-10 Method and System for Providing Voucher based Blockchain

Country Status (1)

Country Link
KR (1) KR102331971B1 (en)

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190096211A (en) * 2018-02-08 2019-08-19 주식회사 케이티 Platform and Method for managing An Electronic Gift Certificate based on Block Chain
KR102602782B1 (en) * 2018-06-16 2023-11-16 조현준 The Method to protect and use Private Information utilizing Shared Nickname Identification

Also Published As

Publication number Publication date
KR20210114585A (en) 2021-09-24

Similar Documents

Publication Publication Date Title
US11809608B2 (en) Methods and systems for using digital signatures to create trusted digital asset transfers
US20210194701A1 (en) Systems and methods for creating a universal record
JP7108611B2 (en) Electronic bill management method, device and storage medium
AU2018349940B2 (en) System and method for information protection
US20200127813A1 (en) Method and system for creating a user identity
JP7377312B2 (en) Systems and methods realized by blockchain
CN109102269B (en) Transfer method and device based on block chain, block chain node and storage medium
US20170344983A1 (en) BIXCoin: A Secure Peer-to-Peer Payment System Based on the Public Payments Ledger
US11108566B2 (en) Methods and systems for using digital signatures to create trusted digital asset transfers
WO2018197491A1 (en) Method and system for settling a blockchain transaction
WO2021008453A1 (en) Method and system for offline blockchain transaction based on identifier authentication
JP6293716B2 (en) Anonymous communication system and method for joining the communication system
CN109274505A (en) A kind of anonymous electronic voting method based on block chain technology
CN113947394A (en) Block chain-based fair payment method for deletable duplicate data in cloud storage
US20200374140A1 (en) Block-chain based identity system
CN113393225A (en) Digital currency encryption payment method and system
CN111915308A (en) Transaction processing method of blockchain network and blockchain network
US7603320B1 (en) Method and system for protecting sensitive information and preventing unauthorized use of identity information
KR20180052838A (en) Method for Operating Safety Remittance by using Unchangeable Double Record based on Verification of the Remittee
KR20200051135A (en) Method for connecting dapp service with cryptocurrency wallet server and cryptocurrency wallet server therefor
KR102331971B1 (en) Method and System for Providing Voucher based Blockchain
CN110363513A (en) Payment unions method and apparatus based on block chain
CN113094748B (en) Realization method of authenticatable anonymous E-commerce evaluation mechanism based on blockchain
CN111062833A (en) Signature authentication method of contract data and related device
JP2006195844A (en) Method for managing transfer of electronic right through minimal transaction, right transfer process apparatus, right transfer management apparatus for right transfer device, and its program

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant