KR102052835B1 - Recipient-oriented transaction verification method and apparatus for preventing double spending - Google Patents
Recipient-oriented transaction verification method and apparatus for preventing double spending Download PDFInfo
- Publication number
- KR102052835B1 KR102052835B1 KR1020180089040A KR20180089040A KR102052835B1 KR 102052835 B1 KR102052835 B1 KR 102052835B1 KR 1020180089040 A KR1020180089040 A KR 1020180089040A KR 20180089040 A KR20180089040 A KR 20180089040A KR 102052835 B1 KR102052835 B1 KR 102052835B1
- Authority
- KR
- South Korea
- Prior art keywords
- transaction
- public key
- receiver
- node
- recipient
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/40—Authorisation, e.g. identification of payer or payee, verification of customer or shop credentials; Review and approval of payers, e.g. check credit lines or negative lists
- G06Q20/401—Transaction verification
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/382—Payment protocols; Details thereof insuring higher security of transaction
- G06Q20/3829—Payment protocols; Details thereof insuring higher security of transaction involving key management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/385—Payment protocols; Details thereof using an alias or single-use codes
Landscapes
- Business, Economics & Management (AREA)
- Accounting & Taxation (AREA)
- Engineering & Computer Science (AREA)
- Finance (AREA)
- Strategic Management (AREA)
- Physics & Mathematics (AREA)
- General Business, Economics & Management (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
Abstract
Description
본 발명은 이중 지출 방지를 위한 수신자 지향 트랜잭션에 관한 것으로서, 보다 상세하게는 사설 블록체인에서 악의적 노드에 의해 이중 지불 문제를 방지할 수 있는 방법 및 장치에 관한 것이다.The present invention relates to a recipient-oriented transaction for preventing double spending, and more particularly, to a method and apparatus capable of preventing a double payment problem by a malicious node in a private blockchain.
비트코인은 신뢰할 수 없는 참가자가 신뢰할 수 있는 중앙의 제3자에게 릴레이하지 않고 보안 트랜잭션을 수행할 수 있게 하는 가상화폐로 처음 등장했다. Bitcoin first emerged as a cryptocurrency that allows untrusted participants to conduct secure transactions without relaying to a trusted central third party.
블록체인 기술은 분산 네트워크 환경에서 트랜잭션을 안전하게 유지하는 논리적인 방법이다. 그렇더라고 하더라도 참가자간에 토큰이 교환되는 거래 절차에는 약점이 있다.Blockchain technology is a logical way of keeping transactions secure in a distributed network environment. Even so, there is a weakness in the trading process where tokens are exchanged between participants.
비트코인과 같은 기존의 가상화폐에서는 디지털 서명을 사용하여 토큰의 소유자를 증명하고 트랜잭션의 송신자에게 보여준다. In traditional cryptocurrencies such as Bitcoin, digital signatures are used to prove the owner of the token and show it to the sender of the transaction.
그러나, 수신자가 토큰의 적법성을 확인하기 위해 개입할 수는 없다. 이러한 비대칭성으로 인해 디지털 서명은 이중 지불 문제를 적절하게 처리할 수 없다.However, the receiver cannot intervene to verify the legitimacy of the token. This asymmetry prevents digital signatures from properly addressing double payment issues.
예를 들어 송신자가 1개의 토큰을 소유하고 있고, 이전에 사용했던 토큰을 사용하여 송신자의 서명을 가진 여러 수신자에게 트랜잭션을 보내는 경우 여러 수신자들은 송신자가 트랜잭션을 보낸 것으로 확인할 수 있다. 수신자는 이것이 이중 지불 트랜잭션인지 여부를 알지 못한다. For example, if a sender owns one token and uses a previously used token to send a transaction to multiple recipients with the sender's signature, the multiple recipients can confirm that the sender sent the transaction. The receiver does not know whether this is a double payment transaction.
문제는 유효한 것으로 간주되는 거래만 분산 원장에 기록된다는 것이다. 또한 어떤 종류의 거래가 받아들여 져야하는지에 대한 기준이 없다.The problem is that only transactions that are considered valid are recorded in the distributed ledger. There is also no basis for what kind of transactions should be accepted.
따라서 수신자는 송신자 간의 트랜잭션이 올바른지 판단해야 한다.Therefore, the receiver must determine whether the transaction between senders is correct.
또한, 수신자가 거래가 원장에 기록되어 있음을 확인한 경우에도 더 긴 블록체인을 기본 유효 체인으로 인식하는 구조를 사용하여 트랜잭션을 무효화할 수 있는 가능성이 있다.In addition, even if the recipient has confirmed that the transaction is recorded in the ledger, there is a possibility of invalidating the transaction using a structure that recognizes the longer blockchain as the default valid chain.
이러한 문제는 읽기, 쓰기 및 합의 과정에서 권한이 부여된 사용자만 액세스 할 수 있도록 허용된 원장인 사설 블록체인에서 발생할 수 있다. 사설 블록체인에서는 토큰 트랜잭션뿐만 아니라 기업 간의 자산 트랜잭션도 발생한다. 사설 블록체인에 대한 공격을 막기 위해 여러 가지 연구가 이미 수행되었지만 수신자와 송신자의 비대칭성을 고려하지 않고 있다. This problem can occur in private blockchains, which are led by only authorized users during the read, write and consensus process. In private blockchains, not only token transactions, but also asset transactions between companies occur. Various studies have already been carried out to prevent attacks on private blockchains, but do not consider the asymmetry of the receiver and sender.
상기한 종래기술의 문제점을 해결하기 위해, 수신자와 송신자의 비대칭성을 고려한 사설 블록체인에서의 이중 지출 방지를 위한 수신자 지향 트랜잭션을 제안하고자 한다. In order to solve the above problems of the prior art, we propose a receiver-oriented transaction for preventing double spending in a private blockchain considering the asymmetry of the receiver and the sender.
상기한 바와 같은 목적을 달성하기 위하여, 본 발명의 일 실시예에 따르면, 컴퓨팅 장치인 수신자 노드의 블록체인에서 이중 지불 방지를 위한 수신자 지향 트랜잭션 검증 방법으로서, 송신자 노드가 트랜잭션 생성을 위한 내역을 입력하는 경우, 상기 수신자 노드가 수신자의 공개키를 이용하여 고유의 일회성 공개키를 생성하는 단계-상기 생성된 트랜잭션은 미승인 상태로 네트워크에 참여하는 노드로 전송됨-; 상기 수신자 노드가 상기 고유의 일회성 공개키를 이용하여 자신에게 전달되는 트랜잭션을 탐지하는 단계; 상기 수신자 노드가 수신자 개인키를 이용하여 상기 탐지된 트랜잭션을 유효성을 검증하는 단계; 상기 수신자 노드가 상기 유효성이 검증된 트랜잭션을 승인 상태로 변경하는 단계; 및 상기 수신자 노드가 상기 승인 상태로 변경된 트랜잭션의 네트워크에 참여하는 노드로의 전파 시점을 설정하는 단계를 포함하는 수신자 지향 트랜잭션 검증 방법이 제공된다. In order to achieve the above object, according to an embodiment of the present invention, as a receiver-oriented transaction verification method for preventing double payment in the blockchain of the receiver node, which is a computing device, the sender node inputs the details for creating a transaction The receiver node generates a unique one-time public key using the recipient's public key, wherein the generated transaction is sent to a node participating in the network in an unapproved state; Detecting, by the recipient node, a transaction delivered to it using the unique one-time public key; Validating, by the receiver node, the detected transaction using a receiver private key; The receiver node changing the validated transaction to an approved state; And setting a propagation point of time to the node participating in the network of the transaction in which the receiver node has changed to the approved state.
상기 고유의 일회성 공개키는 수신자의 계좌 정보 및 임의의 데이터를 믹싱하여 생성될 수 있다. The unique one-time public key may be generated by mixing the receiver's account information and any data.
상기 고유의 일회성 공개키는 상기 수신자 노드가 상기 탐지된 트랜잭션에 액세스하기 위한 스텔스 주소로 정의될 수 있다. The unique one-time public key may be defined as a stealth address for the recipient node to access the detected transaction.
상기 수신자 노드의 유효성 검증은 미리 설정된 암호화 알고리즘에 의해 상기 수신자 개인키를 계산하여 상기 트랜잭션의 공개키를 생성하고, 상기 생성된 트랜잭션의 공개키가 상기 수신자의 공개키와 일치하는지 여부를 판단하는 방법으로 수행될 수 있다. Validation of the receiver node generates a public key of the transaction by calculating the receiver private key by a predetermined encryption algorithm, and determines whether the public key of the generated transaction matches the public key of the receiver It can be performed as.
본 발명의 다른 측면에 따르면, 블록체인에서 이중 지불 방지를 위한 수신자 지향 트랜잭션 검증 장치로서, 송신자 노드가 생성한 트랜잭션 및 고유의 일회성 공개키를 수신하는 통신부-상기 고유의 일회성 공개키는 상기 수신자 지향 트랜잭션 검증 장치의 공개키를 이용하여 생성되며, 상기 트랜잭션은 미승인 상태로 수신됨-; 자신의 개인키를 이용하여 상기 탐지된 트랜잭션을 유효성을 검증하는 유효성 검증부; 및 유효성이 검증된 트랜잭션을 승인 상태로 변경하는 상태 변경부; 및 상기 승인 상태로 변경된 트랜잭션의 전파 시간을 설정하는 전파 시간 설정부를 포함하는 수신자 지향 트랜잭션 검증 장치가 제공된다. According to another aspect of the present invention, a receiver-oriented transaction verification apparatus for preventing double payment in a blockchain, the communication unit for receiving a transaction and a unique one-time public key generated by the sender node-the unique one-time public key is the recipient-oriented Generated using a public key of a transaction verification device, the transaction being received in an unapproved state; A validating unit for validating the detected transaction using its private key; And a state changer for changing the validated transaction to an approved state. And a propagation time setting unit for setting a propagation time of a transaction changed to the approved state.
본 발명에 따르면, 송신자의 트랜잭션 생성 시, 고유의 일회성 공개키를 생성하고, 권한 있는 수신자가 상기한 공개키를 이용하여 트랜잭션을 승인 상태로 변경하며, 승인 상태로 변경된 트랜잭션의 전파 시간을 설정할 수 있기 때문에 이중 지불 트랜잭션의 발생을 방지할 수 있다. According to the present invention, when generating a sender's transaction, a unique one-time public key can be generated, an authorized recipient can change the transaction to an approved state using the public key described above, and set a propagation time of the transaction changed to the approved state This prevents the occurrence of double payment transactions.
도 1은 본 발명의 바람직한 일 실시예에 따른 수신자 지향 트랜잭션 검증 시스템의 구성을 도시한 도면이다.
도 2는 본 발명의 바람직한 일 실시예에 따른 수신자 지향 트랜잭션 검증 과정의 흐름도이다.
도 3은 본 발명의 바람직한 일 실시예에 따른 수신자 노드의 구성을 도시한 도면이다. 1 is a diagram showing the configuration of a receiver-oriented transaction verification system according to an embodiment of the present invention.
2 is a flowchart of a receiver oriented transaction verification process according to an embodiment of the present invention.
3 is a diagram illustrating a configuration of a receiver node according to an exemplary embodiment of the present invention.
본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세하게 설명하고자 한다.As the present invention allows for various changes and numerous embodiments, particular embodiments will be illustrated in the drawings and described in detail in the written description.
그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.
However, this is not intended to limit the present invention to specific embodiments, it should be understood to include all modifications, equivalents, and substitutes included in the spirit and scope of the present invention.
도 1은 본 발명의 바람직한 일 실시예에 따른 수신자 지향 트랜잭션 검증 시스템의 구성을 도시한 도면이다. 1 is a diagram showing the configuration of a receiver-oriented transaction verification system according to an embodiment of the present invention.
도 1에 도시된 바와 같이, 본 실시예에 따른 시스템은 트랜잭션을 생성하는 송신자 노드(100), 송신자의 트랜잭션을 승인하고 전파 시간을 결정하는 수신자 노드(102) 및 네트워크 참여 노드(104-n)를 포함할 수 있다. As shown in FIG. 1, the system according to the present embodiment includes a
블록체인 네트워크에는 가상화폐의 발행, 지급, 및 결재하는 등의 트랜잭션(transaction)을 처리하기 위해 다수의 노드들이 참여할 수 있다. 예를 들어, 트랜잭션은, 가상화폐 거래 정보(입출금과 관련된 정보), 해시값 등을 포함하는 트랜잭션 식별자(transaction identifier)를 나타낼 수 있다.In a blockchain network, multiple nodes can participate to process transactions such as issuing, paying, and paying virtual currency. For example, a transaction may represent a transaction identifier including cryptocurrency transaction information (information related to deposit and withdrawal), a hash value, and the like.
송수신자 노드 및 네트워크 참여 노드들은, 데스크탑 PC, 노트북, 스마트폰, 태블릿 등이 이용되며, 블록체인 네트워크에 참여하기 위해 전용 어플리케이션 또는 웹 기반의 프로그램을 설치할 수 있다.The transceiver node and the network participating nodes are used as desktop PCs, laptops, smartphones, tablets, etc., and can install dedicated applications or web-based programs to participate in the blockchain network.
이하, 설명의 편의를 위해 송신자 노드는 '송신자'로, 수신자 노드는 '수신자'라 한다. Hereinafter, for convenience of description, the sender node is referred to as a 'sender' and the receiver node is referred to as a 'receiver'.
본 발명에 따른 수신자 지향 트랜잭션 검증은 블록에 트랜잭션을 쓰기 전에 수신자가 트랜잭션의 유효성을 직접 확인하고, 브로드캐스트(전파)할 수 있도록 한다. Receiver-oriented transaction verification in accordance with the present invention allows the receiver to directly verify and broadcast (propagate) the validity of a transaction before writing the transaction to a block.
이때, 스텔스 주소(stealth address)와 마스터 노드라는 2가지 개념이 포함된다. In this case, two concepts, a stealth address and a master node, are included.
스텔스 주소는 수신자의 공개키와 임의 데이터의 조합인 고유의 일회성 공개키인 수신자의 개인 정보를 보장한다. 여기서, 수신자의 공개키는 수신자의 계좌 정보와 같은 개인 정보일 수 있다. A stealth address guarantees the recipient's personal information, which is a unique one-time public key that is a combination of the recipient's public key and any data. Here, the public key of the receiver may be personal information such as account information of the receiver.
본 실시예에 따른 알고리즘에서 스텔스 주소는 수신자가 트랜잭션에 액세스하기 위한 주소를 나타내는데 사용된다. In the algorithm according to the present embodiment, the stealth address is used to indicate an address for the receiver to access the transaction.
송신자가 트랜잭션을 생성하면, 트랜잭션의 고유한 일회성 공기캐가 자동을로 생성된다. 고유한 일회성 공개키가 수신자에게 전달되면 수신자는 고유한 일회성 공개키를 이용하여 트랜잭션에 액세스할 수 있다. 트랜잭션 액세스를 위해 수신자의 개인키가 사용된다. When the sender creates a transaction, a unique one-time air catch of the transaction is automatically generated. When a unique one-time public key is delivered to the receiver, the receiver can access the transaction using the unique one-time public key. The receiver's private key is used for transactional access.
이후 트랜잭션이 승인될 수 있고, 트랜잭션이 수신자의 개인키를 통해 전파된다. The transaction can then be approved and the transaction propagated through the receiver's private key.
마스터 노드는 다른 일반 노드와 다른 특별한 작업을 수행한다. 여기서, 특별한 작업은 InstantSend와 같은 유료 서비스일 수 있다.The master node performs special tasks different from other normal nodes. Here, the special task may be a paid service such as InstantSend.
본 실시예에 따르면, 수신자는 자신의 트랜잭션을 위해 마스터 노드의 역할을 수행한다. 수신자는 트랜잭션을 검증한다. 수신자가 트랜잭션에 문제가 없다고 승인하면 트랜잭션이 락킹(lock)되고 승인된다. According to this embodiment, the receiver plays the role of a master node for his transaction. The receiver verifies the transaction. If the receiver acknowledges that the transaction is intact, the transaction is locked and approved.
따라서, 락킹된 리소스는 다른 수신자가 확인하는 동안 필터링된다. Thus, the locked resource is filtered while other recipients confirm.
본 발명은 락킹된 시점에서 송신자가 락킹 및 승인 시점을 예측할 수 없도록 하는 것이다. 즉, 승인 상태로 변경된 트랜잭션의 전파 시간을 수신자가 설정할 수 있도록 하여 악의적 노드에 의한 이중 지불 문제를 방지하는 것이다. The present invention is such that at the locked time the sender cannot predict the locked and grant time. In other words, the recipient can set the propagation time of the transaction changed to the approved state to prevent the double payment problem by the malicious node.
이하에서는, 스텔스 주소, 마스터 모드 및 본 실시예에 따른 동작 과정을 상세하게 설명한다.
Hereinafter, the stealth address, the master mode and the operation process according to the present embodiment will be described in detail.
- 스텔스 주소: 스텔스 주소는 임의의 데이터 및 수신자의 공개 읽기 키(public view key)와 공개 쓰기 키(public spend key)로 조합된 고유한 일회성 공개키를 사용한다. Stealth Address: A stealth address uses a unique one-time public key that combines arbitrary data and the recipient's public view key and public spend key.
모든 트랜잭션은 해당 트랜잭션에서 금액을 사용할 수 있는 사람과 같은 중요한 정보인 자신의 스텔스 주소를 자동으로 생성한다. Every transaction automatically generates its own stealth address, important information such as who can use the money in that transaction.
그런 다음, 수신자는 수신자의 개인키를 이용하여 상기한 정보를 탐지할 수 있다. The recipient can then detect the information using the recipient's private key.
- 마스터 노드: 마스터 노드는 InstantSend 및 PrivateSend에 대한 보증 및 중재 역할을 수행한다. 본 실시예에서 수신자가 마스터 노드의 역할을 수행한다. Master node: The master node plays the role of endorsement and arbitration for InstantSend and PrivateSend. In this embodiment, the receiver plays the role of a master node.
PrivateSend 작업은 수신 트랜잭션을 추적할 수 없도록 하기 위해, 유입되는 트랜잭션을 혼합한다. 마스터 노드는 InstantSend 작업을 통해 트랜잭션을 즉시 확인한다. The PrivateSend task mixes incoming transactions to make it impossible to track incoming transactions. The master node immediately acknowledges the transaction through the InstantSend operation.
그러나, 마스터 노드는 블록을 생성하지 않기 때문에, 트랜잭션은 추후 블록에 포함되어야 한다. However, because the master node does not create a block, the transaction must be included in a later block.
대신, 블록에 기록할 때, 특별한 표시로 이름을 지정한다. Instead, when writing to a block, name it with a special mark.
트랜잭션이 블록에 기록되기 전에 이중 지불을 방지하기 위해, 마스터 노드는 트랜잭션의 상태를 변경하고 락킹하여 블록체인 네트워크에서 리소스가 여러 번 지불되지 않도록 한다. To prevent double payments before a transaction is written to the block, the master node changes and locks the state of the transaction so that resources are not paid multiple times in the blockchain network.
본 실시예에서는 이러한 개념을 사용하여 수신자가 트랜잭션에 대한 확인을 수행할 수 있도록 수신자 지향 방법을 제안한다.
In this embodiment, a receiver-oriented method is proposed so that the receiver can perform a check on a transaction using this concept.
본 발명의 바람직한 일 실시예에 따르면, 수신자가 트랜잭션이 고정된 대기 시간 내에 유효하다고 판단한 경우에만 각 트랜잭션이 완료된다. According to one preferred embodiment of the present invention, each transaction is completed only if the receiver determines that the transaction is valid within a fixed wait time.
즉, 수신자가 트랜잭션을 승인 상태로 변경한 후 설정된 전파 시간 동안 대기하여 대기 시간 동안 유효하다고 판단된 경우에 트랜잭션이 완료된다. That is, the transaction is completed when the receiver changes the transaction to the approved state and waits for the set propagation time to determine that it is valid for the waiting time.
도 2는 본 발명의 바람직한 일 실시예에 따른 수신자 지향 트랜잭션 검증 과정의 흐름도이다. 2 is a flowchart of a receiver oriented transaction verification process according to an embodiment of the present invention.
도 2를 참조하면, 송신자(Sender A)는 기존의 거리 프로세스와 마찬가지로 거래 내역에 필요한 정보를 입력한다(단계 200). Referring to FIG. 2, the sender Sender A inputs information necessary for transaction details as in the existing distance process (step 200).
송신자는 수신자의 공개키를 이용하여 해당 트랜잭션에 대해 고유한 일회성 공개키를 생성한다(단계 202). The sender generates a unique one-time public key for the transaction using the recipient's public key (step 202).
송신자는 해당 트랜잭션을 승인되지 않은 상태로 생성한다(단계 204).The sender creates the transaction in an unauthorized state (step 204).
다음으로, 송신자는 수신자에게 고유의 일회성 공개키를 전달한다(단계 206).The sender then delivers a unique one-time public key to the receiver (step 206).
수신자는 단계 204에서 상기한 고유한 일회성 공개키를 사용하여 수신자에 전달되는 트랜잭션을 탐지한다(단계 208).The receiver detects a transaction delivered to the receiver using the unique one-time public key described above in step 204 (step 208).
수신자는 트랜잭션에 대한 유효성 검증을 수행한다(단계 210).The receiver performs validation of the transaction (step 210).
유효성이 검증되면 수신자는 수신자의 개인키를 이용하여 트랜잭션을 승인 상태로 변경한다(단계 212). Once validated, the receiver changes the transaction to the approved state using the recipient's private key (step 212).
여기서, 유효성 검증은 미리 설정된 암호화 알고리즘에 의해 수신자 개인키를 통해 공개키를 복호하는 과정일 수 있으며, 이를 통해 수신자는 트랜잭션에 액세스할 수 있게 된다. Here, the validation may be a process of decrypting the public key through the receiver private key by a predetermined encryption algorithm, through which the receiver can access the transaction.
트랜잭션 상태 변경 후, 수신자는 전파 시간을 설정한다(단계 214). After changing the transaction state, the receiver sets the propagation time (step 214).
설정된 전파 시간 이후 승인된 트랜잭션이 브로드캐스팅된다(단계 216).The approved transaction is broadcast after the set propagation time (step 216).
트랜잭션의 브로트캐스팅 이후 과정은 종래의 과정과 동일하다. The process after the broadcast of the transaction is the same as the conventional process.
도 3은 본 발명의 바람직한 일 실시예에 따른 수신자 노드의 구성을 도시한 도면이다. 3 is a diagram illustrating a configuration of a receiver node according to an exemplary embodiment of the present invention.
도 3에 도시된 바와 같이, 본 실시예에 따른 수신자 노드는 통신부(300), 유효성 검증부(302), 상태 변경부(304) 및 전파 시간 설정부(306)를 포함할 수 있다. As shown in FIG. 3, the receiver node according to the present embodiment may include a
통신부(300)는 송신자 노드(100)가 생성한 트랜잭션 및 고유의 일회성 공개키를 수신한다. 여기서, 고유의 일회성 공개키는 상기 수신자 지향 트랜잭션 검증 장치의 공개키를 이용하여 생성되며, 트랜잭션은 미승인 상태이다. The
통신부(300)는 아래에서와 같이 승인이 완료된 트랜잭션을 브로드캐스트하는 과정도 수행한다. The
유효성 검증부(302)는 자신의 개인키를 이용하여 상기 탐지된 트랜잭션을 유효성을 검증한다. The
상태 변경부(304)는 유효성이 검증된 트랜잭션을 승인 상태로 변경한다. The
전파 시간 설정부(306)는 승인 상태로 변경된 트랜잭션의 전파 시간을 설정한다.
The propagation
본 실시예에 따른 방법은 기존 블록체인과 유사하나, 수신자가 트랜잭션의 검증 및 전파 중에 개입한다. 본 실시예에 따르면, 수신자의 악의적인 지연을 방지하기 위해, 고정 대기 시간이 설정되어 트랜잭션을 초기화할 수 있다. 이러한 경우, 트랜잭션은 자동으로 송신자에 반환된다.
The method according to this embodiment is similar to the existing blockchain, but the receiver intervenes during the verification and propagation of the transaction. According to this embodiment, in order to prevent malicious delay of the receiver, a fixed wait time may be set to initiate a transaction. In this case, the transaction is automatically returned to the sender.
- 스텔스 주소 및 마스터 노드 적응-Stealth address and master node adaptation
본 실시예에 따르면, 모든 트랜잭션은 처음이 "미승인" 상태이므로 송신자는 수신자를 대기한다. 트랜잭션 및 전파 상태는 수신자의 개인키와 고유한 일회성 공개키를 사용하여 수행할 수 있다. According to this embodiment, the sender waits for the receiver since all transactions are initially "unapproved". Transaction and propagation state can be performed using the recipient's private key and a unique one-time public key.
수신자가 트랜잭션을 탐지하고, 제어할 수 있게 하는 고유한 일회성 주소 T를 얻는 과정은 다음과 같다. The process of obtaining a unique one-time address T that allows the receiver to detect and control the transaction is as follows.
1. 수신자의 공개키: 1. Recipient's public key:
2. 송신자의 공개키: 2. Sender's public key:
3. Diffie-Hellmann을 이용하여 공유키 S 존재: 3. Presence of shared key S using Diffie-Hellmann:
4. 스텔스 주소 및 개인키 : 및 4. Stealth Address And private key : And
5. 수신자는 트랜잭션을 탐지하기 위해 전송 주소 T를 얻는다: 5. The receiver gets the transport address T to detect the transaction:
여기서, 는 수신자의 개인키, 는 송신자의 개인키이며, H는 해쉬함수, H`는 또 다른 해쉬함수이다. here, Is the recipient's private key, Is the sender's private key, H is the hash function, and H` is another hash function.
수신자가 고유한 일회성 주소 T를 사용하여 트랜잭션에 액세스하려고 하면, 트랜잭션은 만약 수신자 개인키가 타원 곡선 암호화를 이용하여 수신자 개인키를 계산함에 의해 트랜잭션의 공개키를 생성할 수 있는지 여부를 체크한다. If the receiver attempts to access the transaction using a unique one-time address T, the transaction checks whether the receiver private key can generate the transaction's public key by calculating the recipient private key using elliptic curve encryption.
생성된 공개키가 트랜잭션의 공개키와 정확히 일치하면 수신자가 증명된다. If the generated public key exactly matches the transaction's public key, the receiver is authenticated.
즉, 생성된 주소 T를 통해, 트랜잭션 수신자만이 트랜잭션 과정을 처리할 권한을 부여하는 것이다.
In other words, through the generated address T, only the transaction receiver is authorized to process the transaction process.
- 승인 및 지연-Approval and delay
트랜잭션 수신자는 트랜잭션에서 사용된 리소스(자원)가 토큰과 같이 유효한지 여부를 결정하여 트랜잭션을 승인한다. 이를 통해 트랜잭션의 전파는 송신자가 아니라, 수신자로부터 시작된다. 본 실시예에 따르면, 송신자가 네트워크를 통해 여러 개의 이중 지불 트랜잭션을 분산시키는 것을 방지할 수 있다. The transaction receiver approves the transaction by determining whether the resource used in the transaction is valid, such as a token. This allows the propagation of a transaction to begin with the receiver, not the sender. According to this embodiment, it is possible to prevent the sender from distributing multiple double payment transactions over the network.
이때, 트랜잭션 확인 시간이 숨겨져 있어 정상 노드가 승인하자마자 협조적인 악성 노드가 이중 지불 트랜잭션을 전송하는 것이 어려워진다. 비록 승인 확인이 정확하다고 하더라도 수신자가 승인 후 전파 시간은 설정할 수 있도록 하는 시퀀스에 의해 이중 지불 방지가 이루어질 수 있다. At this time, since the transaction confirmation time is hidden, it is difficult for the cooperative malicious node to transmit the double payment transaction as soon as the normal node approves. Even if the acknowledgment is correct, double payment prevention can be achieved by a sequence that allows the recipient to set the propagation time after the acknowledgment.
상기한 본 발명의 실시예는 예시의 목적을 위해 개시된 것이고, 본 발명에 대한 통상의 지식을 가지는 당업자라면 본 발명의 사상과 범위 안에서 다양한 수정, 변경, 부가가 가능할 것이며, 이러한 수정, 변경 및 부가는 하기의 특허청구범위에 속하는 것으로 보아야 할 것이다. The embodiments of the present invention described above are disclosed for the purpose of illustration, and those skilled in the art having various ordinary knowledge of the present invention may make various modifications, changes, and additions within the spirit and scope of the present invention. Should be considered to be within the scope of the following claims.
Claims (7)
송신자 노드가 트랜잭션 생성을 위한 내역을 입력하는 경우, 상기 수신자 노드가 수신자의 공개키를 이용하여 고유의 일회성 공개키를 생성하는 단계-상기 생성된 트랜잭션은 미승인 상태로 네트워크에 참여하는 노드로 전송됨-;
상기 수신자 노드가 상기 고유의 일회성 공개키를 이용하여 자신에게 전달되는 트랜잭션을 탐지하는 단계;
상기 수신자 노드가 수신자 개인키를 이용하여 상기 탐지된 트랜잭션의 유효성을 검증하는 단계;
상기 수신자 노드가 상기 유효성이 검증된 트랜잭션을 승인 상태로 변경하는 단계; 및
상기 수신자 노드가 상기 승인 상태로 변경된 트랜잭션의 네트워크에 참여하는 노드로의 전파 시점을 설정하는 단계를 포함하는 수신자 지향 트랜잭션 검증 방법. A receiver-oriented transaction verification method for preventing double payment in the blockchain of a receiver node, which is a computing device,
When the sender node inputs details for creating a transaction, the receiver node generates a unique one-time public key by using the receiver's public key. The generated transaction is transmitted to a node participating in the network in an unapproved state. -;
Detecting, by the recipient node, a transaction delivered to it using the unique one-time public key;
The receiver node validating the detected transaction using a receiver private key;
The receiver node changing the validated transaction to an approved state; And
Establishing a propagation point to a node participating in the network of the transaction in which the recipient node has changed to the approved state.
상기 고유의 일회성 공개키는 수신자의 계좌 정보 및 임의의 데이터를 믹싱하여 생성되는 수신자 지향 트랜잭션 검증 방법. The method of claim 1,
And said unique one-time public key is generated by mixing account information and arbitrary data of a recipient.
상기 고유의 일회성 공개키는 상기 수신자 노드가 상기 탐지된 트랜잭션에 액세스하기 위한 스텔스 주소로 정의되는 수신자 지향 트랜잭션 검증 방법. The method of claim 2,
And wherein said unique one-time public key is defined as a stealth address for said recipient node to access said detected transaction.
상기 수신자 노드의 유효성 검증은 미리 설정된 암호화 알고리즘에 의해 상기 수신자 개인키를 계산하여 상기 트랜잭션의 공개키를 생성하고, 상기 생성된 트랜잭션의 공개키가 상기 수신자의 공개키와 일치하는지 여부를 판단하는 방법으로 수행되는 수신자 지향 트랜잭션 검증 방법. The method of claim 1,
Validation of the receiver node generates a public key of the transaction by calculating the receiver private key by a predetermined encryption algorithm, and determines whether the public key of the generated transaction matches the public key of the receiver -Oriented transaction verification method performed by the server.
송신자 노드가 생성한 트랜잭션 및 고유의 일회성 공개키를 수신하는 통신부-상기 고유의 일회성 공개키는 상기 수신자 지향 트랜잭션 검증 장치의 공개키를 이용하여 생성되며, 상기 트랜잭션은 미승인 상태로 수신됨-;
상기 고유의 일회성 공개키를 이용하여 자신에게 전달되는 것으로 탐지된 트랜잭션의 유효성을 자신의 개인키를 이용하여 검증하는 유효성 검증부; 및
유효성이 검증된 트랜잭션을 승인 상태로 변경하는 상태 변경부; 및
상기 승인 상태로 변경된 트랜잭션의 전파 시간을 설정하는 전파 시간 설정부를 포함하는 수신자 지향 트랜잭션 검증 장치. Recipient-oriented transaction verification device for preventing double payment in blockchain,
A communication unit for receiving a transaction generated by a sender node and a unique one-time public key, wherein the unique one-time public key is generated using the public key of the receiver-oriented transaction verification apparatus, and the transaction is received in an unapproved state;
A validator for verifying, using its private key, the validity of a transaction detected to be delivered to the user using the unique one-time public key; And
A state changer for changing the validated transaction to an approved state; And
And a propagation time setting unit for setting a propagation time of the transaction changed to the approved state.
상기 고유의 일회성 공개키는 수신자의 계좌 정보 및 임의의 데이터를 믹싱하여 생성되는 수신자 지향 트랜잭션 검증 장치. The method of claim 5,
And said unique one-time public key is generated by mixing account information and arbitrary data of a recipient.
상기 고유의 일회성 공개키는 상기 수신자 지향 트랜잭션 검증 장치가 상기 탐지된 트랜잭션에 액세스하기 위한 스텔스 주소로 정의되는 수신자 지향 트랜잭션 검증 장치.
The method of claim 6,
And the unique one-time public key is defined as a stealth address for the recipient-oriented transaction verification device to access the detected transaction.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020180089040A KR102052835B1 (en) | 2018-07-31 | 2018-07-31 | Recipient-oriented transaction verification method and apparatus for preventing double spending |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020180089040A KR102052835B1 (en) | 2018-07-31 | 2018-07-31 | Recipient-oriented transaction verification method and apparatus for preventing double spending |
Publications (1)
Publication Number | Publication Date |
---|---|
KR102052835B1 true KR102052835B1 (en) | 2020-01-08 |
Family
ID=69154452
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020180089040A KR102052835B1 (en) | 2018-07-31 | 2018-07-31 | Recipient-oriented transaction verification method and apparatus for preventing double spending |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR102052835B1 (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20210086378A (en) * | 2019-12-31 | 2021-07-08 | 주식회사 디에스알브이랩스 | System and Method For Preventing Fraud Transactions in Distributed Ledger |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20160050876A (en) * | 2014-10-31 | 2016-05-11 | 코나아이 (주) | Bitcoin dealing method using public key and private key stored in smart card |
KR20160095720A (en) * | 2015-02-03 | 2016-08-12 | 한양대학교 에리카산학협력단 | Method and apparatus for protecting transasction of encrypted currency |
KR101701131B1 (en) * | 2016-04-28 | 2017-02-13 | 주식회사 라피 | Data recording and validation methods and systems using the connecting of blockchain between different type |
WO2018043599A1 (en) * | 2016-08-30 | 2018-03-08 | ソラミツ株式会社 | Information sharing system |
-
2018
- 2018-07-31 KR KR1020180089040A patent/KR102052835B1/en active IP Right Grant
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20160050876A (en) * | 2014-10-31 | 2016-05-11 | 코나아이 (주) | Bitcoin dealing method using public key and private key stored in smart card |
KR20160095720A (en) * | 2015-02-03 | 2016-08-12 | 한양대학교 에리카산학협력단 | Method and apparatus for protecting transasction of encrypted currency |
KR101701131B1 (en) * | 2016-04-28 | 2017-02-13 | 주식회사 라피 | Data recording and validation methods and systems using the connecting of blockchain between different type |
WO2018043599A1 (en) * | 2016-08-30 | 2018-03-08 | ソラミツ株式会社 | Information sharing system |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20210086378A (en) * | 2019-12-31 | 2021-07-08 | 주식회사 디에스알브이랩스 | System and Method For Preventing Fraud Transactions in Distributed Ledger |
KR102358800B1 (en) | 2019-12-31 | 2022-02-07 | 주식회사 디에스알브이랩스 | System For Preventing Fraud Transactions in Distributed Ledger |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US12010138B2 (en) | Secure blockchain-based consensus | |
CN110771088B (en) | System and method for resolving security-related vulnerabilities arising in connection with blockchain external channels in the event of network failure | |
WO2020192743A1 (en) | Permission management method, permission validation method and related apparatuses | |
CN109478298B (en) | Method and system for realizing block chain | |
JP2022003536A (en) | Method implemented by block chain for digital content control and distribution | |
KR101660627B1 (en) | Method and apparatus for protecting transasction of encrypted currency | |
US20200127813A1 (en) | Method and system for creating a user identity | |
US20200193432A1 (en) | Method and system for settling a blockchain transaction | |
JP2021168171A (en) | Method and system for recording multiple transactions on block chain | |
CN110574059A (en) | Fast distributed consensus on blockchains | |
WO2018120121A1 (en) | Block chain permission control method, device, and node apparatus | |
US20170344983A1 (en) | BIXCoin: A Secure Peer-to-Peer Payment System Based on the Public Payments Ledger | |
CN110999204A (en) | Method and system for block chain implemented event lock encryption | |
TW202040391A (en) | Computer-implemented systems and methods for implementing transfers over a blockchain network | |
US20040088541A1 (en) | Digital-rights management system | |
US9100171B1 (en) | Computer-implemented forum for enabling secure exchange of information | |
US20200160340A1 (en) | Distributed fraud detection system within mesh networks | |
KR102627868B1 (en) | Method and system for authenticating data generated in blockchain | |
US20180287790A1 (en) | Authentication of a transferable value or rights token | |
US20150052066A1 (en) | Reconciling electronic transactions | |
KR102052835B1 (en) | Recipient-oriented transaction verification method and apparatus for preventing double spending | |
KR20200051135A (en) | Method for connecting dapp service with cryptocurrency wallet server and cryptocurrency wallet server therefor | |
EP4046326A1 (en) | Multi factor authentication using blockchain transactions | |
KR20210096287A (en) | Method and system for authenticating data generated on a blockchain using a signable contract | |
EP4148602A1 (en) | Fully distributed blockchain system and computer program for crypto asset transaction that allows participation of anonymous user while preventing illegal transaction |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |