KR102650336B1 - Method and apparatus for providing lightweight blockchain using external strorage and pbft consensus algorithm - Google Patents
Method and apparatus for providing lightweight blockchain using external strorage and pbft consensus algorithm Download PDFInfo
- Publication number
- KR102650336B1 KR102650336B1 KR1020210058061A KR20210058061A KR102650336B1 KR 102650336 B1 KR102650336 B1 KR 102650336B1 KR 1020210058061 A KR1020210058061 A KR 1020210058061A KR 20210058061 A KR20210058061 A KR 20210058061A KR 102650336 B1 KR102650336 B1 KR 102650336B1
- Authority
- KR
- South Korea
- Prior art keywords
- block
- lightweight
- verification
- blockchain
- general
- Prior art date
- Legal status (The legal status 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 status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/17—Details of further file system functions
- G06F16/1737—Details of further file system functions for reducing power consumption or coping with limited storage space, e.g. in mobile devices
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/182—Distributed file systems
- G06F16/1834—Distributed file systems implemented based on peer-to-peer networks, e.g. gnutella
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1097—Protocols 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]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic 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/0643—Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3236—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/50—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Power Engineering (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
외부 저장소와 PBFT 합의 알고리즘을 이용한 경량화 블록체인 제공 방법 및 장치가 개시된다. 블록체인 노드들 중 리더 노드가 수행하는 경량화 블록체인 제공 방법은 신규 트랜잭션 데이터에 기초하여 일반 블록을 생성하는 단계; 상기 일반 블록을 상기 리더 노드를 제외한 나머지 블록체인 노드들인 검증 노드들로 전송하여 프랙티컬 비잔틴 장애 허용(Practical Byzantine Fault Tolerance, 이하 PBFT) 검증을 요청하는 단계; 상기 검증 노드들로부터 상기 일반 블록에 대한 검증이 완료된 경우, 상기 일반 블록을 외부 저장소로 업로드 하는 단계; 및 상기 외부 저장소로부터 상기 일반 블록에 대한 주소를 반환 받아 신규 경량화 블록을 생성하는 단계를 포함할 수 있다.A method and device for providing a lightweight blockchain using external storage and the PBFT consensus algorithm are disclosed. A method of providing a lightweight blockchain performed by a leader node among blockchain nodes includes the steps of generating a general block based on new transaction data; Requesting Practical Byzantine Fault Tolerance (PBFT) verification by transmitting the general block to verification nodes that are remaining blockchain nodes excluding the leader node; When verification of the general block is completed by the verification nodes, uploading the general block to external storage; And it may include receiving an address for the general block from the external storage and generating a new lightweight block.
Description
본 발명은 경량화 블록체인 제공 방법 및 장치에 관한 것으로, 보다 구체적으로는 한정적인 하드웨어 성능을 가진 경량화 블록체인 제공 장치의 블록 생성 방법 및 블록 간 연결 방법에 관한 것이다.The present invention relates to a method and device for providing a lightweight blockchain, and more specifically, to a method for generating blocks and a method for connecting blocks in a device for providing a lightweight blockchain with limited hardware performance.
종래의 블록체인 기술은 합의 알고리즘을 통한 데이터 신뢰성과 모든 노드가 같은 블록체인 원장을 보유하여 위변조 가능성을 없애는 기능을 한다. 단말기 또는 사물인터넷 기기와 같은 한정적인 하드웨어를 가진 기기에서는 블록체인에서 요구되는 저장 용량과 연산 능력 때문에 동작이 적합하지 않다.Conventional blockchain technology provides data reliability through a consensus algorithm and eliminates the possibility of forgery and falsification by ensuring that all nodes have the same blockchain ledger. It is not suitable for operation on devices with limited hardware, such as terminals or IoT devices, due to the storage capacity and computing power required by blockchain.
따라서, 이와 같은 한정적인 하드웨어를 가진 기기에서 블록체인 용량을 감소시킬 수 있는 기술과 연산 능력을 요구하지 않는 합의 알고리즘이 적용된 블록체인이 필요하다.Therefore, a blockchain with a consensus algorithm that does not require technology and computing power that can reduce blockchain capacity on devices with such limited hardware is needed.
본 발명은 낮은 저장 용량을 가진 기기에서 블록체인을 제공하기 위하여 블록의 헤더 영역 및 바디 영역에 존재하는 데이터를 전부 또는 일부만 추출한 후 외부 저장소에 업로드 함으로써 블록체인을 경량화하는 방법 및 장치를 제공한다.The present invention provides a method and device for lightweighting a blockchain by extracting all or part of the data present in the header area and body area of the block and uploading it to external storage in order to provide a blockchain in devices with low storage capacity.
또한, 본 발명은 낮은 연산 능력을 가진 기기에서 블록체인을 제공하기 위하여 프랙티컬 비잔틴 장애 허용(Practical Byzantine Fault Tolerance, 이하 PBFT) 합의 알고리즘을 통해 연산 능력이 요구되지 않는 합의 방법을 이용함으로써 블록의 생성과 검증을 수행하는 방법 및 장치를 제공한다.In addition, the present invention generates blocks by using a consensus method that does not require computing power through the Practical Byzantine Fault Tolerance (PBFT) consensus algorithm to provide a blockchain on devices with low computing power. Provides a method and device for performing verification and verification.
또한, 본 발명은 블록을 생성하는 과정에서 개인키를 통해 데이터를 암호화함으로써 개인의 데이터가 블록체인 내에서 공개되지 않도록 하는 방법 및 장치를 제공한다.Additionally, the present invention provides a method and device to prevent personal data from being disclosed within a blockchain by encrypting data using a private key during the process of creating a block.
본 발명의 일실시예에 따른 블록체인 노드들 중 리더 노드가 수행하는 경량화 블록체인 제공 방법은 신규 트랜잭션 데이터에 기초하여 일반 블록을 생성하는 단계; 상기 일반 블록을 상기 리더 노드를 제외한 나머지 블록체인 노드들인 검증 노드들로 전송하여 프랙티컬 비잔틴 장애 허용(Practical Byzantine Fault Tolerance, 이하 PBFT) 검증을 요청하는 단계; 상기 검증 노드들로부터 상기 일반 블록에 대한 검증이 완료된 경우, 상기 일반 블록을 외부 저장소로 업로드 하는 단계; 및 상기 외부 저장소로부터 상기 일반 블록에 대한 주소를 반환 받아 신규 경량화 블록을 생성하는 단계를 포함할 수 있다.A method of providing a lightweight blockchain performed by a leader node among blockchain nodes according to an embodiment of the present invention includes the steps of generating a general block based on new transaction data; Requesting Practical Byzantine Fault Tolerance (PBFT) verification by transmitting the general block to verification nodes that are remaining blockchain nodes excluding the leader node; When verification of the general block is completed by the verification nodes, uploading the general block to external storage; And it may include receiving an address for the general block from the external storage and generating a new lightweight block.
상기 일반 블록을 생성하는 단계는 상기 신규 트랜잭션 데이터를 개인키를 이용하여 암호화함으로써 상기 일반 블록을 생성할 수 있다.In the step of generating the general block, the general block may be generated by encrypting the new transaction data using a private key.
상기 PBFT 검증을 요청하는 단계는 상기 일반 블록과 함께 Prepare 메시지 및 Commit 메시지를 상기 검증 노드들로 전송하고, 상기 검증 노드들은 상기 리더 노드로부터 상기 일반 블록과 함께 Prepare 메시지 및 Commit 메시지를 수신한 경우, 상기 일반 블록의 이전 블록해시 값과 상기 검증 노드들의 원장에 기록된 마지막 경량화 블록의 주소를 통해 식별된 상기 일반 블록의 직전 블록에 대한 블록해시 값을 비교함으로써 상기 일반 블록에 대한 PBFT 검증을 수행할 수 있다.The step of requesting PBFT verification involves transmitting a Prepare message and a Commit message together with the general block to the verification nodes, and when the verification nodes receive a Prepare message and a Commit message together with the general block from the leader node, PBFT verification of the general block is performed by comparing the previous block hash value of the general block with the block hash value of the previous block of the general block identified through the address of the last lightweight block recorded in the ledgers of the verification nodes. It can be done.
상기 검증 노드들은 상기 일반 블록에 대한 검증 결과 상기 일반 블록이 위변조 되지 않았다고 판단되면, 상기 Prepare 메시지 및 Commit 메시지에 개인키로 서명을 하여 상기 리더 노드로 검증 결과를 전송할 수 있다.If the verification nodes determine that the general block has not been forged or altered as a result of verifying the general block, they can sign the Prepare message and the Commit message with their private key and transmit the verification result to the leader node.
상기 일반 블록을 외부 저장소로 업로드 하는 단계는 상기 일반 블록의 헤더 영역 및 바디 영역에 존재하는 데이터를 전부 또는 일부만 추출하여 상기 외부 저장소로 전송할 수 있다.In the step of uploading the general block to an external storage, all or part of the data present in the header area and body area of the general block may be extracted and transmitted to the external storage.
상기 경량화 블록을 생성하는 단계는 상기 신규 경량화 블록에 대한 헤더 블록 번호, 상기 외부 저장소로부터 반환된 상기 일반 블록에 대한 주소 및 상기 신규 경량화 블록의 직전 경량화 블록에 대응하는 이전 헤더 블록해시 값을 이용하여 상기 신규 경량화 블록에 대한 헤더 블록해시 값을 결정함으로써 경량화 블록들 사이를 연결할 수 있다.The step of generating the lightweight block uses the header block number for the new lightweight block, the address for the general block returned from the external storage, and the previous header block hash value corresponding to the lightweight block immediately preceding the new lightweight block. By determining the header block hash value for the new lightweight block, the lightweight blocks can be connected.
상기 일반 블록은 블록 번호, 블록해시 값, 이전 블록해시 값 및 트랜잭션 데이터 중 적어도 하나를 포함하고, 상기 경량화 블록은 헤더 블록 번호, 상기 일반 블록에 대한 외부 저장소의 주소, 헤더 블록해시 값 및 이전 헤더 블록해시 값 중 적어도 하나를 포함할 수 있다.The general block includes at least one of a block number, a block hash value, a previous block hash value, and transaction data, and the lightweight block includes a header block number, an address of an external storage for the general block, and a header block hash value. and may include at least one of the previous header block hash value.
본 발명의 일실시예에 따른 경량화 블록체인 제공 방법을 수행하는 경량화 블록체인 제공 장치는 프로세서를 포함하고, 상기 프로세서는 신규 트랜잭션 데이터에 기초하여 일반 블록을 생성하고, 상기 일반 블록을 상기 리더 노드를 제외한 나머지 블록체인 노드들인 검증 노드들로 전송하여 프랙티컬 비잔틴 장애 허용(Practical Byzantine Fault Tolerance, 이하 PBFT) 검증을 요청하며, 상기 검증 노드들로부터 상기 일반 블록에 대한 검증이 완료된 경우, 상기 일반 블록을 외부 저장소로 업로드 하고, 상기 외부 저장소로부터 상기 일반 블록에 대한 주소를 반환 받아 경량화 블록을 생성할 수 있다.A lightweight blockchain providing device that performs a lightweight blockchain providing method according to an embodiment of the present invention includes a processor, the processor generates a general block based on new transaction data, and the general block is sent to the leader node. Practical Byzantine Fault Tolerance (PBFT) verification is requested by sending to the verification nodes, which are the remaining blockchain nodes, and when verification of the general block is completed from the verification nodes, the general block is You can create a lightweight block by uploading it to external storage and receiving the address for the general block from the external storage.
상기 프로세서는 상기 신규 트랜잭션 데이터를 개인키를 이용하여 암호화함으로써 상기 일반 블록을 생성할 수 있다.The processor may generate the general block by encrypting the new transaction data using a private key.
상기 프로세서는 상기 일반 블록과 함께 Prepare 메시지 및 Commit 메시지를 상기 검증 노드들로 전송하여 PBFT 검증을 요청하고, 상기 검증 노드들은 상기 리더 노드로부터 상기 일반 블록과 함께 Prepare 메시지 및 Commit 메시지를 수신한 경우, 상기 일반 블록의 이전 블록해시 값과 상기 검증 노드들의 원장에 기록된 마지막 경량화 블록의 주소를 통해 식별된 상기 일반 블록의 직전 블록에 대한 블록해시 값을 비교함으로써 상기 일반 블록에 대한 PBFT 검증을 수행할 수 있다.The processor requests PBFT verification by sending a Prepare message and a Commit message together with the general block to the verification nodes, and when the verification nodes receive a Prepare message and a Commit message together with the general block from the leader node, PBFT verification of the general block is performed by comparing the previous block hash value of the general block with the block hash value of the previous block of the general block identified through the address of the last lightweight block recorded in the ledgers of the verification nodes. It can be done.
상기 검증 노드들은 상기 일반 블록에 대한 검증 결과 상기 일반 블록이 위변조 되지 않았다고 판단되면, 상기 Prepare 메시지 및 Commit 메시지에 개인키로 서명을 하여 상기 리더 노드로 검증 결과를 전송할 수 있다.If the verification nodes determine that the general block has not been forged or altered as a result of verifying the general block, they can sign the Prepare message and the Commit message with their private key and transmit the verification result to the leader node.
상기 프로세서는 상기 일반 블록을 구성하는 헤더 영역 및 바디 영역에 존재하는 데이터를 전부 또는 일부만 추출하여 상기 외부 저장소로 전송할 수 있다.The processor may extract all or part of the data existing in the header area and body area constituting the general block and transmit it to the external storage.
상기 프로세서는 상기 신규 경량화 블록에 대한 헤더 블록 번호, 상기 외부 저장소로부터 반환된 상기 일반 블록에 대한 주소 및 상기 신규 경량화 블록의 직전 경량화 블록에 대응하는 이전 헤더 블록해시 값을 이용하여 상기 신규 경량화 블록에 대한 헤더 블록해시 값을 결정함으로써 상기 경량화 블록들 사이를 연결할 수 있다.The processor blocks the new lightweight block using the header block number for the new lightweight block, the address for the general block returned from the external storage, and the previous header block hash value corresponding to the lightweight block immediately preceding the new lightweight block. The lightweight blocks can be connected by determining the header block hash value for .
상기 일반 블록은 블록 번호, 블록해시 값, 이전 블록해시 값 및 트랜잭션 데이터 중 적어도 하나를 포함하고, 상기 경량화 블록은 헤더 블록 번호, 상기 일반 블록에 대한 외부 저장소의 주소, 헤더 블록해시 값 및 이전 헤더 블록해시 값 중 적어도 하나를 포함할 수 있다.The general block includes at least one of a block number, a block hash value, a previous block hash value, and transaction data, and the lightweight block includes a header block number, an address of an external storage for the general block, and a header block hash value. and may include at least one of the previous header block hash value.
본 발명은 낮은 저장 용량을 가진 기기에서 블록체인을 제공하기 위하여 블록의 헤더 영역 및 바디 영역에 존재하는 데이터를 전부 또는 일부만 추출한 후 외부 저장소에 업로드 함으로써 블록체인을 경량화할 수 있다.In order to provide a blockchain in devices with low storage capacity, the present invention can lighten the blockchain by extracting all or part of the data present in the header area and body area of the block and uploading it to external storage.
또한, 본 발명은 낮은 연산 능력을 가진 기기에서 블록체인을 제공하기 위하여 PBFT 합의 알고리즘을 통해 연산 능력이 요구되지 않는 합의 방법을 이용함으로써 블록의 생성과 검증을 수행할 수 있다.Additionally, in order to provide a blockchain on devices with low computing power, the present invention can generate and verify blocks by using a consensus method that does not require computing power through the PBFT consensus algorithm.
또한, 본 발명은 블록을 생성하는 과정에서 개인키를 통해 데이터를 암호화함으로써 개인의 데이터가 블록체인 내에서 공개되지 않도록 할 수 있다.Additionally, the present invention can prevent personal data from being disclosed within the blockchain by encrypting data using a private key in the process of creating a block.
도 1은 본 발명의 일실시예에 따른 경량화 블록체인 시스템을 나타낸 도면이다.
도 2는 본 발명의 일실시예에 따른 경량화 블록체인 시스템(100)의 블록 생성 및 검증을 위한 합의 과정을 플로우차트로 나타낸 도면이다.
도 3은 본 발명의 일실시예에 따른 경량화 블록체인 시스템(100)의 경량화 블록 생성 과정을 플로우차트로 나타낸 도면이다.
도 4는 본 발명의 일실시예에 따른 경량화 블록체인 시스템이 제공하는 블록 구조를 나타낸 도면이다.Figure 1 is a diagram showing a lightweight blockchain system according to an embodiment of the present invention.
Figure 2 is a flowchart showing the consensus process for block creation and verification of the
Figure 3 is a flowchart showing the lightweight block creation process of the
Figure 4 is a diagram showing the block structure provided by the lightweight blockchain system according to an embodiment of the present invention.
이하, 본 발명의 실시예를 첨부된 도면을 참조하여 상세하게 설명한다. Hereinafter, embodiments of the present invention will be described in detail with reference to the attached drawings.
도 1은 본 발명의 일실시예에 따른 경량화 블록체인 시스템을 나타낸 도면이다.Figure 1 is a diagram showing a lightweight blockchain system according to an embodiment of the present invention.
도 1을 참고하면, 경량화 블록체인 시스템(100)은 모바일 기기 및 사물 인터넷 등의 한정된 하드웨어 성능을 가진 기기에서 블록체인 기술을 적용하기 위한 경량화된 블록체인의 블록 생성 방법을 제공할 수 있다. 보다 구체적으로 경량화 블록체인 시스템(100)은 리더 노드(110)와 검증 노드들(120, 130)로 구성된 복수의 블록체인 노드들 및 외부 저장소(140)로 구성될 수 있다. 이때, 블록체인 노드들은 한정된 저장 공간과 연산 능력을 가진 기기로써 일례로, 휴대폰 등과 같은 모바일 기기일 수 있다. 본 발명에서 이와 같은 블록체인 노드들은 경량화 블록체인 제공 장치로 표현될 수 있으며, 도 1의 예에서는 3개의 블록체인 노드들이 표현되어 있으나 블록체인 노드들의 개수는 이에 한정되지 않고 확장 가능할 수 있다.Referring to FIG. 1, the
경량화 블록체인 시스템(100)은 한정된 저장 공간을 가지는 경량화 블록체인 제공 장치에서 블록체인 기술을 적용하기 위하여 새로 생성되는 일반 블록에 포함되는 데이터의 전체 또는 일부만 추출하여 외부 저장소(140)에 업로드 할 수 있다. 이때, 일반 블록은 블록 번호, 블록해시 값, 이전 블록해시 값 및 트랜잭션 데이터 중 적어도 하나를 포함할 수 있으며, 이와 같은 일반 블록의 데이터가 업로드 되는 외부 저장소(140)는 분산형 파일 시스템, 일례로, IPFS(InterPlanetary File System)나 기업 클라우드 서버, 이더리움 Swarm 및 NAS(Network-Attached Storage) 등이 이용될 수 있다.The
이후 경량화 블록체인 시스템(100)은 외부 저장소(140)로부터 일반 블록에 대한 주소를 반환 받아 새로운 경량화 블록을 생성할 수 있다. 이때, 생성되는 경량화 블록은 헤더 블록 번호, 주소, 헤더 블록해시 값 및 이전 헤더 블록해시 값 중 적어도 하나를 포함할 수 있다.Afterwards, the
즉, 경량화 블록체인 시스템(100)은 용량을 많이 차지하는 일반 블록의 정보들을 외부 저장소(140)에 업로드 하고, 일반 블록의 정보들이 업로드된 외부 저장소(140)의 주소만을 이용하여 새로운 경량화 블록을 생성함으로써 한정된 저장 공간을 가지는 경량화 블록체인 제공 장치에서 원활히 블록체인 기술을 제공할 수 있다. 이때, 각각의 노드에 대응하는 경량화 블록체인 제공 장치는 경량화 블록에 포함된 외부 저장소(140)의 주소를 이용하여 해당 주소에 대응하는 일반 블록을 호출하는 것이 가능하다.In other words, the
또한, 경량화 블록체인 시스템(100)은 낮은 연산 능력을 가지는 경량화 블록체인 제공 장치에서 블록체인 기술을 적용하기 위하여 PBFT 합의 알고리즘을 통해 연산 능력이 요구되지 않는 합의 방법을 이용함으로써 일반 블록의 생성과 검증을 수행할 수 있다. In addition, the
한편, 경량화 블록체인 시스템(100)은 일반 블록이 생성되는 과정에서 개인키(150)를 통해 데이터를 암호화함으로써 블록체인 내에서 개인의 데이터에 대한 보안을 강화할 수 있다. Meanwhile, the
도 2는 본 발명의 일실시예에 따른 경량화 블록체인 시스템(100)의 블록 생성 및 검증을 위한 합의 과정을 플로우차트로 나타낸 도면이다.Figure 2 is a flowchart showing the consensus process for block creation and verification of the
경량화 블록체인 시스템(100)의 블록체인 노드들(110~130) 중 리더 노드(110)는 단계(210)에서, 트랜잭션 데이터가 발생된 경우 새로운 일반 블록을 생성할 수 있다. 이때, 리더 노드(110)가 생성하는 일반 블록은 종래의 블록체인 시스템에서 생성되는 블록과 같이 블록 번호, 블록해시 값, 이전 블록해시 값 및 트랜잭션 데이터 중 적어도 하나를 포함할 수 있다. The
단계(220)에서, 리더 노드(110)는 생성된 일반 블록을 나머지 블록체인 노드들인 검증 노드들(120, 130)로 전송하여 PBFT 합의 알고리즘을 통한 일반 블록의 검증을 요청할 수 있다. 이때, 리더 노드(110)는 일반 블록에 대한 2단계 검증을 시행할 수 있으며, 각각에 단계에서 위변조 방지를 위한 BFT(Byzantine Fault Tolerance)와 네트워크 오류로 인한 에러 방지를 위한 CFT(Crash Fault Tolerance)가 수행될 수 있다. 즉, 리더 노드(110)는 일반 블록과 함께 BFT를 위한 Prepare 메시지 및 CFT를 위한 Commit 메시지를 검증 노드들(120, 130)로 전송함으로써 일반 블록에 대한 검증을 요청할 수 있다.In
검증 노드들(120, 130) 각각은 리더 노드(110)로부터 검증 요청을 받은 일반 블록에 대해 PBFT 합의 알고리즘을 이용하여 검증을 수행할 수 있다. 보다 구체적으로 검증 노드들(120, 130) 각각은 일반 블록에 포함된 이전 블록해시 값과 자신의 원장에 기록된 마지막 경량화 블록에 포함된 주소를 이용하여 일반 블록에 대한 검증을 수행할 수 있다. Each of the
보다 구체적으로 검증 노드들(120, 130)은 자신의 원장에 기록된 마지막 경량화 블록의 주소를 이용하여 해당 주소에 대응하는 직전 블록을 외부 저장소(140)로부터 불러올 수 있다. More specifically, the
이후 검증 노드들(120, 130)은 리더 노드(110)에서 수신된 일반 블록의 이전 블록해시 값과 외부 저장소(140)에서 수신된 직전 블록의 블록해시 값을 비교하여 두 블록해시 값이 동일한지 여부를 식별할 수 있다. Thereafter, the
이때, 검증 노드들(120, 130)은 일반 블록의 이전 블록해시 값과 직전 블록의 블록해시 값이 동일한 것으로 식별되면, 해당 일반 블록이 위변조되지 않았다고 판단할 수 있다. 이와는 달리 검증 노드들(120, 130) 각각은 일반 블록의 이전 블록해시 값과 직전 블록의 블록해시 값이 서로 다른 경우, 해당 일반 블록이 위변조되었다고 판단할 수 있다.At this time, the
단계(240)에서, 검증 노드들(120, 130) 각각은 일반 블록에 대한 검증 결과를 리더 노드(110)로 전송할 수 있다. 이때, 검증 노드들(120, 130) 각각은 일반 블록의 이전 블록해시 값과 직전 블록의 블록해시 값이 동일한 경우, 리더 노드(110)로부터 전달된 Prepare 메시지 및 Commit 메시지에 개인키로 서명을 하여 리더 노드(110)로 검증 결과를 전송할 수 있다.In
단계(250)에서, 리더 노드(110)는 검증 노드들(120, 130)로부터 수신된 일반 블록에 대한 검증 결과에 기초하여 일반 블록을 외부 저장소(140)에 업로드할 지 여부를 판단할 수 있다. 보다 구체적으로 리더 노드(110)는 검증 노드들(120, 130)로부터 수신된 검증 결과에 기초하여 2/3 이상의 검증 노드들이 일반 블록에 대해 검증 완료(위변조 되지 않음을 의미)한 것으로 식별되면, 해당 일반 블록을 외부 저장소(140)에 업로드하는 것으로 결정할 수 있다. 이때, 리더 노드(110)는 PBFT 합의 알고리즘을 이용하여 검증을 수행하므로 단계(220) 내지 단계(250)을 1회 반복하여 재수행함으로써 일반 블록의 외부 저장소(140) 업로드 여부를 최종 판단할 수 있다.In
단계(260)에서, 리더 노드(110)는 일반 블록을 외부 저장소(140)에 업로드 하는 것으로 판단된 경우, 일반 블록의 헤더 영역 및 바디 영역에 존재하는 데이터를 전부 또는 일부만 추출하여 외부 저장소(140)로 업로드 할 수 있다. 이때, 리더 노드(110)는 일반 블록 중 제네시스 블록에 대해 바디 영역만 업로드 한 경우, 제네시스 블록 이후 생성되는 모든 일반 블록에 대한 바디 영역만을 추출하여 외부 저장소(140)에 업로드 할 수 있다. 이와는 달리 리더 노드(110)는 일반 블록 중 제네시스 블록에 대해 헤더 영역 및 바디 영역을 포함하는 블록 전체를 업로드 한 경우, 제네시스 블록 이후 생성되는 모든 일반 블록의 블록 전체를 외부 저장소(140)에 업로드 할 수 있다.In
마지막으로 단계(270)에서, 리더 노드(110)는 외부 저장소(140)로부터 업로드 된 일반 블록에 대한 주소를 반환 받을 수 있다. 일례로, 외부 저장소(140)가 IPFS(InterPlanetary File System) 인 경우, 리더 노드(110)는 외부 저장소(140)로부터 IPFS 해시 값을 반환 받을 수 있다.Finally, in
도 3은 본 발명의 일실시예에 따른 경량화 블록체인 시스템(100)의 경량화 블록 생성 과정을 플로우차트로 나타낸 도면이다.Figure 3 is a flowchart showing the lightweight block creation process of the
도 3을 참고하면, 단계(310)에서, 리더 노드(110)는 외부 저장소(140)로부터 반환 받은 일반 블록에 대한 주소를 식별할 수 있다. 위에서 언급한 바와 같이 외부 저장소(140)가 IPFS(InterPlanetary File System) 인 경우, 리더 노드(110)는 외부 저장소(140)로부터 반환 받은 IPFS 해시 값을 식별할 수 있다. Referring to FIG. 3, in
단계(320)에서, 리더 노드(110)는 외부 저장소(140)로부터 반환 받은 일반 블록에 대한 주소를 이용하여 신규 경량화 블록을 생성할 수 있다. 보다 구체적으로 리더 노드(110)는 생성하고자 하는 신규 경량화 블록의 헤더 블록 번호, 외부 저장소(140)로부터 반환된 일반 블록에 대한 주소 및 신규 경량화 블록의 직전 경량화 블록에 대응하는 이전 헤더 블록해시 값을 이용하여 신규 경량화 블록의 헤더 블록해시 값을 결정할 수 있다. 즉, 경량화 블록들은 이와 같이 결정된 헤더 블록해시 값을 통해 연결될 수 있다.In
단계(330)에서, 리더 노드(110)는 새로 생성된 신규 경량화 블록을 검증 노드들(120, 130)로 전달할 수 있으며, 단계(340)에서, 검증 노드들(120, 130)은 리더 노드(110)로부터 전달된 신규 경량화 블록을 자신의 원장에 추가할 수 있다.In
도 4는 본 발명의 일실시예에 따른 경량화 블록체인 시스템이 제공하는 블록 구조를 나타낸 도면이다.Figure 4 is a diagram showing the block structure provided by the lightweight blockchain system according to an embodiment of the present invention.
도 4를 참고하면, 본 발명의 경량화 블록체인 시스템(100)은 비교적 용량이 큰 일반 블록이 외부 저장소(140)의 저장공간에 저장되고, 용량이 작은 경량화 블록이 블록체인 노드의 저장공간에 저장될 수 있다. Referring to FIG. 4, in the
이때, 경량화 블록은 외부 저장소(140)에 저장된 일반 블록의 주소와 헤더 블록 번호 및 직전 경량화 블록에 대응하는 이전 헤더 블록해시 값을 이용하여 헤더 블록해시 값이 결정될 수 있으며, 이와 같이 결정된 헤더 블록해시 값을 통해 경량화 블록들 사이가 연결될 수 있다. At this time, the header block hash value of the lightweight block may be determined using the address of the general block stored in the
한편, 본 발명에 따른 방법은 컴퓨터에서 실행될 수 있는 프로그램으로 작성되어 마그네틱 저장매체, 광학적 판독매체, 디지털 저장매체 등 다양한 기록 매체로도 구현될 수 있다.Meanwhile, the method according to the present invention is written as a program that can be executed on a computer and can be implemented in various recording media such as magnetic storage media, optical read media, and digital storage media.
본 명세서에 설명된 각종 기술들의 구현들은 디지털 전자 회로조직으로, 또는 컴퓨터 하드웨어, 펌웨어, 소프트웨어로, 또는 그들의 조합들로 구현될 수 있다. 구현들은 데이터 처리 장치, 예를 들어 프로그램가능 프로세서, 컴퓨터, 또는 다수의 컴퓨터들의 동작에 의한 처리를 위해, 또는 이 동작을 제어하기 위해, 컴퓨터 프로그램 제품, 즉 정보 캐리어, 예를 들어 기계 판독가능 저장 장치(컴퓨터 판독가능 매체) 또는 전파 신호에서 유형적으로 구체화된 컴퓨터 프로그램으로서 구현될 수 있다. 상술한 컴퓨터 프로그램(들)과 같은 컴퓨터 프로그램은 컴파일된 또는 인터프리트된 언어들을 포함하는 임의의 형태의 프로그래밍 언어로 기록될 수 있고, 독립형 프로그램으로서 또는 모듈, 구성요소, 서브루틴, 또는 컴퓨팅 환경에서의 사용에 적절한 다른 유닛으로서 포함하는 임의의 형태로 전개될 수 있다. 컴퓨터 프로그램은 하나의 사이트에서 하나의 컴퓨터 또는 다수의 컴퓨터들 상에서 처리되도록 또는 다수의 사이트들에 걸쳐 분배되고 통신 네트워크에 의해 상호 연결되도록 전개될 수 있다.Implementations of the various techniques described herein may be implemented in digital electronic circuitry, or in computer hardware, firmware, software, or combinations thereof. Implementations may include a computer program product, i.e., an information carrier, e.g., machine-readable storage, for processing by or controlling the operation of a data processing device, e.g., a programmable processor, a computer, or multiple computers. It may be implemented as a computer program tangibly embodied in a device (computer-readable medium) or a radio signal. Computer programs, such as the computer program(s) described above, may be written in any form of programming language, including compiled or interpreted languages, and may be written as a stand-alone program or as a module, component, subroutine, or part of a computing environment. It can be deployed in any form, including as other units suitable for use. The computer program may be deployed for processing on one computer or multiple computers at one site or distributed across multiple sites and interconnected by a communications network.
컴퓨터 프로그램의 처리에 적절한 프로세서들은 예로서, 범용 및 특수 목적 마이크로프로세서들 둘 다, 및 임의의 종류의 디지털 컴퓨터의 임의의 하나 이상의 프로세서들을 포함한다. 일반적으로, 프로세서는 판독 전용 메모리 또는 랜덤 액세스 메모리 또는 둘 다로부터 명령어들 및 데이터를 수신할 것이다. 컴퓨터의 요소들은 명령어들을 실행하는 적어도 하나의 프로세서 및 명령어들 및 데이터를 저장하는 하나 이상의 메모리 장치들을 포함할 수 있다. 일반적으로, 컴퓨터는 데이터를 저장하는 하나 이상의 대량 저장 장치들, 예를 들어 자기, 자기-광 디스크들, 또는 광 디스크들을 포함할 수 있거나, 이것들로부터 데이터를 수신하거나 이것들에 데이터를 송신하거나 또는 양쪽으로 되도록 결합될 수도 있다. 컴퓨터 프로그램 명령어들 및 데이터를 구체화하는데 적절한 정보 캐리어들은 예로서 반도체 메모리 장치들, 예를 들어, 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(Magnetic Media), CD-ROM(Compact Disk Read Only Memory), DVD(Digital Video Disk)와 같은 광 기록 매체(Optical Media), 플롭티컬 디스크(Floptical Disk)와 같은 자기-광 매체(Magneto-Optical Media), 롬(ROM, Read Only Memory), 램(RAM, Random Access Memory), 플래시 메모리, EPROM(Erasable Programmable ROM), EEPROM(Electrically Erasable Programmable ROM) 등을 포함한다. 프로세서 및 메모리는 특수 목적 논리 회로조직에 의해 보충되거나, 이에 포함될 수 있다.Processors suitable for processing computer programs include, by way of example, both general-purpose and special-purpose microprocessors, and any one or more processors of any type of digital computer. Typically, a processor will receive instructions and data from read-only memory or random access memory, or both. Elements of a computer may include at least one processor that executes instructions and one or more memory devices that store instructions and data. Generally, a computer may include one or more mass storage devices that store data, such as magnetic, magneto-optical disks, or optical disks, receive data from, transmit data to, or both. It can also be combined to make . Information carriers suitable for embodying computer program instructions and data include, for example, semiconductor memory devices, magnetic media such as hard disks, floppy disks, and magnetic tapes, and Compact Disk Read Only Memory (CD-ROM). ), optical media such as DVD (Digital Video Disk), magneto-optical media such as Floptical Disk, ROM (Read Only Memory), RAM , Random Access Memory), flash memory, EPROM (Erasable Programmable ROM), and EEPROM (Electrically Erasable Programmable ROM). The processor and memory may be supplemented by or included in special purpose logic circuitry.
또한, 컴퓨터 판독가능 매체는 컴퓨터에 의해 액세스될 수 있는 임의의 가용매체일 수 있고, 컴퓨터 저장매체 및 전송매체를 모두 포함할 수 있다.Additionally, computer-readable media can be any available media that can be accessed by a computer, and can include both computer storage media and transmission media.
본 명세서는 다수의 특정한 구현물의 세부사항들을 포함하지만, 이들은 어떠한 발명이나 청구 가능한 것의 범위에 대해서도 제한적인 것으로서 이해되어서는 안되며, 오히려 특정한 발명의 특정한 실시형태에 특유할 수 있는 특징들에 대한 설명으로서 이해되어야 한다. 개별적인 실시형태의 문맥에서 본 명세서에 기술된 특정한 특징들은 단일 실시형태에서 조합하여 구현될 수도 있다. 반대로, 단일 실시형태의 문맥에서 기술한 다양한 특징들 역시 개별적으로 혹은 어떠한 적절한 하위 조합으로도 복수의 실시형태에서 구현 가능하다. 나아가, 특징들이 특정한 조합으로 동작하고 초기에 그와 같이 청구된 바와 같이 묘사될 수 있지만, 청구된 조합으로부터의 하나 이상의 특징들은 일부 경우에 그 조합으로부터 배제될 수 있으며, 그 청구된 조합은 하위 조합이나 하위 조합의 변형물로 변경될 수 있다.Although this specification contains details of numerous specific implementations, these should not be construed as limitations on the scope of any invention or what may be claimed, but rather as descriptions of features that may be unique to particular embodiments of particular inventions. It must be understood. Certain features described herein in the context of individual embodiments may also be implemented in combination in a single embodiment. Conversely, various features described in the context of a single embodiment can also be implemented in multiple embodiments individually or in any suitable sub-combination. Furthermore, although features may be described as operating in a particular combination and initially claimed as such, one or more features from a claimed combination may in some cases be excluded from that combination, and the claimed combination may be a sub-combination. It can be changed to a variant of a sub-combination.
마찬가지로, 특정한 순서로 도면에서 동작들을 묘사하고 있지만, 이는 바람직한 결과를 얻기 위하여 도시된 그 특정한 순서나 순차적인 순서대로 그러한 동작들을 수행하여야 한다거나 모든 도시된 동작들이 수행되어야 하는 것으로 이해되어서는 안 된다. 특정한 경우, 멀티태스킹과 병렬 프로세싱이 유리할 수 있다. 또한, 상술한 실시형태의 다양한 장치 컴포넌트의 분리는 그러한 분리를 모든 실시형태에서 요구하는 것으로 이해되어서는 안되며, 설명한 프로그램 컴포넌트와 장치들은 일반적으로 단일의 소프트웨어 제품으로 함께 통합되거나 다중 소프트웨어 제품에 패키징 될 수 있다는 점을 이해하여야 한다.Likewise, although operations are depicted in the drawings in a particular order, this should not be construed as requiring that those operations be performed in the specific order or sequential order shown or that all of the depicted operations must be performed to obtain desirable results. In certain cases, multitasking and parallel processing may be advantageous. Additionally, the separation of various device components in the above-described embodiments should not be construed as requiring such separation in all embodiments, and the described program components and devices may generally be integrated together into a single software product or packaged into multiple software products. You must understand that it is possible.
한편, 본 명세서와 도면에 개시된 본 발명의 실시 예들은 이해를 돕기 위해 특정 예를 제시한 것에 지나지 않으며, 본 발명의 범위를 한정하고자 하는 것은 아니다. 여기에 개시된 실시 예들 이외에도 본 발명의 기술적 사상에 바탕을 둔 다른 변형 예들이 실시 가능하다는 것은, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 자명한 것이다.Meanwhile, the embodiments of the present invention disclosed in the specification and drawings are merely provided as specific examples to aid understanding, and are not intended to limit the scope of the present invention. It is obvious to those skilled in the art that in addition to the embodiments disclosed herein, other modifications based on the technical idea of the present invention can be implemented.
100 : 경량화 블록체인 시스템
110 : 리더 노드
120, 130 : 검증 노드
140 : 외부 저장소
150 : 개인키100: Lightweight blockchain system
110: leader node
120, 130: Verification node
140: external storage
150: Private key
Claims (14)
신규 트랜잭션 데이터에 기초하여 일반 블록을 생성하는 단계;
상기 일반 블록을 상기 리더 노드를 제외한 나머지 블록체인 노드들인 검증 노드들로 전송하여 프랙티컬 비잔틴 장애 허용(Practical Byzantine Fault Tolerance, 이하 PBFT) 검증을 요청하는 단계;
상기 검증 노드들로부터 상기 일반 블록에 대한 검증이 완료된 경우, 상기 일반 블록을 외부 저장소로 업로드 하는 단계;
상기 외부 저장소로부터 상기 일반 블록에 대한 주소를 반환 받아 신규 경량화 블록을 생성하는 단계
를 포함하고,
상기 PBFT 검증을 요청하는 단계는,
상기 일반 블록과 함께 Prepare 메시지 및 Commit 메시지를 상기 검증 노드들로 전송하고,
상기 검증 노드들은,
상기 리더 노드로부터 상기 일반 블록과 함께 Prepare 메시지 및 Commit 메시지를 수신한 경우, 상기 일반 블록의 이전 블록해시 값과 상기 검증 노드들의 원장에 기록된 마지막 경량화 블록의 주소를 통해 식별된 상기 일반 블록의 직전 블록에 대한 블록해시 값을 비교함으로써 상기 일반 블록에 대한 PBFT 검증을 수행하는 경량화 블록체인 제공 방법.In the method of providing a lightweight blockchain performed by a leader node among blockchain nodes,
Generating a general block based on new transaction data;
Requesting Practical Byzantine Fault Tolerance (PBFT) verification by transmitting the general block to verification nodes that are remaining blockchain nodes excluding the leader node;
When verification of the general block is completed by the verification nodes, uploading the general block to external storage;
A step of generating a new lightweight block by receiving the address for the general block from the external storage.
Including,
The step of requesting PBFT verification is,
Send a Prepare message and a Commit message along with the general block to the verification nodes,
The verification nodes are,
When a Prepare message and a Commit message are received along with the normal block from the leader node, the normal block identified through the previous block hash value of the normal block and the address of the last lightweight block recorded in the ledgers of the verification nodes A method of providing a lightweight blockchain that performs PBFT verification on the general block by comparing the block hash value of the previous block.
상기 일반 블록을 생성하는 단계는,
상기 신규 트랜잭션 데이터를 개인키를 이용하여 암호화함으로써 상기 일반 블록을 생성하는 경량화 블록체인 제공 방법.According to paragraph 1,
The step of generating the general block is,
A method of providing a lightweight blockchain that generates the general block by encrypting the new transaction data using a private key.
상기 검증 노드들은,
상기 일반 블록에 대한 검증 결과 상기 일반 블록이 위변조 되지 않았다고 판단되면, 상기 Prepare 메시지 및 Commit 메시지에 개인키로 서명을 하여 상기 리더 노드로 검증 결과를 전송하는 경량화 블록체인 제공 방법.According to paragraph 1,
The verification nodes are,
A method of providing a lightweight blockchain in which, as a result of verification of the general block, it is determined that the general block has not been forged or altered, by signing the Prepare message and Commit message with a private key and transmitting the verification result to the leader node.
상기 일반 블록을 외부 저장소로 업로드 하는 단계는,
상기 일반 블록의 헤더 영역 및 바디 영역에 존재하는 데이터를 전부 또는 일부만 추출하여 상기 외부 저장소로 전송하는 경량화 블록체인 제공 방법.According to paragraph 1,
The step of uploading the general block to external storage is,
A method of providing a lightweight blockchain that extracts all or part of the data existing in the header area and body area of the general block and transmits it to the external storage.
신규 트랜잭션 데이터에 기초하여 일반 블록을 생성하는 단계;
상기 일반 블록을 상기 리더 노드를 제외한 나머지 블록체인 노드들인 검증 노드들로 전송하여 프랙티컬 비잔틴 장애 허용(Practical Byzantine Fault Tolerance, 이하 PBFT) 검증을 요청하는 단계;
상기 검증 노드들로부터 상기 일반 블록에 대한 검증이 완료된 경우, 상기 일반 블록을 외부 저장소로 업로드 하는 단계;
상기 외부 저장소로부터 상기 일반 블록에 대한 주소를 반환 받아 신규 경량화 블록을 생성하는 단계
를 포함하고,
상기 신규 경량화 블록을 생성하는 단계는,
상기 신규 경량화 블록에 대한 헤더 블록 번호, 상기 외부 저장소로부터 반환된 상기 일반 블록에 대한 주소 및 상기 신규 경량화 블록의 직전 경량화 블록에 대응하는 이전 헤더 블록해시 값을 이용하여 상기 신규 경량화 블록에 대한 헤더 블록해시 값을 결정함으로써 경량화 블록들 사이를 연결하는 경량화 블록체인 제공 방법.In the method of providing a lightweight blockchain performed by a leader node among blockchain nodes,
Generating a general block based on new transaction data;
Requesting Practical Byzantine Fault Tolerance (PBFT) verification by transmitting the general block to verification nodes that are remaining blockchain nodes except the leader node;
When verification of the general block is completed by the verification nodes, uploading the general block to external storage;
A step of receiving the address for the general block from the external storage and creating a new lightweight block
Including,
The step of creating the new lightweight block is,
A header for the new lightweight block using the header block number for the new lightweight block, the address for the general block returned from the external storage, and the previous header block hash value corresponding to the lightweight block immediately preceding the new lightweight block. A method of providing a lightweight blockchain that connects lightweight blocks by determining the block hash value.
상기 일반 블록은,
블록 번호, 블록해시 값, 이전 블록해시 값 및 트랜잭션 데이터 중 적어도 하나를 포함하고,
상기 경량화 블록은,
헤더 블록 번호, 상기 일반 블록에 대한 외부 저장소의 주소, 헤더 블록해시 값 및 이전 헤더 블록해시 값 중 적어도 하나를 포함하는 경량화 블록체인 제공 방법.According to paragraph 1,
The general block is,
Contains at least one of the block number, block hash value, previous block hash value, and transaction data,
The lightweight block is,
A method of providing a lightweight blockchain that includes at least one of a header block number, an address of an external storage for the general block, a header block hash value, and a previous header block hash value.
상기 경량화 블록체인 제공 장치는 프로세서를 포함하고,
상기 프로세서는,
신규 트랜잭션 데이터에 기초하여 일반 블록을 생성하고, 상기 일반 블록과 함께 Prepare 메시지 및 Commit 메시지를 리더 노드를 제외한 나머지 블록체인 노드들인 검증 노드들로 전송하여 프랙티컬 비잔틴 장애 허용(Practical Byzantine Fault Tolerance, 이하 PBFT) 검증을 요청하며, 상기 검증 노드들로부터 상기 일반 블록에 대한 검증이 완료된 경우, 상기 일반 블록을 외부 저장소로 업로드 하고, 상기 외부 저장소로부터 상기 일반 블록에 대한 주소를 반환 받아 신규 경량화 블록을 생성하고,
상기 검증 노드들은,
상기 리더 노드로부터 상기 일반 블록과 함께 Prepare 메시지 및 Commit 메시지를 수신한 경우, 상기 일반 블록의 이전 블록해시 값과 상기 검증 노드들의 원장에 기록된 마지막 경량화 블록의 주소를 통해 식별된 상기 일반 블록의 직전 블록에 대한 블록해시 값을 비교함으로써 상기 일반 블록에 대한 PBFT 검증을 수행하는 경량화 블록체인 제공 장치.In a lightweight blockchain provision device that performs a lightweight blockchain provision method,
The lightweight blockchain providing device includes a processor,
The processor,
A general block is created based on new transaction data, and along with the general block, a Prepare message and a Commit message are sent to the verification nodes, which are the remaining blockchain nodes excluding the leader node, to achieve Practical Byzantine Fault Tolerance (hereinafter referred to as Practical Byzantine Fault Tolerance). PBFT) Verification is requested, and when verification of the general block is completed from the verification nodes, the general block is uploaded to external storage, and the address for the general block is returned from the external storage to create a new lightweight block. do,
The verification nodes are,
When a Prepare message and a Commit message are received along with the normal block from the leader node, the normal block identified through the previous block hash value of the normal block and the address of the last lightweight block recorded in the ledgers of the verification nodes A lightweight blockchain providing device that performs PBFT verification on the general block by comparing the block hash value of the previous block.
상기 프로세서는,
상기 신규 트랜잭션 데이터를 개인키를 이용하여 암호화함으로써 상기 일반 블록을 생성하는 경량화 블록체인 제공 장치.According to clause 8,
The processor,
A lightweight blockchain providing device that generates the general block by encrypting the new transaction data using a private key.
상기 검증 노드들은,
상기 일반 블록에 대한 검증 결과 상기 일반 블록이 위변조 되지 않았다고 판단되면, 상기 Prepare 메시지 및 Commit 메시지에 개인키로 서명을 하여 상기 리더 노드로 검증 결과를 전송하는 경량화 블록체인 제공 장치.According to clause 8,
The verification nodes are,
As a result of verifying the general block, if it is determined that the general block has not been forged or altered, a lightweight blockchain providing device that signs the Prepare message and Commit message with a private key and transmits the verification result to the leader node.
상기 프로세서는,
상기 일반 블록을 구성하는 헤더 영역 및 바디 영역에 존재하는 데이터를 전부 또는 일부만 추출하여 상기 외부 저장소로 전송하는 경량화 블록체인 제공 장치.According to clause 8,
The processor,
A lightweight blockchain providing device that extracts all or part of the data existing in the header area and body area constituting the general block and transmits it to the external storage.
상기 경량화 블록체인 제공 장치는 프로세서를 포함하고,
상기 프로세서는,
신규 트랜잭션 데이터에 기초하여 일반 블록을 생성하고, 상기 일반 블록을 리더 노드를 제외한 나머지 블록체인 노드들인 검증 노드들로 전송하여 프랙티컬 비잔틴 장애 허용(Practical Byzantine Fault Tolerance, 이하 PBFT) 검증을 요청하며, 상기 검증 노드들로부터 상기 일반 블록에 대한 검증이 완료된 경우, 상기 일반 블록을 외부 저장소로 업로드 하고, 상기 외부 저장소로부터 상기 일반 블록에 대한 주소를 반환 받아 신규 경량화 블록을 생성하고,
상기 프로세서는,
상기 신규 경량화 블록에 대한 헤더 블록 번호, 상기 외부 저장소로부터 반환된 상기 일반 블록에 대한 주소 및 상기 신규 경량화 블록의 직전 경량화 블록에 대응하는 이전 헤더 블록해시 값을 이용하여 상기 신규 경량화 블록에 대한 헤더 블록해시 값을 결정함으로써 경량화 블록들 사이를 연결하는 경량화 블록체인 제공 장치.In a lightweight blockchain provision device that performs a lightweight blockchain provision method,
The lightweight blockchain providing device includes a processor,
The processor,
A general block is created based on new transaction data, and the general block is sent to the verification nodes, which are the remaining blockchain nodes excluding the leader node, to request Practical Byzantine Fault Tolerance (PBFT) verification, When verification of the general block is completed by the verification nodes, upload the general block to external storage, receive the address for the general block from the external storage, and create a new lightweight block,
The processor,
A header for the new lightweight block using the header block number for the new lightweight block, the address for the general block returned from the external storage, and the previous header block hash value corresponding to the lightweight block immediately preceding the new lightweight block. A lightweight blockchain providing device that connects lightweight blocks by determining the block hash value.
상기 일반 블록은,
블록 번호, 블록해시 값, 이전 블록해시 값 및 트랜잭션 데이터 중 적어도 하나를 포함하고,
상기 경량화 블록은,
헤더 블록 번호, 상기 일반 블록에 대한 외부 저장소의 주소, 헤더 블록해시 값 및 이전 헤더 블록해시 값 중 적어도 하나를 포함하는 경량화 블록체인 제공 장치.According to clause 8,
The general block is,
Contains at least one of the block number, block hash value, previous block hash value, and transaction data,
The lightweight block is,
A lightweight blockchain providing device that includes at least one of a header block number, an address of an external storage for the general block, a header block hash value, and a previous header block hash value.
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| KR1020210058061A KR102650336B1 (en) | 2021-05-04 | 2021-05-04 | Method and apparatus for providing lightweight blockchain using external strorage and pbft consensus algorithm |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| KR1020210058061A KR102650336B1 (en) | 2021-05-04 | 2021-05-04 | Method and apparatus for providing lightweight blockchain using external strorage and pbft consensus algorithm |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| KR20220150728A KR20220150728A (en) | 2022-11-11 |
| KR102650336B1 true KR102650336B1 (en) | 2024-03-22 |
Family
ID=84042686
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| KR1020210058061A Active KR102650336B1 (en) | 2021-05-04 | 2021-05-04 | Method and apparatus for providing lightweight blockchain using external strorage and pbft consensus algorithm |
Country Status (1)
| Country | Link |
|---|---|
| KR (1) | KR102650336B1 (en) |
Citations (12)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN107317672A (en) | 2017-05-10 | 2017-11-03 | 广东网金控股股份有限公司 | A kind of light weight terminating machine block catenary system |
| CN109639406A (en) | 2018-12-24 | 2019-04-16 | 国泰君安证券股份有限公司 | Efficient trust solution based on block chain and IPFS |
| CN110061838A (en) | 2019-04-28 | 2019-07-26 | 广州大学 | A kind of the decentralization storage system and its realization, information retrieval method of DNS resource record |
| CN110351133A (en) | 2019-06-28 | 2019-10-18 | 阿里巴巴集团控股有限公司 | Method and device for the host node hand-off process in block catenary system |
| CN111159288A (en) | 2019-12-16 | 2020-05-15 | 郑杰骞 | Method, system, device and medium for storing, verifying and realizing chain structure data |
| KR102141177B1 (en) * | 2019-12-12 | 2020-08-04 | 주식회사 립페이 | Method for providing dual blockchain structure based high-speed transaction processing service in middleware layer |
| KR102150210B1 (en) | 2019-09-16 | 2020-09-01 | (주) 모로보기 | Blockchain network |
| KR102152537B1 (en) | 2019-10-10 | 2020-09-07 | (주) 모로보기 | Blockchain network for internet of things device |
| CN111639361A (en) | 2020-05-15 | 2020-09-08 | 中国科学院信息工程研究所 | Block chain key management method, multi-person common signature method and electronic device |
| CN112085502A (en) | 2020-09-09 | 2020-12-15 | 江苏大学 | A lightweight blockchain supervision method and system based on edge computing |
| WO2021011082A1 (en) | 2019-07-12 | 2021-01-21 | Microsoft Technology Licensing, Llc | Lightweight blockchain based on split-trust |
| CN112395353A (en) | 2020-10-27 | 2021-02-23 | 中国电力科学研究院有限公司 | Intelligent electric energy meter quality data sharing method and system based on alliance chain |
Family Cites Families (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US10783272B2 (en) * | 2017-12-08 | 2020-09-22 | Nec Corporation | Method and system of preserving privacy for usage of lightweight blockchain clients |
| KR102254127B1 (en) * | 2019-02-14 | 2021-05-20 | 주식회사 엠블럭 | Blockchain network having a lightening node based on a cloud and a lightening node of the blockchain network |
| CA3058238C (en) * | 2019-03-21 | 2021-03-02 | Alibaba Group Holding Limited | Data isolation in blockchain networks |
| KR102406020B1 (en) * | 2019-06-18 | 2022-06-10 | 한국전자통신연구원 | Apparatus and method for processing distributed consensus on decentralized byzantene fault tolerance |
-
2021
- 2021-05-04 KR KR1020210058061A patent/KR102650336B1/en active Active
Patent Citations (12)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN107317672A (en) | 2017-05-10 | 2017-11-03 | 广东网金控股股份有限公司 | A kind of light weight terminating machine block catenary system |
| CN109639406A (en) | 2018-12-24 | 2019-04-16 | 国泰君安证券股份有限公司 | Efficient trust solution based on block chain and IPFS |
| CN110061838A (en) | 2019-04-28 | 2019-07-26 | 广州大学 | A kind of the decentralization storage system and its realization, information retrieval method of DNS resource record |
| CN110351133A (en) | 2019-06-28 | 2019-10-18 | 阿里巴巴集团控股有限公司 | Method and device for the host node hand-off process in block catenary system |
| WO2021011082A1 (en) | 2019-07-12 | 2021-01-21 | Microsoft Technology Licensing, Llc | Lightweight blockchain based on split-trust |
| KR102150210B1 (en) | 2019-09-16 | 2020-09-01 | (주) 모로보기 | Blockchain network |
| KR102152537B1 (en) | 2019-10-10 | 2020-09-07 | (주) 모로보기 | Blockchain network for internet of things device |
| KR102141177B1 (en) * | 2019-12-12 | 2020-08-04 | 주식회사 립페이 | Method for providing dual blockchain structure based high-speed transaction processing service in middleware layer |
| CN111159288A (en) | 2019-12-16 | 2020-05-15 | 郑杰骞 | Method, system, device and medium for storing, verifying and realizing chain structure data |
| CN111639361A (en) | 2020-05-15 | 2020-09-08 | 中国科学院信息工程研究所 | Block chain key management method, multi-person common signature method and electronic device |
| CN112085502A (en) | 2020-09-09 | 2020-12-15 | 江苏大学 | A lightweight blockchain supervision method and system based on edge computing |
| CN112395353A (en) | 2020-10-27 | 2021-02-23 | 中国电力科学研究院有限公司 | Intelligent electric energy meter quality data sharing method and system based on alliance chain |
Non-Patent Citations (3)
| Title |
|---|
| Joonsuu Park et al., A Lightweight Blockchain Scheme for a Seucre Samrt Dust IoT Environment, www.mdpi.com/journal/applsci, applied sciences 2020.12.14 |
| Joonsuu Park et al., A Two-Class Data Transmission Method Using a Lightweight Blockchain Structure for Secure Smart Dust IoT Environments, www.mdpi.com/journal/sensors, Sensors 2020.10.26* |
| TRIPTI Rathee, et al, "Blockchain as an IPFS (Interplanetary File System) Storage Index", International Journal of Innovations in Engineering and Technology Volume 14 Issue 2 (2019.09.30.) 1부.* |
Also Published As
| Publication number | Publication date |
|---|---|
| KR20220150728A (en) | 2022-11-11 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US12061569B2 (en) | Blockchain data archiving method, apparatus, and computer-readable storage medium | |
| US20210160252A1 (en) | Cross-blockchain interaction systems | |
| CN106534273B (en) | Block chain metadata storage system and storage method and retrieval method thereof | |
| US10432411B2 (en) | System and method for file time-stamping using a blockchain network | |
| US10985919B2 (en) | Performing map iterations in a blockchain-based system | |
| US20220083917A1 (en) | Distributed and federated learning using multi-layer machine learning models | |
| KR20200074911A (en) | Perform recovery process for network nodes in distributed systems | |
| US11361110B2 (en) | File verification method, file verification system and file verification server | |
| CN113994324B (en) | Block chain system with efficient world state data structure | |
| CN114127724A (en) | Integrity auditing for multi-replica storage | |
| US11269738B2 (en) | System and method for fast rebuild of metadata tier | |
| KR102447063B1 (en) | Managing method for blockchain based on enhanced practical byzantine fault tolerance, blockchain system and node apparatus | |
| WO2020098819A2 (en) | Performing map iterations in a blockchain-based system | |
| CN111767144A (en) | Transaction routing determination method, device, equipment and system for transaction data | |
| CN111611622A (en) | Block chain-based file storage method and electronic equipment | |
| AU2019321746A1 (en) | Dynamic blockchain data storage based on error correction code | |
| US12316769B2 (en) | Method and apparatus for storing blockchain transaction data and distributed storage system using the same | |
| KR102650336B1 (en) | Method and apparatus for providing lightweight blockchain using external strorage and pbft consensus algorithm | |
| CN112866302B (en) | Method, apparatus, medium and program product for integrity checking of cluster data | |
| CN115080515A (en) | Block chain based system file sharing method and system | |
| CN111522873B (en) | Block generation method, device, computer equipment and storage medium | |
| US10536525B2 (en) | Consistency level driven data storage in a dispersed storage network | |
| CN106027653A (en) | Multi-cloud storage system expansion method based on RAID4 (Redundant Array of Independent Disks) | |
| CN117520388A (en) | Local data loading method and device | |
| US20180113747A1 (en) | Overdrive mode for distributed storage networks |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| PA0109 | Patent application |
Patent event code: PA01091R01D Comment text: Patent Application Patent event date: 20210504 |
|
| PA0201 | Request for examination | ||
| PG1501 | Laying open of application | ||
| E902 | Notification of reason for refusal | ||
| PE0902 | Notice of grounds for rejection |
Comment text: Notification of reason for refusal Patent event date: 20230904 Patent event code: PE09021S01D |
|
| E701 | Decision to grant or registration of patent right | ||
| PE0701 | Decision of registration |
Patent event code: PE07011S01D Comment text: Decision to Grant Registration Patent event date: 20240315 |
|
| GRNT | Written decision to grant | ||
| PR0701 | Registration of establishment |
Comment text: Registration of Establishment Patent event date: 20240319 Patent event code: PR07011E01D |
|
| PR1002 | Payment of registration fee |
Payment date: 20240320 End annual number: 3 Start annual number: 1 |
|
| PG1601 | Publication of registration |