KR102118646B1 - System and method for detecting double-spending in block chain - Google Patents

System and method for detecting double-spending in block chain Download PDF

Info

Publication number
KR102118646B1
KR102118646B1 KR1020180064368A KR20180064368A KR102118646B1 KR 102118646 B1 KR102118646 B1 KR 102118646B1 KR 1020180064368 A KR1020180064368 A KR 1020180064368A KR 20180064368 A KR20180064368 A KR 20180064368A KR 102118646 B1 KR102118646 B1 KR 102118646B1
Authority
KR
South Korea
Prior art keywords
transaction information
block
transaction
blockchain
double payment
Prior art date
Application number
KR1020180064368A
Other languages
Korean (ko)
Other versions
KR20190058255A (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 충남대학교산학협력단
Publication of KR20190058255A publication Critical patent/KR20190058255A/en
Application granted granted Critical
Publication of KR102118646B1 publication Critical patent/KR102118646B1/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/30Payment architectures, schemes or protocols characterised by the use of specific devices or networks
    • G06Q20/36Payment architectures, schemes or protocols characterised by the use of specific devices or networks using electronic wallets or electronic money safes
    • G06Q20/367Payment architectures, schemes or protocols characterised by the use of specific devices or networks using electronic wallets or electronic money safes involving electronic purses or money safes
    • G06Q20/3678Payment architectures, schemes or protocols characterised by the use of specific devices or networks using electronic wallets or electronic money safes involving electronic purses or money safes e-cash details, e.g. blinded, divisible or detecting double spending
    • 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/04Payment circuits
    • G06Q20/06Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme
    • G06Q20/065Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme using e-cash
    • 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

Abstract

블록체인에 발생한 이중지불을 탐지하는 시스템으로서, 블록체인을 구성하는 복수의 블록들의 구조를 분석하여, 상기 블록체인 내에 발생한 분기점을 검색하는 분기점 검색부, 분기점이 검색된 경우, 상기 검색된 분기점을 형성하는 제1 블록 및 제2 블록을 결정하는 블록 결정부, 상기 제1 블록 및 상기 제2 블록에 포함된 거래정보들을 상호 비교하여, 상기 블록체인에 이중지불이 발생하였는지 결정하는 이중지불 발생 결정부 그리고 상기 블록체인에 이중지불이 발생한 경우, 상기 블록체인을 구성하는 복수의 블록들을 공유하는 노드들에 경고메시지를 전송하는 경고메시지 전송부를 포함한다.As a system for detecting double payments occurring in the blockchain, the structure of a plurality of blocks constituting the blockchain is analyzed, and a branch search unit searching for a branch generated in the blockchain, and when the branch is found, forming the searched branch A block determination unit for determining a first block and a second block, a comparison unit for comparing transaction information included in the first block and the second block, and determining whether a double payment has occurred in the blockchain, and a double payment generation determination unit. When a double payment occurs on the blockchain, a warning message transmission unit for transmitting a warning message to nodes that share a plurality of blocks constituting the blockchain.

Figure R1020180064368
Figure R1020180064368

Description

블록체인 이중지불 탐지 시스템 및 방법{SYSTEM AND METHOD FOR DETECTING DOUBLE-SPENDING IN BLOCK CHAIN}Blockchain double payment detection system and method{SYSTEM AND METHOD FOR DETECTING DOUBLE-SPENDING IN BLOCK CHAIN}

본 발명은 블록체인에서 이중지불을 탐지하기 위한 시스템 및 방법에 관한 것이다.The present invention relates to a system and method for detecting double payments in a blockchain.

블록체인은 비트코인 전자화폐시스템의 기반이 되는 기술로서, 전자화폐를 통해 거래가 수행된 경우 블록체인 네트워크로 브로드캐스트된 트랜잭션들은 마이너(miner)라고 불리는 노드들이 모아서 블록으로 만든다. 한편, 트랜잭션은 거래내역을 의미하며, 임의의 노드에서 트랜잭션이 발생하면, 거래정보가 포함된 블록을 P2P(Peer-to-Peer) 통신 방식을 통해 네트워크에 연결된 모든 노드들에 전파하고, 각 노드들은 수신한 블록을 중복 저장한다.
따라서 각 노드는 전자화폐를 통한 거래 후 잔고와 거래의 성립 여부 등을 자신이 보관하고 있는 블록들을 보고 스스로 확인할 수 있다. 블록은 거래내역과 네트워크 시간 그리고 직전 블록의 내용으로 계산된 해시(hash) 값을 저장하기 때문에, 서로 다른 시간에 만들어진 블록들 간에 선후 관계가 형성되어 일련의 블록체인으로 구성된다.
이러한 블록체인을 이용한 전자화폐시스템은 거래내역을 여러 노드들에 분산시켜 저장하기 때문에, 중앙서버에 거래정보가 일괄적으로 저장되는 기존의 전자화폐 방식에 비해 보안을 획기적으로 강화할 수 있다는 장점이 있다.
Blockchain is a technology that is the basis of the Bitcoin electronic money system, and when transactions are performed through electronic money, transactions broadcast to the blockchain network are collected by nodes called miners and made into blocks. Meanwhile, a transaction means a transaction history, and when a transaction occurs at any node, the block containing the transaction information is propagated to all nodes connected to the network through a peer-to-peer communication method, and each node Listens and duplicates the received block.
Therefore, each node can check itself by looking at the blocks it holds, such as the balance and whether the transaction has been established after the transaction through electronic money. Since the block stores the hash value calculated as the contents of the previous block, the transaction history, network time, and the previous block, a sequential relationship is formed between the blocks made at different times to form a series of blockchains.
The electronic money system using this blockchain has the advantage that it can significantly enhance security compared to the existing electronic money method in which transaction information is stored on a central server in a batch, because transaction details are distributed and stored in multiple nodes. .

한편, 이러한 장점은 하나의 전자화폐로 반드시 한 번의 거래가 발생해야함을 전제로 한다. 그러나, 비트코인 전자화폐시스템 내에서 조작을 통해 하나의 전자화폐로 두 번 이상의 거래를 발생시킬 수가 있는데, 이를 이중지불이라 하며 불법거래에 해당한다. 시스템에서 이중지불이 발생하는 경우, 정상 거래에 대한 거래정보를 기록한 블록체인과 중복된 지불에 대한 거래정보를 기록한 블록체인이 공존하게 되며, 일정시간 경과 후 중복 지불 여부와 무관하게 길이가 더 긴 블록체인이 채택되고 짧은 것은 무시되어 폐기된다.
그러나, 단순히 길이가 더 긴 블록체인을 선택하는 경우, 중복된 지불에 대한 거래정보를 포함한 체인이 길어질 수 있는 확률이 존재하기 때문에 이중지불을 완벽하게 방지할 수 없다는 문제가 존재할 수 밖에 없다.
On the other hand, this advantage is based on the premise that one transaction must occur in one electronic currency. However, it is possible to generate more than one transaction with one electronic currency through manipulation within the Bitcoin electronic money system, which is called double payment and corresponds to illegal transactions. When a double payment occurs in the system, the blockchain that records the transaction information for the normal transaction and the blockchain that records the transaction information for the duplicated payment coexist, and after a certain period of time, the length is longer regardless of whether the payment is duplicated or not. Blockchain is adopted and short ones are ignored and discarded.
However, when simply selecting a longer block chain, there is a problem that the double payment cannot be completely prevented because there is a probability that the chain including transaction information for duplicate payments can be lengthened.

이와 같은 문제를 해결하기 위해, 전자화폐를 통한 거래 이전에 해당 거래가 합당한지 제3 엔티티를 통해 확인하는 방식이 있었으나, 이러한 방식은 블록체인이 P2P 통신 방식을 사용하는 것과 맞지 않는 접근 방식이라는 문제가 있었다.

(특허문헌 1) KR10-1660627 B
In order to solve this problem, there was a method to check whether the transaction was reasonable before the transaction through electronic money through a third entity, but this method is a problem that the blockchain does not fit with the use of P2P communication method. there was.

(Patent Document 1) KR10-1660627 B

본 발명이 해결하고자 하는 과제는 블록에 포함된 거래정보를 통해 블록체인 내에서 발생한 이중지불을 탐색하는 기술을 제공하는 것이다.The problem to be solved by the present invention is to provide a technique of searching for double payments occurring in a blockchain through transaction information included in a block.

또한, 본 발명이 해결하고자 하는 과제는 이중지불이 탐색된 경우, 이중지불이 탐색된 노드와 네트워크를 통해 연결된 타 노드들에게 이중지불 발생을 알리는 기술을 제공하는 것이다.In addition, the problem to be solved by the present invention is to provide a technique for notifying the occurrence of double payment to a node where the double payment is discovered and other nodes connected through a network when the double payment is discovered.

본 발명의 일 실시예에 따른 블록체인에 발생한 이중지불을 탐지하는 시스템은 블록체인을 구성하는 복수의 블록들의 구조를 분석하여, 상기 블록체인 내에 발생한 분기점을 검색하는 분기점 검색부, 분기점이 검색된 경우, 상기 검색된 분기점을 형성하는 제1 블록 및 제2 블록을 결정하는 블록 결정부, 그리고 상기 제1 블록 및 상기 제2 블록에 포함된 거래정보들을 상호 비교하여, 상기 블록체인에 이중지불이 발생하였는지 결정하는 이중지불 발생 결정부를 포함한다.A system for detecting double payments occurring in a blockchain according to an embodiment of the present invention analyzes the structure of a plurality of blocks constituting the blockchain, and searches for a branch point that searches for a branch point generated in the blockchain, when a branch point is searched , A block determination unit that determines the first block and the second block forming the retrieved branch point, and compares transaction information included in the first block and the second block to see if a double payment has occurred in the blockchain And a determination unit for determining double payments.

상기 이중지불 발생 결정부는 상기 제1 블록에 포함된 거래정보들과 상기 제2 블록에 포함된 거래정보들을 상호 비교하여 이전 거래정보가 동일하나 현재 거래정보가 상이한 제1 이중지불 거래정보들이 존재하는지 결정하고, 상기 제1 이중지불 거래정보들이 존재하는지에 따라 상기 블록체인 내에서 이중지불이 발생하였는지를 결정한다.The double payment generation determining unit compares the transaction information included in the first block with the transaction information included in the second block to see if there are first double payment transaction information having the same previous transaction information but different current transaction information. Decide and determine whether a double payment has occurred in the blockchain according to whether the first double payment transaction information exists.

상기 이중지불 발생 결정부는 상기 제1 블록 및 상기 제2 블록에 포함된 거래정보들 중 이전 거래정보를 포함하지 않는 최초 거래정보를 제외하고, 상기 제1 블록에 포함된 거래정보들과 상기 제2 블록에 포함된 거래정보들을 상호 비교한다.The double payment generation determining unit excludes initial transaction information that does not include previous transaction information among the transaction information included in the first block and the second block, and the transaction information and the second included in the first block. The transaction information included in the block is compared with each other.

상기 이중지불 발생 결정부는 상기 제1 이중지불 거래정보들이 존재하는 경우, 상기 블록체인 내에서 이중지불이 발생하였다고 결정하고, 상기 제1 이중지불 거래정보들이 존재하지 않는 경우, 상기 제1 블록의 자식 블록인 제3 블록에 포함된 거래정보들과 상기 제2 블록의 자식 블록인 제4 블록에 포함된 거래정보들을 상호 비교하여, 이전 거래정보가 동일하나 현재 거래정보가 상이한 제2 이중지불 거래정보들이 존재하는지 결정하고, 상기 제2 이중지불 거래정보들이 존재하는지에 따라 상기 블록체인 내에서 이중지불이 발생하였는지를 결정한다.The double payment generation determining unit determines that double payment has occurred in the blockchain when the first double payment transaction information exists, and if the first double payment transaction information does not exist, the child of the first block Second double payment transaction information having the same previous transaction information but different current transaction information by comparing the transaction information included in the third block which is the block with the transaction information included in the fourth block which is a child block of the second block. It is determined whether or not they exist, and whether the double payment has occurred within the blockchain according to whether the second double payment transaction information exists.

상기 이중지불 탐지 시스템은 상기 블록체인에 이중지불이 발생한 경우, 상기 블록체인을 구성하는 복수의 블록들을 공유하는 노드들에 경고메시지를 전송하는 경고메시지 전송부를 더 포함한다.The double payment detection system further includes a warning message transmission unit that transmits a warning message to nodes sharing a plurality of blocks constituting the blockchain when a double payment occurs in the blockchain.

본 발명의 일 실시예에 따른 복수의 블록들로 구성된 블록체인에 발생한 이중지불을 탐지하는 방법은 블록체인 내에 분기점이 발생된 경우, 상기 발생된 분기점을 형성하는 제1 블록 및 제2 블록을 결정하는 단계, 상기 제1 블록 및 상기 제2 블록에 포함된 거래정보들을 추출하는 단계, 그리고 상기 추출한 거래정보들을 상호 비교하여, 상기 블록체인에 이중지불이 발생하였는지를 결정하는 단계를 포함한다.A method of detecting a double payment occurring in a blockchain composed of a plurality of blocks according to an embodiment of the present invention determines a first block and a second block forming the generated branch point when a branch point occurs in the blockchain. And extracting transaction information included in the first block and the second block, and comparing the extracted transaction information with each other to determine whether a double payment has occurred in the blockchain.

상기 이중지불이 발생하였는지를 결정하는 단계는 상기 제1 블록에 포함된 거래정보들과 상기 제2 블록에 포함된 거래정보들을 상호 비교하여, 이전 거래정보가 동일하나 현재 거래정보가 상이한 제1 이중지불 거래정보들이 존재하는지 결정하는 단계, 그리고 상기 제1 이중지불 거래정보들이 존재하는지에 따라, 상기 블록체인 내에서 이중지불이 발생하였는지를 결정하는 단계를 포함한다.The step of determining whether the double payment has occurred is comparing the transaction information included in the first block with the transaction information included in the second block, and the first double payment with the same previous transaction information but different current transaction information. And determining whether there is transaction information, and determining whether a double payment has occurred in the blockchain according to whether the first double payment transaction information exists.

상기 제1 이중지불 거래정보들이 존재하는지에 따라, 상기 블록체인 내에서 이중지불이 발생하였는지를 결정하는 단계는 상기 제1 이중지불 거래정보들이 존재하는 경우, 상기 블록체인 내에서 이중지불이 발생하였다고 결정하고, 상기 제1 이중지불 거래정보들이 존재하지 않는 경우, 상기 제1 블록의 자식 블록인 제3 블록과 상기 제2 블록의 자식 블록인 제4 블록을 결정하고, 상기 제3 블록 및 상기 제4 블록에 포함된 거래정보들을 추출하고, 상기 제3 블록에 포함된 거래정보들과 상기 제4 블록에 포함된 거래정보들을 상호 비교하여, 이전 거래정보가 동일하나 현재 거래정보가 상이한 제2 이중지불 거래정보들이 존재하는지 결정하고, 상기 제2 이중지불 거래정보들이 존재하는지에 따라 상기 블록체인 내에서 이중지불이 발생하였는지를 결정한다.Depending on whether the first double-payment transaction information exists, the step of determining whether double-payment has occurred in the blockchain determines that double-payment has occurred in the blockchain when the first double-payment transaction information exists. When the first double payment transaction information does not exist, the third block which is a child block of the first block and the fourth block which is a child block of the second block are determined, and the third block and the fourth Second double payment by extracting transaction information included in the block and comparing transaction information included in the third block with transaction information included in the fourth block, the previous transaction information being the same but the current transaction information is different It is determined whether there is transaction information, and whether a double payment has occurred within the blockchain according to whether the second double payment transaction information exists.

상기 이중지불이 발생하였는지를 결정하는 단계는 상기 제1 블록 및 상기 제2 블록에 포함된 거래정보들 중 이전 거래정보를 포함하지 않는 최초 거래정보를 결정하는 단계를 더 포함하고, 상기 제1 이중지불 거래정보들이 존재하는지 결정하는 단계는 상기 제1 블록에 포함된 거래정보들과 상기 제2 블록에 포함된 거래정보들 중 상기 최초 거래정보를 제외한 거래정보들을 상호 비교한다.Determining whether the double payment has occurred further includes determining initial transaction information that does not include previous transaction information among the transaction information included in the first block and the second block, and the first double payment is performed. The step of determining whether there are transaction information compares the transaction information included in the first block with the transaction information excluding the first transaction information among the transaction information included in the second block.

상기 이중지불 탐지 방법은 상기 블록체인에 이중지불이 발생한 경우, 상기 블록체인을 구성하는 복수의 블록들을 공유하는 노드들에 경고메시지를 전송하는 단계를 더 포함한다.The double payment detection method further includes transmitting a warning message to nodes that share a plurality of blocks constituting the blockchain when double payment occurs in the blockchain.

본 발명에 따르면, 정상거래에 의한 거래정보가 블록에 포함된 후에 이중지불이 발생하는 경우 또는 정상거래에 의해 발생한 거래정보와 이중지불에 의해 발생한 거래정보가 서로 다른 블록에 포함되는 경우라도 블록체인 내 발생한 이중지불을 탐지할 수 있다.According to the present invention, even if the double payment occurs after the transaction information by the normal transaction is included in the block, or even if the transaction information generated by the normal transaction and the transaction information generated by the double payment are included in different blocks, the blockchain You can detect double payments that have occurred.

또한, 본 발명에 따르면, 이중지불이 발생한 경우 블록체인 시스템 내 모든 노드들에 해당 내용이 전파되는바, 블록체인 시스템에서 빠르게 조치하여 이중지불로 인한 피해를 감소시킬 수 있다.In addition, according to the present invention, when a double payment occurs, the contents are propagated to all nodes in the blockchain system, so it is possible to reduce the damage caused by double payment by quickly acting on the blockchain system.

도 1 및 도 2는 본 발명의 실시예에 따른 블록체인 이중지불 탐지 시스템이 구현되는 환경을 도시한 도면이다.
도 3은 이중지불 탐지 시스템의 구조를 설명하는 도면이다.
도 4는 블록에 포함된 거래정보들을 이용하여 이중지불 발생여부를 결정하는 방법을 설명하는 도면이다.
도 5는 이중지불 탐지 시스템이 블록체인에 발생한 이중지불을 탐지하는 방법을 설명하는 도면이다.
1 and 2 are diagrams illustrating an environment in which a blockchain double payment detection system according to an embodiment of the present invention is implemented.
3 is a view for explaining the structure of the double payment detection system.
4 is a diagram for explaining a method of determining whether a double payment is generated by using transaction information included in a block.
5 is a diagram for explaining a method of detecting a double payment occurring in the blockchain by the double payment detection system.

아래에서는 첨부한 도면을 참고로 하여 본 발명의 실시예에 대하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상세히 설명한다. 그러나 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시예에 한정되지 않는다. 그리고 도면에서 본 발명을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다.Hereinafter, exemplary embodiments of the present invention will be described in detail with reference to the accompanying drawings so that those skilled in the art to which the present invention pertains may easily practice. However, the present invention can be implemented in many different forms and is not limited to the embodiments described herein. In addition, in order to clearly describe the present invention in the drawings, parts irrelevant to the description are omitted, and like reference numerals are assigned to similar parts throughout the specification.

명세서 전체에서, 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있는 것을 의미한다.Throughout the specification, when a part “includes” a certain component, this means that other components may be further included rather than excluding other components, unless specifically stated otherwise.

도 1 및 도 2는 본 발명의 실시예에 따른 블록체인 이중지불 탐지 시스템이 구현되는 환경을 도시한 도면이다.1 and 2 are diagrams illustrating an environment in which a blockchain double payment detection system according to an embodiment of the present invention is implemented.

도 1을 참고하면, 블록체인 이중지불 탐지 시스템이 구현되는 환경(1000)은 블록체인 시스템을 구성하는 노드들(100) 및 이중지불 탐지 시스템(200)을 포함한다.Referring to FIG. 1, an environment 1000 in which a blockchain double payment detection system is implemented includes nodes 100 constituting the blockchain system and a double payment detection system 200.

노드들(100)은 P2P(Peer-to-Peer) 네트워크를 통해 상호 연결되고, 각 노드들(110 및 120)은 전자화폐를 통해 거래가 수행된 경우 거래정보가 포함된 블록을 각각 저장한다.The nodes 100 are interconnected through a peer-to-peer (P2P) network, and each of the nodes 110 and 120 stores a block including transaction information when a transaction is performed through electronic money.

구체적으로, 전자화폐를 통해 거래가 수행된 경우, 제1 노드(110)는 해당 거래와 관련된 거래정보를 수신하고, 해당 거래의 유효성을 검증한 후 유효한 경우 해당 거래정보를 포함하는 A 블록을 생성한다. 이후, 제1 노드(110)는 P2P 네트워크로 연결된 제2 노드(120)로 생성한 A 블록을 전송하며, 제2 노드(120)는 자신의 블록체인에 수신한 A 블록을 저장한다. 이를 통해, 노드들(100)은 동일한 거래정보를 포함하는 블록을 각각 자신의 블록체인에 저장하게 된다.Specifically, when a transaction is performed through electronic money, the first node 110 receives transaction information related to the transaction, verifies the validity of the transaction, and generates an A block containing the transaction information when valid. . Thereafter, the first node 110 transmits the generated A block to the second node 120 connected to the P2P network, and the second node 120 stores the received A block in its blockchain. Through this, the nodes 100 respectively store blocks containing the same transaction information in their own blockchain.

한편, 제2 노드(120)가 이중지불 공격자인 경우, 특정 거래정보를 포함하는 블록이 제1 노드(110) 및 제2 노드(120)에서 동시에 생성될 수 있다. 예를 들면, 제1 노드(110)가 A 블록에 포함된 현재 거래정보를 이전 거래정보로 포함하는 B-1 블록을 생성하였으나, 이중지불 공격자인 제2 노드(120)가 A 블록에 포함된 현재 거래정보를 이전 거래정보로 포함하되, B-1 블록과 다른 현재 거래정보를 가진 B-2 블록을 동시에 생성할 수 있다.Meanwhile, when the second node 120 is a double payment attacker, a block including specific transaction information may be simultaneously generated in the first node 110 and the second node 120. For example, the first node 110 has created a block B-1 including the current transaction information included in the A block as the previous transaction information, but the second node 120, which is a double payment attacker, is included in the A block. The current transaction information is included as the previous transaction information, but the B-1 block and the B-2 block having different current transaction information can be simultaneously generated.

이 경우, 제1 노드(110)가 생성한 B-1 블록은 제2 노드(120)로 전송되고, 제2 노드(120)가 생성한 B-2 블록은 제1 노드(110)로 전송되며, 각 노드들(110 및 120)은 수신한 블록을 일단 자신의 블록체인 내 A 블록의 자식 블록으로 연결하는바, 각 노드들(110 및 120)의 블록체인 내에서 이중지불에 따른 분기점이 발생한다.In this case, the B-1 block generated by the first node 110 is transmitted to the second node 120, and the B-2 block generated by the second node 120 is transmitted to the first node 110, , Each node 110 and 120 once connects the received block to a child block of the A block in its own blockchain, and a bifurcation occurs due to double payment in the blockchain of each node 110 and 120 do.

이와 같이, 이중지불이 발생하는 경우 블록체인 내에서 분기점이 발생하므로, 이중지불 탐지 시스템(200)은 블록체인 시스템의 블록체인 내에서 분기점이 발생한 경우, 해당 분기점을 형성하는 블록들을 결정하고, 결정한 블록들에 포함된 거래정보들을 상호 비교하여 블록체인에 이중지불이 발생하였는지를 결정할 수 있다.In this way, when a double payment occurs, a branch point occurs in the blockchain, so the double payment detection system 200 determines and determines blocks that form the corresponding branch point when the branch point occurs in the blockchain of the blockchain system. Transaction information included in blocks can be compared with each other to determine whether a double payment has occurred on the blockchain.

한편, 도 1에서는 이중지불 탐지 시스템(200)이 블록체인 시스템 내 노드들(100)의 외부에 구현된 독립적인 엔티티로 도시되었으나, 블록체인 시스템 내 각각의 노드 내에 구현될 수도 있다.Meanwhile, in FIG. 1, the double payment detection system 200 is illustrated as an independent entity implemented outside of the nodes 100 in the blockchain system, but may be implemented in each node in the blockchain system.

구체적으로, 도 2를 참고하면, 블록체인 이중지불 탐지 시스템이 구현되는 다른 환경(2000)에서, 제1 이중지불 탐지 시스템(300)은 제1 노드(110) 내에 구현되고 제2 이중지불 탐지 시스템(400)은 제2 노드(120) 내에 구현될 수 있다. 이 경우 제1 노드(110) 및 제2 노드(120)는 각각에 구비된 이중지불 탐지 시스템을 통해 하기 기능을 수행할 수 있다.Specifically, referring to FIG. 2, in another environment 2000 in which a blockchain double payment detection system is implemented, the first double payment detection system 300 is implemented in the first node 110 and the second double payment detection system The 400 may be implemented in the second node 120. In this case, the first node 110 and the second node 120 may perform the following functions through a dual payment detection system provided in each.

이하, 이중지불 탐지 시스템(200)이 블록체인에 발생한 이중지불을 탐지하는 기술에 대해 자세히 설명한다.Hereinafter, the technology for detecting the double payment generated in the blockchain by the double payment detection system 200 will be described in detail.

도 3은 이중지불 탐지 시스템의 구조를 설명하는 도면이고, 도 4는 블록에 포함된 거래정보들을 이용하여 이중지불 발생여부를 결정하는 방법을 설명하는 도면이다.FIG. 3 is a diagram illustrating the structure of a double payment detection system, and FIG. 4 is a diagram illustrating a method of determining whether a double payment is generated using transaction information included in a block.

도 3을 참고하면, 이중지불 탐지 시스템(200)은 분기점 검색부(210), 블록 결정부(220), 이중지불 발생 결정부(230) 및 경고메시지 전송부(240)를 포함한다.Referring to FIG. 3, the dual payment detection system 200 includes a branch search unit 210, a block determination unit 220, a double payment generation determination unit 230, and a warning message transmission unit 240.

분기점 검색부(210)는 블록체인을 구성하는 복수의 블록들의 구조를 분석하여, 블록체인 내에 발생한 분기점을 검색한다.The branch point search unit 210 analyzes the structure of a plurality of blocks constituting the blockchain, and searches for a branch point generated in the blockchain.

구체적으로, 분기점 검색부(210)는 블록체인 시스템 내 노드들(100)에 저장된 블록데이터에 접근하여 노드들(100)의 블록체인 구조를 확인하고, 블록체인 구조 내에 동일한 부모 블록에 서로 다른 자식 블록이 연결된 구조가 존재하는지 검색한다.Specifically, the branch point search unit 210 accesses the block data stored in the nodes 100 in the blockchain system to check the blockchain structure of the nodes 100, and different children in the same parent block in the blockchain structure Search for the existence of a structure to which blocks are connected.

블록 결정부(220)는 분기점이 검색된 경우, 검색된 분기점을 형성하는 제1 블록 및 제2 블록을 결정한다.When a branch point is searched, the block determination unit 220 determines a first block and a second block forming the searched branch point.

예를 들면, 도 1에서, 분기점 검색부(210)에 의해 블록체인 내 B-1 블록 및 B-2 블록에 의한 분기점이 검색된 경우, 블록 결정부(220)는 검색된 분기점에 직접 연결된 2 이상의 자식 블록들 즉, B-1 블록 및 B-2 블록을 검색된 분기점을 형성하는 제1 블록 및 제2 블록으로 각각 결정할 수 있다. 한편, 비록 도 1에서는 하나의 부모 블록에 2개의 서로 다른 자식 블록이 연결된 것으로 도시되었으나, 하나의 부모 블록에 3 이상의 서로 다른 자식 블록이 연결될 수도 있다.For example, in FIG. 1, when the branch point search by the B-1 block and the B-2 block in the block chain is searched by the branch point search unit 210, the block determination unit 220 is two or more children directly connected to the searched branch point. The blocks, that is, the block B-1 and the block B-2, may be determined as the first block and the second block, respectively, which form the searched fork. Meanwhile, although FIG. 1 shows that two different child blocks are connected to one parent block, three or more different child blocks may be connected to one parent block.

이중지불 발생 결정부(230)는 제1 블록 및 제2 블록에 포함된 거래정보들을 상호 비교하여, 블록체인에 이중지불이 발생하였는지 결정한다.The double payment generation determination unit 230 compares the transaction information included in the first block and the second block to determine whether a double payment has occurred in the blockchain.

도 4를 참고하면, 제1 블록 및 제2 블록은 각각 복수의 거래정보들을 포함한다. 상기 설명한 바와 같이, 각각의 거래정보는 전자화폐를 통해 거래가 수행된 경우 발생하고, 블록의 첫번째 거래정보가 아닌 한, 각 거래정보는 현재 수행된 거래에 의해 발생한 현재 거래정보뿐만 아니라, 현재 거래 이전에 발생한 거래에 의해 생성된 이전 거래정보를 포함한다.Referring to FIG. 4, the first block and the second block each include a plurality of transaction information. As described above, each transaction information occurs when a transaction is performed through electronic money, and unless it is the first transaction information of the block, each transaction information is not only the current transaction information generated by the currently performed transaction, but also the previous transaction Contains the previous transaction information generated by the transaction that occurred in.

예를 들면, 제1 블록이 전자화폐를 통한 사용자 A와 사용자 B 사이의 제1 거래 및 제1 거래 이후 발생한 전자화폐를 통한 사용자 B와 사용자 C 사이의 제2 거래에 대한 정보를 포함한다고 가정하면, 제1 블록은 제1 거래에 의해 발생한 제1 거래정보 및 제2 거래에 의해 발생한 제2 거래정보를 포함한다.For example, assuming that the first block includes information on the first transaction between user A and user B through electronic money and the second transaction between user B and user C through electronic money that occurred after the first transaction. , The first block includes first transaction information generated by the first transaction and second transaction information generated by the second transaction.

이 경우, 제1 거래는 제1 블록의 첫번째 거래로서 코인베이스 트랜잭션으로 정의될 수 있으며, 제1 거래정보는 제1 거래에 의해 발생한 거래정보를 현재 거래정보로 포함하되, 첫번째 거래이므로 이전 거래정보를 포함하지 않는다. 반면, 제2 거래정보는 제1 거래에 의해 발생한 거래정보를 이전 거래정보로 포함하고, 제2 거래에 의해 생성된 거래정보를 현재 거래정보로 포함한다.In this case, the first transaction may be defined as a coin-based transaction as the first transaction in the first block, and the first transaction information includes transaction information generated by the first transaction as current transaction information, but since it is the first transaction, previous transaction information Does not contain. On the other hand, the second transaction information includes the transaction information generated by the first transaction as previous transaction information, and the transaction information generated by the second transaction as current transaction information.

한편, 제1 블록 및 제2 블록에 포함된 거래 정보는 서로 다른 블록에 포함된 거래정보를 이전 거래정보로 포함할 수도 있다.Meanwhile, the transaction information included in the first block and the second block may include transaction information included in different blocks as previous transaction information.

예를 들면, 제1 블록에 포함된 제1 거래정보가 코인베이스 트랜잭션에 의해 발생한 거래정보이고 제2 거래정보가 사용자 A와 사용자 B 사이의 거래에 의해 발생한 거래정보이며, 제2 블록에 포함된 제1 거래정보가 코인베이스 트랜잭션에 의해 발생한 거래정보이고 제2 거래정보가 사용자 B와 사용자 C 사이의 거래에 의해 발생한 거래정보라 할 때, 사용자 B와 사용자 C 사이의 거래 이전에 사용자 A와 사용자 B 사이의 거래가 발생한 경우이므로, 제2 블록의 제2 거래정보는 제1 블록의 제2 거래정보를 이전 거래정보로 포함한다.For example, the first transaction information included in the first block is transaction information generated by a coin-based transaction, and the second transaction information is transaction information generated by a transaction between user A and user B, and included in the second block When the first transaction information is transaction information generated by a coin-based transaction and the second transaction information is transaction information generated by a transaction between user B and user C, user A and user before the transaction between user B and user C Since the transaction between B occurs, the second transaction information in the second block includes the second transaction information in the first block as previous transaction information.

여기서, 거래정보는 트랜잭션 ID(Transaction Identifier, TXID)를 지칭할 수 있다.Here, the transaction information may refer to a transaction ID (TXID).

우선, 이중지불 발생 결정부(230)는 제1 블록에 포함된 거래정보들과 제2 블록에 포함된 거래정보들을 상호 비교하여 이전 거래정보가 동일하나 현재 거래정보가 상이한 이중지불 거래정보들이 존재하는지 결정한다. First, the double payment generation determining unit 230 compares the transaction information included in the first block with the transaction information included in the second block, and there are double payment transaction information having the same previous transaction information but different current transaction information. Decide if.

이 경우, 이중지불 발생 결정부(230)는 제1 블록 및 제2 블록에 포함된 거래정보들 중 이전 거래정보를 포함하지 않는 최초 거래정보를 제외하고, 제1 블록에 포함된 거래정보들과 제2 블록에 포함된 거래정보들을 상호 비교할 수 있다. 예를 들면, 도 4에서, 이중지불 발생 결정부(230)는 제1 블록에 포함된 제1 거래정보 및 제2 블록에 포함된 제1 거래정보는 이전 거래정보를 포함하지 않는바, 이를 제외한 나머지 거래정보들을 상호 비교할 수 있다.In this case, the double payment generation determination unit 230 excludes the first transaction information that does not include the previous transaction information among the transaction information included in the first block and the second block, and the transaction information included in the first block. Transaction information included in the second block may be compared with each other. For example, in FIG. 4, the double payment generation determining unit 230 does not include the previous transaction information in the first transaction information included in the first block and the first transaction information included in the second block, except for this. The remaining transaction information can be compared with each other.

이후, 이중지불 발생 결정부(230)는 이중지불 거래정보들이 존재하는지에 따라 블록체인 내에서 이중지불이 발생하였는지 결정한다.Subsequently, the double payment generation determination unit 230 determines whether double payment has occurred in the blockchain according to whether double payment transaction information exists.

예를 들면, 도 4를 참고하면, 이중지불 발생 결정부(230)는 제1 블록에 포함된 제2 거래정보와 제2 블록에 포함된 제2 거래정보의 이전 거래정보가 "16eab763"으로 동일하고, 현재 거래정보가 각각 "496bac12c" 및 "59b9ea8"로 상이한 경우, 하나의 전자화폐로 2 이상의 거래를 수행 즉, 이중지불이 수행되어 이중지불 거래정보들이 존재하는 경우이므로, 블록체인 내에서 이중지불이 발생한 것으로 결정한다.For example, referring to FIG. 4, the double payment generation determining unit 230 has the same previous transaction information as “16eab763” between the second transaction information included in the first block and the second transaction information included in the second block. If the current transaction information is different from "496bac12c" and "59b9ea8", respectively, two or more transactions are performed in one electronic currency, that is, double payment is performed, so double payment transaction information exists, so double in the blockchain It is determined that payment has occurred.

한편, 도 4와 달리 제1 블록에 포함된 거래정보들과 제2 블록에 포함된 거래정보들을 상호 비교하였으나 이중지불 거래정보들이 존재하지 않는 경우, 이중지불 발생 결정부(230)는 제1 블록의 자식 블록인 제3 블록에 포함된 거래정보와 제2 블록의 자식 블록인 제4 블록에 포함된 거래정보에서 이중지불 거래정보들이 존재할 수 있음을 알리는 플래그를 설정할 수 있다.Meanwhile, unlike FIG. 4, when the transaction information included in the first block and the transaction information included in the second block are compared with each other, but there are no double payment transaction information, the double payment generation determination unit 230 blocks the first block. A flag indicating that double-payment transaction information may be present may be set in the transaction information included in the third block which is a child block of and the transaction information included in the fourth block which is the child block of the second block.

이후, 이중지불 발생 결정부(230)는 제3 블록에 포함된 거래정보들과 제4 블록에 포함된 거래정보들을 상호 비교하여, 이전 거래정보가 동일하나 현재 거래정보가 상이한 제2 이중지불 거래정보들이 존재하는지 결정하고, 상기 제2 이중지불 거래정보들이 존재하는지에 따라 상기 블록체인 내에서 이중지불이 발생하였는지 결정한다.Thereafter, the double payment generation determination unit 230 compares the transaction information included in the third block with the transaction information included in the fourth block, and the second double payment transaction with the same previous transaction information but different current transaction information. It is determined whether information exists, and whether the double payment has occurred in the blockchain according to whether the second double payment transaction information exists.

경고메시지 전송부(240)는 블록체인에 이중지불이 발생한 경우, 블록체인을 구성하는 복수의 블록들을 공유하는 노드들에 경고메시지를 전송한다.When a double payment occurs in the blockchain, the warning message transmission unit 240 transmits a warning message to nodes that share a plurality of blocks constituting the blockchain.

구체적으로, 경고메시지 전송부(240)는 블록체인에 이중지불이 발생한 경우 블록체인 시스템 내 노드들(100)에게 경고메시지를 전송할 수 있으며, 만일 이중지불 탐지 시스템(200)이 블록체인 시스템 내 노드 중 하나인 경우 이중지불 탐지 시스템(200)과 P2P 네트워크를 통해 상호 연결된 다른 노드들에게 경고메시지를 전송할 수 있다.Specifically, the warning message transmission unit 240 may transmit a warning message to the nodes 100 in the blockchain system when a double payment occurs on the blockchain, and if the double payment detection system 200 is a node in the blockchain system If it is one of the two, it can transmit a warning message to other nodes interconnected through the double payment detection system 200 and the P2P network.

도 5는 이중지불 탐지 시스템이 블록체인에 발생한 이중지불을 탐지하는 방법을 설명하는 도면이다.5 is a diagram for explaining a method of detecting a double payment occurring in the blockchain by the double payment detection system.

도 5를 참고하면, 이중지불 탐지 시스템(200)은 블록체인을 구성하는 복수의 블록들의 구조를 분석하여, 블록체인 내에 발생한 분기점을 검색한다(S100).Referring to FIG. 5, the double payment detection system 200 analyzes the structures of a plurality of blocks constituting the blockchain, and searches for a branch point generated in the blockchain (S100).

예를 들면, 도 1에서, 이중지불 탐지 시스템(200)은 블록체인 시스템을 구성하는 노드들(100)에 접속하여 해당 노드들의 블록체인의 구조를 분석하고, 블록체인 내에 발생한 분기점을 검색할 수 있다.For example, in FIG. 1, the double payment detection system 200 may access the nodes 100 constituting the blockchain system, analyze the structure of the blockchain of the nodes, and search for a branch point occurring in the blockchain. have.

다른 실시예에서, 도 2와 같이 만일 이중지불 탐지 시스템(300 및 400)이 블록체인 시스템 의 노드 내에 구현된 경우, 이중지불 탐지 시스템이 구현된 노드에 저장된 블록체인의 구조를 분석하여, 분기점을 검색할 수 있다.In another embodiment, as shown in FIG. 2, if the double payment detection systems 300 and 400 are implemented in a node of the blockchain system, the structure of the blockchain stored in the node in which the double payment detection system is implemented is analyzed to determine the branch point. You can search.

이중지불 탐지 시스템(200)은 블록체인 내에 분기점이 발생된 경우, 발생된 분기점을 형성하는 제1 블록 및 제2 블록을 결정한다(S110).The double payment detection system 200 determines the first block and the second block forming the generated bifurcation when a bifurcation occurs within the blockchain (S110).

이중지불 탐지 시스템(200)은 제1 블록 및 제2 블록에 포함된 거래정보들을 각각 추출한다(S120).The double payment detection system 200 extracts transaction information included in the first block and the second block, respectively (S120).

구체적으로, 상기 설명한 바와 같이, 제1 블록 및 제2 블록은 전자화폐를 통해 거래가 수행된 경우 생성된 거래정보를 하나 이상 포함하는바, 이중지불 탐지 시스템(200)은 분기점을 형성하는 복수의 블록들에 포함된 거래정보를 추출한다.Specifically, as described above, the first block and the second block include one or more transaction information generated when a transaction is performed through electronic money, and the double payment detection system 200 includes a plurality of blocks forming a branch point Extract the transaction information included in the field.

이중지불 탐지 시스템(200)은 추출한 거래정보들을 상호 비교하여, 블록체인에 이중지불이 발생하였는지를 결정한다.The double payment detection system 200 compares the extracted transaction information with each other and determines whether a double payment has occurred in the blockchain.

구체적으로, 이중지불 탐지 시스템(200)은 상기 제1 블록에 포함된 거래정보들과 상기 제2 블록에 포함된 거래정보들을 상호 비교하여, 이전 거래정보가 동일하나 현재 거래정보가 상이한 제1 이중지불 거래정보들이 추출된 거래정보들에 존재하는지 결정한다(S130). Specifically, the double payment detection system 200 compares the transaction information included in the first block with the transaction information included in the second block, so that the previous transaction information is the same but the current transaction information is different. It is determined whether the payment transaction information exists in the extracted transaction information (S130).

이 경우, 이중지불 탐지 시스템(200)은 제1 블록 및 제2 블록에 포함된 거래정보들 중 이전 거래정보를 포함하지 않는 최초 거래정보를 결정하고, 제1 블록에 포함된 거래정보들과 제2 블록에 포함된 거래정보들 중 최초 거래정보를 제외한 거래정보들만을 상호 비교할 수 있다.In this case, the double payment detection system 200 determines the initial transaction information that does not include the previous transaction information among the transaction information included in the first block and the second block, and the transaction information included in the first block Among the transaction information included in 2 blocks, only transaction information excluding the initial transaction information can be mutually compared.

만일 제1 이중지불 거래정보들이 존재하는 경우 이중지불이 수행된 경우이므로, 이중지불 탐지 시스템(200)은 블록체인 내에서 이중지불이 발생하였다고 결정하고, 블록체인을 구성하는 복수의 블록들을 공유하는 노드들(100)에 경고메시지를 전송한다(S131). 만일 이중지불 탐지 시스템(200)이 블록체인 시스템 내 노드 중 하나인 경우 이중지불 탐지 시스템(200)과 P2P 네트워크를 통해 상호 연결된 다른 노드들에게 경고메시지를 전송할 수 있다.If the first double-payment transaction information exists, since double-payment is performed, the double-payment detection system 200 determines that double-payment has occurred in the blockchain and shares a plurality of blocks constituting the blockchain. A warning message is transmitted to the nodes 100 (S131). If the double payment detection system 200 is one of the nodes in the blockchain system, a warning message may be transmitted to the double payment detection system 200 and other nodes interconnected through the P2P network.

만일 제1 이중지불 거래정보들이 존재하지 않는 경우, 이중지불 탐지 시스템(200)은 제1 블록의 자식 블록인 제3 블록과 제2 블록의 자식 블록인 제4 블록을 결정한다(S140).If the first double payment transaction information does not exist, the double payment detection system 200 determines a third block that is a child block of the first block and a fourth block that is a child block of the second block (S140).

이중지불 탐지 시스템(200)은 제3 블록 및 제4 블록에 포함된 거래정보들을 각각 추출한다(S150).The double payment detection system 200 extracts transaction information included in the third block and the fourth block, respectively (S150).

이중지불 탐지 시스템(200)은 제3 블록에 포함된 거래정보들과 제4 블록에 포함된 거래정보들을 상호 비교하여, 이전 거래정보가 동일하나 현재 거래정보가 상이한 제2 이중지불 거래정보들이 존재하는지 결정하고, 상기 제2 이중지불 거래정보들이 존재하는지에 따라 상기 블록체인 내에서 이중지불이 발생하였는지를 결정한다(S160).The double payment detection system 200 compares the transaction information included in the third block with the transaction information included in the fourth block, and there is second double payment transaction information having the same previous transaction information but different current transaction information. It is determined whether the double payment has occurred in the blockchain according to whether the second double payment transaction information exists (S160).

본 발명에 따르면, 정상거래에 의한 거래정보가 블록에 포함된 후에 이중지불이 발생하는 경우 또는 정상거래에 의해 발생한 거래정보와 이중지불에 의해 발생한 거래정보가 서로 다른 블록에 포함되는 경우라도 블록체인 내 발생한 이중지불을 탐지할 수 있다.According to the present invention, even if the double payment occurs after the transaction information by the normal transaction is included in the block, or even if the transaction information generated by the normal transaction and the transaction information generated by the double payment are included in different blocks, the blockchain You can detect double payments that have occurred.

또한, 본 발명에 따르면, 이중지불이 발생한 경우 블록체인 시스템 내 모든 노드들에 해당 내용이 전파되는바, 블록체인 시스템에서 빠르게 조치하여 이중지불로 인한 피해를 감소시킬 수 있다.In addition, according to the present invention, when a double payment occurs, the contents are propagated to all nodes in the blockchain system, so it is possible to reduce the damage caused by double payment by quickly acting on the blockchain system.

이상에서 본 발명의 실시예에 대하여 상세하게 설명하였지만 본 발명의 권리범위는 이에 한정되는 것은 아니고 다음의 청구범위에서 정의하고 있는 본 발명의 기본 개념을 이용한 당업자의 여러 변형 및 개량 형태 또한 본 발명의 권리범위에 속하는 것이다.Although the embodiments of the present invention have been described in detail above, the scope of the present invention is not limited thereto, and various modifications and improvements of those skilled in the art using the basic concept of the present invention defined in the following claims are also provided. It belongs to the scope of rights.

Claims (10)

블록체인에 발생한 이중지불을 탐지하는 시스템으로서,
상기 블록체인을 구성하는 각 블록에 서로 다른 2 이상의 자식 블록들이 연결되는 분기점을 검색하는 분기점 검색부,
분기점이 검색된 경우, 상기 검색된 분기점을 형성하는 제1 블록 및 제2 블록을 결정하는 블록 결정부,
상기 제1 블록 및 상기 제2 블록에 포함된 복수의 트랜잭션들 중 최초로 발생한 트랜잭션이 아닌 각 트랜잭션마다, 이전 트랜잭션의 출력 거래정보와 현재 트랜잭션의 입력 거래정보를 하나의 거래정보 쌍으로 추출하고, 상기 제1 블록에서 추출한 복수의 거래정보 쌍들과 상기 제2 블록에서 추출한 복수의 거래정보 쌍들을 비교하고, 이전 트랜잭션의 출력 거래정보가 동일하고 현재 트랜잭션의 입력 거래정보가 서로 다른 거래정보 쌍이 검색되면, 상기 블록체인에 이중지불이 발생한 것으로 결정하는 이중지불 발생 결정부, 그리고
상기 시스템 내 노드들 또는 상기 시스템과 네트워크로 연결된 노드들에게 상기 블록체인에 이중지불 발생을 알리는 경고메시지 전송부
를 포함하는 이중지불 탐지 시스템.
As a system that detects double payments in the blockchain,
A branch point search unit that searches for a branch point to which two or more different child blocks are connected to each block constituting the blockchain,
When a branch point is searched, a block determination unit that determines a first block and a second block forming the searched branch point,
For each transaction that is not the first transaction among the plurality of transactions included in the first block and the second block, the output transaction information of the previous transaction and the input transaction information of the current transaction are extracted as a pair of transaction information, and When a plurality of pairs of transaction information extracted in the first block are compared with a plurality of pairs of transaction information extracted in the second block, and a pair of transaction information having the same output transaction information of the previous transaction and different input transaction information of the current transaction is searched for, A double payment occurrence determination unit that determines that double payment has occurred in the blockchain, and
A warning message transmission unit to notify nodes in the system or nodes connected to the system of the network that the double payment has occurred in the blockchain
Double payment detection system comprising a.
삭제delete 제1항에서,
상기 이중지불 발생 결정부는
상기 제1 블록에서 추출한 거래정보 쌍들과 상기 제2 블록에서 추출한 거래정보 쌍들 중 이전 거래정보를 포함하지 않는 최초 거래정보 쌍을 제외하고, 상기 제1 블록에서 추출한 거래정보 쌍들과 상기 제2 블록에서 추출한 거래정보 쌍들을 상호 비교하는 이중지불 탐지 시스템.
In claim 1,
The double payment generation decision unit
In the second block and the transaction information pairs extracted in the first block, except for the first transaction information pair that does not include the previous transaction information among the transaction information pairs extracted in the first block and the transaction information pairs extracted in the second block Double payment detection system that compares extracted transaction information pairs with each other.
제1항에서,
상기 이중지불 발생 결정부는
이전 트랜잭션의 출력 거래정보가 동일하고 다음 트랜잭션의 입력 거래정보가 서로 다른 거래정보 쌍이 검색되지 않으면,
상기 제1 블록의 자식 블록인 제3 블록에 포함된 복수의 트랜잭션들과 상기 제2 블록의 자식 블록인 제4 블록에 포함된 복수의 트랜잭션들에 대해, 각 트랜잭션의 이전 트랜잭션의 출력 거래정보와 현재 트랜잭션의 입력 거래정보를 하나의 거래정보 쌍으로 추출하고, 상기 제3 블록에서 추출한 복수의 거래정보 쌍들과 상기 제4 블록에서 추출한 복수의 거래정보 쌍들을 비교하고, 이전 트랜잭션의 출력 거래정보가 동일하고 현재 트랜잭션의 입력 거래정보가 서로 다른 거래정보 쌍이 검색되면 상기 블록체인 내에서 이중지불이 발생한 것으로 결정하는, 이중지불 탐지 시스템.
In claim 1,
The double payment generation decision unit
If the transaction information pair of the previous transaction is the same and the input transaction information of the next transaction is different, a pair of transaction information is not searched.
For the plurality of transactions included in the third block which is a child block of the first block and the plurality of transactions included in the fourth block which is a child block of the second block, output transaction information of a previous transaction of each transaction and Extract the input transaction information of the current transaction into one transaction information pair, compare the multiple transaction information pairs extracted in the third block with the multiple transaction information pairs extracted in the fourth block, and output transaction information of the previous transaction A double payment detection system that determines that a double payment has occurred in the blockchain when a pair of transaction information having the same input transaction information of the same current transaction is searched.
삭제delete 이중지불 탐지 시스템이 복수의 블록들로 구성된 블록체인에 발생한 이중지불을 탐지하는 방법으로서,
상기 블록체인을 구성하는 각 블록에 서로 다른 2 이상의 자식 블록들이 연결되는 분기점을 검색하고, 상기 분기점을 형성하는 제1 블록 및 제2 블록을 결정하는 단계,
상기 제1 블록 및 상기 제2 블록에 포함된 복수의 트랜잭션들 중 최초로 발생한 트랜잭션이 아닌 각 트랜잭션마다, 이전 트랜잭션의 출력 거래정보와 현재 트랜잭션의 입력 거래정보를 하나의 거래정보 쌍으로 추출하는 단계,
상기 제1 블록에서 추출한 복수의 거래정보 쌍들과 상기 제2 블록에서 추출한 복수의 거래정보 쌍들을 비교하고, 이전 트랜잭션의 출력 거래정보가 동일하고 현재 트랜잭션의 입력 거래정보가 서로 다른 거래정보 쌍이 검색되면 상기 블록체인에 이중지불이 발생한 것으로 결정하는 단계, 그리고
상기 이중지불 탐지 시스템 내 노드들 또는 상기 이중지불 탐지 시스템과 네트워크로 연결된 노드들에게 상기 블록체인에 이중지불 발생을 알리는 단계
를 포함하는 이중지불 탐지 방법.
As a method of detecting a double payment occurring in a blockchain composed of a plurality of blocks by a double payment detection system,
Searching for a branch point to which two or more different child blocks are connected to each block constituting the blockchain, and determining a first block and a second block forming the branch point,
Extracting the output transaction information of the previous transaction and the input transaction information of the current transaction into one transaction information pair for each transaction that is not the first transaction among the plurality of transactions included in the first block and the second block,
When a plurality of pairs of transaction information extracted from the first block are compared with a plurality of pairs of transaction information extracted from the second block, and a pair of transaction information having the same output transaction information of the previous transaction and a different input transaction information of the current transaction is searched for Determining that a double payment has occurred on the blockchain, and
Notifying nodes in the dual payment detection system or nodes connected to the network with the dual payment detection system to notify the blockchain of the occurrence of double payment.
Double payment detection method comprising a.
삭제delete 제6항에서,
상기 이중지불이 발생한 것으로 결정하는 단계는
이전 트랜잭션의 출력 거래정보가 동일하고 다음 트랜잭션의 입력 거래정보가 서로 다른 거래정보 쌍이 검색되지 않으면,
상기 제1 블록의 자식 블록인 제3 블록에 포함된 복수의 트랜잭션들과 상기 제2 블록의 자식 블록인 제4 블록에 포함된 복수의 트랜잭션들에 대해, 각 트랜잭션의 이전 트랜잭션의 출력 거래정보와 현재 트랜잭션의 입력 거래정보를 하나의 거래정보 쌍으로 추출하고, 상기 제3 블록에서 추출한 복수의 거래정보 쌍들과 상기 제4 블록에서 추출한 복수의 거래정보 쌍들을 비교하고, 이전 트랜잭션의 출력 거래정보가 동일하고 현재 트랜잭션의 입력 거래정보가 서로 다른 거래정보 쌍이 검색되면 상기 블록체인 내에서 이중지불이 발생한 것으로 결정하는 이중지불 탐지 방법.
In claim 6,
The step of determining that the double payment has occurred is
If the transaction information pair of the previous transaction is the same and the input transaction information of the next transaction is different, a pair of transaction information is not searched.
For the plurality of transactions included in the third block which is a child block of the first block and the plurality of transactions included in the fourth block which is a child block of the second block, output transaction information of a previous transaction of each transaction and Extract the input transaction information of the current transaction into one transaction information pair, compare the multiple transaction information pairs extracted in the third block with the multiple transaction information pairs extracted in the fourth block, and output transaction information of the previous transaction A double payment detection method for determining that a double payment has occurred within the blockchain when a pair of transaction information having the same input transaction information of the current transaction is found.
제6항에서,
상기 이중지불이 발생한 것으로 결정하는 단계는
상기 제1 블록에서 추출한 거래정보 쌍들 및 상기 제2 블록에서 추출한 거래정보 쌍들 중 이전 거래정보를 포함하지 않는 최초 거래정보 쌍을 제외한 거래정보 쌍들을 상호 비교하는 이중지불 탐지 방법.
In claim 6,
The step of determining that the double payment has occurred is
A double payment detection method for comparing transaction information pairs except for the first transaction information pair that does not include the previous transaction information among the transaction information pairs extracted from the first block and the transaction information pairs extracted from the second block.
삭제delete
KR1020180064368A 2017-11-20 2018-06-04 System and method for detecting double-spending in block chain KR102118646B1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020170154923 2017-11-20
KR20170154923 2017-11-20

Publications (2)

Publication Number Publication Date
KR20190058255A KR20190058255A (en) 2019-05-29
KR102118646B1 true KR102118646B1 (en) 2020-06-03

Family

ID=66673082

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180064368A KR102118646B1 (en) 2017-11-20 2018-06-04 System and method for detecting double-spending in block chain

Country Status (1)

Country Link
KR (1) KR102118646B1 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113254538B (en) * 2021-06-17 2021-11-16 支付宝(杭州)信息技术有限公司 Method for executing transaction in block chain and block chain link point

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101660627B1 (en) * 2015-02-03 2016-09-28 한양대학교 에리카산학협력단 Method and apparatus for protecting transasction of encrypted currency
KR20170123766A (en) * 2016-04-29 2017-11-09 삼성에스디에스 주식회사 Terminal and system for preventing redundancy transaction, and method using the same

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
‘비트코인 개인간 전자화폐시스템 요약 설명’, SlideShare(2015.05.21. 게재)*
‘비트코인이 거래되는 원리를 쉽게 설명 한 글입니다 (김은찬님의 블로그)’, G글로벌경제신문(2014.08.11. 게재)*

Also Published As

Publication number Publication date
KR20190058255A (en) 2019-05-29

Similar Documents

Publication Publication Date Title
KR102454779B1 (en) Method and apparatus for distributed database enabling deletion of events
EP3399446B1 (en) Methods and apparatus for distributed database within a network
CN100413290C (en) Method for setting up notification function for route selection according to border gateway protocol
US20240111782A1 (en) Methods and apparatus for a distributed database within a network
CN108710681A (en) File acquisition method, device, equipment and storage medium
CN102984140A (en) Malicious software feature fusion analytical method and system based on shared behavior segments
US20230388136A1 (en) Merkle proof entity
KR102118646B1 (en) System and method for detecting double-spending in block chain
GB2588138A (en) Methods and devices for secure symbiotic mining
KR102152537B1 (en) Blockchain network for internet of things device
US20230076195A1 (en) Adapting connections of a layered network
Choi et al. Opera: Reasoning about continuous common knowledge in asynchronous distributed systems
Ren et al. Improving the performance of blockchain sharding protocols with collaborative transaction verification
CN103198065A (en) Optimization method for regular expression matching circuit
CN105991429B (en) A kind of route reselection determination method and device
RU2776826C2 (en) Methods and device for a distributed database that makes it possible to delete events
RU2778013C2 (en) Methods and device for a distributed database on the network
Walgampaya et al. Duplicate detection in pay-per-click streams using temporal stateful Bloom filters
WO2021239345A1 (en) Probabilistic membership test for blockchain transaction outputs
Afrose et al. Malicious node identification in MANETs based on false information
KR20230171628A (en) System and method for changing a working-shard of an account in blockchain network
WO2023104406A1 (en) Data structure for orphan transactions
Xu et al. A network clustering algorithm for sybil-attack resisting
CN116578787A (en) Online social media topic propagation collaborative loop detection method and equipment
CN117280669A (en) Method, system and computer program product for protocol resolution for network security

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
X091 Application refused [patent]
AMND Amendment
X701 Decision to grant (after re-examination)
GRNT Written decision to grant