KR102097995B1 - 이중 지불 방지를 위한 전자 결제 시스템 및 그 결제 방법 - Google Patents

이중 지불 방지를 위한 전자 결제 시스템 및 그 결제 방법 Download PDF

Info

Publication number
KR102097995B1
KR102097995B1 KR1020180095893A KR20180095893A KR102097995B1 KR 102097995 B1 KR102097995 B1 KR 102097995B1 KR 1020180095893 A KR1020180095893 A KR 1020180095893A KR 20180095893 A KR20180095893 A KR 20180095893A KR 102097995 B1 KR102097995 B1 KR 102097995B1
Authority
KR
South Korea
Prior art keywords
transaction
transaction message
verification node
server
address
Prior art date
Application number
KR1020180095893A
Other languages
English (en)
Other versions
KR20200020326A (ko
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 KR1020180095893A priority Critical patent/KR102097995B1/ko
Publication of KR20200020326A publication Critical patent/KR20200020326A/ko
Application granted granted Critical
Publication of KR102097995B1 publication Critical patent/KR102097995B1/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/40Authorisation, e.g. identification of payer or payee, verification of customer or shop credentials; Review and approval of payers, e.g. check credit lines or negative lists
    • G06Q20/405Establishing or using transaction specific rules
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/382Payment protocols; Details thereof insuring higher security of transaction

Landscapes

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

Abstract

전자 결제 방법은, (a) 거래 검증 노드가 서버로부터 거래 메시지를 수신하는 단계; 및 (b) 상기 거래 검증 노드가 상기 (a) 단계에서 수신한 거래 메시지가 상기 서버에 의해 처리된 거래 메시지인 지를 확인하는 단계;를 포함하되, 상기 (a) 단계에서 상기 거래 검증 노드가 상기 서버로부터 수신한 거래 메시지는, 입금할 입금 주소; 출금할 출금 주소; 상기 입금 주소로 입금할 입금액; 상기 출금 주소의 소유자 서명; 거래 메시지에 순서를 부여하는 거래 순서 번호; 및 상기 서버의 서명;을 포함하는 것을 특징으로 한다.

Description

이중 지불 방지를 위한 전자 결제 시스템 및 그 결제 방법{ELECTRONIC PAYMENT SYSTEM FOR PROTECTION OF DOUBLE SPENDING AND PAYMENT METHOD THEREFOR}
본 발명은 전자 결제 시스템 및 그 결제 방법에 관한 것으로, 더욱 상세하게는 이중 지불 방지를 위한 전자 결제 시스템 및 그 결제 방법에 관한 것이다.
도 1은 종래의 전자 결제 시스템(100)의 구성도를 나타낸다.
비트코인을 선두로 제3의 신뢰기관(금융기관)을 거치지 않는 다양한 개인간 전자 결제 시스템(100)이 시도되고 있으며, 이러한 전자 결제 시스템(100)의 공통적인 목표 중 하나는 특정 온라인 시스템의 과도한 중앙화로 인한 독점적 지위로부터 사용자의 권리와 자산을 보호하는 데 있다. 이러한 분산 시스템의 기술적 구현 방법으로는 주로 전자 서명의 방법과 P2P(Peer-to-Peer) 기반의 네트워크 구조가 사용되나, 이러한 방법만으로는 모든 노드(130)가 동일한 원장을 관리하도록 하는 것이 어렵다.
특히, 이중 지불(Double Spending) 문제는 모든 노드(130)가 모든 거래를 인식하고 있어야 확인되는 문제로, 순수 P2P 네트워크 기반의 시스템에서는 해결이 어려운 문제이다. 사토시 나카모토의 2008년 10월 31일 발표한 “비트 코인 : 피어 투 피어 전자 화폐 시스템(Bitcoin : A Peer-to-Peer Electronic Cash System)”에는 제3자(신뢰기관)의 중개 없는 P2P 방식 송금 방법에 대한 다양한 기술적 구현 방안 중 하나로, 작업 증명(PoW) 방식을 이용한 이중 지불에 대한 해법을 제시하였다. 사토시 나카모토의 2008년 10월 31일 발표한 “비트 코인 : 피어 투 피어 전자 화폐 시스템에서는 작업 증명으로 확인된 거래의 모임(블록체인)들은 네트워크에서 합의한 거래의 순차적 단일 이력을 만듦으로써 이중 지불 문제를 해결하였다. 그 밖에 지분 증명(PoS), 위임 지분 증명(DPoS), 방형성 비순환 그래프(DAG) 등 이중 지불 문제를 해결하기 위하여 다양한 합의 알고리즘이 연구되고 있다.
이중 지불 문제를 해결하기 위한 최초의 블록체인 합의 알고리즘인 작업 증명(PoW)은 완벽하게 작동함에도 불구하고 처리 속도가 느리고, 작업 증명에 필요한 시스템을 유지하는데 너무나 많은 전기를 소모하는 등의 단점이 있다. 지분 증명(PoS) 방법은 지분의 보유에 따라 블록을 생성(단일한 거래 이력을 결정)할 수 있는 권한을 주는 방법으로, 작업 증명 대비 전체 시스템을 공격하기 위해 필요한 비용이 크고, 적은 전기를 소모하나, 아직 검증되지 않은 방법이다. 위임 지분 증명 방법은 거래 수수료가 낮고, 빠른 트랜잭션 처리가 가능하나, 위임된 상위 노드간의 담합의 위험이 있다. 방형성 비순환 그래프를 활용한 방법은 네트워크 확장성이나 거래 비용이 적은 장점이 있으나, 아직 안전성이 검증되지 못하였다.
본 발명은 전술한 바와 같은 기술적 과제를 해결하는 데 목적이 있는 발명으로서, 전자 결제가 거래 순서에 따라 부여된 거래 순서 번호에 의해 관리되고, 다수의 거래 검증 노드에 의해 원장의 내용을 합의할 수 있어, 이중 지불 방지를 가능하게 하는 전자 결제 시스템 및 그 결제 방법을 제공하는 것에 그 목적이 있다.
본 발명의 전자 결제 방법은, (a) 거래 검증 노드가 서버로부터 거래 메시지를 수신하는 단계; (b) 상기 거래 검증 노드가 상기 (a) 단계에서 수신한 거래 메시지가 상기 서버에 의해 처리된 거래 메시지인 지를 확인하는 단계; 및 (c) 상기 (b) 단계의 확인이 완료된 후, 상기 거래 검증 노드가 관리하는 원장의 거래 순서 번호와 비교하여 누락된 거래 메시지가 있는지 확인하는 단계;를 포함한다.
구체적으로, 상기 (a) 단계에서 상기 거래 검증 노드가 상기 서버로부터 수신한 거래 메시지는, 입금할 입금 주소; 출금할 출금 주소; 상기 입금 주소로 입금할 입금액; 상기 출금 주소의 소유자 서명; 거래 메시지에 순서를 부여하는 거래 순서 번호; 및 상기 서버의 서명;을 포함하는 것이 바람직하다.
아울러, 상기 (b) 단계는, (b-1) 상기 거래 검증 노드가 상기 거래 순서 번호 및 상기 서버의 서명의 존재 여부를 확인하는 단계; 및 (b-2) 상기 서버의 서명의 진위 여부를 확인하는 단계;를 포함하는 것을 특징으로 한다.
또한, 본 발명의 전자 결제 방법은, 상기 (c) 단계의 확인 결과, 누락된 거래 메시지가 있는 경우, (d) 상기 거래 검증 노드가 상기 거래 검증 노드의 주변 거래 검증 노드로부터 누락된 거래 메시지를 획득하는 단계;를 더 포함하는 것을 특징으로 한다. 아울러, 본 발명의 전자 결제 방법은, 상기 (d) 단계의 완료 후, 누락된 거래 메시지가 없는 경우, (e) 상기 거래 검증 노드가 상기 (a) 단계에서 수신된 거래 메시지의 거래 내용이 유효한 지 확인하는 단계;를 더 포함하는 것이 바람직하다.
구체적으로, (e-1) 상기 거래 검증 노드가 상기 (a) 단계에서 수신된 거래 메시지의 입금액이 출금 주소의 잔고 이하인지를 확인하는 단계; 및 (e-2) 상기 거래 검증 노드가 상기 (a) 단계에서 수신된 거래 메시지의 출금자인 소유자 서명을 확인하는 단계;를 포함하는 것을 특징으로 한다. 아울러, 상기 (e) 단계는, (e-3) 상기 거래 검증 노드가 상기 (a) 단계에서 수신된 거래 메시지와 거래 순서 번호만 상이한 거래 메시지의 존재 여부를 확인하는 단계;를 더 포함하는 것을 특징으로 한다.
또한, 본 발명의 전자 결제 방법은, (f) 상기 (e) 단계에 의해 상기 (a) 단계에서 수신된 거래 메시지의 거래 내용이 유효한 것으로 확인된 경우, 상기 거래 검증 노드가 해당 거래 메시지에 유효 거래 순서 번호를 부여하는 단계; 및 (g) 상기 (f) 단계의 완료 후, 상기 거래 검증 노드가, 해당 거래 메시지를 원장에 기록하는 단계;를 더 포함하는 것이 바람직하다.
상기 (g) 단계의 원장에 기록된 거래 메시지는, 입금할 입금 주소; 출금할 출금 주소; 상기 입금 주소로 입금할 입금액; 상기 출금 주소의 소유자 서명; 거래 메시지에 순서를 부여하는 거래 순서 번호; 상기 서버의 서명; 및 유효 거래 순서 번호;를 포함하는 것이 바람직하다.
아울러, 본 발명의 전자 결제 방법은, 상기 (g) 단계의 완료 후, (h) 상기 거래 검증 노드가 상기 (g) 단계에서 원장에 기록된 거래 메시지를 주변 거래 검증 노드에 전달하는 단계;를 더 포함하는 것을 특징으로 한다.
또한, 본 발명의 전자 결제 방법은, 상기 (a) 단계 이전에, 상기 서버가 사용자 단말기로부터 거래 메시지를 수신하는 단계;를 더 포함하되, 상기 서버가 상기 사용자 단말기로부터 수신한 거래 메시지는, 입금할 입금 주소; 출금할 출금 주소; 상기 입금 주소로 입금할 입금액; 및 상기 출금 주소의 소유자 서명;을 포함하는 것이 바람직하다.
아울러, 본 발명의 전자 결제 방법은, 상기 (a) 단계 이전에, 상기 서버가 상기 사용자 단말기로부터 수신한 거래 메시지에 거래 순서 번호를 추가하는 단계; 및 거래 메시지에 순서를 부여하는 거래 순서 번호가 추가된 거래 메시지를 해쉬한 값에 상기 서버의 인증키로 서명하는 단계;를 더 포함하는 것을 특징으로 한다.
본 발명의 전자 결제 시스템 및 그 결제 방법에 따르면, 전자 결제가 거래 순서에 따라 부여된 거래 순서 번호에 의해 관리되고, 다수의 거래 검증 노드에 의해 원장의 내용을 합의할 수 있어, 이중 지불 방지를 가능하게 한다.
도 1은 종래의 전자 결제 시스템의 구성도.
도 2는 본 발명의 바람직한 일실시예에 따른 이중 지불 방지를 위한 전자 결제 시스템의 구성도.
도 3은 종래의 전자 결제 시스템에 따른 사용자 단말기에 의해 생성된 거래 메시지에 의한 거래 설명도.
도 4는 본 발명의 전자 결제 시스템에 따른 사용자 단말기에 의해 생성된 거래 메시지에 의한 거래 설명도.
도 5는 본 발명의 바람직한 일실시예에 따른 거래 메시지 및 원장의 구성에 관한 설명도.
도 6은 본 발명의 바람직한 일실시예에 따른 전자 결제 방법의 흐름도.
이하, 첨부된 도면을 참조하면서 본 발명의 실시예에 따른 이중 지불 방지를 위한 전자 결제 시스템 및 그 결제 방법에 대해 상세히 설명하기로 한다.
본 발명의 하기의 실시예는 본 발명을 구체화하기 위한 것일 뿐 본 발명의 권리 범위를 제한하거나 한정하는 것이 아님은 물론이다. 본 발명의 상세한 설명 및 실시예로부터 본 발명이 속하는 기술 분야의 전문가가 용이하게 유추할 수 있는 것은 본 발명의 권리 범위에 속하는 것으로 해석된다.
도 2는 본 발명의 바람직한 일실시예에 따른 이중 지불 방지를 위한 전자 결제 시스템(200)의 구성도를 나타낸다. 아울러, 도 3은 종래의 전자 결제 시스템(100)의 사용자 단말기(110)에 의해 생성된 거래 메시지에 의한 거래 설명도이고, 도 4는 본 발명의 바람직한 일실시예에 따른 사용자 단말기(210)에 의해 생성된 거래 메시지에 의한 거래 설명도를 나타낸다. 또한, 도 5는 본 발명의 바람직한 일실시예에 따른 거래 메시지 및 원장의 구성에 관한 설명도를 나타낸다.
도 2 내지 도 5에 의해 본 발명의 바람직한 일실시예에 따른 이중 지불 방지를 위한 전자 결제 시스템(200)에 대해 설명하기로 한다.
본 발명의 바람직한 일실시예에 따른 이중 지불 방지를 위한 전자 결제 시스템(200)은, 사용자 단말기(210), 서버(220) 및 거래 검증 노드(230)를 포함하여 구성된다.
본 발명의 바람직한 일실시예에 따른 이중 지불 방지를 위한 전자 결제 시스템(200)에서는, 사용자 단말기(210)는 클라이언트 프로그램을 통해, 임의의 거래 검증 노드(230)로부터 계좌 정보를 조회할 수 있으나, 거래의 요청을 위한 거래 메시지는 반드시 서버(220)로 제출되도록 하는 특징이 있다.
종래의 전자 결제 시스템(100)의 경우에는, 사용자 단말기(110)는 클라이언트 프로그램을 통해, 거래 검증 노드(230)에 접속하여 자신의 계좌 정보를 조회하거나 거래를 발생시키는 것이 가능하였다.
이에 반해 본 발명의 한 전자 결제 시스템(200)에서는, 사용자는 사용자 단말기(210)에 의해 거래 검증 노드(230)에 접속하여 자신의 계좌 정보를 조회하고, 서버(220)에 접속하여 거래를 발생시키는 것이 가능하다. 즉, 이를 위해 사용자 단말기(210)에는 클라이언트 프로그램이 설치될 필요가 있다. 구체적으로 사용자 단말기(210)는 다른 사용자 단말기로 전자 결제에 의한 지불을 위해 거래 메시지를 생성하는 역할을 한다. 사용자 단말기(210)에 의해 사용자는 클라이언트 프로그램을 통해 거래 검증 노드(230)로 접속하여 거래 조회를 수행하고, 사용자의 의도에 따라 거래 메시지를 생성하고, 서버(220)에 접속하여 거래 메시지를 제출하게 된다.
사용자 단말기(210)에서 생성된 거래 메시지는, 입금할 입금 주소; 출금할 출금 주소; 입금 주소로 입금할 입금액; 및 출금 주소의 소유자 서명;을 포함하는 것이 바람직하다. 다만, 사용자 단말기(210)에서 생성된 거래 메시지는, 사용자의 하나의 거래 요청에 대해 하나의 거래 메시지가 생성되되, 하나의 거래 메시지에는, 입금할 입금 주소; 출금할 출금 주소; 및 입금 주소로 입금할 입금액;이 하나 이상 포함될 수 있다.
예를 들면, 'A'가 잔고 100만원인 출금 주소로부터 'B'에게 10만원을 송금하고자 할 경우, 'A'의 출금 주소로부터 'B'의 해당 입금 주소로 10만원이 송금되고, 'A'의 출금 주소로부터 잔고 100만원 중 나머지 금액인 90만원이 'A'의 입금 주소로 송금되게 된다. 이때, 입금 주소는 2개, 입금 주소로 입금할 입금액이 2개가 될 수 있다. 아울러, 'A'의 입금 주소는, 'A'의 출금 주소로 갱신되게 된다.
만약, 'A'가 2개의 출금 주소로부터 출금하고자 하는 경우, 출금 주소는 2개가 될 수 있다. 예를 들면, 'A'는 2개의 출금 주소로부터 2개의 입금 주소로 송금할 수 있다.
본 발명에서의 사용한 입금 주소 및 출금 주소는 각각, 입금에 사용될 거래 주소 및 출금에 사용될 거래 주소를 의미한다. 즉, 입금 주소는 실제 계좌 번호와 같은 의미의 주소이지만, 출금 주소는 출금자가 출금할 금액이 담겨있는 거래 메시지의 주소 값이다.
거래 메시지의 주소 값은, 거래 원장 내 다른 거래 메시지와 구분할 수 있는 유일한 ID값으로 거래 순서 번호 또는 거래 메시지의 해쉬값 등을 이용하여 구할 수 있다.
아울러, 입금액과 출금액은 송신자(출금자)의 입장이냐, 수신자(입금자)의 입장이냐에 따라 표현을 달리할 뿐, 실질적으로 동일한 의미를 가진다.
서버(220)는, 사용자 단말기(210)에 설치된 클라이언트 프로그램에 의해 사용자 단말기(210)와 연결되어 사용자로부터 거래 요청 내역인 거래 메시지를 수신하여 단일 순번 이력인 거래 순서 번호를 생성하는 역할을 한다. 즉, 서버(220)는, 다수의 사용자 단말기(210)로부터 수신된 거래 메시지의 순서에 따라 순차적으로 일련의 거래 순서 번호를 부여하는 역할을 한다. 즉, 다수의 거래 검증 노드(230)가 거래 메시지를 수신하는 순서에 대한 단일 이력을 생성하기 위한 특수한 슈퍼 노드인 서버(220)를 네트워크에 추가할 필요가 있다.
서버(220)는 단일 시스템으로 구성되며, 다수의 사용자 단말기(210)로부터 동시에 많은 거래 메시지를 받을 수 있으며, 거래를 수집한 순서대로 유일한 거래 순서 번호를 부여하여 순서가 지정된 거래 메시지를 생성하는 특징이 있다. 아울러, 서버(220)는 단일 순번 이력에 따라 순서인 일련의 거래 순서 번호가 부여된 거래 메시지를 해쉬(Hash)한 값에 서버(220)의 개인 인증키로 서명한 값을 추가함으로써, 거래 메시지를 수신하는 거래 검증 노드(230)에서 거래 메시지가 위변조되지 않았음을 인증할 수 있는 방법을 제공한다.
즉, 서버(220)에 의해 처리된 후의 거래 메시지에는, 사용자 단말기(210)로부터 수신된 거래 메시지에 서버(220)의 서명이 추가되게 된다. 구체적으로, 서버(220)에 의해 처리된 후의 거래 메시지는, 입금할 입금 주소; 출금할 출금 주소; 입금 주소로 입금할 입금액; 출금 주소의 소유자 서명; 거래 메시지에 순서를 부여하는 거래 순서 번호; 및 서버(220)의 서명;을 포함하는 것이 바람직하다.
거래 검증 노드(230)는, 분산 결제 시스템의 노드인 컴퓨팅 장치로서, 서버(220)와 연결이 가능하며, 서버(220)가 부여한 거래 순서 번호에 따라 거래 메시지를 처리하고 원장을 관리하는 역할을 한다. 다수의 거래 검증 노드(230)는, P2P(Peer-to-Peer)로 연결되어 서버(220)로부터 전달받은 거래 순서 번호가 지정된 거래 메시지의 유효성을 검증하고 기록하며, 이웃 거래 검증 노드(230)에 전파하는 역할을 한다.
다수의 거래 검증 노드(230)는, 서로 순수한 P2P 연결 네트워크로 구성되어 있고, 사용자 단말기(210)의 접속과 서버(220)의 접속을 허용하며, 사용자 단말기(210)로는 거래 조회의 서비스를 제공하고, 서버(220)로부터는 새로운 거래 요청 내역인 거래 메시지를 전달받는다.
다수의 거래 검증 노드(230) 중 일부는 새로운 거래 메시지를 서버(220)로부터 전달받으며, 다수의 거래 검증 노드(230) 중 나머지는 거래 메시지를 먼저 수신한 거래 검증 노드(230)로부터 전파된 거래 메시지를 전달받는다. 아울러, 거래 검증 노드(230)는 서버(220) 또는 다른 거래 검증 서버(220)로부터 전달받은 거래 메시지 내의 서버(220)의 서명을 검증함으로써 거래 메시지를 인증한다.
또한, 거래 검증 노드(230) 각각은 자신이 새롭게 수신한 거래 메시지 내의 거래 순서 번호가 자신이 관리하고 있는 원장의 마지막 거래 순서 번호와 둘 이상의 차이가 있는 경우, 거래 메시지의 수신이 누락되었음을 인지하고, 누락된 거래 메시지를 주변 거래 검증 노드(230)로부터 수신하여 처리할 때까지 새롭게 수신한 거래 메시지의 처리를 보류하고, 누락된 거래 메시지를 모두 처리한 후에 새롭게 수신한 거래 메시지를 처리한다. 예를 들면, 거래 검증 노드(230)가 수신한 거래 메시지 내의 거래 순서 번호가 100번이고, 원장의 마지막 거래 순서 번호가 97번 인 경우, 거래 검증 노드(230)는 98번 및 99번의 거래 순서 번호의 거래 메시지를 주변 거래 검증 노드(230)로부터 수신하여 처리할 필요가 있다.
아울러, 거래 검증 노드(230)는 거래 순서 번호를 이용하여 모든 거래를 동일한 순서로 처리함으로써, 이중 지불 거래가 발생하는 경우, 나중에 발생한 거래(거래 순서 번호가 큰 거래)를 처리하지 않음으로써, 모든 거래 검증 노드(230)가 동일한 거래만을 처리할 수 있는 방법을 제공하는 특징이 있다. 예를 들면, 거래 순서 번호가 200번인 거래 메시지와 201번인 거래 메시지가 동일한 거래에 대한 이중 지불인 것으로 판정된 경우, 거래 순서 번호가 201번인 유효 거래가 아니므로 유효 거래 번호를 부여하지 않아 처리하지 않는 것이 바람직할 것이다.
또한, 거래 검증 노드(230)는 거래 순서 번호가 인증된 거래 메시지에 한하여, 거래 메시지 내의 소유자 서명이 올바른지, 출금 계좌 즉, 출금 주소의 잔고가 입금액 이상 인지 등에 대한 검증을 자신이 관리하고 있는 원장과 비교하여 확인을 하여, 거래 내용 자체를 검증하고 거래가 수립되기 위한 모든 조건을 만족하게 되는, 즉 거래가 성립하는 조건인 경우 유효 거래 순서 번호를 부여하는 것을 특징으로 한다. 거래 검증 노드(230)는 원장에 거래를 기록함에 있어, 서버(220)가 제공한 거래 순서 번호와 서버(220)의 서명을 모두 기록함으로써 순서가 정해진 신뢰할 수 있는 거래의 사슬을 생성하고, 이 높이(거래의 개수)를 파악함으로써 누락된 거래 메시지를 확인할 수 있다. 이에 따라, 거래 검증 노드(230)는 원장에 거래를 기록함에 있어, 유효 거래 순서 번호를 추가하여, 유효 거래 순서 번호를 참조하여 모든 거래 검증 노드(230)가 동일한 원장을 관리하는지 빠르게 확인하고, 원장의 불일치를 조정할 수 있다. 즉, 서버(220)에 의해 거래 순서 번호가 부여된 거래 메시지의 경우에도, 이중 지불 등이 발생한 경우 일부의 거래 메시지는 유효하지 않아 유효 거래 순서 번호가 부여되지 않게 된다.
구체적으로 거래 검증 노드(230)의 원장에 기록된 거래 메시지는, 입금할 입금 주소; 출금할 출금 주소; 입금 주소로 입금할 입금액; 출금 주소의 소유자 서명; 거래 메시지에 순서를 부여하는 거래 순서 번호; 서버(220)의 서명; 및 유효 거래 순서 번호;를 포함하는 것을 특징으로 한다. 아울러, 각각의 거래 메시지는, 거래 순서 번호에 따라 원장에서 거래의 사슬을 생성하게 된다.
또한, 거래 검증 노드(230)는 자신이 관리하는 원장에 기록된 거래 메시지를 주변 거래 검증 노드(230)에 전달한다.
상술한 바와 같이 본 발명의 전자 결제 시스템(200)에서는, 거래 순서 번호와 서버(220)의 서명을 같이 원장에 기록하여, 해당 거래가 서버(220)로부터 거래 검증 노드(230)가 전달받은 거래인지를 확인할 수 있도록 하고, 유효 거래 순서 번호를 원장에 저장함으로써 모든 거래 검증 노드(230)가 동일한 유효 거래를 처리하는지 확인할 수 있도록 한다. 아울러, 사용자가 사용자 단말기(210)에 설치된 클라이언트 프로그램을 이용하여 거래 검증 노드(230)로부터 거래를 조회하는 경우, 원장에 기록된 거래의 잔고뿐만 아니라, 서버(220)의 서명도 함께 거래 검증 노드(230)가 검증함으로써, 이 거래가 서버(220)를 통해 처리된 거래인지 확인하여 더욱 안전한 거래의 검증을 수행할 수 있다.
도 6은 본 발명의 바람직한 일실시예에 따른 전자 결제 방법의 흐름도를 나타낸다.
본 발명의 바람직한 일실시예에 따른 전자 결제 방법은 상술한 전자 결제 시스템(200)을 이용하므로 별도의 설명이 없더라도 상술한 전자 결제 시스템(200)의 모든 특징을 포함한다. 마찬가지로, 본 발명의 전자 결제 시스템(200)도 하기에 기술할 전자 결제 방법의 특징을 모두 포함함은 물론이다.
도 6으로부터 알 수 있는 바와 같이, 본 발명의 바람직한 일실시예에 따른 전자 결제 방법은, 서버(220)가 사용자 단말기(210)로부터 거래 메시지를 수신하는 단계(S10); 서버(220)가 사용자 단말기(210)로부터 수신한 거래 메시지에 거래 순서 번호를 추가하는 단계(S20); 및 서버(220)가 거래 메시지에 순서를 부여하는 거래 순서 번호가 추가된 거래 메시지를 해쉬한 값에 서버(220)의 인증키로 서명하는 단계(S30);를 포함한다.
S10 단계에서, 서버(220)가 사용자 단말기(210)로부터 수신한 거래 메시지는, 입금할 입금 주소; 출금할 출금 주소; 입금 주소로 입금할 입금액; 및 출금 주소의 소유자 서명;을 포함하는 것을 특징으로 한다.
아울러, 본 발명의 바람직한 일실시예에 따른 전자 결제 방법은, 거래 검증 노드(230)가 서버(220)로부터 거래 메시지를 수신하는 단계(S40); 거래 검증 노드(230)가 S40 단계에서 수신한 거래 메시지가 서버(220)에 의해 처리된 거래 메시지인 지를 확인하는 단계(S50); S50 단계의 확인이 완료된 후, 거래 검증 노드(230)가 관리하는 원장의 거래 순서 번호와 비교하여 누락된 거래 메시지가 있는지 확인하는 단계(S60); 및 S60 단계의 확인 결과, 누락된 거래 메시지가 있는 경우, 거래 검증 노드(230)가 거래 검증 노드(230)의 주변 거래 검증 노드(230)로부터 누락된 거래 메시지를 획득하는 단계(S70);를 더 포함하는 것을 특징으로 한다.
S40 단계에서 거래 검증 노드(230)가 서버(220)로부터 수신한 거래 메시지는, 입금할 입금 주소; 출금할 출금 주소; 입금 주소로 입금할 입금액; 출금 주소의 소유자 서명; 거래 메시지에 순서를 부여하는 거래 순서 번호; 및 서버(220)의 서명;을 포함하는 것이 바람직하다.
아울러, S50 단계는, 거래 검증 노드(230)가 거래 순서 번호 및 서버(220)의 서명의 존재 여부를 확인하는 단계(S51); 및 서버(220)의 서명의 진위 여부를 확인하는 단계(S52);를 포함할 수 있다.
또한, 본 발명의 바람직한 일실시예에 따른 전자 결제 방법은, 전자 결제 방법은, S70 단계의 완료 후 S60 단계로 돌아가서, S60 단계의 확인 결과, 누락된 거래 메시지가 없는 경우, 거래 검증 노드(230)가 S40 단계에서 수신된 거래 메시지의 거래 내용이 유효한 지 확인하는 단계(S80);를 더 포함하는 것을 특징으로 한다. S80 단계에서는, 거래와 관련된 모든 내용이 유효한 지 확인하고 검증하는 것이 바람직하다.
구체적으로 S80 단계는, 거래 검증 노드(230)가 S40 단계에서 수신된 거래 메시지의 입금액이 출금 주소의 잔고 이하인지를 확인하는 단계(S81); 및 거래 검증 노드(230)가 S40 단계에서 수신된 거래 메시지의 출금자인 소유자 서명을 확인하는 단계(S82);를 포함하는 것이 바람직하다. 또한, S80 단계는, 거래 검증 노드(230)가 S40 단계에서 수신된 거래 메시지와 거래 순서 번호만 상이한 거래 메시지가 존재하는 지 여부를 확인하는 단계(S83);를 더 포함하는 것을 특징으로 한다.
이에 따라, 거래 검증 노드(230)가 S40 단계에서 수신된 거래 메시지와 거래 순서 번호만 상이한 거래 메시지가 존재하는 경우, 거래 순서 번호가 앞서는 거래 메시지만이 유효한 거래 메시지로 검증되게 된다.
아울러, 본 발명의 바람직한 일실시예에 따른 전자 결제 방법은, S80 단계에 의해 S40 단계에서 수신된 거래 메시지의 거래 내용이 검증 완료된 경우, 거래 검증 노드(230)가 해당 거래 메시지에 유효 거래 순서 번호를 부여하는 단계(S90); S90 단계의 완료 후, 거래 검증 노드(230)가, 해당 거래 메시지를 원장에 기록하는 단계(S100); 및 S100 단계의 완료 후, 거래 검증 노드(230)가 S100 단계에서 원장에 기록된 거래 메시지를 주변 거래 검증 노드(230)에 전달하는 단계(S110);를 더 포함하는 것이 바람직하다.
S100 단계의 원장에 기록된 거래 메시지는, 입금할 입금 주소; 출금할 출금 주소; 입금 주소로 입금할 입금액; 출금 주소의 소유자 서명; 거래 메시지에 순서를 부여하는 거래 순서 번호; 서버(220)의 서명; 및 유효 거래 순서 번호;를 포함하는 것을 특징으로 한다.
상술한 바와 같이, 본 발명의 전자 결제 시스템(200) 및 그 결제 방법에 따르면, 전자 결제가 거래 순서에 따라 부여된 거래 순서 번호에 의해 관리되고, 다수의 거래 검증 노드(230)에 의해 원장의 내용을 합의할 수 있어, 이중 지불 방지를 가능하게 함을 알 수 있다.
100, 200 : 전자 결제 시스템
110, 210 : 사용자 단말기
220 : 서버
130, 230 : 거래 검증 노드

Claims (13)

  1. 전자 결제 방법에 있어서,
    (a) 컴퓨팅 장치인 거래 검증 노드가 서버로부터 거래 메시지를 수신하는 단계;
    (b) 상기 거래 검증 노드가 상기 (a) 단계에서 수신한 거래 메시지가 상기 서버에 의해 처리된 거래 메시지인 지를 확인하는 단계;
    (c) 상기 (b) 단계의 확인이 완료된 후, 상기 거래 검증 노드가 관리하는 원장의 거래 순서 번호와 비교하여 누락된 거래 메시지가 있는지 확인하는 단계; 및
    (d) 상기 (c) 단계의 확인 결과, 누락된 거래 메시지가 있는 경우, 상기 거래 검증 노드가 상기 거래 검증 노드의 주변 거래 검증 노드로부터 누락된 거래 메시지를 획득하는 단계;를 포함하되,
    상기 (a) 단계에서 상기 거래 검증 노드가 상기 서버로부터 수신한 거래 메시지는, 입금할 입금 주소; 출금할 출금 주소; 상기 입금 주소로 입금할 입금액; 상기 출금 주소의 소유자 서명; 거래 메시지에 순서를 부여하는 거래 순서 번호; 및 상기 서버의 서명;을 포함하고,
    상기 (b) 단계는, (b-1) 상기 거래 검증 노드가 상기 거래 순서 번호 및 상기 서버의 서명의 존재 여부를 확인하는 단계; 및 (b-2) 상기 서버의 서명의 진위 여부를 확인하는 단계;를 포함하는 것을 특징으로 하는 전자 결제 방법.
  2. 삭제
  3. 삭제
  4. 삭제
  5. 삭제
  6. 제1항에 있어서,
    상기 전자 결제 방법은, 상기 (c) 단계의 확인 결과, 누락된 거래 메시지가 없는 경우,
    (e) 상기 거래 검증 노드가 상기 (a) 단계에서 수신된 거래 메시지의 거래 내용이 유효한 지 확인하는 단계;를 더 포함하는 것을 특징으로 하는 전자 결제 방법.
  7. 제6항에 있어서,
    상기 (e) 단계는,
    (e-1) 상기 거래 검증 노드가 상기 (a) 단계에서 수신된 거래 메시지의 입금액이 출금 주소의 잔고 이하인지를 확인하는 단계; 및
    (e-2) 상기 거래 검증 노드가 상기 (a) 단계에서 수신된 거래 메시지의 출금자인 소유자 서명을 확인하는 단계;를 포함하는 것을 특징으로 하는 전자 결제 방법.
  8. 제6항에 있어서,
    상기 (e) 단계는,
    (e-3) 상기 거래 검증 노드가 상기 (a) 단계에서 수신된 거래 메시지와 거래 순서 번호만 상이한 거래 메시지의 존재 여부를 확인하는 단계;를 포함하는 것을 특징으로 하는 전자 결제 방법.
  9. 제6항에 있어서,
    상기 전자 결제 방법은,
    (f) 상기 (e) 단계에 의해 상기 (a) 단계에서 수신된 거래 메시지의 거래 내용이 유효한 것으로 확인된 경우, 상기 거래 검증 노드가 해당 거래 메시지에 유효 거래 순서 번호를 부여하는 단계;를 더 포함하는 것을 특징으로 하는 전자 결제 방법.
  10. 제9항에 있어서,
    상기 전자 결제 방법은, 상기 (f) 단계의 완료 후,
    (g) 상기 거래 검증 노드가, 해당 거래 메시지를 원장에 기록하는 단계;를 더 포함하되,
    상기 (g) 단계의 원장에 기록된 거래 메시지는,
    입금할 입금 주소;
    출금할 출금 주소;
    상기 입금 주소로 입금할 입금액;
    상기 출금 주소의 소유자 서명;
    거래 메시지에 순서를 부여하는 거래 순서 번호;
    상기 서버의 서명; 및
    유효 거래 순서 번호;를 포함하는 것을 특징으로 하는 전자 결제 방법.
  11. 제10항에 있어서,
    상기 전자 결제 방법은, 상기 (g) 단계의 완료 후,
    (h) 상기 거래 검증 노드가 상기 (g) 단계에서 원장에 기록된 거래 메시지를 주변 거래 검증 노드에 전달하는 단계;를 더 포함하는 것을 특징으로 하는 전자 결제 방법.
  12. 제1항에 있어서,
    상기 전자 결제 방법은, 상기 (a) 단계 이전에,
    상기 서버가 사용자 단말기로부터 거래 메시지를 수신하는 단계;를 더 포함하되,
    상기 서버가 상기 사용자 단말기로부터 수신한 거래 메시지는,
    입금할 입금 주소;
    출금할 출금 주소;
    상기 입금 주소로 입금할 입금액; 및
    상기 출금 주소의 소유자 서명;을 포함하는 것을 특징으로 하는 전자 결제 방법.
  13. 제12항에 있어서,
    상기 전자 결제 방법은, 상기 (a) 단계 이전에,
    상기 서버가 상기 사용자 단말기로부터 수신한 거래 메시지에 거래 순서 번호를 추가하는 단계; 및
    거래 메시지에 순서를 부여하는 거래 순서 번호가 추가된 거래 메시지를 해쉬한 값에 상기 서버의 인증키로 서명하는 단계;를 더 포함하는 것을 특징으로 하는 전자 결제 방법.
KR1020180095893A 2018-08-17 2018-08-17 이중 지불 방지를 위한 전자 결제 시스템 및 그 결제 방법 KR102097995B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020180095893A KR102097995B1 (ko) 2018-08-17 2018-08-17 이중 지불 방지를 위한 전자 결제 시스템 및 그 결제 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020180095893A KR102097995B1 (ko) 2018-08-17 2018-08-17 이중 지불 방지를 위한 전자 결제 시스템 및 그 결제 방법

Publications (2)

Publication Number Publication Date
KR20200020326A KR20200020326A (ko) 2020-02-26
KR102097995B1 true KR102097995B1 (ko) 2020-04-07

Family

ID=69637909

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180095893A KR102097995B1 (ko) 2018-08-17 2018-08-17 이중 지불 방지를 위한 전자 결제 시스템 및 그 결제 방법

Country Status (1)

Country Link
KR (1) KR102097995B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20220001644A (ko) 2020-06-30 2022-01-06 주식회사 트러스트디비 Rdbms 기반의 분산원장 관리 시스템 및 방법

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102415026B1 (ko) * 2020-02-28 2022-06-30 스마트쿱(주) 블록체인 기반의 입출금 거래 시스템

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002109397A (ja) * 2000-09-28 2002-04-12 Matsushita Electric Ind Co Ltd 電子商取引方法及び電子商取引システム
KR101816653B1 (ko) 2017-02-14 2018-02-21 주식회사 코인플러그 스마트 컨트랙트 및 블록체인 데이터베이스를 사용하여 서비스 제공 서버에 의하여 제공되는 서비스를 이용하기 위한 사용자의 로그인 요청에 대하여 pki 기반의 인증을 통해 로그인을 대행하는 방법 및 이를 이용한 서버
JP2018516030A (ja) * 2015-05-05 2018-06-14 ショカード、インコーポレイテッド ブロックチェーンを使用するid管理サービス

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20160009301A (ko) * 2014-07-16 2016-01-26 주식회사 코빗 개인키 기반 전자 화폐의 결제 대행 서비스 및 이를 위한 방법

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002109397A (ja) * 2000-09-28 2002-04-12 Matsushita Electric Ind Co Ltd 電子商取引方法及び電子商取引システム
JP2018516030A (ja) * 2015-05-05 2018-06-14 ショカード、インコーポレイテッド ブロックチェーンを使用するid管理サービス
KR101816653B1 (ko) 2017-02-14 2018-02-21 주식회사 코인플러그 스마트 컨트랙트 및 블록체인 데이터베이스를 사용하여 서비스 제공 서버에 의하여 제공되는 서비스를 이용하기 위한 사용자의 로그인 요청에 대하여 pki 기반의 인증을 통해 로그인을 대행하는 방법 및 이를 이용한 서버

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20220001644A (ko) 2020-06-30 2022-01-06 주식회사 트러스트디비 Rdbms 기반의 분산원장 관리 시스템 및 방법
KR20220151124A (ko) 2020-06-30 2022-11-14 주식회사 트러스트디비 Rdbms 기반의 분산원장 관리 시스템 및 방법
KR20240038669A (ko) 2020-06-30 2024-03-25 주식회사 트러스트디비 Rdbms 기반의 분산원장 관리 시스템 및 방법

Also Published As

Publication number Publication date
KR20200020326A (ko) 2020-02-26

Similar Documents

Publication Publication Date Title
JP7241216B2 (ja) ブロックチェーンベースの暗号通貨のためのトークンを検証する、コンピュータにより実行される方法及びシステム
JP7350030B2 (ja) 複数のトランザクションをブロックチェーンに記録する方法及びシステム
CN108876332B (zh) 一种基于生物特征标记认证的区块链安全交易方法及装置
US10558825B1 (en) Method for sharing business information based on mutual confirmation blockchain
US20200051041A1 (en) System and method for arbitrating a blockchain transaction
US20200145373A1 (en) System for blockchain based domain name and ip number register
JP2021529397A (ja) ブロックチェーンアドレスおよび所有者の検証のためのシステムおよび方法
EP3419210A1 (en) Method for generating a transaction of a blockchain and method for validating a block of a blockchain
JP3228339U (ja) 個人認証及び確認システム及び方法
EP3963824A1 (en) Methods and devices for recording work history and proving reputation in a blockchain network
JP6786119B2 (ja) 取引装置、取引方法及び取引プログラム
US20200118093A1 (en) System and method for arbitrating a blockchain transaction
KR101890584B1 (ko) m of n 다중 서명에 의한 인증서 서비스를 제공하는 방법 및 이를 이용한 서버
WO2020229949A1 (en) Methods and devices for registering and authenticating miner identity in a blockchain network
KR102097995B1 (ko) 이중 지불 방지를 위한 전자 결제 시스템 및 그 결제 방법
KR20180052838A (ko) 수취인 증명 기반의 불변의 이중 기록을 이용한 안심송금 방법
KR20200124121A (ko) 간편하고 안전한 마이데이터이동 인증방법
KR102195830B1 (ko) 블록체인 기반의 보안이 강화된 암호화폐 시스템
WO2023002640A1 (ja) 違法な取引を防止しつつ匿名ユーザの参加も許容する暗号資産の取引のための完全分散型ブロックチェーンシステム及びコンピュータープログラム
KR101890587B1 (ko) 머클 트리 구조를 사용하여 m of n 다중 서명에 의한 인증서 서비스를 제공하는 방법 및 이를 이용한 서버
KR20180054974A (ko) 수취인 증명 기반의 모바일 차용거래 방법
KR102086234B1 (ko) 블록체인을 가지는 가상화폐 거래시스템
JP7000207B2 (ja) 署名システム
KR20180054978A (ko) 수취인 증명 기반의 안심송금 방법
KR20180054972A (ko) 수취인 증명 기반의 모바일 안심송금 방법

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant