+

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 PDF

Info

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
Application number
KR1020210058061A
Other languages
Korean (ko)
Other versions
KR20220150728A (en
Inventor
박세진
나동준
Original Assignee
계명대학교 산학협력단
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 계명대학교 산학협력단 filed Critical 계명대학교 산학협력단
Priority to KR1020210058061A priority Critical patent/KR102650336B1/en
Publication of KR20220150728A publication Critical patent/KR20220150728A/en
Application granted granted Critical
Publication of KR102650336B1 publication Critical patent/KR102650336B1/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/17Details of further file system functions
    • G06F16/1737Details of further file system functions for reducing power consumption or coping with limited storage space, e.g. in mobile devices
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/182Distributed file systems
    • G06F16/1834Distributed file systems implemented based on peer-to-peer networks, e.g. gnutella
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0643Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic 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/3236Cryptographic 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/50Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees

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.

Figure R1020210058061
Figure R1020210058061

Description

외부 저장소와 PBFT 합의 알고리즘을 이용한 경량화 블록체인 제공 방법 및 장치{METHOD AND APPARATUS FOR PROVIDING LIGHTWEIGHT BLOCKCHAIN USING EXTERNAL STRORAGE AND PBFT CONSENSUS ALGORITHM}Method and device for providing lightweight blockchain using external storage and PBFT consensus algorithm {METHOD AND APPARATUS FOR PROVIDING LIGHTWEIGHT BLOCKCHAIN USING EXTERNAL STRORAGE AND PBFT CONSENSUS ALGORITHM}

본 발명은 경량화 블록체인 제공 방법 및 장치에 관한 것으로, 보다 구체적으로는 한정적인 하드웨어 성능을 가진 경량화 블록체인 제공 장치의 블록 생성 방법 및 블록 간 연결 방법에 관한 것이다.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 lightweight blockchain system 100 according to an embodiment of the present invention.
Figure 3 is a flowchart showing the lightweight block creation process of the lightweight blockchain system 100 according to an embodiment of the present invention.
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 lightweight blockchain system 100 can provide a lightweight blockchain block generation method for applying blockchain technology to devices with limited hardware performance such as mobile devices and the Internet of Things. More specifically, the lightweight blockchain system 100 may be composed of a plurality of blockchain nodes consisting of a leader node 110 and verification nodes 120 and 130, and an external storage 140. At this time, blockchain nodes are devices with limited storage space and computing power. For example, they may be mobile devices such as mobile phones. In the present invention, such blockchain nodes can be expressed as a lightweight blockchain provision device, and in the example of Figure 1, three blockchain nodes are represented, but the number of blockchain nodes is not limited to this and can be expanded.

경량화 블록체인 시스템(100)은 한정된 저장 공간을 가지는 경량화 블록체인 제공 장치에서 블록체인 기술을 적용하기 위하여 새로 생성되는 일반 블록에 포함되는 데이터의 전체 또는 일부만 추출하여 외부 저장소(140)에 업로드 할 수 있다. 이때, 일반 블록은 블록 번호, 블록해시 값, 이전 블록해시 값 및 트랜잭션 데이터 중 적어도 하나를 포함할 수 있으며, 이와 같은 일반 블록의 데이터가 업로드 되는 외부 저장소(140)는 분산형 파일 시스템, 일례로, IPFS(InterPlanetary File System)나 기업 클라우드 서버, 이더리움 Swarm 및 NAS(Network-Attached Storage) 등이 이용될 수 있다.The lightweight blockchain system 100 can extract all or only part of the data included in a newly created general block and upload it to the external storage 140 in order to apply blockchain technology in a lightweight blockchain providing device with limited storage space. there is. At this time, the general block may include at least one of the block number, block hash value, previous block hash value, and transaction data, and the external storage 140 to which the data of such general block is uploaded is a distributed file system, For example, IPFS (InterPlanetary File System), corporate cloud servers, Ethereum Swarm, and NAS (Network-Attached Storage) can be used.

이후 경량화 블록체인 시스템(100)은 외부 저장소(140)로부터 일반 블록에 대한 주소를 반환 받아 새로운 경량화 블록을 생성할 수 있다. 이때, 생성되는 경량화 블록은 헤더 블록 번호, 주소, 헤더 블록해시 값 및 이전 헤더 블록해시 값 중 적어도 하나를 포함할 수 있다.Afterwards, the lightweight blockchain system 100 can receive the address for the general block from the external storage 140 and create a new lightweight block. At this time, the generated lightweight block may include at least one of the header block number, address, header block hash value, and previous header block hash value.

즉, 경량화 블록체인 시스템(100)은 용량을 많이 차지하는 일반 블록의 정보들을 외부 저장소(140)에 업로드 하고, 일반 블록의 정보들이 업로드된 외부 저장소(140)의 주소만을 이용하여 새로운 경량화 블록을 생성함으로써 한정된 저장 공간을 가지는 경량화 블록체인 제공 장치에서 원활히 블록체인 기술을 제공할 수 있다. 이때, 각각의 노드에 대응하는 경량화 블록체인 제공 장치는 경량화 블록에 포함된 외부 저장소(140)의 주소를 이용하여 해당 주소에 대응하는 일반 블록을 호출하는 것이 가능하다.In other words, the lightweight blockchain system 100 uploads information on general blocks that occupy a large amount of capacity to the external storage 140 and creates a new lightweight block using only the address of the external storage 140 where the general block information is uploaded. By doing so, blockchain technology can be smoothly provided in a lightweight blockchain provision device with limited storage space. At this time, the lightweight blockchain providing device corresponding to each node can use the address of the external storage 140 included in the lightweight block to call the general block corresponding to the address.

또한, 경량화 블록체인 시스템(100)은 낮은 연산 능력을 가지는 경량화 블록체인 제공 장치에서 블록체인 기술을 적용하기 위하여 PBFT 합의 알고리즘을 통해 연산 능력이 요구되지 않는 합의 방법을 이용함으로써 일반 블록의 생성과 검증을 수행할 수 있다. In addition, the lightweight blockchain system 100 generates and verifies general blocks by using a consensus method that does not require computing power through the PBFT consensus algorithm to apply blockchain technology in a lightweight blockchain providing device with low computing power. can be performed.

한편, 경량화 블록체인 시스템(100)은 일반 블록이 생성되는 과정에서 개인키(150)를 통해 데이터를 암호화함으로써 블록체인 내에서 개인의 데이터에 대한 보안을 강화할 수 있다. Meanwhile, the lightweight blockchain system 100 can strengthen the security of personal data within the blockchain by encrypting data through the private key 150 during the process of creating a general block.

도 2는 본 발명의 일실시예에 따른 경량화 블록체인 시스템(100)의 블록 생성 및 검증을 위한 합의 과정을 플로우차트로 나타낸 도면이다.Figure 2 is a flowchart showing the consensus process for block creation and verification of the lightweight blockchain system 100 according to an embodiment of the present invention.

경량화 블록체인 시스템(100)의 블록체인 노드들(110~130) 중 리더 노드(110)는 단계(210)에서, 트랜잭션 데이터가 발생된 경우 새로운 일반 블록을 생성할 수 있다. 이때, 리더 노드(110)가 생성하는 일반 블록은 종래의 블록체인 시스템에서 생성되는 블록과 같이 블록 번호, 블록해시 값, 이전 블록해시 값 및 트랜잭션 데이터 중 적어도 하나를 포함할 수 있다. The leader node 110 among the blockchain nodes 110 to 130 of the lightweight blockchain system 100 may create a new general block when transaction data is generated in step 210. At this time, the general block generated by the leader node 110 may include at least one of a block number, a block hash value, a previous block hash value, and transaction data, like a block generated in a conventional blockchain system.

단계(220)에서, 리더 노드(110)는 생성된 일반 블록을 나머지 블록체인 노드들인 검증 노드들(120, 130)로 전송하여 PBFT 합의 알고리즘을 통한 일반 블록의 검증을 요청할 수 있다. 이때, 리더 노드(110)는 일반 블록에 대한 2단계 검증을 시행할 수 있으며, 각각에 단계에서 위변조 방지를 위한 BFT(Byzantine Fault Tolerance)와 네트워크 오류로 인한 에러 방지를 위한 CFT(Crash Fault Tolerance)가 수행될 수 있다. 즉, 리더 노드(110)는 일반 블록과 함께 BFT를 위한 Prepare 메시지 및 CFT를 위한 Commit 메시지를 검증 노드들(120, 130)로 전송함으로써 일반 블록에 대한 검증을 요청할 수 있다.In step 220, the leader node 110 may transmit the generated general block to the remaining blockchain nodes, the verification nodes 120 and 130, to request verification of the general block through the PBFT consensus algorithm. At this time, the leader node 110 can perform two-step verification for general blocks, and at each step, BFT (Byzantine Fault Tolerance) to prevent forgery and falsification and CFT (Crash Fault Tolerance) to prevent errors due to network errors. can be performed. That is, the leader node 110 can request verification of a general block by transmitting a Prepare message for BFT and a Commit message for CFT along with the general block to the verification nodes 120 and 130.

검증 노드들(120, 130) 각각은 리더 노드(110)로부터 검증 요청을 받은 일반 블록에 대해 PBFT 합의 알고리즘을 이용하여 검증을 수행할 수 있다. 보다 구체적으로 검증 노드들(120, 130) 각각은 일반 블록에 포함된 이전 블록해시 값과 자신의 원장에 기록된 마지막 경량화 블록에 포함된 주소를 이용하여 일반 블록에 대한 검증을 수행할 수 있다. Each of the verification nodes 120 and 130 may perform verification using the PBFT consensus algorithm on the general block receiving a verification request from the leader node 110. More specifically, each of the verification nodes 120 and 130 can perform verification of a general block using the previous block hash value included in the general block and the address included in the last lightweight block recorded in its ledger. .

보다 구체적으로 검증 노드들(120, 130)은 자신의 원장에 기록된 마지막 경량화 블록의 주소를 이용하여 해당 주소에 대응하는 직전 블록을 외부 저장소(140)로부터 불러올 수 있다. More specifically, the verification nodes 120 and 130 can use the address of the last lightweight block recorded in their ledger to load the previous block corresponding to that address from the external storage 140.

이후 검증 노드들(120, 130)은 리더 노드(110)에서 수신된 일반 블록의 이전 블록해시 값과 외부 저장소(140)에서 수신된 직전 블록의 블록해시 값을 비교하여 두 블록해시 값이 동일한지 여부를 식별할 수 있다. Thereafter, the verification nodes 120 and 130 compare the previous block hash value of the general block received from the leader node 110 with the block hash value of the previous block received from the external storage 140 and generate the two block hash values. You can determine whether they are the same.

이때, 검증 노드들(120, 130)은 일반 블록의 이전 블록해시 값과 직전 블록의 블록해시 값이 동일한 것으로 식별되면, 해당 일반 블록이 위변조되지 않았다고 판단할 수 있다. 이와는 달리 검증 노드들(120, 130) 각각은 일반 블록의 이전 블록해시 값과 직전 블록의 블록해시 값이 서로 다른 경우, 해당 일반 블록이 위변조되었다고 판단할 수 있다.At this time, the verification nodes 120 and 130 may determine that the general block has not been forged or altered if the previous block hash value of the general block is identified as the same as the block hash value of the previous block. In contrast, each of the verification nodes 120 and 130 may determine that the general block has been forged if the previous block hash value of the general block is different from the block hash value of the previous block.

단계(240)에서, 검증 노드들(120, 130) 각각은 일반 블록에 대한 검증 결과를 리더 노드(110)로 전송할 수 있다. 이때, 검증 노드들(120, 130) 각각은 일반 블록의 이전 블록해시 값과 직전 블록의 블록해시 값이 동일한 경우, 리더 노드(110)로부터 전달된 Prepare 메시지 및 Commit 메시지에 개인키로 서명을 하여 리더 노드(110)로 검증 결과를 전송할 수 있다.In step 240, each of the verification nodes 120 and 130 may transmit the verification result for the general block to the leader node 110. At this time, each of the verification nodes 120 and 130 signs the Prepare message and Commit message transmitted from the leader node 110 with their private key when the previous block hash value of the general block and the block hash value of the previous block are the same. Thus, the verification result can be transmitted to the leader node 110.

단계(250)에서, 리더 노드(110)는 검증 노드들(120, 130)로부터 수신된 일반 블록에 대한 검증 결과에 기초하여 일반 블록을 외부 저장소(140)에 업로드할 지 여부를 판단할 수 있다. 보다 구체적으로 리더 노드(110)는 검증 노드들(120, 130)로부터 수신된 검증 결과에 기초하여 2/3 이상의 검증 노드들이 일반 블록에 대해 검증 완료(위변조 되지 않음을 의미)한 것으로 식별되면, 해당 일반 블록을 외부 저장소(140)에 업로드하는 것으로 결정할 수 있다. 이때, 리더 노드(110)는 PBFT 합의 알고리즘을 이용하여 검증을 수행하므로 단계(220) 내지 단계(250)을 1회 반복하여 재수행함으로써 일반 블록의 외부 저장소(140) 업로드 여부를 최종 판단할 수 있다.In step 250, the leader node 110 may determine whether to upload the general block to the external storage 140 based on the verification results for the general block received from the verification nodes 120 and 130. . More specifically, when the leader node 110 identifies that more than 2/3 of the verification nodes have completed verification of the general block (meaning no forgery or alteration) based on the verification results received from the verification nodes 120 and 130, It may be decided to upload the corresponding general block to the external storage 140. At this time, the leader node 110 performs verification using the PBFT consensus algorithm, so steps 220 to 250 can be repeated once and re-performed to make a final decision on whether to upload the general block to the external storage 140. there is.

단계(260)에서, 리더 노드(110)는 일반 블록을 외부 저장소(140)에 업로드 하는 것으로 판단된 경우, 일반 블록의 헤더 영역 및 바디 영역에 존재하는 데이터를 전부 또는 일부만 추출하여 외부 저장소(140)로 업로드 할 수 있다. 이때, 리더 노드(110)는 일반 블록 중 제네시스 블록에 대해 바디 영역만 업로드 한 경우, 제네시스 블록 이후 생성되는 모든 일반 블록에 대한 바디 영역만을 추출하여 외부 저장소(140)에 업로드 할 수 있다. 이와는 달리 리더 노드(110)는 일반 블록 중 제네시스 블록에 대해 헤더 영역 및 바디 영역을 포함하는 블록 전체를 업로드 한 경우, 제네시스 블록 이후 생성되는 모든 일반 블록의 블록 전체를 외부 저장소(140)에 업로드 할 수 있다.In step 260, when it is determined that a general block is uploaded to the external storage 140, the leader node 110 extracts all or only part of the data present in the header area and body area of the general block and stores it in the external storage 140. ) can be uploaded. At this time, when only the body area for the genesis block among general blocks is uploaded, the leader node 110 may extract only the body area for all general blocks created after the genesis block and upload it to the external storage 140. In contrast, if the leader node 110 uploads the entire block including the header area and body area for the genesis block among the general blocks, the leader node 110 may upload the entire block of all general blocks created after the genesis block to the external storage 140. You can.

