Self-auditing blockchain
By introducing a self-auditing mechanism into the blockchain network and utilizing imprint generation and consensus comparison, the problem of identifying peer nodes that have been hacked in the blockchain network is solved, ensuring the security and trustworthiness of the network.
Patent Information
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- INTERNATIONAL BUSINESS MACHINE CORPORATION
- Filing Date
- 2021-11-02
- Publication Date
- 2026-04-28
AI Technical Summary
Existing technologies struggle to effectively identify whether peer nodes in a blockchain network have been hacked, and this identification process may compromise the trust mechanism of the blockchain network.
By introducing a self-auditing mechanism into the blockchain network, and utilizing signature generation and consensus comparison to detect potential errors or hacking attacks, the security and trustworthiness of the blockchain network are ensured.
This enables the identification and location of potential hacker attacks without compromising the trust mechanism of the blockchain network, thereby improving the security and reliability of the blockchain network.
Smart Images

Figure CN116583833B_ABST
Abstract
Description
Background Technology
[0001] This disclosure generally relates to the field of blockchain storage, and more specifically to identifying whether peer nodes within the blockchain have been affected by an attack.
[0002] Blockchain networks are typically built on the principle of trust. For trust to be maintained, the data maintained by the blockchain network must be accurate. Therefore, while ensuring trust is maintained, identifying potential errors caused by malicious activities associated with the blockchain network is paramount. Summary of the Invention
[0003] Embodiments of this disclosure include methods, systems, and computer program products for a self-auditing blockchain network. A processor can collect process information from peer nodes in the self-auditing blockchain. The processor can generate imprints from the peer node process information. The processor can compare the peer node imprints with a consensus imprint to detect one or more errors. One or more errors may indicate that a peer node has been compromised.
[0004] The above overview is not intended to describe every illustrated embodiment or implementation of this disclosure. Attached Figure Description
[0005] The accompanying drawings, which are included in and form a part of this disclosure, illustrate embodiments of the present disclosure and, together with the description, serve to explain the principles of the disclosure. The drawings are merely illustrative of certain embodiments and do not limit the scope of the disclosure.
[0006] Figure 1A An exemplary blockchain architecture according to an embodiment of this disclosure is shown.
[0007] Figure 1B A blockchain transaction process according to an embodiment of this disclosure is illustrated.
[0008] Figure 2A An exemplary self-auditing blockchain network according to an embodiment of this disclosure is described.
[0009] Figure 2B A block diagram illustrating an embodiment of a depiction imprint generated according to an embodiment of the present disclosure is shown.
[0010] Figure 2C A block diagram illustrating an embodiment of hacker location described according to the present disclosure is shown.
[0011] Figure 3 A flowchart illustrating an example method for configuring a self-auditing blockchain according to an embodiment of this disclosure is shown.
[0012] Figure 4AA cloud computing environment according to an embodiment of the present disclosure is shown.
[0013] Figure 4B An abstract model layer according to an embodiment of this disclosure is shown.
[0014] Figure 5 A high-level block diagram of an exemplary computer system, according to embodiments of the present disclosure, is shown that can be used to implement one or more of the methods, tools, modules, and any associated functions described herein.
[0015] While the embodiments described herein are applicable to various modifications and alternatives, their details have been illustrated by way of example in the accompanying drawings and will be described in detail. However, it should be understood that the specific embodiments described are not intended to be limiting. Rather, they are intended to cover all modifications, equivalents, and substitutions that fall within the scope of this disclosure. Detailed Implementation
[0016] The aspects of this disclosure generally relate to blockchain network security, and more particularly to configuring peer nodes within a blockchain network to perform self-auditing functions while maintaining peer trust. Private blockchain networks may share highly sensitive information. Typically, this sensitive information needs to be protected at any cost, but due to the nature of some blockchain networks (e.g., peer-to-peer blockchain networks), this sensitive information may be exposed to malicious attackers (e.g., hackers). Due to the nature of blockchain, security monitoring is often outside the control of peer nodes. As blockchain becomes more widely known, hackers are becoming increasingly adept at finding ways to compromise existing applications, rather than using traditional hacking methods (e.g., injecting viruses into blockchain servers). Such hacking is extremely difficult to detect and can remain undetected for extended periods.
[0017] The embodiments described herein address blockchain problems associated with identifying whether peer nodes have compromised an application (e.g., through hacking) and where such hacking attacks originated. While attempts have been made to identify hacking activities within blockchain peer nodes, such attempts often require access to shared sensitive information maintained by the blockchain and reduce trust within the blockchain network.
[0018] It will be readily understood that, as generally described and illustrated in the accompanying drawings, the components of the present invention can be arranged and designed in a variety of different configurations. Therefore, the following detailed description of at least one embodiment of the methods, apparatus, non-volatile computer-readable medium, and system illustrated in the drawings is not intended to limit the scope of the claimed applications, but merely to illustrate selected embodiments.
[0019] In one or more embodiments, the immediate features, structures, or characteristics described throughout this specification may be combined or removed in any suitable manner. For example, the use of the phrases "example embodiment," "some embodiments," or other similar language throughout this specification refers to the fact that a particular feature, structure, or characteristic described in connection with that embodiment may be included in at least one embodiment. Therefore, the phrases "example embodiment," "some embodiments," "other embodiments," or other similar language appearing throughout this specification do not necessarily refer to the same set of embodiments, and the described features, structures, or characteristics may be combined or removed in any suitable manner in one or more embodiments. Furthermore, in the figures, any connection between elements may allow unidirectional and / or bidirectional communication, even if the depicted connection is a unidirectional or bidirectional arrow. Moreover, any device depicted in the figures may be a different device. For example, if a mobile device is shown as transmitting information, a wired device may also be used to transmit that information.
[0020] Furthermore, although the term "message" may be used in the description of the implementation, the application can be applied to many types of networks and data. Moreover, although specific types of connections, messages, and signaling may be described in exemplary embodiments, this application is not limited to specific types of connections, messages, and signaling.
[0021] This paper details a method, system, and computer program product that utilizes a self-auditing blockchain to identify whether a peer node has been hacked, and where a hack or error occurred in an application (e.g., process information) while maintaining trust within the blockchain network. Continued trust within the blockchain network is possible because sensitive and confidential information can remain confidential and no single party (e.g., an organization or peer node) is responsible for determining whether another peer node has been affected by a hack.
[0022] In some embodiments, the method, system, and / or computer program product utilizes a decentralized database (such as a blockchain) as a distributed storage system comprising multiple nodes communicating with each other. The decentralized database comprises an append-only immutable data structure similar to a distributed ledger capable of maintaining records among mutually untrusted parties. Untrusted parties are referred to herein as peers or peer nodes. Each peer maintains a copy of the database records, and no single peer can modify a database record without consensus among the distributed peers. For example, peers may execute consensus protocols to verify blockchain storage transactions, group storage transactions into blocks, and build a hash chain on the blocks. For consistency, this process forms a ledger by ordering storage transactions as needed.
[0023] In different embodiments, permissioned and / or permissionless blockchains can be used. In public or permissionless blockchains, anyone can participate without a specific identity (e.g., maintaining anonymity). Public blockchains can involve local cryptography and use consensus based on different protocols (such as proof-of-work). On the other hand, permissioned blockchain databases provide secure interaction between a group of entities that share common goals but do not fully trust each other, such as businesses exchanging funds, goods, (private) information, etc.
[0024] Furthermore, in some embodiments, the method, system, and / or computer program product may utilize a blockchain that operates arbitrary, programmable logic, tailored for decentralized storage schemes and referred to as a "smart contract" or "chaincode." In some cases, dedicated chaincode, referred to as system chaincode, may exist to manage functions and parameters. The method, system, and / or computer program product may further utilize smart contracts, which are trusted distributed applications that leverage the tamper-proof properties of the blockchain database and the underlying protocol between nodes, referred to as endorsement or endorsement policy. Blockchain transactions associated with this application may be "endorsed" before being submitted to the blockchain, while unendorsed transactions are ignored.
[0025] Endorsement policies allow linker code to specify endorsers for a transaction in the form of a set of peer nodes required for endorsement. When a client sends a transaction to the peers specified in the endorsement policy, the peers execute the transaction, producing speculative transaction results. If enough peers satisfying the endorsement policy produce the same execution result, the transaction is considered endorsed. After endorsement, transactions enter an ordering phase, where a consensus protocol is used to produce an ordered sequence of endorsed transactions that are grouped into blocks. Traditionally used consensus protocols include First-In-First-Out (FIFO) and leader-follower protocols (e.g., crash-tolerant protocols).
[0026] In some embodiments, the method, system, and / or computer program product may utilize nodes as communication entities within a blockchain system. A "node" is defined in the sense that multiple nodes of different types can operate on the same physical server, and can perform logical functions. Nodes are grouped in trust domains and associated with logical entities that control them in different ways. Nodes may include different types, such as client or commit-client nodes, which submit transaction calls to endorsers (e.g., peers) and broadcast transaction proposals to ordering services (e.g., orderer nodes).
[0027] Another type of node is the peer node, which receives ordered transactions submitted by clients (e.g., from an ordering service), submits the transactions, and maintains the state and copy of the blockchain transaction ledger. Peers can also act as endorsers, although it is not required. Ordering service nodes, or orderers, are nodes that run an ordering service, receiving streams of endorsed transactions from clients and issuing ordered streams of transactions. Ordering service nodes run communication services for all peer nodes and implement delivery guarantees when committing / confirming transactions and modifying the world state of the blockchain, such as broadcasting to every peer in the system—another name for the initial blockchain transaction, which typically includes control and setup information.
[0028] In some embodiments, the methods, systems, and / or computer program products may utilize a ledger, which is an ordered, tamper-proof record of all state transitions of a blockchain. State transitions may be caused by chaincode calls (e.g., transactions) submitted by participants (e.g., client nodes, ordering nodes, endorser nodes, peer nodes, etc.). Each participant (such as a peer node) may maintain a copy of the ledger. A transaction may result in a set of asset key-value pairs being committed to the ledger as one or more operands, such as creation, update, deletion, etc. The ledger includes a blockchain (also called a chain) for storing immutable, ordered records in blocks. The ledger also includes a state database that maintains the current state of the blockchain.
[0029] In some embodiments, the methods, systems, and / or computer program products described herein can utilize a chain, which is a transaction log structured as a chain of hashed blocks, with each block containing a sequence of N transactions, where N is equal to or greater than 1. The block header includes the hash of the block's transactions as well as the hash of the headers of previous blocks. In this way, all transactions on the ledger can be sequentially and cryptographically linked together. Therefore, it is impossible to tamper with the ledger data without breaking the hash chain. The hash of the most recently added blockchain block represents every transaction that has appeared before the chain, thus ensuring that all peer nodes are in a consensus and trusted state. The chain can be stored on a peer node file system (e.g., local, attached storage, cloud, etc.), thereby effectively supporting the append-only nature of blockchain workloads.
[0030] The current state of an immutable ledger represents the latest value of all keys included in the chain's transaction log. Because the current state represents the latest key value known to the channel, it is sometimes referred to as the world state. Chaincode calls execute transactions targeting the ledger's current state data. To make these chaincode interactions valid, the latest value of the key can be stored in a state database. The state database can simply be an indexed view of the chain's transaction log, and therefore can be regenerated from the chain at any time. The state database can be automatically restored (or generated if needed) when peer nodes start up and before accepting transactions.
[0031] The difference between blockchain and traditional databases lies in the fact that blockchain is not a centralized store, but rather a decentralized, immutable, and secure store where nodes can share changes to records within the store. Some inherent properties of blockchain that contribute to its realization include, but are not limited to, the immutable ledger, smart contracts, security, privacy, decentralization, consensus, endorsement, and accessibility described further herein. The systems described herein are enabled by blockchain's inherent and unique immutable liability, security, privacy, permissioned decentralization, availability of smart contracts, endorsement, and accessibility in various aspects.
[0032] Specifically, blockchain ledger data is immutable, and it provides an efficient method for identifying discrepancies within a blockchain network. Furthermore, the use of encryption in blockchain provides security and establishes trust. Smart contracts manage the state of assets to complete their lifecycle. Example blockchains are permissioned and decentralized. Therefore, each end-user can have its own copy of the ledger to access. Multiple organizations (and peers) may join a blockchain network. Key organizations can act as endorsing peers to verify the execution results, read-set, and write-set of smart contracts. In other words, the inherent characteristics of blockchain provide an efficient way to handle private transactions within a blockchain network.
[0033] One benefit of the example embodiment is that it improves the functionality of a computing system by implementing methods for processing private transactions within a blockchain network. Through the blockchain system described herein, a computing system (or a processor within a computing system) can perform functions of a self-auditing blockchain network received from one or more client applications utilizing the blockchain network by providing access to capabilities such as distributed ledgers, peer-to-peer mechanisms, cryptography, MSPs, event processing, etc. Furthermore, the blockchain enables the creation of business networks and allows any user or organization to participate. Thus, this segmented chain is more than just a database. The blockchain has the ability to create user networks and enable on-board / off-board organizations to collaborate and execute service processes in the form of smart contracts (which may be associated with one or more assets).
[0034] The example implementations offer many benefits over traditional databases. For example, through blockchain, the implementations provide the inherent and unique immutability, security, privacy, decentralized permissions, availability, endorsement, and accessibility of blockchain.
[0035] Traditional databases cannot be used to implement the example embodiments because they do not bring all parties onto the network, do not create trusted collaboration, and do not provide effective storage for digital assets. Traditional databases do not provide tamper-proof storage and do not provide preservation of the stored digital assets. Therefore, the proposed embodiments utilizing blockchain networks described herein cannot be implemented in traditional databases.
[0036] If a traditional database were used to implement the example embodiment, it would suffer from unnecessary drawbacks, such as poor search capabilities, lack of security, and slow transaction speeds. Therefore, the example embodiment provides a specific solution to problems in the field / domain of auditing (e.g., self-auditing) of blockchain networks.
[0037] Turn now Figure 1A This illustration shows a blockchain architecture 100 according to embodiments of the present disclosure. In some embodiments, the blockchain architecture 100 may include certain blockchain elements, such as a set of blockchain nodes 102. Blockchain nodes 102 may include one or more blockchain nodes, such as peers 104-110 (these four nodes are depicted by way of example only). These nodes participate in multiple activities, such as blockchain transaction addition and confirmation processes (consensus). One or more of peers 104-110 may endorse and / or recommend transactions based on an endorsement policy and may provide ordering services for all blockchain nodes 102 in the blockchain architecture 100. Blockchain nodes may initiate blockchain authentication and attempt to write to the blockchain immutable ledger stored in blockchain layer 116, a copy of which may also be stored on supporting physical infrastructure 114. Blockchain configuration may include one or more applications 124 that are linked to application programming interfaces (APIs) 122 to access and execute stored program / application code 120 (e.g., chaincode, smart contracts, etc.), which may be created according to customized configurations sought by participants and may maintain their own state, control their own assets, and receive external information. This can be deployed as a transaction and installed on all blockchain nodes 104-110 via attachment to the distributed ledger.
[0038] The blockchain infrastructure or platform 112 may include different layers of blockchain data, services (e.g., cryptographic trust services, virtual execution environments, etc.), and supporting physical computer infrastructure, which can be used to receive and store new transactions and provide access to auditors attempting to access data entries. The blockchain layer 116 may expose an interface that provides access to the processor code and the virtual execution environment necessary to participate in the physical infrastructure 114. The cryptographic trust service 118 can be used to verify transactions (such as asset exchange transactions) and maintain information privacy.
[0039] Figure 1A The blockchain architecture 100 can process and execute program / application code 120 via one or more interfaces and services exposed by the blockchain platform 112. Code 120 can control blockchain assets. For example, code 120 can store and transfer data and can be executed by peers 104-110 in the form of smart contracts and associated chaincode, where conditions or other code elements are constrained by their execution. As a non-limiting example, smart contracts can be created to execute resource transfers, resource generation, etc. The smart contract itself can be used to identify rules associated with authorization and access requirements and use of the ledger. For example, group transaction information 126 can be processed by one or more processing entities (e.g., virtual machines) included in the blockchain layer 116. Result 128 may include multiple linked shared documents (e.g., each linked shared document records the publication of a smart contract regarding group transaction information 126, etc.). Physical infrastructure 114 can be used to retrieve any data or information described herein.
[0040] Smart contracts can be created using high-level applications and programming languages, and then written to blocks in a blockchain. Smart contracts can include executable code that is registered, stored, and / or replicated using a blockchain (e.g., a distributed network of blockchain peers). A transaction is the execution of smart contract code, which can be performed in response to the fulfillment of conditions associated with the smart contract. The execution of a smart contract can trigger trusted modifications to the state of the digital blockchain ledger. Modifications to the blockchain ledger caused by the execution of a smart contract can be automatically replicated across a distributed network of blockchain peers via one or more consensus protocols.
[0041] Smart contracts can write data to the blockchain in key-value pair format. Furthermore, smart contract code can read values stored in the blockchain and use them in application operations. Smart contract code can write the outputs of different logical operations to the blockchain. The code can be used to create temporary data structures in virtual machines or other computing platforms. Data written to the blockchain can be public and / or can be encrypted and maintained as private. Temporary data used / generated by smart contracts is stored in memory by the provisioned execution environment and then deleted once the data needed by the blockchain is identified.
[0042] Chaincode can include a code interpretation of a smart contract with additional features. As described herein, chaincode can be program code deployed on a computing network, where it is executed and verified together by a chain confirmer during the consensus process. Chaincode receives hashes and retrieves hashes from the blockchain associated with a data template created using a previously stored feature extractor. If the hash of the hash identifier matches a hash created from the stored identifier template data, the chaincode sends an authorization key to the requested service. Chaincode can write data associated with cryptographic details to the blockchain (e.g., thus confirming transaction groups, identifying conflicts between one or more transactions within a transaction group, etc.).
[0043] Figure 1B An example of a conventional blockchain transaction flow 150 between nodes in a blockchain, according to an exemplary implementation, is shown. References Figure 1B The transaction flow may include a transaction proposal 191 sent by application client node 160 to one or more endorsing peer nodes 181 (e.g., in some embodiments, transaction proposal 191 may be a transaction verification request and / or conflict verification request). Endorsing peer 181 may verify the client signature and execute chaincode functionality to initiate the transaction. Output may include chaincode results, a set of key / value versions read in the chaincode (read set), and a set of key / value versions written in the chaincode (write set). If approved, a proposal response 192, along with the endorsement signature, is sent back to client 160. Client 160 assembles the endorsements into a transaction payload 193 and broadcasts it to ordering service node 184. Ordering service node 184 then delivers the ordered transactions as blocks to all peers 181-183 on the channel. Each peer 181-183 may verify the transaction before committing it to the blockchain. For example, a peer may check the endorsement policy to ensure that the correct allocation for the designated peer has signed the result and verified the signature on the transaction payload 193.
[0044] Refer again Figure 1B Client node 160 initiates transaction 191 by constructing a request and sending it to peer node 181, which acts as the endorser. Client 160 may include an application utilizing a supported software development kit (SDK) that uses available APIs to generate transaction proposal 191. A proposal is a request to call a chaincode function to allow data to be read and / or written to the ledger (e.g., writing new key-value pairs for assets). The SDK can reduce the package of transaction proposal 191 to an appropriate architectural format (e.g., a protocol buffer over a remote process call (RPC)) and use the client's cryptographic certificate to generate a unique signature for transaction proposal 191.
[0045] In response, the endorsing peer 181 can verify that (a) transaction proposal 191 is well-formed, (b) the transaction has not been committed in the past (replay attack protection), (c) the signature is valid, and (d) the committer (in this example, client 160) is properly authorized to perform the proposed operation on the channel. The endorsing peer 181 can input transaction proposal 191 as an argument to the invoked chaincode function. The chaincode is then executed against the current state database to produce a transaction result including response values, a read set, and a write set. However, no ledger is updated at this time. In some embodiments, this set of values, along with the signature of the endorsing peer 181, is passed back to client 160's SDK as a proposal response 192, which parses the payload consumed by the application.
[0046] In response, client 160's application checks / verifies the signature of the endorsing peer and compares the proposed response to determine if they are identical. If the chaincode only queries the ledger, the application will check the query response and typically will not commit the transaction to the ordering node service 184. If the client application intends to commit the transaction to the ordering node service 184 to update the ledger, the application determines whether the endorsement policy specified before the commit has been satisfied (e.g., whether the transaction verification request has been accepted). Here, the client may include only one of the many parties to the transaction. In this case, each client may have its own endorser node, and each endorser node will need to endorse the transaction. This architecture ensures that even if the application chooses not to check the response or otherwise forwards the unendorsed transaction, the endorsement policy will still be enforced by the peer and maintained during the commit verification phase.
[0047] After a successful check, in step 193, client 160 assembles the endorsements into a transaction and broadcasts the transaction proposal 191 and the response within the transaction message to sorting node 184. The transaction may contain a read / write set, the signatures of the endorsing peers, and the channel ID. Sorting node 184 does not need to examine the entire contents of the transaction to execute its operation; instead, it can simply receive transactions from all channels in the network, sort them by channel, and create a transaction block for each channel.
[0048] The transaction block is delivered from sorting node 184 to all peer nodes 181-183 on the channel. Transaction 194 within the block is verified to ensure any endorsement policies are satisfied and that the ledger state for the read set variable remains unchanged, as the read set was generated by the transaction execution. The transaction in the block is marked as valid or invalid. Furthermore, in step 195, each peer node 181-183 appends the block to the channel's chain, and for each valid transaction, the write set is committed to the current state database. Events are emitted to notify clients that the application transaction (call) has been immutably appended to the chain, and to indicate whether the transaction has been verified or invalidated. Verified transactions and their associated values update the blockchain ledger, while invalid transactions are committed, but the invalid transaction value is not updated on the blockchain ledger.
[0049] Turn Figure 2A This document illustrates an example self-auditing blockchain network 200 for auditing and identifying potential malicious activity (e.g., worms and viruses) in peer nodes 202, according to embodiments of this disclosure. Malicious activity (generally referred to below as bugs and / or hacks) can take various forms of malware, including but not limited to viruses, worms, rogue software, or any combination thereof. While the embodiments disclosed herein generally refer to the self-auditing blockchain network 200 as a permissioned blockchain consortium (e.g., a hyperledger blockchain network), the self-auditing blockchain network 200 can be configured to operate within any type of blockchain consortium (e.g., a permissionless blockchain) having peer nodes or nodes providing similar role functionality. The self-auditing blockchain network 200 allows different peers within the blockchain consortium to determine whether malware / bugs (e.g., hacks and / or malicious / malicious activity) are affecting one or more peer nodes without compromising trust within the blockchain consortium. The embodiments discussed herein allow for real-time malicious activity detection and methods associated with location, where malicious activity has impacted the integrity of the blockchain consortium.
[0050] In an embodiment, the self-auditing blockchain network 200 may include peer nodes 202 and an imprinting policy 203. Peer nodes 202 may be configured to include an imprinting module 204, an auditing module 206, and a hacker detection module 208. Although in some embodiments (e.g., as...) Figure 2AAs shown, the audit module 206, hacker location module 208, and imprint collection module 204 are configured separately. However, in other embodiments, the audit module 206 and hacker location module 208 are sub-components of the imprint collection module 204. This document will discuss different embodiments with respect to each module (e.g., imprint collection module 204, audit module 206, and hacker location module 208). Generally, each participating peer node (e.g., peer node 202) includes: i) an imprint collection module 204, which is configured to generate imprints (e.g., imprint 220) specific to the peer node containing the particular module, and collect imprints generated by other participating peer nodes; ii) an audit module 206, which is configured to identify consensus among the collected imprints and compare each imprint with a consensus imprint; iii) a hacker location module 208, which is configured to receive imprints from the audit module 206 that do not match the consensus imprints, and identify where a hacker occurred in the process information of the peer node.
[0051] While the embodiments disclosed herein typically involve a single peer node (e.g., peer node 202), the self-auditing blockchain network 200 may include any number of peer nodes with similar configurations. These embodiments are generally depicted as a self-auditing blockchain network 200 at the peer node level and should not be construed as a blockchain consortium with only one peer node. In embodiments, the self-auditing blockchain network 200 and the embodiments disclosed herein may be applied to each peer node (e.g., peer node 202) within a blockchain consortium. In these embodiments, each peer node is similarly configured (e.g., as disclosed with reference to peer node 202) to perform consensus and effective self-auditing across the entire blockchain. As mentioned herein, the self-auditing blockchain network 200 may be configured within a permissioned blockchain consortium. A permissioned blockchain may be configured to have multiple organizations, each of which may have one or more peer nodes in its respective data center.
[0052] In some embodiments, the self-auditing blockchain network 200 may include an imprinting policy 203. In embodiments with an imprinting policy 203, the imprinting policy 203 may include standards and conditions that each peer node 202 of the self-auditing blockchain network 200 must adhere to and implement when performing self-auditing functions (e.g., such as imprint generation). While the imprinting policy 203 will be discussed in more detail herein, the imprinting policy 203 provides conditions that each peer node 202 must follow to ensure that the results of the self-auditing function are repeatable and consensus-based across all peer nodes 202 in the blockchain network. For example, the imprinting policy 203 may provide conditions and rules that must be followed so that each peer node 202 generates an imprint (e.g., referencing...). Figure 2BThe discussion covers what data / information constitutes process information 212, how consensus imprints are identified, and how peer node 202 and / or the self-auditing blockchain network 200 react when one or more errors (e.g., hacking) are identified in the imprints of peer node 202.
[0053] In one embodiment, peer node 202 may include an imprinting module 204. The imprinting module 204 may reside within the operating system kernel of peer node 202. In these embodiments, where the imprinting module 204 is implemented within the operating system kernel of peer node 202, the imprinting module 204 is then protected and prevented from access by applications or other less critical components of the operating system of peer node 202 that may be affected by malware / errors (e.g., hacking). In another embodiment, the imprinting module 204 may collect process information from peer node 202.
[0054] While in some of these embodiments process information may be stored in one or more process address spaces within the operating system kernel address space, in other embodiments, process information may be stored in one or more process address spaces outside the operating system kernel of peer node 202. In embodiments where process information is stored in one or more process address spaces outside the operating system kernel, the imprinting module may be configured to collect process information from the relevant process address spaces. Peer node 202 may also employ any type of computer security technique, such as Address Space Layout Randomization (ASLR), to reduce or eliminate memory corruption vulnerabilities. Using such computer security techniques ensures that attackers cannot conceal or hide their malicious activities while the self-auditing blockchain network 200 performs auditing functions.
[0055] Attackers refer to actors who continuously use hacking and malware on the self-audited blockchain network 200. While attackers may be associated with parties outside the blockchain consortium, such actors or activities can sometimes be initiated by malicious peer nodes within the self-audited blockchain network 200. Attackers often aim to compromise various aspects of the blockchain by keeping their malicious activities secret. Generally, the longer the malicious activity remains secret, the more likely the attacker is to successfully achieve their desired goals. In embodiments, ASLR or other similar computer security techniques may randomly arrange the address space associated with process information 212 (e.g., containing executable code, stack, HEAP, and / or libraries) and make it more difficult for attackers to predict a particular address space. For example, if an attacker (such as a malicious peer node 202 in a set of peer nodes 202) can predict the address space of process information 212 associated with peer node 202, then the attacker (e.g., the malicious peer node 202) can identify what process information 212 represents a non-hacking process (e.g., process information unaffected by bugs / hacking or malicious activity) and produce a forged imprint that mimics an imprint that does not indicate that a hack has occurred (e.g., 220). Accordingly, by making the address space more difficult to predict self-auditing, the blockchain network 200 can perform self-auditing functions and ensure that each participating peer node 202 trusts the results associated with the self-auditing. In an embodiment, the imprinting module 204 can be made aware of the ASLR ASLR location by hooking into the runtime loader associated with the peer node 202.
[0056] In this embodiment, peer node 202 can use the collected process information and imprint collection module 204 to generate imprints (e.g., such as...). Figure 2B The imprint shown is 220), which represents different process information collected by the imprint collection module 204 (e.g., such as...). Figure 2B The process information 212 shown is illustrated. A mark can represent process information collected during the lifetime of peer node 202, or alternatively, it can represent process information collected during a specific time period. In an embodiment, the marking strategy 203 can specify how frequently process information is collected by each peer node 202. For example, the marking strategy 203 can provide conditions for collecting process information after a specific duration or after peer node 202 has accumulated a specific number of process information entries (e.g., generating a mark after 10 or 100 different process information entries). While marks can be generated in various ways, reference is made to... Figure 2B Some exemplary implementations of imprint generation are discussed.
[0057] Figure 2B Exemplary embodiments are provided to describe how an imprint collection module 204 can generate imprints (e.g., imprint 220) according to embodiments of the present disclosure. Figure 2BAs shown, the imprint collection module 204 can collect process information 212 from the process address space 210. The process address space 210 can represent the address space and process information (e.g., process information 212) collected from the operating system kernel of the internal peer node 202, the operating system kernel of the external peer node 202, or any combination thereof. While process information 212 can generally refer to information and data generated as peer node 202 performs routine blockchain functions, it can include any type of data / information (e.g., as regulated by the imprinting policy 203). Although process information 212 can include any type of data / information, this data / information is often the type that would be affected in the event of a hack (e.g., an error). In embodiments, imprint 220 can be generated using any type of process information 212, as contemplated herein, or from fewer than all available types of process information 212. For example, while in some embodiments process information 212 may include types of process information, such as code, libraries, transaction metadata, and data stored in other memory storage areas within the operating system (e.g., HEAP) of the peer node 202, in other embodiments, the imprint collection module 204 may use only one type of process information 212 (such as a specific type of code (e.g., executable code segments)) to generate imprints 220. In some embodiments, code may refer to and include both executable code segments (e.g., code 0, code 1, code 2) and data code segments, or in other embodiments, the collected process information 212 may include either executable code segments or data code segments. In embodiments, the imprinting strategy 203 may provide the peer node 202 with conditions regarding what data / information should be considered process information 212 and what data / information should be ignored when generating imprints. Without such consistency, each peer node 202 within the self-auditing blockchain network 200 will rely on its own definition of process information 212, independent of other peers, and may merge different data / information into imprint 220. Continuing the example, if each peer node generates imprints using different data / information, each peer node may produce different imprints. If each imprint generated by peer node 202 is different, consensus cannot be identified in the generated imprints, and the self-auditing function cannot be performed.
[0058] In an embodiment, the imprint collection module 204 may use one or more hash iterations to generate imprint 220. While known to those skilled in the art, hashing generally refers to applying a hash function to a string (e.g., process information 212) and converting the string into a shorter or fixed-length value representing the original string. Figure 2BIn the example shown, if code 0 and code 1 in process address space 210 contain the exact same string, and both code 0 and code 1 are hashed by the same hash function, then each resulting hash process information 214 will be identical. However, in the same instance, if code 0 and code 1 differ from each other by one or more characters, then the two resulting hash process information 214 will be different. The imprinting module 204 can be configured to use any available hash function or combination of hash functions.
[0059] exist Figure 2B In this embodiment, the imprint collection module 204 can be configured to generate Merkle trees 216 and Merkle roots 218 by hashing the process information 214 block by block. While the complexity of the resulting imprint 220 generated by the imprint collection module 204 can be within a certain range, the imprint 220 should represent all collected process information 212. Accordingly, in some embodiments, the imprint 220 can simply be a Merkle root 218. In other embodiments, the imprint 220 may include a list of each hashed page, comprising generated Merkle trees 216 or subsets of generated Merkle trees 216 ordered in a specific order. Figure 2B The imprint 220 shown describes imprints arranged in a specific order. For example, as... Figure 2B As shown, imprint 220 may include a combination of components arranged in a specific order. Imprint 220 may begin with Merkelgen 218, followed by hash page blocks of various generations.
[0060] In some embodiments, each imprint 220 may end with one or more metadata entries. This metadata may include data / information associated with imprint generation and / or process information 212. In these embodiments, the metadata may include information about how the initial imprint was generated. For example, the metadata may include a timestamp when imprint 220 was generated, a counter distinguishing different imprints generated by the same peer node, information associated with how different pages of process information 212 are arranged, and how many different pieces of process information 212 were initially collected by peer node 202 before imprint 220 was generated. In some embodiments, this metadata may be used by auditing module 206 and hacker location module 208 to identify and locate the location of a hack / error. In embodiments, imprinting strategy 203 may provide each peer node 202 with conditions associated with what hash function should be used to generate imprint 220, what hash components should be used for imprint 220 (e.g., Merkle root 218 and / or Merkle tree 216), if there are more than one hash component, how each component should be ordered, or any combination thereof.
[0061] In an embodiment, the imprint collection module 204 and the audit module 206 can be configured to work together to perform audit functions.
[0062] In embodiments, the imprint collection module 204 can ensure that the generated imprint 220 is secure against attackers by using different encryption modes. For example, the imprint collection module 204 can use a random symmetric key to encrypt the imprint 220. By encrypting the imprint 220, the imprint collection module 204 can reduce or prevent attackers from observing the imprints of healthy peer nodes (e.g., peer nodes that have not been hacked) and allow attackers to mask their activation by generating imprints that are reproductions of the imprints of healthy peer nodes. In embodiments, the imprint collection module 204 can be configured to generate a first message. In these embodiments, the imprint collection module 204 can be configured to include an encrypted imprint and a signature that identifies which peer node 202 among all peer nodes in the blockchain network generated the imprint (e.g., imprint 220). Once generated, the imprint collection module 204 can submit the first message to the blockchain.
[0063] As discussed herein, although the embodiments are frequently viewed from the peer-to-peer level (e.g., peer 202), each peer in a blockchain network (e.g., a self-auditing blockchain network 200) performs similar actions. Accordingly, each peer submits a first message to the blockchain, which includes at least a cryptographic imprint representing its respective process information (e.g., process information 212) and a peer-specific signature that can be used for identification. By enabling each peer 202 to submit its respective first message to the blockchain, the self-auditing blockchain network 200 is allowed to maintain an attacker-resistant imprint log for later use.
[0064] After each first message from each peer node within the self-audited blockchain network 200 is submitted to the blockchain, the imprint collection module 204 of each peer node 202 generates a second message. In an embodiment, the second message may include a signature of a specific peer node and an encryption key (e.g., a random symmetric key) used to encrypt the imprint (e.g., imprint 220) in the first message. In an embodiment, each peer node 202 then submits this second message to the blockchain. This configuration of submitting the first message to the blockchain first ensures the existence of a record of the imprint, which cannot be altered and can only be decrypted after the submission of the second message from each peer node. Such a configuration ensures that peer nodes and / or attackers cannot alter their original imprints to conceal their hacking / errors or malicious activities from the self-audited blockchain network 200.
[0065] In various embodiments, although each peer node 202 is configured to have an audit module 206, often only one peer node needs to be accessed to perform the audit function. In embodiments, the audit module 206 may be configured to collect encrypted imprints from a first message associated with each peer node (e.g., peer node 202) in the self-auditing blockchain network 200. In some embodiments, the audit module 206 may be configured to verify that each imprint was generated by a trusted peer node. In these embodiments, the audit module 206 may verify that the peer identifies the signature. While in some embodiments, if the audit module 206 fails to verify, the verification request is resubmitted, in other embodiments, the audit module 206 may be configured to issue a warning to the rest of the self-auditing blockchain network 200 indicating that a peer node has participated in the blockchain network without permission. Once each peer node in the self-auditing blockchain network 200 has been verified, the audit module 206 may be configured to collect each random symmetric key from the imprint collection module 204 of each individual peer node used to encrypt each imprint, or may collect each random symmetric key from a second message. In embodiments, when audit module 206 has decrypted each imprint (e.g., from the set of first messages) using the collected keys, audit module 206 can analyze the imprints generated by each peer node 202. In these embodiments, audit module 206 can analyze each imprint and associated metadata to identify the presence of a consensus imprint within the set of imprints. A consensus imprint can be identified when a batch of imprints has exactly the same imprint. In embodiments, imprint strategy 203 may also include content that qualifies as a consensus imprint. For example, imprint strategy 203 may identify consensus imprints as a simple majority or supermajority of the same imprints generated from different peers. In embodiments, if audit module 206 determines that one or more imprints do not match a consensus imprint, those imprints are submitted to hacker detection module 208.
[0066] Turn Figure 2CAn example of a hacker location module 208 is depicted according to embodiments of this disclosure. In embodiments, the hacker location module 208 may be configured to compare consensus imprint 222 with identified mismatch imprint 226. In these embodiments, the hacker location module 208 may extend both consensus imprint 222 and mismatch imprint 226 and reconfigure the corresponding Merkle tree associated with each imprint (e.g., consensus Merkle tree 224 and mismatch Merkle tree 228). In embodiments, the hacker location module 208 may compare consensus Merkle tree 224 and mismatch Merkle tree 228 and identify which hashes (e.g., leaves / branches of the Merkle trees) are different. If the hashes in the mismatch Merkle tree 228 are the same as the hashes in the consensus Merkle tree 224, there is no indication that a hack / error has occurred. However, if the hash of the mismatched Merkle tree 228 differs from the corresponding hash of the consensus Merkle tree 224, this indicates a difference in what process was being performed on that particular peer. In embodiments, once a hack / bug has been identified and localized, a report identifying the hack / bug and where it occurred can be generated. While in some embodiments this report may only be sent to the peer identified as having hacking behavior, in other embodiments this report may be sent to one or more other peers in the self-audited blockchain network (e.g., those reports identifying numerous hacking behaviors / bugs within the process information of a single peer).
[0067] See now Figure 3 The diagram illustrates a flowchart of an exemplary method 300 for a self-auditing blockchain network according to embodiments of the present disclosure. In some embodiments, method 300 may be performed by one or more peer nodes within a blockchain network (e.g., blockchain network 200).
[0068] In some embodiments, method 300 begins at operation 302, where the processor collects process information from peer nodes in the blockchain network. Method 300 proceeds to operation 304, where the processor generates an imprint from the peer node's process information. Method 300 proceeds to operation 306, where the processor compares the peer node's imprint with a consensus imprint to detect one or more hacks / errors. Method 300 proceeds to operation 308, where the processor identifies whether the peer node has been hacked.
[0069] In some embodiments, as depicted, method 300 may end after operation 308.
[0070] In some embodiments discussed below, for brevity, one or more operations of method 300 are not depicted; the operations / steps are further performed by a processor. Thus, in some embodiments, the processor may use imprints to identify where errors in the corrupted peer occurred in the process information. In some embodiments, generating imprints from process information may include the processor hashing the process information from the peer nodes to generate a Merkle tree. The processor may generate a Merkle tree. The processor may configure the Merkle tree to form imprints of the peer nodes.
[0071] In some embodiments, the processor may encrypt the imprint to form an encrypted imprint. The processor may generate a first message. The first message may include the encrypted imprint and a signature. The signature identifies the peer node associated with the imprint. The processor may submit the first message to the blockchain.
[0072] In some embodiments, the processor may generate a second message. The second message may include one or more keys for decrypting the encrypted imprint to reconstruct it. The processor may submit the second message to a blockchain.
[0073] In some embodiments, the processor may verify the signature of the peer associated with the first message. The processor may collect one or more keys from the second message. The processor may use the one or more keys from the second message to decrypt the cryptographic imprint of the first message.
[0074] In some embodiments, comparing imprints with imprint consensus to detect errors may include a process for determining imprint consensus. Determining imprint consensus may include identifying a set of peer nodes with the same imprint.
[0075] In some embodiments, the processor may analyze the imprint consensus. The processor may identify process information associated with an imprint that does not match the imprint consensus. The processor may generate a report. The report may include where the error is located within the process information.
[0076] It should be understood that while this disclosure includes a detailed description of cloud computing, the implementation of the teachings cited herein is not limited to cloud computing environments. Rather, embodiments of this disclosure can be implemented in conjunction with any other type of computing environment now known or developed hereafter.
[0077] Cloud computing is a service delivery model that enables convenient, on-demand network access to a shared pool of configurable computing resources (e.g., networks, network bandwidth, servers, processing, memory, storage, applications, virtual machines, and services), which can be rapidly provisioned and released with minimal management effort or interaction with the service provider. This cloud model may include at least five features, at least three service models, and at least four deployment models.
[0078] The features are as follows:
[0079] On-demand self-service: Cloud consumers can unilaterally and automatically provide computing power, such as server time and network storage, as needed, without requiring human interaction with the service provider.
[0080] Extensive network access: Capabilities are available through networks and accessed via standard mechanisms that facilitate the use of heterogeneous thin client or thick client platforms (e.g., mobile phones, laptops, and PDAs).
[0081] Resource pooling: A provider's computing resources are pooled to serve multiple consumers using a multi-tenant model, where different physical and virtual resources are dynamically assigned and reassigned as needed. There is a sense of partial independence because consumers typically do not have control or knowledge of the exact portions of the resources provided, but may be able to specify portions at a higher level of abstraction (e.g., country, state, or data center).
[0082] Rapid flexibility: The ability to provide capacity quickly and flexibly, automatically scaling down and up rapidly in some situations to scale up rapidly. For consumers, the available supply capacity often appears unlimited and can be purchased in any quantity at any time.
[0083] Measuring services: Cloud systems automatically control and optimize resource usage by leveraging metering capabilities at a level of abstraction appropriate to the service type (e.g., storage, processing, bandwidth, and active user accounts). Resource usage can be monitored, controlled, and reported, providing transparency to both service providers and consumers.
[0084] The service model is as follows:
[0085] Software as a Service (SaaS): This provides consumers with the ability to use the provider's applications running on cloud infrastructure. Applications can be accessed from different client devices via thin client interfaces such as web browsers (e.g., web-based email). Consumers do not manage or control the underlying cloud infrastructure, including the network, servers, operating system, storage, or even individual application capabilities, with possible exceptions such as limited user-specific application configuration settings.
[0086] Platform as a Service (PaaS): This provides consumers with the ability to deploy applications created by the consumer or acquired using programming languages and tools supported by the provider onto cloud infrastructure. Consumers do not manage or control the underlying cloud infrastructure, including networks, servers, operating systems, or storage, but they have control over the deployed applications and the configuration of any application hosting environment.
[0087] Infrastructure as a Service (IaaS): The capabilities offered to consumers are processing, storage, networking, and other basic computing resources that enable consumers to deploy and run arbitrary software, which may include operating systems and applications. Consumers do not manage or control the underlying cloud infrastructure, but rather have control over the operating system, storage, deployed applications, and potentially limited control over selected networking components (e.g., host firewalls).
[0088] The deployment model is as follows:
[0089] Private cloud: A cloud infrastructure that operates solely for an organization. It can be managed by the organization or a third party and can exist on-site or off-site.
[0090] Community cloud: A cloud infrastructure shared by several organizations and supporting a specific community with shared concerns (e.g., tasks, security requirements, policies, and compliance considerations). It can be managed by an organization or a third party and can exist on-site or off-site.
[0091] Public cloud: Makes cloud infrastructure available to the public or large industry groups and is owned by an organization that sells cloud services.
[0092] Hybrid cloud: A cloud infrastructure is a combination of two or more clouds (private, community, or public) that remain a single entity but are bound together by standardized or proprietary technologies that enable data and applications to be portable (e.g., cloud bursting for load balancing between clouds).
[0093] Cloud computing environments are service-oriented, focusing on statelessness, loose coupling, modularity, and semantic interoperability. At the heart of cloud computing is the infrastructure comprising a network of interconnected nodes.
[0094] Figure 4A A cloud computing environment 410 is illustrated. As shown, the cloud computing environment 410 includes one or more cloud computing nodes 400 that can communicate with local computing devices used by cloud consumers, such as, for example, personal digital assistants (PDAs) or cellular phones 400A, desktop computers 400B, laptop computers 400C, and / or automotive computer systems 400N. The nodes 400 can communicate with each other. They can be physically or virtually grouped (not shown) in one or more networks, such as private clouds, community clouds, public clouds, or hybrid clouds, or combinations thereof, as described above.
[0095] This allows cloud computing environments 410 to provide infrastructure, platforms, and / or software services to cloud consumers without requiring them to maintain resources on their local computing devices. It should be understood that... Figure 4AThe types of computing devices 400A-N shown are intended to be illustrative only, and computing node 400 and cloud computing environment 410 can communicate with any type of computerized device via any type of network and / or network-addressable connection (e.g., using a web browser).
[0096] Figure 4B This demonstrates the use of a cloud computing environment 410 ( Figure 4A This provides a set of functional abstractions. It should be understood beforehand. Figure 4B The components, layers, and functions shown are intended to be illustrative only, and embodiments of this disclosure are not limited thereto. The following layers and corresponding functions are provided.
[0097] The hardware and software layer 415 includes hardware and software components. Examples of hardware components include: a mainframe 402; a RISC (Reduced Instruction Set Computer) based server 404; a server 406; a blade server 408; a storage device 411; and a network and network components 412. In some embodiments, software components include network application server software 414 and database software 416.
[0098] The virtualization layer 420 provides an abstraction layer from which the following examples of virtual entities can be provided: virtual server 422; virtual storage 424; virtual network 426, including virtual private network; virtual application and operating system 428; and virtual client 430.
[0099] In one example, management layer 440 may provide the functions described below. Resource provisioning 442 provides dynamic procurement of computing resources and other resources used to perform tasks within the cloud computing environment. Metering and pricing 444 provides cost tracking as resources are utilized within the cloud computing environment and bills or invoices for the consumption of these resources. In one example, these resources may include application software licenses. Security provides authentication for cloud consumers and tasks, as well as protection for data and other resources. User portal 446 provides access to the cloud computing environment for consumers and system administrators. Service level management 448 provides cloud resource allocation and management to ensure that required service levels are met. Service level agreement (SLA) planning and fulfillment 450 provides pre-scheduling and procurement of cloud resources based on anticipated future needs according to the SLA.
[0100] The workload layer 460 provides examples of functionalities that can leverage a cloud computing environment. Examples of workloads and functionalities that can be provided from this layer include: mapping and navigation 462; software development and lifecycle management 464; virtual classroom education delivery 466; data analytics and processing 468; transaction processing 470; and self-auditing 472.
[0101] Figure 5A high-level block diagram of an exemplary computer system 501, according to embodiments of the present disclosure, is shown that can be used to implement one or more of the methods, tools, and modules described herein and any associated functions (e.g., using one or more processor circuits of a computer or a computer processor). In some embodiments, the main components of the computer system 501 may include one or more CPUs 502, a memory subsystem 504, a terminal interface 512, a storage interface 516, an I / O (input / output) device interface 514, and a network interface 518, all of which may be directly or indirectly communicatively coupled for inter-component communication via a memory bus 503, an I / O bus 508, and an I / O bus interface unit 510.
[0102] Computer system 501 may include one or more general-purpose programmable central processing units (CPUs) 502A, 502B, 502C, and 502D, collectively referred to herein as CPU 502. In some embodiments, computer system 501 may include a typical plurality of processors found in relatively large systems; however, in other embodiments, computer system 501 may alternatively be a single CPU system. Each CPU 502 may execute instructions stored in memory subsystem 504 and may include one or more onboard caches.
[0103] System memory 504 may include computer system readable media in the form of volatile memory, such as random access memory (RAM) 522 or cache memory 524. Computer system 501 may further include other removable / non-removable, volatile / non-volatile computer system storage media. By way of example only, storage system 526 may be configured to read from and write to non-removable, non-volatile magnetic media (such as a "hard disk drive"). Although not shown, a disk drive may be provided for reading from or writing to a removable non-volatile disk (e.g., a "floppy disk"), or an optical disk drive may be provided for reading from or writing to a removable non-volatile optical disk (such as a CD-ROM, DVD-ROM, or other optical media). Furthermore, memory 504 may include flash memory, such as a flash stick drive or a flash drive. Memory devices may be connected to memory bus 503 via one or more data media interfaces. Memory 504 may include at least one program product having a set (e.g., at least one) of program modules configured to perform the functions of different embodiments.
[0104] One or more programs / utilities 528, each having at least one set of program modules 530, may be stored in memory 504. Programs / utilities 528 may include a hypervisor (also called a virtual machine monitor), one or more operating systems, one or more applications, other program modules, and program data. Each or some combination of the operating system, one or more applications, other program modules, and program data may include an implementation of a network environment. Programs 528 and / or program modules 530 generally perform the functions or methods of different embodiments.
[0105] Although the memory bus 503 is Figure 5 The diagram illustrates a single bus structure providing a direct communication path between CPU 502, memory subsystem 504, and I / O bus interface 510. However, in some embodiments, memory bus 503 may include multiple different buses or communication paths, which may be arranged in any of a variety of forms, such as point-to-point links in hierarchical, star, or network configurations, multiple hierarchical buses, parallel and redundant paths, or any other suitable type of configuration. Furthermore, although I / O bus interface 510 and I / O bus 508 are shown as a single corresponding unit, in some embodiments, computer system 501 may include multiple I / O bus interface units 510, multiple I / O buses 508, or both. Further, while multiple I / O interface units are shown separating I / O bus 508 from different communication paths running to different I / O devices, in other embodiments, some or all of the I / O devices may be directly connected to one or more system I / O buses.
[0106] In some embodiments, computer system 501 may be a multi-user mainframe computer system, a single-user system, a server computer, or a similar device that has little or no direct user interface but receives requests from other computer systems (clients). Further, in some embodiments, computer system 501 may be implemented as a desktop computer, portable computer, laptop or notebook computer, tablet computer, pocket computer, telephone, smartphone, network switch or router, or any other suitable type of electronic device.
[0107] It is important to note that Figure 5 This description aims to depict representative major components of an exemplary computer system 501. However, in some embodiments, a single component may have more than Figure 5 The greater or lesser complexity represented therein can exist differently from... Figure 5 The components shown or excluding Figure 5 Components other than those shown, and the number, type, and configuration of such components can vary.
[0108] As discussed in more detail herein, it is anticipated that some or all of the operations of some embodiments of the methods described herein may be performed in an alternative order or may not be performed at all; furthermore, multiple operations may occur simultaneously or as part of a larger process.
[0109] This disclosure can be a system, method, and / or computer program product with any possible level of technical detail integration. The computer program product may comprise a computer-readable storage medium (or media) having computer-readable program instructions thereon for causing a processor to execute aspects of the invention.
[0110] Computer-readable storage media can be tangible means for retaining and storing instructions for use by an instruction execution device. Computer-readable storage media can be, for example, but not limited to, electronic storage devices, magnetic storage devices, optical storage devices, electromagnetic storage devices, semiconductor storage devices, or any suitable combination of the foregoing. A non-exhaustive list of more specific examples of computer-readable storage media includes: portable computer disks, hard disks, random access memory (RAM), read-only memory (ROM), erasable programmable read-only memory (EPROM or flash memory), static random access memory (SRAM), portable compact disk read-only memory (CD-ROM), digital universal disk (DVD), memory sticks, floppy disks, mechanical encoding devices such as punch cards or protrusions in slots having instructions recorded thereon, and any suitable combination of the foregoing. As used herein, computer-readable storage media should not be construed as transient signals themselves, such as radio waves or other freely propagating electromagnetic waves, electromagnetic waves propagating through waveguides or other transmission media (e.g., light pulses passing through fiber optic cables), or electrical signals transmitted through wires.
[0111] The computer-readable program instructions described herein can be downloaded from a computer-readable storage medium to a suitable computing / processing device via a network (e.g., the Internet, a local area network, a wide area network, and / or a wireless network), or to an external computer or external storage device. The network may include copper cables, optical fibers, wireless transmissions, routers, firewalls, switches, gateway computers, and / or edge servers. A network adapter card or network interface in each computing / processing device receives the computer-readable program instructions from the network and forwards them to a computer-readable storage medium within the suitable computing / processing device.
[0112] Computer-readable program instructions used to perform the operations of this disclosure may be assembly instructions, instruction set architecture (ISA) instructions, machine instructions, machine-dependent instructions, microcode, firmware instructions, status setting data, integrated circuit configuration data, or source code or object code written in any combination of one or more programming languages, including object-oriented programming languages (such as Smalltalk, C++, etc.) and procedural programming languages (such as the "C" programming language or similar programming languages). The computer-readable program instructions may be executed entirely on a user's computer, partially on a user's computer, as a standalone software package, partially on a user's computer and partially on a remote computer, or entirely on a remote computer or server. In the latter case, the remote computer may be connected to the user's computer via any type of network (including a local area network (LAN) or a wide area network (WAN)) or may be connected to an external computer (e.g., via the Internet using an Internet service provider). In some embodiments, electronic circuitry including, for example, programmable logic circuitry, field-programmable gate arrays (FPGAs), or programmable logic arrays (PLAs) may execute computer-readable program instructions by utilizing the status information of the computer-readable program instructions to personalize the electronic circuitry in order to perform aspects of this disclosure.
[0113] This document describes aspects of the disclosure with reference to flowchart illustrations and / or block diagrams of methods, apparatus (systems), and computer program products according to embodiments of the disclosure. It should be understood that each block of the flowcharts and / or block diagrams, and combinations of blocks in the flowcharts and / or block diagrams, can be implemented by computer-readable program instructions.
[0114] These computer-readable program instructions may be provided to a processor of a computer or other programmable data processing apparatus to produce a machine, such that the instructions, which execute via the processor of the computer or other programmable data processing apparatus, create means for implementing the functions / actions specified in one or more blocks of a flowchart and / or block diagram. These computer-readable program instructions may also be stored in a computer-readable storage medium that causes a computer, programmable data processing apparatus, and / or other device to operate in a particular manner, such that the computer-readable storage medium storing the instructions includes an article of manufacture containing instructions that implement aspects of the functions / actions specified in one or more blocks of a flowchart and / or block diagram.
[0115] Computer-readable program instructions may also be loaded onto a computer, other programmable data processing apparatus, or other device to cause a series of operational steps to be performed on the computer, other programmable apparatus, or other device to produce computer-implemented processing, such that the instructions executed on the computer, other programmable apparatus, or other device perform the functions / actions specified in one or more boxes of a flowchart and / or block diagram.
[0116] The flowcharts and block diagrams in the accompanying drawings illustrate the architecture, functionality, and operation of possible implementations of systems, methods, and computer program products according to various embodiments of this disclosure. Each block in a flowchart or block diagram may represent a module, segment, or portion of instructions, including one or more executable instructions for implementing a specified logical function. In some alternative implementations, the functions marked in the blocks may occur in a different order than indicated in the figures. For example, two consecutively shown blocks may actually be completed as a single step, executed simultaneously, substantially simultaneously, or with partial or complete temporal overlap, or the blocks may sometimes be executed in reverse order, depending on the functions involved. It should also be noted that each block in the block diagrams and / or flowcharts, and combinations of blocks in the block diagrams and / or flowcharts, may be implemented using a dedicated hardware-based system that performs the specified function or action or executes a combination of dedicated hardware and computer instructions.
[0117] Various embodiments of this disclosure have been described for illustrative purposes, but are not intended to be exhaustive or limited to the disclosed embodiments. Many modifications and variations will be apparent to those skilled in the art without departing from the scope of the described embodiments. The terminology used herein has been chosen to best explain the principles of the embodiments, their practical application, or technical improvements to technologies found in the market, or to enable those skilled in the art to understand the embodiments disclosed herein.
[0118] While this disclosure has been described with reference to specific embodiments, variations and modifications thereof are expected to become apparent to those skilled in the art. Therefore, the following claims are intended to be construed as covering all such changes and modifications that fall within the true scope of this disclosure.
Claims
1. A method for a self-auditing blockchain, the self-auditing blockchain having one or more peer nodes, the method comprising: The processor collects process information associated with each of the one or more peer nodes in the self-auditing blockchain; Use one or more hash functions to generate an imprint for each of the one or more peer nodes from the process information; Determining the imprint consensus, wherein determining the imprint consensus includes identifying a group of peer nodes with the same imprint among the one or more peer nodes; as well as The imprint from each of the one or more peer nodes is compared with the imprint consensus to detect an error, wherein the error indicates that one of the one or more peer nodes has been compromised.
2. The method according to claim 1, further comprising: The imprint is used to identify the location of the error in the peer node that was compromised in the process information.
3. The method according to claim 1, wherein, Generating the imprint from the process information further includes: The process information from each of the one or more peer nodes is hashed to generate a Merkle tree; Generate the Merkle tree; and Configure the Merkle tree to form the imprint of each of the one or more peer nodes.
4. The method according to claim 1, further comprising: The imprint is encrypted to form an encrypted imprint; Generate a first message, wherein the first message includes the encrypted imprint and signature, wherein the signature identifies one of the one or more peer nodes associated with the imprint; as well as Submit the first message to the blockchain.
5. The method of claim 4, further comprising: Generate a second message, wherein the second message includes one or more keys for decrypting the encrypted imprint to reconstruct the imprint; as well as Submit the second message to the blockchain.
6. The method of claim 5, further comprising: Verify the signature of one of the one or more peer nodes associated with the first message; Collect the one or more keys from the second message; as well as The encrypted imprint of the first message is decrypted using one or more keys from the second message.
7. The method of claim 1, further comprising: Analyze the aforementioned consensus; Identify process information associated with the imprint that does not fully match the consensus of the imprint; as well as Generate a report, wherein the report includes the location of the error within the process information.
8. A system for a self-auditing blockchain, the self-auditing blockchain having one or more peer nodes, the system comprising: Memory; as well as A processor communicating with the memory, the processor being configured to perform the following operations: Collect process information associated with each of the one or more peer nodes in the self-audited blockchain; Use one or more hash functions to generate an imprint for each of the one or more peer nodes from the process information; Determining the imprint consensus, wherein determining the imprint consensus includes identifying a group of peer nodes with the same imprint among the one or more peer nodes; and The imprint from each of the one or more peer nodes is compared with the imprint consensus to detect an error, wherein the error indicates that one of the one or more peer nodes has been compromised.
9. The system of claim 8, wherein the processor is further configured to perform the following operations: The imprint is used to identify the location of the error in the peer node that was compromised in the process information.
10. The system according to claim 8, wherein, Generating the imprint from the process information further includes: The process information from each of the one or more peer nodes is hashed to generate a Merkle tree; Generate the Merkle tree; and Configure the Merkle tree to form the imprint of each of the one or more peer nodes.
11. The system of claim 8, wherein the processor is further configured to perform the following operations: The imprint is encrypted to form an encrypted imprint; Generate a first message, wherein the first message includes the encrypted imprint and signature, wherein the signature identifies one of the one or more peer nodes associated with the imprint; as well as Submit the first message to the blockchain.
12. The system of claim 11, wherein the processor is further configured to perform the following operations: Generate a second message, wherein the second message includes one or more keys for decrypting the encrypted imprint to reconstruct the imprint; as well as Submit the second message to the blockchain.
13. The system of claim 12, wherein the processor is further configured to perform the following operations: Verify the signature of one of the one or more peer nodes associated with the first message; Collect the one or more keys from the second message; as well as The encrypted imprint of the first message is decrypted using one or more keys from the second message.
14. The system of claim 8, wherein the processor is further configured to perform the following operations: Analyze the aforementioned consensus; Identify process information associated with the imprint that does not fully match the consensus of the imprint; as well as Generate a report, wherein the report includes the location of the error within the process information.
15. A computer program product for a self-auditing blockchain, the self-auditing blockchain having one or more peer nodes, the computer program product comprising program instructions executable by a processor to cause the processor to perform functions, the functions including: Collect process information associated with each of the one or more peer nodes in the self-audited blockchain; Use one or more hash functions to generate an imprint for each of the one or more peer nodes from the process information; Determining the imprint consensus, wherein determining the imprint consensus includes identifying a group of peer nodes with the same imprint among the one or more peer nodes; as well as The imprint from each of the one or more peer nodes is compared with the imprint consensus to detect an error, wherein the error indicates that one of the one or more peer nodes has been compromised.
16. The computer program product according to claim 15, wherein the function further includes: The imprint is used to identify the location of the error in the peer node that was compromised in the process information.
17. The computer program product according to claim 15, wherein the function further includes: The imprint is encrypted to form an encrypted imprint; Generate a first message, wherein the first message includes the encrypted imprint and signature, wherein the signature identifies one of the one or more peer nodes associated with the imprint; as well as Submit the first message to the blockchain.
18. The computer program product according to claim 17, wherein the function further includes: Generate a second message, wherein the second message includes one or more keys for decrypting the encrypted imprint to reconstruct the imprint; as well as Submit the second message to the blockchain.
Citation Information
Patent Citations
Operating record tracing system and method based on cloud computing
CN101808102A
A method for ensuring integrity by using a blockchain technology
KR1020170137388A