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 PDF

Info

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
Application number
KR1020210058061A
Other languages
Korean (ko)
Other versions
KR102650336B1 (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

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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; CALCULATING OR 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; CALCULATING OR 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)
  • 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

Disclosed are a method and apparatus for providing a lightweight blockchain using an external storage and a practical byzantine fault tolerance (PBFT) consensus algorithm. The method for providing a lightweight blockchain performed by a leader node of blockchain nodes may include: a step of generating a normal block based on new transaction data; a step of transmitting the normal block to verification nodes, which are remaining blockchain nodes except for the leader node, so as to request PBFT verification; a step of uploading the normal block to an external storage when the verification nodes finish the verification for the normal block; and a step of receiving a return of an address for the normal block from the external storage so as to generate a new lightweight block. The present invention enables personal data not to be released in a blockchain by encrypting the data through a personal key in the process of generating a block.

Description

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

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

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

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

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

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

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

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

경량화 블록체인 시스템(100)의 블록체인 노드들(110~130) 중 리더 노드(110)는 단계(210)에서, 트랜잭션 데이터가 발생된 경우 새로운 일반 블록을 생성할 수 있다. 이때, 리더 노드(110)가 생성하는 일반 블록은 종래의 블록체인 시스템에서 생성되는 블록과 같이 블록 번호, 블록해시 값, 이전 블록해시 값 및 트랜잭션 데이터 중 적어도 하나를 포함할 수 있다. In step 210, the leader node 110 among the blockchain nodes 110 to 130 of the lightweight blockchain system 100 may generate a new normal block when transaction data is generated. In this case, 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 request verification of the normal block through the PBFT consensus algorithm by transmitting the generated normal block to the verification nodes 120 and 130, which are other blockchain nodes. At this time, the leader node 110 may perform two-step verification on the general block, and in each step, Byzantine Fault Tolerance (BFT) to prevent forgery and crash fault tolerance (CFT) to prevent errors due to network errors can be performed. That is, the leader node 110 may request verification of the normal block by transmitting a Prepare message for BFT and a Commit message for CFT to the verification nodes 120 and 130 along with the normal block.

검증 노드들(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 requested for verification by the leader node 110 . More specifically, each of the verification nodes 120 and 130 can verify the normal block using the previous block hash value included in the normal block and the address included in the last lightweight block recorded in its own ledger. .

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

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

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

단계(240)에서, 검증 노드들(120, 130) 각각은 일반 블록에 대한 검증 결과를 리더 노드(110)로 전송할 수 있다. 이때, 검증 노드들(120, 130) 각각은 일반 블록의 이전 블록해시 값과 직전 블록의 블록해시 값이 동일한 경우, 리더 노드(110)로부터 전달된 Prepare 메시지 및 Commit 메시지에 개인키로 서명을 하여 리더 노드(110)로 검증 결과를 전송할 수 있다.In step 240 , each of the verification nodes 120 and 130 may transmit a verification result for the normal block to the leader node 110 . At this time, each of the verification nodes 120 and 130 signs the Prepare message and the Commit message transmitted from the leader node 110 with the private key when the previous block hash value of the normal block and the block hash value of the previous block are the same. Thus, the verification result may 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 normal block to the external storage 140 based on the verification result of the normal block received from the verification nodes 120 and 130. . More specifically, the leader node 110 identifies that 2/3 or more of the verification nodes have completed verification (meaning that they are not falsified) for the general block 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, since the leader node 110 performs verification using the PBFT consensus algorithm, it is possible to finally determine whether to upload the general block to the external storage 140 by repeating steps 220 to 250 once again. have.

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

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

도 3은 본 발명의 일실시예에 따른 경량화 블록체인 시스템(100)의 경량화 블록 생성 과정을 플로우차트로 나타낸 도면이다.3 is a flowchart showing a process of generating a lightweight block 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 may 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 normal block returned from the external storage 140. More specifically, the leader node 110 has the header block number of the new lightweight block to be created, the address of the normal block returned from the external storage 140, and the previous header block hash value corresponding to the previous lightweight block of the new lightweight block. It is possible to determine the header block hash value of the new lightweight block using That is, lightweight blocks may 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 deliver the newly generated new lightweight block to the verification nodes 120 and 130, and in step 340, the verification nodes 120 and 130 may transmit the leader node ( 110) can add a new lightweight block to its own ledger.

도 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 lightweight blockchain system 100 of the present invention, a relatively large-capacity general block is stored in the storage space of the external storage 140, and a small-capacity lightweight block is stored in the storage space of a 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 block value determined in this way. Through block hash values, lightweight blocks may be connected.

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

* 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
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

Patent Citations (16)

* 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
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)

* 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
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