KR102567514B1 - Method and device for updating iot device software based by blockchain p2p network - Google Patents

Method and device for updating iot device software based by blockchain p2p network Download PDF

Info

Publication number
KR102567514B1
KR102567514B1 KR1020220177344A KR20220177344A KR102567514B1 KR 102567514 B1 KR102567514 B1 KR 102567514B1 KR 1020220177344 A KR1020220177344 A KR 1020220177344A KR 20220177344 A KR20220177344 A KR 20220177344A KR 102567514 B1 KR102567514 B1 KR 102567514B1
Authority
KR
South Korea
Prior art keywords
iot
firmware
blockchain
gateway
iot device
Prior art date
Application number
KR1020220177344A
Other languages
Korean (ko)
Inventor
김호원
조욱
오시몬
에코 옥티안 유스튜스
Original Assignee
부산대학교 산학협력단
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 부산대학교 산학협력단 filed Critical 부산대학교 산학협력단
Priority to KR1020220177344A priority Critical patent/KR102567514B1/en
Application granted granted Critical
Publication of KR102567514B1 publication Critical patent/KR102567514B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • 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
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management
    • GPHYSICS
    • G16INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR SPECIFIC APPLICATION FIELDS
    • G16YINFORMATION AND COMMUNICATION TECHNOLOGY SPECIALLY ADAPTED FOR THE INTERNET OF THINGS [IoT]
    • G16Y10/00Economic sectors
    • G16Y10/75Information technology; Communication
    • GPHYSICS
    • G16INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR SPECIFIC APPLICATION FIELDS
    • G16YINFORMATION AND COMMUNICATION TECHNOLOGY SPECIALLY ADAPTED FOR THE INTERNET OF THINGS [IoT]
    • G16Y40/00IoT characterised by the purpose of the information processing
    • G16Y40/40Maintenance of things
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/66Arrangements for connecting between networks having differing types of switching systems, e.g. gateways
    • 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/104Peer-to-peer [P2P] networks
    • 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/12Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/34Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters 
    • 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)
  • General Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • Accounting & Taxation (AREA)
  • Development Economics (AREA)
  • Economics (AREA)
  • General Business, Economics & Management (AREA)
  • Data Mining & Analysis (AREA)
  • Business, Economics & Management (AREA)
  • Databases & Information Systems (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Medical Informatics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

블록체인 P2P 네트워크 기반 IoT 디바이스 소프트웨어 업데이트 방법 및 장치가 개시된다. 본 발명의 일실시예에 따른, 블록체인 P2P 네트워크 기반 IoT 디바이스 소프트웨어 업데이트 방법은, IoT 공급업체가, 중앙 서버에 펌웨어 바이너리를 업로드 함에 따라, IoT 게이트웨이에서, 블록체인을 통해, 상기 중앙 서버로부터 상기 펌웨어 바이너리와 관련한 검증 데이터를 다운로드하고, 상기 검증 데이터를, 상기 블록체인을 통해 검증하는 단계; 및 IoT 디바이스에서, 상기 검증에 따른 평판을 참조하여, 상기 펌웨어 바이너리 중에서, 필요한 특정의 펌웨어를 선택하여, 상기 중앙 서버로부터 상기 IoT 게이트웨이를 경유하여 제공받는 단계를 포함 할 수 있다.A method and apparatus for updating IoT device software based on a blockchain P2P network are disclosed. According to an embodiment of the present invention, a blockchain P2P network-based IoT device software update method, as an IoT supplier uploads a firmware binary to a central server, in an IoT gateway, through a blockchain, from the central server Downloading verification data related to the firmware binary and verifying the verification data through the blockchain; and selecting, in the IoT device, a necessary specific firmware from among the firmware binaries with reference to the reputation according to the verification, and receiving the provided firmware from the central server via the IoT gateway.

Description

블록체인 P2P 네트워크 기반 IoT 디바이스 소프트웨어 업데이트 방법 및 장치{METHOD AND DEVICE FOR UPDATING IOT DEVICE SOFTWARE BASED BY BLOCKCHAIN P2P NETWORK}Blockchain P2P network based IoT device software update method and device {METHOD AND DEVICE FOR UPDATING IOT DEVICE SOFTWARE BASED BY BLOCKCHAIN P2P NETWORK}

본 발명은, IoT 디바이스 소프트웨어의 업데이트를 중앙 집중식으로 관리되지 않고, P2P 형태로 관리될 수 있도록 하며, 인센티브 정책을 통해 최적의 IoT 도메인 환경을 구현하는, 블록체인 P2P 네트워크 기반 IoT 디바이스 소프트웨어 업데이트 방법 및 장치에 관한 것이다.The present invention provides a blockchain P2P network-based IoT device software update method that enables IoT device software updates to be managed in a P2P form rather than centrally managed, and implements an optimal IoT domain environment through an incentive policy, and It's about the device.

급속히 성장하는 IoT 사업에서는, 수십억 개의 IoT 디바이스가 유지 관리 될 것으로 예상된다.In the rapidly growing IoT business, billions of IoT devices are expected to be maintained.

하지만, 넓은 범위에 설치되어 관리되는 IoT 디바이스는, 특성상 소프트웨어 업데이트를 지속적으로 수행하는 데에 어려움이 있다.However, IoT devices that are installed and managed in a wide range have difficulties in continuously performing software updates due to their characteristics.

소프트웨어의 업데이트를 오랫동안 하지 못하는 경우에는, 해당 IoT 디바이스의 보안 위협 뿐 아니라 연결되어 있는 동일한 환경의 IoT 디바이스에도 보안 위협이 될 수 있다.If the software is not updated for a long time, it may become a security threat not only to the IoT device but also to IoT devices in the same environment to which they are connected.

이에 따라, IoT 디바이스는 정기적으로 소프트웨어를 업데이트 해야 하고, 항상 최신 상태로 유지해야 한다.Accordingly, IoT devices need to regularly update their software and always keep it up to date.

기존의 소프트웨어 업데이트 방식은, IoT 디바이스가 클라우드에서 펌웨어를 다운로드 받아 진행하는 중앙 집중식 방식이 대부분이다.Most of the existing software update methods are centralized methods in which IoT devices download firmware from the cloud.

기존의 소프트웨어 업데이트 방식은, 하나의 클라우드에 오류가 발생하면, 업데이트와 관련한 모든 서비스가 중지되는 단일 실패 지점 문제를 가지고 있다.Existing software update methods have a single point of failure problem in that when an error occurs in one cloud, all services related to the update are stopped.

기존의 소프트웨어 업데이트 방식은, 업데이트 해야 할 데이터가 큰 경우에도, 데이터의 크기로 인해 긴 지연이 발생되기 쉽다.Existing software update methods tend to cause long delays due to the size of data even when data to be updated is large.

따라서, 중앙 집중식 방식이 아닌, 블록체인의 피어 투 피어 통신을 통해, IoT 디바이스로의 업데이트를 원활하게 수행하는 개선된 기법의 등장이 절실히 요구되고 있다.Therefore, there is an urgent need for an improved technique that smoothly performs updates to IoT devices through peer-to-peer communication of blockchain rather than a centralized method.

본 발명의 실시예는, IoT 디바이스 소프트웨어 업데이트를 중앙 집중식으로 관리하지 않고, P2P 형태로 관리할 수 있도록 하며, 인센티브 정책을 통해 최적의 IoT 도메인 환경을 구현하는 것을 목적으로 한다.Embodiments of the present invention are aimed at enabling IoT device software updates to be managed in a P2P form without centralized management, and to implement an optimal IoT domain environment through an incentive policy.

또한, 본 발명의 실시예는, 소프트웨어 업데이트에 필요한 데이터를 민감한 데이터와, 민감하지 않은 데이터로 나누어, 합의 알고리즘의 분리와 온체인/오프체인으로의 분리 관리로 블록체인의 성능을 향상시키는 데에 목적이 있다.In addition, the embodiment of the present invention divides the data necessary for software update into sensitive data and non-sensitive data, and improves the performance of the blockchain by separating the consensus algorithm and managing the separation into on-chain / off-chain. There is a purpose.

본 발명의 일실시예에 따른, 블록체인 P2P 네트워크 기반 IoT 디바이스 소프트웨어 업데이트 방법은, IoT 공급업체가, 중앙 서버에 펌웨어 바이너리를 업로드 함에 따라, IoT 게이트웨이에서, 블록체인을 통해, 상기 중앙 서버로부터 상기 펌웨어 바이너리와 관련한 검증 데이터를 다운로드하고, 상기 검증 데이터를, 상기 블록체인을 통해 검증하는 단계; 및 IoT 디바이스에서, 상기 검증에 따른 평판을 참조하여, 상기 펌웨어 바이너리 중에서, 필요한 특정의 펌웨어를 선택하여, 상기 중앙 서버로부터 상기 IoT 게이트웨이를 경유하여 제공받는 단계를 포함할 수 있다.According to an embodiment of the present invention, a blockchain P2P network-based IoT device software update method, as an IoT supplier uploads a firmware binary to a central server, in an IoT gateway, through a blockchain, from the central server Downloading verification data related to the firmware binary and verifying the verification data through the blockchain; and selecting, in the IoT device, a necessary specific firmware from among the firmware binaries with reference to the reputation according to the verification, and receiving the provided firmware from the central server via the IoT gateway.

또한, 본 발명의 실시예에 따른, 블록체인 P2P 네트워크 기반 IoT 디바이스 소프트웨어 업데이트 장치는, IoT 공급업체가, 중앙 서버에 펌웨어 바이너리를 업로드 함에 따라, 블록체인을 통해, 상기 중앙 서버로부터 상기 펌웨어 바이너리와 관련한 검증 데이터를 다운로드하고, 상기 검증 데이터를, 상기 블록체인을 통해 검증하는 IoT 게이트웨이; 및 상기 검증에 따른 평판을 참조하여, 상기 펌웨어 바이너리 중에서, 필요한 특정의 펌웨어를 선택하여, 상기 중앙 서버로부터 상기 IoT 게이트웨이를 경유하여 제공받는 IoT 디바이스를 포함하여 구성할 수 있다.In addition, according to an embodiment of the present invention, the blockchain P2P network-based IoT device software update apparatus, as the IoT supplier uploads the firmware binary to the central server, updates the firmware binary and the firmware binary from the central server through the blockchain. An IoT gateway that downloads related verification data and verifies the verification data through the blockchain; And with reference to the reputation according to the verification, it may be configured to include an IoT device that is provided from the central server via the IoT gateway by selecting a specific necessary firmware from among the firmware binaries.

본 발명의 일실시예에 따르면, IoT 디바이스 소프트웨어 업데이트를 중앙 집중식으로 관리하지 않고, P2P 형태로 관리할 수 있도록 하며, 인센티브 정책을 통해 최적의 IoT 도메인 환경을 구현할 수 있다.According to an embodiment of the present invention, IoT device software updates can be managed in a P2P form without centralized management, and an optimal IoT domain environment can be implemented through an incentive policy.

또한, 본 발명에 의해서는, 소프트웨어 업데이트에 필요한 데이터를 민감한 데이터와, 민감하지 않은 데이터로 나누어, 합의 알고리즘의 분리와 온체인/오프체인으로의 분리 관리로 블록체인의 성능을 향상시킬 수 있다.In addition, according to the present invention, the performance of the blockchain can be improved by dividing the data necessary for software update into sensitive data and non-sensitive data, separating the consensus algorithm and managing the on-chain/off-chain separation.

도 1은 본 발명의 일실시예에 따른 블록체인 P2P 네트워크 기반 IoT 디바이스 소프트웨어 업데이트 장치의 구성을 도시한 블록도이다.
도 2는 본 발명의 구현 흐름을 설명하기 위한 도이다.
도 3a 및 도 3b는, 블록체인 P2P 네트워크 기반 IoT 디바이스 소프트웨어 업데이트를 구현하는 동작을 설명하기 위한 도이다.
도 4는 본 발명의 일실시예에 따른, 블록체인 P2P 네트워크 기반 IoT 디바이스 소프트웨어 업데이트 방법을 도시한 흐름도이다.
1 is a block diagram showing the configuration of an IoT device software update apparatus based on a blockchain P2P network according to an embodiment of the present invention.
2 is a diagram for explaining the implementation flow of the present invention.
3A and 3B are diagrams for explaining an operation of implementing a blockchain P2P network-based IoT device software update.
4 is a flowchart illustrating a method for updating IoT device software based on a blockchain P2P network according to an embodiment of the present invention.

이하에서, 첨부된 도면을 참조하여 실시예들을 상세하게 설명한다. 그러나, 실시예들에는 다양한 변경이 가해질 수 있어서 특허출원의 권리 범위가 이러한 실시예들에 의해 제한되거나 한정되는 것은 아니다. 실시예들에 대한 모든 변경, 균등물 내지 대체물이 권리 범위에 포함되는 것으로 이해되어야 한다.Hereinafter, embodiments will be described in detail with reference to the accompanying drawings. However, since various changes can be made to the embodiments, the scope of the patent application is not limited or limited by these embodiments. It should be understood that all changes, equivalents or substitutes to the embodiments are included within the scope of rights.

실시예에서 사용한 용어는 단지 설명을 목적으로 사용된 것으로, 한정하려는 의도로 해석되어서는 안된다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, "포함하다" 또는 "가지다" 등의 용어는 명세서 상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.Terms used in the examples are used only for descriptive purposes and should not be construed as limiting. Singular expressions include plural expressions unless the context clearly dictates otherwise. In this specification, terms such as "include" or "have" are intended to designate that there is a feature, number, step, operation, component, part, or combination thereof described in the specification, but one or more other features It should be understood that the presence or addition of numbers, steps, operations, components, parts, or combinations thereof is not precluded.

다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 실시예가 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥 상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.Unless defined otherwise, all terms used herein, including technical or scientific terms, have the same meaning as commonly understood by a person of ordinary skill in the art to which the embodiment belongs. Terms such as those defined in commonly used dictionaries should be interpreted as having a meaning consistent with the meaning in the context of the related art, and unless explicitly defined in the present application, they should not be interpreted in an ideal or excessively formal meaning. don't

또한, 첨부 도면을 참조하여 설명함에 있어, 도면 부호에 관계없이 동일한 구성 요소는 동일한 참조부호를 부여하고 이에 대한 중복되는 설명은 생략하기로 한다. 실시예를 설명함에 있어서 관련된 공지 기술에 대한 구체적인 설명이 실시예의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다.In addition, in the description with reference to the accompanying drawings, the same reference numerals are given to the same components regardless of reference numerals, and overlapping descriptions thereof will be omitted. In describing the embodiment, if it is determined that a detailed description of a related known technology may unnecessarily obscure the gist of the embodiment, the detailed description will be omitted.

도 1은 본 발명의 일실시예에 따른 블록체인 P2P 네트워크 기반 IoT 디바이스 소프트웨어 업데이트 장치의 구성을 도시한 블록도이다.1 is a block diagram showing the configuration of an IoT device software update apparatus based on a blockchain P2P network according to an embodiment of the present invention.

도 1을 참조하면, 본 발명의 일실시예에 따른, 블록체인 P2P 네트워크 기반 IoT 디바이스 소프트웨어 업데이트 장치(이하, 'IoT 디바이스 소프트웨어 업데이트 장치'으로 약칭함, 100)는, IoT 게이트웨이(110) 및 IoT 디바이스(120)를 포함하여 구성할 수 있다. 실시예에 따라, IoT 디바이스 소프트웨어 업데이트 장치(100)는 관리부(130)를 추가적으로 포함하여 구성할 수 있다.Referring to FIG. 1, according to an embodiment of the present invention, an IoT device software update device based on a blockchain P2P network (hereinafter, abbreviated as 'IoT device software update device', 100) includes an IoT gateway 110 and IoT It can be configured to include the device 120 . According to embodiments, the IoT device software update apparatus 100 may additionally include a management unit 130.

우선, IoT 게이트웨이(110)는 IoT 공급업체(105)가, 중앙 서버에 펌웨어 바이너리를 업로드 함에 따라, 블록체인을 통해, 상기 중앙 서버로부터 상기 펌웨어 바이너리와 관련한 검증 데이터를 다운로드하고, 상기 검증 데이터를, 상기 블록체인을 통해 검증한다. 즉, IoT 게이트웨이(110)는, 업데이트 용도의 펌웨어 바이너리가, 중앙 서버에 등록됨에 따라, 상기 펌웨어 바이너리를 증명할 수 있는 검증 데이터를 다운로드 받고, 다운로드 된 검증 데이터에 유효성이 있는지를 검증하는 역할을 할 수 있다.First, as the IoT supplier 105 uploads the firmware binary to the central server, the IoT gateway 110 downloads verification data related to the firmware binary from the central server through a blockchain, and stores the verification data , verified through the blockchain. That is, the IoT gateway 110 downloads verification data that can prove the firmware binary as the firmware binary for update is registered in the central server, and plays a role in verifying whether the downloaded verification data is valid. can

상기 검증 데이터는, 예컨대 펌웨어 바이너리의 버전 정보, 서명 정보, 해시 정보 등을 포함할 수 있다.The verification data may include, for example, firmware binary version information, signature information, and hash information.

IoT 공급업체(105)는 해시와 서명을 통해, 암호화하여 상기 펌웨어 바이너리를 중앙 서버에 업로드 할 수 있다. 예컨대, IoT 공급업체(105)는, 펌웨어 해시와, 게시자의 디지털 서명의 두 가지 메타데이터를 이용하여, 펌웨어 바이너리를 암호화 할 수 있다.The IoT supplier 105 may upload the firmware binary to the central server after encryption through hash and signature. For example, the IoT vendor 105 may encrypt the firmware binary using two pieces of metadata: a firmware hash and a publisher's digital signature.

IoT 게이트웨이(110)는, 평판으로서, 상기 블록체인에 의한 검증에 따른 평판 점수를 획득할 수 있다. 상기 평판은 펌웨어 바이너리를, 추후 다른 IoT 게이트웨이나 IoT 디바이스(120)로 배포하는 IoT 게이트웨이에 대해, IoT 공급업체(105)가 평가한 신뢰 정도일 수 있다.The IoT gateway 110, as a reputation, may obtain a reputation score according to verification by the blockchain. The reputation may be a degree of trust evaluated by the IoT supplier 105 for the IoT gateway that distributes the firmware binary to other IoT gateways or IoT devices 120 later.

평판 점수의 획득에 있어, IoT 게이트웨이(110)는, 연결된 IoT 디바이스 중에서, 상기 IoT 공급업체에 의해 업로드 된 펌웨어 바이너리와 연관되어 최신 버전으로 업데이트된 IoT 디바이스의 개수를 카운트하고, 카운트된 개수에 비례하여 높아지는 평판 점수를 획득할 수 있다.In acquiring the reputation score, the IoT gateway 110 counts the number of IoT devices updated to the latest version in association with the firmware binary uploaded by the IoT supplier, among the connected IoT devices, and is proportional to the counted number. You can get a higher reputation score by doing this.

예컨대, 10개의 IoT 디바이스와 연결되는 IoT 게이트웨이(110)는, 상기 10개의 IoT 디바이스 중, 업로드 된 펌웨어 바이너리와 연관되어 최신 버전으로 업데이트된 IoT 디바이스가 많이 카운트 됨에 따라, 비례적으로 높은 평판 점수를 획득할 수 있다.For example, the IoT gateway 110 connected to 10 IoT devices has a proportionally high reputation score, as many IoT devices updated to the latest version in association with the uploaded firmware binary are counted among the 10 IoT devices. can be obtained

또는, IoT 게이트웨이(110)는, 연결된 모든 IoT 디바이스 모두가, 상기 IoT 공급업체에 의해 업로드 된 펌웨어 바이너리와 연관되어 최신 버전으로 업데이트 됨에 따라, 다른 IoT 게이트웨이에 비해 상대적으로 높은 평판 점수를 획득할 수 있다.Alternatively, the IoT gateway 110 may acquire a relatively high reputation score compared to other IoT gateways as all connected IoT devices are updated to the latest version in association with the firmware binary uploaded by the IoT vendor. there is.

예컨대, 연결된 10개의 IoT 디바이스 모두가, 업로드 된 펌웨어 바이너리와 연관되어 최신 버전으로 업데이트 되는 게이트웨이는, 규정된 최고 점수의 평판 점수를 획득할 수 있다.For example, a gateway in which all 10 connected IoT devices are updated to the latest version in association with the uploaded firmware binary may obtain a prescribed highest reputation score.

또한, IoT 게이트웨이(110)는, 상기 평판 점수가 기재된 펌웨어 바이너리를 P2P 방식으로, 블록체인 내 다른 IoT 게이트웨이로 배포 할 수 있다. 즉, IoT 게이트웨이(110)는, 자신이 획득한 평판 점수가 기재된 펌웨어 바이너리를 블록체인 내 다른 IoT 게이트웨이로 전달하여, 펌웨어 바이너리가 확산되어 배포되도록 할 수 있다.In addition, the IoT gateway 110 may distribute the firmware binary with the reputation score to other IoT gateways in the blockchain in a P2P manner. That is, the IoT gateway 110 may transmit the firmware binary with the reputation score obtained by the IoT gateway 110 to other IoT gateways in the blockchain, so that the firmware binary is spread and distributed.

IoT 디바이스(120)는 상기 검증에 따른 평판을 참조하여, 상기 펌웨어 바이너리 중에서, 필요한 특정의 펌웨어를 선택하여, 상기 중앙 서버로부터 상기 IoT 게이트웨이(110)를 경유하여 제공받는다. 즉, IoT 디바이스(120)는 IoT 게이트웨이(110)가 획득한 평판 점수를 보고 펌웨어 바이너리의 신뢰성을 확인한 후, 자신에게 필요한 특정의 펌웨어를, 상기 중앙 서버에서 선별적으로 IoT 게이트웨이(110)를 통해 다운로드하는 역할을 할 수 있다.The IoT device 120 refers to the reputation according to the verification, selects a specific required firmware from among the firmware binaries, and receives the provided firmware from the central server via the IoT gateway 110 . That is, after the IoT device 120 sees the reputation score obtained by the IoT gateway 110 and confirms the reliability of the firmware binary, the IoT device 120 selectively selects the specific firmware required for it through the IoT gateway 110 in the central server. It can serve as a download.

여기서, IoT 게이트웨이(110)는, 상기 IoT 디바이스(120)에 의해 선택된 펌웨어를, 청크 데이터(chunk data) 단위로, 상기 IoT 디바이스(120)에 제공할 수 있다.Here, the IoT gateway 110 may provide the firmware selected by the IoT device 120 to the IoT device 120 in units of chunk data.

이에 따라, IoT 게이트웨이(110)는, 예컨대 네트워크 장애가 발생하는 경우, 관련된 청크 단위의 펌웨어 바이너리 만을 다시 다운로드하여 배포 함으로써, IoT 디바이스(120)가 전체 펌웨어 바이너리를 재다운로드하는 불필요한 과정을 최소화 할 수 있다.Accordingly, when a network failure occurs, for example, the IoT gateway 110 downloads and distributes only firmware binaries in related chunk units, thereby minimizing an unnecessary process in which the IoT device 120 redownloads the entire firmware binaries. .

실시예에 따라, IoT 디바이스 소프트웨어 업데이트 장치(100)는 업데이트 관련한 데이터를 민감도에 따라 구분 함으로써, 다중 레이어 블록체인 네트워크를 구현할 수 있다.According to an embodiment, the IoT device software update apparatus 100 may implement a multi-layer blockchain network by classifying update-related data according to sensitivity.

이를 위해, IoT 디바이스 소프트웨어 업데이트 장치(100)는 관리부(130)를 추가하여 구성할 수 있다.To this end, the IoT device software update apparatus 100 may be configured by adding a management unit 130.

관리부(130)는, 상기 펌웨어 바이너리를 포함하여 상기 중앙 서버에 업로드되는 데이터 각각을, 민감한 데이터 또는 민감하지 않는 데이터로 구분하고, 상기 민감한 데이터를 PBFT 합의 알고리즘을 사용하여 관리하고, 상기 민감하지 않은 데이터를 RAFT 합의 알고리즘을 사용하여 관리할 수 있다.The management unit 130 classifies each of the data uploaded to the central server, including the firmware binary, into sensitive data or non-sensitive data, manages the sensitive data using a PBFT consensus algorithm, and Data can be managed using the RAFT consensus algorithm.

즉, 관리부(130)는 일관성을 엄격하게 유지해야 하는지에 따라, IoT 디바이스 소프트웨어 업데이트에 관한 데이터를, 민감한 데이터와 민감하지 않은 데이터로 구분할 수 있다.That is, the management unit 130 may classify data related to IoT device software updates into sensitive data and non-sensitive data according to whether consistency should be strictly maintained.

관리부(130)는 엄격한 일관성이 유지되어야 하는, 예컨대 펌웨어 바이너리의 해시값(루트 해시), IoT 공급업체(105)의 목록(소프트웨어 배포자), 및 IoT 게이트웨이(110)의 목록(소프트웨어 재 배포자) 등을 민감한 데이터로 구분하여, PBFT 합의 알고리즘을 사용하여 관리할 수 있다.The management unit 130 requires strict consistency to be maintained, for example, a hash value of a firmware binary (root hash), a list of IoT vendors 105 (software distributors), a list of IoT gateways 110 (software redistributors), etc. can be classified as sensitive data and managed using the PBFT consensus algorithm.

PBFT(Practical Byzantine Fault Tolerance) 합의 알고리즘은 Safety를 확보하고 Liveness를 일부 희생하면서, 비동기 네트워크에서도 합의를 이룰 수 있는 알고리즘을 지칭할 수 있다. PBFT 합의 알고리즘은 네트워크에 배신자 노드가 어느 정도 있다고 해도 네트워크 내에서 이루어지는 합의의 신뢰를 보장하는 알고리즘일 수 있다.PBFT (Practical Byzantine Fault Tolerance) consensus algorithm can refer to an algorithm that can achieve consensus even in an asynchronous network while securing safety and sacrificing some liveness. The PBFT consensus algorithm may be an algorithm that guarantees the reliability of consensus within the network even if there are some renegade nodes in the network.

또한, 관리부(130)는 약한 일관성을 유지해도 되는, 예컨대 사용 가능한 펌웨어 목록, IoT 디바이스(120)의 목록, IoT 게이트웨이의 평판 점수 등을, 민감하지 않은 데이터로 구분하여, RAFT 합의 알고리즘을 사용하여 관리할 수 있다.In addition, the management unit 130 classifies the available firmware list, the list of IoT devices 120, the reputation score of the IoT gateway, etc., which may maintain weak consistency, as non-sensitive data, and uses the RAFT consensus algorithm. can manage

RAFT(Reliable, Replicated, Redundant and Fault-Tolerant) 합의 알고리즘은, 분산환경에서 중앙에서 관리하여 합의를 이룰 수 있도록 하는 알고리즘을 지칭할 수 있다. RAFT 합의 알고리즘은 팩소스의 대안으로 설계된 합의 알고리즘으로, 로직의 분해를 통해 팩소스보다 이해하기 쉽게 되어 있으며 또한 안전한 알고리즘일 수 있다.A RAFT (Reliable, Replicated, Redundant and Fault-Tolerant) consensus algorithm may refer to an algorithm that enables consensus to be achieved by centrally managing in a distributed environment. The RAFT consensus algorithm is a consensus algorithm designed as an alternative to Paxos, and is easier to understand than Paxos through decomposition of logic and can also be a safer algorithm.

본 발명의 일실시예에 따르면, IoT 디바이스 소프트웨어 업데이트를 중앙 집중식으로 관리하지 않고, P2P 형태로 관리할 수 있도록 하며, 인센티브 정책을 통해 최적의 IoT 도메인 환경을 구현할 수 있다.According to an embodiment of the present invention, IoT device software updates can be managed in a P2P form without centralized management, and an optimal IoT domain environment can be implemented through an incentive policy.

또한, 본 발명에 의해서는, 소프트웨어 업데이트에 필요한 데이터를 민감한 데이터와, 민감하지 않은 데이터로 나누어, 합의 알고리즘의 분리와 온체인/오프체인으로의 분리 관리로 블록체인의 성능을 향상시킬 수 있다.In addition, according to the present invention, the performance of the blockchain can be improved by dividing the data necessary for software update into sensitive data and non-sensitive data, separating the consensus algorithm and managing the on-chain/off-chain separation.

도 2는 본 발명의 구현 흐름을 설명하기 위한 도이다.2 is a diagram for explaining the implementation flow of the present invention.

도 2의 Step 0 에서, 블록체인은 IoT 공급업체, IoT 게이트웨이, 및 IoT 디바이스를 등록할 수 있다.In Step 0 of FIG. 2, the blockchain can register IoT vendors, IoT gateways, and IoT devices.

도 2의 Step 1 에서, IoT 공급업체는, 서명, 해시, 및 업데이트용의 펌웨어 바이너리를 준비할 수 있다.In Step 1 of FIG. 2, IoT vendors can prepare firmware binaries for signing, hashing, and updating.

도 2의 Step 2 에서, IoT 공급업체는, 클라우드에, 서명과 해시를 이용하여, 펌웨어 바이너리를 업로드 할 수 있다.In Step 2 of FIG. 2, the IoT vendor can upload the firmware binary to the cloud using the signature and hash.

도 2의 Step 3 에서, IoT 게이트웨이는, 클라우드로부터 펌웨어 바이너리와 관련한 검증 데이터를 다운로드하여 검증할 수 있고, 펌웨어 바이너리를 다른 IoT 게이트웨이에게 배포할 수 있다. IoT 게이트웨이는, 클라우드로부터 다운로드 한 검증 데이터, 블록체인을 통해 검증하고, 검증에 따른 평판을 기재하여, 펌웨어 바이너리를 다른 IoT 게이트웨이로 재배포할 수 있다. 다른 IoT 게이트웨이는, 펌웨어 바이너리에 대한 검증, 평판 기재, 및 펌웨어 바이너리의 재배포를 반복할 수 있다.In Step 3 of FIG. 2 , the IoT gateway may download and verify verification data related to the firmware binary from the cloud, and may distribute the firmware binary to other IoT gateways. The IoT gateway can redistribute the firmware binary to other IoT gateways by verifying the verification data downloaded from the cloud and verifying it through the blockchain, and writing the reputation according to the verification. Other IoT gateways may repeat verification of the firmware binary, write reputation, and redeploy the firmware binary.

도 2의 Step 4 에서, IoT 공급업체는, 블록체인에서 사용 가능한 펌웨어 바이너리 및 평판을 유지할 수 있다.In Step 4 of Figure 2, the IoT vendor can keep the firmware binary and reputation available on the blockchain.

도 2의 Step 5 에서, IoT 디바이스는, 평판을 참조하여, 펌웨어 바이너리 중에서 자신에게 필요한 특정 청크의 펌웨어(예컨대, 파트 2)를 선택하여 IoT 게이트웨이로부터 다운로드할 수 있다. 이후, IoT 디바이스는, 서명과 해시를 이용하여, 다운로드 한 펌웨어(예컨대, 파트 2)를 검증하고, 검증된 펌웨어를 이용하여 업데이트 할 수 있다.In Step 5 of FIG. 2 , the IoT device may select a specific chunk of firmware (eg, part 2) necessary for the IoT device among firmware binaries with reference to the reputation and download it from the IoT gateway. Thereafter, the IoT device may verify the downloaded firmware (eg, Part 2) using the signature and hash, and update the firmware using the verified firmware.

IoT 디바이스 소프트웨어 업데이트 장치(100)의 IoT 게이트웨이는, P2P 방식으로 펌웨어 바이너리를 배포할 수 있다.The IoT gateway of the IoT device software update device 100 may distribute firmware binaries in a P2P manner.

IoT 게이트웨이는 IoT 공급업체의 클라우드(중앙 서버)로부터 펌웨어 바이너리와 관련한 검증 데이터를 다운로드하여 검증할 수 있고, 펌웨어 바이너리를 배포 및 재배포할 수 있다. 이때, 펌웨어 바이너리는 청크 단위로 작게 나누어서 관리함으로써, IoT 디바이스 간에도 재배포가 가능하도록 할 수 있다.The IoT gateway can verify by downloading verification data related to the firmware binary from the cloud (central server) of the IoT supplier, and can distribute and redistribute the firmware binary. At this time, by dividing the firmware binary into small chunks and managing them, it is possible to redistribute between IoT devices.

IoT 디바이스 소프트웨어 업데이트 장치(100)의 IoT 게이트웨이는, 펌웨어 바이너리를 청크 단위로 관리 할 수 있다.The IoT gateway of the IoT device software update apparatus 100 may manage firmware binaries in units of chunks.

대부분의 IoT 디바이스는 제한된 리소스를 가지는 장치이기 때문에, IoT 게이트웨이는 펌웨어 바이너리가, 작은 데이터인 청크 단위로 IoT 디바이스에 다운로드 되도록 할 수 있다.Since most IoT devices are devices with limited resources, the IoT gateway can allow the firmware binary to be downloaded to the IoT device in small chunks of data.

이에 따라, IoT 게이트웨이는, 네트워크 장애가 발생하는 경우라도, 관련된 청크 단위의 펌웨어 바이너리 만을 다시 다운로드하여 배포 함으로써, IoT 디바이스가 전체 펌웨어 바이너리를 재다운로드하는 불필요한 과정을 최소화 할 수 있다.Accordingly, even if a network failure occurs, the IoT gateway can minimize the unnecessary process of re-downloading the entire firmware binary by the IoT device by re-downloading and distributing only the firmware binary in the relevant chunk unit.

IoT 게이트웨이는, 펌웨어 바이너리를 청크 단위의 여러 파트로 나누어 관리할 수 있다.The IoT gateway can manage the firmware binary by dividing it into several parts in chunk units.

IoT 게이트웨이는, 비트코인 SPV에서 트랜잭션 검증 방식과 유사하게, 각 파트를 리프 해시 형태로 머클 검증을 통해 검증 할 수 있다.Similar to the transaction verification method in Bitcoin SPV, the IoT gateway can verify each part through merkle verification in the form of a leaf hash.

IoT 게이트웨이는, IoT 디바이스가 추후 다운로드 되는 펌웨어가 펌웨어 바이너리의 전체 펌웨어 인지, 일부 펌웨어인지 확인 할 수 있도록 한다.The IoT gateway allows the IoT device to check whether the firmware downloaded later is the entire firmware of the firmware binary or a portion of the firmware.

IoT 디바이스 소프트웨어 업데이트 장치(100)의 IoT 게이트웨이는, 펌웨어에 대한 보안 및 인증을 수행할 수 있다.The IoT gateway of the IoT device software update apparatus 100 may perform security and authentication for firmware.

IoT 공급업체는, 펌웨어 해시와, 게시자의 디지털 서명의 두 가지 메타데이터를 가지고 있다. 펌웨어 해시는 공격자가 펌웨어 전달을 악의적으로 변경하지 않았다는 것을 증명하고, 디지털 서명은 업데이트가 정상적인 IoT 공급업체로부터 온 것임을 증명할 수 있다. IoT vendors have two pieces of metadata: the firmware hash and the publisher's digital signature. Firmware hashes prove that an attacker has not maliciously altered the firmware delivery, and digital signatures can prove that updates came from legitimate IoT vendors.

IoT 디바이스 소프트웨어 업데이트 장치(100)는 다중 레이어 블록체인 네트워크를 구현할 수 있다.The IoT device software update device 100 may implement a multi-layer blockchain network.

IoT 디바이스 소프트웨어 업데이트에 관한 데이터는 모두 엄격한 일관성을 필요로 하지는 않는다. IoT 디바이스 소프트웨어 업데이트 장치(100)는, 일부 데이터들이 약한 일관성을 가져도 된다고 가정하여, 이를 기준으로 데이터들을 민감한 데이터와 민감하지 않은 데이터 두 가지 유형으로 구분하여 관리할 수 있다.Not all data on IoT device software updates require strict consistency. The IoT device software update apparatus 100 assumes that some data may have weak consistency, and based on this, the data can be divided into two types, sensitive data and non-sensitive data, and managed.

민감한 데이터는 전체 펌웨어 바이너리의 해시값(루트 해시), IoT 공급업체의 목록(소프트웨어 배포자), 및 IoT 게이트웨이의 목록(소프트웨어 재 배포자) 등이 포함될 수 있다.Sensitive data may include a hash value of the entire firmware binary (root hash), a list of IoT vendors (software distributors), and a list of IoT gateways (software redistributors).

민감한 데이터는 엄격한 일관성 있게 유지되어야 하므로, IoT 디바이스 소프트웨어 업데이트 장치(100)는 민감한 데이터를 합의 메커니즘을 사용해서 관리할 수 있다. 민감한 데이터는 수정 빈도가 낮으므로 PBFT 합의 과정에서 발생하는 낮은 처리량을 견뎌낼 수 있다.Since sensitive data must be maintained with strict consistency, the IoT device software update apparatus 100 can manage sensitive data using a consensus mechanism. Sensitive data is modified less frequently, so it can withstand the low throughput generated by the PBFT consensus process.

민감하지 않은 데이터는, 사용 가능한 펌웨어 목록, IoT 디바이스의 목록, IoT 게이트웨이의 평판 점수 등이 포함될 수 있다.Non-sensitive data may include a list of available firmware, a list of IoT devices, and reputation scores of IoT gateways.

IoT 디바이스 소프트웨어 업데이트 장치(100)는 민감하지 않은 데이터에 대해, 디지털 서명을 사용하는 RAFT와 같은 합의 알고리즘을 통해 완화된 일관성을 사용하여 유지 관리할 수 있다. 민감하지 않는 데이터는 자주 생성되고 변경되므로 최대한 빠르게 처리되어야 한다.The IoT device software update apparatus 100 may maintain non-sensitive data using relaxed consistency through a consensus algorithm such as RAFT using digital signatures. Non-sensitive data is frequently created and changed, so it should be processed as quickly as possible.

IoT 디바이스 소프트웨어 업데이트 장치(100)는 소프트웨어 업데이트 정책을 구현할 수 있다.The IoT device software update apparatus 100 may implement a software update policy.

IoT 디바이스 소프트웨어 업데이트 장치(100)는, IoT 개발자가 IoT 디바이스를 최신 상태로 유지하도록 동기를 부여하기 위해 몇 가지 중요한 규칙을 제안한다.The IoT device software update apparatus 100 proposes several important rules to motivate IoT developers to keep IoT devices up to date.

첫 번째로, IoT 디바이스 소프트웨어 업데이트 장치(100)의 IoT 게이트웨이는 업데이트된 IoT 디바이스의 인바운드/아웃바운드 트래픽만 IoT 도메인을 통과하도록 허용하며, 업데이트 되지 않은 IoT 디바이스의 트래픽은 삭제시킨다. First, the IoT gateway of the IoT device software update device 100 allows only the inbound/outbound traffic of the updated IoT device to pass through the IoT domain, and deletes the traffic of the non-updated IoT device.

두 번째로, IoT 디바이스 소프트웨어 업데이트 장치(100)는 업데이트 되지 않은 구형 IoT 디바이스에 대한 정보를 공개하여, IoT 공급업체가 해당 IoT 디바이스의 데이터를 선호하지 않도록 유도할 수 있다.Second, the IoT device software update apparatus 100 may disclose information about an old IoT device that has not been updated, and induce an IoT supplier not to prefer data of the corresponding IoT device.

마지막으로, IoT 디바이스 소프트웨어 업데이트 장치(100)는 IoT 게이트웨이들이 서로 평판 시스템을 유지하도록 한다. IoT 디바이스 소프트웨어 업데이트 장치(100)는, 최신 버전으로 업데이트된 IoT 디바이스와 많이 연결된 IoT 게이트웨이에게, 더 많은 평판 점수를 부여할 수 있다. 또한, IoT 디바이스 소프트웨어 업데이트 장치(100)는 P2P 소프트웨어 업데이트 제공에 적극적으로 참여하는 게이트웨이에게, 높은 평판 점수를 부여할 수 있다. 따라서, IoT 디바이스 소프트웨어 업데이트 장치(100)는 IoT 공급업체, IoT 게이트웨이, 및 IoT 디바이스가 함께 협력하여, 정기적으로 펌웨어 업데이트를 생성, 배포 및 설치할 때마다 최적의 IoT 도메인 환경을 구현할 수 있다.Finally, the IoT device software update device 100 allows IoT gateways to maintain a reputation system with each other. The IoT device software update apparatus 100 may assign more reputation points to IoT gateways that are connected to a lot of IoT devices that have been updated to the latest version. In addition, the IoT device software update apparatus 100 may assign a high reputation score to a gateway that actively participates in providing P2P software updates. Therefore, the IoT device software update apparatus 100 can implement an optimal IoT domain environment whenever a firmware update is regularly generated, distributed, and installed by cooperation between the IoT supplier, the IoT gateway, and the IoT device.

도 3a 및 도 3b는, 블록체인 P2P 네트워크 기반 IoT 디바이스 소프트웨어 업데이트를 구현하는 동작을 설명하기 위한 도이다.3A and 3B are diagrams for explaining an operation of implementing a blockchain P2P network-based IoT device software update.

도 3a와 도 3b에서 도시한 바와 같이, 공급업체와 게이트웨이는 개인키/공개키 쌍을 가지고 있으며, 블록체인L1과 블록체인L2에 각각 노드를 생성하고 있다.As shown in FIGS. 3A and 3B, the supplier and the gateway have a private key/public key pair, and create nodes in blockchain L1 and blockchain L2, respectively.

공급업체는 업데이트 할 펌웨어 소프트웨어를 Chunk로 분할할 수 있다. 이때의 수식은 을 만족할 수 있다.Vendors can split the firmware software to be updated into chunks. The formula at this time is can be satisfied.

공급업체는 분할한 Chunk를 중앙서버로 업로드 할 수 있다.Suppliers can upload the divided chunks to the central server.

공급업체는 분할한 Chunk 각각을 해시할 수 있다. 이때의 수식은 를 만족할 수 있다.Vendors can hash each of the chunks they split. The formula at this time is can be satisfied.

공급업체는, 이진 루트를 생성할 수 있다. 이때의 수식은 , 를 만족할 수 있다.Vendors can create binary routes. The formula at this time is , can be satisfied.

여기서, 해시 알고리즘은 SHA2, SHA3 등을 사용할 수 있다.Here, the hash algorithm may use SHA2, SHA3, or the like.

공급업체는, Chunk 해시값과 이진 루트값 을 공급업체의 개인키 로 서명할 수 있다. 이때의 수식은, 를 만족할 수 있다.Supplier, Chunk hash value and the binary root the vendor's private key can be signed with The formula at this time is can be satisfied.

공급업체는 펌웨어 버전 , chunk 수 t, Chunk 해시값 과 이진 루트값 , 서명값 을 블록체인 L1에 업로드할 수 있다.Vendor firmware version , chunk number t, chunk hash value and the binary root , signature value can be uploaded to blockchain L1.

블록체인 L1에서는 받은 값들을 검증할 수 있다.In blockchain L1, received values can be verified.

블록체인 L1은 버전을 확인할 수 있다. 이때의 수식은 를 만족할 수 있다.Blockchain L1 can check the version. The formula at this time is can be satisfied.

블록체인 L1은, 공급업체의 공개키로 서명을 검증할 수 있다. 이때의 수식은 을 만족할 수 있다.Blockchain L1 can verify the signature with the supplier's public key. The formula at this time is can be satisfied.

블록체인 L1은, 이진 루트값을 검증할 수 있다. 이때의 수식은, 을 만족할 수 있다.Blockchain L1 can verify the binary root value. The formula at this time is can be satisfied.

검증이 완료되면, 블록체인 L1은, 펌웨어 버전 , chunk 수 t를 공급업체 키로 블록체인 L2에 업로드할 수 있다.When verification is complete, blockchain L1 is the firmware version , the number of chunks t It can be uploaded to blockchain L2 as a key.

각각의 게이트웨이들은 주기적으로 블록체인 L2의 펌웨어 리스트를 확인하고, 블록체인 L2에 , 공급업체 id로 요청하고, 응답으로 현재 펌웨어 버전 , chunk 수 t를 받을 수 있다.Each gateway periodically checks the firmware list of blockchain L2, and , request with vendor id, and response with current firmware version , can receive the number of chunks t.

각각의 게이트웨이들은 응답으로 온 현재 펌웨어 버전을, 게이트웨이에 설치되어 있는 펌웨어와 비교할 수 있다. 이때의 수식은 를 만족할 수 있다.Each gateway can compare the current firmware version received in response with the firmware installed in the gateway. The formula at this time is can be satisfied.

버전이 다를 경우, 게이트웨이는 공급업체의 중앙서버로 접속해 chunk1을 받아올 수 있다. 이때의 수식은, 을 만족할 수 있다.If the version is different, the gateway can connect to the supplier's central server and retrieve chunk1. The formula at this time is can be satisfied.

게이트웨이는, 받아온 chunk의 이진 해시를 생성할 수 있다. 이때의 수식은 을 만족할 수 있다.The gateway can generate a binary hash of the received chunk. The formula at this time is can be satisfied.

게이트웨이는 생성한 해시값의 검증을 블록체인 L1에 요청할 수 있다. 이때의 수식은 을 만족할 수 있다.The gateway can request verification of the generated hash value to the blockchain L1. The formula at this time is can be satisfied.

블록체인L1은 요청받은 해시값을 해시 path와 같이 검증할 수 있다. 이때의 수식은 를 만족할 수 있다.Blockchain L1 can verify the requested hash value as well as the hash path. The formula at this time is can be satisfied.

블록체인L1은 검증 결과를 블록체인 L2와 게이트웨이에 전달할 수 있다. 이때의 수식은 를 만족할 수 있다.Blockchain L1 can deliver verification results to blockchain L2 and the gateway. The formula at this time is can be satisfied.

통과가 되면, 게이트웨이는 chunk를 chunk의 해시값과, 자신의 서명을 같이 전달할 수 있다. 이때의 수식은, 을 만족할 수 있다.If passed, the gateway can deliver the chunk along with the hash value of the chunk and its own signature. The formula at this time is can be satisfied.

Chunk를 전달받은 게이트웨이는 블록체인 L2를 통해 전달받은 값들을 검증할 수 있다. 이때의 수식은, 를 만족할 수 있다.The gateway that received the Chunk can verify the values delivered through the blockchain L2. The formula at this time is can be satisfied.

블록체인 L2는 검증과정을 수행할 수 있다.Blockchain L2 can perform a verification process.

검증과정에 있어 블록체인 L2는 전달받은 , , 해시 값이 존재하는지 확인할 수 있다.In the verification process, blockchain L2 , , You can check if the hash value exists.

또한, 검증과정에 있어 블록체인 L2는 전달한 게이트웨이의 서명을 검증할 수 있다. 이때의 수식은, 를 만족할 수 있다.In addition, in the verification process, blockchain L2 can verify the signature of the gateway that has been delivered. The formula at this time is can be satisfied.

검증과정에 있어, 블록체인 L2는 서명된 값과 chunk, hash 값이 같은지 확인할 수 있다. 이때의 수식은, 을 만족할 수 있다.In the verification process, blockchain L2 can check whether the signed value and the chunk and hash values are the same. The formula at this time is can be satisfied.

블록체인 L2는 결과값으로 {0,1,2}를 반환할 수 있다. 이때, 0은 실패, 1은 성공, 2는 값 없음으로 정의할 수 있다.Blockchain L2 can return {0,1,2} as a result value. At this time, 0 can be defined as failure, 1 as success, and 2 as no value.

게이트웨이는, 블록체인 L2로부터 결과값을 받고, 평판 점수를 검증할 수 있다.The gateway can receive the result value from the blockchain L2 and verify the reputation score.

게이트웨이는, 서명을 검증할 수 있다. 이때의 수식은, 을 만족할 수 있다.The gateway can verify the signature. The formula at this time is can be satisfied.

게이트웨이는, 등록을 확인할 수 있다. 이때의 수식은 을 만족할 수 있다.The gateway can confirm registration. The formula at this time is can be satisfied.

게이트웨이는, 결과를 확인할 수 있다. 이때의 수식은, 을 만족할 수 있다.The gateway can check the result. The formula at this time is can be satisfied.

모두 통과 완료되면, 게이트웨이는, 평판점수를 올리고, 중간에 하나라고 탈락시 평판을 낮출 수 있다.When all passes are completed, the gateway raises the reputation score, and can lower the reputation if one is eliminated in the middle.

이후, 게이트웨이는, 검증 결과에 대해서 각각의 게이트웨이에 전달할 수 있다.Thereafter, the gateway may transmit the verification result to each gateway.

이하, 표 1에서 본 발명에서 사용되는 수식 및 수식에 대한 설명을 정리한다.Hereinafter, in Table 1, formulas and formulas used in the present invention are summarized.

이하, 도 4에서는 본 발명의 실시예들에 따른 블록체인 P2P 네트워크 기반 IoT 디바이스 소프트웨어 업데이트 장치(100)의 구현 흐름을 상세히 설명한다.Hereinafter, in FIG. 4, the implementation flow of the IoT device software update apparatus 100 based on a blockchain P2P network according to embodiments of the present invention will be described in detail.

도 4는 본 발명의 일실시예에 따른, 블록체인 P2P 네트워크 기반 IoT 디바이스 소프트웨어 업데이트 방법을 도시한 흐름도이다.4 is a flowchart illustrating a method for updating IoT device software based on a blockchain P2P network according to an embodiment of the present invention.

본 실시예에 따른 블록체인 P2P 네트워크 기반 IoT 디바이스 소프트웨어 업데이트 방법은 IoT 디바이스 소프트웨어 업데이트 장치(100)에 의해 수행될 수 있다.The blockchain P2P network-based IoT device software update method according to the present embodiment may be performed by the IoT device software update apparatus 100 .

우선, IoT 디바이스 소프트웨어 업데이트 장치(100)의 IoT 게이트웨이에서, IoT 공급업체가, 중앙 서버에 펌웨어 바이너리를 업로드 함에 따라, 블록체인을 통해 상기 중앙 서버로부터 상기 펌웨어 바이너리와 관련한 검증 데이터를 다운로드하고, 상기 검증 데이터를, 상기 IoT 공급업체를 통해 검증한다(410). 단계(410)은 IoT 게이트웨이에서, 업데이트 용도의 펌웨어 바이너리가, 중앙 서버에 등록됨에 따라, 상기 펌웨어 바이너리를 증명할 수 있는 검증 데이터를 다운로드 받고, 다운로드 된 검증 데이터에 유효성이 있는지를 검증하는 과정일 수 있다.First, in the IoT gateway of the IoT device software update device 100, as the IoT supplier uploads the firmware binary to the central server, the verification data related to the firmware binary is downloaded from the central server through the blockchain, and the Verification data is verified through the IoT supplier (410). Step 410 may be a process of downloading verification data that can prove the firmware binary as the firmware binary for update is registered in the central server in the IoT gateway, and verifying whether the downloaded verification data is valid. there is.

상기 검증 데이터는, 예컨대 펌웨어 바이너리의 버전 정보, 서명 정보, 해시 정보 등을 포함할 수 있다.The verification data may include, for example, firmware binary version information, signature information, and hash information.

IoT 공급업체는 해시와 서명을 통해, 암호화하여 상기 펌웨어 바이너리를 중앙 서버에 업로드 할 수 있다. 예컨대, IoT 공급업체는, 펌웨어 해시와, 게시자의 디지털 서명의 두 가지 메타데이터를 이용하여, 펌웨어 바이너리를 암호화 할 수 있다.The IoT vendor can encrypt and upload the firmware binary to a central server through hash and signature. For example, an IoT vendor can encrypt a firmware binary using two pieces of metadata: a firmware hash and a publisher's digital signature.

IoT 게이트웨이는, 평판으로서, 상기 IoT 공급업체에 의한 검증에 따른 평판 점수를 획득할 수 있다. 상기 평판은 펌웨어 바이너리를, 추후 다른 IoT 게이트웨이나 IoT 디바이스로 배포하는 IoT 게이트웨이에 대해, IoT 공급업체가 평가한 신뢰 정도일 수 있다.As a reputation, the IoT gateway may acquire a reputation score according to verification by the IoT supplier. The reputation may be the degree of trust evaluated by the IoT supplier for the IoT gateway that distributes the firmware binary to other IoT gateways or IoT devices later.

평판 점수의 획득에 있어, IoT 게이트웨이는, 연결된 IoT 디바이스 중에서, 상기 IoT 공급업체에 의해 업로드 된 펌웨어 바이너리와 연관되어 최신 버전으로 업데이트된 IoT 디바이스의 개수를 카운트하고, 카운트된 개수에 비례하여 높아지는 평판 점수를 획득할 수 있다.In obtaining the reputation score, the IoT gateway counts the number of IoT devices updated to the latest version in association with the firmware binary uploaded by the IoT supplier, among the connected IoT devices, and the reputation that increases in proportion to the counted number points can be earned.

예컨대, 10개의 IoT 디바이스와 연결되는 IoT 게이트웨이는, 상기 10개의 IoT 디바이스 중, 업로드 된 펌웨어 바이너리와 연관되어 최신 버전으로 업데이트된 IoT 디바이스가 많이 카운트 됨에 따라, 비례적으로 높은 평판 점수를 획득할 수 있다.For example, an IoT gateway connected to 10 IoT devices can acquire a proportionally high reputation score as the number of IoT devices updated to the latest version in association with the uploaded firmware binary among the 10 IoT devices is counted. there is.

또는, IoT 게이트웨이는, 연결된 모든 IoT 디바이스 모두가, 상기 IoT 공급업체에 의해 업로드 된 펌웨어 바이너리와 연관되어 최신 버전으로 업데이트 됨에 따라, 다른 IoT 게이트웨이에 비해 상대적으로 높은 평판 점수를 획득할 수 있다.Alternatively, the IoT gateway may acquire a relatively high reputation score compared to other IoT gateways as all connected IoT devices are updated to the latest version in association with the firmware binary uploaded by the IoT supplier.

예컨대, 연결된 10개의 IoT 디바이스 모두가, 업로드 된 펌웨어 바이너리와 연관되어 최신 버전으로 업데이트 되는 게이트웨이는, 규정된 최고 점수의 평판 점수를 획득할 수 있다.For example, a gateway in which all 10 connected IoT devices are updated to the latest version in association with the uploaded firmware binary may obtain a prescribed highest reputation score.

또한, IoT 게이트웨이는, 상기 평판 점수가 기재된 펌웨어 바이너리를 P2P 방식으로, 블록체인 내 다른 IoT 게이트웨이로 배포 할 수 있다. 즉, IoT 게이트웨이는, 자신이 획득한 평판 점수가 기재된 펌웨어 바이너리를 블록체인 내 다른 IoT 게이트웨이로 전달하여, 펌웨어 바이너리가 확산되어 배포되도록 할 수 있다.In addition, the IoT gateway may distribute the firmware binary with the reputation score to other IoT gateways in the blockchain in a P2P manner. That is, the IoT gateway can deliver the firmware binary with the reputation score it has acquired to other IoT gateways in the blockchain so that the firmware binary can be spread and distributed.

IoT 디바이스 소프트웨어 업데이트 장치(100)의 IoT 디바이스에서, 상기 검증에 따른 평판을 참조하여, 상기 펌웨어 바이너리 중에서, 필요한 특정의 펌웨어를 선택하여, 상기 중앙 서버로부터 상기 IoT 게이트웨이를 경유하여 제공받는다(420). 단계(420)은 IoT 디바이스에서, IoT 게이트웨이가 획득한 평판 점수를 보고 펌웨어 바이너리의 신뢰성을 확인한 후, 자신에게 필요한 특정의 펌웨어를, 상기 중앙 서버에서 선별적으로 IoT 게이트웨이를 통해 다운로드하는 역할을 할 수 있다.In the IoT device of the IoT device software update device 100, with reference to the reputation according to the verification, a necessary specific firmware is selected from among the firmware binaries and provided from the central server via the IoT gateway (420). . Step 420 serves to selectively download specific firmware necessary for the IoT device through the IoT gateway from the central server after checking the reliability of the firmware binary by looking at the reputation score obtained by the IoT gateway. can

여기서, IoT 게이트웨이는, 상기 IoT 디바이스에 의해 선택된 펌웨어를, 청크 데이터(chunk data) 단위로, 상기 IoT 디바이스에 제공할 수 있다.Here, the IoT gateway may provide the firmware selected by the IoT device to the IoT device in units of chunk data.

이에 따라, IoT 게이트웨이는, 예컨대 네트워크 장애가 발생하는 경우, 관련된 청크 단위의 펌웨어 바이너리 만을 다시 다운로드하여 배포 함으로써, IoT 디바이스가 전체 펌웨어 바이너리를 재다운로드하는 불필요한 과정을 최소화 할 수 있다.Accordingly, when a network failure occurs, for example, the IoT gateway re-downloads and distributes only firmware binaries in related chunk units, thereby minimizing an unnecessary process in which the IoT device re-downloads the entire firmware binaries.

실시예에 따라, IoT 디바이스 소프트웨어 업데이트 장치(100)는 업데이트 관련한 데이터를 민감도에 따라 구분 함으로써, 다중 레이어 블록체인 네트워크를 구현할 수 있다.According to an embodiment, the IoT device software update apparatus 100 may implement a multi-layer blockchain network by classifying update-related data according to sensitivity.

이를 위해, IoT 디바이스 소프트웨어 업데이트 장치(100)의 관리부에서, 상기 펌웨어 바이너리를 포함하여 상기 중앙 서버에 업로드되는 데이터 각각을, 민감한 데이터 또는 민감하지 않는 데이터로 구분하고, 상기 민감한 데이터를 PBFT 합의 알고리즘을 사용하여 관리하고, 상기 민감하지 않은 데이터를 RAFT 합의 알고리즘을 사용하여 관리할 수 있다.To this end, in the management unit of the IoT device software update apparatus 100, each of the data uploaded to the central server, including the firmware binary, is classified as sensitive data or non-sensitive data, and the sensitive data is subjected to a PBFT consensus algorithm. and manage the non-sensitive data using the RAFT consensus algorithm.

즉, 관리부는 일관성을 엄격하게 유지해야 하는지에 따라, IoT 디바이스 소프트웨어 업데이트에 관한 데이터를, 민감한 데이터와 민감하지 않은 데이터로 구분할 수 있다.That is, the management unit may classify data related to IoT device software updates into sensitive data and non-sensitive data, depending on whether consistency should be strictly maintained.

관리부는 엄격한 일관성이 유지되어야 하는, 예컨대 펌웨어 바이너리의 해시값(루트 해시), IoT 공급업체(105)의 목록(소프트웨어 배포자), 및 IoT 게이트웨이(110)의 목록(소프트웨어 재 배포자) 등을 민감한 데이터로 구분하여, PBFT 합의 알고리즘을 사용하여 관리할 수 있다.The management unit stores sensitive data such as the hash value of the firmware binary (root hash), the list of IoT vendors 105 (software distributors), and the list of IoT gateways 110 (software redistributors) that must be strictly consistent. , and can be managed using the PBFT consensus algorithm.

PBFT(Practical Byzantine Fault Tolerance) 합의 알고리즘은 Safety를 확보하고 Liveness를 일부 희생하면서, 비동기 네트워크에서도 합의를 이룰 수 있는 알고리즘을 지칭할 수 있다. PBFT 합의 알고리즘은 네트워크에 배신자 노드가 어느 정도 있다고 해도 네트워크 내에서 이루어지는 합의의 신뢰를 보장하는 알고리즘일 수 있다.PBFT (Practical Byzantine Fault Tolerance) consensus algorithm can refer to an algorithm that can achieve consensus even in an asynchronous network while securing safety and sacrificing some liveness. The PBFT consensus algorithm may be an algorithm that guarantees the reliability of consensus within the network even if there are some renegade nodes in the network.

또한, 관리부는 약한 일관성을 유지해도 되는, 예컨대 사용 가능한 펌웨어 목록, IoT 디바이스의 목록, IoT 게이트웨이의 평판 점수 등을, 민감하지 않은 데이터로 구분하여, RAFT 합의 알고리즘을 사용하여 관리할 수 있다.In addition, the management unit may classify a list of available firmware, a list of IoT devices, a reputation score of an IoT gateway, etc., which may maintain weak consistency, as non-sensitive data and manage them using a RAFT consensus algorithm.

RAFT(Reliable, Replicated, Redundant and Fault-Tolerant) 합의 알고리즘은, 분산환경에서 중앙에서 관리하여 합의를 이룰 수 있도록 하는 알고리즘을 지칭할 수 있다. RAFT 합의 알고리즘은 팩소스의 대안으로 설계된 합의 알고리즘으로, 로직의 분해를 통해 팩소스보다 이해하기 쉽게 되어 있으며 또한 안전한 알고리즘일 수 있다.A RAFT (Reliable, Replicated, Redundant and Fault-Tolerant) consensus algorithm may refer to an algorithm that enables consensus to be achieved by centrally managing in a distributed environment. The RAFT consensus algorithm is a consensus algorithm designed as an alternative to Paxos, and is easier to understand than Paxos through decomposition of logic and can also be a safer algorithm.

본 발명의 일실시예에 따르면, IoT 디바이스 소프트웨어 업데이트를 중앙 집중식으로 관리하지 않고, P2P 형태로 관리할 수 있도록 하며, 인센티브 정책을 통해 최적의 IoT 도메인 환경을 구현할 수 있다.According to an embodiment of the present invention, IoT device software updates can be managed in a P2P form without centralized management, and an optimal IoT domain environment can be implemented through an incentive policy.

또한, 본 발명에 의해서는, 소프트웨어 업데이트에 필요한 데이터를 민감한 데이터와, 민감하지 않은 데이터로 나누어, 합의 알고리즘의 분리와 온체인/오프체인으로의 분리 관리로 블록체인의 성능을 향상시킬 수 있다.In addition, according to the present invention, the performance of the blockchain can be improved by dividing the data necessary for software update into sensitive data and non-sensitive data, separating the consensus algorithm and managing the on-chain/off-chain separation.

실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 실시예의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.The method according to the embodiment may be implemented in the form of program instructions that can be executed through various computer means and recorded on a computer readable medium. The computer readable medium may include program instructions, data files, data structures, etc. alone or in combination. Program commands recorded on the medium may be specially designed and configured for the embodiment or may be known and usable to those skilled in computer software. Examples of computer-readable recording media include magnetic media such as hard disks, floppy disks and magnetic tapes, optical media such as CD-ROMs and DVDs, and magnetic media such as floptical disks. - includes hardware devices specially configured to store and execute program instructions, such as magneto-optical media, and ROM, RAM, flash memory, and the like. Examples of program instructions include high-level language codes that can be executed by a computer using an interpreter, as well as machine language codes such as those produced by a compiler. The hardware devices described above may be configured to operate as one or more software modules to perform the operations of the embodiments, and vice versa.

소프트웨어는 컴퓨터 프로그램(computer program), 코드(code), 명령(instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로(collectively) 처리 장치를 명령할 수 있다. 소프트웨어 및/또는 데이터는, 처리 장치에 의하여 해석되거나 처리 장치에 명령 또는 데이터를 제공하기 위하여, 어떤 유형의 기계, 구성요소(component), 물리적 장치, 가상 장치(virtual equipment), 컴퓨터 저장 매체 또는 장치, 또는 전송되는 신호 파(signal wave)에 영구적으로, 또는 일시적으로 구체화(embody)될 수 있다. 소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 하나 이상의 컴퓨터 판독 가능 기록 매체에 저장될 수 있다.Software may include a computer program, code, instructions, or a combination of one or more of the foregoing, which configures a processing device to operate as desired or processes independently or collectively. You can command the device. Software and/or data may be any tangible machine, component, physical device, virtual equipment, computer storage medium or device, intended to be interpreted by or provide instructions or data to a processing device. , or may be permanently or temporarily embodied in a transmitted signal wave. The software may be distributed on networked computer systems and stored or executed in a distributed manner. Software and data may be stored on one or more computer readable media.

이상과 같이 실시예들이 비록 한정된 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기를 기초로 다양한 기술적 수정 및 변형을 적용할 수 있다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.As described above, although the embodiments have been described with limited drawings, those skilled in the art can apply various technical modifications and variations based on the above. For example, the described techniques may be performed in an order different from the method described, and/or components of the described system, structure, device, circuit, etc. may be combined or combined in a different form than the method described, or other components may be used. Or even if it is replaced or substituted by equivalents, appropriate results can be achieved.

그러므로, 다른 구현들, 다른 실시예들 및 특허청구범위와 균등한 것들도 후술하는 청구범위의 범위에 속한다.Therefore, other implementations, other embodiments, and equivalents of the claims are within the scope of the following claims.

100 : 블록체인 P2P 네트워크 기반 IoT 디바이스 소프트웨어 업데이트 장치
105 : IoT 공급업체 110 : IoT 게이트웨이
120 : IoT 디바이스 130 : 관리부
100: IoT device software update device based on blockchain P2P network
105: IoT supplier 110: IoT gateway
120: IoT device 130: management unit

Claims (10)

IoT 공급업체가, 중앙 서버에 펌웨어 바이너리를 업로드 함에 따라,
IoT 게이트웨이에서, 블록체인을 통해, 상기 중앙 서버로부터 상기 펌웨어 바이너리와 관련한 검증 데이터를 다운로드하고, 상기 검증 데이터를, 상기 블록체인을 통해 검증하는 단계;
IoT 디바이스에서, 상기 검증에 따른 평판을 참조하여, 상기 펌웨어 바이너리 중에서, 필요한 특정의 펌웨어를 선택하여, 상기 중앙 서버로부터 상기 IoT 게이트웨이를 경유하여 제공받는 단계;
상기 IoT 게이트웨이에서, 상기 평판으로서, 상기 블록체인에 의한 검증에 따른 평판 점수를 획득하는 단계; 및
상기 IoT 게이트웨이에서, 상기 평판 점수가 기재된 펌웨어 바이너리를 P2P 방식으로, 블록체인 내 다른 IoT 게이트웨이로 배포하는 단계
를 포함하는, 블록체인 P2P 네트워크 기반 IoT 디바이스 소프트웨어 업데이트 방법.
As IoT vendors upload firmware binaries to a central server,
In an IoT gateway, downloading verification data related to the firmware binary from the central server through a blockchain, and verifying the verification data through the blockchain;
In the IoT device, selecting a necessary specific firmware from among the firmware binaries with reference to the reputation according to the verification, and receiving the provided firmware from the central server via the IoT gateway;
obtaining, as the reputation, a reputation score according to verification by the blockchain in the IoT gateway; and
In the IoT gateway, distributing the firmware binary with the reputation score to other IoT gateways in the blockchain in a P2P manner.
Including, blockchain P2P network-based IoT device software update method.
삭제delete 제1항에 있어서,
상기 IoT 게이트웨이에서, 연결된 IoT 디바이스 중에서, 상기 IoT 공급업체에 의해 업로드 된 펌웨어 바이너리와 연관되어 최신 버전으로 업데이트된 IoT 디바이스의 개수를 카운트하고, 카운트 된 개수에 비례하여 높아지는 평판 점수를 획득하는 단계; 또는
상기 IoT 게이트웨이에서, 연결된 모든 IoT 디바이스 모두가, 상기 IoT 공급업체에 의해 업로드 된 펌웨어 바이너리와 연관되어 최신 버전으로 업데이트 됨에 따라, 다른 IoT 게이트웨이에 비해 상대적으로 높은 평판 점수를 획득하는 단계
를 더 포함하는, 블록체인 P2P 네트워크 기반 IoT 디바이스 소프트웨어 업데이트 방법.
According to claim 1,
In the IoT gateway, counting the number of IoT devices updated to the latest version in association with the firmware binary uploaded by the IoT supplier, among connected IoT devices, and obtaining a reputation score that increases in proportion to the counted number; or
In the IoT gateway, acquiring a relatively high reputation score compared to other IoT gateways as all connected IoT devices are updated to the latest version in association with the firmware binary uploaded by the IoT supplier.
Further comprising, a blockchain P2P network-based IoT device software update method.
제1항에 있어서,
상기 IoT 게이트웨이에서, 상기 IoT 디바이스에 의해 선택된 펌웨어를, 청크 데이터(chunk data) 단위로, 상기 IoT 디바이스에 제공하는 단계
를 더 포함하는, 블록체인 P2P 네트워크 기반 IoT 디바이스 소프트웨어 업데이트 방법.
According to claim 1,
Providing, at the IoT gateway, the firmware selected by the IoT device to the IoT device in units of chunk data.
Further comprising, a blockchain P2P network-based IoT device software update method.
제1항에 있어서,
관리부에서, 상기 펌웨어 바이너리를 포함하여 상기 중앙 서버에 업로드되는 데이터 각각을, 민감한 데이터 또는 민감하지 않는 데이터로 구분하는 단계; 및
상기 관리부에서, 상기 민감한 데이터를 PBFT 합의 알고리즘을 사용하여 관리하고, 상기 민감하지 않은 데이터를 RAFT 합의 알고리즘을 사용하여 관리하는 단계
를 더 포함하는, 블록체인 P2P 네트워크 기반 IoT 디바이스 소프트웨어 업데이트 방법.
According to claim 1,
Classifying, by a management unit, data uploaded to the central server, including the firmware binary, into sensitive data or non-sensitive data; and
In the management unit, managing the sensitive data using a PBFT consensus algorithm and managing the non-sensitive data using a RAFT consensus algorithm.
Further comprising, a blockchain P2P network-based IoT device software update method.
IoT 공급업체가, 중앙 서버에 펌웨어 바이너리를 업로드 함에 따라,
블록체인을 통해, 상기 중앙 서버로부터 상기 펌웨어 바이너리와 관련한 검증 데이터를 다운로드하고, 상기 검증 데이터를, 상기 블록체인을 통해 검증하는 IoT 게이트웨이; 및
상기 검증에 따른 평판을 참조하여, 상기 펌웨어 바이너리 중에서, 필요한 특정의 펌웨어를 선택하여, 상기 중앙 서버로부터 상기 IoT 게이트웨이를 경유하여 제공받는 IoT 디바이스
를 포함하고,
상기 IoT 게이트웨이는,
상기 평판으로서, 상기 블록체인에 의한 검증에 따른 평판 점수를 획득하고,
상기 평판 점수가 기재된 펌웨어 바이너리를 P2P 방식으로, 블록체인 내 다른 IoT 게이트웨이로 배포하는,
블록체인 P2P 네트워크 기반 IoT 디바이스 소프트웨어 업데이트 장치.
As IoT vendors upload firmware binaries to a central server,
An IoT gateway that downloads verification data related to the firmware binary from the central server through the blockchain and verifies the verification data through the blockchain; and
With reference to the reputation according to the verification, the IoT device that is provided from the central server via the IoT gateway by selecting a specific required firmware from among the firmware binaries.
including,
The IoT gateway,
As the reputation, obtaining a reputation score according to verification by the blockchain,
Distributing the firmware binary with the reputation score to other IoT gateways in the blockchain in a P2P manner,
Blockchain P2P network-based IoT device software update device.
삭제delete 제6항에 있어서,
상기 IoT 게이트웨이는,
연결된 IoT 디바이스 중에서, 상기 IoT 공급업체에 의해 업로드 된 펌웨어 바이너리와 연관되어 최신 버전으로 업데이트된 IoT 디바이스의 개수를 카운트하고, 카운트된 개수에 비례하여 높아지는 평판 점수를 획득하거나, 또는
연결된 모든 IoT 디바이스 모두가, 상기 IoT 공급업체에 의해 업로드 된 펌웨어 바이너리와 연관되어 최신 버전으로 업데이트 됨에 따라, 다른 IoT 게이트웨이에 비해 상대적으로 높은 평판 점수를 획득하는
블록체인 P2P 네트워크 기반 IoT 디바이스 소프트웨어 업데이트 장치.
According to claim 6,
The IoT gateway,
Among the connected IoT devices, count the number of IoT devices updated to the latest version in association with the firmware binary uploaded by the IoT supplier, and obtain a reputation score that increases in proportion to the counted number, or
Acquiring a relatively high reputation score compared to other IoT gateways as all connected IoT devices are updated to the latest version in association with the firmware binary uploaded by the IoT vendor
Blockchain P2P network-based IoT device software update device.
제6항에 있어서,
상기 IoT 게이트웨이는,
상기 IoT 디바이스에 의해 선택된 펌웨어를, 청크 데이터(chunk data) 단위로, 상기 IoT 디바이스에 제공하는
블록체인 P2P 네트워크 기반 IoT 디바이스 소프트웨어 업데이트 장치.
According to claim 6,
The IoT gateway,
Providing firmware selected by the IoT device to the IoT device in units of chunk data
Blockchain P2P network-based IoT device software update device.
제6항에 있어서,
상기 펌웨어 바이너리를 포함하여 상기 중앙 서버에 업로드되는 데이터 각각을, 민감한 데이터 또는 민감하지 않는 데이터로 구분하고, 상기 민감한 데이터를 PBFT 합의 알고리즘을 사용하여 관리하고, 상기 민감하지 않은 데이터를 RAFT 합의 알고리즘을 사용하여 관리하는 관리부
를 더 포함하는, 블록체인 P2P 네트워크 기반 IoT 디바이스 소프트웨어 업데이트 장치.
According to claim 6,
Classify each data uploaded to the central server, including the firmware binary, into sensitive data or non-sensitive data, manage the sensitive data using the PBFT consensus algorithm, and use the RAFT consensus algorithm to manage the non-sensitive data management department that uses and manages
Further comprising, blockchain P2P network-based IoT device software update apparatus.
KR1020220177344A 2022-12-16 2022-12-16 Method and device for updating iot device software based by blockchain p2p network KR102567514B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020220177344A KR102567514B1 (en) 2022-12-16 2022-12-16 Method and device for updating iot device software based by blockchain p2p network

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020220177344A KR102567514B1 (en) 2022-12-16 2022-12-16 Method and device for updating iot device software based by blockchain p2p network

Publications (1)

Publication Number Publication Date
KR102567514B1 true KR102567514B1 (en) 2023-08-23

Family

ID=87848781

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020220177344A KR102567514B1 (en) 2022-12-16 2022-12-16 Method and device for updating iot device software based by blockchain p2p network

Country Status (1)

Country Link
KR (1) KR102567514B1 (en)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20220142086A (en) * 2021-04-14 2022-10-21 최현수 BLOCKCHAIN-BASED IoT DEVICE FIRMWARE SUPPLY SYSTEM AND FIRMWARE UPDATE METHOD USING THE SAME

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20220142086A (en) * 2021-04-14 2022-10-21 최현수 BLOCKCHAIN-BASED IoT DEVICE FIRMWARE SUPPLY SYSTEM AND FIRMWARE UPDATE METHOD USING THE SAME

Similar Documents

Publication Publication Date Title
US11914712B1 (en) Blockchain based secure naming and update verification
US11533321B2 (en) Secure decentralized file sharing systems and methods
US11144651B2 (en) Secure cloud-based storage of data shared across file system objects and clients
JP6980769B2 (en) Methods, equipment and computer programs for using distributed ledgers for data processing
US10523526B2 (en) System and method for managing services and licenses using a blockchain network
US11044340B2 (en) Security for a software container
AU2020260153B2 (en) Version history management using a blockchain
CN103098070B (en) For the methods, devices and systems of Data Position in monitoring network service
US10277608B2 (en) System and method for verification lineage tracking of data sets
US10659473B2 (en) Method and apparatus for blockchain powered integrity protection system
CN113767385A (en) System and method for commercializing data in decentralized model building for machine learning using blockchains
Ali et al. Blockstack: A new decentralized internet
JP2022541048A (en) Security layer for configuring blockchain
US20210374112A1 (en) Migration support system, migration support method, and node
CN112131041A (en) Method, apparatus and computer program product for managing data placement
KR102567514B1 (en) Method and device for updating iot device software based by blockchain p2p network
JP2023525576A (en) Scope of control of authentication keys for software updates
Ali et al. Blockstack technical whitepaper
WO2024001304A1 (en) Data processing method and related device
WO2023004807A1 (en) Knowledge management system, method and apparatus, electronic device, and storage medium
US10992748B1 (en) Verification of event-based synchronization
KR102549300B1 (en) File verification system and file verification method
Brown et al. SPAM: A secure package manager
JP7424490B2 (en) Registrant terminal, verifier terminal, management system and program
CN117376364A (en) Data processing method and related equipment

Legal Events

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