KR20200034565A - Node device constituting a block-chain network and an operation method of the node device - Google Patents

Node device constituting a block-chain network and an operation method of the node device Download PDF

Info

Publication number
KR20200034565A
KR20200034565A KR1020190060586A KR20190060586A KR20200034565A KR 20200034565 A KR20200034565 A KR 20200034565A KR 1020190060586 A KR1020190060586 A KR 1020190060586A KR 20190060586 A KR20190060586 A KR 20190060586A KR 20200034565 A KR20200034565 A KR 20200034565A
Authority
KR
South Korea
Prior art keywords
public
private
block
key
blockchain
Prior art date
Application number
KR1020190060586A
Other languages
Korean (ko)
Other versions
KR102248270B1 (en
Inventor
김성완
이형택
Original Assignee
김성완
이형택
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 김성완, 이형택 filed Critical 김성완
Priority to KR1020190060586A priority Critical patent/KR102248270B1/en
Publication of KR20200034565A publication Critical patent/KR20200034565A/en
Application granted granted Critical
Publication of KR102248270B1 publication Critical patent/KR102248270B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06QDATA PROCESSING SYSTEMS OR METHODS, SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL, SUPERVISORY OR FORECASTING PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL, SUPERVISORY OR FORECASTING PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/382Payment protocols; Details thereof insuring higher security of transaction
    • G06Q20/3829Payment protocols; Details thereof insuring higher security of transaction involving key management
    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06QDATA PROCESSING SYSTEMS OR METHODS, SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL, SUPERVISORY OR FORECASTING PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL, SUPERVISORY OR FORECASTING PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/30Payment architectures, schemes or protocols characterised by the use of specific devices or networks
    • G06Q20/36Payment architectures, schemes or protocols characterised by the use of specific devices or networks using electronic wallets or electronic money safes
    • G06Q20/367Payment architectures, schemes or protocols characterised by the use of specific devices or networks using electronic wallets or electronic money safes involving electronic purses or money safes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network-specific arrangements or communication protocols supporting networked applications
    • H04L67/10Network-specific arrangements or communication protocols supporting networked applications in which an application is distributed across nodes in the network
    • H04L67/1097Network-specific arrangements or communication protocols supporting networked applications in which an application is distributed across nodes in the network for distributed storage of data in a network, e.g. network file system [NFS], transport mechanisms for storage area networks [SAN] or network attached storage [NAS]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communication
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0869Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communication
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0891Revocation or update of secret information, e.g. encryption key update or rekeying
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communication
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0894Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/38Chaining, e.g. hash chain or certificate chain

Abstract

Disclosed are a node device making up a block chain network and an operating method thereof which prevent users from personally owning private keys of the users, strengthen security, and can be linked to block chain-based electronic money of various types. According to an aspect of the present invention, the node device of a first block chain network consisting of a plurality of node devices comprises: a communication circuit to communicate with a client device and other node devices; one or more processors; and a memory to store instructions executable by the one or more processors. The one or more processors generate a first private key, a first public key, and a first wallet address to be used in a first block chain network by a user using the client device in accordance with a request of the client device, store the first public key and the first wallet address in a public block of a public block chain, generate a first random encoding key after storing the first private key in a non-public block of a non-public block chain to encode the non-public block storing the first private key, divide the first random encoding key into a prescribed number of fragments to distribute and store the divided fragments in other node devices, and decode the first private key from the encoded non-public block based on the divided fragments to use the first private key after receiving the divided fragments from other node devices when a transaction of the user occurs.

Description

블록체인 네트워크를 구성하는 노드 장치 및 그 노드 장치의 동작 방법{Node device constituting a block-chain network and an operation method of the node device}Node device constituting a block-chain network and an operation method of the node device
본 발명은 블록체인 기술에 관한 것으로서, 보다 구체적으로 개인키를 사용자가 소유하지 않도록 하고 또한 블록체인 기반의 다양한 종류의 전자 화폐와 연동할 수 있는 블록체인 네트워크를 구성하는 노드 장치 및 그 노드 장치의 동작 방법에 관한 것이다. The present invention relates to a blockchain technology, and more specifically, to prevent a user from owning a private key, and further comprising a node device and a node device constituting a blockchain network capable of interworking with various types of electronic money based on the blockchain. It relates to a method of operation.
일반적으로 전자 화폐는 인터넷에서 가상으로 존재하는 디지털 통화이다. 이와 같은 전자 화폐 중 대표적인 전자 화폐인 비트코인(Bitcoin)은 통화를 발행하고 관리하는 중앙 장치가 존재하지 않는 구조를 가지고 있으며, 비트코인의 거래는 블록체인을 기반으로 하고 있다. Generally, electronic money is a digital currency that exists virtually on the Internet. Bitcoin, a representative electronic money among such electronic money, has a structure in which there is no central device for issuing and managing currency, and the transaction of Bitcoin is based on a blockchain.
블록체인(blockchain)은 P2P(peer-to-peer) 네트워크에 의해 생성되고 관리되는 위변조 불가능한 분산 저장소이다. 블록체인은 트랜잭션(쌍방간의 쪼갤 수 없는 단위 작업)으로 생성된 데이터 블록들을 체인(chain) 형태로 잇따라 연결한 모음을 의미한다. 한번 기록된 데이터는 위조 또는 변조가 불가능하다. 블록체인에는 일정 시간 동안 사용자들 간에 발생되는 확정된 거래 내역이 저장될 수 있다. 블록체인 네트워크를 구성하는 많은 노드들은 블록체인 사본을 각자 갖고 있으며, 거래 내역은 모두에게 공개될 수 있다. Blockchain is a non-falsifiable distributed storage created and managed by a peer-to-peer (P2P) network. Blockchain means a collection of data blocks created by transactions (indivisible unit work between two parties) in a chain. Once recorded, data cannot be forged or tampered with. In the blockchain, the confirmed transaction history generated between users for a certain period of time can be stored. Many of the nodes that make up the blockchain network each have a copy of the blockchain, and transaction details can be made public.
이와 같이 블록체인을 기반으로 하는 전자 화폐는 공개키 암호 방식을 기반으로 거래가 이루어진다. 전자 화폐를 보유한 사용자는 본인의 지갑 주소가 존재하며 송금을 하거나 거래를 할 때 개인키로 서명을 하여 트랜잭션을 발생시킨다. 따라서 사용자는 본인의 개인키가 유출되지 않도록 잘 보관해야 하는데, 사용자가 개인적으로 개인키를 관리하기에는 어려움이 많고 해킹의 위험에 잘 노출된다.As such, the electronic money based on the blockchain is transacted based on the public key cryptography. Users who have electronic money have their wallet address, and when sending or making a transaction, they sign with a private key to generate a transaction. Therefore, the user should keep his private key well, so that the user has a lot of difficulty in managing the private key personally and is exposed to the risk of hacking.
또한, 전자 화폐의 종류가 다양해지고 있는데 서로 다른 종류의 전자 화폐 간의 연동이 잘 이루어지지 않고 있고, 다양한 종류의 전자 화폐를 각각 이용하기 위해서는 각 전자 화폐의 전용 클라이언트를 이용해야 하는 번거로움이 있다. In addition, the types of electronic money are diversified, and interworking between different types of electronic money is not well performed, and in order to use various types of electronic money, there is a hassle of using a dedicated client of each electronic money.
본 발명은 상술한 문제점을 해결하기 위해 제안된 것으로서, 사용자들이 직접 본인의 개인키를 소유하지 않도록 하면서 보안을 강화하고 또한 블록체인 기반의 다양한 종류의 전자 화폐와 연동할 수 있는 블록체인 네트워크를 구성하는 노드 장치 및 그 노드 장치의 동작 방법을 제공하는데 그 목적이 있다.The present invention has been proposed to solve the above-mentioned problems, and it is possible to enhance security while not allowing users to directly own their own private key, and also construct a blockchain network that can interwork with various types of electronic money based on blockchain. An object of the present invention is to provide a node device and a method of operating the node device.
일 측면에 따른 복수의 노드 장치로 구성되는 제 1 블록체인 네트워크의 노드 장치는, 클라이언트 기기 및 다른 노드 장치들과 통신하는 통신 회로; 하나 이상의 프로세서; 및 상기 하나 이상의 프로세서에 의해 실행 가능한 인스트럭션을 저장하는 메모리를 포함하고, 상기 하나 이상의 프로세서는, 상기 클라이언트 기기의 요청에 따라 상기 클라이언트 기기를 사용하는 사용자가 상기 제 1 블록체인 네트워크 내에서 사용할 제 1 개인키, 제 1 공개키 및 제 1 지갑 주소를 생성하고, 상기 제 1 공개키 및 상기 제 1 지갑 주소를 공개 블록체인의 공개 블록에 저장하고, 상기 제 1 개인키를 비공개 블록체인의 비공개 블록에 저장한 후 제 1 랜덤 암호화 키를 생성하여 상기 제 1 개인키가 저장된 비공개 블록을 암호화하고, 상기 제 1 랜덤 암호화 키를 소정의 개수로 분할하여 분할 조각들을 다른 노드 장치들로 분산하여 저장하며, 상기 사용자의 트랜잭션 발생시 다른 노드 장치들로부터 상기 분할 조각들을 수신한 후 이에 기초하여 상기 암호화된 비공개 블록으로부터 상기 제 1 개인키를 복호화하여 이용한다.A node device of a first blockchain network composed of a plurality of node devices according to an aspect includes: a communication circuit communicating with a client device and other node devices; One or more processors; And a memory for storing instructions executable by the one or more processors, wherein the one or more processors are first used by a user using the client device in the first blockchain network at the request of the client device. Generate a private key, a first public key and a first wallet address, store the first public key and the first wallet address in a public block of a public blockchain, and store the first private key in a private block of a private blockchain After storing the data, the first random encryption key is generated to encrypt the private block in which the first private key is stored, and the first random encryption key is divided into a predetermined number to distribute the divided pieces to other node devices and to store them. When the user's transaction occurs, the divided pieces are received from other node devices and based on this. By decrypting and using the first private key from the encrypted private block.
상기 트랜잭션은 상기 사용자로부터 타 사용자로의 상기 제 1 블록체인 네트워크에서 통용되는 제 1 종류의 코인의 송금으로서, 상기 하나 이상의 프로세서는, 상기 트랜잭션을 상기 제 1 개인키로 서명하여 다른 노드 장치로 전송하여 상기 제 1 공개키로 검증할 수 있도록 하고, 검증 완료시 해당 트랜잭션을 공개 블록체인의 공개 블록에 저장할 수 있다.The transaction is a transfer of a first kind of coin commonly used in the first blockchain network from the user to another user, wherein the one or more processors sign the transaction with the first private key and transmit it to another node device It is possible to verify with the first public key, and upon verification completion, the corresponding transaction can be stored in the public block of the public blockchain.
상기 통신 회로는 제 2 블록체인 네트워크와 더 통신하고, 상기 하나 이상의 프로세서는, 상기 클라이언트 기기로부터 상기 제 2 블록체인 네트워크에서 사용할 지갑 생성 요청을 수신함에 따라 상기 제 2 블록체인 네트워크로 지갑 생성 요청을 전송하고, 상기 지갑 생성 요청에 따라 상기 제 2 블록체인 네트워크에서 생성된 제 2 개인키, 제 2 공개키 및 제 2 지갑 주소를 상기 제 2 블록체인 네트워크로부터 수신하며, 상기 제 2 공개키 및 상기 제 2 지갑 주소를 공개 블록체인의 공개 블록에 저장하고, 상기 제 2 개인키를 비공개 블록체인의 비공개 블록에 저장한 후 제 2 랜덤 암호화 키를 생성하여 상기 제 2 개인키가 저장된 비공개 블록을 암호화하며, 상기 제 2 랜덤 암호화 키를 소정의 개수로 분할하여 분할 조각들을 다른 노드 장치들로 분산하여 저장하고, 상기 사용자의 상기 제 2 블록체인 네트워크로 전송할 트랜잭션 발생시 다른 노드 장치들로부터 상기 제 2 랜덤 암호화 키의 분할 조각들을 수신한 후 이에 기초하여 상기 제 2 개인키가 저장되어 암호화된 비공개 블록으로부터 상기 제 2 개인키를 복호화하여 이용할 수 있다.The communication circuit further communicates with a second blockchain network, and the one or more processors make a wallet creation request to the second blockchain network upon receiving a wallet creation request for use in the second blockchain network from the client device. Transmit, receive the second private key, the second public key and the second wallet address generated in the second blockchain network from the second blockchain network according to the wallet creation request, the second public key and the Store the second wallet address in the public block of the public blockchain, store the second private key in the private block of the private blockchain, and generate a second random encryption key to encrypt the private block in which the second private key is stored The second random encryption key is divided into a predetermined number, and the fragments are distributed to other node devices and stored. When the transaction to be transmitted to the second blockchain network of the user occurs, the divided pieces of the second random encryption key are received from other node devices, and based on this, the second private key is stored and encrypted from the encrypted private block. The second private key can be decrypted and used.
상기 제 2 블록체인 네트워크로 전송할 트랜잭션은, 상기 사용자로부터 타 사용자로의 상기 제 2 블록체인 네트워크에서 통용되는 제 2 종류의 코인의 송금으로서, 상기 하나 이상의 프로세서는, 상기 제 2 블록체인 네트워크로 전송할 트랜잭션을 상기 제 2 개인키로 서명하여 상기 제 2 블록체인 네트워크로 전송하고, 이에 대한 처리 응답을 수신하면, 해당 트랜잭션을 공개 블록체인의 공개 블록에 저장할 수 있다.The transaction to be transmitted to the second blockchain network is a remittance of a second kind of coin commonly used in the second blockchain network from the user to another user, and the one or more processors are to be transmitted to the second blockchain network When a transaction is signed with the second private key and transmitted to the second blockchain network, and a processing response is received, the transaction can be stored in the public block of the public blockchain.
상기 하나 이상의 프로세서는, 상기 클라이언트 기기의 요청에 따라 상기 사용자의 상기 제 2 종류의 코인의 잔액을 공개 블록체인의 공개 블록에서 확인하여 상기 클라이언트 기기로 제공할 수 있다.The one or more processors, upon request of the client device, may check the balance of the second kind of coin of the user in the public block of the public blockchain and provide it to the client device.
상기 제 2 블록체인 네트워크로 전송할 트랜잭션은, 상기 사용자로부터 타 사용자로의 송금으로서 상기 제 2 블록체인 네트워크에서 통용되는 제 2 종류의 코인을 상기 제 1 블록체인 네트워크에서 통용되는 제 1 종류의 코인으로 환전하여 보내는 송금으로서, 상기 하나 이상의 프로세서는, 상기 제 2 블록체인 네트워크로 전송할 트랜잭션에 기록된 상기 타 사용자의 지갑 주소를 상기 제 1 블록체인 네트워크의 제 2 종류의 코인 운용 지갑 주소로 변경한 후 상기 제 2 개인키로 서명하여 상기 제 2 블록체인 네트워크로 전송하고, 이에 대한 처리 응답을 수신하면 해당 트랜잭션을 공개 블록체인의 공개 블록에 저장하고, 또한, 상기 제 1 블록체인 네트워크의 제 1 종류의 코인 운용 지갑 주소로부터 상기 타 사용자의 제 1 지갑 주소로 상기 제 2 종류의 코인의 금액에 상응하는 제 1 종류의 코인이 송금되는 트랜잭션을 공개 블록체인의 공개 블록에 저장할 수 있다.The transaction to be transmitted to the second blockchain network is a second kind of coin commonly used in the second blockchain network as a remittance from the user to another user as a first kind of coin commonly used in the first blockchain network. As a money transfer to be exchanged, the one or more processors, after changing the wallet address of the other user recorded in the transaction to be transmitted to the second blockchain network, to the second type of coin operated wallet address of the first blockchain network The second private key is signed and transmitted to the second blockchain network, and upon receiving a processing response, the transaction is stored in the public block of the public blockchain, and the first kind of the first blockchain network The second kind of coin from the coin operated wallet address to the first wallet address of the other user A transaction in which the first kind of coin corresponding to the amount of money is transferred can be stored in the public block of the public blockchain.
상기 복수의 노드 장치는, 복수의 대표 노드 장치와 복수의 일반 노드 장치를 포함하고, 복수의 대표 노드 장치는 지분 증명에 의해 블록을 생성하여 블록을 동기화하고, 일반 노드 장치는 대표 노드 장치들의 블록들을 동기화하여 저장하며, 상기 제 1 블록체인 네트워크의 노드 장치는, 대표 노드 장치일 수 있다.The plurality of node devices includes a plurality of representative node devices and a plurality of general node devices, and the plurality of representative node devices generate blocks by synchronizing proof of ownership to synchronize blocks, and the general node device is a block of representative node devices. And store them in synchronization, and the node device of the first blockchain network may be a representative node device.
다른 측면에 따른 복수의 노드 장치로 구성되는 제 1 블록체인 네트워크에서 노드 장치의 동작 방법은, 통신망을 통해 연결되는 클라이언트 기기의 요청에 따라 상기 클라이언트 기기를 사용하는 사용자가 상기 제 1 블록체인 네트워크 내에서 사용할 제 1 개인키, 제 1 공개키 및 제 1 지갑 주소를 생성하는 단계; 상기 제 1 공개키 및 상기 제 1 지갑 주소를 공개 블록체인의 공개 블록에 저장하는 단계; 상기 제 1 개인키를 비공개 블록체인의 비공개 블록에 저장한 후 제 1 랜덤 암호화 키를 생성하여 상기 제 1 개인키가 저장된 비공개 블록을 암호화하는 단계; 상기 제 1 랜덤 암호화 키를 소정의 개수로 분할하여 분할 조각들을 다른 노드 장치들로 분산하여 저장하는 단계; 및 상기 사용자의 트랜잭션 발생시 다른 노드 장치들로부터 상기 분할 조각들을 수신한 후 이에 기초하여 상기 암호화된 비공개 블록으로부터 상기 제 1 개인키를 복호화하여 이용하는 단계를 포함한다.A method of operating a node device in a first blockchain network composed of a plurality of node devices according to another aspect is that a user using the client device in response to a request of a client device connected through a communication network is within the first blockchain network. Generating a first private key, a first public key, and a first wallet address to be used in; Storing the first public key and the first wallet address in a public block of a public blockchain; Storing the first private key in a private block of the private blockchain and generating a first random encryption key to encrypt the private block in which the first private key is stored; Dividing the first random encryption key into a predetermined number and distributing and storing the divided pieces to other node devices; And when the user's transaction occurs, receiving the divided pieces from other node devices and decrypting and using the first private key from the encrypted private block based on this.
상기 트랜잭션은 상기 사용자로부터 타 사용자로의 상기 제 1 블록체인 네트워크에서 통용되는 제 1 종류의 코인의 송금으로서, 상기 이용하는 단계는, 상기 트랜잭션을 상기 제 1 개인키로 서명하여 다른 노드 장치로 전송하여 상기 제 1 공개키로 검증할 수 있도록 하고, 검증 완료시 해당 트랜잭션을 공개 블록체인의 공개 블록에 저장하는 단계를 포함할 수 있다.The transaction is a transfer of a first kind of coin commonly used in the first blockchain network from the user to another user, wherein the step of using is signing the transaction with the first private key and transmitting it to another node device. It may include the step of allowing verification with the first public key, and storing the transaction in the public block of the public blockchain upon verification completion.
상기 동작 방법은, 상기 클라이언트 기기로부터 제 2 블록체인 네트워크에서 사용할 지갑 생성 요청을 수신함에 따라 상기 제 2 블록체인 네트워크로 지갑 생성 요청을 전송하는 단계; 상기 지갑 생성 요청에 따라 상기 제 2 블록체인 네트워크에서 생성된 제 2 개인키, 제 2 공개키 및 제 2 지갑 주소를 상기 제 2 블록체인 네트워크로부터 수신하는 단계; 상기 제 2 공개키 및 상기 제 2 지갑 주소를 공개 블록체인의 공개 블록에 저장하는 단계; 상기 제 2 개인키를 비공개 블록체인의 비공개 블록에 저장한 후 제 2 랜덤 암호화 키를 생성하여 상기 제 2 개인키가 저장된 비공개 블록을 암호화하는 단계; 상기 제 2 랜덤 암호화 키를 소정의 개수로 분할하여 분할 조각들을 다른 노드 장치들로 분산하여 저장하는 단계; 및 상기 사용자의 상기 제 2 블록체인 네트워크로 전송할 트랜잭션 발생시 다른 노드 장치들로부터 상기 제 2 랜덤 암호화 키의 분할 조각들을 수신한 후 이에 기초하여 상기 제 2 개인키가 저장되어 암호화된 비공개 블록으로부터 상기 제 2 개인키를 복호화하여 이용하는 단계를 더 포함할 수 있다.The operation method may include transmitting a wallet creation request to the second blockchain network upon receiving a wallet creation request for use in the second blockchain network from the client device; Receiving a second private key, a second public key, and a second wallet address generated in the second blockchain network from the second blockchain network according to the wallet creation request; Storing the second public key and the second wallet address in a public block of a public blockchain; Storing the second private key in a private block of the private blockchain and generating a second random encryption key to encrypt the private block in which the second private key is stored; Dividing the second random encryption key into a predetermined number and distributing and storing the divided pieces to other node devices; And when the transaction to be transmitted to the second blockchain network of the user occurs, receiving the fragment pieces of the second random encryption key from other node devices and based on this, the second private key is stored and encrypted from the encrypted private block. 2 It may further include the step of decrypting and using the private key.
상기 제 2 블록체인 네트워크로 전송할 트랜잭션은, 상기 사용자로부터 타 사용자로의 상기 제 2 블록체인 네트워크에서 통용되는 제 2 종류의 코인의 송금으로서, 상기 제 2 개인키를 복호화하여 이용하는 단계는, 상기 제 2 블록체인 네트워크로 전송할 트랜잭션을 상기 제 2 개인키로 서명하여 상기 제 2 블록체인 네트워크로 전송하고, 이에 대한 처리 응답을 수신하면, 해당 트랜잭션을 공개 블록체인의 공개 블록에 저장하는 단계를 포함할 수 있다.The transaction to be transmitted to the second blockchain network is a remittance of a second kind of coin commonly used in the second blockchain network from the user to another user. The step of decrypting and using the second private key includes: 2 Signing the transaction to be sent to the blockchain network with the second private key, transmitting it to the second blockchain network, and receiving the processing response, storing the transaction in the public block of the public blockchain. have.
상기 동작 방법은, 상기 클라이언트 기기의 요청에 따라 상기 사용자의 상기 제 2 종류의 코인의 잔액을 공개 블록체인의 공개 블록에서 확인하여 상기 클라이언트 기기로 제공하는 단계를 더 포함할 수 있다.The operation method may further include the step of confirming the balance of the second kind of coin of the user in the public block of the public blockchain to the client device at the request of the client device.
상기 제 2 블록체인 네트워크로 전송할 트랜잭션은, 상기 사용자로부터 타 사용자로의 송금으로서 상기 제 2 블록체인 네트워크에서 통용되는 제 2 종류의 코인을 상기 제 1 블록체인 네트워크에서 통용되는 제 1 종류의 코인으로 환전하여 보내는 송금이고, 상기 제 2 개인키를 복호화하여 이용하는 단계는, 상기 제 2 블록체인 네트워크로 전송할 트랜잭션에 기록된 상기 타 사용자의 지갑 주소를 상기 제 1 블록체인 네트워크의 제 2 종류의 코인 운용 지갑 주소로 변경한 후 상기 제 2 개인키로 서명하여 상기 제 2 블록체인 네트워크로 전송하고, 이에 대한 처리 응답을 수신하면 해당 트랜잭션을 공개 블록체인의 공개 블록에 저장하는 단계; 및 상기 제 1 블록체인 네트워크의 제 1 종류의 코인 운용 지갑 주소로부터 상기 타 사용자의 제 1 지갑 주소로 상기 제 2 종류의 코인의 금액에 상응하는 제 1 종류의 코인이 송금되는 트랜잭션을 공개 블록체인의 공개 블록에 저장하는 단계를 포함할 수 있다.The transaction to be transmitted to the second blockchain network is a second kind of coin commonly used in the second blockchain network as a remittance from the user to another user as a first kind of coin commonly used in the first blockchain network. The remittance that is exchanged and transmitted, and the step of decrypting and using the second private key uses the second user's wallet address recorded in the transaction to be transmitted to the second blockchain network to operate the second kind of coin in the first blockchain network. After changing to a wallet address, signing with the second private key, transmitting it to the second blockchain network, and storing a corresponding transaction in a public block of the public blockchain when receiving a response to the processing; And a transaction in which a first kind of coin corresponding to the amount of the second kind of coin is transferred from the address of the first kind of coin operation wallet of the first blockchain network to the first wallet address of the other user. It may include the step of storing in the public block.
상기 복수의 노드 장치는, 복수의 대표 노드 장치와 복수의 일반 노드 장치를 포함하고, 복수의 대표 노드 장치는 지분 증명에 의해 블록을 생성하여 블록을 동기화하고, 일반 노드 장치는 대표 노드 장치들의 블록들을 동기화하여 저장하며, 상기 동작 방법을 수행하는 노드 장치는, 대표 노드 장치일 수 있다.The plurality of node devices includes a plurality of representative node devices and a plurality of general node devices, and the plurality of representative node devices generate blocks by synchronizing proof of ownership to synchronize blocks, and the general node device is a block of representative node devices. The node devices performing synchronization and storing the same may be representative node devices.
본 발명은, 블록체인을 비공개 블록체인과 공개 블록체인으로 구분하여 운영하면서 사용자의 개인키를 비공개 블록체인의 비공개 블록에 저장함으로써 개인키의 외부 노출을 차단하여 보안을 강화한다. The present invention operates by dividing the blockchain into a private blockchain and a public blockchain, and stores the user's private key in a private block of the private blockchain, thereby blocking external exposure of the private key to enhance security.
또한, 본 발명은 개인키를 저장한 비공개 블록을 랜덤 암호화 키로 암호화한 후 블록체인 네트워크를 구성하는 노드 장치들에 그 랜덤 암호화 키를 분산하여 저장한 후 노드 장치들의 승인 하에서만 랜덤 암호화 키의 조각들을 수집하여 개인키를 복화하할 수 있도록 하여 개인키의 해킹을 방지하고 보안을 강화한다.In addition, the present invention encrypts a private block storing a private key with a random encryption key, then distributes the random encryption key to node devices constituting a blockchain network and stores the random encryption key only under the approval of the node devices. Collects them so that the private key can be decrypted, thereby preventing hacking of the private key and enhancing security.
또한, 본 발명은 다양한 종류의 전자 화폐를 하나의 블록체인 네트워크에서 모두 이용할 수 있도록 함으로써 사용자의 편의성을 높이고 전자 화폐의 활용도를 높일 수 있다.In addition, the present invention can increase the convenience of the user and increase the utilization of the electronic money by allowing various types of electronic money to be used in one blockchain network.
도 1은 본 발명의 일 실시예에 따른 시스템을 나타낸 도면이다.
도 2는 도 1의 대표 노드의 블록체인을 나타낸 도면이다.
도 3은 도 1의 시스템에서 이노코인의 가입 절차 및 이노코인의 지갑 생성 절차를 설명하는 흐름도이다.
도 4는 도 1의 시스템에서 이노코인 블록체인 네트워크를 통해 비트코인 지갑을 생성하는 절차를 설명하는 흐름도이다.
도 5는 도 1의 시스템에서 이노코인 블록체인 네트워크 내에서 이노코인을 송금하는 절차를 설명하는 흐름도이다.
도 6은 도 1의 시스템에서 이노코인 블록체인 네트워크를 통해 비트코인을 송금하는 절차를 설명하는 흐름도이다.
도 7은 도 1의 시스템에서 이노코인 블록체인 네트워크를 통해 비트코인을 이노코인으로 환전하여 송금하는 절차를 설명하는 흐름도이다.
1 is a view showing a system according to an embodiment of the present invention.
FIG. 2 is a block diagram of a representative node of FIG. 1.
FIG. 3 is a flow chart illustrating the innocoin subscription procedure and the innocoin wallet creation procedure in the system of FIG. 1.
FIG. 4 is a flowchart illustrating a procedure for creating a Bitcoin wallet through the Innocoin blockchain network in the system of FIG. 1.
FIG. 5 is a flowchart illustrating a procedure for sending Incoin within the Innocoin blockchain network in the system of FIG. 1.
FIG. 6 is a flowchart illustrating a procedure for sending bitcoin through the Innocoin blockchain network in the system of FIG. 1.
FIG. 7 is a flowchart illustrating a procedure for converting and transferring Bitcoin to Innocoin through the Innocoin blockchain network in the system of FIG. 1.
이하, 첨부된 도면을 참조하여, 본 발명에 대하여 보다 구체적으로 설명하기로 한다. 이하의 설명에서 본 발명에 대한 이해를 명확히 하기 위하여, 본 발명의 특징에 대한 공지의 기술에 대한 설명은 생략하기로 한다. 이하의 실시 예는 본 발명의 이해를 돕기 위한 상세한 설명이며, 본 발명의 권리 범위를 제한하는 것이 아님은 당연할 것이다. 따라서, 본 발명과 동일한 기능을 수행하는 균등한 발명 역시 본 발명의 권리 범위에 속할 것이다. 이하의 설명에서 동일한 식별 기호는 동일한 구성을 의미하며, 불필요한 중복적인 설명 및 공지 기술에 대한 설명은 생략하기로 한다.Hereinafter, the present invention will be described in more detail with reference to the accompanying drawings. In the following description, in order to clarify the understanding of the present invention, descriptions of well-known technologies for the features of the present invention will be omitted. The following examples are detailed descriptions to help the understanding of the present invention, and it will be understood that the scope of rights of the present invention is not limited. Accordingly, an equivalent invention that performs the same function as the present invention will also belong to the scope of the present invention. In the following description, the same identification symbol means the same configuration, and unnecessary redundant description and description of known technology will be omitted.
도 1은 본 발명의 일 실시예에 따른 시스템을 나타낸 도면이고, 도 2는 도 1의 대표 노드의 블록체인을 나타낸 도면이다. 도 1 및 이하의 설명에서 본 발명에 따른 전자 화폐를 이노코인으로 지칭한다. 도 1에 도시된 바와 같이, 이노코인은 블록체인 기반의 전자 화폐로서, 이노코인 블록체인 네트워크(120)는, 복수의 대표 노드(121)와 복수의 일반 노드(122)를 포함하여 구성된다. 여기서 노드(121, 122)들은, 데스크톱, 노트북, 스마트폰, 또는 기업의 서버 등일 수 있으며, 메모리와 프로세서를 포함하는 컴퓨팅 장치이다. 이노코인 블록체인 네트워크(120)는 도 1에 도시된 바와 같이, 다양한 종류의 전자 화폐의 블록체인 네트워크(130, 140)와 연동한다. 도 1을 참조한 본 실시예에서는 연동하는 전자 화폐로서 비트코인과 이더리움을 예로 들지만 여기에 제한되는 것은 아니며 현존하는 리플 등의 전자 화폐 그리고 향후 개발되는 전자 화폐를 모두 포함하는 것으로 이해되어야 한다. 1 is a diagram illustrating a system according to an embodiment of the present invention, and FIG. 2 is a diagram showing a blockchain of a representative node of FIG. 1. In FIG. 1 and the following description, electronic money according to the present invention is referred to as innocoin. As illustrated in FIG. 1, Innocoin is a blockchain-based electronic money, and the Innocoin blockchain network 120 includes a plurality of representative nodes 121 and a plurality of general nodes 122. Here, the nodes 121 and 122 may be desktops, laptops, smart phones, or corporate servers, and are computing devices including a memory and a processor. As shown in FIG. 1, the Innocoin blockchain network 120 interlocks with various types of electronic money blockchain networks 130 and 140. In the present exemplary embodiment with reference to FIG. 1, Bitcoin and Ethereum are exemplified as interlocking electronic money, but it is not limited thereto, and it should be understood that it includes both electronic money such as existing ripple and electronic money developed in the future.
도 1에 도시된 클라이언트 기기(110)는, 이노코인에 가입하는 사용자가 이용하는 기기로서, 스마트폰과 같은 이동통신단말 또는 퍼스널 컴퓨터, 노트북, 데스크톱이나 태블릿 등을 포함하는, 통신 기능을 보유한 기기이다. 사용자는 클라이언트 기기(110)에 이노코인을 위한 클라이언트 어플리케이션을 설치하여 가입할 수 있고, 또는 인터넷 브라우저를 이용하여 이노코인 웹 사이트에 접속하여 가입할 수 있다. 이노코인을 위한 클라이언트 어플리케이션은 회원 가입 메뉴, 그리고 다양한 종류의 코인을 거래하기 위한 지갑을 생성할 수 있는 메뉴를 포함하고, 이노코인 웹 사이트도 유사한 메뉴를 포함할 수 있다. 클라이언트 어플리케이션과 웹 사이트는 이노코인 블록체인 네트워크(120)의 대표 노드(121)들 중 어느 하나의 대표 노드와 통신할 수 있는 API(Application Programmable Interface)를 제공할 수 있다.The client device 110 shown in FIG. 1 is a device used by a user who subscribes to Innocoin, and is a device having a communication function, including a mobile communication terminal such as a smartphone or a personal computer, laptop, desktop, or tablet. . The user can sign up by installing a client application for Innocoin on the client device 110, or by accessing the Innocoin website using an Internet browser. The client application for Innocoin includes a membership subscription menu, and a menu for creating wallets for trading various types of coins, and the Innocoin website may include a similar menu. The client application and the website may provide an API (Application Programmable Interface) that can communicate with any one of the representative nodes 121 of the Innocoin blockchain network 120.
인터넷망(150)은, TCP/IP 통신망을 포함한 유무선 통신망을 포함한다. 무선 통신망은 GSM(Global System for Mobile Communication), EDGE(Enhanced Data GSM Environment), WCDMA(wideband code division multiple access), CDMA(code division multiple access), TDMA(time division multiple access) 등의 통신망일 수 있다. 인터넷망(150)은 본 출원의 출원 시점에 아직 개발되지 않은 통신망을 포함한다.The Internet network 150 includes wired and wireless communication networks including TCP / IP communication networks. The wireless communication network may be a communication system such as Global System for Mobile Communication (GSM), Enhanced Data GSM Environment (EDGE), wideband code division multiple access (WCDMA), code division multiple access (CDMA), or time division multiple access (TDMA). . The Internet network 150 includes a communication network that has not been developed at the time of filing this application.
이노코인 블록체인 네트워크(120)를 구성하는 대표 노드(121)들은, 도 2에 도시된 바와 같이, 공개 블록들이 이어진 공개 블록체인(210)과 비공개 블록들이 이어진 비공개 블록체인(220)을 구분하여 운용 및 저장한다. 공개 블록체인(210)에는 각종 트랜잭션이 저장되고, 비공개 블록체인(220)에는 사용자들의 가입 정보와 사용자들의 개인키가 저장된다. 비공개 블록체인(220)을 구성하는 비공개 블록은 랜덤 암호화 키로 암호화된다. 그리고 랜덤 암호화 키는 이노코인 블록체인 네트워크(120)를 구성하는 노드들 중에서 일반 노드들(122)을 제외한 대표 노드들(121)에만 여러 조각으로 분할되어 분산 저장된다. 공개 블록체인(210)에 저장되는 각종 트랜잭션은 예를 들어 코인의 송금, 사용자들의 공개키 그리고 지갑 주소 등을 포함할 수 있다. 공개 블록체인(210)과 비공개 블록체인(220)에 적용되는 블록 생성 기술(예, 작업증명 또는 지분증명, 해쉬 연산)은 공지된 블록체인 기술이 적용될 수 있다.Representative nodes 121 constituting the Innocoin blockchain network 120, as shown in FIG. 2, distinguishes between the public blockchain 210 followed by public blocks and the private blockchain 220 followed by private blocks. Operate and save. Various transactions are stored in the public blockchain 210, and the user's subscription information and the user's private key are stored in the private blockchain 220. The private blocks constituting the private blockchain 220 are encrypted with a random encryption key. In addition, the random encryption key is divided into several pieces and distributedly stored only in representative nodes 121 excluding general nodes 122 among nodes constituting the Innocoin blockchain network 120. Various transactions stored in the public blockchain 210 may include, for example, the transfer of coins, the public key of users, and the wallet address. Known blockchain technology can be applied to the block generation technology (eg, proof of work or proof of ownership, hash calculation) applied to the public blockchain 210 and the private blockchain 220.
대표 노드(121)들은, 공개된 API를 통해 클라이언트 기기(110)와 통신할 수 있고, 사용자의 가입을 처리하고, 지갑 생성을 담당하고, 또한 블록을 생성하여 블록체인을 만들고 이를 다른 대표 노드(121)들과 동기화한다. 여기서 지갑 생성은, 사용자의 개인키, 공개키 그리고 지갑 주소를 생성하는 것을 의미한다. 대표 노드(121)들은, 상기 랜덤 암호화 키의 분할된 조각을 나누어 분산 저장하고, 어느 한 대표 노드(121)의 요청시에 요청한 대표 노드(121)의 무결성을 검증한 후 자신이 보유하고 있는 랜덤 암호화 키의 분할 조각을 회신한다. 대표 노드들(121)은 랜덤 암호화 키의 분할 조각을 블록체인에 저장하지 않고 별도의 로컬 저장소에 저장하고, 랜덤 암호화 키와 비공개 블록 간의 관계 정보를 관리한다. 일반 노드들(122)은 대표 노드(121)의 동작 중에서 사용자의 가입 처리, 그리고 지갑 생성, 그리고 랜덤 암호화 키의 생성 및 보관을 담당하지 않고, 블록체인의 복사본을 저장하는 역할만을 담당한다.The representative nodes 121 can communicate with the client device 110 through an open API, process the user's subscription, take charge of creating a wallet, and also create a block to create a blockchain to create another representative node ( 121). Here, creating a wallet means generating a user's private key, public key, and wallet address. The representative nodes 121 divide and store the divided pieces of the random encryption key and store them at random, verify the integrity of the requested representative node 121 at the request of any representative node 121, and then have the random they have. Reply to the fragment of the encryption key. The representative nodes 121 do not store the fragmented fragment of the random encryption key in a separate local storage, but manage the relationship information between the random encryption key and the private block. The general nodes 122 are not responsible for the user's subscription processing, wallet creation, and random encryption key generation and storage among the operations of the representative node 121, but only store a copy of the blockchain.
랜덤 암호화 키는 앞서 설명한 바와 같이, 사용자의 개인키를 저장하는 비공개 블록을 암호화하는 키이다. 여기서 사용자의 개인키는 본 발명의 이노코인에 사용되는 이노코인용 개인키, 그리고 비트코인에 사용되는 비트코인용 개인키, 이더리움에 사용되는 이더리움용 개인키 등을 포함하고, 각 개인키가 저장되는 비공개 블록마다 랜덤 암호화 키는 서로 다르고, 각 개인키가 저장되는 비공개 블록도 다를 수 있다. 한편, 각 개인키가 저장되는 비공개 블록의 식별정보는 공개 블록에 저장됨으로써, 대표 노드들(121)이 공개 블록에서 특정 개인키가 저장되어 있는 비공개 블록의 정보를 식별할 수 있다.As described above, the random encryption key is a key that encrypts a private block that stores a user's private key. Here, the user's private key includes a private key for Incoin used in Innocoin of the present invention, a private key for Bitcoin used in Bitcoin, and a private key for Ethereum used in Ethereum, and each private key The random encryption key is different for each private block stored, and the private block in which each private key is stored may also be different. Meanwhile, the identification information of the private block in which each private key is stored is stored in the public block, so that representative nodes 121 can identify information of the private block in which the specific private key is stored in the public block.
대표 노드(121)들은, 이노코인의 지갑 생성뿐만 아니라, 클라이언트 기기(110)의 요청에 따라 다른 종류의 전자 화폐의 지갑도 생성한다. 예를 들어, 비트코인의 지갑 생성 요청이 수신되면, 대표 노드(121)들은, 비트코인 블록체인 네트워크(130)로 사용자의 정보를 포함하는 비트코인 지갑 생성 요청을 전송하고, 비트코인 블록체인 네트워크(130) 내에서 비트코인용 개인키, 공개키, 그리고 지갑 주소가 생성되어 회신되면, 그 중에서 비트코인용 공개키와 지갑 주소는 이노코인 블록체인 중 공개 블록체인(210)에 저장하고, 비트코인용 개인키는 이노코인 개인키와 마찬가지의 방법으로 비공개 블록체인(220)에 저장하고 이노코인 개인키와 동일한 방식으로 복호화하여 이용한다. 이더리움 등 다른 종류의 지갑 생성도 동일한 방식이다. The representative nodes 121 generate not only wallets of Innocoin, but also wallets of other types of electronic money at the request of the client device 110. For example, when a request for creating a wallet of Bitcoin is received, representative nodes 121 transmit a request for creating a Bitcoin wallet including user information to the Bitcoin blockchain network 130, and the Bitcoin blockchain network When the private key, public key, and wallet address for bitcoin are generated and replied within 130, among them, the public key and wallet address for bitcoin are stored in the public blockchain 210 of the Innocoin blockchain, and the individual for bitcoin The key is stored in the private blockchain 220 in the same way as the Innocoin private key and decrypted and used in the same way as the Innocoin private key. The creation of other types of wallets, such as Ethereum, is the same.
대표 노드(121)들은, 이노코인과 다른 종류의 코인 간의 환전 송금 기능을 제공한다. 예를 들어, A라는 사용자가 B라는 사용자에게 10 비트코인을 이노코인으로 환전하여 송금할 수 있다. 이를 위해, 이노코인 블록체인의 공개 블록체인(210)에는 이노코인 운용 지갑 주소와 그 지갑 주소의 잔액으로서 예를 들면 100만 이노코인이 기록될 수 있다. 운용 지갑 주소에 기록되는 이노코인은 사용자들의 클라이언트 기기(110)가 노드로서 참여하여 블록을 생성하는 등의 역할을 수행할 때 지급될 수 있고, 상술한 바와 같은 환전 송금의 기축 통화로서 역할을 할 수 있다. 비트코인을 이노코인으로 환전하여 송금시, 비트코인 블록체인 네트워크(130) 내에서 해당 비트코인의 소유주는 이노코인의 비트코인 운용 지갑 주소가 된다. 그리고 이노코인 블록체인 네트워크(120) 내에서 환전 송금되는 비트코인에 상응하는 이노코인은 이노코인 운용 지갑 주소의 소유에서 받는 사람의 이노코인 지갑 주소의 소유로 변경되어 이노코인 블록체인 중 공개 블록체인(210)에 기록된다. 대표 노드(121)들은 공개 블록체인(210)에 저장되는 각종 트랜잭션을 분석하여 클라이언트 기기(110)로 이노코인의 잔액, 그리고 다른 종류의 코인의 잔액을 제공한다. The representative nodes 121 provide a money transfer function between INNOCOIN and other types of coins. For example, a user named A can convert 10 bitcoins into an innocoin and transfer money to user B. To this end, the public blockchain 210 of the Innocoin blockchain may record, for example, 1 Innocoin as the balance of the Innocoin-operated wallet address and the wallet address. Innocoin recorded in the operation wallet address can be paid when the client device 110 of users participates as a node and performs a role such as creating a block, and acts as a key currency of currency exchange remittance as described above. You can. When converting and transferring Bitcoin to Innocoin, the owner of the Bitcoin within the Bitcoin blockchain network 130 becomes the Incoin's Bitcoin operating wallet address. Innocoin, which corresponds to Bitcoin that is exchanged and transferred within the Innocoin blockchain network 120, is changed from ownership of the Innocoin wallet address to the ownership of the recipient's Innocoin wallet address, which is a public blockchain among Innocoin blockchains. 210. The representative nodes 121 analyze various transactions stored in the public blockchain 210 and provide the balance of Innocoin and other types of coins to the client device 110.
대표 노드(121)들은, 메모리, 메모리 제어기, 하나 이상의 프로세서(CPU), 주변 인터페이스, 입출력(I/O) 서브시스템, 디스플레이 장치, 입력 장치 및 통신 회로를 포함한다. 이러한 구성요소는 하나 이상의 통신 버스 또는 신호선을 통하여 통신한다. 여러 구성요소는 하나 이상의 신호 처리 및/또는 애플리케이션 전용 집적 회로(application specific integrated circuit)를 포함하여, 하드웨어, 소프트웨어 또는 하드웨어와 소프트웨어 둘의 조합으로 구현될 수 있다.Representative nodes 121 include a memory, a memory controller, one or more processors (CPUs), peripheral interfaces, input / output (I / O) subsystems, display devices, input devices, and communication circuitry. These components communicate over one or more communication buses or signal lines. The various components may be implemented in hardware, software or a combination of hardware and software, including one or more signal processing and / or application specific integrated circuits.
메모리는 고속 랜덤 액세스 메모리를 포함할 수 있고, 또한 하나 이상의 자기 디스크 저장 장치, 플래시 메모리 장치와 같은 불휘발성 메모리, 또는 다른 불휘발성 반도체 메모리 장치를 포함할 수 있다. 일부 실시예에서, 메모리는 하나 이상의 프로세서로부터 멀리 떨어져 위치하는 저장 장치, 예를 들어 통신 회로와, 인터넷, 인트라넷, LAN(Local Area Network), WLAN(Wide LAN), SAN(Storage Area Network) 등, 또는 이들의 적절한 조합과 같은 통신 네트워크(도시하지 않음)를 통하여 액세스되는 네트워크 부착형(attached) 저장 장치를 더 포함할 수 있다. 프로세서 및 주변 인터페이스와 같은 대표 노드의 다른 구성요소에 의한 메모리로의 액세스는 메모리 제어기에 의하여 제어될 수 있다. 비공개 블록체인과 공개 블록체인은 메모리에 저장될 수 있다.The memory may include high-speed random access memory, and may also include one or more magnetic disk storage devices, non-volatile memory such as flash memory devices, or other non-volatile semiconductor memory devices. In some embodiments, the memory is a storage device located far from one or more processors, eg, communication circuitry, the Internet, an intranet, a local area network (LAN), a wide LAN (WLAN), a storage area network (SAN), etc. Or it may further include a network attached storage device accessed through a communication network (not shown), such as a suitable combination of these. Access to memory by other components of the representative node, such as the processor and peripheral interfaces, can be controlled by a memory controller. Private and public blockchains can be stored in memory.
주변 인터페이스는 대표 노드(121)들의 입출력 주변 장치를 프로세서 및 메모리와 연결한다. 하나 이상의 프로세서는 다양한 소프트웨어 프로그램 및/또는 메모리에 저장되어 있는 인스트럭션(명령어) 세트를 실행하여 대표 노드(121)들을 위한 여러 기능을 수행하고 데이터를 처리한다.The peripheral interface connects the input / output peripherals of the representative nodes 121 with the processor and memory. One or more processors execute various functions for representative nodes 121 and process data by executing various software programs and / or sets of instructions (instructions) stored in memory.
일부 실시예에서, 주변 인터페이스, 프로세서 및 메모리 제어기는 칩과 같은 단일 칩 상에서 구현될 수 있다. 일부 다른 실시예에서, 이들은 별개의 칩으로 구현될 수 있다.In some embodiments, the peripheral interface, processor and memory controller can be implemented on a single chip, such as a chip. In some other embodiments, they can be implemented in separate chips.
I/O 서브시스템은 디스플레이 장치, 입력 장치와 같은 대표 노드의 입출력 주변장치와 주변 인터페이스 사이에 인터페이스를 제공한다. The I / O subsystem provides an interface between the input / output peripherals of the representative node, such as display devices and input devices, and peripheral interfaces.
디스플레이 장치는 LCD(liquid crystal display) 기술 또는 LPD(light emitting polymer display) 기술을 사용할 수 있고, 이러한 디스플레이 장치는 용량형, 저항형, 적외선형 등의 터치 디스플레이일 수 있다. 터치 디스플레이는 단말과 사용자 사이에 출력 인터페이스 및 입력 인터페이스를 제공한다. 터치 디스플레이는 사용자에게 시각적인 출력을 표시한다. 시각적 출력은 텍스트, 그래픽, 비디오와 이들의 조합을 포함할 수 있다. 시각적 출력의 일부 또는 전부는 사용자 인터페이스 대상에 대응할 수 있다. 터치 디스플레이는 사용자 입력을 수용하는 터치 감지면을 형성한다.The display device may use liquid crystal display (LCD) technology or light emitting polymer display (LPD) technology, and the display device may be a capacitive type, resistive type, infrared type, or the like. The touch display provides an output interface and an input interface between the terminal and the user. The touch display displays visual output to the user. The visual output can include text, graphics, video and combinations thereof. Some or all of the visual output may correspond to a user interface object. The touch display forms a touch sensing surface that accepts user input.
프로세서는 대표 노드(121)들에 연관된 동작을 수행하고 명령어들을 수행하도록 구성된 프로세서로서, 예를 들어, 메모리로부터 검색된 명령어들을 이용하여, 대표 노드(121)들의 컴포넌트 간의 입력 및 출력 데이터의 수신과 조작을 제어할 수 있다. The processor is a processor configured to perform operations associated with representative nodes 121 and to perform instructions, for example, by using instructions retrieved from memory, receiving and manipulating input and output data between components of representative nodes 121. Can be controlled.
일부 실시예에서, 소프트웨어 구성요소는 운영 체제, 그래픽 모듈(명령어 세트) 및 이노코인 프로그램(명령어 세트)이 메모리에 탑재(설치)된다. 운영 체제는, 예를 들어, 다윈(Darwin), RTXC, LINUX, UNIX, OS X, WINDOWS 또는 VxWorks, 안드로이드 등과 같은 내장 운영체제일 수 있고, 일반적인 시스템 태스크(task)(예를 들어, 메모리 관리, 저장 장치 제어, 전력 관리 등)를 제어 및 관리하는 다양한 소프트웨어 구성요소 및/또는 장치를 포함하고, 다양한 하드웨어와 소프트웨어 구성요소 사이의 통신을 촉진시킨다. 그래픽 모듈은 디스플레이 장치 상에 그래픽을 제공하고 표시하기 위한 주지의 여러 소프트웨어 구성요소를 포함한다. "그래픽(graphics)"이란 용어는 텍스트, 웹 페이지, 아이콘(예컨대, 소프트 키를 포함하는 사용자 인터페이스 대상), 디지털 이미지, 비디오, 애니메이션 등을 제한 없이 포함하여, 사용자에게 표시될 수 있는 모든 대상을 포함한다. 이노코인 프로그램에 따라 하나 이상의 프로세서는 이하의 도 2 내지 도 7을 참조하여 설명하는 동작을 수행한다. In some embodiments, the software component is equipped (installed) with an operating system, a graphics module (instruction set) and an Innocoin program (instruction set) in memory. The operating system may be, for example, a built-in operating system such as Darwin, RTXC, LINUX, UNIX, OS X, WINDOWS or VxWorks, Android, etc., and general system tasks (e.g., memory management, storage Device control, power management, etc.) to control and manage various software components and / or devices, and facilitate communication between various hardware and software components. The graphics module includes several well-known software components for presenting and displaying graphics on a display device. The term "graphics" includes any object that can be displayed to a user, including, without limitation, text, web pages, icons (eg, user interface objects that include soft keys), digital images, videos, animations, and the like. Includes. According to the Innocoin program, one or more processors perform the operations described with reference to FIGS. 2 to 7 below.
통신 회로는 무선 또는 유선 통신을 수행할 수 있다. 통신 회로는 전기 신호를 전자파로 또는 그 반대로 변환하며 이 전자파를 통하여 통신 네트워크, 다른 이동형 게이트웨이 및 통신 장치와 통신할 수 있다. 통신 회로는 예를 들어 안테나 시스템, RF 트랜시버, 하나 이상의 증폭기, 튜너, 하나 이상의 오실레이터, 디지털 신호 처리기, CODEC 칩셋, 가입자 식별 모듈(subscriber identity module, SIM) 카드, 메모리 등을 포함하지만 이에 한정되지 않는 이러한 기능을 수행하기 위한 주지의 회로를 포함할 수 있다. 통신 회로는 월드 와이드 웹(World Wide Web, WWW)으로 불리는 인터넷, 인트라넷과 네트워크 및/또는, 셀룰러 전화 네트워크, 무선 LAN 및/또는 MAN(metropolitan area network)와 같은 무선 네트워크, 그리고 근거리 무선 통신에 의하여 다른 장치와 통신할 수 있다. 무선 통신은 GSM(Global System for Mobile Communication), EDGE(Enhanced Data GSM Environment), WCDMA(wideband code division multiple access), CDMA(code division multiple access), TDMA(time division multiple access), VoIP(voice over Internet Protocol), Wi-MAX, 블루투스(Bluetooth), 지그비(zigbee), 엔에프씨(NFC:Near Field Communication) 또는 본 출원의 출원 시점에 아직 개발되지 않은 통신 프로토콜을 포함하는 기타 다른 적절한 통신 프로토콜을 포함하지만 이에 한정되지 않는 복수의 통신 표준, 프로토콜 및 기술 중 어느 것을 이용할 수 있다.The communication circuit can perform wireless or wired communication. The communication circuit converts electrical signals into electromagnetic waves and vice versa, and can communicate with the communication network, other mobile gateways, and communication devices through the electromagnetic waves. Communication circuits include, but are not limited to, antenna systems, RF transceivers, one or more amplifiers, tuners, one or more oscillators, digital signal processors, CODEC chipsets, subscriber identity module (SIM) cards, memory, etc. Well-known circuits for performing these functions may be included. The communication circuit is based on the Internet, an intranet and a network called the World Wide Web (WWW), and / or a wireless network such as a cellular telephone network, a wireless LAN and / or a metropolitan area network (MAN), and short-range wireless communication. It can communicate with other devices. Wireless communication includes Global System for Mobile Communication (GSM), Enhanced Data GSM Environment (EDGE), wideband code division multiple access (WCDMA), code division multiple access (CDMA), time division multiple access (TDMA), and voice over Internet (VoIP). Protocol), Wi-MAX, Bluetooth, Zigbee, NFC (Near Field Communication) or any other suitable communication protocol, including communication protocols not yet developed at the time of filing this application. Any of a plurality of communication standards, protocols, and technologies not limited thereto may be used.
도 3은 도 1의 시스템에서 이노코인의 가입 절차 및 이노코인의 지갑 생성 절차를 설명하는 흐름도이다.FIG. 3 is a flow chart illustrating the innocoin subscription procedure and the innocoin wallet creation procedure in the system of FIG. 1.
도 3을 참조하면, 사용자는 클라이언트 기기(110)를 통해 이노코인 블록체인 네트워크(120)로 접속하고 가입 요청을 전송한다(S301). 클라이언크 기기(110)에는 이노코인 전용 클라이언트 프로그램이 설치될 수 있고 해당 프로그램은 API를 통해 이노코인 블록체인 네트워크(120)를 구성하는 대표 노드(121) 중 하나에 접속한다. 또는 인터넷 브라우저를 통해 가입 웹 페이지에 접속할 수도 있다. 가입 요청시, ID/패스워드, 사용자의 이름, 이메일, 전화번호, 생년월일 등의 개인 정보를 입력할 수 있다. Referring to FIG. 3, the user connects to the Innocoin blockchain network 120 through the client device 110 and transmits a subscription request (S301). A client program for Innocoin may be installed in the client device 110, and the program accesses one of the representative nodes 121 constituting the Innocoin blockchain network 120 through an API. Alternatively, you can access the subscription web page through an Internet browser. When signing up, you can enter personal information such as ID / password, user's name, email, phone number, and date of birth.
대표 노드(121)는 사용자에 대한 실명 인증을 수행한다(S302). 여기서 실명 인증은, 모바일 인증이나 계좌 인증 등의 공지된 방법을 사용할 수 있다. 사용자의 실명 인증에 성공하면, 대표 노드(121)는 가입을 승인한다(S303). 그리고 대표 노드(121)는, 사용자의 개인키, 공개키 그리고 이노코인 지갑 주소를 생성한다(S304). 개인키, 공개키 그리고 지갑 주소의 생성은 공지된 블록체인 기술을 이용할 수 있다.The representative node 121 performs real-name authentication for the user (S302). Here, the real name authentication can use a known method such as mobile authentication or account authentication. If the user's real name authentication is successful, the representative node 121 approves the subscription (S303). Then, the representative node 121 generates the user's private key, public key, and Innocoin wallet address (S304). The creation of the private key, public key, and wallet address can use known blockchain technology.
대표 노드(121)는 공개키와 이노코인 지갑 주소는 공개 블록체인의 블록에 저장한다(S305). 그리고 대표 노드(121)는 사용자의 개인키와 상기 단계 S301에서 수신된 가입 정보를 비공개 블록체인의 블록에 저장한다(S306).The representative node 121 stores the public key and the Innocoin wallet address in a block of the public blockchain (S305). And the representative node 121 stores the user's private key and the subscription information received in step S301 in a block of the private blockchain (S306).
대표 노드(121)는 가입 정보 및 개인키가 저장된 비공개 블록을 암호화하는데 사용할 랜덤 암호화 키를 생성하고(S307), 그 비공개 블록을 랜덤 암호화 키로 암호화한다(S308). 이어서, 대표 노드(121)는, 랜덤 암호화 키를 대표 노드의 개수인 N개로 분할하고 분할된 랜덤 암호화 키 조각을 다른 대표 노드들로 각각 전송하여 분산 저장한다(S309, S310, S311). 따라서, 분할된 N개의 랜덤 암호화 키 조각은 N개의 대표 노드들로 각각 분산되어 저장된다. 대표 노드(121)는 조각을 전송할 때 해당 조각에 연관된 비공개 블록의 식별정보를 함께 전송한다.The representative node 121 generates a random encryption key to be used to encrypt a private block in which subscription information and a private key are stored (S307), and encrypts the private block with a random encryption key (S308). Subsequently, the representative node 121 divides the random encryption key into N, which is the number of representative nodes, and transmits the divided pieces of the random encryption key to other representative nodes to store and distribute them (S309, S310, and S311). Therefore, the fragmented N random encryption key pieces are distributed and stored in N representative nodes, respectively. When transmitting a piece, the representative node 121 transmits identification information of a private block associated with the piece.
대표 노드(121)는, 조각을 분산 저장한 후 원본 랜덤 암호화 키를 폐기하고(S312), 공개 블록에 비공개 블록과 개인키의 관계 정보를 기록한다(S313). 여기서 관계 정보는, 어느 비공개 블록에 누구의 개인키가 저장되었는지의 정보이다. The representative node 121, after distributing and storing the pieces, discards the original random encryption key (S312), and records the relationship information between the private block and the private key in the public block (S313). Here, the relationship information is information of whose private key is stored in which private block.
이상의 도 3을 참조한 실시예에서는 대표 노드 #1이 가입 신청을 받고 개인키, 공개키 및 지갑 주소를 생성하며 블록을 생성하는 작업을 모두 수행하는 것으로 설명하나, 이노코인 블록체인 네트워크(120)의 대표 노드(121)들은, 지분 증명에 의해 블록을 생성한다. 즉, 각 대표 노드들은 특정 순번의 블록을 생성하기 위한 승인을 다른 대표 노드들에게 요청하는데 이 중에서 가장 많이 승인을 받은 대표 노드에서 최종적인 블록 생성 권한을 갖고 블록을 생성하고, 생성된 블록을 다른 대표 노드들 그리고 일반 노드들에게 전송하여 동기화한다. 상술한 도 3을 참조한 실시예에서는 설명의 편의를 위해 대표 노드 #1이 최종적인 블록 생성 권한을 갖고 있는 것을 가정하여 설명한다. 따라서, 상술한 단계 S305, S306, S313에서의 블록에 저장하는 것은, 이와 같은 지분 증명에 의해 블록을 생성하는 것을 의미하고, 이하의 청구범위에서도 마찬가지로 이해되어야 한다.In the above-described embodiment with reference to FIG. 3, it is described that representative node # 1 receives a subscription application, generates a private key, a public key, and a wallet address, and performs all of the operations of generating a block, but of the Innocoin blockchain network 120 The representative nodes 121 generate blocks by proof of stake. That is, each representative node requests approval to generate a block of a specific sequence from other representative nodes. Among them, the representative node that has the most approval has the final block creation authority and creates blocks, and the generated blocks are different. Synchronization by transmitting to representative nodes and general nodes. In the above-described embodiment with reference to FIG. 3, it will be described on the assumption that representative node # 1 has the final block creation authority for convenience of description. Therefore, storing in the blocks in the above-described steps S305, S306, and S313 means that blocks are generated by such proof of stake and should be understood in the following claims as well.
도 4는 도 1의 시스템에서 이노코인 블록체인 네트워크를 통해 비트코인 지갑을 생성하는 절차를 설명하는 흐름도이다.FIG. 4 is a flowchart illustrating a procedure for creating a Bitcoin wallet through the Innocoin blockchain network in the system of FIG. 1.
도 4를 참조하면, 이노코인 클라이언트 프로그램이 설치된 클라이언트 기기(110)에서 사용자는 비트코인 지갑 생성 메뉴를 입력한다. 따라서 클라이언트 기기(110)는 이노코인 블록체인 네트워크(120)의 어느 한 대표 노드(121)로 비트코인 지갑 생성 요청 트랜잭션을 전송한다(S401). 대표 노드(121)는, 클라이언트 기기(110)를 통해 사용자로부터 비트코인 지갑을 생성하기 위한 정보를 수신할 수 있고, 또는 비공개 블록체인에 저장된 이노코인 가입 정보를 복호화하여 이용할 수도 있다. 비공개 블록체인의 암호화된 블록에서 가입 정보를 복호화하는 방법은, 이하의 도 5를 참조하여 설명하는 이노코인 송금에서 개인키를 복호화하는 방법과 동일하다. Referring to FIG. 4, in the client device 110 on which the Innocoin client program is installed, the user inputs a Bitcoin wallet creation menu. Therefore, the client device 110 transmits a bitcoin wallet creation request transaction to any representative node 121 of the Innocoin blockchain network 120 (S401). The representative node 121 may receive information for creating a Bitcoin wallet from the user through the client device 110 or may decrypt and use Innocoin subscription information stored in the private blockchain. The method of decrypting the subscription information in the encrypted block of the private blockchain is the same as the method of decrypting the private key in the Innocoin transfer described with reference to FIG. 5 below.
대표 노드(121)는 새로운 비트코인 지갑 생성 요청 트랜잭션을 비트코인 블록체인 네트워크(130)로 전송한다(S402). 비트코인 블록체인 네트워크(130)에서는 공지된 방법으로 비트코인용 개인키, 공개키 그리고 지갑 주소를 생성을 하고 공개키와 지갑 주소는 비트코인 블록체인 네트워크(130)를 구성하는 노드들의 블록체인에 저장한다(S404). 그리고 비트코인 블록체인 네트워크(130)는 비트코인용 개인키, 공개키 그리고 지갑 주소를 회신하고, 이노코인 블록체인 네트워크(120)의 대표 노드(121)는 이를 수신한다(S405).The representative node 121 transmits a new Bitcoin wallet creation request transaction to the Bitcoin blockchain network 130 (S402). The Bitcoin blockchain network 130 generates a private key, public key, and wallet address for Bitcoin in a known way, and the public key and wallet address are stored in the blockchain of nodes constituting the Bitcoin blockchain network 130. (S404). And the Bitcoin blockchain network 130 returns the private key, public key, and wallet address for Bitcoin, and the representative node 121 of the Innocoin blockchain network 120 receives it (S405).
대표 노드(121)는 수신된 비트코인용 공개키와 지갑 주소를 공개 블록체인의 공개 블록에 저장하고(S406), 비트코인용 개인키는 사용자의 정보와 함께 비공개 블록체인의 비공개 블록에 저장한다(S407). 그리고 대표 노드(121)는 비트코인용 개인키가 저장된 비공개 블록을 암호화하기 위한 랜덤 암호화 키를 새로 생성한 후 그 랜덤 암호화 키로 비공개 블록을 암호화한다(S408). 대표 노드(121)는 단계 S408에서 생성한 랜덤 암호화 키를 대표 노드들의 개수인 N개로 분할하고 분할된 랜덤 암호화 키 조각을 다른 대표 노드들로 각각 전송하여 분산 저장하며, 조각을 분산 저장한 후 원본 랜덤 암호화 키를 폐기한다(S409). 따라서, 분할된 N개의 비트코인용 랜덤 암호화 키 조각은 N개의 대표 노드들로 각각 분산되어 저장된다. 대표 노드(121)는 조각을 전송할 때 해당 조각에 연관된 비공개 블록의 식별정보를 함께 전송한다. 대표 노드(121)는, 공개 블록에 비공개 블록과 비트코인용 개인키의 관계 정보를 기록한다(S410). 여기서 관계 정보는, 어느 비공개 블록에 누구의 비트코인용 개인키가 저장되었는지의 정보이다. The representative node 121 stores the received public key and wallet address for Bitcoin in the public block of the public blockchain (S406), and the private key for Bitcoin stores in the private block of the private blockchain with the user's information (S407). ). Then, the representative node 121 generates a new random encryption key for encrypting the private block in which the private key for bitcoin is stored, and then encrypts the private block with the random encryption key (S408). The representative node 121 divides the random encryption key generated in step S408 into N, which is the number of representative nodes, and transmits the divided pieces of the random encryption key to different representative nodes, thereby storing and distributing the pieces. The random encryption key is discarded (S409). Accordingly, the fragmented N pieces of random encryption key for Bitcoin are distributed and stored in N representative nodes. When transmitting a piece, the representative node 121 transmits identification information of a private block associated with the piece. The representative node 121 records the relationship information between the private block and the private key for bitcoin in the public block (S410). Here, the relationship information is information of whose private key for bitcoin is stored in which private block.
이상의 도 4을 참조한 실시예에서도 설명의 편의를 위해 대표 노드 #1이 최종적인 블록 생성 권한을 갖고 있는 것을 가정하여 설명한다. 따라서, 상술한 단계 S406, S407, S410에서의 블록에 저장하는 것은, 지분 증명에 의해 블록을 생성하는 것을 의미하고, 이하의 청구범위에서도 마찬가지로 이해되어야 한다.In the embodiment with reference to FIG. 4, for convenience of description, it is assumed that representative node # 1 has the final block creation authority. Therefore, storing in the blocks in the above-described steps S406, S407, and S410 means creating a block by proof of stake, and should be understood in the following claims as well.
도 5는 도 1의 시스템에서 이노코인 블록체인 네트워크 내에서 이노코인을 송금하는 절차를 설명하는 흐름도이다.FIG. 5 is a flowchart illustrating a procedure for sending Incoin within the Innocoin blockchain network in the system of FIG. 1.
도 5를 참조하면, 사용자는 클라이언트 기기(110)에서 받는 사람의 지갑 주소와 송금할 이노코인의 금액을 입력하여 송금을 요청한다. 송금 요청 트랜잭션은 이노코인 블록체인 네트워크(120)의 어느 한 대표 노드(121)로 전송된다(S501).Referring to FIG. 5, the user requests a transfer by inputting a recipient's wallet address and an amount of Innocoin to be transferred from the client device 110. The remittance request transaction is transmitted to any one representative node 121 of the Innocoin blockchain network 120 (S501).
송금 요청 트랜잭션을 수신한 대표 노드(121)는 해당 사용자, 즉 보내는 사람의 이노코인용 개인키가 저장된 비공개 블록의 식별정보를 공개 블록체인에서 확인한다(S502). 이후 대표 노드(121)는, 다른 대표 노드들로 해당 비공개 블록에 대한 랜덤 암호화 키의 조각을 요청하고(S503), 이에 대한 응답으로 랜덤 암호화 키 조각을 각 대표 노드들로부터 수신한다(S504). 이때 다른 대표 노드들은, 랜덤 암호화 키의 조각을 요청하는 대표 노드의 세션 정보를 토대로 무결성 검증을 수행하고 무결성 검증에 성공시에 조각을 회신한다. The representative node 121 receiving the remittance request transaction checks the identification information of the private block in which the private key for the user, that is, the sender's Incoin, is stored (S502). Then, the representative node 121 requests pieces of the random encryption key for the private block to other representative nodes (S503), and receives a random encryption key fragment from each representative node in response (S504). At this time, other representative nodes perform integrity verification based on the session information of the representative node requesting a piece of the random encryption key and return the fragment when the integrity verification is successful.
대표 노드(121)는, 수신된 랜덤 암호화 키의 조각들을 이용하여 암호화된 비공개 블록을 복호화하여 개인키를 추출한다(S505). 대표 노드(121)는, 다른 대표 노드 모두로부터 조각을 수신하기 전, 2/3 이상의 개수의 조각이 수신되면, 바로 개인키를 추출할 수 있다. 이는 샤미르(Shamir)의 법칙에 의해 가능하다. 이와 같이 이노코인용 개인키를 복호화한 후, 대표 노드(121)는, 이노코인 송금 트랜잭션을 그 복호화한 개인키로 서명한 후 다른 대표 노드들로 전파한다. 송금하는 사용자는 트랜잭션의 서명에 의해 검증되고 검증에 성공시 지분 증명에 의해 이노코인 블록체인 네트워크(120) 내에서 공개 블록이 생성하여 이노코인 송금 트랜잭션이 기록된다(S506). 이 기록에 의해 송금이 완료되어, 보내는 사람의 이노코인의 잔액은 감소되고 받는 사람의 이노코인의 잔액은 증가하게 된다.The representative node 121 extracts the private key by decrypting the encrypted private block using the pieces of the received random encryption key (S505). The representative node 121 may immediately extract the private key if more than 2/3 of the pieces are received before receiving the pieces from all other representative nodes. This is made possible by Shamir's law. After decrypting the private key for Incoin, the representative node 121 signs the Innocoin transfer transaction with the decrypted private key and propagates it to other representative nodes. The user who sends money is verified by the signature of the transaction, and when verification is successful, the public block is generated in the Innocoin blockchain network 120 by proof of stake, and the Innocoin money transfer transaction is recorded (S506). With this record, the transfer is completed, and the sender's Innocoin balance is reduced and the recipient's Incoin balance is increased.
도 5의 실시예에서 블록에 데이터를 저장하는 것은, 이노코인 블록체인 네트워크(120) 내에서 대표 노드(121)들 간의 지분 증명에 의해 블록을 생성하는 것을 의미하고, 이하의 청구범위에서도 마찬가지로 이해되어야 한다.In the embodiment of FIG. 5, storing data in a block means creating a block by proof of stake between representative nodes 121 in the Innocoin blockchain network 120, and is understood in the following claims as well. Should be.
도 6은 도 1의 시스템에서 이노코인 블록체인 네트워크를 통해 비트코인을 송금하는 절차를 설명하는 흐름도이다.FIG. 6 is a flowchart illustrating a procedure for sending bitcoin through the Innocoin blockchain network in the system of FIG. 1.
도 6을 참조하면, 사용자는 클라이언트 기기(110)에서 받는 사람의 비트코인 지갑 주소와 송금할 비트코인의 금액을 입력하여 송금을 요청한다. 송금 요청 트랜잭션은 이노코인 블록체인 네트워크(120)의 어느 한 대표 노드(121)로 전송된다(S601).Referring to FIG. 6, the user inputs the address of the recipient's bitcoin wallet and the amount of the bitcoin to be transferred from the client device 110 to request the transfer. The remittance request transaction is transmitted to any one representative node 121 of the Innocoin blockchain network 120 (S601).
송금 요청 트랜잭션을 수신한 대표 노드(121)는 해당 사용자, 즉 보내는 사람의 비트코인용 개인키가 저장된 비공개 블록의 식별정보를 공개 블록체인에서 확인한다(S602). 이후 대표 노드(121)는, 다른 대표 노드들로 해당 비공개 블록에 대한 랜덤 암호화 키의 조각을 요청하고, 이에 대한 응답으로 랜덤 암호화 키 조각을 각 대표 노드들로부터 수신한다(S603). 이때 다른 대표 노드들은, 랜덤 암호화 키의 조각을 요청하는 대표 노드의 세션 정보를 토대로 무결성 검증을 수행하고 무결성 검증에 성공시에 조각을 회신한다. The representative node 121 receiving the remittance request transaction verifies the identification information of the private block in which the private key for the user, that is, the sender, is stored (S602). Thereafter, the representative node 121 requests pieces of the random encryption key for the private block to other representative nodes, and receives a random piece of the encryption key from each representative node in response (S603). At this time, other representative nodes perform integrity verification based on the session information of the representative node requesting a piece of the random encryption key and return the fragment when the integrity verification is successful.
대표 노드(121)는, 수신된 랜덤 암호화 키의 조각들을 이용하여 암호화된 비공개 블록을 복호화하여 비트코인용 개인키를 추출한다(S604). 대표 노드(121)는, 다른 대표 노드 모두로부터 조각을 수신하기 전, 2/3 이상의 개수의 조각이 수신되면, 바로 개인키를 추출할 수 있다. 이는 샤미르(Shamir)의 법칙에 의해 가능하다. 이와 같이 비트코인용 개인키를 복호화한 후, 대표 노드(121)는, 비트코인 송금 트랜잭션을 그 복호화한 비트코인용 개인키로 서명한 후 비트코인 블록체인 네트워크(130)로 전송한다(S605). 비트코인 블록체인 네트워크(130)를 구성하는 노드들은 트랜잭션의 서명을 공개키로 검증하고 작업 증명에 의해 블록을 생성하여 해당 송금 트랜잭션을 기록한다(S606). 그리고 비트코인 블록체인 네트워크(130)는 결과를 이노코인 블록체인 네트워크(120)의 대표 노드(121)로 회신한다(S607).The representative node 121 extracts the private key for bitcoin by decrypting the encrypted private block using the pieces of the received random encryption key (S604). The representative node 121 may immediately extract the private key if more than 2/3 of the pieces are received before receiving the pieces from all other representative nodes. This is made possible by Shamir's law. After decrypting the private key for Bitcoin in this way, the representative node 121 signs the Bitcoin transfer transaction with the decrypted private key for Bitcoin and transmits it to the Bitcoin blockchain network 130 (S605). Nodes constituting the Bitcoin blockchain network 130 verify the signature of the transaction with a public key and generate a block by proof of work (S606). And the Bitcoin blockchain network 130 returns the result to the representative node 121 of the Innocoin blockchain network 120 (S607).
이노코인 블록체인 네트워크(120)의 대표 노드(121)는, 비트코인 송금이 정상적으로 완료되었으므로, 공개 블록체인의 공개 블록에 해당 비트코인 송금 트랜잭션을 기록한다(S608). 따라서 사용자가 본인의 비트코인의 잔액을 확인할 때, 비트코인 블록체인 네트워크(130)까지 접속하여 확인할 필요 없이, 이노코인 블록체인 네트워크(120)에서 바로 사용자에게 비트코인의 잔액을 알려줄 수 있다. The representative node 121 of the Innocoin blockchain network 120 records the corresponding bitcoin remittance transaction in the public block of the public blockchain (S608) since the bitcoin remittance has been normally completed (S608). Therefore, when the user checks his / her own Bitcoin balance, the Incoin blockchain network 120 can directly inform the user of the Bitcoin balance without having to access and check the Bitcoin blockchain network 130.
도 6의 실시예에서 블록에 데이터를 저장하는 것은, 이노코인 블록체인 네트워크(120) 내에서 대표 노드(121)들 간의 지분 증명에 의해 블록을 생성하는 것을 의미하고, 이하의 청구범위에서도 마찬가지로 이해되어야 한다.In the embodiment of FIG. 6, storing data in a block means creating a block by proof of stake between representative nodes 121 in the Innocoin blockchain network 120, and is also understood in the following claims Should be.
도 7은 도 1의 시스템에서 이노코인 블록체인 네트워크를 통해 비트코인을 이노코인으로 환전하여 송금하는 절차를 설명하는 흐름도이다.FIG. 7 is a flowchart illustrating a procedure for converting and transferring Bitcoin to Innocoin through the Innocoin blockchain network in the system of FIG. 1.
도 7을 참조하면, 사용자는 클라이언트 기기(110)에서 받는 사람의 이노코인 지갑 주소와 송금할 비트코인의 금액을 입력하여 송금을 요청한다. 비트코인 송금 요청 트랜잭션은 이노코인 블록체인 네트워크(120)의 어느 한 대표 노드(121)로 전송된다(S701).Referring to FIG. 7, the user inputs the recipient's Incoin wallet address and the amount of Bitcoin to be transferred from the client device 110 to request the transfer. The Bitcoin remittance request transaction is transmitted to any representative node 121 of the Innocoin blockchain network 120 (S701).
비트코인 송금 요청 트랜잭션을 수신한 대표 노드(121)는 해당 사용자, 즉 보내는 사람의 비트코인용 개인키를 복호화한다(S702). 구체적으로, 대표 노드(121)는, 비트코인용 개인키가 저장된 비공개 블록의 식별정보를 공개 블록체인에서 확인하고, 다른 대표 노드들로 해당 비공개 블록에 대한 랜덤 암호화 키의 조각을 요청하며, 이에 대한 응답으로 랜덤 암호화 키 조각을 각 대표 노드들로부터 수신한다. 이때 다른 대표 노드들은, 랜덤 암호화 키의 조각을 요청하는 대표 노드의 세션 정보를 토대로 무결성 검증을 수행하고 무결성 검증에 성공시에 조각을 회신한다. 대표 노드(121)는, 수신된 랜덤 암호화 키의 조각들을 이용하여 암호화된 비공개 블록을 복호화하여 비트코인용 개인키를 추출한다. 대표 노드(121)는, 다른 대표 노드 모두로부터 조각을 수신하기 전, 2/3 이상의 개수의 조각이 수신되면, 바로 개인키를 추출할 수 있다. 이는 샤미르(Shamir)의 법칙에 의해 가능하다. The representative node 121 that has received the bitcoin transfer request transaction decrypts the private key for the user, that is, the sender of bitcoin (S702). Specifically, the representative node 121 checks the identification information of the private block in which the private key for bitcoin is stored in the public blockchain, and requests fragments of the random encryption key for the private block from other representative nodes. In response, a random encryption key fragment is received from each representative node. At this time, other representative nodes perform integrity verification based on the session information of the representative node requesting a piece of the random encryption key and return the fragment when the integrity verification is successful. The representative node 121 extracts the private key for bitcoin by decrypting the encrypted private block using the pieces of the received random encryption key. The representative node 121 may immediately extract the private key if more than 2/3 of the pieces are received before receiving the pieces from all other representative nodes. This is made possible by Shamir's law.
이와 같이 비트코인용 개인키를 복호화한 후, 대표 노드(121)는, 비트코인 송금 트랜잭션에서 받는 사람의 이노코인 지갑 주소를 이노코인의 운영 지갑 주소로 변경한 후 상기 복호화한 비트코인용 개인키로 서명하여 비트코인 블록체인 네트워크(130)로 전송한다(S703). 비트코인 블록체인 네트워크(130)를 구성하는 노드들은 트랜잭션의 서명을 공개키로 검증하고 작업 증명에 의해 블록을 생성하여 해당 송금 트랜잭션을 기록한다(S704). 따라서 비트코인 블록체인에는 해당 비트코인을 받은 사람이 보내는 사람이 지정한 사람이 아닌, 이노코인 운용 지갑 주소가 된다. 비트코인 블록체인 네트워크(130)는 결과를 이노코인 블록체인 네트워크(120)의 대표 노드(121)로 회신한다(S705).After decrypting the private key for Bitcoin, the representative node 121 changes the recipient's Incoin wallet address to the Innocoin's operating wallet address in the Bitcoin transfer transaction, and then signs the decrypted Bitcoin private key. It is transmitted to the Bitcoin blockchain network 130 (S703). Nodes constituting the Bitcoin blockchain network 130 verify the signature of the transaction with a public key and create a block by proof of work to record the corresponding remittance transaction (S704). Therefore, in the Bitcoin blockchain, the person who received the corresponding Bitcoin becomes the address of the Innocoin operated wallet, not the person designated by the sender. The Bitcoin blockchain network 130 returns the result to the representative node 121 of the Innocoin blockchain network 120 (S705).
이노코인 블록체인 네트워크(120)의 대표 노드(121)는, 공개 블록체인의 공개 블록에 해당 비트코인 송금 트랜잭션을 기록한다(S706). 따라서 공개 블록체인에서, 보내는 사람의 비트코인 잔액은 해당 송금된 비트코인만큼 차감되고, 반대로 이노코인의 비트코인 운용 지갑 주소의 잔액은 해당 송금된 비트코인만큼 증가한다. 보내는 사람, 즉 사용자가 본인의 비트코인의 잔액을 확인할 때, 비트코인 블록체인 네트워크(130)까지 접속하여 확인할 필요 없이, 이노코인 블록체인 네트워크(120)에서 바로 사용자에게 비트코인의 잔액을 알려줄 수 있다. The representative node 121 of the Innocoin blockchain network 120 records the corresponding bitcoin transfer transaction in the public block of the public blockchain (S706). Therefore, in the public blockchain, the bitcoin balance of the sender is deducted by the amount of the bitcoin that was transferred, and, conversely, the balance of the Incoin's bitcoin-operated wallet address is increased by the corresponding bitcoin. When the sender, that is, the user checks the balance of his / her own Bitcoin, without having to access and check the Bitcoin blockchain network 130, the Innocoin blockchain network 120 can directly inform the user of the Bitcoin balance. have.
한편, 대표 노드(121)는, 비트코인과 이노코인 간의 환전율을 확인한다(S707). 환전율은 별도의 서버에서 확인할 수도 있고 또는 자체적으로 저장된 정보를 이용할 수 있다. 대표 노드(121)는, 환전율에 따라 해당 송금된 비트코인에 상응하는 이노코인을 원래 받는 사람의 이노코인 지갑 주소로 송금하는 트랜잭션을 공개 블록에 저장한다(S708). 따라서, 기축 통화로서의 역할을 하는 이노코인 운용 지갑 주소의 잔액은 감소하고 받는 사람의 이노코인 지갑 주소의 이노코인 잔액은 증가한다. On the other hand, the representative node 121 checks the exchange rate between Bitcoin and Innocoin (S707). The exchange rate can be checked on a separate server, or information stored by itself can be used. The representative node 121 stores in a public block a transaction for remitting the Innocoin corresponding to the transferred bitcoin to the Innocoin wallet address of the original recipient according to the exchange rate (S708). Therefore, the balance of the Innocoin-operated wallet address serving as a key currency decreases, and the Innocoin balance of the recipient's Incoin wallet address increases.
도 7의 실시예에서 블록에 데이터를 저장하는 것은, 이노코인 블록체인 네트워크(120) 내에서 대표 노드(121)들 간의 지분 증명에 의해 블록을 생성하는 것을 의미하고, 이하의 청구범위에서도 마찬가지로 이해되어야 한다.In the embodiment of FIG. 7, storing data in a block means creating a block by proof of stake between representative nodes 121 in the Innocoin blockchain network 120, and is understood in the following claims as well Should be.
이상의 설명은 본 발명의 기술 사상을 예시적으로 설명한 것에 불과한 것으로서, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자라면 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 다양한 수정 및 변형이 가능할 것이다. 따라서, 본 발명에 개시된 실시예들은 본 발명의 기술 사상을 한정하기 위한 것이 아니라 설명하기 위한 것이고, 이러한 실시예에 의하여 본 발명의 기술 사상의 범위가 한정되는 것은 아니다. 본 발명의 보호 범위는 아래의 청구범위에 의하여 해석되어야 하며, 그와 동등한 범위 내에 있는 모든 기술 사상은 본 발명의 권리범위에 포함되는 것으로 해석되어야 할 것이다. 상술한 바와 같은 본 발명의 방법은 프로그램으로 구현되어 컴퓨터로 읽을 수 있는 형태로 기록매체(시디롬, 램, 롬, 플로피 디스크, 하드 디스크, 광자기 디스크 등)에 저장될 수 있다. 이러한 과정은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있으므로 더 이상 상세히 설명하지 않기로 한다.The above description is merely illustrative of the technical idea 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. The method of the present invention as described above may be implemented as a program and stored in a computer readable form on a recording medium (CD-ROM, RAM, ROM, floppy disk, hard disk, magneto-optical disk, etc.). Such a process will not be described in detail any more as those skilled in the art to which the present invention pertains can easily carry out.
110 : 클라이언트 기기
120 : 이노코인 블록체인 네트워크
121 : 대표 노드
122 : 일반 노드
130 : 비트코인 블록체인 네트워크
140 : 이더리움 블록체인 네트워크
150 : 인터넷망
110: client device
120: Innocoin blockchain network
121: representative node
122: normal node
130: Bitcoin blockchain network
140: Ethereum blockchain network
150: Internet network

