KR20190135830A - 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
KR20190135830A
KR20190135830A KR1020180061312A KR20180061312A KR20190135830A KR 20190135830 A KR20190135830 A KR 20190135830A KR 1020180061312 A KR1020180061312 A KR 1020180061312A KR 20180061312 A KR20180061312 A KR 20180061312A KR 20190135830 A KR20190135830 A KR 20190135830A
Authority
KR
South Korea
Prior art keywords
service
electronic code
usage
history
node
Prior art date
Application number
KR1020180061312A
Other languages
Korean (ko)
Other versions
KR102119784B1 (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

Landscapes

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

Abstract

The present invention relates to a method for operating a first node on a network of a block chain for distributing and managing a ledger recording a usage history of a service using an electronic code. The method of the present invention comprises the steps of: receiving first data obtained by scanning a first electronic code which is the same type as an electronic code and a first usage-scheduled history using the first electronic code from a business operator terminal; extracting first encryption data used to record a usage history of the service in a ledger from the first data; verifying the validity of the first usage-scheduled history on the basis of the first encryption data and first history information on the service for the first electronic code recorded in the ledger; and transmitting a result of verifying the validity of the first usage-scheduled history to the business operator terminal.

Description

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

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

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

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

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

따라서, 전자상품권 등과 같이 유통될 수 있는 아이템의 이용에 있어서 보안 강화가 요구되고 있다.Therefore, there is a demand for enhanced security in the use of items that can be distributed, such as electronic gift certificates.

전자 코드를 이용하여 제공되는 서비스의 보안성을 향상시키기 위해 블록체인 기반의 서비스를 제공하는 시스템을 제공하는 것을 목적으로 한다.An object of the present invention is to provide a system for providing a blockchain-based service to improve security of a service provided by using an electronic code.

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

다른 일측에 따르면, 전자 코드를 이용한 서비스의 이용 내역을 기록한 원장을 분산하여 관리하는 블록체인의 네트워크 상의 제1 노드의 동작 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체가 제공된다.According to another aspect, a computer-readable recording medium having a program recorded thereon for executing a method of operating a first node on a network of a blockchain for distributing and managing a ledger recording a service usage history using an electronic code 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 for communicating with the nodes and external devices on the network of the blockchain for distributing and managing the ledger for recording the usage history of the service using the electronic code; A processor; And a memory storing instructions executable by the processor, wherein the processor is configured to execute the instructions, thereby scanning the first data and the first data from the operator's terminal by scanning the first electronic code of the same type as the electronic code. 1 is used to receive a first usage schedule of the service using the 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. Extract the encrypted data, and verify the validity of the first scheduled use history based on the first encrypted data and the first history information of the service for the first electronic code recorded in the ledger; 1 transmitting the result of verifying the validity of the usage schedule to the terminal of the operator through the communication device, Degas is provided.

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

블록체인에 기반하여 전자 코드를 이용한 서비스를 제공함으로써, 보안성이 강화된 서비스를 제공할 수 있다.By providing a service using an electronic code based on the blockchain, it is possible to provide a service 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 the accompanying drawings in which 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 illustrating a method of providing a service using an electronic code based on a blockchain according to an embodiment.
3 is a flowchart illustrating a method of operating a node on a network of a blockchain for distributing and managing a ledger that records usage history of a service using an electronic code, according to an exemplary embodiment.
4 is a flowchart illustrating a method of operating a node on a network of a blockchain according to a result of verifying validity of a first scheduled use schedule according to an embodiment.
FIG. 5 is a diagram for describing a method of verifying validity of a first scheduled usage history at a node on a network of a blockchain, according to an exemplary embodiment.
FIG. 6 is a diagram for describing a process of encrypting first data and first usage schedule of a first electronic code scanned by a terminal of an operator, and transmitting the same to a node on a network of a blockchain according to an embodiment.
FIG. 7 is a diagram illustrating a method of validating information transmitted from an operator's terminal in a node on a network of a blockchain, and present information and first use of a service included in first data scanned by a first electronic code. FIG. 7 is a diagram for describing a process of acquiring predetermined breakdown information.
8 is a diagram for describing a process of verifying validity of a first scheduled use schedule by comparing current information of a service with history information of a first electronic code in a node on a network of a blockchain, according to an exemplary embodiment.
FIG. 9 is a block diagram illustrating a structure of a block and a blockchain related to a ledger for recording a usage history of a service using an electronic code, according to an exemplary embodiment.
10 is a block diagram illustrating a configuration of a node on a network of a blockchain according to an embodiment.
11 is a flowchart illustrating a method of operating a server that generates and distributes an electronic code including information used to provide a predetermined service, according to an exemplary embodiment.
12 is a block diagram illustrating a configuration of a server that generates and distributes an electronic code including information used to provide a predetermined service, according to an exemplary embodiment.

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

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

또한, 본 명세서에서 사용되는 '제 1' 또는 '제 2' 등과 같이 서수를 포함하는 용어는 다양한 구성 요소들을 설명하는데 사용할 수 있지만, 상기 구성 요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성 요소를 다른 구성 요소로부터 구별하는 목적으로만 사용된다.In addition, terms including ordinal numbers such as 'first' or 'second' as used herein may 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 another.

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

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

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

본 명세서에서, "노드"는 블록체인의 네트워크 내에서 구성요소를 의미할 수 있다. 예를 들면, 노드는 특수 목적 컴퓨터(Special-purpose Computer), 범용 컴퓨터(General-purpose Computer), 슈퍼 컴퓨터(Supercomputer), 대형 컴퓨터(Mainframe Computer), 개인용 컴퓨터(Personal Computer), 스마트폰, 태블릿 PC 등일 수 있으나, 이에 제한되지 않는다.In the present specification, "node" may mean a component within a network of a blockchain. For example, the node may be a special-purpose computer, a general-purpose computer, a supercomputer, a mainframe computer, a personal computer, a smartphone, 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 may generate and distribute an electronic code used to provide a service based on a blockchain. Here, the administrator who manages the server 10 may be a provider that generates and distributes an electronic code so that a service can be provided smoothly.

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

예를 들어, 서비스가 상품권 사용 서비스인 경우, 서버(10)는 상품권 발행에 필요한 정보를 생성할 수 있다. 구체적으로, 상품권 발행에 필요한 정보는, 상품권의 종류, 상품권의 코드 번호, 상품권의 금액, 상품권의 유효기간, 상품권을 이용할 수 있는 거래처 중 적어도 하나에 대한 정보를 포함할 수 있다.For example, when the service is a gift certificate using service, the server 10 may generate information necessary for issuing a gift certificate. Specifically, the information required for issuing the gift certificate may include 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.

서버(10)는 생성된 서비스를 제공하는 데에 이용되는 정보를 암호화 하여 암호화 데이터를 생성할 수 있다. 서버(10)는 생성된 암호화 데이터를 서비스의 이용 내역을 기록한 원장을 분산하여 관리하는 블록체인의 네트워크의 노드(20)로 전송할 수 있다. 여기서, 노드(20)는 전자 코드를 생성하여 배포하는 공급자의 서버, 전자 코드를 이용하여 서비스가 제공되도록 하는 복수의 사업자의 서버일 수 있다. 또한, 서버(10)는 생성된 암호화 데이터를 복수의 사업자 각각의 단말기로 전송할 수 있다.The server 10 may generate encrypted data by encrypting the 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 that records the usage history of the service. 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 providers that 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 code consisting of a QR code, a barcode, a color code, and a character or a symbol, but is not limited thereto. The server 10 may transmit the electronic code to the external device that requested the electronic code. For example, the server 10 may sell the issued gift certificate online. The server 10 may transmit the electronic code to the terminal 40 of the user who purchased the gift certificate. In FIG. 1, the electronic code is illustrated by the server 10 to be transmitted to the user's terminal 40. However, the electronic code may be provided as a branch on which the electronic code is printed off-line.

도 1에 도시된 바와 같이, 제1 사업자의 단말기(30)는 온라인 또는 오프라인으로 제1 사용자가 보유한 제1 전자 코드를 스캔한 제1 데이터를 획득할 수 있다. 또한, 제1 사업자의 단말기(30)는 제1 전자 코드를 이용한 서비스의 이용 예정 내역을 획득할 수 있다. 여기서, "스캔"은 전자 코드를 판독하는 방식을 의미할 수 있다. 예를 들면, 제1 사업자의 단말기(30)는 오프라인 상에서 NFC(Near Field Communication) 방식, BLE(Bluetooth Low Energy) 방식 바코드 방식으로 전자 코드를 판독할 수 있다.As illustrated in FIG. 1, the terminal 30 of the first operator may acquire first data obtained by scanning a first electronic code held by the first user online or offline. In addition, the terminal 30 of the first operator may acquire 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 by using a near field communication (NFC) method or a Bluetooth low energy (BLE) method barcode method offline.

제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 may be performed based on the first electronic code. In detail, the terminal 30 of the first operator may verify validation of the usage schedule on the blockchain network based on whether the service corresponding to the usage schedule may be performed based on the encrypted data included in the first electronic code. 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 may verify the validity of the scheduled use history based on the encryption data included in the first electronic code and the history information of the service for the first electronic code recorded in the ledger. . The first node 20 on the network of the blockchain may transmit a result of verifying validity of the use schedule to the terminal 30 of the first provider.

도 2는 일실시예에 따라, 블록체인에 기반하여 전자 코드를 이용한 서비스가 제공되는 방법을 설명하기 위한 흐름도이다.2 is a flowchart illustrating 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. In detail, 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 the information may be uniquely assigned to the information. For example, the server 10 may generate first information required for issuing a first gift certificate in order to provide a gift certificate using service. The server 10 may generate the first encrypted data by encrypting the first information by 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 for distributing and managing 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 blockchain network decrypt the encrypted data received by the server 10 and generate the server 10 from the decrypted data. Acquired initial information can be obtained. Nodes 20, 20-2, 20-3, 20-4, and 20-5 on the blockchain network may record initial information in the ledger, and then use the received schedule received from the operator's terminal 30. The initial information can be used to validate the statement.

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

단계 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 code consisting of a QR code, a barcode, a color code, and a character or a symbol. The server 10 may distribute the electronic code to an external device. In operation S205, the server 10 may transmit the first electronic code to the user's terminal 40.

단계 S206에서, 사용자의 단말기(40)는 제1 전자 코드를 이용하여 사업자의 단말기(30)로 서비스의 제공을 요청할 수 있다.In operation S206, the user terminal 40 may request to provide a service to the terminal 30 of the operator 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 operation S207, the operator's terminal 30 may acquire first data obtained by scanning 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 by using a near field communication (NFC) method or a Bluetooth low energy (BLE) method barcode method offline. In operation S208, the operator's terminal 30 may obtain a first usage schedule according to a request for providing a service received from the user terminal. For example, when the service is a gift certificate use service, the first use schedule may be to use A gift certificate 50,000 won. For another example, if 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 operation S209, the operator terminal 30 may transmit the first data and the first usage schedule to the node 20 on the network of the blockchain. That is, the terminal 30 of the operator may request the node 20 on the network of the blockchain to validate the first usage schedule in order to determine whether a service according to the first usage schedule is available. Here, the terminal 30 of the operator transmits the first data and the first usage schedule to a specific node among the nodes 20, 20-2, 20-3, 20-4, and 20-5 on the network of the blockchain. Can be. For example, the particular node may be a server of an operator that manages a ledger that records usage history of services for electronic codes. In addition, the specific node may be a server of a supplier who generates and distributes the first electronic code.

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

단계 S212에서, 제1 이용 예정 내역이 유효하면, 사업자의 단말기(30)는 제1 이용 예정 내역에 대응되는 서비스를 사용자의 단말기(40)로 제공할 수 있다. 또한, 사업자의 단말기(30)는 서비스에 대한 제1 이용 내역을 사용자의 단말기(40)로 전송할 수 있다. 단계 S213에서, 사업자의 단말기(30)는 제1 이용 내역을 노드(20)로 전송할 수 있다.In operation S212, if the first usage schedule is valid, the operator's terminal 30 may provide a service corresponding to the first usage schedule to the user's terminal 40. In addition, the operator's terminal 30 may transmit the first usage history of the service to the user's terminal 40. In operation 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 operation 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 with reference to FIGS. 4 to 8. In operation S215, the node 20 may transmit a message indicating that the first usage history and the first usage history are recorded in the ledger to the server 10.

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

단계 S310에서, 노드(20)는 사업자의 단말기(30)로부터 제1 전자 코드를 스캔한 제1 데이터 및 제1 전자 코드를 이용한 서비스의 제1 이용 예정 내역을 수신할 수 있다. 노드(20)는 사업자의 단말기(30)로부터 서비스의 제1 이용 예정 내역에 대한 유효성 검증 요청을 수신할 수 있다. 또한, 노드(20)는 전자 코드를 생성하여 배포하는 서버(10)로부터 전자 코드와 동일한 종류의 전자 코드들 각각에 포함된 초기 정보를 수신할 수 있다. 노드(20)는 초기 정보를 원장에 기록할 수 있고, 제1 이용 예정 내역의 유효성을 검증하는 데에 초기 정보를 참조할 수 있다. 또한, 노드(20)는 서버(10)로부터 전자 코드들 각각에 포함된 암호화 데이터를 복호화하는 데에 이용되는 전자 코드들 각각의 복호화 키를 수신할 수 있다.In operation S310, the node 20 may receive, from the operator's terminal 30, the first data scanned for the first electronic code and the first usage schedule of the service using the first electronic code. The node 20 may receive a validation request for the first usage schedule of the service from the operator's terminal 30. In addition, the node 20 may receive initial information included in each of 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 in verifying the validity of the first scheduled use schedule. 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 operation S320, the node 20 may extract first encrypted data used to record usage history of the service in the ledger from the first data. The first encrypted data may include information used to determine whether a service according to the first usage schedule may be provided. For example, if the service is a gift certificate using service, the first encrypted data is data in which information about 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 trading partners that can use the gift certificate is encrypted. Can be.

단계 S330에서, 노드(20)는 제1 암호화 데이터 및 원장에 기록된 제1 전자 코드에 대한 서비스의 제1 이력 정보에 기초하여, 제1 이용 예정 내역의 유효성을 검증할 수 있다. 예를 들면, 서비스가 상품권 사용 서비스이면, 제1 전자 코드에 대한 서비스의 이력 정보는, 제1 전자 코드를 이용하여 상품권을 사용한 이력 정보일 수 있다. 구체적으로, 이력 정보는, 상품권을 사용한 시기, 상품권에서 사용한 금액, 상품권을 사용한 장소 중 적어도 하나의 정보를 포함할 수 있다. 다른 예를 들면, 서비스가 티켓 사용 서비스이면, 제1 전자 코드에 대한 서비스의 이력 정보는, 제1 전자 코드를 이용하여 티켓을 사용한 이력 정보일 수 있다. 이력 정보는, 티켓을 사용한 시기, 티켓을 사용한 장소 중 적어도 하나의 정보를 포함할 수 있다.In operation S330, the node 20 may verify the validity of the first scheduled use schedule based on the first encrypted 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 using 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. In more detail, the history information may include at least one piece of information of when the gift certificate is used, the amount of money used in the gift certificate, and the place where the gift certificate is 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 a place where the ticket was used.

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

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

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

도 4는 일실시예에 따라, 제1 이용 예정 내역의 유효성을 검증한 결과에 따라 블록체인의 네트워크 상의 노드의 동작 방법을 설명하기 위한 흐름도이다.4 is a flowchart illustrating a method of operating a node on a network of a blockchain according to a result of verifying 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 detailed operations according to steps S410, S420, and S430 of FIG. 4. In operation S410, the node 20 may determine whether the first usage schedule is valid. In operation S420, if the first usage schedule is valid, the node 20 may transmit a message for approving the first usage schedule to the operator's terminal 30. In operation S430, if the first usage schedule is not valid, the node 20 may transmit a message to the operator's terminal 30 to reject the approval of the first usage schedule.

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

단계 S450에서, 노드(20)는 사업자의 단말기(30)로부터 제1 이용 예정 내역에 따른 서비스의 제1 이용 내역을 수신할 수 있다.In operation 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 operation S460, the node 20 may reflect the first usage history in the first usage schedule recorded in the candidate block.

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

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

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

도 5를 참고하면, 사업자의 단말기(30)는 제1 사용자가 보유한 제1 전자 코드를 스캔한 제1 데이터를 획득할 수 있다. 여기서, "스캔"은 전자 코드를 판독하는 방식을 의미할 수 있다. 예를 들면, 사업자 단말기(30)는 NFC 칩, 블루투스 칩, 바코드 리더기 중 적어도 하나를 이용하여 제1 전자 코드를 판독할 수 있다.Referring to FIG. 5, the operator's terminal 30 may acquire first data obtained by scanning a first electronic code held by a 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 acquire the first data by scanning the first electronic code from a branch including the first electronic code held by the first user on offline. In addition, the terminal 30 of the operator 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 obtain first data obtained by scanning the first electronic code from the terminal 40 of the first user online.

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

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

한편, 제1 노드(20)는 전자 코드를 생성하여 배포하는 서버(10)로부터 전자 코드와 동일한 종류의 전자 코드들 각각에 포함된 초기 정보, 및 전자 코드들 각각에 포함된 암호화 데이터를 복호화 하는 데에 이용되는 전자 코드들 각각의 복호화 키를 수신할 수 있다. 예를 들면, 전자 코드를 이용하여 제공되는 서비스가 상품권 사용 서비스인 경우, 초기 정보는, 상품권의 종류, 상품권에 발행된 금액, 상품권의 코드 번호, 상품권의 유효 기간에 대한 정보를 포함할 수 있다.Meanwhile, the first node 20 decrypts initial information included in each of the electronic codes of the same type as the electronic code and encrypted data included in each of the electronic codes from the server 10 that generates and distributes the electronic code. A decryption key of each of the electronic codes used to receive the data can be received. For example, when the service provided using the electronic code is a gift certificate using service, the initial information may include information on the type of gift certificate, the amount issued to 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 by using the first decryption key of the first electronic code, and obtain current information of a service that may be provided by the first electronic code. For example, the current information of the service may include information on the amount remaining in the A gift certificate, the code number of the A gift certificate, and the expiration date 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 verify the validity of the first scheduled use schedule by comparing the current information of the service with the first history information about the first electronic code recorded in the ledger. The first node 20 may verify the validity of the first electronic code by checking 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. If the first electronic code is valid, the first node 20 may verify the validity of the first scheduled use schedule by comparing the first history information of the first electronic code with the current information of the service. The first node 20 determines whether the first history information corresponds to 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 usage schedule. It can be determined whether a service can be provided. If the first usage schedule is valid, the first node 20 may transmit a message for approving the first usage schedule to the terminal 30 of the operator. On the other hand, if the first electronic code is not valid or the first usage schedule is not valid, the first node 20 may transmit a message to the operator terminal 30 rejecting the approval of the first usage schedule. have.

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

한편, 사업자의 단말기(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 operator terminal 30 receives a message for approving the first usage schedule from the first node 20, the operator 30 may provide the first user with a first service corresponding to the first usage schedule. 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 schedule 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 as a valid block to the block chain by performing the 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 the first usage schedule is verified as valid in the second node 20-2, the second node 20-2 may record the first usage schedule in the candidate block. The second node 20-2 may receive the first usage history from the first node 20 and may reflect the first usage history in the first usage schedule. The second node 20-2 may generate a valid block by performing work proof of the candidate block. The third node 20-3 and the fourth node 20-4 on the network of the blockchain may operate like 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 등)로 전송할 수 있다.Referring to the process of generating a valid block in the first node 20 and adding it to the blockchain, 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 that points to the previous block header in view of the block to be added to the blockchain. The first node 20 may acquire a difficulty level required for proof of work or constraint of a block to be added to the blockchain. The first node 20 may check whether the value of the block hash generated by applying the hash function to the root of the Merkle tree, a hash reference indicating the previous block header, the difficulty, the data and the nonce of the timestamp satisfies the constraint. . The first node 20 may perform proof of work on the candidate block 1220 by acquiring a nonce value that satisfies the constraint while increasing the nonce by 0 to 1. The first node 20 may add the candidate block 1220 as a valid block to the blockchain. In addition, the first node 20 may transmit a valid block to other nodes 20-2, 20-3, 20-4, etc. on the network of the blockchain.

블록체인의 네트워크 상의 각 노드들(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 by the first node 20, thereby providing each node 20-2, 20. -3, 20-4, etc.) can add a valid block to the blockchain.

도 6은 일실시예에 따라, 사업자의 단말기에서 제1 전자 코드를 스캔한 제1 데이터 및 제1 이용 예정 내역을 암호화하여 블록체인의 네트워크 상의 노드로 전송하는 과정을 설명하기 위한 도면이다.FIG. 6 is a diagram for describing a process of encrypting first data and first usage schedule of a first electronic code scanned by a terminal of an operator and transmitting the first data to a node on a network of a blockchain 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 scanned from the first electronic code 601 and the first usage schedule 612 "used 50,000 won in store A", and the encrypted information 651. ) May be transmitted to the first node 20 on the network of the blockchain. Here, the first data 611 of the first electronic code 601 may be data obtained by reading 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 terminal 30 of the operator generates unique data from the first data 611 scanned from the first electronic code 601 and the first usage schedule 612 of "used 50,000 won in store A". The hash value “DIRAL28A” 621 corresponding to the first data 611 and the first usage schedule 612 may be generated by applying to a hash function.

사업자의 단말기(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 operator's terminal 30 encrypts the hash value "DIRAL28A" 621 with the encryption key 631 of the operator's terminal, thereby displaying a first signature representing the digital signature of the first data 611 and the first scheduled usage history 612. The cipher text " & DIFPW% IDAL! @ DIKWSOB " The terminal 30 of the operator may combine the first ciphertext "& DIFPW% IDAL! @DIKWSOB" 641 with the first data 611 and the first usage schedule 612 and the information 651 for the first node 20. Can be sent to.

도 7은 일실시예에 따라, 블록체인의 네트워크 상의 노드에서 사업자의 단말기에서 전송된 정보의 유효성을 검증하고, 제1 전자 코드를 스캔한 제1 데이터에 포함된 서비스의 현재 정보 및 제1 이용 예정 내역 정보를 획득하는 과정을 설명하기 위한 도면이다.FIG. 7 is a flowchart illustrating validity of information transmitted from an operator's terminal in a node on a network of a blockchain, and present information and first use of a service included in first data scanned by a first electronic code. FIG. 4 is a diagram for describing a process of acquiring predetermined details 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 shown in FIG. 7, the first node 20 adds the first cipher text " & DIFPW% IDAL! @ DIKWSOB " 641 from the operator's terminal 30 to the first data and the first usage schedule. 651 may be received. The first node 20 may generate the hash value "DIRAL28A" 621 by applying the hash function to the first data and the first usage schedule in the information 651. The first node 20 decrypts the first cipher text " & DIFPW% IDAL! @ DIKWSOB " 641 using the decryption key 711 of the operator's terminal 30 to generate the hash value " DIRAL28A " Can be. The hash value "DIRAL28A" obtained by decrypting the hash value "DIRAL28A" 621 and the first ciphertext "& DIFPW% IDAL! @DIKWSOB" (641) obtained by applying the hash function to the first data and the first usage schedule. 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 first usage schedule 612 of a service that may be provided by the first electronic code in the information 651 determined to be valid. In detail, 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 scanned from 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, thereby presenting information 741 of the 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 about “A gift certificate XXXX-XXXX, balance: KRW 200,000, expiration date: 2025.05”.

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

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

도 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 that records a usage history of a service using an electronic code. The ledger may consist of a blockchain in which blocks that record valid usage history information of services are connected. The first node 20 may obtain current information of the service from the first electronic code. The first node 20 may extract 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-th block and second history information 812 of the first electronic code recorded in the n-th block. Can be extracted. The first history information 811 may include information indicating “A gift card XXXX-XXXXX 10,000 won, balance: 270,000 won, expiration date: 2025.05”. In addition, the second history information 812 may include information indicating “A gift card XXXX-XXXXX KRW 70,000, balance: KRW 200,000, 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 may 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”. In addition, the first node 20 may check history information 811 and 812 of the first electronic code in the ledger. If the history information 811, 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 last updated second history information 812 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 is 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 the first service corresponding to the first scheduled use history based on the current information 821 of the service. By determining whether it is possible, it is possible to verify the validity of the first scheduled use history. If the first service corresponding to the first usage schedule is to pay 50,000 won in store A, the first node 20 is information indicating "A gift certificate XXXX-XXXX, balance: 200,000 won, expiration date: 2025.05". It may be determined that the first service can be provided based on the current information 821 of the service. The first node 20 may transmit a message for approving the first usage schedule to the terminal 30 of the operator.

도 9는 일실시예에 따라, 전자 코드를 이용한 서비스의 이용 내역을 기록한 원장과 관련된 블록 및 블록체인의 구조를 설명하기 위한 블록도이다.FIG. 9 is a block diagram illustrating a structure of a block and a blockchain related to a ledger for recording a usage history of a service using an electronic code, according to an exemplary 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 in which usage history information of a service is recorded are arranged in order. In addition, the data structure of the blockchain is a data structure in which each block header is chained with reference to the previous block header, and the data of the Merkle tree in which a hash reference indicating the data of the usage information and the data of the usage information in a tree form are connected. It may be composed of a structure.

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

블록 해시는 현재 프로그램의 버전, 이전 블록 헤더의 해시값, 머클 트리의 루트, 타임스태프, 난이도 및 난스의 정보를 입력값으로 하여 적용된 해시 함수의 해시값일 수 있다. 즉, 블록 해시의 값은 블록 전체를 해시한 값이 아니라, 블록 헤더를 해시한 값일 수 있다.The block hash may be a hash value of a hash function applied by using information of a version of a current program, a hash value of a previous block header, a root of a Merkle tree, a time stamp, a difficulty level, and a nonce. That is, the value of the block hash may be a value that hashes the block header, not a value that hashes 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 may uniquely identify each block header and may be used to refer to the previous block header. If each block header refers to the previous block header, the order of the individual block headers and blocks may be maintained. 9, since the first block 910 is the first block and there is no previous block, there is no reference to the previous block header. Thus, the hash value of the previous block header of the first block 910 is zero. In addition, since the second block 920 has a first block 910 which is a previous block, the second block header has a hash value indicating the first block header. Similarly, since the third block 930 includes the second block 920 which is the previous block, the third block header has a hash value indicating the second block header.

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

머클 트리가 생성되는 과정을 구체적으로 설명하면, 이용 내역 정보(예를 들면, 제1 이용 내역 정보, 제2 이용 내역 정보, 제3 이용 내역 정보, 제4 이용 내역 정보)의 데이터 각각을 가리키는 해시 참조(예를 들면, 제1 해시 참조, 제2 해시 참조, 제3 해시 참조, 제4 해시 참조)가 생성될 수 있다. 해시 참조가 생성되면, 해시 참조의 쌍을 가리키는 해시 참조(예를 들면, 제1 해시 참조와 제2 해시 참조를 가리키는 제12 해시 참조, 제3 해시 참조와 제4 해시 참조를 가리키는 제34 해시 참조)가 생성될 수 있다. 그리고 나서, 해시 참조의 쌍을 가리키는 해시 참조를 생성하는 작업이 반복 수행되어 단일 해시 참조(예를 들면, 제12 해시 참조와 제34 해시 참조를 가리키는 제1234 해시 참조)가 생성될 수 있다. 즉, 머클 트리는 단일 해시 참조에서 시작되어 각 이용 내역 정보의 데이터까지 연결된 트리 형태의 구조일 수 있다. 머클 트리의 루트는 최종적으로 생성된 단일 해시 참조를 의미할 수 있다.In detail, the process of generating the Merkle tree includes a hash indicating each piece of data of usage history information (eg, first usage history information, second usage history information, third usage history information, and fourth usage history information). References (eg, first hash reference, second hash reference, third hash reference, fourth hash reference) may be generated. When a hash reference is generated, a hash reference that points 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. Thereafter, the operation of generating a hash reference that points to the pair of hash references may be repeated to generate a single hash reference (eg, a twelfth hash reference and a 1234 hash reference to the thirty-fourth hash reference). That is, the Merkle tree may be a tree-type structure starting from a single hash reference and linked to data of each usage history information. The root of the Merkle tree may mean a single generated hash reference.

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

도 10은 일실시예에 따라, 블록체인의 네트워크 상의 노드의 구성을 도시한 블록도이다.10 is a block diagram illustrating a 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 shown in FIG. 10 may include a communication device 1010, a memory 1020, and a processor 1030. However, not all illustrated components are essential components. Node 20 may be implemented by more components than shown, and node 20 may 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. In detail, the communication device 1010 may be connected to a network by wire or wirelessly to communicate with an external device. Here, the external device may include other nodes on the blockchain network. The nodes may include servers of a provider that generates and distributes an electronic code, and servers of a plurality of providers so that a service may be provided using the electronic code. In addition, the electronic code may be one of a code consisting of a QR code, a barcode, a color code, and a character or a 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 may be a flash memory type, a hard disk type, a multimedia card micro type, a card type memory (SD, XD memory, etc.). Random access memory (RAM), static random access memory (SRAM), read-only memory (ROM), electrically erasable programmable read-only memory (EPEROM), programmable read-only memory (PROM), It may include a storage medium of at least one type of magnetic disk, optical disk. The memory 1020 may store at least one program for executing a method of operating the node 20 on the network of the blockchain for distributing and managing a ledger that records usage history of a service using an electronic code in a computer. At least one program stored in the memory 1020 may be classified into a plurality of modules according to a function.

일부 실시예에 따르면, 프로세서(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. In addition, 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 of the first electronic code and the first usage schedule of the service using the first electronic code from the operator's terminal. The communication device 1010 may transmit the received first data and the first usage schedule 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 included in the electronic code and encrypted data included 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 first encrypted data used to record usage history of the service in the ledger from the first data. The processor 1030 may verify the validity of the first scheduled use schedule based on the first encrypted data and the first history information of the service for 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 by using the first decryption key of the first electronic code. The processor 1030 may obtain current information of a service that may be provided by the first electronic code from the decrypted data. The processor 1030 may verify the validity of the first scheduled use schedule by comparing the current information of the service with the first history information about the first electronic code recorded in the ledger.

구체적으로, 프로세서(1030)는 원장에 기록된 이력 정보 중에서, 서비스의 현재 정보에 대응되는 제1 전자 코드의 제1 이력 정보가 있는지를 확인하여, 제1 전자 코드의 유효성을 검증할 수 있다. 여기서, 제1 전자 코드의 제1 이력 정보는, 제1 전자 코드에 포함된 초기 정보, 제1 전자 코드에 의해 서비스가 제공된 이력 정보를 포함할 수 있다.In detail, 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 이용 예정 내역의 유효성을 검증할 수 있다.If 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 usage schedule can be provided, and determines it. The validity of the first scheduled use schedule according to the result may be verified.

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

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

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

일부 실시예에 따르면, 제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 encrypted 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 on which proof of work is completed from a second node on a network of the blockchain. The processor 1030 may verify the validity of the first block by checking the validity of at least one usage record 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 blockchain of the node 20. 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 blockchain of the node 20.

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

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

단계 S1120에서, 서버(10)는 제1 데이터에 할당된 제1 암호화 키를 이용하여 제1 데이터를 암호화하여 제1 암호화 데이터를 생성할 수 있다.In operation S1120, the server 10 may generate 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 a first decryption key assigned to the first encrypted data and the first data to at least one node on the network of the blockchain for distributing and managing the ledger for recording the usage history of the service using the electronic code Can be transmitted. In addition, the server 10 may transmit the first encrypted data and the first decryption key allocated to the first data to each terminal of the plurality of operators.

단계 S1140에서, 서버(10)는 제1 암호화 데이터를 포함하는 제1 전자 코드를 생성할 수 있다. 서버(10)는 제1 전자 코드를 외부장치로 배포할 수 있다.In operation 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 illustrating a configuration of a server that generates and distributes an electronic code including information used to provide a predetermined service, according to an exemplary 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 illustrated components are essential components. The server 10 may be implemented by more components than the illustrated components, and the server 10 may be implemented by fewer components. Hereinafter, the components will be described. The node illustrated in FIG. 12 may correspond to the server 10 generating and distributing the electronic code described with reference to FIGS. 1 to 9.

일부 실시예에 따르면, 통신 장치(1210)는 외부 장치와 통신을 수행할 수 있다. 구체적으로, 통신 장치(1210)는 유선 또는 무선으로 네트워크와 연결되어 외부 장치와 통신을 수행할 수 있다. 여기서, 외부 장치는 블록체인 네트워크 상의 노드들, 사업자의 단말기를 포함할 수 있다.According to some embodiments, the communication device 1210 may communicate with an external device. In detail, the communication device 1210 may be connected to a network by wire or wirelessly to communicate 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 may be a flash memory type, a hard disk type, a multimedia card micro type, a card type memory (SD, XD memory, etc.). Random access memory (RAM), static random access memory (SRAM), read-only memory (ROM), electrically erasable programmable read-only memory (EPEROM), programmable read-only memory (PROM), It may include a storage medium of at least one type of magnetic disk, optical disk. The memory 1220 may store at least one program for executing on the computer an operation method of the server 10 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 a function.

일부 실시예에 따르면, 프로세서(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. In addition, 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 that includes information used to provide the first service.

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

프로세서(1230)는 제1 암호화 데이터 및 제1 데이터에 할당된 제1 복호화 키가 전자 코드를 이용한 서비스의 이용 내역을 기록한 원장을 분산하여 관리하는 블록체인의 네트워크 상의 적어도 하나의 노드로 전송되도록 통신 장치(1210)를 제어할 수 있다. 또한, 프로세서(1230)는 제1 암호화 데이터 및 제1 데이터에 할당된 제1 복호화 키가 복수의 사업자 각각의 단말기로 전송되도록 통신 장치(1210)를 제어할 수 있다.The processor 1230 communicates the first encrypted data and the first decryption key assigned to the first data to be transmitted to at least one node on a network of a blockchain that distributes and manages a ledger that records a use history of a service using an electronic code. Device 1210 can be controlled. In addition, the processor 1230 may control the communication device 1210 such that the first encrypted data and the first decryption key allocated to the first data are transmitted to the terminals of the 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 apparatus described above may be implemented as a hardware component, a software component, and / or a combination of hardware components and software components. For example, the devices and components described in the embodiments are, for example, processors, controllers, arithmetic logic units (ALUs), digital signal processors, microcomputers, field programmable gate arrays (FPGAs). Can be implemented using one or more general purpose or special purpose computers, such as a programmable logic unit (PLU), a microprocessor, or any other device capable of executing and responding to instructions. The processing device may execute an operating system (OS) and one or more software applications running on the operating system. The processing device may also access, store, manipulate, process, and generate data in response to the execution of the software. For convenience of explanation, one processing device may be described as being used, but one of ordinary skill in the art will appreciate that the processing device includes a plurality of processing elements and / or a plurality of types of processing elements. It can be seen that it may include. For example, the processing device may include a plurality of processors or one processor and one controller. In addition, other processing configurations are possible, such as parallel processors.

소프트웨어는 컴퓨터 프로그램(computer program), 코드(code), 명령(instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로(collectively) 처리 장치를 명령할 수 있다. 소프트웨어 및/또는 데이터는, 처리 장치에 의하여 해석되거나 처리 장치에 명령 또는 데이터를 제공하기 위하여, 어떤 유형의 기계, 구성요소(component), 물리적 장치, 가상 장치(virtual equipment), 컴퓨터 저장 매체 또는 장치, 또는 전송되는 신호 파(signal wave)에 영구적으로, 또는 일시적으로 구체화(embody)될 수 있다. 소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 하나 이상의 컴퓨터 판독 가능 기록 매체에 저장될 수 있다.The software may include a computer program, code, instructions, or a combination of one or more of the above, and configure the processing device to operate as desired, or process it independently or collectively. You can command the device. Software and / or data may be any type of machine, component, physical device, virtual equipment, computer storage medium or device in order to be interpreted by or to provide instructions or data to the processing device. Or may be permanently or temporarily embodied in a signal wave to be transmitted. The software may be distributed over networked computer systems so that they may be stored or executed in a distributed manner. Software and data may be stored on 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 can be implemented in the form of program instructions that can be executed by various computer means and recorded on a computer readable recording medium. The computer readable recording medium may include program instructions, data files, data structures, etc. alone or in combination. Program instructions recorded on the media may be those specially designed and constructed for the purposes of the embodiments, or they may be of the kind well-known and available to those having skill in the computer software arts. Examples of computer-readable recording media include magnetic media such as hard disks, floppy disks, and magnetic tape, optical media such as CD-ROMs, DVDs, and magnetic disks, such as floppy disks. Magneto-optical media, and hardware devices specifically configured to store and execute program instructions, such as ROM, RAM, flash memory, and the like. Examples of program instructions include not only machine code generated by a compiler, but also high-level language code that can be executed by a computer using an interpreter or the like. 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.

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

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

Claims (20)

전자 코드를 이용한 서비스의 이용 내역을 기록한 원장을 분산하여 관리하는 블록체인의 네트워크 상의 제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 for distributing and managing the ledger recording the usage history of the service using the electronic code
Receiving first data of scanning a first electronic code and a first usage schedule of the service using the first electronic code from an operator's terminal; And
Extracting first encrypted data used to record usage history of the service in the ledger from the first data;
Validating the first scheduled usage schedule based on the first history information of the service with respect to 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 the terminal of the operator.
제1항에 있어서,
상기 전자 코드를 생성하여 배포하는 서버로부터 상기 전자 코드와 동일한 종류의 전자 코드들 각각에 포함된 초기 정보, 및 전자 코드들 각각에 포함된 암호화 데이터를 복호화하는 데에 이용되는 상기 전자 코드들 각각의 복호화 키를 수신하는 단계를 더 포함하는, 방법.
The method of claim 1,
Each of the electronic codes used to decrypt initial information included in each of the electronic codes of the same type as the electronic code and encrypted data included in each of the electronic codes from a server that generates and distributes the electronic code. Receiving a decryption key.
제2항에 있어서,
상기 제1 이용 예정 내역의 유효성을 검증하는 단계는,
상기 제1 전자 코드의 제1 복호화 키를 이용하여 상기 제1 암호화 데이터를 복호화하고, 상기 사업자의 단말기에서 스캔된 상기 제1 전자 코드에 의해 제공될 수 있는 상기 서비스의 현재 정보를 획득하는 단계;
상기 서비스의 현재 정보와 상기 원장에 기록된 상기 제1 전자 코드에 대한 상기 제1 이력 정보를 비교하여, 상기 제1 이용 예정 내역의 유효성을 검증하는 단계를 포함하는, 방법.
The method of claim 2,
Validating the first usage schedule history,
Decrypting the first encrypted data by using a first decryption key of the first electronic code, and acquiring current information of the service that may be provided by the first electronic code scanned at the terminal of the operator;
Comparing current information of the service with the first history information for the first electronic code recorded in the ledger to verify the validity of the first scheduled usage history.
제3항에 있어서,
상기 제1 이용 예정 내역의 유효성을 검증하는 단계는,
상기 원장에 기록된 이력 정보 중에서, 상기 서비스의 현재 정보에 대응되는 상기 제1 전자 코드의 제1 이력 정보가 있는지를 확인하여, 상기 제1 전자 코드의 유효성을 검증하는 단계; 및
상기 제1 전자 코드가 유효하면, 상기 제1 전자 코드의 제1 이력 정보와 상기 서비스의 현재 정보를 비교하여, 상기 제1 이용 예정 내역에 대응되는 제1 서비스가 제공 가능한지를 판단하여, 상기 제1 이용 예정 내역의 유효성을 검증하는 단계를 포함하는, 방법.
The method of claim 3,
Validating the first usage schedule history,
Verifying validity of the first electronic code by checking whether there is first history information of the first electronic code corresponding to current information of the service among the history information recorded in the ledger; And
If the first electronic code is valid, the first history information of the first electronic code is compared with the current information of the service to determine whether a first service corresponding to the first usage schedule is available, and the first electronic code is determined. 1 Validating the prospective usage history.
제1항에 있어서,
상기 제1 이용 예정 내역의 유효성을 검증한 결과를 상기 사업자의 단말기로 전송하는 단계는,
상기 제1 이용 예정 내역이 유효하면, 상기 제1 이용 예정 내역을 승인하는 메시지를 상기 사업자의 단말기로 전송하는 단계; 및
상기 제1 이용 예정 내역이 유효하지 않으면, 상기 제1 이용 예정 내역의 승인을 거부하는 메시지를 상기 사업자의 단말기로 전송하는 단계를 포함하는, 방법.
The method of claim 1,
The step of transmitting the result of verifying the validity of the first scheduled use history to the terminal of the operator,
If the first usage schedule is valid, transmitting a message approving the first usage schedule to the terminal of the operator; And
If the first usage schedule is not valid, transmitting a message to the terminal of the service provider denying the approval of the first usage schedule.
제1항에 있어서,
상기 제1 이용 예정 내역이 유효하면, 상기 제1 이용 예정 내역을 상기 블록체인의 네트워크 상의 다른 노드로 전송하고, 상기 제1 이용 예정 내역을 후보 블록에 기록하는 단계를 더 포함하는, 방법.
The method of claim 1,
If the first usage schedule is valid, further comprising transmitting the first usage schedule to another node on the network of the blockchain and recording the first usage schedule to 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 the operator's terminal;
Reflecting the first usage history in the first scheduled usage history recorded in the candidate block; And
Performing proof of work of the candidate block reflecting a plurality of usage histories of the service, and adding the candidate block as a valid block to the blockchain.
제7항에 있어서,
상기 제1 전자 코드에 기반하는 상기 서비스가 분할되어 제공되면, 상기 제1 암호화 데이터 및 상기 제1 이용 내역에 기초하여, 상기 제1 이력 정보를 업데이트 하는 단계를 더 포함하는, 방법.
The method of claim 7, wherein
If the service based on the first electronic code is divided and provided, updating the first history information based on the first encrypted data and the first usage history.
제1항에 있어서,
상기 블록체인의 네트워크 상의 제2 노드로부터 작업 증명이 완료된 제1 블록을 수신하여, 상기 제1 블록에 기록된 적어도 하나의 이용 내역의 유효성 및 상기 제1 블록의 블록 헤더의 유효성을 확인하여, 상기 제1 블록의 유효성을 검증하는 단계;
상기 제1 블록이 유효하면, 상기 제1 노드의 블록체인에 상기 제1 블록을 추가하는 단계; 및
상기 제1 블록이 유효하지 않으면, 상기 제1 블록을 폐기하고, 상기 제1 노드의 블록체인에 추가될 유효한 블록을 생성하는 단계를 더 포함하는, 방법.
The method of claim 1,
Receiving a first block of which proof of work is completed from a second node on the network of the blockchain, confirming the validity of at least one usage record recorded in the first block and the validity of the block header of the first block, Validating the first block;
If the first block is valid, adding the first block to the blockchain of the first node; 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항에 있어서,
상기 블록체인의 네트워크 상의 노드는,
상기 전자 코드를 생성하여 배포하는 공급자의 서버, 및 상기 전자 코드를 이용하여 상기 서비스가 제공되도록 하는 복수의 사업자의 서버를 포함하는, 방법.
The method of claim 1,
Nodes on the network of the blockchain,
A server of a supplier for generating and distributing the electronic code, and a server of a plurality of providers for providing the service using the electronic code.
제1항에 있어서,
상기 전자 코드는, QR 코드, 바코드, 칼라 코드, 및 문자 또는 기호로 구성된 코드 중 하나의 코드인, 방법.
The method of claim 1,
The electronic code is a code of one of a QR code, a barcode, a color code, and a code consisting of letters or symbols.
제1항 내지 제11항 중 어느 한 항의 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체.A computer-readable recording medium having recorded thereon a program for executing the method of claim 1 on a computer. 전자 코드를 이용한 서비스의 이용 내역을 기록한 원장을 분산하여 관리하는 블록체인의 네트워크 상의 노드들 및 외부 장치와 통신을 수행하는 통신 장치;
프로세서; 및
상기 프로세서에 의해 실행 가능한 명령어들을 저장하는 메모리를 포함하고,
상기 프로세서는, 상기 명령어들을 실행함으로써,
사업자의 단말기로부터 제1 전자 코드를 스캔한 제1 데이터 및 상기 제1 전자 코드를 이용한 상기 서비스의 제1 이용 예정 내역을 상기 통신 장치를 통해 수신하고,
상기 제1 데이터로부터 상기 원장에 상기 제1 전자 코드를 이용한 상기 서비스의 이용 내역을 기록하는 데에 이용되는 제1 암호화 데이터를 추출하고,
상기 제1 암호화 데이터 및 상기 원장에 기록된 상기 제1 전자 코드에 대한 상기 서비스의 제1 이력 정보에 기초하여, 상기 제1 이용 예정 내역의 유효성을 검증하고,
상기 제1 이용 예정 내역의 유효성을 검증한 결과를 상기 통신 장치를 통해 상기 사업자의 단말기로 전송하는, 노드.
A communication device configured to communicate with nodes and external devices on a network of a blockchain for distributing and managing a ledger that records usage history of a service using an electronic code;
A processor; And
A memory storing instructions executable by the processor,
The processor executes the instructions,
Receiving first data of the first electronic code scanned from the operator's terminal and a first usage schedule of the service using the first electronic code through the communication device,
Extracting first encrypted data used to record usage history of the service using the first electronic code in the ledger from the first data,
Based on the first history information of the service with respect to the first encrypted data and the first electronic code recorded in the ledger, verify the validity of the first scheduled usage history;
And transmitting a result of verifying validity of the first scheduled use schedule to the terminal of the operator through the communication device.
제13항에 있어서,
상기 프로세서는, 상기 명령어들을 실행함으로써,
상기 전자 코드를 생성하여 배포하는 서버로부터 상기 전자 코드와 동일한 종류의 전자 코드들 각각에 포함된 초기 정보, 및 전자 코드들 각각에 포함된 암호화 데이터를 복호화하는 데에 이용되는 상기 전자 코드들 각각의 복호화 키를 상기 통신 장치를 통해 수신하는, 노드.
The method of claim 13,
The processor executes the instructions,
Each of the electronic codes used to decrypt initial information included in each of the electronic codes of the same type as the electronic code and encrypted data included in each of the electronic codes from a server that generates and distributes the electronic code. And receive a decryption key via the communication device.
제14항에 있어서,
상기 프로세서는, 상기 명령어들을 실행함으로써,
상기 제1 전자 코드의 제1 복호화 키를 이용하여 상기 제1 암호화 데이터를 복호화하고, 상기 사업자의 단말기에서 스캔된 상기 제1 전자 코드에 의해 제공될 수 있는 상기 서비스의 현재 정보를 획득하고,
상기 서비스의 현재 정보와 상기 원장에 기록된 상기 제1 전자 코드에 대한 상기 제1 이력 정보를 비교하여, 상기 제1 이용 예정 내역의 유효성을 검증하는, 노드.
The method of claim 14,
The processor executes the instructions,
Decrypts the first encrypted data using the first decryption key of the first electronic code, obtains current information of the service that may be provided by the first electronic code scanned at the terminal of the operator,
And comparing the current information of the service with the first history information for the first electronic code recorded in the ledger, thereby validating the first usage schedule.
제15항에 있어서,
상기 프로세서는, 상기 명령어들을 실행함으로써,
상기 원장에 기록된 이력 정보 중에서, 상기 서비스의 현재 정보에 대응되는 상기 제1 전자 코드의 제1 이력 정보가 있는지를 확인하여, 상기 제1 전자 코드의 유효성을 검증하고,
상기 제1 전자 코드가 유효하면, 상기 제1 전자 코드의 제1 이력 정보와 상기 서비스의 현재 정보를 비교하여, 상기 제1 이용 예정 내역에 대응되는 제1 서비스가 제공 가능한지를 판단하여, 상기 제1 이용 예정 내역의 유효성을 검증하는, 노드.
The method of claim 15,
The processor executes the instructions,
Verifying the validity of the first electronic code by checking whether there is first history information of the first electronic code corresponding to current information of the service among the history information recorded in the ledger,
If the first electronic code is valid, the first history information of the first electronic code is compared with the current information of the service to determine whether a first service corresponding to the first usage schedule is available, and the first electronic code is determined. 1 A node that validates availability.
제13항에 있어서,
상기 프로세서는, 상기 명령어들을 실행함으로써,
상기 제1 이용 예정 내역이 유효하면, 상기 제1 이용 예정 내역을 상기 통신 장치를 통해 상기 블록체인의 네트워크 상의 다른 노드로 전송하고,
상기 제1 이용 예정 내역을 후보 블록에 기록하는, 노드.
The method of claim 13,
The processor executes the instructions,
If the first usage schedule is valid, transmit the first usage schedule to another node on the network of the blockchain through the communication device;
And record the first scheduled usage history in a candidate block.
제17항에 있어서,
상기 프로세서는, 상기 명령어들을 실행함으로써,
상기 사업자의 단말기로부터 상기 제1 이용 예정 내역에 따른 상기 서비스의 제1 이용 내역을 상기 통신 장치를 통해 수신하고,
상기 후보 블록에 기록된 상기 제1 이용 예정 내역에 상기 제1 이용 내역을 반영하고,
상기 서비스에 대한 복수의 이용 내역들이 반영된 상기 후보 블록의 작업 증명을 수행하여, 상기 블록체인에 상기 후보 블록을 유효한 블록으로 추가하는, 노드.
The method of claim 17,
The processor executes the instructions,
Receiving a first usage history of the service according to the first usage schedule from the operator's terminal through the communication device;
The first usage history is reflected in the first scheduled usage history recorded in the candidate block,
Performing proof of work of the candidate block reflecting a plurality of usage histories of the service, and adding the candidate block as a valid block to the blockchain.
제18항에 있어서,
상기 프로세서는, 상기 명령어들을 실행함으로써,
상기 제1 전자 코드에 기반하는 상기 서비스가 분할되어 제공되면, 상기 제1 암호화 데이터 및 상기 제1 이용 내역에 기초하여, 상기 제1 이력 정보를 업데이트 하는, 노드.
The method of claim 18,
The processor executes the instructions,
And when the service based on the first electronic code is divided and provided, updating the first history information based on the first encrypted data and the first usage history.
통신 장치;
프로세서; 및
상기 프로세서에 의해 실행 가능한 명령어들을 저장하는 메모리를 포함하고,
상기 프로세서는, 상기 명령어들을 실행함으로써,
제1 서비스를 제공하는 데에 이용되는 정보를 포함하는 제1 데이터를 생성하고,
상기 제1 데이터에 할당된 제1 암호화 키를 이용하여 상기 제1 데이터를 암호화하여 제1 암호화 데이터를 생성하고,
전자 코드를 이용한 서비스의 이용 내역을 기록한 원장을 분산하여 관리하는 블록체인의 네트워크 상의 적어도 하나의 노드 또는 상기 전자 코드를 이용하여 상기 서비스가 제공되도록 하는 복수의 사업자의 단말기로 상기 제1 암호화 데이터 및 상기 제1 데이터에 할당된 제1 복호화 키를 상기 통신 장치를 통해 전송하고,
상기 제1 암호화 데이터를 포함하는 상기 제1 전자 코드를 생성하고, 상기 제1 전자 코드를 외부 장치로 배포하는, 서버.
Communication devices;
A processor; And
A memory storing instructions executable by the processor,
The processor executes the instructions,
Generate first data comprising information used to provide a first service,
Generating first encrypted data by encrypting the first data using a first encryption key assigned to the first data,
The first encrypted data to at least one node on a network of a blockchain for distributing and managing a ledger recording a usage history of a service using an electronic code, or a terminal of a plurality of operators for providing the service using the electronic code; Transmit a first decryption key assigned to the first data through the communication device,
And generating the first electronic code including the first encrypted data and distributing the first electronic code to an external device.
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 true KR20190135830A (en) 2019-12-09
KR102119784B1 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)

Cited By (4)

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

Citations (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

Patent Citations (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. 게재)* *

Cited By (4)

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

Also Published As

Publication number Publication date
KR102119784B1 (en) 2020-06-08

Similar Documents

Publication Publication Date Title
KR102051895B1 (en) Data management method through distributed storage of data between user and blockchain
US20220321359A1 (en) Methods and systems for ownership verification using blockchain
US11687924B2 (en) Cryptocurrency infrastructure system
US11392880B2 (en) Split shipment processing
KR102322646B1 (en) Method and device for protecting sensitive data of transaction activity based on smart contract in blockchain
US20210142312A1 (en) Authentication systems and methods using location matching
US10341111B2 (en) Secure authentication of user and mobile device
US11374754B2 (en) System and method for generating trust tokens
AU2016220117B2 (en) Token and cryptogram using transaction specific information
CN110458699A (en) The identity of supply chain application based on distributed account book, realizing financial inclusiveness and sustainability and origin
US20180227293A1 (en) Certificate issuing system based on block chain
KR102119784B1 (en) System and method for providing service based on blockchain using electronic code
AU2016219306A1 (en) Peer forward authorization of digital requests
US20220277288A1 (en) Systems and methods for displaying payment device specific functions
KR102333811B1 (en) System and method for processing card payment based on block-chain
Meenakshi et al. An Enhanced Security System Using Blockchain Technology for Strong FMC Relationship.
KR102395870B1 (en) A payment terminal apparatus for providing payment services using a distributed management network of encryption key based on block chains
GB2616406A (en) Quantum-secure digital currency
CN115631045A (en) Electronic certificate transaction method, device, computer equipment and storage medium
KR20210017968A (en) Method for obtaining data through searching and merging distributed data stored using blockchain
Jayasinghe Enhancing the Security of Centralised and Distributed Payments

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