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 PDFInfo
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION 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/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/385—Payment protocols; Details thereof using an alias or single-use codes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION 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/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/382—Payment protocols; Details thereof insuring higher security of transaction
- G06Q20/3827—Use of message hashing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION 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/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/387—Payment using discounts or coupons
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1097—Protocols 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]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic 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/3236—Cryptographic 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/3242—Cryptographic 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)
- General Physics & Mathematics (AREA)
- General Business, Economics & Management (AREA)
- Physics & Mathematics (AREA)
- Strategic Management (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Power Engineering (AREA)
- Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
Abstract
Description
전자 코드를 이용하여 블록체인 기반의 서비스를 제공하는 시스템 및 방법에 관한 것이다.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
서버(10)는 소정의 서비스를 제공하는 데에 이용되는 정보를 생성할 수 있다. 예를 들면, 서비스는 소정 금액의 지불 수단인 상품권 사용 서비스, 티켓 사용 서비스, 충전식 티켓 사용 서비스, 소정 결제 기능을 탑재한 사원증 사용 서비스, 소정 결제 기능을 제공하는 애플리케이션 서비스일 수 있고, 이에 제한되지 않는다. 또한, 티켓 사용 서비스에는, 일회용 탑승권 사용 서비스, 정기 탑승권 사용 서비스, 입장권 등의 티켓 사용 서비스가 포함될 수 있고, 이에 제한되지 않는다.The
예를 들어, 서비스가 상품권 사용 서비스인 경우, 서버(10)는 상품권 발행에 필요한 정보를 생성할 수 있다. 구체적으로, 상품권 발행에 필요한 정보는, 상품권의 종류, 상품권의 코드 번호, 상품권의 금액, 상품권의 유효기간, 상품권을 이용할 수 있는 거래처 중 적어도 하나에 대한 정보를 포함할 수 있다.For example, when the service is a gift certificate using service, the
서버(10)는 생성된 서비스를 제공하는 데에 이용되는 정보를 암호화 하여 암호화 데이터를 생성할 수 있다. 서버(10)는 생성된 암호화 데이터를 서비스의 이용 내역을 기록한 원장을 분산하여 관리하는 블록체인의 네트워크의 노드(20)로 전송할 수 있다. 여기서, 노드(20)는 전자 코드를 생성하여 배포하는 공급자의 서버, 전자 코드를 이용하여 서비스가 제공되도록 하는 복수의 사업자의 서버일 수 있다. 또한, 서버(10)는 생성된 암호화 데이터를 복수의 사업자 각각의 단말기로 전송할 수 있다.The
서버(10)는 암호화 데이터를 포함하는 전자 코드를 생성할 수 있다. 여기서, 전자 코드는 QR 코드, 바코드, 칼라 코드, 및 문자 또는 기호로 구성된 코드 중 하나의 코드일 수 있고, 이에 제한되지 않는다. 서버(10)는 전자 코드를 요청한 외부 장치로 전자 코드를 전송할 수 있다. 예를 들면, 서버(10)는 발행된 상품권을 온라인 상에서 판매할 수 있다. 서버(10)는 상품권을 구매한 사용자의 단말기(40)로 전자 코드를 전송할 수 있다. 도 1에서, 전자 코드는 서버(10)가 사용자의 단말기(40)로 전송하는 구성을 도시하였으나, 전자 코드는 오프라인 상으로 전자 코드가 인쇄된 지류로도 제공될 수 있다.The
도 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
제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
도 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
단계 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
또한, 단계 S203에서, 서버(10)는 암호화 데이터를 사업자의 단말기(30)로 전송할 수 있다. 또한, 서버(10)는 암호화 데이터를 복호화할 수 있는 복호화 키를 사업자의 단말기(30)로 전송할 수 있다.In operation S203, the
단계 S204에서, 서버(10)는 암호화 데이터를 포함하는 전자 코드를 생성할 수 있다. 여기서, 전자 코드는, QR 코드, 바코드, 칼라 코드, 및 문자 또는 기호로 구성된 코드 중 하나의 코드일 수 있다. 서버(10)는 전자 코드를 외부 장치로 배포할 수 있다. 단계 S205에서, 서버(10)는 제1 전자 코드를 사용자의 단말기(40)로 전송할 수 있다.In step S204, the
단계 S206에서, 사용자의 단말기(40)는 제1 전자 코드를 이용하여 사업자의 단말기(30)로 서비스의 제공을 요청할 수 있다.In operation S206, the
단계 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
단계 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
단계 S210에서, 블록체인의 네트워크 상의 노드(20)는 제1 데이터에 포함된 제1 암호화 데이터 및 원장에 기록된 제1 이력 정보에 기초하여, 제1 이용 예정 내역의 유효성을 검증할 수 있다. 블록체인의 네트워크 상의 노드(20)에서 이용 예정 내역의 유효성을 검증하는 구체적인 과정은 도 3 내지 도 8에서 설명한다. 단계 S211에서, 노드(20)는 제1 이용 예정 내역의 유효성을 검증한 결과를 사업자의 단말기(30)로 전송할 수 있다.In operation S210, the
단계 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
단계 S214에서, 노드(20)는 원장에 제1 이용 내역을 기록할 수 있다. 블록체인의 네트워크 상의 노드(20)에서 원장에 이용 내역을 기록하는 과정은 도 4 내지 도 8에서 설명한다. 단계 S215에서, 노드(20)는 서버(10)로 제1 이용 내역 및 원장에 제1 이용 내역이 기록되었음을 알리는 메시지를 전송할 수 있다.In operation S214, the
도 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
단계 S320에서, 노드(20)는 제1 데이터로부터 원장에 서비스의 이용 내역을 기록하는 데에 이용되는 제1 암호화 데이터를 추출할 수 있다. 제1 암호화 데이터는 제1 이용 예정 내역에 따른 서비스가 제공 가능한지를 결정하는 데에 이용되는 정보를 포함할 수 있다. 예를 들면, 서비스가 상품권 사용 서비스이면, 제1 암호화 데이터는 상품권의 종류, 상품권의 코드 번호, 상품권의 금액, 상품권의 유효기간, 상품권을 이용할 수 있는 거래처 중 적어도 하나에 대한 정보가 암호화된 데이터일 수 있다.In operation S320, the
단계 S330에서, 노드(20)는 제1 암호화 데이터 및 원장에 기록된 제1 전자 코드에 대한 서비스의 제1 이력 정보에 기초하여, 제1 이용 예정 내역의 유효성을 검증할 수 있다. 예를 들면, 서비스가 상품권 사용 서비스이면, 제1 전자 코드에 대한 서비스의 이력 정보는, 제1 전자 코드를 이용하여 상품권을 사용한 이력 정보일 수 있다. 구체적으로, 이력 정보는, 상품권을 사용한 시기, 상품권에서 사용한 금액, 상품권을 사용한 장소 중 적어도 하나의 정보를 포함할 수 있다. 다른 예를 들면, 서비스가 티켓 사용 서비스이면, 제1 전자 코드에 대한 서비스의 이력 정보는, 제1 전자 코드를 이용하여 티켓을 사용한 이력 정보일 수 있다. 이력 정보는, 티켓을 사용한 시기, 티켓을 사용한 장소 중 적어도 하나의 정보를 포함할 수 있다.In operation S330, the
구체적으로, 노드(20)는 제1 전자 코드의 제1 복호화 키를 이용하여 제1 암호화 데이터를 복호화하고, 복호화된 데이터로부터 제1 전자 코드에 의해 제공될 수 있는 서비스의 현재 정보를 획득할 수 있다. 예를 들면, 서비스가 상품권 사용 서비스이면, 서비스의 현재 정보는, 상품권에 남아 있는 금액, 상품권의 유효 기간 중 적어도 하나의 정보를 포함할 수 있다.Specifically, the
노드(20)는 서비스의 현재 정보와 원장에 기록된 제1 전자 코드에 대한 제1 이력 정보를 비교하고, 비교 결과에 기초하여 제1 이용 예정 내역의 유효성을 검증할 수 있다.The
노드(20)는 원장에 기록된 이력 정보 중에서 서비스의 현재 정보에 대응되는 제1 전자 코드의 제1 이력 정보가 있는지를 확인할 수 있다. 노드(20)는 확인 결과에 기초하여, 제1 전자 코드의 유효성을 검증할 수 있다. 예를 들면, 원장에 제1 전자 코드의 제1 이력 정보가 있는 경우, 노드(20)는 제1 전자 코드가 유효하다고 결정할 수 있다.The
한편, 제1 전자 코드가 유효하면, 노드(20)는 제1 전자 코드의 제1 이력 정보와 서비스의 현재 정보를 비교하여, 제1 이용 예정 내역에 대응되는 제1 서비스가 제공 가능한지를 판단할 수 있다. 제1 이용 예정 내역에 대응되는 제1 서비스가 제공 가능하다고 판단되면, 노드(20)는 제1 이용 예정 내역을 유효하다고 결정할 수 있다.On the other hand, if the first electronic code is valid, the
단계 S340에서, 노드(20)는 제1 이용 예정 내역의 유효성을 검증한 결과를 사업자의 단말기(30)로 전송할 수 있다.In operation S340, the
구체적으로, 제1 이용 예정 내역이 유효하면, 노드(20)는 제1 이용 예정 내역을 승인하는 메시지를 사업자의 단말기(30)로 전송할 수 있다. 반면에, 제1 이용 예정 내역이 유효하지 않으면, 노드(20)는 제1 이용 예정 내역의 승인을 거부하는 메시지를 사업자의 단말기(30)로 전송할 수 있다.In detail, if the first usage schedule is valid, the
도 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
단계 S440에서, 노드(20)는 제1 이용 예정 내역을 블록체인의 네트워크 상의 다른 노드(20)로 전송할 있다. 또한, 노드(20)는 제1 이용 예정 내역을 후보 블록에 기록할 수 있다.In operation S440, the
단계 S450에서, 노드(20)는 사업자의 단말기(30)로부터 제1 이용 예정 내역에 따른 서비스의 제1 이용 내역을 수신할 수 있다.In operation S450, the
단계 S460에서, 노드(20)는 후보 블록에 기록된 제1 이용 예정 내역에 제1 이용 내역을 반영할 수 있다.In operation S460, the
단계 S470에서, 노드(20)는 서비스에 대한 복수의 이용 내역들이 반영된 후보 블록의 작업 증명을 수행하여, 블록체인에 후보 블록을 유효한 블록으로 추가할 수 있다.In operation S470, the
도 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
예를 들면, 사업자의 단말기(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
사업자의 단말기(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
한편, 제1 노드(20)는 전자 코드를 생성하여 배포하는 서버(10)로부터 전자 코드와 동일한 종류의 전자 코드들 각각에 포함된 초기 정보, 및 전자 코드들 각각에 포함된 암호화 데이터를 복호화 하는 데에 이용되는 전자 코드들 각각의 복호화 키를 수신할 수 있다. 예를 들면, 전자 코드를 이용하여 제공되는 서비스가 상품권 사용 서비스인 경우, 초기 정보는, 상품권의 종류, 상품권에 발행된 금액, 상품권의 코드 번호, 상품권의 유효 기간에 대한 정보를 포함할 수 있다.Meanwhile, the
제1 노드(20)는 제1 전자 코드의 제1 복호화 키를 이용하여 제1 암호화 데이터를 복호화하고, 제1 전자 코드에 의해 제공될 수 있는 서비스의 현재 정보를 획득할 수 있다. 예를 들면, 서비스의 현재 정보는, A 상품권에 남아있는 금액, A 상품권의 코드 번호, A 상품권의 유효 기간에 대한 정보를 포함할 수 있다.The
제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
제1 노드(20)는 유효한 제1 이용 예정 내역을 블록체인의 네트워크 상의 다른 노드들로 전송하고, 제1 이용 예정 내역을 제1 노드(20) 내의 후보 블록(510)에 기록할 수 있다. 예를 들면, 제1 노드(20)는 "A 상품권, 코드 번호 XXXX-XXXXX를 50,000원 사용"하는 제1 이용 예정 내역을 후보 블록(510)에 기록할 수 있다.The
한편, 사업자의 단말기(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
또한, 제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
제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
블록체인의 네트워크 상의 각 노드들(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
도 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
구체적으로, 사업자의 단말기(30)는 제1 전자 코드(601)를 스캔한 제1 데이터(611) 및 "A 매장에서 50,000원 사용"하는 제1 이용 예정 내역(612)을 고유의 데이터를 생성하는 해시 함수에 적용하여, 제1 데이터(611) 및 제1 이용 예정 내역(612)에 대응되는 해시값 "DIRAL28A"(621)을 생성할 수 있다.Specifically, the
사업자의 단말기(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
도 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
제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
도 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
도 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
도 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
머클 트리는 해시 참조와 이용 내역 정보의 데이터가 트리 형태로 연결되어 있는 구조를 의미할 수 있다. 해시 참조는 암호화 해시값을 이용하여 이용 내역 정보의 데이터를 가리키는 것을 의미할 수 있다. 한편, 암호화 해시값은 데이터의 고유값이므로, 서로 다른 데이터들은 동일한 해시값을 갖지 않는다.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
일부 실시예에 따르면, 통신 장치(1010)는 외부 장치와 통신을 수행할 수 있다. 구체적으로, 통신 장치(1010)는 유선 또는 무선으로 네트워크와 연결되어 외부 장치와 통신을 수행할 수 있다. 여기서, 외부 장치는 블록체인 네트워크 상의 다른 노드들을 포함할 수 있다. 노드들은, 전자 코드를 생성하여 배포하는 공급자의 서버, 전자 코드를 이용하여 서비스가 제공되도록 복수의 사업자 각각의 서버들을 포함할 수 있다. 또한, 전자 코드는 QR 코드, 바코드, 칼라 코드, 및 문자 또는 기호로 구성된 코드 중 하나의 코드일 수 있고, 이에 제한되지 않는다.According to some embodiments, the
통신 장치(1010)는 다양한 유무선 통신 방법 중 하나를 지원하는 통신 모듈을 포함할 수 있다. 통신 모듈은 근거리 통신 모듈, 유선 통신 모듈일 수 있다.The
일부 실시예에 따르면, 메모리(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
일부 실시예에 따르면, 프로세서(1030)는 노드(20)의 전체적인 동작을 제어하며, CPU 등과 같은 적어도 하나의 프로세서를 포함할 수 있다. 프로세서(1030)는 각 기능에 대응되는 특화된 프로세서를 적어도 하나 포함하거나, 하나로 통합된 형태의 프로세서일 수 있다.According to some embodiments, the
일부 실시예에 따르면, 프로세서(1030)는 메모리(1020)에 저장된 프로그램을 실행시키거나, 메모리(1020)에 저장된 데이터 또는 파일을 읽어오거나, 새로운 파일을 메모리(1020)에 저장할 수도 있다. 또한, 프로세서(1030)는 메모리(1020)에 저장된 명령어들을 실행할 수 있다.According to some embodiments, the
일부 실시예에 따르면, 통신 장치(1010)는 사업자의 단말기로부터 제1 전자 코드를 스캔한 제1 데이터 및 제1 전자 코드를 이용한 서비스의 제1 이용 예정 내역을 수신할 수 있다. 통신 장치(1010)는 수신된 제1 데이터 및 제1 이용 예정 내역을 프로세서(1030)로 전송할 수 있다.According to some embodiments, the
일부 실시예에 따르면, 통신 장치(1010)는 전자 코드를 생성하여 배포하는 서버로부터 전자 코드에 포함된 초기 정보 및 전자 코드에 포함된 암호화 데이터를 복호화 하는 데에 이용되는 전자 코드의 복호화 키를 수신할 수 있다.According to some embodiments, the
일부 실시예에 따르면, 프로세서(1030)는 제1 데이터로부터 원장에 서비스의 이용 내역을 기록하는 데에 이용되는 제1 암호화 데이터를 추출할 수 있다. 프로세서(1030)는 제1 암호화 데이터 및 원장에 기록된 제1 전자 코드에 대한 서비스의 제1 이력 정보에 기초하여, 제1 이용 예정 내역의 유효성을 검증할 수 있다.According to some embodiments, the
일부 실시예에 따르면, 프로세서(1030)는 제1 전자 코드의 제1 복호화 키를 이용하여 제1 암호화 데이터를 복호화할 수 있다. 프로세서(1030)는 복호화된 데이터로부터 제1 전자 코드에 의해 제공될 수 있는 서비스의 현재 정보를 획득할 수 있다. 프로세서(1030)는 서비스의 현재 정보와 원장에 기록된 제1 전자 코드에 대한 제1 이력 정보를 비교하여, 제1 이용 예정 내역의 유효성을 검증할 수 있다.According to some embodiments, the
구체적으로, 프로세서(1030)는 원장에 기록된 이력 정보 중에서, 서비스의 현재 정보에 대응되는 제1 전자 코드의 제1 이력 정보가 있는지를 확인하여, 제1 전자 코드의 유효성을 검증할 수 있다. 여기서, 제1 전자 코드의 제1 이력 정보는, 제1 전자 코드에 포함된 초기 정보, 제1 전자 코드에 의해 서비스가 제공된 이력 정보를 포함할 수 있다.In detail, the
프로세서(1030)는 제1 전자 코드가 유효하면, 제1 전자 코드의 제1 이력 정보와 서비스의 현재 정보를 비교하여, 제1 이용 예정 내역에 대응되는 제1 서비스가 제공 가능한지를 판단하고, 판단 결과에 따른 제1 이용 예정 내역의 유효성을 검증할 수 있다.If the first electronic code is valid, the
일부 실시예에 따르면, 프로세서(1030)는 제1 이용 예정 내역의 유효성을 검증한 결과가 사업자의 단말기로 전송되도록 통신 장치(1010)를 제어할 수 있다. 예를 들면, 제1 이용 예정 내역이 유효하면, 통신 장치(1010)는 제1 이용 예정 내역을 승인하는 메시지를 사업자의 단말기로 전송할 수 있다. 반면에 제1 이용 예정 내역이 유효하지 않으면, 통신 장치(1010)는 제1 이용 예정 내역의 승인을 거부하는 메시지를 사업자의 단말기로 전송할 수 있다.According to some embodiments, the
일부 실시예에 따르면, 제1 이용 예정 내역이 유효하면, 통신 장치(1010)는 제1 이용 예정 내역을 블록체인의 네트워크 상의 다른 노드로 전송할 수 있다. 또한, 프로세서(1030)는 제1 이용 예정 내역을 노드(20)의 후보 블록에 기록할 수 있다.According to some embodiments, if the first usage schedule is valid, the
일부 실시예에 따르면, 통신 장치(1010)는 사업자의 단말기로부터 제1 이용 예정 내역에 따른 서비스의 제1 이용 내역을 수신할 수 있다. 프로세서(1030)는 후보 블록에 기록된 제1 이용 예정 내역에 제1 이용 내역을 반영할 수 있다. 프로세서(1030)는 서비스에 대한 복수의 이용 내역들이 반영된 후보 블록에 대한 작업 증명을 수행하고, 블록체인에 후보 블록을 유효한 블록으로 추가할 수 있다.According to some embodiments, the
일부 실시예에 따르면, 제1 전자 코드에 기반하는 서비스가 분할되어 제공되는 경우, 프로세서(1030)는 제1 암호화 데이터 및 제1 이용 내역에 기초하여, 제1 이력 정보를 업데이트 할 수 있다.According to some embodiments, when a service based on the first electronic code is divided and provided, the
일부 실시예에 따르면, 통신 장치(1010)는 블록체인의 네트워크 상의 제2 노드로부터 작업 증명이 완료된 제1 블록을 수신할 수 있다. 프로세서(1030)는 제1 블록에 기록된 적어도 하나의 이용 내역의 유효성 및 제1 블록의 블록 헤더의 유효성을 확인하여, 제1 블록의 유효성을 검증할 수 있다. 제1 블록이 유효하면, 프로세서(1030)는 노드(20)의 블록체인에 제1 블록을 추가할 수 있다. 반면에, 제1 블록이 유효하지 않으면, 프로세서(1030)는 제1 블록을 폐기하고, 노드(20)의 블록체인에 추가될 유효한 블록을 생성할 수 있다.According to some embodiments, the
도 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
단계 S1130에서, 서버(10)는 전자 코드를 이용한 서비스의 이용 내역을 기록한 원장을 분산하여 관리하는 블록체인의 네트워크 상의 적어도 하나의 노드로 제1 암호화 데이터 및 제1 데이터에 할당된 제1 복호화 키를 전송할 수 있다. 또한, 서버(10)는 복수의 사업자 각각의 단말기로 제1 암호화 데이터 및 제1 데이터에 할당된 제1 복호화 키를 전송할 수 있다.In step S1130, the
단계 S1140에서, 서버(10)는 제1 암호화 데이터를 포함하는 제1 전자 코드를 생성할 수 있다. 서버(10)는 제1 전자 코드를 외부장치로 배포할 수 있다.In operation S1140, the
도 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
일부 실시예에 따르면, 통신 장치(1210)는 외부 장치와 통신을 수행할 수 있다. 구체적으로, 통신 장치(1210)는 유선 또는 무선으로 네트워크와 연결되어 외부 장치와 통신을 수행할 수 있다. 여기서, 외부 장치는 블록체인 네트워크 상의 노드들, 사업자의 단말기를 포함할 수 있다.According to some embodiments, the
통신 장치(1210)는 다양한 유무선 통신 방법 중 하나를 지원하는 통신 모듈을 포함할 수 있다. 통신 모듈은 근거리 통신 모듈, 유선 통신 모듈일 수 있다.The
일부 실시예에 따르면, 메모리(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
일부 실시예에 따르면, 프로세서(1230)는 서버(10)의 전체적인 동작을 제어하며, CPU 등과 같은 적어도 하나의 프로세서를 포함할 수 있다. 프로세서(1230)는 각 기능에 대응되는 특화된 프로세서를 적어도 하나 포함하거나, 하나로 통합된 형태의 프로세서일 수 있다.According to some embodiments, the
일부 실시예에 따르면, 프로세서(1230)는 메모리(1220)에 저장된 프로그램을 실행시키거나, 메모리(1220)에 저장된 데이터 또는 파일을 읽어오거나, 새로운 파일을 메모리(1220)에 저장할 수도 있다. 또한, 프로세서(1230)는 메모리(1220)에 저장된 명령어들을 실행할 수 있다.According to some embodiments, the
일부 실시예에 따르면, 프로세서(1230)는 제1 서비스를 제공하는 데에 이용되는 정보를 포함하는 제1 데이터를 생성할 수 있다.According to some embodiments, the
프로세서(1230)는 제1 데이터에 할당된 제1 암호화 키를 이용하여 제1 데이터를 암호화하여 제1 암호화 데이터를 생성할 수 있다.The
프로세서(1230)는 제1 암호화 데이터 및 제1 데이터에 할당된 제1 복호화 키가 전자 코드를 이용한 서비스의 이용 내역을 기록한 원장을 분산하여 관리하는 블록체인의 네트워크 상의 적어도 하나의 노드로 전송되도록 통신 장치(1210)를 제어할 수 있다. 또한, 프로세서(1230)는 제1 암호화 데이터 및 제1 데이터에 할당된 제1 복호화 키가 복수의 사업자 각각의 단말기로 전송되도록 통신 장치(1210)를 제어할 수 있다.The
프로세서(1230)는 제1 암호화 데이터를 포함하는 제1 전자 코드를 생성할 수 있다. 프로세서(1230)는 제1 전자 코드를 외부 장치로 배포할 수 있다.The
이상에서 설명된 장치는 하드웨어 구성요소, 소프트웨어 구성요소, 및/또는 하드웨어 구성요소 및 소프트웨어 구성요소의 조합으로 구현될 수 있다. 예를 들어, 실시예들에서 설명된 장치 및 구성요소는, 예를 들어, 프로세서, 콘트롤러, 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 이용 예정 내역의 유효성을 검증한 결과를 상기 사업자의 단말기로 전송하는 단계를 포함하는, 방법.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.
상기 전자 코드를 생성하여 배포하는 서버로부터 상기 전자 코드와 동일한 종류의 전자 코드들 각각에 포함된 초기 정보, 및 전자 코드들 각각에 포함된 암호화 데이터를 복호화하는 데에 이용되는 상기 전자 코드들 각각의 복호화 키를 수신하는 단계를 더 포함하는, 방법.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.
상기 제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.
상기 제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 이용 예정 내역의 승인을 거부하는 메시지를 상기 사업자의 단말기로 전송하는 단계를 포함하는, 방법.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 이용 예정 내역을 후보 블록에 기록하는 단계를 더 포함하는, 방법.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.
상기 사업자의 단말기로부터 상기 제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.
상기 제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.
상기 블록체인의 네트워크 상의 제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.
상기 블록체인의 네트워크 상의 노드는,
상기 전자 코드를 생성하여 배포하는 공급자의 서버, 및 상기 전자 코드를 이용하여 상기 서비스가 제공되도록 하는 복수의 사업자의 서버를 포함하는, 방법.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.
상기 전자 코드는, 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 전자 코드를 스캔한 제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.
상기 프로세서는, 상기 명령어들을 실행함으로써,
상기 전자 코드를 생성하여 배포하는 서버로부터 상기 전자 코드와 동일한 종류의 전자 코드들 각각에 포함된 초기 정보, 및 전자 코드들 각각에 포함된 암호화 데이터를 복호화하는 데에 이용되는 상기 전자 코드들 각각의 복호화 키를 상기 통신 장치를 통해 수신하는, 노드.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.
상기 프로세서는, 상기 명령어들을 실행함으로써,
상기 제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.
상기 프로세서는, 상기 명령어들을 실행함으로써,
상기 원장에 기록된 이력 정보 중에서, 상기 서비스의 현재 정보에 대응되는 상기 제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.
상기 프로세서는, 상기 명령어들을 실행함으로써,
상기 제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.
상기 프로세서는, 상기 명령어들을 실행함으로써,
상기 사업자의 단말기로부터 상기 제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.
상기 프로세서는, 상기 명령어들을 실행함으로써,
상기 제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.
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)
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)
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 |
-
2018
- 2018-05-29 KR KR1020180061312A patent/KR102119784B1/en active IP Right Grant
Patent Citations (3)
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)
Title |
---|
‘'알쏭달쏭' 블록체인 한 번에 이해하기’, 한국경제매거진(2018.02.07. 게재)* * |
Cited By (4)
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 | |
US20220286287A1 (en) | System And Method For Generating Trust Tokens | |
US10341111B2 (en) | Secure authentication of user and mobile device | |
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 | |
US20180204192A1 (en) | Secure Digital Data Operations | |
KR102119784B1 (en) | System and method for providing service based on blockchain using electronic code | |
AU2016219306A1 (en) | Peer forward authorization of digital requests | |
CN109636593B (en) | System and method for authenticating a user in a network transaction | |
US20220277288A1 (en) | Systems and methods for displaying payment device specific functions | |
CN110770774A (en) | Authentication and encryption scheme in data storage | |
KR102333811B1 (en) | System and method for processing card payment based on block-chain | |
KR102395870B1 (en) | A payment terminal apparatus for providing payment services using a distributed management network of encryption key based on block chains | |
US20230419285A1 (en) | NFT Enforcement Control System | |
Meenakshi et al. | An Enhanced Security System Using Blockchain Technology for Strong FMC Relationship. | |
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 | |
KR20210017310A (en) | System for managing payment and exchange of blockchain-based cryptocurrency |
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 |