Claims (12)

  1. 복수의 노드 장치로 구성되는 제 1 블록체인 네트워크의 노드 장치에 있어서,
    클라이언트 기기 및 다른 노드 장치들과 통신하는 통신 회로;
    하나 이상의 프로세서; 및
    상기 하나 이상의 프로세서에 의해 실행 가능한 인스트럭션을 저장하는 메모리를 포함하고,
    상기 하나 이상의 프로세서는,
    상기 클라이언트 기기의 요청에 따라 상기 클라이언트 기기를 사용하는 사용자가 상기 제 1 블록체인 네트워크 내에서 사용할 제 1 개인키, 제 1 공개키 및 제 1 지갑 주소를 생성하고,
    상기 제 1 공개키 및 상기 제 1 지갑 주소를 공개 블록체인의 공개 블록에 저장하며,
    상기 제 1 개인키를 비공개 블록체인의 비공개 블록에 저장한 후 제 1 랜덤 암호화 키를 생성하여 상기 제 1 개인키가 저장된 비공개 블록을 암호화하고,
    상기 제 1 랜덤 암호화 키를 소정의 개수로 분할하여 분할 조각들을 다른 노드 장치들로 분산하여 저장하며, 상기 사용자의 트랜잭션 발생시 다른 노드 장치들로부터 상기 분할 조각들을 수신한 후 이에 기초하여 상기 암호화된 비공개 블록으로부터 상기 제 1 개인키를 복호화하여 이용하는 것을 특징으로 하는 노드 장치.
    In the node device of the first blockchain network consisting of a plurality of node devices,
    A communication circuit in communication with the client device and other node devices;
    One or more processors; And
    And a memory for storing instructions executable by the one or more processors,
    The one or more processors,
    At the request of the client device, a user using the client device generates a first private key, a first public key and a first wallet address to be used in the first blockchain network,
    The first public key and the first wallet address are stored in a public block of a public blockchain,
    After storing the first private key in a private block of the private blockchain, a first random encryption key is generated to encrypt the private block in which the first private key is stored,
    The first random encryption key is divided into a predetermined number to distribute the fragments to other node devices, and when the user's transaction occurs, the fragments are received from other node devices and based on the encrypted fragments. A node device characterized by decrypting and using the first private key from a block.
  2. 제 1 항에 있어서,
    상기 사용자의 트랜잭션은 상기 사용자로부터 타 사용자로의 상기 제 1 블록체인 네트워크에서 통용되는 제 1 종류의 코인의 송금으로서,
    상기 하나 이상의 프로세서는,
    상기 사용자의 트랜잭션을 상기 제 1 개인키로 서명하여 다른 노드 장치로 전송하여 상기 제 1 공개키로 검증할 수 있도록 하고, 검증 완료시 해당 트랜잭션을 공개 블록체인의 공개 블록에 저장하는 것을 특징으로 하는 노드 장치.
    According to claim 1,
    The user's transaction is the transfer of a first kind of coin commonly used in the first blockchain network from the user to another user,
    The one or more processors,
    A node device characterized in that the user's transaction is signed with the first private key and transmitted to another node device for verification with the first public key, and when the verification is completed, the transaction is stored in a public block of the public blockchain. .
  3. 제 1 항에 있어서,
    상기 통신 회로는 제 2 블록체인 네트워크와 더 통신하고,
    상기 하나 이상의 프로세서는,
    상기 클라이언트 기기로부터 상기 제 2 블록체인 네트워크에서 사용할 지갑 생성 요청을 수신함에 따라 상기 제 2 블록체인 네트워크로 지갑 생성 요청을 전송하고,
    상기 지갑 생성 요청에 따라 상기 제 2 블록체인 네트워크에서 생성된 제 2 개인키, 제 2 공개키 및 제 2 지갑 주소를 상기 제 2 블록체인 네트워크로부터 수신하며,
    상기 제 2 공개키 및 상기 제 2 지갑 주소를 공개 블록체인의 공개 블록에 저장하고,
    상기 제 2 개인키를 비공개 블록체인의 비공개 블록에 저장한 후 제 2 랜덤 암호화 키를 생성하여 상기 제 2 개인키가 저장된 비공개 블록을 암호화하며,
    상기 제 2 랜덤 암호화 키를 소정의 개수로 분할하여 분할 조각들을 다른 노드 장치들로 분산하여 저장하고, 상기 사용자의 상기 제 2 블록체인 네트워크로 전송할 트랜잭션 발생시 다른 노드 장치들로부터 상기 제 2 랜덤 암호화 키의 분할 조각들을 수신한 후 이에 기초하여 상기 제 2 개인키가 저장되어 암호화된 비공개 블록으로부터 상기 제 2 개인키를 복호화하여 이용하는 것을 특징으로 하는 노드 장치
    According to claim 1,
    The communication circuit further communicates with the second blockchain network,
    The one or more processors,
    Upon receiving a wallet creation request for use in the second blockchain network from the client device, transmits a wallet creation request to the second blockchain network,
    In response to the wallet creation request, the second private key, the second public key and the second wallet address generated in the second blockchain network are received from the second blockchain network,
    Store the second public key and the second wallet address in a public block of a public blockchain,
    After storing the second private key in a private block of the private blockchain, a second random encryption key is generated to encrypt the private block in which the second private key is stored,
    The second random encryption key is divided into a predetermined number, and the fragments are distributed to other node devices and stored, and when the transaction to be transmitted to the second blockchain network of the user occurs, the second random encryption key from other node devices Node device characterized in that the second private key is stored and decrypted and then the second private key is decrypted from the encrypted private block on the basis of the received pieces.
  4. 제 3 항에 있어서,
    상기 제 2 블록체인 네트워크로 전송할 트랜잭션은, 상기 사용자로부터 타 사용자로의 상기 제 2 블록체인 네트워크에서 통용되는 제 2 종류의 코인의 송금으로서,
    상기 하나 이상의 프로세서는,
    상기 제 2 종류의 코인의 송금인 상기 제 2 블록체인 네트워크로 전송할 트랜잭션을 상기 제 2 개인키로 서명하여 상기 제 2 블록체인 네트워크로 전송하고, 이에 대한 처리 응답을 수신하면, 해당 트랜잭션을 공개 블록체인의 공개 블록에 저장하는 것을 특징으로 하는 노드 장치.
    The method of claim 3,
    The transaction to be transmitted to the second blockchain network is a remittance of a second kind of coin commonly used in the second blockchain network from the user to another user,
    The one or more processors,
    When the transaction to be transmitted to the second blockchain network, which is the remittance of the second kind of coin, is signed with the second private key and transmitted to the second blockchain network, and when a processing response is received, the transaction is sent to the public blockchain. Node device characterized in that it is stored in the public block.
  5. 제 4 항에 있어서,
    상기 하나 이상의 프로세서는,
    상기 클라이언트 기기의 요청에 따라 상기 사용자의 상기 제 2 종류의 코인의 잔액을 공개 블록체인의 공개 블록에서 확인하여 상기 클라이언트 기기로 제공하는 것을 특징으로 하는 노드 장치.
    The method of claim 4,
    The one or more processors,
    A node device, characterized in that, upon request of the client device, the balance of the second kind of coin of the user is checked in a public block of a public blockchain and provided to the client device.
  6. 제 1 항에 있어서,
    상기 복수의 노드 장치는, 복수의 대표 노드 장치와 복수의 일반 노드 장치를 포함하고, 복수의 대표 노드 장치는 지분 증명에 의해 블록을 생성하여 블록을 동기화하고, 일반 노드 장치는 대표 노드 장치들의 블록들을 동기화하여 저장하며,
    상기 제 1 블록체인 네트워크의 노드 장치는, 대표 노드 장치인 것을 특징으로 하는 노드 장치.
    According to claim 1,
    The plurality of node devices includes a plurality of representative node devices and a plurality of general node devices, and the plurality of representative node devices generate blocks by synchronizing proof of ownership to synchronize blocks, and the general node device is a block of representative node devices. Save them in sync,
    The node device of the first blockchain network is a representative node device.
  7. 복수의 노드 장치로 구성되는 제 1 블록체인 네트워크에서 노드 장치의 동작 방법으로서,
    통신망을 통해 연결되는 클라이언트 기기의 요청에 따라 상기 클라이언트 기기를 사용하는 사용자가 상기 제 1 블록체인 네트워크 내에서 사용할 제 1 개인키, 제 1 공개키 및 제 1 지갑 주소를 생성하는 단계;
    상기 제 1 공개키 및 상기 제 1 지갑 주소를 공개 블록체인의 공개 블록에 저장하는 단계;
    상기 제 1 개인키를 비공개 블록체인의 비공개 블록에 저장한 후 제 1 랜덤 암호화 키를 생성하여 상기 제 1 개인키가 저장된 비공개 블록을 암호화하는 단계;
    상기 제 1 랜덤 암호화 키를 소정의 개수로 분할하여 분할 조각들을 다른 노드 장치들로 분산하여 저장하는 단계; 및
    상기 사용자의 트랜잭션 발생시 다른 노드 장치들로부터 상기 분할 조각들을 수신한 후 이에 기초하여 상기 암호화된 비공개 블록으로부터 상기 제 1 개인키를 복호화하여 이용하는 단계를 포함하는 동작 방법.
    A method for operating a node device in a first blockchain network composed of a plurality of node devices,
    Generating a first private key, a first public key, and a first wallet address to be used in the first blockchain network by a user using the client device according to a request of a client device connected through a communication network;
    Storing the first public key and the first wallet address in a public block of a public blockchain;
    Storing the first private key in a private block of the private blockchain and generating a first random encryption key to encrypt the private block in which the first private key is stored;
    Dividing the first random encryption key into a predetermined number and distributing and storing the divided pieces to other node devices; And
    And receiving the divided pieces from other node devices when the user's transaction occurs and decrypting and using the first private key from the encrypted private block based on this.
  8. 제 7 항에 있어서,
    상기 사용자의 트랜잭션은 상기 사용자로부터 타 사용자로의 상기 제 1 블록체인 네트워크에서 통용되는 제 1 종류의 코인의 송금으로서,
    상기 제 1 개인키를 복호화하여 이용하는 단계는,
    상기 사용자의 트랜잭션을 상기 제 1 개인키로 서명하여 다른 노드 장치로 전송하여 상기 제 1 공개키로 검증할 수 있도록 하고, 검증 완료시 해당 트랜잭션을 공개 블록체인의 공개 블록에 저장하는 단계를 포함하는 것을 특징으로 하는 동작 방법.
    The method of claim 7,
    The user's transaction is the transfer of a first kind of coin commonly used in the first blockchain network from the user to another user,
    Decoding and using the first private key,
    And signing the user's transaction with the first private key and transmitting it to another node device so that it can be verified with the first public key, and storing the transaction in the public block of the public blockchain upon completion of verification. How to do it.
  9. 제 7 항에 있어서,
    상기 클라이언트 기기로부터 제 2 블록체인 네트워크에서 사용할 지갑 생성 요청을 수신함에 따라 상기 제 2 블록체인 네트워크로 지갑 생성 요청을 전송하는 단계;
    상기 지갑 생성 요청에 따라 상기 제 2 블록체인 네트워크에서 생성된 제 2 개인키, 제 2 공개키 및 제 2 지갑 주소를 상기 제 2 블록체인 네트워크로부터 수신하는 단계;
    상기 제 2 공개키 및 상기 제 2 지갑 주소를 공개 블록체인의 공개 블록에 저장하는 단계;
    상기 제 2 개인키를 비공개 블록체인의 비공개 블록에 저장한 후 제 2 랜덤 암호화 키를 생성하여 상기 제 2 개인키가 저장된 비공개 블록을 암호화하는 단계;
    상기 제 2 랜덤 암호화 키를 소정의 개수로 분할하여 분할 조각들을 다른 노드 장치들로 분산하여 저장하는 단계; 및
    상기 사용자의 상기 제 2 블록체인 네트워크로 전송할 트랜잭션 발생시 다른 노드 장치들로부터 상기 제 2 랜덤 암호화 키의 분할 조각들을 수신한 후 이에 기초하여 상기 제 2 개인키가 저장되어 암호화된 비공개 블록으로부터 상기 제 2 개인키를 복호화하여 이용하는 단계를 더 포함하는 것을 특징으로 하는 동작 방법.
    The method of claim 7,
    Transmitting a wallet creation request to the second blockchain network upon receiving a wallet creation request to be used in the second blockchain network from the client device;
    Receiving a second private key, a second public key, and a second wallet address generated in the second blockchain network from the second blockchain network according to the wallet creation request;
    Storing the second public key and the second wallet address in a public block of a public blockchain;
    Storing the second private key in a private block of the private blockchain and generating a second random encryption key to encrypt the private block in which the second private key is stored;
    Dividing the second random encryption key into a predetermined number and distributing and storing the divided pieces to other node devices; And
    When a transaction to be transmitted to the second blockchain network of the user occurs, the second pieces of the second encryption key are received from other node devices, and based on this, the second private key is stored and encrypted from the encrypted private block. The method of operation further comprising the step of decrypting and using the private key.
  10. 제 9 항에 있어서,
    상기 제 2 블록체인 네트워크로 전송할 트랜잭션은, 상기 사용자로부터 타 사용자로의 상기 제 2 블록체인 네트워크에서 통용되는 제 2 종류의 코인의 송금으로서,
    상기 제 2 개인키를 복호화하여 이용하는 단계는,
    상기 제 2 종류의 코인의 송금인 상기 제 2 블록체인 네트워크로 전송할 트랜잭션을 상기 제 2 개인키로 서명하여 상기 제 2 블록체인 네트워크로 전송하고, 이에 대한 처리 응답을 수신하면, 해당 트랜잭션을 공개 블록체인의 공개 블록에 저장하는 단계를 포함하는 것을 특징으로 하는 동작 방법.
    The method of claim 9,
    The transaction to be transmitted to the second blockchain network is a remittance of a second kind of coin commonly used in the second blockchain network from the user to another user,
    Decoding and using the second private key,
    When the transaction to be transmitted to the second blockchain network, which is the remittance of the second kind of coin, is signed with the second private key and transmitted to the second blockchain network, and when a processing response is received, the transaction is sent to the public blockchain. And storing in a public block.
  11. 제 10 항에 있어서,
    상기 클라이언트 기기의 요청에 따라 상기 사용자의 상기 제 2 종류의 코인의 잔액을 공개 블록체인의 공개 블록에서 확인하여 상기 클라이언트 기기로 제공하는 단계를 더 포함하는 것을 특징으로 하는 동작 방법.
    The method of claim 10,
    And at the request of the client device, checking the balance of the second kind of coin in the public block of the public blockchain and providing it to the client device.
  12. 제 7 항에 있어서,
    상기 복수의 노드 장치는, 복수의 대표 노드 장치와 복수의 일반 노드 장치를 포함하고, 복수의 대표 노드 장치는 지분 증명에 의해 블록을 생성하여 블록을 동기화하고, 일반 노드 장치는 대표 노드 장치들의 블록들을 동기화하여 저장하며,
    상기 동작 방법을 수행하는 노드 장치는, 대표 노드 장치인 것을 특징으로 하는 동작 방법.
    The method of claim 7,
    The plurality of node devices includes a plurality of representative node devices and a plurality of general node devices, and the plurality of representative node devices generate blocks by synchronizing proof of ownership to synchronize blocks, and the general node device is a block of representative node devices. Save them in sync,
    A node device performing the operation method is a representative node device.
