Method and apparatus for enabling a decentralized blockchain for multiple constrained IoT devices

By creating virtual resource pools and virtual nodes in the blockchain, the problem of unbalanced resources of IoT devices in the existing technology is solved, and efficient utilization of resources and the true decentralization of blockchain are achieved.

CN119790628APending Publication Date: 2025-04-08SAMSUNG ELECTRONICS CO LTD
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202380062276.X
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Priority Date
2022-09-29
Filing Date
2023-05-03
Publication Date
2025-04-08

AI Technical Summary

Technical Problem

The existing blockchain-based IoT system cannot effectively utilize multiple resources that constrain IoT devices, resulting in the inability to achieve true decentralization of the blockchain, and the IoT devices are unbalanced in terms of resources and cannot use resources together to achieve blockchain maintenance.

Method used

By collecting resources of multiple constrained IoT devices connected in the blockchain, creating a virtual resource pool, and creating multiple virtual nodes corresponding to these IoT devices, the virtual resource pool can be accessed by the virtual nodes to realize pooling and allocation of resources to support the decentralized operation of the blockchain.

Benefits of technology

The resource pooling of multiple constrained IoT devices is realized, which enhances the decentralization of blockchain, improves the resource utilization rate of IoT devices, and ensures the security and efficiency of blockchain.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119790628A_ABST
    Figure CN119790628A_ABST
Patent Text Reader

Abstract

The present disclosure discloses a method and system for enabling a decentralized blockchain of multiple constrained Internet of Things (IoT) devices. The method includes: creating a virtual resource pool by collecting resources of the multiple constrained IoT devices connected in the blockchain, creating multiple virtual nodes corresponding to the multiple constrained IoT devices, wherein the virtual resource pool is accessible by the multiple virtual nodes, receiving at least one request to be executed by at least one constrained IoT device, assigning the at least one request to at least one of the multiple virtual nodes, allocating at least a portion of the resources from the virtual resource pool to the at least one virtual node, and executing the at least one request at the at least one virtual node.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present disclosure generally relates to a method and system for enabling a decentralized blockchain for multiple constrained Internet of Things (IoT) devices. Background Art

[0002] An Internet of Things (IoT) network may refer to, for example, a network that includes various types of devices (such as, for example, washing machines, refrigerators, sensors, mobile devices, smart hubs, etc.) that interact together to provide a holistic experience to the user. Different IoT devices have different capabilities. Some IoT devices have large storage spaces but do not have good processing capabilities. Some IoT devices have good processing capabilities but do not have local memory. Similarly, some IoTs have 5G capabilities, while some IoT devices do not have these 5G capabilities. For example, smart watches, smart TVs, and refrigerators have more storage space but less processing capabilities, while voice assistants have more processing capabilities but less storage space. Therefore, IoT devices have different storage, computing, and communication capabilities, and most of them do not have all of these capabilities, which is why they are called constrained IoT devices.

[0003] Conventionally, IoT devices can be part of a blockchain (BC). Blockchain includes various nodes such as IoT devices. Blockchain provides a decentralized system and a distributed ledger, where transactions between nodes are verified by multiple nodes and recorded across a network of nodes, and are not managed by a central authority. Existing blockchain-based IoT systems do not treat all IoT devices as similar to each other. There is always a high-configuration server (which stores the complete blockchain) working as a master node / hub, and IoT devices work as slave nodes in the network, such as Figure 1 As shown. Therefore, for each operation, the IoT device must first communicate with a high-configuration server. As the number of devices increases, the privacy and security of user data and devices are major concerns. For example, the hub / master node is a single point of failure (SPOF). In addition, IoT devices are growing exponentially, which leads to an increase in the attack surface of the blockchain. In addition, running security programs on many IoT devices leads to limited computing resources of the IoT devices. For example, there are 5 devices in the IoT network, each with different capabilities and different capacities. Now, when these devices become blockchain nodes, they cannot match each other in terms of computing power, so the blockchain becomes more centralized on high processing power nodes / servers.

[0004] Due to the low resources of constrained IoT devices, they cannot be part of a truly decentralized blockchain network and cannot be used for 5G communication because the required storage space and processing power are not enough to support blockchain node functions to achieve true decentralization. In addition, transactions need to be stored on each node and each node should have considerable capacity to process the blocks to be added to the blockchain. However, due to the limitations and unavailability of resources in constrained IoT devices, blockchain operations and 5G communication are not possible. In addition, IoT devices do not have enough capacity and capabilities, so it is impossible for each independent IoT device to become an independent node. For example: sensors, CCTV, doorbells, voice assistants do not have enough storage space (or processing power) to become independent blockchain nodes that can participate in 5G service transaction verification and maintenance of blockchain.

[0005] In addition, IoT devices also have imbalances in their resources, such as some have more storage space and less processing power, and vice versa. There is currently no way to use all IoT resources together in a balanced way for the common purpose of blockchain maintenance. The overall IoT resource pool is large, but the individual resources are unbalanced, resulting in a reduced number of capable nodes. For example: smart watches, smart TVs, and refrigerators have more storage space, and voice assistants have more processing power.

[0006] Therefore, a technology that overcomes the above-mentioned disadvantages is needed. Summary of the invention

[0007] The technical solution is provided to introduce a selection of concepts further described in the detailed description of the present disclosure in a simplified format. The technical solution is not intended to identify the key or essential inventive concepts of the present disclosure, nor is it intended to determine the scope of the present disclosure.

[0008] In an embodiment, the present disclosure discloses a method for enabling a decentralized blockchain of multiple constrained Internet of Things (IoT) devices. The method includes: creating a virtual resource pool by collecting resources of the multiple constrained IoT devices connected in the blockchain, creating multiple virtual nodes corresponding to the multiple constrained IoT devices, wherein the virtual resource pool is accessible by the multiple virtual nodes, receiving at least one request to be executed by at least one constrained IoT device, assigning the at least one request to at least one of the multiple virtual nodes, allocating at least a portion of resources from the virtual resource pool to the at least one virtual node, and executing the at least one request at the at least one virtual node.

[0009] In an embodiment, a system for enabling a decentralized blockchain of multiple constrained Internet of Things (IoT) devices is disclosed. The system includes: a resource pool creation unit configured to create a virtual resource pool by collecting resources of the multiple constrained IoT devices connected in the blockchain, a virtual node creation unit configured to create multiple virtual nodes corresponding to the multiple constrained IoT devices, wherein the virtual resource pool is accessible by the multiple virtual nodes, a receiving unit configured to receive at least one request to be executed by at least one constrained IoT device, an assignment unit configured to assign the at least one request to at least one of the multiple virtual nodes; an allocation unit configured to allocate at least a portion of the resources from the virtual resource pool to the at least one virtual node, and an execution unit configured to execute the at least one request at the at least one virtual node.

[0010] In order to further illustrate the advantages and features of the present disclosure, a more specific description of the present disclosure will be presented by referring to the specific embodiments of the present disclosure shown in the accompanying drawings. It should be understood that these drawings only depict typical embodiments of the present disclosure and should not be considered to limit its scope. The present disclosure will be described and explained with additional features and details in conjunction with the accompanying drawings. BRIEF DESCRIPTION OF THE DRAWINGS

[0011] These and other features, aspects and advantages of the present disclosure will become better understood when the following detailed description is read with reference to the accompanying drawings, in which like reference numerals refer to like parts throughout, and in which: Figure 1 The architecture of a blockchain including multiple IoT devices according to the prior art is shown; Figure 2 A flow chart depicting a method for enabling a decentralized blockchain for multiple constrained Internet of Things (IoT) devices according to an embodiment of the present disclosure is shown; Figure 3 A block diagram of a system for enabling a decentralized blockchain for multiple constrained Internet of Things (IoT) devices according to an embodiment of the present disclosure is shown; Figure 4 An exemplary virtual resource pool according to an embodiment of the present disclosure is shown; Figure 5 shows the storage of public data according to an embodiment of the present disclosure; Figure 6 A protocol stack of a virtual node according to an embodiment of the present disclosure is shown; Figure 7 An exemplary state machine of a virtual node according to an embodiment of the present disclosure is shown; Figure 8 A block diagram depicting a pruned blockchain according to an embodiment of the present disclosure is shown; and Fig. 9 A use case of resource sharing in a blockchain according to an embodiment of the present disclosure is shown.

[0012] In addition, those skilled in the art will appreciate that the elements in the drawings are shown for simplicity and may not necessarily be drawn to scale. For example, a flow chart illustrates the method in terms of the most prominent steps involved to help improve understanding of various aspects of the present disclosure. In addition, with respect to the construction of the system, one or more components of the system may have been represented in the drawings by conventional symbols, and the drawings may only show those specific details relevant to understanding the embodiments of the present disclosure so as not to obscure the drawings with details that would be readily apparent to one of ordinary skill in the art having the benefit of the description herein. DETAILED DESCRIPTION

[0013] For the purpose of promoting an understanding of the principles of the present disclosure, reference will now be made to the embodiments illustrated in the drawings and specific language will be used to describe the embodiments. It will be understood, however, that no limitation of the scope of the present disclosure is intended thereby, and such changes and further modifications in the illustrated systems and such further applications of the principles of the present disclosure as illustrated therein are contemplated as would normally occur to one skilled in the art to which the present disclosure relates.

[0014] Those skilled in the art will understand that both the foregoing general description and the following detailed description are illustrative of the present disclosure and are not intended to be limiting.

[0015] References throughout this specification to "on one hand," "on the other hand," or similar language mean that a particular feature, structure, or characteristic described in conjunction with that embodiment is included in at least one embodiment of the present disclosure. Thus, the phrases "in an embodiment," "in another embodiment," and similar language appearing throughout this specification may, but do not necessarily, all refer to the same embodiment.

[0016] The term "comprises" or any other variation thereof is intended to cover a non-exclusive inclusion such that a process or method that includes a list of steps includes not only those steps but may include other steps not expressly listed or inherent to such process or method. Similarly, without more constraints, one or more UEs or subsystems or elements or structures or components followed by "comprises" does not preclude the presence of other IoT devices or other subsystems or other elements or other structures or other components or additional IoT devices or additional subsystems or additional elements or additional structures or additional components.

[0017] The present disclosure provides techniques for maintaining blockchain functionality and enabling 5G communications for constrained IoT devices using the overall resources of the constrained IoT devices.

[0018] Hereinafter, embodiments of the present disclosure will be described in detail with reference to the accompanying drawings.

[0019] Figure 1 The architecture of a blockchain including multiple IoT devices according to the prior art is shown.

[0020] Blockchain provides a decentralized system and distributed ledger where transactions are verified by multiple nodes and recorded across a network of nodes and are not managed by a central authority. Figure 1 , existing blockchain (BC) systems including multiple IoT devices do not regard all devices as similar to each other, and there is always a high-configuration server that stores the complete blockchain. Examples of IoT devices may include smart TVs, mobile devices, smart watches, ACs, etc., but are not limited to them. In the network, the high-configuration server works as a master node, and the IoT device works as a slave node. Therefore, for each operation, the IoT device must first communicate with the high-configuration server. The real advantage of blockchain in "decentralization" is not utilized. Therefore, a paradigm is needed to achieve true decentralization of blockchain in IoT systems.

[0021] Figure 2 A flow chart depicting a method for enabling a decentralized blockchain for multiple constrained Internet of Things (IoT) devices according to an embodiment of the present disclosure is shown. Figure 3 A block diagram of a system for enabling a decentralized blockchain for multiple constrained Internet of Things (IoT) devices according to an embodiment of the present disclosure is shown. Figure 2 and Figure 3 Description.

[0022] System 300 may include, but is not limited to, processor 302, memory 304, unit 306, and data unit 308. Unit 306 and memory 304 may be coupled to processor 302.

[0023] The processor 302 may be a single processing module or several modules, all of which may include multiple computing modules. The processor 302 may be implemented as one or more microprocessors, microcomputers, microcontrollers, digital signal processors, central processing units, state machines, logic circuits, and / or any UE that manipulates signals based on operating instructions. Among other capabilities, the processor 302 is configured to obtain and execute computer-readable instructions and data stored in the memory 304.

[0024] Memory 304 may include any non-transitory computer-readable medium known in the art, including, for example, volatile memory (such as static random access memory (SRAM) and dynamic random access memory (DRAM)) and / or non-volatile memory (such as read-only memory (ROM), erasable programmable ROM, flash memory, hard disks, optical disks, and magnetic tapes).

[0025] According to an embodiment of the present disclosure, the system (300) may include a transceiver. The transceiver may include an RF transmitter for up-converting and amplifying a transmitted signal, and an RF receiver for down-converting the frequency of a received signal. However, according to an embodiment, the transceiver may be implemented by more or fewer components than those shown in the components. The transceiver may be connected to the processor (302) and send and / or receive a signal. The signal may include control information and data, but is not limited thereto. In an example, the data may be at least one request described in the present disclosure. In addition, the transceiver may receive a signal via a wireless channel and output the signal to the processor (302) or other constrained IoT device via the wireless channel. The transceiver may send a signal output from the processor (302) or other constrained IoT device via a wireless channel.

[0026] Module 306 includes, among other things, routines, programs, objects, components, data structures, etc. that perform specific tasks or implement data types. Module 306 may also be implemented as a signal processor, a state machine, a logic circuit, and / or any other system or component that manipulates signals based on operational instructions.

[0027] In addition, module 306 can be implemented in hardware, instructions executed by a processing unit, or a combination thereof. The processing unit may include a computer, a processor (such as processor 302), a state machine, a logic array, or any other suitable IoT device capable of processing instructions. The processing unit may be a general-purpose processor that executes instructions to cause the general-purpose processor to perform the required tasks, or the processing unit may be dedicated to performing the required functions. In an embodiment of the present disclosure, module 306 may be machine-readable instructions (software) that perform any of the described functions when executed by a processor / processing unit.

[0028] In an embodiment, module 306 may include a resource pool creation module 310, a virtual node creation module 312, a receiving module 314, an assignment module 316, an allocation module 318, an execution module 320, a classification module 322, a storage module 324, a determination module 326 and a pruning module 328.

[0029] The various modules 310-328 may communicate with each other. In an embodiment, the various modules 310-328 may be part of the processor 302. In an embodiment, the processor 302 may be configured to perform the functions of the modules 310-328. Among other things, the data module 308 serves as a repository for storing data processed, received, and generated by one or more of the modules 306.

[0030] It should be noted that the system 300 may be a part of an IoT device or the IoT device itself. In an embodiment, various parts of the system 300 may be distributed to different IoT devices.

[0031] It should be noted that in embodiments of the present disclosure, the term "IoT device" may refer to a "constrained IoT device". Different IoT devices have different capabilities. Some have large storage space, but not good processing power. Some have good processing power, but no local storage space. Some have 5G capabilities, while some do not have any of these 5G capabilities. Devices that cannot store data sufficiently and / or do not have sufficient processing power and / or do not have 5G capabilities may be considered to be "constrained IoT devices" in the present disclosure. Therefore, the terms "IoT device" and "constrained IoT device" have been used interchangeably throughout the specification and drawings.

[0032] refer to Figure 2 ,like Figure 2 As shown, at step 201, method 200 may include creating a virtual resource pool by collecting resources of multiple constrained IoT devices connected in a blockchain. In an embodiment, the resources may include capabilities, usage patterns, and availability of IoT devices. Table 1 below shows examples of IoT devices and their respective availability:

[0033] Table 1 Table 2 below shows examples of IoT devices and one of their respective capabilities:

[0034] Table 2 The various capabilities of IoT devices may have different ranges for different IoT devices. Table 3 below shows exemplary capabilities of exemplary IoT devices and their respective ranges:

[0035] Table 3 Table 4 below shows examples of IoT devices and their respective usage patterns and available capabilities:

[0036] Table 4 Therefore, the resource pool creation module 310 can use the capabilities, usage patterns, and availability of IoT devices to create a virtual resource pool. In an exemplary embodiment, the resource pool creation module 310 can use virtualization to create a huge single pool of all resources constraining IoT devices, which is equally accessible to all virtual nodes (i.e., IoT devices) requesting it. Figure 4 FIG. 2 shows an exemplary virtual resource pool according to an embodiment of the present disclosure. Figure 4As shown, a virtual resource pool 403 may be created by pooling resources of a plurality of constrained IoT devices 401 .

[0037] In an embodiment, the resources of the IoT device may be classified into a plurality of predefined categories based on at least one of capability, availability, and usage pattern. Examples of predefined categories may be high capability, average capability, no capability, high availability, average availability, no availability, etc. The resource pool may store resources according to the classification. Table 5 below shows an example of classifying resources based on their capabilities:

[0038] Table 5 Return to reference Figure 2 , at step 203, method 200 may include creating a plurality of virtual nodes corresponding to the plurality of constrained IoT devices. In an embodiment, the virtual resource pool is accessible by a plurality of virtual nodes. A virtual node may refer to a virtual version of actual hardware with dedicated resources (such as CPU, memory, and 5G capability access) that actually borrows from the available actual hardware resources of the constrained IoT devices. A virtual node is an independent uniquely identifiable virtual device, and all virtual nodes have equal capabilities. A virtual node may be referred to as a virtual representation of the actual constrained IoT hardware.

[0039] In an embodiment, the virtual node creation module 312 may create multiple virtual nodes by defining a virtual node template for each of the multiple virtual nodes. In an embodiment, the virtual node template may include at least one of data to be stored at the virtual node and a function of the virtual node.

[0040] In an embodiment, the classification module 322 may classify multiple data associated with each constrained IoT device into multiple predefined categories. In an embodiment, the multiple predefined categories may include at least one of a personal category, a public category, and a necessary category. For example, personal data such as wake-up time, health information, biometric information, financial information, private blockchain information, login information, facial recognition information, etc. may be classified in the personal category. Similarly, data such as video recordings, image databases, location and sensor data transfers, public blockchain data, etc. may be classified in the public category. In addition, data necessary for the blockchain, such as metadata, BC ledgers, etc., may be classified in the necessary category.

[0041] In addition, in an embodiment, the storage module 324 can store each classification data in a predefined manner. For example, personal data can be stored in an access-controlled manner. In addition, because personal data is actually very sensitive, it is not stored / shared with other devices. Since public data may be huge, its metadata may be saved by all nodes but not all data, such as Figure 5As shown. For example, let us assume that the complete public data (D) stored at each node requires 1GB of storage space. However, if the metadata (D1, D2, D3, D4) is stored at each node, the required storage space is ~1MB. Therefore, the public data may be broken down and stored at several IoT devices. Copies of necessary data can be stored to avoid problems due to data loss. It should be noted that only a few examples of predefined ways are explained, and data can be stored in any way other than the explained examples. In addition, the storage module 324 can store the data of each virtual node in a dedicated memory.

[0042] The virtual node template may further define a protocol stack for each of the constrained IoT devices. The protocol stack enables multiple constrained IoT devices to communicate beyond their communication capabilities. For example, if any constrained IoT device does not have the ability to communicate using 5G or higher communication standards, the protocol stack may enable such IoT devices to communicate using 5G or higher communication standards. Figure 6 A protocol stack of a virtual node according to an embodiment of the present disclosure is shown.

[0043] It should be noted that Figure 6 An example of a protocol stack is shown, and the protocol stack may include Figure 6 Fewer or more layers / components defined in . Reference Figure 6 , the protocol stack in the constrained IoT device (610, 620) can be configured with a data layer (e.g., EXI) (611, 621), an application / transport layer (e.g., CoAP / UDP) (612, 622), and a network layer (e.g., IPv6 / 6LoWPAN) (612, 623). Figure 6 As shown, the Constrained Application Protocol (CoAP) (612, 622) can be used for communication between the constrained devices (610, 620) and the network. In an embodiment, an M2M communication protocol can be used. Using CoAP (612, 622), 5G request related data is transmitted from a non-5G device to a 5G device, and then the 5G device uses its capabilities to execute the request. It should be noted that if necessary, any other layers can be added to CoAP (612, 622) to support higher communication standards. In addition, it should be noted that CoAP (612, 622) is an example and any other protocol suitable for communication between IoT devices (610, 620) can be used.

[0044] Thereafter, the virtual node creation module 312 may create multiple instances of the virtual node template. In an embodiment, the number of instances is greater than or equal to the number of multiple IoT constraint devices. The virtual node creation module 312 may then assign a dedicated storage address to each virtual node and maintain a state machine corresponding to each virtual node to track the state of the virtual node. Figure 7 FIG. 2 shows an exemplary state machine of a virtual node according to an embodiment of the present disclosure. Figure 7 As shown, the state machine can maintain the states of the virtual nodes (such as new, ready, terminated, running, waiting, etc.) and the processes for implementing the corresponding states of the virtual nodes.

[0045] Return to reference Figure 2 , at step 205, method 200 may include receiving at least one request to be executed by at least one constrained IoT device. Specifically, receiving module 314 may receive at least one request to be executed by the IoT device. The received request may be related to the function of the IoT device. For example, the request may be "turn on the fire sensor". In another example, the request may be "display the user's contact list on the refrigerator". In another example, the request may be "warn the user of unauthorized access to the door sensor".

[0046] Thereafter, at step 207, the method 200 may include assigning at least one request to at least one virtual node of the plurality of virtual nodes. Since the virtual nodes corresponding to the IoT devices have been created, the assignment module 316 may assign the received request to at least one virtual node. It should be noted that the received request may be assigned to more than one virtual node.

[0047] In an embodiment, the assignment module 316 may assign requests based on a priority of the request. The priority may be identified based on a request type associated with the received request. The request type may be identified from a plurality of predefined request types. In an embodiment, the plurality of predefined request types may include at least one of a normal request, an emergency request, a personal request, a critical request, and the like. In addition, each request type may be associated with a priority. For example, a critical request may have a higher priority than an emergency, personal, and normal type of request. Similarly, an emergency request may have a higher priority than a personal and normal type of request.

[0048] It should be noted that the plurality of predefined request types may include types other than those defined herein, and any such request types fall within the scope of the present disclosure. Similarly, the priority of the request types may be configured and may vary depending on the request.

[0049] In an exemplary embodiment, let us assume that the receiving module 314 receives the following multiple requests: Request 1 - CCTV detects unknown person in the room, sends leave request to siren -> This is an emergency request between CCTV and siren.

[0050] Request 2 - Turn on "Smoke / Fire Sensor" -> This is a critical (i.e., must-do) request.

[0051] Request 3 - Smartwatch detects high heart rate of user, notifies emergency contact -> This is a personal and emergency request that will require 5G resources.

[0052] Request 4 - Display the user's contact list on the fridge -> This is a normal request.

[0053] Therefore, the assignment module 316 can assign each of these requests based on the priority of these requests. For example, requests 2 and 3 can be assigned before requests 1 and 4.

[0054] In one embodiment, the assignment module 316 can determine whether more than one virtual node is available based on the type of at least one request, and if more than one virtual node is available, at least one request can be assigned to a virtual node that is available within a predefined duration. Continuing with the example of the request received above, if more than one virtual node (such as a mobile device and a TV) is available to execute request 4, the assignment module 316 can assign request 4 to the mobile device within the predefined duration. In an embodiment, the predefined duration can be defined based on the availability of the virtual nodes. The availability of the virtual nodes can be determined based on the usage pattern of the IoT device. In an embodiment, the assignment module 316 can assign the request to a virtual node that is available for a longer period of time.

[0055] In an embodiment, the assignment module 316 may determine whether at least a portion of the resources are available to be assigned. However, if at least a portion of the resources are not available to be assigned, the assignment module 316 may assign at least one request to a waiting queue. In other words, if no resources are available to execute the received request, the request is assigned to the waiting queue, and the request is assigned to a virtual node based on the availability of the resources.

[0056] Return to reference Figure 2, in step 209, method 200 may include allocating at least a portion of the resources from the virtual resource pool to at least one virtual node. Since the virtual resource pool is accessible by all virtual nodes, the resources can be shared between virtual nodes. Therefore, the allocation module 318 can allocate resources to the virtual nodes. In an embodiment, the allocation module 318 can allocate at least a portion of the resources to the virtual nodes based on the type of at least one request. For example, if the received request requires high processing power, the allocation module 318 can allocate resources with high processing power accordingly. Similarly, if the received request requires high storage capacity, the allocation module 318 can allocate resources with high storage capacity accordingly. In another example, if the device may be highly capable but if it is not available, the allocation module 318 may not allocate any resources to the device.

[0057] In an embodiment, the allocation module 318 may determine whether available resources are available before the request is completed. If so, the allocation module 318 may allocate the resources to the virtual node.

[0058] In an embodiment, the allocation module 318 may create a smart contract between multiple virtual nodes based on multiple predefined conditions. The multiple predefined conditions may include at least one of the capabilities, availability, and usage patterns of the IoT device. The smart contract may define the resources to be shared by one virtual node with each other node. Therefore, the allocation module 318 may allocate at least a portion of the resources based on the smart contract.

[0059] Specifically, smart contracts can be used to mark each IoT request as personal / public, critical / normal, emergency, etc. using the device type and request type of the device involved. Therefore, the smart contract can define the resources that will be shared between IoT devices. For example, if the IoT device is a shared IoT device, such as a television (TV), a voice assistant (VA), an air conditioner (AC), and the request type is normal, the smart contract can define that all resources of the shared IoT device can be shared with other IoT devices. On the other hand, if the IoT device is a personal IoT device, such as a mobile device, a smart watch, etc., and the request type is normal, the smart contract can define that only a limited amount of resources of the personal IoT device can be shared with other IoT devices. However, if the request is of an emergency / critical type, the smart contract can define that all resources of the personal IoT device can be shared with other IoT devices.

[0060] In addition, the smart contract can define a time frame for sharing resources based on usage patterns. Thus, the smart contract can define the sharing of resources based on different conditions. Thus, the allocation module 318 can allocate resources based on the smart contract. It should be noted that only a few examples of smart contracts are explained. The smart contract can define the sharing of resources in any other way, and these ways should fall within the scope of the present disclosure.

[0061] In an embodiment, when at least two requests are received, the allocation module 318 may determine whether the priorities of the at least two requests are equal based on the types of the at least two requests. Then, if the priorities of the at least two requests are equal, the allocation module 318 may allocate the same portion of the resources. In an embodiment, the allocation module 318 may allocate resources for equal time frames. However, if the priorities of the requests are not the same, the allocation module 318 may allocate the requests based on the priorities. Specifically, if the priority of the first request is higher than the priority of the second request, the allocation module 318 may allocate a first portion of the resources corresponding to the first request and a second portion of the resources corresponding to the second request, wherein the first portion of the resources is more than the second portion of the resources.

[0062] In an embodiment, the allocation module 318 may allocate resources to higher priority requests for a longer period of time than lower priority requests. In an embodiment, the allocation module 318 may allocate all resources to higher priority requests and then reallocate resources to lower priority requests when higher priority requests are completed.

[0063] Return to reference Figure 2 , at step 211, the method 200 may include executing at least one request at at least one virtual node. In an embodiment, in order to execute the request, the execution module 320 may first determine whether the at least one request is an authorized request. If the request is an authorized request, the execution module 320 may execute the at least one request. In an embodiment, request authorization may refer to verifying the authenticity of the sender of the request, i.e., authentication, malicious request identification (data access control and data authentication), irregular request frequency (malicious request identification).

[0064] Each virtual node of the blockchain can verify the request. The first virtual node that authorizes the request issues an authorization for the request, and other nodes can confirm the authorization. Upon confirmation, the virtual node can add the authorized request to its copy of the blockchain. Specifically, once a virtual node is assigned at least one request, the virtual node determines the hash complexity of the request. Based on the hash complexity and the request type, the virtual node verifies the request. In the blockchain (BC), the first node among multiple nodes that solves the hash problem broadcasts the solution to all nodes and adds the solved block to its own version of the blockchain. Other virtual nodes receive the solution to the hash problem, and these virtual nodes verify the solution. If the solution is OK, these virtual nodes add the block to their version of the blockchain. When the block is verified and updated in the BC, the status of the unverified transaction is updated.

[0065] However, adding blocks when validating each request results in a larger blockchain, which may lead to increased storage requirements. In an embodiment, this problem is solved by pruning the blockchain, as discussed below.

[0066] In an embodiment of the present disclosure, the present disclosure allows pruning of a blockchain. In other words, several blocks of a blockchain may be erased. Specifically, if at least one block among a plurality of blocks in a blockchain satisfies a predefined condition, the determination module 326 may determine whether the at least one block is erasable. The predefined condition may include the uselessness / obsolescence of the data within the block after a predefined time frame. The predefined time frame may be configured by an IoT device. Therefore, if the data within the block is useless after a predefined time frame, the block may be determined to be erasable.

[0067] Upon determination, the pruning module 328 may define a trigger time and an execution time for pruning the blockchain. In an embodiment, the trigger time may be configurable and may be configured by the IoT device. For example, the trigger time may be configured as a time when the blockchain storage pool is more than 80% filled. In an embodiment, the execution time may be configurable and may be configured by the IoT device. For example, the execution time may be configured as a time when 90% of the IoT devices are available and more than 80% of the IoT devices are not used. It should be noted that the above are merely examples of trigger times and execution times, and blockchain pruning may be triggered and executed when any other predefined conditions are met.

[0068] Thereafter, the pruning module 328 can prune the blockchain by deleting at least one block from the blockchain when one of the triggering time and the execution time is completed. The pruning module 328 can also update the blockchain ledger that reads the deletion of the block.

[0069] However, if the determination module 326 determines that at least one block is not erasable, the pruning module 328 can create a new blockchain by keeping all blocks of the blockchain, and a separate ledger can be maintained for the new blockchain. In an embodiment, a block can be determined to be not erasable if the data within the block is useful after a predefined time frame.

[0070] Figure 8 A block diagram depicting a pruned blockchain according to an embodiment of the present disclosure is shown. Figure 8 As shown, blockchain 801 may include multiple blocks, such as block 1...block N. Block 1-block 3 are erasable, so these blocks are deleted to prune the blockchain. After pruning, the pruned blockchain 803 does not include blocks 1-block 3, such as Figure 8 As shown. Therefore, the blockchain ledger can be updated with the pruned blockchain 803. In addition, the updated blockchain 803 can be used for upcoming requests. Since the size of the blockchain has been reduced by pruning, the computational overhead is reduced. In addition, since the blocks are deleted from the blockchain, the storage overhead is reduced.

[0071] Therefore, according to various embodiments of the present disclosure, resource pooling provides blockchain nodes with the same capabilities. In addition, since virtual nodes only store personal data and not public data, data storage requirements are reduced. For public data, virtual nodes only store metadata. In addition, data is not shared with the cloud / external server, thereby ensuring the security of IoT devices. For example, let us consider that there are 7 devices in the IoT network, namely, CCTV, sensor, alarm sound, TV, VA, mobile device, and AC. The sensor node (ie, weak device) only needs to maintain the metadata of the public blockchain data, and only the sensor device stores its personal data. In addition, when the sensor node performs any block verification, it accesses the same resources as the VA node (strong processing capability) from the pool. In addition, whatever data is accessed, it is added to the blockchain and controlled by smart contracts. In addition, the blockchain has low-capability devices, which may not be able to perform various functions such as 5G communication or blockchain processing. Now, as the resources of all IoT devices are pooled, even the weakest device in the blockchain can use resources from the pool to perform actions, such as Fig. 9 shown.

[0072] Fig. 9 The following is a use case of resource sharing in a blockchain according to an embodiment of the present disclosure. Fig. 9As shown, there are three devices in the blockchain, namely, a door sensor (901), CCTV (902), and a mobile device (903). The door sensor (901) detects a person at the door. According to an embodiment of the present disclosure, the door sensor 901 can access feedback from CCTV (902) and trigger an alarm. In addition, the door sensor (901) can use any 5G resources of other IoT devices (such as a mobile device (903)) to send a call / hint / feedback to a user who is not there. Therefore, the door sensor (901) is able to use resources from the resource pool to perform actions beyond its capabilities. Through blockchain and smart contracts, all these transactions that occur between devices are secure.

[0073] Thus, the present disclosure provides a truly decentralized blockchain system for constrained IoT devices that enable 5G network communications. In the following examples, the constrained IoT device, the other constrained IoT device, and the additional constrained IoT device may be part of a plurality of constrained IoT devices connected in a blockchain. In the following examples, the other constrained IoT device and the additional constrained IoT device may be the same device.

[0074] In an embodiment, the present disclosure discloses a method for enabling a decentralized blockchain of multiple IoT devices executed by a constrained IoT device. The method includes creating a virtual resource pool by collecting resources of the multiple constrained IoT devices connected in the blockchain. The method also includes creating multiple virtual nodes corresponding to the multiple constrained IoT devices, wherein the virtual resource pool is accessible by the multiple virtual nodes. The method also includes receiving at least one first request to be executed by at least one other constrained IoT device. The method also includes assigning the at least one first request to at least one virtual node of the multiple virtual nodes corresponding to the at least one other constrained IoT device. The method also includes allocating at least a portion of the resources from the virtual resource pool to the at least one virtual node of the multiple virtual nodes.

[0075] In an embodiment, the method further includes defining a virtual node template for each of the plurality of virtual nodes, wherein the virtual node template includes at least one of the following: data to be stored at each of the plurality of virtual nodes or functionality of each of the plurality of virtual nodes. The method further includes creating multiple instances of the virtual node template, wherein the number of instances is greater than or equal to the number of the plurality of IoT constraint devices. The method further includes assigning a dedicated storage address to each of the plurality of virtual nodes. The method further includes maintaining a state machine corresponding to each of the plurality of virtual nodes to track the state of each of the plurality of virtual nodes.

[0076] In an embodiment, the method of the present disclosure, wherein the virtual node template defines a protocol stack for each of the multiple constrained IoT devices, wherein the protocol stack enables the multiple constrained IoT devices to communicate beyond their communication capabilities.

[0077] In an embodiment, the method further comprises identifying a type of the at least one first request from a plurality of predefined request types. The method further comprises identifying a priority of the at least one first request based on the identified type of the at least one first request. The method further comprises assigning the at least one first request based on the priority.

[0078] In an embodiment, the method of the present disclosure, wherein the step of allocating the at least part of the resources includes allocating the at least part of the resources based on the type of the at least one first request.

[0079] In an embodiment, the method further includes, wherein, when at least two first requests are received, the step of allocating the at least a portion of the resources includes: determining whether the priorities of the at least two first requests are equal based on the types of the at least two first requests. The method further includes allocating the at least a portion of the resources based on the determination by one of: allocating the same portion of the resources if the priorities of the at least two first requests are equal; and allocating a first portion of the resources corresponding to a portion of the at least two first requests, and allocating a second portion of the resources corresponding to another portion of the at least two first requests, wherein the first portion is larger than the second portion, and the priority of the portion of the at least two first requests is higher than the priority of the other portion of the at least two first requests.

[0080] In an embodiment, the method of the present disclosure, wherein the step of allocating at least a portion of the resources includes: creating a smart contract between the multiple virtual nodes based on a plurality of predefined conditions including at least one of the capabilities, availability, and usage patterns of the IoT devices, wherein the smart contract defines resources to be shared by a virtual node with each other node; and allocating at least a portion of the resources based on the smart contract.

[0081] In an embodiment, the method further comprises receiving at least one second request to be executed by the constrained IoT device from at least one virtual node of the plurality of virtual nodes corresponding to at least one additional constrained IoT device. The method further comprises determining whether the at least one second request is an authorized request. The method further comprises executing the at least one second request based on the determination.

[0082] In an embodiment, the method further includes: if at least one block among the plurality of blocks in the blockchain satisfies a predefined condition, determining whether the at least one block is erasable. The method further includes, based on the determination that the at least one block is erasable: defining a trigger time and an execution time for pruning the blockchain; pruning the blockchain by deleting the at least one block from the blockchain when one of the trigger time and the execution time is completed; and updating the blockchain ledger. The method further includes, based on the determination that the at least one block is not erasable: creating a new blockchain by maintaining all blocks of the blockchain; and maintaining a separate ledger for the new blockchain.

[0083] In an embodiment, the present disclosure discloses a constrained IoT device for enabling a decentralized blockchain of multiple constrained IoT devices. The constrained IoT device includes a memory (304) storing instructions and at least one processor. The at least one processor is configured to execute the instructions to create a virtual resource pool by collecting resources of the multiple constrained IoT devices connected in the blockchain. The at least one processor is configured to execute the instructions to create a plurality of virtual nodes corresponding to the multiple constrained IoT devices, wherein the virtual resource pool is accessible by the multiple virtual nodes. The at least one processor is configured to execute the instructions to receive at least one first request to be executed by at least one other constrained IoT device. The at least one processor is configured to execute the instructions to assign the at least one first request to at least one virtual node of the multiple virtual nodes corresponding to the at least one other constrained IoT device. The at least one processor is configured to execute the instructions to allocate at least a portion of the resources from the virtual resource pool to the at least one virtual node of the multiple virtual nodes.

[0084] In an embodiment, the at least one processor is further configured to execute the instructions to define a virtual node template for each of the plurality of virtual nodes, wherein the virtual node template includes at least one of the following: data to be stored at each of the plurality of virtual nodes or functionality of each of the plurality of virtual nodes. The at least one processor is further configured to execute the instructions to create multiple instances of the virtual node template, wherein the number of instances is greater than or equal to the number of the plurality of constrained IoT devices. The at least one processor is further configured to execute the instructions to assign a dedicated storage address to each of the plurality of virtual nodes. The at least one processor is further configured to execute the instructions to maintain a state machine corresponding to each of the plurality of virtual nodes to track the state of each of the plurality of virtual nodes.

[0085] In an embodiment, the at least one processor is further configured to execute the instructions to identify the type of at least one first request from a plurality of predefined request types. The at least one processor is further configured to execute the instructions to identify the priority of the at least one first request based on the identified type of the at least one first request. The at least one processor is further configured to execute the instructions to assign the at least one first request based on the priority.

[0086] In an embodiment, the at least one processor is further configured to execute the instructions to allocate the at least a portion of the resources based on a type of the at least one first request.

[0087] In an embodiment, the at least one processor is further configured to execute the instructions to create a smart contract between the plurality of virtual nodes based on a plurality of predefined conditions including at least one of the capabilities, availability, and usage patterns of the IoT devices, wherein the smart contract defines the resources to be shared by one virtual node with each other node. The at least one processor is further configured to execute the instructions to allocate the at least a portion of the resources based on the smart contract.

[0088] In an embodiment, the at least one processor is further configured to execute the instructions to perform the following operations: if at least one block among the plurality of blocks in the blockchain satisfies a predefined condition, determine whether the at least one block is erasable. The at least one processor is further configured to execute the instructions to define a trigger time for pruning the blockchain based on the determination that the at least one block is erasable, prune the blockchain by deleting the at least one block from the blockchain when one of the trigger time and the execution time is completed, and update the blockchain ledger. The at least one processor is further configured to execute the instructions to create a new blockchain by maintaining all blocks of the blockchain based on the determination that the at least one block is not erasable, and maintain a separate ledger for the new blockchain.

[0089] Although specific language has been used to describe the present disclosure, no limitation is intended thereby. It will be apparent to those skilled in the art that various working modifications may be made to the method in order to implement the inventive concepts taught herein.

[0090] The accompanying drawings and the foregoing description give examples of embodiments. It will be appreciated by those skilled in the art that one or more of the elements described may be well combined into a single functional element. Alternatively, some elements may be divided into multiple functional elements. Elements from one embodiment may be added to another embodiment. For example, the order of the processes described herein may be changed and are not limited to the manner described herein.

[0091] In addition, the actions of any flow chart need not be implemented in the order shown; nor do they necessarily need to perform all actions. In addition, those actions that are not dependent on other actions can be performed in parallel with other actions. The scope of the embodiments is not limited by these specific examples. Whether or not explicitly given in the specification, various changes are possible, such as differences in structure, size, and material use. The scope of the embodiments is at least as wide as the scope given by the attached claims.

[0092] Benefits, other advantages, and solutions to problems have been described above with respect to specific embodiments. However, the benefits, advantages, solutions to problems, and any components that may cause any benefit, advantage, or solution to occur or become more apparent should not be construed as critical, required, or essential features or components of any or all claims.

Claims

1. A method (200) performed by a constrained Internet of Things (IoT) device for enabling a decentralized blockchain of multiple constrained IoT devices, comprising: Creating (201) a virtual resource pool by collecting resources of the plurality of constrained IoT devices connected in the blockchain; creating (203) a plurality of virtual nodes corresponding to the plurality of constrained IoT devices, wherein the virtual resource pool is accessible by the plurality of virtual nodes; receiving ( 205 ) at least one first request to be executed by at least one other constrained IoT device; assigning (207) the at least one first request to at least one virtual node of the plurality of virtual nodes corresponding to the at least one other constrained IoT device; and At least a portion of resources from the virtual resource pool is allocated (209) to the at least one virtual node of the plurality of virtual nodes.

2. The method according to claim 1, wherein: The steps of creating the plurality of virtual nodes include: defining a virtual node template for each of the plurality of virtual nodes, wherein the virtual node template includes at least one of: data to be stored at each of the plurality of virtual nodes or a function of each of the plurality of virtual nodes; Creating a plurality of instances of the virtual node template, wherein the number of the instances is greater than or equal to the number of the plurality of constrained IoT devices; assigning a dedicated storage address to each virtual node in the plurality of virtual nodes; and A state machine corresponding to each of the plurality of virtual nodes is maintained to track a state of each of the plurality of virtual nodes.

3. The method according to claim 2, wherein: The virtual node template defines a protocol stack for each of the plurality of constrained IoT devices, wherein the protocol stack enables the plurality of constrained IoT devices to communicate beyond their communication capabilities.

4. The method according to any one of claims 1 to 3, wherein: The step of assigning the at least one first request comprises: identifying a type of the at least one first request from a plurality of predefined request types; identifying a priority of the at least one first request based on the identified type of the at least one first request; and The at least one first request is assigned based on the priority level.

5. The method according to any one of claims 1 to 4, wherein: The step of allocating the at least a portion of the resources comprises allocating the at least a portion of the resources based on a type of the at least one first request.

6. The method according to any one of claims 1 to 5, wherein: When at least two first requests are received, the step of allocating the at least a portion of the resources comprises: Based on the types of the at least two first requests, determining whether the priorities of the at least two first requests are equal; Based on the determination, allocating the at least a portion of the resources by one of: If the priorities of the at least two first requests are equal, allocating the same portion of the resources; and Allocate a first portion of the resources corresponding to a portion of the at least two first requests, and allocate a second portion of the resources corresponding to another portion of the at least two first requests, wherein the first portion is larger than the second portion, and the priority of the portion of the at least two first requests is higher than the priority of the other portion of the at least two first requests.

7. The method according to any one of claims 1 to 6, wherein: The step of allocating said at least a portion of said resources comprises: creating a smart contract between the plurality of virtual nodes based on a plurality of predefined conditions including at least one of capabilities, availability, and usage patterns of the IoT devices, wherein the smart contract defines the resources to be shared by one virtual node with each other node; and The at least a portion of the resources is allocated based on the smart contract.

8. The method according to any one of claims 1 to 7, further comprising: receiving, from at least one virtual node of the plurality of virtual nodes corresponding to at least one additional constrained IoT device, at least one second request to be executed by the constrained IoT device; determining whether the at least one second request is an authorized request; as well as The at least one second request is performed based on the determination.

9. The method according to any one of claims 1 to 8, further comprising: If at least one block among the plurality of blocks in the blockchain satisfies a predefined condition, determining whether the at least one block is erasable; Based on a determination that the at least one block is erasable: defining a trigger time and an execution time for pruning the blockchain; Upon completion of one of the triggering time and the execution time, pruning the blockchain by deleting the at least one block from the blockchain; as well as Update the blockchain ledger; as well as Based on the determination that the at least one block is not erasable: Creating a new blockchain by maintaining all blocks of the blockchain; as well as A separate ledger is maintained for the new blockchain.

10. A constrained IoT device (300) for enabling a decentralized blockchain of a plurality of constrained IoT devices, comprising: A memory (304) for storing instructions; as well as At least one processor (302) is configured to execute the instructions to: creating (201) a virtual resource pool by collecting resources of the plurality of constrained IoT devices connected in the blockchain, creating (203) a plurality of virtual nodes corresponding to the plurality of constrained IoT devices, wherein the virtual resource pool is accessible by the plurality of virtual nodes, receiving (205) at least one first request to be executed by at least one other constrained IoT device, assigning (207) the at least one first request to at least one virtual node of the plurality of virtual nodes corresponding to the at least one other constrained IoT device, and At least a portion of resources from the virtual resource pool is allocated (209) to the at least one virtual node of the plurality of virtual nodes.

11. The constrained IoT device of claim 10, wherein the at least one processor (302) is further configured to execute the instructions to: A virtual node template is defined for each virtual node in the plurality of virtual nodes, wherein: The virtual node template includes at least one of: data to be stored at each virtual node of the plurality of virtual nodes or a function of each virtual node of the plurality of virtual nodes; Creating a plurality of instances of the virtual node template, wherein the number of the instances is greater than or equal to the number of the plurality of constrained IoT devices; assigning a dedicated storage address to each virtual node in the plurality of virtual nodes; and A state machine corresponding to each of the plurality of virtual nodes is maintained to track a state of each of the plurality of virtual nodes.

12. The constrained IoT device according to any one of claims 10 to 11, wherein the at least one processor (302) is further configured to execute the instructions to: identifying a type of the at least one first request from a plurality of predefined request types; identifying a priority of the at least one first request based on the identified type of the at least one first request; as well as The at least one first request is assigned based on the priority level.

13. The constrained IoT device according to any one of claims 10 to 12, wherein the at least one processor (302) is further configured to execute the instructions to: The at least a portion of the resources is allocated based on a type of the at least one first request.

14. The constrained IoT device according to any one of claims 10 to 13, wherein the at least one processor (302) is further configured to execute the instructions to: Creating a smart contract between the plurality of virtual nodes based on a plurality of predefined conditions including at least one of capabilities, availability, and usage patterns of the IoT devices, wherein: The smart contract defines the resources to be shared by a virtual node with each other node; as well as The at least a portion of the resources is allocated based on the smart contract.

15. The constrained IoT device according to any one of claims 10 to 14, wherein the at least one processor (302) is further configured to execute the instructions to: If at least one block among the plurality of blocks in the blockchain satisfies a predefined condition, determining whether the at least one block is erasable, Based on a determination that the at least one block is erasable: Define the trigger time and execution time for pruning the blockchain, Upon completion of one of the triggering time and the execution time, pruning the blockchain by deleting the at least one block from the blockchain, and Update the blockchain ledger, and Based on the determination that the at least one block is not erasable: Creating a new blockchain by keeping all the blocks of said blockchain, and A separate ledger is maintained for the new blockchain.