KR102125042B1 - 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
KR102125042B1
KR102125042B1 KR1020190144423A KR20190144423A KR102125042B1 KR 102125042 B1 KR102125042 B1 KR 102125042B1 KR 1020190144423 A KR1020190144423 A KR 1020190144423A KR 20190144423 A KR20190144423 A KR 20190144423A KR 102125042 B1 KR102125042 B1 KR 102125042B1
Authority
KR
South Korea
Prior art keywords
private
block
public
blockchain
private block
Prior art date
Application number
KR1020190144423A
Other languages
Korean (ko)
Inventor
이형택
김성완
김철우
Original Assignee
주식회사 이노티움
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 주식회사 이노티움 filed Critical 주식회사 이노티움
Priority to KR1020190144423A priority Critical patent/KR102125042B1/en
Application granted granted Critical
Publication of KR102125042B1 publication Critical patent/KR102125042B1/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • 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
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], 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 communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0643Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • H04L9/083Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) involving central third party, e.g. key distribution center [KDC] or trusted third party [TTP]
    • H04L9/0833Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) involving central third party, e.g. key distribution center [KDC] or trusted third party [TTP] involving conference or group key
    • H04L9/0836Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) involving central third party, e.g. key distribution center [KDC] or trusted third party [TTP] involving conference or group key using tree structure or hierarchical structure
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • 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
    • H04L2209/38
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/50Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees

Abstract

The present invention relates to a node device of a blockchain network configured to include a plurality of the node devices. The node device includes: a communication circuit communicating with a client device and the other node devices; at least one processor; and a memory storing an instruction executable by the at least one processor. The at least one processor separately generates public and private blockchains, stores public data in a public block of the public blockchain, stores private data in which a specific condition is set in a private block of the private blockchain and then encrypts the private block storing the private data by generating a first random encryption key, divides the first random encryption key into a predetermined number, separately stores the divided fragments in the other node devices, copies the private block, temporarily loads the private block on the memory, receives and decrypts the divided fragments from the other node devices, and then edits the private block by deleting the private data stored in the decrypted private block when a deletion transaction occurs as the specific condition of the private data is satisfied, generates a child private block by copying the edited and decrypted private block, deletes the private block temporarily loaded on the memory, requests deletion of the divided fragments to the other node devices, encrypts the child private block by generating a second random encryption key, divides the second random encryption key into a predetermined number, and separately stores the divided fragments in the other node devices.

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 particularly, to a node device constituting a blockchain network including a multi-layer blockchain and a method of operating the node device.

