KR102119784B1 - System and method for providing service based on blockchain using electronic code - Google Patents

System and method for providing service based on blockchain using electronic code Download PDF

Info

Publication number
KR102119784B1
KR102119784B1 KR1020180061312A KR20180061312A KR102119784B1 KR 102119784 B1 KR102119784 B1 KR 102119784B1 KR 1020180061312 A KR1020180061312 A KR 1020180061312A KR 20180061312 A KR20180061312 A KR 20180061312A KR 102119784 B1 KR102119784 B1 KR 102119784B1
Authority
KR
South Korea
Prior art keywords
service
electronic code
node
electronic
usage
Prior art date
Application number
KR1020180061312A
Other languages
Korean (ko)
Other versions
KR20190135830A (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 KR1020180061312A priority Critical patent/KR102119784B1/en
Publication of KR20190135830A publication Critical patent/KR20190135830A/en
Application granted granted Critical
Publication of KR102119784B1 publication Critical patent/KR102119784B1/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/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
    • 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/387Payment using discounts or coupons
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • H04L9/3242Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving keyed hash functions, e.g. message authentication codes [MACs], CBC-MAC or HMAC

Abstract

전자 코드를 이용한 서비스의 이용 내역을 기록한 원장을 분산하여 관리하는 블록체인의 네트워크 상의 제1 노드의 동작 방법에 있어서, 사업자의 단말기로부터 상기 전자 코드와 동일한 종류인 제1 전자 코드를 스캔한 제1 데이터 및 상기 제1 전자 코드를 이용한 상기 서비스의 제1 이용 예정 내역을 수신하는 단계; 및 상기 제1 데이터로부터 상기 원장에 상기 서비스의 이용 내역을 기록하는 데에 이용되는 제1 암호화 데이터를 추출하는 단계; 상기 제1 암호화 데이터 및 상기 원장에 기록된 상기 제1 전자 코드에 대한 상기 서비스의 제1 이력 정보에 기초하여, 상기 제1 이용 예정 내역의 유효성을 검증하는 단계; 및 상기 제1 이용 예정 내역의 유효성을 검증한 결과를 상기 사업자의 단말기로 전송하는 단계를 포함할 수 있다.A method of operating a first node on a network of a blockchain that distributes and manages a ledger recording a service usage history using an electronic code, the first method of scanning a first electronic code of the same type as the electronic code from a terminal of a business operator Receiving a first scheduled usage of the service using data and the first electronic code; And extracting first encrypted data used to record the usage history of the service in the ledger from the first data. Verifying the validity of the first scheduled usage history based on the first history information of the service for the first encrypted data and the first electronic code recorded in the ledger; And it may include the step of transmitting the result of verifying the validity of the first scheduled usage details to the terminal of the operator.

Figure R1020180061312
Figure R1020180061312

Description

전자 코드를 이용하여 블록체인 기반의 서비스를 제공하는 시스템 및 방법{SYSTEM AND METHOD FOR PROVIDING SERVICE BASED ON BLOCKCHAIN USING ELECTRONIC CODE}System and method for providing blockchain-based services using electronic codes {SYSTEM AND METHOD FOR PROVIDING SERVICE BASED ON BLOCKCHAIN USING ELECTRONIC CODE}

전자 코드를 이용하여 블록체인 기반의 서비스를 제공하는 시스템 및 방법에 관한 것이다.It relates to a system and method for providing a blockchain-based service using electronic codes.

최근 전자화폐의 이용이 광범위해지면서 오프라인상의 상품권과 유사한 전자상품권이 많이 이용되고 있다. 이러한 전자상품권은 기프티콘이 라고도 지칭될 수 있으며, 바코드 또는 고유식별번호가 부여되어 온라인상에서 활발히 유통되고 있다.Recently, as the use of electronic money has become widespread, electronic gift certificates similar to offline gift certificates have been widely used. Such electronic vouchers may also be referred to as gifticons, and are actively distributed online with barcodes or unique identification numbers.

전자상품권은 실제상품과 교환할 수 있는 화폐와 같은 역할을 수행하고 있으며, 구매자가 온라인이나 오프라인상에서 일정한 금액을 지불하여 전자상품권을 구매한다. 구매된 전자상품권은 특정인에게 선물될 수 있으며, 전자상품권을 선물 받은 특정인은 전자상품권과 대응되는 실제상품을 특정 가맹점 등이 있는 곳이면 어디서나 실제상품으로 교환 받을 수 있는 장점을 가지고 있다.The electronic voucher serves as a currency that can be exchanged for a real product, and the buyer purchases the electronic voucher by paying a certain amount online or offline. The purchased electronic voucher can be gifted to a specific person, and the specific person who received the electronic voucher has the advantage of being able to exchange the actual product corresponding to the electronic voucher with a real product wherever there is a specific merchant.

그러나, 전자상품권을 구성하고 있는 바코드 또는 고유식별번호가 유출되면, 전자상품권의 보유자의 의도와 관계없이, 유출된 바코드 또는 고유식별번호를 이용하여 전자상품권이 사용될 수 있으므로, 전자상품권의 거래 안정성을 훼손시킬 수 있다.However, if the barcode or the unique identification number constituting the electronic voucher is leaked, regardless of the intention of the holder of the electronic voucher, the electronic voucher can be used by using the leaked barcode or the unique identification number. Can damage it.

따라서, 전자상품권 등과 같이 유통될 수 있는 아이템의 이용에 있어서 보안 강화가 요구되고 있다.
한편, 전자 상품권과 관련하여, 선행기술문헌 1(공개특허공보 10-2016-0150419)는 바코드를 이용한 결제 방법 및 시스템을 개시한다. 또한, 선행기술문헌 2(공개특허공보 10-2015-0061145)는 사용자 단말로 전자 상품권을 제공하는 방법 및 시스템을 개시한다.
Therefore, it is required to strengthen security in the use of items that can be distributed, such as electronic vouchers.
On the other hand, with regard to the electronic voucher, Prior Art Document 1 (Public Patent Publication 10-2016-0150419) discloses a payment method and system using a barcode. In addition, prior art document 2 (published patent publication 10-2015-0061145) discloses a method and system for providing an electronic voucher to a user terminal.

전자 코드를 이용하여 제공되는 서비스의 보안성을 향상시키기 위해 블록체인 기반의 서비스를 제공하는 시스템을 제공하는 것을 목적으로 한다.It aims to provide a system that provides blockchain-based services to improve the security of services provided using electronic codes.

일측에 따르면, 전자 코드를 이용한 서비스의 이용 내역을 기록한 원장을 분산하여 관리하는 블록체인의 네트워크 상의 제1 노드의 동작 방법에 있어서, 사업자의 단말기로부터 상기 전자 코드와 동일한 종류인 제1 전자 코드를 스캔한 제1 데이터 및 상기 제1 전자 코드를 이용한 상기 서비스의 제1 이용 예정 내역을 수신하는 단계; 및 상기 제1 데이터로부터 상기 원장에 상기 서비스의 이용 내역을 기록하는 데에 이용되는 제1 암호화 데이터를 추출하는 단계; 상기 제1 암호화 데이터 및 상기 원장에 기록된 상기 제1 전자 코드에 대한 상기 서비스의 제1 이력 정보에 기초하여, 상기 제1 이용 예정 내역의 유효성을 검증하는 단계; 및 상기 제1 이용 예정 내역의 유효성을 검증한 결과를 상기 사업자의 단말기로 전송하는 단계를 포함하는 방법이 제공된다.According to one side, in the operation method of the first node on the network of the blockchain that distributes and manages the ledger that records the usage history of the service using the electronic code, the first electronic code of the same type as the electronic code from the terminal of the operator Receiving a first scheduled usage of the service using the scanned first data and the first electronic code; And extracting first encrypted data used to record the usage history of the service in the ledger from the first data. Verifying the validity of the first scheduled usage history based on the first history information of the service for the first encrypted data and the first electronic code recorded in the ledger; And transmitting a result of verifying the validity of the first scheduled usage details to a terminal of the operator.

다른 일측에 따르면, 전자 코드를 이용한 서비스의 이용 내역을 기록한 원장을 분산하여 관리하는 블록체인의 네트워크 상의 제1 노드의 동작 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체가 제공된다.According to another side, a recording medium readable by a computer recording a program for executing a method of operating a first node on a network of a blockchain that distributes and manages a ledger recording a service history using electronic codes is provided by a computer do.

또 다른 일측에 따르면, 전자 코드를 이용한 서비스의 이용 내역을 기록한 원장을 분산하여 관리하는 블록체인의 네트워크 상의 노드들 및 외부 장치와 통신을 수행하는 통신 장치; 프로세서; 및 상기 프로세서에 의해 실행 가능한 명령어들을 저장하는 메모리를 포함하고, 상기 프로세서는, 상기 명령어들을 실행함으로써, 사업자의 단말기로부터 상기 전자 코드와 동일한 종류인 제1 전자 코드를 스캔한 제1 데이터 및 상기 제1 전자 코드를 이용한 상기 서비스의 제1 이용 예정 내역을 상기 통신 장치를 통해 수신하고, 상기 제1 데이터로부터 상기 원장에 상기 제1 전자 코드를 이용한 상기 서비스의 이용 내역을 기록하는 데에 이용되는 제1 암호화 데이터를 추출하고, 상기 제1 암호화 데이터 및 상기 원장에 기록된 상기 제1 전자 코드에 대한 상기 서비스의 제1 이력 정보에 기초하여, 상기 제1 이용 예정 내역의 유효성을 검증하고, 상기 제1 이용 예정 내역의 유효성을 검증한 결과를 상기 통신 장치를 통해 상기 사업자의 단말기로 전송하는, 노드가 제공된다.According to another aspect, a communication device that communicates with nodes and external devices on a network of a blockchain that distributes and manages a ledger that records usage history of a service using an electronic code; Processor; And a memory for storing instructions executable by the processor, wherein the processor executes the instructions to scan first data and first data of the same type as the electronic code from the operator's terminal. 1 A method used to receive a first usage schedule of the service using an electronic code through the communication device and to record a usage history of the service using the first electronic code from the first data to the ledger 1 Extracting the encrypted data, and verifying the validity of the first scheduled use history based on the first history information of the service for the first encrypted data and the first electronic code recorded in the ledger, 1 A node is provided that transmits a result of verifying the validity of the schedule to be used to the terminal of the operator through the communication device.

또 다른 일측에 따르면, 통신 장치; 프로세서; 및 상기 프로세서에 의해 실행 가능한 명령어들을 저장하는 메모리를 포함하고, 상기 프로세서는, 상기 명령어들을 실행함으로써, 제1 서비스를 제공하는 데에 이용되는 정보를 포함하는 제1 데이터를 생성하고, 상기 제1 데이터에 할당된 제1 암호화 키를 이용하여 상기 제1 데이터를 암호화하여 제1 암호화 데이터를 생성하고, 전자 코드를 이용한 서비스의 이용 내역을 기록한 원장을 분산하여 관리하는 블록체인의 네트워크 상의 적어도 하나의 노드 또는 상기 전자 코드를 이용하여 상기 서비스가 제공되도록 하는 복수의 사업자의 단말기로 상기 제1 암호화 데이터 및 상기 제1 데이터에 할당된 제1 복호화 키를 상기 통신 장치를 통해 전송하고, 상기 제1 암호화 데이터를 포함하는 상기 제1 전자 코드를 생성하고, 상기 제1 전자 코드를 외부 장치로 배포하는, 서버가 제공된다.According to another aspect, the communication device; Processor; And a memory for storing instructions executable by the processor, wherein the processor generates first data including information used to provide a first service by executing the instructions, and the first At least one on the network of the blockchain that manages by distributing and managing the ledger that records the usage history of the service by using the electronic code to generate the first encrypted data by encrypting the first data using the first encryption key allocated to the data. The first encryption data and the first decryption key assigned to the first data are transmitted to the terminal of a plurality of operators that use the node or the electronic code to provide the service, and the first encryption is performed. A server is provided that generates the first electronic code including data and distributes the first electronic code to an external device.

블록체인에 기반하여 전자 코드를 이용한 서비스를 제공함으로써, 보안성이 강화된 서비스를 제공할 수 있다.By providing services using electronic codes based on blockchain, it is possible to provide services with enhanced security.

본 개시는, 다음의 자세한 설명과 그에 수반되는 도면들의 결합으로 쉽게 이해될 수 있으며, 참조 번호(reference numerals)들은 구조적 구성요소(structural elements)를 의미한다.
도 1은 일실시예에 따라, 블록체인에 기반하여 전자 코드를 이용한 서비스가 제공되는 방법을 설명하기 위한 개념도이다.
도 2는 일실시예에 따라, 블록체인에 기반하여 전자 코드를 이용한 서비스가 제공되는 방법을 설명하기 위한 흐름도이다.
도 3은 일실시예에 따라, 전자 코드를 이용한 서비스의 이용 내역을 기록한 원장을 분산하여 관리하는 블록체인의 네트워크 상의 노드의 동작 방법을 설명하기 위한 흐름도이다.
도 4는 일실시예에 따라, 제1 이용 예정 내역의 유효성을 검증한 결과에 따라 블록체인의 네트워크 상의 노드의 동작 방법을 설명하기 위한 흐름도이다.
도 5는 일실시예에 따라, 블록체인의 네트워크 상의 노드에서 제1 이용 예정 내역의 유효성을 검증하는 방법을 설명하기 위한 도면이다.
도 6은 일실시예에 따라, 사업자의 단말기에서 제1 전자 코드를 스캔한 제1 데이터 및 제1 이용 예정 내역을 암호화하여 블록체인의 네트워크 상의 노드로 전송하는 과정을 설명하기 위한 도면이다.
도 7은 일실시예에 따라, 블록체인의 네트워크 상의 노드에서 사업자의 단말기에서 전송된 정보의 유효성을 검증하고, 제1 전자 코드를 스캔한 제1 데이터에 포함된 서비스의 현재 정보 및 제1 이용 예정 내역 정보를 획득하는 과정을 설명하기 위한 도면이다.
도 8은 일실시예에 따라, 블록체인의 네트워크 상의 노드에서 서비스의 현재 정보와 제1 전자 코드의 이력 정보를 비교하여, 제1 이용 예정 내역의 유효성을 검증하는 과정을 설명하기 위한 도면이다.
도 9는 일실시예에 따라, 전자 코드를 이용한 서비스의 이용 내역을 기록한 원장과 관련된 블록 및 블록체인의 구조를 설명하기 위한 블록도이다.
도 10은 일실시예에 따라, 블록체인의 네트워크 상의 노드의 구성을 도시한 블록도이다.
도 11은 일실시예에 따라, 소정 서비스를 제공하는 데에 이용되는 정보를 포함하는 전자 코드를 생성하여 배포하는 서버의 동작 방법을 설명하기 위한 흐름도이다.
도 12는 일실시예에 따라, 소정 서비스를 제공하는 데에 이용되는 정보를 포함하는 전자 코드를 생성하여 배포하는 서버의 구성을 도시한 블록도이다.
The present disclosure can be easily understood by the following detailed description and combinations of the accompanying drawings, and reference numerals refer to structural elements.
1 is a conceptual diagram illustrating a method of providing a service using an electronic code based on a blockchain, according to an embodiment.
2 is a flowchart for explaining a method of providing a service using an electronic code based on a blockchain, according to an embodiment.
3 is a flowchart for explaining a method of operating a node on a network of a blockchain that distributes and manages a ledger recording a usage history of a service using an electronic code according to an embodiment.
4 is a flowchart for explaining a method of operating a node on a network of a blockchain according to a result of verifying the validity of a first scheduled use schedule according to an embodiment.
5 is a diagram for explaining a method of verifying the validity of a first scheduled usage history at a node on a network of a blockchain, according to an embodiment.
FIG. 6 is a diagram for explaining a process of encrypting the first data scanned by the operator's terminal and the first scheduled use history, and transmitting the encrypted data to a node on a blockchain network, according to an embodiment.
7 is a diagram for verifying the validity of information transmitted from a terminal of an operator at a node on a network of a blockchain, according to an embodiment, and present information and first use of a service included in first data scanned by a first electronic code It is a diagram for explaining a process of acquiring scheduled history information.
FIG. 8 is a diagram for explaining a process of verifying the validity of a first scheduled use history by comparing current information of a service and history information of a first electronic code at a node on a blockchain network according to an embodiment.
9 is a block diagram for explaining the structure of a block and a blockchain related to a ledger recording a usage history of a service using an electronic code according to an embodiment.
10 is a block diagram showing the configuration of a node on a network of a blockchain, according to an embodiment.
11 is a flowchart illustrating an operation method of a server that generates and distributes electronic code including information used to provide a predetermined service according to an embodiment.
12 is a block diagram showing a configuration of a server that generates and distributes electronic codes including information used to provide a predetermined service according to an embodiment.

이하에서는 도면을 참조하여 다양한 실시예들을 상세히 설명한다. 이하에서 설명되는 실시예들은 여러 가지 상이한 형태로 변형되어 실시될 수도 있다. 실시예들의 특징을 보다 명확히 설명하기 위하여 이하의 실시예들이 속하는 기술분야에서 통상의 지식을 가진 자에게 널리 알려져 있는 사항들에 관해서 자세한 설명은 생략한다.Hereinafter, various embodiments will be described in detail with reference to the drawings. The embodiments described below may be implemented in various different forms. In order to more clearly describe the features of the embodiments, detailed descriptions of the matters well known to those skilled in the art to which the following embodiments pertain will be omitted.

한편, 본 명세서에서 어떤 구성이 다른 구성과 "연결"되어 있다고 할 때, 이는 '직접적으로 연결'되어 있는 경우뿐 아니라, '그 중간에 다른 구성을 사이에 두고 연결'되어 있는 경우도 포함한다. 또한, 어떤 구성이 다른 구성을 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한, 그 외 다른 구성을 제외하는 것이 아니라 다른 구성들 더 포함할 수도 있다는 것을 의미한다.Meanwhile, in the present specification, when a component is "connected" with another component, this includes not only a case of'directly connecting', but also a case of'connecting with other components in between'. In addition, when it is said that a configuration "includes" another configuration, this means that unless otherwise stated, other configurations may be excluded and other configurations may be included.

또한, 본 명세서에서 사용되는 '제 1' 또는 '제 2' 등과 같이 서수를 포함하는 용어는 다양한 구성 요소들을 설명하는데 사용할 수 있지만, 상기 구성 요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성 요소를 다른 구성 요소로부터 구별하는 목적으로만 사용된다.In addition, terms including an ordinal number such as'first' or'second' used in the present specification can be used to describe various components, but the components should not be limited by the terms. The terms are used only for the purpose of distinguishing one component from other components.

본 명세서에서, "블록체인"은 무결성을 확보하고 유지하기 위해 순서에 따라 연결된 블록들이 서비스의 이용 내역 정보를 암호화 기법과 보안기술을 이용해 협상하는 알고리즘으로 구성된 소프트웨어 요소를 활용하는 원장(ledger)의 분산 P2P (Peer to Peer)시스템을 의미할 수 있다. 여기서, 분산 P2P 시스템은 분산 시스템의 특수한 형태일 수 있다. 또한, P2P 시스템은 중앙 노드의 조정 없이 네크워크의 모든 노드들이 서로에게 자원(처리 능력, 저장 공간, 데이터 또는 네트워크 대역폭 등)을 제공할 수 있다. 또한, "블록체인"은 이용 내역 정보를 기록한 원장을 특정 기관의 중앙 서버가 아닌 P2P 네트워크에 분산하여 네트워크 내의 노드들이 공동으로 기록하고 관리하는 분산원장(distributed ledger) 기술을 의미할 수 있다.In the present specification, "blockchain" is a ledger that utilizes software elements composed of algorithms in which blocks connected in order to negotiate service usage information using encryption and security technologies in order to secure and maintain integrity. It may mean a distributed peer-to-peer (P2P) system. Here, the distributed P2P system may be a special form of the distributed system. In addition, in a P2P system, all nodes of a network can provide resources (processing power, storage space, data or network bandwidth, etc.) to each other without coordination of a central node. Further, "blockchain" may mean a distributed ledger technology in which nodes in a network are jointly recorded and managed by distributing the ledger recording the usage history information to a P2P network rather than a central server of a specific institution.

본 명세서에서, "해시 함수"는 어떤 형태의 데이터든 입력 데이터의 길이와 상관없이 고정된 길이의 숫자로 변환하는 함수를 의미할 수 있다. 해시 함수는 입력 데이터를 구성하는 비트와 바이트를 이용하여 해시값을 산출할 수 있다.In the present specification, "hash function" may mean a function that converts any type of data into a fixed-length number regardless of the length of input data. The hash function can calculate a hash value using bits and bytes composing input data.

본 명세서에서, "단말기"은 스마트폰, 태블릿 PC, PC, TV, 스마트 TV, 휴대폰, PDA(personal digital assistant), 랩톱, 또는 비모바일 컴퓨팅 장치 등일 수 있으나, 이에 제한되지 않는다.In the present specification, "terminal" may be a smart phone, a tablet PC, a PC, a TV, a smart TV, a mobile phone, a personal digital assistant (PDA), a laptop, or a non-mobile computing device, but is not limited thereto.

본 명세서에서, "노드"는 블록체인의 네트워크 내에서 구성요소를 의미할 수 있다. 예를 들면, 노드는 특수 목적 컴퓨터(Special-purpose Computer), 범용 컴퓨터(General-purpose Computer), 슈퍼 컴퓨터(Supercomputer), 대형 컴퓨터(Mainframe Computer), 개인용 컴퓨터(Personal Computer), 스마트폰, 태블릿 PC 등일 수 있으나, 이에 제한되지 않는다.In this specification, "node" may mean a component within a network of blockchains. For example, the node is a special-purpose computer, a general-purpose computer, a supercomputer, a mainframe computer, a personal computer, a smartphone, and a tablet PC. Etc., but is not limited thereto.

도 1은 일실시예에 따라, 블록체인에 기반하여 전자 코드를 이용한 서비스가 제공되는 방법을 설명하기 위한 개념도이다.1 is a conceptual diagram illustrating a method of providing a service using an electronic code based on a blockchain, according to an embodiment.

서버(10)는 블록체인에 기반하여 서비스를 제공하는 데에 이용되는 전자 코드를 생성하여 배포할 수 있다. 여기서, 서버(10)를 관리하는 관리자는, 서비스가 원활하게 제공될 수 있도록 전자 코드를 생성하여 배포하는 공급자일 수 있다.The server 10 can generate and distribute electronic codes used to provide services based on a blockchain. Here, the administrator managing the server 10 may be a provider that generates and distributes electronic codes so that services can be provided smoothly.

서버(10)는 소정의 서비스를 제공하는 데에 이용되는 정보를 생성할 수 있다. 예를 들면, 서비스는 소정 금액의 지불 수단인 상품권 사용 서비스, 티켓 사용 서비스, 충전식 티켓 사용 서비스, 소정 결제 기능을 탑재한 사원증 사용 서비스, 소정 결제 기능을 제공하는 애플리케이션 서비스일 수 있고, 이에 제한되지 않는다. 또한, 티켓 사용 서비스에는, 일회용 탑승권 사용 서비스, 정기 탑승권 사용 서비스, 입장권 등의 티켓 사용 서비스가 포함될 수 있고, 이에 제한되지 않는다.The server 10 may generate information used to provide a predetermined service. For example, the service may be a voucher use service, a ticket use service, a rechargeable ticket use service, an employee ID card service equipped with a predetermined payment function, and an application service providing a predetermined payment function, which are not limited thereto. Does not. In addition, the ticket use service may include a ticket use service such as a disposable boarding pass use service, a regular boarding pass use service, or an admission ticket, but is not limited thereto.

예를 들어, 서비스가 상품권 사용 서비스인 경우, 서버(10)는 상품권 발행에 필요한 정보를 생성할 수 있다. 구체적으로, 상품권 발행에 필요한 정보는, 상품권의 종류, 상품권의 코드 번호, 상품권의 금액, 상품권의 유효기간, 상품권을 이용할 수 있는 거래처 중 적어도 하나에 대한 정보를 포함할 수 있다.For example, when the service is a gift certificate use service, the server 10 may generate information necessary for issuing a gift certificate. Specifically, the information required for issuance of the gift certificate may include information on at least one of the type of the gift certificate, the code number of the gift certificate, the amount of the gift certificate, the expiration date of the gift certificate, and the customers who can use the gift certificate.

서버(10)는 생성된 서비스를 제공하는 데에 이용되는 정보를 암호화 하여 암호화 데이터를 생성할 수 있다. 서버(10)는 생성된 암호화 데이터를 서비스의 이용 내역을 기록한 원장을 분산하여 관리하는 블록체인의 네트워크의 노드(20)로 전송할 수 있다. 여기서, 노드(20)는 전자 코드를 생성하여 배포하는 공급자의 서버, 전자 코드를 이용하여 서비스가 제공되도록 하는 복수의 사업자의 서버일 수 있다. 또한, 서버(10)는 생성된 암호화 데이터를 복수의 사업자 각각의 단말기로 전송할 수 있다.The server 10 may generate encrypted data by encrypting information used to provide the generated service. The server 10 may transmit the generated encrypted data to the node 20 of the network of the blockchain that distributes and manages the ledger recording the service usage history. Here, the node 20 may be a server of a provider that generates and distributes an electronic code, or a server of a plurality of operators to provide a service using the electronic code. In addition, the server 10 may transmit the generated encrypted data to each terminal of a plurality of operators.

서버(10)는 암호화 데이터를 포함하는 전자 코드를 생성할 수 있다. 여기서, 전자 코드는 QR 코드, 바코드, 칼라 코드, 및 문자 또는 기호로 구성된 코드 중 하나의 코드일 수 있고, 이에 제한되지 않는다. 서버(10)는 전자 코드를 요청한 외부 장치로 전자 코드를 전송할 수 있다. 예를 들면, 서버(10)는 발행된 상품권을 온라인 상에서 판매할 수 있다. 서버(10)는 상품권을 구매한 사용자의 단말기(40)로 전자 코드를 전송할 수 있다. 도 1에서, 전자 코드는 서버(10)가 사용자의 단말기(40)로 전송하는 구성을 도시하였으나, 전자 코드는 오프라인 상으로 전자 코드가 인쇄된 지류로도 제공될 수 있다.The server 10 may generate an electronic code including encrypted data. Here, the electronic code may be one of a QR code, a barcode, a color code, and a code composed of letters or symbols, but is not limited thereto. The server 10 may transmit the electronic code to an external device that has requested the electronic code. For example, the server 10 may sell the issued gift certificate online. The server 10 may transmit an electronic code to the terminal 40 of the user who purchased the gift certificate. In FIG. 1, the electronic code shows a configuration in which the server 10 transmits to the user's terminal 40, but the electronic code may also be provided as a paper feed with the electronic code printed offline.

도 1에 도시된 바와 같이, 제1 사업자의 단말기(30)는 온라인 또는 오프라인으로 제1 사용자가 보유한 제1 전자 코드를 스캔한 제1 데이터를 획득할 수 있다. 또한, 제1 사업자의 단말기(30)는 제1 전자 코드를 이용한 서비스의 이용 예정 내역을 획득할 수 있다. 여기서, "스캔"은 전자 코드를 판독하는 방식을 의미할 수 있다. 예를 들면, 제1 사업자의 단말기(30)는 오프라인 상에서 NFC(Near Field Communication) 방식, BLE(Bluetooth Low Energy) 방식 바코드 방식으로 전자 코드를 판독할 수 있다.As shown in FIG. 1, the terminal 30 of the first operator may acquire first data that is scanned online or offline by the first electronic code held by the first user. In addition, the terminal 30 of the first operator may obtain a schedule of use of the service using the first electronic code. Here, "scan" may mean a method of reading an electronic code. For example, the terminal 30 of the first operator may read an electronic code offline using a NFC (Near Field Communication) method or a Bluetooth Low Energy (BLE) barcode method.

제1 사업자의 단말기(30)는 제1 전자 코드에 기초하여 소정의 서비스가 수행될 수 있는지를 확인할 수 있다. 구체적으로, 제1 사업자의 단말기(30)는 제1 전자 코드 내에 포함된 암호화 데이터에 기초하여 이용 예정 내역에 대응되는 서비스가 수행될 수 있는지에 대한 이용 예정 내역의 유효성 검증을 블록체인의 네트워크 상의 노드들(20, 20-2, 20-3, 20-4, 20-5) 중 제1 노드(20)로 요청할 수 있다. 블록체인의 네트워크 상의 제1 노드(20)는 제1 전자 코드에 포함된 암호화 데이터 및 원장에 기록된 제1 전자 코드에 대한 서비스의 이력 정보에 기초하여, 이용 예정 내역의 유효성을 검증할 수 있다. 블록체인의 네트워크 상의 제1 노드(20)는 이용 예정 내역의 유효성을 검증한 결과를 제1 사업자의 단말기(30)로 전송할 수 있다.The terminal 30 of the first operator may check whether a predetermined service can be performed based on the first electronic code. Specifically, the terminal 30 of the first operator performs validation of the scheduled usage details on whether the service corresponding to the expected usage history can be performed based on the encrypted data included in the first electronic code on the blockchain network. A request may be made to the first node 20 among the nodes 20, 20-2, 20-3, 20-4, and 20-5. The first node 20 on the network of the blockchain can verify the validity of the schedule to be used based on the encryption data included in the first electronic code and the service history information for the first electronic code recorded in the ledger. . The first node 20 on the network of the blockchain may transmit the result of verifying the validity of the schedule to be used to the terminal 30 of the first operator.

도 2는 일실시예에 따라, 블록체인에 기반하여 전자 코드를 이용한 서비스가 제공되는 방법을 설명하기 위한 흐름도이다.2 is a flowchart for explaining a method of providing a service using an electronic code based on a blockchain, according to an embodiment.

단계 S201에서, 서버(10)는 소정의 서비스를 제공하는 데에 이용되는 정보를 포함하는 암호화 데이터를 생성할 수 있다. 구체적으로, 서버(10)는 소정의 서비스를 제공하는 데에 이용되는 정보를 생성하고, 생성된 정보를 암호화하여 암호화 데이터를 생성할 수 있다. 여기서, 정보를 암호화할 때 이용되는 암호화 키는 정보에 고유하게 할당된 것일 수 있다. 예를 들면, 서버(10)는 상품권 사용 서비스를 제공하기 위해 제1 상품권 발행에 필요한 제1 정보를 생성할 수 있다. 서버(10)는 제1 정보에 고유하게 할당된 제1 암호화 키를 이용하여 제1 정보를 암호화하여 제1 암호화 데이터를 생성할 수 있다.In step S201, the server 10 may generate encrypted data including information used to provide a predetermined service. Specifically, the server 10 may generate information used to provide a predetermined service, and encrypt the generated information to generate encrypted data. Here, the encryption key used when encrypting information may be uniquely assigned to the information. For example, the server 10 may generate first information necessary for issuing a first gift certificate to provide a gift certificate use service. The server 10 may generate the first encrypted data by encrypting the first information using the first encryption key uniquely assigned to the first information.

단계 S202에서, 서버(10)는 암호화 데이터를 전자 코드를 이용한 서비스의 이용 내역을 기록한 원장을 분산하여 관리하는 블록체인의 네트워크 상의 노드(20)로 전송할 수 있다. 또한, 서버(10)는 암호화 데이터를 복호화할 수 있는 복호화 키를 블록체인의 네트워크 상의 노드(20)로 전송할 수 있다. 블록체인의 네트워크 상의 노드들(20, 20-2, 20-3, 20-4, 20-5)은 서버(10)에서 수신된 암호화 데이터를 복호화하고, 복호화된 데이터로부터 서버(10)에서 생성된 초기 정보를 획득할 수 있다. 블록체인의 네트워크 상의 노드들(20, 20-2, 20-3, 20-4, 20-5)은 초기 정보를 원장에 기록할 수 있고, 이후에 사업자의 단말기(30)로부터 수신된 이용 예정 내역의 유효성을 검증하는 데에 초기 정보를 참조할 수 있다.In step S202, the server 10 may transmit the encrypted data to the node 20 on the network of the blockchain that distributes and manages the ledger recording the usage history of the service using the electronic code. In addition, the server 10 may transmit a decryption key capable of decrypting the encrypted data to the node 20 on the network of the blockchain. Nodes 20, 20-2, 20-3, 20-4, and 20-5 on the network of the blockchain decrypt the encrypted data received from the server 10 and generate it from the decrypted data in the server 10 Can obtain the initial information. Nodes (20, 20-2, 20-3, 20-4, 20-5) on the network of the blockchain can record initial information in the ledger, and then use the received information from the terminal 30 of the operator Initial information can be used to verify the validity of the statement.

또한, 단계 S203에서, 서버(10)는 암호화 데이터를 사업자의 단말기(30)로 전송할 수 있다. 또한, 서버(10)는 암호화 데이터를 복호화할 수 있는 복호화 키를 사업자의 단말기(30)로 전송할 수 있다.In addition, in step S203, the server 10 may transmit the encrypted data to the terminal 30 of the operator. In addition, the server 10 may transmit a decryption key capable of decrypting the encrypted data to the operator's terminal 30.

단계 S204에서, 서버(10)는 암호화 데이터를 포함하는 전자 코드를 생성할 수 있다. 여기서, 전자 코드는, QR 코드, 바코드, 칼라 코드, 및 문자 또는 기호로 구성된 코드 중 하나의 코드일 수 있다. 서버(10)는 전자 코드를 외부 장치로 배포할 수 있다. 단계 S205에서, 서버(10)는 제1 전자 코드를 사용자의 단말기(40)로 전송할 수 있다.In step S204, the server 10 may generate an electronic code including encrypted data. Here, the electronic code may be one of a QR code, a barcode, a color code, and a code composed of letters or symbols. The server 10 may distribute electronic codes to external devices. In step S205, the server 10 may transmit the first electronic code to the user's terminal 40.

단계 S206에서, 사용자의 단말기(40)는 제1 전자 코드를 이용하여 사업자의 단말기(30)로 서비스의 제공을 요청할 수 있다.In step S206, the user's terminal 40 may request the provision of the service to the operator's terminal 30 using the first electronic code.

단계 S207에서, 사업자의 단말기(30)는 제1 전자 코드를 스캔한 제1 데이터를 획득할 수 있다. 여기서, "스캔"은 전자 코드를 판독하는 방식을 의미할 수 있다. 예를 들면, 제1 사업자의 단말기(30)는 오프라인 상에서 NFC(Near Field Communication) 방식, BLE(Bluetooth Low Energy) 방식 바코드 방식으로 전자 코드를 판독할 수 있다. 단계 S208에서, 사업자의 단말기(30)는 사용자 단말기로부터 수신된 서비스의 제공 요청에 따라, 제1 이용 예정 내역을 획득할 수 있다. 예를 들면, 서비스가 상품권 사용 서비스인 경우, 제1 이용 예정 내역은 A 상품권을 50,000원 사용하는 것일 수 있다. 다른 예를 들면, 서비스가 티겟 사용 서비스인 경우, 제1 이용 예정 내역은 티켓을 사용하는 것일 수 있다.In step S207, the operator's terminal 30 may acquire the first data scanned by the first electronic code. Here, "scan" may mean a method of reading an electronic code. For example, the terminal 30 of the first operator may read an electronic code offline using a NFC (Near Field Communication) method or a Bluetooth Low Energy (BLE) barcode method. In step S208, the operator's terminal 30 may obtain a first scheduled use schedule according to a request for providing a service received from the user terminal. For example, when the service is a gift voucher use service, the first scheduled use may be using a gift voucher 50,000 won. For another example, when the service is a ticket-use service, the first scheduled use schedule may be to use a ticket.

단계 S209에서, 사업자의 단말기(30)는 제1 데이터 및 제1 이용 예정 내역을 블록체인의 네트워크 상의 노드(20)로 전송할 수 있다. 즉, 사업자의 단말기(30)는 제1 이용 예정 내역에 따른 서비스가 제공 가능한지를 결정하기 위해 제1 이용 예정 내역의 유효성 검증을 블록체인의 네트워크 상의 노드(20)로 요청할 수 있다. 여기서, 사업자의 단말기(30)는 블록체인의 네트워크 상의 노드들(20, 20-2, 20-3, 20-4, 20-5) 중 특정 노드로 제1 데이터 및 제1 이용 예정 내역을 전송할 수 있다. 예를 들면, 특정 노드는 전자 코드에 대한 서비스의 이용 내역을 기록하는 원장을 관리하는 사업자의 서버일 수 있다. 또한, 특정 노드는 제1 전자 코드를 생성하여 배포한 공급자의 서버일 수 있다.In step S209, the operator's terminal 30 may transmit the first data and the first scheduled usage information to the node 20 on the blockchain network. That is, the operator's terminal 30 may request the validity of the first scheduled usage details to the node 20 on the blockchain network in order to determine whether a service according to the first usage history is available. Here, the operator's terminal 30 transmits the first data and the first scheduled usage details to a specific node among nodes 20, 20-2, 20-3, 20-4, and 20-5 on the blockchain network. Can be. For example, a specific node may be a server of an operator managing a ledger that records a service usage history for an electronic code. Further, the specific node may be a server of a provider that generates and distributes the first electronic code.

단계 S210에서, 블록체인의 네트워크 상의 노드(20)는 제1 데이터에 포함된 제1 암호화 데이터 및 원장에 기록된 제1 이력 정보에 기초하여, 제1 이용 예정 내역의 유효성을 검증할 수 있다. 블록체인의 네트워크 상의 노드(20)에서 이용 예정 내역의 유효성을 검증하는 구체적인 과정은 도 3 내지 도 8에서 설명한다. 단계 S211에서, 노드(20)는 제1 이용 예정 내역의 유효성을 검증한 결과를 사업자의 단말기(30)로 전송할 수 있다.In step S210, the node 20 on the network of the blockchain may verify the validity of the first scheduled usage history based on the first encryption data included in the first data and the first history information recorded in the ledger. The detailed process of verifying the validity of the schedule to be used by the node 20 on the network of the blockchain will be described in FIGS. In step S211, the node 20 may transmit a result of verifying the validity of the first scheduled usage details to the terminal 30 of the operator.

단계 S212에서, 제1 이용 예정 내역이 유효하면, 사업자의 단말기(30)는 제1 이용 예정 내역에 대응되는 서비스를 사용자의 단말기(40)로 제공할 수 있다. 또한, 사업자의 단말기(30)는 서비스에 대한 제1 이용 내역을 사용자의 단말기(40)로 전송할 수 있다. 단계 S213에서, 사업자의 단말기(30)는 제1 이용 내역을 노드(20)로 전송할 수 있다.In step S212, if the first use schedule is valid, the operator's terminal 30 may provide a service corresponding to the first use schedule to the user's terminal 40. In addition, the operator's terminal 30 may transmit the first usage history for the service to the user's terminal 40. In step S213, the operator's terminal 30 may transmit the first usage history to the node 20.

단계 S214에서, 노드(20)는 원장에 제1 이용 내역을 기록할 수 있다. 블록체인의 네트워크 상의 노드(20)에서 원장에 이용 내역을 기록하는 과정은 도 4 내지 도 8에서 설명한다. 단계 S215에서, 노드(20)는 서버(10)로 제1 이용 내역 및 원장에 제1 이용 내역이 기록되었음을 알리는 메시지를 전송할 수 있다.In step S214, the node 20 may record the first usage history in the ledger. The process of recording the usage history in the ledger at the node 20 on the network of the blockchain will be described in FIGS. 4 to 8. In step S215, the node 20 may transmit a message informing the server 10 that the first usage history and the first usage history are recorded in the ledger.

도 3은 일실시예에 따라, 전자 코드를 이용한 서비스의 이용 내역을 기록한 원장을 분산하여 관리하는 블록체인의 네트워크 상의 노드의 동작 방법을 설명하기 위한 흐름도이다.3 is a flowchart for explaining a method of operating a node on a network of a blockchain that distributes and manages a ledger recording a usage history of a service using an electronic code according to an embodiment.

단계 S310에서, 노드(20)는 사업자의 단말기(30)로부터 제1 전자 코드를 스캔한 제1 데이터 및 제1 전자 코드를 이용한 서비스의 제1 이용 예정 내역을 수신할 수 있다. 노드(20)는 사업자의 단말기(30)로부터 서비스의 제1 이용 예정 내역에 대한 유효성 검증 요청을 수신할 수 있다. 또한, 노드(20)는 전자 코드를 생성하여 배포하는 서버(10)로부터 전자 코드와 동일한 종류의 전자 코드들 각각에 포함된 초기 정보를 수신할 수 있다. 노드(20)는 초기 정보를 원장에 기록할 수 있고, 제1 이용 예정 내역의 유효성을 검증하는 데에 초기 정보를 참조할 수 있다. 또한, 노드(20)는 서버(10)로부터 전자 코드들 각각에 포함된 암호화 데이터를 복호화하는 데에 이용되는 전자 코드들 각각의 복호화 키를 수신할 수 있다.In step S310, the node 20 may receive the first data scheduled to use the first data scanned by the operator's terminal 30 and the service using the first electronic code. The node 20 may receive a validity verification request for the first scheduled use of the service from the terminal 30 of the operator. In addition, the node 20 may receive initial information included in each of the electronic codes of the same type as the electronic code from the server 10 that generates and distributes the electronic code. The node 20 may record the initial information in the ledger, and may refer to the initial information to verify the validity of the first scheduled use. In addition, the node 20 may receive a decryption key of each of the electronic codes used to decrypt the encrypted data included in each of the electronic codes from the server 10.

단계 S320에서, 노드(20)는 제1 데이터로부터 원장에 서비스의 이용 내역을 기록하는 데에 이용되는 제1 암호화 데이터를 추출할 수 있다. 제1 암호화 데이터는 제1 이용 예정 내역에 따른 서비스가 제공 가능한지를 결정하는 데에 이용되는 정보를 포함할 수 있다. 예를 들면, 서비스가 상품권 사용 서비스이면, 제1 암호화 데이터는 상품권의 종류, 상품권의 코드 번호, 상품권의 금액, 상품권의 유효기간, 상품권을 이용할 수 있는 거래처 중 적어도 하나에 대한 정보가 암호화된 데이터일 수 있다.In step S320, the node 20 may extract the first encryption data used to record the service usage history in the ledger from the first data. The first encrypted data may include information used to determine whether a service according to the first scheduled use is available. For example, if the service is a gift certificate use service, the first encrypted data is data in which information on at least one of the type of gift certificate, the code number of the gift certificate, the amount of the gift certificate, the expiration date of the gift certificate, and the customer who can use the gift certificate is encrypted. Can be

단계 S330에서, 노드(20)는 제1 암호화 데이터 및 원장에 기록된 제1 전자 코드에 대한 서비스의 제1 이력 정보에 기초하여, 제1 이용 예정 내역의 유효성을 검증할 수 있다. 예를 들면, 서비스가 상품권 사용 서비스이면, 제1 전자 코드에 대한 서비스의 이력 정보는, 제1 전자 코드를 이용하여 상품권을 사용한 이력 정보일 수 있다. 구체적으로, 이력 정보는, 상품권을 사용한 시기, 상품권에서 사용한 금액, 상품권을 사용한 장소 중 적어도 하나의 정보를 포함할 수 있다. 다른 예를 들면, 서비스가 티켓 사용 서비스이면, 제1 전자 코드에 대한 서비스의 이력 정보는, 제1 전자 코드를 이용하여 티켓을 사용한 이력 정보일 수 있다. 이력 정보는, 티켓을 사용한 시기, 티켓을 사용한 장소 중 적어도 하나의 정보를 포함할 수 있다.In step S330, the node 20 may verify the validity of the first scheduled use history based on the first encryption data and the first history information of the service for the first electronic code recorded in the ledger. For example, if the service is a gift certificate use service, the history information of the service for the first electronic code may be history information using the gift certificate using the first electronic code. Specifically, the history information may include information on at least one of the time when the gift certificate was used, the amount used in the gift certificate, and the place where the gift certificate was used. For another example, if the service is a ticket use service, the history information of the service for the first electronic code may be history information using the ticket using the first electronic code. The history information may include at least one information of when the ticket was used and where the ticket was used.

구체적으로, 노드(20)는 제1 전자 코드의 제1 복호화 키를 이용하여 제1 암호화 데이터를 복호화하고, 복호화된 데이터로부터 제1 전자 코드에 의해 제공될 수 있는 서비스의 현재 정보를 획득할 수 있다. 예를 들면, 서비스가 상품권 사용 서비스이면, 서비스의 현재 정보는, 상품권에 남아 있는 금액, 상품권의 유효 기간 중 적어도 하나의 정보를 포함할 수 있다.Specifically, the node 20 may decrypt the first encrypted data using the first decryption key of the first electronic code, and obtain current information of a service that can be provided by the first electronic code from the decrypted data. have. For example, if the service is a gift certificate use service, the current information of the service may include at least one of the amount remaining in the gift certificate and the validity period of the gift certificate.

노드(20)는 서비스의 현재 정보와 원장에 기록된 제1 전자 코드에 대한 제1 이력 정보를 비교하고, 비교 결과에 기초하여 제1 이용 예정 내역의 유효성을 검증할 수 있다.The node 20 may compare the current information of the service with the first history information for the first electronic code recorded in the ledger, and verify the validity of the first scheduled usage based on the comparison result.

노드(20)는 원장에 기록된 이력 정보 중에서 서비스의 현재 정보에 대응되는 제1 전자 코드의 제1 이력 정보가 있는지를 확인할 수 있다. 노드(20)는 확인 결과에 기초하여, 제1 전자 코드의 유효성을 검증할 수 있다. 예를 들면, 원장에 제1 전자 코드의 제1 이력 정보가 있는 경우, 노드(20)는 제1 전자 코드가 유효하다고 결정할 수 있다.The node 20 may check whether there is first history information of the first electronic code corresponding to the current information of the service among the history information recorded in the ledger. The node 20 may verify the validity of the first electronic code based on the verification result. For example, when the ledger has first history information of the first electronic code, the node 20 may determine that the first electronic code is valid.

한편, 제1 전자 코드가 유효하면, 노드(20)는 제1 전자 코드의 제1 이력 정보와 서비스의 현재 정보를 비교하여, 제1 이용 예정 내역에 대응되는 제1 서비스가 제공 가능한지를 판단할 수 있다. 제1 이용 예정 내역에 대응되는 제1 서비스가 제공 가능하다고 판단되면, 노드(20)는 제1 이용 예정 내역을 유효하다고 결정할 수 있다.On the other hand, if the first electronic code is valid, the node 20 compares the first history information of the first electronic code with the current information of the service, and determines whether the first service corresponding to the first scheduled use is available. Can be. When it is determined that the first service corresponding to the first scheduled usage is available, the node 20 may determine that the first scheduled usage is valid.

단계 S340에서, 노드(20)는 제1 이용 예정 내역의 유효성을 검증한 결과를 사업자의 단말기(30)로 전송할 수 있다.In step S340, the node 20 may transmit a result of verifying the validity of the first scheduled usage details to the terminal 30 of the operator.

구체적으로, 제1 이용 예정 내역이 유효하면, 노드(20)는 제1 이용 예정 내역을 승인하는 메시지를 사업자의 단말기(30)로 전송할 수 있다. 반면에, 제1 이용 예정 내역이 유효하지 않으면, 노드(20)는 제1 이용 예정 내역의 승인을 거부하는 메시지를 사업자의 단말기(30)로 전송할 수 있다.Specifically, when the first scheduled use schedule is valid, the node 20 may transmit a message to approve the first scheduled use schedule to the terminal 30 of the operator. On the other hand, if the first scheduled use schedule is not valid, the node 20 may transmit a message for rejecting the approval of the first scheduled use schedule to the terminal 30 of the operator.

도 4는 일실시예에 따라, 제1 이용 예정 내역의 유효성을 검증한 결과에 따라 블록체인의 네트워크 상의 노드의 동작 방법을 설명하기 위한 흐름도이다.4 is a flowchart for explaining a method of operating a node on a network of a blockchain according to a result of verifying the validity of a first scheduled use schedule according to an embodiment.

도 4를 참고하면, 도 3의 단계 S340에 따른 노드(20)의 동작은, 도 4의 단계 S410, S420 및 S430에 따른 구체적인 동작으로 세분화될 수 있다. 단계 S410에서, 노드(20)는 제1 이용 예정 내역이 유효한지를 판단할 수 있다. 단계 S420에서, 제1 이용 예정 내역이 유효하면, 노드(20)는 제1 이용 예정 내역을 승인하는 메시지를 사업자의 단말기(30)로 전송할 수 있다. 단계 S430에서, 제1 이용 예정 내역이 유효하지 않으면, 노드(20)는 제1 이용 예정 내역의 승인을 거부하는 메시지를 사업자의 단말기(30)로 전송할 수 있다.Referring to FIG. 4, the operation of the node 20 according to step S340 of FIG. 3 may be subdivided into specific operations according to steps S410, S420 and S430 of FIG. 4. In step S410, the node 20 may determine whether the first scheduled use is valid. In step S420, if the first scheduled usage is valid, the node 20 may transmit a message to approve the first scheduled usage to the terminal 30 of the operator. In step S430, if the first scheduled usage is not valid, the node 20 may transmit a message to the operator's terminal 30, which rejects the approval of the first scheduled usage.

단계 S440에서, 노드(20)는 제1 이용 예정 내역을 블록체인의 네트워크 상의 다른 노드(20)로 전송할 있다. 또한, 노드(20)는 제1 이용 예정 내역을 후보 블록에 기록할 수 있다.In step S440, the node 20 may transmit the first scheduled usage details to another node 20 on the blockchain network. Further, the node 20 may record the first scheduled use history in a candidate block.

단계 S450에서, 노드(20)는 사업자의 단말기(30)로부터 제1 이용 예정 내역에 따른 서비스의 제1 이용 내역을 수신할 수 있다.In step S450, the node 20 may receive the first usage history of the service according to the first usage schedule from the operator's terminal 30.

단계 S460에서, 노드(20)는 후보 블록에 기록된 제1 이용 예정 내역에 제1 이용 내역을 반영할 수 있다.In step S460, the node 20 may reflect the first usage history in the first usage schedule recorded in the candidate block.

단계 S470에서, 노드(20)는 서비스에 대한 복수의 이용 내역들이 반영된 후보 블록의 작업 증명을 수행하여, 블록체인에 후보 블록을 유효한 블록으로 추가할 수 있다.In step S470, the node 20 may perform a proof-of-work of a candidate block reflecting a plurality of usage details for the service, and add the candidate block to the blockchain as a valid block.

도 5 내지 도 9에서는 서비스와 관련하여, 상품권 사용 서비스에 대하여 설명하지만, 이이 한정되지 않고, 다양한 방면의 서비스에도 적용될 수 있다. 예를 들면, 티켓 사용 서비스, 충전식 티켓 사용 서비스, 소정 결제 기능을 탑재한 사원증 사용 서비스, 소정 결제 기능을 제공하는 애플리케이션 서비스에도 도 5 내지 도 9에서 설명한 방법이 동일하게 적용될 수 있다. 또한, 티켓 아용 서비스에는, 일회용 탑승권 사용 서비스, 정기 탑승권 사용 서비스, 입장권 등의 티켓 사용 서비스가 포함될 수 있고, 이에 제한되지 않는다.In FIGS. 5 to 9, in relation to the service, a gift voucher use service will be described, but this is not restrictive, and may be applied to various services. For example, the methods described in FIGS. 5 to 9 may be equally applied to a ticket use service, a rechargeable ticket use service, an employee ID service equipped with a predetermined payment function, and an application service providing a predetermined payment function. In addition, the ticket use service may include, but is not limited to, a ticket use service such as a disposable boarding pass use service, a regular boarding pass use service, or an admission ticket.

도 5는 일실시예에 따라, 블록체인의 네트워크 상의 노드에서 제1 이용 예정 내역의 유효성을 검증하는 방법을 설명하기 위한 도면이다.5 is a diagram for explaining a method of verifying the validity of a first scheduled usage history at a node on a network of a blockchain, according to an embodiment.

도 5를 참고하면, 사업자의 단말기(30)는 제1 사용자가 보유한 제1 전자 코드를 스캔한 제1 데이터를 획득할 수 있다. 여기서, "스캔"은 전자 코드를 판독하는 방식을 의미할 수 있다. 예를 들면, 사업자 단말기(30)는 NFC 칩, 블루투스 칩, 바코드 리더기 중 적어도 하나를 이용하여 제1 전자 코드를 판독할 수 있다.Referring to FIG. 5, the operator's terminal 30 may acquire first data scanned by the first electronic code held by the first user. Here, "scan" may mean a method of reading an electronic code. For example, the operator terminal 30 may read the first electronic code using at least one of an NFC chip, a Bluetooth chip, and a barcode reader.

예를 들면, 사업자의 단말기(30)는 오프라인 상에서 제1 사용자가 보유한 제1 전자 코드가 포함된 지류로부터 제1 전자 코드를 스캔하여 제1 데이터를 획득할 수 있다. 또한, 사업자의 단말기(30)는 오프라인 상에서 제1 사용자의 단말기(40)에 표시된 제1 전자 코드를 스캔하여 제1 데이터를 획득할 수 있다. 또한, 사업자의 단말기(30)는 온라인 상에서 제1 사용자의 단말기(40)로부터 제1 전자 코드를 스캔한 제1 데이터를 획득할 수 있다.For example, the operator's terminal 30 may obtain the first data by scanning the first electronic code from a branch containing the first electronic code held by the first user while offline. In addition, the operator's terminal 30 may acquire the first data by scanning the first electronic code displayed on the terminal 40 of the first user offline. In addition, the operator's terminal 30 may acquire the first data that is scanned from the first user's terminal 40 online by scanning the first electronic code.

사업자의 단말기(30)는 제1 전자 코드를 이용하여 제공될 서비스에 대한 제1 이용 예정 내역을 획득할 수 있다. 예를 들면, 제1 전자 코드를 이용하여 제공될 서비스는 A 상품권 사용 서비스일 수 있다. 사업자의 단말기(30)는 "A 상품권으로 50,000을 결제"하는 제1 이용 예정 내역을 획득할 수 있다.The operator's terminal 30 may obtain a first scheduled usage of the service to be provided using the first electronic code. For example, a service to be provided using the first electronic code may be A gift certificate use service. The operator's terminal 30 may obtain a first scheduled use history of "paying 50,000 with an A gift certificate."

사업자의 단말기(30)는 제1 데이터 및 제1 이용 예정 내역을 서비스의 이용 내역을 기록한 원장을 분산하여 관리하는 블록체인의 네트워크 상의 제1 노드(20)로 전송할 수 있다.The operator's terminal 30 may transmit the first data and the first scheduled use schedule to the first node 20 on the blockchain network that distributes and manages the ledger recording the service use history.

한편, 제1 노드(20)는 전자 코드를 생성하여 배포하는 서버(10)로부터 전자 코드와 동일한 종류의 전자 코드들 각각에 포함된 초기 정보, 및 전자 코드들 각각에 포함된 암호화 데이터를 복호화 하는 데에 이용되는 전자 코드들 각각의 복호화 키를 수신할 수 있다. 예를 들면, 전자 코드를 이용하여 제공되는 서비스가 상품권 사용 서비스인 경우, 초기 정보는, 상품권의 종류, 상품권에 발행된 금액, 상품권의 코드 번호, 상품권의 유효 기간에 대한 정보를 포함할 수 있다.On the other hand, the first node 20 decrypts the initial information contained in each of the electronic codes of the same type as the electronic code and the encrypted data included in each of the electronic codes from the server 10 that generates and distributes the electronic code. It is possible to receive a decryption key for each of the electronic codes used for des. For example, when the service provided by using the electronic code is a gift certificate use service, the initial information may include information on the type of gift certificate, the amount issued on the gift certificate, the code number of the gift certificate, and the validity period of the gift certificate. .

제1 노드(20)는 제1 전자 코드의 제1 복호화 키를 이용하여 제1 암호화 데이터를 복호화하고, 제1 전자 코드에 의해 제공될 수 있는 서비스의 현재 정보를 획득할 수 있다. 예를 들면, 서비스의 현재 정보는, A 상품권에 남아있는 금액, A 상품권의 코드 번호, A 상품권의 유효 기간에 대한 정보를 포함할 수 있다.The first node 20 may decrypt the first encrypted data using the first decryption key of the first electronic code, and obtain current information of a service that can be provided by the first electronic code. For example, the current information of the service may include information on the amount of money remaining in the A gift certificate, the code number of the A gift certificate, and the validity period of the A gift certificate.

제1 노드(20)는 서비스의 현재 정보와 원장에 기록된 제1 전자 코드에 대한 제1 이력 정보를 비교하여, 제1 이용 예정 내역의 유효성을 검증할 수 있다. 제1 노드(20)는 원장에 기록된 이력 정보 중에서, 서비스의 현재 정보에 대응되는 제1 전자 코드의 제1 이력 정보가 있는지를 확인하여, 제1 전자 코드의 유효성을 검증할 수 있다. 제1 전자 코드가 유효하면, 제1 노드(20)는 제1 전자 코드의 제1 이력 정보와 서비스의 현재 정보를 비교하여, 제1 이용 예정 내역의 유효성을 검증할 수 있다. 제1 노드(20)는 제1 이력 정보와 서비스의 현재 정보의 비교에 따라, 제1 이력 정보가 현재 정보가 일치하는 지를 판단하고, 현재 정보에 기초하여 제1 이용 예정 내역에 대응되는 제1 서비스를 제공할 수 있는지를 판단할 수 있다. 제1 이용 예정 내역이 유효하면, 제1 노드(20)는 제1 이용 예정 내역을 승인하는 메시지를 사업자의 단말기(30)로 전송할 수 있다. 반면에, 제1 전자 코드가 유효하지 않거나, 제1 이용 예정 내역이 유효하지 않으면, 제1 노드(20)는 제1 이용 예정 내역의 승인을 거부하는 메시지를 사업자의 단말기(30)로 전송할 수 있다.The first node 20 may compare the current information of the service with the first history information of the first electronic code recorded in the ledger, and verify the validity of the first scheduled usage. The first node 20 may verify whether there is first history information of the first electronic code corresponding to the current information of the service among the history information recorded in the ledger, and verify the validity of the first electronic code. If the first electronic code is valid, the first node 20 may compare the first history information of the first electronic code with the current information of the service, and verify the validity of the first scheduled usage. The first node 20 determines whether the first history information matches the current information according to the comparison of the first history information and the current information of the service, and based on the current information, the first node 20 corresponds to the first scheduled use schedule It is possible to determine whether a service can be provided. When the first scheduled use schedule is valid, the first node 20 may transmit a message to approve the first scheduled use schedule to the terminal 30 of the operator. On the other hand, if the first electronic code is invalid or the first scheduled usage is not valid, the first node 20 may transmit a message rejecting the approval of the first scheduled usage to the operator's terminal 30. have.

제1 노드(20)는 유효한 제1 이용 예정 내역을 블록체인의 네트워크 상의 다른 노드들로 전송하고, 제1 이용 예정 내역을 제1 노드(20) 내의 후보 블록(510)에 기록할 수 있다. 예를 들면, 제1 노드(20)는 "A 상품권, 코드 번호 XXXX-XXXXX를 50,000원 사용"하는 제1 이용 예정 내역을 후보 블록(510)에 기록할 수 있다.The first node 20 may transmit a valid first usage schedule to other nodes on the network of the blockchain, and record the first usage schedule in the candidate block 510 in the first node 20. For example, the first node 20 may record the first scheduled usage details using "A gift certificate, code number XXXX-XXXXX of 50,000 won" in the candidate block 510.

한편, 사업자의 단말기(30)는 제1 노드(20)로부터 제1 이용 예정 내역을 승인하는 메시지를 수신하면, 제1 이용 예정 내역에 대응되는 제1 서비스를 제1 사용자에게 제공할 수 있다. 사업자의 단말기(30)는 제1 이용 내역을 제1 노드(20)로 전송할 수 있다. 제1 노드(20)는 후보 블록(510)에 기록된 제1 이용 예정 내역에 제1 이용 내역을 반영할 수 있다. 후보 블록(510)에 소정의 이용 내역들이 기록되면, 제1 노드(20)는 후보 블록(510)의 작업 증명을 수행하여 블록체인에 후보 블록(510)을 유효한 블록으로 추가할 수 있다.On the other hand, when the terminal 30 of the operator receives the message for approving the first scheduled usage from the first node 20, the terminal 30 may provide the first service corresponding to the first scheduled usage to the first user. The operator's terminal 30 may transmit the first usage history to the first node 20. The first node 20 may reflect the first usage history in the first usage history recorded in the candidate block 510. When predetermined usage details are recorded in the candidate block 510, the first node 20 may add the candidate block 510 to the blockchain as a valid block by performing proof of work of the candidate block 510.

또한, 제2 노드(20-2)는 제1 노드(20)로부터 수신된 데이터에 기초하여, 제1 이용 예정 내역의 유효성을 검증할 수 있다. 제2 노드(20-2) 내에서 제1 이용 예정 내역이 유효한 것으로 검증되면, 제2 노드(20-2)는 제1 이용 예정 내역을 후보 블록에 기록할 수 있다. 제2 노드(20-2)는 제1 노드(20)로부터 제1 이용 내역을 수신하고, 제1 이용 예정 내역에 제1 이용 내역을 반영할 수 있다. 제2 노드(20-2)는 후보 블록의 작업 증명을 수행하여 유효한 블록을 생성할 수 있다. 블록체인의 네트워크 상의 제3 노드(20-3), 제4 노드(20-4)도 제2 노드(20-2)와 마찬가지로 동작할 수 있다.In addition, the second node 20-2 may verify the validity of the first scheduled use schedule based on the data received from the first node 20. If it is verified that the first scheduled use history is valid within the second node 20-2, the second node 20-2 may record the first scheduled use history in the candidate block. The second node 20-2 may receive the first usage history from the first node 20 and reflect the first usage history in the first usage schedule. The second node 20-2 may generate a valid block by performing proof of work of the candidate block. The third node 20-3 and the fourth node 20-4 on the network of the blockchain may operate similarly to the second node 20-2.

제1 노드(20)에서 유효한 블록을 생성하여 블록체인에 추가하는 과정을 설명하면, 제1 노드(20)는 소정의 이용 내역들에 대한 머클 트리의 루트를 계산할 수 있다. 제1 노드(20)는 블록체인에 추가될 블록의 입장에서 이전 블록 헤더를 가리키는 해시 참조를 생성할 수 있다. 제1 노드(20)는 블록체인에 추가될 블록의 작업 증명 또는 제약 조건에서 필요한 난이도를 획득할 수 있다. 제1 노드(20)는 머클 트리의 루트, 이전 블록 헤더를 가리키는 해시 참조, 난이도, 타임스태프의 데이터와 난스에 해시 함수를 적용하여 생성된 블록해시의 값이 제약 조건을 만족하는지 확인할 수 있다. 제1 노드(20)는 난스를 0부터 1씩 증가시키면서 제약 조건을 만족시키는 난스의 값을 획득하여 후보 블록(1220)에 대한 작업 증명을 수행할 수 있다. 제1 노드(20)는 블록체인에 후보 블록(1220)을 유효한 블록으로 추가할 수 있다. 또한, 제1 노드(20)는 유효한 블록을 블록체인의 네트워크 상의 다른 노드들(20-2, 20-3, 20-4 등)로 전송할 수 있다.When the process of generating a valid block in the first node 20 and adding it to the blockchain is described, the first node 20 may calculate the root of the Merkle tree for predetermined usage details. The first node 20 may generate a hash reference indicating the previous block header from the standpoint of the block to be added to the blockchain. The first node 20 may acquire a difficulty required in the proof of work or constraint of the block to be added to the blockchain. The first node 20 may check whether the value of the block hash that is generated by applying the hash function to the root of the Merkle tree, the hash reference pointing to the previous block header, the difficulty, the timestamp data, and the nonce satisfies the constraint. . The first node 20 may increase the nonce from 0 to 1 and obtain a value of the nonce that satisfies the constraint condition to perform proof of work for the candidate block 1220. The first node 20 may add the candidate block 1220 as a valid block to the blockchain. Also, the first node 20 can transmit a valid block to other nodes (20-2, 20-3, 20-4, etc.) on the blockchain network.

블록체인의 네트워크 상의 각 노드들(20-2, 20-3, 20-4 등)은 제1 노드(20)에서 수신한 유효한 블록에 대한 검증을 수행하여, 각 노드들(20-2, 20-3, 20-4 등)에서 보유하는 블록체인에 유효한 블록을 추가할 수 있다.Each node (20-2, 20-3, 20-4, etc.) on the blockchain network performs verification on a valid block received from the first node 20, and thus, each node 20-2, 20 -3, 20-4, etc.) You can add valid blocks to the blockchain.

