A method and system for providing attested, auditable, and immutable inputs for smart contracts

CN116882994BActive Publication Date: 2026-10-30MASTERCARD INT INC
View PDF 3 Cites 0 Cited by

Patent Information

Application Number
CN202310877298.3
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Priority Date
2016-12-28
Filing Date
2017-10-26
Publication Date
2026-10-30
Estimated Expiration
2037-10-26

AI Technical Summary

Technical Problem

[0007]然而,尽管区块链可用于证实约定或者与交易的计划或发起相关的其他数据,不过,区块链目前缺乏证实和审计这种交易的执行的能力

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN116882994B_ABST
    Figure CN116882994B_ABST
Patent Text Reader

Abstract

The present disclosure relates to a method and system for providing attested, auditable and immutable inputs for smart contracts. A method of publishing auditable immutable data to a blockchain includes receiving a blockchain comprising a plurality of blocks, each block comprising at least a block header and one or more transaction values, wherein each transaction value comprises at least a transaction hash; receiving a data file associated with a particular transaction hash included in a block in the blockchain, wherein the data file comprises one or more variables; modifying at least one of the one or more variables included in the data file; generating a new hash value by applying one or more hash algorithms to the modified data file; generating a new transaction value based at least on the generated new hash value and the particular transaction hash; digitally signing the generated new transaction value; and electronically transmitting the signed new transaction value.
Need to check novelty before this filing date? Find Prior Art

Description

[0001] This application is a divisional application of the PCT application filed on October 26, 2017, with national application number 201780081308.5 and entitled "A method and system for providing verified, auditable and immutable inputs for smart contracts", which has entered the Chinese national phase.

[0002] Citation of relevant applications

[0003] This application claims priority to U.S. Patent Application No. 15 / 392,108, filed December 28, 2016. The entire contents of that application are incorporated herein by reference. Technical Field

[0004] This disclosure relates to publishing immutable data to a blockchain consisting of inputs, wherein the results of the smart contract's inputs are deterministic, thereby enabling the verification and auditing of the execution of related transactions. Background Technology

[0005] As technology advances and becomes more complex, businesses, individuals, and other entities are constantly seeking ways to improve how they do business and communicate with each other. One factor that has revolutionized this is the way transactions between two entities are conducted. Transactions can occur between two entities for a variety of reasons: payments, purchases of goods or services, data exchange, acquisition of property, contractual consideration, and so on. In many cases, computing technology provides entities with a platform to prove or verify transactions and the data associated with them, as well as to conduct the related communications. For example, sending funds via computing devices can be significantly faster than physical delivery.

[0006] However, computing devices and electronic communications can sometimes be compromised, putting entities and their property at risk. Several methods have been developed to help protect these communications, such as encrypting data messages and securing communication channels and protocols. Similarly, methods for protecting data storage have been developed. One such method is the use of blockchain, in which the chain is decentralized and the data stored within is immutable, thus providing reliable evidence of data at a specific point in time (such as the agreement of specific contractual terms).

[0007] However, while blockchain can be used to verify agreements or other data related to the planning or initiation of transactions, it currently lacks the ability to verify and audit the execution of such transactions. In other words, there are technical challenges regarding how to use blockchain for this purpose. Therefore, a technical solution is needed that leverages blockchain to audit and verify the execution of actions associated with transactions. Summary of the Invention

[0008] This disclosure describes a system and method for publishing auditable, immutable data to a blockchain and auditing and verifying it. The inputs to a smart contract are stored in the blockchain and are immutable, making the output of the smart contract deterministic based on its properties and associated inputs. As a result, entities wishing to verify the execution associated with a smart contract can generate the expected output for auditing and verifying said execution. Furthermore, by publishing data associated with such execution to the blockchain, further execution can be audited and verified, enabling the accurate capture, auditing, and verification of the entire execution of transactions between two or more entities.

[0009] A method for publishing auditable immutable data to a blockchain includes: receiving a blockchain comprising multiple blocks via a receiving device of a processing server, each block comprising at least a block header and one or more transaction values, wherein each transaction value comprises at least a transaction hash; receiving a data file associated with a specific transaction hash included in a block of the blockchain via the receiving device of the processing server, wherein the data file comprises one or more variables; modifying at least one variable among the one or more variables included in the data file via a data modification module of the processing server; generating a new hash value by applying one or more hash algorithms to the modified data file via a hash module of the processing server; generating a new transaction value based at least on the generated new hash value and the specific transaction hash via a generation module of the processing server; digitally signing the generated new transaction value via a signature module of the processing server; and electronically transmitting the signed new transaction value via a transmission device of the processing server.

[0010] A method for auditing and verifying deterministic data published to a blockchain includes: receiving a blockchain comprising multiple blocks via a receiving device of a processing server, each block comprising at least a block header and one or more transaction values, wherein each block header comprises at least a timestamp and each transaction value comprises at least a transaction hash; performing a first query on the blockchain via a query module of the processing server to identify a first transaction value, wherein the first transaction value is associated with the executable script; executing the executable script via a processor of the processing server using multiple predetermined input values ​​to receive at least one output variable; generating a hash value via a hash module of the processing server, at least based on the multiple predetermined input values ​​and the at least one output variable; generating a new transaction value via a generation module of the processing server, at least based on the generated hash value and the transaction hash included in the first transaction value; and verifying a second transaction value included in a block in the blockchain via a verification module of the processing server, wherein the second transaction value corresponds to the generated new transaction value.

[0011] A system for publishing potentially immutable data to a blockchain includes: a receiving device for a processing server configured to receive a blockchain comprising multiple blocks, each block including at least a block header and one or more transaction values, wherein each transaction value includes at least a transaction hash, and a data file associated with a specific transaction hash included in the blocks in the blockchain, wherein the data file includes one or more variables; a data modification module for the processing server configured to modify at least one variable among the one or more variables included in the data file; a hashing module for the processing server configured to generate a new hash value by applying one or more hashing algorithms to the modified data file; a generation module for the processing server configured to generate a new transaction value based at least on the generated new hash value and the specific transaction hash; a signature module for the processing server configured to digitally sign the generated new transaction value; and a transmission device for the processing server configured to electronically transmit the signed new transaction value.

[0012] A system for auditing and verifying deterministic data published to a blockchain includes: a receiving device for a processing server configured to receive a blockchain comprising multiple blocks, each block including at least a block header and one or more transaction values, wherein each block header includes at least a timestamp and each transaction value includes at least a transaction hash; a query module for the processing server configured to perform a first query on the blockchain to identify a first transaction value, wherein the first transaction value is associated with the executable script; a processor for the processing server configured to execute the executable script using multiple predetermined input values ​​to receive at least one output variable; a hash module for the processing server configured to generate a hash value based at least on the multiple predetermined input values ​​and the at least one output variable; a generation module for the processing server configured to generate a new transaction value based at least on the generated hash value and the transaction hash included in the first transaction value; and a verification module for the processing server configured to verify a second transaction value included in a block in the blockchain, wherein the second transaction value corresponds to the generated new transaction value. Attached Figure Description

[0013] The scope of this disclosure is best understood from the following detailed description of exemplary embodiments, which are read in conjunction with the accompanying drawings. In the drawings:

[0014] Figure 1 This is a block diagram illustrating an advanced system architecture for publishing, auditing, and verifying transaction-related auditable data to a blockchain, according to an illustrative embodiment.

[0015] Figure 2 This is a diagram illustrating, according to an illustrative embodiment, the publication, auditing, and verification of transaction data in a blockchain utilizing the immutable inputs of smart contracts. Figure 1 A block diagram of the processing server in the system.

[0016] Figure 3 This is a diagram illustrating the illustrative embodiments. Figure 1 The flowchart describes the process in the system for publishing data to the blockchain and auditing and verifying the execution of smart contracts associated with the data.

[0017] Figure 4 This is a flowchart illustrating an exemplary method for publishing auditable, immutable data to a blockchain, according to an illustrative embodiment.

[0018] Figure 5 This is a flowchart illustrating an exemplary method for auditing and verifying deterministic data published to a blockchain, according to an illustrative embodiment.

[0019] Figure 6 This is a block diagram illustrating the architecture of a computer system according to an illustrative embodiment.

[0020] Other areas of applicability of this disclosure will become clear from the detailed description provided below. It should be understood that the detailed description of the illustrative embodiments is for illustrative purposes only and therefore is not intended to necessarily limit the scope of this disclosure. Detailed Implementation

[0021] Glossary

[0022] A blockchain is a public ledger of all transactions for a blockchain-based currency. One or more computing devices may constitute a blockchain network, which may be configured to process and record transactions as part of blocks in the blockchain. Once a block is completed, it is added to the blockchain, and the transaction record is updated accordingly. In many cases, a blockchain may be a ledger of transactions in chronological order or in any other order suitable for use by the blockchain network. In some configurations, transactions recorded in the blockchain may include a destination address and a monetary amount, such that the blockchain records how much currency is attributable to a particular address. In some cases, transactions are financial transactions while others are not, or transactions may include additional or different information, such as source addresses, timestamps, etc. In some embodiments, a blockchain may also, or alternatively, include virtually any type of data in the form of transactions to be or need to be placed in a distributed database, which maintains a continuously growing list of data records reinforced against tampering and modification (even by its operators) and verifiable by the blockchain network through proof-of-work and / or any other suitable verification techniques associated with it. In some cases, data about a given transaction may also include additional data attached to the transaction data that is not directly part of the transaction. In some situations, the inclusion of such data in a blockchain can constitute a transaction. In such cases, the blockchain may not be directly associated with a specific digital currency, virtual currency, fiat currency, or other type of currency.

[0023] A smart contract is a computer protocol that facilitates, verifies, or enforces the negotiation or execution of a transaction. A smart contract can be formatted as an executable script or other type of computational function that, when executed by a suitable processor, performs one or more predetermined actions. In many cases, smart contracts can mimic the terms of a traditional contract, for example, by being configured to perform actions associated with the positive or negative enforcement of the smart contract's terms (e.g., breach of contract). For example, a smart contract could be associated with a transaction involving the purchase of a widget, where the smart contract is configured to (i) initiate payment to the supplier if the buyer receives the widget; or (ii) notify the buyer if the supplier fails to deliver the widget by a predetermined date.

[0024] A system for auditing and verifying immutable smart contract inputs.

[0025] Figure 1 The diagram illustrates a system 100 used to store the immutable inputs of smart contracts in a blockchain and to audit and verify the associated execution based on the deterministic outputs of smart contracts.

[0026] System 100 may include a processing server 102. The processing server 102, discussed in more detail below, may be specifically configured to perform the actions discussed herein related to generating data published to the blockchain, and auditing and verifying said data, thus making it a dedicated computer when programmed to perform these functions. The processing server 102 may be a computing system or part of a computing system configured to participate in electronic transactions between an entity and another entity. For example, the processing server 102 may exchange electronic communications with a third-party system 104 for a second entity that also participates in electronic transactions. As discussed herein, the various functions performed by the processing server 102 and the third-party system 104 may also be performed by corresponding computing devices.

[0027] System 100 may also include a blockchain network 106, which may be associated with a blockchain to which the data discussed herein can be published. Blockchain network 106 may include multiple blockchain nodes 108, such as... Figure 1 The diagram illustrates blockchain nodes 108a and 108b. Although only two blockchain nodes are shown for clarity, it is foreseeable that more, dozens, hundreds, or even thousands, or even more, blockchain nodes can be used. Blockchain node 108 can be configured to generate and verify new blocks for addition to the blockchain using methods and systems that will be clear to those skilled in the art. In some embodiments, processing server 102 and / or third-party system 104 can be configured to function as blockchain node 108 of blockchain network 106. For example, in addition to the functions discussed herein, processing server 102 can be configured to generate new blocks, verify blocks, and add new verified blocks to the blockchain.

[0028] An entity associated with processing server 102 (also referred to herein as the "first entity") may communicate with an entity associated with third-party system 104 (also referred to herein as the "second entity") regarding proposed electronic transactions. In some embodiments, the transaction may involve another entity. In such embodiments, the other entity may be associated with third-party system 104, in which case the functions performed thereby may be the same as those performed by third-party system 104 discussed herein. A proposed electronic transaction can be any transaction in which at least one involved entity is expected to perform an action, the execution of which can be verified by other entities. For example, an electronic transaction may include purchasing goods or services, exchanging data, executing a contract, etc. For example, in this example, the transaction may be a service contract in which the first entity may agree to pay a down payment of $1,000 for the renovation of an office, the second entity may agree to renovate the office before a predetermined time, and the first entity may pay $9,000 once the renovation is completed.

