System and method for blockchain-based industrial automation

By introducing the blockchain to unilateral kernel and blockchain -based universal operation in the industrial automation system, the problem of security vulnerabilities of the industrial automation system when connecting the external world when connecting the external world, and realized the operation of security, credibility and auditing.

CN119384664APending Publication Date: 2025-01-28MITSUBISHI ELECTRIC CORP
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202380044933.8
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Priority Date
2022-06-27
Filing Date
2023-03-09
Publication Date
2025-01-28

AI Technical Summary

Technical Problem

Existing industrial automation systems have security breaches and threats when connected to the external world, resulting in disruptions in industrial processes and serious consequences.

Method used

By introducing the blockchain into a single kernel, when providing a blockchain -based universal operation, the industrial automation system for PLC is provided to achieve a safe, credible and audit operation.

Benefits of technology

The solution protects the privacy and intellectual property rights of the industrial automation system through the decentralized architecture of the blockchain and the trust and security mechanism of the robust system, ensures the invariant audit tracking record of the operation, and provides an efficient security interface.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119384664A_ABST
    Figure CN119384664A_ABST
Patent Text Reader

Abstract

A method and system for monitoring and management of a blockchain-based industrial automation system is provided. The industrial automation system includes a block chain-based universal runtime of a programmable logic controller (PLC) used in the industrial automation system in the form of a block chain integrated single core for the PLC. The single core is configured to provide an immutable audit trace record of security checks available in block chain technology, operations within an industrial automation system, functions related to trusted remote update of industrial firmware via blockchain authentication update and automated integrity check of controller functions by comparison with a blockchain.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present disclosure relates generally to industrial systems and, more particularly, to methods and systems for implementing blockchain-based automation in industrial systems. Background Art

[0002] An industrial system is an environment consisting of several elements such as machines, tools, field devices, personnel, support equipment, raw materials, goods, etc., which are related to each other through industrial processes. Industrial processes involve the control, production, transportation, monitoring, operation, maintenance and testing of machines and equipment in an industrial environment in order to achieve industrial goals. Industrial goals may involve product manufacturing, product transportation, energy generation, process control, process operation, cargo transportation, etc. In modern industrial automation systems, many of these industrial goals and processes are automated using computing devices. To this end, industrial automation systems include the use of computing devices to operate various machines and processes in industrial systems to reduce human intervention and increase the efficiency of repetitive tasks by automating them using computing. Industrial automation is used today in almost all industries, such as the oil industry, fast-moving consumer goods industry, textile industry, manufacturing or production plants, chemical plants, pharmaceutical industry, paper industry, etc.

[0003] In these industries, industrial automation involves the automation of process control and machine control functions performed using a set of computing devices. Process and control involve different types of equipment present in industry, including one or a combination of industrial devices or field devices, such as sensors, actuators, valves, pumps, pipes, etc.; machines and tools; factory control equipment; temperature and humidity control equipment; logistics and transportation equipment, etc. Each type of equipment performs a function that forms an industrial process. Such industrial processes require control and monitoring using specialized computing devices used in industry. One such type of device is a programmable logic controller (PLC).

[0004] PLC is an industrial digital computer used to control manufacturing and factory control processes. PLCs are usually composed of the following components: CPU module, I / O module and backplane. CPU module is composed of central processing unit (CPU), read-only memory (ROM) and random access memory (RAM). CPU is a computing unit that executes computer instructions that make up computer programs and operating systems. ROM is a non-volatile memory that can store its contents even in the event of power failure. This is different from RAM, which loses its contents when the power is turned off. In PLC, ROM is usually used to store OS and its associated state. This is due to the requirements of industrial applications where power failure is more frequent, but industrial processes must resume operation from where they last left before the interruption. However, this can also be a source of security risk because the restart does not refresh the system state. In addition, I / O modules are components that enable PLCs to interface with other devices, including but not limited to: sensors, switches, network connections, and other PLCs. To this end, I / O modules implement modularization of functions in PLCs. In addition, the backplane of a PLC is a bus that enables communication between the CPU and I / O modules.

[0005] PLCs differ from commercial computers in that they are rugged hard real-time systems, where outputs in response to inputs must be generated within a finite time for the system to be considered to operate correctly. This is why PLCs are an integral component of the control layer in industrial automation systems. Therefore, efficient operation of PLCs is a direct parameter for achieving efficient industrial automation solutions. At the same time, safe operation of PLCs is important to ensure smooth, reliable, and error-free operation of critical and non-critical industrial functions.

[0006] In some industrial automation systems, the PLC is also connected to a second-level computing device that provides an interface for the PLC to connect to the outside world. Although this connection is conducive to providing a better way for efficient monitoring, analysis, and inter-industry or intra-industry collaboration of industrial processes, it also exposes the industrial system to many security vulnerabilities, threats, manipulation attempts, and overall industrial process disruption scenarios. This can lead to very serious consequences, especially for critical industries such as petrochemicals, energy, power plants, etc. For this reason, it is desirable to provide industrial automation systems with a secure and trusted interface to connect to the outside world.

[0007] Therefore, there is a need for an efficient system for controlling the operation of various processes and equipment in an industrial automation system while providing safe and smooth operation of the industrial process. Summary of the invention

[0008] Recently, blockchain technology has gained a lot of attention as one of the most secure and trusted computing and networking technologies due to its decentralized architecture and reliance on robust trust and security mechanisms. A blockchain network represents a digital ledger, which is a record of transactions stored in a computer. Transactions represent changes in the state of a system. Therefore, the digital ledger represents the state of a system such as a financial system, an industrial system, a medical system, an educational system, etc.

[0009] The digital ledger can be implemented in a centralized system that keeps a record of all transactions and changes to that record without requiring another system to agree to its own record or to generate an auditable trail of changes made by the centralized system. Another approach is a decentralized or distributed approach that allows for keeping a record of transactions and implements a method of determining consensus between multiple systems. This is useful because it inhibits any particular system, including the distributed system, from acting in a selfish manner and changing the digital ledger in a way that harms the distributed system. This in itself can increase user trust in the distributed system and therefore can be useful. Blockchain networks are based on such decentralized digital ledger systems.

[0010] A blockchain is an append-only data structure consisting of blocks linked together using a linked list structure or similar. A block is a container of digital information consisting of a header, metadata, and a list of transactions. The header and metadata may contain information about software versions, cryptographic hashes to compress the amount of data that needs to be stored, timestamps, etc. Transactions are a list of all transactions of digital tokens and may be hashed to reduce the amount of data that needs to be stored. A block lists all transactions from one user to another. Transactions between users are implemented via transactions between the corresponding digital addresses of the users.

[0011] Transactions in distributed ledgers are most commonly implemented using two models: the UTXO model and the account model. In the UTXO model, transactions have inputs and outputs. In the account model, transactions are messages, i.e., lists of key-value pairs. One point of difference between the UTXO model and the account model is that the UTXO model is stateless because the state of the system must be built from the genesis block (originating block). The account model is more flexible than the UTXO model, but more expensive in terms of computational requirements because it requires increasing the difficulty of proving the correctness of the system. To this end, computational requirements can be measured in terms of computational resources such as power, processing power, storage, and operating system requirements.

[0012] Operating systems generally follow two architectures: monolithic kernels and monolithic kernels. A monolithic kernel is an operating system that provides a high-level virtual interface called a system call as an API via the underlying computer hardware. The monolithic kernel has a dual purpose: to free programmers from having to worry about the low-level details of the underlying hardware and to provide security for the system by ensuring that processes running on top of the kernel do not interfere with other processes or the kernel itself. Examples of monolithic kernels include main operating systems such as Linux and OpenBSD. In contrast, a monolithic kernel is a dedicated machine image in which an application is linked to the required kernel functions in the form of a library. Examples of monolithic kernels include MirageOS, u-root, and the Linux Kernel Library (LKL). Due to its particularity, a monolithic kernel is lighter and has better performance than a monolithic kernel.

[0013] Some embodiments are based on the recognition that a single kernel provides functionality for implementing specialized programming and logic that can be used to implement lightweight blockchain-integrated clients. To this end, lightweight clients can be associated with computing systems that have limited processing and storage capabilities and are more application-oriented than computing-oriented, such as specialized computing devices used in industrial automation systems. One such type of specialized computing device discussed earlier is a PLC.

[0014] Some embodiments are based on the recognition that the security requirements of PLCs as discussed earlier can be met by integrating PLCs with blockchains, since blockchains are one of the most secure computing technologies available today. However, one drawback of blockchain-based systems is their high computing and storage requirements.

[0015] Some embodiments are also based on the recognition that limitations of blockchain-based systems can be overcome by integrating a single kernel in the blockchain-based system to implement a lightweight client such as a PLC.

[0016] To this end, some embodiments disclosed herein provide an industrial automation system with a blockchain-based universal runtime for PLC by introducing a blockchain integrated single kernel for PLC. A key realization of implementing such an industrial automation system solution is that the universal blockchain integration layer can protect the privacy and intellectual property rights of various users in the industrial automation system, and also ensure an immutable audit trail record of operations within the industrial automation system.

[0017] To this end, some embodiments provide a cryptographic technique that allows verification that computations are being performed on a PLC acting as a lightweight blockchain client that implements the verification.

[0018] Some embodiments are also based on the recognition that implementation of such a solution does not require these lightweight blockchain clients to download the entire blockchain, which is computationally and storage-prohibitive. Instead, a lightweight blockchain client with an initial blockchain state only needs to download the latest block and associated cryptographic certificates from the blockchain to prove that the state transition associated with the computation performed on the PLC is valid or verified, that is, the current block can be reached from the previous block.

[0019] To this end, some embodiments provide a blockchain-based industrial automation system that implements such a lightweight controller computer (i.e., PLC), which is associated with at least one processor or CPU for performing the above-mentioned verification. The blockchain-based industrial automation system provides a trusted and distributed source of truth for the entire industrial automation system, where PLCs and other devices at or above the control level can read and write to the blockchain.

[0020] To this end, a blockchain network associated with a blockchain-based industrial automation system includes data required for the industrial automation context, such as, but not limited to, firmware updates of the PLC, controller functions of the PLC, records of commands sent to the PLC, and variables related to the PLC.

[0021] Some embodiments are based on the recognition that a unified API can be provided for interacting with the PLC in a secure and auditable manner. The unified API is implemented at a single kernel level, which is configured to act as a general runtime by interpreting incoming commands, which can be written in a domain specific language (DSL) or written as raw PLC commands and first consulted with the blockchain network to interpret to ensure that the command is valid. If so, the command record is sent as a transaction to be recorded on the blockchain network. This is done to provide auditability to the entire blockchain-based industrial automation system. This auditability is lacking in existing industrial automation systems. Once the incoming command is verified, it is passed to the PLC for execution.

[0022] According to an embodiment of the present disclosure, a blockchain-based industrial automation system capable of accessing a blockchain network is provided. The blockchain-based industrial automation system includes: at least one controller computer (e.g., PLC), which includes at least one processor (e.g., CPU); and a memory (e.g., ROM), on which instructions are stored, which, when executed by at least one processor, cause at least one controller computer to perform operations. These operations include: downloading the latest block and the associated encryption certificate of the latest block from the blockchain network. The downloaded latest block and the associated encryption certificate are used to authenticate the update operation (e.g., an incoming command of at least one controller). Based on the authentication, a response is generated from an operation for controlling the execution operation on at least one controller.

[0023] Some embodiments provide that authentication of at least one command is performed based on invocation of one or more types of system call (syscall) requests.

[0024] Some embodiments provide blockchain-based industrial automation that also includes one or more industrial devices. The one or more industrial devices include one or more of a sensor device and an actuator device, each of which is configured to send device status data to at least one controller computer. The device status data is associated with a corresponding incoming command.

[0025] Some embodiments provide a server computing system on at least one controller computer, wherein the at least one controller computer is configured to send incoming commands to the server computing system, and the server computing system is configured to perform operations previously performed by the at least one controller computer. The operations include: downloading the latest block and the associated cryptographic certificate of the latest block from a blockchain network. In addition, authenticating the incoming command of the at least one controller computer based on the downloaded latest block and the associated cryptographic certificate. Finally, generating a response for controlling the operation on the at least one controller computer based on the authentication.

[0026] Some embodiments are based on the recognition that the incoming command is one of a firmware update command, an industrial automation process execution command, and the like.

[0027] Some embodiments provide that the memory includes a single kernel for storing instructions for implementing a blockchain-based industrial automation system. In some embodiments, the single kernel is associated with an edge computing architecture.

[0028] Various embodiments provide for message exchange between at least one controller computer and the blockchain network using a communication protocol that relies on the protocol of the blockchain network. For example, the protocol may be a protocol of a permissioned blockchain network.

[0029] Some embodiments provide verifiable execution of computing commands using blockchain-based industrial automation.

[0030] According to one embodiment, a method for providing blockchain-based industrial automation is disclosed. The method includes the following steps: downloading the latest block and the associated encryption certificate of the latest block from the blockchain network. The method also includes the following steps: authenticating an update operation of at least one controller computer based on the downloaded latest block and the associated encryption certificate. In addition, the method includes the following steps: generating a response for controlling an execution operation on at least one controller computer based on the authentication.

[0031] According to one embodiment, a non-transitory computer-readable storage medium is disclosed, on which a program is embodied, and the program can be executed by a processor to perform the above-mentioned method for providing blockchain-based industrial automation. BRIEF DESCRIPTION OF THE DRAWINGS

[0032] [ Figure 1A ] Figure 1A The architecture of an industrial automation system according to some embodiments of the present disclosure is illustrated.

[0033] [ Figure 1B ] Figure 1B Illustrate the use of some embodiments according to the present disclosure Figure 1A A block diagram of an example of the architecture of a programmable logic controller (PLC) based system.

[0034] [ Figure 1C ] Figure 1C Another architecture of an industrial automation system according to some embodiments of the present disclosure is illustrated.

[0035] [ Figure 1D ] Figure 1D Illustrate the use of some embodiments according to the present disclosure Figure 1C A block diagram of an example of the architecture of a supervisory control and data acquisition (SCADA) based system.

[0036] [ Figure 2 ] Figure 2 A block diagram of a control layer stack for an industrial automation system according to some embodiments of the present disclosure is illustrated.

[0037] [ Figure 3 ] Figure 3 A block diagram of a blockchain system supporting lightweight clients according to some embodiments of the present disclosure is illustrated.

[0038] [ Figure 4A ] Figure 4A A block diagram showing components of user space and kernel space in a computing system according to some embodiments of the present disclosure is illustrated.

[0039] [ Figure 4B ] Figure 4B A block diagram illustrating a general runtime implementation of a single kernel in a blockchain-based industrial automation system according to some embodiments of the present disclosure is illustrated.

[0040] [ Figure 5A ] Figure 5A A flowchart of a method for managing a blockchain-based industrial automation system according to some embodiments of the present disclosure is illustrated.

[0041] [ Figure 5B ] Figure 5B A flowchart illustrating another method for managing a blockchain-based industrial automation system according to some embodiments of the present disclosure is provided.

[0042] [ Figure 5C ] Figure 5C Another flow chart of a method for managing a blockchain-based industrial automation system according to some embodiments of the present disclosure is illustrated.

[0043] [ Figure 6 ] Figure 6 An environment for implementing an industrial automation system based on blockchain technology according to some embodiments of the present disclosure is illustrated.

[0044] [ Figure 7 ] Figure 7 An exemplary use case of implementing an industrial automation system based on blockchain technology for verifiable computing according to some embodiments of the present disclosure is illustrated. DETAILED DESCRIPTION

[0045] In the following description, for the purpose of explanation, numerous specific details are set forth to provide a thorough understanding of the present disclosure. However, it will be apparent to those skilled in the art that the present disclosure can be practiced without these specific details. In other cases, devices and methods are illustrated in block diagram form to avoid obscuring the present disclosure.

[0046] As used in this specification and claims, the terms "for example" and "such as" and the verbs "include," "have," "comprises," and other verb forms thereof, when used in conjunction with a list of one or more components or other items, should each be interpreted as open-ended, meaning that the list should not be viewed as excluding other additional components or items. The term "based on" means based at least in part on. In addition, it will be understood that the phraseology and terminology employed herein are for descriptive purposes and should not be viewed as limiting. Any headings utilized within this description are for convenience only and have no legal or limiting effect.

[0047] Various embodiments disclose systems and methods for ensuring industrial automation. The industrial automation systems and methods disclosed herein provide measures to ensure the integrity of the device. Specifically, if the device is a "dumb" device or a device with limited computing power, such as a field device, a controller on a factory floor, a CNC machine, etc., its security is easily threatened. Therefore, these devices have limited computing power, limited memory, and some may even be powered by batteries, so it is difficult to ensure their integrity with current technology. Therefore, the various methods and systems disclosed herein are based on using blockchain technology to ensure the integrity of these devices. To this end, blockchain technology is used to ensure the integrity of the device. The devices need to record all relevant transactions / operations they perform into the blockchain so that other people on the blockchain network (similar to verifiers) can read the data and ensure the integrity of the device.

[0048] Some embodiments are based on the recognition that this can be done in a variety of ways, like: 1) using blockchain transactions to ensure the integrity of these devices, 2) implementing a lightweight blockchain client on the device side, 3) implementing mandatory login for dumb devices at the kernel level (e.g. via syscall), and 4) using smart contracts. To this end, a combination of all four techniques can be used to ensure the integrity of these devices.

[0049] Various embodiments provide an industrial automation system in which blockchain is used to ensure the integrity of devices that use PLCs as controller computers, and updates to control-level devices (like PLCs) can be performed in an automated and trusted manner. This is accomplished by providing a blockchain-based universal runtime that provides security and integrity of the PLC's operating system in a way that was not possible before. Blockchain can be used to store and distribute firmware and controller updates.

[0050] The operating system of the controller computer is protected by implementing the controller computer as a lightweight client of a blockchain network for implementing a blockchain-based industrial automation network. This blockchain-based industrial automation network provides implicit trust and security due to the way the blockchain network is implemented and constructed. That is, the decentralized nature of the blockchain network guarantees the security and integrity of the industrial automation network and the underlying devices. In addition, the immutability of the blockchain provides auditability.

[0051] An object of some embodiments is to provide a robust and fault-tolerant distributed computing system that also ensures the accountability, trust, and auditability of transactions and individual participants.

[0052] To this end, some embodiments of the present disclosure are based on the advantages of secure recording of audit data, tamper-proof and verifiability, access control and decentralized architecture provided by the permissioned blockchain network. In addition, various embodiments disclosed herein take advantage of the advantages provided by smart contracts in identifying, isolating and preventing malicious actors from threatening the integrity of the overall distributed computing system, and the use of a permissioned blockchain architecture can revoke the privileges of malicious actors (such as read and write related privileges) for troubleshooting purposes. Some embodiments also use a single kernel architecture using syscall to implement a blockchain-based universal runtime for industrial automation systems, thereby providing better transparency and auditability of the overall system.

[0053] Figure 1A The architecture of a blockchain-based industrial automation system 100a according to some embodiments of the present disclosure is illustrated. The blockchain-based industrial automation system 100a includes one or more industrial devices 102, such as industrial device 102a, industrial device 102b, and industrial device 102n, which communicate with at least one controller computer 108.

[0054] One or more industrial devices 102 may include one or more of the sensors and actuators deployed in the industrial automation system 100a. A sensor is a device for measuring one or more process variables in an industrial process. These process variables are related to pressure and temperature measurements, conductivity measurements, flow measurements, pH measurements, filling level measurements, etc., and record corresponding process variables of pressure, temperature, conductivity, pH value, liquid level, flow rate, etc. Actuators are devices for affecting process variables. For example, these include pumps or valves that can affect the flow of liquid in a pipeline or the filling level in a container. To this end, one or more industrial devices 102 also include remote I / O, radio adapters, and general devices arranged at the field level (e.g., in a factory floor) in the industry. The computing resources and power resources available to one or more industrial devices 102 (also referred to as "dumb" devices) are very few. Some industrial devices even use batteries to operate. Therefore, any control operation specified for one or more industrial devices 102 is performed through its communication with at least one controller computer 108.

[0055] In some embodiments, communication between the one or more industrial devices 102 and the at least one controller computer 108 is performed by sending an incoming command 104 of the corresponding industrial device 102 to the at least one controller computer 108. The at least one controller computer 108 uses blockchain technology to authenticate the corresponding industrial device 102 and generates a response 106 to send to the corresponding industrial device 102. The at least one controller computer 108 is configured to authenticate the corresponding industrial device 102 using a connection to a blockchain network 120, which implements blockchain technology for providing a secure, trusted, fault-tolerant, and robust security mechanism to ensure the integrity of the one or more industrial devices 102.

[0056] To this end, at least one controller computer 108 includes one or more components, the one or more components including at least one processor 110, a memory 112, an input unit 114, an output unit, and a bus 118. At least one processor 110 is configured to execute instructions stored in the memory 112. The instructions are executed to perform operations specified for at least one controller computer 108. In one embodiment, these operations are related to the control, management, and operation of one or more industrial devices 102. Specifically, the operation includes authenticating one or more industrial devices 102 based on blockchain technology. To this end, the operation includes instructions related to downloading the latest block and the associated encryption certificate of the latest block from the blockchain network 120. In addition, one or more industrial devices 102 are verified based on the downloaded latest block and the associated encryption certificate, and a response is generated based on the authentication to be sent to the one or more industrial devices 102. The response indicates whether the authentication of the one or more industrial devices 102 succeeds or fails. Therefore, the execution operation related to the operation of the one or more industrial devices 102 controlled by the at least one controller computer 108 is executed or stopped based on the authentication. For example, if authentication is successful, the execution action is performed, but if authentication is unsuccessful, the execution action is blocked or stopped.

[0057] Communications between the at least one controller computer 108 and the one or more industrial devices 102 and the blockchain network 120 are performed via an input unit 114 for receiving incoming data and an output unit 116 for sending outgoing data. Input and output communications between the at least one controller computer 108 and the one or more industrial devices 102 may be performed using a suitable industrial communication protocol, including but not limited to a fieldbus, e.g. Fieldbus, High Speed ​​Addressable Remote Sensor Protocol Control and Communication Link (CC-Link), Common Industrial Protocol (CIP), Ethernet IP, ControlNet, Factory Instrumentation Protocol (FIP), SafetyNET-p, SafetyBUS, etc.

[0058] Input and output communications between the at least one controller computer 108 and the blockchain network 120 are performed using any suitable wired or wireless network communication protocol, including the Internet.

[0059] Communication between the different components within the at least one controller computer 108 is performed using a bus 118. The at least one controller computer includes a memory 112 for storing instructions as described above. The memory 112 may include a random access memory (RAM), a read only memory (ROM), flash memory, or any other suitable memory system. The memory 112 may be a volatile memory unit and / or a non-volatile memory unit. The memory 112 may also be another form of computer readable medium, such as a magnetic disk or optical disk.

[0060] In some embodiments, the memory 112 also stores an operating system associated with the at least one controller computer. The operating system may be based on a single kernel architecture, such that the single kernel acts as a dedicated machine image, wherein any application running on the at least one controller computer 108 is linked to the required kernel functionality in the form of a library. For example, the single kernel may be implemented using known single kernel solutions, including but not limited to MirageOS, u-root, and Linux Kernel Library (LKL).

[0061] To this end, a single kernel is used to provide a lightweight client for a blockchain network 120 running on at least one controller computer 108. The lightweight client also provides edge computing support for the at least one controller computer 108 by delivering specialized computing operations closer to the controlled device (i.e., industrial device 102) (that is, on the edge) and keeping other complex operations (related to the blockchain) away from the edge and pushed to the blockchain network 120.

[0062] In some embodiments, the single kernel is implemented as a universal runtime based on blockchain. The universal runtime includes code, program or software with a managed execution environment. Universal runtime code is code compiled into an intermediate form of a computer language that can be executed across platforms that support different programming languages. The platform or terminal computer can use its native compiler to execute the universal runtime code. To this end, the blockchain network 120 is configured to distribute binary files or compiled copies on the universal runtime to all controller computers connected to the blockchain network 120. In some embodiments, the blockchain network 120 is a permissioned blockchain network, and the universal runtime is implemented by a smart contract associated with the permissioned blockchain network.

[0063] In the context of a blockchain network, a smart contract can be defined as an executable computer program that defines a set of rules, data, and relationships that must be enforced for the execution of the smart contract. Smart contracts are immutable because they cannot be manipulated once they are added to the distributed ledger architecture of the blockchain network for which they are defined. In addition, the nodes or computing systems of the blockchain network call smart contracts to cause transactions, which are then recorded on the blockchain network. Smart contracts act as trusted network services within a permissioned blockchain network and can be used as a tool to ensure the fault tolerance and troubleshooting capabilities of nodes in a permissioned blockchain network. Smart contracts can be distributed to nodes of a permissioned blockchain network in the form of at least one of a source code file or a trusted binary file. In this case, the nodes of the permissioned blockchain network can be one or more controller computers connected to the blockchain network 120. These nodes compile and execute smart contracts and send the execution results of the smart contracts back to the blockchain network 120. Then, the blockchain network 120 authenticates each node by verifying the execution results sent by each node based on a verification algorithm such as a consensus algorithm (similar to a proof-of-work algorithm or a proof-of-stake algorithm).

[0064] In some embodiments, the smart contract may include rules related to device state data of one or more industrial devices 102, which is sent from one or more industrial devices 102 to at least one controller computer 108 via an incoming command 104. The incoming command may be a firmware update command, an industrial automation process execution command, an industrial automation variable update command (e.g., a temperature or pressure update), etc. The device state data is associated with the corresponding incoming command and verified by executing the smart contract by at least one controller computer 108, and the verification result is published back to the blockchain network 120.

[0065] In some embodiments, at least one controller computer 108 downloads only the latest block from the blockchain network 120 instead of the entire blockchain copy, so as to implement a lightweight blockchain client on the at least one controller computer 108. The latest block includes the latest updated copy of the smart contract. Then, the execution of the smart contract results in the verification of one or more industrial devices 102 connected to the at least one controller computer 108. In addition, access to the smart contract or the universal runtime provided by the latest block of the blockchain network 120 is completed via a syscall that acts as an API for accessing a single kernel.

[0066] To this end, at least one controller computer 108 is configured to receive updates from the blockchain network 120, and these updates are signed and encrypted so that only the intended controller computer 108 can interpret the update. To this end, at least one controller 108 is configured to download the latest block from the blockchain network 120. Each block on the blockchain network 120 is associated with a unique encryption certificate. The encryption certificate is used to authenticate the corresponding block. Therefore, when at least one controller computer 108 receives an update from the blockchain network 120, it is in the form of the latest block and the block's associated encryption certificate. The update intended for at least one controller computer 108 is then signed by the updater using asymmetric encryption (public and private keys) to provide traceability and encrypted using the public key of the at least one controller computer 108 in question.

[0067] The updates are received by at least one controller computer 108 based on a set of rules or subscription guidelines included in a blockchain-based universal runtime or monolithic kernel running on at least one controller computer 108. Thus, each controller computer 108 is able to subscribe to the blockchain network 120 for block updates. If the blockchain-based universal runtime cannot interpret the block, i.e., it cannot successfully decrypt the contents of the block using its private key, it means that the block does not contain the relevant update and discards it. If the blockchain-based universal runtime is able to successfully decrypt and thus interpret the block update, it checks the associated encryption certificate to ensure that the block update is valid, i.e., the current block can be reached from the initial block. If the block is valid, the update is applied to the at least one controller computer 108.

[0068] In this manner, the integrity of the low-computing and low-power (or “dumb”) industrial devices 102 is verified via at least one controller computer 108 using secure blockchain technology.

[0069] The at least one controller computer 108 comprises an industrial control layer device such as a stored program control (SPC) device or a PLC device. Figure 1B An example of a PLC-based industrial automation system is illustrated.

[0070] Figure 1B Illustrate the use of some embodiments according to the present disclosure Figure 1A The PLC-based system 100b includes a sensor 102a and one or more manual input sources 102b (eg, field personnel or machine operators). The sensor 102a and the manual input source 102b represent Figure 1A One or more industrial devices 102 discussed in .

[0071] Sensor 102a is communicatively coupled to PLC 108a having a blockchain-based universal runtime 112a. Manual input source 102b is communicatively coupled to PLC 108b having a blockchain-based universal runtime 112b. PLCs 108a and 108b are equivalent to Figure 1A At least one controller computer 108 is shown.

[0072] PLCs 108a and 108b are also communicatively coupled to the factory automation blockchain network 120 (with Figure 1A The factory automation blockchain network 120 may also be connected to one or more network clients 122. The one or more network clients 122 are computing systems that may be used to implement some computationally and power-intensive functions related to the factory automation blockchain network 120. These functions may include, for example, participating in the consensus algorithm, acting as a full node to store a copy of the factory automation blockchain network 120, generating transactions for the factory automation blockchain network 120, acting as a miner, and minting rewards from the factory automation blockchain network 120.

[0073] The factory automation blockchain network 120 is used to securely update a PLC (e.g., PLC 108a or PLC 108b) and also ensure the integrity of its operating system or program. To this end, the factory automation blockchain network 120 acts as a trusted source of truth for firmware updates of the PLC 108, which helps to ensure the security and integrity of the PLC 108 and its related industrial devices 102. At the same time, the firmware updates distributed by the factory automation blockchain network 120 help make the maintenance and management of the PLC auditable and tamper-proof.

[0074] Some embodiments provide an industrial automation system 100b that prevents tampering by a production line operator who provides one or more manual inputs 100b. In current industrial systems, operators have direct access to the PLC and can make adjustments on the fly without an auditable trail, such as manual inputs 102b being passed directly to the PLC 108b without any monitoring and authentication. This is changed in the industrial automation system 100b so that the operator who generates the manual input 102b interacts with the PLC 108b by sending an incoming command 104b that is verified by the PLC 108b using a blockchain-based universal runtime 112b, which is implemented using a single-core architecture and a factory automation blockchain network 120. Upon successful verification, the command is passed to the underlying PLC 108b, which sends a response 106b to the operator 102b regarding the successful execution of the command.

[0075] In some embodiments, the blockchain-based universal runtime 112 includes a copy of the operating system that is distributed by the blockchain network 120 to all PLCs 108 connected to the blockchain network 120.

[0076] The blockchain network 120 provides the industrial automation system 100b with a trusted source of truth against which a blockchain-based integrated monolithic kernel in the form of a blockchain-based universal runtime 112 can check. The blockchain-based integrated monolithic kernel can download blocks with the latest updates at random times and check program equality by hashing, etc. This provides a level of system integrity that would not be possible without a blockchain-based system.

[0077] The blockchain-based universal runtime 112 provides blockchain client functionality on controller computers 108 such as PLC 108a and PLC 108b and libraries that provide PLC system features. These libraries include, but are not limited to, I / O, IEC 61131-3 compliance, and libraries that interface with one or more industrial devices 102. These libraries are built using modern programming language tool chains (including but not limited to Go or C++) to generate a single binary file that can be loaded onto the ROM module of PLC 108a and 108b.

[0078] In some embodiments, the PLCs 108a and 108b are configured to receive updates from the factory automation blockchain network 120, and these updates are signed and encrypted so that only the intended PLC can interpret the update. To this end, a unique encryption certificate is associated with each PLC, and using asymmetric encryption (public and private keys), the update intended for a specific PLC is signed by the updater to provide traceability and encrypted using the public key of the PLC in question. The blockchain-based universal runtime 112 on each PLC subscribes to the factory automation blockchain network 120 for block updates. If the blockchain-based universal runtime 112 cannot interpret the block, that is, it cannot successfully decrypt the contents of the block with its private key, it means that the block does not contain the relevant update and discards it. If the blockchain-based universal runtime 112 is able to successfully decrypt and thus interpret the block update, it checks the associated encryption certificate to ensure that the block update is valid, that is, the current block can be reached from the initial block. If the block is valid, the update is applied to the PLC.

[0079] In this way, the industrial automation system 100b can achieve Figure 1A An architecture for blockchain-based industrial automation with high security, trust, fault tolerance, and verifiability.

[0080] Figure 1C Another architecture for implementing a blockchain-based industrial automation system is shown in FIG.

[0081] Figure 1CAnother architecture of an industrial automation system 100c according to some embodiments of the present disclosure is illustrated. The architecture of the industrial automation system 100c is substantially similar to that of the industrial automation system 100a, with the only exception of having an additional server computing system 124 on top of the controller computer 108 for interacting with the blockchain network 120.

[0082] Similar to the blockchain-based industrial automation system 100a, the blockchain-based industrial automation system 100c includes one or more industrial devices 102, such as industrial device 102a, industrial device 102b, and industrial device 102n, in communication with at least one controller computer 108. The communication between the one or more industrial devices 102 and the at least one controller computer 108 is performed by sending an incoming command 104 of the corresponding industrial device 102 to the at least one controller computer 108. The at least one controller computer 108 uses blockchain technology to authenticate the corresponding industrial device 102 and generates a response 106 to be sent to the corresponding industrial device 102. The at least one controller computer 108 is configured to authenticate the corresponding industrial device 102 by using a connection to a blockchain network 120 via a server computing system 124.

[0083] As previously described, at least one controller computer 108 includes one or more components, including at least one processor 110 and a memory 112, etc. (previously shown in Figure 1A To this end, the server computing system 124 may also include a processor and a memory, but may be configured with a higher computing capability than the at least one controller 108.

[0084] To this end, the server computing system 124 is configured to provide the previously combined Figure 1A and Figure 1B The server computing system 124 is configured to act as an interface between the at least one controller computer 108 and the blockchain network 120.

[0085] In some embodiments, the server computing system 124 is configured to receive updates from the blockchain network 120 based on subscription rules included in a smart contract or a monolith associated with at least one controller computer 108. At least one controller computer 108 can send a copy of the smart contract to the server computing system 124. The server computing system 124 receives the update in the form of the latest block and its associated cryptographic certificate. The server computing system 124 then uses its associated cryptographic certificate to authenticate the block and communicates the authentication result to the at least one controller computer 108.

[0086] In some embodiments, at least one controller computer 108 is configured to send an incoming command 104 (e.g., any of the incoming commands 104a-104c) to the server computing system 124. The server computing system 124 is then configured to download the latest block and the associated cryptographic certificate of the latest block from the blockchain network 120. The server computing system 124 is then configured to authenticate the incoming command of the at least one controller computer 108 based on the downloaded latest block and the associated cryptographic certificate. To this end, the server computing system 124 is configured to check whether the incoming command is included in the valid command list included in the downloaded latest block. Based on the authentication result, the server computing system 124 is configured to generate a response for controlling the execution operation on the at least one controller computer 108.

[0087] A common implementation of architecture 100c is through Figure 1D The Supervisory Control and Data Acquisition (SCADA) system shown.

[0088] Figure 1D Illustrate the use of some embodiments according to the present disclosure Figure 1C A block diagram of an example of the architecture of a SCADA-based system 100d.

[0089] The SCADA-based system 100d includes one or more industrial devices 102, such as industrial device 102a and industrial device 102b. Industrial device 102a includes a sensor, and industrial device 102b corresponds to the manual input device in the example. Manual input can be provided to the industrial field device by a field or machine operator. The industrial device 102 is connected to at least one controller computer 108 (e.g., controller computer 108a and controller computer 108b) using any industrial communication protocol described earlier. At least one controller computer 108 can be a PLC, such as PLC 108a and PLC 108b. Each PLC is then connected to a server computing system 124 (centralized SCADA server in the industrial automation system 100d). The centralized SCADA server 124 is also connected to a SCADA database 126, which stores data associated with the control, process, and authentication of the industrial device 102. In some embodiments, the SCADA database 126 stores data unloaded to the SCADA database 126 by the centralized SCADA server 124. Such data may be related to blockchain-related data, such as blockchain replicas, smart contracts, monolithic kernels, etc. The centralized SCADA server 124 is also connected to one or more network clients 122, which may also be connected to the blockchain network.

[0090] SCADA is a centralized system that manages PLCs and provides features such as updating PLCs and logging data from PLCs. Previously, supervisory level systems were isolated from the internet. However, as supervisory systems are increasingly connected to the internet, this greatly increases the attack surface of industrial systems that were not designed with cybersecurity in mind. Additionally, PLCs run specialized monolithic operating systems, which makes it affordable for hackers to attempt to find vulnerabilities at the OS level that is accessible through the internet. Lastly, the requirements of most industrial systems make it difficult to apply software updates and security patches to the system. But this is avoided in industrial system 100d by using a single kernel in the PLC that is only updated based on updates provided by the blockchain network that is connected to the centralized SCADA network 124. This may be Figure 1C The same blockchain network 120 is shown, sending updates that are managed by a smart contract and are in the form of the latest block of the blockchain network 120 and its associated cryptographic certificate.

[0091] To this end, the centralized SCADA server 124 may obtain the smart contract from the blockchain network 120 and store it in the SCADA database 126. The centralized SCADA server 124 also receives the latest block from the blockchain network 120 in the event of any update, authenticates the block using its associated encryption certificate and smart contract, and passes the authentication result to the PLCs 108a and 108b. If the authentication is successful, the PLCs 108a and 108b are updated, for example, by updating their single kernels. If the authentication is unsuccessful, the update is not passed to the PLCs 108a and 108b.

[0092] In some embodiments, the authentication of the centralized SCADA server 124 results in the invocation of one or more types of system call (hereinafter also referred to as syscall) requests to the single kernel of the PLCs 108a and 108b. The call result is then sent back to the centralized SCADA server 124, which checks whether the result is valid. If the result is valid, the update received from the blockchain network 120 is applied to the PLCs 108a and 108b. If the result is invalid, the update is discarded.

[0093] In some embodiments, when PLCs 108a and 108b receive any incoming commands, for example, from their corresponding industrial devices 102a and 102b, respectively, the incoming commands are sent to the centralized SCADA server 124. The centralized SCADA server 124 is then configured to download the latest block and the associated encryption certificate of the latest block from the blockchain network 120. The centralized SCADA server 124 is then configured to authenticate the incoming commands of at least one controller PLC 108 based on the downloaded latest block and the associated encryption certificate. To this end, the centralized SCADA server 124 is configured to check whether the incoming command is included in the valid command list included in the downloaded latest block. Based on the authentication result, the centralized SCADA server 124 is configured to generate a response for controlling the execution operation on at least one PLC 108.

[0094] In any of the above scenarios, the PLC 108a does not need to perform most of the processing, and most of the blockchain-based authentication and calculation tasks are offloaded to the centralized SCADA server 124. This helps integrate the security and trust mechanisms built into blockchain technology at the industrial automation and device level without requiring a lot of computing power from terminal field devices and controller devices like PLCs. In addition, the centralized SCADA server 124 also helps to implement lightweight blockchain clients even at the centralized SCADA server 124 level by only downloading the latest block of the blockchain network instead of downloading an entire copy of the blockchain network for authentication.

[0095] To this end, the lightweight centralized SCADA server 124 is also connected to one or more network clients 122. One or more network clients 122 are computing systems that can be used to implement some computing and power intensive functions related to blockchain technology. These functions may include such as participating in consensus algorithms, acting as a full node to store a copy of the entire blockchain network, generating transactions for the industrial automation system 100d, acting as a miner, and minting rewards from the blockchain network 120.

[0096] When combined Figure 1A , Figure 1B and Figure 1C When looking at Figure 1D The architecture of the industrial automation system 100d shown is used to implement an industrial automation system with edge computing.

[0097] Edge computing provides a decentralized infrastructure for computing, where computing resources and application services can be distributed among the participants of the edge computing system. "Edge" can refer to the data point where the data is actually collected or used to be acted upon. Edge computing offers several advantages, such as high throughput, reduced response time, better data privacy and data security, and sometimes even reduced operating costs. For applications such as Figure 1A , Figure 1B , Figure 1C and Figure 1D For any of the systems discussed in the Industrial Automation section, the edge computing system architecture can be used as Figure 2 The control layer stack shown is represented.

[0098] Figure 2 A block diagram of a control layer stack 200 for an industrial automation system according to some embodiments of the present disclosure is illustrated. The control layer stack 200 includes a field level 202, a control level 204, and a supervisory level 206. The field level 202 includes one or more industrial devices 102, such as sensors and actuators 208. The control level 204 includes at least one controller computer 108, such as a PLC 210. The supervisory level 206 includes a server computing system 124, such as an industrial PC 212.

[0099] In some embodiments, the PLC 210 is an internal component of the control plane 204 of the control layer stack 200 in the industrial automation system. The PLC 210 is configured to interface with many other devices, such as devices from the field level 202 or other PLCs. The PLC 210 also interfaces with devices from higher levels (i.e., with the industrial PC 212 of the supervisory level 206). The industrial PC 212 of the supervisory level 206 consists of a commodity PC running a standard operating system with special software that can interface with devices from lower levels. To this end, the industrial PC 212 can act as a Figure 1D The centralized SCADA server 124 is shown. One or more of the control plane 204 and the supervisory plane 206 are also configured to communicate with the blockchain network ( Figure 2 An interface (not shown) is provided to implement the functions of the blockchain-based industrial automation system described in the previous embodiments.

[0100] To this end, the devices of one or more of the control plane 204 and the supervisory plane 206 are configured to exchange messages with the blockchain network using a communication protocol that depends on the protocol of the blockchain network. These protocols may include protocols such as Hyperledger protocol, multi-chain protocol, protocol implemented using Ethereum blockchain, protocol implemented using Solana blockchain, etc.

[0101] Various embodiments provide for implementing a control layer stack 200 in a customized manner, wherein control operations and computation operations are distributed between different layers to achieve the edge computing advantages of the previously disclosed blockchain-based industrial automation system. Broadly speaking, the control operations and computation operations include one or more of the following: 1) collecting industrial device data; 2) authenticating an industrial automation system (e.g., as an example, Figure 1A1) updating the industrial automation system 100a shown; 3) authenticating commands provided to industrial devices; and 4) providing blockchain-based verifiability for commands and updates to the industrial automation system. Among these, the most computationally intensive functions include control operations and computation operations 2, 3, and 4. These control operations and computation operations can be distributed between the control plane 204 and the supervisory plane 206 based on the preferred edge computing architecture deployment of the control layer stack 200.