도 6은 일실시예에 따라, 사업자의 단말기에서 제1 전자 코드를 스캔한 제1 데이터 및 제1 이용 예정 내역을 암호화하여 블록체인의 네트워크 상의 노드로 전송하는 과정을 설명하기 위한 도면이다.FIG. 6 is a diagram for explaining a process of encrypting the first data scanned by the operator's terminal and the first scheduled use history, and transmitting the encrypted data to a node on a blockchain network, according to an embodiment.

사업자의 단말기(30)는 제1 전자 코드(601)를 스캔한 제1 데이터(611) 및 "A 매장에서 50,000원 사용"하는 제1 이용 예정 내역(612)을 암호화하고, 암호화된 정보(651)를 블록체인의 네트워크 상의 제1 노드(20)로 전송할 수 있다. 여기서, 제1 전자 코드(601)의 제1 데이터(611)는 사업자 단말기(30)에서 제1 전자 코드(601)를 판독한 데이터일 수 있다. 사업자 단말기(30)는 NFC 칩, 블루투스 칩, 바코드 리더기 중 적어도 하나를 이용하여 제1 전자 코드를 판독할 수 있다.The operator's terminal 30 encrypts the first data 611 that scans the first electronic code 601 and the first use schedule 612, which uses “50,000 won in store A,” and encrypts the information 651 ) To the first node 20 on the blockchain network. Here, the first data 611 of the first electronic code 601 may be data that reads the first electronic code 601 from the operator terminal 30. The operator terminal 30 may read the first electronic code using at least one of an NFC chip, a Bluetooth chip, and a barcode reader.