일반적으로 전자 화폐는 인터넷에서 가상으로 존재하는 디지털 통화이다. 이와 같은 전자 화폐 중 대표적인 전자 화폐인 비트코인(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 refers to 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.

이와 같이 블록체인을 기반으로 하는 전자 화폐는 공개키 암호 방식을 기반으로 거래가 이루어진다. 전자 화폐를 보유한 사용자는 본인의 지갑 주소가 존재하며 송금을 하거나 거래를 할 때 개인키로 서명을 하여 트랜잭션을 발생시킨다. In this way, 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.

또한, 블록체인은 화폐 유통에만 국한되어 활용되지 않고 다양한 분야에 활용되고 있다. 예를 들어 화물 운송, 문서 보관 등 다양한 분야가 활용되고 있다. 이와 같이 다양한 분야에 활용되기 위해서는 중요 데이터에 대한 보안이 중요한데, 현재까지 제안되고 있는 블록체인은 위변조가 불가능할 뿐 누구에게나 블록이 공개되어 이러한 점에서는 보안이 취약하다고 할 수 있다. 물론 중요 데이터 자체를 암호화하여 블록체인에 저장할 수 있으나, 암호화된 상태로 어쨌든 누구에게나 노출되기에 해킹의 가능성은 여전하다. In addition, blockchain is not limited to currency distribution and is used in various fields. For example, various fields such as cargo transportation and document storage are used. In order to be used in various fields, security of important data is important.Blockchains that have been proposed to date cannot be forged, and blocks can be disclosed to anyone. Of course, the important data itself can be encrypted and stored on the blockchain, but the possibility of hacking is still possible because it is exposed to anyone anyway in an encrypted state.

또한, 블록체인은 앞서 설명한 바와 같이 블록에 저장된 데이터에 대한 위변조가 불가능하다. 그러나 필요에 따라 블록체인의 블록에 저장된 데이터에 대한 삭제 또는 수정을 하면서 이전에 저장된 데이터에 대한 원천적인 삭제를 할 필요가 있다. 현재까지의 기술로는 블록체인에 저장된 데이터에 대한 삭제 또는 수정 등의 편집을 하면서 원본 데이터를 원천적으로 삭제할 수 있는 기술이 없는 실정이다. Also, as described above, the blockchain is not capable of forgery and alteration of the data stored in the block. However, it is necessary to perform the original deletion of previously stored data while deleting or modifying the data stored in the block of the blockchain as necessary. As of the present technology, there is no technology that can delete the original data at the same time while editing such as deletion or modification of data stored in the blockchain.

본 발명은 상술한 문제점을 해결하기 위해 제안된 것으로서, 공개 블록체인과 비공개 블록체인으로 이루어지는 다계층의 블록체인을 운영하며 비공개 블록체인에 중요 데이터를 저장하여 중요 데이터에 대한 보안을 강화할 수 있는, 블록체인 네트워크를 구성하는 노드 장치 및 그 노드 장치의 동작 방법을 제공하는데 목적이 있다.The present invention is proposed to solve the above-mentioned problems, and operates a multi-layered blockchain consisting of a public blockchain and a private blockchain, and can store important data in a private blockchain to enhance security for sensitive data. It is an object to provide a node device constituting a blockchain network and a method of operating the node device.

특히, 본 발명은 상기 비공개 블록체인의 비공개 블록에 저장되는 데이터 중에서 특정 조건을 만족하는 데이터에 대한 삭제를 가능하게 하는, 블록체인 네트워크를 구성하는 노드 장치 및 그 노드 장치의 동작 방법을 제공하는데 목적이 있다. In particular, the present invention aims to provide a node device constituting a blockchain network and a method of operating the node device, which enables deletion of data that satisfies a specific condition among data stored in the private block of the private blockchain. There is this.

일 측면에 따른 복수의 노드 장치를 포함하여 구성되는 블록체인 네트워크의 노드 장치는, 클라이언트 기기 및 다른 노드 장치들과 통신하는 통신 회로; 하나 이상의 프로세서; 및 상기 하나 이상의 프로세서에 의해 실행 가능한 인스트럭션을 저장하는 메모리를 포함하고, 상기 하나 이상의 프로세서는, 공개 블록체인과 비공개 블록체인을 각각 독립적으로 생성하고, 공개 데이터를 상기 공개 블록체인의 공개 블록에 저장하고, 특정 조건이 설정된 비공개 데이터를 상기 비공개 블록체인의 비공개 블록에 저장한 후 제1 랜덤 암호화 키를 생성하여 상기 비공개 데이터가 저장된 비공개 블록을 암호화하며, 상기 제1 랜덤 암호화 키를 소정의 개수로 분할하여 분할 조각들을 다른 노드 장치들로 분산하여 저장하고, 상기 비공개 데이터의 상기 특정 조건이 만족됨에 따라 삭제 트랜잭션이 발생하면, 상기 비공개 블록을 복사하여 메모리에 임시 로드한 후 다른 노드 장치들로부터 상기 분할 조각들을 수신하여 복호화한 후 그 복호화된 비공개 블록에 저장된 비공개 데이터를 삭제하여 상기 비공개 블록을 편집하고, 상기 편집한 상기 복호화된 비공개 블록을 복사하여 자식(child) 비공개 블록을 생성하며, 상기 메모리에 임시 로드된 비공개 블록을 삭제하고, 다른 노드 장치들로 상기 분할 조각들의 삭제를 요청하며, 제2 랜덤 암호화 키를 생성하여 상기 자식 비공개 블록을 암호화하고, 상기 제2 랜덤 암호화 키를 소정의 개수로 분할하여 분할 조각들을 다른 노드 장치들로 분산하여 저장한다.A node device of a blockchain network including 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 independently generate a public blockchain and a private blockchain, and store the public data in a public block of the public blockchain. Then, after storing the private data in which the specific conditions are set in the private block of the private blockchain, the first random encryption key is generated to encrypt the private block in which the private data is stored, and the first random encryption key is set to a predetermined number. Split and divide the fragments to be distributed to other node devices, and when a delete transaction occurs as the specific condition of the private data is satisfied, the private block is copied and temporarily loaded into memory, and then from the other node devices. After receiving and decoding the divided pieces, the private data stored in the decrypted private block is deleted to edit the private block, and the edited decrypted private block is copied to generate a child private block, and the memory Delete the private block temporarily loaded in, request deletion of the fragments to other node devices, generate a second random encryption key to encrypt the child private block, and set the second random encryption key to a predetermined number. It is divided into and distributed fragments to other node devices and stored.

상기 하나 이상의 프로세서는, 상기 공개 블록체인의 공개 블록 생성시 상기 비공개 블록체인의 비공개 블록을 동시에 생성하며, 상기 공개 블록의 헤더에 동시에 생성된 비공개 블록의 해쉬값 및 이전 공개 블록의 해쉬값을 기록할 수 있다.When the public block of the public blockchain is generated, the one or more processors simultaneously generate the private block of the private blockchain, and record the hash value of the private block and the hash value of the previous public block simultaneously in the header of the public block. can do.

상기 하나 이상의 프로세서는, 상기 비공개 블록체인의 비공개 블록 생성시 해당 비공개 블록의 헤더에 이전 비공개 블록의 해쉬값을 기록할 수 있다.The one or more processors may record the hash value of the previous private block in the header of the private block when creating the private block of the private blockchain.

상기 하나 이상의 프로세서는, 상기 삭제 트랜잭션을 상기 공개 블록체인의 공개 블록에 기록하고, 상기 자식 비공개 블록의 해쉬값을 상기 삭제 트랜잭션을 기록한 공개 블록과 함께 동시에 생성된 비공개 블록의 헤더에 기록할 수 있다.The one or more processors may record the deletion transaction in the public block of the public blockchain, and record the hash value of the child private block in the header of the private block generated simultaneously with the public block recording the deletion transaction. .

상기 비공개 데이터의 상기 특정 조건과 상기 비공개 데이터가 포함된 비공개 블록의 인덱스가 상기 공개 블록체인의 공개 블록에 기록되고, 상기 특정 조건이 만족되는 경우에 상기 삭제 트랜잭션이 발생할 수 있다.When the specific condition of the private data and the index of the private block containing the private data are recorded in the public block of the public blockchain, the deletion transaction may occur when the specific condition is satisfied.

상기 삭제 트랜잭션은, 개인키를 이용한 서명값을 포함할 수 있다. 이 경우 상기 하나 이상의 프로세서는, 상기 제 1 랜덤 암호화 키의 분할 조각을 다른 노드 장치들로 요청할 때 상기 서명값을 함께 전송하고 상기 다른 노드 장치들에서 상기 서명값의 검증 성공시에 상기 다른 노드 장치들로부터 상기 제 1 랜덤 암호화 키의 분할 조각을 수신할 수 있다.The deletion transaction may include a signature value using a private key. In this case, the one or more processors transmit the signature value together when requesting the fragmentation of the first random encryption key to other node devices and the other node device upon successful verification of the signature value by the other node devices. It is possible to receive a fragment of the first random encryption key from the field.

상기 특정 조건은, 전자상거래의 거래 만료조건, 거래 취소조건, 거래 환불조건, 거래 유효기간, 열람 유효기간, 열람 횟수 중 어느 하나를 포함할 수 있다.The specific condition may include any one of a transaction expiration condition, a transaction cancellation condition, a transaction refund condition, a transaction validity period, a browsing validity period, and a reading frequency of an e-commerce transaction.

복수의 노드 장치를 포함하여 구성되는 블록체인 네트워크의 노드 장치의 동작 방법은, 공개 블록체인의 공개 블록에 공개 데이터를 저장하고, 상기 공개 블록체인으로부터 독립된 비공개 블록체인의 비공개 블록에 특정 조건이 설정된 비공개 데이터를 저장하는 단계; 제1 랜덤 암호화 키를 생성하여 상기 비공개 데이터가 저장된 비공개 블록을 암호화하며, 상기 제1 랜덤 암호화 키를 소정의 개수로 분할하여 분할 조각들을 다른 노드 장치들로 분산하여 저장하는 단계; 상기 비공개 데이터의 상기 특정 조건이 만족됨에 따라 삭제 트랜잭션이 발생하면, 상기 비공개 블록을 복사하여 메모리에 임시 로드한 후 다른 노드 장치들로부터 상기 분할 조각들을 수신하여 복호화하는 단계; 그 복호화된 비공개 블록에 저장된 비공개 데이터를 삭제하여 상기 비공개 블록을 편집하고, 편집한 상기 복호화된 비공개 블록을 복사하여 자식(child) 비공개 블록을 생성하는 단계; 상기 메모리에 임시 로드된 비공개 블록을 삭제하고, 다른 노드 장치들로 상기 분할 조각들의 삭제를 요청하는 단계; 및 제2 랜덤 암호화 키를 생성하여 상기 자식 비공개 블록을 암호화하고, 상기 제2 랜덤 암호화 키를 소정의 개수로 분할하여 분할 조각들을 다른 노드 장치들로 분산하여 저장하는 단계를 포함한다.A method of operating a node device of a blockchain network including a plurality of node devices stores public data in a public block of a public blockchain, and specific conditions are set in a private block of a private blockchain independent from the public blockchain. Storing private data; Generating a first random encryption key to encrypt a private block in which the private data is stored, dividing the first random encryption key into a predetermined number, and distributing and storing the divided pieces to other node devices; When a deletion transaction occurs as the specific condition of the private data is satisfied, copying the private block and temporarily loading it into memory, and then receiving and decrypting the divided pieces from other node devices; Deleting the private data stored in the decrypted private block, editing the private block, and copying the edited decrypted private block to generate a child private block; Deleting a private block temporarily loaded in the memory and requesting deletion of the divided pieces by other node devices; And generating a second random encryption key to encrypt the child private block, dividing the second random encryption key into a predetermined number, and distributing and storing the divided pieces to other node devices.

본 발명은 다계층 블록체인을 비공개 블록체인과 공개 블록체인으로 구성하고 비공개 블록체인의 비공개 블록에는 중요 데이터를 저장하며 공개 블록체인의 공개 블록에는 일반 데이터를 저장함으로써, 블록체인 네트워크를 구성하는 데 있어 중요 데이터의 외부 노출을 원천적으로 차단하여 보안을 강화한다. The present invention is to construct a blockchain network by constructing a multi-layer blockchain as a private blockchain and a public blockchain, storing important data in a private block of a private blockchain, and storing general data in a public block of a public blockchain. It enhances security by fundamentally blocking external exposure of important data.

본 발명은 중요 데이터를 저장한 비공개 블록을 랜덤 암호화 키로 암호화한 후 블록체인 네트워크를 구성하는 노드 장치들에 그 랜덤 암호화 키를 분산하여 저장한 후 노드 장치들의 승인 하에서만 랜덤 암호화 키의 조각들을 수집하여 중요 데이터를 복호화할 수 있도록 하여 중요 데이터의 해킹을 방지하고 보안을 강화한다.The present invention encrypts a private block storing important data with a random encryption key, distributes the random encryption key to node devices constituting a blockchain network, stores the random encryption key, and collects pieces of the random encryption key only under the approval of node devices. To prevent sensitive data from being hacked and to enhance security.

또한, 본 발명은 비공개 블록에 저장된 중요 데이터 중에서 유효기간 등의 특정 조건을 만족하는 데이터를 삭제하고, 삭제 전의 비공개 블록의 복호화가 불가능하도록 하여 삭제 전의 데이터를 원천적으로 삭제하는 효과를 제공한다.In addition, the present invention provides an effect of deleting data that satisfies a specific condition, such as an expiration date, from important data stored in a private block, and making it impossible to decrypt a private block before deletion, thereby fundamentally deleting data before deletion.

도 1은 본 발명의 일 실시예에 따른 시스템을 나타낸 도면이다.
도 2는 도 1의 대표 노드의 블록체인을 나타낸 도면이다.
도 3은 본 발명의 일 실시예에 따른 비공개 블록의 중요 데이터를 편집하는 과정을 설명하는 도면이다.
도 4는 본 발명의 일 실시예에 따른 비공개 블록과 공개 블록이 생성되는 블록체인 네트워크에 저장되는 방법을 설명하는 흐름도이다.
도 5는 본 발명의 일 실시예에 따른, 유효기간이 만료된 데이터를 비공개 블록에서 삭제하는 방법을 설명하는 흐름도이다.
도 6은 본 발명의 다른 실시예에 따른, 비공개 블록의 중요 데이터를 편집하는 방법을 설명하는 흐름도이다.
도 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.
3 is a diagram illustrating a process of editing important data of a private block according to an embodiment of the present invention.
4 is a flowchart illustrating a method of storing a private block and a public block in a blockchain network in which a private block is generated according to an embodiment of the present invention.
5 is a flowchart illustrating a method of deleting data whose expiration date has expired from a private block according to an embodiment of the present invention.
6 is a flowchart illustrating a method of editing important data of a private block according to another embodiment of the present invention.
FIG. 7 is a flow chart illustrating the Innocoin subscription procedure and the Innocoin wallet creation procedure 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 the present invention is not limited. Accordingly, an equivalent invention that performs the same function as the present invention will also fall within the scope of the present invention. In the following description, the same identification symbol means the same configuration, and redundant description and unnecessary description will be omitted.

도 1은 본 발명의 일 실시예에 따른 시스템을 나타낸 도면이고, 도 2는 도 1의 대표 노드의 블록체인을 나타낸 도면이다. 도 1 및 이하의 설명에서 본 발명에 따른 전자 화폐를 이노코인으로 지칭한다. 이노코인은 블록체인 기반의 전자 화폐이다. 도 1에 도시된 바와 같이, 블록체인 네트워크(120)는, 복수의 대표 노드(121)와 복수의 일반 노드(122)를 포함하여 구성된다. 여기서 노드(121, 122)들은, 데스크톱, 노트북, 스마트폰, 또는 기업의 서버 등일 수 있으며, 메모리와 프로세서를 포함하는 컴퓨팅 장치이다. 블록체인 네트워크(120)는 다양한 종류의 전자 화폐(예컨대, 비트코인, 이더리움 등)의 블록체인 네트워크와 연동할 수 있다.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. Innocoin is a blockchain-based electronic money. As shown in FIG. 1, the 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. The blockchain network 120 may interwork with various types of electronic money (eg, Bitcoin, Ethereum, etc.) blockchain networks.

도 1에 도시된 클라이언트 기기(110)는, 이노코인에 가입하는 사용자가 이용하는 기기로서, 스마트폰과 같은 이동통신단말 또는 퍼스널 컴퓨터, 노트북, 데스크톱이나 태블릿 등을 포함하는, 통신 기능을 보유한 기기일 수 있다. 사용자는 클라이언트 기기(110)에 이노코인을 위한 클라이언트 어플리케이션을 설치하여 가입할 수 있고, 또는 인터넷 브라우저를 이용하여 이노코인 웹 사이트에 접속하여 가입할 수 있다. 이노코인을 위한 클라이언트 어플리케이션은 회원 가입 메뉴, 그리고 다양한 종류의 코인을 거래하기 위한 지갑을 생성할 수 있는 메뉴를 포함하고, 이노코인 웹 사이트도 유사한 메뉴를 포함할 수 있다. 또한, 클라이언트 어플리케이션은 중요 데이터(예컨대, 졸업증명서, 통장 사본, 신분증 사본, 신분증 이미지 등 )의 유효기간을 지정할 수 있는 메뉴를 포함할 수도 있다. 클라이언트 어플리케이션과 웹 사이트는 블록체인 네트워크(120)의 대표 노드(121)들 중 어느 하나의 대표 노드와 통신할 수 있는 API(Application Programmable Interface)를 제공할 수 있다. 또한 상기 클라이언트 기기(110)는, 온라인 전자상거래 서비스를 제공하는 쇼핑몰 서버일 수 있다. 쇼핑몰 서버는, 배송지 주소 등의 중요 데이터가 발생하면 그 중요 데이터를 저장하기 위한 트랜잭션을 생성하여 블록체인 네트워크(120)의 비공개 블록에 저장할 수 있고, 전자상거래와 관련된 이벤트가 발생하면, 해당 이벤트의 트랜잭션을 블록체인 네트워크(120)로 전송할 수 있다.The client device 110 shown in FIG. 1 is a device used by a user who subscribes to Innocoin, which is a device having a communication function, including a mobile communication terminal such as a smartphone or a personal computer, laptop, desktop, or tablet. Can be. 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 can also include a similar menu. In addition, the client application may include a menu that can specify the validity period of important data (eg, graduation certificate, passbook copy, ID card copy, ID card, etc.). The client application and the website can provide an API (Application Programmable Interface) that can communicate with any one of the representative nodes 121 of the blockchain network 120. In addition, the client device 110 may be a shopping mall server providing an online e-commerce service. The shopping mall server may generate a transaction for storing important data when the important data such as a delivery address occurs, and store it in a private block of the blockchain network 120, and when an event related to e-commerce occurs, Transactions can be sent to the 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)에는 사용자들의 가입 정보와 사용자들의 개인키, 콘텐츠 암호화키 등의 외부에 노출되어서는 안 되는 중요 데이터, 즉 비공개 데이터가 저장된다. 상기 비공개 데이터에 대해서는 삭제를 위한 특정 조건이 설정될 수 있다. 예를 들어, 상기 비공개 데이터가 온라인 전자상거래에서의 배송지 주소 등과 같은 개인 정보일 경우, 상기 특정 조건은 해당 전자상거래의 거래 만료조건(예컨대, 구매자의 구매 완료 입력), 거래 취소조건(예컨대, 구매자의 구매 취소), 거래 환불조건(예컨대, 구매자의 구매 취소 후 환불), 거래 유효기간(예컨대, 배송 완료 후 2주 경과), 열람 유효기간, 열람 횟수 등을 포함할 수 있다. 이러한 특정 조건이 만족되면, 해당 비공개 데이터는 블록체인 네트워크(120)에서 실질적으로 삭제된다. 대표 노드(121)는, 클라이언트 기기(110)로부터 수신되는 이벤트를 상기 특정 조건과 비교하여 해당 특정 조건의 만족 여부를 판단할 수 있고, 또는 유효기간 등의 조건은 이벤트 수신과 무관하게 자체적으로 유효기간 만료를 판단할 수 있다. 또한, 비공개 블록체인(220)을 구성하는 비공개 블록은 랜덤 암호화 키로 암호화된다. 그리고 랜덤 암호화 키는 블록체인 네트워크(120)를 구성하는 노드들 중에서 일반 노드들(122)을 제외한 대표 노드들(121)에만 여러 조각으로 분할되어 분산 저장된다. 공개 블록체인(210)에 저장되는 각종 트랜잭션은 예를 들어 코인의 송금, 사용자들의 공개키 그리고 지갑 주소 등을 포함할 수 있다. 또한, 공개 블록체인(210)에 저장되는 각종 트랜잭션에는 중요 데이터의 상기 특정 조건이 포함될 수 있다. 공개 블록체인(210)과 비공개 블록체인(220)에 적용되는 블록 생성 기술(예, 작업증명 또는 지분증명, 해쉬 연산)은 공지된 블록체인 기술이 적용될 수 있다. The representative nodes 121 constituting the blockchain network 120 are multi-layered, as shown in FIG. 2, consisting of a public blockchain 210 in which public blocks are connected and a private blockchain 220 in which private blocks are connected. Blockchain is operated and stored. Various transactions are stored in the public blockchain 210, and the private blockchain 220 stores important data that should not be exposed to the user's subscription information, users' private keys, and content encryption keys, that is, private data. do. Specific conditions for deletion may be set for the private data. For example, when the non-public data is personal information such as a delivery address in an online e-commerce transaction, the specific condition is a transaction expiration condition of the corresponding e-commerce transaction (eg, a purchase completion input of the buyer), a transaction cancellation condition (eg, a buyer) May include cancellation of purchase), transaction refund conditions (eg, refund after purchaser's purchase cancellation), transaction expiration date (eg, 2 weeks after delivery is completed), viewing expiration date, number of views, and the like. When these specific conditions are satisfied, the private data is substantially deleted from the blockchain network 120. The representative node 121 may compare the event received from the client device 110 with the specific condition to determine whether or not the specific condition is satisfied, or conditions such as an expiration date are valid independently of the event reception. You can judge the expiration of the period. In addition, the private blocks constituting the private blockchain 220 are encrypted with a random encryption key. In addition, the random encryption key is divided into pieces and distributedly stored only in representative nodes 121 excluding general nodes 122 among nodes constituting the blockchain network 120. Various transactions stored in the public blockchain 210 may include, for example, transfer of coins, public keys of users, and wallet addresses. In addition, the above-mentioned specific conditions of important data may be included in various transactions stored in the public blockchain 210. 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.

블록체인(210, 220)의 블록은 헤더(header)와 바디(body)로 구성된다. 헤더에는 이전 블록의 해쉬값, 난이도, 넌스(Nonce), 타임 스탬프, 머클 루트(Merkle Root)가 기록되고, 바디에는 각종 트랜잭션 정보와 블록의 인덱스가 기록된다. 여기서 블록의 인덱스는 비공개 블록의 인덱스를 포함한다. 즉, 비공개 블록에 특정 중요 데이터를 저장하는 트랜잭션이 발생하였을 때, 그 트랜잭션의 정보는 공개 블록의 바디에 기록되면서, 그 트랜잭션에 대응하는 중요 데이터가 기록된 비공개 블록에 대한 인덱스 및 비공개 블록에 포함된 중요 데이터의 특정 조건이 공개 블록의 바디에 기록된다. 따라서 특정 중요 데이터에 대한 검색이 요구될 때, 상기 인덱스를 참조하여 해당 특정 중요 데이터를 저장하고 있는 비공개 블록을 찾을 수 있다. 또한, 공개 블록에 포함된 상기 특정 조건을 토대로, 특정 중요 데이터의 상기 특정 조건의 만족 여부를 검증할 수 있다. 공개 블록체인(210)을 구성하는 공개 블록이 생성될 때, 비공개 블록체인(220)을 구성하는 비공개 블록도 동시에 생성된다. 그리고 공개 블록의 헤더에는 이전 블록의 해쉬값과 함께, 공개 블록과 함께 동시에 생성된 비공개 블록의 해쉬값이 기록된다. 따라서, 비공개 블록에 대한 위변조를 방지할 수 있다. 당연히 비공개 블록의 헤더에는 이전 비공개 블록의 해쉬값이 기록된다. Blocks of the blockchains 210 and 220 are composed of a header and a body. In the header, the hash value of the previous block, difficulty, nonce, time stamp, and Merkle Root are recorded, and various transaction information and block indexes are recorded in the body. Here, the index of the block includes the index of the private block. That is, when a transaction for storing specific important data in a private block occurs, the information of the transaction is recorded in the body of the public block, and the important data corresponding to the transaction is included in the index and the private block for the private block in which the transaction is recorded. The specific conditions of the important data are recorded in the body of the public block. Therefore, when a search for specific important data is required, a private block storing the specific important data may be found by referring to the index. In addition, based on the specific condition included in the public block, it is possible to verify whether the specific condition of the specific important data is satisfied. When the public block constituting the public blockchain 210 is generated, the private block constituting the private blockchain 220 is also generated at the same time. In addition, the hash value of the previous block and the hash value of the private block generated simultaneously with the public block are recorded in the header of the public block. Therefore, forgery and alteration of the private block can be prevented. Naturally, the hash value of the previous private block is recorded in the header of the private block.

대표 노드(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 chain to create a block chain and other representative nodes ( 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, store them, and verify the integrity of the representative node 121 requested 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 important data such as a user's private key. Here, the user's private key includes a private key for Innocoin, another private key for electronic money, and the like used for the Innocoin of the present invention. The random encryption key is different for each private block in which each important data is stored, and the private block in which each important data is stored may also be different. Meanwhile, the identification information of the private block in which each important data is stored is stored in the public block, so that the representative nodes 121 can identify information of the private block in which specific important data is stored in the public block.

대표 노드(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 away from one or more processors, for example, communication circuitry, the Internet, an intranet, a local area network (LAN), a wide LAN (WLAN), a storage area network (SAN), etc. Or a network attached storage device accessed through a communication network (not shown), such as a suitable combination thereof. 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 as separate chips.

I/O 서브시스템은 디스플레이 장치, 입력 장치와 같은 대표 노드의 입출력 주변장치와 주변 인터페이스 사이에 인터페이스를 제공한다. The I/O subsystem provides an interface between the input/output peripherals of a 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, resistive, infrared type touch display. 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-sensitive surface that accepts user input.

프로세서는 대표 노드(121)들에 연관된 동작을 수행하고 명령어들을 수행하도록 구성된 프로세서로서, 예를 들어, 메모리로부터 검색된 명령어들을 이용하여, 대표 노드(121)들의 컴포넌트 간의 입력 및 출력 데이터의 수신과 조작을 제어할 수 있다. The processor is a processor configured to perform operations related to 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)"이란 용어는 텍스트, 웹 페이지, 아이콘(예컨대, 소프트 키를 포함하는 사용자 인터페이스 대상), 디지털 이미지, 비디오, 애니메이션 등을 제한 없이 포함하여, 사용자에게 표시될 수 있는 모든 대상을 포함한다. 이노코인 프로그램에 따라 하나 이상의 프로세서는 이하의 도면을 참조하여 설명하는 동작을 수행한다. In some embodiments, the software component is loaded (installed) in memory with an operating system, a graphics module (instruction set), and an Innocoin program (instruction set). 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 an operation described with reference to the following drawings.

통신 회로는 무선 또는 유선 통신을 수행할 수 있다. 통신 회로는 전기 신호를 전자파로 또는 그 반대로 변환하며 이 전자파를 통하여 통신 네트워크, 다른 이동형 게이트웨이 및 통신 장치와 통신할 수 있다. 통신 회로는 예를 들어 안테나 시스템, 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은 본 발명의 일 실시예에 따른 비공개 블록의 중요 데이터를 편집하는 과정을 설명하는 도면이다. 3 is a diagram illustrating a process of editing important data of a private block according to an embodiment of the present invention.

도 3에 도시된 바와 같이, 대표 노드(121)는 공개 블록으로 이루어지는 공개 블록체인과 비공개 블록으로 이루어지는 비공개 블록체인을 구성한다. 대표 노드(121)는 공개 블록의 생성시에 저장할 중요 데이터가 없더라도 비공개 블록을 동시에 생성하고, 비공개 블록의 해쉬값을 공개 블록의 헤더에 기록한다. 따라서, 다음 공개 블록의 헤더에는 이전 공개 블록의 해쉬값과 이전 비공개 블록의 해쉬값이 연관된다. 대표 노드(121)는 비공개 블록에 대해 랜덤 암호화 키를 생성하고 그 랜덤 암호화 키를 이용하여 비공개 블록을 암호화한 후, 그 랜덤 암호화 키를 분할하여 분할된 조각을 다른 대표 노드(121)들에게 분산하여 저장한다. 또한, 비공개 블록에 포함된 중요 데이터에는 상술한 특정 조건이 설정될 수 있다. 상기 특정 조건은 사용자가 설정할 수도 있으며, 또는 중요 데이터의 유형에 근거하여 시스템적으로 자동적으로 설정할 수도 있다. 이하에서는 상기 특정 조건의 예로서 유효기간을 예로 들어 설명한다.As shown in FIG. 3, the representative node 121 constitutes a public blockchain consisting of public blocks and a private blockchain consisting of private blocks. The representative node 121 simultaneously generates a private block even if there is no important data to be stored when the public block is generated, and records the hash value of the private block in the header of the public block. Therefore, the hash value of the previous public block and the hash value of the previous private block are associated with the header of the next public block. The representative node 121 generates a random encryption key for the private block, encrypts the private block using the random encryption key, and then splits the random encryption key to distribute the divided pieces to other representative nodes 121 And save. In addition, the specific conditions described above may be set in the important data included in the private block. The specific condition may be set by the user, or may be automatically set systematically based on the type of important data. Hereinafter, the expiration date will be described as an example of the specific condition.

도 3을 참조하면, 대표 노드(121)는 공개 블록 #N 및 비공개 블록 #N을 생성할 때, 비공개 블록 #1에 저장된 데이터 중 중요 데이터(310)의 유효기간이 만료되면, 유효기간이 만료된 중요 데이터(310)에 대한 삭제 트랜잭션(delete transaction)을 발생시킬 수 있다. 상기 삭제 트랜잭션은 삭제를 요청하는 주체의 개인키를 이용한 서명값을 포함한다. 예를 들어, 클라이언트 기기의 사용자의 개인키 또는 대표 노드의 개인키를 이용한 서명값을 포함한다. 삭제 트랜잭션이 발생하면 대표 노드(121)는, 비공개 블록 #1을 복사하여 메모리에 임시 로드(load)한 후, 다른 대표 노드들로부터 그 비공개 블록 #1을 복호화할 수 있는 랜덤 암호화 키의 분할 조각들을 수신한다. 이때, 대표 노드(121)는, 분할 조각을 다른 대표 노드들로 요청할 때 상기 서명값을 함께 전송하고 상기 다른 대표 노드들에서 상기 서명값의 검증 성공시에 상기 다른 대표 노드들로부터 분할 조각을 수신한다. 이로써, 해킹 등에 의한 중요 데이터의 삭제를 방지할 수 있다. 대표 노드(121)는, 수신된 분할 조각을 이용하여 메모리에 임시 로드한 비공개 블록 #1을 복호화한 후 그 복호화된 비공개 블록 #1에 저장된 데이터 중, 유효기간 만료에 따라 삭제 대상이 되는 중요 데이터(310)를 삭제하고, 중요 데이터(310)가 삭제된 상기 복호화된 비공개 블록 #1을 복사하여 자식(child) 비공개 블록 #1을 생성한다. 그리고 대표 노드(121)는, 상기 메모리에 임시 로드된 비공개 블록 #1을 삭제하고, 그 비공개 블록 #1에 대한 랜덤 암호화 키의 분할 조각의 삭제 요청을 다른 대표 노드(121)들로 전송한다. 따라서, 비공개 블록 #1에 대해서는 복호화를 위한 랜덤 암호화 키를 생성할 수 없으므로, 비공개 블록 #1은 원천적으로 삭제된 것과 같이 된다. 한편, 대표 노드(121)는 상기 자식 비공개 블록 #1에 대한 랜덤 암호화 키를 생성하여 그 자식 비공개 블록 #1을 암호화하고, 그 랜덤 암호화 키를 소정의 개수로 분할하여 분할 조각들을 다른 노드 장치들로 분산하여 저장한다. 상기 삭제 트랜잭션은 공개 블록 #N 및 비공개 블록 #N이 생성될 때 발생하였으므로, 대표 노드(121)는 상기 삭제 트랜잭션은 공개 블록 #N에 기록하고, 자식 비공개 블록 #1의 해쉬값은 비공개 블록 #N에 기록한다. 따라서, 공개 블록 #N의 헤더에는 이전 공개 블록 #N-1의 해쉬값, 비공개 블록 #N의 해쉬값, 그리고 자식 비공개 블록 #1의 해쉬값이 연관된다. Referring to FIG. 3, when the representative node 121 generates the public block #N and the private block #N, when the validity period of the important data 310 among the data stored in the private block #1 expires, the validity period expires A delete transaction for the important data 310 may be generated. The deletion transaction includes a signature value using the subject's private key requesting deletion. For example, the signature value using the private key of the user of the client device or the private key of the representative node is included. When a delete transaction occurs, the representative node 121 copies the private block #1, temporarily loads it into memory, and then splits the random encryption key that can decrypt the private block #1 from other representative nodes. Listen. At this time, the representative node 121 transmits the signature value together when requesting the divided fragment to other representative nodes, and receives the divided fragment from the other representative nodes upon successful verification of the signature value in the other representative nodes. do. Thus, it is possible to prevent deletion of important data due to hacking or the like. The representative node 121 decrypts the private block #1 temporarily loaded in the memory using the received divided fragment, and then, among the data stored in the decrypted private block #1, important data to be deleted upon expiration of the validity period. The 310 is deleted, and the decrypted private block #1 from which the important data 310 is deleted is copied to generate a child private block #1. Then, the representative node 121 deletes the private block #1 temporarily loaded in the memory, and transmits a request to delete the fragment of the random encryption key for the private block #1 to other representative nodes 121. Therefore, since the random encryption key for decryption cannot be generated for the private block #1, the private block #1 is as if it was originally deleted. On the other hand, the representative node 121 generates a random encryption key for the child private block #1 to encrypt the child private block #1, and divides the random encryption key into a predetermined number to divide the pieces into different node devices. Disperse with and store. Since the deletion transaction occurred when the public block #N and the private block #N were generated, the representative node 121 records the deleted transaction in the public block #N, and the hash value of the child private block #1 is the private block #N. Record in N. Therefore, the hash value of the previous public block #N-1, the hash value of the private block #N, and the hash value of the child private block #1 are associated with the header of the public block #N.

도 3을 참조하면, 대표 노드(121)는 공개 블록 #N+1 및 비공개 블록 #N+1을 생성할 때, 비공개 블록 #2에 저장된 데이터 중 일부 데이터(330)에 대한 삭제 및 추가에 관한 수정 트랜잭션(Modify transaction)을 수신할 수 있다. 수정 트랜잭션도 마찬가지로 트랜잭션을 발생시킨 주체의 서명값을 포함한다. 대표 노드(121)는, 비공개 블록 #2를 복사하여 메모리에 임시 로드한 후, 다른 대표 노드(121)들로부터 그 비공개 블록 #2를 복호화할 수 있는 랜덤 암호화 키의 분할 조각들을 수신한다. 마찬가지로 상기 서명값에 대한 검증 성공시에 분할 조각이 수신된다. 대표 노드(121)는, 수신된 분할 조각을 이용하여 메모리에 임시 로드한 비공개 블록 #2를 복호화한 후 그 복호화된 비공개 블록 #2에 저장된 데이터 중 삭제 요청된 데이터(330)를 삭제하고 추가 요청된 데이터(350)를 추가한 후, 데이터(330)가 삭제되고 데이터(350)가 추가된 비공개 블록 #2를 복사하여 자식(child) 비공개 블록 #2를 생성한다. 그리고 대표 노드(121)는, 상기 메모리에 임시 로드된 비공개 블록 #2를 삭제하고, 그 비공개 블록 #2에 대한 랜덤 암호화 키의 분할 조각의 삭제 요청을 다른 대표 노드(121)들로 전송한다. 따라서, 비공개 블록 #2에 대해서는 복호화를 위한 랜덤 암호화 키를 생성할 수 없으므로, 비공개 블록 #2는 원천적으로 삭제된 것과 같이 된다. 한편, 대표 노드(121)는 상기 자식 비공개 블록 #2에 대한 랜덤 암호화 키를 생성하여 그 자식 비공개 블록 #2를 암호화하고, 그 랜덤 암호화 키를 소정의 개수로 분할하여 분할 조각들을 다른 노드 장치들로 분산하여 저장한다. 상기 수정 트랜잭션은 공개 블록 #N+1 및 비공개 블록 #N+1이 생성될 때 발생하였으므로, 대표 노드(121)는 상기 수정 트랜잭션은 공개 블록 #N+1에 기록하고, 자식 비공개 블록 #2의 해쉬값은 비공개 블록 #N+1에 기록한다. 따라서, 공개 블록 #N+1의 헤더에는 이전 공개 블록 #N의 해쉬값, 비공개 블록 #N+1의 해쉬값, 그리고 자식 비공개 블록 #2의 해쉬값이 연관된다. Referring to FIG. 3, when the representative node 121 generates the public block #N+1 and the private block #N+1, the representative node 121 relates to deletion and addition of some data 330 among the data stored in the private block #2. You can receive a Modify transaction. A revised transaction likewise contains the signature value of the subject that caused the transaction. The representative node 121 copies the private block #2 and temporarily loads it into memory, and then receives fragments of a random encryption key that can decrypt the private block #2 from other representative nodes 121. Likewise, when the verification of the signature value is successful, a fragment is received. The representative node 121 decrypts the private block #2 temporarily loaded in the memory using the received divided fragment, and then deletes the requested data 330 from the data stored in the decrypted private block #2 and requests an addition. After adding the old data 350, the data 330 is deleted and the private block #2 to which the data 350 is added is copied to generate a child private block #2. Then, the representative node 121 deletes the private block #2 temporarily loaded in the memory, and transmits a request to delete the fragment of the random encryption key for the private block #2 to other representative nodes 121. Therefore, for the private block #2, since a random encryption key for decryption cannot be generated, the private block #2 is essentially deleted. Meanwhile, the representative node 121 generates a random encryption key for the child private block #2, encrypts the child private block #2, and divides the random encryption key into a predetermined number to divide the pieces into different node devices. Disperse with and store. Since the revised transaction occurred when the public block #N+1 and the private block #N+1 were generated, the representative node 121 records the revised transaction in the public block #N+1, and of the child private block #2. The hash value is recorded in private block #N+1. Therefore, the hash value of the previous public block #N, the hash value of the private block #N+1, and the hash value of the child private block #2 are associated with the header of the public block #N+1.

도 4는 본 발명의 일 실시예에 따른 비공개 블록과 공개 블록이 생성되는 블록체인 네트워크에 저장되는 방법을 설명하는 흐름도이다.4 is a flowchart illustrating a method of storing a private block and a public block in a blockchain network in which a private block is generated according to an embodiment of the present invention.

도 4를 참조하면, 단계 S401에서, 제1 대표 노드(121)는 유효기간이 설정된 중요 데이터를 포함하는 정보등록 트랜잭션을 수신한다. 상기 정보등록 트랜잭션에는 정보 등록을 요청한 주체의 개인키를 이용한 서명값이 포함된다. Referring to FIG. 4, in step S401, the first representative node 121 receives an information registration transaction including important data whose validity period is set. The information registration transaction includes a signature value using the private key of the subject who requested information registration.

단계 S403에서 제1 대표 노드(121)는 상기 중요 데이터를 포함하는 비공개 블록을 생성하고, 상기 비공개 블록의 인덱스와 상기 유효기간을 포함하는 공개 블록을 생성한다. In step S403, the first representative node 121 generates a private block including the important data, and creates a public block including the index of the private block and the expiration date.

단계 S405에서, 제1 대표 노드(121)는 상기 비공개 블록에 대한 랜덤 암호화 키를 생성하고, 상기 생성한 랜더 암호화 키를 이용하여 상기 비공개 블록을 암호화한다. In step S405, the first representative node 121 generates a random encryption key for the private block, and encrypts the private block using the generated render encryption key.

단계 S407 및 S409에서, 상기 제1 대표 노드(121)는 상기 생성한 랜덤 암호화 키를 소정의 개수로 분할하여 분할 조각들을 다른 대표 노드들로 분산하여 저장한다. In steps S407 and S409, the first representative node 121 divides the generated random encryption key into a predetermined number and distributes the fragmented fragments to other representative nodes for storage.

단계 S411에서, 제1 대표 노드(121)는, 상기 생성한 비공개 블록에 이전 비공개 블록의 해시값을 기록하고, 상기 비공개 블록과 동시에 생성한 공개 블록에는 이전 공개 블록의 해시값과 상기 생성한 비공개 블록의 해시값을 기록한다. 따라서, 생성한 공개 블록/비공개 블록과 이전의 공개 블록/비공개 블록은 상호 연관된다. In step S411, the first representative node 121 records the hash value of the previous private block in the generated private block, and in the public block generated simultaneously with the private block, the previous public block hash value and the generated private block. Record the hash value of the block. Therefore, the generated public block/private block and the previous public block/private block are correlated.

도 5는 본 발명의 일 실시예에 따른, 유효기간이 만료된 데이터를 비공개 블록에서 삭제하는 방법을 설명하는 흐름도이다. 5 is a flowchart illustrating a method of deleting data whose expiration date has expired from a private block according to an embodiment of the present invention.

단계 S501에서, 제1 대표 노드(121)는 유효기간이 만료된 데이터가 존재하는지 여부를 확인하는 유효성 검증 프로세스를 실행한다. 상기 제1 대표 노드(121)는 공개 블록들에 저장된 데이터 유효기간을 확인함으로써, 유효기간이 만료된 중요 데이터가 존재하는지 여부를 확인할 수 있다. 또 다른 실시형태로서, 제1 대표 노드(121)는 데이터의 유효기간과 비공개 블록의 인덱스가 매핑된 별도의 테이블을 저장하고, 이 테이블에 저장된 유효기간을 토대로 유효기간이 만료된 데이터가 존재하는지 여부를 확인할 수 있다. 또는, 제1 대표 노드(121)는 또 다른 대표노드 또는 외부의 통신 장치로부터 유효기간이 만료된 데이터가 존재함을 통보받을 수도 있다.In step S501, the first representative node 121 executes a validation process to check whether data whose expiration date has expired exists. The first representative node 121 may check whether there is important data whose validity period has expired by checking the data validity period stored in the public blocks. In another embodiment, the first representative node 121 stores a separate table in which the validity period of the data and the index of the private block are mapped, and whether the expired data exists based on the validity period stored in the table. Can be checked. Alternatively, the first representative node 121 may be notified of the existence of data whose expiration date has expired from another representative node or an external communication device.

단계 S503에서, 제1 대표 노드(121)는 유효기간이 만료된 데이터가 발견되면, 이 데이터와 대응되는 비공개 블록의 인덱스를 확인한고, 상기 인덱스를 포함하는 삭제 트랜잭션을 발생시킨다. In step S503, when the first representative node 121 finds data whose expiration date has expired, it checks the index of the private block corresponding to the data, and generates a deletion transaction including the index.

단계 S505에서 제1 대표 노드(121)는, 상기 삭제 트랜잭션에 포함된 인덱스를 이용하여, 유효기간이 만료된 중요 데이터를 포함하는 비공개 블록을 검색하고, 이 비공개 블록을 메모리에 임시 로드한다. In step S505, the first representative node 121 searches for a private block including important data whose expiration date has expired by using the index included in the deletion transaction, and temporarily loads the private block into memory.

단계 S507에서, 제1 대표 노드(121)는 다른 대표 노드들로 상기 비공개 블록을 복호화할 수 있는 랜덤 암호화 키의 분할 조각들을 요청하여 수신한다. 이때, 다른 대표 노드들은 제1 대표 노드(121)의 무결성을 검증한다. 제1 대표 노드(121)는, 분할 조각을 다른 대표 노드들로 요청할 때 자신의 서명값을 함께 전송하고 상기 다른 대표 노드들에서 상기 서명값의 검증 성공시에 상기 다른 대표 노드들로부터 분할 조각을 수신한다.In step S507, the first representative node 121 requests and receives fragments of a random encryption key capable of decrypting the private block with other representative nodes. At this time, other representative nodes verify the integrity of the first representative node 121. The first representative node 121 transmits its signature value together when requesting the divided fragment to other representative nodes, and when the verification of the signature value is successful in the other representative nodes, divides the fragment from the other representative nodes. To receive.

단계 S509에서, 제1 대표 노드(121)는, 수신된 분할 조각을 이용하여 메모리에 임시 로드한 상기 비공개 블록을 복호화하고, 단계 S511에서 그 복호화한 비공개 블록에서 포함된 데이터 중에서 유효기간이 만료된 중요 데이터를 삭제하여 상기 비공개 블록을 편집한다.In step S509, the first representative node 121 decodes the private block temporarily loaded in the memory using the received fragment, and the validity period has expired among the data included in the decrypted private block in step S511. Edit the private block by deleting important data.

단계 S513에서, 제1 대표 노드(121)는, 복호화되고 편집된 비공개 블록을 복사하여 자식(child) 비공개 블록을 생성한다. 그리고 단계 S515에서, 제1 대표 노드(121)는, 임시 로드된 상기 비공개 블록을 삭제하고, 단계 S517에서, 상기 비공개 블록에 대한 랜덤 암호화 키의 분할 조각의 삭제 요청을 다른 대표 노드들로 전송한다. 즉, 제1 대표 노드(121)는 S507 단계에서 요청한 랜덤 암호화 키의 분할 조각에 대한 삭제를 다른 대표 노드들로 요청하여, 중요 데이터가 삭제되기 전의 비공개 블록을 복호화할 수 있는 랜덤 암호화키를 완전히 폐기한다. 이에 따라, 상기 비공개 블록에 대해서는 복호화를 위한 랜덤 암호화 키를 생성할 수 없으므로, 상기 비공개 블록은 원천적으로 삭제된 것과 같이 된다. In step S513, the first representative node 121 copies the decrypted and edited private block to generate a child private block. Then, in step S515, the first representative node 121 deletes the temporarily loaded private block, and in step S517, transmits a request to delete the fragment of the random encryption key for the private block to other representative nodes. . That is, the first representative node 121 requests deletion of the fragment of the random encryption key requested in step S507 to other representative nodes, so that the random encryption key capable of decrypting the private block before important data is deleted is completely Discard it. Accordingly, since the random encryption key for decryption cannot be generated for the private block, the private block is essentially deleted.

단계 S519에서, 제1 대표 노드(121)는 상기 자식 비공개 블록에 대한 랜덤 암호화 키를 생성하여 그 자식 비공개 블록을 암호화하고, 단계 S521에서, 그 랜덤 암호화 키를 소정의 개수로 분할하여 분할 조각들을 다른 대표 노드들로 분산하여 저장한다. In step S519, the first representative node 121 generates a random encryption key for the child private block to encrypt the child private block, and in step S521, divides the random encryption key into a predetermined number to divide the pieces. It is distributed and stored in other representative nodes.

단계 S523에서, 제1 대표 노드(121)는, 상기 삭제 트랜잭션을 포함하는 공개 블록, 그리고 비공개 블록을 함께 생성하고, 상기 자식 비공개 블록의 해시값을 상기 생성한 비공개 블록의 해시값에 기록하고, 또한 상기 공개 블록에 상기 생성한 비공개 블록의 해시값 그리고 이전 공개 블록의 해시값을 기록한다. 이에 따라, 상기 생성한 공개 블록의 헤더에는 이전 공개 블록의 해쉬값, 상기 비공개 블록의 해쉬값, 그리고 상기 자식 비공개 블록의 해쉬값이 연관된다In step S523, the first representative node 121 generates the public block including the deletion transaction and the private block together, and writes the hash value of the child private block to the generated hash value of the private block, In addition, a hash value of the generated private block and a hash value of the previous public block are recorded in the public block. Accordingly, a hash value of the previous public block, a hash value of the private block, and a hash value of the child private block are associated with the header of the generated public block.

도 6은 본 발명의 다른 실시예에 따른, 비공개 블록의 중요 데이터를 편집하는 방법을 설명하는 흐름도이다. 6 is a flowchart illustrating a method of editing important data of a private block according to another embodiment of the present invention.

도 6을 참조하면, 단계 S601에서, 제1 대표 노드(121)는 특정 비공개 블록에 저장된 데이터 중 일부 데이터에 대한 편집 트랜잭션을 수신한다. 여기서 편집은, 삭제, 또는 추가를 포함한다. 제1 대표 노드(121)는, 수신된 편집 트랜잭션은 해당 트랜잭션이 수신된 시점에서 생성하는 공개 블록에 기록한다. 편집 트랜잭션에는 편집을 요청한 주체의 개인키를 이용한 서명값이 포함된다. Referring to FIG. 6, in step S601, the first representative node 121 receives an edit transaction for some data among data stored in a specific private block. Editing here includes deleting or adding. The first representative node 121 records the received edit transaction in a public block generated when the corresponding transaction is received. The edit transaction includes the signature value using the private key of the subject who requested the edit.

단계 S603에서, 제1 대표 노드(121)는, 편집 트랜잭션에 포함된 정보를 이용하여 특정 비공개 블록을 검색한다. 제1 대표 노드(121)는, 공개 블록에 기록되어 있는 데이터별 비공개 블록의 인덱스를 참조하여 편집 대상의 데이터를 저장하고 있는 비공개 블록을 검색할 수 있다. In step S603, the first representative node 121 searches for a specific private block using the information included in the edit transaction. The first representative node 121 may search for a private block storing data to be edited by referring to the index of the private block for each data recorded in the public block.

단계 S605에서, 제1 대표 노드(121)는, 검색된 상기 특정 비공개 블록을 복사하여 메모리에 임시 로드하고, 단계 S607에서, 제1 대표 노드(121)는 다른 대표 노드들로 그 특정 비공개 블록을 복호화할 수 있는 랜덤 암호화 키의 분할 조각들을 요청하여 수신한다. 이때, 다른 대표 노드들은 제1 대표 노드(121)의 무결성을 검증한다. 제1 대표 노드(121)는, 분할 조각을 다른 대표 노드들로 요청할 때 상기 서명값을 함께 전송하고 상기 다른 대표 노드들에서 상기 서명값의 검증 성공시에 상기 다른 대표 노드들로부터 분할 조각을 수신한다.In step S605, the first representative node 121 copies the retrieved specific private block and temporarily loads it into memory, and in step S607, the first representative node 121 decrypts the specific private block with other representative nodes. Request and receive fragments of a random encryption key that can be done. At this time, other representative nodes verify the integrity of the first representative node 121. The first representative node 121 transmits the signature value together when requesting the segment fragment to other representative nodes, and receives the fragment segment from the other representative nodes upon successful verification of the signature value at the other representative nodes. do.

단계 S609에서, 제1 대표 노드(121)는, 수신된 분할 조각을 이용하여 메모리에 임시 로드한 상기 특정 비공개 블록을 복호화하고, 단계 S611에서, 그 복호화된 특정 비공개 블록에 저장된 데이터 중 일부를 삭제하거나 데이터를 추가하는 등의 편집을 한다. In step S609, the first representative node 121 decodes the specific private block temporarily loaded in the memory using the received fragment, and in step S611, deletes some of the data stored in the decoded specific private block. Or edit data, such as adding data.

단계 S613에서, 제1 대표 노드(121)는, 편집된 상기 복호화된 특정 비공개 블록을 복사하여 자식(child) 비공개 블록을 생성한다. 그리고 단계 S615에서, 제1 대표 노드(121)는, 임시 로드된 상기 특정 비공개 블록을 삭제하고, 단계 S617에서 그 특정 비공개 블록에 대한 랜덤 암호화 키의 분할 조각의 삭제 요청을 다른 대표 노드들로 전송한다. 따라서, 상기 특정 비공개 블록에 대해서는 복호화를 위한 랜덤 암호화 키를 생성할 수 없으므로, 상기 특정 비공개 블록은 원천적으로 삭제된 것과 같이 된다. In step S613, the first representative node 121 copies the edited specific decrypted block to generate a child closed block. Then, in step S615, the first representative node 121 deletes the temporarily loaded specific private block, and in step S617, transmits a request to delete a fragment of the random encryption key for the specific private block to other representative nodes. do. Therefore, since the random encryption key for decryption cannot be generated for the specific private block, the specific private block is essentially deleted.

단계 S619에서, 제1 대표 노드(121)는 상기 자식 비공개 블록에 대한 랜덤 암호화 키를 생성하여 그 자식 비공개 블록을 암호화하고, 단계 S621에서, 그 랜덤 암호화 키를 소정의 개수로 분할하여 분할 조각들을 다른 대표 노드들로 분산하여 저장한다. In step S619, the first representative node 121 generates a random encryption key for the child private block to encrypt the child private block, and in step S621, the random encryption key is divided into a predetermined number to divide the pieces. It is distributed and stored in other representative nodes.

단계 S623에서, 제1 대표 노드(121)는, 자식 비공개 블록의 해쉬값을 현재 생성되는 비공개 블록에 기록한다. 따라서, 현재 생성되는 공개 블록의 헤더에는 이전 공개 블록의 해쉬값, 현재 생성되는 비공개 블록의 해쉬값, 그리고 상기 자식 비공개 블록의 해쉬값이 연관된다. In step S623, the first representative node 121 records the hash value of the child private block in the currently generated private block. Therefore, the hash value of the previous public block, the hash value of the currently generated private block, and the hash value of the child private block are associated with the header of the currently generated public block.

도 7은 도 1의 시스템에서 이노코인의 가입 절차 및 이노코인의 지갑 생성 절차를 설명하는 흐름도이다.FIG. 7 is a flowchart illustrating the Innocoin subscription process and the Innocoin wallet creation process in the system of FIG. 1.

도 7에 참조한 설명에서, 가입 정보에 포함된 데이터 중에서 일부가 유효기간이 설정되는 것으로 가정된다.In the description with reference to FIG. 7, it is assumed that some of the data included in the subscription information have an expiration date.

도 7을 참조하면, 단계 S701에서, 사용자는 클라이언트 기기(110)를 통해 블록체인 네트워크(120)로 접속하고 가입 요청을 전송한다. 클라이언크 기기(110)에는 이노코인 전용 클라이언트 프로그램이 설치될 수 있고 해당 프로그램은 API를 통해 블록체인 네트워크(120)를 구성하는 대표 노드(121) 중 하나에 접속한다. 또는 인터넷 브라우저를 통해 가입 웹 페이지에 접속할 수도 있다. 가입 요청시, ID/패스워드, 사용자의 이름, 이메일, 전화번호, 생년월일 등의 개인 정보를 입력할 수 있다. 또한, 사용자는 가입 요청시에 통장 사본, 신분증 사본, 신분증 이미지, 주민등록번호 등과 같은 중요 데이터를 대표 노드(121)로 전송할 수 있으며, 특히 상기 중요 데이터에 유효기간을 설정할 수도 있다.Referring to FIG. 7, in step S701, the user connects to the blockchain network 120 through the client device 110 and transmits a subscription request. A client program for Innocoin can be installed in the client device 110, and the program accesses one of the representative nodes 121 constituting the blockchain network 120 through the API. Alternatively, you can access the signup web page through your internet browser. When signing up, you can enter personal information such as ID/password, user's name, email, phone number, and date of birth. In addition, the user may transmit important data such as a copy of a passbook, a copy of an identification card, an image of an ID, a social security number, etc. to the representative node 121, and may set an expiration date on the important data.

단계 S703에서, 대표 노드(121)는 사용자에 대한 실명 인증을 수행한다. 여기서 실명 인증은, 모바일 인증이나 계좌 인증 등의 공지된 방법을 사용할 수 있다. 사용자의 실명 인증에 성공하면, 단계 S705에서, 대표 노드(121)는 가입을 승인한다. 그리고 단계 S707에서, 대표 노드(121)는, 사용자의 개인키, 공개키 그리고 이노코인 지갑 주소를 생성한다. 개인키, 공개키 그리고 지갑 주소의 생성은 공지된 블록체인 기술을 이용할 수 있다.In step S703, the representative node 121 performs real-name authentication for the user. Here, the real name authentication may use a known method such as mobile authentication or account authentication. If the user's real name authentication is successful, in step S705, the representative node 121 approves the subscription. Then, in step S707, the representative node 121 generates the user's private key, public key, and Innocoin wallet address. The creation of the private key, public key, and wallet address can use known blockchain technology.

단계 S709에서, 대표 노드(121)는 공개키와 이노코인 지갑 주소는 공개 블록체인의 블록에 저장한다. 그리고 단계 S711에서, 대표 노드(121)는 사용자의 개인키와 상기 단계 S701에서 수신된 가입 정보를 비공개 블록체인의 블록에 저장한다. 상기 비공개 블록체인에 저장되는 가입 정보의 데이터 중에서 유효기간이 설정되는 데이터가 존재할 수 있다. In step S709, the representative node 121 stores the public key and the Innocoin wallet address in a block of the public blockchain. Then, in step S711, the representative node 121 stores the user's private key and the subscription information received in step S701 in a block of the private blockchain. Among the data of subscription information stored in the private blockchain, there may be data for which an expiration date is set.

단계 S713에서, 대표 노드(121)는 가입 정보 및 개인키가 저장된 비공개 블록을 암호화하는데 사용할 랜덤 암호화 키를 생성하고, 단계 S715에서, 그 비공개 블록을 랜덤 암호화 키로 암호화한다. 이어서, 단계 S717 내지 단계 S721에서, 대표 노드(121)는, 랜덤 암호화 키를 대표 노드의 개수인 N개로 분할하고 분할된 랜덤 암호화 키 조각을 다른 대표 노드들로 각각 전송하여 분산 저장한다. 따라서, 분할된 N개의 랜덤 암호화 키 조각은 N개의 대표 노드들로 각각 분산되어 저장된다. 대표 노드(121)는 조각을 전송할 때 해당 조각에 연관된 비공개 블록의 식별정보를 함께 전송한다.In step S713, the representative node 121 generates a random encryption key to be used to encrypt the private block in which the subscription information and the private key are stored, and in step S715, the private block is encrypted with the random encryption key. Subsequently, in steps S717 to S721, the representative node 121 divides the random encryption key into N pieces, which is the number of representative nodes, and transmits the divided pieces of the random encryption key to other representative nodes for distribution. Therefore, the fragmented N random encryption key pieces 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.

단계 S723 및 단계 S725에서, 대표 노드(121)는, 조각을 분산 저장한 후 원본 랜덤 암호화 키를 폐기하고, 공개 블록에 비공개 블록과 개인키의 관계 정보를 기록한다. 여기서 관계 정보는, 어느 비공개 블록에 누구의 개인키가 저장되었는지의 정보이다. In steps S723 and S725, the representative node 121 disposes the fragments and stores them, discards the original random encryption key, and records the relationship information between the private block and the private key in the public block. Here, the relationship information is information of whose private key is stored in which private block.

이상의 도 7을 참조한 실시예에서는 대표 노드 #1이 가입 신청을 받고 개인키, 공개키 및 지갑 주소를 생성하며 블록을 생성하는 작업을 모두 수행하는 것으로 설명하나, 블록체인 네트워크(120)의 대표 노드(121)들은, 지분 증명에 의해 블록을 생성한다. 즉, 각 대표 노드들은 특정 순번의 블록을 생성하기 위한 승인을 다른 대표 노드들에게 요청하는데 이 중에서 가장 많이 승인을 받은 대표 노드에서 최종적인 블록 생성 권한을 갖고 블록을 생성하고, 생성된 블록을 다른 대표 노드들 그리고 일반 노드들에게 전송하여 동기화한다. 상술한 도 7를 참조한 실시예에서는 설명의 편의를 위해 대표 노드 #1이 최종적인 블록 생성 권한을 갖고 있는 것을 가정하여 설명한다. 따라서, 상술한 단계 S709, S711, S725에서의 블록에 저장하는 것은, 이와 같은 지분 증명에 의해 블록을 생성하는 것을 의미하고, 이하의 청구범위에서도 마찬가지로 이해되어야 한다.In the embodiment with reference to FIG. 7 described above, it is described that representative node #1 receives the subscription application, generates a private key, a public key, and a wallet address, and performs all operations of generating a block, but the representative node of the blockchain network 120 The 121s generate a block by proof of stake. That is, each representative node requests approval to create 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 a block, and the generated block is different. Synchronization by transmitting to representative nodes and general nodes. In the above-described embodiment with reference to FIG. 7, 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 S709, S711, and S725 means that blocks are generated by such proof of stake and should be understood in the following claims as well.

도 7에서 등록된 가입 정보의 데이터 중에서 유효기간이 설정된 데이터는, 상술한 도 5과 같은 프로세스를 통해서, 유효기간이 만료되면 실질적으로 비공개 블록체인에서 삭제된다.In the data of the subscription information registered in FIG. 7, the data whose validity period is set is substantially deleted from the private blockchain when the validity period expires through the process as in FIG. 5 described above.

이상의 설명은 본 발명의 기술 사상을 예시적으로 설명한 것에 불과한 것으로서, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자라면 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 다양한 수정 및 변형이 가능할 것이다. 따라서, 본 발명에 개시된 실시예들은 본 발명의 기술 사상을 한정하기 위한 것이 아니라 설명하기 위한 것이고, 이러한 실시예에 의하여 본 발명의 기술 사상의 범위가 한정되는 것은 아니다. 본 발명의 보호 범위는 아래의 청구범위에 의하여 해석되어야 하며, 그와 동등한 범위 내에 있는 모든 기술 사상은 본 발명의 권리범위에 포함되는 것으로 해석되어야 할 것이다. 상술한 바와 같은 본 발명의 방법은 프로그램으로 구현되어 컴퓨터로 읽을 수 있는 형태로 기록매체(시디롬, 램, 롬, 플로피 디스크, 하드 디스크, 광자기 디스크 등)에 저장될 수 있다. 이러한 과정은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있으므로 더 이상 상세히 설명하지 않기로 한다.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 equivalent range 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 (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 : 일반 노드
150 : 인터넷망
210 : 공개 블록
220 : 비공개 블록
110: client device
120: blockchain network
121: representative node
122: normal node
150: Internet network
210: public block
220: private block

Claims (8)

복수의 노드 장치를 포함하여 구성되는 블록체인 네트워크의 노드 장치에 있어서,
클라이언트 기기 및 다른 노드 장치들과 통신하는 통신 회로;
하나 이상의 프로세서; 및
상기 하나 이상의 프로세서에 의해 실행 가능한 인스트럭션을 저장하는 메모리를 포함하고,
상기 하나 이상의 프로세서는,
공개 블록체인과 비공개 블록체인을 각각 독립적으로 생성하고,
공개 데이터를 상기 공개 블록체인의 공개 블록에 저장하고,
특정 조건이 설정된 비공개 데이터를 상기 비공개 블록체인의 비공개 블록에 저장한 후 제1 랜덤 암호화 키를 생성하여 상기 비공개 데이터가 저장된 비공개 블록을 암호화하며,
상기 제1 랜덤 암호화 키를 소정의 개수로 분할하여 분할 조각들을 다른 노드 장치들로 분산하여 저장하고,
상기 비공개 데이터의 상기 특정 조건이 만족됨에 따라 삭제 트랜잭션이 발생하면, 상기 비공개 블록을 복사하여 메모리에 임시 로드한 후 다른 노드 장치들로부터 상기 분할 조각들을 수신하여 복호화한 후 그 복호화된 비공개 블록에 저장된 비공개 데이터를 삭제하여 상기 비공개 블록을 편집하고, 상기 편집한 상기 복호화된 비공개 블록을 복사하여 자식(child) 비공개 블록을 생성하며,
상기 메모리에 임시 로드된 비공개 블록을 삭제하고, 다른 노드 장치들로 상기 분할 조각들의 삭제를 요청하며, 제2 랜덤 암호화 키를 생성하여 상기 자식 비공개 블록을 암호화하고, 상기 제2 랜덤 암호화 키를 소정의 개수로 분할하여 분할 조각들을 다른 노드 장치들로 분산하여 저장하고,
또한, 상기 하나 이상의 프로세서는,
상기 공개 블록체인의 공개 블록 생성시 상기 비공개 블록체인의 비공개 블록을 동시에 생성하며, 상기 공개 블록의 헤더에 동시에 생성된 비공개 블록의 해쉬값 및 이전 공개 블록의 해쉬값을 기록하고,
상기 비공개 블록체인의 비공개 블록 생성시 해당 비공개 블록의 헤더에 이전 비공개 블록의 해쉬값을 기록하며,
상기 삭제 트랜잭션을 상기 공개 블록체인의 공개 블록에 기록하고,
상기 자식 비공개 블록의 해쉬값을 상기 삭제 트랜잭션을 기록한 공개 블록과 함께 동시에 생성된 비공개 블록의 헤더에 기록하는 것을 특징으로 하는 노드 장치.
In a node device of a blockchain network comprising 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,
Create public blockchain and private blockchain independently,
Store the public data in the public block of the public blockchain,
After storing the private data in which the specific condition is set in the private block of the private blockchain, a first random encryption key is generated to encrypt the private block in which the private data is stored,
The first random encryption key is divided into a predetermined number, and the divided pieces are distributed to other node devices and stored.
When a deletion transaction occurs as the specific condition of the private data is satisfied, the private block is copied and temporarily loaded into memory, and then the fragments received from other node devices are decrypted and then stored in the decrypted private block. Editing the private block by deleting the private data, and copying the edited decrypted private block to generate a child private block,
Delete the private block temporarily loaded in the memory, request deletion of the fragments to other node devices, generate a second random encryption key to encrypt the child private block, and specify the second random encryption key Divide the number of pieces and distribute the divided pieces to other node devices and store them.
In addition, the one or more processors,
When the public block of the public blockchain is created, the private block of the private blockchain is simultaneously generated, and the hash value of the private block and the hash value of the previous public block are simultaneously recorded in the header of the public block,
When the private block of the private blockchain is created, the hash value of the previous private block is recorded in the header of the private block,
Record the deletion transaction in the public block of the public blockchain,
A node device, characterized in that a hash value of the child private block is recorded in a header of a private block generated simultaneously with the public block recording the deletion transaction.
삭제delete 삭제delete 삭제delete 제 1 항에 있어서,
상기 비공개 데이터의 상기 특정 조건과 상기 비공개 데이터가 포함된 비공개 블록의 인덱스가 상기 공개 블록체인의 공개 블록에 기록되고,
상기 특정 조건이 만족되는 경우에 상기 삭제 트랜잭션이 발생하는 것을 특징으로 하는 노드 장치.
According to claim 1,
The specific condition of the private data and the index of the private block containing the private data are recorded in the public block of the public blockchain,
A node device characterized in that the deletion transaction occurs when the specific condition is satisfied.
제 1 항에 있어서,
상기 삭제 트랜잭션은, 개인키를 이용한 서명값을 포함하고,
상기 하나 이상의 프로세서는,
상기 제 1 랜덤 암호화 키의 분할 조각을 다른 노드 장치들로 요청할 때 상기 서명값을 함께 전송하고 상기 다른 노드 장치들에서 상기 서명값의 검증 성공시에 상기 다른 노드 장치들로부터 상기 제 1 랜덤 암호화 키의 분할 조각을 수신하는 것을 특징으로 하는 노드 장치.
According to claim 1,
The deletion transaction includes a signature value using a private key,
The one or more processors,
When requesting the fragmentation of the first random encryption key to other node devices, the signature value is transmitted together and the first random encryption key from the other node devices upon successful verification of the signature value by the other node devices Node device, characterized in that for receiving the fragmentation of the.
제 1 항에 있어서,
상기 특정 조건은,
전자상거래의 거래 만료조건, 거래 취소조건, 거래 환불조건, 거래 유효기간, 열람 유효기간, 열람 횟수 중 어느 하나를 포함하는 것을 특징으로 하는 노드 장치.
According to claim 1,
The specific conditions are:
A node device comprising any one of a transaction expiration condition, a transaction cancellation condition, a transaction refund condition, a transaction validity period, a browsing validity period, and a reading frequency of an e-commerce transaction.
복수의 노드 장치를 포함하여 구성되는 블록체인 네트워크의 노드 장치의 동작 방법으로서,
공개 블록체인의 공개 블록에 공개 데이터를 저장하고, 상기 공개 블록체인으로부터 독립된 비공개 블록체인의 비공개 블록에 특정 조건이 설정된 비공개 데이터를 저장하는 단계;
제1 랜덤 암호화 키를 생성하여 상기 비공개 데이터가 저장된 비공개 블록을 암호화하며, 상기 제1 랜덤 암호화 키를 소정의 개수로 분할하여 분할 조각들을 다른 노드 장치들로 분산하여 저장하는 단계;
상기 비공개 데이터의 상기 특정 조건이 만족됨에 따라 삭제 트랜잭션이 발생하면, 상기 비공개 블록을 복사하여 메모리에 임시 로드한 후 다른 노드 장치들로부터 상기 분할 조각들을 수신하여 복호화하는 단계;
그 복호화된 비공개 블록에 저장된 비공개 데이터를 삭제하여 상기 비공개 블록을 편집하고, 편집한 상기 복호화된 비공개 블록을 복사하여 자식(child) 비공개 블록을 생성하는 단계;
상기 메모리에 임시 로드된 비공개 블록을 삭제하고, 다른 노드 장치들로 상기 분할 조각들의 삭제를 요청하는 단계; 및
제2 랜덤 암호화 키를 생성하여 상기 자식 비공개 블록을 암호화하고, 상기 제2 랜덤 암호화 키를 소정의 개수로 분할하여 분할 조각들을 다른 노드 장치들로 분산하여 저장하는 단계를 포함하고,
상기 공개 블록체인의 공개 블록 생성시 상기 비공개 블록체인의 비공개 블록을 동시에 생성하며, 상기 공개 블록의 헤더에 동시에 생성된 비공개 블록의 해쉬값 및 이전 공개 블록의 해쉬값을 기록하고,
상기 비공개 블록체인의 비공개 블록 생성시 해당 비공개 블록의 헤더에 이전 비공개 블록의 해쉬값을 기록하며,
상기 삭제 트랜잭션을 상기 공개 블록체인의 공개 블록에 기록하고,
상기 자식 비공개 블록의 해쉬값을 상기 삭제 트랜잭션을 기록한 공개 블록과 함께 동시에 생성된 비공개 블록의 헤더에 기록하는 것을 특징으로 하는 방법.
A method of operating a node device of a blockchain network including a plurality of node devices,
Storing public data in a public block of a public blockchain, and storing private data with specific conditions set in a private block of a private blockchain independent from the public blockchain;
Generating a first random encryption key to encrypt a private block in which the private data is stored, dividing the first random encryption key into a predetermined number, and distributing and storing the divided pieces to other node devices;
When a deletion transaction occurs as the specific condition of the private data is satisfied, copying the private block and temporarily loading it into memory, and then receiving and decrypting the divided pieces from other node devices;
Deleting the private data stored in the decrypted private block, editing the private block, and copying the edited decrypted private block to generate a child private block;
Deleting a private block temporarily loaded in the memory and requesting deletion of the divided pieces by other node devices; And
Generating a second random encryption key, encrypting the child private block, dividing the second random encryption key into a predetermined number, and distributing and storing the divided pieces to other node devices,
When the public block of the public blockchain is created, the private block of the private blockchain is simultaneously generated, and the hash value of the private block and the hash value of the previous public block are simultaneously recorded in the header of the public block,
When the private block of the private blockchain is created, the hash value of the previous private block is recorded in the header of the private block,
Record the deletion transaction in the public block of the public blockchain,
And recording the hash value of the child private block in the header of the private block generated simultaneously with the public block recording the deletion transaction.
KR1020190144423A 2019-11-12 2019-11-12 Node device constituting a block-chain network and an operation method of the node device KR102125042B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020190144423A KR102125042B1 (en) 2019-11-12 2019-11-12 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
KR1020190144423A KR102125042B1 (en) 2019-11-12 2019-11-12 Node device constituting a block-chain network and an operation method of the node device

Publications (1)

Publication Number Publication Date
KR102125042B1 true KR102125042B1 (en) 2020-06-19

Family

ID=71137502

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190144423A KR102125042B1 (en) 2019-11-12 2019-11-12 Node device constituting a block-chain network and an operation method of the node device

Country Status (1)

Country Link
KR (1) KR102125042B1 (en)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112540998A (en) * 2020-12-21 2021-03-23 清华大学 Method and device for clearing on-chain content of block chain
CN112700314A (en) * 2020-12-21 2021-04-23 布比(北京)网络技术有限公司 Auction method and system based on mixed block chain
CN113112329A (en) * 2021-04-20 2021-07-13 南通觅味农业科技有限公司 Online shopping mall based on block chaining and certification economic symbiosis technology
KR102390888B1 (en) * 2020-12-10 2022-04-26 주식회사 이노티움 A node device that performs mutual authentication in a blockchain network comprising a plurality of node devices, and operating method of the node device

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190036948A (en) * 2017-09-28 2019-04-05 주식회사 케이티 System and Method for Managing Original Data in Block-Chain
KR101984254B1 (en) * 2018-09-21 2019-05-30 김성완 Node device constituting a block-chain network and an operation method of the node device
KR20190097623A (en) * 2018-02-12 2019-08-21 박성배 Node device, operation method baed on block chain and system for processing data
KR102026225B1 (en) * 2017-01-19 2019-09-27 주식회사 케이티 Apparatus for managing data using block chain and method thereof

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102026225B1 (en) * 2017-01-19 2019-09-27 주식회사 케이티 Apparatus for managing data using block chain and method thereof
KR20190036948A (en) * 2017-09-28 2019-04-05 주식회사 케이티 System and Method for Managing Original Data in Block-Chain
KR20190097623A (en) * 2018-02-12 2019-08-21 박성배 Node device, operation method baed on block chain and system for processing data
KR101984254B1 (en) * 2018-09-21 2019-05-30 김성완 Node device constituting a block-chain network and an operation method of the node device

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102390888B1 (en) * 2020-12-10 2022-04-26 주식회사 이노티움 A node device that performs mutual authentication in a blockchain network comprising a plurality of node devices, and operating method of the node device
CN112540998A (en) * 2020-12-21 2021-03-23 清华大学 Method and device for clearing on-chain content of block chain
CN112700314A (en) * 2020-12-21 2021-04-23 布比(北京)网络技术有限公司 Auction method and system based on mixed block chain
CN112540998B (en) * 2020-12-21 2022-12-02 清华大学 Method and device for clearing on-chain contents of block chain
CN113112329A (en) * 2021-04-20 2021-07-13 南通觅味农业科技有限公司 Online shopping mall based on block chaining and certification economic symbiosis technology

Similar Documents

Publication Publication Date Title
US11223477B2 (en) Data sharing method, client, server, computing device, and storage medium
AU2018347199B2 (en) Off-chain smart contract service based on trusted execution environment
KR101984254B1 (en) Node device constituting a block-chain network and an operation method of the node device
KR102125042B1 (en) Node device constituting a block-chain network and an operation method of the node device
TWI764037B (en) Interaction method and system across blockchain, computer equipment and storage medium
CN110417750B (en) Block chain technology-based file reading and storing method, terminal device and storage medium
JP2020184800A (en) Resource locator with key
EP3701668B1 (en) Methods for recording and sharing a digital identity of a user using distributed ledgers
US20160259947A1 (en) Method and apparatus for managing access to electronic content
WO2020055926A2 (en) Establishing provenance of digital assets using blockchain system
US8359473B1 (en) System and method for digital rights management using digital signatures
KR102248270B1 (en) Node device constituting a block-chain network and an operation method of the node device
EP3393081B1 (en) Selective data security within data storage layers
US11526955B2 (en) Protocol-based system and method for establishing a multi-party contract
WO2021198750A1 (en) System and method to manage information and documents on a native blockchain network system including permissioned blockchain, storage, sharing, organisation, porting and various applications
KR102083757B1 (en) Node device constituting a block-chain network and an operation method of the node device
CN110914826B (en) System and method for distributed data mapping
US10043015B2 (en) Method and apparatus for applying a customer owned encryption
KR102274493B1 (en) Node device constituting a block-chain network and an operation method of the node device
KR102390888B1 (en) A node device that performs mutual authentication in a blockchain network comprising a plurality of node devices, and operating method of the node device
CN115470525B (en) File protection method, system, computing device and storage medium
US11677728B2 (en) Secure authorization and transmission of data between trustless actors
US11948144B2 (en) Knowledge-based authentication for asset wallets
US20240086549A1 (en) Systems and methods for user characteristic determination through cryptographic tokenized data
US20240089105A1 (en) Systems and methods for user control and exclusion of cryptographic tokenized data

Legal Events

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