KR102428950B1 - Method and system for off-chain payment - Google Patents
Method and system for off-chain payment Download PDFInfo
- Publication number
- KR102428950B1 KR102428950B1 KR1020190132499A KR20190132499A KR102428950B1 KR 102428950 B1 KR102428950 B1 KR 102428950B1 KR 1020190132499 A KR1020190132499 A KR 1020190132499A KR 20190132499 A KR20190132499 A KR 20190132499A KR 102428950 B1 KR102428950 B1 KR 102428950B1
- Authority
- KR
- South Korea
- Prior art keywords
- payment
- terminal
- information
- time required
- shortest time
- 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/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/02—Payment architectures, schemes or protocols involving a neutral party, e.g. certification authority, notary or trusted third party [TTP]
-
- 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/04—Payment circuits
- G06Q20/06—Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme
- G06Q20/065—Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme using e-cash
-
- 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/08—Payment architectures
- G06Q20/14—Payment architectures specially adapted for billing systems
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/0819—Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
- H04L9/0827—Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) involving distinctive intermediate devices or communication paths
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/56—Financial cryptography, e.g. electronic payment or e-cash
Landscapes
- Business, Economics & Management (AREA)
- Accounting & Taxation (AREA)
- Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- General Business, Economics & Management (AREA)
- Strategic Management (AREA)
- Finance (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Development Economics (AREA)
- Economics (AREA)
- Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
Abstract
본 발명은 오프체인(Off-Chain)에서의 제1 단말 및 제2 단말간의 계약을 수행하기 위한 단말 간 동작 방법으로, 신뢰 실행 환경(Trusted Execution Environment, TEE)을 이용하여, 상기 제1 단말 및 상기 제2 단말의 공개 주소(public address)와 개인 키(private key)를 생성하는 단계 및 상기 제1 단말의 공개 주소 및 상기 제2 단말의 공개 주소가 포함된 정보를 이용하여 트랜젝션을 생성하는 단계를 포함한다. 본 발명을 통해 결제 시간을 단축시키고, 처리 성능 및 안정성을 향상시킬 수 있다.The present invention is an operation method between terminals for performing a contract between a first terminal and a second terminal in an off-chain, using a Trusted Execution Environment (TEE), the first terminal and Generating a public address and a private key of the second terminal and generating a transaction using information including the public address of the first terminal and the public address of the second terminal includes Through the present invention, payment time can be shortened, and processing performance and stability can be improved.
Description
본 발명은 오프체인 결제 방법 및 그 시스템에 관한 것으로, 보다 상세하게는, 블록체인 오프체인 환경에서 블록체인 결제 서비스를 수행하기 위한 결제 방법 및 그 시스템에 관한 것이다.The present invention relates to an off-chain payment method and system, and more particularly, to a payment method and system for performing a block-chain payment service in a block-chain off-chain environment.
블록체인(blockchain)은 서로를 신뢰할 수 없는 분산 시스템 환경에서도 모든 노드들이 동일한 거래(transaction) 장부를 바라볼 수 있도록 도와주는 매커니즘이다. 대표적인 활용 예로 비트코인(Bitcoin)이 있다.Blockchain is a mechanism that helps all nodes see the same transaction ledger even in a distributed system environment where they do not trust each other. A typical use case is Bitcoin.
또한, 스마트 컨트랙트(smart contract)는 프로그래밍 가능한 컨트랙트로, 단순히 코인과 같은 자산 거래 이외에도 분산 시스템 환경에서 모든 노드들이 동일한 순서로 트랜잭션(transaction)을 수행하여 동일한 프로그램 상태를 바라볼 수 있도록 한다. 대표적인 오픈 프로젝트로 이더리움(ethereum)이 있다.In addition, a smart contract is a programmable contract that allows all nodes to view the same program state by performing transactions in the same order in a distributed system environment, in addition to simply trading assets such as coins. Ethereum is a representative open project.
한편, 블록체인 환경에서의 결제 서비스는 블록체인 기반 응용 서비스에서 반드시 필요한 핵심적인 서비스이다. 일반적으로 블록체인 네트워크는 마이너(miner)들이 합의 알고리즘(consensus algorithm)을 수행하여 발생되는 트랜잭션들을 블록 형태로 생성하여 참여 노드들에게 전달한다. 블록체인 네트워크에 참여하는 모든 노드들은 동일한 형태의 블록체인을 유지하며 합의된 블록만을 추가할 수 있다. 이에 따라, 블록체인 네트워크의 안정성이 보장될 수 있도록 한다.On the other hand, the payment service in the blockchain environment is a core service that is absolutely necessary in the blockchain-based application service. In general, in a blockchain network, miners perform a consensus algorithm to generate transactions in block form and deliver them to participating nodes. All nodes participating in the blockchain network maintain the same type of blockchain and can only add consensus blocks. Accordingly, the stability of the blockchain network can be guaranteed.
비트코인이나 이더리움 블록체인과 같은 공개형 혹은 무허가형(public or permissionless) 블록체인에서는 고유의 토큰을 정의하고 있어, 결제 서비스가 내재되어 있지만, 이러한 공개형 블록체인의 성능 한계로 인해 실제 일상 생활에서 결제 서비스로 활용되기에는 한계점이 있다. 이는 퍼블릭(Public) 블록체인의 경우, 네트워크에 참여하는 노드가 전 세계에 퍼져있고, 그에 따라 발생하는 트랜잭션 또한 점차 늘어나고 있는데, 한 블록안에 포함될 수 있는 트랜잭션의 수가 한정되어 있는 것에 기인한다.In public or permissionless blockchains such as Bitcoin or Ethereum blockchain, a unique token is defined, and payment services are inherent, but due to the performance limitations of these public blockchains, There is a limit to being used as a payment service in This is due to the fact that, in the case of a public blockchain, the nodes participating in the network are spread all over the world, and the number of transactions that occur accordingly is also increasing. This is because the number of transactions that can be included in one block is limited.
구체적으로, 세계적인 디지털 결제 네트워크 기업인 VISA의 초당 처리할 수 있는 거래의 양(transactions per second, TPS)은 약 25,000 인데 반하여, 현재 공개형 블록체인 비트코인과 이더리움의 TPS는 각각 약 7과 15 정도로 알려져 있다. 이와 같이 공개형 블록체인의 성능은 기존의 VISA 성능과 비교할 때 큰 차이가 있다. 그 외에 폐쇄형 혹은 허가형(private or permissioned) 블록체인인 하이퍼레저/패브릭(Hyperledger/Fabric)의 TPS는 약 1,000으로 공개형 블록체인과 비교하면 대폭 향상되었지만, 여전히 VISA의 성능에 비해선 열등하다고 볼 수 있다.Specifically, the number of transactions per second (TPS) that VISA, a global digital payment network company, can process is about 25,000, while the TPS of current public blockchains Bitcoin and Ethereum are about 7 and 15, respectively. is known As such, the performance of the public blockchain has a big difference compared to the existing VISA performance. In addition, the TPS of Hyperledger/Fabric, a private or permissioned blockchain, is about 1,000, which is significantly improved compared to the public blockchain, but it is still inferior to the performance of VISA. can
현재 이러한 블록체인 확장성(scalability) 문제를 해결하기 위하여 다양한 기술들이 제시되고 있다. 대표적인 기술로는 오프체인(off-chain)기법, 합의 알고리즘(consensus algorithm) 개선, 샤딩(sharding) 및 사이드체인(side-chain) 등이 있다.Currently, various technologies are being proposed to solve this block chain scalability problem. Representative technologies include off-chain techniques, consensus algorithm improvement, sharding, and side-chain.
여기서 오프체인(off-chain) 기법은 빈번한 거래 당사자들끼리의 트랜잭션들을 블록체인 바깥에서 상호 합의하고 실행하게 하며, 최종 결과만을 블록체인에 기록하게 하는 형태의 기법이다. 일 예로, 비트코인 블록체인에서의 라이트닝 네트워크(Lightning Network)와 이더리움 블록체인에서의 레이든 네트워크(Raiden Networks)가 대표적인 오프체인 기법이다. 현재 오프체인 기법 중에서도 오프체인 결제 채널 기술이 일상적인 업무에 적용될 수 있는 블록체인 기반 결제 서비스로 주목받고 있다.Here, the off-chain technique is a type of technique that allows frequent transaction parties to mutually agree and execute transactions outside the block chain, and record only the final result in the block chain. For example, Lightning Network in the Bitcoin blockchain and Raiden Networks in the Ethereum blockchain are representative off-chain techniques. Among off-chain techniques, off-chain payment channel technology is attracting attention as a blockchain-based payment service that can be applied to daily tasks.
기존의 결제 채널 기술로써 많이 활용되고 있는 라이트닝 네트워크(Lightning Network)와 레이든 네트워크(Raiden Network), 그리고 현재까지 연구되어 발표되고 있는 여러 결제 채널 기술들이 가지고 있는 공통적인 한계점은 다음과 같다.The common limitations of Lightning Network and Raiden Network, which are widely used as existing payment channel technologies, and various payment channel technologies that have been researched and published so far are as follows.
첫 번째, 네트워크상 결제 처리를 위한 사용자들의 금액은 결제가 완전히 종료될 때까지 묶여 있게 된다는 점이다. 결제 처리를 위한 사용자들의 금액을 결제 처리 비용이라고 한다. 결제 처리 비용은 네트워크상 결제에 필요한 금액의 총 액수와 총 금액이 묶여 있는 시간에 비례하여 증가한다. 결제 처리 비용은 결제 채널 프로토콜에 있어 필요한 비용이지만, 결제 처리 비용이 클수록 사용자에게 불편함을 주게 된다.First, the amount of users' money for payment processing on the network is tied up until the payment is completely completed. The user's amount for payment processing is called payment processing cost. The payment processing cost increases in proportion to the total amount of money required for payment on the network and the time the total amount is tied up. The payment processing cost is a cost necessary for the payment channel protocol, but the larger the payment processing cost, the more inconvenient the user is.
두 번째, 직접적으로 결제 채널이 생성 되지 않은 사용자들 사이에서 결제를 진행할 경우, 매우 복잡한 과정을 필요로 한다는 점이다. 결제 과정이 복잡할수록 보안 결함이 생길 확률이 높아지며, 결제를 빠르게 수행하기 어렵다는 문제점이 있다.Second, when a payment is made between users who have not directly created a payment channel, a very complicated process is required. The more complicated the payment process, the higher the probability of a security flaw, and the problem is that it is difficult to quickly perform the payment.
세 번째, 블록체인상 유효하지 않은 결제 트랜잭션을 지속적으로 감시해야 한다는 점이다. 결제 채널 쌍방간에는 오프체인 상에서 결제가 진행되기 때문에, 매순간 두 사용자 사이에는 서로 간 합의가 된 결제 트랜잭션 결과들이 축적된다. 이렇게 축적된 결제 트랜잭션 결과들은 개별적으로 보면 상호 합의된 정보를 바탕으로 유효한 결과들이지만, 가장 최신 결제 트랜잭션 결과를 제외한 이전 결제 결과들은 더 이상 유효하지 않은 결과들이라고 볼 수 있다. 이때, 누군가가 유효하지 않게 된 결과 트랜잭션들을 블록체인에 올림으로서, 결제 채널과 연계되어 있는 보증금에 대한 악의적 정리 요청 행동을 할 수 있다. 이를 방지하기 위하여, 일정 시간 이후가 되어야만 유효하게 되는 타임락(timelock) 정보를 결제 채널의 결제 트랜잭션 결과에 연결하여 사용한다.Third, it is necessary to continuously monitor invalid payment transactions on the blockchain. Since payments are made off-chain between both sides of the payment channel, payment transaction results agreed upon are accumulated between the two users at every moment. The accumulated payment transaction results are valid results based on mutually agreed information when viewed individually, but previous payment results except for the most recent payment transaction results are no longer valid results. At this time, by uploading the resulting invalid transactions to the blockchain, someone can make a malicious cleanup request for the deposit associated with the payment channel. To prevent this, timelock information, which becomes valid only after a certain period of time, is used by connecting it to the payment transaction result of the payment channel.
이러한 타임락 기반 방법은 결제 채널의 첫 트랜잭션의 타임락 값에 따라 생성 가능한 결제 트랜잭션 결과의 개수가 의존적이며, 블록체인상에 유효하지 않은 결제 트랜잭션 요청이 올라오는지 여부를 항상 감시해야 하는 온체인(on-chain) 실시간 감시(monitoring) 기능이 반드시 필요한 문제점을 가지고 있다.This time-lock-based method depends on the number of payment transaction results that can be created according to the time-lock value of the first transaction of the payment channel, and on-chain ( There is a problem that an on-chain) real-time monitoring function is absolutely necessary.
상기와 같은 문제점을 해결하기 위한 본 발명의 목적은 고속, 고확장성 및 고안정성을 제공하는 오프체인 결제 방법 및 그 시스템을 제공하는 데 있다.An object of the present invention for solving the above problems is to provide an off-chain payment method and a system that provide high speed, high scalability and high stability.
상기 목적을 달성하기 위한 본 발명의 일 실시예에 따른 오프체인(off-chain)에서의 제1 단말 및 제2 단말간의 결제를 수행하기 위한 단말 간 동작 방법은, 신뢰 실행 환경(trusted execution environment, TEE)을 이용하여, 상기 제1 단말 및 상기 제2 단말의 공개 주소(public address)와 개인 키(private key)를 생성하는 단계 및 상기 제1 단말의 공개 주소 및 상기 제2 단말의 공개 주소가 포함된 정보를 이용하여 트랜젝션을 생성하는 단계를 포함한다.In order to achieve the above object, an inter-terminal operation method for performing a payment between a first terminal and a second terminal in an off-chain according to an embodiment of the present invention for achieving the above object, a trusted execution environment, TEE), generating a public address and a private key of the first terminal and the second terminal, and the public address of the first terminal and the public address of the second terminal are and generating a transaction by using the included information.
여기서 상기 개인 키는 상기 신뢰 실행 환경 내에 저장되는 것을 특징으로 한다.Here, the private key is characterized in that it is stored in the trusted execution environment.
여기서 상기 제1 단말 및 상기 제2 단말 간에는 결제 경로(payment path)가 설정되고, 상기 제1 단말 및 상기 제2 단말은 상기 신뢰 실행 환경에 의해 반환된 명령을 통해 상기 결제 경로와 관련된 동작을 수행하는 것을 특징으로 한다.Here, a payment path is established between the first terminal and the second terminal, and the first terminal and the second terminal perform an operation related to the payment path through a command returned by the trusted execution environment. characterized in that
여기서 상기 결제 채널과 관련된 동작은 상기 신뢰 실행 환경 내에 저장된 개인 키와 연계되는 것을 특징으로 한다.Here, the operation related to the payment channel is characterized in that it is associated with a private key stored in the trusted execution environment.
여기서 상기 신뢰 실행 환경은 상기 제1 단말 및 상기 제2 단말 내에 배치되는 것을 특징으로 한다.Here, the trusted execution environment is characterized in that it is disposed in the first terminal and the second terminal.
또한 본 발명의 일 실 시예에 따른 오프체인(Off-Chain)에서 결제를 수행하기 위한 시스템은 복수의 단말 및 상기 복수의 단말을 연결하는 결제 채널을 포함하는 결제 네트워크 및 상기 복수의 단말 중, 결제를 수행하려는 제1 단말 및 제2 단말 간의 결제 요청 정보를 수신하여, 상기 제1 단말과 상기 제2 단말간의 최적 결제 경로를 계산하는 결제 경로 계산 모듈, 상기 계산된 최적 결제 경로에 존재하는 단말들에게 상태 전이 명령을 전송하는 프로토콜 실행 모듈을 포함하는 서비스 제공자 서버를 포함하여, 상기 결제 요청 정보는, 상기 제1 단말 및 상기 제2 단말의 공개 주소(public address)가 포함된 정보를 이용하여 생성된 트랜잭션 정보를 포함하여, 상기 제1 단말 및 상기 제2 단말의 공개 주소는 신뢰 실행 환경(trusted execution environment, TEE)을 이용하여 생성된 것을 특징으로 한다.In addition, a system for performing a payment in an off-chain according to an embodiment of the present invention is a payment network including a plurality of terminals and a payment channel connecting the plurality of terminals, and among the plurality of terminals, A payment path calculation module for receiving payment request information between a first terminal and a second terminal to perform and calculating an optimal payment path between the first terminal and the second terminal, and terminals existing in the calculated optimal payment path Including a service provider server including a protocol execution module for transmitting a state transition command to the user, the payment request information is generated using information including public addresses of the first terminal and the second terminal Including the transaction information, the public addresses of the first terminal and the second terminal are generated using a trusted execution environment (TEE).
여기서 상기 제1 단말 및 상기 제2 단말은 개인 키(private key)를 더 생성하고, 상기 개인 키는 상기 신뢰 실행 환경 내에 저장하는 것을 특징으로 한다.Here, the first terminal and the second terminal further generate a private key, and the private key is stored in the trusted execution environment.
여기서 상기 제1 단말 및 상기 제2 단말 간에는 결제 채널(payment channel)이 설정되고, 상기 제1 단말 및 상기 제2 단말은 상기 신뢰 실행 환경에 의해 반환된 명령을 통해 상기 결제 채널과 관련된 동작을 수행하는 것을 특징으로 한다.Here, a payment channel is established between the first terminal and the second terminal, and the first terminal and the second terminal perform an operation related to the payment channel through a command returned by the trusted execution environment. characterized in that
여기서 상기 결제 채널과 관련된 동작은 상기 신뢰 실행 환경 내에 저장된 개인 키와 연계되는 것을 특징으로 한다.Here, the operation related to the payment channel is characterized in that it is associated with a private key stored in the trusted execution environment.
여기서 상기 신뢰 실행 환경은 상기 제1 단말 및 상기 제2 단말 내에 배치되는 것을 특징으로 한다.Here, the trusted execution environment is characterized in that it is disposed in the first terminal and the second terminal.
여기서 상기 제1 단말과 상기 제2 단말간의 최적 결제 경로는, 상기 복수 단말의 연결 정보를 이용하여 생성된 결제 네트워크 맵(payment network map)에 기초하여 계산되는 것을 특징으로 한다.Here, the optimal payment path between the first terminal and the second terminal is calculated based on a payment network map generated using connection information of the plurality of terminals.
여기서 상기 프로토콜 실행 모듈은, 상기 최적 결제 경로 생성 후, 상기 최적 결제 경로에 존재하는 단말들의 상태를 갱신이전(PRE-UPDATE) 상태로 전이할 것을 요청하는 것을 특징으로 한다.Here, the protocol execution module is characterized in that after generating the optimal payment path, it is characterized in that the request to change the state of the terminals existing in the optimal payment path to a state before update (PRE-UPDATE).
여기서 상기 프로토콜 실행 모듈은, 상기 최적 결제 경로에 존재하는 단말들로부터 갱신이전 상태의 채널 정보를 수신한 경우, 상기 최적 결제 경로에 존재하는 채널들의 잔액 정보에 기초하여 상기 최적 결제 경로가 상기 결제 요청 정보를 처리하기에 적합한지 여부를 판단하는 것을 특징으로 한다.Here, when the protocol execution module receives channel information in a pre-update state from terminals existing in the optimal payment path, the optimal payment path determines the payment request based on balance information of channels existing in the optimal payment path It is characterized in that it is determined whether the information is suitable for processing.
여기서 상기 프로토콜 실행 모듈은, 상기 최적 결제 경로가 상기 결제 요청 정보를 처리하기에 적합한 것으로 판단된 경우, 상기 최적 결제 경로에 존재하는 단말들의 상태를 갱신이후(POST-UPDATE) 상태로 전이할 것을 요청하는 것을 특징으로 한다.Here, when it is determined that the optimal payment path is suitable for processing the payment request information, the protocol execution module requests to transition the states of terminals existing in the optimal payment path to a POST-UPDATE state. characterized in that
여기서 상기 프로토콜 실행 모듈은, 상기 갱신이후 상태로 전이된 상기 최적 결제 경로에 존재하는 단말들로부터 신뢰 실행 환경에 기초한 갱신 정보가 포함된 결제 관련 정보를 수신하고, 결제 실행 메시지를 상기 최적 결제 경로에 존재하는 단말들에게 전송하는 것을 특징으로 한다.Here, the protocol execution module receives payment-related information including update information based on a trusted execution environment from the terminals existing in the optimal payment path transitioned to the state after the update, and sends a payment execution message to the optimal payment path It is characterized in that it is transmitted to existing terminals.
여기서 상기 시스템은, 상기 결제 네트워크에 포함된 단말간의 연결 정보가 저장된 결제 채널 정보 데이터베이스(DB)를 더 포함하는 것을 특징으로 한다.Here, the system further comprises a payment channel information database (DB) in which connection information between terminals included in the payment network is stored.
여기서 상기 시스템은, 상기 결제 네트워크에 포함된 단말 간의 채널 정보가 포함된 결제 채널 스마트 컨트랙트를 더 포함하는 것을 특징으로 한다.Here, the system further comprises a payment channel smart contract including channel information between terminals included in the payment network.
여기서 상기 서비스 제공 서버는, 상기 결제 채널 스마트 컨트랙트와 동기화를 수행하는 계약 정보 동기화 모듈을 더 포함하는 것을 특징으로 한다.Here, the service providing server, characterized in that it further comprises a contract information synchronization module for performing synchronization with the payment channel smart contract.
여기서 상기 서비스 제공 서버는, 블록체인에 존재하는 스마트 컨트랙트 정보를 수신하는 블록체인 네트워크 통신부를 더 포함하는 것을 특징으로 한다.Here, the service providing server, characterized in that it further comprises a block chain network communication unit for receiving smart contract information existing in the block chain.
본 발명에 따른 오프체인 결제 방법 및 그 시스템은 오프체인 결제 네트워크 프로토콜의 구성을 단순화하여 결제에 필요한 시간을 단축시킬 수 있고, 이에 따라 담보 비용(collateral cost)을 감소시킬 수 있다.The off-chain payment method and system according to the present invention can reduce the time required for payment by simplifying the configuration of the off-chain payment network protocol, thereby reducing collateral cost.
또한 서비스 제공자 서버가 결제 경로에 연관된 사용자들의 상태를 동기화하기 때문에 결제 처리 시간을 대폭 감소시킬 수 있다.Also, since the service provider server synchronizes the status of users involved in the payment path, the payment processing time can be significantly reduced.
또한 서비스 제공자 서버가 오프체인 결제 참여자들로부터 다수의 요청을 수신하여 한번에 처리하므로 결제 성능을 높일 수 있다.In addition, since the service provider server receives multiple requests from off-chain payment participants and processes them at once, payment performance can be improved.
또한 결제 시스템은 신뢰 실행 환경(TEE)에 기반하여 결제 동작을 수행하는바, 오프라인 결제 서비스의 안전성 및 신뢰성을 도모할 수 있다. In addition, since the payment system performs a payment operation based on the Trusted Execution Environment (TEE), the safety and reliability of the offline payment service may be promoted.
또한 결제 시스템은 신뢰 실행 환경에 기반하여 결제 동작을 수행하는바, 오프체인 결제 당사자들의 악의적인 온체인 활동을 감시할 필요가 없다.Also, since the payment system performs payment operations based on the trusted execution environment, there is no need to monitor malicious on-chain activities of off-chain payment parties.
다만, 본 발명의 실시 예들에 따른 오프체인 결제 방법 및 그 시스템이 달성할 수 있는 효과는 이상에서 언급한 것들로 제한되지 않으며, 언급하지 않은 또 다른 효과들은 아래의 기재로부터 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.However, the effects that the off-chain payment method and the system can achieve according to the embodiments of the present invention are not limited to those mentioned above, and other effects not mentioned are from the following description in the technical field to which the present invention belongs It will be clearly understood by those of ordinary skill in the art.
본 발명에 관한 이해를 돕기 위해 상세한 설명의 일부로 포함되는, 첨부도면은 본 발명에 대한 실시예를 제공하고, 상세한 설명과 함께 본 발명의 기술적 사상을 설명한다.
도 1은 본 발명의 일 실시예에 따른 오프 체인 결제 시스템(1000)의 구성도이다.
도 2는 본 발명의 일 실시예에 따른 서비스 제공자 서버(100)의 블록도이다.
도 3은 본 발명의 일 실시예에 따른 결제 채널 스마트 컨트랙트(300)의 블록도이다.
도 4는 본 발명의 일 실시예에 따른 결제 네트워크(400)에서의 사용자 단말(410)간 결제 채널(420) 사용에 개념도이다.
도 5a 및 도 5b는 본 발명의 일 실시예에 따른 오프 체인 결제 시스템(1000)의 동작 과정을 나타낸 순서도이다.
도 6은 본 발명의 일 실시예에 따른 사용자 단말(410)의 상태 전이도를 나타낸 개념도이다.BRIEF DESCRIPTION OF THE DRAWINGS The accompanying drawings, which are included as a part of the detailed description to help the understanding of the present invention, provide embodiments of the present invention, and together with the detailed description, explain the technical spirit of the present invention.
1 is a block diagram of an off-
2 is a block diagram of a
3 is a block diagram of a payment channel
4 is a conceptual diagram illustrating the use of a payment channel 420 between
5A and 5B are flowcharts illustrating an operation process of the off-
6 is a conceptual diagram illustrating a state transition diagram of the
본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세하게 설명하고자 한다. 그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.Since the present invention can have various changes and can have various embodiments, specific embodiments are illustrated in the drawings and described in detail. 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.
제1, 제2 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다. 및/또는 이라는 용어는 복수의 관련된 기재된 항목들의 조합 또는 복수의 관련된 기재된 항목들 중의 어느 항목을 포함한다.Terms such as first, second, etc. may be used to describe various elements, but the elements should not be limited by the terms. The above terms are used only for the purpose of distinguishing one component from another. For example, without departing from the scope of the present invention, a first component may be referred to as a second component, and similarly, a second component may also be referred to as a first component. and/or includes a combination of a plurality of related listed items or any of a plurality of related listed items.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다.When a component is referred to as being “connected” or “connected” to another component, it may be directly connected or connected to the other component, but it is understood that other components may exist in between. it should be On the other hand, when it is said that a certain element is "directly connected" or "directly connected" to another element, it should be understood that the other element does not exist 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. The singular expression includes the plural expression unless the context clearly dictates otherwise. In the present application, terms such as “comprise” or “have” are intended to designate that a feature, number, step, operation, component, part, or combination thereof described in the specification exists, but one or more other features It is to be understood that it does not preclude the possibility of the presence or addition of numbers, steps, operations, components, parts, or combinations thereof.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥 상 가지는 의미와 일치하는 의미를 가진 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.Unless defined otherwise, all terms used herein, including technical or scientific terms, have the same meaning as commonly understood by one of ordinary skill in the art to which this invention belongs. Terms such as those defined in a commonly used dictionary should be interpreted as having a meaning consistent with the meaning in the context of the related art, and should not be interpreted in an ideal or excessively formal meaning unless explicitly defined in the present application. does not
이하, 첨부한 도면들을 참조하여, 본 발명의 바람직한 실시예를 보다 상세하게 설명하고자 한다. 본 발명을 설명함에 있어 전체적인 이해를 용이하게 하기 위하여 도면상의 동일한 구성요소에 대해서는 동일한 참조부호를 사용하고 동일한 구성요소에 대해서 중복된 설명은 생략한다.Hereinafter, preferred embodiments of the present invention will be described in more detail with reference to the accompanying drawings. In describing the present invention, in order to facilitate the overall understanding, the same reference numerals are used for the same components in the drawings, and duplicate descriptions of the same components are omitted.
도 1은 본 발명의 일 실시예에 따른 오프 체인 결제 시스템(1000)의 구성도이다.1 is a block diagram of an off-
본 명세서에서, 블록체인(blockchain)은 데이터를 분산 데이터 저장 환경에 저장하여, 누구나 그 데이터를 열람할 수 있으나, 누구도 임의로 수정할 수 없는, 분산 컴퓨팅 기술 기반의 데이터 위변조 방지 기술 내지 분산 데이터 저장 기술을 의미할 수 있다. 블록체인은 복수의 블록이 체인 형태로 연결된 것으로, 여기서 블록은 데이터를 저장하는 단위일 수 있다. 지속적으로 변경되는 데이터가 블록체인의 모든 노드에 의해 기록됨으로써, 전체데이터를 어느 한 노드가 임의로 조작하는 것이 불가능할 수 있다.In this specification, a blockchain stores data in a distributed data storage environment, so that anyone can read the data, but no one can arbitrarily modify it. Distributed computing technology-based data forgery prevention technology or distributed data storage technology can mean A block chain is a plurality of blocks connected in a chain form, where a block may be a unit for storing data. As continuously changing data is recorded by all nodes in the blockchain, it may not be possible for any one node to arbitrarily manipulate the entire data.
본 명세서에서, 암호화폐는 전술한 블록체인을 기반으로 한 암호화 방법을 사용하여, 거래 안전이 확보되고 위변조가 방지되는 디지털 자산일 수 있다. 일 실시예로서, 암호화폐에는 비트코인, 이더리움, 리플, 라이트 코인 등이있다.In the present specification, cryptocurrency may be a digital asset in which transaction safety is secured and forgery is prevented by using the above-described block chain-based encryption method. As an example, cryptocurrencies include Bitcoin, Ethereum, Ripple, Litecoin, and the like.
본 명세서에서, 온 체인(on-chain)은 블록체인 네트워크 상을 의미할 수 있다. 어느 연산, 동작이 온 체인에서 수행된다는 표현은, 그 연산, 동작이 블록체인 네트워크상에서 수행된다는 의미로서, 예를 들어 적어도 하나의 노드에 의해 그 연산, 동작이 수행된다는 뜻일 수 있다. 오프 체인(off-chain)은 블록체인 네트워크 밖을 의미할 수 있다. 어느 연산, 동작이 오프 체인에서 수행된다는 표현은, 그 연산, 동작이 블록체인 네트워크와는 구분되는 블록체인 네트워크 밖의 네트워크에서 수행된다는 의미일 수 있다. 예를 들어, 블록체인 노드 간의 블록 생성, 분산 합의 과정 등을 제외한, 사용자 단말, 별도의 서버 및 기타 통신 가능한 장치 등 사이의 통신은 모두 오프체인에서 수행된다고 볼 수 있다.In this specification, on-chain may mean on a blockchain network. The expression that a certain operation or operation is performed on-chain means that the operation or operation is performed on the blockchain network, and may mean, for example, that the operation or operation is performed by at least one node. Off-chain can mean outside the blockchain network. The expression that an operation or operation is performed off-chain may mean that the operation or operation is performed in a network outside the blockchain network that is distinct from the blockchain network. For example, it can be seen that all communication between user terminals, separate servers, and other communicationable devices is performed off-chain, except for block generation between blockchain nodes and distributed consensus processes.
도 1을 참조하면, 본 발명에 따른 오프체인 결제 시스템(1000)은 서비스 제공자 서버(100), 결제 채널 정보 데이터 베이스(DB)(200), 결제 채널 스마트 컨트랙트(300) 및 결제 네트워크(400)를 포함한다. 결제 네트워크(400)는 복수의 사용자 단말(410) 및 결제 채널(500)를 포함한다. 본 발명에 따른 오프체인 결제 시스템(1000)은 튜링 완전(turing completeness) 스마트 컨트랙트를 지원할 수 있다.Referring to FIG. 1 , an off-
서비스 제공자 서버(100)는 멀티홉(multi-hop) 결제 프로토콜과 관련된 명령을 제어 및 실행하고, 결제 채널(500)들에 대한 정보를 가져오기 위한 장치일 수 있다. 서비스 제공자 서버(100)는 데스크탑 혹은 서버일 수 있다. 본 발명은 프로토콜 실행 책임을 담당하는 서비스 제공자 서버(100)를 도입하여, 각 노드의 상태에 대한 동기화가 단순해지도록 할 수 있다. 본 발명에 따른 서비스 제공자 서버(100)의 구체적인 구성에 대해서는 도 2를 참조하여 후술한다.The
결제 채널 정보 데이터 베이스(DB)(200)는 서비스 제공자 서버(100) 로부터 블록체인 상의 결제 채널 스마트 컨트랙트(300)의 정보와 동기화 정보를 지속적으로 수신할 수 있다. 이를 통해, 현재 결제 네트워크(400)에 참여하고 있는 사용자들 간의 최신 연결 정보를 보유할 수 있다. 일 예로서, 결제 채널 정보 데이터 베이스(DB)(200)는 MySQL 또는 Oracle 데이터 베이스일 수 있다.The payment channel information database (DB) 200 may continuously receive information and synchronization information of the payment channel
결제 채널 스마트 컨트랙트(300)는 블록체인 상에서 동작하는 어플리케이션일 수 있고, 오프체인 결제 처리 결과의 정산 및 분쟁 조정에 이용될 수 있다. 트랜잭션은 스마트 컨트랙트의 상태를 변경하기 위한 입력값의 역할을 할 수 있다. 여기서 트랜잭션(transaction)은 오더, 주문의 의미로 사용될 수 있다. 예를 들어, 트랜잭션은 '사용자 A가 사용자 B에게 소정의 암호화폐를 소정의 수량만큼 보낸다'등과 같은 암호화폐 송금, 교환 등의 내용을 하나의 문자열로 나타낸 것일 수 있다.The payment channel
블록체인 상의 블록들의 트랜잭션은 결제 채널 스마트 컨트랙트(300)의 상태를 변경시킬 수 있고, 결제 채널 스마트 컨트랙트(300)는 결제 채널 스마트 컨트랙트(300)의 최신 상태를 보관하고 있을 수 있다. 암호화폐 교환, 예치, 인출을 위한 트랜잭션은 결제 채널 스마트 컨트랙트(300)의 상태를 변경시킬 수 있고, 이에 따라 변경된 상태인 잔고 정보가 결제 채널 스마트 컨트랙트(300)에 저장될 수 있다. 블록체인은, 결제 채널 스마트 컨트랙트(300)를 지원하는 어떠한 블록체인이어도 무방하다. 예를 들어 이더리움과 같은 스마트 컨트랙트 지원 블록체인이 사용될 수 있다. 본 발명에 따른 결제 채널 스마트 컨트랙트(300)의 구체적인 구성에 대해서는 도 3을 참조하여 후술한다.Transactions of blocks on the block chain may change the state of the payment channel
결제 네트워크(400)는 복수의 사용자 단말(410)을 연결하는 결제 채널(420)을 포함한다. 결제 네트워크(800)는 복수의 사용자 단말(410) 및 결제 채널(420)들이 서로 연결되어 하나의 네트워크를 형성하고 있는 것을 의미할 수 있다. 한편, 오프체인 결제 처리에 참여하는 사용자 단말(410)은 모두 신뢰 실행 환경(trusted execution environment: TEE)(500)에 기초한 명령을 통해 동작할 수 있다. 신뢰 실행 환경은 미리 정의한 동작만을 각 노드가 수행할 수 있도록 강제하기 때문에, 오프체인 결제 채널 프로토콜을 실행하는 과정에서 노드의 악의적인 행동을 방지할 수 있다. 신뢰 실행 환경에 기초한 결제 네트워크(400)의 구체적인 동작은 도 4를 참조하여 후술한다.The
사용자 단말(410)은 하나의 노드라 볼 수 있다. 사용자 단말(410)은 프로토콜에 참여하여 결제 동작을 수행하기 위한 장치로, 일 실시예로서, 데스크탑, 랩탑(laptop) 혹은 모바일 기기일 수 있다. 사용자 단말(410)은 상대방과 직접적으로 연결된 결제 채널(420)에서의 동작을 실행하거나, 결제 경로에 참여한 상태인 경우 서비스 제공자 서버(100)와 프로토콜을 따르기 위한 메시지를 주고받을 수 있다. 이와 같이, 사용자 단말(410)(즉, 노드)은 결제 네트워크(400)의 구성요소 중 하나로서, 해당 블록체인을 유지하기 위한 연산을 수행하는 주체일 수 있다. 블록체인의 유지에는 신규 블록의 생성 작업이 포함될 수 있다. 블록체인의 임의의한 노드는 사용자 단말(410)에 발행한 트랜잭션을 이용하여 블록체인의 블록을 생성할 수 있다. 생성된 블록은 분산합의 과정을 통해 블록체인의 노드들 간에 공유되고 블록체인의 다음 블록으로 연결될 수 있다.The
사용자 단말(410)은 트랜잭션을 생성할 수 있다. 또한, 사용자 단말(410)은 블록체인의 사용자 단말들 중 어느 하나를 통해, 스마트 컨트랙트에 저장된 잔고 정보 등을 확인할 수 있다. 사용자 클라이언트는 블록체인 클라이언트와 동일한 의미로 사용될 수 있다. 여기서 결제 네트워크(400)는 복수의 사용자 단말(410) 사이에 트랜잭션 또는 블록 등을 공유하는 네트워크를 의미할 수 있다.The
도 2는 본 발명의 일 실시예에 따른 서비스 제공자 서버(100)의 블록도이다.2 is a block diagram of a
도 2를 참조하면, 본 발명의 일 실시예에 따른 서비스 제공자 서버(100)는 블록체인상의 결제 채널 스마트 계약(300)의 정보를 지속적으로 서버에 가져오기 위한 계약 정보 동기화 모듈(110), 결제 채널(420)들에 대한 정보를 바탕으로 최적의 결제 경로를 계산하는 결제 경로 계산 모듈(120), 결제 경로상의 여러 사용자 단말(410)들을 경유하는 멀티홉 결제 진행을 위한 프로토콜 실행 모듈(130) 및 블록체인 네트워크와의 통신을 담당하는 블록체인 네트워크 통신부(140)를 포함한다.Referring to FIG. 2 , the
계약 정보 동기화 모듈(110)은 결제 채널(420)을 사용 중인 사용자들의 결제 채널(420) 정보들을 저장하고 있는 결제 채널 스마트 컨트랙트(300)와의 동기화를 위한 모듈일 수 있다. 각 사용자 단말(410)들은 신뢰 실행 환경(TEE)이 내부적으로 생성한 공개 주소(public address)로 표현되며, 사용자들의 채널 정보를 가져옴으로써 연결 관계를 파악하고 동기화할 수 있다.The contract
결제 경로 계산 모듈(120)은 계약 정보 동기화 모듈(110)이 동기화한 정보를 활용하여 송신자로부터 수신자까지 최적의 결제 경로를 계산하는 모듈일 수 있다. 보다 상세하게는 각 사용자 단말(410)의 연결 정보를 토대로 결제 네트워크 맵(payment network map)을 생성하고, 결제 네트워크 맵에 기초하여 최적의 결제 경로를 결정할 수 있다.The payment
프로토콜 실행 모듈(130)은 요청받은 결제를 처리하기 위해, 결제 경로 계산 모듈(120)이 계산한 결제 경로에 포함된 송신자, 중간 사용자들(intermediaries) 그리고 수신자 간에 결제를 위한 프로토콜을 실행할 수 있다. 또한 프로토콜 실행 모듈(130)은 결제 경로에 존재하는 모든 사용자 단말들의 상태를 동기화하여, 사용자 단말 동기적으로 진전(進展)되도록 할 수 있다. 그리고 프로토콜 실행 모듈(130)은 결제 경로 상에 존재하는 사용자 단말들에게 상태 전이 명령을 전송할 수 있다.In order to process the requested payment, the
블록체인 네트워크 통신부(140)는 블록체인에 존재하는 스마트 컨트랙트의 정보를 수신하도록 할 수 있다. 구체적으로 이더리움 상 web3 기반 원격 프로시저 호출(JSON-RPC)을 담당하는 모듈 또는 하이퍼레저/패브릭(Hyperledger/Fabric) SDK 기반 트랜잭션 제출을 담당하는 모듈일 수 있다.The block chain
도 3은 본 발명의 일 실시예에 따른 결제 채널 스마트 컨트랙트(300)의 블록도이다.3 is a block diagram of a payment channel
도 3을 참조하면, 본 발명에 따른 결제 채널 스마트 컨트랙트(300)는 결제 채널 정보 저장부(310), 프로토콜 방출 정보 저장부(320), 결제 채널 생성부(330), 결제 채널 종료부(340), 프로토콜 방출부(350) 및 결제 채널 정산부(360)를 포함한다.Referring to FIG. 3 , the payment channel
결제 채널 정보 저장부(310)는 사용자 단말(410)들 사이에 연결된 결제 채널(420)들에 대한 정보를 저장할 수 있다. 결제 채널 정보 저장부(310)는 결제 채널의 식별자(identifier)값을 키(key)로 사용하여 결제 채널(420)이 실제로 존재하는지 여부를 파악할 수 있다. 결제 채널(420)이 실제 존재하는 경우, 연결을 구성하는 두 사용자 단말(400)의 주소를 값(value)으로 얻을 수 있다.The payment channel
프로토콜 방출 정보 저장부(320)은 결제 네트워크상에서 거래가 이루어지는 도중 임의의 사용자 단말(410)이 이탈한 경우, 어떠한 상태에서 이탈하였는지에 대한 정보를 포함하고 있다.The protocol release
결제 채널 생성부(330)는 사용자 단말(410)로부터 결제 채널(420)의 생성을 요청하는 메시지가 수신되는 경우 호출되는 모듈일 수 있다. 결제 채널(420)은 임의의 두 사용자가 공식적이거나 비공식적인 형태로 결제 채널(420)을 생성할 것이라는 합의를 본 후, 두 사용자 중 한 사용자가 단말을 통해 두 사용자의 공개 주소를 채널 생성 요청 및 보증금을 함께 전달함으로써 생성될 수 있다.The payment
결제 채널 종료부(340)는 임의의 결제 채널에 연결된 사용자 단말(410)로부터 해당 결제 채널의 종료를 요청하는 메시지가 수신되는 경우 호출되는 모듈일 수 있다. 결제 채널 종료부(340)가 결제 채널 종료 요청을 수신하는 경우, 최종적인 잔액(balance) 분배에 대한 정보도 함께 수신할 수 있다. 결제 채널 종료부(340)는 잔액 분배에 대한 정보를 이용하여, 묶여있는 두 사용자의 보증금을 해당 잔액 정보에 따라 결제 채널의 두 사용자의 공개 주소로 각각 알맞게 모두 반환하고, 결제 채널을 종료할 수 있다.The payment
프로토콜 방출부(350)는 사용자 단말(410)로부터 결제 네트워크(400)상에서의 이탈을 요청하는 메시지가 수신되는 경우 호출되는 모듈일 수 있다. 프로토콜 방출부(350)가 결제 네트워크상 방출 요청을 수신하는 경우, 관련 결제 채널들의 상태 정보, 최종적인 잔액(balance) 분배 정보 및 결제 금액에 대한 정보를 함께 수신할 수 있다. 프로토콜 방출부(350)는 관련 결제 채널들의 최종 상태 정보, 최종적인 잔액 분배 정보 및 결제 금액에 대한 정보를 이용하여, 해당 결제 채널들을 정산하고 프로토콜 방출 정보 저장부(320)에 방출 정보를 등록할 수 있다.The
결제 채널 정산부(360)는 결제 네트워크에 관련된 사용자 단말(410)로부터 관련 결제 채널들의 정산을 요청하는 메시지가 수신되는 경우 호출되는 모듈일 수 있다. 결제 채널 정산부(360)가 결제 채널 정산 요청을 수신하는 경우, 관련 결제 채널들의 상태 정보, 최종적인 잔액(balance) 분배 정보 및 결제 금액에 대한 정보를 함께 수신할 수 있다. 결제 채널 정산부(360)는 최종적인 잔액 분배 정보를 이용하여, 묶여있는 두 사용자의 보증금을 해당 잔액 정보에 따라 결제 채널의 두 사용자의 공개 주소로 각각 알맞게 모두 반환하고, 결제 채널을 종료할 수 있다.The payment
도 4는 본 발명의 일 실시예에 따른 결제 네트워크(400)에서의 사용자 단말(410)간 결제 채널(420)의 사용을 도시한 개념도이다. 4 is a conceptual diagram illustrating use of a payment channel 420 between
도 4를 참조하면, 본 발명에 따른 일 실시예로서, 두 사용자 단말(410A, 410B)간 결제 채널(420)의 사용 과정이 도시되어 있다. Referring to FIG. 4 , as an embodiment according to the present invention, a process of using a payment channel 420 between two
사용자 단말들(410A, 410B)이 결제 채널(420)에 특정한 동작을 행하기 위해서는 비신뢰 실행 환경(600)의 명령이 반드시 신뢰 실행 환경(500)을 경유하여야 한다. 예를 들어, 신뢰 실행 환경(500)에 의해 반환된 명령을 통해 결제 채널(420)과 관련된 동작을 수행할 수 있다.In order for the
사용자 단말들(410A, 410B) 각각은 신뢰 실행 환경(Trusted Execution Environment, TEE)을 이용하여, 공개 주소(public address)와 개인 키(private key)를 생성할 수 있다. 그리고 신뢰 실행 환경(500)은 제1 사용자 단말(410A)의 공개 주소 및 제2 사용자 단말(410B)의 공개 주소가 포함된 정보를 이용하여 트랜젝션을 생성할 수 있다.Each of the
신뢰 실행 환경(500)은 공개 주소(public address)를 생성한 후 해당 주소에 대한 개인키(private key)는 내부에 저장할 수 있다. 결제 채널(420)과 관련된 모든 동작은 신뢰 실행 환경 내부에 저장된 개인키와 연계되어 있으므로, 사용자는 결제 채널(420)에 대한 임의의 행동을 취할 수 없다. 결제 채널(420)로 연결된 두 사용자 단말(410A, 410B)이 신뢰 실행 환경 위에서 동작하게 되면, 결제 채널(420)과 관련된 작업 명령은 반드시 미리 정의된 동작을 통한 결과가 반환되기 때문에 사용자 단말들(410A, 410B)이 임의로 행동할 수 없다. 이 경우, 사용자 단말들(410A, 410B)의 올바른 동작이 보장되기 때문에 과거의 합의된 트랜잭션들이 블록체인에 올라올 수 없게 되어 온체인 활동을 감시하지 않아도 된다.After the trusted
또한 신뢰 실행 실행 환경을 활용하는 경우, 각 사용자 단말들(410A, 410B)의 임의적인 행동을 방지하기 때문에, 여러 경우의 수를 생각하지 않아도 되고 따라서 오프체인 결제 채널 프로토콜의 구성을 단순하게 만들 수 있다. 그리고 서비스 제공자 서버(100)가 프로토콜의 실행 상태를 결제와 관련된 사용자 단말들에게 한 번에 전달함으로써, 사용자들의 상태도 함께 갱신되고 동기화될 수 있다. 이로 인해 결제 처리에 필요한 시간을 줄일 수 있고, 결과적으로 담보 비용을 줄일 수 있다. 한편, 상기 신뢰 실행 환경(500)은 제1 사용자 단말(410A) 및 제2 사용자 단말(410B) 내에 배치될 수 있다.In addition, when using the trusted execution execution environment, arbitrary actions of each
신뢰 실행 환경(500)은 TXT(Trusted Execution Technology), ME(Manageability Engine), TrustZone Security System, VTx(Virtualization Technology), microcode enforced thread, 메모리 액세스 분리 등과 같은 공지된 다양한 기술들에 의해 제공될 수 있다.The trusted
도 5a 및 도 5b는 본 발명의 일 실시예에 따른 오프 체인 결제 시스템(1000)의 동작 과정을 나타낸 순서도이다.5A and 5B are flowcharts illustrating an operation process of the off-
도 5a 및 도 5b를 참조하면, 서비스 제공자 서버(100)는 복수의 사용자 단말(410)들에게 메시지를 전달하여 정보를 공유하고, 결제 채널 진행 과정의 중간 단계를 동기화 시킬 수 있다. 여기서 복수의 사용자 단말들(410)은 결제 채널 네트워크(400)를 구성하는 노드로 볼 수 있다.Referring to FIGS. 5A and 5B , the
복수의 사용자 단말(410) 중 어느 하나의 사용자 단말(410A)이 다른 특정 사용자 단말(410B)에게 결제 작업을 수행하길 원하는 경우, 결제 작업을 요청하는 사용자 단말은 결제 요청 메시지를 서비스 제공자 서버(100)에게 전송할 수 있다(S501). 상기 결제 요청 메시지는 결제 작업을 수행하려는 사용자 단말들(410A, 410B)의 공개 주소(public address)가 포함된 정보를 이용하여 생성된 트랜잭션 정보를 포함할 수 있다. 여기서 상기 사용자 단말들(410A, 410B)의 공개 주소는 신뢰 실행 환경(trusted execution environment, TEE)을 이용하여 생성된 것일 수 있다.When any one
서비스 제공자 서버(100)가 어느 하나의 사용자 단말로부터 결제 요청 메시지(또는 결제 요청 정보)를 수신하면, 서비스 제공자 서버(100)는 결제 네트워크(400)상의 결제 채널(420)들이 구성되어 있는 형태를 파악하기 위해, 결제 채널 정보 데이터 베이스(DB)(200)에 결제 채널(420)들의 구성에 관한 정보들을 요청할 수 있다(S502).When the
서비스 제공자 서버(100)는 결제 채널 정보 데이터 베이스(DB)(200)로부터 결제 채널(420)과 관련된 정보를 수신할 수 있다(S503). 다시 말해, 결제 채널 정보 데이터 베이스(DB)(200)는 서비스 제공자 서버(100)에 결제 채널(420)과 관련된 정보를 반환할 수 있다(S503).The
서비스 제공자 서버(100)는 요청한 정보를 전달 받은 후, 해당 결제 채널(420)들에 대한 정보를 바탕으로 결제 작업을 수행하기를 원하는 사용자 단말(410A)과 돈을 받게 될 사용자 단말(410B)사이의 최적의 결제 경로를 계산할수 있다(S504). 이후 결제 네트워크 맵(payment network map)을 구성할 수 있다(S505). 상기 S504 내지 S505 단계는 서비스 제공자 서버(100)의 결제경로 계산 모듈(120)에 의하여 수행될 수 있다.After receiving the requested information, the
서비스 제공자 서버(100)는 S504, S505 단계를 통해 계산된 결제 네트워크 상에 존재하는 모든 결제 채널(420)들이 결제 요청을 처리할 수 있을 만한 잔액을 보유하고 있는지 여부를 검증하고, 결제 참여 의사를 확인하기 위해, 최적 결제 경로에 포함된 사용자 단말들에게 결제에 참여할 것을 요청할 수 있다(S506).The
결제에 참여할 것을 요청받은 단말들은 각자의 채널을 갱신이전(PRE-UPDATE) 상태로 전이할 수 있다(S507). 그리고 사용자 단말들은 갱신이전 상태로 전이된 채널 정보를 서비스 제공자 서버(100)로 전달할 수 있다(S508).The terminals requested to participate in the payment may transition their respective channels to a PRE-UPDATE state (S507). In addition, the user terminals may transmit the channel information transferred to the state before the update to the service provider server 100 (S508).
서비스 제공자 서버(100)는 결제 네트워크에 존재하는 모든 단말들로부터 결제 참여 의사를 수신할 수 있고, 결제 네트워크에 존재하는 모든 단말들로부터 결제 참여 의사가 수신되었는지 여부를 확인할수 있다(S509). The
서비스 제공자 서버(100)는 결제요청에 대응하는 결제 관련 정보를 생성하여, 결제 네트워크에 존재하는 사용자 단말들에게 신뢰 실행 환경 내에 존재하는 관련 결제 채널들의 정보를 결제 완료 상태로 갱신할 것을 요청할 수 있다(S510).The
사용자 단말(410)들은 신뢰 실행 환경 내에 존재하는 관련 결제 채널들의 정보를 결제 완료 상태로 갱신한 후, 자신의 채널을 갱신이후(POST-UPDATE) 상태로 전이시킬 수 있다(S511). 그리고 각 사용자 단말은 갱신 완료 사실을 서비스 제공자 서버(100)로 전달할 수 있다(S512).After the
서비스 제공자 서버(100)는 해당 경로에 존재하는 모든 사용자 단말들로부터 신뢰 실행 환경을 통한 갱신 완료 정보를 전달 받았는지 여부를 확인한 후(S513), 결제 완료 메시지를 각 사용자 단말들에게 전달할 수 있다(S514). S506 내지 S514 단계는 서비스 제공자 서버(100)의 프로토콜 실행 모듈(130)에 의하여 수행될 수 있다.The
도 6은 본 발명의 일 실시예에 따른 사용자 단말(410)의 상태 전이도를 나타낸 개념도이다.6 is a conceptual diagram illustrating a state transition diagram of a
도 6 및 도5 를 함께 참조하여 설명한다. 사용자 단말의 채널이 결제 경로에 연관되지 않았다면, 사용자 단말의 상태는 휴식 상태이다(S601). 휴식 상태에서 서비스 제공자 서버(100)로부터 결제 네트워크 구성 요청을 받는 후(S602), 결제 네트워크 구성에 동의한다는 메시지를 다시 서비스 제공자 서버(100)에 전달하면(S603), 사용자 단말은 채널을 갱신이전 상태로 전이시킬 수 있다(S604).It will be described with reference to FIGS. 6 and 5 together. If the channel of the user terminal is not related to the payment path, the state of the user terminal is the resting state (S601). After receiving a payment network configuration request from the
한편, 갱신이전 상태의 사용자 단말이 서비스 제공자 서버(100)로부터 신뢰 실행 환경 내에 존재하는 관련 결제 채널들의 정보를 결제 완료 상태로 갱신할 것을 요청 받은 후(S605), 신뢰 실행 환경 내에 존재하는 관련 결제 채널들의 정보를 결제 완료 상태로 갱신하여, 갱신 완료 사실을 다시 서비스 제공자 서버(100)에 전달하면(S606), 사용자 단말의 상태는 갱신이후 상태로 전이될 수 있다(S607).On the other hand, after the user terminal in the state before the update receives a request from the
한편, 서명 상태에서 서비스 제공자 서버(100) 로부터 결제 완료 메시지를 수신하면(S608), 사용자 단말의 상태는 휴식 상태(S601)로 전이될 수 있다.Meanwhile, when a payment completion message is received from the
본 발명의 실시예에 따른 방법의 동작은 컴퓨터로 읽을 수 있는 기록매체에 컴퓨터가 읽을 수 있는 프로그램 또는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록매체는 컴퓨터 시스템에 의해 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다. 또한 컴퓨터가 읽을 수 있는 기록매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어 분산 방식으로 컴퓨터로 읽을 수 있는 프로그램 또는 코드가 저장되고 실행될 수 있다.The operation of the method according to the embodiment of the present invention can be implemented as a computer-readable program or code on a computer-readable recording medium. The computer-readable recording medium includes all types of recording devices in which data that can be read by a computer system is stored. In addition, the computer-readable recording medium may be distributed in a network-connected computer system to store and execute computer-readable programs or codes in a distributed manner.
또한, 컴퓨터가 읽을 수 있는 기록매체는 롬(rom), 램(ram), 플래시 메모리(flash memory) 등과 같이 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치를 포함할 수 있다. 프로그램 명령은 컴파일러(compiler)에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터(interpreter) 등을 사용해서 컴퓨터에 의해 실행될 수 있는 고급 언어 코드를 포함할 수 있다.In addition, the computer-readable recording medium may include a hardware device specially configured to store and execute program instructions, such as ROM, RAM, and flash memory. The program instructions may include not only machine language codes such as those generated by a compiler, but also high-level language codes that can be executed by a computer using an interpreter or the like.
본 발명의 일부 측면들은 장치의 문맥에서 설명되었으나, 그것은 상응하는 방법에 따른 설명 또한 나타낼 수 있고, 여기서 블록 또는 장치는 방법 단계 또는 방법 단계의 특징에 상응한다. 유사하게, 방법의 문맥에서 설명된 측면들은 또한 상응하는 블록 또는 아이템 또는 상응하는 장치의 특징으로 나타낼 수 있다. 방법 단계들의 몇몇 또는 전부는 예를 들어, 마이크로프로세서, 프로그램 가능한 컴퓨터 또는 전자 회로와 같은 하드웨어 장치에 의해(또는 이용하여) 수행될 수 있다. 몇몇의 실시예에서, 가장 중요한 방법 단계들의 하나 이상은 이와 같은 장치에 의해 수행될 수 있다. Although some aspects of the invention have been described in the context of an apparatus, it may also represent a description according to a corresponding method, wherein a block or apparatus corresponds to a method step or feature of a method step. Similarly, aspects described in the context of a method may also represent a corresponding block or item or a corresponding device feature. Some or all of the method steps may be performed by (or using) a hardware device such as, for example, a microprocessor, a programmable computer, or an electronic circuit. In some embodiments, one or more of the most important method steps may be performed by such an apparatus.
실시예들에서, 프로그램 가능한 로직 장치(예를 들어, 필드 프로그머블 게이트 어레이)가 여기서 설명된 방법들의 기능의 일부 또는 전부를 수행하기 위해 사용될 수 있다. 실시예들에서, 필드 프로그머블 게이트 어레이는 여기서 설명된 방법들 중 하나를 수행하기 위한 마이크로프로세서와 함께 작동할 수 있다. 일반적으로, 방법들은 어떤 하드웨어 장치에 의해 수행되는 것이 바람직하다.In embodiments, a programmable logic device (eg, a field programmable gate array) may be used to perform some or all of the functionality of the methods described herein. In embodiments, the field programmable gate array may operate in conjunction with a microprocessor to perform one of the methods described herein. In general, the methods are preferably performed by some hardware device.
이상 본 발명의 바람직한 실시예를 참조하여 설명하였지만, 해당 기술 분야의 숙련된 당업자는 하기의 특허 청구의 범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.Although described above with reference to the preferred embodiments of the present invention, those skilled in the art can variously modify and change the present invention within the scope without departing from the spirit and scope of the present invention as set forth in the claims below. You will understand that you can.
1000: 오프체인 결제 시스템
100: 서비스 제공자 서버
110: 게약정보 동기화 모듈 120: 결제경로 계산 모듈
130: 프로토콜 실행 모듈 140: 블록체인 네트워크 통신 모듈
200: 결제채널 정보 데이터베이스(DB)
300: 결제채널 스마트 컨트랙트
310: 결제채널 정보 저장부 320: 프로토콜 방출 정보부
330: 결제채널 생성부 340: 결제 채널 종료부
350: 프로토콜 방출부 360: 결제 채널 정산부
400: 결제 네트워크
410, 410A, 410B, 410C, 410D: 사용자 단말
420: 결제채널
500: 신뢰 실행 환경(TEE)
600: 비신뢰 실행 환경1000: Off-chain payment system
100: service provider server
110: contract information synchronization module 120: payment path calculation module
130: protocol execution module 140: blockchain network communication module
200: payment channel information database (DB)
300: payment channel smart contract
310: payment channel information storage unit 320: protocol release information unit
330: payment channel generation unit 340: payment channel end unit
350: protocol emission unit 360: payment channel settlement unit
400: payment network
410, 410A, 410B, 410C, 410D: user terminal
420: payment channel
500: Trusted Execution Environment (TEE)
600: Untrusted execution environment
Claims (19)
신뢰 실행 환경(Trusted Execution Environment, TEE)을 이용하여, 상기 제1 단말 및 상기 제2 단말의 공개 주소(public address)와 개인 키(private key)를 생성하는 단계;
상기 복수의 단말 중, 결제를 수행하려는 상기 제1 단말 및 제2 단말 간의 결제 요청 정보를 수신하여 상기 제1 단말과 상기 제2 단말간의 연결 정보를 이용하여 생성된 결제 네트워크 맵(payment network map)에 기초하여 계산되는 최단 시간 소요 결제 경로를 계산하는 단계;
계산된 상기 최단 시간 소요 결제 경로에 존재하는 단말들에게 상기 최단 시간 소요 결제 경로 생성 후, 상기 최단 시간 소요 결제 경로에 존재하는 단말들의 상태를 갱신이전 상태(PRE-UPDATE) 및 갱신이후 상태(POST-UPDATE)로 전이할 것을 요청하는 상태 전이 명령을 전송하는 단계; 및
상기 제1 단말의 공개 주소 및 상기 제2 단말의 공개 주소가 포함된 정보를 이용하여 트랜젝션을 생성하는 단계;
를 포함하는 단말 간 동작 방법In order to perform a payment between a first terminal and a second terminal among a plurality of terminals in an off-chain, a system including a block chain network and a server executing a smart contract program to control the operation between terminals As,
generating public addresses and private keys of the first terminal and the second terminal using a Trusted Execution Environment (TEE);
A payment network map generated using connection information between the first terminal and the second terminal by receiving payment request information between the first terminal and the second terminal to be paid among the plurality of terminals calculating a payment path that takes the shortest time calculated based on ;
After generating the shortest time required payment path to the terminals existing in the calculated shortest time required payment path, the state of terminals existing in the shortest time required payment path is updated before updating (PRE-UPDATE) and after updating (POST) sending a state transition command requesting a transition to -UPDATE); and
generating a transaction using information including the public address of the first terminal and the public address of the second terminal;
Inter-terminal operation method comprising
상기 개인 키는 상기 신뢰 실행 환경 내에 저장되는 것을 특징으로 하는 단말 간 동작 방법.According to claim 1,
wherein the private key is stored in the trusted execution environment.
상기 제1 단말 및 상기 제2 단말 간에는 결제 채널(payment channel)이 설정되고,
상기 제1 단말 및 상기 제2 단말은 상기 신뢰 실행 환경에 의해 반환된 명령을 통해 상기 결제 채널과 관련된 동작을 수행하는 것을 특징으로 하는 단말 간 동작 방법.3. The method of claim 2,
A payment channel is established between the first terminal and the second terminal,
wherein the first terminal and the second terminal perform an operation related to the payment channel through a command returned by the trusted execution environment.
상기 결제 채널과 관련된 동작은 상기 신뢰 실행 환경 내에 저장된 개인 키와 연계되는 것을 특징으로 하는 단말 간 동작 방법.4. The method of claim 3,
and the operation related to the payment channel is associated with a private key stored in the trusted execution environment.
상기 신뢰 실행 환경은 상기 제1 단말 및 상기 제2 단말 내에 배치되는 것을 특징으로 하는 단말 간 동작 방법.According to claim 1,
wherein the trusted execution environment is disposed in the first terminal and the second terminal.
복수의 단말 및 상기 복수의 단말을 연결하는 결제 채널을 포함하는 결제 네트워크; 및
상기 복수의 단말 중, 결제를 수행하려는 제1 단말 및 제2 단말 간의 결제 요청 정보를 수신하여 상기 제1 단말과 상기 제2 단말간의 연결 정보를 이용하여 생성된 결제 네트워크 맵(payment network map)에 기초하여 계산되는 최단 시간 소요 결제 경로를 계산하는 결제 경로 계산 모듈, 상기 계산된 최단 시간 소요 결제 경로에 존재하는 단말들에게 상기 최단 시간 소요 결제 경로 생성 후, 상기 최단 시간 소요 결제 경로에 존재하는 단말들의 상태를 갱신이전 상태(PRE-UPDATE) 및 갱신이후 상태(POST-UPDATE)로 전이할 것을 요청하는 상태 전이 명령을 전송하는 프로토콜 실행 모듈을 포함하는 서비스 제공자 서버;
를 포함하여, 상기 결제 요청 정보는 상기 제1 단말 및 상기 제2 단말의 공개 주소(public address)가 포함된 정보를 이용하여 생성된 트랜잭션 정보를 포함하며, 상기 제1 단말 및 상기 제2 단말의 공개 주소는 신뢰 실행 환경(trusted execution environment, TEE)을 이용하여 생성된 것을 특징으로 하는, 시스템.A system for performing payments off-chain,
a payment network comprising a plurality of terminals and a payment channel connecting the plurality of terminals; and
Among the plurality of terminals, by receiving payment request information between a first terminal and a second terminal to perform a payment, the payment network map is generated using connection information between the first terminal and the second terminal. A payment path calculation module for calculating the shortest time required payment path calculated based on the shortest time required payment path, after generating the shortest time required payment path to the terminals existing in the calculated shortest time required payment path, a terminal existing in the shortest time required payment path a service provider server including a protocol execution module that transmits a state transition command requesting to transition the states to a pre-update state (PRE-UPDATE) and a post-update state (POST-UPDATE);
Including, the payment request information includes transaction information generated using information including public addresses of the first terminal and the second terminal, and The system of claim 1 , wherein the public address is generated using a trusted execution environment (TEE).
상기 제1 단말 및 상기 제2 단말은 개인 키(private key)를 더 생성하고, 상기 개인 키는 상기 신뢰 실행 환경 내에 저장하는 것을 특징으로 하는, 시스템.7. The method of claim 6,
and the first terminal and the second terminal further generate a private key, and the private key is stored in the trusted execution environment.
상기 제1 단말 및 상기 제2 단말 간에는 결제 경로(payment path)가 설정되고,
상기 제1 단말 및 상기 제2 단말은 상기 신뢰 실행 환경에 의해 반환된 명령을 통해 상기 결제 경로와 관련된 동작을 수행하는 것을 특징으로 하는 시스템.8. The method of claim 7,
A payment path is established between the first terminal and the second terminal,
The system of claim 1, wherein the first terminal and the second terminal perform an operation related to the payment path through a command returned by the trusted execution environment.
상기 결제 채널과 관련된 동작은 상기 신뢰 실행 환경 내에 저장된 개인 키와 연계되는 것을 특징으로 하는, 시스템.9. The method of claim 8,
and the operation associated with the payment channel is associated with a private key stored within the trusted execution environment.
상기 신뢰 실행 환경은 상기 제1 단말 및 상기 제2 단말 내에 배치되는 것을 특징으로 하는, 시스템.7. The method of claim 6,
and the trusted execution environment is disposed in the first terminal and the second terminal.
상기 제1 단말과 상기 제2 단말간의 최단 시간 소요 결제 경로는,
상기 복수 단말의 연결 정보를 이용하여 생성된 결제 네트워크 맵(payment network map)에 기초하여 계산되는 것을 특징으로 하는, 시스템.7. The method of claim 6,
The shortest time required payment path between the first terminal and the second terminal,
The system, characterized in that calculated based on a payment network map (payment network map) generated using the connection information of the plurality of terminals.
상기 프로토콜 실행 모듈은,
상기 최단 시간 소요 결제 경로 생성 후, 상기 최단 시간 소요 결제 경로에 존재하는 단말들의 상태를 갱신이전 상태(PRE-UPDATE)로 전이할 것을 요청하는 것을 특징으로 하는, 시스템.7. The method of claim 6,
The protocol execution module,
After the generation of the shortest time required payment path, the system, characterized in that requesting to change the state of the terminals existing in the shortest time required payment path to a pre-update state (PRE-UPDATE).
상기 프로토콜 실행 모듈은,
상기 최단 시간 소요 결제 경로에 존재하는 단말들로부터 갱신이전 상태의 채널 정보를 수신한 경우, 상기 최단 시간 소요 결제 경로에 존재하는 채널들의 잔액 정보에 기초하여 상기 최단 시간 소요 결제 경로에 존재하는 채널들이 상기 결제 요청 정보를 처리할 수 있는 잔액을 보유하고 있는 지 여부를 검증하는 것을 특징으로 하는, 시스템.13. The method of claim 12,
The protocol execution module,
When channel information in a state before update is received from terminals existing in the shortest time required payment path, the channels existing in the shortest time required payment path are based on the balance information of channels existing in the shortest time required payment path The system, characterized in that it verifies whether it has a balance capable of processing the payment request information.
상기 프로토콜 실행 모듈은,
상기 최단 시간 소요 결제 경로에 존재하는 채널들이 상기 결제 요청 정보를 처리할 수 있는 잔액을 보유하고 있는 것으로 검증된 경우, 상기 최단 시간 소요 결제 경로에 존재하는 단말들의 상태를 갱신이후(POST-UPDATE) 상태로 전이할 것을 요청하는 것을 특징으로 하는, 시스템.14. The method of claim 13,
The protocol execution module,
When it is verified that the channels existing in the shortest time required payment path have a balance that can process the payment request information, after updating the status of the terminals existing in the shortest time required payment path (POST-UPDATE) A system, characterized in that requesting a transition to a state.
상기 프로토콜 실행 모듈은,
상기 갱신이후 상태로 전이된 상기 최단 시간 소요 결제 경로에 존재하는 단말들로부터 신뢰 실행 환경에 기초한 갱신 정보가 포함된 결제 관련 정보를 수신하고, 결제 실행 메시지를 상기 최단 시간 소요 결제 경로에 존재하는 단말들에게 전송하는 것을 특징으로 하는, 시스템.15. The method of claim 14,
The protocol execution module,
Receive payment-related information including update information based on a trusted execution environment from terminals existing in the shortest time required payment path transitioned to the state after the update, and send a payment execution message to a terminal existing in the shortest time required payment path A system, characterized in that it transmits to them.
상기 시스템은,
상기 결제 네트워크에 포함된 단말간의 연결 정보가 저장된 결제 채널 정보 데이터베이스(DB)를 더 포함하는 것을 특징으로 하는, 시스템.7. The method of claim 6,
The system is
The system, characterized in that it further comprises a payment channel information database (DB) in which connection information between terminals included in the payment network is stored.
상기 시스템은,
상기 결제 네트워크에 포함된 단말 간의 채널 정보가 포함된 결제 채널 스마트 컨트랙트를 더 포함하는 것을 특징으로 하는, 시스템.7. The method of claim 6,
The system is
The system, characterized in that it further comprises a payment channel smart contract including channel information between terminals included in the payment network.
서비스 제공 서버는,
상기 결제 채널 스마트 컨트랙트와 동기화를 수행하는 계약 정보 동기화 모듈을 더 포함하는 것을 특징으로 하는, 시스템.18. The method of claim 17,
The service providing server,
The system, characterized in that it further comprises a contract information synchronization module for performing synchronization with the payment channel smart contract.
서비스 제공 서버는,
블록체인에 존재하는 스마트 컨트랙트 정보를 수신하는 블록체인 네트워크 통신부를 더 포함하는 것을 특징으로 하는, 시스템.
18. The method of claim 17,
The service providing server,
The system, characterized in that it further comprises a block chain network communication unit for receiving smart contract information existing in the block chain.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020190132499A KR102428950B1 (en) | 2019-10-23 | 2019-10-23 | Method and system for off-chain payment |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020190132499A KR102428950B1 (en) | 2019-10-23 | 2019-10-23 | Method and system for off-chain payment |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20210048336A KR20210048336A (en) | 2021-05-03 |
KR102428950B1 true KR102428950B1 (en) | 2022-08-03 |
Family
ID=75910866
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020190132499A KR102428950B1 (en) | 2019-10-23 | 2019-10-23 | Method and system for off-chain payment |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR102428950B1 (en) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102685884B1 (en) * | 2021-11-16 | 2024-07-16 | 포항공과대학교 산학협력단 | Asset trading system in one or more blockchain environments and asset trading method and apparatus thereof |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2015220699A (en) * | 2014-05-21 | 2015-12-07 | 国立研究開発法人情報通信研究機構 | Method for searching cache node |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102111368B1 (en) * | 2017-08-28 | 2020-05-15 | 김상한 | System and method for trading virtual currency |
KR102080497B1 (en) * | 2017-10-31 | 2020-02-24 | 삼성에스디에스 주식회사 | Method for Exchanging Data between Channels of System based on Multi-Channel Blockchain and System thereof |
-
2019
- 2019-10-23 KR KR1020190132499A patent/KR102428950B1/en active IP Right Grant
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2015220699A (en) * | 2014-05-21 | 2015-12-07 | 国立研究開発法人情報通信研究機構 | Method for searching cache node |
Non-Patent Citations (2)
Title |
---|
‘삼성 블록체인 키스토어 SDK의 모든 것’, MK뉴스(2019.07.16. 게재)* |
‘특별한 디앱 개발의 필수품 `제너럴라이즈드` 스테이트 채널’, MK뉴스(2019.02.12. 게재)* |
Also Published As
Publication number | Publication date |
---|---|
KR20210048336A (en) | 2021-05-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10204148B2 (en) | Method and system for tuning blockchain scalability, decentralization, and security for fast and low-cost payment and transaction processing | |
US20240048376A1 (en) | Methods and systems implemented in a network architecture with nodes capable of performing message-based transactions | |
US20220108285A1 (en) | Methods and Systems for Object Validated Blockchain Accounts | |
JP6808057B2 (en) | Blockchain data protection based on generic account model and homomorphic encryption | |
US10289631B2 (en) | Method and system for tuning blockchain scalability for fast and low-cost payment and transaction processing | |
JP7021747B2 (en) | Payment system, payment method, user device, payment program | |
US20240296429A1 (en) | Information transaction infrastructure | |
CN108351882B (en) | Method and apparatus for the distributed data base in network | |
CN111066047B (en) | Implementing blockchain-based workflows | |
KR102050129B1 (en) | Block chain supporting multiple one-way functions used for verification of blocks | |
KR101994455B1 (en) | distributed network system operating a group for the nodes included in the system | |
JP2021131870A (en) | Cross-blockchain authentication method and apparatus | |
US20190036702A1 (en) | Private node, processing method for private node, and program for same | |
CN108898390A (en) | Intelligent contract call method and device, electronic equipment based on block chain | |
WO2022182674A1 (en) | Advanced non-fungible token blockchain architecture | |
JP7011203B2 (en) | Payment system, payment method, user device, payment program | |
CN111108521A (en) | Implementing a blockchain based workflow | |
WO2022103589A1 (en) | Blockchain data compression and storage | |
TW202139127A (en) | Compute services for a platform of services associated with a blockchain | |
CN113994628A (en) | Streaming of partial data over side channels | |
KR102428950B1 (en) | Method and system for off-chain payment | |
Decker | On the scalability and security of bitcoin | |
WO2023215103A1 (en) | Hot wallet protection using a layer-2 blockchain network | |
KR102565850B1 (en) | A TEE-based decentralized oracle system and method of transferring external data in the oracle system | |
Sidhu et al. | Trust development for blockchain interoperability using self-sovereign identity integration |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
E90F | Notification of reason for final refusal | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right |