구체적으로, 사업자의 단말기(30)는 제1 전자 코드(601)를 스캔한 제1 데이터(611) 및 "A 매장에서 50,000원 사용"하는 제1 이용 예정 내역(612)을 고유의 데이터를 생성하는 해시 함수에 적용하여, 제1 데이터(611) 및 제1 이용 예정 내역(612)에 대응되는 해시값 "DIRAL28A"(621)을 생성할 수 있다.Specifically, the operator's terminal 30 generates unique data for the first data 611 that scans the first electronic code 601 and for the first use schedule 612, which uses “50,000 won in store A”. By applying it to the hash function, the hash value "DIRAL28A" 621 corresponding to the first data 611 and the first scheduled use history 612 may be generated.

사업자의 단말기(30)는 사업자 단말기의 암호화 키(631)로 해시값 "DIRAL28A"(621)을 암호화하여, 제1 데이터(611) 및 제1 이용 예정 내역(612)의 디지털 서명을 나타내는 제1 암호문 "&DIFPW%IDAL!@DIKWSOB"(641)을 생성할 수 있다. 사업자의 단말기(30)는 제1 암호문"&DIFPW%IDAL!@DIKWSOB"(641)을 제1 데이터(611) 및 제1 이용 예정 내역(612)와 합한 정보(651)를 제1 노드(20)로 전송할 수 있다.The terminal 30 of the operator encrypts the hash value "DIRAL28A" 621 with the encryption key 631 of the operator terminal, and the first representing a digital signature of the first data 611 and the first scheduled use history 612 The ciphertext "&DIFPW%IDAL!@DIKWSOB" 641 may be generated. The terminal 30 of the operator combines the first cipher text "&DIFPW%IDAL!@DIKWSOB" 641 with the first data 611 and the first expected usage history 612, and the first node 20 with the information 651 Can be transferred to.

도 7은 일실시예에 따라, 블록체인의 네트워크 상의 노드에서 사업자의 단말기에서 전송된 정보의 유효성을 검증하고, 제1 전자 코드를 스캔한 제1 데이터에 포함된 서비스의 현재 정보 및 제1 이용 예정 내역 정보를 획득하는 과정을 설명하기 위한 도면이다.7 is a diagram for verifying the validity of information transmitted from a terminal of an operator at a node on a network of a blockchain, according to an embodiment, and present information and first use of a service included in first data scanned by a first electronic code It is a diagram for explaining a process of acquiring scheduled history information.

도 7에 도시된 바와 같이, 제1 노드(20)는 사업자의 단말기(30)로부터 제1 암호문 "&DIFPW%IDAL!@DIKWSOB"(641)을 제1 데이터 및 제1 이용 예정 내역과 합한 정보(651)를 수신할 수 있다. 제1 노드(20)는 정보(651) 내의 제1 데이터 및 제1 이용 예정 내역에 해시함수를 적용하여 해시값 "DIRAL28A"(621)을 생성할 수 있다. 제1 노드(20)는 사업자의 단말기(30)의 복호화 키(711)를 이용하여 제1 암호문 "&DIFPW%IDAL!@DIKWSOB"(641)을 복호화하여 해시값 "DIRAL28A"(621)을 생성할 수 있다. 제1 데이터 및 제1 이용 예정 내역에 해시함수를 적용하여 획득된 해시값 "DIRAL28A"(621)과 제1 암호문"&DIFPW%IDAL!@DIKWSOB"(641)을 복호화하여 획득된 해시값 "DIRAL28A"(621)이 동일하므로, 제1 노드(20)는 사업자의 단말기(30)로부터 수신된 정보(651)는 유효하다고 판단할 수 있다.As illustrated in FIG. 7, the first node 20 combines the first cipher text “&DIFPW%IDAL!@DIKWSOB” 641 from the operator's terminal 30 with the first data and the first scheduled usage information ( 651). The first node 20 may generate a hash value “DIRAL28A” 621 by applying a hash function to the first data in the information 651 and the first scheduled use. The first node 20 decrypts the first ciphertext "&DIFPW%IDAL!@DIKWSOB" 641 using the decryption key 711 of the operator's terminal 30 to generate a hash value "DIRAL28A" 621. Can be. The hash value "DIRAL28A" (621) obtained by applying the hash function to the first data and the first scheduled use, and the hash value "DIRAL28A" obtained by decoding the first ciphertext &DIFPW%IDAL!@DIKWSOB" (641) Since 621 is the same, the first node 20 may determine that the information 651 received from the operator's terminal 30 is valid.

제1 노드(20)는 유효하다고 판단된 정보(651) 내에서 제1 전자 코드에 의해 제공될 수 있는 서비스의 현재 정보(741) 및 제1 이용 예정 내역(612)을 획득할 수 있다. 구체적으로, 제1 노드(20)는 제1 전자 코드를 스캔한 제1 데이터(611)로부터 원장에 서비스의 이용 내역을 기록하는 데에 이용되는 제1 암호화 데이터(721)를 추출할 수 있다. 제1 노드(20)는 제1 전자 코드의 제1 복호화 키(731)를 이용하여 제1 암호화 데이터(721)를 복호화하여, 제1 전자 코드에 의해 제공될 수 있는 서비스의 현재 정보(741)를 획득할 수 있다. 도 7에 도시된 바와 같이, 서비스의 현재 정보(741)는 "A 상품권 XXXX-XXXX, 잔액: 200,000 원, 유효기간: 2025.05"에 대한 정보를 포함할 수 있다.The first node 20 may obtain current information 741 and a first scheduled use history 612 of a service that can be provided by the first electronic code within the information 651 determined to be valid. Specifically, the first node 20 may extract the first encrypted data 721 used to record the usage history of the service in the ledger from the first data 611 that scans the first electronic code. The first node 20 decrypts the first encrypted data 721 using the first decryption key 731 of the first electronic code, and current information 741 of a service that can be provided by the first electronic code Can be obtained. As shown in FIG. 7, the current information 741 of the service may include information on “A gift certificate XXXX-XXXX, balance: 200,000 won, expiration date: 2025.05”.

도 8은 일실시예에 따라, 블록체인의 네트워크 상의 노드에서 서비스의 현재 정보와 제1 전자 코드의 이력 정보를 비교하여, 제1 이용 예정 내역의 유효성을 검증하는 과정을 설명하기 위한 도면이다.FIG. 8 is a diagram for explaining a process of verifying the validity of a first scheduled use history by comparing current information of a service and history information of a first electronic code at a node on a blockchain network according to an embodiment.

제1 노드는 서비스의 현재 정보와 원장에 기록된 제1 전자 코드에 대한 제1 이력 정보를 비교하여, 제1 이용 예정 내역의 유효성을 검증할 수 있다.The first node may compare the current information of the service with the first history information for the first electronic code recorded in the ledger, and verify the validity of the first scheduled use.

도 8의 810을 참고하면, 제1 노드(20)는 전자 코드를 이용한 서비스의 이용 내역을 기록한 원장을 보유할 수 있다. 원장은 서비스의 유효한 이용 내역 정보를 기록한 블록들이 연결된 블록체인으로 구성될 수 있다. 제1 노드(20)는 제1 전자 코드로부터 서비스의 현재 정보를 획득할 수 있다. 제1 노드(20)는 제1 전자 코드의 이력 정보를 원장으로부터 추출할 수 있다. 예를 들면, 제1 노드(20)는 제n-1 블록에 기록된 제1 전자 코드의 제1 이력 정보(811) 및 제n 블록에 기록된 제1 전자 코드의 제2 이력 정보(812)를 추출할 수 있다. 제1 이력 정보(811)는 "A 상품권 XXXX-XXXXX 10,000 원사용, 잔액: 270,000원, 유효기간: 2025.05"를 나타내는 정보를 포함할 수 있다. 또한, 제2 이력 정보(812)는 "A 상품권 XXXX-XXXXX 70,000 원사용, 잔액: 200,000원, 유효기간: 2025.05"를 나타내는 정보를 포함할 수 있다.Referring to 810 of FIG. 8, the first node 20 may have a ledger recording the usage history of the service using the electronic code. The ledger may consist of a block chain where blocks that record valid usage history information of the service are connected. The first node 20 may obtain current information of the service from the first electronic code. The first node 20 may extract the history information of the first electronic code from the ledger. For example, the first node 20 may include first history information 811 of the first electronic code recorded in the n-1 block and second history information 812 of the first electronic code recorded in the nth block. Can be extracted. The first history information 811 may include information indicating "A gift certificate XXXX-XXXXX 10,000 won, balance: 270,000 won, expiration date: 2025.05". Further, the second history information 812 may include information indicating "A gift certificate XXXX-XXXXX 70,000 won usage, balance: 200,000 won, expiration date: 2025.05".

도 8의 820을 참고하면, 제1 노드(20)는 제1 전자 코드에 의해 제공될 수 있는 서비스의 현재 정보(821)를 획득할 수 있다. 예를 들면, 서비스의 현재 정보(821)는 "A 상품권 XXXX-XXXX, 잔액: 200,000 원, 유효기간: 2025.05"를 나타내는 정보를 포함할 수 있다. 또한, 제1 노드(20)는 원장에서 제1 전자 코드의 이력 정보(811, 812)를 확인할 수 있다. 제1 전자 코드의 이력 정보(811, 812)가 원장에 있으면, 제1 노드(20)는 제1 전자 코드가 유효하다고 결정할 수 있다. 제1 노드(20)는 원장에서 제1 전자 코드의 제1 이력 정보(811), 제2 이력 정보(821)를 추출할 수 있다. 제1 노드(20)는 제1 전자 코드의 이력 정보(811, 812) 중에서 최종적으로 업데이트 된 제2 이력 정보(812)를 서비스의 현재 정보와 비교할 수 있다. 제1 노드(20)는 제2 이력 정보(812)와 서비스의 현재 정보(821)를 비교함으로써, 제1 전자 코드가 위조되었는지를 확인할 수 있다. 서비스의 현재 정보(821)와 제2 이력 정보(812) 가 서로 일치하면, 제1 노드(20)는 서비스의 현재 정보(821)를 기준으로 제1 이용 예정 내역에 대응되는 제1 서비스가 제공 가능한지를 판단하여, 제1 이용 예정 내역의 유효성을 검증할 수 있다. 제1 이용 예정 내역에 대응되는 제1 서비스가 A 매장에서 50,000원 결제하는 것일 경우, 제1 노드(20)는 "A 상품권 XXXX-XXXX, 잔액: 200,000 원, 유효기간: 2025.05"를 나타내는 정보인 서비스의 현재 정보(821)를 기준으로 제1 서비스가 제공 가능하다고 판단할 수 있다. 제1 노드(20)는 사업자의 단말기(30)로 제1 이용 예정 내역을 승인하는 메시지를 전송할 수 있다.Referring to 820 of FIG. 8, the first node 20 may obtain current information 821 of a service that can be provided by the first electronic code. For example, the current information 821 of the service may include information indicating "A gift certificate XXXX-XXXX, balance: 200,000 won, expiration date: 2025.05". Also, the first node 20 may check the history information 811 and 812 of the first electronic code in the ledger. If the history information 811 and 812 of the first electronic code is in the ledger, the first node 20 may determine that the first electronic code is valid. The first node 20 may extract first history information 811 and second history information 821 of the first electronic code from the ledger. The first node 20 may compare the second history information 812 that is finally updated among the history information 811 and 812 of the first electronic code with the current information of the service. The first node 20 may check whether the first electronic code has been forged by comparing the second history information 812 with the current information 821 of the service. When the current information 821 of the service and the second history information 812 coincide with each other, the first node 20 provides a first service corresponding to the first scheduled usage based on the current information 821 of the service By determining whether it is possible, the validity of the first scheduled use can be verified. When the first service corresponding to the first scheduled use is to pay 50,000 won in the A store, the first node 20 is information indicating "A gift certificate XXXX-XXXX, balance: 200,000 won, expiration date: 2025.05" Based on the current information 821 of the service, it may be determined that the first service can be provided. The first node 20 may transmit a message to approve the first scheduled use schedule to the terminal 30 of the operator.

도 9는 일실시예에 따라, 전자 코드를 이용한 서비스의 이용 내역을 기록한 원장과 관련된 블록 및 블록체인의 구조를 설명하기 위한 블록도이다.9 is a block diagram for explaining the structure of a block and a blockchain related to a ledger recording a usage history of a service using an electronic code according to an embodiment.

도 9에 도시된 바와 같이, 블록체인은 유효한 서비스의 이용 내역 정보들을 기록한 블록들이 연결되어 구성될 수 있다. 즉, 블록체인의 데이터 구조는 서비스의 이용 내역 정보를 기록한 블록들이 순서대로 정렬된 단위로 구성된 소정의 데이터 구조일 수 있다. 또한, 블록체인의 데이터 구조는 각 블록 헤더가 이전 블록 헤더를 참조하여 체인 형식으로 연결된 데이터 구조, 및 이용 내역 정보의 데이터를 가리키는 해시 참조와 이용 내역 정보의 데이터가 트리 형태로 연결된 머클 트리의 데이터 구조로 구성될 수 있다.As shown in FIG. 9, the blockchain may be configured by connecting blocks that record usage history information of a valid service. That is, the data structure of the blockchain may be a predetermined data structure composed of units in which blocks recording service usage information are arranged in order. In addition, the data structure of the block chain is a data structure in which each block header is linked in a chain format with reference to the previous block header, and the data of the Merkle tree in which the data of the hash reference and the usage history information that points to the data of the usage history information are connected in a tree form. It can be structured.

블록은 블록 해시, 블록 헤더, 이용 내역 정보 등을 포함할 수 있다. 블록 헤더는 현재 프로그램의 버전, 이전 블록 헤더의 해시값, 머클 트리의 루트, 타임스태프, 난이도 및 난스의 정보를 포함할 수 있다.The block may include a block hash, block header, and usage history information. The block header may include a version of the current program, a hash value of the previous block header, a root of the Merkle tree, a timestamp, difficulty and information of the nonce.

블록 해시는 현재 프로그램의 버전, 이전 블록 헤더의 해시값, 머클 트리의 루트, 타임스태프, 난이도 및 난스의 정보를 입력값으로 하여 적용된 해시 함수의 해시값일 수 있다. 즉, 블록 해시의 값은 블록 전체를 해시한 값이 아니라, 블록 헤더를 해시한 값일 수 있다.The block hash may be a hash value of a hash function applied using information of a current program version, a hash value of a previous block header, a root of the Merkle tree, a timestamp, difficulty, and nonce as input values. That is, the value of the block hash may be a value that hash the block header, not a value that hash the entire block.

이전 블록 헤더의 해시값은 각 블록 헤더를 고유하게 식별하고, 이전 블록 헤더를 참조하기 위해 사용될 수 있다. 각 블록 헤더가 이전 블록 헤더를 참조하면, 개별 블록 헤더와 블록의 순서는 유지될 수 있다. 도 9를 참고하면, 제1 블록(910)은 최초 블록이어서 이전 블록이 없으므로, 이전 블록 헤더를 가리키는 어떠한 참조도 없다. 따라서, 제1 블록(910)의 이전 블록 헤더의 해시값은 0이다. 또한, 제2 블록(920)은 이전 블록인 제1 블록(910)이 있으므로, 제2 블록 헤더는 제1 블록 헤더를 가리키는 해시값을 갖는다. 마찬가지로, 제3 블록(930)은 이전 블록인 제2 블록(920)이 있으므로, 제3 블록 헤더는 제2 블록 헤더를 가리키는 해시값을 갖는다.The hash value of the previous block header uniquely identifies each block header and can be used to reference the previous block header. If each block header refers to a previous block header, the order of individual block headers and blocks can be maintained. Referring to FIG. 9, since the first block 910 is the first block and there is no previous block, there is no reference indicating the previous block header. Therefore, the hash value of the previous block header of the first block 910 is 0. In addition, since the second block 920 has the first block 910 which is the previous block, the second block header has a hash value indicating the first block header. Similarly, since the third block 930 has a second block 920 that is a previous block, the third block header has a hash value indicating the second block header.

머클 트리는 해시 참조와 이용 내역 정보의 데이터가 트리 형태로 연결되어 있는 구조를 의미할 수 있다. 해시 참조는 암호화 해시값을 이용하여 이용 내역 정보의 데이터를 가리키는 것을 의미할 수 있다. 한편, 암호화 해시값은 데이터의 고유값이므로, 서로 다른 데이터들은 동일한 해시값을 갖지 않는다.The Merkle tree may mean a structure in which data of hash reference and usage history information are connected in a tree form. The hash reference may refer to data of the usage history information using an encrypted hash value. Meanwhile, since the encrypted hash value is a unique value of data, different data does not have the same hash value.

머클 트리가 생성되는 과정을 구체적으로 설명하면, 이용 내역 정보(예를 들면, 제1 이용 내역 정보, 제2 이용 내역 정보, 제3 이용 내역 정보, 제4 이용 내역 정보)의 데이터 각각을 가리키는 해시 참조(예를 들면, 제1 해시 참조, 제2 해시 참조, 제3 해시 참조, 제4 해시 참조)가 생성될 수 있다. 해시 참조가 생성되면, 해시 참조의 쌍을 가리키는 해시 참조(예를 들면, 제1 해시 참조와 제2 해시 참조를 가리키는 제12 해시 참조, 제3 해시 참조와 제4 해시 참조를 가리키는 제34 해시 참조)가 생성될 수 있다. 그리고 나서, 해시 참조의 쌍을 가리키는 해시 참조를 생성하는 작업이 반복 수행되어 단일 해시 참조(예를 들면, 제12 해시 참조와 제34 해시 참조를 가리키는 제1234 해시 참조)가 생성될 수 있다. 즉, 머클 트리는 단일 해시 참조에서 시작되어 각 이용 내역 정보의 데이터까지 연결된 트리 형태의 구조일 수 있다. 머클 트리의 루트는 최종적으로 생성된 단일 해시 참조를 의미할 수 있다.When the Merkle tree is generated in detail, a hash indicating each of the data of usage history information (for example, first usage history information, second usage history information, third usage history information, fourth usage history information) References (eg, a first hash reference, a second hash reference, a third hash reference, a fourth hash reference) may be generated. When a hash reference is generated, a hash reference pointing to a pair of hash references (e.g., a 12th hash reference pointing to a first hash reference and a second hash reference, a 34th hash reference pointing to a third hash reference and a fourth hash reference) ) May be generated. Then, an operation of generating a hash reference indicating a pair of hash references may be repeatedly performed to generate a single hash reference (for example, a 12th hash reference and a 1234th hash reference referring to a 34th hash reference). That is, the Merkle tree may be a tree-like structure that starts from a single hash reference and links to data of each usage history information. The root of the Merkle tree may refer to a single hash reference that was finally generated.

타임스태프는 작업 증명을 위해 작업을 시작한 시각을 의미할 수 있다. 난이도는 작업 증명 또는 해시 퍼즐에서의 제약 조건을 의미할 수 있다. 난스는 작업 증명을 위해 블록해시의 값이 제약 조건을 만족하도록 조절되는 값을 의미할 수 있다.The timestamp may indicate the time when the work started to prove the work. Difficulty can mean constraints in proof-of-work or hash puzzles. The nonce may mean a value that is adjusted such that the value of the block hash satisfies the constraint for proof of work.

도 10은 일실시예에 따라, 블록체인의 네트워크 상의 노드의 구성을 도시한 블록도이다.10 is a block diagram showing the configuration of a node on a network of a blockchain, according to an embodiment.

도 10에 도시된 노드(20)는 통신 장치(1010), 메모리(1020) 및 프로세서(1030)를 포함할 수 있다. 그러나, 도시된 구성 요소 모두가 필수 구성 요소인 것은 아니다. 도시된 구성 요소보다 많은 구성 요소에 의해 노드(20)가 구현될 수 있고, 그보다 적은 구성 요소에 의해서도 노드(20)가 구현될 수 있다. 이하 상기 구성 요소들에 대해 살펴본다. 도 10에 도시된 노드(20)는 도 1 내지 도 9에서 설명한 노드(20)와 동일하게 대응될 수 있다.The node 20 illustrated in FIG. 10 may include a communication device 1010, a memory 1020, and a processor 1030. However, not all of the illustrated components are essential components. The node 20 may be implemented by more components than the illustrated components, and the node 20 may also be implemented by fewer components. Hereinafter, the components will be described. The node 20 illustrated in FIG. 10 may correspond to the node 20 described with reference to FIGS. 1 to 9.

일부 실시예에 따르면, 통신 장치(1010)는 외부 장치와 통신을 수행할 수 있다. 구체적으로, 통신 장치(1010)는 유선 또는 무선으로 네트워크와 연결되어 외부 장치와 통신을 수행할 수 있다. 여기서, 외부 장치는 블록체인 네트워크 상의 다른 노드들을 포함할 수 있다. 노드들은, 전자 코드를 생성하여 배포하는 공급자의 서버, 전자 코드를 이용하여 서비스가 제공되도록 복수의 사업자 각각의 서버들을 포함할 수 있다. 또한, 전자 코드는 QR 코드, 바코드, 칼라 코드, 및 문자 또는 기호로 구성된 코드 중 하나의 코드일 수 있고, 이에 제한되지 않는다.According to some embodiments, the communication device 1010 may communicate with an external device. Specifically, the communication device 1010 may be connected to a network by wire or wirelessly to perform communication with an external device. Here, the external device may include other nodes on the blockchain network. The nodes may include a server of a provider that generates and distributes electronic codes, and servers of each of a plurality of operators so that a service is provided using the electronic codes. Further, the electronic code may be one of a code consisting of a QR code, a barcode, a color code, and a character or symbol, but is not limited thereto.

통신 장치(1010)는 다양한 유무선 통신 방법 중 하나를 지원하는 통신 모듈을 포함할 수 있다. 통신 모듈은 근거리 통신 모듈, 유선 통신 모듈일 수 있다.The communication device 1010 may include a communication module supporting one of various wired and wireless communication methods. The communication module may be a short-range communication module or a wired communication module.

일부 실시예에 따르면, 메모리(1020)는 플래시 메모리 타입(flash memory type), 하드디스크 타입(hard disk type), 멀티미디어 카드 마이크로 타입(multimedia card micro type), 카드 타입의 메모리(SD, XD 메모리 등), 램(RAM; Random Access Memory) SRAM(Static Random Access Memory), 롬(ROM; Read-Only Memory), EEPROM(Electrically Erasable Programmable Read-Only Memory), PROM(Programmable Read-Only Memory) 자기 메모리, 자기 디스크, 광디스크 중 적어도 하나의 타입의 저장매체를 포함할 수 있다. 메모리(1020)는 전자 코드를 이용한 서비스의 이용 내역을 기록한 원장을 분산하여 관리하는 블록체인의 네트워크 상의 노드(20)의 동작 방법을 컴퓨터에서 실행시키기 위한 적어도 하나의 프로그램을 저장할 수 있다. 메모리(1020)에 저장된 적어도 하나의 프로그램은 기능에 따라 복수 개의 모듈들로 분류될 수 있다.According to some embodiments, the memory 1020 is a flash memory type, a hard disk type, a multimedia card micro type, a card type memory (SD, XD memory, etc.) RAM, Random Access Memory (RAM), Static Random Access Memory (SRAM), Read-Only Memory (ROM), Electrically Erasable Programmable Read-Only Memory (EEPROM), Programmable Read-Only Memory (PROM) magnetic memory, It may include a storage medium of at least one of a magnetic disk and an optical disk. The memory 1020 may store at least one program for executing a method of operating a node 20 on a network of a blockchain that manages by distributing and managing a ledger recording a service usage history using electronic codes. At least one program stored in the memory 1020 may be classified into a plurality of modules according to functions.

일부 실시예에 따르면, 프로세서(1030)는 노드(20)의 전체적인 동작을 제어하며, CPU 등과 같은 적어도 하나의 프로세서를 포함할 수 있다. 프로세서(1030)는 각 기능에 대응되는 특화된 프로세서를 적어도 하나 포함하거나, 하나로 통합된 형태의 프로세서일 수 있다.According to some embodiments, the processor 1030 controls the overall operation of the node 20, and may include at least one processor such as a CPU. The processor 1030 may include at least one specialized processor corresponding to each function, or may be a processor integrated into one.

일부 실시예에 따르면, 프로세서(1030)는 메모리(1020)에 저장된 프로그램을 실행시키거나, 메모리(1020)에 저장된 데이터 또는 파일을 읽어오거나, 새로운 파일을 메모리(1020)에 저장할 수도 있다. 또한, 프로세서(1030)는 메모리(1020)에 저장된 명령어들을 실행할 수 있다.According to some embodiments, the processor 1030 may execute a program stored in the memory 1020, read data or a file stored in the memory 1020, or store a new file in the memory 1020. Also, the processor 1030 may execute instructions stored in the memory 1020.

일부 실시예에 따르면, 통신 장치(1010)는 사업자의 단말기로부터 제1 전자 코드를 스캔한 제1 데이터 및 제1 전자 코드를 이용한 서비스의 제1 이용 예정 내역을 수신할 수 있다. 통신 장치(1010)는 수신된 제1 데이터 및 제1 이용 예정 내역을 프로세서(1030)로 전송할 수 있다.According to some embodiments, the communication device 1010 may receive the first data scheduled to use the first data scanned by the operator's terminal and the service using the first electronic code. The communication device 1010 may transmit the received first data and first scheduled usage details to the processor 1030.

일부 실시예에 따르면, 통신 장치(1010)는 전자 코드를 생성하여 배포하는 서버로부터 전자 코드에 포함된 초기 정보 및 전자 코드에 포함된 암호화 데이터를 복호화 하는 데에 이용되는 전자 코드의 복호화 키를 수신할 수 있다.According to some embodiments, the communication device 1010 receives a decryption key of an electronic code used to decrypt initial information contained in the electronic code and encrypted data contained in the electronic code from a server that generates and distributes the electronic code. can do.

일부 실시예에 따르면, 프로세서(1030)는 제1 데이터로부터 원장에 서비스의 이용 내역을 기록하는 데에 이용되는 제1 암호화 데이터를 추출할 수 있다. 프로세서(1030)는 제1 암호화 데이터 및 원장에 기록된 제1 전자 코드에 대한 서비스의 제1 이력 정보에 기초하여, 제1 이용 예정 내역의 유효성을 검증할 수 있다.According to some embodiments, the processor 1030 may extract the first encrypted data used to record the usage history of the service in the ledger from the first data. The processor 1030 may verify the validity of the first scheduled use history, based on the first history information of the service for the first encrypted data and the first electronic code recorded in the ledger.

일부 실시예에 따르면, 프로세서(1030)는 제1 전자 코드의 제1 복호화 키를 이용하여 제1 암호화 데이터를 복호화할 수 있다. 프로세서(1030)는 복호화된 데이터로부터 제1 전자 코드에 의해 제공될 수 있는 서비스의 현재 정보를 획득할 수 있다. 프로세서(1030)는 서비스의 현재 정보와 원장에 기록된 제1 전자 코드에 대한 제1 이력 정보를 비교하여, 제1 이용 예정 내역의 유효성을 검증할 수 있다.According to some embodiments, the processor 1030 may decrypt the first encrypted data using the first decryption key of the first electronic code. The processor 1030 may obtain current information of a service that can be provided by the first electronic code from the decrypted data. The processor 1030 may compare the current information of the service with the first history information for the first electronic code recorded in the ledger, and verify the validity of the first scheduled usage.

구체적으로, 프로세서(1030)는 원장에 기록된 이력 정보 중에서, 서비스의 현재 정보에 대응되는 제1 전자 코드의 제1 이력 정보가 있는지를 확인하여, 제1 전자 코드의 유효성을 검증할 수 있다. 여기서, 제1 전자 코드의 제1 이력 정보는, 제1 전자 코드에 포함된 초기 정보, 제1 전자 코드에 의해 서비스가 제공된 이력 정보를 포함할 수 있다.Specifically, the processor 1030 may verify whether there is first history information of the first electronic code corresponding to the current information of the service, among the history information recorded in the ledger, and verify the validity of the first electronic code. Here, the first history information of the first electronic code may include initial information included in the first electronic code and history information provided by the first electronic code.

프로세서(1030)는 제1 전자 코드가 유효하면, 제1 전자 코드의 제1 이력 정보와 서비스의 현재 정보를 비교하여, 제1 이용 예정 내역에 대응되는 제1 서비스가 제공 가능한지를 판단하고, 판단 결과에 따른 제1 이용 예정 내역의 유효성을 검증할 수 있다.When the first electronic code is valid, the processor 1030 compares the first history information of the first electronic code with the current information of the service, and determines whether the first service corresponding to the first scheduled use is available, and determines The validity of the first scheduled use according to the results can be verified.

일부 실시예에 따르면, 프로세서(1030)는 제1 이용 예정 내역의 유효성을 검증한 결과가 사업자의 단말기로 전송되도록 통신 장치(1010)를 제어할 수 있다. 예를 들면, 제1 이용 예정 내역이 유효하면, 통신 장치(1010)는 제1 이용 예정 내역을 승인하는 메시지를 사업자의 단말기로 전송할 수 있다. 반면에 제1 이용 예정 내역이 유효하지 않으면, 통신 장치(1010)는 제1 이용 예정 내역의 승인을 거부하는 메시지를 사업자의 단말기로 전송할 수 있다.According to some embodiments, the processor 1030 may control the communication device 1010 so that the result of verifying the validity of the first scheduled usage details is transmitted to the terminal of the operator. For example, if the first scheduled use schedule is valid, the communication device 1010 may transmit a message to approve the first scheduled use schedule to the operator's terminal. On the other hand, if the first scheduled use schedule is not valid, the communication device 1010 may transmit a message to reject the approval of the first scheduled use schedule to the terminal of the operator.

일부 실시예에 따르면, 제1 이용 예정 내역이 유효하면, 통신 장치(1010)는 제1 이용 예정 내역을 블록체인의 네트워크 상의 다른 노드로 전송할 수 있다. 또한, 프로세서(1030)는 제1 이용 예정 내역을 노드(20)의 후보 블록에 기록할 수 있다.According to some embodiments, when the first scheduled usage is valid, the communication device 1010 may transmit the first scheduled usage to other nodes on the blockchain network. In addition, the processor 1030 may record the first scheduled use history in a candidate block of the node 20.

일부 실시예에 따르면, 통신 장치(1010)는 사업자의 단말기로부터 제1 이용 예정 내역에 따른 서비스의 제1 이용 내역을 수신할 수 있다. 프로세서(1030)는 후보 블록에 기록된 제1 이용 예정 내역에 제1 이용 내역을 반영할 수 있다. 프로세서(1030)는 서비스에 대한 복수의 이용 내역들이 반영된 후보 블록에 대한 작업 증명을 수행하고, 블록체인에 후보 블록을 유효한 블록으로 추가할 수 있다.According to some embodiments, the communication device 1010 may receive the first usage history of the service according to the first usage schedule from the operator's terminal. The processor 1030 may reflect the first usage history in the first usage schedule recorded in the candidate block. The processor 1030 may perform proof of work for a candidate block reflecting a plurality of usage details for the service, and add the candidate block to the blockchain as a valid block.

일부 실시예에 따르면, 제1 전자 코드에 기반하는 서비스가 분할되어 제공되는 경우, 프로세서(1030)는 제1 암호화 데이터 및 제1 이용 내역에 기초하여, 제1 이력 정보를 업데이트 할 수 있다.According to some embodiments, when a service based on the first electronic code is divided and provided, the processor 1030 may update the first history information based on the first encryption data and the first usage history.

일부 실시예에 따르면, 통신 장치(1010)는 블록체인의 네트워크 상의 제2 노드로부터 작업 증명이 완료된 제1 블록을 수신할 수 있다. 프로세서(1030)는 제1 블록에 기록된 적어도 하나의 이용 내역의 유효성 및 제1 블록의 블록 헤더의 유효성을 확인하여, 제1 블록의 유효성을 검증할 수 있다. 제1 블록이 유효하면, 프로세서(1030)는 노드(20)의 블록체인에 제1 블록을 추가할 수 있다. 반면에, 제1 블록이 유효하지 않으면, 프로세서(1030)는 제1 블록을 폐기하고, 노드(20)의 블록체인에 추가될 유효한 블록을 생성할 수 있다.According to some embodiments, the communication device 1010 may receive a first block in which proof of work is completed from a second node on the network of the blockchain. The processor 1030 may verify the validity of the first block by confirming the validity of at least one usage history recorded in the first block and the validity of the block header of the first block. If the first block is valid, the processor 1030 may add the first block to the node 20's blockchain. On the other hand, if the first block is invalid, the processor 1030 may discard the first block and generate a valid block to be added to the node 20's blockchain.

도 11은 일실시예에 따라, 소정 서비스를 제공하는 데에 이용되는 정보를 포함하는 전자 코드를 생성하여 배포하는 서버의 동작 방법을 설명하기 위한 흐름도이다.11 is a flowchart illustrating an operation method of a server that generates and distributes electronic code including information used to provide a predetermined service according to an embodiment.

도 11을 참고하면, 단계 S1110에서, 서버는 제1 서비스를 제공하는 데에 이용되는 정보를 포함하는 제1 데이터를 생성할 수 있다.Referring to FIG. 11, in step S1110, the server may generate first data including information used to provide the first service.

단계 S1120에서, 서버(10)는 제1 데이터에 할당된 제1 암호화 키를 이용하여 제1 데이터를 암호화하여 제1 암호화 데이터를 생성할 수 있다.In step S1120, the server 10 may generate the first encrypted data by encrypting the first data using the first encryption key assigned to the first data.

단계 S1130에서, 서버(10)는 전자 코드를 이용한 서비스의 이용 내역을 기록한 원장을 분산하여 관리하는 블록체인의 네트워크 상의 적어도 하나의 노드로 제1 암호화 데이터 및 제1 데이터에 할당된 제1 복호화 키를 전송할 수 있다. 또한, 서버(10)는 복수의 사업자 각각의 단말기로 제1 암호화 데이터 및 제1 데이터에 할당된 제1 복호화 키를 전송할 수 있다.In step S1130, the server 10 is the first encryption key allocated to the first encryption data and the first data as at least one node on the network of the blockchain that distributes and manages the ledger recording the usage history of the service using the electronic code. Can send. In addition, the server 10 may transmit the first encryption data and the first decryption key allocated to the first data to each terminal of a plurality of operators.

단계 S1140에서, 서버(10)는 제1 암호화 데이터를 포함하는 제1 전자 코드를 생성할 수 있다. 서버(10)는 제1 전자 코드를 외부장치로 배포할 수 있다.In step S1140, the server 10 may generate a first electronic code including the first encrypted data. The server 10 may distribute the first electronic code to an external device.

도 12는 일실시예에 따라, 소정 서비스를 제공하는 데에 이용되는 정보를 포함하는 전자 코드를 생성하여 배포하는 서버의 구성을 도시한 블록도이다.12 is a block diagram showing a configuration of a server that generates and distributes electronic codes including information used to provide a predetermined service according to an embodiment.

도 12에 도시된 서버(10)는 통신 장치(1210), 메모리(1220) 및 프로세서(1230)를 포함할 수 있다. 그러나, 도시된 구성 요소 모두가 필수 구성 요소인 것은 아니다. 도시된 구성 요소보다 많은 구성 요소에 의해 서버(10)가 구현될 수 있고, 그보다 적은 구성 요소에 의해서도 서버(10)가 구현될 수 있다. 이하 상기 구성 요소들에 대해 살펴본다. 도 12에 도시된 노드는 도 1 내지 도 9에서 설명한 전자 코드를 생성하여 배포하는 서버(10)와 동일하게 대응될 수 있다.The server 10 illustrated in FIG. 12 may include a communication device 1210, a memory 1220, and a processor 1230. However, not all of the illustrated components are essential components. The server 10 may be implemented by more components than the illustrated components, and the server 10 may also be implemented by fewer components. Hereinafter, the components will be described. The node illustrated in FIG. 12 may correspond to the server 10 that generates and distributes the electronic codes described in FIGS. 1 to 9.

일부 실시예에 따르면, 통신 장치(1210)는 외부 장치와 통신을 수행할 수 있다. 구체적으로, 통신 장치(1210)는 유선 또는 무선으로 네트워크와 연결되어 외부 장치와 통신을 수행할 수 있다. 여기서, 외부 장치는 블록체인 네트워크 상의 노드들, 사업자의 단말기를 포함할 수 있다.According to some embodiments, the communication device 1210 may communicate with an external device. Specifically, the communication device 1210 may be connected to a network by wire or wirelessly to perform communication with an external device. Here, the external device may include nodes on a blockchain network and a terminal of an operator.

통신 장치(1210)는 다양한 유무선 통신 방법 중 하나를 지원하는 통신 모듈을 포함할 수 있다. 통신 모듈은 근거리 통신 모듈, 유선 통신 모듈일 수 있다.The communication device 1210 may include a communication module supporting one of various wired and wireless communication methods. The communication module may be a short-range communication module or a wired communication module.

일부 실시예에 따르면, 메모리(1220)는 플래시 메모리 타입(flash memory type), 하드디스크 타입(hard disk type), 멀티미디어 카드 마이크로 타입(multimedia card micro type), 카드 타입의 메모리(SD, XD 메모리 등), 램(RAM; Random Access Memory) SRAM(Static Random Access Memory), 롬(ROM; Read-Only Memory), EEPROM(Electrically Erasable Programmable Read-Only Memory), PROM(Programmable Read-Only Memory) 자기 메모리, 자기 디스크, 광디스크 중 적어도 하나의 타입의 저장매체를 포함할 수 있다. 메모리(1220)는 서비스를 제공하는 데에 이용되는 암호화 데이터를 포함하는 전자 코드를 생성하여 배포하는 서버(10)의 동작 방법을 컴퓨터에서 실행시키기 위한 적어도 하나의 프로그램을 저장할 수 있다. 메모리(1220)에 저장된 적어도 하나의 프로그램은 기능에 따라 복수 개의 모듈들로 분류될 수 있다.According to some embodiments, the memory 1220 is a flash memory type, a hard disk type, a multimedia card micro type, a card type memory (SD, XD memory, etc.) RAM, Random Access Memory (RAM), Static Random Access Memory (SRAM), Read-Only Memory (ROM), Electrically Erasable Programmable Read-Only Memory (EEPROM), Programmable Read-Only Memory (PROM) magnetic memory, It may include a storage medium of at least one of a magnetic disk and an optical disk. The memory 1220 may store at least one program for executing a method of operating the server 10 on a computer that generates and distributes electronic code including encrypted data used to provide a service. At least one program stored in the memory 1220 may be classified into a plurality of modules according to functions.

일부 실시예에 따르면, 프로세서(1230)는 서버(10)의 전체적인 동작을 제어하며, CPU 등과 같은 적어도 하나의 프로세서를 포함할 수 있다. 프로세서(1230)는 각 기능에 대응되는 특화된 프로세서를 적어도 하나 포함하거나, 하나로 통합된 형태의 프로세서일 수 있다.According to some embodiments, the processor 1230 controls the overall operation of the server 10, and may include at least one processor such as a CPU. The processor 1230 may include at least one specialized processor corresponding to each function, or may be a processor integrated into one.

일부 실시예에 따르면, 프로세서(1230)는 메모리(1220)에 저장된 프로그램을 실행시키거나, 메모리(1220)에 저장된 데이터 또는 파일을 읽어오거나, 새로운 파일을 메모리(1220)에 저장할 수도 있다. 또한, 프로세서(1230)는 메모리(1220)에 저장된 명령어들을 실행할 수 있다.According to some embodiments, the processor 1230 may execute a program stored in the memory 1220, read data or a file stored in the memory 1220, or store a new file in the memory 1220. Also, the processor 1230 may execute instructions stored in the memory 1220.

일부 실시예에 따르면, 프로세서(1230)는 제1 서비스를 제공하는 데에 이용되는 정보를 포함하는 제1 데이터를 생성할 수 있다.According to some embodiments, the processor 1230 may generate first data including information used to provide a first service.

프로세서(1230)는 제1 데이터에 할당된 제1 암호화 키를 이용하여 제1 데이터를 암호화하여 제1 암호화 데이터를 생성할 수 있다.The processor 1230 may generate the first encrypted data by encrypting the first data using the first encryption key assigned to the first data.

프로세서(1230)는 제1 암호화 데이터 및 제1 데이터에 할당된 제1 복호화 키가 전자 코드를 이용한 서비스의 이용 내역을 기록한 원장을 분산하여 관리하는 블록체인의 네트워크 상의 적어도 하나의 노드로 전송되도록 통신 장치(1210)를 제어할 수 있다. 또한, 프로세서(1230)는 제1 암호화 데이터 및 제1 데이터에 할당된 제1 복호화 키가 복수의 사업자 각각의 단말기로 전송되도록 통신 장치(1210)를 제어할 수 있다.The processor 1230 communicates such that the first encryption data and the first decryption key allocated to the first data are transmitted to at least one node on the blockchain network that distributes and manages the ledger recording the service usage history using the electronic code. The device 1210 can be controlled. In addition, the processor 1230 may control the communication device 1210 such that the first encryption data and the first decryption key allocated to the first data are transmitted to each terminal of a plurality of operators.

프로세서(1230)는 제1 암호화 데이터를 포함하는 제1 전자 코드를 생성할 수 있다. 프로세서(1230)는 제1 전자 코드를 외부 장치로 배포할 수 있다.The processor 1230 may generate a first electronic code including the first encrypted data. The processor 1230 may distribute the first electronic code to an external device.

이상에서 설명된 장치는 하드웨어 구성요소, 소프트웨어 구성요소, 및/또는 하드웨어 구성요소 및 소프트웨어 구성요소의 조합으로 구현될 수 있다. 예를 들어, 실시예들에서 설명된 장치 및 구성요소는, 예를 들어, 프로세서, 콘트롤러, ALU(arithmetic logic unit), 디지털 신호 프로세서(digital signal processor), 마이크로컴퓨터, FPGA(field programmable gate array), PLU(programmable logic unit), 마이크로프로세서, 또는 명령(instruction)을 실행하고 응답할 수 있는 다른 어떠한 장치와 같이, 하나 이상의 범용 컴퓨터 또는 특수 목적 컴퓨터를 이용하여 구현될 수 있다. 처리 장치는 운영 체제(OS) 및 운영 체제 상에서 수행되는 하나 이상의 소프트웨어 어플리케이션을 수행할 수 있다. 또한, 처리 장치는 소프트웨어의 실행에 응답하여, 데이터를 접근, 저장, 조작, 처리 및 생성할 수도 있다. 이해의 편의를 위하여, 처리 장치는 하나가 사용되는 것으로 설명된 경우도 있지만, 해당 기술분야에서 통상의 지식을 가진 자는, 처리 장치가 복수 개의 처리 요소(processing element) 및/또는 복수 유형의 처리 요소를 포함할 수 있음을 알 수 있다. 예를 들어, 처리 장치는 복수 개의 프로세서 또는 하나의 프로세서 및 하나의 콘트롤러를 포함할 수 있다. 또한, 병렬 프로세서(parallel processor)와 같은, 다른 처리 구성(processing configuration)도 가능하다.The device described above may be implemented with hardware components, software components, and/or combinations of hardware components and software components. For example, the devices and components described in the embodiments include, for example, processors, controllers, arithmetic logic units (ALUs), digital signal processors (micro signal processors), microcomputers, field programmable gate arrays (FPGAs). , A programmable logic unit (PLU), microprocessor, or any other device capable of executing and responding to instructions, may be implemented using one or more general purpose computers or special purpose computers. The processing device may execute an operating system (OS) and one or more software applications running on the operating system. In addition, the processing device may access, store, manipulate, process, and generate data in response to the execution of the software. For convenience of understanding, a processing device may be described as one being used, but a person having ordinary skill in the art, the processing device may include a plurality of processing elements and/or a plurality of types of processing elements. It can be seen that may include. For example, the processing device may include a plurality of processors or a processor and a controller. In addition, other processing configurations, such as parallel processors, are possible.