[0029] The first and second entities may agree on terms associated with the transaction, which may be referred to herein as “inputs.” For example, in the example above, inputs may include a down payment of $1,000, the due date of the down payment, the due date for the renovation work, a final payment of $9,000, and the due date of the final payment. Processing server 102 and / or third-party system 104 may be configured to electronically transmit the agreed inputs to blockchain node 108 as transaction values ​​to be added to the associated blockchain. As described in more detail below, the transaction value may be a hash value indicating the transaction input. As a result, the agreed inputs can be stored in the blockchain, and due to the immutable nature of the blockchain, the hash values ​​stored in the header of the blockchain blocks ensure the immutability of the data stored therein. In some embodiments, the blockchain may be used to store immutable data associated with both the inputs and the agreement between one or both entities regarding the inputs. For example, the first and / or second entities may use an acceptance frame included in the transaction hash to indicate acceptance of the terms. Further information about the Acceptance Frames can be found in Steven C. Davis’s U.S. Patent Application No. 14 / 938,213 entitled “Method and System for Validation of HashedData via Acceptance Frames,” which is incorporated herein by reference in its entirety.

[0030] The transaction value of a transaction between the first and second entities may include individual inputs, or in some cases, a single transaction hash indicating each input. For example, a transaction hash can be generated by applying one or more hash algorithms to the inputs, such as by combining the inputs in a predetermined manner (e.g., combining each input into a single string using a delimiter, storing the inputs in a data file, etc.), or by generating a Merkle tree of the inputs and utilizing the root of the Merkle tree. In cases where hash values ​​can be generated, the processing server 102 may be configured to store key-value pairs in a key-value database, discussed in more detail below, where the hash value can be the key in the key-value pair, and the corresponding value is the input used in generating the key. In such cases, the third-party system 104 may use the same hash algorithm(s) and data formatting(s) for its own key-value pairs to generate transaction hashes, which can then be used to verify that the transaction hashes published to the blockchain are accurate for the agreed-upon inputs.

[0031] Once a transaction is published to the blockchain, the entities involved can update the blockchain whenever any execution is performed on the transaction, allowing one or more other entities involved in the transaction to monitor the blockchain to identify when such execution occurred and verify it. In an illustrative embodiment, a smart contract can be used to perform actions related to the execution of a transaction between a first entity and a second entity. For example, a smart contract can be configured to generate updates to the blockchain transaction, send a message to the next entity to execute once an action has been completed, invalidate the transaction, and initiate any actions against non-performance, etc. For example, in the example above, if the first entity fails to pay the initial payment of $1,000 before the due date, the smart contract can execute (e.g., after the due date if the blockchain is not updated to indicate the payment) to notify the second entity of the non-payment and, if the total amount of $1,000 is not reached, refund any payments made by the first entity.

[0032] In such embodiments, the transaction value may include a smart contract or a reference to it, or the smart contract or associated reference may be used to generate a transaction hash including the transaction value. The reference may be, for example, a hash value generated by hashing the smart contract itself, and / or a key in a key-value pair that includes the smart contract as a value. In some cases, a single smart contract may be used for multiple different transactions, where each transaction value may include or incorporate associated references. In such cases, the smart contract can be executed using transaction inputs as input to perform the planned functions accordingly. For example, a smart contract may be used for multiple service transactions, where, as in the example above, the smart contract may receive a $1,000 down payment and a due date for the down payment as input, where (e.g., performed by processing server 102 or blockchain node 108) the execution check of the smart contract ensures payment of the stipulated $1,000 down payment before the specified due date.

[0033] The first entity (e.g., or any entity subsequently involved in the execution of the transaction) may perform the required actions as part of the transaction. For example, in the example above, the first entity may pay $1,000 before the due date of the down payment. Processing server 102 may generate a new transaction value for the transaction after the execution of this action. The new transaction may include modified inputs for that transaction based on the execution. For example, the inputs may include additional inputs serving as evidence of the down payment (e.g., a transaction confirmation number, a receipt for the transaction, etc.), which may also be provided by a smart contract. For example, the smart contract may utilize any suitable method to verify the payment and may output a reference number to be included in the transaction value (e.g., or a transaction hash included therein, as appropriate).

[0034] Once a transaction value has been generated, processing server 102 can digitally sign the new transaction value using an appropriate method. For example, processing server 102 may possess the private key of a key pair, which can be used to digitally sign the new transaction value via an appropriate signature algorithm known to third-party system 104. In this case, third-party system 104 may provide a copy of the corresponding public key from the key pair. Processing server 102 can then electronically transmit the digitally signed new transaction value to blockchain node 108 for publication on the blockchain.

[0035] Once the updated transaction arrives at the blockchain, the third-party system 104 can be configured to retrieve the transaction value to verify that the processing server 102 performed its action as part of the transaction. If the transaction value is digitally signed, verification may include verification of the digital signature, such as using the public key provided to the third-party system 104 from the processing server 102. Verification may also include verifying that the transaction value is the expected value.

[0036] In illustrative embodiments, the smart contract may be a deterministic contract, such that the output of the smart contract when the action is performed can be determined before the action is executed. For example, in the example above, it is predetermined that the first entity will either pay $1,000 before a specific due date or default. In such embodiments, the inputs may be referred to herein as “deterministic inputs”, such that the output of the smart contract can be determined accordingly. In these embodiments, the third-party system 104 may be configured to generate an estimated new transaction value based on knowledge of the deterministic inputs to the transaction and the expected action to be taken by the first entity. For example, in the example above, if the initial payment of $1,000 is made before the due date, then the third-party system 104 may use the output of the smart contract supplied with the deterministic inputs used in the original transaction value to generate an estimated new transaction value.

[0037] Third-party system 104 can verify and audit the first party's execution by comparing the transaction value retrieved from the blockchain with the expected estimated transaction value, using the estimated new transaction value. Thus, entities involved in a transaction can be configured to verify that one or more other entities in the transaction are performing their functions as required. Using the blockchain to store transaction values ​​also ensures that evidence of actions in execution is immutable, preventing collusion or fraud among the parties involved in the transaction, and also serves as an auditable and easily accessible record of the complete execution of the transaction. As in standard implementations, each block added to the blockchain is timestamped, so the transaction value reflects the terms of the transaction, any actions performed, and the time of such actions, providing sufficient data suitable for auditing the execution.

[0038] In some embodiments, processing server 102 may be configured to utilize templates to generate and / or store transaction inputs. Templates can be used to specify data fields required for the use of a particular smart contract to ensure accurate processing and data consistency. For example, in the example above, the template may specify the criteria to be provided (e.g., 3 due dates and 2 payment amounts), how such data should be formatted, and other data associated with the transaction inputs. In some cases, templates may be used to generate data files that act as transaction values ​​or are hashed to generate the transaction value. In other cases, templates may be referenced by or within transaction values. For example, a template may have an associated referencing identifier (e.g., the hash value of the template, the key in a key-value pair where the template constitutes the value in the key-value pair, etc.), which may be included in the transaction value, such as as a transaction input or for generating the transaction hash.

[0039] The first entity, the second entity, and any other entities involved in the transaction can continue to perform the actions specified in the transaction, with each entity updating the blockchain accordingly with a transaction value digitally signed by its respective entity. The continuous updating of the blockchain ensures that the execution of the transaction is auditable at every step, where the immutability of the blockchain guarantees the accuracy of the audit and verification of the execution and prevents fraud. Using smart contracts with deterministic inputs ensures that fraud cannot occur, the outcome of actions can be predicted for faster and more accurate verification, and no entity can tamper with the transaction history to cover up any fraudulent actions. As a result, the methods and systems discussed in this paper provide a more accurate, efficient, and reliable technical solution than traditional systems.

[0040] Processing server

[0041] Figure 2 The illustration depicts an embodiment of the processing server 102 in system 100. It will be clear to those skilled in the art that... Figure 2 The embodiment of the processing server 102 shown in the diagram is provided merely as an illustration and it is impossible to exhaust all possible configurations of the processing server 102 suitable for performing the functions discussed herein. For example, Figure 6 The computer system 600 shown in the diagram and discussed in more detail below may be a suitable configuration for processing server 102. In some embodiments, such as Figure 1 As illustrated in the diagram and discussed in this paper, the third-party system 104 in system 100 can utilize, as Figure 2 The components of the processing server 102 are illustrated in the diagram and discussed below.

[0042] Processing server 102 may include receiving device 202. Receiving device 202 may be configured to receive data via one or more networks through one or more network protocols. In some cases, receiving device 202 may be configured to receive data from third-party system 104, blockchain network 106, blockchain node 108, and other systems and entities via one or more communication methods (e.g., near-field communication, Bluetooth, Internet, local area network, etc.). In some embodiments, receiving device 202 may include multiple devices, such as different receiving devices for receiving data via different networks, such as a first receiving device for receiving data via a local area network and a second receiving device for receiving data via the Internet. Receiving device 202 may receive electronically transmitted data signals, wherein data may be superimposed or otherwise encoded on the data signals, and may be decoded, parsed, read, or otherwise obtained through the reception of data signals by receiving device 202. In some cases, receiving device 202 may include a parsing module for parsing the received data signals to obtain the data superimposed on the data signals. For example, receiving device 202 may include a parser program configured to receive data signals and transform the received data signals into usable inputs for functions performed by a processing device, so as to implement the methods and systems described herein.

[0043] Receiving device 202 may be configured to receive data signals electronically transmitted by blockchain network 106 and / or associated blockchain nodes 108, the data signals being overlaid on or encoded with blockchain data. The blockchain may include multiple blocks, each block comprising at least a block header and one or more transaction values. The block header may include at least a timestamp and a reference to a previous block in the blockchain. In some embodiments, the reference may be a hash of the block header of the previous block. In some cases, the block header may also include the Merkle root of a Merkle tree generated for the transaction values ​​contained in the block. In the methods and systems discussed herein, each of the one or more transaction values ​​may include a transaction hash, which may be a hash of at least the inputs of the associated transaction. Receiving device 202 may also be configured to receive data signals electronically transmitted by third-party system 104, such as data overlaid with or encoded with deterministic inputs or associated data, such as template references, smart contract references, execution data, etc.

[0044] Processing server 102 may also include a communication module 204. Communication module 204 may be configured to transfer data between modules, engines, databases, memory, and other components of processing server 102 for performing the functions discussed herein. Communication module 204 may include one or more communication types and communicate using various communication methods within the computing device. For example, communication module 204 may include a bus, a pin connector, wires, etc. In some embodiments, communication module 204 may also be configured to communicate between internal components of processing server 102 and external components of processing server 102 (e.g., externally connected databases, display devices, output devices, etc.). Processing server 102 may also include a processing device. It will be apparent to those skilled in the art that a processing device may be configured to perform the functions of processing server 102 discussed herein, such as a processor configured to execute smart contracts (e.g., through the execution of associated executable scripts). In some embodiments, the processing device may include and / or consist of multiple engines and / or modules specifically configured to perform one or more functions of the processing device, such as query module 208, hash module 210, generation module 212, data modification module 214, signature module 216, verification module 218, etc. As used herein, the term "module" can refer to software or hardware specifically programmed to receive input, perform one or more processes using said input, and provide output. Based on this disclosure, the inputs, outputs, and processes performed by the various modules will be clear to those skilled in the art.

[0045] Processing server 102 may also include memory 206. Memory 206 may be configured to store data for processing server 102 to perform the functions discussed herein, such as public and private keys, symmetric keys, etc. Memory 206 may be configured to store data using appropriate data formatting methods and patterns, and may be any suitable type of memory, such as read-only memory, random access memory, etc. For example, it will be apparent to those skilled in the art that memory 206 may include encryption keys and algorithms, communication protocols and standards, data formatting standards and protocols, modules of processing devices and program code of applications, and other data suitable for processing server 102 to perform the functions disclosed herein. In some embodiments, memory 206 may constitute a relational database, or may include a relational database that uses Structured Query Language for the storage, identification, modification, updating, access, etc., of structured datasets stored therein.

[0046] Memory 206 can be configured to store a blockchain, such as one that can be received from blockchain network 106 as described above. Memory 206 can also be configured to store a key-value database, which may include multiple key-value pairs. In such cases, a key-value pair may include a pair in which a hash value is used as a key and the data used to generate the hash value is a pair of corresponding values. These key-value pairs can be used to store deterministic inputs, data templates, smart contracts, and other data used to perform the functions discussed herein. Memory 206 can also be configured to store the private and public keys of a key pair, which can be configured to digitally sign and verify transaction values.

[0047] Processing server 102 may include query module 208. Query module 208 may be configured to perform queries on a database to identify information and perform other actions related to that information. Query module 208 may receive one or more data values ​​or query strings and may execute a query string based on the data values ​​or query strings on an indicated database (such as storage 206) to identify, modify, insert, update, etc., information stored in the database. Query module 208 may output the identified information to an appropriate engine or module of processing server 102 as needed. For example, query module 208 may query storage 206 to identify a private key used for digitally signing transaction values, add new key-value pairs for new transactions tracked using blockchain, identify smart contracts for execution verification of transactions, etc.

[0048] Processing server 102 may also include hash module 210. Hash module 210 may be configured to hash data to generate hash values. Hash module 210 may receive data to be hashed as input, generate hash values ​​by applying one or more hash algorithms to the received data, and output the resulting hash values ​​to another module or engine of processing server 102. In some embodiments, input may include one or more hash algorithms or their indications. In other embodiments, hash module 210 may be configured to identify one or more hash algorithms to be used (e.g., in memory 206). For example, hash module 210 may be configured to generate hash values ​​for transaction values, templates, smart contracts, and other data by applying one or more hash algorithms to said transaction values, templates, smart contracts, and other data. In some cases, the generated hash values ​​may be used for storage in a blockchain, acting as keys in key-value pairs stored in memory 206, or for verification of blockchain-based data execution.

[0049] Processing server 102 may also include a generation module 212. Generation module 212 may be configured to generate data used in performing the functions of processing server 102 discussed herein. Generation module 212 may receive instructions as input, which can be used to generate data, and output the generated data to one or more engines or modules of processing server 102. In some cases, the instructions input to generation module 212 may be accompanied by data for its use. For example, generation module 212 may be configured to generate transaction values ​​for transactions, such as based on deterministic input. In some cases, transaction values ​​may also be generated based on execution data. In some cases, generation module 212 may be configured to generate key pairs for digital signatures of transaction values. In some embodiments, generation module 212 may be configured to generate, for example, a data file that may include deterministic input, using a predetermined format (e.g., a predetermined format detailed in the template), which may be hashed for use as a transaction value to be stored in a blockchain.

[0050] Processing server 102 may also include a data modification module 214. Data modification module 214 may be configured to modify data and / or data files used in performing the functions of processing server 102 as discussed herein. Data modification module 214 may receive instructions as input, which can be used to modify data stored in or received by processing server 102, and output the modified data to one or more engines or modules of processing server 102. For example, data modification module 214 may be configured to modify data files (e.g., storing deterministic inputs) to change one or more inputs, such as by deleting inputs, adding inputs, changing the values ​​of inputs, etc., to reflect, for example, the execution of a transaction or an estimate of the execution of a transaction.

[0051] Processing server 102 may also include a signature module 216. As part of the functionality of processing server 102 discussed herein, signature module 216 may be configured to digitally sign data. Signature module 216 may receive data to be digitally signed as input, digitally sign the data, and output the digitally signed data, or at least the digital signature, to another module or engine of processing server 102. Signature module 216 may be configured to digitally sign data using a public key and one or more signature algorithms. In some embodiments, input to signature module 216 may include a private key and / or signature algorithm for generating the digital signature. In other embodiments, signature module 216 may be configured to identify (e.g., in memory 206, such as through instructions submitted to query module 208) the private key and (one or more) signature algorithms. In this example, signature module 216 may be configured to digitally sign transaction values ​​generated by deterministic inputs to a transaction (e.g., subsequent execution of an associated entity).

[0052] The processing server 102 may also include a verification module 218. Verification module 218 may be configured to verify data for the processing server 102. Verification module 218 may receive data to be verified as input, perform verification on the data, and output the verification result (e.g., indicating a positive or negative verification) to another module or engine of the processing server 102. For example, verification module 218 may be configured to verify the digital signature of a transaction value using a public key (e.g., stored in and read from memory 206), and verify the transaction value, for example, by comparing an estimated transaction value (e.g., generated by generation module 212) with a transaction value read from the blockchain.

[0053] The processing server 102 may also include a transmission device 220. The transmission device 220 may be configured to transmit data over one or more networks via one or more network protocols. In some cases, the transmission device 220 may be configured to transmit data to a third-party system 104, a blockchain network 106, a blockchain node 108, and other entities via one or more communication methods, such as near-field communication, Bluetooth, radio frequency, the Internet, a local area network, etc. In some embodiments, the transmission device 220 may include multiple devices, such as different transmission devices for transmitting data over different networks, such as a first transmission device for transmitting data over a local area network and a second transmission device for transmitting data over the Internet. The transmission device 220 may electronically transmit data signals superimposed with data that can be parsed by a receiving computing device. In some cases, the transmission device 220 may include one or more modules for superimposing, encoding, or otherwise formatting data into data signals suitable for transmission.

[0054] The transmission device 220 may be configured to electronically transmit data signals to a blockchain node 108 associated with the blockchain network 106. These data signals may be overlaid with or otherwise encoded with transaction values ​​for publication on the blockchain. In some embodiments, the transmission device 220 may be configured to electronically transmit data signals to a third-party system 104, for example, to exchange deterministic inputs, smart contract references, template references, public keys, or other exchangeable data for performing the functions discussed herein.

[0055] Processing of publishing immutable, auditable data to the blockchain

[0056] Figure 3 The diagram illustrates how system 100 publishes data related to the execution of transactions to the blockchain, wherein the data is immutable and can be independently verified by third-party system 104 and other entities.

[0057] In step 302, the processing server 102 may (e.g., through a first entity associated with it) agree on the terms of the transaction with a second entity (e.g., through a third-party system 104 associated with it). The terms of the transaction can serve as deterministic inputs to the transaction. For example, in the above example, the terms may include an initial payment amount, a full payment amount, an initial payment due date, a service purchase due date, and a full payment due date. In illustrative embodiments, the various transaction terms may be deterministic. In step 304, the third-party system 104 may receive (e.g., through receiving device 202) the agreed-upon terms. In some embodiments, the transaction terms may be received via a blockchain, such as by utilizing a receiving frame.

[0058] In step 306, the third-party system 104 may generate (e.g., via hash module 210 and / or generation module 212) a transaction value based at least on deterministic inputs. For example, in one instance, a data file including the various deterministic inputs may be generated, which may be hashed to generate the transaction value. The transaction value may also include (e.g., based on) references to smart contracts and / or templates. In step 308, the third-party system 104 may electronically transmit the transaction value (e.g., via transmission device 220) to a blockchain node 108 associated with the blockchain network 106 for inclusion in a block to be verified and published to the blockchain.

[0059] In step 310, the receiving device 202 of processing server 102 can retrieve the transaction value by receiving a newly added block in the blockchain that includes the transaction value. In step 312, processing server 102 can (e.g., through a first entity associated with it) execute the next action in the transaction. In the example above, the next action is to pay an initial payment of $1,000 before the due date. As part of executing this action, in step 314, the processor of processing server 102 can execute the smart contract associated with the transaction (e.g., a smart contract identified by a reference included in the deterministic input). In some cases, the blockchain network 106 can automatically execute the smart contract when the execution of the action is satisfactory (e.g., the smart contract can detect that $1,000 has been paid to a second entity). As part of the execution of the smart contract, the deterministic input of the transaction can be modified, such as by changing the token, supplementing the reference or confirmation number of the payment, etc.

[0060] In step 316, the hash module 210 of processing server 102 generates a new transaction value that reflects the execution of an action by applying one or more hash algorithms to the updated deterministic input of the transaction. In some cases, the generation of the new transaction value may also include digitally signing the transaction value using a private key associated with the first entity (e.g., stored in memory 206 of processing server 102) and an appropriate signature algorithm (e.g., by signature module 216 of processing server 102). In step 318, the delivery device 220 of processing server 102 may electronically transmit the newly generated transaction value to the blockchain node 108 associated with blockchain network 106 for inclusion in a verified block published to the blockchain.

[0061] In step 320, the third-party system 104 may use the deterministic input and an estimate of the first entity's action to determine the expected output of the first entity's next action in executing the transaction, such as through the execution of an associated smart contract (e.g., its processor). In some cases, the performance of step 320 may include modifications to the deterministic input, as performed by the processing server 102 in step 314. In step 322, the third-party system 104 may generate an expected transaction value for the transaction based on the expected output of executing the next action (e.g., through hash module 210 and / or generation module 212).

[0062] In step 324, the third-party system 104 may (e.g., via its receiving device 202) retrieve the new transaction value published to the blockchain. In some embodiments, steps 320 and 322 may be performed after or concurrently with step 324. In step 326, the third-party system 104 may verify (e.g., via verification module 218) the new transaction value by comparing it with an expected transaction value. In embodiments where the transaction value is digitally signed, the verification may further include verification of the digital signature, which may be verified using a public key associated with the first entity. Verification of the transaction value thus ensures that the next action of the transaction has been performed, and that the transaction value on the blockchain is immutable evidence of that action and suitable for auditing.

[0063] An exemplary approach to publishing auditable, immutable data to the blockchain.

[0064] Figure 4 This diagram illustrates method 400 for publishing auditable, immutable data related to the execution of transactions to the blockchain.

[0065] In step 402, the receiving device of the processing server (e.g., processing server 102) (e.g., receiving device 202) may receive a blockchain comprising multiple blocks, each block comprising at least a block header and one or more transaction values, wherein each transaction value comprises at least a transaction hash. In step 404, the receiving device of the processing server may receive a data file associated with a specific transaction included in a block in the blockchain, wherein the data file comprises one or more variables.

[0066] In step 406, the data modification module of the processing server (e.g., data modification module 214) may modify at least one variable among one or more variables included in the data file. In step 408, by applying one or more hash algorithms to the modified data file, the hash module of the processing server (e.g., hash module 210) may generate a new hash value.

[0067] In step 410, the generation module of the processing server (e.g., generation module 212) can generate a new transaction value based at least on the newly generated hash value and the specific transaction hash. In step 412, the signature module of the processing server (e.g., signature module 216) can digitally sign the generated new transaction value. In step 414, the transmission device of the processing server (e.g., transmission device 220) can electronically transmit the signed new transaction value.

[0068] In one embodiment, the new transaction value may also be based on a reference identifier associated with an executable script associated with the blockchain. In another embodiment, the executable script may be configured to execute a modified data file and output a deterministic response. In some embodiments, generating a new transaction value may include hashing at least the generated new hash value and the specific transaction hash via a hashing module of a processing server. In one embodiment, method 400 may include storing a plurality of key-value pairs in a database (e.g., memory 206) of a processing server, wherein the plurality of key-value pairs includes at least a first key-value pair, the first key-value pair including the specific transaction hash as the key and the received data file as the value; and querying the database via a querying module (e.g., querying module 208) of the processing server to insert a new key-value pair, the new key-value pair including the generated new hash value as the key and the modified data file as the value.

[0069] An illustrative method for auditing and verifying deterministic data published to the blockchain.

[0070] Figure 5 A diagram illustrating methods for auditing and verifying data published to the blockchain based on deterministic inputs.

[0071] In step 502, a receiving device (e.g., receiving device 202) of the processing server (e.g., processing server 102) can receive a blockchain comprising multiple blocks, each block including at least a block header and one or more transaction values, wherein each block header includes at least a timestamp and each transaction value includes at least a transaction hash. In step 504, a query module (e.g., query module 208) of the processing server can perform a first query on the blockchain to identify a first transaction value, wherein the first transaction value is associated with an executable script.

[0072] In step 506, the processor of the processing server may execute an executable script using a plurality of predetermined input values ​​to receive at least one output variable. In step 508, the hash module of the processing server (e.g., hash module 210) may generate a hash value based at least on the plurality of predetermined input values ​​and the at least one output variable.

[0073] In step 510, the generation module of the processing server (e.g., generation module 212) may generate a new transaction value based at least on the generated hash value and the transaction hash included in the first transaction value. In step 512, the verification module of the processing server (e.g., verification module 218) may verify a second transaction value included in a block in the blockchain, wherein the second transaction value corresponds to the generated new transaction value.

[0074] In one embodiment, verifying the second transaction value may include: performing a second query on the blockchain using a query module of the processing server to identify the second transaction value; and verifying, using a verification module of the processing server, that the second transaction value is equivalent to a newly generated transaction value. In some embodiments, generating a new transaction value includes hashing, at least, the generated hash value and the transaction hash included in the first transaction value using a hash module of the processing server.

[0075] In one embodiment, verifying the second transaction value may include: performing a second query on the blockchain to identify the second transaction value via a query module of the processing server; and verifying a digital signature used to digitally sign the included transaction hash via a verification module of the processing server. In another embodiment, method 500 may even further include storing a public key in the memory of the processing server (e.g., memory 206), wherein verification of the digital signature utilizes the stored public key.

[0076] Computer System Architecture

[0077] Figure 6 The diagram illustrates a computer system 600 in which embodiments of this disclosure or parts thereof can be implemented as computer-readable code. For example, Figure 1The processing server 102 can be implemented in computer system 600 using hardware, software, firmware, a non-transitory computer-readable medium on which instructions are stored, or a combination thereof, and can be implemented in one or more computer systems or other processing systems. Hardware, software, or any combination thereof can be implemented to achieve... Figure 3-5 The methods, modules, and components.

[0078] If programmable logic is used, then such logic can be executed on a processing platform that is commercially available and configured as a dedicated computer or dedicated device (e.g., a programmable logic array, application-specific integrated circuit, etc.) via executable software code. Those skilled in the art will recognize that the various embodiments of the disclosed subject matter can be practiced using a variety of computer system configurations, including multi-core multiprocessor systems, minicomputers, mainframe computers, linked or clustered computers with distributed functionality, and ubiquitous or microcomputers that can be embedded in virtually any device. For example, the embodiments described above can be implemented using at least one processor device and memory.

[0079] The processor unit or device described herein may be a single processor, multiple processors, or a combination thereof. A processor device may have one or more processor "cores". The terms "computer program medium," "non-transitory computer-readable medium," and "computer-usable medium" as used herein are generally used to refer to tangible media such as removable storage unit 618, removable storage unit 622, and a hard disk installed in hard disk drive 612.

[0080] Various embodiments of this disclosure have been illustrated with reference to the computer system 600 in this example. After reading this description, it will become clear to those skilled in the art how this disclosure can be implemented using other computer systems and / or computer architectures. Although operations may be described as sequential processing, some operations may in fact be performed in parallel, concurrently, and / or in a distributed environment, and the program code may be stored locally or remotely for access by a single-processor or multi-processor machine. Furthermore, in some embodiments, the order of the operations may be rearranged without departing from the spirit of the subject matter of the disclosure.

[0081] Processor device 604 may be a dedicated or general-purpose processor device specifically configured to perform the functions discussed herein. Processor device 604 may be connected to communication infrastructure 606, such as a bus, message queue, network, multi-core messaging scheme, etc. The network may be any network suitable for performing the functions disclosed herein and may include a local area network (LAN), a wide area network (WAN), a wireless network (e.g., WiFi), a mobile communication network, a satellite network, the Internet, fiber optic, coaxial cable, infrared, radio frequency (RF), or any combination thereof. Other suitable network types and configurations will be apparent to those skilled in the art. Computer system 600 may also include main memory 608 (e.g., random access memory, read-only memory, etc.) and may also include secondary memory 610. Secondary memory 610 may include hard disk drive 612 and removable storage drive 614, such as a floppy disk drive, tape drive, optical disk drive, flash memory, etc.

[0082] The removable storage drive 614 can read and / or write to the removable storage unit 618 in a known manner. The removable storage unit 618 may include a removable storage medium that can be read and written by the removable storage drive 614. For example, if the removable storage drive 614 is a floppy disk drive or a Universal Serial Bus port, then the removable storage unit 618 may be a floppy disk or a portable flash drive, respectively. In one embodiment, the removable storage unit 618 may be a non-transitory computer-readable recording medium.

[0083] In some embodiments, the auxiliary memory 610 may include alternative means for allowing computer programs or other instructions to be loaded into the computer system 600, such as removable memory cell 622 and interface 620. Examples of such means may include program cartridges and cartridge interfaces (e.g., as seen in video game systems), removable memory chips (e.g., EEPROM, PROM, etc.) and associated sockets, as well as other removable memory cells 622 and interfaces 620 that will be apparent to those skilled in the art.

[0084] Data stored in computer system 600 (e.g., in main memory 608 and / or auxiliary memory 600) can be stored on any type of suitable computer-readable medium, such as optical storage devices (e.g., optical discs, digital versatile optical discs, Blu-ray discs, etc.) or magnetic tape storage devices (e.g., hard disk drives). Data can be configured in any type of appropriate database configuration, such as relational databases, structured query language (SQL) databases, distributed databases, object databases, etc. Appropriate configurations and storage types will be apparent to those skilled in the art.

[0085] Computer system 600 may also include a communication interface 624. Communication interface 624 may be configured to allow software and data to be transferred between computer system 600 and external devices. Exemplary communication interface 624 may include a modem, network interface (e.g., Ethernet card), communication port, PCMCIA slot, and card, etc. Software and data transmitted through communication interface 624 may be in the form of signals, which may be electrical signals, electromagnetic signals, optical signals, or other signals known to those skilled in the art. Signals may travel through communication path 626, which may be configured to carry signals and may be implemented using wires, cables, optical fibers, telephone lines, cellular telephone links, radio frequency links, etc.

[0086] Computer system 600 may also include a display interface 602. Display interface 602 may be configured to allow data to be transferred between computer system 600 and external display 630. Examples of display interface 602 may include High Definition Multimedia Interface (HDMI), Digital Video Interface (DVI), Video Graphics Array (VGA), etc. Display 630 may be any suitable type of display for displaying data transferred via display interface 602 of computer system 600, including cathode ray tube (CRT) displays, liquid crystal displays (LCDs), light-emitting diode (LED) displays, capacitive touch displays, thin-film transistor (TFT) displays, etc.

[0087] Computer program media and computer-usable media can refer to memory, such as main memory 608 and auxiliary memory 610, which can be semiconductor memory (e.g., DRAM, etc.). These computer program products can be means of providing software to computer system 600. Computer programs (e.g., computer control logic) can be stored in main memory 608 and / or auxiliary memory 610. Computer programs can also be received via communication interface 624. When executed, such computer programs enable computer system 600 to implement the methods described herein. In particular, when executed, computer programs enable processor device 604 to implement… Figure 3-5 The method illustrated herein is as described. Thus, such a computer program can represent the controller of computer system 600. When implementing this disclosure using software, the software can be stored in a computer program product and loaded into computer system 600 using a removable storage drive 614, interface 620, and hard disk drive 612, or communication interface 624.

[0088] Processor device 604 may include one or more modules or engines configured to perform the functions of computer system 600. Each module or engine may be implemented using hardware, and in some cases, software, such as software corresponding to program code and / or programs stored in main memory 608 or secondary memory 610. In this case, the program code may be compiled by processor device 604 (e.g., by a compilation module or engine) before being executed by the hardware of computer system 600. For example, the program code may be source code written in a programming language, which is translated into a low-level language, such as assembly language or machine code, for execution by processor device 604 and / or any other hardware component of computer system 600. Compilation processing may include lexical analysis, preprocessing, parsing, semantic analysis, syntax-guided translation, code generation, code optimization, and the use of any other techniques suitable for translating program code into a low-level language suitable for controlling computer system 600 to perform the functions disclosed herein. It will be apparent to those skilled in the art that such processing results in computer system 600 being a specially configured computer system 600 uniquely programmed to perform the functions disclosed above.

[0089] The technology consistent with this disclosure provides systems and methods for publishing and verifying auditable and immutable data on a blockchain, as well as other features. While various illustrative embodiments of the disclosed systems and methods have been described above, it should be understood that they are provided for illustrative purposes only and are not intended to limit the scope of this disclosure. The foregoing description is not exhaustive and does not limit this disclosure to its specific form. In view of the foregoing teachings, various modifications and variations are possible, or can be derived from practice with this disclosure, without departing from the breadth or scope of this disclosure.

Claims

1. A method for publishing auditable, immutable data to a blockchain, comprising: The receiving device of the processing server receives a blockchain comprising multiple blocks, each block comprising one or more transaction values, wherein each transaction value comprises at least a transaction hash. The receiving device of the processing server receives one or more deterministic transaction inputs, wherein each of the one or more deterministic transaction inputs is associated with one or more predetermined conditions for deterministically satisfying the corresponding deterministic transaction input; Based on whether one of the predetermined conditions of at least one of the one or more deterministic transaction inputs is satisfied, the corresponding at least one deterministic transaction input among the one or more deterministic transaction inputs is modified by the data modification module of the processing server; By processing the hash module of the server, a new hash value is generated by applying one or more hash algorithms to the modified at least one deterministic transaction input in the one or more deterministic transaction inputs; By processing the server's generation module, a new transaction value is generated based at least on the newly generated hash value and the reference identifier associated with the executable script associated with the blockchain, wherein the new transaction value is based on a modified at least one deterministic transaction input from the one or more deterministic transaction inputs, wherein the execution output of the executable script is a deterministic response used to verify whether a predetermined condition of one or more predetermined conditions of the at least one deterministic transaction input is satisfied. The newly generated transaction value is digitally signed by processing the server's signature module. and The signed new transaction value is transmitted electronically through the transmission equipment of the processing server.

