KR102100760B1 - METHOD FOR MULTI-HOP TRANSACTION ROUTING USING SMART CONTRACT in payment channel - Google Patents

METHOD FOR MULTI-HOP TRANSACTION ROUTING USING SMART CONTRACT in payment channel Download PDF

Info

Publication number
KR102100760B1
KR102100760B1 KR1020190008887A KR20190008887A KR102100760B1 KR 102100760 B1 KR102100760 B1 KR 102100760B1 KR 1020190008887 A KR1020190008887 A KR 1020190008887A KR 20190008887 A KR20190008887 A KR 20190008887A KR 102100760 B1 KR102100760 B1 KR 102100760B1
Authority
KR
South Korea
Prior art keywords
path
requester
nodes
list
smart contract
Prior art date
Application number
KR1020190008887A
Other languages
Korean (ko)
Inventor
류재철
김근영
박준후
Original Assignee
충남대학교산학협력단
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 충남대학교산학협력단 filed Critical 충남대학교산학협력단
Application granted granted Critical
Publication of KR102100760B1 publication Critical patent/KR102100760B1/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/12Shortest path evaluation
    • H04L45/122Shortest path evaluation by minimising distances, e.g. by selecting a route with minimum of number of hops
    • 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/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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/22Alternate routing

Landscapes

  • Business, Economics & Management (AREA)
  • Engineering & Computer Science (AREA)
  • Accounting & Taxation (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Finance (AREA)
  • Strategic Management (AREA)
  • Physics & Mathematics (AREA)
  • General Business, Economics & Management (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

The present invention relates to a method for multi-hop transaction routing using a smart contract in a Payment channel. The method includes: (a) a step in which a requester generates a routing list in Protocol 1; (b) a step in which the requester requests a routing path based on the routing list; (c) a step in which the requester requests a checkRoutingNode (sender, receiver, path, value, time_lock, signature) message in relation to nodes included in each Path_Node in Protocol 2; (d) a step in which the nodes respond in Protocol 3 to the checkRoutingNode sent by the requester in Protocol 1; (e) a step in which the requester generates a Path_list by determining an available path in accordance with the response of the nodes in Protocol 4; and (f) a step in which the requester sends a transaction to a destination node by using one path on the Path_list. Quick transactions without delay are possible with the present invention.

Description

스마트 컨트랙트를 활용한 Payment channel에서의 멀티 홉 트랜잭션 라우팅 방법{METHOD FOR MULTI-HOP TRANSACTION ROUTING USING SMART CONTRACT in payment channel}METHOD FOR MULTI-HOP TRANSACTION ROUTING USING SMART CONTRACT in payment channel in a payment channel using a smart contract

본 발명은 스마트 컨트랙트를 활용한 Payment channel에서의 멀티 홉 트랜잭션 라우팅 방법에 관한 것으로써, 더욱 상세하게는 트랜잭션을 생성하기 전에 미리 라우팅 허가 여부 요청을 보냄으로써 트랜잭션 지연 및 fault-tolerance에 대한 대응을 할 수 있으며, 성능 또한 기존의 노드의 개수만큼의 선형시간의 지연율에서 상수시간으로 거래 지연율을 줄일 수 있는 스마트 컨트랙트를 활용한 Payment channel에서의 멀티 홉 트랜잭션 라우팅 방법에 관한 것이다.The present invention relates to a multi-hop transaction routing method in a payment channel using a smart contract, and more specifically, to respond to transaction delay and fault-tolerance by sending a request to allow routing in advance before creating a transaction. In addition, the performance also relates to a multi-hop transaction routing method in a payment channel using a smart contract that can reduce the transaction delay rate from a linear time delay rate to a constant time as many as the number of existing nodes.

블록체인은 크게 퍼블릭 블록체인과 프라이빗 블록체인으로 나눌 수 있다. Blockchain can be divided into public blockchain and private blockchain.

퍼블릭 블록체인의 경우 무허가형 블록체인이라고도 불리며 비트코인, 이더리움 등과 같이 참여자의 제한 없이 네트워크를 이용할 수 있는 블록체인이다.In the case of public blockchain, it is also called an unlicensed blockchain, and it is a blockchain that can use the network without limit of participants such as Bitcoin and Ethereum.

퍼블릭 블록체인 네트워크 상에서는 트랜잭션을 모두가 공유하고 검증한다.Transactions are shared and verified by everyone on the public blockchain network.

이와는 다르게 프라이빗 블록체인은 폐쇄형 블록체인이라고 불리며, 하나의 기관에서 특수하게 만든 블록체인이다. 프라이빗 네트워크에 참여하기 위해서는 블록체인 네트워크 상에서 미리 정해진 인증방식을 통해서 검증된 사람만이 블록체인 네트워크에 참여할 수 있다. Unlike this, a private blockchain is called a closed blockchain, and it is a blockchain specially made by one institution. In order to participate in the private network, only those who have been verified through a predetermined authentication method on the blockchain network can participate in the blockchain network.

비트코인과 이더리움 같은 퍼블릭 블록체인에는 확장성을 확보하기 어렵다는 문제가 존재한다. 기존의 중앙화된 서버 시스템과는 달리 블록체인 같은 P2P 시스템에서는 모든 노드들이 원장 기록에 대한 합의를 해야 한다. Public blockchains such as Bitcoin and Ethereum have a problem that it is difficult to secure scalability. Unlike the existing centralized server system, in a peer-to-peer system such as a blockchain, all nodes must agree on the ledger record.

모든 노드들의 합의 과정은 속도와 비용 측면에서 비효율적이며, 초당 처리할 수 있는 거래의 수를 제한하는 주요 요인이다. 이와 같이 탈중앙화와 확장성 사이에는 트레이드 오프가 존재하게 된다.The consensus process of all nodes is inefficient in terms of speed and cost, and is a major factor limiting the number of transactions that can be processed per second. As such, there is a trade-off between decentralization and scalability.

대표적인 퍼블릭 블록체인 중 하나인 비트코인의 경우 최대 7TPS이며, 이더리움의 경우에는 20TPS의 성능을 유지하고 있는 것을 확인할 수 있다. 비자의 경우 초당 20,000 TPS인 것을 감안하면 실생활의 트랜잭션을 처리하는 데 있어 많은 어려움이 존재할수 밖에없다.It can be seen that Bitcoin, one of the representative public blockchains, has a maximum of 7TPS and Ethereum maintains 20TPS. Considering that Visa is 20,000 TPS per second, there are many difficulties in processing real-life transactions.

블록체인에서 확장성을 증가시키기 위한 방법으로는 블록체인의 소스코드를 고쳐 확장성을 증가시키는 on-chain 솔루션과 블록체인 내부에서의 가치 이동이 아닌 블록체인 외부에서의 트랜잭션을 통해 거래를 진행하는 off-chain 솔루션이 존재한다. As a way to increase scalability in the blockchain, the on-chain solution that increases the scalability by modifying the source code of the blockchain and the transaction through the transaction outside the blockchain rather than the value movement inside the blockchain Off-chain solutions exist.

대표적인 on-chain 솔루션으로는 비트코인의 ‘세그윗’과 블록의 크기를 증가시키는 ‘비트코인 캐시’등이 있다. 또한 이더리움에서는 네트워크를 분할하여 병렬적으로 처리하는 방법인 샤딩에 대해 활발히 연구가 진행중이다.Typical on-chain solutions include ‘SegWit’ of Bitcoin and ‘Bitcoin Cash’ that increases the size of blocks. In addition, Ethereum is actively researching sharding, a method of dividing and processing networks in parallel.

off-chain 솔루션으로는 payment channel이 대표적이라 할 수 있는데, 비트코인의 ‘라이트닝 네트워크’와 이더리움의 ‘라이덴 네트워크’처럼 모든 거래 전송 내역을 블록체인에 기록하는 것이 아니라 최종 결과만 블록체인에 기록함으로써 확장성을 증가시키고 있다. As an off-chain solution, the payment channel is representative, but it does not record all transaction transmission history on the blockchain, such as Bitcoin's 'Lightning Network' and Ethereum's 'Raiden Network', but only the final result on the blockchain. By doing so, the scalability is increased.

블록체인 솔루션 중 off-chain network에 대한 설명과 기존의 거래 방식에 대해 좀 더 상세히 살펴본다.Let's take a closer look at the description of the off-chain network and the existing trading methods among blockchain solutions.

상술한 바와 같이 비트코인의 라이트닝 네트워크는 off-chain 솔루션을 사용하는 대표적인 payment channel이다. 라이트닝 네트워크에서는 모든 전송 내역을 비트코인 블록체인에 기록하는 것이 아니라, 최종 결과만 블록체인에 기록함으로서 확장성을 증가시키고 있다.As mentioned above, Bitcoin's Lightning Network is a representative payment channel that uses off-chain solutions. In the Lightning Network, scalability is increased by recording not only all transmissions in the Bitcoin blockchain, but only the final result in the blockchain.

라이트닝 네트워크에서는 다중키(Multi-Signature)와 시간 잠금 계약(Hashed Timelock Contract)를 활용하여 네트워크의 신뢰를 확보한다. 다중키를 이용하여 블록체인 상에서 해당 트랜잭션을 완료 및 변경을 통제하고, 시간 잠금 계약을 사용하여 한 사람이 자신에게 유리한 상태로 장부를 온체인화 할 수 없도록 방지한다.Lightning network secures network trust by using multi-signature and hash timelock contract. Control the completion and change of the transaction on the blockchain by using multiple keys, and prevent a person from being able to on-chain the book in an advantageous state to him by using a time lock contract.

마찬가지로 이더리움에서는 라이덴 네트워크를 사용하여, 도 1과 같은 흐름으로 Payment channel을 이용한 거래를 진행한다. Similarly, Ethereum uses a Leiden network to conduct transactions using the Payment channel in the flow shown in FIG. 1.

도 1에 도시된 바와 같이 먼저 스마트 컨트랙트를 통해 둘 간의 채널을 Open하게 되고, 일정 토큰을 예금(Deposit)한 뒤, 예금된 범위 내에서 거래가 진행된다. 각 사용자가 예금한 토큰 금액이 에스크로(escrow) 역할을 수행하게 된다. 둘 간의 거래가 끝나게 되면 채널을 Closed하고 서로가 받아야 할 토큰에 대한 정산과정이 이루어진다. 당사자가 디지털 서명인 균형 증명(Balance Proof)를 통해 자신이 받아야 할 토큰에 대해 명시를 해야 한다As illustrated in FIG. 1, first, a channel between the two is opened through a smart contract, and after a certain token is deposited, a transaction is performed within the deposited range. The amount of tokens deposited by each user acts as an escrow. When the transaction between the two ends, the channel is closed and the settlement process for tokens to be received by each other takes place. The party must specify the tokens he or she should receive through a digital signature, Balance Proof.

상기 Payment channel은 채널의 오픈된 두 사용자가 The payment channel is opened by two users of the channel.

대한민국 등록특허공보 제10-1835335호(2018.02.28)Republic of Korea Registered Patent Publication No. 10-1835335 (2018.02.28)

본 발명은 상술한 문제를 해결하고, 트랜잭션을 생성하기 전에 미리 라우팅 허가 여부 요청을 보냄으로써 트랜잭션 지연 및 fault-tolerance에 대한 대응을 할 수 있으며, 성능 또한 기존의 노드의 개수만큼의 선형시간의 지연율에서 상수시간으로 거래 지연율을 줄일 수 있는 스마트 컨트랙트를 활용한 Payment channel에서의 멀티 홉 트랜잭션 라우팅 방법의 제공을 목적으로 한다.The present invention solves the above-mentioned problems, and can respond to transaction delay and fault-tolerance by sending a request for routing permission in advance before generating a transaction, and performance is also a delay rate of linear time equal to the number of existing nodes. The goal is to provide a multi-hop transaction routing method in the Payment channel using a smart contract that can reduce the transaction delay rate in constant time.

상기 Payment channel은 채널이 오픈된 두 사용자간의 직접적인 거래(Direct Transfer)는 물론, Locked Transfer 기능을 제공하여 더욱 더 높은 확장성을 제공한다. The payment channel provides a higher scalability by providing a Locked Transfer function as well as direct transfer between two users whose channels are open.

도 2는 A에서 D까지의 Locked transfer 기능을 보여준다. A와B, B와C, C와D는 각각의 채널이 열려 있다. A는 D와의 직접적인 채널을 열지 않고, B→C→D를 거쳐 거래를 원하는 상황이다. 이럴 경우 A는 secret Key를 통해야만 풀 수 있는 Transaction을 생성하여 B로 보내게 된다. B에서는 A가 사용한 secret Key를 다시 사용하여 C에게 보내게 되고, C에서도 마찬가지 작업이 진행되게 된다. Locked Transaction을 전송받은 D는 처음 송신자인 A에게 Secret Request를 통해 secret key를 전송받게 된다. 전송받은 키를 이용하여 locked transaction을 해제시킨 뒤, 전송받은 역순으로 키를 전송하게 된다. locked transaction에는 timelock이 걸려 있어 secret key를 전송받지 못하거나 악의적인 노드로 인해 transaction이 전송되지 않을 경우에는 transaction이 만료되기 때문에, 사용자는 만료시간 전에 secret key를 통해 자신의 Balance Proof를 주장하여야 한다.  2 shows the locked transfer function from A to D. A and B, B and C, and C and D have their respective channels open. A does not open a direct channel with D, but wants to trade through B → C → D. In this case, A creates a transaction that can only be resolved through the secret key and sends it to B. In B, the secret key used by A is sent back to C, and the same operation is performed in C. The D that receives the Locked Transaction receives the secret key through A Secret Request to the first sender A. After the locked transaction is released using the transmitted key, the key is transmitted in the reverse order. The locked transaction is timelocked, so if the secret key is not transmitted or the transaction is not transmitted due to a malicious node, the transaction is expired, so the user must claim his Balance Proof through the secret key before the expiration time.

현재 라이덴 네트워크에서 사용하고 있는 라우팅 프로그램은 도 3과 같다. A는 D에게 3 Token을 보내는 것을 목표로 한다. 먼저 A는 스마트 컨트랙트를 통해 D와의 루트가 있다는 것을 확인한다. 현재 D로 가는 길은 A→B→C→D와 A→E→F→G→D가 있음을 알고 있다. The routing program currently used in the Leiden network is shown in FIG. 3. A aims to send 3 tokens to D. First, A confirms that there is a route with D through a smart contract. We know that there are currently A → B → C → D and A → E → F → G → D on the road to D.

A는 먼저 B를 통해 Locked Transaction을 전송한다. B의 입장에서는 C의 길과 E의 길이 존재하지만, B는 우선적으로 C로의 트랜잭션을 전송하게 된다. 스마트 컨트랙트 상에 C가 deposit 한 금액으로는 충분히 전송가능 하지만, 오프체인 상의 여러 거래로 인해 C에서는 실제로 가용한 토큰의 양은 2 Token 뿐이다. 3 Token을 전송해야 하지만, 금액이 부족하기 때문에 C에서는 refund를 시키게 된다.   A first sends a Locked Transaction through B. From the B's point of view, there are C's and E's, but B preferentially sends a transaction to C. The amount that C deposits on the smart contract can be sufficiently transferred, but due to various transactions on the off-chain, the amount of tokens actually available in C is only 2 tokens. 3 Tokens have to be sent, but the refund is made in C because the amount is insufficient.

그럼 다시 B에서는 C로의 길이 아닌 E로의 길을 선택하여 transaction을 보내게 된다. E로의 경로는 이상없이 D에게 무사히 전달된다.Then, in B again, select the path to E, not the path to C, and send the transaction. The path to E is safely transmitted to D without any problems.

현재 사용하는 프로토콜을 사용하여 A→B→E→F→G→D로의 전송이 완료되었다. The transfer from A → B → E → F → G → D is completed using the current protocol.

상술한 바와 같은 이전까지의 라우팅 네트워크들은 하기와 같은 문제점들을 가지고 있다.Previous routing networks as described above have the following problems.

보다 구체적으로, 중간 경로에 있는 노드들의 가용한 금액을 확인할 수 없으므로, 먼저 transaction을 보내게 된 후, 보낼 수 없는 경우 refund transfer를 하기 때문에 경로 상에서의 오버헤드가 발생하는 문제점이 있다.More specifically, since there is no way to check the available amount of nodes in the intermediate path, there is a problem in that overhead occurs on the path because the transaction is sent first and then, if not, refund transfer is performed.

또한, FT(Fault-Tolerance)로 인한 장애 발생시, time lock에만 의존할 수 없기 때문에 transaction에 지연이 생기는 문제점이 있다.In addition, there is a problem in that a delay occurs in a transaction when a failure due to a fault-tolerance (FT) cannot be relied on only for time lock.

마지막으로, 반송된 네트워크를 통해 주변 노드들의 잔액을 유추할 수 있는 문제점이 있다.Lastly, there is a problem in that the balance of neighboring nodes can be inferred through the returned network.

결과적으로 상술한 바와 같은 문제점들로 인해 라우팅 과정에 있어 지연이나 반송과정에서의 오버헤드 및 주변 노드의 잔액을 유추할 수 있다는 문제점이 있다. As a result, due to the above-described problems, there is a problem in that the delay in the routing process or the overhead in the conveying process and the remaining node balance can be inferred.

상술한 문제점들을 해결하기 위한 본 발명에 따른 스마트 컨트랙트를 활용한 Payment channel에서의 멀티 홉 트랜잭션 라우팅 방법은 (a) 리퀘스터가 프로토콜 1에서 라우팅 리스트를 생성하는 단계; (b) 상기 리퀘스터가 상기 라우팅 리스트를 바탕으로 라우팅 경로를 요청하는 단계; (c) 상기 리퀘스터가 프로토콜 2에서 각각의 Path_Node에 포함된 노드들에 checkRoutingNode(sender, receiver, path, value, time_lock, signature) 메시지를 요청하는 단계; (d) 상기 프로토콜 1에서 상기 리퀘스터가 보낸 checkRoutingNode에 대해 상기 노드들은 프로토콜 3에서 응답하는 단계; (e) 상기 리퀘스터가 프로토콜 4에서 상기 노드들의 응답에 따라 가용 가능한 경로를 결정하여 Path_list를 생성하는 단계; 및 (f) 상기 리퀘스터가 상기 Path_list 중 어느 하나의 경로로 목적지 노드에 트랜잭션을 보내는 단계;를 포함하는 것을 특징으로 한다.A multi-hop transaction routing method in a payment channel utilizing a smart contract according to the present invention for solving the above-mentioned problems includes: (a) a requester generating a routing list in protocol 1; (b) the requester requesting a routing route based on the routing list; (c) the requester requesting a checkRoutingNode (sender, receiver, path, value, time_lock, signature) message to nodes included in each Path_Node in protocol 2; (d) in the protocol 1, the nodes respond to the checkRoutingNode sent by the requester in protocol 3; (e) the requester determines an available path according to the responses of the nodes in protocol 4 to generate a Path_list; And (f) the requester sending a transaction to a destination node through any one of the Path_lists.

또한, 상술한 문제점들을 해결하기 위한 본 발명에 따른 스마트 컨트랙트를 활용한 Payment channel에서의 멀티 홉 트랜잭션 라우팅 방법 중 (a)단계에서, 상기 리퀘스터는 payment channel의 스마트 컨트랙트에서 라우팅 경로에 있는 path를 찾기 위해 getPathList(source, destination)을 실행시키는 것을 특징으로 한다.In addition, in step (a) of the multi-hop transaction routing method in the payment channel using the smart contract according to the present invention for solving the above-mentioned problems, the requester sets the path in the routing path in the smart contract of the payment channel. It is characterized by executing getPathList (source, destination) to find.

또한, 상술한 문제점들을 해결하기 위한 본 발명에 따른 스마트 컨트랙트를 활용한 Payment channel에서의 멀티 홉 트랜잭션 라우팅 방법 중 (a)단계에서 상기 리퀘스터는 상기 Path_Node를 찾기 위해 shortest hop 방식으로 가장 hop이 적은 노드들을 우선적으로 리스트를 생성하는 것을 특징으로 한다.In addition, in step (a) of the multi-hop transaction routing method in the payment channel using the smart contract according to the present invention for solving the above-mentioned problems, the requester has the shortest hop in the shortest hop method to find the Path_Node. It is characterized by creating a list of nodes preferentially.

또한, 상술한 문제점들을 해결하기 위한 본 발명에 따른 스마트 컨트랙트를 활용한 Payment channel에서의 멀티 홉 트랜잭션 라우팅 방법에서 상기 리퀘스터는 상기 (e)단계에서 Path_list 생성을 못한 경우 홉의 수를 증가시킨 후, 상기 노드들에 checkRoutingNode 메시지를 요청하는(c)단계와 상기 노드들이 응답하는(d) 단계를 반복수행하여 Path_list 생성을 하는 것을 특징으로 한다.In addition, in the multi-hop transaction routing method in the payment channel using the smart contract according to the present invention for solving the above-mentioned problems, the requester increases the number of hops if the path_list generation in step (e) fails In this case, Path_list is generated by repeatedly performing (c) requesting a checkRoutingNode message to the nodes and (d) responding to the nodes.

또한, 상술한 문제점들을 해결하기 위한 본 발명에 따른 스마트 컨트랙트를 활용한 Payment channel에서의 멀티 홉 트랜잭션 라우팅 방법 중, (d)단계에서, 상기 노드들은 리더에게 받은 value의 값과 receiver와 직접적으로 연결된 채널에서 자신이 가용할 수 있는 돈과의 비교를 통해 응답하는 것을 특징으로 한다.In addition, among the multi-hop transaction routing method in the payment channel using the smart contract according to the present invention for solving the above-mentioned problems, in step (d), the nodes are directly connected to the receiver and the value of the value received from the leader. It is characterized by responding through comparison with the money available on the channel.

또한, 상술한 문제점들을 해결하기 위한 본 발명에 따른 스마트 컨트랙트를 활용한 Payment channel에서의 멀티 홉 트랜잭션 라우팅 방법에서 상기 노드들은 가용 가능한 금액에 대한 정보 없이 True 또는 False 만으로 응답 메시지를 전달하는 것을 특징으로 한다.In addition, in the multi-hop transaction routing method in the payment channel using the smart contract according to the present invention for solving the above-mentioned problems, the nodes are characterized in that they transmit a response message only with True or False without information on the available amount. do.

또한, 상술한 문제점들을 해결하기 위한 본 발명에 따른 스마트 컨트랙트를 활용한 Payment channel에서의 멀티 홉 트랜잭션 라우팅 방법에서 상기 리퀘스터는 상기 (d)단계에서 복수의 노드들 중, 하나라도 응답이 오지 않거나, 상기 False라고 응답한 경우 상기 Path_list에 PUSH가 불가능한 것을 특징으로 한다.In addition, in the multi-hop transaction routing method in the payment channel using the smart contract according to the present invention for solving the above-mentioned problems, the requester does not receive any response from one of the plurality of nodes in step (d) or , If the response is False, PUSH is impossible in the Path_list.

또한, 상술한 문제점들을 해결하기 위한 본 발명에 따른 스마트 컨트랙트를 활용한 Payment channel에서의 멀티 홉 트랜잭션 라우팅 방법에서 상기 리퀘스터는 상기 (e)단계에서 복수의 노드들 중, 응답이 오지 않은 노드들을 제거한 후, Path_list를 생성하는 것을 특징으로 한다.In addition, in the multi-hop transaction routing method in the payment channel using the smart contract according to the present invention to solve the above-mentioned problems, the requester, among the plurality of nodes in step (e), the nodes that do not respond After removal, it is characterized by generating a Path_list.

본 발명에 따른 스마트 컨트랙트를 활용한 Payment channel에서의 멀티 홉 트랜잭션 라우팅 방법은 장애노드 및 가용한 금액의 부족으로 인한 트랜잭션 지연 문제를 해결할 수 있는 효과가 있다.The multi-hop transaction routing method in the payment channel using the smart contract according to the present invention has an effect of solving the transaction delay problem due to the failure node and the lack of available amount.

특히, 본 발명에 따른 스마트 컨트랙트를 활용한 Payment channel에서의 멀티 홉 트랜잭션 라우팅 방법은 사전에 라우팅 경로 확인 요청을 보냄으로써 트랜잭션 지연율을 상수시간으로 유지할 수 있는 효과가 있다.In particular, the multi-hop transaction routing method in the payment channel using the smart contract according to the present invention has an effect of maintaining the transaction delay rate at a constant time by sending a routing path confirmation request in advance.

도 1은 이더리움에서 라이덴 네트워크를 사용하여 Payment channel을 이용한 거래 진행을 도시한 도면이다.
도 2는 라이덴 네트워크 멀티홉 프로세스를 도시한 도면이다.
도 3은 현재 라이덴 네트워크에서 사용하고 있는 라우팅 프로토콜을 도시한 도면이다.
도 4는 본 발명에 따른 스마트 컨트랙트를 활용한 Payment channel에서의 멀티 홉 트랜잭션 라우팅 방법을 설명하기 위한 도면이다.
도 5는 홉(hop)이 3인 라우팅 리스트(routing List)를 도시한 도면이다.
1 is a view showing the transaction progress using the Payment channel using the Leiden network in Ethereum.
2 is a diagram illustrating a Leiden network multi-hop process.
3 is a diagram illustrating a routing protocol currently used in a Leiden network.
4 is a diagram illustrating a multi-hop transaction routing method in a payment channel using a smart contract according to the present invention.
FIG. 5 is a diagram showing a routing list with three hops.

본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면을 참조하여 상세하게 설명하도록 한다. 그러나 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 각 도면을 설명하면서 유사한 참조부호를 유사한 구성요소에 대해 사용하였다.The present invention can be applied to various changes and can have various embodiments, and specific embodiments will be described in detail with reference to the drawings. However, this is not intended to limit the present invention to specific embodiments, and should be understood to include all modifications, equivalents, and substitutes included in the spirit and scope of the present invention. In describing each drawing, similar reference numerals are used for similar components.

제1, 제2, A, B 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 본 발명의 권리범위를 벗어나지 않으면서 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다. 및/또는 이라는 용어는 복수의 관련된 기재 항목들의 조합 또는 복수의 관련된 기재 항목들 중의 어느 항목을 포함한다.Terms such as first, second, A, and B may be used to describe various components, but the components should not be limited by the terms. The terms are used only for the purpose of distinguishing one component from other components. For example, without departing from the scope of the present invention, the first component may be referred to as the second component, and similarly, the second component may also be referred to as the first component. The term and / or includes a combination of a plurality of related description items or any one of a plurality of related description items.

어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급될 때에는 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다. When a component is said to be "connected" to or "connected" to another component, it should be understood that other components may be directly connected or connected to the other component, but may exist in the middle. something to do. On the other hand, when a component is said to be "directly connected" or "directly connected" to another component, it should be understood that no other component exists in the middle.

본 출원에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.The terms used in the present application are only used to describe specific embodiments, and are not intended to limit the present invention. Singular expressions include plural expressions unless the context clearly indicates otherwise. In this application, terms such as “include” or “have” are intended to indicate that a feature, number, step, operation, component, part, or combination thereof described in the specification exists, one or more other features. It should be understood that the existence or addition possibilities of fields or numbers, steps, operations, components, parts or combinations thereof are not excluded in advance.

다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥 상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.Unless defined otherwise, all terms used herein, including technical or scientific terms, have the same meaning as commonly understood by a person skilled in the art to which the present invention pertains. Terms, such as those defined in a commonly used dictionary, should be interpreted as having meanings consistent with meanings in the context of related technologies, and should not be interpreted as ideal or excessively formal meanings unless explicitly defined in the present application. Does not.

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

이하, 본 발명에 따른 바람직한 실시예를 첨부된 도면을 참조하여 상세하게 설명한다.Hereinafter, preferred embodiments of the present invention will be described in detail with reference to the accompanying drawings.

도 4는 본 발명에 따른 스마트 컨트랙트를 활용한 Payment channel에서의 멀티 홉 트랜잭션 라우팅 방법을 설명하기 위한 도면이다.4 is a diagram illustrating a multi-hop transaction routing method in a payment channel using a smart contract according to the present invention.

도 4에 도시된 바와 같이, 본 발명에 따른 스마트 컨트랙트를 활용한 Payment channel에서의 멀티 홉 트랜잭션 라우팅 시스템은 리퀘스터(100), 블록체인(200)을 포함한다.As shown in FIG. 4, the multi-hop transaction routing system in the payment channel using the smart contract according to the present invention includes a requester 100 and a blockchain 200.

라우팅 요청을 원하는 상기 리퀘스터(100)는 스마트 컨트랙트를 통해 상기 블록체인(200)에 저장되어 있는 라우팅 경로를 파악한다. The requester 100 that desires a routing request grasps a routing path stored in the blockchain 200 through a smart contract.

상기 스마트 컨트랙트에는 최종 목적지 노드까지 도착하는 여러 경로가 존재하므로 라우팅 목록을 구성한다. 구성한 목록 중에서도 deposit 한 금액이 많을지라도, 라우팅 요청을 한 노드가 충분한 토큰이 가지고 있는지 헤아릴 수 없으므로 경로에 해당되는 모든 노드에게 가용한 토큰이 있는지에 대한 요청을 보낸다.Since there are several routes to the final destination node in the smart contract, a routing list is constructed. Even if there is a large amount of deposit among the configured list, it is impossible to know whether a node that has made a routing request has enough tokens, so a request is sent to all nodes in the route for available tokens.

아래 [표 1] 개재된 바와 같이 Protocol 1은 상기 리퀘스터(100)가 라우팅 리스트를 생성하고, 생성된 리스트를 바탕으로 해당 노드에게 라우팅 가능 여부를 물어보는 과정이다.As shown in [Table 1] below, Protocol 1 is a process in which the requester 100 generates a routing list and asks a corresponding node whether it is possible to route based on the generated list.

Figure 112019008422763-pat00001
Figure 112019008422763-pat00001

라우팅 요청을 하기 전 상기 리퀘스터(100)는 payment channel 스마트 컨트랙트에서 라우팅 경로에 있는 path를 찾기 위해 getPathList(source, destination)을 실행시킨다. 여기서 사용하는 인자는 다음과 같다 1) src_node, 2) des_node로 이루어져 있다.Before making a routing request, the requester 100 executes getPathList (source, destination) to find the path in the routing path in the payment channel smart contract. The arguments used here are as follows: 1) src_node, 2) des_node.

Path_Node를 찾기 위해서는 가장 우선적으로 shortest hop 방식으로 Path_Node를 구축한다. 요청받은 source와 destination까지 연결되어 있는 노드를 찾는 과정에서, 가장 hop이 적은 노드들을 우선적으로 리스트를 생성하는 것이 바람직하다.To find Path_Node, Path_Node is constructed with the shortest hop method first. In the process of finding the node connected to the requested source and destination, it is desirable to first generate the list of the nodes with the least hops.

예를 들어, 도 5의 경우 A->B->C->D, 두 노드를 거쳐 목적지로 가게 되는데, 이때의 홉은 3이라고 할 수 있다.  For example, in the case of FIG. 5, A-> B-> C-> D, the destination is passed through two nodes, and the hop at this time may be called 3.

이 과정을 통해 hop_counter의 값과 path_counter의 값이 나오게 된다.Through this process, the value of hop_counter and path_counter are displayed.

path_counter 값 경우에는 도 5와 같이 3의 hop을 가진 path가 A->B->C->D, A->E->F->D, A->G->H->D, A->I->J->D이므로 path_counter는 4이다. 즉 3의 hop을 가진 경로의 개수라고 할 수 있다. In the case of the path_counter value, the path with 3 hops is A-> B-> C-> D, A-> E-> F-> D, A-> G-> H-> D, A- as shown in FIG. > I-> J-> D, so path_counter is 4. That is, it can be said to be the number of paths with 3 hops.

추후 checkRoutingNode를 통해 가능한 경로를 하나라도 얻지 못할 경우에는 홉의 수를 증가시킨 후, 다시 path를 검색한다. 해당 hop_counter와 path_counter를 통해 Path_Node 리스트를 구축하게 된다. 이때 각각의 노드는 Path_Node[path_counter][hop_counter]로 구분할 수 있다. In the future, if one of the possible routes cannot be obtained through checkRoutingNode, the number of hops is increased, and then the path is searched again. Path_Node list is constructed through the corresponding hop_counter and path_counter. At this time, each node can be classified as Path_Node [path_counter] [hop_counter].

도 5에서 노드 B의 경우 Path_Node[0][0], 노드 C는 Path_Node[0][1], 노드 D는 Path_Node[0][2]로 나타낼 수 있다. 좀 더 자세하게 G의 경우에는 Path_Node[2][0], J의 경우에는 Path_Node[3][1]이다.In FIG. 5, for Node B, Path_Node [0] [0], Node C may be represented by Path_Node [0] [1], and Node D may be represented by Path_Node [0] [2]. In more detail, it is Path_Node [2] [0] for G, and Path_Node [3] [1] for J.

Path_Node에 관한 리스트를 만들고 난 후, 아래 [표 2]의 protocol 2와 같이 상기 리퀘스터(100)는 각각의 Path_Node에 속해 있는 노드들에게 checkRoutingNode(sender, receiver, path, value, time_lock, signature) 메시지를 요청한다.After creating a list of Path_Node, as shown in protocol 2 of [Table 2], the requester 100 checkRoutingNode (sender, receiver, path, value, time_lock, signature) message to nodes belonging to each Path_Node Request.