소프트웨어는 컴퓨터 프로그램(computer program), 코드(code), 명령(instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로(collectively) 처리 장치를 명령할 수 있다. 소프트웨어 및/또는 데이터는, 처리 장치에 의하여 해석되거나 처리 장치에 명령 또는 데이터를 제공하기 위하여, 어떤 유형의 기계, 구성요소(component), 물리적 장치, 가상 장치(virtual equipment), 컴퓨터 저장 매체 또는 장치, 또는 전송되는 신호 파(signal wave)에 영구적으로, 또는 일시적으로 구체화(embody)될 수 있다. 소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 하나 이상의 컴퓨터 판독 가능 기록 매체에 저장될 수 있다.The software may include a computer program, code, instruction, or a combination of one or more of these, and configure the processing device to operate as desired, or process independently or collectively You can command the device. Software and/or data may be interpreted by a processing device, or to provide instructions or data to a processing device, of any type of machine, component, physical device, virtual equipment, computer storage medium or device. , Or may be permanently or temporarily embodied in the transmitted signal wave. The software may be distributed over networked computer systems and stored or executed in a distributed manner. Software and data may be stored in one or more computer-readable recording media.

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

이상과 같이 실시예들이 비록 한정된 실시예와 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기의 기재로부터 다양한 수정 및 변형이 가능하다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.As described above, although the embodiments have been described by a limited embodiment and drawings, those skilled in the art can make various modifications and variations from the above description. For example, the described techniques are performed in a different order than the described method, and/or the components of the described system, structure, device, circuit, etc. are combined or combined in a different form from the described method, or other components Alternatively, even if replaced or substituted by equivalents, appropriate results can be achieved.

그러므로, 다른 구현들, 다른 실시예들 및 청구범위와 균등한 것들도 후술하는 청구범위의 범위에 속한다.Therefore, other implementations, other embodiments, and equivalents to the claims are also within the scope of the following claims.

Claims (20)

전자 코드를 이용한 서비스의 이용 내역을 기록한 원장을 분산하여 관리하는 블록체인의 네트워크 상의 제1 노드의 동작 방법에 있어서,
상기 전자 코드를 생성하여 배포하는 서버로부터 상기 전자 코드와 동일한 종류의 전자 코드들 각각에 포함된 초기 정보를 수신하고, 상기 원장에 상기 전자 코드들 각각에 포함된 초기 정보를 기록하는 단계;
사업자의 단말기로부터 제1 전자 코드를 스캔한 제1 데이터 및 상기 제1 전자 코드를 이용한 상기 서비스의 제1 이용 예정 내역을 수신하는 단계;
상기 제1 데이터로부터 상기 원장에 상기 서비스의 이용 내역을 기록하는 데에 이용되는 제1 암호화 데이터를 추출하는 단계;
상기 제1 암호화 데이터 및 상기 원장에 기록된 상기 제1 전자 코드에 대한 상기 서비스의 제1 이력 정보에 기초하여, 상기 제1 이용 예정 내역의 유효성을 검증하는 단계; 및
상기 제1 이용 예정 내역의 유효성을 검증한 결과를 상기 사업자의 단말기로 전송하는 단계를 포함하고,
상기 제1 이용 예정 내역의 유효성을 검증하는 단계는,
상기 제1 암호화 데이터를 복호화하여, 상기 제1 전자 코드에 의해 제공될 수 있는 상기 서비스의 현재 정보를 획득하는 단계;
상기 원장을 구성하는 블록들에서 상기 제1 전자 코드의 이력 정보들을 추출하고, 상기 제1 전자 코드의 이력 정보들에서 최종적으로 업데이트 된 상기 제1 전자 코드에 대한 상기 제1 이력 정보를 추출하고, 상기 서비스의 현재 정보와 상기 제1 이력 정보를 비교하여, 상기 제1 전자 코드의 유효성을 검증하는 단계 - 상기 제1 이력 정보에는 상기 제1 전자 코드에 대한 초기 정보, 상기 제1 전자 코드에 의해 서비스가 제공된 이력 정보가 포함됨 - ; 및
상기 제1 전자 코드가 유효하면, 상기 서비스의 현재 정보를 기준으로 상기 제1 이용 예정 내역에 대응되는 제1 서비스가 제공 가능한지를 판단하여, 상기 제1 이용 예정 내역의 유효성을 검증하는 단계를 포함하는, 방법.
In the operation method of the first node on the network of the blockchain to distribute and manage the ledger recording the service usage history using the electronic code,
Receiving initial information included in each of the electronic codes of the same type as the electronic code from a server generating and distributing the electronic code, and recording initial information included in each of the electronic codes in the ledger;
Receiving first data scheduled to use the first data of the service using the first electronic code and the first data scanned from the operator's terminal;
Extracting first encrypted data used to record the usage history of the service in the ledger from the first data;
Verifying the validity of the first scheduled usage history based on the first history information of the service for the first encrypted data and the first electronic code recorded in the ledger; And
And transmitting a result of verifying the validity of the first scheduled use schedule to a terminal of the operator,
The step of verifying the validity of the first scheduled use schedule,
Decrypting the first encrypted data to obtain current information of the service that can be provided by the first electronic code;
Extracting the history information of the first electronic code from the blocks constituting the ledger, extracting the first history information for the first updated electronic code from the history information of the first electronic code, Comparing the current information of the service with the first history information, and verifying the validity of the first electronic code-the first history information includes initial information about the first electronic code and the first electronic code. History information provided with service is included; And
If the first electronic code is valid, determining whether a first service corresponding to the first scheduled usage history is available based on current information of the service, and verifying the validity of the first scheduled usage history. How to.
제1항에 있어서,
상기 서버로부터 상기 전자 코드들 각각에 포함된 암호화 데이터를 복호화하는 데에 이용되는 상기 전자 코드들 각각의 복호화 키를 수신하는 단계를 더 포함하는, 방법.
According to claim 1,
And receiving a decryption key of each of the electronic codes used to decrypt the encrypted data contained in each of the electronic codes from the server.
제2항에 있어서,
상기 서비스의 현재 정보를 획득하는 단계는,
상기 제1 전자 코드의 제1 복호화 키를 이용하여 상기 제1 암호화 데이터를 복호화하고, 상기 사업자의 단말기에서 스캔된 상기 제1 전자 코드에 의해 제공될 수 있는 상기 서비스의 현재 정보를 획득하는 단계를 포함하는, 방법.
According to claim 2,
The step of obtaining the current information of the service,
Decrypting the first encrypted data using a first decryption key of the first electronic code, and obtaining current information of the service that can be provided by the first electronic code scanned at the operator's terminal; Included, Method.
삭제delete 제1항에 있어서,
상기 제1 이용 예정 내역의 유효성을 검증한 결과를 상기 사업자의 단말기로 전송하는 단계는,
상기 제1 이용 예정 내역이 유효하면, 상기 제1 이용 예정 내역을 승인하는 메시지를 상기 사업자의 단말기로 전송하는 단계; 및
상기 제1 이용 예정 내역이 유효하지 않으면, 상기 제1 이용 예정 내역의 승인을 거부하는 메시지를 상기 사업자의 단말기로 전송하는 단계를 포함하는, 방법.
According to claim 1,
The step of transmitting the result of verifying the validity of the first scheduled usage details to the terminal of the operator,
If the first scheduled use schedule is valid, transmitting a message to approve the first scheduled use schedule to the terminal of the operator; And
And if the first scheduled use schedule is not valid, transmitting a message to reject the approval of the first scheduled use schedule to the terminal of the operator.
제1항에 있어서,
상기 제1 이용 예정 내역이 유효하면, 상기 제1 이용 예정 내역을 상기 블록체인의 네트워크 상의 다른 노드로 전송하고, 상기 제1 이용 예정 내역을 후보 블록에 기록하는 단계를 더 포함하는, 방법.
According to claim 1,
And if the first scheduled usage is valid, transmitting the first scheduled usage to another node on the network of the blockchain, and recording the first scheduled usage in a candidate block.
제6항에 있어서,
상기 사업자의 단말기로부터 상기 제1 이용 예정 내역에 따른 상기 서비스의 제1 이용 내역을 수신하는 단계;
상기 후보 블록에 기록된 상기 제1 이용 예정 내역에 상기 제1 이용 내역을 반영하는 단계; 및
상기 서비스에 대한 복수의 이용 내역들이 반영된 상기 후보 블록의 작업 증명을 수행하여, 상기 블록체인에 상기 후보 블록을 유효한 블록으로 추가하는 단계를 더 포함하는, 방법.
The method of claim 6,
Receiving a first usage history of the service according to the first usage schedule from a terminal of the operator;
Reflecting the first usage history in the first usage schedule recorded in the candidate block; And
And performing the proof of work of the candidate block reflecting a plurality of usage details for the service, and adding the candidate block as a valid block to the blockchain.
제7항에 있어서,
상기 제1 전자 코드에 기반하는 상기 서비스가 분할되어 제공되면, 상기 제1 암호화 데이터 및 상기 제1 이용 내역에 기초하여, 상기 제1 이력 정보를 업데이트 하는 단계를 더 포함하는, 방법.
The method of claim 7,
And when the service based on the first electronic code is divided and provided, updating the first history information based on the first encryption data and the first usage history.
제1항에 있어서,
상기 블록체인의 네트워크 상의 제2 노드로부터 작업 증명이 완료된 제1 블록을 수신하여, 상기 제1 블록에 기록된 적어도 하나의 이용 내역의 유효성 및 상기 제1 블록의 블록 헤더의 유효성을 확인하여, 상기 제1 블록의 유효성을 검증하는 단계;
상기 제1 블록이 유효하면, 상기 제1 노드의 블록체인에 상기 제1 블록을 추가하는 단계; 및
상기 제1 블록이 유효하지 않으면, 상기 제1 블록을 폐기하고, 상기 제1 노드의 블록체인에 추가될 유효한 블록을 생성하는 단계를 더 포함하는, 방법.
According to claim 1,
Receiving the first block of the proof of work from the second node on the network of the blockchain, checking the validity of at least one usage history recorded in the first block and the validity of the block header of the first block, Verifying the validity of the first block;
If the first block is valid, adding the first block to the blockchain of the first node; And
And if the first block is invalid, discarding the first block and generating a valid block to be added to the blockchain of the first node.
제1항에 있어서,
상기 블록체인의 네트워크 상의 노드는,
상기 전자 코드를 생성하여 배포하는 공급자의 서버, 및 상기 전자 코드를 이용하여 상기 서비스가 제공되도록 하는 복수의 사업자의 서버를 포함하는, 방법.
According to claim 1,
Nodes on the network of the blockchain,
And a server of a provider that generates and distributes the electronic code, and a plurality of service providers' servers that enable the service to be provided using the electronic code.
제1항에 있어서,
상기 전자 코드는, QR 코드, 바코드, 칼라 코드, 및 문자 또는 기호로 구성된 코드 중 하나의 코드인, 방법.
According to claim 1,
The electronic code is one of a code consisting of a QR code, a barcode, a color code, and a character or symbol.
제1항 내지 제3항, 제5항 내지 제11항 중 어느 한 항의 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체.A computer-readable recording medium recording a program for executing the method of any one of claims 1 to 3, 5 to 11 on a computer. 전자 코드를 이용한 서비스의 이용 내역을 기록한 원장을 분산하여 관리하는 블록체인의 네트워크 상의 노드들 및 외부 장치와 통신을 수행하는 통신 장치;
프로세서; 및
상기 프로세서에 의해 실행 가능한 명령어들을 저장하는 메모리를 포함하고,
상기 프로세서는, 상기 명령어들을 실행함으로써,
상기 전자 코드를 생성하여 배포하는 서버로부터 상기 전자 코드와 동일한 종류의 전자 코드들 각각에 포함된 초기 정보를 상기 통신 장치를 통해 수신하고, 상기 원장에 상기 전자 코드들 각각에 포함된 초기 정보를 기록하고,
사업자의 단말기로부터 제1 전자 코드를 스캔한 제1 데이터 및 상기 제1 전자 코드를 이용한 상기 서비스의 제1 이용 예정 내역을 상기 통신 장치를 통해 수신하고,
상기 제1 데이터로부터 상기 원장에 상기 제1 전자 코드를 이용한 상기 서비스의 이용 내역을 기록하는 데에 이용되는 제1 암호화 데이터를 추출하고,
상기 제1 암호화 데이터를 복호화하여, 상기 제1 전자 코드에 의해 제공될 수 있는 상기 서비스의 현재 정보를 획득하고,
상기 원장을 구성하는 블록들에서 상기 제1 전자 코드의 이력 정보들을 추출하고, 상기 제1 전자 코드의 이력 정보들에서 최종적으로 업데이트 된 상기 제1 전자 코드에 대한 상기 서비스의 제1 이력 정보를 추출하고, 상기 서비스의 현재 정보와 상기 제1 이력 정보를 비교하여, 상기 제1 전자 코드의 유효성을 검증하고, - 상기 제1 이력 정보에는 상기 제1 전자 코드에 대한 초기 정보, 상기 제1 전자 코드에 의해 서비스가 제공된 이력 정보가 포함됨 -,
상기 제1 전자 코드가 유효하면, 상기 서비스의 현재 정보를 기준으로 상기 제1 이용 예정 내역에 대응되는 제1 서비스가 제공 가능한지를 판단하여, 상기 제1 이용 예정 내역의 유효성을 검증하고,
상기 제1 이용 예정 내역의 유효성을 검증한 결과를 상기 통신 장치를 통해 상기 사업자의 단말기로 전송하는, 노드.
A communication device that communicates with nodes and external devices on a network of a blockchain that distributes and manages a ledger that records a service usage history using an electronic code;
Processor; And
And a memory for storing instructions executable by the processor,
The processor, by executing the instructions,
The initial information included in each of the electronic codes of the same type as the electronic code is received from the server generating and distributing the electronic code through the communication device, and the initial information included in each of the electronic codes is recorded in the ledger. and,
The first data scanned by the operator's terminal and the first scheduled usage of the service using the first electronic code are received through the communication device,
Extracting first encrypted data used to record a usage history of the service using the first electronic code in the ledger from the first data,
Decrypt the first encrypted data to obtain current information of the service that can be provided by the first electronic code,
The history information of the first electronic code is extracted from blocks constituting the ledger, and the first history information of the service for the first updated electronic code is finally extracted from the history information of the first electronic code. And compares the current information of the service with the first history information to verify the validity of the first electronic code, and-the first history information includes initial information about the first electronic code and the first electronic code History information provided by the service is included -,
If the first electronic code is valid, it is determined whether the first service corresponding to the first scheduled use is available based on the current information of the service, and the validity of the first scheduled use is verified,
A node that transmits a result of verifying the validity of the first scheduled usage details to the terminal of the operator through the communication device.
제13항에 있어서,
상기 프로세서는, 상기 명령어들을 실행함으로써,
상기 서버로부터 상기 전자 코드들 각각에 포함된 암호화 데이터를 복호화하는 데에 이용되는 상기 전자 코드들 각각의 복호화 키를 상기 통신 장치를 통해 수신하는, 노드.
The method of claim 13,
The processor, by executing the instructions,
A node for receiving, via the communication device, a decryption key for each of the electronic codes used to decrypt the encrypted data contained in each of the electronic codes from the server.
제14항에 있어서,
상기 프로세서는, 상기 명령어들을 실행함으로써,
상기 제1 전자 코드의 제1 복호화 키를 이용하여 상기 제1 암호화 데이터를 복호화하고, 상기 사업자의 단말기에서 스캔된 상기 제1 전자 코드에 의해 제공될 수 있는 상기 서비스의 현재 정보를 획득하는, 노드.
The method of claim 14,
The processor, by executing the instructions,
A node that decrypts the first encrypted data using a first decryption key of the first electronic code, and obtains current information of the service that can be provided by the first electronic code scanned at the operator's terminal .
삭제delete 제13항에 있어서,
상기 프로세서는, 상기 명령어들을 실행함으로써,
상기 제1 이용 예정 내역이 유효하면, 상기 제1 이용 예정 내역을 상기 통신 장치를 통해 상기 블록체인의 네트워크 상의 다른 노드로 전송하고,
상기 제1 이용 예정 내역을 후보 블록에 기록하는, 노드.
The method of claim 13,
The processor, by executing the instructions,
If the first scheduled use schedule is valid, the first scheduled use schedule is transmitted through the communication device to another node on the blockchain network,
A node that records the first scheduled use history in a candidate block.
제17항에 있어서,
상기 프로세서는, 상기 명령어들을 실행함으로써,
상기 사업자의 단말기로부터 상기 제1 이용 예정 내역에 따른 상기 서비스의 제1 이용 내역을 상기 통신 장치를 통해 수신하고,
상기 후보 블록에 기록된 상기 제1 이용 예정 내역에 상기 제1 이용 내역을 반영하고,
상기 서비스에 대한 복수의 이용 내역들이 반영된 상기 후보 블록의 작업 증명을 수행하여, 상기 블록체인에 상기 후보 블록을 유효한 블록으로 추가하는, 노드.
The method of claim 17,
The processor, by executing the instructions,
Receiving the first usage history of the service according to the first usage schedule from the terminal of the operator through the communication device,
The first usage history is reflected in the first usage schedule recorded in the candidate block,
A node that adds the candidate block to the blockchain as a valid block by performing proof of work of the candidate block reflecting a plurality of usage details for the service.
제18항에 있어서,
상기 프로세서는, 상기 명령어들을 실행함으로써,
상기 제1 전자 코드에 기반하는 상기 서비스가 분할되어 제공되면, 상기 제1 암호화 데이터 및 상기 제1 이용 내역에 기초하여, 상기 제1 이력 정보를 업데이트 하는, 노드.
The method of claim 18,
The processor, by executing the instructions,
When the service based on the first electronic code is divided and provided, the first history information is updated based on the first encryption data and the first usage history.
통신 장치;
프로세서; 및
상기 프로세서에 의해 실행 가능한 명령어들을 저장하는 메모리를 포함하고,
상기 프로세서는, 상기 명령어들을 실행함으로써,
제1 서비스를 제공하는 데에 이용되는 정보를 포함하는 제1 데이터를 생성하고,
상기 제1 데이터에 할당된 제1 암호화 키를 이용하여 상기 제1 데이터를 암호화하여 제1 암호화 데이터를 생성하고,
전자 코드를 이용한 서비스의 이용 내역을 기록한 원장을 분산하여 관리하는 블록체인의 네트워크 상의 적어도 하나의 노드, 또는 상기 전자 코드를 이용하여 상기 서비스가 제공되도록 하는 복수의 사업자의 단말기로, 상기 제1 암호화 데이터 및 상기 제1 데이터에 할당된 제1 복호화 키를 상기 통신 장치를 통해 전송하고,
상기 통신 장치를 통해 상기 전자 코드와 동일한 종류의 전자 코드들 각각에 포함된 초기 정보를 상기 적어도 하나의 노드로 전송하고,
상기 제1 암호화 데이터를 포함하는 제1 전자 코드를 생성하고, 상기 제1 전자 코드를 외부 장치로 배포하고,
상기 적어도 하나의 노드 중 제1 노드로부터, 상기 제1 전자 코드를 이용한 상기 제1 서비스의 제1 이용 내역을 상기 원장에 기록한 정보를 수신하고,
상기 제1 서비스는, 상기 제1 노드의 원장을 구성하는 블록들로부터 추출된 상기 제1 전자 코드의 이력 정보들에서 최종적으로 업데이트 된 상기 제1 전자 코드에 대한 제1 이력 정보와 상기 제1 암호화 데이터로부터 획득된 상기 제1 서비스의 정보를 비교한 결과에 기초하여, 상기 제1 전자 코드의 유효성 검증이 완료된 후에 제공되고,
상기 제1 이력 정보에는 상기 제1 전자 코드에 대한 초기 정보, 상기 제1 전자 코드에 의해 서비스가 제공된 이력 정보가 포함되는 것을 특징으로 하는, 서버.
Communication device;
Processor; And
And a memory for storing instructions executable by the processor,
The processor, by executing the instructions,
Generate first data including information used to provide the first service,
Encrypting the first data using a first encryption key allocated to the first data to generate first encrypted data,
At least one node on a network of a blockchain that distributes and manages a ledger that records the usage history of a service using an electronic code, or a terminal of a plurality of operators to provide the service using the electronic code, wherein the first encryption Transmits data and a first decryption key assigned to the first data through the communication device,
The initial information included in each of the electronic codes of the same type as the electronic code is transmitted to the at least one node through the communication device,
Generating a first electronic code including the first encrypted data, distributing the first electronic code to an external device,
The first node among the at least one node receives information on the first service history of the first service using the first electronic code in the ledger,
The first service, the first history information for the first electronic code and the first encryption for the first electronic code finally updated from the history information of the first electronic code extracted from the blocks constituting the ledger of the first node Based on the result of comparing the information of the first service obtained from the data, it is provided after the validation of the first electronic code is completed,
The first history information includes initial information about the first electronic code and history information provided by the first electronic code.
KR1020180061312A 2018-05-29 2018-05-29 System and method for providing service based on blockchain using electronic code KR102119784B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020180061312A KR102119784B1 (en) 2018-05-29 2018-05-29 System and method for providing service based on blockchain using electronic code

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020180061312A KR102119784B1 (en) 2018-05-29 2018-05-29 System and method for providing service based on blockchain using electronic code

Publications (2)

Publication Number Publication Date
KR20190135830A KR20190135830A (en) 2019-12-09
KR102119784B1 true KR102119784B1 (en) 2020-06-08

Family

ID=68837658

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180061312A KR102119784B1 (en) 2018-05-29 2018-05-29 System and method for providing service based on blockchain using electronic code

Country Status (1)

Country Link
KR (1) KR102119784B1 (en)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6898480B1 (en) * 2020-01-22 2021-07-07 東日本旅客鉄道株式会社 Business support program, terminal equipment and business support system
CN111047313B (en) * 2020-03-12 2020-12-04 支付宝(杭州)信息技术有限公司 Code scanning payment, information sending and key management method, device and equipment
KR102592320B1 (en) * 2021-10-19 2023-10-20 주식회사 라온스토리 Web server that performs test report validation based on blockchain network and Validation system for the same
KR102501004B1 (en) * 2022-09-19 2023-02-21 주식회사 레드윗 Method and apparatus for managing data based on blockchain

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20130142782A (en) * 2012-06-20 2013-12-30 박상곤 System and method for providing coupon service using mobile device
KR20150061145A (en) * 2013-11-26 2015-06-04 갤럭시아커뮤니케이션즈 주식회사 Method and system for providing electronic coupon to user terminal
KR20160150419A (en) * 2015-06-22 2016-12-30 주식회사 아이씨비 System and method for payment using barcode

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
‘'알쏭달쏭' 블록체인 한 번에 이해하기’, 한국경제매거진(2018.02.07. 게재)*

Also Published As

Publication number Publication date
KR20190135830A (en) 2019-12-09

Similar Documents

Publication Publication Date Title
KR102052036B1 (en) Method for obtaining data through searching and merging distributed data stored using blockchain
US20220321359A1 (en) Methods and systems for ownership verification using blockchain
US20220231857A1 (en) Hash-based data verification system
KR102119784B1 (en) System and method for providing service based on blockchain using electronic code
US11082420B2 (en) Certificate issuing system based on block chain
AU2016220117B2 (en) Token and cryptogram using transaction specific information
US9780953B2 (en) Systems and methods for secure detokenization
US10346814B2 (en) System and method for executing financial transactions
US20180359093A1 (en) Secure authentication of user and mobile device
US11251964B2 (en) Hash contract generation and verification system
US20180204192A1 (en) Secure Digital Data Operations
US10693637B2 (en) System and method for composite-key based blockchain device control
CN102696047A (en) Encryption switch processing
US20210152366A1 (en) Verification and encryption scheme in data storage
CN113015992B (en) Cloud token provisioning of multiple tokens
KR102333811B1 (en) System and method for processing card payment based on block-chain
CN111062717A (en) Data transfer processing method and device and computer readable storage medium
US20200286072A1 (en) Information processing apparatus, information processing system, and information processing method, and program
KR102395870B1 (en) A payment terminal apparatus for providing payment services using a distributed management network of encryption key based on block chains
US11812260B2 (en) Secure offline mobile interactions
Jayasinghe Enhancing the Security of Centralised and Distributed Payments
CN115631045A (en) Electronic certificate transaction method, device, computer equipment and storage medium
CN117455680A (en) Transaction hosting method, storage medium and electronic device
KR20210036056A (en) Mobile ticket issuing service
JP2006195896A (en) Anonymous settlement method, system and content server in content drifting model

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
AMND Amendment
X701 Decision to grant (after re-examination)
GRNT Written decision to grant