KR101964254B1 - Person to person trading method and apparatus by using blockchain and distributed hash table - Google Patents

Person to person trading method and apparatus by using blockchain and distributed hash table Download PDF

Info

Publication number
KR101964254B1
KR101964254B1 KR1020170000517A KR20170000517A KR101964254B1 KR 101964254 B1 KR101964254 B1 KR 101964254B1 KR 1020170000517 A KR1020170000517 A KR 1020170000517A KR 20170000517 A KR20170000517 A KR 20170000517A KR 101964254 B1 KR101964254 B1 KR 101964254B1
Authority
KR
South Korea
Prior art keywords
transaction
request information
block chain
transaction request
terminal
Prior art date
Application number
KR1020170000517A
Other languages
Korean (ko)
Other versions
KR20180079847A (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 KR1020170000517A priority Critical patent/KR101964254B1/en
Publication of KR20180079847A publication Critical patent/KR20180079847A/en
Application granted granted Critical
Publication of KR101964254B1 publication Critical patent/KR101964254B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/22Payment schemes or models
    • G06Q20/223Payment schemes or models based on the use of peer-to-peer networks
    • 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/02Payment architectures, schemes or protocols involving a neutral party, e.g. certification authority, notary or trusted third party [TTP]
    • G06Q20/027Payment architectures, schemes or protocols involving a neutral party, e.g. certification authority, notary or trusted third party [TTP] involving a payment switch or gateway
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/382Payment protocols; Details thereof insuring higher security of transaction
    • G06Q20/3823Payment protocols; Details thereof insuring higher security of transaction combining multiple encryption tools for a transaction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/382Payment protocols; Details thereof insuring higher security of transaction
    • G06Q20/3827Use of message hashing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/382Payment protocols; Details thereof insuring higher security of transaction
    • G06Q20/3829Payment protocols; Details thereof insuring higher security of transaction involving key management

Abstract

본 발명의 기술적 사상에 의한 일 양태에 따른 P2P 거래 방법은, 송금자 단말로부터 제1 거래 요청 정보를 수신하는 단계와, 제1 거래 요청 정보로부터 확인되는 수금자 단말로 거래 요청을 하는 단계와, 수금자 단말로부터 제2 거래 요청 정보를 수신하는 단계와, 제1 거래 요청 정보에 기초하여 제1 블록체인 해시 값을 획득하고, 제2 거래 요청 정보에 기초하여 제2 블록체인 해시 값을 획득하는 단계, 및 제1 및 제2 블록체인 해시 값에 따라 DHT(distributed hash table) 시스템으로 거래를 요청하여 제1 및 제2 거래 요청 정보에 따라 입출금이 수행되도록 하는 단계를 포함한다.According to an aspect of the present invention, there is provided a P2P transaction method comprising: receiving first transaction request information from a sender terminal; requesting a transaction to a receiver terminal identified from first transaction request information; Receiving second transaction request information from the receiver terminal, obtaining a first block chain hash value based on the first transaction request information, and obtaining a second block chain hash value based on the second transaction request information And requesting a transaction from a distributed hash table (DHT) system according to the first and second block chain hash values to allow the deposit and withdrawal to be performed according to the first and second transaction request information.

Description

블록체인과 DHT를 이용한 P2P 거래 방법 및 장치{PERSON TO PERSON TRADING METHOD AND APPARATUS BY USING BLOCKCHAIN AND DISTRIBUTED HASH TABLE}TECHNICAL FIELD [0001] The present invention relates to a P2P transaction method and apparatus using a block chain and a DHT,

본 발명의 기술적 사상은 P2P 거래에 관한 것으로, 보다 상세하게는, 블록체인과 DHT를 이용한 P2P 거래 방법 및 장치에 관한 것이다.The technical idea of the present invention relates to a P2P transaction, and more particularly, to a P2P transaction method and apparatus using a block chain and a DHT.

본 연구는 미래창조과학부 및 정보통신기술진흥센터의 대학 ICT 연구센터육성지원사업의 연구결과로 수행되었음(IITP-2016-R27181600030001002).This study was conducted as a result of the research project of the future ICT Research Center of the Creation Science Department and the Information and Communication Technology Promotion Center (IITP-2016-R27181600030001002).

최근 모바일 거래 시장이 크게 성장하게 되면서, 해당 거래 시장과 관련된 다양한 기술들이 주목받고 있다. 그 중 P2P 거래 시장은 사용자-사용자 간의 거래라는 점에서 주목받고 있으며, 기존의 은행권 외에도 다양한 온라인 거래 업체 및 IT 회사들도 참여하고 있다. 하지만 다양한 기업들의 참여와 서로 다른 독자적인 거래 방식으로 인해 사용자들이 불편을 겪고 있다. As the mobile transaction market has recently grown, various technologies related to the trading market have been attracting attention. Among them, the P2P trading market is attracting attention as a transaction between users and users. In addition to existing banknotes, various online trading companies and IT companies also participate. However, users are experiencing discomfort due to the involvement of various companies and their unique trading methods.

또한, 모바일이라는 환경의 특성으로 인해 기존 모바일 보안 위협을 비롯해 새로운 보안위협들이 발생하고 있다. 따라서 다양한 보안 기술들이 P2P 거래 환경에 적합하게 개발되어야 한다. 또한, 금융거래라는 측면에서 이용되는 사용자의 계좌번호, 금융거래 관련 정보 등 민감한 개인정보들을 보호하기 위한 기술이 필요하다. In addition, due to the characteristics of mobile environment, new security threats such as existing mobile security threats are occurring. Therefore, various security technologies should be developed for P2P trading environment. In addition, there is a need for a technique for protecting sensitive personal information such as user's account number and financial transaction information used in the context of financial transactions.

본 발명의 기술적 사상에 따른 블록체인 및 DHT를 이용한 P2P 거래 방법 및 장치가 이루고자 하는 기술적 과제는, P2P 거래에 따른 중간자 공격, DDoS 공격 등을 차단하는 데 있다.The technical problem to be solved by the P2P transaction method and apparatus using the block chain and the DHT according to the technical idea of the present invention is to block the meson attack and the DDoS attack according to the P2P transaction.

또한, 본 발명의 기술적 사상에 따른 블록체인 및 DHT를 이용한 P2P 거래 방법 및 장치가 이루고자 하는 기술적 과제는, 예민한 개인 정보의 유출을 방지하는 데 있다.Also, a technical problem of a P2P transaction method and apparatus using a block chain and a DHT according to the technical idea of the present invention is to prevent leakage of sensitive personal information.

본 발명의 기술적 사상이 이루고자 하는 기술적 과제는 이상에서 언급한 과제들로 제한되지 않으며, 언급되지 않은 또 다른 과제들은 아래의 기재로부터 당업자에게 명확하게 이해될 수 있을 것이다.The technical problem to be solved by the technical idea of the present invention is not limited to the above-mentioned problems, and other matters not mentioned can be clearly understood by those skilled in the art from the following description.

본 발명의 기술적 사상에 의한 일 양태에 따른 P2P 거래 방법은, 송금자 단말로부터 제1 거래 요청 정보를 수신하는 단계; 상기 제1 거래 요청 정보로부터 확인되는 수금자 단말로 거래 요청을 하는 단계; 상기 수금자 단말로부터 제2 거래 요청 정보를 수신하는 단계; 상기 제1 거래 요청 정보에 기초하여 제1 블록체인 해시 값을 획득하고, 상기 제2 거래 요청 정보에 기초하여 제2 블록체인 해시 값을 획득하는 단계; 및 상기 제1 및 제2 블록체인 해시 값에 따라 DHT(distributed hash table) 시스템으로 거래를 요청하여 상기 제1 및 제2 거래 요청 정보에 따라 입출금이 수행되도록 하는 단계를 포함할 수 있다.According to an aspect of the present invention, there is provided a P2P transaction method comprising: receiving first transaction request information from a sender terminal; Requesting a transaction to a receiver terminal identified from the first transaction request information; Receiving second transaction request information from the receiver terminal; Obtaining a first block chain hash value based on the first transaction request information and obtaining a second block chain hash value based on the second transaction request information; And requesting a transaction from a distributed hash table (DHT) system according to the first and second block chain hash values to allow the deposit and withdrawal to be performed according to the first and second transaction request information.

예시적인 실시예에 따르면, 상기 P2P 거래 방법은, 상기 송금자 단말로부터 제1 거래 요청 정보의 수신 전에 상기 송금자 단말로부터 송금자 비밀키를 수신하는 단계를 더 포함할 수 있되, 상기 송금자 단말로부터 제1 거래 요청 정보를 수신하는 단계는, 상기 송금자 단말에 의해 상기 비밀키로 암호화된 제1 거래 요청 정보를 상기 기 수신한 비밀키로 복호화하는 단계를 포함할 수 있다.According to an exemplary embodiment, the P2P transaction method may further include receiving a sender secret key from the sender terminal before receiving the first transaction request information from the sender terminal, The receiving of the first transaction request information may include decoding the first transaction request information encrypted with the secret key by the sender terminal using the previously received secret key.

예시적인 실시예에 따르면, 상기 P2P 거래 방법은, 상기 송금자 단말로부터 제1 거래 요청 정보의 수신 전에 상기 송금자 단말과 송금자 공개키 및 중앙 서버 공개키를 교환하는 단계를 더 포함할 수 있되, 상기 송금자 단말로부터 제1 거래 요청 정보를 수신하는 단계는, 상기 제1 거래 요청 정보와 함께 수신되는 공개키를, 상기 기 수신된 송금자 공개키 및 중앙 서버 공개키 중 적어도 하나와 비교하여 상기 송금자 단말을 인증하는 단계를 더 포함할 수 있다.According to an exemplary embodiment, the P2P transaction method may further include exchanging the sender terminal, the sender public key and the central server public key before receiving the first transaction request information from the sender terminal Wherein the receiving of the first transaction request information from the sender terminal comprises comparing the public key received together with the first transaction request information to at least one of the received sender public key and the central server public key And authenticating the sender terminal.

예시적인 실시예에 따르면, 상기 P2P 거래 방법은, 상기 수금자 단말로부터 제2 거래 요청 정보의 수신 전에 상기 수금자 단말로부터 수금자 비밀키를 수신하는 단계를 더 포함할 수 있되, 상기 수금자 단말로부터 제2 거래 요청 정보를 수신하는 단계는, 상기 수금자 단말에 의해 상기 비밀키로 암호화된 제2 거래 요청 정보를 상기 기 수신한 비밀키로 복호화하는 단계를 포함할 수 있다.According to an exemplary embodiment, the P2P transaction method may further include receiving a receiver's private key from the receiver terminal before receiving second transaction request information from the receiver terminal, The receiving of the second transaction request information may include decoding the second transaction request information encrypted with the secret key by the receiver terminal with the secret key received.

예시적인 실시예에 따르면, 상기 P2P 거래 방법은, 상기 수금자 단말로부터 제2 거래 요청 정보의 수신 전에 상기 수금자 단말과 수금자 공개키 및 중앙 서버 공개키를 교환하는 단계를 더 포함할 수 있되, 상기 수금자 단말로부터 제2 거래 요청 정보를 수신하는 단계는, 상기 제2 거래 요청 정보와 함께 수신되는 공개키를, 상기 기 수신된 수금자 공개키 및 중앙 서버 공개키 중 적어도 하나와 비교하여 상기 수금자 단말을 인증하는 단계를 더 포함할 수 있다.According to an exemplary embodiment, the P2P trading method may further include exchanging the receiver key public key and the central server public key with the receiver terminal before receiving the second transaction request information from the receiver terminal Wherein the step of receiving the second transaction request information from the receiver terminal further comprises the step of comparing the public key received together with the second transaction request information with at least one of the receiver's public key and the central server public key And authenticating the receiver terminal.

예시적인 실시예에 따르면, 상기 P2P 거래 방법은, 상기 제1 거래 요청 정보를 연산하여 송금자의 계좌 정보 및 송금 정보를 획득하는 단계; 및 상기 제2 거래 요청 정보를 연산하여 수금자의 계좌 정보 및 수금 정보를 획득하는 단계를 더 포함할 수 있다.According to an exemplary embodiment of the present invention, the P2P transaction method further comprises: calculating the first transaction request information to obtain account information and remittance information of a sender; And acquiring the account information and the collection information of the receiver by calculating the second transaction request information.

예시적인 실시예에 따르면, 상기 P2P 거래 방법은, 상기 제1 및 제2 거래 요청 정보를 역직렬화(deserialization)하는 단계를 포함할 수 있다.According to an exemplary embodiment, the P2P transaction method may include deserializing the first and second transaction request information.

예시적인 실시예에 따르면, 상기 제1 및 제2 블록체인 해시 값을 획득하는 단계는, 상기 송금자 단말로부터 수신되는 공개키 및 상기 송금자의 계좌 정보를 해싱하여 상기 제1 블록체인 해시 값을 획득하고, 상기 수금자 단말로부터 수신되는 공개키 및 상기 수금자의 계좌 정보를 해싱하여 상기 제2 블록체인 해시 값을 획득하는 단계를 포함할 수 있다.The obtaining of the first and second block chain hash values may be performed by hashing the public key received from the sender terminal and the account information of the sender to obtain the first block chain hash value And obtaining the second block chain hash value by hashing the public key received from the receiver terminal and the account information of the receiver.

예시적인 실시예에 따르면, 상기 제1 및 제2 블록체인 해시 값에 따라 DHT 시스템으로 거래를 요청하는 단계는, 상기 제1 블록체인 해시 값과 상기 송금 정보에 기초하여 생성되는 상기 제1 블록체인 트랜잭션 및 상기 제2 블록체인 해시 값과 상기 수금 정보에 기초하여 생성되는 제2 블록체인 트랜잭션을 상기 DHT 시스템으로 전송하는 단계를 포함할 수 있다.According to an exemplary embodiment of the present invention, the step of requesting a transaction to the DHT system according to the first and second block chain hash values may include: And transferring a second block chain transaction to the DHT system that is generated based on the transaction and the second block chain hash value and the collection information.

예시적인 실시예에 따르면, 상기 P2P 거래 방법은, 상기 DHT 시스템에 의한 입출금이 완료되면, 상기 송금자 단말과 상기 수금자 단말로 거래 완료 메시지를 전송하는 단계를 더 포함할 수 있다.According to an exemplary embodiment, the P2P transaction method may further include transmitting a transaction completion message to the sender terminal and the receiver terminal when the deposit / withdrawal by the DHT system is completed.

예시적인 실시예에 따르면, 상기 DHT 시스템에 포함된 복수의 노드들 중 상기 제1 및 제2 블록체인 해시 값 각각에 대응하는 제1 및 제2 노드에 의해 상기 입출금이 수행될 수 있다.According to an exemplary embodiment, the deposit and withdrawal may be performed by first and second nodes corresponding to the first and second block-chain hash values of a plurality of nodes included in the DHT system.

본 발명의 기술적 사상에 의한 다른 양태에 따른 중앙 서버는, 송금자 단말로부터 제1 거래 요청 정보를 수신하고, 수금자 단말로부터 제2 거래 요청 정보를 수신하는 사용자 연동부; 상기 제1 거래 요청 정보에 기초하여 제1 블록체인 해시 값을 획득하고, 상기 제2 거래 요청 정보에 기초하여 제2 블록체인 해시 값을 획득하는 중앙 처리부; 및 상기 제1 및 제2 블록체인 해시 값에 따라 DHT(distributed hash table) 시스템으로 거래를 요청하여 상기 제1 및 제2 거래 요청 정보에 따라 입출금이 수행되도록 하는 시스템 연동부를 포함할 수 있다.According to another aspect of the present invention, there is provided a central server comprising: a user interlocking unit for receiving first transaction request information from a sender terminal and receiving second transaction request information from a receiver terminal; A central processing unit for obtaining a first block chain hash value based on the first transaction request information and obtaining a second block chain hash value based on the second transaction request information; And a system interworking unit for requesting a transaction from a distributed hash table (DHT) system according to the first and second block chain hash values and performing a deposit and withdrawal according to the first and second transaction request information.

본 발명의 기술적 사상에 의한 다른 양태에 따른 P2P 거래 시스템은, 송금자 단말로부터 수신되는 제1 거래 요청 정보 및 수금자 단말로부터 수신되는 제2 거래 요청 정보에 기초하여 제1 블록체인 해시 값과 제2 블록체인 해시 값을 획득하고, 상기 제1 및 제2 블록체인 해시 값에 기초하여 입출금 거래를 요청하는 중앙 서버; 및 상기 중앙 서버로부터 거래 요청이 수신되면, 상기 제1 및 제2 거래 요청 정보에 기초하여 입출금을 수행하는 DHT(distributed hash table) 시스템을 포함할 수 있다.A P2P trading system according to another aspect of the present invention includes a first block chain hash value and a second block transaction value based on first transaction request information received from a sender terminal and second transaction request information received from a receiver terminal, A central server for obtaining a two-block chain hash value and requesting a deposit and withdrawal transaction based on the first and second block chain hash values; And a distributed hash table (DHT) system for performing deposit and withdrawal based on the first and second transaction request information when a transaction request is received from the central server.

본 발명의 기술적 사상에 의한 실시예들에 따른 블록체인 및 DHT를 이용한 P2P 거래 방법 및 장치는 P2P 거래에 따른 중간자 공격, DDoS 공격 등을 차단할 수 있다.The block chain and the P2P transaction method and apparatus using the DHT according to the embodiments of the present invention can prevent a meson attack, a DDoS attack, and the like due to a P2P transaction.

또한, 본 발명의 기술적 사상에 의한 실시예들에 따른 블록체인 및 DHT를 이용한 P2P 거래 방법 및 장치는 예민한 개인 정보의 유출을 방지할 수 있다.In addition, the P2P transaction method and apparatus using the block chain and the DHT according to the embodiments of the present invention can prevent the leakage of sensitive personal information.

본 명세서에서 인용되는 도면을 보다 충분히 이해하기 위하여 각 도면의 간단한 설명이 제공된다.
도 1은 일반적인 블록체인의 구조를 설명하기 위한 예시적인 도면이다.
도 2는 분산 해시 테이블의 Chord 알고리즘에 따른 주소 공간을 도시하는 예시적인 도면이다.
도 3은 분산 해시 테이블의 Chord 알고리즘에 따른 Succesor-List와 그를 이용한 데이터의 복제를 나타내는 예시적인 도면이다.
도 4는 일반적인 P2P 거래 방법을 설명하기 위한 예시적인 도면이다.
도 5는 본 발명의 기술적 사상에 의한 일 실시예에 따른 P2P 거래 시스템을 도시하는 도면이다.
도 6은 본 발명의 기술적 사상에 의한 일 실시예에 따른 P2P 거래 방법을 설명하기 위한 순서도이다.
도 7은 본 발명의 기술적 사상에 의한 일 실시예에 따른 키(key)의 사전 교환 절차를 설명하기 위한 도면이다.
도 8은 본 발명의 기술적 사상에 의한 일 실시예에 따른 P2P 거래 방법을 설명하기 위한 도면이다.
도 9는 본 발명의 기술적 사상에 의한 일 실시예에 따른 중앙 서버의 일부 구성을 개략적으로 나타낸 블록도이다.
BRIEF DESCRIPTION OF THE DRAWINGS A brief description of each drawing is provided to more fully understand the drawings recited herein.
1 is an exemplary diagram for explaining the structure of a general block chain.
2 is an exemplary diagram showing an address space according to the Chord algorithm of the distributed hash table.
3 is an exemplary diagram showing the Succesor-List according to the Chord algorithm of the distributed hash table and the replication of data using the Succesor-List.
4 is an exemplary diagram for explaining a general P2P transaction method.
FIG. 5 is a diagram illustrating a P2P trading system according to an embodiment of the present invention.
FIG. 6 is a flowchart illustrating a P2P transaction method according to an embodiment of the present invention.
7 is a diagram for explaining a pre-exchange procedure of a key according to an embodiment of the present invention.
FIG. 8 is a view for explaining a P2P transaction method according to an embodiment of the present invention.
9 is a block diagram schematically showing a configuration of a central server according to an embodiment of the present invention.

본 발명의 기술적 사상은 다양한 변경을 가할 수 있고 여러 가지 실시 예를 가질 수 있는 바, 특정 실시 예들을 도면에 예시하고 이를 상세한 설명을 통해 상세히 설명하고자 한다. 그러나, 이는 본 발명의 기술적 사상을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 기술적 사상의 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.It is to be understood that both the foregoing general description and the following detailed description are exemplary and explanatory and are intended to provide further explanation of the invention as claimed. However, it should be understood that the technical idea of the present invention is not limited to the specific embodiments but includes all changes, equivalents, and alternatives included in the technical idea of the present invention.

본 발명의 기술적 사상을 설명함에 있어서, 관련된 공지 기술에 대한 구체적인 설명이 본 발명의 기술적 사상의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다. 또한, 본 명세서의 설명 과정에서 이용되는 숫자(예를 들어, 제1, 제2 등)는 하나의 구성요소를 다른 구성요소와 구분하기 위한 식별기호에 불과하다.DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS [0027] In the following description of the present invention, a detailed description of known technologies will be omitted when it is determined that the technical idea of the present invention may be unnecessarily obscured. In addition, numerals (e.g., first, second, etc.) used in the description of the present invention are merely an identifier for distinguishing one component from another.

또한, 본 명세서에서, 일 구성요소가 다른 구성요소와 "연결된다" 거나 "접속된다" 등으로 언급된 때에는, 상기 일 구성요소가 상기 다른 구성요소와 직접 연결되거나 또는 직접 접속될 수도 있지만, 특별히 반대되는 기재가 존재하지 않는 이상, 중간에 또 다른 구성요소를 매개하여 연결되거나 또는 접속될 수도 있다고 이해되어야 할 것이다.Also, in this specification, when an element is referred to as being " connected " or " connected " with another element, the element may be directly connected or directly connected to the other element, It should be understood that, unless an opposite description is present, it may be connected or connected via another element in the middle.

또한, 본 명세서에 기재된 "~부", "~기", "~자", "~모듈" 등의 용어는 적어도 하나의 기능이나 동작을 처리하는 단위를 의미하며, 이는 프로세서(Processor), 마이크로 프로세서(Micro Processer), 마이크로 컨트롤러(Micro Controller), CPU(Central Processing Unit), GPU(Graphics Processing Unit), APU(Accelerate Processor Unit), DSP(Digital Signal Processor), ASIC(Application Specific Integrated Circuit), FPGA(Field Programmable Gate Array) 등과 같은 하드웨어나 소프트웨어 또는 하드웨어 및 소프트웨어의 결합으로 구현될 수 있다. The terms "to", "to", "to", "to", and "module" in the present specification mean units for processing at least one function or operation, A micro processor, a central processing unit (CPU), a graphics processing unit (GPU), an Accelerate Processor Unit (APU), a digital signal processor (DSP), an application specific integrated circuit (ASIC) (Field Programmable Gate Array), or the like, or a combination of hardware and software.

그리고 본 명세서에서의 구성부들에 대한 구분은 각 구성부가 담당하는 주기능 별로 구분한 것에 불과함을 명확히 하고자 한다. 즉, 이하에서 설명할 2개 이상의 구성부가 하나의 구성부로 합쳐지거나 또는 하나의 구성부가 보다 세분화된 기능별로 2개 이상으로 분화되어 구비될 수도 있다. 그리고 이하에서 설명할 구성부 각각은 자신이 담당하는 주기능 이외에도 다른 구성부가 담당하는 기능 중 일부 또는 전부의 기능을 추가적으로 수행할 수도 있으며, 구성부 각각이 담당하는 주기능 중 일부 기능이 다른 구성부에 의해 전담되어 수행될 수도 있음은 물론이다.It is to be clarified that the division of constituent parts in this specification is merely a division by each main function of each constituent part. That is, two or more constituent parts to be described below may be combined into one constituent part, or one constituent part may be divided into two or more functions according to functions that are more subdivided. In addition, each of the constituent units described below may additionally perform some or all of the functions of other constituent units in addition to the main functions of the constituent units themselves, and that some of the main functions, And may be carried out in a dedicated manner.

이하에서는, 관련 기술들을 설명한 후 본 발명의 기술적 사상에 의한 실시예들을 차례로 상세히 설명한다.Hereinafter, the related arts will be described, and then the embodiments according to the technical idea of the present invention will be described in detail.

기존의 은행권에서 지원하고 있는 P2P 거래 방식에서는 은행 별로 다른 데이터베이스를 보유하고 있는 형태를 취하고 있다. 사용자간의 거래를 위해서는 은행 서버나 중개 서버 또는 정부 기관을 거쳐야 하며 은행 데이터베이스 간의 통신도 필요로 한다. 금융거래에 필요한 민감한 정보가 많은 곳을 거치게 되면서 정보가 노출될 위험성도 높아진다. In the case of P2P transactions supported by existing banknotes, banks have different databases. Transactions between users must go through a bank server, a mediation server, or a government agency, and also require communication between bank databases. The risk of exposure to information increases as more sensitive information is required for financial transactions.

최근 금융권에서 주목하고 있는 블록체인 기술은 네트워크 내 모든 참여자가 공동으로 거래 정보를 검증, 기록 및 보관하는 기술이다. 또한, 거래 장부가 분산 저장되어 있어 모든 컴퓨터를 해킹하지 않는 한 조작이 불가능하다는 장점이 있으며, 서버가 처리할 수 있는 용량을 초과하는 정보를 한꺼번에 보내 서버를 다운시키는 디도스(DDoS)와 같은 공격에도 안전하다. The block chain technology, which is attracting attention from the financial sector in recent years, is a technology in which all participants in the network jointly verify, record and store transaction information. In addition, there is an advantage in that it can not be operated unless all the computers are hacked because the transaction book is stored in a distributed manner. In addition, attacks such as DDoS that downsize the server by sending information exceeding the capacity that the server can handle safe.

그리고 분산 해시 테이블(DHT) 기술은 데이터와 서버를 동일한 주소 공간에 배치하는 기술로, 중앙 서버 없이도 데이터를 관리하는 서버를 찾는 룩업(lookup) 성능이 좋으며, 부하가 집중되지 않고 분산시키는 장점으로 인해, 극단적으로 큰 규모의 노드들도 관리할 수 있다. Distributed hash table (DHT) technology is a technique for placing data and servers in the same address space. It has a good lookup performance for finding a server that manages data without a central server. , As well as extremely large nodes.

본 발명의 일 실시예에서는 기존의 P2P 거래 방식의 문제점을 고려하여 블록체인과 분산 해시 테이블을 통해 가용성이 높고 안전한 P2P 거래 방식을 제안한다.In an embodiment of the present invention, a P2P transaction method with high availability and high security is proposed through a block chain and a distributed hash table considering the problems of the existing P2P transaction method.

블록체인Block chain

블록체인 기술은 비트코인(Bitcoin)을 위해 개발된 기반 기술로, 가상 화폐로 거래할 때 발생할 수 있는 해킹을 막기 위한 기술이다. 현재에는 사용처에 따라 다양한 형태로 변형되어 사용되고 있으나 기본적인 구조는 유사하다.Block Chain technology is a technology developed for Bitcoin, a technique to prevent hacking that may occur when trading with virtual currency. At present, it is used in various forms depending on the usage, but the basic structure is similar.

블록체인은 퍼블릭 블록체인(Public Blockchain), 프라이빗 블록체인(Private Blockchain), 하이브리드 또는 컨소시엄 블록체인(Hybrid or Consortium Blockchain)으로 구분될 수 있다.The block chain can be classified into a public block chain, a private block chain, and a hybrid or consortium block chain.

퍼블릭 블록체인은 불특정 다수의 사용자들이 참여할 수 있으며, 공개된 네트워크를 통해 운용한다. 많은 사용자들이 참여하기 때문에 거래 속도가 느리다는 단점이 존재한다. 대표적으로는 비트코인, 이더리움과 같은 가상화폐들이 존재한다.The public block chain can participate in an unspecified number of users and operates through a public network. There is a disadvantage that the transaction speed is slow because many users participate. Typically, there are virtual coins such as bit coin and etherium.

프라이빗 블록체인의 경우 개인화된 블록체인의 형태로 퍼블릭 블록체인과 달리 1개의 주체가 모든 권한을 가지는 형태의 블록체인이며, 거래에 참여하는 모든 사용자들은 중앙기관의 허가를 필요로 한다. 대표적인 예로는 나스닥 체인(Nasdaq Chain)이 있다.In the case of a private block chain, in the form of a personalized block chain, unlike a public block chain, a subject is a block chain of a type with full authority, and all users involved in the transaction need permission from the central authority. A typical example is the Nasdaq Chain.

다음으로 컨소시엄 블록체인의 경우, 반중앙형 블록체인으로 퍼블릭 블록체인과 프라이빗 블록체인을 혼합시켜놓은 형태를 지니고 있다. 미리 협의 또는 선정된 N개의 주체들만이 블록체인에 참여하고 블록에 대한 증명은 주체들 간에 합의된 룰을 통해 이루어진다. 퍼블릭 블록체인에 비해 네트워크 확장이 용이하고 거래 속도가 빠르다는 장점이 존재한다.Next, in the case of a consortium block chain, it is a half-center type block chain in which a public block chain and a private block chain are mixed. Only N subjects that have been negotiated or selected in advance participate in the block chain, and proof of the block is achieved through agreed rules between the subjects. Compared to the public block chain, there is an advantage that the network is easy to expand and the transaction speed is fast.

블록체인 기술에서는 공개성과 분산성이라는 특성으로 인해 위변조에 대응하는 거래 기록 및 확정 메커니즘이 존재하며 그 종류는 5가지이다.In the block chain technology, transaction record and confirmation mechanism corresponding to forgery and falsification exists due to the characteristics of disclosure and dispersibility, and there are five kinds.

첫 번째로는 Proof-of-work 구조로 비트코인과 같은 공개 블록체인에서 많이 사용한다. 블록을 만들기 위해서 사용자는 해시 알고리즘을 풀어서 증명을 하고, 전체 블록체인 노드에 중개하고 가장 마지막 블록에 자신이 증명한 블록을 연결한다. 해당 블록을 위변조하기 위해서는 proof-of-work의 과정을 한 번 더 거쳐야 한다.The first is a proof-of-work structure that is often used in public block chains such as bit coins. To create a block, the user solves the hash algorithm to prove it, brokers it to the entire block chain node, and concatenates the block it proves to the last block. The proof-of-work process has to go through one more time in order to forge and modify the block.

두 번째로는 Proof-of-stake 구조로 proof-of-work의 단점을 보완하기 위한 시스템이다. proof-of-work 구조의 경우 전체 네트워크의 채굴을 50%이상 독점하는 사람 혹은 단체가 있을 경우, 수수료 상승, 고의적 거래기록 누락 등의 문제점이 발생할 수 있다. proof-of-stake 구조의 경우 소유자가 자신이 가진 자산을 스스로가 증명하는 구조이다.Second, it is a system to supplement the shortcomings of proof-of-work with a proof-of-stake structure. In case of proof-of-work structure, if there is a person or group monopolizing more than 50% of the entire network, problems such as increase in commission and deliberate transaction record may occur. In the case of a proof-of-stake structure, the owner proves his or her own assets.

세 번째로는 Consensus-by-bet 구조이다. 해당 구조는 네트워크에 참여하는 사람들의 동의를 통해서 블록체인의 거래를 승인하는 방식으로, 한 사람이나 단체가 네트워크를 독점하기 어렵다는 점을 이용한 구조이다. 이 때, 승인에 참여하는 노드들은 보증금을 걸고 승인에 참여하며 이중거래와 같이 잘못된 곳에 승인을 해줄 경우 보증금을 돌려받지 못하게 된다.The third is Consensus-by-bet structure. The structure is a structure that approves the transactions of the block chain through the consent of the people participating in the network, and it is a structure that one person or organization can not monopolize the network. At this time, the nodes participating in the approval are obliged to deposit the bond, to participate in the approval, and if the approval is given to the wrong place, such as the double transaction, the bond can not be returned.

네 번째로는 Trust 방식으로 기본적으로 네트워크에 신뢰할 수 있는 사람들만이 참여한다고 전제하에 이 방식을 사용한다. 사용자들은 전체 네트워크를 믿지 않지만 스스로가 믿을 수 있다고 판단되는 노드를 선택적으로 신뢰한다. Byzantine agreement protocol을 기반으로 하는 consensus 방식을 적용하는 구조로, 네트워크에 참여하는 노드들의 투표와 동의를 통해서 블록체인의 거래를 승인한다.Fourth, we use the Trust method, assuming that only people who are trusted by the network are basically involved. Users do not trust the entire network, but selectively trust the node that they believe is trustworthy. It adopts a consensus scheme based on the Byzantine agreement protocol, and approves transactions in the block chain through voting and agreement of nodes participating in the network.

마지막 다섯 번째로는 Membership 방식으로 네트워크를 관장하는 단수 혹은 복수의 주체가 명확할 때 사용하는 방식이다. 기본적으로 허가를 얻은 노드들만 승인 작업에 참여하기 때문에 행위를 계약관계 등으로 제약하는 것이 가능하다.Finally, the fifth method is to use when a single entity or a plurality of entities that manage the network in a membership method is clear. Basically, only authorized nodes participate in the approval process, so it is possible to restrict the action to the contractual relationship.

블록체인은 도 1과 같이 이전 블록헤더의 해시값, Merkle root, 전자서명, 현재 블록의 해시값, 타임스탬프 등으로 이루어진 블록헤더(11), Merkle Root, 트랜잭션 등으로 이루어진 블록 데이터(12)로 구성되어 있다. 블록체인은 위에서 언급한 것과 같이 사용처에 따라 다양한 형태로 변형되어 사용될 수 있으며 블록을 구성하는 값과 블록 해시를 계산하는 방법도 다양하게 변형될 수 있다.1, a block chain is composed of a block header 11 composed of a hash value of a previous block header, a Merkle root, an electronic signature, a hash value of a current block, a time stamp, etc., a block header 12 composed of a Merkle Root, Consists of. As mentioned above, the block chain can be used in various forms depending on the usage, and the method of calculating the value of the block and the method of calculating the block hash can be variously modified.

DHTDHT (분산 해시 테이블)(Distributed hash table)

분산 해시 테이블은 해싱을 통하여 생성된 데이터 키 값과 ID의 짝들을 시스템을 구성하는 전체 노드들에 균일하게 분산하기 위해 제안된 lookup 방식이다. 데이터의 키 값과 ID를 이용하여 모든 노드들과 데이터들을 동일한 주소 공간에 할당하는 방식으로 데이터와 노드들의 정보를 한번에 관리하기에 용이하고, 자동화된 시스템 업데이트가 가능하므로 관리의 필요성이 없다. 대표적인 DHT 알고리즘에는 Chord, Pastry, CAN 등이 존재하지만, 본 명세서에서는 Chord 알고리즘에 대해 설명한다.The distributed hash table is a proposed lookup scheme for uniformly distributing pairs of data key values and IDs generated through hashing to all the nodes constituting the system. All nodes and data are allocated to the same address space by using key value and ID of data, so it is easy to manage information of data and nodes at once, and there is no need of management because it enables automatic system update. Representative DHT algorithms include Chord, Pastry, and CAN, but the Chord algorithm is described in this specification.

Chord 알고리즘은 버클리 대학에서 만들어진 방법으로 m-bit(0 ~ 2m-1)의 원형으로 배치된 주소 공간에 각각의 노드와 데이터의 키의 값을 할당하는 방법이다. 해싱 함수를 이용하여 주소 공간으로 사상이 이루어지고, 주소 공간 내에 존재하는 데이터 키 k보다 크거나 같은 노드를 k의 successor라고 하며 라우팅 효율을 높이기 위해 사용한다. 도 2는 Chord 네트워크를 구성하고 있는 3bit 주소 공간을 나타낸다.The Chord algorithm is a method of assigning a key value of each node and data to a m-bit (0 to 2 m -1) circular address space in a way that was created by the University of Berkeley. A hash function is used to map to the address space. A node that is greater than or equal to the data key k in the address space is called a successor of k and is used to increase routing efficiency. 2 shows a 3-bit address space constituting the Chord network.

도 2를 참조하면, 0, 1, 3의 3개의 노드가 네트워크 상에 존재하고 있으며 데이터 키 1, 2, 6의 successor로서 시스템에 참여하고 있다. Chord 알고리즘에서는 각각의 노드들이 finger table이라는 주소 공간의 크기에 따라 크기가 달라지는 라우팅 정보 유지 공간을 보유하고 있다. finger table은 m-bit일 때, m개의 행으로 이루어지는데 각각의 행에서는 현재 노드의 위치를 기준으로 2n(1≤n≤m)에 해당하는 데이터의 successor 정보를 저장하고 있다.Referring to FIG. 2, three nodes 0, 1, and 3 are present in the network and participate in the system as successors of data keys 1, 2, and 6. In the Chord algorithm, each node has a routing information holding space whose size varies according to the size of the address space called the finger table. The finger table is composed of m rows when m-bit. In each row, successor information of data corresponding to 2n (1? n ? m) is stored based on the position of the current node.

새로운 노드의 참가 및 기존 노드의 이탈 등을 처리하기 위해 각각의 노드들은 predecessor, successor 정보를 보유하고 있으며 해당 정보를 통해 노드의 참가 및 이탈을 자동으로 처리할 수 있다.Each node has predecessor and successor information in order to handle the participation of a new node and the departure of an existing node, and can automatically handle participation and departure of the node through the corresponding information.

본 명세서에 기재된 일 실시예에서 이용하는 DHT에서는 Chord 알고리즘을 사용하며 Chord 알고리즘은 Successor-List라는 신뢰도 향상 기법을 사용한다. Successor-List란 Chord에서 설명된 데이터 구조로, r개의 successor들을 저장하는 리스트이다. Successor-List에 존재하는 r개의 successor들에게 데이터를 분산시켜 둠으로써 한 successor가 실패하더라도, Successor-list에 있는 모든 successor가 실패하지 않는 이상, 리스트에 존재하는 가장 가까운 successor로부터 정보를 얻어와 신뢰할 수 있는 시스템을 구성할 수 있다. 도 3은 Successor-List와 그를 이용한 데이터의 복제를 나타낸 도면이다.In the DHT used in the embodiment described herein, the Chord algorithm is used and the Chord algorithm uses a reliability improvement technique called a Successor-List. Successor-List is a data structure described in Chord, which stores r successors. By distributing the data to the r successors in the Successor-List, even if one successor fails, information is obtained from the nearest successor in the list, The system can be configured. 3 is a diagram showing Successor-List and data replication using the Successor-List.

일반적인 P2P 거래 방식Typical P2P transaction method

기존의 P2P 거래 방식은 참여하는 엔티티의 종류에 따라 크게 NONBANK-CENTRIC P2P, BANK-CENTRIC P2P, BANK-CENTRIC P2P(Consortium Model) 3가지로 나눌 수 있다. 본 명세서에서 제안하는 일 실시예는 BANK-CENTRIC P2P(Consortium Model)과 유사한 형태를 취하므로 BANK-CENTRIC P2P(Consortium Model)을 설명한다.The existing P2P trading method can be divided into three types according to the types of participating entities: NONBANK-CENTRIC P2P, BANK-CENTRIC P2P, and BANK-CENTRIC P2P (Consortium Model). One embodiment proposed in this specification takes a form similar to the BANK-CENTRIC P2P (Consortium Model), so it describes the BANK-CENTRIC P2P (Consortium Model).

BANK-CENTRIC P2P(이하 컨소시엄 모델)은 거래 요청자, 피거래 요청자, 거래 요청자의 은행, 피거래 요청자의 은행, 컨소시엄, 정부 기관과 같은 엔티티로 이루어져있으며 자세한 프로토콜은 도 4와 같다.The BANK-CENTRIC P2P (Consortium Model) consists of entities such as a transaction requester, a transaction requester, a bank of a transaction requester, a bank of a transaction requester, a consortium, and a government entity.

Step 1. Payer는 은행 웹사이트에 접속해, Payee에게 P2P 서비스를 통해 100만원 전송 요청하고, Payee의 이름, 이메일 주소와 휴대폰 번호를 입력한다.Step 1. Payer connects to the bank's web site, asks Payee to send one million won through P2P service, and enters Payee's name, email address and mobile number.

Step 2. Payer의 은행에서는 Payer가 충분한 금액을 보유하고 있는지 확인한다.Step 2. At Payer's bank, make sure the Payer has enough money.

Step 3. Payer의 은행에서 컨소시엄에 거래 정보를 전송한다.Step 3. Transfer the transaction information to the consortium at Payer's bank.

Step 4. 컨소시엄은 Payee의 이메일 주소 또는 휴대폰 번호를 통해 컨소시엄에 가입된 은행에 계좌가 있는지 확인하고 계좌가 있을 경우, Payee의 은행에 정보를 전송한다.Step 4. The consortium confirms that there is an account with the consortium's bank through the e-mail address or cell phone number of the payee and sends the information to the bank of the payee if there is an account.

Step 5. 컨소시엄이 Payee에게 거래에 대해 알리기 위해, 이메일 또는 메시지를 전송한다.Step 5. The consortium sends an e-mail or a message to inform Payee about the transaction.

Step 6. Payee는 은행 웹사이트에 접속해 거래에 동의하고, 입금받을 계좌를 선택한 후, 거래 완료를 기다리고 있음을 알린다.Step 6. Payee accesses the bank's website, agrees to the transaction, selects the account to be deposited, and informs him that he is waiting for the transaction to be completed.

Step 7. Payee의 은행은 컨소시엄에 Payee가 거래에 동의했음을 알리고 Payee의 계좌 정보를 전송한다.Step 7. Payee's bank notifies the consortium that Payee has agreed to the transaction and sends Payee's account information.

Step 8. 컨소시엄은 Payee의 은행으로부터 받은 메시지를 Payer의 은행에 전달한다.Step 8. The consortium will forward the message from the Payee's bank to Payer's bank.

Step 9. 컨소시엄은 Payer에게 Payee가 거래에 동의했음을 이메일 또는 메시지를 통해 알린다.Step 9. The consortium informs Payer via email or message that Payee has agreed to the transaction.

Step 10. Payer의 은행은 Payer에게 인출을 알린다.Step 10. Payer's bank tells Payer to withdraw.

Step 11. Payer의 은행은 컨소시엄을 통해 받은 Payee의 계좌 정보에 입금을 알리는 정보와 ACH파일을 Fed에게 전송한다.Step 11. The bank of Payer sends the information and ACH file to the Fed to the Payee's account information received through the consortium.

Step 12. Fed는 Payee의 은행에게 Payee의 은행 계좌에 돈을 지급할 것을 알리며 ACH 파일을 전송한다.Step 12. The Fed informs the Payee's bank to pay the Payee's bank account and sends the ACH file.

Step 13. Fed는 Payer의 은행 계좌로부터 돈을 인출하고, Payee의 은행 계좌에 돈을 입금할 것을 예약한다.Step 13. The Fed withdraws money from Payer's bank account and reserves the money to Payee's bank account.

Step 14. Payee의 은행에서 Payee에게 계좌에 입금되었음을 알린다.Step 14. At the Payee's bank, tell Payee that you have been credited to your account.

컨소시엄 모델의 문제점은 효율성 측면과 안전성 측면으로 나누어 볼 수 있다. 효율성 측면을 보게 되면, 은행-은행 간의 직접적인 거래의 안전성, 신뢰성이 떨어지므로 신뢰성이 높은 Fed를 통해 ACH 파일을 송수신하며 안전성, 신뢰성을 추구하고자 한다. 하지만 결과적으로는 거래를 위한 단계가 증가하고 Fed를 통해 ACH 파일을 송수신함으로써 거래의 속도가 늦어지고 있는 실정이다.The problems of the consortium model can be divided into efficiency and safety. In terms of efficiency, the safety and credibility of direct bank-to-bank transactions deteriorate. Therefore, we want to pursue safety and reliability by sending and receiving ACH files through highly reliable Feds. However, as a result, the number of transactions is increasing and transactions are slowed down by sending and receiving ACH files through the Fed.

P2P 거래 방식을 도입할 때 안전성 측면에 대해서도 분석을 해야 한다. 위의 컨소시엄 모델의 경우 중요한 개인정보라고 할 수 있는 금융거래 정보가 사용자-은행, 은행-컨소시엄, 은행-Fed 사이에서 왕복하게 된다. 중요한 개인정보가 자주 송수신됨에 따라 중간자 탈취 등을 통한 중요 개인정보의 노출의 위험도가 높아지게 되고, Fed와 은행 사이에서 오가는 ACH와 금융 정보의 위변조 등의 위험이 존재한다. When introducing the P2P transaction method, the safety aspect should be analyzed. In the case of the above consortium model, financial transaction information, which can be considered important personal information, is transferred between the user-bank, the bank-consortium, and the bank-Fed. As important personal information is frequently transmitted and received, there is a risk of exposure of important personal information through the capture of intermediaries and the risk of forgery and alteration of ACH and financial information between the Fed and the bank.

이하에서는, 도 5 내지 도 9를 참조하여 본 발명의 일 실시예에 따른 P2P 거래 방법에 대해 설명한다.Hereinafter, a P2P transaction method according to an embodiment of the present invention will be described with reference to FIGS. 5 to 9. FIG.

도 5는 본 발명의 일 실시예에 따른 P2P 거래 시스템을 도시하는 예시적인 도면이다.5 is an exemplary diagram illustrating a P2P trading system in accordance with an embodiment of the present invention.

송금자 단말(510)은 수금자에게 일정 액수의 돈을 송금하고자 하는 송금자가 사용하는 단말이며, 수금자 단말(530)은 송금자로부터 일정 액수의 돈을 입금받고자 하는 수금자가 사용하는 단말이다. 도 5는 송금자 단말(510)을 스마트폰으로, 수금자 단말(530)은 데스크탑 PC인 것으로 도시하고 있지만, 송금자 단말(510)과 수금자 단말(530)은 이들 스마트폰 및 데스크탑 PC에 한정되는 것은 아니며, 테블릿 PC, 노트북, PDA, 웨어러블 기기 등 네트워크 접속 기능을 갖는 다양한 종류의 단말 장치를 포함할 수 있다.The remitter terminal 510 is a terminal used by the remitter to remit a certain amount of money to the receiver, and the remitter terminal 530 is a terminal used by the remitter to receive a predetermined amount of money from the remitter. 5 shows that the sender terminal 510 is a smartphone and the receiver terminal 530 is a desktop PC. However, the sender terminal 510 and the receiver terminal 530 are connected to these smartphones and desktop PCs And may include various types of terminal devices having a network connection function such as a tablet PC, a notebook, a PDA, and a wearable device.

중앙 서버(550)는 예를 들어, 웹 서버를 포함할 수 있다. 송금자 단말(510)은 중앙 서버(550)에 접속하여 수금자 단말(530)과의 거래 요청을 하고, 중앙 서버(550)는 수금자 단말(530)로부터 거래 요청에 따른 정보를 수신한다. 중앙 서버(550)는 송금자 단말(510)로부터 수신되는 정보 및 수금자 단말(530)로부터 수신되는 정보에 기초하여 DHT 시스템(570)으로 입출금 거래 요청을 한다.The central server 550 may include, for example, a web server. The sender terminal 510 accesses the central server 550 to make a transaction request with the receiver terminal 530 and the central server 550 receives information according to the transaction request from the receiver terminal 530. The central server 550 makes a deposit / withdrawal transaction request to the DHT system 570 based on the information received from the sender terminal 510 and the information received from the receiver terminal 530.

본 발명의 일 실시예에서 DHT 시스템(570)은 사용자의 계좌 정보를 유지하는 은행 서버, 증권회사 서버 등을 하나의 노드(575)로 하여 구성된다. 각 노드(575)들은 DHT에 따른 노드의 역할과 블록체인 노드의 역할을 함께하며, 사용자의 은행별 계좌 및 보유 금액 등의 정보를 분산 해시 테이블에 저장하고 있다.In one embodiment of the present invention, the DHT system 570 comprises a node 575 such as a bank server or a securities company server that maintains account information of a user. The nodes 575 share the role of the node according to the DHT and the role of the block chain node, and store the information such as the account and the amount of the user's bank in the distributed hash table.

송금자 단말(510), 중앙 서버(550), 수금자 단말(530) 및 DHT 시스템(570) 간은 안전한 채널을 통해 서로 간에 통신할 수 있다.The sender terminal 510, the central server 550, the receiver terminal 530, and the DHT system 570 can communicate with each other through a secure channel.

도 6은 본 발명의 일 실시예에 따른 P2P 거래 방법을 설명하기 위한 순서도이다.6 is a flowchart illustrating a P2P transaction method according to an embodiment of the present invention.

S610 단계에서, 중앙 서버(550)는 송금자 단말(510)로부터 제1 거래 요청 정보를 수신한다. 제1 거래 요청 정보는 송금자의 계좌번호, 송금 액수 및 수금자 정보 등을 포함할 수 있다.In step S610, the central server 550 receives the first transaction request information from the remitter terminal 510. [ The first transaction request information may include an account number of the sender, a remittance amount, and receiver information.

S620 단계에서, 중앙 서버(550)는 제1 거래 요청 정보로부터 확인되는 수금자 단말(530)로 거래 요청을 한다.In step S620, the central server 550 makes a transaction request to the receiver terminal 530 identified from the first transaction request information.

S630 단계에서, 중앙 서버(550)는 수금자 단말(530)로부터 제2 거래 요청 정보를 수신한다. 제2 거래 요청 정보는 수금자의 계좌번호, 수금 액수 및 송금자 정보 등을 포함할 수 있다.In step S630, the central server 550 receives the second transaction request information from the receiver terminal 530. [ The second transaction request information may include the account number of the receiver, the amount of the collection, and the sender information.

S640 단계에서, 중앙 서버(550)는 제1 거래 요청 정보에 기초하여 제1 블록체인 해시 값을 획득하고, 제2 거래 요청 정보에 기초하여 제2 블록체인 해시 값을 획득한다. 제1 블록체인 해시 값은 송금자의 계좌를 관리하는 노드(575)의 주소에 대응하며, 제2 블록체인 해시 값은 수금자의 계좌를 관리하는 노드(575)의 주소에 대응할 수 있다.In step S640, the central server 550 obtains the first block chain hash value based on the first transaction request information, and obtains the second block chain hash value based on the second transaction request information. The first block chain hash value corresponds to the address of the node 575 that manages the account of the sender and the second block chain hash value may correspond to the address of the node 575 that manages the account of the receiver.

S650 단계에서, 중앙 서버(550)는 제1 블록체인 해시 값 및 제2 블록체인 해시 값에 따라 DHT 시스템(570)으로 거래를 요청한다.In step S650, the central server 550 requests a transaction from the DHT system 570 according to the first block chain hash value and the second block chain hash value.

DHT 시스템(570)의 각 노드(575)들은 중앙 서버(550)의 거래 요청에 따라, 제1 블록체인 해시 값 및 제2 블록체인 해시 값에 대응하는 노드들로 거래 요청 정보를 포워딩하며, 제1 블록체인 해시 값에 대응하는 노드와 제2 블록체인 해시 값에 대응하는 노드는 거래 요청에 따른 입출금을 수행하고, 입출금 수행에 따라 갱신된 분산 해시 테이블을 다른 노드들과 공유하여 무결성을 유지할 수 있다.Each node 575 of the DHT system 570 forwards the transaction request information to the nodes corresponding to the first block chain hash value and the second block chain hash value according to the transaction request of the central server 550, A node corresponding to a hash value of one block chain and a node corresponding to a hash value of a second block chain perform deposit and withdrawal in response to a transaction request and maintain the integrity by sharing the updated distributed hash table with other nodes have.

한편, 중앙 서버(550)는 송금자 단말(510) 및 수금자 단말(530)과 사전 키 교환 절차를 수행할 수 있는데, 이에 대해서는 도 7을 참조하여 설명한다. 도 7 및 후술하는 도 8에서 사용되는 기호의 정의는 다음의 표 1과 같다. Meanwhile, the central server 550 can perform a pre-key exchange procedure with the remitter terminal 510 and the receiver terminal 530, which will be described with reference to FIG. The definitions of symbols used in FIG. 7 and FIG. 8 to be described later are shown in Table 1 below.

Figure 112017000537894-pat00001
Figure 112017000537894-pat00001

도 7은 중앙 서버(550)와 사용자 단말(송금자 단말(510) 및 수금자 단말(530))(700)과 키(key)를 교환하는 절차를 설명하기 위한 도면이다.7 is a diagram for explaining a procedure of exchanging a key with the central server 550 and a user terminal (a sender terminal 510 and a receiver terminal 530)

S710 단계에서, 사용자 단말(700)은 전자서명 키 쌍(pkA,s sig, skA,s sig) 및 비밀키(skA,s enc)를 생성한다.In step S710, the user terminal 700 generates an electronic signature key pair (pkA , s sig , sk A, s sig ) and a secret key (sk A, s enc ).

S720 단계에서, 사용자 단말(700)은 공개키(pkA,s sig) 및 비밀키(skA,s enc)를 중앙 서버(550)로 전송한다. In step S720, the user terminal 700 transmits the public key pk A, s sig and the secret key sk A, s enc to the central server 550.

S730 단계에서, 중앙 서버(550)는 전자서명 키 쌍(pks,A sig, sks,A sig)을 생성한다.In step S730, the central server 550 generates an electronic signature key pair (pk s, A sig , sk s, A sig ).

S740 단계에서, 중앙 서버(550)는 생성한 전자서명 키 쌍 중 공개키(pks,A sig)를 사용자 단말(700)로 전송한다.In step S740, the central server 550 transmits the public keys pk s and A sig among the generated digital signature key pairs to the user terminal 700.

이로써, 사용자 단말(700)은 자신이 생성한 전자서명 키 쌍(pkA,s sig, skA,s sig)과, 비밀키(skA,s enc) 및 중앙 서버(550)로부터 수신한 공개키(pks,A sig)를 보유하며, 중앙 서버(550)는 자신이 생성한 전자서명 키 쌍(pks,A sig, sks,A sig)과, 사용자 단말(700)로부터 수신한 공개키(pkA,s sig) 및 비밀키(skA,s enc)를 보유하게 된다.Thus, the user terminal 700 transmits the digital signature key pair (pkA , s sig , sk A, s sig ) generated by the user terminal 700, the private key (sk A, s enc ) key (pk s, a sig) and holding, the central server 550 is released received from the digital signature key pair that it generates (pk s, a sig, sk s, a sig), the user terminal 700, Key (pk A, s sig ) and a secret key (sk A, s enc ).

상기 키 교환 절차는 사용자가 P2P 거래 서비스를 이용하기 위해 중앙 서버(550)의 웹 사이트에 로그인을 한 후 이루어질 수 있다. 로그인을 한 후에 이루어지는 모든 통신은 SSL(secure socket layer)을 통해 이루어진다. The key exchange procedure may be performed after the user logs in the web site of the central server 550 to use the P2P transaction service. All communication after login is done through SSL (secure socket layer).

도 8은 본 발명의 일 실시예에 따른 송금자 단말(510), 수금자 단말(530), 중앙 서버(550) 및 DHT 시스템(570)의 구체적인 동작을 설명하기 위한 도면이다.FIG. 8 is a view for explaining a concrete operation of the sender terminal 510, the receiver terminal 530, the central server 550 and the DHT system 570 according to an embodiment of the present invention.

도 7에서 키 교환 절차가 완료되면, 송금자 단말(510)은 중앙 서버(550)에 접속한 후, 제1 거래 요청 정보(CA)를 자신의 비밀키(skA,s enc)로 암호화(S805)한 후, 암호화된 제1 거래 요청 정보(skA,s enc(CA))와 자신의 식별자(IDA) 및 자신이 보유하고 있는 어느 하나의 공개키(pkkA sig)를 중앙 서버(550)로 전송한다(S810). 상기 제1 거래 요청 정보(CA)는 송금자 단말(510)이 계좌 정보(accountA)와 송금 정보(cA)를 직렬화하여 생성한 것이다.7, when the sender terminal 510 accesses the central server 550, the sender terminal 510 encrypts the first transaction request information C A with its own secret key (sk A, s enc ) (Ska , s enc (C A )), its identifier (ID A ) and any one public key (pk kA sig ) it holds, to the center To the server 550 (S810). The first transaction request information C A is generated by serializing the account information (account A ) and the remittance information (c A ) by the sender terminal 510.

중앙 서버(550)는 우선 수신된 공개키(pkkA sig)를 자신이 보유하고 있는 공개키(즉, 자신이 생성한 공개키 및 송금자 단말(510)로부터 수신한 공개키)(pks,A sig, pkA,s sig)와 비교하여(S815) 송금자 단말(510)을 인증한다.The central server 550 is first received public key a public key that he or she is holding the (pk kA sig) (that is, public he has created a public key and the sender receives from the terminal 510, key) (pk s, A sig , pk A, s sig ) (S 815) to authenticate the sender terminal 510.

중앙 서버(550)는 암호화된 제1 거래 요청 정보(CA)를 송금자 단말(510)로부터 기 수신한 복호화키(skA,S enc)로 복호화하여 제1 거래 요청 정보(CA)를 획득한다(S820).The central server 550 decrypts the encrypted first transaction request information C A with the decryption keys sk A and S enc received from the sender terminal 510 to obtain the first transaction request information C A (S820).

중앙 서버(550)는 제1 거래 요청 정보(CA)로부터 확인되는 수금자 단말(530)로 송금자의 식별자(IDA)를 전송하여 거래 요청을 한다(S825).The central server 550 transmits the identifier of the sender (ID A ) to the receiver terminal 530 identified from the first transaction request information (C A ) and makes a transaction request (S825).

수금자 단말(530)은 제2 거래 요청 정보(CB)를 자신의 비밀키(skB,s enc)로 암호화(S830)한 후, 암호화된 제2 거래 요청 정보(skB,s enc(CB))와 자신의 식별자(IDB) 및 자신이 보유하고 있는 어느 하나의 공개키(pkkB sig)를 중앙 서버(550)로 전송한다(S835). 제2 거래 요청 정보(CB)는 수금자 단말(530)이 계좌 정보(accountB)와 수금 정보(cB)를 직렬화하여 생성한 것이다.Receiver terminal 530, the second transaction request information (C B) and then encrypted (S830) as his private key (sk B, s enc), the encrypted second transaction request information (sk B, s enc ( C B ), its own identifier (ID B ), and any public key (pk kB sig ) it holds, to the central server 550 (S835). The second transaction request information C B is generated by serializing the account information account B and the collection information c B by the receiver terminal 530.

중앙 서버(550)는 수신된 공개키(pkkB sig)를 자신이 보유하고 있는 공개키(즉, 자신이 생성한 공개키 및 수금자 단말(530)로부터 수신한 공개키)(pks,B sig, pkB,s sig)와 비교하여(S840) 수금자 단말(530)을 인증한다.The central server 550 stores the received public key pk kB sig in its own public key (i.e., the public key generated by itself and the public key received from the receiver terminal 530) (pk s, B sig , pk B, and s sig ) (S840), and authenticates the receiver terminal 530.

중앙 서버(550)는 암호화된 제2 거래 요청 정보(CB)를 수금자 단말(530)로부터 기 수신한 복호화키(skB,S enc)로 복호화하여 제2 거래 요청 정보(CB)를 획득한다(S845).The central server 550 decodes the encrypted second transaction request information C B into the decryption keys sk B and S enc received from the receiver terminal 530 and outputs the second transaction request information C B (S845).

중앙 서버(550)는 수금자의 식별자(IDB)를 송금자 단말(510)로 전송하여 수금자로부터의 거래 승인이 되었다는 것을 알린다(S850).The central server 550 transmits the identifier (ID B ) of the receiver to the sender terminal 510 to inform that the transaction has been approved by the receiver (S850).

중앙 서버(550)는 제1 거래 요청 정보(CA)를 역직렬화(deserialization)하여 송금자의 계좌 정보(accountA)와 송금 정보(cA)를 획득하고, 제2 거래 요청 정보(CB)를 역직렬화하여 수금자의 계좌 정보(accountB)와 수금 정보(CB)를 획득한다(S855). 상기 송금자의 계좌 정보(accountA)는 송금자가 이용하는 은행명 및 계좌 번호를 포함할 수 있으며, 송금 정보(cA)는 송금 액수 정보 및 수금자 정보(예를 들어, 수금자의 식별자)를 포함할 수 있다. 또한, 상기 수금자의 계좌 정보(accountB)는 수금자가 이용하는 은행명 및 계좌 번호를 포함할 수 있으며, 수금 정보(cB)는 수금 액수 정보 및 송금자 정보(예를 들어, 송금자의 식별자)를 포함할 수 있다.The central server 550 deserializes the first transaction request information C A to obtain the account information A and the transfer information C A of the sender and obtains the second transaction request information C B , And obtains account information (account B ) and collection information C B of the receiver (S855). The account information (account A ) of the sender may include a bank name and an account number used by the sender, and the transfer information (c A ) may include remittance amount information and receiver information (for example, an identifier of the receiver) . The account information (account B ) of the receiver may include a bank name and an account number used by the receiver, and the collection information (c B ) may include the collection amount information and the sender information (for example, the identifier of the sender) .

중앙 서버(550)는 송금자의 계좌 정보(accountA)와 S810에서 수신한 공개키(pkkA sig)를 직렬화시킨 후, 해싱(hashing)하여 제1 블록체인 해시 값(HA)을 획득하고, 수금자의 계좌 정보(accountB)와 S835 단계에서 수신한 공개키(pkkB sig)를 직렬화시킨 후, 해싱하여 제2 블록체인 해시 값(HB)을 획득한다(S860). 앞서 살펴본 바와 같이, 제1 블록체인 해시 값(HA)은 송금자의 계좌를 관리하는 노드의 주소에 대응하며, 제2 블록체인 해시 값(HB)은 수금자의 계좌를 관리하는 노드의 주소에 대응하는데, 이와 같이, 각 노드의 주소가 계좌 정보의 해시 값으로부터 생성된다는 점에서 DHT 시스템(570) 내의 특정 노드를 검색하는 것이 용이해질 수 있다.The central server 550 is obtained after serializing a public key (pk kA sig) received by the account information (account A) parties remittance and S810, hashing (hashing) to the first block chain hash value (H A), and after serialization of a public key (pk kB sig) received by the collection's account information (account B) and the step S835 will be hashed to obtain a second block chain hash value (H B) (S860). As described above, the first block chain hash value H A corresponds to the address of the node managing the sender's account, and the second block chain hash value H B corresponds to the address of the node managing the account of the receiver And thus it may be easier to search for a particular node in the DHT system 570 in that the address of each node is generated from the hash value of the account information.

다음으로, 중앙 서버(550)는 제1 블록체인 해시 값(HA)과 송금 정보(cA)의 해시 값에 기초하여 제1 블록체인 트랜잭션(L[HA])을 생성하고, 제2 블록체인 해시 값(HB)과 송금 정보(cB)의 해시 값에 기초하여 제2 블록체인 트랜잭션(L[HB])을 생성한다(S865).Next, the central server 550 generates a first block chain transaction L [H A ] based on the first block chain hash value H A and the hash value of the transfer information c A , The second block chain transaction L [H B ] is generated based on the hash value of the block chain hash value H B and the transfer information c B (S865).

중앙 서버(550)는 DHT 시스템(570)으로 제1 블록체인 트랜잭션(L[HA])과 제2 블록체인 트랜잭션(L[HB])을 전송하여, 송금 정보(cA)의 해시 값(h(cA)) 및 수금 정보(cB)의 해시 값(h(cB))에 따라 입출금 처리가 되도록 요청한다(S870).The central server 550 is the DHT system 570, the first block chain transactions (L [H A]) and the second block chain transaction by sending an (L [H B]), transfer the hash value of the information (c A) (h (a c)) and receiving information requests so that the receipt and payout processing based on the hash value (h (c B)) of (c B) (S870).

DHT 시스템(570)의 각 노드들은 Successor_list를 참고하여 list내에 존재하는 다음 노드로 제1 블록체인 트랜잭션(L[HA])과 제2 블록체인 트랜잭션(L[HB])을 전송하여 결국, 제1 블록체인 해시 값(HA)에 대응하는 노드(예를 들어, a 노드)로 송금 정보(cA)의 해시 값(h(cA))이 전달되도록 하고, 제2 블록체인 해시 값(HB)에 대응하는 노드(예를 들어, b 노드)로 수금 정보(cB)의 해시 값(h(cB))이 전달되도록 한다. a 노드 및 b 노드 각각은 송금 정보(cA)의 해시 값(h(cA)) 및 수금 정보(cB)의 해시 값(h(cB))에 따라 분산 해시 테이블을 수정 또는 갱신한다(S875). 수정 또는 갱신된 분산 해시 테이블은 다른 노드들에게 공유된다. 또한, a 노드에 의한 분산 해시 테이블의 수정 및 b 노드에 의한 분산 해시 테이블의 수정에 따라 송금자의 계좌에서 수금자의 계좌로 일정 금액이 이체된다.Each node of the DHT system 570 transmits a first block chain transaction L [H A ] and a second block chain transaction L [H B ] to the next node existing in the list by referring to the Successor_list, The hash value h (c A ) of the transfer information c A is transferred to the node (for example, a node) corresponding to the first block chain hash value H A , and the second block chain hash value such that (h b) nodes (e.g., node b) the hash value (h (b c)) of receiving information (c b) transmitted to the corresponding on. each a node and b node modifies or updates the distributed hash table based on the hash value (h (c B)) of the hash value (h (c A)), and receiving information (c B) of the transfer information (c A) (S875). The modified or updated distributed hash table is shared by other nodes. Further, according to the modification of the distributed hash table by the node a and the modification of the distributed hash table by the node b, a certain amount is transferred from the account of the sender to the account of the receiver.

DHT 시스템(570)은 중앙 서버(550)로 분산 해시 테이블의 수정 완료 메시지를 전달하고(S880), 중앙 서버(550)는 송금자 단말(510) 및 수금자 단말(530)로 거래 완료 메시지를 전달한다(S885).The DHT system 570 transmits a modification completion message of the distributed hash table to the central server 550 in step S880 and the central server 550 transmits a transaction completion message to the sender terminal 510 and the receiver terminal 530 (S885).

도 9는 본 발명의 일 실시예에 따른 중앙 서버(550)의 구성을 도시하는 블록도이다. 9 is a block diagram showing a configuration of a central server 550 according to an embodiment of the present invention.

도 9를 참조하면, 본 발명의 일 실시예에 따른 중앙 서버(550)는 사용자 연동부(551), 시스템 연동부(553), 인증부(555) 및 중앙 처리부(557)를 포함할 수 있다. 사용자 연동부(551), 시스템 연동부(553), 인증부(555) 및 중앙 처리부(557)는 적어도 하나의 프로세서로 구현될 수 있으며, 도시되지 않은 메모리에 저장된 프로그램에 따라 동작할 수 있다.9, the central server 550 according to an exemplary embodiment of the present invention may include a user interaction unit 551, a system interaction unit 553, an authentication unit 555, and a central processing unit 557 . The user interlocking unit 551, the system interlocking unit 553, the authentication unit 555, and the central processing unit 557 may be implemented by at least one processor and may operate according to a program stored in a memory (not shown).

사용자 연동부(551)는 송금자 단말(510) 및 수금자 단말(530)과 연동한다. 구체적으로, 사용자 연동부(551)는 송금자 단말(510) 및 수금자 단말(530)과 사전에 키 교환을 하고, 송금자 단말(510)로부터 제1 거래 요청 정보를 수신하며, 수금자 단말(530)로부터 제2 거래 요청 정보를 수신한다.The user interlocking unit 551 is interlocked with the remitter terminal 510 and the receiver terminal 530. Specifically, the user interaction unit 551 performs key exchange in advance with the sender terminal 510 and the receiver terminal 530, receives the first transaction request information from the sender terminal 510, Lt; RTI ID = 0.0 > 530 < / RTI >

시스템 연동부(553)는 DHT 시스템(570)과 연동한다. 구체적으로, 시스템 연동부(553)는 중앙 처리부(557)에 의해 생성되는 제1 블록체인 해시 값과 제2 블록체인 해시 값을 기초로 DHT 시스템(570)에게 입출금 처리를 요청한다.The system interworking unit 553 interlocks with the DHT system 570. Specifically, the system interworking unit 553 requests the DHT system 570 for deposit and withdrawal processing based on the first block chain hash value and the second block chain hash value generated by the central processing unit 557.

인증부(555)는 송금자 단말(510)로부터 수신되는 공개키와 수금자 단말(530)로부터 수신되는 공개키를, 기 보유하고 있는 공개키와 비교하여 송금자 단말(510) 및 수금자 단말(530)을 인증하고, 송금자 단말(510)에 의해 암호화된 제1 거래 요청 정보와 수금자 단말(530)에 의해 암호화된 제2 거래 요청 정보를 기 수신한 복호화키로 복호화를 한다.The authentication unit 555 compares the public key received from the sender terminal 510 and the public key received from the receiver terminal 530 with the public key held in advance, and transmits the public key to the sender terminal 510 and the receiver terminal 530. [ And decrypts the first transaction request information encrypted by the sender terminal 510 and the second transaction request information encrypted by the receiver terminal 530 with the decryption key.

중앙 처리부(557)는 복호화된 제1 거래 요청 정보와 복호화된 제2 거래 요청 정보를 역직렬화하여 계좌 정보, 송금 정보 및 수금 정보를 획득하고, 획득한 정보들과 공개키에 기초하여 상기 제1 블록체인 해시 값과 제2 블록체인 해시 값을 획득한다.The central processing unit 557 deserializes the decrypted first transaction request information and the decrypted second transaction request information to obtain the account information, the remittance information, and the collection information, and based on the acquired information and the public key, And obtains a block chain hash value and a second block chain hash value.

또한, 중앙 처리부(557)는 제1 블록체인 해시 값과 해싱된 송금 정보에 기초하여 제1 블록체인 트랜잭션을 생성하고, 제2 블록체인 해시 값과 해싱된 수금 정보에 기초하여 제2 블록체인 트랜잭션을 생성한다.In addition, the central processing unit 557 generates a first block chain transaction based on the first block chain hash value and the hashed transfer information, and generates a second block chain transaction based on the second block chain hash value and the hashed receipt information .

제1 블록체인 트랜잭션과 제2 블록체인 트랜잭션은 시스템 연동부(553)를 통해 DHT 시스템(570)으로 전송되어 전술한 바와 같이, 송금자와 수금자 사이의 입출금이 처리될 수 있다.The first block chain transaction and the second block chain transaction are transmitted to the DHT system 570 via the system interworking unit 553 so that the transfer between the sender and the receiver can be processed as described above.

본 발명의 일 실시예에 따른 P2P 거래 방법에 의하면 중간자 공격 및 DDoS 공격 등의 방어에 매우 효과적일 수 있다.According to the P2P transaction method according to the embodiment of the present invention, it can be very effective in defending the meson attack and the DDoS attack.

중간자 공격은 거래가 진행되는 순간부터 발생할 수 있는 공격으로써, 본 발명의 일 실시예에서는 P2P 거래 서비스를 이용하기 위해서 송금자 단말(510)이 중앙 서버(550)에 접속(또는 로그인)하는 순간부터 암호화 통신이 이루어지며, 사용자 단말과 중앙 서버(550) 사이에 주고받는 모든 거래 정보는 사전 키 교환 절차에서 주고받은 비밀키를 통해 암호화되어 보호된다. 또한, 중앙 서버(550)와 DHT 시스템(570) 사이에 이루어지는 통신은 DHT의 열람 및 수정 요청이 유일하고, DHT에 열람 및 수정 요청에서 전송되는 정보는 사용자 계좌 정보의 해시값이므로, 공격자가 중간에 ACH 파일 또는 금융거래 정보를 탈취해 위변조 시킬 수 없고, 사용자의 계좌, 전화번호 등의 개인정보를 탈취할 수 없다. The intermediary attack is an attack that may occur from the moment the transaction proceeds. In an embodiment of the present invention, the intermediary attack is performed from the moment the sender terminal 510 accesses (or logs in) the central server 550 to use the P2P transaction service, And all transaction information exchanged between the user terminal and the central server 550 is encrypted and protected through the secret key exchanged in the pre-key exchange procedure. Since the communication between the central server 550 and the DHT system 570 is a request for viewing and modifying the DHT, and the information transmitted from the DHT to the viewing and modifying request is the hash value of the user account information, The ACH file or the financial transaction information can not be forged and tampered with, and the personal information such as the account and the telephone number of the user can not be taken.

또한, DHT 시스템(570)에 저장되는 정보를 탈취한다 해도 공격자는 해시값만을 얻을 수 있어 중간자 공격에 대하여 안전하다.Also, even if the information stored in the DHT system 570 is stolen, the attacker can obtain only the hash value, which is safe against the man-in-the-middle attack.

또한, DHT 시스템(570)에서 각각의 은행들이 폐쇄된 컨소시엄 블록체인의 노드들이 되면서 DHT의 노드 역할을 하게 되므로, A은행에 DDoS 공격이 발생한다 해도 주변 은행이 보유한 분산 장부를 통해 사용자들은 가용성의 침해 없이 서비스를 이용할 수 있게 된다.In addition, since each bank in the DHT system 570 functions as a node of the DHT as a node of a closed consortium block chain, even if a DDoS attack occurs in the A bank, Services will be available without infringement.

이상, 본 발명의 기술적 사상을 바람직한 실시예를 들어 상세하게 설명하였으나, 본 발명의 기술적 사상은 상기 실시예들에 한정되지 않고, 본 발명의 기술적 사상의 범위 내에서 당 분야에서 통상의 지식을 가진 자에 의하여 여러 가지 변형 및 변경이 가능하다.While the present invention has been described in connection with what is presently considered to be practical exemplary embodiments, it is to be understood that the invention is not limited to the disclosed embodiments, but, on the contrary, Various modifications and variations are possible.

510: 송금자 단말
530: 수금자 단말
550: 중앙 서버
551: 사용자 연동부
553: 시스템 연동부
555: 인증부
557: 중앙 처리부
570: DHT 시스템
575: 노드
510: Sender terminal
530:
550: central server
551: user interlocking part
553: system interlocking part
555:
557:
570: DHT system
575: Node

Claims (13)

송금자 단말로부터 제1 거래 요청 정보를 수신하는 단계;
상기 제1 거래 요청 정보로부터 확인되는 수금자 단말로 거래 요청을 하는 단계;
상기 수금자 단말로부터 제2 거래 요청 정보를 수신하는 단계;
상기 제1 거래 요청 정보에 기초하여 제1 블록체인 해시 값을 획득하고, 상기 제2 거래 요청 정보에 기초하여 제2 블록체인 해시 값을 획득하는 단계; 및
상기 제1 및 제2 블록체인 해시 값에 따라 DHT(distributed hash table) 시스템으로 거래를 요청하여, 상기 DHT 시스템에 포함된 복수의 노드들 중 상기 제1 및 제2 블록체인 해시 값 각각에 대응하는 제1 및 제2 노드에 의해 입출금이 수행되도록 하는 단계;
를 포함하는, 중앙 서버에 의한 P2P 거래 방법.
Receiving first transaction request information from a sender terminal;
Requesting a transaction to a receiver terminal identified from the first transaction request information;
Receiving second transaction request information from the receiver terminal;
Obtaining a first block chain hash value based on the first transaction request information and obtaining a second block chain hash value based on the second transaction request information; And
Requesting a transaction from a distributed hash table (DHT) system in accordance with the first and second block chain hash values and transmitting a hash value corresponding to each of the first and second block chain hash values among a plurality of nodes included in the DHT system Causing the first and second nodes to perform a deposit and withdrawal;
The P2P transaction method comprising:
제1항에 있어서,
상기 P2P 거래 방법은,
상기 송금자 단말로부터 제1 거래 요청 정보의 수신 전에, 상기 송금자 단말로부터 송금자 비밀키를 수신하는 단계;를 더 포함하되,
상기 송금자 단말로부터 제1 거래 요청 정보를 수신하는 단계는,
상기 송금자 단말에 의해 상기 비밀키로 암호화된 제1 거래 요청 정보를 상기 미리 수신한 비밀키로 복호화하는 단계;를 포함하는, P2P 거래 방법.
The method according to claim 1,
The P2P transaction method comprises:
And receiving the sender's private key from the sender terminal before receiving the first transaction request information from the sender terminal,
Wherein the receiving of the first transaction request information from the sender terminal comprises:
And decrypting the first transaction request information encrypted with the secret key by the sender terminal with the previously received secret key.
제1항에 있어서,
상기 P2P 거래 방법은,
상기 송금자 단말로부터 제1 거래 요청 정보의 수신 전에, 상기 송금자 단말과 송금자 공개키 및 중앙 서버 공개키를 교환하는 단계;를 더 포함하되,
상기 송금자 단말로부터 제1 거래 요청 정보를 수신하는 단계는,
상기 제1 거래 요청 정보와 함께 수신되는 공개키를, 상기 미리 수신된 송금자 공개키 및 중앙 서버 공개키 중 적어도 하나와 비교하여 상기 송금자 단말을 인증하는 단계;를 더 포함하는, P2P 거래 방법.
The method according to claim 1,
The P2P transaction method comprises:
Exchanging the sender terminal with the sender public key and the central server public key before receiving the first transaction request information from the sender terminal,
Wherein the receiving of the first transaction request information from the sender terminal comprises:
And authenticating the sender terminal by comparing the public key received together with the first transaction request information with at least one of the previously received sender public key and the central server public key, .
제1항에 있어서,
상기 P2P 거래 방법은,
상기 수금자 단말로부터 제2 거래 요청 정보의 수신 전에, 상기 수금자 단말로부터 수금자 비밀키를 수신하는 단계;를 더 포함하되,
상기 수금자 단말로부터 제2 거래 요청 정보를 수신하는 단계는,
상기 수금자 단말에 의해 상기 비밀키로 암호화된 제2 거래 요청 정보를 상기 미리 수신한 비밀키로 복호화하는 단계;를 포함하는, P2P 거래 방법.
The method according to claim 1,
The P2P transaction method comprises:
Receiving the receiver's private key from the receiver terminal before receiving the second transaction request information from the receiver terminal,
Wherein the receiving of the second transaction request information from the receiver terminal comprises:
And decoding the second transaction request information encrypted with the secret key by the receiver terminal with the previously received secret key.
제1항에 있어서,
상기 P2P 거래 방법은,
상기 수금자 단말로부터 제2 거래 요청 정보의 수신 전에, 상기 수금자 단말과 수금자 공개키 및 중앙 서버 공개키를 교환하는 단계;를 더 포함하되,
상기 수금자 단말로부터 제2 거래 요청 정보를 수신하는 단계는,
상기 제2 거래 요청 정보와 함께 수신되는 공개키를, 상기 미리 수신된 수금자 공개키 및 중앙 서버 공개키 중 적어도 하나와 비교하여 상기 수금자 단말을 인증하는 단계;를 더 포함하는, P2P 거래 방법.
The method according to claim 1,
The P2P transaction method comprises:
Exchanging the receiver key public key and the central server public key with the receiver terminal before receiving the second transaction request information from the receiver terminal,
Wherein the receiving of the second transaction request information from the receiver terminal comprises:
And authenticating the receiver terminal by comparing the public key received together with the second transaction request information with at least one of the previously received receiver's public key and the central server public key, .
제1항에 있어서,
상기 P2P 거래 방법은,
상기 제1 거래 요청 정보를 연산하여 송금자의 계좌 정보 및 송금 정보를 획득하는 단계; 및
상기 제2 거래 요청 정보를 연산하여 수금자의 계좌 정보 및 수금 정보를 획득하는 단계;
를 더 포함하는, P2P 거래 방법.
The method according to claim 1,
The P2P transaction method comprises:
Calculating the first transaction request information to obtain account information and remittance information of a sender; And
Calculating the second transaction request information to obtain account information and collection information of the receiver;
The P2P transaction method further comprising:
제6항에 있어서,
상기 P2P 거래 방법은,
상기 제1 및 제2 거래 요청 정보를 역직렬화(deserialization)하는 단계;를 포함하는, P2P 거래 방법.
The method according to claim 6,
The P2P transaction method comprises:
And deserializing the first and second transaction request information.
제6항에 있어서,
상기 제1 및 상기 제2 블록체인 해시 값을 획득하는 단계는,
상기 송금자 단말로부터 수신되는 공개키 및 상기 송금자의 계좌 정보를 해싱하여 상기 제1 블록체인 해시 값을 획득하고, 상기 수금자 단말로부터 수신되는 공개키 및 상기 수금자의 계좌 정보를 해싱하여 상기 제2 블록체인 해시 값을 획득하는 단계;를 포함하는, P2P 거래 방법.
The method according to claim 6,
Wherein the obtaining of the first and second block chain hash values comprises:
A hash value obtained by hashing the public key received from the sender terminal and the account information of the sender to obtain the first block chain hash value, hashing the public key received from the receiver terminal and the account information of the receiver, And obtaining a block chain hash value.
제6항에 있어서,
상기 제1 및 제2 블록체인 해시 값에 따라 DHT 시스템으로 거래를 요청하는 단계는,
상기 제1 블록체인 해시 값과 상기 송금 정보에 기초하여 생성되는 제1 블록체인 트랜잭션 및 상기 제2 블록체인 해시 값과 상기 수금 정보에 기초하여 생성되는 제2 블록체인 트랜잭션을 상기 DHT 시스템으로 전송하는 단계;를 포함하는, P2P 거래 방법.
The method according to claim 6,
The step of requesting a transaction to the DHT system according to the first and second block chain hash values comprises:
A first block chain transaction generated based on the first block chain hash value and the transfer information and a second block chain transaction generated based on the second block chain hash value and the collection information to the DHT system A P2P transaction method, comprising:
제1항에 있어서,
상기 P2P 거래 방법은,
상기 DHT 시스템에 의한 입출금이 완료되면, 상기 송금자 단말과 상기 수금자 단말로 거래 완료 메시지를 전송하는 단계;를 더 포함하는, P2P 거래 방법.
The method according to claim 1,
The P2P transaction method comprises:
And transferring a transaction completion message to the sender terminal and the receiver terminal when the deposit and withdrawal by the DHT system is completed.
삭제delete 송금자 단말로부터 제1 거래 요청 정보를 수신하고, 수금자 단말로부터 제2 거래 요청 정보를 수신하는 사용자 연동부;
상기 제1 거래 요청 정보에 기초하여 제1 블록체인 해시 값을 획득하고, 상기 제2 거래 요청 정보에 기초하여 제2 블록체인 해시 값을 획득하는 중앙 처리부; 및
상기 제1 및 제2 블록체인 해시 값에 따라 DHT(distributed hash table) 시스템으로 거래를 요청하여, 상기 DHT 시스템에 포함된 복수의 노드들 중 상기 제1 및 제2 블록체인 해시 값 각각에 대응하는 제1 및 제2 노드에 의해 입출금이 수행되도록 하는 시스템 연동부;
를 포함하는, 중앙 서버.
A user interlocking unit for receiving first transaction request information from a sender terminal and receiving second transaction request information from a receiver terminal;
A central processing unit for obtaining a first block chain hash value based on the first transaction request information and obtaining a second block chain hash value based on the second transaction request information; And
Requesting a transaction from a distributed hash table (DHT) system in accordance with the first and second block chain hash values and transmitting a hash value corresponding to each of the first and second block chain hash values among a plurality of nodes included in the DHT system A system interlocking unit for causing the first and second nodes to perform the deposit and withdrawal;
And a central server.
송금자 단말로부터 수신되는 제1 거래 요청 정보 및 수금자 단말로부터 수신되는 제2 거래 요청 정보에 기초하여 제1 블록체인 해시 값과 제2 블록체인 해시 값을 획득하고, 상기 제1 및 제2 블록체인 해시 값에 기초하여 입출금 거래를 요청하는 중앙 서버; 및
상기 중앙 서버로부터 거래 요청이 수신되면, 복수의 노드들 중 상기 제1 및 제2 블록체인 해시 값 각각에 대응하는 제1 및 제2 노드에 의해 입출금을 수행하는 DHT(distributed hash table) 시스템;
을 포함하는, P2P 거래 시스템.
Acquiring a first block chain hash value and a second block chain hash value based on first transaction request information received from a sender terminal and second transaction request information received from a receiver terminal, A central server for requesting a deposit and withdrawal transaction based on a chain hash value; And
A distributed hash table (DHT) system for performing a deposit / withdrawal by a first node and a second node corresponding to the first and second block chain hash values, respectively, of a plurality of nodes when receiving a transaction request from the central server;
The P2P transaction system.
KR1020170000517A 2017-01-03 2017-01-03 Person to person trading method and apparatus by using blockchain and distributed hash table KR101964254B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020170000517A KR101964254B1 (en) 2017-01-03 2017-01-03 Person to person trading method and apparatus by using blockchain and distributed hash table

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020170000517A KR101964254B1 (en) 2017-01-03 2017-01-03 Person to person trading method and apparatus by using blockchain and distributed hash table

Publications (2)

Publication Number Publication Date
KR20180079847A KR20180079847A (en) 2018-07-11
KR101964254B1 true KR101964254B1 (en) 2019-04-01

Family

ID=62917442

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170000517A KR101964254B1 (en) 2017-01-03 2017-01-03 Person to person trading method and apparatus by using blockchain and distributed hash table

Country Status (1)

Country Link
KR (1) KR101964254B1 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20220141493A (en) 2021-04-13 2022-10-20 주식회사 노틸러스 Apparatus of processing linked data
KR102471210B1 (en) 2022-03-07 2022-11-29 주식회사 비트코인그룹 Method and system for data analysis service mediation based on blockchain and homomorphic encryption

Families Citing this family (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101979254B1 (en) * 2018-08-01 2019-05-17 주식회사 스트리미 Apparatus for matching transactions for exchanging cryptocurrencies and method thereof
KR102273549B1 (en) * 2018-08-23 2021-07-06 주식회사 퀀텀게이트 System and method for providing traffic safety based on blockchain
KR102013527B1 (en) * 2018-08-28 2019-08-22 최은철 System and method for trading raw material using blockchain
KR102178583B1 (en) 2018-11-13 2020-11-13 주식회사 싸이투코드 Contract apparatus and method of blockchain using digital contents orginal key
KR102120330B1 (en) 2018-11-13 2020-06-08 주식회사 싸이투코드 Contract apparatus and method of blockchain using location information
KR102217987B1 (en) * 2018-11-22 2021-02-18 김경준 Management system for blockchain
SG11201903527QA (en) 2018-11-30 2019-05-30 Alibaba Group Holding Ltd Platform for atomic transfer of smart assets within blockchain networks
SG11201903539PA (en) 2018-11-30 2019-05-30 Alibaba Group Holding Ltd Platform for atomic transfer of smart assets within blockchain networks
KR102175949B1 (en) * 2018-12-10 2020-11-09 한국전자통신연구원 Method and apparatus for generating block in blockchain system
KR20200081533A (en) * 2018-12-27 2020-07-08 서강대학교산학협력단 Blockchain Consensus Method based Improved Dynamic Blind Voting for Internet of Things Environment
KR102096643B1 (en) * 2018-12-31 2020-04-02 주식회사 미탭스플러스 Apparatus for KYC using KYC blockchain
KR102096642B1 (en) * 2018-12-31 2020-04-02 주식회사 미탭스플러스 Apparatus for KYC using KYC blockchain
KR102096644B1 (en) * 2018-12-31 2020-04-02 주식회사 미탭스플러스 Apparatus for KYC using KYC blockchain
KR102096646B1 (en) * 2018-12-31 2020-04-02 주식회사 미탭스플러스 Apparatus for KYC using KYC blockchain
KR102096640B1 (en) * 2018-12-31 2020-04-02 주식회사 미탭스플러스 Apparatus for KYC using Token Balance within KYC blockchain
KR102096645B1 (en) * 2018-12-31 2020-04-02 주식회사 미탭스플러스 Apparatus for KYC using KYC blockchain
KR102096641B1 (en) * 2018-12-31 2020-04-02 주식회사 미탭스플러스 Apparatus and Method for KYC using KYC blockchain
KR20200084162A (en) 2019-01-02 2020-07-10 서강대학교산학협력단 Payment system and payment method based on a blockchain lightning network
WO2020197514A1 (en) * 2019-03-27 2020-10-01 Koc Universitesi A distributed hash table based blockchain architecture for resource constrained environments
KR102142275B1 (en) * 2019-07-25 2020-08-07 주식회사 바디프랜드 Apparatus and method for approving deposit of cryptocurrency
CN111694851B (en) * 2020-05-28 2023-06-16 平安科技(深圳)有限公司 Transaction processing method of distributed transaction and related equipment

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101590076B1 (en) * 2015-11-18 2016-02-01 주식회사 웨이브스트링 Method for managing personal information

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101394996B1 (en) * 2012-05-25 2014-05-27 주식회사 한국외환은행 Remittance transaction service method based on payee
KR20160050876A (en) * 2014-10-31 2016-05-11 코나아이 (주) Bitcoin dealing method using public key and private key stored in smart card
KR101660627B1 (en) * 2015-02-03 2016-09-28 한양대학교 에리카산학협력단 Method and apparatus for protecting transasction of encrypted currency

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101590076B1 (en) * 2015-11-18 2016-02-01 주식회사 웨이브스트링 Method for managing personal information

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20220141493A (en) 2021-04-13 2022-10-20 주식회사 노틸러스 Apparatus of processing linked data
KR102471210B1 (en) 2022-03-07 2022-11-29 주식회사 비트코인그룹 Method and system for data analysis service mediation based on blockchain and homomorphic encryption

Also Published As

Publication number Publication date
KR20180079847A (en) 2018-07-11

Similar Documents

Publication Publication Date Title
KR101964254B1 (en) Person to person trading method and apparatus by using blockchain and distributed hash table
AU2022204758B2 (en) Network topology
CN110582793B (en) Anonymity and traceability of digital property transactions on a distributed transaction consensus network
US10715531B2 (en) Network topology
CN108418680B (en) Block chain key recovery method and medium based on secure multi-party computing technology
US20220166634A1 (en) Method and apparatus for generating blockchain transaction
KR20190075771A (en) Authentication System Using Block Chain Through Distributed Storage after Separating Personal Information
TW202040391A (en) Computer-implemented systems and methods for implementing transfers over a blockchain network
TW202029086A (en) Block chain-based evidence storage method and device
KR20210041459A (en) The encrypted data sharing system based on block chain and IPFS(InterPlanetary File System)
JP7327473B2 (en) Virtual currency system, terminal, server, virtual currency transaction method and program
CN113393225B (en) Digital currency encryption payment method and system
WO2022206446A1 (en) Methods and apparatuses for generating, verifying and storing transaction voucher, device, and system
KR102483369B1 (en) The user data storage and sharing system based on DID
KR20210041458A (en) The data sharing system by group based on block chain and IPFS(InterPlanetary File System)
Ravindran et al. A review paper on regulating bitcoin currencies
CN112384939A (en) Computer-implemented system and method for out-of-chain exchange of distributed ledger-related transactions
EP4181457A1 (en) Quantum based method and system for performing cryptocurrency asset transactions
CN112258169A (en) Parallel signature system and method based on key generation

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