Figure 112019008422763-pat00002
Figure 112019008422763-pat00002

이 메시지를 통해 각각의 노드에게 해당 경로를 통해 가용한 토큰이 있는지에 대한 정보를 알 수 있다. 여기서 사용하는 인자는 다음과 같다.Through this message, it is possible to know whether each node has tokens available through the corresponding path. The arguments used here are as follows.

heckRoutingNode의 인자는 다음과 같다. 1) 상기 리퀘스터(100) 2) path_Node[i][j], 3) path_Node[i][j+1], 4) value, 5)limit_time, 으로 이루어져 있다. (i는 0보다 크며 path_coutner보다 작다. j는 0보다 크며 hop_cotuner-1보다 작아야 한다) The parameters of heckRoutingNode are as follows. 1) the requester (100) 2) path_Node [i] [j], 3) path_Node [i] [j + 1], 4) value, 5) limit_time. (i is greater than 0 and less than path_coutner. j is greater than 0 and must be less than hop_cotuner-1)

3) path 설정의 경우 receiver가 path_Node[i][j]일 경우에는 path는 항상 path_Node[i][j+1]로 정하였는데, 이는 같은 경로상의 다음 노드에 해당하기 때문이다. 3) In case of path setting, when receiver is path_Node [i] [j], path is always set to path_Node [i] [j + 1], because it corresponds to the next node on the same path.