2. The method according to claim 1, wherein the reference identifier is a hash of the executable script.

3. The method according to claim 1, wherein the executable script is a smart contract.

4. The method according to claim 1, wherein the execution of the executable script verifies that one or more predetermined conditions are not met.

5. The method according to claim 4, wherein in response to one or more predetermined conditions not being met, the execution of the executable script generates an indication of the non-metdient of the one or more predetermined conditions.

6. The method according to claim 5, wherein the indication of non-fulfillment of the one or more predetermined conditions includes an indication of non-payment or payment refund.

7. A method for auditing and verifying deterministic data published to a blockchain, comprising: The receiving device of the processing server receives a blockchain comprising multiple blocks, each block comprising one or more transaction values, wherein each transaction value comprises at least a transaction hash. The query module of the processing server performs a first query on the blockchain to identify a first transaction value, wherein the first transaction value is associated with an executable script; The executable script is executed by the processor of the processing server using multiple predetermined input conditions for deterministically satisfying one or more deterministic transaction inputs associated with a first transaction value, in order to receive at least one deterministic response; The hash module of the processing server generates a hash value based at least on the plurality of predetermined input conditions and the at least one deterministic response; By processing the server's generation module, a new transaction value is generated, based at least on the generated hash value and the transaction hash included in the first transaction value; and The server's verification module verifies whether the second transaction value included in the block in the blockchain matches the generated new transaction value. The second transaction value is modified based on at least one modified deterministic transaction input, which is modified based on whether one or more associated predetermined input conditions in the one or more deterministic transaction inputs are met.

8. The method according to claim 7, wherein verifying whether the second transaction value matches the generated new transaction value comprises: By processing the query module of the server, a second query is performed on the blockchain to identify the second transaction value; and The server's verification module verifies that the second transaction value is equivalent to the newly generated transaction value.

9. The method according to claim 7, wherein verifying whether the second transaction value matches the generated new transaction value comprises: By processing the query module of the server, a second query is performed on the blockchain to identify the second transaction value; and The server's verification module verifies that the second transaction value is different from the newly generated transaction value.

10. The method according to claim 7, wherein the executable script is a smart contract.

11. A system for publishing auditable, immutable data to a blockchain, comprising: A receiving device for a processing server, the receiving device being configured to receive... A blockchain comprising multiple blocks, each block containing one or more transaction values, wherein each transaction value includes at least a transaction hash and... One or more deterministic transaction inputs, wherein each of the one or more deterministic transaction inputs is associated with one or more predetermined conditions for deterministically satisfying the corresponding deterministic transaction input; A data modification module for processing servers, the data modification module being configured to modify at least one corresponding deterministic transaction input among the one or more deterministic transaction inputs based on whether a predetermined condition among one or more predetermined conditions of at least one deterministic transaction input is met; A hashing module for processing the server, the hashing module being configured to generate a new hash value by applying one or more hashing algorithms to a modified at least one deterministic transaction input in the one or more deterministic transaction inputs; A generation module of a processing server is configured to generate a new transaction value based at least on a newly generated hash value and a reference identifier associated with an executable script associated with the blockchain, wherein the new transaction value is based on a modified at least one deterministic transaction input from the one or more deterministic transaction inputs, wherein the execution output of the executable script is a deterministic response used to verify whether a predetermined condition of one or more predetermined conditions of the at least one deterministic transaction input is satisfied. A signature module for processing servers, the signature module being configured to digitally sign newly generated transaction values; and A transmission device for processing servers, the transmission device being configured to electronically transmit signed new transaction values.

12. The system according to claim 11, wherein the reference identifier is a hash of the executable script.

13. The system according to claim 11, wherein the executable script is a smart contract.

14. The system of claim 11, wherein the execution of the executable script verifies that one or more predetermined conditions are not met.

15. The system of claim 14, wherein, in response to the failure of one or more predetermined conditions to be met, the execution of the executable script is configured to generate an indication of the failure to meet the one or more predetermined conditions.

16. The system according to claim 15, wherein the indication of non-fulfillment of the one or more predetermined conditions includes an indication of non-payment or payment refund.

17. A system for auditing and verifying deterministic data published to a blockchain, comprising: A receiving device for a processing server, the receiving device being configured to receive a blockchain comprising multiple blocks, each block comprising one or more transaction values, wherein each transaction value comprises at least a transaction hash; A query module for processing the server, the query module being configured to perform a first query on the blockchain to identify a first transaction value, wherein the first transaction value is associated with an executable script; A processor of a processing server, the processor being configured to execute the executable script using a plurality of predetermined input conditions for deterministically satisfying one or more deterministic transaction inputs associated with a first transaction value, to receive at least one deterministic response; A hash module for processing the server, the hash module being configured to generate hash values ​​based at least on the plurality of predetermined input conditions and the at least one deterministic response; A generation module for processing the server, the generation module being configured to generate a new transaction value based at least on the generated hash value and the transaction hash included in the first transaction value; and The processing server has a verification module configured to verify whether a second transaction value included in a block in the blockchain matches the generated new transaction value, wherein the second transaction value is modified based on at least one modified deterministic transaction input based on whether one or more associated predetermined input conditions in the one or more deterministic transaction inputs are met.

18. The system according to claim 17, wherein verifying whether the second transaction value matches the generated new transaction value comprises: By processing the query module of the server, a second query is performed on the blockchain to identify the second transaction value; and The server's verification module verifies that the second transaction value is equivalent to the newly generated transaction value.

19. The system according to claim 17, wherein verifying whether the second transaction value matches the generated new transaction value comprises: By processing the query module of the server, a second query is performed on the blockchain to identify the second transaction value; and The server's verification module verifies that the second transaction value is different from the newly generated transaction value.

20. The system of claim 17, wherein the executable script is a smart contract.

Citation Information

Patent Citations

  • Method and system for validation of hashed data via acceptance frames

    US12639703B2

  • Procede pour la gestion electronique de contrats

    FR2820856A1

  • Authentication and verification of digital data utilizing blockchain technology

    US20160283920A1