KR102036813B1 - 블록체인 기반의 복지 포인트 처리 방법 및 시스템 - Google Patents

블록체인 기반의 복지 포인트 처리 방법 및 시스템 Download PDF

Info

Publication number
KR102036813B1
KR102036813B1 KR1020190088099A KR20190088099A KR102036813B1 KR 102036813 B1 KR102036813 B1 KR 102036813B1 KR 1020190088099 A KR1020190088099 A KR 1020190088099A KR 20190088099 A KR20190088099 A KR 20190088099A KR 102036813 B1 KR102036813 B1 KR 102036813B1
Authority
KR
South Korea
Prior art keywords
signal
server
nodes
request
processing
Prior art date
Application number
KR1020190088099A
Other languages
English (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 KR1020190088099A priority Critical patent/KR102036813B1/ko
Application granted granted Critical
Publication of KR102036813B1 publication Critical patent/KR102036813B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/387Payment using discounts or coupons
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/10Office automation; Time management
    • G06Q10/105Human resources
    • G06Q10/1057Benefits or employee welfare, e.g. insurance, holiday or retirement packages
    • 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/08Payment architectures
    • G06Q20/16Payments settled via telecommunication systems
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/12Applying verification of the received information
    • H04L63/126Applying verification of the received information the source of the received data
    • 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/104Peer-to-peer [P2P] networks
    • H04L67/1087Peer-to-peer [P2P] networks using cross-functional networking aspects
    • H04L67/1091Interfacing with client-server systems or between P2P systems

Landscapes

  • Business, Economics & Management (AREA)
  • Engineering & Computer Science (AREA)
  • Accounting & Taxation (AREA)
  • Strategic Management (AREA)
  • Human Resources & Organizations (AREA)
  • Finance (AREA)
  • Physics & Mathematics (AREA)
  • General Business, Economics & Management (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Computer Security & Cryptography (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Computer Hardware Design (AREA)
  • Economics (AREA)
  • Marketing (AREA)
  • Operations Research (AREA)
  • Quality & Reliability (AREA)
  • Tourism & Hospitality (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)

Abstract

클라이언트, 서버, 및 복수의 노드들을 포함하는 블록체인 네트워크를 포함하며, 상기 클라이언트와 상기 서버는 제1네트워크를 통해 서로 통신이 가능하며, 상기 서버와 상기 블록체인 네트워크는 제2네트워크를 통해 서로 통신이 가능한 블록체인 기반의 복지 포인트 처리 방법이 개시된다. 블록체인 기반의 복지 포인트 처리 방법은 상기 서버는 클라이언트로부터 수신된 복지 포인트 결제 처리 요구 신호를 수신하는 단계, 상기 서버는 상기 수신된 복지 포인트 결제 처리 요구 신호가 부정한 요구인지 결정하는 단계, 상기 서버는 상기 결정 결과에 따라 유효성을 위해 상기 블록체인 네트워크에 포함된 상기 복수의 노드들로 처리 신호를 송신하는 단계, 상기 서버는 상기 처리 신호를 송신한 후 상기 블록체인 네트워크에 포함된 노드들의 합의에 따라 결정된 유효 결과를 수신하는 단계, 및 상기 서버는 상기 유효 결과에 따라 상기 클라이언트로부터 수신된 상기 복지 포인트 결제 처리 요구 신호를 처리하는 단계를 포함하며, 상기 처리 신호는 ID, 결제 포인트, 아이템, IP 주소, 및 배송지에 관한 정보, 및 부정 요구에 대한 정보를 결합하여 생성되며, 상기 부정 요구에 대한 정보는 상기 수신된 복지 포인트 결제 처리 요구 신호가 상기 부정한 요구로 결정될 때, 비트 '1'의 값을 가지며, 상기 수신된 복지 포인트 결제 처리 요구 신호가 상기 부정한 요구가 아니라고 결정될 때, 비트 '0'의 값을 가지며, 상기 서버는 상기 블록체인 네트워크에 포함된 상기 복수의 노드들 중 임의의 어느 하나의 노드로 상기 처리 신호를 송신하고, 상기 어느 하나의 노드는 상기 송신된 처리 신호를 다른 노드들로 브로드캐스팅(broadcast)하며, 상기 블록체인 네트워크는 리더 노드를 선택하며, 상기 처리 신호가 유효할 때, 상기 선택된 리더 노드는 새로운 블록을 생성하고, 상기 생성된 새로운 블록과 제1메시지 신호를 상기 블록체인 네트워크에 포함된 다른 노드들로 브로드캐스팅하며, 상기 다른 노드들 각각은 상기 새로운 블록이 유효한지 검증하며, 상기 복수의 노드들 각각은 제2메시지 신호를 자신을 제외한 다른 노드들 각각으로부터 수신하고, 제2메시지 신호를 수집하며, 상기 블록체인 네트워크에 포함된 노드들의 수가 N(N은 자연수)개라고 할 때, 상기 블록체인 네트워크에서 허용할 수 있는 잘못된 노드의 수(f)는 (N-1)/3으로 정의되며, 상기 복수의 노드들 각각은 상기 수집된 제2메시지 신호의 수가 (2f+m)보다 클 때, 상기 복수의 노드들 각각은 제3메시지 신호를 자신을 제외한 다른 복수의 노드들 각각으로 브로드캐스팅하며, 상기 m은 상기 서버로부터 전송되는 상기 부정 요구에 대한 정보에 따라 결정되는 상수이며, 상기 서버로부터 전송되는 상기 부정 요구에 대한 정보에서 상기 수신된 복지 포인트 결제 처리 요구 신호가 상기 부정한 요구임을 나타낼 때 상기 m의 값은, 상기 서버로부터 전송되는 상기 부정 요구에 대한 정보에서 상기 수신된 복지 포인트 결제 처리 요구 신호가 부정한 요구임을 나타내지 않을 때 상기 m의 값보다, 큰 값이다.

Description

블록체인 기반의 복지 포인트 처리 방법 및 시스템 {Method and system for processing welfare point based on blockchain}
본 발명은 블록체인 기반의 복지 포인트 처리 방법 및 시스템에 관한 것으로, 상세하게는 복지 포인트 처리의 신뢰성을 높일 수 있는 블록체인 기반의 복지 포인트 처리 방법 및 시스템에 관한 것이다.
복지 포인트는 직원들의 업무 효율 향상과 회사의 충성도를 높이기 위해 일정 기간마다 직원들에게 현금 대신에 주어지는 점수를 의미한다. 직원은 현금 대신에 복지 포인트를 쇼핑, 호텔 예약 등에 사용할 수 있다. 쇼핑, 호텔 예약 등에 포인트를 사용할 수 있으므로, 포인트는 현금과 거의 동일한 중요성을 갖는다. 따라서 포인트를 신뢰하여 사용할 수 있는 방법이 요구된다.
복지 포인트 처리 방법과 관련하여 이동통신 단말기를 이용한 복리 후생 포인트 처리 방법 및 그 시스템(등록번호 제10-1537491호, 등록공고일자 2015년 07월 17일)이 있다. 등록특허(제10-1537491호)의 도 2를 참고하면, 복리 후생 포인트는 중앙 서버를 통해 처리된다. 중앙 서버에 의해 복리 후생 포인트가 처리됨으로써 해커의 공격에 취약하다. 해커는 중앙 서버를 공격함으로써 포인트를 빼돌릴 수 있고, 포인트 처리의 안정성을 해할 수 있다.
따라서 복지 포인트 처리의 신뢰성을 높일 수 있는 방법이 요구된다.
한국 등록특허공보 제10-1537491호(2015.07.17.)
본 발명이 이루고자 하는 기술적인 과제는 복지 포인트 처리의 신뢰성을 높일 수 있는 블록체인 기반의 복지 포인트 처리 방법 및 시스템을 제공하는 것이다.
본 발명의 실시 예에 따른 클라이언트, 서버, 및 복수의 노드들을 포함하는 블록체인 네트워크를 포함하며, 상기 클라이언트와 상기 서버는 제1네트워크를 통해 서로 통신이 가능하며, 상기 서버와 상기 블록체인 네트워크는 제2네트워크를 통해 서로 통신이 가능한 블록체인 기반의 복지 포인트 처리 방법은 상기 서버는 클라이언트로부터 수신된 복지 포인트 결제 처리 요구 신호를 수신하는 단계, 상기 서버는 상기 수신된 복지 포인트 결제 처리 요구 신호가 부정한 요구인지 결정하는 단계, 상기 서버는 상기 결정 결과에 따라 유효성을 위해 상기 블록체인 네트워크에 포함된 상기 복수의 노드들로 처리 신호를 송신하는 단계, 상기 서버는 상기 처리 신호를 송신한 후 상기 블록체인 네트워크에 포함된 노드들의 합의에 따라 결정된 유효 결과를 수신하는 단계, 및 상기 서버는 상기 유효 결과에 따라 상기 클라이언트로부터 수신된 상기 복지 포인트 결제 처리 요구 신호를 처리하는 단계를 포함한다.
상기 처리 신호는 ID, 결제 포인트, 아이템, IP 주소, 및 배송지에 관한 정보, 및 부정 요구에 대한 정보를 결합하여 생성되며, 상기 부정 요구에 대한 정보는 상기 수신된 복지 포인트 결제 처리 요구 신호가 상기 부정한 요구로 결정될 때, 비트 '1'의 값을 가지며, 상기 수신된 복지 포인트 결제 처리 요구 신호가 상기 부정한 요구가 아니라고 결정될 때, 비트 '0'의 값을 가지며, 상기 서버는 상기 블록체인 네트워크에 포함된 상기 복수의 노드들 중 임의의 어느 하나의 노드로 상기 처리 신호를 송신하고, 상기 어느 하나의 노드는 상기 송신된 처리 신호를 다른 노드들로 브로드캐스팅(broadcast)하며, 상기 블록체인 네트워크는 리더 노드를 선택하며, 상기 처리 신호가 유효할 때, 상기 선택된 리더 노드는 새로운 블록을 생성하고, 상기 생성된 새로운 블록과 제1메시지 신호를 상기 블록체인 네트워크에 포함된 다른 노드들로 브로드캐스팅하며, 상기 다른 노드들 각각은 상기 새로운 블록이 유효한지 검증하며, 상기 복수의 노드들 각각은 제2메시지 신호를 자신을 제외한 다른 노드들 각각으로부터 수신하고, 제2메시지 신호를 수집하며,상기 블록체인 네트워크에 포함된 노드들의 수가 N(N은 자연수)개라고 할 때, 상기 블록체인 네트워크에서 허용할 수 있는 잘못된 노드의 수(f)는 (N-1)/3으로 정의되며, 상기 복수의 노드들 각각은 상기 수집된 제2메시지 신호의 수가 (2f+m)보다 클 때, 상기 복수의 노드들 각각은 제3메시지 신호를 자신을 제외한 다른 복수의 노드들 각각으로 브로드캐스팅하며, 상기 m은 상기 서버로부터 전송되는 상기 부정 요구에 대한 정보에 따라 결정되는 상수이며, 상기 서버로부터 전송되는 상기 부정 요구에 대한 정보에서 상기 수신된 복지 포인트 결제 처리 요구 신호가 상기 부정한 요구임을 나타낼 때 상기 m의 값은, 상기 서버로부터 전송되는 상기 부정 요구에 대한 정보에서 상기 수신된 복지 포인트 결제 처리 요구 신호가 부정한 요구임을 나타내지 않을 때 상기 m의 값보다, 큰 값이다.
상기 복지 포인트 결제 처리 요구 신호는 상기 ID, 상기 결제 포인트, 상기 아이템, 상기 IP 주소, 및 상기 배송지에 관한 정보를 포함한다.
상기 복지 포인트 결제 처리 요구 신호는 상기 클라이언트에 설치된 복지 포인트 결제와 관련된 어플리케이션의 실행에 따라 생성된다.
상기 서버는 상기 수신된 복지 포인트 결제 처리 요구 신호가 부정한 요구인지 결정하는 단계는 상기 복지 포인트 결제 처리 요구 신호가 새로운 IP 주소에서 생성되거나, 상기 배송지가 기존의 배송지가 아니라 새로운 배송지로 변경될 때, 상기 서버는 상기 수신된 복지 포인트 결제 처리 요구 신호를 부정한 요구로 판단하는 단계를 포함한다.
상기 서버는 상기 유효 결과에 따라 상기 클라이언트로부터 수신된 상기 복지 포인트 결제 처리 요구 신호를 처리하는 단계는 상기 유효 결과가 적법한 경우, 상기 서버는 상기 클라이언트에서 요청한 포인트 결제 처리 요구 신호에 따라 상기 결제 포인트만큼 차감하고, 상기 배송지로 상기 아이템을 배송하는 단계를 포함한다.
본 발명의 실시 예에 따른 블록체인 기반의 복지 포인트 처리 시스템은 클라이언트, 상기 클라이언트와 제1네트워크를 통해 서로 통신하는 서버, 및 상기 서버와 제2네트워크를 통해 서로 통신하는 복수의 노드들을 포함하는 블록체인 네트워크를 포함한다. 상기 서버는 명령들을 실행하는 프로세서, 및 상기 명령들을 저장하는 메모리를 포함한다. 상기 명령들은 상기 클라이언트로부터 수신된 복지 포인트 결제 처리 요구 신호를 수신하며, 상기 수신된 복지 포인트 결제 처리 요구 신호가 부정한 요구인지 결정하며, 상기 결정 결과에 따라 유효성을 위해 상기 블록체인 네트워크에 포함된 상기 복수의 노드들로 처리 신호를 송신하며, 상기 블록체인 네트워크에 포함된 노드들의 합의에 따라 결정된 유효 결과를 수신하며, 상기 유효 결과에 따라 상기 클라이언트로부터 수신된 상기 복지 포인트 결제 처리 요구 신호를 처리하도록 구현된다.
상기 처리 신호는 ID, 결제 포인트, 아이템, IP 주소, 및 배송지에 관한 정보, 및 부정 요구에 대한 정보를 결합하여 생성되며, 상기 부정 요구에 대한 정보는 상기 수신된 복지 포인트 결제 처리 요구 신호가 상기 부정한 요구로 결정될 때, 비트 '1'의 값을 가지며, 상기 수신된 복지 포인트 결제 처리 요구 신호가 상기 부정한 요구가 아니라고 결정될 때, 비트 '0'의 값을 가지며, 상기 서버는 상기 블록체인 네트워크에 포함된 상기 복수의 노드들 중 임의로 어느 하나의 노드로 상기 처리 신호를 송신하고, 상기 어느 하나의 노드는 상기 송신된 처리 신호를 다른 노드들로 브로드캐스팅(broadcast)하며, 상기 블록체인 네트워크는 리더 노드를 선택하며, 상기 처리 신호가 유효할 때, 상기 선택된 리더 노드는 새로운 블록을 생성하고, 상기 생성된 새로운 블록과 제1메시지 신호를 상기 블록체인 네트워크에 포함된 다른 노드들로 브로드캐스팅하며, 상기 다른 노드들 각각은 상기 새로운 블록이 유효한지 검증하며, 상기 복수의 노드들 각각은 제2메시지 신호를 자신을 제외한 다른 노드들 각각으로부터 수신하고, 제2메시지 신호를 수집하며,상기 블록체인 네트워크에 포함된 노드들의 수가 N(N은 자연수)개라고 할 때, 상기 블록체인 네트워크에서 허용할 수 있는 잘못된 노드의 수(f)는 (N-1)/3으로 정의되며, 상기 복수의 노드들 각각은 상기 수집된 제2메시지 신호의 수가 (2f+m)보다 클 때, 상기 복수의 노드들 각각은 제3메시지 신호를 자신을 제외한 다른 복수의 노드들 각각으로 브로드캐스팅하며, 상기 m은 상기 서버로부터 전송되는 상기 부정 요구에 대한 정보에 따라 결정되는 상수이며, 상기 서버로부터 전송되는 상기 부정 요구에 대한 정보에서 상기 수신된 복지 포인트 결제 처리 요구 신호가 상기 부정한 요구임을 나타낼 때 상기 m의 값은, 상기 서버로부터 전송되는 상기 부정 요구에 대한 정보에서 상기 수신된 복지 포인트 결제 처리 요구 신호가 부정한 요구임을 나타내지 않을 때 상기 m의 값보다, 큰 값이다.
본 발명의 실시 예에 따른 블록체인 기반의 복지 포인트 처리 방법 및 시스템은 블록체인을 기반으로 함으로써 복지 포인트 처리의 신뢰성을 높일 수 있는 효과가 있다.
본 발명의 상세한 설명에서 인용되는 도면을 보다 충분히 이해하기 위하여 각 도면의 상세한 설명이 제공된다.
도 1은 본 발명의 실시 예에 따른 블록체인 기반의 복지 포인트 처리 시스템의 블록도를 나타낸다.
도 2는 도 1에 도시된 서버의 블록도를 나타낸다.
도 3은 도 1에 도시된 노드들의 동작을 나타내는 타이밍도를 나타낸다.
도 4는 도 1에 도시된 노드들 중 어느 하나의 노드의 블록도를 나타낸다.
도 5는 본 발명의 실시 예에 따른 복지 포인트 처리 방법을 설명하기 위한 흐름도를 나타낸다.
본 명세서에 개시되어 있는 본 발명의 개념에 따른 실시 예들에 대해서 특정한 구조적 또는 기능적 설명들은 단지 본 발명의 개념에 따른 실시 예들을 설명하기 위한 목적으로 예시된 것으로서, 본 발명의 개념에 따른 실시 예들은 다양한 형태들로 실시될 수 있으며 본 명세서에 설명된 실시 예들에 한정되지 않는다.
본 발명의 개념에 따른 실시 예들은 다양한 변경들을 가할 수 있고 여러 가지 형태들을 가질 수 있으므로 실시 예들을 도면에 예시하고 본 명세서에 상세하게 설명하고자 한다. 그러나, 이는 본 발명의 개념에 따른 실시 예들을 특정한 개시 형태들에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물, 또는 대체물을 포함한다.
제1 또는 제2 등의 용어는 다양한 구성 요소들을 설명하는데 사용될 수 있지만, 상기 구성 요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성 요소를 다른 구성 요소로부터 구별하는 목적으로만, 예컨대 본 발명의 개념에 따른 권리 범위로부터 이탈되지 않은 채, 제1구성요소는 제2구성요소로 명명될 수 있고, 유사하게 제2구성요소는 제1구성요소로도 명명될 수 있다.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다. 구성요소들 간의 관계를 설명하는 다른 표현들, 즉 "~사이에"와 "바로 ~사이에" 또는 "~에 이웃하는"과 "~에 직접 이웃하는" 등도 마찬가지로 해석되어야 한다.
본 명세서에서 사용한 용어는 단지 특정한 실시 예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, "포함하다" 또는 "가지다" 등의 용어는 설시된 특징, 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 나타낸다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미를 갖는 것으로 해석되어야 하며, 본 명세서에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
이하, 첨부한 도면을 참조하여 본 발명의 바람직한 실시 예를 설명함으로써, 본 발명을 상세히 설명한다.
도 1은 본 발명의 실시 예에 따른 블록체인 기반의 복지 포인트 처리 시스템의 블록도를 나타낸다.
도 1을 참고하면, 블록체인 기반의 복지 포인트 처리 시스템(100)은 복지 포인트 처리 시스템과 제휴한 회사의 직원들에게 복지 포인트를 주고, 직원들이 복지 포인트 처리 서비스를 제공하는 프로그램에 접속하여 원하는 물품이나, 호텔 예약 등을 현금 대신에 포인트로 결제할 수 있는 시스템을 의미한다. 블록체인 기반의 복지 포인트 처리 시스템(100)은 클라이언트(10), 서버(20), 및 복수의 노드들(210-1~210-n; n은 자연수)을 포함하는 블록체인 네트워크(200)를 포함한다. 클라이언트(10)와 서버(20)는 네트워크를 통해 서로 통신이 가능하며, 서버(20)와 복수의 노드들(210-1~210-n; n은 자연수)을 포함하는 블록체인 네트워크(200)는 네트워크(101)를 통해 서로 통신이 가능하다. 클라이언트(10)와 서버(20) 사이의 네트워크는 제1네트워크, 서버(20)와 복수의 노드들(210-1~210-n) 사이의 네트워크는 제2네트워크라 호칭될 수 있다.
클라이언트(10)는 복지 포인트를 이용하여 물품의 구매, 또는 호텔 예약 등을 할 수 있게 구현된 어플리케이션(11)을 포함할 수 있다. 클라이언트(10)를 이용하는 사용자는 블록체인 기반의 복지 포인트 처리 시스템(100)과 제휴한 회사의 직원이다. 상기 사용자는 클라이언트(10)에 설치된 어플리케이션(11)을 실행하고, 직원의 ID와 패스워드를 입력하여 복지 포인트 처리 서비스를 제공하는 프로그램에 접속할 수 있다. 상기 사용자는 클라이언트(10)에 포함된 디스플레이(미도시)를 통해 물품의 구매, 또는 호텔 예약을 할 수 있는 인터페이스를 볼 수 있다. 상기 사용자는 클라이언트(10)의 디스플레이에서 자기에게 부여된 복지 포인트가 얼마나 남아있는지를 확인할 수 있다. 상기 사용자는 마우스, 키보드, 스타일러스 펜, 또는 터치와 같은 입력 수단을 이용하여 클라이언트(10)의 디스플레이에서 원하는 아이템을 선택하고, 포인트로 결제 요청할 수 있다. 이 때, 클라이언트(10)는 상기 사용자의 포인트를 이용한 결제 요청에 응답하여 복지 포인트 결제 처리 요구 신호(PQ)를 생성한다. 복지 포인트 결제 처리 요구 신호(PQ)는 직원의 ID, 결제 포인트, 아이템, IP 주소, 및 배송지에 관한 정보를 포함한다. 예컨대, 직원의 ID가 "abc"이고, 결제 포인트가 30,000 포인트이고, 아이템이 휴대폰 케이스, IP 주소가 회사의 IP 주소이고, 배송지가 직원의 회사 주소일 때, 복지 포인트 결제 처리 요구 신호(PQ)는 "abc", 30,000 포인트, 휴대폰 케이스, 회사의 IP 주소, 및 직원의 회사 주소를 포함할 수 있다.
클라이언트(10)는 복지 포인트 결제 처리 요구 신호(PQ)를 제1네트워크를 통해 서버(20)로 전송한다. 클라이언트(10)에 설치된 어플리케이션(11)의 실행에 따라 복지 포인트 결제 처리 요구 신호(PQ)가 생성되고, 복지 포인트 결제 처리 요구 신호(PQ)가 서버(20)로 전송된다. 즉, 어플리케이션(11)에 의해 포인트를 이용한 처리 동작들이 실행된다.
클라이언트(10)는 개인용 PC, 스마트폰, 또는 태블릿 PC와 같은 전자 장치일 수 있다. 클라이언트(10)가 개인용 PC로 구현될 때, 어플리케이션(11)은 프로그램일 수 있다. 본 발명에서는 설명의 편의를 위해 하나의 클라이언트만을 도시하였으나, 실시 예에 따라 클라이언트들의 수는 다양할 수 있다. 또한 다른 실시 예에 따라 클라이언트들의 수는 블록체인 기반의 복지 포인트 처리 시스템(100)과 제휴한 회사의 직원들의 수와 같을 수 있다.
도 2는 도 1에 도시된 서버의 블록도를 나타낸다.
도 1과 도 2를 참고하면, 서버(20)는 프로세서(21)와 프로세서(21)에 의해 실행될 수 있는 명령들을 저장하는 메모리(30)를 포함한다.
메모리(30)는 복지 포인트 결제 처리 요구 신호 수신 명령(31), 부정한 요구 결정 명령(33), 블록체인 네트워크로 처리 신호 송신 명령(35), 블록체인 네트워크로부터 유효 결과 수신 명령(37), 및 복지 포인트 결제 처리 요구 신호 처리 명령(39)을 포함한다. 메모리(30)에 포함된 상기 명령들은 프로세서(21)에 의해 처리된다.
복지 포인트 결제 처리 요구 신호 수신 명령(31)은 클라이언트(10)로부터 복지 포인트 결제 처리 요구 신호(PQ)를 수신하도록 구현된다.
부정한 요구 결정 명령(33)은 수신된 복지 포인트 결제 처리 요구 신호(PQ)가 부정한 요구인지 결정한다. 복지 포인트 결제 처리 요구 신호(PQ)가 새로운 IP 주소에서 생성되거나, 상기 배송지가 기존의 배송지가 아니라 새로운 배송지로 변경될 때, 서버(20)는 수신된 복지 포인트 결제 처리 요구 신호(PQ)를 부정한 요구로 결정한다. 구체적으로, 서버(20)는 기존에 생성된 요구 신호들의 IP 주소들과 수신된 복지 포인트 결제 처리 요구 신호(PQ)의 IP 주소를 비교한다. 일반적으로 기존에 생성된 요구 신호들의 IP 주소들은 회사의 IP 주소, 또는 직원의 주거지의 IP 주소일 확률이 높다. 왜냐하면 클라이언트(10)의 사용자는 회사의 직원으로, 주로 회사 내, 또는 주거지에서 복지 포인트 처리 서비스를 제공하는 프로그램에 접속하거나 클라이언트(10)에 설치된 어플리케이션(11)을 실행할 확률이 높기 때문이다. 만약, 회사, 또는 거주지가 아니라 다른 제3의 장소에서 클라이언트(10)에 설치된 어플리케이션(11)을 실행할 경우, 클라이언트(10)의 사용자는 회사의 직원이 아니라 적법한 권한을 부여받지 못한 사람일 수 있다.
비교 결과, 수신된 복지 포인트 결제 처리 요구 신호(PQ)의 IP 주소가 기존에 생성된 요구 신호들의 IP 주소들인 회사의 IP 주소, 또는 주거지의 IP 주소가 아니라 새로운 IP 주소일 때, 서버(20)는 수신된 복지 포인트 결제 처리 요구 신호(PQ)를 부정한 요구로 결정한다. 실시 예에 따라 서버(20)는 클라이언트(10)로부터 복지 포인트 결제 처리 요구 신호 수신 명령(31)을 특정 IP 주소에서 일정 횟수(예컨대, 5회 이상) 이상 수신할 때, 서버(20)는 상기 특정 IP 주소를 신뢰할 수 있는 IP 주소라 판단할 수 있다. 서버(20)는 상기 특정 IP 주소를 신뢰할 수 있는 IP 주소라 판단할 때, 상기 특정 IP 주소가 아닌 다른 새로운 IP 주소로부터 수신된 복지 포인트 결제 처리 요구 신호(PQ)를 부정한 요구로 결정할 수 있다.
또한, 복지 포인트 결제 처리 요구 신호(PQ)에 포함된 배송지에 관한 정보를 이용하여 서버(20)는 수신된 복지 포인트 결제 처리 요구 신호(PQ)를 부정한 요구로 결정할 수 있다. 서버(20)는 기존의 생성된 요구 신호들에 포함된 배송지에 관한 정보와 수신된 복지 포인트 결제 처리 요구 신호(PQ)에 포함된 배송지에 관한 정보를 비교한다. 비교 결과, 수신된 복지 포인트 결제 처리 요구 신호(PQ)에 포함된 배송지에 관한 정보가 기존의 생성된 요구 신호들에 포함된 배송지에 관한 정보에서 발견되지 않고, 새로운 배송지에 관한 정보일 때, 서버(20)는 수신된 복지 포인트 결제 처리 요구 신호(PQ)를 부정한 요구로 결정한다. 왜냐하면 클라이언트(10)의 사용자가 회사의 직원이 아니라 적법한 권한을 부여받지 못한 사람일 때, 상기 적법한 권한을 부여받지 못한 사람은 다른 장소로 아이템이 배송되기를 원할 것이기 때문이다.
서버(20)가 결정한 부정한 요구는 예비적이며 최종적인 결정은 아니다. 즉, 서버(20)가 수신된 복지 포인트 결제 처리 요구 신호(PQ)를 부정한 요구로 판단할 때, 클라이언트(10)의 복지 포인트 결제 처리 요구 신호(PQ)를 처리하지 않는 것이 아니라 최종적으로 블록체인 네트워크(200)로부터 복지 포인트 결제 처리 요구 신호(PQ)의 유효성에 대해 한 번 더 결정 받도록 한다. 서버(20)가 수신된 복지 포인트 결제 처리 요구 신호(PQ)를 부정한 요구로 판단하지 않을 때에도 최종적으로 블록체인 네트워크(200)로부터 복지 포인트 결제 처리 요구 신호(PQ)의 유효성에 대해 한 번 더 결정 받는다.
블록체인 네트워크로 처리 신호 송신 명령(35)은 클라이언트(10)로부터 수신된 복지 포인트 결제 처리 요구 신호(PQ)에 기초하여 처리 신호(TS)를 생성한다. 처리 신호(TS)의 생성은 뒤에서 자세히 설명될 것이다. 블록체인 네트워크로 처리 신호 송신 명령(35)은 생성된 처리 신호(TS)를 블록체인 네트워크(200)에 포함된 복수의 노드들(210-1~210-n) 중 어느 하나(예컨대, 210-2)로 송신한다. 복수의 노드들(210-1~210-n) 중 어느 하나(예컨대, 210-2)는 임의의 노드이다. 즉, 블록체인 네트워크로 처리 신호 송신 명령(35)은 생성된 처리 신호(TS)를 블록체인 네트워크(200)에 포함된 복수의 노드들(210-1~210-n) 중 임의의 노드(예컨대, 210-2)로 송신한다.
블록체인 네트워크로부터 유효 결과 수신 명령(39)은 블록체인 네트워크(200)에 포함된 노드들(210-1~210-n) 의 합의에 따라 결정된 유효 결과를 나타내는 신호(VR)를 수신한다.
복지 포인트 결제 처리 요구 신호 처리 명령(41)은 상기 유효 결과에 따라 클라이언트로(10)부터 수신된 복지 포인트 결제 처리 요구 신호(PQ)를 처리한다.
도 3은 도 1에 도시된 노드들의 동작을 나타내는 타이밍도를 나타낸다.
도 1 내지 도 3을 참고하면, 제1단계(P1)에서 서버(20)는 처리 신호(TS)를 생성한다. 처리 신호(TS)는 다음과 같은 동작을 통해 생성된다. 서버(20)는 직원의 ID, 결제 포인트, 아이템, IP 주소, 및 배송지에 관한 정보, 및 부정 요구에 대한 정보를 결합한다. 상기 결합은 직원의 ID, 결제 포인트, 아이템, IP 주소, 및 배송지에 관한 정보, 및 부정 요구에 대한 정보를 수집하여 하나의 데이터 세트로 구현하는 것을 의미한다. 상기 부정 요구에 대한 정보는 수신된 복지 포인트 결제 처리 요구 신호(PQ)가 부정한 요구인지를 나타내는 정보이다. 예컨대, 상기 부정 요구에 대한 정보는 수신된 복지 포인트 결제 처리 요구 신호(PQ)가 부정한 요구로 결정될 때, 비트 '1'의 값을 가질 수 있으며, 수신된 복지 포인트 결제 처리 요구 신호(PQ)가 부정한 요구가 아니라고 결정될 때, 비트 '0'의 값을 가질 수 있다. 실시 예에 따라 비트 값은 반대일 수 있다. 서버(20)는 상기 직원의 ID, 상기 결제 포인트, 상기 아이템, 상기 IP 주소, 및 상기 배송지에 관한 정보, 및 상기 부정 요구에 대한 정보를 해시 함수를 통해 해시 값으로 변환한다. 서버(20)는 변환된 해시 값을 타임스탬프(timestamp)와 결합하고, 타임스탬프와 결합된 해시 값을 개인 키(private key)를 이용하여 암호화(encrypt)하고 전자 서명(digital signature)으로 저장한다. 처리 신호(TS)는 상기 전자 서명, 상기 타임스탬프, 공개 키, 상기 직원의 ID, 상기 결제 포인트, 상기 아이템, 상기 IP 주소, 및 상기 배송지에 관한 정보, 및 상기 부정 요구에 대한 정보를 포함한다. 서버(20)는 블록체인 네트워크(200)에 포함된 복수의 노드들(210-1~210-n) 중 어느 하나(예컨대, 210-2)로 처리 신호(TS)를 송신한다. 즉, 서버(2)는 블록체인 네트워크(200)에 포함된 복수의 노드들(210-1~210-n) 중 임의로 어느 하나의 노드(예컨대, 210-2)로 처리 신호(TS)를 송신한다. 종래에는 서버(20)가 블록체인 네트워크(200)에 포함된 복수의 노드들(210-1~210-n) 중 리더 노드로 처리 신호(TS)와 같은 신호를 송신하였다. 종래와 같이 서버(20)가 상기 리더 노드로 상기 신호를 송신할 때, 상기 리더 노드가 외부로 알려질 경우, 공격의 대상이 될 수 있다. 실시 예에 따라 상기 리더 노드는 프라이머리(primary) 노드라고 호칭될 수 있다. 상기 리더 노드가 외부로부터 공격받을 때, 상기 리더 노드는 외부의 공격때문에 동작을 제대로 수행할 수 없거나, 동작이 지연될 수 있다. 이는 블록체인 네트워크(200)의 성능의 저하를 초래한다. 하지만 본 발명에서 서버(20)는 리더 노드가 아니라 블록체인 네트워크(200)에 포함된 복수의 노드들(210-1~210-n) 중 임의로 어느 하나의 노드(예컨대, 210-2)로 처리 신호(TS)를 송신함으로써 외부는 어떤 노드가 처리 신호(TS)를 수신할지 알 수 없어 해킹과 같은 공격을 용이하지 않게 할 수 있는 효과가 있다.
실시 예에 따라 서버(20)는 블록체인 네트워크(200)에 포함된 복수의 노드들(210-1~210-n) 중 다른 하나(예컨대, 210-4)로 처리 신호(TS)를 송신할 수 있다. 즉, 처리 신호(TS)를 수신하는 복수의 노드들(210-1~210-n) 중 어느 하나는 임의로 선택될 수 있다.
블록체인 네트워크(200)에 포함된 복수의 노드들(210-1~210-n)은 서로 제3네트워크를 통해 통신한다. 복수의 노드들(210-1~210-n) 각각은 포인트 처리에 이용되는 서버를 의미한다. 상기 서버는 호텔 예약 서비스를 제공하는 서버, 신발, 옷, 및 건강식품 등과 같은 아이템을 제공하는 서버, 항공 예약 서비스를 제공하는 서버, 또는 복지 포인트 처리와 관련하여 협약된 다른 회사의 서버일 수 있다.
제2단계(P2)에서 상기 어느 하나의 노드(예컨대, 210-2)는 송신된 처리 신호(TS)를 다른 노드들(예컨대, 210-1, 210-2, 210-4~210-n)로 브로드캐스팅(broadcast)한다.
제3단계(P3)에서 블록체인 네트워크(200)는 리더 노드(예컨대, 제1노드(210-1))를 선택한다. 리더 노드(210-1)는 다음과 같은 절차를 통해 선택된다. 복수의 노드들(210-1~210-n) 각각은 제2메시지 신호(MSG2)를 브로드캐스팅하고, 복수의 노드들(210-1~210-n) 각각은 브로드캐스팅된 제2메시지 신호(MSG2)를 일정 시간 내에 수신하여야 한다. 일정 시간 내에 제2메시지 신호(MSG2)를 수신하지 못할 때, 일정 시간 내에 수신하지 못한 제2메시지 신호(MSG2)를 브로드캐스팅한 노드는 비정상 노드로 정의된다. 실시 예에 따라 상기 비정상 노드는 잘못된 노드로 호칭될 수 있다. 상기 노드는 비정상 노드로 값이 설정된다.
제1단계(P1) 내지 제6단계(P6)는 한 사이클로 정의될 수 있다. 한 사이클이 끝날 때마다 비정상 노드의 값이 설정되고, 누적될 수 있다. 복수의 노드들(210-1~210-n) 중 비정상 노드를 제외한 나머지 노드들 중에서 미리 정의된 순서로 리더 노드(예컨대, 210-1)가 선택된다. 상기 미리 정의된 순서는 노드의 번호가 낮은 순서부터 높은 순서 순일 수 있다. 예컨대, 첫 번째 사이클에서 제1노드(210-1)가 리더 노드였으면, 두 번째 사이클에서는 제2노드(210-2)가 리더 노드로 선택될 수 있다. 하지만 만약 제2노드(210-2)가 첫 번째 사이클에서 비정상 노드로 정의될 때, 두 번째 사이클에서는 제2노드(210-2)를 거르고 제3노드(210-3)가 리더 노드로 선택된다. 실시 예에 따라 미리 정의된 순서는 다양할 수 있다.
선택된 리더 노드(예컨대, 제1노드(210-1))는 처리 신호(TS)를 수신하고, 처리 신호(TS)가 유효한지 검증한다. 구체적으로, 선택된 리더 노드(예컨대, 제1노드(210-1))는 처리 신호(TS)에 포함된 공개 키를 이용하여 처리 신호(TS)를 해독(decrypt)한다. 해독 결과, 처리 신호(TS)에서 제1타임스탬프와 결합된 해시 값이 도출된다. 또한, 선택된 리더 노드(예컨대, 제1노드(210-1))는 처리 신호(TS)에 포함된 상기 직원의 ID, 상기 결제 포인트, 상기 아이템, 상기 IP 주소, 및 상기 배송지에 관한 정보, 및 상기 부정 요구에 대한 정보에 대해 해시 함수를 통해 해시 값으로 변환하고, 변환된 해시 값을 처리 신호(TS)에 포함된 상기 타임스탬프와 결합하여 제2타임스탬프와 결합된 해시 값을 도출한다. 선택된 리더 노드(예컨대, 제1노드(210-1))는 상기 제1타임스탬프와 결합된 해시 값과 상기 제2타임스탬프와 결합된 해시 값을 비교한다. 상기 제1타임스탬프와 결합된 해시 값과 상기 제2타임스탬프와 결합된 해시 값이 일치할 때, 선택된 리더 노드(예컨대, 제1노드(210-1))는 처리 신호(TS)의 유효하다고 판단한다.
처리 신호(TS)가 유효할 때, 선택된 리더 노드(예컨대, 제1노드(210-1))는 새로운 블록을 생성하고, 생성된 새로운 블록과 제1메시지 신호(MSG1)를 블록체인 네트워크(200)에 포함된 다른 노드들(예컨대, 210-2, 210-3, ..., 및 210-n)로 브로드캐스팅(broadcast)한다. 제1메시지 신호(MSG1)는 문자들만 포함할 수 있다.
제4단계(P4)에서 다른 노드들(예컨대, 210-2, 210-3, ..., 및 210-n) 각각은 상기 새로운 블록이 유효한지 검증한다.
도 4는 도 1에 도시된 노드들 중 어느 하나의 노드의 블록도를 나타낸다.
도 4에 도시된 노드(210)는 도 1에 도시된 복수의 노드들(210-1~210-n) 중 어느 하나이다. 도 1에 도시된 복수의 노드들(210-1~210-n)의 내부 구조는 모두 동일하며, 대표적으로 도 4에 도시된 노드(210)를 이용하여 노드(210)의 내부 구조에 대해 설명한다.
노드(210)는 서버일 수 있다. 노드(210)는 명령들을 실행하는 프로세서(220)와 상기 명령들을 저장하는 메모리(230)를 포함할 수 있다. 메모리(230)는 블록의 생성, 블록의 검증, 및 노드들의 합의와 관련된 동작을 실행하도록 구현된 블록체인 어플리케이션(240)을 포함한다. 블록체인 어플리케이션(240)은 상기 명령들로 구현되며, 프로세서(220)에 의해 실행될 수 있다. 블록체인 어플리케이션(240)은 블록체인(250)을 포함한다. 블록체인(250)은 복수의 블록들(Block 01~Block P; P는 자연수)이 서로 연결되어 있다. 복수의 블록들(Block 01~Block P) 각각은 서로 같은 구조를 가진다. 대표적으로 P 블록(251)의 구조에 대해 설명한다.
P 블록(251)은 헤더(253)와 거래들(transactions; 259)을 포함한다. 헤더(253)는 이전 블록의 헤더의 해시 값(255)과 머클 루트(merkle root; 257)를 포함한다. 다음 블록이 이전 블록의 헤더의 해시 값을 포함하고 있음으로써 블록들은 서로 연결된다. 거래들(259) 각각은 해시 함수를 이용하여 해시 값 각각으로 변환된다. 각각 변환 해시 값은 상기 해시 함수, 또는 다른 해시 함수를 이용하여 다른 해시 값 각각으로 변환된다. 최종적으로 상기 거래들(259) 각각은 하나의 해시 값으로 변환된다. 상기 하나의 해시 값이 머클 루트(257)이다.
거래들(259) 각각은 상기 직원의 ID, 상기 결제 포인트, 상기 아이템, 상기 IP 주소, 및 상기 배송지에 관한 정보, 및 상기 부정 요구에 대한 정보를 포함할 수 있다.
노드(210)가 리더 노드(예컨대, 제1노드(210-1))라 할 때, 선택된 리더 노드(예컨대, 제1노드(210-1))는 새로운 블록(261, Block Q; Q는 P보다 큰 자연수)을 생성한다. 새로운 블록(261)의 구조는 P 블록(251)의 구조와 같다. 즉, 새로운 블록(261)도 이전 블록의 헤더의 해시 값(265)과 머클 루트(merkle root; 267)를 포함하는 헤더(263)와, 거래들(269)을 포함한다.
새로운 블록(261)의 유효한지 검증하기 위해 블록체인 어플리케이션(240)은 새로운 블록(261)의 이전 블록의 헤더의 해시 값(265)이 블록체인(250)에 연결된 블록들(Block 01~Block P)의 마지막 블록인 P 블록(251)의 헤더(253)를 포인팅하는지 분석한다. 예컨대, 블록체인 어플리케이션(240)은 새로운 블록(261)의 이전 블록의 헤더의 해시 값(265)에 포함된 블록의 버전, 또는 타임스탬프와 P 블록(251)의 헤더(253)에 포함된 블록의 버전, 또는 타임스탬프가 일치하는지 분석한다. 새로운 블록(261)의 이전 블록의 헤더의 해시 값(265)에 포함된 블록의 버전, 또는 타임스탬프와 P 블록(251)의 헤더(253)에 포함된 블록의 버전, 또는 타임스탬프가 일치할 때, 블록체인 어플리케이션(240)은 새로운 블록(261)이 유효하다고 판단한다.
다른 노드들(예컨대, 210-2, 210-3, ..., 및 210-n) 각각이 상기 새로운 블록이 유효하다고 검증할 때, 다른 노드들(예컨대, 210-2, 210-3, ..., 및 210-n) 각각은 제2메시지 신호(MSG2)를 브로드캐스팅한다. 제2메시지 신호(MSG2)는 문자들만 포함할 수 있다. 제4노드(210-4)는 해커에 의해 해킹되어 상기 새로운 블록이 유효한지 검증할 수 없는 노드일 수 있다. 이하, 제4노드(210-4)와 같이 상기 새로운 블록이 유효한지 검증할 수 없는 노드는 잘못된 노드로 정의된다. 실시 예에 따라 상기 새로운 블록이 유효한지 검증할 수 없는 노드는 비정상 노드로 호칭될 수 있다. 예컨대, 블록체인 네트워크(200)에 포함된 노드들(210-1~210-n)의 수가 N(N은 자연수)개라고 할 때, 블록체인 네트워크(200)에서 허용할 수 있는 잘못된 노드의 수(f)는 (N-1)/3으로 정의된다. 블록체인 네트워크(200)에 포함된 노드들(210-1~210-n)의 수가 8개라 할 때, 블록체인 네트워크(200)에서 2개의 잘못된 노드들은 허용될 수 있다. 블록체인 네트워크(200)에 포함된 노드들(210-1~210-n) 각각은 블록체인 네트워크(200)에서 전체 노드들(210-1~210-n)의 수(N)와 허용할 수 있는 잘못된 노드의 수(f)를 설정하고 있다.
제5단계(P5)에서 복수의 노드들(210-1~210-n) 각각은 제2메시지 신호(MSG2)를 자신을 제외한 다른 노드들(210-1~210-n) 각각으로부터 수신하고, 제2메시지 신호(MSG2)를 수집한다. 예컨대, 제2노드(210-2)는 제2메시지 신호(MSG2)를 다른 노드들(210-1, 210-3~210-n)로부터 수신하고, 제2메시지 신호(MSG2)를 수집한다.
복수의 노드들(210-1~210-n) 각각은 상기 수집된 제2메시지 신호(MSG2)의 수가 (2f+m)보다 클 때, 복수의 노드들(210-1~210-n) 각각은 제3메시지 신호(MSG3)를 자신을 제외한 다른 복수의 노드들(210-1~210-n) 각각으로 브로드캐스팅한다. 제3메시지 신호(MSG3)는 문자들만 포함할 수 있다. 상기 m은 서버(20)로부터 전송되는 부정 요구에 대한 정보에 따라 결정되는 상수이다. 예컨대, 서버(20)로부터 전송되는 부정 요구에 대한 정보에서 수신된 복지 포인트 결제 처리 요구 신호(PQ)가 부정한 요구임을 나타낼 때(예컨대, 부정 요구에 대한 정보의 비트의 값이 '1'일 때) 상기 m의 값은, 서버(20)로부터 전송되는 부정 요구에 대한 정보에서 수신된 복지 포인트 결제 처리 요구 신호(PQ)가 부정한 요구임을 나타내지 않을 때(예컨대, 부정 요구에 대한 정보의 비트의 값이 '0'일 때) 상기 m의 값보다, 큰 값일 수 있다. 서버(20)로부터 전송되는 부정 요구에 대한 정보에서 수신된 복지 포인트 결제 처리 요구 신호(PQ)가 부정한 요구임을 나타낼 때, 상기 m의 값이 3일 수 있고, 서버(20)로부터 전송되는 부정 요구에 대한 정보에서 수신된 복지 포인트 결제 처리 요구 신호(PQ)가 부정한 요구임을 나타내지 않을 때, 상기 m의 값은 1일 수 있다. 즉, 서버(20)로부터 전송되는 부정 요구에 대한 정보에 따라 합의의 레벨을 조절함으로써, 검증의 수준을 향상시키거나, 검증의 속도를 빠르게 할 수 있다. 서버(20)로부터 전송되는 부정 요구에 대한 정보에서 수신된 복지 포인트 결제 처리 요구 신호(PQ)가 부정한 요구임을 나타낼 때, 합의의 레벨을 높임으로써 검증의 수준이 향상될 수 있다. 반면, 서버(20)로부터 전송되는 부정 요구에 대한 정보에서 수신된 복지 포인트 결제 처리 요구 신호(PQ)가 부정한 요구임을 나타내지 않을 때, 합의의 레벨을 높이지 않음으로써, 검증의 속도를 빠르게 할 수 있다.
블록체인 네트워크(200)에 포함된 복수의 노드들(210-1~210-n) 의 수(N)가 20개라 할 때, 블록체인 네트워크(200)에서 허용할 수 있는 잘못된 노드의 수(f)는 6개이다. 서버(20)로부터 전송되는 부정 요구에 대한 정보에서 수신된 복지 포인트 결제 처리 요구 신호(PQ)가 부정한 요구임을 나타낼 때, 상기 m의 값이 3일 수 있다. 이 때, 복수의 노드들(210-1~210-n) 각각은 상기 수집된 제2메시지 신호(MSG2)의 수가 15(=2*6+3)보다 클 때, 복수의 노드들(210-1~210-n) 각각은 제3메시지 신호(MSG3)를 자신을 제외한 다른 복수의 노드들(210-1~210-n) 각각으로 브로드캐스팅할 수 있다.
서버(20)로부터 전송되는 부정 요구에 대한 정보에서 수신된 복지 포인트 결제 처리 요구 신호(PQ)가 부정한 요구임을 나타내지 않을 때, 상기 m의 값은 1일 수 있다. 이 때, 복수의 노드들(210-1~210-n) 각각은 상기 수집된 제2메시지 신호(MSG2)의 수가 13(=2*6+1)보다 클 때, 복수의 노드들(210-1~210-n) 각각은 제3메시지 신호(MSG3)를 자신을 제외한 다른 복수의 노드들(210-1~210-n) 각각으로 브로드캐스팅할 수 있다.
제6단계(P6)에서 복수의 노드들(210-1~210-n) 각각은 상기 제3메시지 신호를 자신을 제외한 다른 노드들(210-1~210-n) 각각으로부터 수신하고, 상기 제3메시지 신호를 수집한다. 상기 수집된 제3메시지 신호(MSG3)의 수가 (2f+m)보다 클 때, 복수의 노드들(210-1~210-n) 각각은 서버(20)에 유효 결과를 나타내는 신호(VR)를 송신한다.
또한, 복수의 노드들(210-1~210-n) 각각은 자신의 블록들에 새로운 블록을 덧붙인다.
서버(20)는 복수의 노드들(210-1~210-n) 각각으로부터 유효 결과를 나타내는 신호(VR)를 수신하고, 수집한다. 수집된 유효 결과를 나타내는 신호(VR)의 수가 (f+m)이면 상기 유효 결과에 따라 클라이언트(10)로부터 수신된 상기 복지 포인트 결제 처리 요구 신호(TS)를 처리한다. 상기 f와 상기 m은 제3메시지 신호(MSG3)를 브로드캐스팅할 때 이용되는 상수이다. 서버(20)는 클라이언트(10)에서 요청한 결제 포인트를 차감하고, 배송지로 아이템을 배송한다.
도 5는 본 발명의 실시 예에 따른 복지 포인트 처리 방법을 설명하기 위한 흐름도를 나타낸다.
도 1 내지 도 5를 참고하면, 서버(20)는 클라이언트(10)로부터 수신된 복지 포인트 결제 처리 요구 신호(PQ)를 수신한다(S10).
서버(20)는 상기 수신된 복지 포인트 결제 처리 요구 신호(PQ)가 부정한 요구인지 결정한다(S20).
서버(20)는 상기 결정 결과에 따라 유효성을 위해 블록체인 네트워크(200)에 포함된 복수의 노드들(210-1~210-n)로 처리 신호(TS)를 송신한다(S30).
서버(20)는 처리 신호(TS)를 송신한 후 블록체인 네트워크(200)에 포함된 노드들(210-1~210-n)의 합의에 따라 결정된 유효 결과를 나타내는 신호(VR)를 수신한다(S40).
서버(20)는 상기 유효 결과에 따라 클라이언트(10)로부터 수신된 상기 복지 포인트 결제 처리 요구 신호(PQ)를 처리한다(S50).
본 발명은 도면에 도시된 일 실시 예를 참고로 설명되었으나 이는 예시적인 것에 불과하며, 본 기술분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시 예가 가능하다는 점을 이해할 것이다. 따라서 본 발명의 진정한 기술적 보호 범위는 첨부된 등록청구범위의 기술적 사상에 의해 정해져야 할 것이다.
100: 블록체인 기반의 복지 포인트 처리 시스템;
10: 클라이언트;
11: 어플리케이션;
20: 서버;
200: 블록체인 네트워크;
210-1~210-n: 노드;

Claims (5)

  1. 클라이언트, 서버, 및 복수의 노드들을 포함하는 블록체인 네트워크를 포함하며, 상기 클라이언트와 상기 서버는 제1네트워크를 통해 서로 통신이 가능하며, 상기 서버와 상기 블록체인 네트워크는 제2네트워크를 통해 서로 통신이 가능한 블록체인 기반의 복지 포인트 처리 방법은,
    상기 서버는 클라이언트로부터 수신된 복지 포인트 결제 처리 요구 신호를 수신하는 단계;
    상기 서버는 상기 수신된 복지 포인트 결제 처리 요구 신호가 부정한 요구인지 결정하는 단계;
    상기 서버는 상기 결정 결과에 따라 유효성을 위해 상기 블록체인 네트워크에 포함된 상기 복수의 노드들로 처리 신호를 송신하는 단계;
    상기 서버는 상기 처리 신호를 송신한 후 상기 블록체인 네트워크에 포함된 노드들의 합의에 따라 결정된 유효 결과를 수신하는 단계; 및
    상기 서버는 상기 유효 결과에 따라 상기 클라이언트로부터 수신된 상기 복지 포인트 결제 처리 요구 신호를 처리하는 단계를 포함하며,
    상기 처리 신호는,
    ID, 결제 포인트, 아이템, IP 주소, 및 배송지에 관한 정보, 및 부정 요구에 대한 정보를 결합하여 생성되며,
    상기 부정 요구에 대한 정보는 상기 수신된 복지 포인트 결제 처리 요구 신호가 상기 부정한 요구로 결정될 때, 비트 '1'의 값을 가지며, 상기 수신된 복지 포인트 결제 처리 요구 신호가 상기 부정한 요구가 아니라고 결정될 때, 비트 '0'의 값을 가지며,
    상기 서버는 상기 블록체인 네트워크에 포함된 상기 복수의 노드들 중 임의의 어느 하나의 노드로 상기 처리 신호를 송신하고,
    상기 어느 하나의 노드는 상기 송신된 처리 신호를 다른 노드들로 브로드캐스팅(broadcast)하며,
    상기 블록체인 네트워크는 리더 노드를 선택하며, 상기 처리 신호가 유효할 때, 상기 선택된 리더 노드는 새로운 블록을 생성하고, 상기 생성된 새로운 블록과 제1메시지 신호를 상기 블록체인 네트워크에 포함된 다른 노드들로 브로드캐스팅하며,
    상기 다른 노드들 각각은 상기 새로운 블록이 유효한지 검증하며,
    상기 복수의 노드들 각각은 제2메시지 신호를 자신을 제외한 다른 노드들 각각으로부터 수신하고, 제2메시지 신호를 수집하며,
    상기 블록체인 네트워크에 포함된 노드들의 수가 N(N은 자연수)개라고 할 때, 상기 블록체인 네트워크에서 허용할 수 있는 잘못된 노드의 수(f)는 (N-1)/3으로 정의되며,
    상기 복수의 노드들 각각은 상기 수집된 제2메시지 신호의 수가 (2f+m)보다 클 때, 상기 복수의 노드들 각각은 제3메시지 신호를 자신을 제외한 다른 복수의 노드들 각각으로 브로드캐스팅하며,
    상기 m은 상기 서버로부터 전송되는 상기 부정 요구에 대한 정보에 따라 결정되는 상수이며,
    상기 서버로부터 전송되는 상기 부정 요구에 대한 정보에서 상기 수신된 복지 포인트 결제 처리 요구 신호가 상기 부정한 요구임을 나타낼 때 상기 m의 값은, 상기 서버로부터 전송되는 상기 부정 요구에 대한 정보에서 상기 수신된 복지 포인트 결제 처리 요구 신호가 부정한 요구임을 나타내지 않을 때 상기 m의 값보다, 큰 값인 블록체인 기반의 복지 포인트 처리 방법.
  2. 제1항에 있어서, 상기 복지 포인트 결제 처리 요구 신호는,
    상기 ID, 상기 결제 포인트, 상기 아이템, 상기 IP 주소, 및 상기 배송지에 관한 정보를 포함하며,
    상기 복지 포인트 결제 처리 요구 신호는,
    상기 클라이언트에 설치된 복지 포인트 결제와 관련된 어플리케이션의 실행에 따라 생성되는 블록체인 기반의 복지 포인트 처리 방법.
  3. 제2항에 있어서, 상기 서버는 상기 수신된 복지 포인트 결제 처리 요구 신호가 부정한 요구인지 결정하는 단계는,
    상기 복지 포인트 결제 처리 요구 신호가 새로운 IP 주소에서 생성되거나, 상기 배송지가 기존의 배송지가 아니라 새로운 배송지로 변경될 때, 상기 서버는 상기 수신된 복지 포인트 결제 처리 요구 신호를 부정한 요구로 판단하는 단계를 포함하는 블록체인 기반의 복지 포인트 처리 방법.
  4. 제2항에 있어서, 상기 서버는 상기 유효 결과에 따라 상기 클라이언트로부터 수신된 상기 복지 포인트 결제 처리 요구 신호를 처리하는 단계는,
    상기 유효 결과가 적법한 경우, 상기 서버는 상기 클라이언트에서 요청한 포인트 결제 처리 요구 신호에 따라 상기 결제 포인트만큼 차감하고, 상기 배송지로 상기 아이템을 배송하는 단계를 포함하는 블록체인 기반의 복지 포인트 처리 방법.
  5. 클라이언트;
    상기 클라이언트와 제1네트워크를 통해 서로 통신하는 서버; 및
    상기 서버와 제2네트워크를 통해 서로 통신하는 복수의 노드들을 포함하는 블록체인 네트워크를 포함하며,
    상기 서버는
    명령들을 실행하는 프로세서; 및
    상기 명령들을 저장하는 메모리를 포함하며,
    상기 명령들은,
    상기 클라이언트로부터 수신된 복지 포인트 결제 처리 요구 신호를 수신하며, 상기 수신된 복지 포인트 결제 처리 요구 신호가 부정한 요구인지 결정하며, 상기 결정 결과에 따라 유효성을 위해 상기 블록체인 네트워크에 포함된 상기 복수의 노드들로 처리 신호를 송신하며, 상기 처리 신호를 송신한 후 상기 블록체인 네트워크에 포함된 노드들의 합의에 따라 결정된 유효 결과를 수신하며, 상기 유효 결과에 따라 상기 클라이언트로부터 수신된 상기 복지 포인트 결제 처리 요구 신호를 처리하도록 구현되며,
    상기 처리 신호는,
    ID, 결제 포인트, 아이템, IP 주소, 및 배송지에 관한 정보, 및 부정 요구에 대한 정보를 결합하여 생성되며,
    상기 부정 요구에 대한 정보는 상기 수신된 복지 포인트 결제 처리 요구 신호가 상기 부정한 요구로 결정될 때, 비트 '1'의 값을 가지며, 상기 수신된 복지 포인트 결제 처리 요구 신호가 상기 부정한 요구가 아니라고 결정될 때, 비트 '0'의 값을 가지며,
    상기 서버는 상기 블록체인 네트워크에 포함된 상기 복수의 노드들 중 임의로 어느 하나의 노드로 상기 처리 신호를 송신하고,
    상기 어느 하나의 노드는 상기 송신된 처리 신호를 다른 노드들로 브로드캐스팅(broadcast)하며,
    상기 블록체인 네트워크는 리더 노드를 선택하며, 상기 처리 신호가 유효할 때, 상기 선택된 리더 노드는 새로운 블록을 생성하고, 상기 생성된 새로운 블록과 제1메시지 신호를 상기 블록체인 네트워크에 포함된 다른 노드들로 브로드캐스팅하며,
    상기 다른 노드들 각각은 상기 새로운 블록이 유효한지 검증하며,
    상기 복수의 노드들 각각은 제2메시지 신호를 자신을 제외한 다른 노드들 각각으로부터 수신하고, 제2메시지 신호를 수집하며,
    상기 블록체인 네트워크에 포함된 노드들의 수가 N(N은 자연수)개라고 할 때, 상기 블록체인 네트워크에서 허용할 수 있는 잘못된 노드의 수(f)는 (N-1)/3으로 정의되며,
    상기 복수의 노드들 각각은 상기 수집된 제2메시지 신호의 수가 (2f+m)보다 클 때, 상기 복수의 노드들 각각은 제3메시지 신호를 자신을 제외한 다른 복수의 노드들 각각으로 브로드캐스팅하며,
    상기 m은 상기 서버로부터 전송되는 상기 부정 요구에 대한 정보에 따라 결정되는 상수이며,
    상기 서버로부터 전송되는 상기 부정 요구에 대한 정보에서 상기 수신된 복지 포인트 결제 처리 요구 신호가 상기 부정한 요구임을 나타낼 때 상기 m의 값은, 상기 서버로부터 전송되는 상기 부정 요구에 대한 정보에서 상기 수신된 복지 포인트 결제 처리 요구 신호가 부정한 요구임을 나타내지 않을 때 상기 m의 값보다, 큰 값인 블록체인 기반의 복지 포인트 처리 시스템.
KR1020190088099A 2019-07-22 2019-07-22 블록체인 기반의 복지 포인트 처리 방법 및 시스템 KR102036813B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020190088099A KR102036813B1 (ko) 2019-07-22 2019-07-22 블록체인 기반의 복지 포인트 처리 방법 및 시스템

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190088099A KR102036813B1 (ko) 2019-07-22 2019-07-22 블록체인 기반의 복지 포인트 처리 방법 및 시스템

Publications (1)

Publication Number Publication Date
KR102036813B1 true KR102036813B1 (ko) 2019-10-25

Family

ID=68420434

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190088099A KR102036813B1 (ko) 2019-07-22 2019-07-22 블록체인 기반의 복지 포인트 처리 방법 및 시스템

Country Status (1)

Country Link
KR (1) KR102036813B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102299251B1 (ko) * 2021-03-17 2021-09-07 이제너두 주식회사 온라인 지역상생복지몰에서 제로페이 결제 방법 및 시스템

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101537491B1 (ko) 2014-12-23 2015-07-17 이제너두 주식회사 이동통신 단말기를 이용한 복리 후생 포인트 처리 방법 및 그 시스템
KR20160001859A (ko) * 2014-06-27 2016-01-07 한국정보통신주식회사 전자상거래를 위한 결제 서비스 제공 방법 및 그를 이용하는 서버 장치
KR20180022335A (ko) * 2016-08-24 2018-03-06 김진오 중앙분산 블록체인 기반의 디지털 가상화폐를 이용한 거래 시스템, 거래 단말 장치 및 거래 서버 장치, 이를 이용한 거래 방법
KR20180113145A (ko) * 2017-04-05 2018-10-15 삼성에스디에스 주식회사 블록체인 기반 실시간 거래 처리 방법 및 그 시스템

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20160001859A (ko) * 2014-06-27 2016-01-07 한국정보통신주식회사 전자상거래를 위한 결제 서비스 제공 방법 및 그를 이용하는 서버 장치
KR101537491B1 (ko) 2014-12-23 2015-07-17 이제너두 주식회사 이동통신 단말기를 이용한 복리 후생 포인트 처리 방법 및 그 시스템
KR20180022335A (ko) * 2016-08-24 2018-03-06 김진오 중앙분산 블록체인 기반의 디지털 가상화폐를 이용한 거래 시스템, 거래 단말 장치 및 거래 서버 장치, 이를 이용한 거래 방법
KR20180113145A (ko) * 2017-04-05 2018-10-15 삼성에스디에스 주식회사 블록체인 기반 실시간 거래 처리 방법 및 그 시스템

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102299251B1 (ko) * 2021-03-17 2021-09-07 이제너두 주식회사 온라인 지역상생복지몰에서 제로페이 결제 방법 및 시스템

Similar Documents

Publication Publication Date Title
CN108370381B (zh) 用于使用客户端蜜标检测先进攻击者的系统以及方法
Xue et al. Private blockchain-based secure access control for smart home systems
US20230224167A1 (en) Access control method based on zero-trust security, device, and storage medium
CN108259438B (zh) 一种基于区块链技术的认证的方法和装置
US9553858B2 (en) Hardware-based credential distribution
KR102219277B1 (ko) 인증된 컨텐츠 전달 제어를 위한 시스템 및 방법
WO2021169107A1 (zh) 一种网络身份保护方法、装置及电子设备和存储介质
US9887997B2 (en) Web authentication using client platform root of trust
JP7202688B2 (ja) 認証システム、認証方法、アプリケーション提供装置、認証装置、及び認証用プログラム
US20140337921A1 (en) Security and access system based on multi-dimensional location characteristics
US9660981B2 (en) Strong authentication method
JP5431040B2 (ja) 認証要求変換装置、認証要求変換方法および認証要求変換プログラム
CN114598541B (zh) 一种安全评估方法及装置、电子设备和可读存储介质
JP2004171544A (ja) 時刻制限付コンテンツ閲覧システム
KR20220123695A (ko) 암호화 방식으로 보안 요청 검증
CN114731273A (zh) 以密码方式安全的数据保护
US9621546B2 (en) Method of generating one-time password and apparatus for performing the same
Li et al. Pistis: Issuing trusted and authorized certificates with distributed ledger and TEE
KR102036813B1 (ko) 블록체인 기반의 복지 포인트 처리 방법 및 시스템
WO2007060016A2 (en) Self provisioning token
JP5768543B2 (ja) 電子署名システム、署名サーバ、署名者クライアント、電子署名方法、およびプログラム
WO2011118237A1 (ja) 認証装置および認証方法
KR102534012B1 (ko) 컨텐츠 제공자의 보안등급을 인증하는 시스템 및 그 방법
KR102542840B1 (ko) 오픈 api 기반의 금융 인증 서비스 제공 방법 및 시스템
CN117040821A (zh) 登录态生成和验证的方法、电子设备及介质

Legal Events

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