Collaborative computation across blockchain networks
Secure multi-party computation protocols across blockchain networks address privacy and confidentiality issues by enabling joint data computation with end-to-end proof, ensuring data confidentiality and compliance with consensus rules.
Patent Information
- Application Number
- JP2025511681
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2022-09-01
- Filing Date
- 2023-07-12
- Publication Date
- 2025-09-09
AI Technical Summary
Existing data sharing methods between blockchain networks offer limited privacy and confidentiality guarantees for complex multi-network data queries and responses, necessitating the need for improved cryptographic tools to enable secure computation without relying on trusted network proxies or third parties.
Implementing secure multi-party computation (MPC) protocols across permissioned blockchain networks, allowing joint computation on private data while maintaining data privacy through trusted data sharing schemes and end-to-end proof mechanisms.
Ensures data confidentiality and correctness of computational outputs without revealing original information, providing resilience against network failures and ensuring compliance with consensus rules.
Smart Images

Figure 2025529891000001_ABST
Abstract
Description
[Technical Field]
[0001] Aspects of the present invention relate generally to cryptography, and more particularly to collaborative computation across blockchain networks.
[0002] Secure multi-party computation (also known as secure computation) or multi-party computation (MPC) is a cryptographic tool that allows individual parties to jointly compute functions on their own inputs while keeping these inputs (e.g., raw data) private. In MPC, a fixed number of participants (P1, P2, ..., P N ) are the private data (D1, D2, ..., D N ) Participants have the value of a public function f on this private data, that is, f(D1,D2,...,D N ), while keeping their inputs secret. Various MPC protocols exist, including SPDZ (pronounced "Speedz"), a generic MPC protocol, and garbled circuit protocols, which allow secure computation by both parties.
[0003] In general, blockchain is a type of distributed ledger technology (DLT) that provides a shared, immutable ledger that facilitates the process of recording transactions and tracking assets within a computer network. Assets can be tangible or intangible. Permissioned DLT / blockchain networks store data records on a shared ledger that is intentionally inaccessible to external entities. Blockchain helps communicate information by providing shared, fully transparent, and instant information that is stored on an immutable ledger that is accessible only to permissioned network members.
[0004] In general, blockchains work by recording each transaction that moves assets as a "block" of data. Each block can record information about the transaction (e.g., who, what, when, where, and how) and is connected to previous and subsequent blocks, forming a chain of data each time assets move from one to the next or change ownership. Each block is stored across multiple computers (decentralized storage). Each block is synchronized at various locations to prevent tampering. Each block is securely linked in sequence to establish the exact time and order of transactions and to prevent any block from being altered or inserted between two existing blocks. Summary of the Invention
[0005] In a first aspect of the present invention, there is a computer implemented method comprising the following steps. the computing system identifies selected blockchain networks and selected computing devices that will perform multi-party computation (MPC) based on indices of multiple blockchain networks and computing devices that indicate types of data available by each of the multiple blockchain networks and computing devices; the computing system generates an MPC request that includes a validation policy that defines at least one computational function to be jointly performed by the selected blockchain networks and selected computing devices, data required for the at least one computational function from each of the selected blockchain networks and selected computing devices, and at least one validation protocol to be performed by each of the selected blockchain networks and selected computing devices; the computing system transmits the MPC request to each of the selected blockchain networks and selected computing devices via a network connection; and the computing system receives responses from a representative computing node of the selected blockchain networks and from the selected computing devices, each of which includes an MPC output of an MPC protocol executed by the selected blockchain networks and the selected computing devices to jointly compute at least one computational function on inputs of the selected blockchain networks and the selected computing devices while keeping the respective inputs private from each other and from the computing system; and a proof of computation based on the validation policy.
[0006] Another aspect of the present invention resides in a computer program product that includes one or more computer-readable storage media having program instructions collectively stored thereon, the program instructions being executable to: send a multi-party computation (MPC) request to each of a plurality of blockchain networks, the MPC request including a validation policy defining at least one computation function to be jointly executed by the plurality of blockchain networks, data inputs required for the at least one computation function, and at least one validation protocol to be executed by each of the plurality of blockchain networks; and receive responses from a representative computing node of each of the plurality of blockchain networks, each of the responses including an MPC output and a proof of computation based on the validation policy, wherein the MPC output is jointly computed by the plurality of blockchain networks using the MPC protocol while keeping the original data of each of the plurality of blockchain networks private from one another, and wherein the MPC output is computed from the original data of the plurality of blockchain networks without disclosing it.
[0007] In another aspect of the present invention, there is a system that includes a set of processors, one or more computer-readable storage media, and program instructions collectively stored on the one or more computer-readable storage media, the program instructions being executable by at least one representative computing device of a first blockchain network as follows: That is, receiving a multi-party computation (MPC) request from a remote computing system, the MPC request including at least one computation function to be jointly executed by a first blockchain network and a second blockchain network, data inputs required for the at least one computation function, and a validation policy defining at least one validation protocol to be executed by each of the first and second blockchain networks; initiating and executing steps of the MPC protocol together with the second blockchain network to jointly generate an MPC output based on the computation function in the MPC request and in accordance with the validation policy of the MPC request, wherein the MPC output is jointly computed by the first and second blockchain networks using the MPC protocol while keeping raw data of each of the first and second blockchain networks private from each other and calculated from raw data of the first and second blockchain networks without disclosing it to the remote computing system, and wherein each of the first and second blockchain networks ensures the validity of the input to the MPC protocol by selecting raw data to use in the MPC protocol based on the data inputs in the MPC request; and transmitting the MPC output to the remote computing system in response to the MPC request. [Brief explanation of the drawings]
[0008] Aspects of the present invention are described in the following detailed description, with reference to the several drawings, which show, by way of non-limiting examples, illustrative embodiments of the invention.
[0009] [Figure 1] 1 illustrates a computing environment according to one embodiment of the present invention.
[0010] [Figure 2] 1 illustrates a block diagram of an exemplary collaborative computing environment in accordance with an aspect of the present invention.
[0011] [Figure 3] 1 illustrates interactions between participating networks in accordance with an aspect of the present invention.
[0012] [Figure 4] 1 illustrates a flowchart of an exemplary MPC method from the perspective of a demand computing system, according to an aspect of the present invention.
[0013] [Figure 5] 1 illustrates a flowchart of an exemplary MPC method from the perspective of a participating blockchain network, according to an embodiment of the present invention.
[0014] [Figure 6] 1 illustrates an exemplary three-step MPC protocol between representative nodes of three blockchain networks in accordance with an embodiment of the present invention.
[0015] [Figure 7] FIG. 1 is a workflow diagram illustrating a communication protocol for preserving data privacy between participants in a collaborative computing process in accordance with an aspect of the present invention.
[0016] [Figure 8] 4 and 5 according to an embodiment of the present invention. DETAILED DESCRIPTION OF THE INVENTION
[0017] Aspects of the present invention relate generally to cryptography, and more particularly to collaborative computation across blockchain networks. In embodiments, systems and methods are provided for computing data required for requesting / beneficiary networks for secure multi-party computation (MPC) between contributing networks (e.g., permissioned blockchain networks) and / or computing devices, with intermediate outputs corroborated between the contributing networks and / or computing devices, and the final output verified by the requesting / beneficiary networks through trusted data sharing between the networks. In an example implementation, each participating blockchain network includes a blockchain ledger that records the movement of each MPC protocol transaction as a "block" of data. Each block can record information about the transaction (e.g., computation) and is connected to previous and subsequent blocks to form a chain of data as the MPC protocol progresses.
[0018] Permissioned DLT / blockchain networks store data records in a shared ledger that is intentionally inaccessible to external entities. However, data recorded in one network is often crucial for the trusted execution of smart contracts in another network. As used herein, the term "smart contract" refers to a computer program or transaction protocol intended to automatically execute, control, or record legally relevant events and actions in accordance with the terms of a contract or agreement. Sharing methods have been proposed to enable data sharing between blockchains with proof of authenticity and provenance. However, existing data sharing methods offer limited privacy and confidentiality guarantees for complex multi-network data queries and responses. In some cases, a network (or parties within a network) may not want to share raw data with external entities or other networks. However, multiple networks or parties may want to jointly provide information aggregated or derived from their individual raw data.
[0019] Embodiments of the present invention provide improved cryptographic tools that support private computation across distributed ledger networks (decentralized blockchain networks) without the need to rely on trusted network proxies or third parties. The systems and methods described herein are necessarily computer-based in order to solve problems that arise in the realm of computer networks. Specifically, embodiments of the present invention address the problem of determining a desired computational output based on private data distributed across multiple permissioned networks and / or computing devices.
[0020] It can be appreciated that there are many use cases where it is desirable to derive insights from multiple data sources without revealing the original information to the requesting party or other intermediaries. Some examples include: (1) when a party (individual, business) that holds assets (e.g., central bank digital currency, stocks, bonds, cryptocurrencies, etc.) across multiple networks may need to attest to auditors, tax authorities, lenders, or other entities regarding its aggregate holdings (e.g., total equity, outstanding liabilities, capital adequacy) without revealing the detailed holdings across each such network; (2) when industry or sector-wide reports (often published by regulators or industry associations) may draw information from multiple networks and need to ensure accuracy and completeness as well as privacy and confidentiality; and (3) when a party may need to attest to regulatory compliance to regulators and auditors without revealing the detailed history of each of its transactions within and across networks.
[0021] The need for improved cryptographic tools according to embodiments of the present invention is illustrated in the following exemplary scenario. In this example, N1, N2, and N3 are independent CBDC (Central Bank Digital Currency) networks. Alice is a user who maintains CBDC accounts in both N2 and N3. N1's smart contract includes a limited authority (e.g., the European Bank Agency) and needs to enforce different rules depending on whether Alice's total account balance (i.e., the sum of N2 and N3's balances) exceeds a certain amount X. Neither N2 nor N3 wants to reveal their respective Alice's account balances to the other network, but rather want to share the information in a privacy-preserving manner.
[0022] In terms of blockchain networks, where information exists across multiple networks, the main constraints are to ensure that the requesting party has no knowledge of the original information (e.g., original data) in any network; that the network has no knowledge of the original information (e.g., original data) that exists in other networks; and that the requesting party has assurance that the aggregated insights were correctly computed and that the inputs to the aggregation were correct data according to the consensus rules of the contributing blockchain networks.
[0023] A permissioned blockchain can be thought of as a data silo that is only accessible to authorized parties. An example implementation of the present invention provides a way to extract more value from stored data silos by combining data from those silos with external data in a secure manner using MPC. In an example implementation, participants in a collaborative computation across a blockchain network can access blockchain software, such as open-source blockchains and related tools available through the Hyperledger® project, a project launched by the Linux® Foundation in December 2015. Hyperledger® is a registered trademark of the Linux® Foundation.
[0024] Implementations of the present invention enable separate permissioned blockchain networks to jointly act as input providers to an MPC. This distinguishes it from existing MPC protocols, where input providers are individuals on the network. Embodiments of the present invention advantageously provide end-to-end proof to participants in an MPC protocol and non-participant beneficiaries. As used herein, the term "end-to-end proof" refers to the complete history of one or more computations performed by participants in an MPC protocol, or the complete history of how computational outputs are generated by the MPC protocol. This history serves as a guarantee of the correctness of computational outputs, even to non-participants in the MPC, without revealing additional information about private computational inputs. In aspects, a method provides guarantees of the correctness of computational inputs to non-participants receiving MPC outputs, and guarantees of the correctness of outputs to non-participants (and participants). Furthermore, by adapting an MPC protocol with a trusted data sharing scheme between ledgers, embodiments of the present invention guarantee privacy in a manner that does not require parties (e.g., nodes in a blockchain) to reveal raw data to each other for computation and verification purposes. Aspects of the present invention also provide resilience against failures of network members running the MPC protocol.
[0025] In an embodiment, a method from the perspective of a user seeking data comprises the following steps: R is a participating / contributing network (N1, ..., N k ) regarding the data it needs from each of the query / response computing systems N R querying the participating / contributing networks, the query including (i) the function and (ii) the validation policy for each contributing network; and returning the results (MPC outputs) and proofs from each representative of each participating / contributing network to the query / response computing system N Rreceives proof from each of the respective representatives via a smart contract; R In response to the verification of the proof, the query / answer computing system N R accepting the results; and optionally, based on the results, R performing further calculations; optionally, a query / response computing system N R and based on the results and / or further calculations, a query / answer computing system N R This is the stage where the ledger records are updated.
[0026] In an embodiment, a method from the perspective of a group of participating / contributing blockchain networks comprises, for each blockchain network in the group of participating / contributing blockchain networks, the following steps: a computing device of the blockchain network receiving a request for data (an MPC request) from a remote computing device; a computing device of the blockchain network selecting a representative Pi, where this selection is arbitrary and may be interchangeable; the representative Pi initiating and executing an MPC protocol to generate a computational output while ensuring fault tolerance and validation by other network members, where the MPC protocol includes generating a concise proof of the computational correctness of the computational output, recording it in a blockchain ledger, and communicating it among other network members using an inter-network data sharing protocol; and the representative Pi providing the computational output together with the proof of the computational correctness to the remote computing device in response to the request for data.
[0027] Various aspects of the present disclosure are described through text, flowcharts, block diagrams of computer systems, and / or block diagrams of machine logic included in computer program product (CPP) embodiments. For any flowchart, depending on the technology involved, it is possible to perform operations in an order different from that shown in a particular flowchart. For example, two operations shown in successive flowchart blocks may be performed in the reverse order, as a single integrated step, simultaneously, or in a manner that at least partially overlaps in time, also depending on the technology involved.
[0028] A computer program product embodiment ("CPP embodiment" or "CPP") is a term used in this disclosure to describe any set of one or more storage media (also called "mediums"), collectively contained in one or more storage devices, that collectively contain machine-readable code corresponding to instructions and / or data for performing the computer operations specified in a particular CPP claim. A "storage device" is any tangible device capable of holding and storing instructions for use by a computer processor. The computer-readable storage medium may be, but is not limited to, an electronic storage medium, a magnetic storage medium, an optical storage medium, an electromagnetic storage medium, a semiconductor storage medium, a mechanical storage medium, or any suitable combination of the foregoing. Some known types of storage devices that include these media include diskettes, hard disks, random access memory (RAM), read-only memory (ROM), erasable programmable read-only memory (EPROM or flash memory), static random access memory (SRAM), compact disk read-only memory (CD-ROM), digital versatile disk (DVD), memory stick, floppy disk, mechanically encoded device (such as punch cards or pits / lands formed on a major surface of a disk), or any suitable combination of the foregoing. Computer-readable storage media, as the term is used in this disclosure, is not to be construed as storage in the form of a transient signal per se, such as radio waves or other freely propagating electromagnetic waves, electromagnetic waves propagating through a waveguide, light pulses passing through fiber optic cables, electrical signals transmitted through wires, and / or other transmission media. As will be appreciated by those skilled in the art, data typically moves at some infrequent time during the normal operation of a storage device, such as during access, defragmentation, or garbage collection, but this does not qualify a storage device as transient, since data is not transient while it is stored.
[0029] The computing environment 100 includes an example of an environment for executing at least a portion of the computer code involved in performing the method of the present invention, such as a collaborative computation 200 across a blockchain network. In addition to the block 200, the computing environment 100 includes, for example, a computer 101, a wide area network (WAN) 102, an end user device (EUD) 103, a remote server 104, a public cloud 105, and a private cloud 106. In this embodiment, the computer 101 includes a processor set 110 (including processing circuitry 120 and cache 121), a communications fabric 111, volatile memory 112, persistent storage 113 (including an operating system 122 and the block 200, as described above), a peripheral device set 114 (including a user interface (UI) device set 123, storage 124, and an Internet of Things (IoT) sensor set 125), and a network module 115. The remote server 104 includes a remote database 130. The public cloud 105 includes a gateway 140, a cloud orchestration module 141, a set of host physical machines 142, a set of virtual machines 143, and a set of containers 144.
[0030] Computer 101 may take the form of a desktop computer, a laptop computer, a tablet computer, a smartphone, a smartwatch or other wearable computer, a mainframe computer, a quantum computer, or any other form of computer or mobile device now known or later developed that is capable of executing programs, accessing a network, or querying a database, such as remote database 130. As is well understood in the art of computer technology, and in accordance with such technology, execution of a computer-implemented method may be distributed among multiple computers and / or multiple locations. While, in this description of computing environment 100, to keep the description as concise as possible, the detailed discussion focuses on a single computer, and in particular computer 101. Computer 101 may be located in a cloud, even if not depicted in the cloud in FIG. 1 . However, it is not required that computer 101 be in a cloud, except where expressly indicated at all.
[0031] Processor set 110 includes one or more computer processors of any type now known or later developed. Processing circuitry 120 may be distributed across multiple packages, e.g., multiple integrated circuit chips coupled together. Processing circuitry 120 may implement multiple processor threads and / or multiple processor cores. Cache 121 is memory located within the processor chip package and is typically used for data or code that should be available for fast access by threads or cores running on processor set 110. Cache memory is typically divided into multiple levels depending on relative proximity to the processing circuitry. Alternatively, some or all of the cache for a processor set may be located “off-chip.” In some computing environments, processor set 110 may be designed to operate with qubits and perform quantum computing.
[0032] Computer-readable program instructions are typically loaded onto computer 101 and cause processor set 110 of computer 101 to perform a series of operational steps, thereby realizing a computer-implemented method. As a result, the instructions so executed instantiate the method set forth in the flowcharts and / or descriptions of the computer-implemented method contained herein (collectively, the "methods of the present invention"). These computer-readable program instructions are stored on various types of computer-readable storage media, such as cache 121 and other storage media described below. The program instructions and associated data are accessed by processor set 110 to control and direct the execution of the methods of the present invention. In computing environment 100, at least a portion of the instructions for performing the methods of the present invention may be stored in block 200 of persistent storage 113.
[0033] Communications fabric 111 is the signal-conducting pathway that allows the various components of computer 101 to communicate with one another. Typically, this fabric is made up of switches and conductive pathways, such as those that make up buses, bridges, physical input / output ports, and the like. Other types of signal communication pathways may also be used, such as fiber optic and / or wireless communication pathways.
[0034] Volatile memory 112 may be any type of volatile memory now known or later developed. Examples include dynamic random access memory (RAM) or static RAM. Typically, volatile memory is characterized by random access, although this is not required unless explicitly stated. In computer 101, volatile memory 112 is located in a single package and is internal to computer 101; however, alternatively or additionally, volatile memory may be distributed across multiple packages and / or may be located external to computer 101.
[0035] Persistent storage 113 is any form of non-volatile storage for a computer, now known or later developed. The term non-volatile storage means that stored data is maintained regardless of whether power is supplied to computer 101 and / or to persistent storage 113 directly. Persistent storage 113 may be read-only memory (ROM), but typically at least a portion of persistent storage allows data to be written, data to be erased, and data to be rewritten. Some well-known forms of persistent storage include magnetic disks and solid-state storage devices. Operating system 122 may take several forms, such as various known proprietary operating systems or open-source Portable Operating System Interface-type operating systems, which utilize a kernel. The code contained in block 200 typically includes at least a portion of the computer code involved in performing the methods of the present invention.
[0036] Peripheral device set 114 includes a set of peripheral devices of computer 101. Data communication connections between peripheral devices and other components of computer 101 may be implemented in various manners, such as Bluetooth® connections, near field communication (NFC) connections, connections via cables (such as Universal Serial Bus (USB)-type cables), pluggable connections (e.g., Secure Digital (SD) cards), connections made over local area communication networks, and even connections made over wide area networks such as the Internet. In various embodiments, UI device set 123 may include multiple components, such as a display screen, speakers, microphones, wearable devices (such as goggles and smartwatches), keyboards, mice, printers, touchpads, game controllers, and haptic devices. Storage 124 may be external storage, such as an external hard drive, or insertable storage, such as an SD card. Storage 124 may be persistent and / or volatile. In some embodiments, storage 124 may take the form of a quantum computing storage device that stores data in the form of qubits. In embodiments where computer 101 needs to have large amounts of storage (e.g., computer 101 stores and manages large databases locally), this storage may be provided by a peripheral storage device designed to store very large amounts of data, such as a storage area network (SAN) shared by multiple geographically distributed computers. IoT sensor set 125 consists of sensors that can be used in Internet of Things applications. For example, one sensor can be a thermometer and another sensor can be a motion detector.
[0037] Network module 115 is a collection of computer software, hardware, and firmware that enables computer 101 to communicate with other computers over WAN 102. Network module 115 may include hardware such as a modem or Wi-Fi® signal transceiver, software for packetizing and / or de-packetizing data for communication network transmission, and / or web browser software for communicating data over the Internet. In some embodiments, the network control and network forwarding functions of network module 115 execute on the same physical hardware device. In other embodiments (e.g., embodiments utilizing software-defined networking (SDN)), the control and forwarding functions of network module 115 execute on physically separate devices, whereby the control function manages multiple different network hardware devices. Computer-readable program instructions for implementing the methods of the present invention can typically be downloaded to computer 101 from an external computer or external storage device via a network adapter card or network interface included in network module 115.
[0038] WAN 102 is any now known or later developed wide area network (e.g., the Internet) capable of communicating computer data between remote locations by any technology for communicating computer data. In some embodiments, the WAN may be replaced and / or supplemented by a local area network (LAN) designed to communicate data between devices located in a local area, such as a Wi-Fi network. WANs and / or LANs typically include copper transmission cables, optical fiber transmissions, wireless transmissions, and computer hardware such as routers, firewalls, switches, gateway computers, and edge servers.
[0039] End-user device (EUD) 103 is any computer system used and controlled by an end user (e.g., a customer of the enterprise that operates computer 101) and may take any of the forms described above with respect to computer 101. EUD 103 typically receives useful and useful data from the operation of computer 101. For example, in a hypothetical case in which computer 101 is designed to provide advice to the end user, this advice would typically be communicated from network module 115 of computer 101 over WAN 102 to EUD 103. In this manner, EUD 103 can display or otherwise present this advice to the end user. In some embodiments, EUD 103 may be a client device such as a thin client, a heavy client, a mainframe computer, a desktop computer, etc.
[0040] Remote server 104 is any computer system that provides at least some data and / or functionality to computer 101. Remote server 104 may be controlled and used by the same entity that operates computer 101. Remote server 104 represents a machine that collects and stores useful and useful data for use by other computers, such as computer 101. For example, in the hypothetical case where computer 101 is designed and programmed to provide advice based on historical data, this historical data may be provided to computer 101 from remote database 130 of remote server 104.
[0041] A public cloud 105 is any computer system available for use by multiple entities that provides on-demand availability of computer system resources and / or other computer capabilities, particularly data storage (cloud storage) and computing capacity, without requiring direct, active management by users. Cloud computing typically leverages resource sharing to achieve consistency and economies of scale. Direct, active management of the computing resources of the public cloud 105 is performed by computer hardware and / or software in a cloud orchestration module 141. The computing resources provided by the public cloud 105 are typically realized by virtual computing environments running on various computers comprising a host physical machine set 142, which is the entire set of physical computers included in and / or available to the public cloud 105. The virtual computing environments (VCEs) typically take the form of virtual machines in a virtual machine set 143 and / or containers in a container set 144. It is understood that these VCEs may be stored as images and may be transferred between various physical machine hosts either as images or after instantiation of the VCEs. The cloud orchestration module 141 manages the transfer and storage of images, deploys newly instantiated VCEs, and manages active instances of VCE deployments. The gateway 140 is a collection of computer software, hardware, and firmware that allows the public cloud 105 to interact over the WAN 102.
[0042] Here, we provide some further explanation of virtual computing environments (VCEs). A VCE can be stored as an "image." From this image, a new, active instance of the VCE can be instantiated. Two well-known types of VCEs are virtual machines and containers. A container is a VCE that uses operating system-level virtualization. This refers to a feature of an operating system where the kernel allows the existence of multiple isolated user space instances called containers. These isolated user space instances typically behave as actual computers from the perspective of the programs running within them. A computer program running on a typical operating system can use all of the computer's resources, such as connected devices, files and folders, network shares, CPU power, and quantifiable hardware capabilities. However, a program running inside a container can only use the contents of the container and the devices assigned to the container; this feature is known as containerization.
[0043] A private cloud 106 is similar to a public cloud 105, except that its computing resources are available only for use by a single enterprise. While the private cloud 106 is shown as interacting with the WAN 102, in other embodiments, the private cloud may be completely disconnected from the Internet and accessible only through a local / private network. A hybrid cloud is a composite of multiple clouds of different types (e.g., private, community, or public cloud types), often implemented by different vendors. Each of the multiple clouds remains a separate, isolated entity, but in a larger hybrid cloud architecture, they are joined by standardized or proprietary technologies that enable orchestration, management, and / or data / application portability between the constituent clouds. In this embodiment, both the public cloud 105 and the private cloud 106 are part of a larger hybrid cloud.
[0044] Figure 2 illustrates a block diagram of an exemplary collaborative computing environment 201 in accordance with an aspect of the present invention. Collaborative computing environment 201 may be located within computing environment 100 of Figure 1. In an embodiment, collaborative computing environment 201 includes a network 202 (e.g., WAN 102 of Figure 1) that enables interaction between multiple client devices represented by 208A-208D, and multiple contributing networks represented by contributing networks 204 and 206.
[0045] Each of client devices 208A-208D may comprise an instance of computer 101 of FIG. 1 or elements thereof, and may be used alone or as part of a network of computing devices (e.g., a permissioned blockchain network). In an example implementation, each of client devices 208A-208D constitutes a computing node in a cloud computing environment. In an embodiment, client devices 208A-208D include computer software that provides computational services to one or more paying customers (e.g., via end user device 103 of FIG. 1). In an example implementation of the present invention, each of client devices 208A-208D stores computer-readable program instructions (e.g., code within block 200 of FIG. 1) that cause a processor set (e.g., processor set 110 of FIG. 1) of the respective client device 208A-208D to perform a series of operational steps, thereby implementing a computer-implemented method, described in more detail below.
[0046] The computer-readable program instructions of the client devices 208A-208D may be stored as one or more modules in various types of computer-readable storage media (e.g., persistent storage 113 of FIG. 1). For illustrative purposes, assume that the client device 208A is a requesting node N of the collaborative computing environment 201. R, which is configured to initiate collaborative computations among blockchain networks in accordance with embodiments of the present invention. By way of example, client device 208A is shown as including the following elements: a request module 220 configured to generate and send data queries / requests (MPC requests) to multiple contributing networks 204 and 206 (e.g., blockchain networks); an index module 221 configured to store and manage information about participants in environment 201; a data module 222 configured to interpret incoming results in response to data queries / requests and / or generate new outputs using the resulting output of one or more computations; a validation module 223 configured to validate the incoming results (MPC outputs); and a ledger module 224 configured to update and manage ledger data in client device 208A's ledger (e.g., blockchain ledger).
[0047] Contribution network 204 may include multiple computer resources, including, for example, computer devices 210A-210D. Each of computer devices 210A-210D may include an instance of, or elements of, client computer 101 of FIG. 1. In an example implementation, computer devices 210A-210D are participants in a permissioned blockchain network. In aspects of the invention, each of computer devices 210A-210D implements a computer-implemented method, described in more detail below, by storing computer-readable program instructions that cause a processor set (e.g., processor set 110 of FIG. 1) of the respective computer device 210A-210D to perform a series of operational steps.
[0048] The computer-readable program instructions for computing devices 210A-210D may be stored as one or more modules on various types of computer-readable storage media (e.g., persistent storage 113 of FIG. 1). By way of example, computing device 210A is shown as including the following elements: a blockchain ledger module 230 configured to update and maintain computing device 210A's blockchain ledger; a data module 231 configured to access data (raw data) from one or more storage modules 250 for use as computational input for the MPC protocol; and a representation module 240 configured to execute the MPC protocol in response to incoming data requests.
[0049] 2, representative module 240 may include query module 241 configured to process incoming data queries / requests and initiate the appropriate MPC protocol in response to the data queries / requests; encryption module 242 configured to encrypt the output of computing device 210A (the MPC output) based on cryptographic information provided in the data query / request; and verification module 243 configured to generate a proof of computation along with the output and provide it in response to the data query / request. It should be understood that other computing devices 210B-210D (blockchain nodes) in contribution network 202 may perform the same functions and / or include the same modules as exemplary computing device 210A.
[0050] Contribution network 206 may include multiple computing resources, including, for example, computing devices 210A'-210D'. Each of computing devices 210A'-210D' may include an instance of, or elements of, client computer 101 of FIG. 1. In an example implementation, computing devices 210A'-210D' are participants in a permissioned blockchain network. In an embodiment, each of computing devices 210A'-210D' stores computer-readable program instructions that cause a processor set (e.g., processor set 110 of FIG. 1) of the respective computing device 210A'-210D' to perform a series of operational steps, thereby implementing a computer-implemented method, described in more detail below.
[0051] 2, computing device 210A′ includes the same modules as computing device 210A and is configured to perform the same functions described above with respect to computing device 210A. It should be understood that other computing devices 210B′-210D′ (blockchain nodes) in contribution network 202 may perform the same functions and / or include the same modules as exemplary computing device 210A′.
[0052] In an exemplary implementation of the present invention, one of computing devices 210A-210D in contributing network 204 is selected as a representative node P1 that participates in an MPC protocol jointly executed by multiple contributing networks (e.g., contributing networks 204 and 206). Similarly, in an exemplary implementation of the present invention, one of computing devices 210A′-210D′ in contributing network 206 is selected as a representative node P2 that participates in the MPC protocol. In the example of FIG. 2, computing device 210A is selected as the representative node P1 of contributing network 204, which is a first permissioned blockchain network, and computing device 210A′ is selected as the representative node P2 of contributing network 206, which is a second permissioned blockchain network.
[0053] Each of client devices 208A-208D, computing devices 210A-210D, and computing devices 210A′-210D′ may include additional modules or fewer modules than those shown in FIG. 2. In embodiments, separate modules may be integrated into a single module. Additionally, or alternatively, a single module may be implemented as multiple modules. Furthermore, the number of devices and / or networks in collaborative computing environment 201 is not limited to those shown in FIG. 2. For example, additional participant networks (e.g., blockchain networks) may be included in collaborative computing environment 201. In practice, collaborative computing environment 201 may include additional devices and / or networks; fewer devices and / or networks; different devices and / or networks; or devices and / or networks in a different arrangement than those shown in FIG. 2.
[0054] 3 illustrates interactions between participating networks in accordance with an embodiment of the present invention. The elements of FIG. 3 may be implemented in the environment of FIG. 2 and are described with reference to elements shown in FIG.
[0055] In the example of FIG. 3, client device 208A is connected to requesting computing system N R and according to an embodiment of the present invention, a plurality of participating networks N1, N2...N k (e.g., including contributing networks 204 and 206 of FIG. 2) to initiate computation across the blockchain network. The MPC request 300 includes the participating networks N1 to N k a computational function f calculated on data from (e.g., raw data from storage modules 250, 250′), and the participating networks N1 to N k、 and participating networks N1 to N k Each participating network N1 to Nk executes the MPC protocol in cooperation with other participating networks, and each outputs d1, d2…d k Furthermore, each participating network N1 to N k Computing system N requests its final output generated based on a computational function f. R In this way, the request is sent to the computing system N R Request Computing System N R Different data (e.g., raw data) can be fed to different participating networks N1 to N2 to perform a desired computational function f. k It can be understood that the original data may be required from the participating networks N1 to N2. k Request the type of information available from each of the computing systems N R which generates the MPC request 300 and routes it to the appropriate participant networks N1 to N required to execute the collaborative computation function f. k It will be possible to send to.
[0056] In an embodiment, a beneficiary network (e.g., a requesting computing system N R ), whereby collectively processed data is distributed across multiple contributing networks (N1, ..., N k ), the following is guaranteed: the correctness of the inputs (inputs to the processing (individual networks N1, ..., N k (derived from) is valid according to the consensus rules of the providing network); the correctness of the calculation (confirming that the processing was performed correctly) R high availability (the ability to verify that any one of the network members N1, ..., N kIn the example implementation, data confidentiality is guaranteed for each of the following: (1) confidentiality to other networks (any participating network N1, ..., N k (2) confidentiality to the beneficiary network (N R Which participating networks N1, ..., N k (3) the confidentiality of the results (contribution network N1, ..., N k has no knowledge of the outcome other than what it knows from its own inputs and calculations).
[0057] 4 illustrates a flowchart of an exemplary MPC method from the perspective of a requirements computing system, in accordance with an embodiment of the present invention. The steps of the method may be performed in the environment of FIG. 2 and are described with reference to the elements shown in FIG. 2.
[0058] In step 400, a requesting node (hereafter referred to as computing system N R ) identifies at least one blockchain network (e.g., 204, 206) and one or more other blockchain networks and / or computing devices (e.g., non-blockchain or standalone devices) to include in the multi-party computation (MPC) request. In the example of FIG. 2, computing system N R is represented by client device 208A. In an example implementation, computing system N Rdetermines which blockchain networks and / or computing devices to include in the MPC request from a list of candidate networks and / or computing devices by an index, where the index associates a type of data with the listed networks and / or computing devices. In an embodiment, the index of the multiple blockchain networks and / or computing devices indicates the type of data available from each of the multiple blockchain networks and / or computing devices. Thus, computing system N R Based on the type of information required by the computing system N R can determine which blockchain networks and / or computing devices to include in the MPC request based on the index. R may be a requesting node that is part of a network (such as a permissioned blockchain network) or may be an individual computing system or device. In an embodiment, stage 400 is implemented by index module 221 of client device 208A.
[0059] In step 401, a computing system N R generates an MPC request or query (e.g., 300) and transmits it to at least one selected participating blockchain network N1-N based on the determination in step 400. k (e.g., contributing networks 204, 208) and other selected participant blockchain networks or computing devices (e.g., 208B-208D). In an example implementation, computing system N R Based on the determination in step 400 and information (e.g., addresses) from the index module 221, the selected participating blockchain networks N1 to N kand / or transmit the MPC request to a network address associated with the selected computing device. R generates an MPC request and sends it to at least one node of the blockchain network and another participating computing device (which is not part of the blockchain network).
[0060] In embodiments, each MPC request includes information necessary for each participating blockchain network (e.g., 204, 206) and / or other selected computing devices to identify the other participating blockchain networks and / or computing devices, as well as the type of information desired from each participating blockchain network and / or computing device, enabling representative nodes of each participating blockchain network and / or selected computing device to participate in the MPC protocol with one another. In an example implementation, interactions between representative nodes and / or computing devices are performed using an inter-network communication protocol. It should be understood that various inter-network data sharing protocols may be utilized in accordance with embodiments of the present invention, and the present invention is not intended to be limited to a particular inter-network data sharing protocol. As used herein, the term “inter-network data sharing protocol” refers to an established set of rules that dictate how data is formatted, sent, and received (inter-network interactions) between participating blockchain networks and / or computing devices such that the integrity of the underlying blockchain networks and / or computing devices is maintained. In an example implementation, each round of computation or step in the MPC protocol is performed collaboratively by participating blockchain networks and / or selected computing devices, with each participating blockchain network executing its own local transactions based on the local state of its own ledger (blockchain ledger) and data obtained through interactions between the networks. In an embodiment, transactions performed between participating blockchain networks result in blockchain transactions recorded in their respective distributed blockchain ledgers.
[0061] In an embodiment, each MPC request includes at least one participating blockchain network N1 to Nk at least one computational function f that is jointly computed in the MPC protocol by the nodes (e.g., computing devices 210A-210D or 210A′-210D′) of the participating networks N1-N1, and at least one other participating computing device (e.g., a node of another participating blockchain network) of the participating networks N1-N1, k and / or other computing devices, and a query Q indicating the participating networks N1 to N k and / or other computing devices. In an example implementation, the MPC request further includes data requested / needed from each of the computing systems N R The validation policy selected by each participating blockchain network N1 to N k and / or the validation policies of the participating computing devices. In an embodiment of the present invention, the validation policies may be stricter or more relaxed than the validation policies of the different blockchain networks N1 to N k and / or vary across computing devices. In an embodiment, the MPC request also includes encryption data indicating the encryption algorithm to be utilized in the response to the MPC request. In an embodiment, stage 401 is implemented by request module 220 of client device 208A.
[0062] In step 402, computing system N R Each participating blockchain network N1~N k(e.g., 204, 206) and / or computing devices, receive an MPC response to the MPC request. This response includes a computational output (MPC output) and an associated computational proof. In embodiments, the MPC responses of the participating blockchain networks and / or computing devices are identical (i.e., a common output). In aspects of the present invention, computational proof provides end-to-end provenance for the generation of the computational output of the MPC protocol. Furthermore, computational proof provides assurance regarding the correctness of the computational input to the computing system N. R , as well as any guarantees regarding the correctness of the computational output. In an example implementation, each response includes encrypted data based on the encrypted data provided in the MPC request. In an embodiment, stage 402 is implemented by the request module 220 of the client device 208A.
[0063] Optionally, in step 403, computing system N R decrypts the encrypted MPC response or encrypted data received with the response. R uses the private key to decrypt the encrypted data in the MPC response and then submits the decrypted data along with the proof of computation to the smart contract for validation and consensus in stage 404. In an embodiment, stage 403 is implemented by the data module 222 of the client device 208A.
[0064] In step 404, computing system N R However, by using smart contracts, participating blockchain networks N1 to N kand / or verify the proof of computation from each of the computing devices. In an example implementation, the smart contract is a smart contract for validating the integrity of the MPC result and includes a computer program configured to automatically perform an action (e.g., update a blockchain ledger) if the MPC response meets the validation requirements of a predefined agreement. For example, the smart contract may be used to determine whether a minimum number of signatures are included in the proof of computation. In an embodiment, step 404 is implemented by validation module 223 of client device 208A.
[0065] Optionally, in step 405, computing system N R The computing system N generates a new MPC output by performing one or more calculations utilizing at least one computational output from the MPC response. R Any calculation determined by may be performed in step 405, and embodiments of the present invention are not intended to be limited to any particular calculation. For example, R may wish to calculate sums, medians, means, or other calculations based on the data of the MPC outputs. In an embodiment, stage 405 is implemented by the data module 222 of the client device 208A.
[0066] Optionally, in step 406, computing system N R updates the blockchain ledger based on the results received in step 402 and / or the new MPC output generated in step 405. Those skilled in the art will understand how to update the blockchain ledger. In an example implementation, computing system N Rcreates a new block in the blockchain ledger that includes the result received in step 402, a new hash value derived from the result, and the hash value of the preceding block in the blockchain ledger. In an aspect, step 406 is implemented in response to verifying the proof of computation in step 404. In an embodiment, step 406 is implemented by ledger module 224 of client device 208A.
[0067] In an embodiment, a computing system N R based on a request received from a user (e.g., via a client device of the environment 201), R The MPC protocol may be configured to be initiated, for example, by utilizing a user interface provided by
[0068] Optionally, in step 407, computing system N R generates a final result based on the MPC response and / or new MPC output and transmits the final result to the user who requested the information (e.g., via client device 210D). In an implementation, the final result includes a result of computing function f of the MPC request. In an embodiment, the final result includes a result computed from one or more additional computations based on input from the MPC response. In an embodiment, stage 407 is implemented by request module 220 of client device 208A.
[0069] 5 illustrates a flowchart of an exemplary MPC method from the perspective of a participating blockchain network, in accordance with an embodiment of the present invention. The steps of the method may be performed in the environment of FIG. 2 and are described with reference to the elements illustrated in FIG. 2. Computing System N RThe following steps are performed in each blockchain network (e.g., 204, 206) that receives an MPC request from: In an embodiment of the present invention, before starting the MPC protocol, the blockchain network selects a representative. This representative can be a single blockchain node (e.g., computing device 208A) or a set of blockchain nodes (e.g., computing devices 210A and 210B). Each representative of the blockchain network must have a signature that satisfies the MPC request validation policy. For simplicity, the representative is hereafter referred to as the representative node P1 of the selected blockchain network N1.
[0070] In step 500, a representative node P1 of the selected blockchain network N1 (e.g., computing device 210A of the contributing network 204) communicates with computing system N1 according to step 401 of FIG. R (e.g., client device 208A) receives an MPC request (e.g., query 300). In an example implementation, the MPC request includes at least one computational function f to be jointly computed by representative node P1 and one or more other representative nodes of the blockchain network and / or other selected computing devices selected in the MPC protocol, as well as data from each participant required for computational function f. In an embodiment of the present invention, the MPC request further includes a request from computing system N R Contains the validation policy selected by
[0071] In an implementation of the present invention, an MPC request is sent to computing system N. RThe MPC request is sent to the representative node P1 by another computing node (e.g., 210D) of the blockchain network N1 that first receives the MPC request from the computing device 210A. In an embodiment, the computing device of the selected blockchain network N1 selects one or more nodes of the blockchain network N1 to act as the representative to initiate / manage the MPC protocol according to the MPC request. In the example of FIG. 2, a representative module 240 integrated with or interacting with the computing device 210A may be configured to communicate with the computing system N1. R and randomly selects computing device 210A as representative node P1. In an embodiment of the present invention, a trust assumption for representative node P1 is not required.
[0072] Embodiments of the present invention provide the advantage of interchangeability of computing nodes (e.g., P1) representing participating blockchain networks. One advantage of interchangeability is that all representatives (e.g., representative node P1) are accountable for their actions, and their steps can be actively and passively audited. In an example implementation, active auditing of representative nodes is performed by a smart contract that verifies that the computation of the next step is correct, and approval of that computation is part of the verification policy. In aspects of the present invention, passive auditing may be performed after an operation has been computed, allowing the operation to be recomputed to verify that each step was performed properly.
[0073] In step 501, a representative node P1 is connected to another blockchain network N k and initiates and executes each step of the MPC protocol together with at least one other representative node (e.g., P2) or at least one other computing device of the MPC request, and jointly generates an output (MPC output) based on the computation function f and query Q in the MPC request and in accordance with the validation policy of the MPC request. In an embodiment, computing devices other than the representative node of the blockchain network also participate in the MPC request.
[0074] In an example implementation, a representative node P1 queries its blockchain network N1 to retrieve intermediate data d (e.g., from storage module 250) that is input to the MPC protocol. i d i The MPC protocol may be divided into rounds (steps), where in each round, a participant (e.g., a representative node of each blockchain network) calculates the next message and broadcasts it to other participants (e.g., other representative nodes) depending on the current history and the newly selected randomness for that round. To allow for replicability of the representative nodes, each step of the MPC calculation is tracked on the blockchain (e.g., by the blockchain ledger module 230), for example, as described in step 502 herein. In an embodiment, the query module 241 of the representative node P1 implements step 501. An illustrative example of an MPC protocol according to an embodiment of the present invention is described below with reference to FIG. 6.
[0075] In step 502, the representative node P1 records each step of the MPC protocol as a data block in the blockchain ledger. For each round or step of the MPC protocol, the current representative node publishes the following on the blockchain: (1) messages received from other participant nodes and / or computing devices, and (2) the randomness selected for that round. For example, in an example implementation, for each step of the MPC protocol, a block is stored in the blockchain ledger, containing the messages or results received from other participant nodes and / or computing devices, a hash value derived from the message or result, and the hash value of the preceding block in the blockchain ledger. This is sufficient to (1) verify the entire computation performed by the representative node P1 at that time and (2) continue the computation from the last round stored in the blockchain ledger. In an embodiment, the blockchain ledger module 230 of the representative node P1 implements step 502.
[0076] In step 503, the representative node P1 generates a computational proof of the output computation that conforms to the validation policy of the MPC request. In an embodiment, the computational proof is a computer-aided proof of a mathematical theorem (e.g., a proof by exhaustion) that provides proof that the result of a computation entails a particular theorem. The type of computational proof that can be utilized in embodiments of the present invention is not limited to any particular computational proof, and one of ordinary skill in the art should be able to determine a computational proof that is appropriate for a particular MPC protocol. In an example implementation, the computational proof is a proof that the computing system N1 has selected the device (e.g., 210A) of the representative node P1 as the representative of the blockchain network to respond to the MPC request. R In aspects of the present invention, proof of computation provides end-to-end proof of production of an output computation (e.g., based on data blocks recorded in at least one blockchain ledger).
[0077] In an exemplary implementation, the intermediate data d1 generated in each round (step) of the MPC protocol is verified by a smart contract at each representative node. The smart contract verifies the following items: (1) inputs selected by the representative node; (2) computations; (3) data transmitted to other nodes and / or other computing devices in the blockchain network; and (4) data received from other nodes and / or other computing devices in the blockchain network. Alternatively, this verification can be performed after each round of the MPC protocol. At the end of the MPC protocol, if all verifications are successful, the blockchain ledger records containing the network participants' certificates serve as proof of the validity of the MPC results / outputs. In an embodiment, the verification module 230 of the representative node P1 implements step 503.
[0078] Optionally, in step 504, the representative node P1 encrypts data included in the response to the MPC request (e.g., the output of the MPC protocol). In an embodiment, the encryption module 242 encrypts the data based on encryption information provided in the MPC request.
[0079] In step 505, the representative node P1 sends the generated MPC output (which may be encrypted) along with the proof of computation generated in step 503 to the computing system N in response to the MPC request. R In an embodiment, the representative module 240 of the representative node P1 implements step 505.
[0080] Steps 500 to 505 involve other participating representative nodes of other selected blockchain networks (e.g., other nodes in the blockchain network N) to jointly generate computations based on the computation function f. k It can be seen that the process is also executed by the representative node P2 of the computing system N. R From each of the selected participating blockchain networks, computing system N RThe MPC output is received in response to an MPC request received from the blockchain network. Similarly, other participating computing devices can perform the steps of FIG. 5, except that computing devices that are not part of the blockchain network cannot record the steps of the MPC protocol as data blocks in the blockchain ledger. The MPC protocol may be implemented by a small number of participants (e.g., two or more participants) or a large number of participants and is not limited to the examples described herein. In embodiments, the MPC output from each blockchain network is identical (i.e., a common output). In aspects, receiving the same MPC output from each of the selected blockchain networks can indicate successful completion of the MPC protocol.
[0081] 6 illustrates an exemplary three-step MPC protocol between representative nodes of three blockchain networks in accordance with an embodiment of the present invention. Each step illustrated in FIG. 6 can be performed in the collaborative computing environment 201 of FIG. 2 according to step 501 of FIG. 5.
[0082] In the example of Figure 6, a representative node P1 of a blockchain network interacts with other representative nodes P2 and P3 of other participating blockchain networks. R Each blockchain network that receives MPC requests from has a representative node (e.g., P1, P2, P3) that records sufficient intermediate data from the MPC protocol in a shared distributed blockchain ledger using blockchain transactions. This allows each blockchain network to validate the actions of the representative node (e.g., P1, P2, P3), improving the fault tolerance of the system.
[0083] Continuing with reference to FIG. 6, each of the representative nodes P1, P2, and P3 communicates with each other using an inter-network data sharing protocol. It should be understood that various inter-network data sharing protocols may be utilized in accordance with embodiments of the present invention, and the present invention is not intended to be limited to a specific inter-network data sharing protocol. As used herein, the term "inter-network data sharing protocol" refers to an established set of rules that dictates how data is formatted, transmitted, and received between blockchain networks. Each of the representative nodes P1, P2, and P3 generates data d1, d2, and d3 necessary to perform inter-network calculations. For example, in step 1, the representative node P1 generates intermediate data X d1, d2, and d3 to be utilized by the respective representative nodes P1, P2, and P3. 11 , X 12 , X 13 and generates respective outputs 600A, 600B, and 600C in step 2 of the MPC protocol.
[0084] In an example implementation, each step of the MPC protocol is performed by representative nodes P1, P2, and P3, and each representative node P1, P2, and P3 signs the output. The output is then accepted by another of the representative nodes P1, P2, and P3 only if it is accompanied by sufficient signatures according to the verification policy of the MPC request. In an embodiment, the verification policy is an authentication policy that expresses a trust assumption about the origin of a particular message. If a message is accompanied by sufficient signatures that satisfy this policy, the message is considered authentic. In an example implementation, each participant (through representative nodes P1, P2, and P3) uses the same authentication policy.
[0085] For example, in transaction 602, the representative node P3 sends intermediate data X 31 The output of X is stored in the shared blockchain ledger of P3 as proof. 31 The representative node P1 then sends the intermediate output X 31to generate another intermediate output (Y 11 , Y 12 , Y 13 ) can be calculated / generated. 13 is then sent from representative node P1 to representative node P3 in transaction 604 and can be used in the calculation in step 3. The final MPC output of each representative node P1, P2, P3 obtained from the calculations in steps 1 to 3 is represented by z. In an embodiment, at each step, the representative node calculates a proof that the next message was calculated correctly. If this proof is a zero-knowledge proof (ZKP), the proof can be communicated to other MPC participants (other representative nodes). Otherwise, other nodes forming the representative can verify the proof, and a signature is attached to the next message (the executed policy).
[0086] According to an embodiment of the present invention, input authenticity ensures that participants (via their representative nodes) are participating in the MPC protocol using the appropriate input (e.g., X1). To achieve this, an authentication method is applied to the function f being computed. In one example, the function computed by the participating blockchain networks is f(x_1, ... x_n). Instead of computing f, each participating blockchain network computes F (via its representative node). Each input x_i consists of data x_i' and a set of signatures for x_i'. For each i, F has a verification policy, and the policy is checked against the attached signatures. For each input, if the corresponding verification policy is satisfied, the computation continues by computing f. In this way, the inputs remain private to each participating blockchain network, while all participating blockchain networks receive assurance that their inputs to f are authenticated.
[0087] 7 is a workflow diagram illustrating a communication protocol that protects data privacy among participants in a collaborative computing process in accordance with an embodiment of the present invention. More specifically, FIG. 7 illustrates a process for a computing system N R Demand node P R(e.g., for the client device 208A), a first representative node P1 of the first blockchain network N1, a second representative node N i The intermediate representative node P i , and another blockchain network N k The final representative node P k As shown, in blocks 700A and 700B, representative nodes P1, P i , and P k The network uses a data sharing protocol to confirm the intermediate MPC results. In this example, a minimum number of parties / blockchain nodes are required to comply with the validation policy. In the example of Figure 7, in 701, the first representative node P1 receives certificates from the minimum number of nodes in the first blockchain network N1, and in 702, the intermediate representative node P i is the second blockchain network N i 703, the final representative node P k Other blockchain networks k Receive certificates from the minimum required number of nodes in the contributing blockchain network N1, N i , and N k Each of the requesting nodes P contributes to the MPC protocol without knowing each other's private data using the data privacy-preserving communication protocol shown in FIG. R verifies the certificate and accepts the result with a 704.
[0088] Figure 8 illustrates an exemplary system architecture for implementing the methods of Figures 4 and 5 in accordance with an embodiment of the present invention. The steps illustrated in Figure 8 may be performed in the environment of Figure 2 and are described with reference to elements illustrated in Figure 2.
[0089] In the example of FIG. 8, the client device 208A sends an MPC request (query) to selected blockchain networks N1 and N2. k, where the MPC protocol is implemented in each of the blockchain networks N1 and N2, as shown in 800. k The selected representative nodes P1 and P k In this example, the client device 208A is connected to a computing system N in the peer network 802. R 8 includes one or more software applications 804 (e.g., request module 220, smart contract 806, and blockchain ledger 808) configured to generate and transmit MPC requests. Generally, a smart contract includes a computer program or transaction protocol intended to automatically perform, control, or record legally relevant events and actions in accordance with the terms of a contract or agreement. Smart contract 806 of FIG. 8 enables client device 208A to generate data proof verification 810 and MPC result integrity verification 811. In an example implementation, blockchain ledger 808 provides storage of participating network identities 812, remote data validation policies 813, and MPC results 814.
[0090] In response to receiving the MPC request from the client device 208A, the selected representative nodes P1 and P k The representative nodes P1 and P2 jointly execute the MPC protocol represented at 820, computing the function f using multiple steps or rounds of computation and generating intermediate MPC protocol outputs 822. Upon completion of the MPC protocol 820, the representative nodes P1 and P2 k Each of the representative nodes P1 and P2 sends the final MPC output 824 to the requesting client device 208A along with proof verification 826A, 826B of the data, respectively. k The representative nodes P1 and P2 record the outputs and associated proofs from the MPC rounds shown at 828A and 828B (e.g., in a blockchain ledger) and generate consistency verifications 830A and 830B of the respective MPC results.k The representative nodes P1 and P2 store the identification information 832A and 832B of the participating networks and the remote data verification policies 834A and 834B. k As shown in 836A and 836B, each representative node P1 receives input from other representative nodes and sends output to other representative nodes during the MPC protocol. It also generates concise correctness proofs of the output as shown in 838A and 838B. In the implementation example, data proof verification 826A and 826B are used to confirm the correctness of data obtained through data sharing between networks, and MPC result consistency verification 830A and 830B are used to verify the correctness of data obtained through data sharing between networks. k is used to ensure that the MPC protocol steps have been executed correctly using the local ledger state and data obtained from other participating networks through inter-network data sharing.
[0091] Based on the above, it can be seen that embodiments of the present invention provide the following features: (1) authentication: other participants can authenticate messages originating from the blockchain network (where the blockchain network appears as a single logical entity); (2) fungibility / durability: it doesn't matter which blockchain nodes form a single logical entity that participates in the MPC protocol (nodes in a blockchain network can change even while the MPC protocol is running); (3) accountability: nodes in a blockchain network that form a single logical entity are accountable; (4) input verifiability: the blockchain network can verify that the output X1 actually originated from its blockchain ledger; (5) result authentication: the party that triggered the computation has the result of the computation authenticated by the participating blockchain network; and (6) interoperability between decentralized and centralized systems as MPC protocol participants.
[0092] In embodiments, a service provider may offer to perform the processes described herein. In this case, the service provider may build, maintain, deploy, support, etc., the computer infrastructure that performs the process steps of the present invention for one or more customers. These customers may be, for example, any technology company. In return, the service provider may receive compensation from the customer based on a subscription and / or fee agreement and / or the service provider may receive compensation from the sale of advertising content to one or more third parties.
[0093] In yet additional embodiments, the present invention provides a computer-implemented method over a network. In this case, a computer infrastructure, such as computer 101 of FIG. 1, may be provided, and one or more systems for performing the processes of the present invention may be acquired (e.g., built, purchased, used, modified, etc.) and deployed to the computer infrastructure. To this extent, deploying a system may include one or more of the following: (1) installing program code from a computer-readable medium onto a computing device, such as computer 101 of FIG. 1; (2) adding one or more computing devices to the computer infrastructure; and (3) incorporating and / or modifying one or more existing systems of the computer infrastructure to enable the computer infrastructure to perform the processes of the present invention.
[0094] The description of various embodiments of the present invention is presented for illustrative purposes and is 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 selected to best explain the principles of the embodiments, practical applications, or technical improvements of the technology found in the market, or to enable others skilled in the art to understand the embodiments disclosed herein.
Claims
1. a computing system identifying selected blockchain networks and selected computing devices that perform multi-party computation (MPC) based on indices of the plurality of blockchain networks and computing devices that indicate types of data available by each of the plurality of blockchain networks and computing devices; generating an MPC request from the computing system, the MPC request including a validation policy defining at least one computational function to be jointly executed by the selected blockchain network and the selected computing device, data required for the at least one computational function from each of the selected blockchain network and the selected computing device, and at least one validation protocol to be executed by each of the selected blockchain network and the selected computing device; transmitting the MPC request to each of the selected blockchain networks and the selected computing devices via a network connection; and receiving, by the computing system, a response from the selected blockchain network representative computing node and a response from the selected computing device, wherein each of the responses includes: an MPC output of an MPC protocol executed by the selected blockchain network and the selected computing device to jointly compute the at least one computational function on respective inputs of the selected blockchain network and the selected computing device while keeping each of the inputs private from one another and from the computing system; and Computational proof based on said verification policy Contains A method for providing the above.
2. 10. The method of claim 1, further comprising: the computing system verifying the computational proof of each of the responses using a smart contract.
3. 3. The method of claim 2, wherein the selected computing device includes a representative computing node of another selected blockchain network, and the selected blockchain network includes at least two blockchain networks such that at least three selected blockchain networks participate in the MPC, and in each of the selected blockchain networks, the smart contract validates: data input selected by one of the representative computing nodes; calculation of the MPC output; data communicated by said one of the representative computing nodes to the other of the representative computing nodes; and data received by said one of the representative computing nodes from the other of the representative computing nodes.
4. 2. The method of claim 1, wherein the MPC output from the selected blockchain network and the MPC output from the selected computing device are identical and have a common output.
5. 5. The method of claim 4, further comprising the computing system determining the validity of the MPC output as a result of determining that the selected blockchain network and each of the selected computing devices provided the common output, wherein the common output proves the validity of the MPC output.
6. 2. The method of claim 1, wherein the MPC output is encrypted based on information provided in the MPC request, the method further comprising the computing system decrypting the MPC output based on the information.
7. 2. The method of claim 1, further comprising generating a computation result by the computing system performing at least one computation using the MPC output from the selected blockchain network or the MPC output from the selected computing device.
8. 10. The method of claim 1, wherein the computing system is a node of another blockchain network, the method further comprising the computing system updating its blockchain ledger based on the received MPC output.
9. 2. The method of claim 1, wherein in the selected blockchain network, proof of validation is based on recorded MPC protocol steps for the MPC protocol executed between the representative computing node of the selected blockchain network and the selected computing device.
10. The method of claim 1 , wherein the computing system comprises software provided as a service in a cloud environment.
11. 1. A computer program product comprising one or more computer-readable storage media having program instructions collectively stored thereon, the program instructions comprising: Sending a multi-party computation (MPC) request to each of a plurality of blockchain networks, the MPC request including a validation policy defining at least one computation function to be jointly executed by the plurality of blockchain networks, data inputs required for the at least one computation function, and at least one validation protocol to be executed by each of the plurality of blockchain networks; and receiving a response from a representative computing node of each of the plurality of blockchain networks, wherein each of the responses comprises: MPC output; and Computational proof based on said verification policy Contains It is possible to do so as wherein the MPC output is computed jointly by the multiple blockchain networks using an MPC protocol, while keeping the raw data of each of the multiple blockchain networks private from one another; and Here, the MPC output is calculated from the raw data of the multiple blockchain networks without disclosing it. Computer program products.
12. 12. The computer program product of claim 11, wherein the program instructions are further executable to verify the proof of computation for each of the responses using a smart contract, the proof of computation providing end-to-end proof of joint computation of the MPC output by the multiple blockchain networks using the MPC protocol.
13. 13. The computer program product of claim 12, wherein, in each of the plurality of blockchain networks, the smart contract validates: data input selected by one of the representative computing nodes; calculation of the MPC output; data communicated by said one of the representative computing nodes to another of the representative computing nodes; and data received by said one of the representative computing nodes from others of the representative computing nodes.
14. 12. The computer program product of claim 11, wherein each of the plurality of blockchain networks selects the raw data to use in the MPC protocol based on the data input in the MPC request, thereby ensuring the validity of the input to the MPC protocol.
15. 12. The computer program product of claim 11, wherein the program instructions are further executable to determine the validity of the MPC output as a result of determining that each of the plurality of blockchain networks provided a common output, wherein the common output proves the validity of the MPC output.
16. 12. The computer program product of claim 11, wherein the MPC output is encrypted based on information provided in the MPC request, and the program instructions are further executable to decrypt the MPC output based on the information.
17. 12. The computer program product of claim 11, wherein the program instructions are further executable to perform at least one computation utilizing the MPC output from one of the plurality of blockchain networks, thereby generating a computation result.
18. 1. A system comprising: a set of processors; one or more computer-readable storage media; and program instructions collectively stored on the one or more computer-readable storage media, the program instructions causing at least one representative computing device of a first blockchain network to: receiving a multi-party computation (MPC) request from a remote computing system, the MPC request including a validation policy defining at least one computational function to be jointly executed by the first blockchain network and a second blockchain network, data inputs required for the at least one computational function, and at least one validation protocol to be executed by each of the first blockchain network and the second blockchain network; Initiating and executing steps of an MPC protocol with the second blockchain network to jointly generate an MPC output based on the computation function in the MPC request and in accordance with the validation policy of the MPC request; wherein the MPC output is computed jointly by the first blockchain network and the second blockchain network using the MPC protocol, while keeping the respective raw data of the first blockchain network and the second blockchain network private from each other and not disclosing it to the remote computing system; and wherein each of the first blockchain network and the second blockchain network selects the raw data to be used in the MPC protocol based on the data input in the MPC request, thereby ensuring the validity of the input to the MPC protocol; and Transmitting the MPC output to the remote computing system in response to the MPC request. The system is viable as follows:
19. The program instructions further include, by the at least one representative computing device of the first blockchain network: generating a computation proof of said computation function; and Transmitting the proof of computation to the remote computing system.
20. The system of claim 18, wherein the system is operable to:
20. 20. The system of claim 18, wherein the program instructions are further executable by the at least one representative computing device of the first blockchain network to encrypt data of the MPC output based on encrypted data provided in the MPC request.