마지막으로 단계(270)에서, 리더 노드(110)는 외부 저장소(140)로부터 업로드 된 일반 블록에 대한 주소를 반환 받을 수 있다. 일례로, 외부 저장소(140)가 IPFS(InterPlanetary File System) 인 경우, 리더 노드(110)는 외부 저장소(140)로부터 IPFS 해시 값을 반환 받을 수 있다.Finally, in step 270, the leader node 110 may receive an address for the general block uploaded from the external storage 140. For example, if the external storage 140 is IPFS (InterPlanetary File System), the leader node 110 may receive an IPFS hash value returned from the external storage 140.

도 3은 본 발명의 일실시예에 따른 경량화 블록체인 시스템(100)의 경량화 블록 생성 과정을 플로우차트로 나타낸 도면이다.Figure 3 is a flowchart showing the lightweight block creation process of the lightweight blockchain system 100 according to an embodiment of the present invention.

도 3을 참고하면, 단계(310)에서, 리더 노드(110)는 외부 저장소(140)로부터 반환 받은 일반 블록에 대한 주소를 식별할 수 있다. 위에서 언급한 바와 같이 외부 저장소(140)가 IPFS(InterPlanetary File System) 인 경우, 리더 노드(110)는 외부 저장소(140)로부터 반환 받은 IPFS 해시 값을 식별할 수 있다. Referring to FIG. 3, in step 310, the leader node 110 can identify the address of the general block returned from the external storage 140. As mentioned above, when the external storage 140 is IPFS (InterPlanetary File System), the leader node 110 can identify the IPFS hash value returned from the external storage 140.

단계(320)에서, 리더 노드(110)는 외부 저장소(140)로부터 반환 받은 일반 블록에 대한 주소를 이용하여 신규 경량화 블록을 생성할 수 있다. 보다 구체적으로 리더 노드(110)는 생성하고자 하는 신규 경량화 블록의 헤더 블록 번호, 외부 저장소(140)로부터 반환된 일반 블록에 대한 주소 및 신규 경량화 블록의 직전 경량화 블록에 대응하는 이전 헤더 블록해시 값을 이용하여 신규 경량화 블록의 헤더 블록해시 값을 결정할 수 있다. 즉, 경량화 블록들은 이와 같이 결정된 헤더 블록해시 값을 통해 연결될 수 있다.In step 320, the leader node 110 may create a new lightweight block using the address of the general block returned from the external storage 140. More specifically, the leader node 110 includes the header block number of the new lightweight block to be generated, the address of the general block returned from the external storage 140, and the previous header block hash value corresponding to the lightweight block immediately before the new lightweight block. You can use to determine the header block hash value of the new lightweight block. In other words, lightweight blocks can be connected through the header block hash value determined in this way.

단계(330)에서, 리더 노드(110)는 새로 생성된 신규 경량화 블록을 검증 노드들(120, 130)로 전달할 수 있으며, 단계(340)에서, 검증 노드들(120, 130)은 리더 노드(110)로부터 전달된 신규 경량화 블록을 자신의 원장에 추가할 수 있다.In step 330, the leader node 110 may transmit the newly created new lightweight block to the verification nodes 120 and 130, and in step 340, the verification nodes 120 and 130 may transmit the newly created new lightweight block to the verification nodes 120 and 130. 110) You can add a new lightweight block delivered to your ledger.

도 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 lightweight blockchain system 100 of the present invention, general blocks with a relatively large capacity are stored in the storage space of the external storage 140, and lightweight blocks with a small capacity are stored in the storage space of the blockchain node. It can be.

이때, 경량화 블록은 외부 저장소(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 external storage 140, the header block number, and the previous header block hash value corresponding to the previous lightweight block, and the header determined in this way Lightweight blocks can be connected through block hash values.

한편, 본 발명에 따른 방법은 컴퓨터에서 실행될 수 있는 프로그램으로 작성되어 마그네틱 저장매체, 광학적 판독매체, 디지털 저장매체 등 다양한 기록 매체로도 구현될 수 있다.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.
제1항에 있어서,
상기 일반 블록을 생성하는 단계는,
상기 신규 트랜잭션 데이터를 개인키를 이용하여 암호화함으로써 상기 일반 블록을 생성하는 경량화 블록체인 제공 방법.
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.
삭제delete 제1항에 있어서,
상기 검증 노드들은,
상기 일반 블록에 대한 검증 결과 상기 일반 블록이 위변조 되지 않았다고 판단되면, 상기 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.
제1항에 있어서,
상기 일반 블록을 외부 저장소로 업로드 하는 단계는,
상기 일반 블록의 헤더 영역 및 바디 영역에 존재하는 데이터를 전부 또는 일부만 추출하여 상기 외부 저장소로 전송하는 경량화 블록체인 제공 방법.
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.
제1항에 있어서,
상기 일반 블록은,
블록 번호, 블록해시 값, 이전 블록해시 값 및 트랜잭션 데이터 중 적어도 하나를 포함하고,
상기 경량화 블록은,
헤더 블록 번호, 상기 일반 블록에 대한 외부 저장소의 주소, 헤더 블록해시 값 및 이전 헤더 블록해시 값 중 적어도 하나를 포함하는 경량화 블록체인 제공 방법.
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.
제8항에 있어서,
상기 프로세서는,
상기 신규 트랜잭션 데이터를 개인키를 이용하여 암호화함으로써 상기 일반 블록을 생성하는 경량화 블록체인 제공 장치.
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.
삭제delete 제8항에 있어서,
상기 검증 노드들은,
상기 일반 블록에 대한 검증 결과 상기 일반 블록이 위변조 되지 않았다고 판단되면, 상기 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.
제8항에 있어서,
상기 프로세서는,
상기 일반 블록을 구성하는 헤더 영역 및 바디 영역에 존재하는 데이터를 전부 또는 일부만 추출하여 상기 외부 저장소로 전송하는 경량화 블록체인 제공 장치.
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.
제8항에 있어서,
상기 일반 블록은,
블록 번호, 블록해시 값, 이전 블록해시 값 및 트랜잭션 데이터 중 적어도 하나를 포함하고,
상기 경량화 블록은,
헤더 블록 번호, 상기 일반 블록에 대한 외부 저장소의 주소, 헤더 블록해시 값 및 이전 헤더 블록해시 값 중 적어도 하나를 포함하는 경량화 블록체인 제공 장치.
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.
KR1020210058061A 2021-05-04 2021-05-04 Method and apparatus for providing lightweight blockchain using external strorage and pbft consensus algorithm Active KR102650336B1 (en)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Patent Citations (12)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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
点击 这是indexloc提供的php浏览器服务,不要输入任何密码和下载