도 5에서의 A는 B,C,D 경로, E,F,D, 경로, G,H,D경로, I,J,D 경로 총 4가지의 경로에 있는 노드에게 모두 해당 메시지를 보내야 한다. A in FIG. 5 should send a corresponding message to all nodes in four paths, B, C, D path, E, F, D, path, G, H, D path, and I, J, D path.

receiver가 B일 경우에는 path_Node[i][j+1]인 노드, 즉 C에 대한 채널에서의 가용 금액을 물어봐야 하고, receiver가 C일 경우에는 path_Node[i][j+1], 즉 최종 경로인 D에 대한 채널에서의 가용 금액을 물어보는 형태가 된다.If the receiver is B, we need to ask for the available amount in the channel for path_Node [i] [j + 1], ie C, and if receiver is C, path_Node [i] [j + 1], ie the final path In the form of asking for the amount of money available in the channel for phosphorus D.

또한, 5)에서 정의한 시간 안에 응답이 오지 않을 경우에는 통신 장애가 있는 노드라 판단하여 False로 판단한다. 상기 리퀘스터(100)는 해당 시간까지의 각 노드들에 대한 응답을 기다린다.In addition, if there is no response within the time defined in 5), it is determined to be a node with communication failure and judged as False. The requester 100 waits for a response to each node until the corresponding time.

상기 리퀘스터(100)의 요청을 받은 노드들은 해당 경로에 가용한 돈을 밝히지 않은 채, 요청한 금액보다 큰 금액을 가지고 있는지에 대한 결과를 상기 리퀘스터(100)에게 응답한다. 응답할 때에는 각 노드가 원하는 수수료에 대한 정보까지 함께 보내게 된다.Nodes that have received the request from the requester 100 respond to the requester 100 with a result as to whether or not they have an amount greater than the requested amount without revealing the money available on the corresponding path. When responding, each node sends information about the desired fee.

상기 리퀘스터(100)에게 가용한 금액은 밝히지 않고 가능 여부만 알리기 때문에 개인 채널간의 프라이버시는 유지된다.Privacy is maintained between individual channels because the requester 100 is not informed of the available amount but only availability.

아래의 [표 3]에서 protocol 3은 protocol 1에서 상기 리퀘스터(100)가 보낸 checkRoutingNode에 대한 응답을 해주는 메시지이다. 그러므로 메시지는 각 Path_Node로부터 상기 리퀘스터(100)에게로 전달된다.In Table 3 below, protocol 3 is a message that responds to checkRoutingNode sent by the requester 100 in protocol 1. Therefore, a message is transmitted from each Path_Node to the requester 100.

Figure 112019008422763-pat00003
Figure 112019008422763-pat00003

각각의 노드들은 리더에게 받은 value의 값과 receiver와 직접적으로 연결된 채널에서 자신이 가용할 수 있는 돈과의 비교를 통해 응답을 하게 된다. 응답 메시지로는 가용한 금액에 대한 정보 없이 True, False으로만 나타낸다. Each node responds by comparing the value of the value received from the leader with the money available on the channel directly connected to the receiver. As a response message, only True and False are displayed without information on the available amount.

equester는 라우팅 목록에 있는 리스트 중 리스트 내의 모든 노드의 허가 응답을 기다린다. 한 노드라도 가용한 토큰이 부족하거나, 응답이 돌아오지 않는 경우에는 라우팅 경로에서 제거를 한다. 모든 노드에게 응답이 온 경로 중에서 sender는 Path_List를 구축한다.The equester waits for an acknowledgment from all the nodes in the list in the routing list. If there is not enough token available for one node or no response is returned, it is removed from the routing path. The sender constructs Path_List among the paths that all nodes have responded to.

아래의 [표 4]에서 Protocol 4는 상기 리퀘스터(100)에서 가용한 Path를 결정한다. In Table 4 below, Protocol 4 determines the available paths in the requester 100.

Figure 112019008422763-pat00004
Figure 112019008422763-pat00004

일정 시간이 지난 후, Path_Node의 응답 중 Ture라고 한 노드의 리스트를 모아 Path_List로 생성한다. After a certain time, a list of nodes called Ture in the response of Path_Node is collected and generated as Path_List.

Path_Node[i][j] 중 i는 같은 경로에 있는 path_counter를 나타내는 노드들이라고 볼 수 있고, j는 hop_counter를 나타내는 경로에서의 홉을 나타낸다. Among Path_Node [i] [j], i can be regarded as nodes representing path_counter in the same path, and j represents hop in the path representing hop_counter.

예를 들어, 도 5에서 A→ B→ C→ D의 경우, B는 Path_Node[0][0], C는 Path_Node[0][1]을 나타낸다. 같은 path_coutner를 가지는 Path_Node의 경우 모두 True의 응답이 와야 Path_List에 A→ B→ C→ D를 PUSH 할 수 있다. 만약 같은 path_counter를 사용하는 노드 들 중 하나라도 응답이 오지 않거나, False라고 응답할 경우에는 Path_List에 PUSH 할 수 없다. Fault Tolerance를 사전에 막기 위해 응답이 오지 않는 노드로 판단하고 제거한다. 상기 리퀘스터(100)는 가능한 모든 Path_List를 생성하여 리스트를 구축한다.For example, in the case of A → B → C → D in FIG. 5, B represents Path_Node [0] [0] and C represents Path_Node [0] [1]. In the case of Path_Nodes having the same path_coutner, all of True's response must be followed to ASH B → C → D PUSH in Path_List. If one of the nodes using the same path_counter does not respond, or if it responds False, PUSH cannot be performed in Path_List. In order to prevent Fault Tolerance in advance, it is judged and eliminated as a node with no response. The requester 100 constructs a list by generating all possible Path_Lists.

상기 리퀘스터(100)는 새로 구성한 Path_List 중 가장 효율적인 경로로 목적지 노드에 트랜잭션을 보낸다.The requester 100 sends a transaction to the destination node using the most efficient path among the newly constructed Path_List.

기존의 라우팅 프로토콜의 경우, 라우팅 경로에서의 노드가 부족한 금액을 갖고 있었을 경우에는 refund transaction을 통해 다른 경로로 메시지를 보내야 한다. In the case of the existing routing protocol, if the node in the routing path had a insufficient amount, a message must be sent to another path through a refund transaction.

이처럼 부족한 노드를 만날 때 마다 refund transcation 및 다른 경로로 메시지를 보내야 하므로 최대 시간복잡도는 선형시간이라고 할 수 있다. 그에 비해 본 발명에 따른 프로토콜의 경우에는 refund transcation이 발생할 확률이 매우 낮으므로 상수시간으로 정의할 수 있다.Whenever such a shortage node is encountered, a refund transcation and a message must be sent through a different path, so the maximum time complexity is linear time. In contrast, in the case of the protocol according to the present invention, since the probability of occurrence of refund transcation is very low, it can be defined as a constant time.

또한, Fault Tolerance 마찬가지로, 장애 노드가 존재할 경우에는 해시 타임 락 컨트롤에서 정의한 시간만큼 지연율이 생길 수밖에 없다. 장애노드가 많아질수록 지연율도 높아지는데, 이런 상황 또한 시간복잡도는 선형시간의 지연율을 가지고 있다. 그에 비해 본 발명에 따른 프로토콜의 경우, 처음 라우팅 가능 요청을 보낼 때의 시간만 기다리면 되기 때문에 장애노드의 경우에도 상수시간으로 해결이 가능하다.In addition, like Fault Tolerance, when a fault node exists, a delay rate is inevitably caused by the time defined by the hash time lock control. The delay rate increases as the number of fault nodes increases. In this situation, the time complexity also has a delay rate of linear time. On the other hand, in the case of the protocol according to the present invention, since only the time required to send the first routable request needs to be waited, it can be solved with a constant time even in the case of a failure node.

상기 리퀘스터(100)가 미리 메시지를 통해 가용한 금액을 물어볼 때, Off-line 상태의 노드의 경우에는 응답을 할 수 없으므로 라우팅 경로에서 제외된다.When the requester 100 asks for the amount of money available through a message in advance, the node in the off-line state cannot be answered, and thus is excluded from the routing path.

그러므로 자연적으로 Fault-Tolerance에 대한 대응도 가능하다.Therefore, it is possible to respond to Fault-Tolerance naturally.

각각의 노드는 requester로부터 요청된 라우팅 프로토콜 메시지로부터 자신의 가용한 금액을 밝히지 않고, 라우팅 가능 여부에 대한 응답만 하기 때문에 각각의 채널에 가용한 금액에 대한 정보는 알 수 없기 때문에 프라이버시가 유지된다.Since each node does not reveal its available amount from the routing protocol message requested from the requester, and only responds to the availability of routing, privacy is maintained because information about the amount available for each channel is unknown.

상기 리퀘스터(100)는 노드들로부터 거래 가능 여부에 대한 응답을 받고 리스트를 작성한다. 그 리스트 중 한 경로로 트랜잭션을 보내기 때문에, 거래가 문제 없이 이루어질 것이라는 확정을 할 수 있다. 또한, 지연 없이 신속하게 거래가 가능하다.The requester 100 receives a response from the nodes as to whether a transaction is possible and creates a list. By sending a transaction on one of the lists, you can confirm that the transaction will be successful. In addition, it is possible to trade quickly without delay.

이상의 설명은 본 발명의 기술 사상을 예시적으로 설명한 것에 불과한 것으로, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 사람이라면 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 다양한 수정 및 변형이 가능할 것이다. 따라서, 본 발명에 개시된 실시예들은 본 발명의 기술 사상을 한정하기 위한 것이 아니라 설명하기 위한 것이고, 이러한 실시예에 의하여 본 발명의 기술 사상의 범위가 한정되는 것은 아니다. 본 발명의 보호 범위는 아래의 청구범위에 의하여 해석되어야 하며, 그와 동등한 범위 내에 있는 모든 기술 사상은 본 발명의 권리범위에 포함되는 것으로 해석되어야 할 것이다The above description is merely illustrative of the technical spirit of the present invention, and those skilled in the art to which the present invention pertains may make various modifications and variations without departing from the essential characteristics of the present invention. Therefore, the embodiments disclosed in the present invention are not intended to limit the technical spirit of the present invention, but to explain, and the scope of the technical spirit of the present invention is not limited by these embodiments. The scope of protection of the present invention should be interpreted by the claims below, and all technical spirits within the scope equivalent thereto should be interpreted as being included in the scope of the present invention.

100 : 리퀘스터
200 : 블록체인
100: requester
200: blockchain

Claims (8)

(a) 리퀘스터가 프로토콜 1에서 라우팅 리스트를 생성하는 단계;
(b) 상기 리퀘스터가 상기 라우팅 리스트를 바탕으로 라우팅 경로를 요청하는 단계;
(c) 상기 리퀘스터가 프로토콜 2에서 각각의 Path_Node에 포함된 노드들에 checkRoutingNode(sender, receiver, path, value, time_lock, signature) 메시지를 요청하는 단계;
(d) 상기 프로토콜 2에서 상기 리퀘스터가 보낸 checkRoutingNode 메시지 요청에 대해 상기 노드들은 프로토콜 3에서 응답하는 단계;
(e) 상기 리퀘스터가 프로토콜 4에서 상기 노드들의 응답에 따라 가용 가능한 경로를 결정하여 Path_list를 생성하는 단계; 및
(f) 상기 리퀘스터가 상기 Path_list 중 어느 하나의 경로로 목적지 노드에 트랜잭션을 보내는 단계;를 포함하고,
상기 (d)단계에서,
상기 노드들은 리더에게 받은 value의 값과 receiver와 직접적으로 연결된 채널에서 자신이 가용할 수 있는 돈과의 비교를 통해 응답하는 것을 특징으로 하는 스마트 컨트랙트를 활용한 Payment channel에서의 멀티 홉 트랜잭션 라우팅 방법.
(a) the requester generating a routing list in protocol 1;
(b) the requester requesting a routing route based on the routing list;
(c) the requester requesting a checkRoutingNode (sender, receiver, path, value, time_lock, signature) message to nodes included in each Path_Node in protocol 2;
(d) in protocol 2, the nodes respond to a request for a checkRoutingNode message sent by the requester in protocol 3 in protocol 3;
(e) the requester determines an available path according to the responses of the nodes in protocol 4 to generate a Path_list; And
(f) the requester sending a transaction to a destination node through any one of the Path_list;
In step (d),
The nodes respond by comparing the value of the value received from the reader with the money available to them on the channel directly connected to the receiver. A multi-hop transaction routing method in a payment channel using a smart contract.
제 1항에 있어서,
상기 (a)단계에서,
상기 리퀘스터는
payment channel의 스마트 컨트랙트에서 라우팅 경로에 있는 path를 찾기 위해 getPathList(source, destination)을 실행시키는 것을 특징으로 하는 스마트 컨트랙트를 활용한 Payment channel에서의 멀티 홉 트랜잭션 라우팅 방법.
According to claim 1,
In step (a),
The requester
A multi-hop transaction routing method in a payment channel using a smart contract, characterized in that getPathList (source, destination) is executed to find the path in the routing path in the smart contract of the payment channel.
제 2항에 있어서,
상기 (a)단계에서,
상기 리퀘스터는
상기 Path_Node를 찾기 위해 shortest hop 방식으로 가장 hop이 적은 노드들을 우선적으로 리스트를 생성하는 것을 특징으로 하는 스마트 컨트랙트를 활용한 Payment channel에서의 멀티 홉 트랜잭션 라우팅 방법.
According to claim 2,
In step (a),
The requester
A multi-hop transaction routing method in a payment channel using a smart contract, characterized in that a list of nodes with the least hops is first generated in a shortest hop manner to find the Path_Node.
제 3항에 있어서,
상기 리퀘스터는
상기 (e)단계에서 Path_list 생성을 못한 경우 홉의 수를 증가시킨 후, 상기 노드들에 checkRoutingNode 메시지를 요청하는(c)단계와 상기 노드들이 응답하는(d) 단계를 반복수행하여 Path_list 생성을 하는 것을 특징으로 하는 스마트 컨트랙트를 활용한 Payment channel에서의 멀티 홉 트랜잭션 라우팅 방법.
According to claim 3,
The requester
If the path_list creation in step (e) fails, the number of hops is increased, and then the step (c) of requesting the checkRoutingNode message to the nodes and the step of responding (d) of the nodes are repeatedly performed to generate the path_list. Multi-hop transaction routing method in the Payment channel using a smart contract, characterized in that.
삭제delete 제 1항에 있어서,
상기 노드들은
가용 가능한 금액에 대한 정보 없이 True 또는 False 만으로 응답 메시지를 전달하는 것을 특징으로 하는 스마트 컨트랙트를 활용한 Payment channel에서의 멀티 홉 트랜잭션 라우팅 방법.
According to claim 1,
The nodes are
A multi-hop transaction routing method in a payment channel using a smart contract characterized in that a response message is delivered only with True or False without information on the available amount.
제 6항에 있어서,
상기 리퀘스터는
상기 (d)단계에서 복수의 노드들 중, 하나라도 응답이 오지 않거나, 상기 False라고 응답한 경우 상기 Path_list에 PUSH가 불가능한 것을 특징으로 하는 스마트 컨트랙트를 활용한 Payment channel에서의 멀티 홉 트랜잭션 라우팅 방법.
The method of claim 6,
The requester
The multi-hop transaction routing method in a payment channel using a smart contract, characterized in that PUSH is not possible in the Path_list when any of the plurality of nodes in step (d) does not respond or the response is False.
제 7항에 있어서,
상기 리퀘스터는
상기 (e)단계에서 복수의 노드들 중, 응답이 오지 않은 노드들을 제거한 후, Path_list를 생성하는 것을 특징으로 하는 스마트 컨트랙트를 활용한 Payment channel에서의 멀티 홉 트랜잭션 라우팅 방법.

The method of claim 7,
The requester
A multi-hop transaction routing method in a payment channel using a smart contract, characterized in that a path_list is generated after removing nodes that do not receive a response among the plurality of nodes in step (e).

KR1020190008887A 2018-12-31 2019-01-23 METHOD FOR MULTI-HOP TRANSACTION ROUTING USING SMART CONTRACT in payment channel KR102100760B1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020180173642 2018-12-31
KR20180173642 2018-12-31

Publications (1)

Publication Number Publication Date
KR102100760B1 true KR102100760B1 (en) 2020-05-15

Family

ID=70678910

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190008887A KR102100760B1 (en) 2018-12-31 2019-01-23 METHOD FOR MULTI-HOP TRANSACTION ROUTING USING SMART CONTRACT in payment channel

Country Status (1)

Country Link
KR (1) KR102100760B1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113763163A (en) * 2021-07-22 2021-12-07 中山大学 Block chain payment channel network transaction commission distribution method and system

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3406246B2 (en) * 1999-05-13 2003-05-12 沖電気工業株式会社 Detour route selection method and device, failure recovery method and device, node and network system
KR20030055693A (en) * 2001-12-27 2003-07-04 한국전자통신연구원 The connection and release method for reduction of network load of RSVP for the internet QoS
JP2007282221A (en) * 2006-03-31 2007-10-25 Fujitsu Ltd Path inventory collection method, communication network, logic device, and system
KR101835335B1 (en) 2011-04-11 2018-03-07 엘지전자 주식회사 Routing method and apparatus for setting optimum multi-hop hybrid v-mimo transmission path for wireless ad hoc network

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3406246B2 (en) * 1999-05-13 2003-05-12 沖電気工業株式会社 Detour route selection method and device, failure recovery method and device, node and network system
KR20030055693A (en) * 2001-12-27 2003-07-04 한국전자통신연구원 The connection and release method for reduction of network load of RSVP for the internet QoS
JP2007282221A (en) * 2006-03-31 2007-10-25 Fujitsu Ltd Path inventory collection method, communication network, logic device, and system
KR101835335B1 (en) 2011-04-11 2018-03-07 엘지전자 주식회사 Routing method and apparatus for setting optimum multi-hop hybrid v-mimo transmission path for wireless ad hoc network

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Towards an Economic Analysis of Routing in Payment Channel Networks(2017.11.07.) 1부.* *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113763163A (en) * 2021-07-22 2021-12-07 中山大学 Block chain payment channel network transaction commission distribution method and system
CN113763163B (en) * 2021-07-22 2023-11-17 中山大学 Block chain payment channel network transaction commission distribution method and system

Similar Documents

Publication Publication Date Title
Narayanan et al. Bitcoin's academic pedigree
AU2018349940B2 (en) System and method for information protection
JP7083754B2 (en) Methods and systems for efficient transfer of cryptocurrencies associated with payroll on the blockchain, resulting in automatic payroll methods and systems based on smart contracts
Sompolinsky et al. Secure high-rate transaction processing in bitcoin
Deshpande et al. Privacy-preserving cross-chain atomic swaps
CN107851253B (en) Contract consensus method, consensus verification method, contract consensus system, consensus verification device, contract consensus device, computer-readable recording medium
Narayanan et al. Bitcoin’s Academic Pedigree: The concept of cryptocurrencies is built from forgotten ideas in research literature.
Jourenko et al. Sok: A taxonomy for layer-2 scalability related protocols for cryptocurrencies
KR101986081B1 (en) Method for sharing and verifing a block between specific nodes in a blockchain
WO2017170912A1 (en) Transaction processing device, transaction processing method, and program for same
US20230021047A1 (en) Identity-based public-key generation protocol
WO2020070515A1 (en) A consensus method and framework for a blockchain system
WO2018193341A1 (en) Computer-implemented system and method for performing transaction mixing on a blockchain
CN111126988B (en) Block chain-based transfer method, device, equipment and computer medium
US11694198B2 (en) System and method for transferring resources using a blockchain
Muftic Bix certificates: Cryptographic tokens for anonymous transactions based on certificates public ledger
JP2022514919A (en) How to share and verify blocks and electronic documents between nodes on the blockchain
KR102100760B1 (en) METHOD FOR MULTI-HOP TRANSACTION ROUTING USING SMART CONTRACT in payment channel
Tewari et al. Fully anonymous transferable ecash
Yasusaka et al. Privacy-preserving pre-consensus protocol for blockchains
JP2023513950A (en) layered network
CN117836771A (en) Coordinating peer-to-peer data transmission using blockchain
Kurbatov et al. Global Digital Identity and Public Key Infrastructure
Thakur et al. A model of decentralized social internet of things using blockchain offline channels
GB2592211A (en) Adapting connections of a layered network

Legal Events

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