[0102] To this end, the control layer stack 200 can be configured to provide Industrial Internet of Things (IIoT) capabilities based on a customized edge computing architecture installation. As control is passed from bottom to top, the various layers of the control layer stack 200 become more complex and aggregate multiple system functions. The computing layer moves up the architectural stack, aggregating processing power, information, and data from below. The goal of any implementation is to perform fast and localized computing at the edge, while global computing, model development, management, and security can benefit from the "cloud wisdom" provided in the blockchain network implemented above the supervisory layer 206.

[0103] For example, in a thermal power plant setting, the problem to be solved may be to maintain the correct amount of temperature for the furnace. In this case, the edge device can be a pump that circulates water in the cooling pipes of the furnace and always maintains the desired flow of water or coolant in the pipes to maintain the temperature requirements. Therefore, at the field level 202, there may be a temperature sensor that collects temperature data of the cooling pipes and sends it to the edge computing device of the control level 204, which will run the control algorithm and adjust the flow of the liquid through the pump to adjust the temperature. If the purpose is to coordinate temperature across multiple devices or areas, the edge becomes the temperature controller of the control level 204 (whether a separate component or an independent system), and the edge computing layer becomes the system that coordinates the control (usually PLC 210 or SCADA system 212).

[0104] In some other embodiments, the PLC 210 is configured to receive updates to the operating system or single kernel running thereon and authenticate the update as valid before applying it. This is shown in Figure 1B In this case, the PLC 210 becomes an edge device.

[0105] So, use Figure 1A , Figure 1B , Figure 1C and Figure 1D The blockchain-based industrial automation system shown and used Figure 2The control stack architecture of the blockchain can realize a blockchain-based industrial automation system that supports customized edge computing and IIoT. Such a system can take advantage of the security, accountability, verifiability and reliability of the blockchain system and the faster computing, shortened turnaround time, better data privacy, less or selective data exposure and better scalability provided by the edge computing architecture. To this end, the combination of edge computing and blockchain-based industrial automation is implemented using a lightweight client closer to the edge level.

[0106] Figure 3 A block diagram of a blockchain system 300 supporting one or more lightweight clients according to some embodiments of the present disclosure is illustrated. The blockchain system 300 includes one or more lightweight clients or nodes of a blockchain network 308: lightweight client 302 and lightweight client 304. Lightweight client 304 also includes embedded device 306. The functionality of blockchain network 308 is similar to Figure 1A , Figure 1B and Figure 1C A blockchain network 120 is shown.

[0107] Lightweight clients 302 and 304 may include any modern computer, such as an embedded computer, a laptop computer, a mobile phone, a smart phone, a tablet, a smart watch, a wearable computer, a point of sale (POS) terminal, a kiosk, a routing device, a monitoring terminal of a power plant, an electric meter, etc. To this end, lightweight clients 302 and 304 may be Figure 1A , Figure 1B , Figure 1C and Figure 1D At least one controller computer 108 is shown. In some embodiments, lightweight clients 302 and 304 may be Figure 1C and Figure 1D Server computing system 124 is shown.

[0108] Some embodiments are based on the recognition that lightweight clients are computers with limited computing power, such as the PLCs and SCADA servers discussed in conjunction with the previous figures. Therefore, these lightweight clients cannot store a complete copy of the blockchain 308 to which they belong. However, using the embodiments and architectures of the industrial automation system discussed in the previous embodiments, even these lightweight systems with low computing power can be fully trusted, secure, and efficient to monitor any malicious behavior. This may be due to the combination of smart contracts, single kernels, and latest block-based authentication implemented in the industrial automation systems 100a-100d disclosed in the various embodiments described herein.

[0109] In some embodiments, lightweight clients 302 and 304 are implemented using a zero-knowledge proof process (e.g., in zksnarks). zk-SNARKs or zero-knowledge succinct non-interactive arguments of knowledge based systems are based on the concept of zero-knowledge proofs. A zero-knowledge proof is a situation where each of the two parties in a transaction is able to verify to each other that they have a certain set of information without revealing what that information is. Zero-knowledge proof based systems provide better privacy and security in blockchain based lightweight client implementations compared to traditional cryptographic based systems known in the art.

[0110] In some embodiments, lightweight clients 302 and 304 are implemented using software libraries and APIs, such as Bitcoin's BIP37, Electrum lightweight clients, filter commitments such as Bloom filters using Bitcoin's BIP 37, Electrum's reveal addresses, Bloom filters supporting Dogecoin, etc. Using filter-based commitments, a lightweight client receives a filter of all transactions or addresses in a given block. The lightweight client then requests a block if the filter matches its address / transaction.

[0111] In some embodiments, a lightweight client (e.g., node 302) is configured to download the latest block associated with blockchain 308 and authenticate an update operation intended for node 302 based on the latest downloaded block and its associated cryptographic certificate. The update operation may be, for example, a firmware update operation, a command execution operation, or the like.

[0112] Various embodiments further provide that the blockchain network 308 is a permissioned blockchain network. Thus, the node 302 (or equivalently, the node 304) is configured to exchange messages with other nodes in the permissioned blockchain network 308 to coordinate the actions of all nodes that are part of the permissioned blockchain network 308. This coordination is then completed to reach a consensus among all nodes in the permissioned blockchain network 308 on the current state of the permissioned blockchain network 308 according to a distributed computing program (commonly referred to as a consensus algorithm). One example of a consensus algorithm that the permissioned blockchain network 308 can use to reach consensus is a Practical Byzantine Fault Tolerance (PBFT) algorithm, in which a node is configured to receive confirmations from all other nodes in the permissioned blockchain network 308 regarding the validity of the node's transactions. Consensus is then reached based on the total number of confirmations received by the node.

[0113] Various embodiments provide that the smart contract is stored on node 302 (or node 304) as part of the node's monolithic kernel program. The monolithic kernel is an operating system that nothing runs on top of. The monolithic kernel is received in the form of a smart contract, which is distributed to all nodes connected to the blockchain network 308. The smart contract is then called using a syscall at the device level (in this case, the lightweight client 302 or 304). The syscall is part of the monolithic kernel. In some embodiments, the smart contract may also be the operating system of the lightweight client 302 or 304, or may be part of the operating system. This will be discussed in conjunction with Figure 4A and Figure 4B Further description.

[0114] Figure 4A Illustrated is a block diagram showing components of a computing system 402 including a memory 404 and a processor 406. The memory 404 also includes a user space 404 and a kernel space 410. The computing system 402 may represent at least one controller 108 or central computing server 124 described previously.

[0115] The memory 404 of the computing system 402 includes a portion for storing user programs, such as applications, application data, APIs, software or code libraries, stored procedures, algorithms, computer instructions, user files, etc. This portion is the user space 408. The user programs in the user space 408 are usually written in any known high-level language, such as C#, C++, Java, Python, Solidity, JavaScript, etc. The user space 408 may also include various processes, such as industrial control processes, business processes, or network interface processes, which define algorithms and logic instructions for performing one or more functions. The functions are application-specific. One of the types of user programs in the user space 408 is a smart contract. The smart contract defines enforceable rules that are executed when the smart contract is executed. The execution of the smart contract can then call one or more processes that need to access system (operating system) resources. System resources are stored in a portion of the memory 404 that is separated from the user space 408 (referred to as the kernel space 410).

[0116] Kernel space 410 defines the portion of memory 404 that stores the core of computing device 402 in the form of an operating system and its associated programs. Kernel space 410 stores specialized programs that implement interfaces to various system resources such as hardware and file systems. Kernel space 410 may include specialized programs and data, such as device drivers, memory managers, I / O managers, process managers, etc. Typically, kernel space programs are written in a low-level language such as C.

[0117] System resources covered by kernel space 410 can be accessed from user space 408 processes through dedicated requests sent to kernel space 410 in the form of system calls or syscalls 412. Each resource access requires a separate syscall 412. Figure 1A , Figure 1B , Figure 1C and Figure 1D In the blockchain-based industrial automation system shown, the kernel space 410 includes a single kernel, which is a dedicated independent kernel that is specialized at compile time. The single kernel stores instructions dedicated to a specific type of application. The attack surface of the single kernel is limited to the dedicated application it is designed for because it is compiled directly into the application space. Due to its limited attack surface, the single kernel is more suitable for edge computing applications than the macro kernel. Because it is application-specific, the single kernel is also more suitable for lightweight clients.

[0118] Various embodiments are based on the recognition that the core 410 storing a single core is used to implement an edge computing architecture, such as in combination with Figure 2 In addition, a single core is used to Figure 1A , Figure 1B and Figure 1C A lightweight client is implemented on at least one controller computer 108 or server computing system 124 associated with the blockchain network 120 described in the specification.

[0119] Some embodiments are based on the recognition that a single kernel includes binary files that are compiled at application time. These binary files are received as updates from the blockchain network 120 and then authenticated by at least one controller computer 108 or server computing system 124 based on the download of the latest block of the blockchain network 120, as described in previous embodiments.

[0120] Some embodiments are also based on the recognition that a single kernel is obtained as a copy of a smart contract distributed by the blockchain network 120, and the invocation of the smart contract results in the verification of its authenticity using the latest block of the blockchain network 120. Therefore, the single kernel is common to all participants of the blockchain network and is also visible to all participants of the blockchain network 120 by invoking its corresponding smart contract.

[0121] Some embodiments provide a single kernel as a general runtime software or code accessed using syscall 412 .

[0122] Figure 4B A block diagram illustrating a general runtime implementation of a single kernel in a blockchain-based industrial automation system 400b according to some embodiments of the present disclosure is illustrated. The blockchain-based industrial automation system 400b is respectively equivalent to Figure 1A , Figure 1B , Figure 1C and Figure 1D Blockchain-based industrial automation systems 100a, 100b, 100c, and 100d are shown. Blockchain-based industrial automation system 400b includes at least one controller computer 108, which is shown as computing system 402. Alternatively or in addition, blockchain-based industrial automation system 400b includes at least one server computing system 124 as computing system 402. Computing system 402 is connected to blockchain network 414. Blockchain network 414 is equivalent to Figure 1A , Figure 1B and Figure 1C The blockchain network 120 described in .

[0123] As previously in Figure 4A As discussed in , computing system 402 includes user space 408. User space 408 includes one or more application programs, such as program 1 408a and program N 408b. In some embodiments, these applications are configured for industrial control applications. For example, the application program can be a control program for temperature control, pressure control, maintaining industrial control process variables within predefined limits, opening and closing schedules of valves, etc. The application program can be written using known programming languages ​​for industrial automation, such as ladder diagrams, function block diagrams, statement lists, logic functions, etc. To this end, computing device 402 can be a PLC device or a SCADA computer, and the application program is a corresponding control program for the industrial control application.

[0124] Additionally, computing system 402 includes kernel space 410 , which also includes a general purpose runtime or single kernel 410 a and a hardware abstraction layer 410 b .

[0125] In one embodiment, the single kernel 410a includes binary files for operating the computing device 402, and the single kernel 410a is common to all of these computing devices connected to the blockchain network 414. The blockchain network 414 is equivalent to Figure 1A , Figure 1B and Figure 1C 1. The blockchain network 414 is an industrial automation blockchain network of the blockchain network 120 shown. To this end, the blockchain network 414 distributes the verified universal runtime to all nodes or computing devices 402 connected to the blockchain network 414 to ensure the integrity, security, and trust of the single kernel 410 that is important for the reliable operation of the computing device 402. To this end, the computing device 402 can be Figure 1A and Figure 1BAt least one controller computer 108 or PLC 108a or 108b, respectively, is shown, and reliable operation of the PLC increases the reliability of the overall industrial automation system to which the PLC 108a or 108b (and any other additional PLCs) belongs.

[0126] In one embodiment, the single kernel 410a is implemented as a smart contract, which is distributed to all participants of the blockchain network 414. To this end, the blockchain network 414 is a permissioned blockchain network 414, in which, as discussed earlier, any transaction is verified by consensus between all participants of the node. In addition, the call of the smart contract results in the call of one or more types of syscall requests, which is the only interface between the user space 408 and the kernel space 410. In one example, the smart contract is called when the general runtime developer completes the update to the general runtime. The general runtime developer can be an organization, party, consortium, open source platform or individual developer who generates these general runtimes for the industrial automation blockchain network. This update is downloaded at the computing device 402 in the form of the latest block download of the blockchain network 414 together with its associated encryption certificate. Before it is installed or applied to the computing system 402, the call of the smart contract is completed by the syscall on the computing system 402. This call results in the execution of some operations specified in the smart contract, and its results are published back on the blockchain network 414. If the results are verified, the updated universal runtime is applied to the computing system 402, if the results are not verified, the updated universal runtime is not applied and an error message may be returned on a display associated with the computing device 402. In addition, an error notification is sent back to the blockchain network 414, advising that an unverified update is circulating. Thus, the blockchain network 414 may be configured for remedial actions.

[0127] In one embodiment, the single kernel 410 is implemented as a smart contract that is called when an incoming command is received at the computing device 402. The command is then verified by executing the smart contract and publishing the execution result of the smart contract on the blockchain network 414 to check whether the command is a valid command. If the verification is correct, the command is executed, otherwise the execution is blocked.

[0128] In one embodiment, the blockchain network 414 distributes a single kernel 410a as a blockchain operating system, where most authentication, processing, and verification are pushed to the blockchain network 414 cloud, and the computing system 402 performs the basic functions of downloading the latest block, executing smart contracts, and publishing the execution results of the smart contracts back to the blockchain network 414 cloud. In the blockchain network 414 cloud, one or more known verification algorithms are used to verify the results, such as proof of work (PoW), proof of stake (PoS), historical proof (in In blockchain), delegated proof of stake (dpos), zero-knowledge proof or zk-SNARKS, etc.

[0129] The single kernel 410a is accessed through a syscall, which also serves as an interface between the computing system 402 and the blockchain network 414. In some embodiments, the syscall Ankur is configured as a dedicated syscall for accessing the blockchain network 414 via a syscall.

[0130] The single kernel 410a, which acts as a universal runtime for all computing devices connected to the blockchain network 414, acts as a universal operating system for all possible hardware from all device manufacturers that subscribe to the blockchain network 414. Hardware-specific and manufacturer-specific OS code is encapsulated in the hardware abstraction layer 410b. The code for the hardware abstraction layer is supplied by the manufacturer, such as the manufacturer of the PLC (in this example, the computing device 402). This allows the PLC manufacturer to retain proprietary functions while still utilizing the trusted universal runtime 410a provided through the blockchain network 414. In this example, a customer or industry owner can purchase their PLC from any supplier and still trust the blockchain network 414 because all participants utilize the same universal runtime 410a components.

[0131] Implementing a blockchain-based industrial automation system in the manner described above provides the security and trust assurance of blockchain technology, provides scalability by providing the convenience of adding or removing any number of computing devices 402 without incurring additional computing costs, because blockchain-related functions are pushed to the network or cloud level, and provides flexibility for hardware manufacturers such as PLC manufacturers, where only proprietary functions are configured by them, while trust management is left to the blockchain provider.

[0132] Figure 5A A flowchart of a method 500 for managing a blockchain-based industrial automation system according to some embodiments of the present disclosure is illustrated. The method 500 is implemented by a processor configured to execute computer-readable instructions stored in a memory. For example, the method 500 is implemented by Figure 1A , Figure 1B and Figure 1C The controller computer 108 shown is implemented, or alternatively or additionally, by Figure 1C and Figure 1D The server computing system 124 is shown implemented.

[0133] The method 500 includes downloading the latest block from the blockchain network at step 502. The blockchain network may be an industrial automation related blockchain network 120. Downloading only the latest block instead of the entire blockchain copy is to make the computing device (e.g., the controller computer 108 or the server computing system 124) executing the method 500 lightweight. Compared to downloading the entire blockchain copy, the processing power required to download and store only the latest block of the blockchain network is much less. Therefore, compared to authentication methods based on downloading the entire blockchain, the method 500 is performed in a more computationally efficient manner.

[0134] In some embodiments, the downloading of the latest block is accomplished by calling a smart contract on a computing device executing method 500. This has been previously described in conjunction with the previous embodiments described above.

[0135] In some embodiments, the smart contract is implemented as a general-purpose runtime or a single kernel that accesses the computing resources of the computing device executing method 500 via one or more syscalls. Figure 4A and Figure 4B Described in detail in .

[0136] In some embodiments, the smart contract acts as the OS that controls the computing device, and the OS is trustworthy because it is distributed by a trust-based blockchain network.

[0137] In some embodiments, the latest block downloaded is completed after the blockchain network initiates an update operation. For a computing device executing method 500, the update operation can be a firmware update operation or an incoming command to perform a related operation.

[0138] Then, at step 504, the update operation is authenticated based on the latest block of the downloaded blockchain network. Authentication of the latest block is accomplished by downloading the latest block and its associated cryptographic certificate at the computing device executing method 500 (e.g., controller computer 108 or server computing device 124). Before the update is installed or applied to the computing device, a call to the smart contract is completed via syscall on the computing device. This call results in the execution of some operations specified in the smart contract, the results of which are published back on the blockchain network. If these results are verified, the update is applied to the computing device, if the results are not verified, the update may result in the generation of an error message. This is also Figure 4A and Figure 4B Detailed description in.

[0139] In one embodiment, when the update operation is related to executing an incoming command on a computing device, step 504 may also include: Figure 5B Some method steps are shown.

[0140] Figure 5BA flowchart illustrating sub-steps of an authentication step or method 504 for managing update operations of a blockchain-based industrial automation system according to some embodiments of the present disclosure.

[0141] Method 504 includes, at step 504a, sending device status data to a computing device in an incoming command. Figure 1A , Figure 1B , Figure 1C and Figure 1D The industrial device 102 shown receives device status data. Incoming commands are also shown as Figure 1A and Figure 1C To this end, the device state relates to an operating state of the corresponding industrial device 102 , which is measured by process parameter data of a process executed at the industrial device 102 .

[0142] At step 504b, the device state data in the incoming command is authenticated based on the latest block downloaded and its associated encryption certificate. To this end, the latest block downloaded includes data associated with a set of valid commands for one or more industrial devices 102, and wherein the incoming command is authenticated so as to be executed when the incoming command is included in the set of valid commands. However, if the incoming command and the device state data included therein are not present in the list of valid commands included in the latest block downloaded, the corresponding incoming command is not verified. Thus, its further execution is inhibited.

[0143] Either way, the results of the authentication performed at step 504 of method 500 are used to determine the further course of action of method 500 .

[0144] To do this, return to the reference Figure 5A At step 506, a response is generated for controlling the operation based on the authentication completed at step 504. The response is generated at the computing device executing method 500. For example, Figure 5C Some additional steps performed in accordance with method step 506 to generate a response are described.

[0145] In one embodiment, method step 506 includes sending control instructions from the computing device to one or more industrial devices connected to the computing device. Figure 1A and Figure 1C, a response 106 generated by at least one controller computer 108 is sent to the one or more industrial devices 102. For example, if the authentication of step 504 is successful, then at step 506b, the response includes a control instruction for modifying the device state of the one or more industrial devices based on the control instruction specified in the incoming command. On the other hand, if the authentication of step 504 is successful, then at step 506b, the response includes preventing the execution of the control instruction on the one or more industrial devices 102. This can be accomplished by displaying an error message, generating an alarm, providing an audio notification, providing a video notification, etc.

[0146] In one embodiment, authentication of at least one incoming command is performed based on the invocation of one or more types of system call (syscall) requests. This occurs when the computing device executing method 500 includes a single kernel and any operation on the computing device is completed via the single kernel using syscall. To this end, the incoming command is at least one of the firmware update command and the industrial process automation command described in the previous embodiment, and is implanted in the industrial automation system. Figure 6 An example of a blockchain-based industrial automation system is shown in FIG.

[0147] Figure 6 A use case 600 of a blockchain-based industrial automation system according to an example implementation of the present disclosure is illustrated. Use case 600 corresponds to a factory floor, which includes one or more industrial devices or manual input operators, such as a production line operator 602, and industrial machines equipped with sensors 604. The factory floor includes one or more PLCs, such as PLC 606, which includes a blockchain-based universal runtime 606a stored in a memory of PLC 606. PLC 606 is connected to a factory automation blockchain network 608 via one or more of a wired or wireless connection. PLC 606 is also communicatively coupled to one or more industrial devices or manual input operators, such as production line operator 602, and industrial machines equipped with sensors 604 through an industrial communication protocol.

[0148] In an illustrative example scenario, the PLC 606 downloads the latest block from the factory automation blockchain network 608. This download results in the invocation of the blockchain-based universal runtime 606a, which further makes one or more syscalls to access the underlying hardware of the PLC 606. The PLC 606 then performs authentication of the downloaded latest block by recording the data collected via the syscall on the factory automation blockchain network 608. The factory automation blockchain network further verifies the data and sends a verification notification back to the PLC 606. The verification done in the blockchain network 608 uses a standard blockchain protocol, similar to POW, POS, etc. The PLC 606 checks the verification results and applies updates on the PLC 606 based on this. For example, the update can be a firmware update that updates the version of the current universal runtime 606a running on the PLC 606.

[0149] In this way, a PLC 606 with limited computing resources can take advantage of the trust and security provided by blockchain technology and can trust firmware provided via an external network (e.g., the Internet).

[0150] Figure 7 An exemplary use case 700 for implementing an industrial automation system based on blockchain technology for verifiable computing according to some embodiments of the present disclosure is illustrated.

[0151] The use case 700 corresponds to a factory floor, which includes one or more industrial devices 704 that manufacture a product 702. The factory floor includes one or more PLCs, such as PLC 706, which includes a blockchain-based universal runtime 706a stored in a memory of the PLC 706. The PLC 706 is connected to a factory automation blockchain network 710 via one or more of a wired or wireless connection. The PLC 706 is configured to download a verification contract 708 from the factory automation blockchain network 710 for executing a verifiable computing command. The PLC 706 is also communicatively coupled to an industrial communication protocol of the one or more industrial devices 704.

[0152] In an illustrative example scenario, PLC 706 downloads the latest block from factory automation blockchain network 710, which includes the latest copy of verification contract 708. This download results in calling blockchain-based universal runtime 706a, which further executes one or more syscalls to access the underlying hardware of PLC 706. PLC 706 then performs authentication of the latest downloaded block by recording the data collected via syscall on factory automation blockchain network 710. Factory automation blockchain network 710 further verifies the data and sends a verification notification back to PLC 706. The verification done in blockchain network 710 uses standard blockchain protocols, such as POW, POS, etc. PLC 706 checks the verification results and applies updates on PLC 706 based on them. For example, the update can be to approve the state sequence of the industrial device and accordingly perform processing operations on product 702 according to verifiable computation execution commands.

[0153] The state sequence corresponds to device state data of industrial device 704. A valid state sequence is identified based on downloaded verification contract 708.

[0154] At a high level, verifiable computation typically involves the following interaction between three parties. The client specifies the function f to be computed and provides input data, denoted as x. The server computes f(x). Finally, the verifier checks the correctness of the result, i.e., y=f(x). The verifiable computation scheme enables the client to generate a cryptographic object that both the server and the verifier use to make sure that the client performs the computation correctly. In the typical setting considered in verifiable computation, the function f and the input x to be verified vary for each instance of the problem. This reflects the typical workload encountered in cloud computing settings, i.e., many single computations from different users. However, the workload encountered in a manufacturing setting (e.g., on a factory floor as shown in use case 700) includes repeatedly applying the same function (i.e., some physical transformation f) to many identical but uniquely identifiable instances of the input xi, where i is within a finite possible set. It is not feasible to directly apply verifiable computation to a manufacturing setting because cryptographic proofs will be generated for each product 702 on the production line. Due to entropy, each proof, although not identical, will be functionally redundant because each proof verifies the same function on the same input. Generating verifiable proofs for each product with the same specifications is computationally wasteful, adds potentially intolerable delays to the manufacturing process, and unnecessarily increases storage requirements by maintaining redundant proofs for each product manufactured.

[0155] However, the blockchain-based factory automation network 710 helps reduce this wasteful computing and storage requirements by making this a blockchain-based verifiable computing system for manufacturing processes. Two main components make up this blockchain-based verifiable computing system: verifiability at the industrial device 704 level and a permissioned blockchain network 710 that reduces the cost of verification computing at the industrial device 704 level.

[0156] Verifiability at the level of industrial devices 704 is achieved by ensuring the verifiability of controllers (i.e., PLCs 706 at the control level of the industrial automation hierarchy). The factory automation blockchain network 710 is used to allow the use of a single certificate to verify all items manufactured according to the same specifications. This verifiability is often desirable because otherwise manufacturing companies lack understanding of the manufacturing processes used by their suppliers. Suppliers are essentially black boxes that provide products that meet specifications. Errors in industrial automation often have outsized impacts because they cause physical failures. For example, small errors in configuration that are almost impossible to detect can be costly to downstream OEMs (original equipment manufacturers); therefore, downstream OEMs often make extra efforts to test upstream products in order to ensure specifications.

[0157] Industrial device 704 has a finite number of atomic operations, each of which can be modeled as a state in a finite state machine. The sequence of states or "state sequence" corresponds to the industrial device 704 that causes the physical transformation, that is, there is a one-to-one relationship between the state sequence and the physical transformation. For these reasons, although the state sequence is equivalent to the physical transformation, the state transition occurs on PLC 706, not on industrial device 704. As PLC 706 transitions through the states in the state sequence, it instructs the corresponding industrial device 704 to perform the operation. At the same time, or after the operation is completed, industrial device 704 returns device state information to PLC 706, such as feedback on the current state of industrial device 704, whether industrial device 704 encounters an error when performing an operation, the configuration of industrial device 704, etc. PLC 706 uses this information to determine whether or not to transition to a subsequent state.

[0158] Thus, verifiability of the manufacturing process performed by the industrial device 704 is achieved.

[0159] Typically, the physical transformations performed by industrial device 704 are implemented using state sequence circuits. The state sequence is a digital representation of the physical transformations within a manufacturing setup. Therefore, the physical manufacturing process can be made verifiable by making the state sequence verifiable. In addition, industrial device 704 can be modeled as a finite state machine, from which it follows that the state sequence can be modeled as a sequence of finite integers,

[0160] s=s0,s1,…,s n ;

[0161] in n represents the total number of states in the state sequence. However, it is not enough to represent the state sequence only as a series of integers, because in many cases, additional information from the industrial device 704 that is not inferred from its current state must also be verified. For example, it is often necessary to ensure that the industrial device is operating with the correct configuration at the beginning of a manufacturing run. In many cases, the industrial device may also return this information as a string, which may represent a configuration ID or a hash of the configuration. It should be noted that the auxiliary information is only useful at certain stages of the operation of the industrial device. That is, the auxiliary information should be linked to the state of the industrial device. Therefore, it is natural to define the state sequence as a series of tuples as follows.

[0162] The state sequence is a digital representation of the physical transformations directed by the PLC and is represented as a sequence of tuples,

[0163] s=(s0,a0),…,(s n ,a n )

[0164] where for any i = 0,…,n, a i Auxiliary data can be an integer, a string, or empty.

[0165] These state sequences are converted into arithmetic circuits for correct distribution to participants, such as PLC 706. Verifiable proofs themselves do not achieve the verifiability of the manufacturing process. Assuming that the verifiable proofs are in some trusted shared location or are distributed to the verifier, the prover (PLC 706) can send a copy of the state sequence to the verifier. However, this will not achieve important aspects of verification, such as an immutable record of attempts to verify physical transformations applied to physical objects and subsequent results, which can certainly be done by using the factory automation blockchain network 710 to distribute verification contracts 708, which contain verifiable proofs embedded therein for verification by PLC 706. In addition, in the absence of a public network built on top of the factory automation blockchain network 710, there is a possibility that manufacturers will be able to obfuscate their results by sending different verifiable proofs to different parties. For these reasons, blockchain is a necessary component for applying verifiable computing to physical manufacturing processes.

[0166] In some embodiments, the verifiable proof is embedded in a smart contract distributed as a verification contract 708. As is well known, smart contracts are programs stored and run on the blockchain; they have their own addresses and are called by sending transactions to their addresses; they are stored on and executed by every full node participating in the blockchain network. Combining the verifiable proof with the smart contract eliminates the need to manage the keys associated with the verifiable proof and the need to trust that all participants receive the same verifiable proof.

[0167] In some embodiments, at step 712, the PLC program is loaded onto the PLC 706, which begins instructing the industrial device 704. Then, at 714, the product 702 is supplied to the industrial device 704. At 716, the industrial device 704 applies physical transformations to the manufactured product; at the same time, the industrial device 704 sends feedback about its operating status and any other auxiliary information to the PLC 706. When the state sequence is complete, at 718, the PLC 706 forwards the state sequence to the network 710 for verification by calling the verification contract 708. At 718, only the verification result and unique identifier of the manufactured item are written to the blockchain network 710. The item then proceeds through the production line to the next industrial device 704.

[0168] Thus, in this manner, industrial devices 704 can be made verifiable by controlling the verifiability of the device under the support of the permissioned blockchain network 710. This is accomplished by verifying the physical transformation in the form of device state data, including verifying the sequence of states representing the physical transformation. The verification proof in the form of the latest copy of the verification contract is downloaded from the blockchain network 710.

[0169] Thus, the various embodiments described herein provide a secure, trust-based, efficient, reliable, scalable, modular, and cost-effective industrial automation system. Furthermore, the fact that lightweight clients can be easily used as fully embedded blockchain nodes to implement the various techniques described herein makes the overall system efficient, scalable, and cost-effective. Furthermore, the presence of lightweight clients also provides for implementing a suitable edge computing architecture on an industrial automation system.

[0170] The above description provides only exemplary embodiments and is not intended to limit the scope, applicability or configuration of the present disclosure. On the contrary, the above description of the exemplary embodiments will provide a feasible description for implementing one or more exemplary embodiments to those skilled in the art. It is conceivable that various changes can be made to the function and arrangement of the elements without departing from the spirit and scope of the disclosed subject matter set forth in the appended claims.

[0171] Specific details are given in the above description to provide a thorough understanding of the embodiments. However, it will be appreciated by those skilled in the art that the embodiments may be practiced without these specific details. For example, the systems, processes, and other elements in the disclosed subject matter may be illustrated as components in block diagram form to avoid obscuring the embodiments in terms of unnecessary details. In other cases, well-known processes, structures, and techniques may be illustrated without unnecessary details to avoid obscuring the embodiments. In addition, similar reference numerals and designations in the various drawings indicate similar elements.

[0172] In addition, various embodiments may be described as processes, which are depicted as flow charts, data flow diagrams, structure diagrams, or block diagrams. Although flow charts may describe operations as sequential processes, many operations may be performed in parallel or simultaneously. In addition, the order of operations may be rearranged. A process may terminate when its operations are completed, but may have additional steps that are not discussed or included in the accompanying drawings. In addition, not all operations in any specifically described process may appear in all embodiments. A process may correspond to a method, a function, a program, a subroutine, a subprogram, etc. When a process corresponds to a function, the termination of the function may correspond to the function returning to the calling function or the main function.

[0173] In addition, embodiments of the disclosed subject matter may be implemented at least in part manually or automatically. Manual or automatic implementation may be performed or at least assisted by the use of a machine, hardware, software, firmware, middleware, microcode, hardware description language, or any combination thereof. When implemented in software, firmware, middleware, or microcode, program code or code segments that perform the desired tasks may be stored in a machine-readable medium. A processor may perform the desired tasks.

[0174] The various methods or processes outlined herein may be encoded as software that can be executed on one or more processors using any of a variety of operating systems or platforms. In addition, such software may be written using any of a variety of suitable programming languages ​​and / or programming or scripting tools, and may also be compiled into executable machine language code or intermediate code that is executed on a framework or virtual machine. Typically, in various embodiments, the functionality of the program modules may be combined or distributed as desired.

[0175] Embodiments of the present disclosure may be embodied as a method, examples of which have been provided. The actions performed as part of the method may be ordered in any suitable manner. Therefore, although illustrated as sequential actions in the illustrative embodiments, embodiments may be constructed that perform the actions in an order different from that shown, which may include performing some actions simultaneously. Although the present disclosure has been described with reference to specific preferred embodiments, it will be understood that various other adjustments and modifications may be made within the spirit and scope of the present disclosure. Therefore, the aspects of the appended claims cover all such changes and modifications that fall within the true spirit and scope of the present disclosure.

Claims

1. A blockchain-based industrial automation system capable of accessing a blockchain network, the blockchain-based industrial automation system comprising: at least one controller computer, the at least one controller computer comprising: at least one processor; and a memory storing instructions that, when executed by the at least one processor, cause the at least one controller computer to: Downloading the latest block and the associated encrypted certificate of the latest block from the blockchain network; authenticating an update operation of the at least one controller based on the downloaded latest block and the associated encryption certificate; and A response is generated based on the authentication to control an execution operation on the at least one controller.

2. The blockchain-based industrial automation system according to claim 1, further comprising: One or more industrial devices, wherein the one or more industrial devices are each configured to send device status data to the at least one controller computer, wherein the device status data is associated with a corresponding incoming command associated with the update operation.

3. The blockchain-based industrial automation system according to claim 1, wherein: The update operation is a verifiable computational execution command associated with verifying device state data of one or more industrial devices based on a verification contract.

4. The blockchain-based industrial automation system according to claim 2, wherein: The one or more industrial devices include one or more of a sensor device and an actuator device.

5. The blockchain-based industrial automation system according to claim 1, further comprising: A server computing system, wherein the at least one controller system is configured to send incoming commands to the server computing system, and the server computing system is configured to: Downloading the latest block and the associated encrypted certificate of the latest block from the blockchain network; authenticating said update operation of said at least one controller computer based on said downloaded latest block and said associated encryption certificate; and The response for controlling the execution operation on the at least one controller computer is generated based on the authentication.

6. The blockchain-based industrial automation system according to claim 1, wherein: The update operation is a firmware update command.

7. The blockchain-based industrial automation system according to claim 1, wherein: The update operation is an industrial automation process execution command.

8. The blockchain-based industrial automation system according to claim 1, wherein: The memory includes a single core for storing the instructions.

9. The blockchain-based industrial automation system according to claim 8, wherein: The single core is associated with an edge computing architecture.

10. The blockchain-based industrial automation system according to claim 1, wherein: The at least one controller is configured to exchange messages with the blockchain network using a communication protocol that is dependent on a protocol of the blockchain network.

11. The blockchain-based industrial automation system according to claim 1, wherein: The at least one controller is configured to exchange messages with the blockchain network using a communication protocol that relies on a protocol of the permissioned blockchain network.

12. The blockchain-based industrial automation system according to claim 1, wherein: The authentication of the update operation is performed based on invocation of one or more types of system call (syscall) requests.

13. A method for providing blockchain-based industrial automation, the method comprising the following steps: Downloading the latest block and the associated cryptographic certificate of said latest block from the blockchain network; authenticating an update operation of at least one controller computer based on the downloaded latest block and the associated encryption certificate; as well as A response is generated based on the authentication for controlling execution of operations on the at least one controller computer.

14. The method according to claim 13, wherein: The step of authenticating the update operation further comprises: sending device status data from one or more industrial devices to the at least one controller computer in an incoming command associated with the update operation; and The incoming command is authenticated based on the device state data and the downloaded latest block and the associated encryption certificate.

15. The method according to claim 14, wherein: The step of authenticating the update operation further comprises: Verifiable computing execution commands associated with verifying the device state data of the one or more industrial devices based on a verification contract are executed.

16. The method according to claim 14, wherein: The downloaded latest block includes data associated with a set of valid commands for the one or more industrial devices, and wherein the incoming command is authenticated for execution when the incoming command is included in the set of valid commands.

17. The method according to claim 16, wherein: The step of generating the response for controlling operations on the at least one controller computer includes allowing control instructions to be sent from the at least one controller computer to the one or more industrial devices, wherein the control instructions are associated with modifying the device status data of the one or more industrial devices.

18. The method according to claim 13, further comprising the steps of: sending incoming commands of the at least one controller computer to a server computing system, wherein the server computing system is configured to: Downloading the latest block and the associated encrypted certificate of the latest block from the blockchain network; authenticating said update operation of said at least one controller computer based on said downloaded latest block and said associated encryption certificate; and The response for controlling the execution operation on the at least one controller computer is generated based on the authentication.

19. The method according to claim 13, wherein: The update operation is at least one of a firmware update command and an industrial process automation command.

20. The method according to claim 13, wherein: The at least one controller includes a memory including a single core for storing one or more computer executable instructions for performing the method of claim 13.

21. The method according to claim 13, wherein: The authentication of the update operation is performed based on invocation of one or more types of system call (syscall) requests.

22. A non-transitory computer-readable storage medium embodied with a program, the program being executable by a processor for performing a method for blockchain-based industrial automation, the method comprising the following steps: Downloading the latest block and the associated cryptographic certificate of said latest block from the blockchain network; authenticating an update operation of at least one controller computer based on the downloaded latest block and the associated encryption certificate; as well as A response is generated based on the authentication for controlling execution of operations on the at least one controller computer.