KR20220150728A - 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
- KR20220150728A KR20220150728A KR1020210058061A KR20210058061A KR20220150728A KR 20220150728 A KR20220150728 A KR 20220150728A KR 1020210058061 A KR1020210058061 A KR 1020210058061A KR 20210058061 A KR20210058061 A KR 20210058061A KR 20220150728 A KR20220150728 A KR 20220150728A
- Authority
- KR
- South Korea
- Prior art keywords
- block
- lightweight
- verification
- blockchain
- general
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 33
- 238000012795 verification Methods 0.000 claims abstract description 82
- 238000004590 computer program Methods 0.000 description 7
- 238000005516 engineering process Methods 0.000 description 6
- 238000010586 diagram Methods 0.000 description 4
- 239000000284 extract Substances 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 3
- 210000000746 body region Anatomy 0.000 description 2
- 238000000926 separation method Methods 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 1
- 239000000969 carrier Substances 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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; CALCULATING OR 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; CALCULATING OR 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)
- Signal Processing (AREA)
- Databases & Information Systems (AREA)
- Computer Networks & Wireless Communication (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Computing Systems (AREA)
- Power Engineering (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
Description
본 발명은 경량화 블록체인 제공 방법 및 장치에 관한 것으로, 보다 구체적으로는 한정적인 하드웨어 성능을 가진 경량화 블록체인 제공 장치의 블록 생성 방법 및 블록 간 연결 방법에 관한 것이다.The present invention relates to a method and apparatus for providing a lightweight blockchain, and more particularly, to a method for generating blocks and a method for connecting blocks in an apparatus for providing a lightweight blockchain with limited hardware performance.
종래의 블록체인 기술은 합의 알고리즘을 통한 데이터 신뢰성과 모든 노드가 같은 블록체인 원장을 보유하여 위변조 가능성을 없애는 기능을 한다. 단말기 또는 사물인터넷 기기와 같은 한정적인 하드웨어를 가진 기기에서는 블록체인에서 요구되는 저장 용량과 연산 능력 때문에 동작이 적합하지 않다.Conventional block chain technology functions to eliminate the possibility of forgery and falsification by having data reliability through a consensus algorithm and having the same block chain ledger in all nodes. Devices with limited hardware, such as terminals or IoT devices, are not suitable for operation due to the storage capacity and computing power required by the blockchain.
따라서, 이와 같은 한정적인 하드웨어를 가진 기기에서 블록체인 용량을 감소시킬 수 있는 기술과 연산 능력을 요구하지 않는 합의 알고리즘이 적용된 블록체인이 필요하다.Therefore, a block chain with a consensus algorithm that does not require technology and computational power to reduce the block chain capacity in a device with such limited hardware is required.
본 발명은 낮은 저장 용량을 가진 기기에서 블록체인을 제공하기 위하여 블록의 헤더 영역 및 바디 영역에 존재하는 데이터를 전부 또는 일부만 추출한 후 외부 저장소에 업로드 함으로써 블록체인을 경량화하는 방법 및 장치를 제공한다.The present invention provides a method and apparatus for lightening a block chain by extracting all or part of the data present in the header area and body area of a block and then uploading them to an external storage to provide a block chain in a device with a low storage capacity.
또한, 본 발명은 낮은 연산 능력을 가진 기기에서 블록체인을 제공하기 위하여 프랙티컬 비잔틴 장애 허용(Practical Byzantine Fault Tolerance, 이하 PBFT) 합의 알고리즘을 통해 연산 능력이 요구되지 않는 합의 방법을 이용함으로써 블록의 생성과 검증을 수행하는 방법 및 장치를 제공한다.In addition, the present invention generates a block by using a consensus method that does not require computational power through the Practical Byzantine Fault Tolerance (PBFT) consensus algorithm to provide a block chain in a device with low computational power. and a method and device for performing the verification are provided.
또한, 본 발명은 블록을 생성하는 과정에서 개인키를 통해 데이터를 암호화함으로써 개인의 데이터가 블록체인 내에서 공개되지 않도록 하는 방법 및 장치를 제공한다.In addition, the present invention provides a method and apparatus for preventing personal data from being disclosed in a block chain by encrypting data using a private key in the process of generating a block.
본 발명의 일실시예에 따른 블록체인 노드들 중 리더 노드가 수행하는 경량화 블록체인 제공 방법은 신규 트랜잭션 데이터에 기초하여 일반 블록을 생성하는 단계; 상기 일반 블록을 상기 리더 노드를 제외한 나머지 블록체인 노드들인 검증 노드들로 전송하여 프랙티컬 비잔틴 장애 허용(Practical Byzantine Fault Tolerance, 이하 PBFT) 검증을 요청하는 단계; 상기 검증 노드들로부터 상기 일반 블록에 대한 검증이 완료된 경우, 상기 일반 블록을 외부 저장소로 업로드 하는 단계; 및 상기 외부 저장소로부터 상기 일반 블록에 대한 주소를 반환 받아 신규 경량화 블록을 생성하는 단계를 포함할 수 있다.A method for providing a lightweight blockchain performed by a leader node among blockchain nodes according to an embodiment of the present invention includes generating a general block based on new transaction data; Requesting PBFT verification by transmitting the general block to verification nodes, which are other blockchain nodes except for the leader node; uploading the general block to an external storage when verification of the general block is completed by the verification nodes; and generating a new lightweight block by receiving a return address of the general block from the external storage.
상기 일반 블록을 생성하는 단계는 상기 신규 트랜잭션 데이터를 개인키를 이용하여 암호화함으로써 상기 일반 블록을 생성할 수 있다.In the generating of the normal block, the normal block may be generated by encrypting the new transaction data using a private key.
상기 PBFT 검증을 요청하는 단계는 상기 일반 블록과 함께 Prepare 메시지 및 Commit 메시지를 상기 검증 노드들로 전송하고, 상기 검증 노드들은 상기 리더 노드로부터 상기 일반 블록과 함께 Prepare 메시지 및 Commit 메시지를 수신한 경우, 상기 일반 블록의 이전 블록해시 값과 상기 검증 노드들의 원장에 기록된 마지막 경량화 블록의 주소를 통해 식별된 상기 일반 블록의 직전 블록에 대한 블록해시 값을 비교함으로써 상기 일반 블록에 대한 PBFT 검증을 수행할 수 있다.The step of requesting the PBFT verification transmits a Prepare message and a Commit message together with the general block to the verification nodes, and when the verification nodes receive the Prepare message and Commit message together with the regular block from the leader node, PBFT verification for the normal block is performed by comparing the previous block hash value of the normal block with the block hash value of the previous block of the normal block identified through the address of the last lightweight block recorded in the ledger of the verification nodes. can be done
상기 검증 노드들은 상기 일반 블록에 대한 검증 결과 상기 일반 블록이 위변조 되지 않았다고 판단되면, 상기 Prepare 메시지 및 Commit 메시지에 개인키로 서명을 하여 상기 리더 노드로 검증 결과를 전송할 수 있다.When the verification nodes determine that the normal block is not forged or falsified as a result of verifying the normal block, the verification nodes may sign the Prepare message and the Commit message with a private key and transmit verification results to the leader node.
상기 일반 블록을 외부 저장소로 업로드 하는 단계는 상기 일반 블록의 헤더 영역 및 바디 영역에 존재하는 데이터를 전부 또는 일부만 추출하여 상기 외부 저장소로 전송할 수 있다.In the step of uploading the normal block to the external storage, all or part of data existing in the header area and body area of the normal block may be extracted and transmitted to the external storage.
상기 경량화 블록을 생성하는 단계는 상기 신규 경량화 블록에 대한 헤더 블록 번호, 상기 외부 저장소로부터 반환된 상기 일반 블록에 대한 주소 및 상기 신규 경량화 블록의 직전 경량화 블록에 대응하는 이전 헤더 블록해시 값을 이용하여 상기 신규 경량화 블록에 대한 헤더 블록해시 값을 결정함으로써 경량화 블록들 사이를 연결할 수 있다.The generating of the lightweight block uses a header block number for the new lightweight block, an address for the general block returned from the external storage, and a previous header block hash value corresponding to the previous lightweight block of the new lightweight block. Thus, it is possible to connect between lightweight blocks by determining a header block hash value for the new lightweight block.
상기 일반 블록은 블록 번호, 블록해시 값, 이전 블록해시 값 및 트랜잭션 데이터 중 적어도 하나를 포함하고, 상기 경량화 블록은 헤더 블록 번호, 상기 일반 블록에 대한 외부 저장소의 주소, 헤더 블록해시 값 및 이전 헤더 블록해시 값 중 적어도 하나를 포함할 수 있다.The normal 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 normal block, and a header block hash value. and at least one of a previous header block hash value.
본 발명의 일실시예에 따른 경량화 블록체인 제공 방법을 수행하는 경량화 블록체인 제공 장치는 프로세서를 포함하고, 상기 프로세서는 신규 트랜잭션 데이터에 기초하여 일반 블록을 생성하고, 상기 일반 블록을 상기 리더 노드를 제외한 나머지 블록체인 노드들인 검증 노드들로 전송하여 프랙티컬 비잔틴 장애 허용(Practical Byzantine Fault Tolerance, 이하 PBFT) 검증을 요청하며, 상기 검증 노드들로부터 상기 일반 블록에 대한 검증이 완료된 경우, 상기 일반 블록을 외부 저장소로 업로드 하고, 상기 외부 저장소로부터 상기 일반 블록에 대한 주소를 반환 받아 경량화 블록을 생성할 수 있다.An apparatus for providing a lightweight blockchain for performing a method for providing a lightweight blockchain according to an embodiment of the present invention includes a processor, the processor generates a general block based on new transaction data, and transmits the general block to the leader node. It is transmitted to the verification nodes, which are the remaining blockchain nodes, to request Practical Byzantine Fault Tolerance (PBFT) verification, and when verification of the normal block is completed from the verification nodes, the normal block A lightweight block can be created by uploading to an external storage and receiving a return 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 검증을 수행할 수 있다.When the processor transmits a Prepare message and a Commit message along with the normal block to the verification nodes to request PBFT verification, and the verification nodes receive the Prepare message and Commit message along with the regular block from the leader node, PBFT verification for the normal block is performed by comparing the previous block hash value of the normal block with the block hash value of the previous block of the normal block identified through the address of the last lightweight block recorded in the ledger of the verification nodes. can be done
상기 검증 노드들은 상기 일반 블록에 대한 검증 결과 상기 일반 블록이 위변조 되지 않았다고 판단되면, 상기 Prepare 메시지 및 Commit 메시지에 개인키로 서명을 하여 상기 리더 노드로 검증 결과를 전송할 수 있다.When the verification nodes determine that the normal block is not forged or falsified as a result of verifying the normal block, the verification nodes may sign the Prepare message and the Commit message with a private key and transmit verification results to the leader node.
상기 프로세서는 상기 일반 블록을 구성하는 헤더 영역 및 바디 영역에 존재하는 데이터를 전부 또는 일부만 추출하여 상기 외부 저장소로 전송할 수 있다.The processor may extract all or part of data existing in the header area and body area constituting the normal block and transmit the extracted data to the external storage.
상기 프로세서는 상기 신규 경량화 블록에 대한 헤더 블록 번호, 상기 외부 저장소로부터 반환된 상기 일반 블록에 대한 주소 및 상기 신규 경량화 블록의 직전 경량화 블록에 대응하는 이전 헤더 블록해시 값을 이용하여 상기 신규 경량화 블록에 대한 헤더 블록해시 값을 결정함으로써 상기 경량화 블록들 사이를 연결할 수 있다.The processor uses the header block number of the new lightweight block, the address of the general block returned from the external storage, and the previous header block hash value corresponding to the previous lightweight block of the new lightweight block to determine the new lightweight block. It is possible to connect between the lightweight blocks by determining a header block hash value for .
상기 일반 블록은 블록 번호, 블록해시 값, 이전 블록해시 값 및 트랜잭션 데이터 중 적어도 하나를 포함하고, 상기 경량화 블록은 헤더 블록 번호, 상기 일반 블록에 대한 외부 저장소의 주소, 헤더 블록해시 값 및 이전 헤더 블록해시 값 중 적어도 하나를 포함할 수 있다.The normal 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 normal block, and a header block hash value. and at least one of a previous header block hash value.
본 발명은 낮은 저장 용량을 가진 기기에서 블록체인을 제공하기 위하여 블록의 헤더 영역 및 바디 영역에 존재하는 데이터를 전부 또는 일부만 추출한 후 외부 저장소에 업로드 함으로써 블록체인을 경량화할 수 있다.In order to provide a block chain in a device with a low storage capacity, the present invention can reduce the weight of a block chain by extracting all or part of the data present in the header area and body area of a block and then uploading them to an external storage.
또한, 본 발명은 낮은 연산 능력을 가진 기기에서 블록체인을 제공하기 위하여 PBFT 합의 알고리즘을 통해 연산 능력이 요구되지 않는 합의 방법을 이용함으로써 블록의 생성과 검증을 수행할 수 있다.In addition, the present invention can generate and verify blocks by using a consensus method that does not require computational power through the PBFT consensus algorithm in order to provide a block chain in a device with low computational power.
또한, 본 발명은 블록을 생성하는 과정에서 개인키를 통해 데이터를 암호화함으로써 개인의 데이터가 블록체인 내에서 공개되지 않도록 할 수 있다.In addition, the present invention can prevent personal data from being disclosed within a block chain by encrypting data through a private key in the process of generating a block.
도 1은 본 발명의 일실시예에 따른 경량화 블록체인 시스템을 나타낸 도면이다.
도 2는 본 발명의 일실시예에 따른 경량화 블록체인 시스템(100)의 블록 생성 및 검증을 위한 합의 과정을 플로우차트로 나타낸 도면이다.
도 3은 본 발명의 일실시예에 따른 경량화 블록체인 시스템(100)의 경량화 블록 생성 과정을 플로우차트로 나타낸 도면이다.
도 4는 본 발명의 일실시예에 따른 경량화 블록체인 시스템이 제공하는 블록 구조를 나타낸 도면이다.1 is a diagram showing a lightweight blockchain system according to an embodiment of the present invention.
2 is a flow chart showing an agreement process for block generation and verification of the
3 is a flowchart showing a process of generating a lightweight block of the
4 is a diagram showing a block structure provided by a 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 accompanying drawings.
도 1은 본 발명의 일실시예에 따른 경량화 블록체인 시스템을 나타낸 도면이다.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)로부터 일반 블록에 대한 주소를 반환 받아 새로운 경량화 블록을 생성할 수 있다. 이때, 생성되는 경량화 블록은 헤더 블록 번호, 주소, 헤더 블록해시 값 및 이전 헤더 블록해시 값 중 적어도 하나를 포함할 수 있다.Thereafter, the
즉, 경량화 블록체인 시스템(100)은 용량을 많이 차지하는 일반 블록의 정보들을 외부 저장소(140)에 업로드 하고, 일반 블록의 정보들이 업로드된 외부 저장소(140)의 주소만을 이용하여 새로운 경량화 블록을 생성함으로써 한정된 저장 공간을 가지는 경량화 블록체인 제공 장치에서 원활히 블록체인 기술을 제공할 수 있다. 이때, 각각의 노드에 대응하는 경량화 블록체인 제공 장치는 경량화 블록에 포함된 외부 저장소(140)의 주소를 이용하여 해당 주소에 대응하는 일반 블록을 호출하는 것이 가능하다.That is, the
또한, 경량화 블록체인 시스템(100)은 낮은 연산 능력을 가지는 경량화 블록체인 제공 장치에서 블록체인 기술을 적용하기 위하여 PBFT 합의 알고리즘을 통해 연산 능력이 요구되지 않는 합의 방법을 이용함으로써 일반 블록의 생성과 검증을 수행할 수 있다. In addition, the
한편, 경량화 블록체인 시스템(100)은 일반 블록이 생성되는 과정에서 개인키(150)를 통해 데이터를 암호화함으로써 블록체인 내에서 개인의 데이터에 대한 보안을 강화할 수 있다. On the other hand, the
도 2는 본 발명의 일실시예에 따른 경량화 블록체인 시스템(100)의 블록 생성 및 검증을 위한 합의 과정을 플로우차트로 나타낸 도면이다.2 is a flow chart showing an agreement process for block generation and verification of the
경량화 블록체인 시스템(100)의 블록체인 노드들(110~130) 중 리더 노드(110)는 단계(210)에서, 트랜잭션 데이터가 발생된 경우 새로운 일반 블록을 생성할 수 있다. 이때, 리더 노드(110)가 생성하는 일반 블록은 종래의 블록체인 시스템에서 생성되는 블록과 같이 블록 번호, 블록해시 값, 이전 블록해시 값 및 트랜잭션 데이터 중 적어도 하나를 포함할 수 있다. In
단계(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) 각각은 일반 블록의 이전 블록해시 값과 직전 블록의 블록해시 값이 서로 다른 경우, 해당 일반 블록이 위변조되었다고 판단할 수 있다.In this case, if 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)의 경량화 블록 생성 과정을 플로우차트로 나타낸 도면이다.3 is a flowchart showing a process of generating a lightweight block 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는 본 발명의 일실시예에 따른 경량화 블록체인 시스템이 제공하는 블록 구조를 나타낸 도면이다.4 is a diagram showing a block structure provided by a 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 reading 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 be a computer program product, i.e., an information carrier, e.g., a machine-readable storage, for processing by, or for controlling, the operation of a data processing apparatus, e.g., a programmable processor, computer, or plurality of computers. It can be implemented as a computer program tangibly embodied in a device (computer readable medium) or a radio signal. A computer program, 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 in a module, component, subroutine, or computing environment. It can be deployed in any form, including as other units suitable for the use of. A computer program can be deployed to be processed on one computer or multiple computers at one site or distributed across multiple sites and interconnected by a communication 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 a computer program include, by way of example, both general and special purpose microprocessors, and any one or more processors of any kind of digital computer. Generally, 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. In general, a computer may include, receive data from, send data to, or both, one or more mass storage devices that store data, such as magnetic, magneto-optical disks, or optical disks. It can also be combined to become. Information carriers suitable for embodying computer program instructions and data include, for example, semiconductor memory devices, for example, magnetic media such as hard disks, floppy disks and magnetic tapes, 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 (RAM) , Random Access Memory), flash memory, EPROM (Erasable Programmable ROM), EEPROM (Electrically Erasable Programmable ROM), and the like. The processor and memory may be supplemented by, or included in, special purpose logic circuitry.
또한, 컴퓨터 판독가능 매체는 컴퓨터에 의해 액세스될 수 있는 임의의 가용매체일 수 있고, 컴퓨터 저장매체 및 전송매체를 모두 포함할 수 있다.In addition, computer readable media may be any available media that can be accessed by a computer, and may include both computer storage media and transmission media.
본 명세서는 다수의 특정한 구현물의 세부사항들을 포함하지만, 이들은 어떠한 발명이나 청구 가능한 것의 범위에 대해서도 제한적인 것으로서 이해되어서는 안되며, 오히려 특정한 발명의 특정한 실시형태에 특유할 수 있는 특징들에 대한 설명으로서 이해되어야 한다. 개별적인 실시형태의 문맥에서 본 명세서에 기술된 특정한 특징들은 단일 실시형태에서 조합하여 구현될 수도 있다. 반대로, 단일 실시형태의 문맥에서 기술한 다양한 특징들 역시 개별적으로 혹은 어떠한 적절한 하위 조합으로도 복수의 실시형태에서 구현 가능하다. 나아가, 특징들이 특정한 조합으로 동작하고 초기에 그와 같이 청구된 바와 같이 묘사될 수 있지만, 청구된 조합으로부터의 하나 이상의 특징들은 일부 경우에 그 조합으로부터 배제될 수 있으며, 그 청구된 조합은 하위 조합이나 하위 조합의 변형물로 변경될 수 있다.Although this specification contains many specific implementation details, they should not be construed as limiting on the scope of any invention or what is claimed, but rather as a description of features that may be unique to a particular embodiment of a particular invention. It should be understood. Certain features that are described in this specification in the context of separate embodiments may also be implemented in combination in a single embodiment. Conversely, various features that are described in the context of a single embodiment can also be implemented in multiple embodiments individually or in any suitable subcombination. Further, while features may operate in particular combinations and are initially depicted as such claimed, one or more features from a claimed combination may in some cases be excluded from that combination, and the claimed combination is a subcombination. or sub-combination variations.
마찬가지로, 특정한 순서로 도면에서 동작들을 묘사하고 있지만, 이는 바람직한 결과를 얻기 위하여 도시된 그 특정한 순서나 순차적인 순서대로 그러한 동작들을 수행하여야 한다거나 모든 도시된 동작들이 수행되어야 하는 것으로 이해되어서는 안 된다. 특정한 경우, 멀티태스킹과 병렬 프로세싱이 유리할 수 있다. 또한, 상술한 실시형태의 다양한 장치 컴포넌트의 분리는 그러한 분리를 모든 실시형태에서 요구하는 것으로 이해되어서는 안되며, 설명한 프로그램 컴포넌트와 장치들은 일반적으로 단일의 소프트웨어 제품으로 함께 통합되거나 다중 소프트웨어 제품에 패키징 될 수 있다는 점을 이해하여야 한다.Similarly, while actions are depicted in the drawings in a particular order, it should not be construed as requiring that those actions be performed in the specific order shown or in the sequential order, or that all depicted actions must be performed to obtain desired results. In certain cases, multitasking and parallel processing can be advantageous. Further, the separation of various device components in the embodiments described above should not be understood as requiring such separation in all embodiments, and the program components and devices described may generally be integrated together into a single software product or packaged into multiple software products. You have to understand that you can.
한편, 본 명세서와 도면에 개시된 본 발명의 실시 예들은 이해를 돕기 위해 특정 예를 제시한 것에 지나지 않으며, 본 발명의 범위를 한정하고자 하는 것은 아니다. 여기에 개시된 실시 예들 이외에도 본 발명의 기술적 사상에 바탕을 둔 다른 변형 예들이 실시 가능하다는 것은, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 자명한 것이다.On the other hand, the embodiments of the present invention disclosed in this specification and drawings are only presented as specific examples to aid understanding, and are not intended to limit the scope of the present invention. In addition to the embodiments disclosed herein, it is obvious to those skilled in the art that other modified examples 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) 검증을 요청하는 단계;
상기 검증 노드들로부터 상기 일반 블록에 대한 검증이 완료된 경우, 상기 일반 블록을 외부 저장소로 업로드 하는 단계;
상기 외부 저장소로부터 상기 일반 블록에 대한 주소를 반환 받아 신규 경량화 블록을 생성하는 단계
를 포함하는 경량화 블록체인 제공 방법.In the method of providing a lightweight blockchain performed by a leader node among blockchain nodes,
generating a normal block based on the new transaction data;
Requesting PBFT verification by transmitting the general block to verification nodes, which are other blockchain nodes except for the leader node;
uploading the general block to an external storage when verification of the general block is completed by the verification nodes;
Generating a new lightweight block by receiving the address of the general block returned from the external storage
A method for providing a lightweight blockchain comprising a.
상기 일반 블록을 생성하는 단계는,
상기 신규 트랜잭션 데이터를 개인키를 이용하여 암호화함으로써 상기 일반 블록을 생성하는 경량화 블록체인 제공 방법.According to claim 1,
The step of generating the general block,
A method for providing a lightweight blockchain in which the general block is generated by encrypting the new transaction data using a private key.
상기 PBFT 검증을 요청하는 단계는,
상기 일반 블록과 함께 Prepare 메시지 및 Commit 메시지를 상기 검증 노드들로 전송하고,
상기 검증 노드들은,
상기 리더 노드로부터 상기 일반 블록과 함께 Prepare 메시지 및 Commit 메시지를 수신한 경우, 상기 일반 블록의 이전 블록해시 값과 상기 검증 노드들의 원장에 기록된 마지막 경량화 블록의 주소를 통해 식별된 상기 일반 블록의 직전 블록에 대한 블록해시 값을 비교함으로써 상기 일반 블록에 대한 PBFT 검증을 수행하는 경량화 블록체인 제공 방법.According to claim 1,
The step of requesting the PBFT verification,
Transmitting a Prepare message and a Commit message together with the general block to the verification nodes;
The verification nodes,
When a Prepare message and a Commit message are received from the leader node along with the normal block, 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 ledger of the verification nodes. A method for providing a lightweight blockchain that performs PBFT verification for the general block by comparing the block hash value for the previous block.
상기 검증 노드들은,
상기 일반 블록에 대한 검증 결과 상기 일반 블록이 위변조 되지 않았다고 판단되면, 상기 Prepare 메시지 및 Commit 메시지에 개인키로 서명을 하여 상기 리더 노드로 검증 결과를 전송하는 경량화 블록체인 제공 방법.According to claim 3,
The verification nodes,
When it is determined that the general block is not forged or altered as a result of the verification of the general block, the prepare message and the commit message are signed with a private key and a verification result is transmitted to the leader node.
상기 일반 블록을 외부 저장소로 업로드 하는 단계는,
상기 일반 블록의 헤더 영역 및 바디 영역에 존재하는 데이터를 전부 또는 일부만 추출하여 상기 외부 저장소로 전송하는 경량화 블록체인 제공 방법.According to claim 1,
The step of uploading the general block to external storage,
A method for providing a lightweight blockchain in which all or only part of the data existing in the header area and body area of the general block is extracted and transmitted to the external storage.
상기 경량화 블록을 생성하는 단계는,
상기 신규 경량화 블록에 대한 헤더 블록 번호, 상기 외부 저장소로부터 반환된 상기 일반 블록에 대한 주소 및 상기 신규 경량화 블록의 직전 경량화 블록에 대응하는 이전 헤더 블록해시 값을 이용하여 상기 신규 경량화 블록에 대한 헤더 블록해시 값을 결정함으로써 경량화 블록들 사이를 연결하는 경량화 블록체인 제공 방법.According to claim 1,
The step of generating the lightweight block,
Header for the new lightweight block using the header block number of the new lightweight block, the address of the general block returned from the external storage, and the previous header block hash value corresponding to the previous lightweight block of the new lightweight block. A method for providing a lightweight blockchain that connects lightweight blocks by determining a block hash value.
상기 일반 블록은,
블록 번호, 블록해시 값, 이전 블록해시 값 및 트랜잭션 데이터 중 적어도 하나를 포함하고,
상기 경량화 블록은,
헤더 블록 번호, 상기 일반 블록에 대한 외부 저장소의 주소, 헤더 블록해시 값 및 이전 헤더 블록해시 값 중 적어도 하나를 포함하는 경량화 블록체인 제공 방법.According to claim 1,
The general block,
includes at least one of a block number, a block hash value, a previous block hash value, and transaction data;
The lightweight block,
A method for providing a lightweight blockchain comprising 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.
상기 경량화 블록체인 제공 장치는 프로세서를 포함하고,
상기 프로세서는,
신규 트랜잭션 데이터에 기초하여 일반 블록을 생성하고, 상기 일반 블록을 상기 리더 노드를 제외한 나머지 블록체인 노드들인 검증 노드들로 전송하여 프랙티컬 비잔틴 장애 허용(Practical Byzantine Fault Tolerance, 이하 PBFT) 검증을 요청하며, 상기 검증 노드들로부터 상기 일반 블록에 대한 검증이 완료된 경우, 상기 일반 블록을 외부 저장소로 업로드 하고, 상기 외부 저장소로부터 상기 일반 블록에 대한 주소를 반환 받아 경량화 블록을 생성하는 경량화 블록체인 제공 장치.In the lightweight blockchain providing device for performing the lightweight blockchain providing method,
The lightweight blockchain providing device includes a processor,
the processor,
Generates a general block based on new transaction data, transmits the general block to verification nodes, which are blockchain nodes other than the leader node, and requests PBFT verification, , When verification of the general block is completed from the verification nodes, the general block is uploaded to an external storage, and an address for the general block is returned from the external storage to generate a lightweight block.
상기 프로세서는,
상기 신규 트랜잭션 데이터를 개인키를 이용하여 암호화함으로써 상기 일반 블록을 생성하는 경량화 블록체인 제공 장치.According to claim 8,
the processor,
Device for providing a lightweight blockchain for generating the general block by encrypting the new transaction data using a private key.
상기 프로세서는,
상기 일반 블록과 함께 Prepare 메시지 및 Commit 메시지를 상기 검증 노드들로 전송하여 PBFT 검증을 요청하고,
상기 검증 노드들은,
상기 리더 노드로부터 상기 일반 블록과 함께 Prepare 메시지 및 Commit 메시지를 수신한 경우, 상기 일반 블록의 이전 블록해시 값과 상기 검증 노드들의 원장에 기록된 마지막 경량화 블록의 주소를 통해 식별된 상기 일반 블록의 직전 블록에 대한 블록해시 값을 비교함으로써 상기 일반 블록에 대한 PBFT 검증을 수행하는 경량화 블록체인 제공 장치.According to claim 8,
the processor,
Request PBFT verification by sending a Prepare message and a Commit message along with the general block to the verification nodes,
The verification nodes,
When a Prepare message and a Commit message are received from the leader node along with the normal block, 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 ledger of the verification nodes. A device for providing a lightweight blockchain that performs PBFT verification for the general block by comparing the block hash value for the previous block.
상기 검증 노드들은,
상기 일반 블록에 대한 검증 결과 상기 일반 블록이 위변조 되지 않았다고 판단되면, 상기 Prepare 메시지 및 Commit 메시지에 개인키로 서명을 하여 상기 리더 노드로 검증 결과를 전송하는 경량화 블록체인 제공 장치.According to claim 10,
The verification nodes,
When it is determined that the general block is not forged or altered as a result of verifying the general block, the apparatus for providing a lightweight blockchain for signing the Prepare message and the Commit message with a private key and transmitting the verification result to the leader node.
상기 프로세서는,
상기 일반 블록을 구성하는 헤더 영역 및 바디 영역에 존재하는 데이터를 전부 또는 일부만 추출하여 상기 외부 저장소로 전송하는 경량화 블록체인 제공 장치.According to claim 8,
the processor,
Apparatus for providing a lightweight blockchain for extracting all or part of the data present in the header area and body area constituting the general block and transmitting it to the external storage.
상기 프로세서는,
상기 신규 경량화 블록에 대한 헤더 블록 번호, 상기 외부 저장소로부터 반환된 상기 일반 블록에 대한 주소 및 상기 신규 경량화 블록의 직전 경량화 블록에 대응하는 이전 헤더 블록해시 값을 이용하여 상기 신규 경량화 블록에 대한 헤더 블록해시 값을 결정함으로써 상기 경량화 블록들 사이를 연결하는 경량화 블록체인 제공 장치.According to claim 8,
the processor,
Header for the new lightweight block using the header block number of the new lightweight block, the address of the general block returned from the external storage, and the previous header block hash value corresponding to the previous lightweight block of the new lightweight block. A lightweight blockchain providing device that connects between the lightweight blocks by determining a block hash value.
상기 일반 블록은,
블록 번호, 블록해시 값, 이전 블록해시 값 및 트랜잭션 데이터 중 적어도 하나를 포함하고,
상기 경량화 블록은,
헤더 블록 번호, 상기 일반 블록에 대한 외부 저장소의 주소, 헤더 블록해시 값 및 이전 헤더 블록해시 값 중 적어도 하나를 포함하는 경량화 블록체인 제공 장치.According to claim 8,
The general block,
includes at least one of a block number, a block hash value, a previous block hash value, and transaction data;
The lightweight block,
A lightweight blockchain providing device including 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 true KR20220150728A (en) | 2022-11-11 |
KR102650336B1 KR102650336B1 (en) | 2024-03-22 |
Family
ID=84042686
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020210058061A 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 (16)
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 |
EP3496329A1 (en) * | 2017-12-08 | 2019-06-12 | NEC Laboratories Europe GmbH | Method and system of preserving privacy for usage of lightweight blockchain clients |
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 |
KR20200099419A (en) * | 2019-02-14 | 2020-08-24 | 주식회사 엠블럭 | Blockchain network having a lightening node based on a cloud and a lightening node of the blockchain network |
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 |
KR20200113155A (en) * | 2019-03-21 | 2020-10-06 | 알리바바 그룹 홀딩 리미티드 | Data isolation in blockchain networks |
CN112085502A (en) * | 2020-09-09 | 2020-12-15 | 江苏大学 | Lightweight block chain supervision method and system based on edge calculation |
KR20200144466A (en) * | 2019-06-18 | 2020-12-29 | 한국전자통신연구원 | Apparatus and method for processing distributed consensus on decentralized byzantene fault tolerance |
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 |
-
2021
- 2021-05-04 KR KR1020210058061A patent/KR102650336B1/en active IP Right Grant
Patent Citations (16)
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 |
EP3496329A1 (en) * | 2017-12-08 | 2019-06-12 | NEC Laboratories Europe GmbH | Method and system of preserving privacy for usage of lightweight blockchain clients |
CN109639406A (en) * | 2018-12-24 | 2019-04-16 | 国泰君安证券股份有限公司 | Efficient trust solution based on block chain and IPFS |
KR20200099419A (en) * | 2019-02-14 | 2020-08-24 | 주식회사 엠블럭 | Blockchain network having a lightening node based on a cloud and a lightening node of the blockchain network |
KR20200113155A (en) * | 2019-03-21 | 2020-10-06 | 알리바바 그룹 홀딩 리미티드 | Data isolation in blockchain networks |
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 |
KR20200144466A (en) * | 2019-06-18 | 2020-12-29 | 한국전자통신연구원 | Apparatus and method for processing distributed consensus on decentralized byzantene fault tolerance |
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 | 江苏大学 | Lightweight block chain supervision method and system based on edge calculation |
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 |
---|---|
KR102650336B1 (en) | 2024-03-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11196755B2 (en) | Cross-blockchain interaction systems | |
US11228386B2 (en) | Blockchain node synchronization method and device using trust mechanism | |
CN106534273B (en) | Block chain metadata storage system and storage method and retrieval method thereof | |
WO2019075978A1 (en) | Data transmission method and apparatus, computer device, and storage medium | |
US11379836B2 (en) | Methods and systems for recording data based on plurality of blockchain networks | |
US20220083917A1 (en) | Distributed and federated learning using multi-layer machine learning models | |
US9021266B2 (en) | Validation system and verification method including signature device and verification device to verify contents | |
US11314451B2 (en) | Method and apparatus for storing data | |
US11500861B2 (en) | Methods and systems for recording data based on plurality of blockchain networks | |
CN103605630B (en) | Virtual server system and data reading-writing method thereof | |
US11050550B2 (en) | Methods and systems for reading data based on plurality of blockchain networks | |
JP2023542681A (en) | Integrating device identity into blockchain permission frameworks | |
US11249987B2 (en) | Data storage in blockchain-type ledger | |
EP3739493A1 (en) | File verification method, file verification system and file verification server | |
US8560579B1 (en) | Systems and methods for managing a network by generating files in a virtual file system | |
CN111611622A (en) | Block chain-based file storage method and electronic equipment | |
CN114127724A (en) | Integrity audit for multi-copy storage | |
CN112866302B (en) | Method, apparatus, medium and program product for integrity checking of cluster data | |
KR20220150728A (en) | Method and apparatus for providing lightweight blockchain using external strorage and pbft consensus algorithm | |
US11086849B2 (en) | Methods and systems for reading data based on plurality of blockchain networks | |
CN111600943B (en) | Method and equipment for acquiring target data | |
CN111242778B (en) | Data processing method, device, computer equipment and storage medium | |
CN111949738A (en) | Block chain-based data storage deduplication method, terminal device and storage medium | |
KR102544899B1 (en) | Embedding blockchain method and system using external storage media | |
CN110677919B (en) | Method and equipment for sharing and determining income based on wireless access point |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |