Collaborative computing across block chain networks
By generating and sending multi-party computing requests in the computing system, the security and privacy issues of collaborative computing between multiple blockchain networks and computing devices are solved, and secure computing output and verification are achieved.
Patent Information
- Application Number
- CN202380062248.8
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Priority Date
- 2022-09-01
- Filing Date
- 2023-07-12
- Publication Date
- 2025-04-11
AI Technical Summary
The prior art is difficult to securely collaborate in computing between multiple blockchain networks and computing devices, and it is difficult to ensure the privacy and confidentiality of data.
By generating a multi-party computing (MPC) request in the computing system, specifying the computational functions to be executed, the required data and verification policies, and sending the request to the selected blockchain network and computing device, receiving a response and generating computational evidence based on the verification policy.
It realizes secure multi-party computing across blockchain networks and computing devices, maintains the privacy of input data, and ensures the correctness and credibility of the computational output through computational evidence verification.
Smart Images

Figure CN119817058A_ABST
Abstract
Description
Background Art
[0001] Aspects of the present invention relate generally to cryptography, and more particularly, to collaborative computing across blockchain networks.
[0002] Secure multi-party computation, also known as secure computation, or multi-party computation (MPC), is a cryptographic tool that enables parties to jointly compute a function on their inputs while keeping those inputs (e.g., raw data) private. In MPC, a given number of participants P1, P2, ..., P N , each with private data, namely D1, D2, ..., D N The participant wishes to compute the value of a public function f on the private data: f(D1, D2, ..., D N ), while keeping their own inputs secret. Various MPC protocols exist, including SPDZ (pronounced "Speedz"), which is the name of a common MPC protocol, and garbled circuit protocols, which allow two parties to compute securely.
[0003] Generally, blockchain is a type of distributed ledger technology (DLT) that includes a shared, immutable ledger that facilitates the process of recording transactions and tracking assets in a computer network. Assets can be tangible or intangible. Permissioned DLT / blockchain networks store data records in a shared ledger that is inaccessible to external entities by design. Blockchain is beneficial for delivering information because it provides instant, shared, and fully transparent information stored on an immutable ledger that can only be accessed by permissioned network members.
[0004] Typically, blockchains work by recording each transaction that moves an asset as a "block" of data. Each block can record information about a transaction (e.g., who, what, when, where, and how) and is connected to the blocks before and after it, forming a chain of data as an asset moves from one place to another or ownership changes hands. Blocks are stored across multiple computers (decentralized storage). The blocks are synchronized across multiple locations and are tamper-proof. The blocks confirm the exact time and order of transactions and are securely linked together to prevent any block from being altered and to prevent blocks from being inserted between two existing blocks. Summary of the invention
[0005] In a first aspect of the invention, there is a computer-implemented method, comprising: identifying, by a computing system, a selection blockchain network and a selection computing device to perform a multi-party computation (MPC) based on an index of a plurality of blockchain networks and computing devices, the index indicating a type of data that can be obtained by each of the plurality of blockchain networks and computing devices; generating, by the computing system, an MPC request, the MPC request including at least one computing function to be collaboratively performed by the selection blockchain network and the selection computing device, data required for the at least one computing function from each of the selection blockchain network and the selection computing device, and defining a computational function to be collaboratively performed by the selection blockchain network and the selection computing device. each executing at least one verification protocol; sending, by the computing system, the MPC request to each of the selected blockchain network and the selected computing device via a network connection; and receiving, by the computing system, a response from a representative computing node of the selected blockchain network and a response from the selected computing device, wherein each of the responses comprises: 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 the inputs of the corresponding selected blockchain network and the selected computing device while keeping the corresponding inputs private to each other and to the computing system; and a computational evidence based on the verification strategy.
[0006] In another aspect of the present invention, a computer program product is provided, comprising one or more computer-readable storage media having program instructions stored together on the one or more computer-readable storage media. The program instructions are executable to: send a multi-party computation (MPC) request to each of a plurality of blockchain networks, the MPC request including at least one computation function to be collaboratively performed by the plurality of blockchain networks, data input required for the at least one computation function, and a verification strategy defining at least one verification protocol to be performed by each of the plurality of blockchain networks; and receive responses from corresponding representative computing nodes of the plurality of blockchain networks, wherein each of the responses includes: an MPC output; and a computational evidence based on the verification strategy, wherein the MPC output is jointly calculated by the plurality of blockchain networks using the MPC protocol while keeping the original data of the corresponding plurality of blockchain networks private to each other, and wherein the MPC output is calculated from the original data from the plurality of blockchain networks, but the original data from the plurality of blockchain networks is not disclosed.
[0007] In another aspect of the present invention, there is a system comprising a processor group, one or more computer-readable storage media, and program instructions stored together on the one or more computer-readable storage media. The program instructions can be executed by at least one representative computing device of a first blockchain network to: receive a multi-party computation (MPC) request from a remote computing system, the MPC request including at least one computation function to be collaboratively performed by the first blockchain network and the second blockchain network, data input required for the at least one computation function, and a verification policy defining at least one verification protocol to be performed by each of the first blockchain network and the second blockchain network; initiate and execute the steps of the MPC protocol with the second blockchain network, thereby collaboratively generating an MPC output based on the computation function in the MPC request and complying with the verification policy of the MPC request, wherein the MPC output is generated by the first blockchain network and the second blockchain network. The chain networks are jointly calculated using the MPC protocol, while keeping the original data of the corresponding first blockchain network and the second blockchain network private to each other, and the MPC output is calculated from the original data from the first blockchain network and the second blockchain network, but the original data from the first blockchain network and the second blockchain network are not disclosed to the remote computing system, and wherein each of the first blockchain network and the second blockchain network selects the original data for 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; and in response to the MPC request, sending the MPC output to the remote computing system. BRIEF DESCRIPTION OF THE DRAWINGS
[0008] In the following detailed description, with reference to the various figures mentioned, aspects of the invention are described by way of non-limiting examples of exemplary embodiments of the invention.
[0009] Figure 1 A computing environment according to an embodiment of the invention is shown.
[0010] Figure 2 A block diagram of an exemplary collaborative computing environment according to aspects of the present invention is shown.
[0011] Figure 3 Communications between participating networks according to aspects of the invention are shown.
[0012] Figure 4 A flow chart of an exemplary MPC method from the perspective of a requesting computing system is shown in accordance with aspects of the present invention.
[0013] Figure 5A flow chart of an exemplary MPC method from the perspective of participating blockchain networks according to aspects of the present invention is shown.
[0014] Figure 6 An exemplary three-step MPC protocol between representative nodes of three blockchain networks according to aspects of the present invention is shown.
[0015] Figure 7 is a workflow diagram illustrating a data privacy preserving communication protocol between participants of a collaborative computing process according to aspects of the present invention.
[0016] Figure 8 It shows that various aspects of the present invention are implemented Figure 4 and 5 An exemplary system architecture for the method of FIG. DETAILED DESCRIPTION
[0017] Aspects of the present invention generally relate to cryptography, and more particularly to collaborative computing across blockchain networks. In an embodiment, a system and method are provided for secure multi-party computation (MPC) between contributing networks (e.g., licensed blockchain networks) and / or computing devices to compute data required by a requesting / receiving network, wherein intermediate outputs are verified between contributing networks and / or computing devices, and the final output is verified by the requesting / receiving network via cross-network trust data sharing. In an embodiment, each participating blockchain network includes a blockchain ledger that records each MPC protocol transaction movement as a "block" of data. Each block can record information about a transaction (e.g., a computation) and is connected to blocks before and after it, thereby forming a data chain as the MPC protocol proceeds.
[0018] Permitted DLT / blockchain networks store data records in a shared ledger that is inaccessible to external entities by design. However, data recorded in one network is often critical for implementing smart contracts in a different network in a trustworthy manner. The term "smart contract" used here refers to a computer program or transaction protocol that is designed to automatically execute, control, or record legally relevant events and actions according to the terms of a contract or agreement. Sharing schemes have been proposed to allow data to be shared between blockchains with evidence of authenticity and provenance. However, existing data sharing schemes provide limited privacy and confidentiality guarantees for complex multi-network data queries and responses. A network (or a party within a network) may be reluctant to share raw data with external entities or other networks, but multiple networks or parties may be willing to provide information aggregated or derived from individual raw data.
[0019] Embodiments of the present invention provide an improved cryptographic tool that supports private computing across distributed ledger networks (distributed blockchain networks) without relying on trusted network agents or third parties. In order to overcome the problems that arise in the field of computer networks, the systems and methods discussed herein are necessarily rooted in computer technology. Specifically, embodiments of the present invention solve the problem of obtaining desired computing outputs based on private data distributed across multiple licensed networks and / or computing devices.
[0020] As will be appreciated, 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) a party (individual, business) that owns assets across multiple networks (central bank digital currencies, stocks, bonds, cryptocurrencies, etc.) may need to prove information about its aggregate holdings (e.g., total net worth, outstanding debt, capital adequacy) to auditors, tax authorities, lenders, or other entities without revealing detailed holdings on each of those networks; (2) industry or sector-wide reports (typically published by regulators or industry groups) may need to derive information from multiple networks while ensuring privacy and confidentiality in addition to accuracy and completeness; and (3) parties may need to prove regulatory compliance to regulators and auditors regarding transactions within and across their networks without revealing the detailed history of each transaction.
[0021] The following exemplary scenario illustrates the need for improved cryptographic tools according to an embodiment of the present invention. 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. The smart contract in N1, which contains a limited authority (e.g., a European banking institution), needs to execute different rules based on whether Alice's total account balance (i.e., the sum of the balances in N2 and N3) exceeds a certain amount X. Neither N2 nor N3 wants to reveal Alice's respective account balances to other networks, but is willing to share information in a privacy-preserving manner.
[0022] In the context of blockchain networks, information resides across multiple networks, and the main constraints will be to ensure that: the requester is not aware of the original information (e.g., original data) in any network; the network is not aware of the original information (e.g., original data) residing in other networks; and the requester can obtain guarantees that the aggregate insights are calculated correctly and the inputs to the aggregation are 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 accessible only to authorized parties. Implementations of the present invention provide a way to extract more value from a data silo by combining the stored data of the data silo with external data in a secure manner using MPC. In an implementation, participants in collaborative computations across a blockchain network can access the blockchain software, such as through The project is an open source blockchain and related tools available through the Linux Foundation, which was launched in December 2015. is a registered trademark of The Linux Foundation.
[0024] Implementations of the present invention enable separate permissioned blockchain networks to be used together as input providers for MPC. This is different from existing MPC protocols, in which input providers are individuals on the network. Embodiments of the present invention advantageously provide end-to-end provenance for participants of the MPC protocol and for non-participant recipients. The term "end-to-end provenance" as used herein refers to the complete history of one or more computations performed by MPC protocol participants, or the complete history of how the MPC protocol produces computational outputs, where, without revealing additional information about the dedicated computational inputs, the history also serves as a guarantee of the validity of the computational outputs for non-participants of the MPC. In some aspects, a method provides a guarantee of the validity of the computational inputs for non-participants receiving the MPC outputs, and provides a guarantee of the correctness of the outputs for non-participants (and multiple participants). In addition, embodiments of the present invention ensure privacy by adapting the MPC protocol to a trusted cross-ledger data sharing scheme in a manner that does not require parties (e.g., nodes of the blockchain) to reveal raw data to each other for computation and verification purposes. Aspects of the present invention also provide recovery from failures of network members running the MPC protocol.
[0025] In an embodiment, a method for obtaining data from a user's perspective includes: R Query participating / contributing networks (N1, ..., N k ) About the query / response computing system N R The query includes (i) a function and (ii) a validation strategy for each contributing network; the query / response computing system N R Receive results (MPC outputs) and evidence from the corresponding representatives of each participating / contributing network; by the query / response computing system N R Verify the evidence from each corresponding representative through the smart contract; in response to the verification evidence, the query / response computing system N R Accept the result; optionally, by the query / response computing system N RFurther calculations are performed based on the results; optionally, by the query / response calculation system N R decrypt the result; and by the query / response computing system N R Update the ledger record based on the results and / or further calculations.
[0026] In an embodiment, a method from the perspective of a set of participating / contributing blockchain networks includes, for each blockchain network in the set of participating / contributing blockchain networks: receiving a request for data (MPC request) from a remote computing device by a computing device of the blockchain network; selecting a representative Pi by a computing device of the blockchain network, wherein the selection may be arbitrary and replaceable; initiating and running an MPC protocol by the representative Pi to generate a computational output while ensuring fault tolerance and verification by other network members, wherein the MPC protocol includes generating and recording a concise proof of computational correctness of the computational output in a blockchain ledger, and communicating between the other network members using a cross-network data sharing protocol; and providing, by the representative Pi, in response to the data request, a computational output having a proof of computational correctness of the computational output to the remote computing device.
[0027] Various aspects of the present disclosure are described by narrative text, flow charts, block diagrams of computer systems, and / or block diagrams of machine logic included in computer program product (CPP) embodiments. With respect to any flow chart, depending on the technology involved, the operations may be performed in an order different from the order shown in a given flow chart. For example, again depending on the technology involved, two operations shown in consecutive flow chart blocks may be performed in reverse order, as a single integrated step, simultaneously, or in a manner that at least partially overlaps in time.
[0028] Computer program product embodiments ("CPP embodiments" or "CPP") are terms used in this disclosure to describe any collection of one or more storage media (also referred to as "media") collectively included in a collection of one or more storage devices that collectively include machine-readable code corresponding to instructions and / or data for performing the computer operations specified in a given CPP claim. A "storage device" is any tangible device that can hold and store instructions for use by a computer processor. Without limitation, a computer-readable storage medium may be 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: magnetic disks, hard disks, random access memories (RAM), read-only memories (ROM), erasable programmable read-only memories (EPROM or flash memory), static random access memories (SRAM), compact disk read-only memories (CD-ROM), digital versatile disks (DVD), memory sticks, floppy disks, mechanical encoding devices (such as punch cards or pits / land formed in 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, should not be construed as storing in the form of transient signals per se, such as radio waves or other freely propagating electromagnetic waves, electromagnetic waves propagating through waveguides, light pulses transmitted 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 is typically moved at certain occasional points in time during normal operation of the storage device, such as during access, defragmentation, or garbage collection, but this does not make the storage device transient because the data is not transient while it is stored.
[0029] The computing environment 100 includes an example of an environment for executing at least some of the computer codes involved in performing the method of the present invention such as cross-blockchain network collaborative computing 200. 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 a processing circuit 120 and a cache 121), a communication structure 111, a volatile memory 112, a permanent storage device 113 (including an operating system 122 and a block 200, as described above), a peripheral device set 114 (including a user interface (UI) device set 123, a storage device 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 coordination module 141 , a host physical machine set 142 , a virtual machine set 143 , and a container set 144 .
[0030] Computer 101 may take the form of a desktop computer, laptop computer, tablet computer, smart phone, smart watch or other wearable computer, mainframe computer, quantum computer, or any other form of computer or mobile device now known or developed in the future that is capable of running programs, accessing a network, or querying a database such as remote database 130. As is well known in the art of computer technology, and depending on the technology, the performance of computer-implemented methods may be distributed among multiple computers and / or among multiple locations. On the other hand, in this presentation of computing environment 100, the detailed discussion focuses on a single computer, particularly computer 101, to keep the presentation as simple as possible. Computer 101 may be located in the cloud, even though it is not yet fully understood. Figure 1 1 is not shown in the cloud, on the other hand, computer 101 need not be in the cloud except to any extent that can be positively indicated.
[0031] Processor set 110 includes one or more computer processors of any type known now or to be developed in the future. Processing circuit 120 may be distributed over multiple packages, such as multiple cooperating integrated circuit chips. Processing circuit 120 may implement multiple processor threads and / or multiple processor cores. Cache 121 is a memory located in the processor chip package and is typically used for data or code that should be quickly accessed by threads or cores running on processor set 110. Cache memory is typically organized into multiple levels based on relative proximity to the processing circuit. Alternatively, some or all of the caches of the processor set may be located "off chip". In some computing environments, processor set 110 may be designed to work with qubits and perform quantum computing.
[0032] Computer-readable program instructions are typically loaded onto the computer 101 to cause the processor set 110 of the computer 101 to perform a series of operating steps to implement a computer-implemented method, so that the instructions so executed will instantiate the method specified in the flowchart and / or narrative description of the computer-implemented method included in this document (collectively referred to as the "method of the present invention"). These computer-readable program instructions are stored in various types of computer-readable storage media, such as cache 121 and other storage media discussed below. The program instructions and related data are accessed by the processor set 110 to control and direct the execution of the computer-implemented method. In the computing environment 100, at least some of the instructions for performing the method of the present invention may be stored in a block 200 in a permanent storage device 113.
[0033] The communication fabric 111 is the signal conduction paths that allow the various components of the computer 101 to communicate with each other. Typically, the fabric is made up of switches and conductive paths, such as those that make up a bus, a bridge, physical input / output ports, etc. Other types of signal communication paths may be used, such as fiber optic communication paths and / or wireless communication paths.
[0034] The volatile memory 112 is any type of volatile memory now known or developed in the future. Examples include dynamic random access memory (RAM) or static RAM. Typically, the volatile memory 112 is characterized by random access, but this is not required unless affirmatively indicated. In the computer 101, the volatile memory 112 is located in a single package and is internal to the computer 101, but, alternatively or additionally, the volatile memory can be distributed in multiple packages and / or located externally relative to the computer 101.
[0035] Permanent storage 113 is any form of non-volatile storage for computers known now or developed in the future. The non-volatility of the memory means that the stored data is maintained regardless of whether power is supplied to the computer 101 and / or directly to the permanent storage 113. Permanent storage 113 can be a read-only memory (ROM), but typically at least a portion of the permanent storage allows the writing of data, the deletion of data, and the rewriting of data. Some common forms of persistent storage include disks and solid-state storage devices. Operating system 122 can take several forms, such as various known proprietary operating systems or operating systems of the open source portable operating system interface type using a kernel. The business function supply code included in box 200 typically includes at least some computer codes involved in executing the method of the present invention.
[0036] The peripheral device set 114 includes a set of peripheral devices of the computer 101. The data communication connection between the peripheral devices and other components of the computer 101 can be implemented in various ways, such as a Bluetooth connection, a near field communication (NFC) connection, a connection made by a cable (such as a universal serial bus (USB) type cable), a plug-in type connection (e.g., a secure digital (SD) card), a connection made through a local area communication network, and even a connection made through a wide area network such as the Internet. In various embodiments, the UI device set 123 may include components such as display screens, speakers, microphones, wearable devices (such as goggles and smart watches), keyboards, mice, printers, touchpads, game controllers, and tactile devices. The storage device 124 is an external storage device, such as an external hard drive, or a pluggable storage device, such as an SD card. The storage device 124 can be permanent and / or volatile. In some embodiments, the storage device 124 can take the form of a quantum computing storage device for storing data in the form of quantum bits. In embodiments where the computer 101 needs to have a large amount of storage (e.g., where the computer 101 locally stores and manages a large database), the 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. The IoT sensor set 125 consists of sensors that can be used in IoT applications. For example, one sensor may be a thermometer, while another sensor may be a motion detector.
[0037] The network module 115 is a collection of computer software, hardware, and firmware that allows the computer 101 to communicate with other computers via the WAN 102. The network module 115 may include hardware such as a modem or a Wi-Fi signal transceiver, software for packetizing and / or depacketizing data transmitted over a communication network, and / or web browser software for transmitting data over the Internet. In some embodiments, the network control function and the network forwarding function of the network module 115 are performed on the same physical hardware device. In other embodiments (e.g., embodiments utilizing software defined networks (SDN)), the control function and the forwarding function of the network module 115 are performed on physically separated devices, so that the control function manages several different network hardware devices. Computer-readable program instructions for executing a computer-implemented method can typically be downloaded to the computer 101 from an external computer or an external storage device via a network adapter card or a network interface included in the network module 115.
[0038] WAN 102 is any wide area network (e.g., the Internet) capable of transmitting computer data over non-local distances by any technology now known or developed in the future for transmitting computer data. In some embodiments, WAN 102 may be replaced and / or supplemented by a local area network (LAN) designed to transmit data between devices located in a local area (e.g., a Wi-Fi network). WANs and / or LANs typically include computer hardware such as copper transmission cables, fiber optic transmission, wireless transmission, 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 an enterprise operating computer 101), and may take any of the forms discussed above in connection with computer 101. EUD 103 typically receives useful and usable data from the operation of computer 101. For example, in the hypothetical case where computer 101 is designed to provide recommendations to an end-user, the recommendations would typically be transmitted from network module 115 of computer 101 to EUD 103 via WAN 102. In this manner, EUD 103 may display or otherwise present the recommendations 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 usable 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 recommendations based on historical data, the historical data may be provided to computer 101 from remote database 130 of remote server 104.
[0041] The 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 capabilities, without direct active management by users. Cloud computing typically utilizes the sharing of resources to achieve consistency and economy of scale. The direct and active management of the computing resources of the public cloud 105 is performed by computer hardware and / or software of the cloud coordination module 141. The computing resources provided by the public cloud 105 are typically implemented by virtual computing environments running on various computers that constitute the host physical machine set 142, which is the universe of physical computers in and / or available for the public cloud 105. Virtual computing environments (VCEs) typically take the form of virtual machines from a virtual machine set 143 and / or containers from a container set 144. It should be understood that these VCEs can be stored as images and can be transferred between various physical machine hosts as images or after instantiation of the VCEs. Cloud orchestration module 141 manages the transfer and storage of images, deploys new instantiations of VCEs, and manages active instantiations of VCE deployments. Gateway 140 is a collection of computer software, hardware, and firmware that allows public cloud 105 to communicate over WAN 102 .
[0042] Some further explanation of a virtualized computing environment (VCE) will now be provided. A VCE can be stored as an "image". A new active instance of the VCE can be instantiated from the image. Two common types of VCEs are virtual machines and containers. Containers are VCEs that use operating system-level virtualization. This refers to an operating system feature in which the kernel allows the existence of multiple isolated user space instances, called containers. From the perspective of the programs running in them, these isolated user space instances typically behave like actual computers. Computer programs running on a normal operating system can utilize all of the resources of that computer, such as connected devices, files and folders, network shares, CPU power, and quantifiable hardware capabilities. However, programs running within a container can only use the contents of the container and the devices assigned to the container, a feature known as containerization.
[0043] The private cloud 106 is similar to the public cloud 105, except that the computing resources are only available to a single enterprise. Although the private cloud 106 is depicted as communicating with the WAN 102, in other embodiments, the private cloud can be completely disconnected from the Internet and can only be accessed through a local / private network. A hybrid cloud is a combination of multiple clouds of different types (e.g., private, community, or public cloud types), typically implemented by different vendors. Each of the multiple clouds remains an independent and discrete entity, but the larger hybrid cloud architecture is bound together by standardized or proprietary technologies that enable coordination, management, and / or data / application portability between the multiple constituent clouds. In this embodiment, the public cloud 105 and the private cloud 106 are both part of a larger hybrid cloud.
[0044] Figure 2 A block diagram of an exemplary collaborative computing environment 201 according to aspects of the present invention is shown. The collaborative computing environment 201 may be located at Figure 1 In the computing environment 100, in an embodiment, the collaborative computing environment 201 includes a network 202 (e.g., Figure 1 WAN 102), which enables communication between multiple client devices represented by 208A-208D and multiple contributor networks represented by contributor networks 204 and 206.
[0045] Client devices 208A-208D may each include Figure 1 101 or its components, and can be used alone or as part of a network of computing devices (e.g., a permissioned blockchain network). In an implementation, each of the client devices 208A-208D comprises a computing node in a cloud computing environment. In an embodiment, the client devices 208A-208D include a computer that provides services to one or more paying customers (e.g., via Figure 1 In an embodiment of the present invention, each of the client devices 208A-208D contains computer readable program instructions (e.g., Figure 1 ), so that the processor group (e.g., Figure 1 The processor set 110) performs a series of operating steps to implement the computer-implemented method discussed in more detail below.
[0046] The computer-readable program instructions of the client devices 208A-208D may be stored as one or more modules on various types of computer-readable storage media (e.g., Figure 1 For illustrative purposes, client device 208A is shown as a requesting node N of collaborative computing environment 201. R, which is configured to initiate cross-blockchain network collaborative computing according to an embodiment of the present invention. As an example, the client device 208A is depicted as including: a request module 220, which is configured to generate a data query / request (MPC request) and send it to multiple contributor networks 204 and 206 (e.g., blockchain networks); an index module 221, which is configured to accommodate and manage information about participants in the environment 201; a data module 222, which is configured to decrypt incoming results in response to the data query / request and / or utilize outputs from the results in one or more calculations to generate new outputs; a verification module 223, which is configured to verify the input results (MPC outputs); and a ledger module 224, which is configured to update and manage the ledger data of the ledger (e.g., blockchain ledger) of the client device 208A.
[0047] Contributor network 204 may include a plurality of computer resources, including, for example, computer devices 210A-210D. Each of computer devices 210A-210D may include Figure 1 101 or a component thereof. In implementation, computer devices 210A-210D are participants in a permissioned blockchain network. In various aspects of the invention, each of computer devices 210A-210D contains computer-readable program instructions so that a series of operating steps are executed by a processor group (e.g., Figure 1 ) is executed by a processor set 110), thereby implementing the computer-implemented method discussed in more detail below.
[0048] The computer-readable program instructions of the computer devices 210A-210D may be stored as one or more modules on various types of computer-readable storage media (e.g., Figure 1 As an example, the computer device 210A is depicted as including: a blockchain ledger module 230 configured to update and maintain the blockchain ledger of the computer device 210A; a data module 231 configured to access data (raw data) in one or more storage modules 250 for use as computational input in the MPC protocol; and a representative module 240 configured to execute the MPC protocol in response to an incoming data request.
[0049] like Figure 2As described in the example of , the representative module 240 may include a query module 241, which is configured to process input data queries / requests and initiate an appropriate MPC protocol in response to the data queries / requests; an encryption module 242, which is configured to encrypt the output (MPC output) of the computer device 210A based on the encryption information provided in the data query / request; and a verification module 243, which is configured to generate and provide a computational proof with the output in response to the data query / request. It should be understood that other computer devices 210B-210D (blockchain nodes) in the contributor network 202 may perform the same functions and / or include the same modules as the exemplary computer device 210A.
[0050] Contributor network 206 may include a plurality of computer resources, including, for example, computer devices 210A'-210D'. Each of computer devices 210A'-210D' may include Figure 1 101 or a component thereof. In implementation, the computer devices 210A'-210D' are participants in a permissioned blockchain network. In an embodiment, each of the computer devices 210A'-210D' contains computer-readable program instructions so that a series of operating steps are performed by a processor group (e.g., Figure 1 ) is executed by a processor set 110), thereby implementing the computer-implemented method discussed in more detail below.
[0051] exist Figure 2 In the example of , computer device 210A' includes the same modules as computer device 210A and is configured to perform the same functions described above with respect to computer device 210A. It should be understood that other computer devices 210B'-210D' (blockchain nodes) in contributor network 202 may perform the same functions and / or include the same modules as exemplary computer device 210A'.
[0052] In an embodiment of the present invention, one of the computer devices 210A-210D of the contributor network 204 is selected as a representative node P1 to participate in the MPC protocol jointly executed by multiple contributor networks (e.g., contributor networks 204 and 206). Similarly, in an embodiment of the present invention, one of the computer devices 210A'-210D' of the contributor network 206 is selected as a representative node P2 to participate in the MPC protocol. Figure 2 In the example of , computer device 210A is selected as representative node P1 of contributor network 204, which is a first permissioned blockchain network, and computer device 210A' is selected as representative node P2 of contributor network 206, which is a second permissioned blockchain network.
[0053] Each of the client devices 208A-208D, the computer devices 210A-210D, and the computer devices 210A′-210D′ may include Figure 2 The modules shown may be more or less than the modules shown. In an embodiment, multiple individual 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 the collaborative computing environment 201 is not limited to Figure 2 The number shown, for example, may include additional participating networks (e.g., blockchain networks) in the collaborative computing environment 201. In practice, the collaborative computing environment 201 may include additional devices and / or networks; fewer devices and / or networks; different devices and / or networks; or different Figure 2 Different arrangements of devices and / or networks are shown.
[0054] Figure 3 Communications between participating networks according to aspects of the invention are shown. Figure 3 The components can be found in Figure 2 Executed in an environment with reference to Figure 2 The components depicted in are described.
[0055] exist Figure 3 In the example, client device 208A is the requesting computing system N R , which sends data to multiple participating networks N1, N2...N k (including for example Figure 2 Each of the contributor networks 204 and 206 of the present invention sends an MPC request or query 300 to initiate cross-blockchain network computation according to an embodiment of the present invention. The MPC request 300 includes a computation function f, which is generated by the participating networks N1-N k The data (eg, the original data from the storage module 250, 250') and the query Q are calculated, and the query Q indicates the participating networks N1-N k and from participating networks N1-N k Requested data. Each participating network N1-N k Cooperate with other participating networks to execute the MPC protocol to generate corresponding outputs d1, d2, ...d k In addition, each participating network N1-N k The final output generated by them based on the calculation function f is sent to the requesting computing system N R Thus, the requesting computing system N R Can generate a request computing system N R The final output D of the useful aggregated derived data can be obtained from different participating networks N1-N kDifferent data (eg, raw data) is required to perform the desired computation function f. Although the raw data may be private, the index module 221 may provide the requesting computing system N with the raw data. R Instructions are available from participating networks N1-N k The type of information obtained by each of the MPC requests 300 can be generated and sent to the appropriate participating networks N1-N necessary to perform the collaborative computation function f. k .
[0056] In an embodiment, a method for receiving a network (eg, a requesting computing system N) is provided. R ) system and method to obtain information from multiple contributing networks (N1, ..., N k ) obtains the aggregated data while ensuring: the validity of the input (from each network N1, ..., N k The input of the processing is valid according to the consistency rules of the network); the validity of the calculation (N R can verify that the processing is executed correctly); high availability (providing access to any single network member N1, ..., N during private computing k In the implementation, data confidentiality is ensured: (1) to prevent other networks (in this process, any participating network N1, ..., N k does not know any more information about the data in other participating networks); (2) guard the recipient network (N R Not aware of any participating networks N1, ..., N k ); and (3) confidentiality of results (contributing networks N1, ..., N k know nothing about the results except from their own description of the inputs and computation).
[0057] Figure 4 A flowchart of an exemplary MPC method from the perspective of a requesting computing system according to various aspects of the present invention is shown. The steps of the method may be Figure 2 Executed in an environment with reference to Figure 2 The components depicted in are described.
[0058] In step 400, the requesting node (hereinafter 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 a multi-party computation (MPC) request. Figure 2 In the example, the computing system N R Represented by client device 208A. In an embodiment, computing system N RDetermine which blockchain networks and / or computing devices from a list of possible networks and / or computing devices in an index to include in the MPC request, wherein the index associates a type of data with the listed networks and / or computing devices. In various aspects, the index of multiple blockchain networks and / or computing devices indicates a type of data available from each of the multiple blockchain networks and / or computing devices. Thus, based on the computing system N R The type of information required, computing system N R Based on the index, it can be determined which blockchain networks and / or computing devices to include in the MPC request. R It may be a requesting node that is part of a network such as a permissioned blockchain network, or it may be a separate computing system or device. In an embodiment, step 400 is implemented by the indexing module 221 of the client device 208A.
[0059] In step 401, the computing system N R Based on the determination of step 400, an MPC request or query (e.g., 300) is generated and sent to at least one selected participating blockchain network N1-N k (e.g., contributor networks 204, 208) and other selected participating blockchain networks or computing devices (e.g., 208B-208D). In an embodiment, computing system N R Based on the determination at step 400 and the information (e.g., address) from the indexing module 221, the MPC request is sent to the participating blockchain networks N1-N1 with the selected k and / or a network address associated with a selected computing device. R An MPC request is generated and sent to at least one node of the blockchain network and another participating computing device that is not part of the blockchain network.
[0060] In an embodiment, each MPC request includes information necessary for each participating blockchain network (e.g., 204, 206) and / or other selected computing devices to identify other participating blockchain networks and / or computing devices, as well as the type of information sought from each participating blockchain network and / or computing device, so that the representative nodes of each participating blockchain network and / or the selected computing devices can participate in the MPC protocol with each other. In an embodiment, the communication between the representative nodes and / or computing devices is performed using a cross-network communication protocol. It should be understood that various cross-network data sharing protocols can be used according to embodiments of the present invention, and the present invention is not intended to be limited to a specific cross-network data sharing protocol. The term "cross-network data sharing protocol" as used herein refers to a set of established rules that specify how to format, transmit and receive data (cross-network communication) between participating blockchain networks and / or computing devices so as to maintain the integrity of the underlying blockchain network and / or computing devices. In an embodiment, each round of calculation or step in the MPC protocol is performed collaboratively by the participating blockchain networks and / or selected computing devices, wherein each participating blockchain network performs its local transactions based on the local state in its ledger (blockchain ledger) and the data obtained from the cross-network communication. In an embodiment, transactions performed between participating blockchain networks constitute blockchain transactions recorded in corresponding distributed blockchain ledgers.
[0061] In an embodiment, each MPC request includes a request by at least one participating blockchain network N1-N during the MPC protocol. k At least one computing function f collaboratively computed by a node (e.g., computer device 210A-210D or 210A'-210D') and at least one other participating computing device (e.g., a node of another participating blockchain network), indicating that the participating network N1-N k and / or other computing devices, and from each participating network N1-N k and / or other computing devices. In implementation, the MPC request also includes the data requested / required by the computing system N R The selected verification strategy can be compared with the corresponding participating blockchain network N1-N k In various aspects of the present invention, the verification policy is more stringent or more relaxed across different blockchain networks N1-N k and / or computing devices are different. In an embodiment, the MPC request also includes encryption data indicating an encryption algorithm to be used in a response to the MPC request. In an embodiment, step 401 is implemented by the request module 220 of the client device 208A.
[0062] In step 402, the computing system N RFrom each participating blockchain network N1-N k (e.g., 204, 206) and / or the computing device receives an MPC response to the MPC request, including a computation output (MPC output) and an associated computational evidence. In an embodiment, the MPC responses of the participating blockchain networks and / or computing devices are all the same (i.e., a public output). In some aspects of the invention, the computational evidence provides an end-to-end source of computational outputs for creating the MPC protocol. In addition, the computational evidence can provide access to the computing system N R The validity of the computation inputs and the correctness of the computation outputs are guaranteed. In implementation, each response includes data encrypted based on the encrypted data provided in the MPC request. In an embodiment, step 402 is implemented by the request module 220 of the client device 208A.
[0063] Optionally, in step 403, the system N is calculated R Decrypt the encrypted MPC response or the encrypted data received with the response. In an embodiment, at step 404, the computing system N R The encrypted data in the MPC response is decrypted using the private key before being submitted to the smart contract for verification and consistency along with the computational evidence. In an embodiment, step 403 is implemented by the data module 222 of the client device 208A.
[0064] In step 404, the computing system N R Using smart contracts to verify the N1-N from participating blockchain networks k and / or computational evidence of each of the computing devices. In an embodiment, the smart contract is a smart contract for MPC result integrity verification, which includes a computer program configured to automatically perform an action (e.g., update a block chain ledger) when the MPC response meets the verification requirements of a predetermined protocol. For example, the smart contract can be used to determine the minimum number of signatures present in the computational evidence. In an embodiment, step 404 is implemented by the verification module 223 of the client device 208A.
[0065] Optionally, in step 405, the computing system N R One or more calculations are performed using at least one calculated output from the MPC response to generate a new MPC output. In step 405, the computing system N may be executed R Any computation desired, and embodiments of the present invention are not intended to be limited to any particular computation. R It may be desirable to calculate a sum, median, average, or other calculation based on the data in the MPC output.In an embodiment, step 405 is implemented by data module 222 of client device 208A.
[0066] Optionally, at step 406, the computing system N R The blockchain ledger is updated based on the results received in step 402 and / or the new MPC output generated in step 405. A person of ordinary skill in the art will understand how to update the blockchain ledger. In implementation, the computing system N R A new block is created on the blockchain ledger, including the result received at step 402, a new hash value derived from the result, and the hash value of the previous block in the blockchain ledger. In various aspects, step 406 is implemented in response to the verification of the computational evidence at step 404. In an embodiment, step 406 is implemented by the ledger module 224 of the client device 208A.
[0067] In an embodiment, the computing system N R The system may be configured to receive a request from a user (eg, via a client device of the environment 201), such as by a computing system N R Provides a user interface to initiate the MPC protocol.
[0068] Optionally, in step 407, the computing system N R A final result is generated based on the MPC response and / or the new MPC output, and the final result is sent to the user who requested the information (e.g., via client device 210D). In an embodiment, the final result includes the result from computing the function f of the MPC request. In an embodiment, the final result includes the result from one or more additional calculations based on the input from the MPC response. In an embodiment, step 407 is implemented by request module 220 of client device 208A.
[0069] Figure 5 A flowchart of an exemplary MPC method from the perspective of a participating blockchain network according to aspects of the present invention is shown. The steps of the method may be Figure 2 Executed in an environment with reference to Figure 2 For the components described in the computing system N R Each blockchain network (e.g., 204, 206) that receives an MPC request performs the following steps. In various aspects of the present invention, before starting the MPC protocol, the blockchain network selects a representative, which can be a single blockchain node (e.g., computer device 208A) or a group of blockchain nodes (e.g., computer devices 201A and 210B). Each representative of the blockchain network must have a signature that satisfies the verification policy of the MPC request. For simplicity, the representative is hereinafter referred to as selecting the representative node P1 of the blockchain network N1.
[0070] In step 500, according to Figure 4Step 401 of selecting a representative node P1 of blockchain network N1 (e.g., computer device 210A of contributor network 204) from computing system N R (e.g., client device 208A) receives an MPC request (e.g., query 300). In an embodiment, the MPC request includes at least one computation function f, which is collaboratively computed by the representative node P1 and one or more other representative nodes of the selected blockchain network and / or other selected computing devices during the MPC protocol, as well as data from each participant required to compute the function f. In various aspects of the invention, the MPC request also includes a computation performed by the computing system N R Select the authentication strategy.
[0071] In the implementation of the present invention, the MPC request is sent by another computing node (e.g., 210D) of the blockchain network N1 that first receives the MPC request from the computing system N1. R Directed to representative node P1. In an embodiment, a computing device selecting blockchain network N1 selects one or more nodes of blockchain network N1 to act as a representative to initiate / manage the MPC protocol according to the MPC request. Figure 2 In the example of FIG. 2 , a representative module 240 incorporated or in communication with the computer device 210A receives information from the computing system N R The MPC request is received and the computer device 210A is randomly selected as the representative node P1. In the embodiment of the present invention, no trust assumption about the representative node P1 is required.
[0072] Embodiments of the present invention provide the benefit of replaceability of computing nodes (e.g., P1) representing participating blockchain networks. One benefit of replaceability is that all representatives (e.g., representative node P1) are responsible for their actions, and their steps can be actively and passively audited. In implementation, active auditing of representative nodes occurs via a smart contract that verifies that the calculation of the next step is correct, and approval of the calculation is part of the verification policy (certification policy). In various aspects of the present invention, passive auditing can be performed after the calculation, whereby the calculation can be recalculated to verify that each step was performed correctly.
[0073] In step 501, the representative node P1 initiates the steps of the MPC protocol and communicates with another blockchain network N k At least one other representative node (e.g., P2) or at least one other computing device of the MPC request executes the steps of the MPC protocol to collaboratively generate an output (MPC output) based on the computation function f and the query Q in the MPC request, and in accordance with the verification strategy of the MPC request. In an embodiment, computing devices other than representative nodes of the blockchain network also participate in the MPC request.
[0074] In an embodiment, the representative node P1 queries its blockchain network N1 to obtain the intermediate data d i (e.g., from storage module 250), the intermediate data d i To i The proof of correctness is input to the MPC protocol together. The MPC protocol can be divided into multiple rounds (steps), where in each round, a participant (e.g., a representative node of each blockchain network) calculates the next message to broadcast to other participants (e.g., other representative nodes) as a function of the current history and the newly selected randomness of the round. To allow reproducibility of representative nodes, each step of the MPC calculation is tracked on the blockchain (e.g., via the blockchain ledger module 230), as described herein in step 502. 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 referenced below. Figure 6 Have a discussion.
[0075] At step 502, representative node P1 records the steps of the MPC protocol as data blocks in the blockchain ledger. For each round or step of the MPC protocol, the current representative node publishes on the blockchain: (1) messages received from other participant nodes and / or computing devices, and (2) the selected randomness for that round. For example, in an embodiment, for each step of the MPC protocol, a block is saved on the blockchain ledger, which includes the message or result received from the other participating nodes and / or computing devices, the hash value derived from the message or result, and the hash value of the previous block in the blockchain ledger. This is sufficient to: (1) verify the entire computation performed by representative node P1 at that point in time, and (2) continue the computation from the last round stored on the blockchain ledger. In an embodiment, the blockchain ledger module 230 of representative node P1 implements step 502.
[0076] In step 503, the representative node P1 generates computational evidence of the output computation that complies with the verification strategy requested by the MPC. In an embodiment, computational evidence is a computer-assisted proof of a mathematical theorem (e.g., an exhaustive proof) that provides evidence that the computational result implies a given theorem. The types of computational evidence that can be used by embodiments of the present invention are not limited to any particular computational evidence, and a person of ordinary skill in the art can determine computational evidence that is appropriate for a given MPC protocol. In an embodiment, the computational evidence is provided to the computing system N R The device indicating representative node P1 (e.g., 210A) is selected as a representative of the blockchain network to answer MPC requests. In aspects of the invention, the computational proof provides end-to-end provenance of the creation of the output computation (e.g., based on data blocks recorded in at least one blockchain ledger).
[0077] In an embodiment, the intermediate data d1 generated in the MPC protocol round (step) is verified at the corresponding representative node via a smart contract. The smart contract verifies the following: (1) the input selected by the representative node; (2) the calculation; (3) the data transmitted to other nodes and / or other computing devices of the blockchain network; and (4) the data received from other nodes and / or other computing devices of the blockchain network. Alternatively, the 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 record with the proofs of the network participants will constitute evidence of the correctness of the MPC result / output. In an embodiment, the verification module 230 of the representative node P1 implements step 503.
[0078] Optionally, representative node P1 encrypts data to be included in the response to the MPC request (eg, output of the MPC protocol) at step 504. In an embodiment, encryption module 242 encrypts the data based on encryption information provided in the MPC request.
[0079] In step 505, the representative node P1 responds to the MPC request and sends the generated MPC output (which may be encrypted) together with the computational evidence generated in step 503 to the computing system N. R In an embodiment, the representative module 240 of the representative node P1 implements step 505 .
[0080] It is understood that steps 500 to 505 may also be performed by other participating representative nodes (e.g., blockchain network N k The representative node P2) executes to collaboratively generate calculations based on the calculation function f, so that the computing system N R In response to the computing system N R The MPC request received by the other participating computing devices is received from each selected participating blockchain network. Likewise, except that computing devices that are not part of the blockchain network will not record the steps of the MPC protocol as data blocks in the blockchain ledger, other participating computing devices may execute Figure 5 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 discussed herein. In an embodiment, the MPC outputs from the blockchain networks are all the same (i.e., are public outputs). In various aspects, receiving the same MPC output from each selected blockchain network may indicate successful completion of the MPC protocol.
[0081] Figure 6 An exemplary three-step MPC protocol between representative nodes of three blockchain networks according to aspects of the present invention is shown. Figure 6 The steps shown in Figure 5 Step 501 in Figure 2 Executed in collaborative computing environment 201.
[0082] exist Figure 6 In the example of FIG. 1 , the representative node P1 of the blockchain network communicates with other representative nodes P2 and P3 of other participating blockchain networks. In the implementation, from the computing system N R Each blockchain network that receives an MPC request has a representative node (e.g., P1, P2, P3) that records sufficient intermediate data from the MPC protocol using blockchain transactions on a shared distributed blockchain ledger. This enables each blockchain network to verify the actions of the representative node (e.g., P1, P2, P3) and improves the fault tolerance of the system.
[0083] Continue to refer Figure 6 , each of the representative nodes P1, P2, and P3 communicate with each other using a cross-network data sharing protocol. It should be understood that according to embodiments of the present invention, various cross-network data sharing protocols may be used, and the present invention is not intended to be limited to a specific cross-network data sharing protocol. The term cross-network data sharing protocol as used herein refers to a set of established rules that specify how to format, send, and receive data between blockchain networks. Each representative node P1, P2, and P3 generates data d1, d2, and d3 required to perform cross-network computations. For example, in step 1, the representative node P1 generates intermediate data X 11 , X 12 , X 13 , for use by the corresponding representative nodes P1, P2, P3 to generate corresponding outputs 600A, 600B, 600C in step 2 of the MPC protocol.
[0084] In an embodiment, each step of the MPC protocol is performed by a representative node P1, P2, P3, and each representative node P1, P2, P3 signs an output, wherein the output is only accepted by another representative node P1, P2, P3 if it is accompanied by sufficient signatures according to the verification policy requested by the MPC. In an embodiment, the verification policy is an authentication policy that expresses a trust assumption about the source of a given message. If a message is accompanied by sufficient signatures that satisfy the policy, the message is considered to be authentic. In an embodiment, each participant (via the representative node P1, P2, P3) uses the same authentication policy.
[0085] As an example, the representative node P3 may transfer the intermediate data X in the transaction 602 to the 31 The output is sent to the representative node P1(X 31 The intermediate output X is recorded in P3’s shared blockchain ledger. Representative node P1 can then use the intermediate output X in step 2. 31 To calculate / generate another intermediate output (Y11 , Y 12 , Y 13 ). Then in step 3, the intermediate output data Y can be 13 Sent from representative node P1 to representative node P3 for use in calculations. The final MPC output of each representative node P1, P2, P3 obtained by the calculations of steps 1-3 is represented as z. In an embodiment, in each step, the representative node calculates evidence that the next message has been correctly calculated. If the evidence is a zero-knowledge evidence (ZKP), the evidence can be delivered to other MPC participants (other representative nodes), otherwise the evidence can be verified by other nodes that form the representative, and the signature is attached to the next message (policy executed).
[0086] According to an embodiment of the present invention, input provability ensures that the participating parties (via representative nodes) are using appropriate inputs (e.g., X1) to participate in the MPC protocol. To achieve this, an authentication method is applied to the function f to be calculated. In one example, the function to be calculated by the participating blockchain network = f(x_1, ...x_n). Instead of calculating f, each participating blockchain network (via its representative node) calculates F such that: each input x_i consists of a set of signatures on the data x_i' and x_i'. For each i, F has a verification strategy against which the accompanying signature is checked. If for each input, the relative verification strategy is satisfied, the calculation continues by calculating f, in this way, the input remains dedicated to each participating blockchain network, and at the same time all participating blockchain networks obtain a guarantee that the input to f is verified.
[0087] Figure 7 is a workflow diagram illustrating a data privacy protection communication protocol between participants in a collaborative computing process according to aspects of the present invention. More specifically, Figure 7 The first representative node P1 of the first blockchain network N1 and the second blockchain network N i The intermediate representative node P i and another blockchain network N k The final representative node P k For the computing system N R The request node P R (e.g., client device 208A) collaborate to execute the MPC protocol. As shown in blocks 700A and 700B, representative nodes P1, Pi, and Pk confirm the intermediate MPC results using a cross-network data sharing protocol. In this example, a quorum of parties / blockchain nodes is required to comply with the verification policy. Figure 7 In the example of FIG. 1 , at 701, the first representative node P1 receives a certificate from a quorum of nodes of the first blockchain network N1, and at 702, the intermediate representative node Pi From the second blockchain network N i A quorum of nodes receives the proof, and at 703, the final representative node P k From another blockchain network N k A quorum of nodes receives the proof. Contributing blockchain networks N1, N i and N k Each of them contributes to the MPC protocol without using Figure 7 The data privacy protection communication protocol shown in the figure is used to learn each other's private data. The requesting node P R At 704 the certification is verified and the result accepted.
[0088] Figure 8 It shows that various aspects of the present invention are implemented Figure 4 and 5 An exemplary system architecture for the method of FIG. Figure 8 The steps shown in Figure 2 Executed in an environment with reference to Figure 2 The components shown in are described.
[0089] exist Figure 8 In the example of FIG. 1 , client device 208A sends an MPC request (query) to select blockchain networks N1 and N2. k The query / response client of the MPC protocol is composed of the corresponding blockchain networks N1 and N according to the embodiment of the present invention. k The selected representative nodes P1 and P k Execute to return an MPC response, as shown at 800. In this example, client device 208A is a computing system N within peer-to-peer network 802. R , and includes one or more software applications 804 (e.g., request module 220, smart contracts 806, and blockchain ledger 808) configured to generate and send MPC requests. Generally, smart contracts include computer programs or transaction protocols that are designed to automatically execute, control, or record legally relevant events and actions according to the terms of a contract or agreement. Figure 8 The smart contract 806 enables the client device 208A to generate data evidence verification 810 and MPC result integrity verification 811. In an embodiment, the blockchain ledger 808 provides identification information for participating networks 812, verification policies for remote data 813, and storage of MPC results 814.
[0090] In response to receiving the MPC request from the client device 208A, the selected representative nodes P1 and P kThe MPC protocol represented at 820 is cooperatively executed to compute the function f using multiple steps or rounds of computation to generate an intermediate MPC protocol output 822. Once the MPC protocol 820 is completed, the representative nodes P1 and P k Each of the representative nodes P1 and P2 sends the final MPC output 824 along with the corresponding data evidence checks 826A, 826B to the requesting client device 208A. k The outputs and associated evidence from the MPC rounds are recorded (e.g., in a blockchain ledger), as shown at 828A, 828B, and respective MPC result integrity verifications 830A, 830B are generated. Figure 8 In the example, each representative node P1 and P k Stores identification information of participating networks 832A, 832B, and verification strategies for remote data 834A, 834B. Each representative node P1 and P k The representative node obtains input from another representative node and sends output to other representative nodes during the MPC protocol, as shown at 836A, 836B, and generates a concise proof of correctness of the output, as shown at 838A, 838B. In an embodiment, data evidence verification 826A, 826B is used to verify the data obtained through cross-network data sharing, and MPC result integrity verification 830A, 830B is used to ensure that each representative node P1 and P k Correctly execute MPC protocol steps using local ledger state and data obtained from other participating networks via cross-network data sharing.
[0091] Based on the above, it can be seen that embodiments of the present invention provide: (1) authentication: other participants are able to authenticate messages from a blockchain network (where the blockchain network behaves as a single logical entity); (2) replaceability / robustness: it does not matter which blockchain nodes are forming a single logical entity participating in the MPC protocol (the nodes of the blockchain network may change even during the execution of the MPC protocol); (3) accountability: the nodes of the blockchain network forming a single logical entity are accountable; (4) input provability: the blockchain network can prove that the output X1 does come from its blockchain ledger; (5) result authentication: the party that triggers the computation obtains the result of the computation authenticated by the participating blockchain network; and (6) interoperability between decentralized / centralized systems that are participants in the MPC protocol.
[0092] In an embodiment, a service provider may provide for performing the processes described herein. In this case, the service provider may create, maintain, deploy, support, etc., a computer infrastructure that performs the process steps of the present invention for one or more customers. These customers may be, for example, any business that uses the technology. In return, the service provider may receive payment from the customer(s) under a subscription and / or fee agreement, and / or the service provider may receive payment from the sale of advertising content to one or more third parties.
[0093] In another embodiment, the present invention provides a computer-implemented method via a network. In this case, a method such as Figure 1 The computer infrastructure of computer 101 can be used to obtain (e.g., create, purchase, use, modify, etc.) one or more systems for performing the processes of the present invention and deploy them to the computer infrastructure. In this sense, the deployment of the system can include one or more of the following: (1) downloading from a computer readable medium in a computer such as Figure 1 (1) installing program code on a computing device of computer 101; (2) adding one or more computing devices to the computer infrastructure; and (3) merging and / or modifying one or more existing systems of the computer infrastructure to enable the computer infrastructure to perform the process of the present invention.
[0094] The description of various embodiments of the present invention has been given for the purpose of illustration, but it is not intended to be exhaustive or limited to the disclosed embodiments. Many modifications and variations will be apparent to those of ordinary skill in the art without departing from the scope of the described embodiments. The terms used herein are selected to best explain the principles of the embodiments, practical applications, or technical improvements existing in the market, or to enable other persons of ordinary skill in the art to understand the embodiments disclosed herein.
Claims
1. A method comprising: Identifying, by a computing system, a selection blockchain network and a selection computing device to perform a multi-party computation (MPC) based on an index of a plurality of blockchain networks and computing devices, wherein the index indicates a type of data that can be obtained by each of the plurality of blockchain networks and computing devices; generating, by the computing system, an MPC request, the MPC request comprising at least one computing function to be collaboratively performed by the selected blockchain network and the selected computing device, data required for the at least one computing function from each of the selected blockchain network and the selected computing device, and a verification policy defining at least one verification protocol to be performed by each of the selected blockchain network and the selected computing device; Sending, by the computing system, the MPC request via a network connection to each of the selected blockchain network and the selected computing device; as well as The computing system receives a response from the representative computing node of the selected blockchain network 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 computation function on the inputs of the respective selected blockchain network and the selected computing device while keeping the respective inputs private to each other and to the computing system; and Computational evidence based on the described verification strategy.
2. The method according to claim 1, further comprising: The computing system verifies the computing evidence of the corresponding response using a smart contract.
3. The method according to 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, so that at least three selected blockchain networks participate in the MPC, and wherein, for each of the selected blockchain networks, the smart contract verifies: data input selected by one of the representative computing nodes; calculation of the MPC output; data transmitted by the one of the representative computing nodes to other of the representative computing nodes; and data received by the one of the representative computing nodes from other of the representative computing nodes.
4. The method according to claim 1, wherein: The MPC output from the selected blockchain network and the MPC output from the selected computing device are identical and include a common output.
5. The method according to claim 4, further comprising: The validity of the MPC output is determined by the computing system as a result of determining that each of the selected blockchain network and the selected computing device provides the public output, wherein the public output confirms the validity of the MPC output.
6. The method according to claim 1, wherein: The MPC output is encrypted based on information provided in the MPC request, and the method further includes decrypting, by the computing system, the MPC output based on the information.
7. The method according to claim 1, further comprising: The computing system performs at least one computation using the MPC output from the selected blockchain network or the MPC output from the selected computing device to generate a computation result.
8. The method according to claim 1, wherein: The computing system is a node of another blockchain network, and the method further includes: updating, by the computing system, a blockchain ledger of the computing system based on the received MPC output.
9. The method according to claim 1, wherein: For the selected blockchain network, the verification evidence is based on recorded MPC protocol steps of the MPC protocol performed between the representative computing node of the selected blockchain network and the selected computing device.
10. The method according to claim 1, wherein: The computing system includes software provided as a service in a cloud environment.
11. A computer program product comprising one or more computer-readable storage media having program instructions stored collectively on the one or more computer-readable storage media, the program instructions being executable to: Sending a multi-party computation (MPC) request to each of a plurality of blockchain networks, the MPC request including at least one computation function to be collaboratively performed by the plurality of blockchain networks, data input required for the at least one computation function, and a verification strategy defining at least one verification protocol to be performed by each of the plurality of blockchain networks; as well as Receive responses from corresponding representative computing nodes of the plurality of blockchain networks, wherein: Each of said responses comprises: MPC output; and Based on computational evidence of the verification strategy, wherein the MPC output is jointly calculated by the multiple blockchain networks using the MPC protocol while keeping the original data of the corresponding multiple blockchain networks private to each other, and Wherein, the MPC output is calculated from the raw data from the multiple blockchain networks, but the raw data from the multiple blockchain networks is not disclosed.
12. The computer program product according to claim 11, wherein: The program instructions are further executable to: utilize a smart contract to verify the computational proof of the corresponding response, wherein the computational proof provides an end-to-end provenance of the joint computation of the MPC output performed by the multiple blockchain networks using the MPC protocol.
13. The computer program product of claim 12, wherein: For each of the plurality of blockchain networks, the smart contract verifies: a data input selected by one of the representative computing nodes; a computation of the MPC output; data transmitted by the one of the representative computing nodes to another of the representative computing nodes; and data received by the one of the representative computing nodes from other of the representative computing nodes.
14. The computer program product of claim 11, wherein: Each of the plurality of blockchain networks selects the original data for use in the MPC protocol based on the data input in the MPC request, thereby ensuring validity of the input to the MPC protocol.
15. The computer program product of claim 11, wherein: The program instructions may be further executable to: determine the validity of the MPC output as a result of determining that each of the plurality of blockchain networks provides a public output, wherein the public output confirms the validity of the MPC output.
16. 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. The computer program product of claim 11, wherein: The program instructions may be further executable to: perform at least one calculation using the MPC output from a blockchain network among the plurality of blockchain networks to generate a calculation result.
18. A system comprising: A processor group, one or more computer-readable storage media, and program instructions stored together on the one or more computer-readable storage media, the program instructions being executable by at least one representative computing device of the first blockchain network to: receiving a multi-party computation (MPC) request from a remote computing system, the MPC request including at least one computation function to be collaboratively performed by the first blockchain network and the second blockchain network, data input required for the at least one computation function, and a verification policy defining at least one verification protocol to be performed by each of the first blockchain network and the second blockchain network; initiating and executing the steps of an MPC protocol with the second blockchain network to collaboratively generate an MPC output based on the computation function in the MPC request and in compliance with the verification policy of the MPC request, wherein the MPC output is jointly calculated by the first blockchain network and the second blockchain network using the MPC protocol while keeping the original data of the respective first blockchain network and the second blockchain network private from each other, and the MPC output is calculated from the original data from the first blockchain network and the second blockchain network, but the original data from the first blockchain network and the second blockchain network is not disclosed to the remote computing system, and wherein each of the first blockchain network and the second blockchain network selects the original data for 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; and In response to the MPC request, the MPC output is sent to the remote computing system.
19. The system of claim 18, wherein: The program instructions may be further executable by the at least one representative computing device of the first blockchain network to: generating computational evidence of the computational function; and The computational evidence is sent to the remote computing system.
20. The system of claim 18, wherein: The program instructions may be 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.
Citation Information
Cited By
Collaborative computation across blockchain networks
US12470383B2