KR1020190060586A 2019-05-23 2019-05-23 Node device constituting a block-chain network and an operation method of the node device KR102248270B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020190060586A KR102248270B1 (en) 2019-05-23 2019-05-23 Node device constituting a block-chain network and an operation method of the node device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190060586A KR102248270B1 (en) 2019-05-23 2019-05-23 Node device constituting a block-chain network and an operation method of the node device

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
KR1020180113719A Division KR101984254B1 (en) 2018-09-21 2018-09-21 Node device constituting a block-chain network and an operation method of the node device

Publications (2)

Publication Number Publication Date
KR20200034565A true KR20200034565A (en) 2020-03-31
KR102248270B1 KR102248270B1 (en) 2021-05-03

Family

ID=70002456

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190060586A KR102248270B1 (en) 2019-05-23 2019-05-23 Node device constituting a block-chain network and an operation method of the node device

Country Status (1)

Country Link
KR (1) KR102248270B1 (en)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20080028198A (en) * 2006-09-26 2008-03-31 백옥기 Method and system for secure management of personal digital assets
KR20170006805A (en) 2015-07-09 2017-01-18 국민대학교산학협력단 Apparatus and method of informing a user of bitcoin trade
KR20170039672A (en) * 2014-07-31 2017-04-11 노크 노크 랩스, 인코포레이티드 System and method for authenticating a client to a device
KR20170087663A (en) 2016-01-21 2017-07-31 주식회사 한컴시큐어 Apparatus for performing on behalf an electronic signature for client terminal and operating method thereof

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20080028198A (en) * 2006-09-26 2008-03-31 백옥기 Method and system for secure management of personal digital assets
KR20170039672A (en) * 2014-07-31 2017-04-11 노크 노크 랩스, 인코포레이티드 System and method for authenticating a client to a device
KR20170006805A (en) 2015-07-09 2017-01-18 국민대학교산학협력단 Apparatus and method of informing a user of bitcoin trade
KR20170087663A (en) 2016-01-21 2017-07-31 주식회사 한컴시큐어 Apparatus for performing on behalf an electronic signature for client terminal and operating method thereof

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
- 한승우. ‘블록체인 활용 사례로 알아보는 금융권 적용 고려사항’, 전자금융과 금융보안, 금융보안원, 2016년 1월, pp.21-42 <URL : https://www.fsec.or.kr/common/proc/fsec/bbs/42/fileDownLoad/753.do>
-‘채굴방식((마이닝)) POW,, POSS,, DPOSS 란??’, 티스토리(2018.03.18. 게재) <URL : http://brownbears.tistory.com/366>

Also Published As

Publication number Publication date
KR102248270B1 (en) 2021-05-03

Similar Documents

Publication Publication Date Title
KR101984254B1 (en) Node device constituting a block-chain network and an operation method of the node device
AU2018347199B2 (en) Off-chain smart contract service based on trusted execution environment
US20200374134A1 (en) Method and apparatus for processing account information in block chain, storage medium, and electronic apparatus
US10250593B2 (en) Image based key deprivation function
EP3618394A1 (en) Data sharing method, client, server, computing device, and storage medium
WO2017219007A1 (en) Blockchain systems and methods for user authentication
KR20160024185A (en) Management system and method of crytocurrency using secure element
TWI695613B (en) Blockchain data protection using homomorphic encryption
US20170221022A1 (en) Information transaction infrastructure
Tackmann Secure event tickets on a blockchain
US11108571B2 (en) Managing communications among consensus nodes and client nodes
KR20200034565A (en) Node device constituting a block-chain network and an operation method of the node device
KR101571126B1 (en) Apparatus and method for user authentication
KR20160140219A (en) Authentication apparatus and method for connectivity of fintech services, and computer program for the same
KR102083757B1 (en) Node device constituting a block-chain network and an operation method of the node device
JP2018195059A (en) Data structure, transmission device, reception device, settlement device, method, computer program
KR102125042B1 (en) Node device constituting a block-chain network and an operation method of the node device
KR102274493B1 (en) Node device constituting a block-chain network and an operation method of the node device
AU2019204724B2 (en) Cryptography chip with identity verification
CN110417750B (en) Block chain technology-based file reading and storing method, terminal device and storage medium
WO2019031487A2 (en) Virtual currency data issuing system, user terminal, management device, method, and computer program
KR20210058784A (en) Method for providing virtual asset service based on dicentralized identity and virtual asset service providing server using them
KR20190090699A (en) Method And Apparatus for Providing Wallet for Enhancing Security And keeping Crypto-currency
Kuebler Application of Blockchain for Authentication, Verification of Identity and Cloud Computing
CN111275413A (en) Token transaction system using blockchain technology and method thereof

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant