Blockchain-based systems and methods for industrial automation

A blockchain-based common runtime with a unikernel architecture for PLCs addresses security vulnerabilities in industrial automation by ensuring device integrity and auditability, enhancing system reliability and fault tolerance.

JP7864258B2Active Publication Date: 2026-05-22MITSUBISHI ELECTRIC CORP
View PDF 3 Cites 0 Cited by

Patent Information

Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
MITSUBISHI ELECTRIC CORP
Filing Date
2023-03-09
Publication Date
2026-05-22

AI Technical Summary

Technical Problem

Industrial automation systems face security vulnerabilities and disruptions due to insecure interfaces with external networks, particularly in critical industries, necessitating a secure and reliable connection mechanism.

Method used

Implementing a blockchain-based common runtime for Programmable Logic Controllers (PLCs) using a unikernel architecture to ensure device integrity, privacy, and auditability, with a lightweight blockchain client that verifies computations without downloading the entire blockchain, relying on the latest block and cryptographic certificates.

Benefits of technology

This approach enhances the security and reliability of industrial automation systems by providing fault-tolerant, auditable, and tamper-proof operations, ensuring the integrity of devices and maintaining an immutable audit trail.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 0007864258000003
    Figure 0007864258000003
  • Figure 0007864258000004
    Figure 0007864258000004
  • Figure 0007864258000005
    Figure 0007864258000005
Patent Text Reader

Abstract

A method and system for blockchain-based monitoring and management of an industrial automation system are provided. The industrial automation system comprises a blockchain-based common runtime for a programmable logic controller (PLC) used in the industrial automation system, in the form of a blockchain-integrated unikernel for the PLC. The unikernel is configured to provide functions related to, among other things, security checks available with blockchain technology, an immutable audit trail of operations within the industrial automation system, reliable remote updates of industrial firmware by authenticating updates through the blockchain, and an automated integrity check of controller functions by comparison to the blockchain.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

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

Background Art

[0002] An industrial system is an environment consisting of several components that are related to each other by industrial processes, such as machines, tools, field devices, personnel, support equipment, raw materials, products, etc. Industrial processes are related to the control, production, transportation, monitoring, operation, maintenance, and testing of machinery and equipment in the industrial environment for the purpose of achieving industrial goals. Industrial goals can be related to product manufacturing, product transportation, energy generation, process control, process operation, product transportation, etc. Many of these industrial goals and processes are automated using computing devices in modern industrial automation systems. Therefore, industrial automation systems involve the use of computing devices to operate various machines and processes in industrial systems in order to reduce human intervention and increase the efficiency of repetitive tasks by automating them using calculations. Industrial automation has recently been used in most industries, such as the oil industry, the FMCG sector, the textile industry, manufacturing or production plants, chemical plants, the pharmaceutical industry, the paper industry, etc.

[0003] In these industries, industrial automation includes the automation of process control and machine control functions performed using a series of computing devices. Processes and controls relate to various types of equipment present in the industry, including one or a combination of industrial or field devices such as sensors, actuators, valves, pumps, and pipes; machinery and tools; plant control equipment; temperature and humidity control equipment; and logistics and transportation equipment. Each type of equipment performs functions that form an industrial process. Such industrial processes require control and monitoring, which is done using specialized computing devices used in industry. One such type of device is a programmable logic controller (PLC).

[0004] A PLC (Programmable Logic Controller) is an industrial digital computer used to control manufacturing and plant control processes. A PLC typically consists of three components: a CPU module, I / O modules, and a backplane. The CPU module comprises a central processing unit (CPU), read-only memory (ROM), and random access memory (RAM). The CPU is the computing unit that executes computer instructions comprised of computer programs and operating systems. ROM is a type of non-volatile memory that can retain its contents even when power is lost. This is in contrast to RAM, whose contents are lost when the power is turned off. ROM in a PLC is generally used to store the OS and its associated state. This is due to the requirements of industrial applications where power outages are more frequent, and industrial processes need to resume operations from where they left off during an outage. However, restarting does not flush the system state, which can also be a security risk. Furthermore, I / O modules are components that enable a PLC to interface with other devices, including but not limited to sensors, switches, network connections, and other PLCs. Therefore, I / O modules enable the modularization of functionality within a PLC. In addition, the PLC's backplane is a bus that enables communication between the CPU and the I / O modules.

[0005] Unlike commercial computers, PLCs are highly durable, hard real-time systems; for a system to be considered functioning correctly, it must generate an output in response to an input within a limited time. This is why PLCs are an essential component of the control layer in industrial automation systems. Therefore, the efficient operation of a PLC is a direct parameter for achieving efficient industrial automation solutions. At the same time, the secure operation of a PLC is crucial for ensuring the smooth, reliable, and error-free operation of both critical and less critical industrial functions.

[0006] In some industrial automation systems, the PLC is further connected to a second-level computing device that provides an interface for the PLC to connect to the outside world. While such connectivity is advantageous for providing a better means of efficient monitoring, analysis of industrial processes, and collaboration between or within industries, such interfaceization simultaneously exposes the industrial system to numerous security vulnerabilities, threats, attempts at tampering, and scenarios that could disrupt the entire industrial process. This can have very serious consequences, especially in critical industries such as petrochemicals, energy, and power plants. Therefore, it is desirable to provide a secure and reliable interface for industrial automation systems to connect to the outside world.

[0007] Therefore, an efficient system is needed to control the operation of various processes and equipment in industrial automation systems while simultaneously providing security and smooth operation of industrial processes. [Overview of the Initiative]

[0008] In recent years, blockchain technology has attracted significant attention as one of the safest and most reliable 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 on a computer. Transactions represent changes in the state of a system. Therefore, a digital ledger represents the state of systems such as financial systems, industrial systems, healthcare systems, and educational systems.

[0009] Digital ledgers can be implemented as centralized systems, where all transactions are recorded and changes to these records are preserved, even if the records held by the centralized system do not match those of other systems, and without generating an audit trail of changes made by the centralized system. Another method is a decentralized or distributed method that can record transactions and implement a method for determining consensus among multiple systems. This is useful because it deters a particular system with a distributed system from behaving selfishly and altering the digital ledger in a way that undermines the credibility of the distributed system. This in itself can increase user trust in the distributed system, and for that reason, it can be useful. Blockchain networks are based on such decentralized digital ledger systems.

[0010] A blockchain is an append-only data structure consisting of interconnected blocks, often using a linked list structure. A block is a container of digital information, comprising a header, metadata, and a list of transactions. The header and metadata can include information about the software version, a cryptographic hash used to compress the data size for storage, and a timestamp. A transaction is a list of all transactions involving a digital token, which may be hashed to reduce the data size for storage. A block lists all transactions from one user to another. Transactions between users are realized through transactions between the corresponding digital addresses of those users.

[0011] Transactions in distributed ledgers are almost always implemented using two models: the transaction output (UTXO) model and the account model. In the UTXO model, a transaction has inputs and outputs. In the account model, a transaction is a message, i.e., a list of key-value pairs. One difference between the UTXO and account models is that the UTXO model is stateless, and the system state must be constructed from the genesis block (the starting block). The account model is more flexible than the UTXO model, but it is more expensive in terms of computational requirements because it is more difficult to prove the validity of the system. Therefore, computing requirements can be measured in terms of computing resources such as power, processing power, storage, and operating system requirements.

[0012] Operating systems generally follow two main architectures: monolithic kernel and unikernel. A monolithic kernel is an operating system where high-level virtual interfaces, known as system calls, are provided as APIs on the underlying computer hardware. Monolithic kernels serve two purposes: freeing programmers from the need to worry about the low-level details of the underlying hardware, and providing security to the system by ensuring that processes running on the kernel do not interfere with other processes or the kernel itself. Examples of monolithic kernels include major operating systems such as Linux and OpenBSD. In contrast, a unikernel is a special machine image where applications link to the kernel functions they need in the form of libraries. Examples of unikernels include MirageOS, u-root, and the Linux Kernel Library (LKL). Due to their unique nature, unikernels are lighter and more powerful than monolithic kernels.

[0013] Some embodiments are based on the understanding that the unikernel provides the capability to implement application-specific programming and logic, and that this capability can be used to realize a lightweight blockchain-integrated client. Therefore, lightweight clients can be associated with application-oriented rather than computation-oriented computing systems with limited processing and storage capabilities, such as dedicated computing devices used in industrial automation systems. One such type of dedicated computing device described earlier is a PLC.

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

[0015] Some embodiments are further based on the recognition that the limitations of blockchain-based systems can be overcome by integrating a unikernel into a blockchain-based system to realize lightweight clients such as PLCs.

[0016] Therefore, some embodiments disclosed herein provide an industrial automation system having a blockchain-based common runtime for PLCs by introducing a blockchain-integrated unikernel for PLCs. A key consideration in realizing such industrial automation system solutions is that a common blockchain integration layer can protect the privacy and intellectual property of various users in the industrial automation system and also ensure an immutable audit trail of operations within the industrial automation system.

[0017] Therefore, some embodiments provide encryption technology that enables verification of whether or not calculations were performed on the PLC, and the PLC functions as a lightweight blockchain client to perform the verification.

[0018] Some embodiments are further based on the recognition that realizing such solutions would eliminate the need for these lightweight blockchain clients to download the entire blockchain, which would be too computationally and storagely expensive. Instead, a lightweight blockchain client with the original blockchain state can simply download the latest block and its associated cryptographic certificate from the blockchain to prove that the state transitions associated with the computations performed on the PLC are valid or verified, i.e., it is possible to reach the current block from a previous block.

[0019] Therefore, some embodiments provide a blockchain-based industrial automation system that realizes such a lightweight controller computer, i.e., a PLC, which has at least one processor or CPU associated with it for performing the verifications described above. The blockchain-based industrial automation system provides a distributed, trusted source of information throughout the industrial automation system, to which the PLC and other devices at or above the control level can read and write.

[0020] Therefore, the blockchain network associated with a blockchain-based industrial automation system contains data necessary in the context of industrial automation, including, but not limited to, PLC firmware updates, PLC controller functions, records of commands sent to the PLC, and variables related to the PLC.

[0021] Several embodiments are based on the understanding that a unified API can be provided in a secure and auditable manner for interaction with PLCs. This unified API is implemented at the unikernel level and configured to function as a common runtime by interpreting incoming commands. These incoming commands can be written in a domain-specific language (DSL) or as raw PLC commands, and may be interpreted after first referencing a blockchain network to verify their validity. If valid, a record of the command is sent as a transaction and recorded on the blockchain network. This is done to provide auditability across the entire blockchain-based industrial automation system, which lacks such auditability in existing industrial automation systems. Once validated, the incoming commands are passed to the PLC and executed.

[0022] According to one embodiment of the present disclosure, a blockchain-based industrial automation system is provided that can access a blockchain network. The blockchain-based industrial automation system comprises at least one controller computer, such as a PLC, which comprises at least one processor, such as a CPU, and memory (such as ROM) in which instructions are stored, and which, when executed by the at least one processor, cause the at least one controller computer to perform an operation. The operation includes downloading the latest block and the cryptographic certificate associated with the latest block from the blockchain network. Using the downloaded latest block and the associated cryptographic certificate, an update operation, such as an incoming command, is authenticated on the at least one controller. Based on the authentication, a response is generated from the operation to control the operation to be performed on the at least one controller.

[0023] In some embodiments, authentication of at least one command is performed based on the invocation of one or more types of system call (syscall) requests.

[0024] In some embodiments, the blockchain-based industrial automation further comprises one or more industrial devices. These industrial devices include one or more sensor devices and actuator devices, each configured to transmit device status data to at least one controller computer. The device status data is associated with corresponding incoming commands.

[0025] Some embodiments provide a server computing system on top of at least one controller computer, the at least one controller computer configured to send incoming commands to the server computing system, and the server computing system configured to perform operations previously performed by the at least one controller computer. These operations include downloading the latest block and its associated cryptographic certificate from the blockchain network. Furthermore, the incoming commands of the at least one controller computer are authenticated based on the downloaded latest block and its associated cryptographic certificate. Finally, based on the authentication, a response is generated to control the operations on the at least one controller computer.

[0026] Some embodiments are based on the understanding that incoming commands are one of several types, such as firmware update commands or industrial automation process execution commands.

[0027] In some embodiments, the memory includes a unikernel for storing instructions to implement a blockchain-based industrial automation system. In some embodiments, the unikernel is associated with an edge computing architecture.

[0028] In various embodiments, messages are exchanged between at least one controller computer and a blockchain network using a communication protocol that relies on the protocol of the blockchain network. The protocol may be, for example, the protocol of a permissioned blockchain network.

[0029] In some embodiments, blockchain-based industrial automation is used to execute verifiable computing commands.

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

[0031] [[ID=第十二]]According to one embodiment, a non-transitory computer-readable storage medium having a program executable by a processor to implement the above-described method for providing blockchain-based industrial automation is disclosed.

Brief Description of the Drawings

[0032] [Figure 1A] It is a diagram showing the architecture of an industrial automation system according to some embodiments of the present disclosure. [Figure 1B] It is a block diagram of an example of a programmable logic controller (PLC)-based system using the architecture of FIG. 1A according to some embodiments of the present disclosure. [Figure 1C]This figure shows another architecture of an industrial automation system according to some embodiments of the present disclosure. [Figure 1D] This is a block diagram of an example of a Supervisory Control and Data Acquisition (SCADA) based system using the architecture shown in Figure 1C, according to some embodiments of the present disclosure. [Figure 2] This is a block diagram of a control layer stack of an industrial automation system according to some embodiments of the present disclosure. [Figure 3] This is a block diagram of a blockchain system supporting lightweight clients according to some embodiments of this disclosure. [Figure 4A] This diagram shows components of user space and kernel space in a computing system according to some embodiments of this disclosure. [Figure 4B] This block diagram shows the execution of a unikernel common runtime in a blockchain-based industrial automation system according to some embodiments of the present disclosure. [Figure 5A] This is a flowchart illustrating a method for managing a blockchain-based industrial automation system according to some embodiments of this disclosure. [Figure 5B] This is a flowchart of another method for managing a blockchain-based industrial automation system, according to some embodiments of this disclosure. [Figure 5C] This is yet another flowchart illustrating a method for managing a blockchain-based industrial automation system according to some embodiments of this disclosure. [Figure 6] This figure shows an environment for realizing an industrial automation system based on blockchain technology, according to some embodiments of this disclosure. [Figure 7] This figure shows exemplary use cases for realizing blockchain technology-based industrial automation systems for verifiable computing, according to some embodiments of this disclosure. [Modes for carrying out the invention]

[0033] The following description includes numerous specific details to ensure that the disclosure is fully understood. However, it will be apparent to those skilled in the art that the disclosure can be implemented without these specific details. In other cases, the apparatus and methods are shown in block diagram form to avoid obscuring the disclosure.

[0034] As used herein and in the claims, the terms “for example,” “as an example,” and “like,” as well as the verbs “equip,” “have,” and “include,” and each of their other verbal forms, should be interpreted as open-ended when used with an enumeration of one or more components or other items, meaning that the enumeration should not be considered as excluding other further components or items. The term “based on” means based on at least partially. Furthermore, it should be understood that the style and terminology used herein are for illustrative purposes only and should not be considered restrictive. Any headings used herein are for convenience only and have no legal or restrictive effect.

[0035] Various embodiments disclose systems and methods for secure industrial automation. The industrial automation systems and methods disclosed herein provide means for ensuring device integrity. Specifically, if a device is a “dumb” device or a device with limited computing power (e.g., a field device, a factory floor controller, a CNC machine, etc.), its security can be easily compromised. Thus, ensuring the integrity of these devices is difficult with current technology because they have limited computing power, limited memory, and some may be battery-powered. Therefore, the various methods and systems disclosed herein are based on the use of blockchain technology to ensure the integrity of these devices. Thus, blockchain technology is used to ensure device integrity. The device needs to log all relevant transactions / actions performed by the device onto the blockchain so that others on the blockchain network, such as verifiers, can read this data and ensure the device's integrity.

[0036] Some embodiments are based on the understanding that this can be done in multiple ways, such as 1) ensuring the integrity of these devices using blockchain transactions, 2) implementing a lightweight blockchain client on the device side, 3) performing forced login of dumb devices at the kernel level (e.g., via syscalls), and 4) using smart contracts. Therefore, a combination of all four technologies may be used to ensure the integrity of these devices.

[0037] Various embodiments provide industrial automation systems that enable automated and trusted updates of control-level devices, such as PLCs, by using blockchain to ensure the integrity of devices that use PLCs as controller computers. This is achieved by providing a blockchain-based common runtime, which provides security and integrity of the PLC operating system in ways that were previously impossible. Blockchain can be used to store and distribute firmware and controller updates.

[0038] The controller computer's operating system is secured by implementing the controller computer as a lightweight client of the blockchain network used to realize a blockchain-based industrial automation network. This blockchain-based industrial automation network provides implicit trust and security through the way the blockchain network is implemented and built. Specifically, 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.

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

[0040] Therefore, some embodiments of this disclosure are based on considering the advantages provided by permissioned blockchain networks, such as secure logging, tamper-proof and verifiable audit data, access control, and decentralized architecture. In addition, various embodiments disclosed herein can leverage the advantages provided by smart contracts in identifying, isolating, and blocking malicious participants that threaten the integrity of the entire distributed computing system, and by using a permissioned blockchain architecture, the objective of revoking the privileges of malicious participants (such as both read-related and write-related privileges) can be achieved. Furthermore, some embodiments utilize a unikernel architecture with syscalls to run a blockchain-based common runtime for industrial automation systems, thus providing greater transparency and auditability of the entire system.

[0041] Figure 1A shows the architecture of a blockchain-based industrial automation system 100a according to some embodiments of the present disclosure. The blockchain-based industrial automation system 100a comprises 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.

[0042] One or more industrial devices 102 may include one or more sensors and actuators deployed in the industrial automation system 100a. Sensors are devices used to measure one or more process variables in an industrial process. These process variables relate to pressure and temperature measurement, conductivity measurement, flow rate measurement, pH measurement, fill level measurement, etc., and record corresponding process variables such as pressure, temperature, conductivity, pH value, level, and flow rate. Actuators are devices used to influence process variables. These include, for example, pumps or valves that can influence the flow of liquid in a pipe or the fill level in a container. Thus, one or more industrial devices 102 also include remote I / O, wireless adapters, and common devices placed at the field level in industry (e.g., on the factory floor). One or more industrial devices 102 (also referred to as “dam” devices) have little or no available computing and power resources. Some industrial devices operate on batteries. Therefore, any control operation specified for one or more industrial devices 102 is performed by communication between the industrial device 102 and at least one controller computer 108.

[0043] In some embodiments, communication between one or more industrial devices 102 and at least one controller computer 108 is performed by sending incoming commands 104 of the corresponding industrial devices 102 to at least one controller computer 108. At least one controller computer 108 authenticates the corresponding industrial devices 102 using blockchain technology and generates a response 106 to be sent to the corresponding industrial devices 102. At least one controller computer 108 is configured to authenticate the corresponding industrial devices 102 by using a connection to a blockchain network 120, which implements blockchain technology to provide a secure, reliable, fault-tolerant, and robust security mechanism to ensure the integrity of one or more industrial devices 102.

[0044] Therefore, at least one controller computer 108 comprises one or more components, including at least one processor 110, memory 112, input unit 114, output unit, and bus 118. At least one processor 110 is configured to execute instructions stored in memory 112. Instructions are executed to perform specified operations on at least one controller computer 108. These operations relate, in one embodiment, to the control, management, and operation of one or more industrial devices 102. Specifically, the operations include authenticating one or more industrial devices 102 based on blockchain technology. Therefore, the operations include instructions related to downloading the latest block and the cryptographic certificate associated with the latest block from the blockchain network 120. Furthermore, one or more industrial devices 102 are activated based on the downloaded latest block and associated cryptographic certificate, and based on the authentication, a response is generated to be sent to one or more industrial devices 102. The response indicates the success or failure of the authentication of one or more industrial devices 102. Therefore, execution operations related to the operation of one or more industrial devices 102 controlled by at least one controller computer 108 are executed or stopped based on authentication. For example, if authentication is successful, the execution operation is performed, but if authentication is unsuccessful, the execution operation is blocked or stopped.

[0045] Communication between at least one controller computer 108 and one or more industrial devices 102, and further between the controller computer 108 and the blockchain network 120, is performed via an input unit 114 for receiving incoming data and an output unit 116 for transmitting outgoing data. Input / output communication between at least one controller computer 108 and one or more industrial devices 102 may be performed using appropriate industrial communication protocols, including but not limited to fieldbuses such as Profibus®, Foundation® Fieldbus, Highway Addressable Remote Transducer Protoco (HART®), Control and Communication Link (CC-Link), Common Industrial Protocol (CIP), Ethernet IP, ControlNet, Factory Instrumentation Protocol (FIP), Modbus®, Profinet®, SafetyNET-p, and SafetyBUS.

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

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

[0048] In some embodiments, memory 112 also stores an operating system associated with at least one controller computer. The operating system may be based on a unikernel architecture, where the unikernel acts as a special machine image, and any application running on at least one controller computer 108 links to the necessary kernel functions in the form of libraries. For example, the unikernel may run using a well-known unikernel solution, including but not limited to MirageOS, u-root, and the Linux Kernel Library (LKL).

[0049] Therefore, the unikernel is used to provide a lightweight client for the blockchain network 120, which runs on at least one controller computer 108. The lightweight client further provides edge computing support to at least one controller computer 108 by moving application-specific computing operations closer to the controlled device (which is an industrial device 102), i.e., to the edge, and pushing other complex operations (related to blockchain) away from the edge towards the blockchain network 120.

[0050] The unikernel, in some embodiments, runs as a blockchain-based common runtime. The common runtime comprises code, programs, or software with a controlled execution environment. The common runtime code is compiled into an intermediate form of a computer language and can run across platforms that support different programming languages. A platform or end computer can execute the common runtime code by using its respective native compiler. Therefore, the blockchain network 120 is configured to distribute binaries or compileable copies of the common 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 common runtime runs through smart contracts associated with the permissioned blockchain network.

[0051] 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 executed when the smart contract is executed. A smart contract is immutable in the sense that it cannot be manipulated once it has been added to the distributed ledger architecture of the blockchain network in which it is defined. Furthermore, when a node or computing system of the blockchain network invokes a smart contract, a transaction takes place, which is then recorded on the blockchain network. A smart contract can function as a trusted network service within a permissioned blockchain network and can be used as a tool to ensure fault tolerance and deletion capabilities for nodes within the permissioned blockchain network. A smart contract may be distributed to nodes of the permissioned blockchain network in the form of at least one of either a source code file or a trusted binary file. In this case, the nodes of the permissioned blockchain network may be one or more controller computers connected to the blockchain network 120. These nodes compile and execute the smart contract and post the results of the smart contract execution back to the blockchain network 120. Subsequently, the blockchain network 120 authenticates each node by verifying the execution results posted by each node based on a verification algorithm (such as a consensus algorithm like the Proof-of-Work algorithm or Proof-of-Stake algorithm).

[0052] In some embodiments, the smart contract may include rules related to device status data of one or more industrial devices 102, which are transmitted from one or more industrial devices 102 to at least one controller computer 108 via incoming commands 104. The incoming commands may be firmware update commands, industrial automation process execution commands, industrial automation variable update commands (such as temperature or pressure updates), etc. The device status data is associated with the corresponding incoming command and verified by the execution of the smart contract by at least one controller computer 108, and the verification results are returned to the blockchain network 120 and published on the blockchain network 120.

[0053] In some embodiments, at least one controller computer 108 downloads only the latest block, rather than the entire blockchain, from the blockchain network 120 in order to implement a lightweight blockchain client on at least the controller computer 108. The latest block contains the most recently updated copy of the smart contract. The execution of the smart contract then validates one or more industrial devices 102 connected to at least one controller computer 108. Furthermore, access to the smart contract or common runtime provided by the latest block of the blockchain network 120 is done via a syscall that functions as an API for accessing the unikernel.

[0054] Therefore, 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 updates. Therefore, 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. This encryption certificate is used to authenticate the corresponding block. Thus, 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 its associated encryption certificate. Subsequently, using asymmetric encryption techniques (public and private keys), the update intended for at least one controller computer 108 is signed by the updating party and encrypted with the public key of the target at least one controller computer 108 to provide traceability.

[0055] Updates are received by at least one controller computer 108 based on a set of rules or subscription guidelines contained in a blockchain-based common runtime or unikernel running on at least one controller computer 108. Thus, each controller computer 108 can subscribe to the blockchain network 120 for block updates. If the blockchain-based common runtime cannot interpret a block, i.e., if it cannot successfully decrypt the contents of the block with its private key, it means that the block does not contain the associated update, and the block is discarded. If the blockchain-based common runtime can successfully decrypt the block update and thereby interpret the block update, it checks the associated cryptographic certificate to confirm that the block update is valid, i.e., that it is possible to reach the current block from the original block. If the block is valid, the update is applied to at least one controller computer 108.

[0056] Thus, the integrity of the low-computation and low-power (or "dam") industrial device 102 is verified using secure blockchain technology via at least one controller computer 108.

[0057] At least one controller computer 108 includes an industrial control layer device such as a Stored Program Control (SPC) device or a PLC device. Figure 1B shows an example of a PLC-based industrial automation system.

[0058] Figure 1B shows a block diagram of an example of a PLC-based system 100b using the architecture of Figure 1A, according to some embodiments of the present disclosure. The PLC-based system 100b comprises a sensor 102a and one or more manual input sources 102b (such as field personnel or machine operators). The sensor 102a and manual input sources 102b represent one or more industrial devices 102 as described in Figure 1A.

[0059] Sensor 102a is communicatively coupled to PLC 108a, which has a blockchain-based common runtime 112a. Manual input source 102b is communicatively coupled to PLC 108b, which has a blockchain-based common runtime 112b. PLCs 108a and 108b correspond to at least one controller computer 108 shown in Figure 1A.

[0060] PLCs 108a and 108b are further communicatively coupled to the factory automation blockchain network 120 (the same blockchain network 120 shown in Figure 1A), and the factory automation blockchain network 120 may be further coupled to one or more web clients 122. One or more web clients 122 are computing systems that may be used to perform several computing and power-intensive functions related to the factory automation blockchain network 120. These functions may include participating in a consensus algorithm, acting as a full node storing a copy of the factory automation blockchain network 120, generating transactions for the factory automation blockchain network 120, and acting as a miner to mint rewards from the factory automation blockchain network 120.

[0061] The factory automation blockchain network 120 is used to securely update PLCs such as PLC108a or PLC108b, and further ensure the integrity of their operating systems or programs. For this purpose, the factory automation blockchain network 120 acts as a trusted source for firmware updates to PLC108, helping to guarantee the security and integrity of PLC108 and their associated industrial devices 102. At the same time, firmware updates distributed by the factory automation blockchain network 120 help to make PLC maintenance and management auditable and tamper-proof.

[0062] Several embodiments provide an industrial automation system 100b that prevents tampering by process line operators providing one or more manual inputs 100b. In current industrial systems, operators can access the PLC directly and make adjustments on the fly without an audit trail, for example, manual inputs 102b are passed directly to the PLC 108b without monitoring and authentication. This is changed in industrial automation system 100b, where the operator generating the manual input 102b interacts with the PLC 108b by sending an input command 104b, which is activated by the PLC 108b using a blockchain-based common runtime 112b implemented with a unikernel architecture and a factory automation blockchain network 120. Upon successful activation, the command is passed to the underlying PLC 108b, which sends a response 106b to the operator 102b indicating the success of the command execution.

[0063] In some embodiments, the blockchain-based common runtime 112 comprises a copy of the operating system distributed by the blockchain network 120 to all PLCs 108 connected on the blockchain network 120.

[0064] The blockchain network 120 provides a reliable source of information to the industrial automation system 100b, which can then verify a blockchain-integrated unikernel in the form of a blockchain-based common runtime 112 against this source. The blockchain-integrated unikernel can download blocks with the latest updates at random times and check the program's equivalence through hashes, etc. This provides a level of system integrity that would be impossible without a blockchain-based system.

[0065] The blockchain-based common runtime 112 provides blockchain client functionality on controller computers 108, such as PLC108a and PLC108b, along with a library that provides PLC system features. The library includes, but is not limited to, libraries for I / O, IEC 61131-3 compliance, and interfacing with one or more industrial devices 102. The library is built using modern programming language toolchains, including, but not limited to, Go or C++, to generate a single binary that can be loaded onto the ROM module of PLC108a and 108b.

[0066] In some embodiments, 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 updates. Therefore, a unique encryption certificate is associated with each PLC, and using asymmetric encryption techniques (public and private keys), updates intended for a particular PLC are signed by the updating party and encrypted with the public key of the target PLC to provide traceability. A blockchain-based common runtime 112 on each PLC subscribes to the factory automation blockchain network 120 for block updates. If the blockchain-based common runtime 112 cannot interpret a block, i.e., if it cannot successfully decrypt the contents of the block with its private key, it discards the block, as this means the block does not contain the associated update. If the blockchain-based common runtime 112 can successfully decrypt the block update and thereby interpret it, it checks the associated encryption certificate to confirm that the block update is valid, i.e., it can reach the current block from the original block. If the block is valid, the update is applied to the PLC.

[0067] In this way, the industrial automation system 100b can implement the architecture of Figure 1A for blockchain-based industrial automation with high security, reliability, fault tolerance, and verifiability.

[0068] Figure 1C shows an alternative architecture for realizing a blockchain-based industrial automation system.

[0069] Figure 1C shows another architecture of the industrial automation system 100c according to some embodiments of the present disclosure. The architecture of the industrial automation system 100c is substantially similar to the architecture of the industrial automation system 100a, with the only exception that it has an additional server computing system 124 on top of the controller computer 108 to interact with the blockchain network 120.

[0070] Similar to blockchain-based industrial automation system 100a, blockchain-based industrial automation system 100c comprises one or more industrial devices 102, such as industrial device 102a, industrial device 102b, and industrial device 102n, communicating with at least one controller computer 108. Communication between one or more industrial devices 102 and at least one controller computer 108 is performed by sending incoming commands 104 of the corresponding industrial devices 102 to at least one controller computer 108. At least one controller computer 108 authenticates the corresponding industrial devices 102 using blockchain technology and generates a response 106 to be sent to the corresponding industrial devices 102. At least one controller computer 108 is configured to authenticate the corresponding industrial devices 102 by using a connection to a blockchain network 120 via a server computing system 124.

[0071] As previously illustrated, at least one controller computer 108 comprises one or more components, including, among others, at least one processor 110 (as shown in Figure 1A) and memory 112. Therefore, the server computing system 124 may also include a processor and memory, but may be configured to have higher computing power than at least one controller 108.

[0072] Therefore, the server computing system 124 is configured to provide the functions provided by the at least one controller computer 108 as previously described in relation to Figures 1A and 1B. Specifically, the server computing system 124 is configured to function as an interface between the at least one controller computer 108 and the blockchain network 120.

[0073] In some embodiments, the server computing system 124 is configured to receive updates from the blockchain network 120 based on a smart contract or subscription rule contained in a unikernel associated with at least one controller computer 108. The at least one controller computer 108 may send a copy of the smart contract to the server computing system 124. The server computing system 124 receives the updates in the form of the latest block and its associated cryptographic certificate. The server computing system 124 then authenticates the block using its associated cryptographic certificate and passes the authentication result to the at least one controller computer 108.

[0074] In some embodiments, at least one controller computer 108 is configured to send an incoming command 104 (such as any of incoming commands 104a to 104c) to a server computing system 124. The server computing system 124 is then configured to download the latest block and its associated cryptographic certificate from the blockchain network 120. The server computing system 124 is then configured to authenticate the incoming command from at least one controller computer 108 based on the downloaded latest block and its associated cryptographic certificate. Thus, the server computing system 124 is configured to check whether the incoming command is included in the list of valid commands contained in the downloaded latest block. Based on the authentication result, the server computing system 124 is configured to generate a response to control the actions to be performed on at least one controller computer 108.

[0075] One common implementation of Architecture 100c is a Supervisory Control and Data Acquisition (SCADA) system, as shown in Figure 1D.

[0076] Figure 1D shows a block diagram of an example of a SCADA-based system 100d using the architecture of Figure 1C, according to some embodiments of this disclosure.

[0077] The SCADA-based system 100d comprises one or more industrial devices 102, such as industrial device 102a and industrial device 102b. In one example, industrial device 102a comprises a sensor, and industrial device 102b corresponds to a manual input device. Manual input may be provided to an industrial field device by a field or machine operator. The industrial devices 102 are communicably coupled to at least one controller computer 108, such as controller computer 108a and controller computer 108b, using one of the aforementioned industrial communication protocols. At least one controller computer 108 may be a PLC, such as PLC108a and PLC108b. Each of the PLCs is connected to a server computing system 124, which is a centralized SCADA server in the industrial automation system 100d. The centralized SCADA server 124 is further connected to a SCADA database 126 that stores data associated with the control, process, and authentication of the industrial devices 102. In some embodiments, the SCADA database 126 stores data offloaded to the SCADA database 126 by the centralized SCADA server 124. This data may relate to blockchain-related data (e.g., copies of the blockchain, smart contracts, unikernels, etc.). The centralized SCADA server 124 may be further connected to one or more web clients 122, and the web clients 122 may be further connected to the blockchain network.

[0078] SCADA is a centralized system that manages PLCs and provides features such as PLC updates and data recording from PLCs. Traditional surveillance systems were isolated from the internet. However, this significantly increases the attack surface of industrial systems not designed with cybersecurity in mind, as surveillance systems become increasingly connected to the internet. Furthermore, because PLCs run specialized monolithic operating systems, it is economical for hackers to try to find exploits at the OS level accessible via the internet. Finally, due to the requirements of most industrial systems, applying software updates and security patches to the system is difficult. However, this is circumvented in industrial system 100d by using a unikernel in the PLC that is updated only based on updates provided by a blockchain network connected to the centralized SCADA network 124. This may be the same blockchain network 120 shown in Figure 1C, which sends updates managed by smart contracts, and the updates are in the form of the latest block on blockchain network 120 and its associated cryptographic certificate.

[0079] Therefore, the centralized SCADA server 124 may obtain smart contracts from the blockchain network 120 and store them in the SCADA database 126. Furthermore, when an update occurs, the centralized SCADA server 124 receives the latest block from the blockchain network 120, authenticates the block using its associated cryptographic certificate and smart contract, and passes the authentication result to PLCs 108a and 108b. If authentication is successful, PLCs 108a and 108b are updated, for example, by updating their unikernels. If authentication is unsuccessful, the update is not passed to PLCs 108a and 108b.

[0080] In some embodiments, authentication by the centralized SCADA server 124 triggers one or more types of system call (hereinafter also referred to as syscall) requests to the unikernel of PLCs 108a and 108b. The result of the call 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 PLCs 108a and 108b. If the result is not valid, the update is discarded.

[0081] In some embodiments, when PLCs 108a and 108b receive incoming commands from their corresponding industrial devices 102a and 102b, etc., the incoming commands are sent to a centralized SCADA server 124. The centralized SCADA server 124 is then configured to download the latest block and its associated cryptographic certificate from the blockchain network 120. The centralized SCADA server 124 is then configured to authenticate the incoming command of at least one controller PLC 108 based on the downloaded latest block and its associated cryptographic certificate. Therefore, the centralized SCADA server 124 is configured to check whether the incoming command is included in the list of valid commands contained in the downloaded latest block. Based on the authentication result, the centralized SCADA server 124 is configured to generate a response to control the actions to be performed on at least one PLC 108.

[0082] In any of the above scenarios, the PLC108a needs to perform very little processing, and the majority of blockchain-based authentication and computing tasks are offloaded to the centralized SCADA server 124. This requires less computing power from end-field devices and controller devices such as PLCs, and helps integrate security and trust mechanisms built into blockchain technology at the industrial automation and device level. Furthermore, authentication by downloading only the latest block of the blockchain network instead of the entire copy of the blockchain network by the centralized SCADA server 124 further helps to realize a lightweight blockchain client even at the level of the centralized SCADA server 124.

[0083] Therefore, the lightweight, centralized SCADA server 124 is further coupled to one or more web clients 122. One or more web clients 122 are computing systems that can be used to perform several computing and power-intensive functions related to blockchain technology. These functions may include participating in a consensus algorithm, acting as a full node storing a copy of the entire blockchain network, generating transactions for an industrial automation system 100d, and acting as a miner to mint rewards from the blockchain network 120.

[0084] The architecture of industrial automation system 100d shown in Figure 1D, when viewed in conjunction with Figures 1A, 1B, and 1C, is used to realize an industrial automation system that utilizes edge computing.

[0085] Edge computing provides a decentralized infrastructure for computing that allows computing resources and application services to be distributed among participants in an edge computing system. “Edge” can refer to the data point where the data being manipulated is actually collected or used. Edge computing offers several advantages, including high throughput, reduced response times, enhanced data privacy and security, and potentially even reduced operating costs. For industrial automation systems such as any of the systems described in Figures 1A, 1B, 1C, and 1D, the edge computing system architecture can be represented by using a control layer stack as shown in Figure 2.

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

[0087] In some embodiments, the PLC 210 is an integral component of control level 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 field level 202 or other PLCs. The PLC 210 also interfaces with higher-level devices, namely the industrial PC 212 at monitoring level 206. The industrial PC 212 at monitoring level 206 consists of a commodity PC running a standard operating system with special software that can interface with lower-level devices. Thus, the industrial PC 212 can function as a centralized SCADA server 124 as shown in Figure 1D. One or more of the control level 204 and monitoring level 206 are further configured to interface with a blockchain network (not shown in Figure 2) to perform the functions of the blockchain-based industrial automation system described in the embodiments above.

[0088] Therefore, devices at one or more of the control level 204 and monitoring level 206 are configured to communicate with the blockchain network using communication protocols that rely on the blockchain network's protocols. These protocols may include the Hyperledger protocol, multi-chain protocols, protocols implemented using the Ethereum blockchain, protocols implemented using the Solana blockchain, and others.

[0089] Various embodiments offer to implement the control layer stack 200 in a custom manner, with control and computing operations distributed across different levels to benefit from the previously disclosed blockchain-based industrial automation systems. Broadly speaking, the control and computing operations include one or more of the following: 1) collecting industrial device data; 2) authenticating updates to industrial automation systems, such as industrial automation system 100a shown as an example in Figure 1A; 3) authenticating commands provided to industrial devices; and 4) providing blockchain-based verifiability of commands and updates to industrial automation systems. Of these, the most computationally intensive functions include control and computing operations 2, 3, and 4. These control and computing operations may be distributed between control level 204 and monitoring level 206, based on the deployment of a preferred edge computing architecture for the control layer stack 200.

[0090] Therefore, the control layer stack 200 may be configured to provide industrial Internet of Things (IIoT) functionality based on the installation of a custom edge computing architecture. Each layer of the control layer stack 200 becomes more complex and aggregates multiple system functions as control progresses from bottom to top. The computing layer ascends the architecture stack, aggregating processing power, information, and data from the bottom up. The goal of any implementation is to provide high-speed, local computing performed at the edge, while global computing, model development, management, and security benefit from the "wisdom of the cloud" provided in a blockchain network implemented above monitoring level 206.

[0091] For example, in a thermal power plant environment, the problem to be solved might be maintaining a precise temperature of the reactor. In this case, the edge device might be a pump that circulates water within the reactor's cooling pipes, maintaining a constant desired flow of water or coolant within the pipes to maintain temperature requirements. Thus, the field level 202 might have a temperature sensor that collects temperature data from the cooling pipes and sends it to an edge computing device at control level 204, which executes a control algorithm and adjusts the flow of liquid through the pump to regulate the temperature. If the goal is to regulate temperature across several devices or an entire area, the edge would be a temperature controller at control level 204 (whether an individual component or a standalone system), and the edge computing layer would be a system that coordinates the control, typically a PLC 210 or SCADA system 212.

[0092] In some other embodiments, the PLC210 is configured to receive updates to the operating system or unikernel running on the PLC210 and to authenticate that the update is valid before applying it. This is shown in architecture 100b of Figure 1B. In this case, the PLC210 becomes an edge device.

[0093] Thus, using the blockchain-based systems shown in Figures 1A, 1B, 1C, and 1D, and the control stack architecture in Figure 2, a blockchain-based industrial automation system supporting custom edge computing and IIoT can be realized. Such a system can leverage the security, accountability, verifiability, and reliability of the blockchain system, as well as the faster computation, reduced turnaround time, greater data privacy, less or more selective data exposure, and greater scalability provided by the edge computing architecture. Therefore, the aforementioned combination of edge computing and blockchain-based industrial automation is realized using a lightweight client closer to the edge level.

[0094] Figure 3 shows a block diagram of a blockchain system 300 supporting one or more lightweight clients according to some embodiments of the present disclosure. The blockchain system 300 comprises one or more lightweight clients or nodes of a blockchain network 308, namely lightweight client 302 and lightweight client 304. Lightweight client 304 further comprises an embedded device 306. The blockchain network 308 is functionally similar to the blockchain network 120 shown in Figures 1A, 1B, and 1C.

[0095] Lightweight clients 302 and 304 may comprise any modern computer, such as an embedded computer, laptop, mobile phone, smartphone, tablet, smartwatch, wearable computer, point of sale (POS) terminal, kiosk, routing device, monitoring terminal in a power plant, or electronic instrument. Therefore, lightweight clients 302 and 304 may comprise at least one controller computer 108 as shown in Figures 1A, 1B, 1C, and 1D. In some embodiments, lightweight clients 302 and 304 may comprise a server computing system 124 as shown in Figures 1C and 1D.

[0096] Some embodiments are based on the understanding that lightweight clients are computers with limited computing power (such as PLCs and SCADA servers described in relation to the figures above). Therefore, these lightweight clients cannot store a complete copy of blockchain 308, of which they are part. However, using the architecture of the industrial automation systems described in these embodiments and the embodiments described above, even these lightweight systems with low computing power can be fully trusted, secure, and efficiently monitor for malicious activity. This can be made possible by a combination of smart contracts implemented in the industrial automation systems 100a to 100d disclosed in the various embodiments described herein, a unikernel, and modern block-based authentication.

[0097] In some embodiments, lightweight clients 302 and 304 are implemented using the zero-knowledge proof process, such as zk-SNARK. zk-SNARK, or zero-knowledge succinct non-interactive argument of knowledge-based systems, is based on the concept of zero-knowledge proofs. A zero-knowledge proof is a situation in which each of two parties in a transaction can prove to the other party that they possess certain information without revealing the content of that information. Zero-knowledge proof-based systems offer greater privacy and security in realizing blockchain-based lightweight clients compared to the older password-based systems well known in the art.

[0098] In some embodiments, lightweight clients 302 and 304 are implemented using software libraries and APIs such as filter commitments that use Bitcoin's BIP37, the Electrum lightweight client, Bitcoin's BIP37 Bloom filter, Electrum's public addresses, and the Bloom filter supported by Dogecoin. The lightweight client uses filter-based commitments to receive filters for all transactions or addresses within a given block. The lightweight client then requests the block if the filters match those addresses / transactions.

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

[0100] In various embodiments, the blockchain network 308 is further a permissioned blockchain network. Thus, node 302 (or equivalently 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. Once this coordination is achieved, a consensus is reached among all nodes in the permissioned blockchain network 308 regarding the current state of the permissioned blockchain network 308, according to a distributed computing program (commonly known as a consensus algorithm). One example of a consensus algorithm that may be used by the permissioned blockchain network 308 to reach a consensus is the practical byzantine fault tolerant (PBFT) algorithm, in which a node is configured to receive confirmation of the validity of its transactions from all other nodes in the permissioned blockchain network 308. A consensus is then reached based on the total number of confirmations received by the node.

[0101] In various embodiments, the smart contract is stored on node 302 (or node 304) as part of the node's unikernel program. The unikernel is an operating system on which nothing is running. The unikernel 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 invoked using a device-level syscall (in this case, the lightweight client 302 or 304). The syscall is part of the unikernel. In some embodiments, the smart contract may be the operating system of the lightweight client 302 or 304, or part of its operating system. This will be further discussed below in relation to Figures 4A and 4B.

[0102] Figure 4A is a block diagram showing the components of a computing system 402, which includes memory 404 and a processor 406. Memory 404 is the user space 402 and further comprises kernel space 410. The computing system 402 may represent at least one controller 108 or central computing server 124 as described above.

[0103] The memory 404 of the computing system 402 contains a portion for storing user programs, such as application programs, application data, APIs, software or code libraries, stored procedures, algorithms, computer instructions, and user files. This portion is user space 408. User programs in user space 408 are generally written in one of the well-known high-level languages, such as C#, C++, Java®, Python, Solidity, or JavaScript®. User space 408 may also contain various processes, such as industrial control processes, business processes, or network interface processes, which define algorithms and logical instructions for executing one or more functions. Functions are application-specific. One type of user program in user space 408 is a smart contract. A smart contract defines enforceable rules that are executed when the smart contract is executed. The execution of a smart contract may then invoke one or more processes that require access to system (operating system) resources. System resources are stored in a separate portion of memory 404, known as kernel space 410, distinct from user space 408.

[0104] Kernel space 410 defines a portion of memory 404 where the core of the computing device 402, in the form of the operating system and its associated programs, is stored. Kernel space 410 stores specialized programs that enable the interface of various system resources, such as hardware and file systems. Kernel space 410 may contain specialized programs and data, such as device drivers, memory management programs, I / O management programs, and process management programs. Generally, kernel space programs are written in a low-level language such as C.

[0105] System resources contained in kernel space 410 may be accessed by user space 408 processes through special requests sent to kernel space 410 in the form of system calls or syscall 412. Each resource access requires a separate syscall 412. In the various embodiments described earlier, relating to the blockchain-based industrial automation system shown in Figures 1A, 1B, 1C, and 1D, kernel space 410 comprises a unikernel (a dedicated standalone kernel specialized at compile time). The unikernel stores instructions specialized for a particular type of application. Since the unikernel is compiled directly into application space, the attack surface of the unikernel is limited to the specific application for which the unikernel is designed. Because the attack surface is limited, the unikernel is more suitable for edge computing applications compared to monolithic kernels. Also, because the unikernel is application-specific, it is more suitable for lightweight clients.

[0106] Various embodiments are based on the understanding that the kernel 410, which houses the unikernel, is used to implement an edge computing architecture (such as the edge computing architecture described in relation to Figure 2). Furthermore, the unikernel is used to implement a lightweight client on at least one controller computer 108 or server computing system 124 associated with the blockchain network 120 described in Figures 1A, 1B, and 1C.

[0107] Some embodiments are based on the understanding that the unikernel comprises binary files that are compiled at application time. These binary files are received as updates from the blockchain network 120 and subsequently authenticated by at least one controller computer 108 or server computing system 124 based on the download of the latest block from the blockchain network 120, as described in the embodiments described above.

[0108] Some embodiments further rely on the understanding that the unikernel is obtained as a copy of the smart contract distributed by blockchain network 120, and that when the smart contract is invoked, its authenticity is verified using the latest block of blockchain network 120. Thus, the unikernel is common to all participants in the blockchain network and can also be viewed by all participants in blockchain network 120 by invoking the corresponding smart contract.

[0109] Some embodiments provide the unikernel as common runtime software or code accessed using syscall 412.

[0110] Figure 4B is a block diagram showing the execution of a common runtime of a unikernel in a blockchain-based industrial automation system 400b according to some embodiments of the present disclosure. The blockchain-based industrial automation system 400b corresponds to the blockchain-based industrial automation systems 100a, 100b, 100c, and 100d shown in Figures 1A, 1B, 1C, and 1D, respectively. The blockchain-based industrial automation system 400b comprises at least one controller computer 108, indicated as computing system 402. Alternatively or in addition to this, the blockchain-based industrial automation system 400b comprises at least one server computing system 124 as computing system 402. The computing system 402 is connected to a blockchain network 414. The blockchain network 414 corresponds to the blockchain network 120 described in Figures 1A, 1B, and 1C.

[0111] As previously explained in Figure 4A, the computing system 402 includes a user space 408. The user space 408 includes one or more application programs, such as program 1 408a and program N 408b. In some embodiments, these application programs are configured for industrial control applications. For example, the application programs may be control programs for temperature control, pressure control, maintaining industrial control process variables within predefined limits, valve opening and closing schedules, etc. The application programs may be written using well-known programming languages ​​for industrial automation (ladder diagrams, functional block diagrams, statement lists, logical functions, etc.). Thus, the computing device 402 may be a PLC device or a SCADA computer, and the application programs are corresponding control programs for industrial control applications.

[0112] Furthermore, the computing system 402 includes a kernel space 410, which further includes a common runtime or unikernel 410a and a hardware abstraction layer 410b.

[0113] In one embodiment, the unikernel 410a comprises a binary file for operating a computing device 402, and this unikernel 410a is common to all such computing devices connected on the blockchain network 414. The blockchain network 414 is an industrial automation blockchain network corresponding to the blockchain network 120 shown in Figures 1A, 1B, and 1C. Thus, the blockchain network 414 distributes a verified common runtime to all nodes or computing devices 402 connected on the blockchain network 414 to ensure the integrity, security, and reliability of the unikernel 410 (which is critical to the reliable operation of the computing devices 402). Thus, the computing device 402 may be at least one controller computer 108 or PLC 108a or 108b shown in Figures 1A and 1B, respectively, and the reliable operation of the PLC enhances the reliability of the entire industrial automation system, of which the PLC 108a or 108b (and any other additional PLCs) are part.

[0114] In one embodiment, the unikernel 410a is executed as a smart contract distributed to all participants of the blockchain network 414. Thus, the blockchain network 414 is a permissioned blockchain network 414 on which any transaction is validated by consensus among all participants of the nodes, as previously described. Furthermore, invoking the smart contract invokes one or more types of syscall requests (which are the sole interface between user space 408 and kernel space 410). In one example, the smart contract is invoked when an update to the common runtime is made by the common runtime developer, and this developer may be an organization, a party, a consortium, an open-source platform, or an individual developer who generates these common runtimes for industrial automation blockchain networks. Such an update, along with its associated cryptographic certificate, is downloaded to the computing device 402 in the form of a download of the latest block of the blockchain network 414. Before installing or applying this to the computing system 402, the smart contract is invoked via syscall on the computing system 402. This call executes several actions specified in the smart contract, and the results are returned to the blockchain network 414 and published there. If these results are validated, the updated common runtime is applied to the computing system 402; if the results are not validated, the updated common runtime is not applied, and an error message may be returned on the display associated with the computing device 402. An error notification is also sent back to the blockchain network 414, informing it that an unvalidated update is in circulation. Thus, the blockchain network 414 may be configured for corrective actions.

[0115] In one embodiment, the unikernel 410 is executed as a smart contract that is invoked when an incoming command is received by the computing device 402. The command is then validated by the execution of the smart contract, and the result of the smart contract execution is published on the blockchain network 414 to check whether the command is a valid command. If it is confirmed to be legitimate, the command is executed; otherwise, its execution is prevented.

[0116] In one embodiment, the unikernel 410a is distributed as a blockchain operating system by the blockchain network 414, with most authentication, processing, and verification being pushed to the blockchain network 414 cloud, and the computing system 402 performs basic functions such as downloading the latest block, executing smart contracts, and returning the results of smart contract execution to the blockchain network 414 cloud and making them public on the blockchain network 414 cloud. On the blockchain network 414 cloud, these results are verified using one or more well-known verification algorithms such as proof of work (PoW), proof of stake (PoS), proof of history (in the SOLANA® blockchain), delegated proof of stake (dpos), zero-knowledge proof, or zk-SNARKS.

[0117] The unikernel 410a is accessed through a syscall that also functions as an interface for the computing system 402 to the blockchain network 414. In some embodiments, the syscall Ankur is configured as a special syscall for accessing the blockchain network 414 via the syscall.

[0118] The unikernel 410a, which functions as a common runtime for all computing devices connected on the blockchain network 414, acts as a common operating system for all possible hardware from all equipment manufacturers that subscribe to the blockchain network 414. Hardware-specific and manufacturer-specific OS code is encapsulated in a hardware abstraction layer 410b. The code for the hardware abstraction layer is supplied by manufacturers, such as the PLC manufacturer (which is computing device 402 in this example). This allows PLC manufacturers to retain their own functionality while still utilizing the trusted common runtime 410a provided through the blockchain network 414. In this example, because all participants utilize the same common runtime 410a components, customers or industry owners can trust the blockchain network 414 regardless of which vendor they purchase their PLC from.

[0119] By implementing a blockchain-enabled industrial automation system using the method described above, the security and reliability of blockchain technology are guaranteed, and blockchain-related functions are pushed to the network or cloud level. This provides scalability by making it easy to add or remove any number of computing devices 402 without incurring extra computational costs, and offers hardware manufacturers such as PLC manufacturers the flexibility to configure only their own functions while leaving reliability management to the blockchain provider.

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

[0121] Method 500 comprises downloading the latest block from a blockchain network in step 502. The blockchain network may be an industrial automation-related blockchain network 120. Downloading only the latest block and not the entire copy of the blockchain is done to lighten the load on the computing device (e.g., controller computer 108 or server computing system 124) running Method 500. The processing power required to download and store only the latest block from the blockchain network is much smaller compared to downloading the entire copy of the blockchain. Therefore, Method 500 is performed in a much more computationally efficient way compared to authentication methods based on downloading the entire blockchain.

[0122] In some embodiments, the download of the latest block is performed by calling a smart contract on a computing device running method 500. This has been previously described in relation to the embodiments described above.

[0123] In some embodiments, the smart contract is implemented as a common runtime or unikernel that accesses computing resources of a computing device executing method 500 via one or more syscalls. This is described in detail in Figures 4A and 4B.

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

[0125] In some embodiments , most New Block Download This occurs after the update operation has been initiated by the blockchain network. The update operation may be a firmware update operation or an incoming command execution-related operation for a computing device performing method 500.

[0126] Next, in step 504, the update operation is authenticated based on the latest downloaded block from the blockchain network. Authentication of the latest block is performed by downloading the latest block along with its associated cryptographic certificate on the computing device running method 500 (such as the controller computer 108 or the server computing device 124). Before installing or applying this update to the computing device, a smart contract call is made on the computing device via syscall. This call performs several actions specified in the smart contract, and the results are returned to the blockchain network and published on the blockchain network. If these results are verified, the update is applied to the computing device; if the results are not verified, an error message may be generated during the update. This is explained in detail in Figures 4A and 4B.

[0127] In one embodiment, if the update operation is related to the execution of an incoming command on a computing device, step 504 may further include several method steps, as shown in Figure 5B.

[0128] Figure 5B shows a flowchart of a substep of step or method 504 for authenticating update operations to manage a blockchain-based industrial automation system, according to some embodiments of this disclosure.

[0129] Method 504 comprises, in step 504a, transmitting device status data in an incoming command to a computing device. The device status data is received from one or more industrial devices, such as the industrial device 102 shown in Figures 1A, 1B, 1C, and 1D. The incoming command is also shown as incoming command 104 in Figures 1A and 1C. Thus, the device status is related to the operating status of the corresponding industrial device 102 and is measured by process parameter data of the process running on the industrial device 102.

[0130] In step 504b, the device status data in an incoming command is authenticated based on the latest downloaded block and its associated encryption certificate. Therefore, if the latest downloaded block contains data associated with a set of valid commands for one or more industrial devices 102, and the incoming command is included in the set of valid commands, the incoming command is authenticated for execution. However, if the incoming command and the device status data contained within it are not present in the list of valid commands included in the latest downloaded block, the corresponding incoming command is not activated. As a result, further execution of the incoming command is suppressed.

[0131] In any case, the results of the authentication performed in step 504 of Method 500 are used to determine a further series of actions in Method 500.

[0132] Therefore, referring again to Figure 5A, in step 506, a response is generated to control the operation based on the authentication performed in step 504. The response is generated on a computing device that performs method 500. For example, Figure 5C shows some additional steps performed to generate the response according to method step 506.

[0133] In one embodiment, step 506 of the method comprises sending a control command from a computing device to one or more industrial devices connected to the computing device. For example, referring to Figures 1A and 1C, a response 106 generated by at least one controller computer 108 is sent to one or more industrial devices 102. For example, if authentication in step 504 is successful, in step 506b, the response includes a control command to correct the device state of one or more industrial devices based on the control command specified in the incoming command. Alternatively, if authentication in step 504 is successful, in step 506b, the response includes preventing the execution of the control command on one or more industrial devices 102. This may be done by displaying an error message, generating an alarm, providing an audio notification, providing an image notification, etc.

[0134] 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 running Method 500 includes a unikernel, and any operation on the computing device is performed via the unikernel using syscalls. Thus, the incoming command is at least one of a firmware update command and an industrial process automation command, as described in the above embodiments, and is embedded in an industrial automation system. An example of a blockchain-based industrial automation system is shown in Figure 6.

[0135] Figure 6 shows a use case 600 of a blockchain-based industrial automation system according to an exemplary embodiment of the present disclosure. Use case 600 corresponds to a factory site including one or more industrial devices or manual input operators (such as an industrial machine with line operators 602 and sensors 604). The factory site includes one or more PLCs, such as PLC606, which includes a blockchain-based common runtime 606a stored in the memory of PLC606. PLC606 is connected to a factory automation blockchain network 608 via one or more wired or wireless connections. PLC606 is also communicably coupled to one or more industrial devices or manual input operators (such as an industrial machine with line operators 602 and sensors 604) through an industrial communication protocol.

[0136] In an illustrative scenario for explanation, PLC606 downloads the latest block from the factory automation blockchain network 608. This download invokes the blockchain-based common runtime 606a, which then performs one or more syscalls to access the underlying hardware of PLC606. PLC606 then authenticates the downloaded latest block by re-coding the data collected via syscalls on the factory automation blockchain network 608. The factory automation blockchain network further verifies this data and sends a verification notification back to PLC606. The verification performed on blockchain network 608 uses standard blockchain protocols such as POW and POS. PLC606 checks the results of the verification and applies updates to PLC606 accordingly. For example, the update might be a firmware update to update the current version of the common runtime 606a running on PLC606.

[0137] Thus, the PLC606, with its limited computing resources, can leverage the trust and security provided by blockchain technology, and can trust firmware delivered via external networks such as the internet.

[0138] Figure 7 shows an exemplary use case 700 for realizing an industrial automation system based on blockchain technology for verifiable computing, according to some embodiments of this disclosure.

[0139] Use case 700 corresponds to a factory site including one or more industrial devices 704 that manufacture product 702. The factory site includes one or more PLCs, such as PLC706, which includes a blockchain-based common runtime 706a stored in the PLC706's memory. PLC706 is connected to the factory automation blockchain network 710 via one or more wired or wireless connections. PLC706 is configured to download verification contracts 708 from the factory automation blockchain network 710 for the execution of verifiable computing commands. PLC706 is also communicably coupled to one or more industrial devices 704 via an industrial communication protocol.

[0140] In an illustrative scenario for explanation, PLC706 downloads the latest block from the factory automation blockchain network 710, containing the latest copy of the verification contract 708. This download invokes the blockchain-based common runtime 706a, which then performs one or more syscalls to access the underlying hardware of PLC706. PLC706 then authenticates the downloaded latest block by recoding the data collected via syscalls on the factory automation blockchain network 710. The factory automation blockchain network 710 further verifies this data and sends a verification notification back to PLC706. Verification performed on the blockchain network 710 uses standard blockchain protocols such as POW and POS. PLC706 checks the results of the verification and applies updates to PLC706 accordingly. For example, an update might involve approving a state sequence for an industrial device according to verifiable compute execution commands and performing machining operations on product 702 accordingly.

[0141] The state sequence corresponds to the device state data of industrial device 704. Based on the downloaded verification contract 708, a valid state sequence is identified.

[0142] At a high level, verifiable computing typically involves the following interaction between three parties: The client specifies the function f to be computed and provides input data (denoted by x). The server computes f(x). Finally, the verifier confirms that the result is correct, i.e., y=f(x). The verifiable computing scheme allows the client to generate a cryptographic object, which both the server and the verifier use to assure the client that the computation was performed correctly. In the typical environment considered in verifiable computing, the function f to be verified and the input x differ for each instance of the problem. This reflects the typical workload faced in a cloud computing environment (i.e., a large number of individual computations from different users). However, the workload seen in a manufacturing environment, such as a factory floor as shown in Use Case 700, consists of repeatedly applying the same function (i.e., some physical transformation f) to a large number of identical but uniquely identifiable instances of input xi, where i is within a finite set of possibilities. Directly applying verifiable computing to a manufacturing environment is impractical because it would require generating a cryptographic proof for each product 702 on the production line. Each proof is not identical due to entropy, but they are functionally redundant because each proof verifies the same function on the same input. Generating verifiable proofs for each product with identical specifications is computationally inefficient, could result in unacceptable latency in the manufacturing process, and unnecessarily increases storage requirements by maintaining redundant proofs for each manufactured product.

[0143] However, the blockchain-based factory automation network 710 helps reduce these unnecessary computation and storage requirements by making it a blockchain-based verifiable computing system for the manufacturing process. This blockchain-based verifiable computing system consists of two main components: verifiability at the industrial device 704 level, and the permissioned blockchain network 710 which reduces the computational cost of verification at the industrial device 704 level.

[0144] Verifiability at the industrial device level 704 is achieved by ensuring the verifiability of the controller (i.e., the PLC 706 at the control level of the industrial automation hierarchy). The factory automation blockchain network 710 is used to enable the use of a single proof to verify all items manufactured according to the same specifications. This verifiability is often desirable because, otherwise, manufacturers cannot see the manufacturing processes employed by their suppliers. Suppliers are essentially black boxes that provide products that meet specifications. Errors in industrial automation have a very significant impact because they usually lead to physical failures. For example, a small configuration error that is almost impossible to detect can cause significant damage to downstream OEMs (original equipment manufacturers). For this reason, downstream OEMs usually spend extra effort testing upstream products to ensure they meet specifications.

[0145] The industrial device 704 has a finite number of atomic operations, each of which can be modeled as a state in a finite state machine. A sequence of states, or "state sequence," corresponds to a physical transformation performed by the industrial device 704; that is, there is a one-to-one relationship between a state sequence and a physical transformation. For these reasons, a state sequence corresponds to a physical transformation, but the state transition occurs on the PLC 706, not on the industrial device 704. When the PLC 706 undergoes a state transition in a state sequence, it instructs the corresponding industrial device 704 to perform the operation. Simultaneously, or after the operation is completed, the industrial device 704 returns device state information to the PLC 706 (such as the current state of the industrial device 704, whether or not the industrial device 704 encountered an error while performing the operation, and feedback regarding the configuration of the industrial device 704). The PLC 706 uses this information to determine whether or not to transition to the next state.

[0146] This makes it possible to verify the manufacturing process performed by the industrial device 704.

[0147]

number

[0148]

number

[0149] These state sequences are translated into arithmetic circuits so that they can be appropriately distributed to participants such as PLC706. Verifiable proofs, by themselves, do not enable the verifiability of the manufacturing process. Assuming that verifiable proofs reside in some trusted shared location or are distributed to verifiers, a prover (i.e., PLC706) could send a copy of the state sequence to the verifier. However, in this case, crucial aspects of verification, such as an attempt to verify the physical transformations applied to the physical object and the subsequent immutability record of the results, are not performed, and these aspects can certainly be ensured by using the factory automation blockchain network 710 to distribute verification contracts 708 that incorporate verifiable proofs to be verified by PLC706. Furthermore, without a common network built on top of the factory automation blockchain network 710, manufacturers could potentially falsify results by sending different verifiable proofs to different parties. For these reasons, blockchain is a necessary component for applying verifiable computing to the physical manufacturing process.

[0150] In some embodiments, verifiable proofs are incorporated within smart contracts, which are distributed as verifiable contracts 708. As is well known, smart contracts are programs that are stored and executed on the blockchain, have their own addresses, are invoked by sending transactions to those addresses, and are stored and executed by all full nodes participating in the blockchain network. Combining verifiable proofs with smart contracts eliminates the need to manage keys associated with verifiable proofs and the need to trust that all participants have received the same verifiable proof.

[0151] In some embodiments, in step 712, the PLC program enters the PLC 706 and begins giving instructions to the industrial device 704. Next, in 714, product 702 is given to the industrial device 704. In 716, the industrial device 704 applies a physical transformation to the manufactured product, and at the same time, the industrial device 704 sends feedback to the PLC 706 about its operating state and any other auxiliary information. Once the state sequence is complete, the PLC 706, in 718, transmits the state sequence to the network 710 for verification by calling the verification contract 708. In 718, only the verification result and the 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.

[0152] Thus, supported by the permissioned blockchain network 710, the industrial device 704 can be made verifiable through the verifiability of the control device. This is done by verifying the physical transformation in the form of device state data, including the verification of a state sequence representing the physical transformation. The proof of verification in the form of a recent copy of the verification contract is downloaded from the blockchain network 710.

[0153] Thus, the various embodiments described herein provide secure, trust-based, efficient, reliable, scalable, modular, and cost-effective industrial automation systems. Furthermore, the ability to implement the various technologies described herein using lightweight clients as well as fully embedded blockchain nodes makes the entire system highly efficient, scalable, and cost-effective. Moreover, the presence of lightweight clients also provides for the realization of a suitable edge computing architecture on industrial automation systems.

[0154] The above description provides only specific embodiments and is not intended to limit the scope, applicability, or configuration of the disclosure. Rather, the above description of specific embodiments will provide a description that enables the realization of one or more specific embodiments for those skilled in the art. Various modifications are intended to be made to the function and configuration of the elements without departing from the spirit and scope of the subject matter disclosed in the appended claims.

[0155] Specific details are provided in the above description to ensure a full understanding of the embodiments. However, those skilled in the art will understand that the embodiments can be carried out even without these specific details. For example, systems, processes, and other elements in the disclosed subject matter may be shown as components in block diagrams to avoid obscuring the embodiments with unnecessary details. In other examples, well-known processes, structures, and techniques may be shown without unnecessary details to avoid obscuring the embodiments. Furthermore, similar reference numbers and names in different drawings refer to similar elements.

[0156] Furthermore, individual embodiments may be described as processes shown as flowcharts, flow diagrams, data flow diagrams, structural diagrams, or block diagrams. While flowcharts may describe operations as sequential processes, many operations can be performed in parallel or simultaneously. In addition, the order of operations may be reordered. A process may terminate when its operations are complete, but it may have additional steps that are not discussed or included in the diagrams. Moreover, not all operations in any specifically described process can occur in all embodiments. A process may correspond to a method, function, procedure, subroutine, subprogram, etc. If a process corresponds to a function, the termination of the function may correspond to returning the function to the calling function or the main function.

[0157] Furthermore, embodiments of the disclosed subject matter may be implemented either manually or automatically, at least in part. Manual or automatic implementation may be performed, or at least assisted, through the use of a machine, hardware, software, firmware, middleware, microcode, hardware description language, or any combination thereof. If implemented with software, firmware, middleware, or microcode, the program code or code segments for performing the required tasks may be stored on a machine-readable medium. A processor(s) may perform the required tasks.

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

[0159] Embodiments of this disclosure may also be embodied as methods, and one example is provided. The order of operations performed as part of this method may be determined in any suitable manner. Thus, embodiments may be configured such that operations are performed in an order different from the order illustrated, which may include performing some operations simultaneously, although they are shown as a series of operations in the illustrative embodiments. While this disclosure has been described with reference to several preferred embodiments, it should be understood that various other adaptations and modifications can be implemented within the spirit and scope of this disclosure. Therefore, it is the aspect of the following claims to cover all such variations and modifications that fall within the true spirit and scope of this disclosure.

Claims

1. A blockchain-based industrial automation system that can access a blockchain network, wherein the blockchain-based industrial automation system is It comprises at least one controller computer, and the at least one controller computer is At least one processor, The system includes memory in which instructions are stored, and when the instructions are executed by the at least one processor, an update operation, which is an operation related to the execution of incoming commands, is initiated by the blockchain network, and then the at least one controller computer is sent to the at least one controller computer. The system is configured to download only the latest block and the cryptographic certificate associated with the latest block from the blockchain network, and the cryptographic certificate is configured to be used to authenticate the block to which the cryptographic certificate is associated, and further, Authenticating the latest block using the aforementioned encryption certificate, To authenticate the incoming command, the at least one controller computer is configured to check whether the incoming command is included in the list of valid commands included in the latest downloaded block, and further, A blockchain-based industrial automation system, which causes the system to generate a response based on the authentication of the incoming command, wherein if the authentication is successful, the response includes a control command to modify the device state of one or more industrial devices based on the control command specified in the incoming command, and if the authentication fails, the response includes preventing the execution of the control command on the one or more industrial devices.

2. The blockchain-based industrial automation system according to claim 1, further comprising one or more industrial devices, each of which is configured to transmit device status data to the at least one controller computer, and the device status data is associated with the incoming command.

3. The blockchain-based industrial automation system according to claim 2, wherein the one or more industrial devices comprises one or more sensor devices and actuator devices.

4. The blockchain-based industrial automation system according to claim 1, wherein the incoming command is a firmware update command or an industrial automation process execution command.

5. The blockchain-based industrial automation system according to claim 1, wherein the memory comprises a unikernel for storing the instructions, and optionally the unikernel is associated with an edge computing architecture.

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

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

8. A blockchain-based industrial automation system that can access a blockchain network, wherein the blockchain-based industrial automation system is Server computing system and It comprises at least one controller computer, The at least one controller computer is configured to send incoming commands to the server computing system, and the server computing system It is configured to download only the latest block and the cryptographic certificate associated with the latest block from the blockchain network, and the cryptographic certificate is configured to be used to authenticate the block to which the cryptographic certificate is associated, and further, The latest block is authenticated using the aforementioned encryption certificate, The server computing system is configured to authenticate the incoming command, and in order to authenticate the incoming command, it is configured to check whether the incoming command is included in the list of valid commands included in the latest downloaded block, and further, A blockchain-based industrial automation system configured to generate a response based on the authentication, wherein if the authentication is successful, the response includes a control instruction to modify the device state of one or more industrial devices based on a control instruction specified in the incoming command, and if the authentication fails, the response includes preventing the execution of the control instruction on the one or more industrial devices.

9. A method for providing blockchain-based industrial automation, wherein the method includes an update operation, which is an incoming command, initiated by the blockchain network, The system includes downloading only the latest block and the cryptographic certificate associated with the latest block from the blockchain network, wherein the cryptographic certificate is configured to be used to authenticate the block to which the cryptographic certificate is associated, and further, Authenticating the latest block using the aforementioned encryption certificate, The system includes authenticating the incoming command, and in order to authenticate the incoming command, at least one controller computer is configured to check whether the incoming command is included in the list of valid commands included in the latest downloaded block, and further, A method comprising generating a response based on the authentication, wherein if the authentication is successful, the response includes a control instruction for correcting the device state of one or more industrial devices based on a control instruction specified in the incoming command, and if the authentication fails, the response includes preventing the execution of the control instruction on the one or more industrial devices.

10. Authenticating the aforementioned incoming command is Transmitting device status data in the incoming command from one or more industrial devices to at least one controller computer, The method according to claim 9, further comprising authenticating the incoming command based on the device status data, the downloaded latest block, and the associated encryption certificate.

11. The method according to claim 10, wherein the list of valid commands is for one or more industrial devices, and if the incoming command is included in the list of valid commands, the incoming command is authorized to be executed.

12. The method according to claim 11, wherein generating a response for controlling the operation on the at least one controller computer comprises allowing the transmission of a control command from the at least one controller computer to the one or more industrial devices, the control command being associated with modifying the device state data of the one or more industrial devices.

13. A non-temporary computer-readable storage medium on which a program executable for a processor to implement a method for blockchain-based industrial automation is implemented, wherein the method is initiated by a blockchain network after an update operation, which is an incoming command, The system comprises downloading only the latest block and the cryptographic certificate associated with the latest block from the blockchain network, wherein the cryptographic certificate is configured to be used to authenticate the block to which the cryptographic certificate is associated, and further, Authenticating the latest block using the aforementioned encryption certificate, The system includes authenticating a previously entered incoming command on at least one controller computer, wherein, in order to authenticate the incoming command, the at least one controller computer is configured to check whether the incoming command is included in the list of valid commands contained in the latest downloaded block, and further, A non-temporary computer-readable storage medium comprising generating a response based on the authentication, wherein if the authentication is successful, the response includes a control instruction for correcting the device state of one or more industrial devices based on a control instruction specified in the incoming command, and if the authentication fails, the response includes preventing the execution of the control instruction on the one or more industrial devices.