COLLABORATION ACROSS BLOCKCHAIN NETWORKS
The system enables secure multiparty computation across blockchain networks, ensuring data confidentiality and output validity through MPC protocols, addressing the limitations of existing data sharing plans by maintaining input secrecy and providing robustness against network failures.
Patent Information
- Application Number
- DE112023003641
- Authority / Receiving Office
- DE · DE
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2022-09-01
- Filing Date
- 2023-07-12
- Publication Date
- 2025-08-07
AI Technical Summary
Existing data sharing plans between blockchain networks provide limited privacy and confidentiality guarantees for complex data queries and responses, necessitating the need for improved encryption tools that allow secure multiparty computation without relying on trusted network proxies or third parties.
A system and method for secure multiparty computation (MPC) across authorized blockchain networks, enabling confidential computations by leveraging blockchain ledgers to ensure data confidentiality and integrity, using MPC protocols that maintain input secrecy and provide computational evidence for output validity.
Ensures confidentiality of data across multiple networks, guarantees the correctness of computational outputs, and provides robustness against network failures, while allowing seamless originations for participants and non-participants in the MPC protocol.
Smart Images

Figure 00000000_0000_ABST
Abstract
Description
BACKGROUND
[0001] Aspects of the present invention relate generally to encryption 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 an encryption tool that allows individual parties to collaboratively compute a function from their inputs, while keeping those inputs (e.g., raw data) confidential. In an MPC, a predetermined number of participants P1, P2, ..., P N , confidential data D1, D2, ..., D N . The participants want to calculate the value of a public function f for this confidential data:f (D1, D2, ..., D N), keeping their own inputs secret. There are several MPC protocols, including SPDZ (pronounced "Speedz"), which is the name for a general MPC protocol, and Garbled Circuit Protocol, which enables secure two-party computation.
[0003] In general, blockchain is a type of distributed ledger technology (DLT) that features a shared, immutable ledger that simplifies the process of recording transactions and tracking assets across a computer network. An asset can be tangible or intangible. Permissioned DLT / blockchain networks store records on shared ledgers that, by design, are inaccessible to external entities. Blockchain is advantageous for information provision because it provides immediate, shared, and fully transparent information stored on an immutable ledger that can only be accessed by authorized network members.
[0004] In general, a blockchain works by recording every transaction that moves an asset as a "block" of data. Each block can record information related to the transaction (e.g., who, what, when, where, and how) and is linked to the blocks before and after it, forming a chain of data as the asset moves from place to place or ownership changes hands. The blocks are stored across multiple computers (decentralized storage). The blocks are synchronized across a variety of storage locations and are tamper-proof. The blocks confirm the exact time and sequence of transactions and are securely linked to each other to prevent a block from being altered and to prevent a block from being inserted between two existing blocks. SUMMARY
[0005] In a first aspect of the invention, there is provided a computer-implemented method comprising: identifying, by a data processing system, a selection blockchain network and a selection computing device to perform multi-party computation (MPC) based on an index of a plurality of blockchain networks and computing devices indicating a data type available from each of the plurality of blockchain networks and each of the plurality of computing devices;Generating, by a data processing system, an MPC request including at least one computational function to be performed collaboratively by the selection blockchain network and the selection computing device, data required for the at least one computational function for each selection blockchain network and each selection computing device, and a verification policy defining at least one verification protocol to be performed by each selection blockchain network and each selection computing device; sending, by the data processing system, the MPC request to each selection blockchain network and each selection computing device over a network connection;and receiving, by the data processing system, a response from a representative data processing node of the selection blockchain network and a response from the selection data processing unit, wherein each of the responses comprises: an MPC output of an MPC protocol performed by the selection blockchain network and the selection data processing unit to jointly calculate the at least one computational function from inputs of the respective selection blockchain network and the respective selection data processing unit, the respective inputs being kept confidential from each other and confidential from the data processing system; and a computational proof based on the verification policy.
[0006] In another aspect of the invention, there is provided a computer program product comprising one or more computer-readable storage media having program instructions collectively stored 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 comprising at least one computational function to be performed collaboratively by the plurality of blockchain networks, data inputs required for the at least one computational function, and a verification policy defining at least one verification protocol to be performed by each of the plurality of blockchain networks;and receiving a response from respective representative computing nodes of the plurality of blockchain networks, each of the responses comprising: an MPC output; and a computational proof based on the verification policy, wherein the MPC output is jointly computed by the plurality of blockchain networks using an MPC protocol, wherein raw data of the respective plurality of blockchain networks is kept confidential from each other, and wherein the MPC output is computed from the raw data from the plurality of blockchain networks, but is not disclosed.
[0007] In another aspect of the invention, a system is provided that includes a processor group, one or more computer-readable storage media, and program instructions collectively stored on the one or more computer-readable storage media. The program instructions are executable 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 computational function to be performed cooperatively by the first blockchain network and a second blockchain network, data inputs required for the at least one computational function, and a verification policy defining at least one verification protocol to be performed by each of the first and second blockchain networks;Initiating and performing steps of an MPC protocol with the second blockchain network, thereby collaboratively generating 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 computed by the first and second blockchain networks using the MPC protocol, wherein raw data of the respective first and second blockchain networks is kept confidential from each other, and is computed from raw data from the first and second blockchain networks but is not disclosed to the remote data processing system, and wherein each of the first and second blockchain networks selects the raw data to be used in the MPC protocol based on the data inputs in the MPC request, thereby ensuring the validity of inputs to the MPC protocol;and sending the MPC output to the remote data processing system in response to the MPC request.; BRIEF DESCRIPTION OF THE DRAWINGS
[0008] Aspects of the present invention are described in the following detailed description with reference to the specified plurality of drawings by way of non-limiting examples of exemplary embodiments of the present invention. Fig. 1 illustrates a computing environment according to an embodiment of the present invention. Fig. 2 shows a block diagram of an exemplary collaborative computing environment according to aspects of the present invention. Fig. Figure 3 illustrates data transfers between participating networks according to aspects of the present invention. Fig. 4 shows a flowchart of an exemplary MPC method from the perspective of a requesting computing system in accordance with aspects of the present invention. Fig. 5 shows a flowchart of an exemplary MPC method from the perspective of a participating blockchain network according to aspects of the present invention. Fig. 6 illustrates an exemplary three-stage MPC protocol between representative nodes of three blockchain networks according to aspects of the present invention. Fig. 7 is a workflow diagram illustrating a privacy-preserving data transfer protocol between participants in a collaborative data processing process according to aspects of the present invention. Fig. Figure 8 illustrates an exemplary system architecture for implementing the methods of Fig. 4 and Fig. 5 according to aspects of the present invention. DETAILED DESCRIPTION
[0009] Aspects of the present invention generally relate to encryption, and more particularly to collaborative computation across blockchain networks. In embodiments, a system and method is provided for secure multi-party computation (MPC) between participating networks (e.g., permissioned blockchain networks) and / or compute entities to compute data required by a requesting / receiving network, with confirmed intermediate outputs between the participating networks and / or compute entities and the final output verified by the requesting / receiving network via trusted cross-network data sharing. In implementations, each participating blockchain network includes a blockchain ledger that records each transaction of the MPC protocol as moving a "block" of data.Each block can record information related to a transaction (e.g., a calculation) and is linked to the blocks before and after it, forming a chain of data as the MPC protocol progresses.
[0010] Permissioned DLT / blockchain networks store records in shared ledgers that, by design, are inaccessible to external entities. However, data recorded on one network is often critical for the trusted enforcement of a smart contract on another network. The term "smart contract," as used herein, refers to a computer program or transaction protocol designed to automatically execute, control, or document legally relevant events and actions according to the terms of a contract or agreement. Sharing plans have been proposed to allow data to be shared between blockchains with proven authenticity and provenance. However, existing data sharing plans provide only limited privacy and confidentiality guarantees for complex data queries and responses from multiple networks.A network (or a party within a network) may not be willing to share raw data with an external entity or another network, but multiple networks or parties may be jointly willing to provide information aggregated or derived from each piece of raw data.
[0011] Embodiments of the invention provide an improved encryption tool that supports confidential computations across distributed ledger networks (distributed blockchain networks) without the need to rely on trusted network proxies or third parties. Systems and methods discussed herein are necessarily rooted in computer technology to address problems inherent in the world of computer networks. In particular, embodiments of the invention address the problem of obtaining desired computational outputs based on confidential data distributed across multiple authorized networks and / or computing devices.
[0012] It is understandable that there are numerous use cases where it is desirable to derive insights from multiple data sources without disclosing raw information to the requesting party or other intermediaries. Some examples include: (1) a party (individual, business) that holds assets across multiple networks (central bank digital currencies, stocks, bonds, cryptocurrencies, etc.) may need to disclose information about the total holdings (e.g.total net worth, outstanding liabilities, capitalization) to an auditor, tax authority, financier, or other entity without disclosing detailed holdings in each of these networks; (2) for industry- or sector-wide reporting (often published by regulators or industry associations), information may need to be derived from multiple networks, ensuring data protection and confidentiality in addition to accuracy and completeness; and (3) parties may need to demonstrate to regulators or auditors regulatory compliance with respect to their transactions in and across networks across networks without disclosing the detailed history of each transaction.
[0013] The following exemplary scenario illustrates the need for the improved cryptographic tool according to embodiments of the invention. In this example, N1, N2, and N3 are independent CBDC (central bank digital currency) networks. Alice is a user who manages CBDC accounts in both N2 and N3. A smart contract in N1 containing a supervisory authority (e.g., European Banking Authority) must enforce different regulations depending on whether Alice's total account balance (i.e., the balance amounts in N2 and N3) exceeds a certain amount X. Neither N2 nor N3 wishes to disclose their respective account balances for Alice to the other networks, but are willing to share information in a privacy-preserving manner.
[0014] In the context of blockchain networks, information resides on multiple networks, and the primary condition would be to ensure that: a requesting party does not gain knowledge of raw information (e.g., raw data) in any of the networks; networks do not gain knowledge of raw information (e.g., raw data) in other networks; and that the requesting party can obtain assurance that the aggregate knowledge was correctly calculated and that the inputs to the aggregate amounts were correct data according to the consensus rules of the participating blockchain networks.
[0015] A permissioned blockchain can be thought of as a data silo that can only be accessed by authorized parties. Implementations of the invention provide a way to extract more value from the data silo by securely combining the data stored in the data silo with external data using MPC. In implementations, participants in a collaborative computation across blockchain networks have access to blockchain software, such as open-source blockchains and related tools enabled by the Hyperledger. ® project, a project launched by the Linux Foundation in December 2015. Hyperledger ® is a registered trademark of the Linux Foundation.
[0016] Implementations of the invention enable separate permissioned blockchain networks to jointly serve as input providers to an MPC. This distinguishes them from existing MPC protocols, where input providers are individuals on a network. Embodiments of the invention advantageously provide seamless provenance for participants of the MPC protocol and for recipients who are non-participants. The term "seamless provenance," as used herein, refers to the complete history of the one or more computations performed by participants of the MPC protocol or the complete history of how a computational output is generated by the MPC protocol, where the history, without revealing additional information about the confidential inputs, serves as a guarantee of the validity of the computational output, even to a non-participant of the MPC.In aspects, a method provides a guarantee of the validity of the computational inputs for a non-participant receiving the MPC output and a guarantee of the correctness of the output for a non-participant (and participant). Furthermore, embodiments of the invention guarantee privacy by adapting MPC protocols to trusted sharing plans for cross-ledger data in a manner that does not require parties (e.g., nodes of a blockchain) to disclose raw data to each other for computation and verification purposes. Aspects of the invention also provide robustness against failures of network members executing the MPC protocol.
[0017] In embodiments, a method from the perspective of a user receiving data comprises: querying, by a query / response data transmission system N R , from participating / contributing networks (N1, ..., N k) of data that the query / response data transmission system N R from each of the participating / collaborating networks, the query requiring (i) a function and (ii) verification policies for each participating network; Received by the query / response data transmission system N R , a result (MPC output) and a proof from a respective representative of the participating / collaborating networks; Verify, through the query / response data transmission system N R , the proof of each of the respective representatives via a smart contract; in response to a verification of the proofs Accept, by the query / response data transmission system N R , the results; optional execution, by the query / response data transmission system N R , a further calculation based on the results; optional decryption, by the query / response data transmission system N R, the results; and updating, through the query / response data transmission system N R , of ledger records based on the results and / or further calculation.
[0018] In embodiments, 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, receiving, by a computing entity of a blockchain network, a request for data (MPC request) from a remotely located computing entity; selecting, by the computing entity of the blockchain network, a representative P i , where the choosing can be arbitrary and interchangeable; an initiation and execution, by the representative P i, an MPC protocol to generate a computational output, ensuring fault tolerance and verification by other network members, wherein the MPC protocol comprises generating and recording a concise proof of the correctness of the computation of the computational output in a blockchain ledger, and exchanging data between the other network members using a cross-network data sharing protocol; and providing, by the representative P i , the computational output with the proof of the correctness of the calculation of the computational output for the remote data processing unit in response to the request for data.
[0019] Various aspects of the present disclosure are described by accompanying text, flowcharts, block diagrams of computer systems, and / or block diagrams of machine logic included in embodiments of the computer program product (CPP). With respect to the flowcharts, depending on the technology involved, the operations may be performed in a different order than that shown in a particular flowchart. For example, again depending on the technology involved, two operations shown in consecutive flowchart blocks may be performed in reverse order, as a single step, concurrently, or in an at least partially overlapping manner.
[0020] A computer program product embodiment ("CPP embodiment" or "CPP") is a term used in the present disclosure to describe any group of one or more storage media (also referred to as "carriers") collectively included in a group of one or more storage units that collectively comprise machine-readable code corresponding to instructions and / or data for performing computer operations specified in a particular CPP claim. A "storage unit" is any tangible unit that can contain and store instructions for use by a computer processor.The computer-readable storage medium may be, without limitation, 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 incorporating these media include: floppy disk, hard disk, random access memory (RAM), read-only memory (ROM), erasable programmable read-only memory (EPROM or flash memory), static random access memory (SRAM), CD-ROM, DVD, memory stick, floppy disk, mechanically encoded device (such as punched cards or pits / ridges formed on a major surface of a storage medium), or any suitable combination of the foregoing.A computer-readable storage medium, as used in this disclosure, should not be considered to store transient signals per se, such as radio waves or other freely propagating electromagnetic waves, electromagnetic waves propagating through a waveguide, light pulses carried through a fiber optic cable, electrical signals transmitted through a wire, and / or other transmission media. As will be appreciated by one of ordinary skill in the art, data is typically moved at some random time during normal operations of a storage device, such as during access, defragmentation, or garbage collection, but this does not make the storage device temporary because the data is non-volatile while stored.
[0021] A data processing environment 100 in Fig. 1 includes an example of an environment for executing at least some of the computer code involved in performing the inventive methods, such as collaborative computation across blockchain networks 200. In addition to 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 remotely located server 104, a public cloud 105, and a private cloud 106.In this embodiment, computer 101 includes a processor cluster 110 (including processing circuitry 120 and cache 121), a data transfer fabric 111, volatile memory, persistent storage 113 (including an operating system 122 and block 200, as identified above), a peripheral device cluster 114 (including a user interface (UI) device cluster 123, storage 124, and an Internet of Things (IoT) sensor cluster 125), and a network module 115. A remote server 104 includes a remote database 130. The public cloud 105 includes a gateway 140, a cloud orchestration module 141, a physical host machine cluster 142, a virtual machine cluster 142, and a container cluster 144.
[0022] The COMPUTER 101 may take the form of a desktop computer, a laptop computer, a tablet computer, a smartphone, a smart watch 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 a program, accessing a network, or querying a database, such as the remote database 130. As is well understood in the field of computer technology and depending on the technology, the performance of a method implemented by a computer may be distributed among multiple computers and / or between multiple storage locations. On the other hand, the detailed explanation in this illustration of the data processing environment 100 focuses on a single computer, in particular, the computer 101, in order to keep the illustration as simple as possible.The computer 101 may be located in a cloud even if it is in . Fig. 1 is not shown in a cloud. On the other hand, the computer 101 does not have to be in a cloud, except to a certain extent, as can be affirmed.
[0023] Processor group 110 includes one or more computer processors of any type currently known or developed in the future. Processing circuitry 120 may be distributed across multiple packages, for example, multiple coordinated integrated circuit chips. Processor circuitry 120 may implement multiple processor threads and / or multiple processor cores. Cache 121 is memory located within the processor chip package(s) and is typically used for data or code that should be available for rapid access by the threads or cores executing on processor group 110. Cache memories are typically organized into multiple levels, which depend on relative proximity to the processing circuitry. Alternatively, some or all of the cache for the processor group may be located off-chip.In some computing environments, the processor group 110 may be configured to operate on quantum bits and perform quantum computing.
[0024] Computer-readable program instructions are typically loaded onto computer 101 to cause a series of operations to be performed by processor group 110 of computer 101 to effect a computer-implemented method, such that the so-executed instructions instantiate the methods specified in flowcharts and / or detailed descriptions of computer-implemented methods (collectively referred to as "the inventive methods") included in this specification. These computer-readable program instructions are stored in various types of computer-readable storage media, such as cache 121 and the other storage media discussed below.The program instructions and associated data are accessed by processor group 110 to control and direct the performance of the inventive methods. In data processing environment 100, at least some of the instructions for performing the inventive methods may be stored in persistent memory 113 at block 200.
[0025] The data transmission structure 111 is the signal transmission paths that enable the various components of the computer 101 to exchange data with each other. Typically, this structure consists of switches and electrically conductive paths, such as the switches and electrically conductive paths that make up buses, bridges, physical input / output ports, and the like. Other types of signal transmission paths may be used, such as data transmissions via fiber optic paths and / or wireless data transmission paths.
[0026] Volatile memory 112 is any type of volatile memory currently known or developed in the future. Examples include dynamic random access memory (RAM) or static RAM. Typically, volatile memory is characterized by random access, but this is not required unless affirmatively stated. In computer 101, volatile memory 112 is located in a single package and is internal to computer 101, but alternatively or additionally, volatile memory may be distributed across multiple packages and / or external to computer 101.
[0027] PERMANENT STORAGE 113 is any form of non-volatile computer memory currently known or developed in the future. The non-volatility of this memory means that the stored data is retained regardless of whether power is applied to the computer 101 and / or whether it is applied directly to the permanent storage 113. The permanent storage 113 may be read-only random access memory (ROM), but typically at least a portion of the permanent storage allows data to be written, erased, and overwritten. Some known forms of permanent storage include magnetic disks and solid-state storage devices. The operating system 122 may take several forms, such as various well-known proprietary operating systems or open source Portable Operating System Interface-type operating systems that utilize a kernel.The code included in block 200 typically includes at least some of the computer code involved in performing the inventive methods.
[0028] The PERIPHERAL DEVICE GROUP 114 comprises the group of peripheral devices of the computer 101. Data transmission connections between the peripheral devices and the other components of the computer 101 can be implemented in various ways, such as Bluetooth connections, Near Field Communication (NFC) connections, wired connections (such as Universal Serial Bus (USB) cables), connectors (such as 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, the UI device 123 can include components such as a display screen, a speaker, a microphone, wearable devices (such as glasses and smart watches), a keyboard, a mouse, a printer, a touchpad, game controllers, and haptic devices.The memory 124 is external storage, such as an external hard drive or a removable storage such as an SD card. The memory 124 may be permanent and / or volatile. In some embodiments, the memory 124 may take the form of a quantum computing storage device for storing data in the form of quantum bits. In embodiments where the computer 101 is required to have a high storage volume (for example, in cases where the computer 101 locally stores and manages a large database), this storage may be provided by peripheral storage devices designed to store very high data volumes, such as a storage area network (SAN) shared by multiple geographically distributed computers. The IoT sensor array 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.
[0029] The network module 115 is the collection of computer software, hardware, and firmware that enables the computer 101 to communicate with other computers through the WAN 102. The network module 115 may include hardware such as modems or WLAN signal transceivers, software for packetizing and / or depacketizing data for transmission over communication networks, and / or web browser software for transmitting data over the Internet. In some embodiments, the network control functions and network forwarding functions of the network module 115 are performed on the same physical hardware device. In other embodiments (e.g., embodiments utilizing software-defined networking (SDN)), the control functions and forwarding functions of the network module 115 are performed on physically separate devices, such that the control functions manage several different hardware devices of the network.Computer-readable program instructions for performing the inventive methods can typically be downloaded to the computer 101 via an external computer or external storage device through a network adapter card or network interface included in the network module 115.
[0030] The WAN 102 is any wide area network (e.g., the Internet) capable of transmitting computer data over non-local distances using any technology for transmitting computer data currently known or developed in the future. In some embodiments, the WAN may be replaced and / or supplemented by local area networks (LANs) designed to transmit data between devices located within a local area, such as a wireless network. The WAN and / or LANs typically include computer hardware such as copper transmission cables, optical transmission lines, wireless transmission, routers, firewalls, switches, gateway computers, and edge servers.
[0031] The end-user device (EUD) 103 is any computer system used and controlled by an end user (for example, a customer of a company operating the computer 101) and can take any of the forms discussed above in connection with the computer 101. The EUD 103 typically receives helpful and useful data from the operations of the computer 101. For example, in a hypothetical case where the computer 101 is configured to provide a recommendation to an end user, that recommendation would typically be transmitted from the network module 115 of the computer 101 across the WAN 102 to the EUD 103. In this way, the EUD 103 can display or otherwise present the recommendation to an end user. In some embodiments, the EUD 103 can be a client device, such as a thin client, a heavy client, a mainframe computer, a desktop computer, etc.
[0032] The remote server 104 is any computer system that provides at least some data and / or functionality to the computer 101. The remote server 104 may be controlled and used by the same entity that operates the computer 101. The remote server 104 represents the machine(s) that collect and store helpful and useful data for use by other computers, such as the computer 101. For example, in a hypothetical case where the computer 101 is configured and programmed to provide a recommendation based on historical data, this historical data may be provided to the computer 101 from the remote database 130 of the remote server 104.
[0033] 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 computing capabilities, particularly data storage (cloud storage) and computing power, without direct, active user control. Cloud computing typically utilizes shared resources to achieve coherence and economies of scale. The direct and active management of the computing resources of the public cloud 105 is performed by the computer hardware and / or software of the cloud orchestration module 141.The computing resources provided by the public cloud 105 are typically implemented by virtual computing environments running on multiple computers comprising the computers of the physical host machine group 142, which comprises the entirety of physical computers in and / or available in the public cloud. The virtual computing environments (VCEs) typically take the form of virtual machines from the virtual machine group 143 and / or containers from the container group 144. It should be understood that these VCEs can be stored as images and transferred among and between the various physical machine hosts, either as images or after instantiation of the VCE.The cloud orchestration module 141 manages the transfer and storage of images, deploys new instantiations of VCEs, and manages active instantiations of VCE deployments. The gateway 140 is the collection of computer software, hardware, and firmware that enables the public cloud 105 to exchange data over the WAN 102.
[0034] The following provides some further explanations of virtualized computing environments (VCEs). VCEs can be stored as "images." A new active instance of the VCE can be instantiated from the image. Two common types of VCEs are virtual machines and containers. A container is a VCE that uses 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. These isolated user-space instances typically behave like real computers from the perspective of programs running in them. A computer program running on a normal operating system can use all of that computer's resources, such as connected devices, data and folders, network shares, CPU power, and quantifiable hardware capabilities.However, programs running in a container can only use the contents of the container and units assigned to the container, a feature known as containerization.
[0035] The PRIVATE CLOUD 106 is similar to the public cloud 105, except that the computing resources are available for use only by a single enterprise. While the private cloud 106 is depicted as being in communication with the WAN 102, in other embodiments, a private cloud may be completely disconnected from the Internet and accessible only through a local / private network. A hybrid cloud is a composition of multiple clouds of different types (e.g., types such as private, community, or public cloud), often each implemented by different vendors. Each of the multiple clouds remains a separate and discrete entity, but the larger hybrid cloud architecture is held together by standardized or proprietary technology that enables orchestration, management, and / or data / application portability between the multiple individual clouds.In this embodiment, both the public cloud 105 and the private cloud 105 are part of a larger hybrid cloud.
[0036] Fig. 2 shows a block diagram of an exemplary collaborative computing environment 201 according to aspects of the present invention. The collaborative computing environment 201 may be located in the data processing environment of Fig. 1. In embodiments, the collaborative computing environment 201 includes a network 202 (e.g., the WAN 102 of Fig. 1) that enables data exchange between a plurality of client devices represented by 208A through 208D and a plurality of participation networks represented by participation networks 204 and 206.
[0037] The client units 208A to 208D may each be an instance of the computer 101 of Fig. 1 or elements thereof and can be used standalone or as part of a network of computing devices (e.g., a permissioned blockchain network). In implementations, each of the client devices 208A to 208D comprises computing nodes in a cloud computing environment. In embodiments, the client devices 208A to 208D comprise computer software that provides computing services to one or more paying customers (e.g., via an end-user device 103 of Fig. 1). In implementations of the invention, each of the client units 208A to 208D receives computer-readable program instructions (e.g., the code in block 200 of Fig. 1) to initiate a series of work steps that are performed by processor groups (e.g., processor group 110 of Fig. 1) of the respective client units 208A to 208D, thereby effecting a computer-implemented method which is discussed in more detail below.
[0038] The computer-readable program instructions of the client units 208A to 208D may be stored as one or more modules in various types of computer-readable storage media (e.g., the permanent memory 113 of Fig. 1). For illustrative purposes, the client unit 208A is referred to as a requesting node N Rthe collaborative computing environment 201 configured to initiate collaborative computation across blockchain networks according to embodiments of the invention. For example, the client unit 208A is illustrated as including: a request module 220 to generate and submit data queries / requests (MPC requests) to a plurality of collaborative networks 204 and 206 (e.g.,Blockchain networks); an index module 221 configured to receive and manage information about participants in the environment 201; a data module 222 configured to decrypt incoming results in response to the data queries / requests and / or use outputs from the results in one or more calculations to generate new outputs; a verification module 223 configured to verify the incoming results (MPC outputs); and a ledger module 224 configured to update and manage ledger data of a ledger (e.g., a blockchain ledger) of the client device 208A.
[0039] The collaboration network 204 may include a plurality of computer resources, including, for example, computer devices 210A through 210D. Each of the computer devices 210A through 210D may be an instance of the client computer 101 of Fig. 1 or elements thereof. In implementations, the computer units 210A to 210D are participants in an authorized blockchain network. In aspects of the invention, each of the computer units 210A to 210D receives computer-readable program instructions to cause a series of operations to be performed by processor groups (e.g., the processor group 110 of Fig. 1) of the respective computer units 210A to 210D, thereby effecting a computer-implemented process which will be discussed in more detail below.
[0040] The computer-readable program instructions of the computer units 210A to 210D can be stored as one or more modules in various types of computer-readable storage media (e.g., the permanent memory 113 of Fig. 1). For example, the computing device 210A is illustrated as including: a blockchain ledger module 230 configured to update and manage a blockchain ledger of the computing device 210A; a data module 231 configured to access data (raw data) in one or more storage modules 250 for use as computational inputs in an MPC protocol; and a representative module 240 configured to execute MPC protocols in response to incoming data requests.
[0041] As in the example of Fig. 2, the representative module 240 may include a query module 241 configured to process an incoming data query / request and initiate a corresponding MPC protocol in response to the data query / request; an encryption module 242 configured to encrypt an output (MPC output) of the computing device 210A based on encryption information provided in the data query / request; and a verification module 243 configured to generate and provide a computational proof with the output in response to the data query / request. It should be understood that other computing devices 210B-210D (blockchain nodes) in the collaborative network 202 may perform the same functions and / or include the same modules as the example computing device 210A.
[0042] The collaboration network 206 may include a plurality of computer resources, including, for example, computer devices 210A' through 210D'. Each of the computer devices 210A' through 210D' may be an instance of the client computer 101 of Fig. 1 or elements thereof. In implementations, the computer units 210A' to 210D' are participants in an authorized blockchain network. In embodiments, each of the computer units 210A' to 210D' receives computer-readable program instructions to initiate a series of operations performed by processor groups (e.g., the processor group 110 of Fig. 1) of the respective computer units 210A' to 210D', thereby effecting a computer-implemented process which will be discussed in more detail below.
[0043] In the example of Fig. 2, the computer unit 210A' includes the same modules as the computer unit 210A and is configured to perform the same functions as described above with reference to the computer unit 210A. It should be understood that other computer units 210B' to 210D' (blockchain nodes) in the collaborative network 202 may perform the same functions and / or include the same modules as the example computer unit 210A'.
[0044] In implementations of the invention, one of the computer units 210A to 210D of the participation network 204 is selected as a representative node P1 to participate in an MPC protocol jointly performed by a plurality of participation networks (e.g., the participation networks 204 and 206). Likewise, in implementations of the invention, one of the computer units 210A' to 210D' of the participation network 206 is selected as a representative node P2 to participate in the MPC protocol. In the example of Fig. 2, the computer unit 210A is selected as a representative node P1 of the participation network 204, which is a first authorized blockchain network, and the computer unit 210A' is selected as a representative node P2 of the participation network 206, which is a second authorized blockchain network.
[0045] Each of the client units 208A to 208D, the computer units 210A to 210D, and the computer units 210A' to 210D' may include additional 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 set of units and / or networks in the collaborative computing environment 201 is not limited to that shown in Fig. 2. For example, additional participating networks (e.g., blockchain networks) may be included in the computing environment in collaboration 201. In practice, the computing environment in collaboration 201 may include additional units and / or networks; fewer units and / or networks; different units and / or networks; or differently arranged units and / or networks than in Fig. 2 illustrates.
[0046] Fig. Figure 3 illustrates data transfers between participating networks according to aspects of the present invention. Elements of Fig. 3 can be found in the area of Fig. 2 and are described with reference to elements shown in Fig. 2 are shown.
[0047] In the example of Fig. 3, the client unit 208A is the requesting data processing system N R , which sends MPC requests or queries 300 to each of a plurality of participating networks N1, N2...N k sends (including, for example, the participation networks 204 and 206 of Fig. 2) to initiate a computation across blockchain networks according to embodiments of the invention. The MPC requests 300 comprise a computation function f that is generated from data (e.g., raw data from the storage modules 250, 250') from the participating networks N1-N k, is to be calculated, and a query Q, which represents the participating networks N1 to N k and those of the participating networks N1 to N k requested data. Each participating network N1 to N k executes an MPC protocol in cooperation with the other participating networks to generate respective outputs d1, d2...d k In addition, each participating network sends N1 to N k its final output, generated based on the computational function f, to the requesting data processing system N R In this way, the requesting data processing system N R generate a final output D of aggregated derived data that is available to the requesting data processing system N R useful. It should be clear that different data (e.g. raw data) from the different participating networks N1 to N k, may be required to perform the desired computational function f. While the raw data may be confidential, the index module 221 may be confidential to the requesting data processing system N R specify the type of information to be transmitted by each of the participating networks N1 to N k , are available, so that the MPC requests 300 are generated and sent to the corresponding participating networks N1 to N k can be sent that are necessary to perform the computational function f in cooperation.
[0048] In embodiments, a system and method for a recipient network (e.g., the requesting data processing system N R ) to aggregate processed data from multiple participating networks (N1, ..., N k ) ensuring: Validity of the inputs (inputs to the processing provided by the individual networks N1, ..., N kare valid according to the consensus rules of the providing network); validity of the calculation (N R can verify that the processing is carried out correctly); high availability (it provides robustness against the failure of each individual network member N1, ..., N k during private computation); and data confidentiality. In implementations, data confidentiality is ensured: (1) towards other networks (each participating network N1, ...,N k does not obtain any further information about data in other participating networks in the process); (2) to the receiving network (N R does not gain knowledge of raw data in any participating network N1,...,N k ); and (3) on result confidentiality (participating networks N1,...,N kgain no knowledge of the result, except what they learn from their own input and the calculation description).
[0049] Fig. Figure 4 shows a flowchart of an exemplary MPC method from the perspective of a requesting data processing system according to aspects of the present invention. Steps of the method may be performed in the environment of Fig. 2 and are described with reference to elements shown in Fig. 2 are shown.
[0050] In a step 400, a requesting node (hereinafter data processing system N R ) at least one blockchain network (e.g., 204, 206) and one or more other blockchain networks and / or computing entities (e.g., non-blockchain or standalone entities) to be included in a multi-party computation (MPC). In the example of Fig. 2 the data processing system NR represented by the client unit 208A. In implementations, the data processing system N R which blockchain networks and / or data processing units should be included in the MPC request from a list of possible networks and / or data processing units in an index, wherein the index assigns types of data to the listed networks and / or data processing units. In aspects, an index of a plurality of blockchain networks and / or data processing units indicates a type of data available from each of the plurality of blockchain networks and / or data processing units. Based on the type of information provided by the data processing system N R , are required, the data processing system N Rdetermine which blockchain networks and / or data processing units should be included in the MPC request based on the index. The data processing system N R may be a requesting node that is part of a network, such as a permissioned blockchain network, or may be a single computing system or entity. In embodiments, step 400 is implemented by the index module 221 of the client entity 208A.
[0051] In a step 401, the data processing system N generates R MPC requests or queries (e.g. 300) and sends them to at least one selection-participating blockchain network N1 to N k(e.g., the participation networks 204, 208) and the other participating blockchain network(s) or the computing device(s) (e.g., 208B to 208D) based on the determination in step 400. In implementations, the computing system N R the MPC requirement for network addresses assigned to the participating blockchain networks N1 to N k and / or the selection data processing unit(s) based on the determination in step 400 and information (e.g., addresses) from the index module 221. In one example, the data processing system N generates R an MPC request and sends it to at least one node of a blockchain network and another participating computing unit that is not part of a blockchain network.
[0052] In embodiments, each MPC request includes information necessary for each of the participating blockchain networks (e.g., 204, 206) and / or one or more other selecting computing devices to identify the other participating blockchain networks and / or one or more computing devices, as well as the type of information sought by each of the participating blockchain networks and / or one or more computing devices, such that a representative node of each participating blockchain network and / or each selecting computing device can participate in an MPC protocol with each other. In implementations, data transmission between the representative nodes and / or computing devices is performed using a cross-network data transmission protocol.It should be understood that various cross-network data sharing protocols may be used in accordance with embodiments of the invention, and that the invention is by no means intended to be limited to any particular cross-network data sharing protocol. The term "cross-network data sharing protocol," as used herein, refers to a set of established rules that determine how data shall be formatted, transmitted, and received between the participating blockchain network(s) and / or the participating computing entity(ies) (cross-network data transfers) such that the integrity of the underlying blockchain network(s) and / or the computing entity(ies) is maintained. In implementations, each round of computations or steps in the MPC protocol is performed collaboratively by the participating blockchain network(s) and / or computing entity(ies).the participating blockchain networks and / or the selected data processing unit(s), with each participating blockchain network conducting its local transactions based on the local state in its ledger (blockchain ledger) and the data obtained from cross-network data transfers. In embodiments, transactions conducted between the participating blockchain networks constitute blockchain transactions, which are recorded in the respective distributed blockchain ledgers.
[0053] In embodiments, each MPC request comprises at least one computation function f that is executed in cooperation by a node (e.g., the computer units 210A to 210D or 210A' to 210D') of at least one of participating blockchain networks N1 to N kand at least one other participating data processing unit (e.g. a node of another participating blockchain network) during an MPC protocol, where a query Q is to be calculated by the participating networks N1 to N k and / or one or more other data processing units and data that are used by each of the participating networks N1 to N k and / or one or more other data processing units. In implementations, the MPC request further includes a request made by the data processing system N R selected verification policy that is stricter or more relaxed than the verification policies of the participating blockchain networks N1 to N kand / or the participating data processing unit(s). In aspects of the invention, the verification policy differs across the different blockchain networks N1 to N k and / or the computing device(s). In embodiments, the MPC request also includes encryption data specifying an encryption algorithm to be used in response to the MPC request. In embodiments, step 401 is implemented by the request module 220 of the client device 208A.
[0054] In a step 402, the data processing system N receives R an MPC response to the MPC request, including a computational output (MPC output) and an associated computational proof from each participating blockchain network N1 to N k(e.g., 204, 206) and / or each computing device. In embodiments, all MPC responses of the participating blockchain networks and / or computing devices are the same (i.e., they are a common output). In aspects of the invention, the computational proof provides a seamless provenance for the creation of the computational output of the MPC protocol. Furthermore, the computational proof may provide a guarantee regarding the validity of the computational inputs to the computing system N R , as well as provide a guarantee regarding the correctness of the computational output. In implementations, each response includes data encrypted based on the encryption data provided in the MPC request. In embodiments, step 402 is implemented by the request module 220 of the client device 208A.
[0055] Optionally, the data processing system N decrypts Rin a step 403, encrypted MPC responses or encrypted data received with the responses. In implementations, the data processing system N decrypts R encrypted data in the MPC responses by using a private key before forwarding the decrypted data with the computational proof to a smart contract for verification and consensus in a step 404. In embodiments, step 403 is implemented by the data module 222 of the client device 208A.
[0056] In step 404, the data processing system N verifies R the computational proofs of each of the participating blockchain networks N1 to N kand / or computing devices by utilizing a smart contract. In implementations, the smart contract is a smart contract for integrity validation of MPC results, comprising a computer program configured to automatically perform actions (e.g., updating a blockchain ledger) when the MPC response meets the validation requirements of a predetermined agreement. For example, the smart contract can also be used to determine whether a minimum number of signatures is present in the computational proof. In embodiments, step 404 is implemented by the verification module 223 of the client device 208A.
[0057] Optionally, the data processing system N Rin a step 405, performs one or more calculations by utilizing at least one computational output from the MPC responses, thereby generating a new MPC output. Each of the data processing system N R The desired calculation may be performed in step 405, and embodiments of the invention are by no means intended to be limited to any particular calculations. For example, the data processing system N may R perhaps calculate a sum, mean, average, or other calculation based on the data in the MPC output. In embodiments, step 405 is implemented by the data module 222 of the client device 208A.
[0058] Optionally, the data processing system N updates Rin a step 406, a blockchain layer based on the results received in step 402 and / or the new MPC output generated in step 405. One skilled in the art should understand how a blockchain ledger is updated. In implementations, the data processing system N R a new block on the blockchain ledger comprising the results received in step 402, a new hash value derived from the results, and a hash value of a previous block in the blockchain ledger. In aspects, step 406 is implemented in response to verification of the computational evidence in step 404. In embodiments, step 406 is implemented by the ledger module 224 of the client device 208A.
[0059] In embodiments, the data processing system N Rbe configured to initiate an MPC protocol based on a request received from a user (e.g., via a client device of environment 201), such as via a user interface provided by data processing system N R is provided.
[0060] Optionally, the data processing system generates N Rin a step 407, a final result based on the MPC responses and / or the new MPC output and sends the final result to a user who requested the information (e.g., via client device 210D). In implementations, the final result comprises a result from calculating the function f of the MPC request. In embodiments, the final result comprises a result calculated from one or more additional calculations based on input from the MPC responses. In embodiments, step 407 is implemented by the request module 220 of the client device 208A.
[0061] Fig. Figure 5 shows a flowchart of an exemplary MPC method from the perspective of a participating blockchain network according to aspects of the present invention. Steps of the method can be performed in the environment of Fig. 2 and are described with reference to elements shown in Fig. 2. For each blockchain network (e.g. 204, 206) that receives an MPC request from a data processing system N R receives, the following steps are performed. In aspects of the invention, before starting an MPC protocol, a blockchain network selects a representative, which may be a single blockchain node (e.g., computing unit 208A) or a group of blockchain nodes (e.g., computing units 210A and 210B). Each representative of a blockchain network must have a signature that satisfies the verification policy of the MPC requirement. For simplicity, the representative will be referred to below as representative node P1 of the selection blockchain network N1.
[0062] In a step 500, a representative node P1 (e.g., the computer unit 210A of the participation network 204) of a selection blockchain network N1 receives an MPC request (e.g., the query 300) from the data processing system N R (e.g., the client unit 208A) according to step 401 of Fig. 4. In implementations, the MPC request comprises at least one computation function f to be calculated in cooperation by the representative node P1 and one or more other representative nodes of selection blockchain networks and / or other selection data processing units during an MPC protocol, as well as the data required for the computation function f from each participant. In aspects of the invention, the MPC request further comprises a computation function f to be calculated by the data processing system N R selected verification policy.
[0063] In implementations of the invention, the MPC request is addressed to the representative node P1 by another data processing node (e.g. 210D) of the blockchain network N1, which first receives the MPC request from the data processing system N R receives. In embodiments, a computing unit of the selection blockchain network N1 selects one or more nodes of the blockchain network N1 to act as a representative for initiating / managing an MPC protocol according to the MPC request. In the example of Fig. 2, a representative module 240, which is integrated into the computer unit 210A or is in data communication with it, receives the MPC request from the data processing system N R and randomly selects the computer unit 210A as the representative node P1. In embodiments of the invention, no trust assumptions about the representative node P1 are required.
[0064] Embodiments of the invention offer the advantage of interchangeability of the computing node (e.g., P1) representing a participating blockchain network. One advantage of interchangeability is that all representatives (e.g., the representative node P1) are responsible for their actions, and their steps can be actively and passively audited. In implementations, active audits of a representative node are performed via a smart contract that verifies that a computation of a next step is correct, and that approval of the computation is part of the verification policy (authentication policy). In aspects of the invention, passive audits can be performed after a computation has been computed, and the computation can be recomputed to verify that each step was executed correctly.
[0065] In a step 501, the representative node P1 initiates steps of an MPC protocol and carries them out with at least one other representative node (e.g. P2) of another blockchain network N k or at least one other computing device 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 policy of the MPC request. In embodiments, computing devices other than the representative nodes of blockchain networks also participate in the MPC request.
[0066] In implementations, the representative node P1 queries its blockchain network N1 to obtain intermediate data from i (e.g. from the memory modules 250) which, together with the proof of the correctness of the iare to be input into the MPC protocol. An MPC protocol can be divided into rounds (steps), where in each round a participant (e.g., a representative node of each blockchain network) calculates a next message to be sent to other participants (e.g., other representative nodes) as a function of a current history and newly chosen randomness for that round. To enable replicability of the representative node, each step of the MPC calculation is tracked on the blockchain (e.g., via the blockchain ledger module 230), as described herein, for example, in step 502. In embodiments, the query module 241 of the representative node P1 implements step 501. An illustrated example of an MPC protocol according to embodiments of the invention is described below with reference to Fig. 6 discussed.
[0067] In step 502, the representative node P1 records the steps of the MPC protocol as data blocks in a blockchain ledger. For each round or step of an MPC protocol, a current representative node publishes on the blockchain: (1) messages received from the other participating node(s) and / or the compute(s), and (2) a chosen randomness for that round. In implementations, for example, for each step of the MPC protocol, a block is stored on the blockchain ledger including the message or results received from the other participating node(s) and / or the compute(s), a hash value derived from the message or results, and a hash value of a previous block in the blockchain ledger.This is sufficient to: (1) verify the entire computation performed by the representative node P1 at this time, and (2) continue the computation from the last round stored on the blockchain ledger. In embodiments, the blockchain ledger module 230 of the representative node P1 implements step 502.
[0068] In a step 503, the representative node P1 generates a computational proof of the output computation that conforms to the verification policy of the MPC request. In embodiments, a computational proof is a computer-assisted proof (e.g., proof by case discrimination) of a mathematical theorem that provides a proof that the result of computations implies the particular theorem. The type of computational proof that may be utilized by embodiments of the present invention is not limited to a particular computational proof, and one skilled in the art could determine the computational proof corresponding to a particular MPC protocol. In implementations, the computational proof provides for the data processing system N Rindicates that the entity of representative node P1 (e.g., 210A) was chosen as a representative of the blockchain network to respond to the MPC request. In aspects of the invention, the computational proof provides a complete provenance for the creation of the computational output (e.g., based on the data blocks recorded in at least one blockchain ledger).
[0069] In implementations, the intermediate data d1 generated in the MPC protocol rounds (steps) is verified via a smart contract at the respective representative node. The smart contract verifies the following: (1) the input selected by the representative node; (2) the computation; (3) the data transmitted to other nodes of blockchain networks and / or data processing units; and (4) the data removed from other nodes of blockchain networks and / or other data processing units. Alternatively, this verification can occur after each round of the MPC protocol. If all verifications are successful at the end of the MPC protocol, the blockchain ledger record with the confirmations of the network participants forms a proof of the correctness of the MPC result / output. In embodiments, the verification module 230 of the representative node P1 implements step 503.
[0070] Optionally, in a step 504, the representative node P1 encrypts data (e.g., the output of the MPC protocol) to be included in a response to the MPC request. In embodiments, the encryption module 242 encrypts data based on the encryption data provided in the MPC request.
[0071] In a step 505, the representative node P1 sends the generated MPC output, which may be encrypted, to the data processing system N R in the response to the MPC request together with the computational evidence generated in step 503. In embodiments, the representative module 240 of the representative node P1 implements step 505.
[0072] It should be clear that steps 500 to 505 are also performed by other participating representative nodes of other selected blockchain networks (e.g., the representative node P2 of the blockchain network N k ) to generate a calculation based on the calculation function f in cooperation, so that the data processing system N R receives an MPC output from each of the selected participating blockchain networks in response to an MPC request received from the data processing system N R was received. Likewise, other participating data processing units may perform the steps of Fig. 5, except that computing entities that are not part of blockchain networks do not record steps of the MPC protocol as data blocks in a 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 discussed herein. In embodiments, all MPC outputs from the participating blockchain networks are the same (i.e., they are a common output). In aspects, receiving the same MPC output from each of the selected blockchain networks may indicate successful completion of the MPC protocol.
[0073] Fig. Figure 6 illustrates an exemplary three-stage MPC protocol between representative nodes of three blockchain networks according to aspects of the present invention. Fig. 6 illustrated steps can be used in the calculation environment in collaboration 201 of Fig. 2 according to step 501 of Fig. 5 be carried out.
[0074] In the example of Fig. 6, a representative node P1 of a blockchain network exchanges data with other representative nodes P2 and P3 of other participating blockchain networks. In implementations, each blockchain network that receives an MPC request from the data processing system N R receives a representative node (e.g., P1, P2, P3) that records sufficient intermediate data from the MPC protocol on a shared distributed blockchain ledger using blockchain transactions. This allows each blockchain network to validate the actions of the representative nodes (e.g., P1, P2, P3) and improves the system's fault tolerance.
[0075] With continued reference to Fig. 6, all of the representative nodes P1, P2, P3 exchange data with each other using a cross-network data sharing protocol. It should be understood that various cross-network data sharing protocols may be used according to embodiments of the invention, and that the invention is in no way 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 data must be formatted, transmitted, and received between blockchain networks. Each representative node P1, P2, P3 generates data d1, d2, d3 required to perform cross-network computations. For example, in step 1, the representative node P1 generates intermediate data X. 11 , X 12 , X 13which are to be used by the representative nodes P1, P2, P3 to generate respective outputs 600A, 600B, 600C in a step 2 of the MPC protocol.
[0076] In implementations, each step of the MPC protocol is performed by the representative nodes P1, P2, P3, and each representative node P1, P2, P3 signs an output, where the output is only accepted by another of the representative nodes P1, P2, P3 if it is accompanied by enough signatures according to the verification policy of the MPC request. In embodiments, the verification policy is an authentication policy that represents an assumption of trust regarding the source of a particular message. If a message is accompanied by enough signatures that satisfy the policy, the message is considered authentic. In implementations, each participant (via a representative node P1, P2, P3) uses the same authentication policy.
[0077] For example, the representative node P3 can output intermediate data X 31 in a transaction 602 to the representative node P1 with a confirmation of origin (proof that X 31 recorded in the shared blockchain ledger of P3). The representative node P1 can then process the intermediate output X 31 to create another intermediate output (Y 11 , Y 12 , Y 13 ) to calculate / generate. The intermediate output data Y 13can then be sent in a transaction 604 from the representative node P1 to the representative node P3 to be used in a computation in step 3. The final MPC output of each representative node P1, P2, P3 obtained by the computations of steps 1 to 3 is shown under z. In embodiments, a representative node computes a proof in each step that the next message has been correctly computed. If the proof is a zero-knowledge proof (ZKP), the proof can be provided to the other MPC members (other representative nodes); otherwise, the proof can be verified by the other node(s) forming the representative, and signatures are appended to the next message (executed policy).
[0078] According to embodiments of the invention, input certifiability ensures that a participant (via a representative node) uses the correct input (e.g., X1) to participate in the MPC protocol. To achieve this, a certification procedure is applied to the function f to be computed. In one example, the function to be computed by the participating blockchain networks is f = f (x_1,...x_n). Instead of computing f, each participating blockchain network (via its representative node(s)) computes F such that each input x_i consists of the data x_i' and a set of signatures over x_i'. For each i, F has a verification policy against which the accompanying signatures are checked. If, for each input, the relative verification policy is met, the computation proceeds by computing f.In this way, the inputs remain confidential for each participating blockchain network, and at the same time, all participating blockchain networks receive a guarantee that inputs in f are verified.
[0079] Fig. Figure 7 is a workflow diagram illustrating a privacy-preserving data transfer protocol between participants in a collaborative data processing process according to aspects of the present invention. In particular, Fig. 7 an MPC protocol that cooperates for a requesting node P R (e.g. the client unit 208A) of the data processing system N R by a first representative node P1 of a first blockchain network N1, a representative intermediate node P i a second blockchain network N i and a final representative node P k another blockchain network N kAs illustrated in block 700A and block 700B, the representative nodes P1, P i and P k MPC intermediate results by using a cross-network data sharing protocol. In this example, a quorum of parties / blockchain nodes is required to comply with the verification policy. In the example of Fig. 7, the first representative node P1 receives in a step 701 confirmations from a quorum of nodes of the first blockchain network N1, in a step 702 the representative intermediate node P i Confirmations from a quorum of nodes of the second blockchain network N i , and in a step 703, the final representative node P k Confirmations from a quorum of nodes of the other blockchain network N k . Each of the participating blockchain networks N1, N i and Nk contributes to the MPC protocol by using the illustrated privacy-preserving transmission protocol of Fig. 7 without gaining knowledge of each other's confidential data. The requesting node P R verifies confirmations and accepts the results in a step 704.
[0080] Fig. Figure 8 illustrates an exemplary system architecture for implementing the methods of Fig. 4 and Fig. 5 according to aspects of the present invention. In Fig. 8 illustrated steps can be found in the area of Fig. 2 and are described with reference to elements shown in Fig. 2 are shown.
[0081] In the example of Fig. 8, the client unit 208A is a query / response client that sends MPC requests (queries) to selection blockchain networks N1 and N ktransmits, whereby an MPC protocol is implemented by selection representative nodes P1 and P k the respective blockchain networks N1 and N k according to embodiments of the invention to return an MPC response, as indicated in step 800. In this example, the client unit 208A is a data processing system N R in a peer-to-peer network 802 and includes one or more software applications 804 configured to generate and send the MPC request (e.g., the request module 220, smart contracts 806, and blockchain ledger 808). Generally, smart contracts comprise a computer program or transaction protocol designed to automatically execute, control, or document legally relevant events and actions according to the terms of a contract or agreement. The smart contracts 806 of Fig. 8 enable the client device 208A to generate a data proof verification 810 and an MPC result integrity verification 811. In implementations, the blockchain ledgers 808 provide identifying information for participating networks 812, verification policies for remotely located data 813, and storage for MPC results 814.
[0082] In response to receiving the MPC request from the client unit 208A, the selection representative nodes P1 and P k in cooperation, perform an MPC protocol, represented in a block 820, to calculate a function f by using multiple steps or rounds of calculations to generate MPC protocol intermediate outputs 822. Once the MPC protocol 820 is completed, each of the representative nodes P1 and P ka final MPC output 824 to the requesting client unit 208A together with a respective data proof verification 826A, 826B. Each representative node P1 and P k records the outputs from the MPC rounds and associated evidence (e.g., in blockchain ledgers), as specified in 828A, 828B, and generates a respective verification of the MPC result integrity 830A, 830B. In the example of Fig. 8 each representative node stores P1 and P k identifying information for participating networks 832A, 832B and verification policies for remotely located data 834A, 834B. Each representative node P1 and P kreceives inputs from the other representative node and sends outputs to the other representative node during the MPC protocol, as specified at 836A, 836B, and generates concise proofs of correctness of the outputs, as specified at 838A, 838B. In implementations, the data proof verification 826A, 826B is used in validating data obtained through cross-network data sharing, and the MPC result integrity verification 830A, 830B is used to ensure that each representative node P1 and P k correctly performs the MPC protocol steps by using a local ledger state and data obtained through cross-network data sharing from the other participating networks.
[0083] Based on the foregoing, it can be seen that embodiments of the invention provide the following: (1) Authentication: other participants can authenticate messages coming from a blockchain network (where the blockchain network acts as a single logical entity); (2) Interchangeability / Robustness: it does not matter which blockchain nodes form the single logical entity participating in an MPC protocol (the nodes of the blockchain network can change themselves during the execution of the MPC protocol); (3) Accountability: the nodes of the blockchain network that form the single logical entity are accountable; (4) Input Certifiability: the blockchain network can prove that an output X1 actually comes from its blockchain ledger;(5) Result certification: the party that initiated the computation receives the computation result, which is verified by the participating blockchain networks; and (6) interoperability between decentralized / centralized systems as MPC protocol participants.
[0084] In embodiments, a service provider could offer to perform the processes described herein. In this case, the service provider may create, manage, deploy, support, etc., the computer infrastructure that performs the process steps of the invention for one or more customers. These customers may, for example, be any company that uses technology. The service provider, in turn, may receive payment from the customer(s) via 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-party providers.
[0085] In still further embodiments, the invention provides a computer-implemented method over a network. In this case, a computer infrastructure, such as the computer 101 of Fig. 1, and one or more systems for performing the processes of the invention may be obtained (e.g., created, acquired, used, modified, etc.) and provided to the computer infrastructure. As such, providing a system may include at least one of: (1) installing program code from a computer-readable medium on a data processing device such as the computer 101 of Fig.1; (2) adding one or more data processing units to the computer infrastructure; and (3) integrating and / or modifying one or more existing systems of the computer infrastructure to enable the computer infrastructure to perform the processes of the invention.
[0086] The descriptions of the various embodiments of the present invention have been prepared for illustrative purposes, but are by no means intended to be exhaustive or limited to the disclosed embodiments. Many modifications and variations will be apparent to those skilled in the art without departing from the scope of the described embodiments. The terminology used herein has been chosen to best explain the principles of the embodiments, practical application, or technical improvement over current technologies, or to enable others skilled in the art to understand the disclosed embodiments.
Claims
[1] 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 indicating a type of data available from each of the plurality of blockchain networks and computing devices; Generating, by the data processing system, an MPC request including at least one computational function to be performed in cooperation between the selection blockchain network and the selection data processing unit, data required for at least one computational function by each of the selection blockchain network and each of the selection data processing units, and a verification policy defining at least one verification protocol to be performed by each of the selection blockchain network and each of the selection data processing units; Sending, by the data processing system, the MPC request to each selection blockchain network and each selection data processing unit over a network connection; and Receiving, by the data processing system, a response from a representative data processing node of the selection blockchain network and a response from the selection data processing unit, each of the responses comprising: an MPC output of an MPC protocol performed by the selection blockchain network and the selection data processing unit to jointly calculate the at least one computation function from inputs of the respective selection blockchain network and the respective selection data processing unit, wherein the respective inputs are kept confidential from each other and confidential from the data processing system; and a mathematical proof based on the verification guideline. [2] The method of claim 1, further comprising verifying, by the data processing system, the computational evidences of the respective answers by utilizing a smart contract. [3] The method of claim 2, wherein the selection data processing unit comprises a representative data processing node of another selection blockchain network, and the selection blockchain network comprises at least two blockchain networks, such that at least three selection blockchain networks participate in the MPC, and wherein the smart contract verifies for each of the selection blockchain networks: - a data input selected by one of the representative data processing nodes; a calculation of the MPC output, - data transmitted by one of the representative data processing nodes to other of the representative data processing nodes, and - Data received by one of the representative computing nodes from the other of the representative computing nodes. [4] The method of claim 1, wherein the MPC output from the selection blockchain network and the MPC output from the selection computing unit are identical and have a common output. [5] The method of claim 4, further comprising determining, by the data processing system, a validity of the MPC outputs as a result of determining that each selection blockchain network and each selection data processing unit has provided the joint output, wherein the joint output confirms the validity of the MPC outputs. [6] The method of claim 1, wherein the MPC outputs are encrypted based on information provided in the MPC request, the method further comprising decrypting, by the data processing system, the MPC outputs based on the information. [7] The method of claim 1, further comprising performing, by the data processing system, at least one calculation by utilizing the MPC output from the selection blockchain network or the MPC output from the selection data processing unit, thereby generating a calculation result. [8] The method of claim 1, wherein the data processing system is a node of another blockchain network, the method further comprising updating, by the data processing system, a blockchain ledger of the data processing system based on the received MPC outputs. [9] The method of claim 1, wherein for the voting blockchain network, the validation proof is based on recorded MPC protocol steps of the MPC protocol executed between the representative computing node of the voting blockchain network and the voting computing unit. [10] The method of claim 1, wherein the data processing system comprises 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 comprising at least one computational function to be performed cooperatively by the plurality of blockchain networks, data inputs required for the at least one computational function, and a verification policy defining at least one verification protocol to be performed by each of the plurality of blockchain networks; and Receiving a response from respective representative computing nodes of the plurality of blockchain networks, each of the responses comprising: an MPC output; and a mathematical proof based on the verification guideline, wherein the MPC output is calculated jointly by the plurality of blockchain networks using an MPC protocol, wherein raw data of the respective plurality of blockchain networks is kept confidential from each other, and where the MPC output is calculated from the raw data from the majority of blockchain networks, but does not disclose it. [12] The computer program product of claim 11, wherein the program instructions are further executable to verify the computational proofs of the respective responses by utilizing a smart contract, wherein the computational proofs provide seamless provenance of a collaborative computation of the MPC outputs by the plurality of blockchain networks by utilizing the MPC protocol. [13] The computer program product of claim 12, wherein the smart contract verifies for each of the plurality of blockchain networks: - a data input selected by one of the representative data processing nodes; a calculation of the MPC output, - data transmitted by one of the representative data processing nodes to another of the representative data processing nodes, and - Data received by one of the representative computing nodes from the other of the representative computing nodes. [14] The computer program product of claim 11, wherein each of the plurality of blockchain networks selects the raw data to be used in the MPC protocol based on the data inputs in the MPC request, thereby ensuring validity of inputs to the MPC protocol. [15] The computer program product of claim 11, wherein the program instructions are further executable to determine a validity of the MPC outputs as a result of determining that each of the plurality of blockchain networks has provided a common output, the common output confirming the validity of the MPC outputs. [16] The computer program product of claim 11, wherein the MPC outputs are 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 are further executable to perform at least one computation by utilizing the MPC output from one of the plurality of blockchain networks, thereby generating a computation result. [18] System that has: a processor group, 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 to: Receiving a multi-party computation (MPC) request from a remote computing system, the MPC request comprising at least one computation function to be performed cooperatively by the first blockchain network and a second blockchain network, data inputs 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 and second blockchain networks; Initiating and executing steps of an MPC protocol with the second blockchain network, thereby collaboratively generating 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 calculated jointly by the first and second blockchain networks using the MPC protocol, wherein raw data of the respective first and second blockchain networks are kept confidential from each other, and is calculated from raw data from the first and second blockchain networks, but which is not disclosed to the remote data processing system, and wherein each of the first and second blockchain networks selects the raw data to be used in the MPC protocol based on the data inputs in the MPC request, thereby ensuring the validity of inputs to the MPC protocol; and Sending the MPC output to the remote data processing system in response to the MPC request. [19] The system of claim 18, wherein the program instructions are further executable by the at least one representative computing unit of the first blockchain network to: Generating a computational proof of the computational function; and sending the computational proof to the remote data processing system. [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 encryption data provided in the MPC request.