Hiding the internal state of a computer network
Patent Information
- Application Number
- JP2025528882
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2022-11-17
- Filing Date
- 2023-11-16
- Publication Date
- 2025-11-28
Smart Images

Figure 2025538500000001_ABST
Abstract
Description
[Technical Field]
[0001] TECHNICAL FIELD Implementations of the present disclosure relate generally to data privacy within computer systems, and more particularly to hiding the internal state of a computer network during data matching methods. [Background technology]
[0002] A computer system may include several computing devices communicatively coupled via at least one network. Some computer systems may enable transactions to be conducted between entities (e.g., client devices). A transaction may refer to the exchange of assets from at least one entity to at least one other entity. Summary of the Invention [Means for solving the problem]
[0003] The present disclosure will be more fully understood from the detailed description given below and from the accompanying drawings of various implementations of the present disclosure, which should not be construed to limit the present disclosure to any particular implementation, but are merely for illustration and understanding. [Brief explanation of the drawings]
[0004] [Figure 1] FIG. 1 illustrates an exemplary computing system including a computer system, in accordance with some implementations of the present disclosure. [Figure 2A] 1 is a flow diagram of an example method for implementing data matching that hides the internal state of a computer system, according to some implementations of the present disclosure. [Figure 2B] 1 is a flow diagram of an example method for implementing data matching that hides the internal state of a computer system, according to some implementations of the present disclosure. [Figure 3A]FIG. 1 illustrates an example method for implementing data matching that hides the internal state of a computer system, according to some implementations of the present disclosure. [Figure 3B] FIG. 1 illustrates an example method for implementing data matching that hides the internal state of a computer system, according to some implementations of the present disclosure. [Figure 3C] FIG. 1 illustrates an example method for implementing data matching that hides the internal state of a computer system, according to some implementations of the present disclosure. [Figure 3D] FIG. 1 illustrates an example method for implementing data matching that hides the internal state of a computer system, according to some implementations of the present disclosure. [Figure 4] FIG. 1 is a block diagram of an exemplary computer system in which implementations of the present disclosure may operate. DETAILED DESCRIPTION OF THE INVENTION
[0005] Aspects of the present disclosure are directed to hiding the internal state of a computer network. A computer system may include one or more client devices communicatively coupled to at least one processing device (e.g., a server). An entity may send a set of data indicating a quantity of an asset to be traded with another entity to a central computing device via the client device. In some implementations, the asset is a physical asset. In some implementations, the asset is a digital asset. Examples of assets include securities (e.g., stocks, bonds, and derivatives), currencies (e.g., cryptocurrencies or fiat currencies), commodities, etc.
[0006] In some implementations, a computer system implements a crossing network. To implement a crossing network, the computer system may include at least one processing device for receiving orders from entities (e.g., client devices) and executing electronic transactions between the entities without first routing the orders to a central exchange or other electronic market. Thus, a crossing network can be used to facilitate private transactions between entities within the computer system. Because crossing network transactions occur outside of a public exchange, a crossing network can enable privacy (e.g., anonymity of the parties). Furthermore, a crossing network can be used to prevent changes to the price of an asset, thereby reducing or eliminating its impact on the asset price on the public exchange.
[0007] In a crossing network, at least one processing device may receive a set of data representing an order from an entity. The order may define a quantity of a particular type of asset. In some implementations, the order is a buy order defining a quantity of an asset the entity wants to buy. In some implementations, the order is a sell order defining a quantity of an asset the entity wants to sell. In some implementations, a first order defines a quantity of a first asset and a second order defines a quantity of a second asset different from the first asset. In some implementations, the crossing network is a digital asset crossing network for executing transactions between digital assets. In some implementations, the digital assets are fungible tokens, the first digital asset is a first fungible token, and the second digital asset is a second fungible token. For example, the fungible token may be a digital coin.
[0008] At least one processing device can execute a trade in the crossing network by matching units of a first asset from a first side (e.g., the buyer side) of the crossing network with respective units of a second asset from a second side (e.g., the seller side) of the crossing network. A unit of an asset refers to a specific amount (e.g., a minimum quantity) of an asset that can be matched during a trade. That is, each unit defines a trade size granularity for a particular asset. For example, the at least one processing device can match units of a digital asset on the buyer side with units of a digital asset on the seller side. As another example, the at least one processing device can match units of a first digital asset on the first side with units of a second digital asset (different from the first digital asset) on the second side. The at least one processing device can determine the quantity of units of the asset in the order from the quantity of the asset in the order (e.g., by dividing the quantity of the asset by the minimum quantity).
[0009] In some implementations, the value of a first asset on a first side of a crossing network may differ from the value of a second asset on a second side of the crossing network. To match units of a first asset to units of a second asset, either the units of the first asset or the units of the second asset may be determined by converting the value of either the first asset or the second asset into the corresponding value of the second asset or the first asset, respectively. The computer system may support transactions involving multiples of units. As an illustrative example, assume that if the first asset is A and the second asset is B, then 1A = 10.4B. If one unit of A is 0.5A, then one unit of B is 5.2B. The crossing network then only supports transactions involving multiples of these units (e.g., 5.2B, 10.4B, 15.6B, etc.).
[0010] Some computer systems can use encryption to improve data privacy for a set of data provided by a client device. However, encryption may not protect against data privacy leaks caused by extracting information from the trade execution itself. More specifically, a set of properties of the trade execution may be obtained. The set of properties may include or be used to infer the internal state of the computer system. The internal state of a computer system may include private information about the state of the computer system at a given time, which should be hidden from the public to maintain the integrity and / or security of the computer system. For example, in a crossing network, the internal state may include the net demand for an asset. The net demand for an asset may be defined as the difference between the total quantity of the asset on a first side and the total quantity of the asset on a second side. To obtain the set of properties, a malicious actor may conduct a pinging attack by using a client device to send a test set of data to a central computing device. For example, the test set of data may be a test buy order or a test sell order.
[0011] One example of information characterizing a transaction is the time elapsed in executing the transaction. For example, it can be assumed that each entity involved in a crossing network knows the total volume, which can be defined as the sum of the quantity of units on a first side (e.g., the buyer's side) and the quantity of units on a second side (e.g., the seller's side). However, because each entity does not individually know the quantity of units on the first side and the quantity of units on the second side, it cannot directly determine the net demand. A malicious actor could use the amount of time it takes to receive a response from at least one processing device that the transaction is complete to determine that the quantity of units on the first side constitutes a larger allocation of the total volume than the quantity of units on the second side. For example, if a malicious actor sends a test order to at least one processing device and it takes longer than average for the test order to be executed by the at least one processing device, this could mean that the quantity of units on the second side is smaller than the quantity of units on the first side.
[0012] In some implementations, a certain amount of disclosure of sensitive information about the internal state of a computer system may be tolerated. The certain amount of disclosure of sensitive information may be referred to as a baseline amount of knowledge of the internal state of the computer system (also referred to herein as “baseline knowledge”). The baseline knowledge is knowledge of a portion of the internal state, but less than the entire internal state (e.g., the baseline knowledge represents a subset of the internal state).
[0013] As an illustrative example of an acceptable disclosure of the internal state of a computer system, if a crossing network allows a client device to receive data indicating that there is net demand for an asset that exceeds the true quantity defined by a buy order, the client device may exploit this information by inflating the price of the asset (e.g., buying and selling ahead of time). However, if a client device submits a buy order for a certain quantity of an asset, it may be harmless for the crossing network to cause the client device to receive an indication that there is net demand for at least that quantity of the asset defined by the buy order. For example, such knowledge generally does not affect the price of the asset defined by the buy order. However, some data privacy definitions (e.g., lossless privacy definitions) implemented by the computer system would erroneously classify such information as a data privacy violation. Therefore, it may be computationally impractical or impossible to apply such data privacy definitions to protect the internal state (e.g., the net demand of the crossing network) of a computer system that performs data matching as described above.
[0014] Aspects of the present disclosure address these and other shortcomings by implementing a system and method for data matching that hides the internal state of a computer network in a computer-implementable manner. The computer system described herein may include at least one processing device (e.g., a central computing device) communicatively coupled to one or more client devices. The at least one processing device may initiate iterations of a data matching method. The at least one processing device may implement the data matching method by determining whether to randomly match at least a first unit from a first group to a second unit from a second group. The at least one processing device may determine whether to randomly match at least a first unit to a second unit by randomly selecting pairs of units for matching between the first and second groups. The random match selection may introduce a minimum amount of “noise” that can prevent an entity from deriving more than a baseline amount of knowledge of the internal state of the computer system according to a privacy definition for the computer system. The privacy definition may ensure that at most a baseline amount of knowledge about the internal state of the computer system can be derived by an entity after a transaction is executed (e.g., a lossy privacy definition). In some implementations, the internal state of the computer system includes the net demand of the crossing network.
[0015] More specifically, to at least solve the technical problem of hiding the internal state of a computer network, at least one processing device can use a probabilistic model to randomly determine matching pair selection. The probabilistic model can be implemented with a set of parameters that can satisfy privacy conditions. For example, the probabilistic model can be implemented by a (pseudo)random number generator that uses a probability distribution that can select the number of matches between zero and the maximum number of possible matches. Furthermore, the decision to randomly match pairs of units is performed after identifying the first and second groups, thereby making the data matching method tolerant to the order in which orders are received. Therefore, an entity cannot obtain any additional information about the number of units in the first and second groups beyond a baseline amount of information. Further details regarding the implementation of data matching to hide the internal state of a computer system are described herein below with reference to Figures 1-4.
[0016] Benefits of the present disclosure include, but are not limited to, improved computer system performance, cybersecurity, and QoS. For example, by hiding the internal state of a computer system from client devices while allowing client devices access to some baseline amount of knowledge of the internal state of the computer system, implementations described herein can enable data privacy within computer systems that allow or may require client devices to gain some baseline amount of knowledge of the internal state of the computer system (e.g., net demand of crossing networks).
[0017] 1 shows an exemplary computer system 100 according to some implementations of the present disclosure. Computer system 100 may include a central computing device 110 and one or more client devices. In this illustrative example, computer system 100 includes multiple client devices 120-1 through 120-N. Multiple client devices 120-1 through 120-N may be communicatively coupled to central computing device 110 via at least one network 130.
[0018] Central computing device 110 may be a computing device such as a desktop computer, a laptop computer, a network server, a mobile device, a vehicle (e.g., an airplane, a drone, a train, an automobile, or other transportation), an Internet of Things (IoT)-enabled device, an embedded computer (e.g., one included in a vehicle, industrial equipment, or a network-connected commercial device), or a computing device that includes memory and processing devices. Similarly, each of client devices 120-1 through 120-N may be a computing device such as a desktop computer, a laptop computer, a network server, a mobile device, a vehicle (e.g., an airplane, a drone, a train, an automobile, or other transportation), an Internet of Things (IoT)-enabled device, an embedded computer (e.g., one included in a vehicle, industrial equipment, or a network-connected commercial device), or a computing device that includes memory and processing devices.
[0019] Central computing device 110 may receive one or more sets of data from one or more of client devices 120-1 through 120-N. The set of data received from one of client devices 120-1 through 120-N may define a quantity of an asset. In some implementations, computer system 100 implements a crossing network, and the set of data reflects an order specifying one or more units of the asset. The crossing network may have a first side and a second side. In some implementations, the first side is a buyer side for the asset, and the second side is a seller side for the asset. In some implementations, the first side is defined for a first asset, and the second side is defined for a second asset that is different from the first asset. In some implementations, the asset is a digital asset. For example, the asset may be a fungible token (e.g., a digital coin).
[0020] The central computing device 110 can initiate iterations of the data matching method. For example, the central computing device 110 can periodically initiate iterations of the data matching method. In some implementations, iterations of the data matching method can be initiated by the central computing device 110 in response to receiving a set of data from one of the client devices 120-1 through 120-N. Additionally or alternatively, iterations of the data matching method can be initiated by the central computing device 110 based on a time delay. For example, the data matching method can be initiated in response to determining that the amount of time since the last set of data was received from the client device satisfies a threshold condition (e.g., exceeds a first time delay). As another example, the current iteration of the data matching method can be initiated in response to determining that the amount of time since the previous iteration of the data matching method was completed satisfies a threshold condition (e.g., exceeds a second time delay). Each time delay can be based on an order frequency. As another example, the time delay can be a fixed time interval, whereby the data matching method is initiated after the fixed time interval. As yet another example, the time delay may be randomly chosen from a probability distribution based on how often the set of data is received by the central computing device 110. In some implementations, the probability distribution is a fixed probability distribution. More specifically, the time delay may be randomly chosen from a probability distribution with a fixed inter-arrival time (e.g., 1 second). In some implementations, the probability distribution is a dynamic probability distribution. More specifically, the time delay may be randomly chosen from a probability distribution with a dynamic inter-arrival time (e.g., the average inter-arrival time of the window before the request). Illustratively, the probability distribution (e.g., a fixed probability distribution or a dynamic probability distribution) may use a Poisson distribution.
[0021] After initiating the data matching method, the central computing device 110 can perform an iteration of the data matching method. For example, to perform an iteration of the data matching method, the central computing device 110 can identify a first group of units and a second group of units. A unit represents the smallest quantity of an asset that can be matched by the central computing device 110 (e.g., a trading granularity). In some implementations, the units of the first group represent a first quantity of a first asset, and the units of the second group represent a second quantity of a second asset that is different from the first quantity. For example, the first asset may have a different value from the second asset, such that the first quantity may be different from the second quantity. Illustratively, if the first asset has a value A and the second asset has a value 2A, the unit of the first asset may define a first quantity equal to one first asset, and the unit of the second asset may define a second quantity equal to half the second asset.
[0022] The first group of units includes all outstanding units of the asset on the first side of the crossing network, and the second group of units includes all outstanding units of the asset on the second side of the crossing network. That is, the size of the first group of units is the total quantity of units on the first side of the crossing network, and the size of the second group of units is the total quantity of units on the second side of the crossing network. Some units in the first group of units or the second group of units may be outstanding units that were not matched during a previous iteration of the data matching method. For example, the outstanding units in the first group or the second group may be units that were not selected for matching during a previous iteration or that correspond to a set of data (e.g., an order) received from one of the client devices 120-1 through 120-N during or after the previous iteration. A set of data received from one of the client devices 120-1 through 120-N during an iteration of the data matching method may be queued until after the central computing device 110 initiates the next iteration of the data matching method. For example, the queue may be a first-in-first-out (FIFO) queue.
[0023] The central computing device 110 may determine whether to randomly match at least a first unit of a first group of units to a second unit of a second group of units (e.g., zero matches or at least one match). Determining whether to randomly match at least a first unit to a second unit may include randomly selecting a number of units to match between the first group and the second group, and randomly matching units from the first side and the second side based on the randomly selected number of units. The random selection may introduce a minimum amount of “noise” that can prevent client devices from deriving knowledge of the internal state of the computer system 100 beyond a baseline, in accordance with a privacy definition for the computer system. The number of units to match between the first group and the second group may be randomly selected from zero units to the maximum number of possible matches.
[0024] More specifically, the central computing device 110 can use a probabilistic model to randomly select the number of units to match between the first group and the second group. The probabilistic model can be implemented with a set of parameters that can satisfy privacy conditions. In some implementations, the probabilistic model implements a Markov model. Generally, a Markov model can model a system in which the next state of the system changes (pseudo-)randomly depending only on the current state of the system. For example, the data matching method can use a Markov model that includes a Markov chain (e.g., a transition matrix or graph). For example, the probabilistic model can implement at least one (pseudo-)random number generator. The set of parameters used to implement the probabilistic model can include at least one matching probability. The amount of knowledge of the internal state of the computer system 100 that can be derived by the client device can increase with the number of matches. A higher matching probability means a greater likelihood of a match, which means a greater possibility for more matches, i.e., more knowledge of the internal state of the computer system 100. For example, a matching probability of 1, where every unit of the smallest group is matched to a unit of the other group, may allow the client device to derive a sufficient amount of knowledge of the internal state of the computer system. Knowledge of the internal state of the computer system may exceed a baseline amount of knowledge of the internal state of the computer system according to the privacy definition of the computer system. As another example, a matching probability of zero, where zero matches would result, would not yield any knowledge of the internal state of the computer system because the number of units cannot be calculated (e.g., completely secret). However, setting the matching probability to zero is not practically useful.Thus, the set of parameters can include a matching probability having a value between zero and one, where the value of the matching probability is selected to enable the client device to derive an amount of knowledge of the computer system that is no greater than the baseline amount of knowledge in accordance with the privacy definition. Further details regarding determining whether to randomly match at least a first unit to a second unit in accordance with a probabilistic model are described below with reference to Figures 2A-3D.
[0025] If the central computing device 110 determines that at least the first unit of the first group matches the second unit of the second group, the central computing device 110 matches at least the first unit to the second unit to execute a transaction between a first client device (e.g., client device 120-1) and a second client device (e.g., client device 120-2). More specifically, the first unit can be assigned to a first set of data sent by the first client device, and the second unit can be assigned to a second set of data sent by the second client device. Otherwise, if the central computing device 110 determines that at least the first unit does not match the second unit, this means that zero units were matched during the iteration of the data matching method. In such a situation, an iteration of the data matching process can be performed without matching any units.
[0026] In some implementations, the central computing device 110 sends a respective set of output data related to the trade execution to each of the first client device and the second client device (as well as any other client devices that sent the set of data allocated at least one unit of the first group or the second group). Each set of output data generated by the central computing device 110 may include information related to data matching. For example, the set of output data sent to the client device may include the number of units of the asset traded (e.g., from zero units to the total number of units defined by the set of data) from the total number of units of the asset received from the client device. As another example, the set of output data sent to the client device may further include an identifier of at least one counterparty to the trade. The set of output data may hide the internal state of the computer system 100 (e.g., the net asset demand of the crossing network).
[0027] Each set of output data provides each of client devices 120-1 and 120-2, and the user of each of client devices 120-1 and 120-2, with less than the entire internal state of computer system 100. For example, the internal state of computer system 100 may be the difference between the number of units in a first group and the number of units in a second group. Thus, each set of output data may be generated in a manner that satisfies a privacy definition that allows client devices 120-1 through 120-N to derive at most a baseline amount of knowledge corresponding to a portion of the internal state of computer system 100. Thus, the data matching method may prevent malicious entities from determining and exploiting the internal state of computer system 100 to the extent that they can harm other participants in computer system 100.
[0028] The central computing device 110 can begin to initiate the next iteration of the data matching method (e.g., after receiving a new set of data or after a time delay). During the next iteration of the data matching method, the central computing device 110 can similarly identify a new first group of units and a new second group of units from the unprocessed set of data. For example, each new group of units may include any old units that were not matched in the previous iteration, as well as any new units defined by a set of data received during or after the previous iteration (e.g., queued during the previous iteration). Further details regarding implementations of data matching that can hide the internal state of the computer system 100 are now described below with reference to Figures 2A-3D.
[0029] 2A is a flow diagram of an exemplary method 200 for implementing data matching to hide the internal state of a computer system according to some implementations of the present disclosure. Method 200 may be implemented by processing logic, which may include hardware (e.g., a processing device, circuitry, dedicated logic, programmable logic, microcode, device hardware, integrated circuits, etc.), software (e.g., instructions running or executed on a processing device), or a combination thereof. In some implementations, method 200 is implemented by central computing device 110 of FIG. 1. While shown in a particular sequence or order, unless otherwise specified, the order of processes can be modified. Therefore, the illustrated implementation should be understood as an example only, and the illustrated processes can be performed in a different order, and some processes can be performed in parallel. Furthermore, one or more processes can be omitted in various implementations. Therefore, not all processes are required in every implementation. Other process flows are possible.
[0030] At operation 210, processing logic may initiate an iteration of the data matching method. In some implementations, the initiation of the iteration of the data matching method is performed in response to receiving a set of data from an entity (e.g., via a client device of the computer system). The set of data received from the entity may include a data item defining a quantity of an asset. In some implementations, the computer system implements a crossing network, and the set of data reflects an order received from an entity of the crossing network. The set of data may specify a quantity of the asset. For example, the order may specify a quantity of the asset that the entity wants to buy (e.g., a buy order) or a quantity of the asset that the entity wants to sell (e.g., a sell order). In some implementations, the asset is a digital asset. For example, the asset may be a fungible token (e.g., a digital coin).
[0031] In some implementations, initiating an iteration of the data matching method includes determining whether the amount of time since the last set of data was received from the client device satisfies a threshold condition (e.g., exceeds a time delay). As another example, the current iteration of the data matching method can be initiated in response to determining that the amount of time since the previous iteration of the data matching method was completed satisfies a threshold condition (e.g., exceeds a time delay). Each time delay can be determined based on the frequency of orders received from the entity. As another example, the time delays can be fixed time intervals, such that the data matching method is initiated after the fixed time interval. As yet another example, the time delays can be randomly selected from a probability distribution based on the frequency with which the sets of data are received by the at least one processing device. In some implementations, the probability distribution is a fixed probability distribution. More specifically, the time delays can be randomly selected from a probability distribution with a fixed inter-arrival time (e.g., 1 second). In some implementations, the probability distribution is a dynamic probability distribution. More specifically, the time delay may be a dynamic inter-arrival time (e.g., the average inter-arrival time of the window before the request) and may be randomly chosen from a probability distribution. Illustratively, the probability distribution (e.g., a fixed or dynamic probability distribution) may use a Poisson distribution.
[0032] At operation 220, processing logic may identify a first group of units and a second group of units from the multiple sets of data. The first group of units may include units (e.g., outstanding units) of a first asset that define a first side of a crossing network that have not yet been matched, and the second group of units may include units of a second asset that define a second side of the crossing network that have not yet been matched. In some implementations, the first side is a buyer's side, and the units of the first group are buy order units, and the second side is a seller's side, and the units of the second group are sell order units.
[0033] In some implementations, the first asset is the same as the second asset. In some implementations, the first asset is different from the second asset. For example, the first asset may have a different value than the second asset. To account for this, processing logic may perform a value conversion such that units of the first asset can be matched to units of the second asset.
[0034] The size of the first group of units (e.g., the cardinality of the first group of units) may be equal to the total quantity of units of the first type (e.g., the first total quantity), and the size of the second group of units (e.g., the cardinality of the second group of units) may be equal to the total number of units of the second type (e.g., the second total quantity). In some implementations, identifying the first group of units and the second group of units includes converting each set of data received from the entity into a set of units. For example, each set of data received from the entity may define a quantity of an asset, and processing logic may determine the quantity of the units based on the quantity of the asset. An illustrative example of identifying the first group of units and the second group of units is described below with reference to FIG. 3A .
[0035] At operation 230, processing logic may determine whether to randomly match at least a first unit of a first group to a second unit of a second group. The first unit may be included in a first set of data received from a first entity (e.g., a buy order received from the first entity), and the second unit may be included in a second set of data received from a second entity (e.g., a sell order received from the second entity). For example, the first set of data and / or the first unit may be assigned to the first entity, and the second set of data and / or the second unit may be assigned to the second entity. In some implementations, the first set of data is received from the first entity via a first client device, and the second set of data is received from the second entity via a second client device.
[0036] More specifically, the processing logic can determine, according to a probabilistic model, at least whether to match a first unit of a first group to a second unit of a second group. In some implementations, the probabilistic model implements a Markov model. Determining whether to match at least a first unit to a second unit can include drawing a sample point from a statistical distribution implemented by the probabilistic model and using the sample point as a number of units to match between the first group and the second group (e.g., a number of unit pair matches). The probabilistic model will thus introduce a minimum amount of “noise” that can prevent an entity from deriving knowledge of the internal state of the computer system beyond a baseline, according to a privacy definition for the computer system. The probabilistic model can be run with a set of parameters that can satisfy the privacy conditions.
[0037] In some implementations, determining whether to randomly match at least the first unit to the second unit includes randomly identifying a first subgroup of units from the first group and a second subgroup of units from the second group. Matching the at least first unit to the second unit may include matching each unit of the first subgroup to a respective unit of the second subgroup.
[0038] For example, as described in more detail below with reference to FIG. 2B , determining whether to match at least a first unit to a second unit may include selecting a random quantity less than or equal to a maximum number of possible matches and generating a first subgroup and a second subgroup by randomly selecting a quantity of units from the first group and the second group equal to the random quantity, respectively. The maximum number of possible matches may be equal to the minimum quantity among the first total quantity of the first group and the second total quantity of the second group. Thus, the random quantity may be a number of units randomly selected using a probabilistic model between zero and the minimum quantity. In some implementations, the random quantity is selected using a (pseudo)random number generator that implements the selected statistical model. Illustrative examples of data matching are described below with reference to FIGS. 3B-3D .
[0039] If processing logic determines that at least the first unit matches the second unit, then processing logic at operation 240 can match at least the first unit to the second unit to execute a transaction between at least the first entity and the second entity. If not, this means that no units were matched during this iteration of the data matching method.
[0040] At operation 250, the processing logic may send to each of at least the first entity and the second entity a respective set of output data related to the trade execution. For example, each set of output data sent to each entity may indicate the number of units assigned to the entity that were matched. The number of matches may range from zero to the total number of units defined by the sets of data sent by the respective entities. As another example, each set of output data may indicate the counterparty entity assigned units of the other. An iteration of the data matching process may then be completed.
[0041] The next iteration of the data matching method may commence after the end of an iteration of the data matching method (e.g., after receiving another set of data or after a time delay). During the next iteration of the data matching method, processing logic may similarly identify a new first group of units and a new second group of units from the multiple sets of data. For example, each new group of units may include any old units not matched in the previous iteration, as well as any new units of the asset from orders received during or after the previous iteration (e.g., queued during the previous iteration). Further details regarding operations 210-250 were described above with reference to FIG. 1 and will now be described below with reference to FIGS. 2B-3D.
[0042] 2B is a flow diagram of an exemplary method for performing operation 220 for determining whether to randomly match at least a first unit to a second unit to execute a trade, according to some implementations of the present disclosure. Method 220 can be performed by processing logic, which may include hardware (e.g., a processing device, circuitry, dedicated logic, programmable logic, microcode, device hardware, integrated circuits, etc.), software (e.g., instructions running or executed on a processing device), or a combination thereof. In some implementations, method 220 is performed by central computing device 110 of FIG. 1. While shown in a particular sequence or order, unless otherwise specified, the order of processes can be modified. Therefore, the illustrated implementation should be understood as an example only, and the illustrated processes can be performed in a different order, and some processes can be performed in parallel. Furthermore, one or more processes can be omitted in various implementations. Therefore, not all processes are required in every implementation. Other process flows are possible.
[0043] At operation 222, processing logic may select a random quantity of units less than or equal to the minimum unit quantity. The minimum unit quantity, as described above, is defined as the minimum of the unit quantity of the first group of units and the unit quantity of the second group of units. That is, the minimum unit quantity defines the maximum possible match that can be supported during the current iteration of the data matching method. The random quantity of units reflects the quantity of units selected from the first group for matching to the second group for matching.
[0044] More specifically, selecting the random quantity may include selecting the random quantity using a (pseudo)random number generator based on a minimum quantity. In some implementations, selecting the random quantity in operation 222 includes selecting the random quantity from a set of candidate quantities that are less than or equal to the minimum unit quantity. For example, each candidate quantity in the set of candidate quantities may be selected with equal probability.
[0045] Selecting the random quantity in operation 222 may include implementing a (pseudo)random number generator that implements a probability distribution. In some implementations, the probability distribution is a binomial distribution. A set of parameters for the binomial distribution may include a probability (p) that a unit is selected for matching and a minimum quantity (n). In some implementations, the binomial distribution is a weighted distribution in which the probability that a unit is selected for matching differs from the probability that a unit is not selected for matching (e.g., p ≠ 1 − p).
[0046] Implementing a (pseudo)random number generator using a binomial distribution may include randomly selecting a threshold value and generating a probability distribution including a set of matching probabilities. Each matching probability is associated with a respective unit of quantity. More specifically, each matching probability is the probability that the respective unit of quantity is matched within the smallest quantity. Each matching probability in the set of matching probabilities is arranged in sequential order based on the respective unit of quantity. Implementing a (pseudo)random number generator using a binomial distribution may further include determining whether a sum generated by successively adding one or more matching probabilities in the set of matching probabilities in sequential order exceeds a threshold value. More specifically, the one or more matching probabilities include a current matching probability in sequential order. In response to determining that the sum does not exceed the threshold value, the sum is then updated by adding the next matching probability in sequential order, followed by adding the current matching probability to the sum. In response to determining that the sum exceeds the threshold value, a random number is selected in the respective unit of quantity associated with the current matching probability.
[0047] For example, a threshold q can be selected (e.g., uniformly randomly) in the interval [0,1]. The generated probability distribution can include a set of matching probabilities, each of which is the probability that a quantity k of units is matched within the minimum quantity n for each k∈[0,n]. Thus, the set of matching probabilities can include n+1 probabilities (e.g., the probability of matching zero units, the probability of matching one unit, the probability of matching two units, ..., the probability of matching n units). For example, if the minimum quantity is 10, then the set of matching probabilities includes 11 probabilities.
[0048] In some implementations, the probability distribution is generated using a binomial distribution.
[0049]
number
[0050] where Pr(k,n,p) is the matching probability for choosing k units among n units to be matched with probability p for each k∈[0,n].
[0051] In some implementations, the probability distribution is generated using a modified geometric distribution.
[0052]
number
[0053] The above distributions are purely exemplary, and other suitable distributions are contemplated in accordance with the implementations described herein.
[0054] Selecting the random quantity may include successively adding the matching probabilities of the probability distributions in sequential order until the sum is greater than a threshold q. More specifically, if the random quantity is denoted as j, j is
[0055]
number
[0056] Therefore, the random quantity may be based on a set of parameters including the matching probability and the minimum quantity.
[0057] In some implementations, selecting the random quantity of units in operation 222 includes determining whether the first total quantity is less than or equal to the second total quantity of units. If the first total quantity is less than or equal to the second total quantity, processing logic can randomly map each unit of the first group to a respective unit of the second group. Otherwise, processing logic can randomly map each unit of the second group to a respective unit of the first group. The determination of the minimum unit quantity can be used to ensure that each unit of the minimum quantity group is matched with a respective unit of the other group. The random mapping performed in the operation is a one-to-one (1:1) mapping between random pairs of units of the first group and units of the second group. In some implementations, the random mapping is performed using a (pseudo)random number generator.
[0058] The random mapping can generate a set of unit pairs, each of which includes a unit from a first group and a unit from a second group that maps to the unit from the first group. Because the quantity of a unit pair in the set of unit pairs is equal to the minimum quantity n, selecting a random quantity less than or equal to the minimum quantity is logically equivalent to selecting a random quantity less than or equal to the quantity of the unit pair, and selecting the random quantity can include generating the random quantity using a (pseudo)random number generator, as described above. For example, for a binomial distribution implementation, the unit quantity k can be replaced with the quantity k of the unit pair, and the probability p represents the matching probability that the units of the unit pair are matched.
[0059] At operation 224, processing logic may generate a first subgroup and a second subgroup by randomly selecting units of quantity equal to the random quantity units from the first group and the second group, respectively. The first subgroup may include units of a first asset defined by a first set of data received from a first entity (e.g., a first client device), and the second subgroup may include units of a second asset defined by a second set of data received from a second entity (e.g., a second client device). Further details regarding operations 222 and 224 are described above with reference to Figures 1 and 2A and in further detail below with reference to Figures 3A-3D.
[0060] The data matching method described herein utilizes the following relationship between prior beliefs of the internal state of a computer system (e.g., a crossing network) and posterior beliefs of the internal state of the computer system: P(IS|PK,BK)≦αP(IS|PK,MK,BK) (3) where IS refers to the internal state of the computer system, PK refers to the prior knowledge of the entity (e.g., a malicious actor), MK refers to the knowledge generated by a data matching method implemented by a central computing device of the computer system, BK refers to the baseline knowledge known by the entity (e.g., the amount of knowledge of the internal state of the computer system 100 that is less than IS), and α is a privacy parameter. The privacy parameter α can be a value obtained using a mathematical constant e (e.g., Euler's number). For example, α=e εwhere ε is a real number. The term P(IS|PK,BK) refers to a transformation P(IS|PK) → P(IS|PK,BK) of prior beliefs about the internal state of a computer system, where P(IS|PK) → 0 if a malicious entity has learned BK and BK has leaked this prior belief that should be false, or P(IS|PK) → cP(IS|PK) if BK has leaked this prior belief that should be true for some constant c. More specifically, ΣcP(IS|PK)=1 (4) Note that in the absence of BK, c=1 and the privacy definition can collapse into an indistinguishable privacy definition.
[0061] Assume that a computer system is a crossing network, and that a particular client device participating in the crossing network is operated by a malicious entity attempting to determine the IS of the crossing network. Let f denote the quantity of units of a first asset on a first side of the crossing network, and let s denote the quantity of units of a second asset on a second side of the crossing network. The IS of the crossing network is the net demand, which may be defined as fs. The malicious entity may unfairly benefit from knowing the IS. Assume further that the PK of the malicious entity is the total volume, which may be defined as f+s. It may be assumed that the values fs and f+s do not include the quantity of assets in the malicious entity's order. Furthermore, assume that the malicious entity may have a set of prior beliefs about the state of the crossing network, which may correspond to all possible states of the crossing network. For example, the set of prior belief values may be a set [p] having size p. f+s,0 ,p f+s-1,1 ,...,p 0,f+s ]. The set of prior belief values corresponds to the prior belief P(IS|PK).
[0062] A malicious entity can query the central computing device by placing an order of some size n (e.g., a quantity of an asset defined by the order). For example, assume that the order defines the number of units of a first asset. The malicious entity may attempt to learn the net demand of the crossing network in relation to the outstanding orders rather than executing the trade itself. Assuming that the malicious entity is rational and wishes to minimize costs, the size of the order n will be less than or equal to the value indicated by PK (e.g., n≦f+s). Subject to these constraints, there is a maximum quantity of the asset that can be traded, which can be represented by min(n,s), where min(·) is a function that returns the item in the set [n,s] with the lowest value. In some implementations, the crossing network matches the asset with the maximum quantity.
[0063] The following describes how to determine the corresponding privacy parameters for a probability distribution for a general probability distribution used in the data matching method. The table below shows the probability distribution for a given order of size n, where the value of f+s is known.
[0064] [Table 1]
[0065] In Table 1, each Match column defines a probability distribution that can be used by the data matching method to match each number of units of a first asset to a corresponding number of units of a second asset (Match 0, Match 1, ...., Match f+s) for various states of the crossing network. More specifically, in this illustrative example, each state (O, P) reflects a quantity of units of a first asset (O) and a quantity of units of a second asset (P), assuming a constant total volume f+s. Each probability in the probability distribution, i.e., c row,coldenotes the matching probability that the number of units of the first asset (col) in the order submitted by the malicious entity is matched, given the size of the second side (row) (e.g., the total number of units of the second asset on the second side). For example, the state (f+s,0) representing a first side with f+s units of the first asset and a second side with 0 units of the second asset is given by c 0,0 More specifically, c 0,0 represents the probability of matching an order of size 0 given that there are 0 units of the second asset on the second side. The matching probability is 0 since any unit of the order is matched to 0 units of the second asset on the second side, and therefore the c of the Match 0 probability distribution 0,0 The value of must be 1 for state (f+s,0). Since it is not possible to match more units of an asset than are available on the second side, the matching probability c for any of the probability distributions Match 0 to Match f+s when col > row. row,col Furthermore, since it is impossible to match more order units than the total order size, when col > n, the matching probability for any of the probability distributions Match 0 through Match f+s is zero.
[0066] Assume that the data matching method matches units of an order in a quantity x≦n, and the central computing device reports this back to the client device operated by the malicious entity. Knowing that x units have been matched, the posterior belief value for the malicious entity is calculated based on Bayes' rule and the given prior belief value:
[0067]
number
[0068] It can be determined as such. In the above formula, \(i\in[x,f + s]\). The set of posterior belief values having size \(q\) is less than the size of the set of prior belief values (e.g., \(q\leq p\)). This results from the fact that the malicious entity knows that \(x\) units are matched and the number of units on the second side must be at least equal to \(x\) (e.g., \(s\geq x\)), and thus all prior beliefs assigned to states where \(s < x\) are incorrect. This gives the malicious entity knowledge of the baseline amount of \(IS(BK)\) before the transaction is executed. The transformation of the prior beliefs of the malicious entity based on \(BK\) obtained by the malicious entity during the iteration of the data matching method can be represented as follows.
[0069]
Number
[0070] For the data matching method used by the central computing device to satisfy the privacy definition according to \(\varepsilon\) (the "indistinguishable \(\varepsilon\)-baseline"), the following relationship
[0071]
Number
[0072] should be satisfied for all \(x\) and \(i\in[x,f + s]\). From formula (7), the following can be obtained.
[0073]
Number
[0074] Therefore, to simulate the worst-case data leakage scenario, to maximize the left side of formula (8), it is only necessary to minimize the denominator of formula (8) and / or maximize the numerator of formula (8).
[0075] For a given set of prior belief values, the sum in the denominator of Eq. (8)
[0076]
number
[0077] is a constant. Therefore, to minimize the denominator, the smallest matching probability in the Match x probability distribution in Table 1 can be selected (e.g., min(c i,x )), which must be a non-zero value based on the results of the data matching method. To maximize the numerator of equation (8), a reordering inequality may be applied for a given set of prior belief values. More specifically, applying the reordering inequality,
[0078]
number
[0079] In the above formula, max(c i,x ) is the largest matching probability of the Match x probability distribution in Table 1. Since the left-hand side of equation (9) represents the worst-case scenario, a data matching method satisfies the privacy definition if it satisfies equation (9). If the numerator of equation (9) is zero, this means that all matching probabilities of the Match x probability distribution are zero, resulting in zero privacy loss (e.g., perfect privacy). If the denominator of equation (9) is zero, the privacy loss becomes infinite and may therefore be undesirable.
[0080] The above describes an illustrative example in which a single client device, as a malicious entity, submits an order for an asset to a central computing device in an attempt to determine the internal state of a computer system (e.g., net demand for a crossing network). To prevent the malicious entity from obtaining sufficient information to determine the internal state of the computer system, the central computing device can use the data matching method described above with reference to Figures 1-3D.
[0081] For example, assume that a data matching method is implemented according to the 1:1 mapping scheme described above with reference to Figures 2B and 3A-3D. If a first side of a crossing network has a total quantity of units equal to or less than that of a second side of the crossing network, the data matching method can randomly map units on the first side to units on the second side to generate a set of unit pairs, and randomly select some unit pairs from the set of unit pairs to match according to a probability distribution based on a set of parameters including a matching probability p and the number of unit pairs in the set of unit pairs. It can be shown that the data matching method described herein can enable non-infinite data privacy leakage with non-trivial data matching method parameters (e.g., non-zero matching probability).
[0082] The following describes how to determine the corresponding privacy parameters for the probability distribution for the binomial distribution used in the data matching method. For example, assume that a malicious entity knows that f+s=5. Using equation (1), we can obtain the following table, similar to Table 1, which has three match outcomes: Match 0, Match 1, and Match 2.
[0083] [Table 2]
[0084] In particular, for the Match 0 outcome, the table below shows the pre- and post-values for each combination of units on each side of the crossing network.
[0085] [Table 3]
[0086] For p∈[0,1) (p=1 is ignored as it represents infinite privacy loss), the privacy parameter for the Match 0 outcome, i.e., α0, can be determined from equation (9) as follows:
[0087]
number
[0088] Therefore, when p=0, perfect privacy can be achieved for the Match 0 outcome.
[0089] For the Match 1 outcome, the table below shows the pre- and post-values for each combination of units on each side of the crossing network.
[0090] [Table 4]
[0091] By matching one or two units, perfect privacy (p=0) can also be ignored, making these outcomes impossible for malicious entities to observe. Therefore, the privacy parameter for the Match 1 outcome, i.e., α1, can be determined from equation (9) as follows:
[0092]
number
[0093] Therefore, when p=0.5, perfect privacy can be achieved for the Match 1 outcome.
[0094] For the Match 2 outcome, the table below shows the pre- and post-values for each combination of units on each side of the crossing network.
[0095] [Table 5]
[0096] The privacy parameter for the Match 2 outcome, i.e., α2, is equal to 1 for all values of p. Therefore, the Match 2 outcome yields perfect privacy.
[0097] The following describes how to determine the corresponding privacy parameters for the probability distribution for the modified geometric distribution used in the data matching method. Assume that the malicious entity knows that f + s = 5. Using equation (2), we can obtain the following table, similar to Table 1 and Table 2, which has three match outcomes: Match 0, Match 1, and Match 2.
[0098] [Table 6]
[0099] In particular, for the Match 0 outcome, the table below shows the pre- and post-values for each combination of units on each side of the crossing network.
[0100] [Table 7]
[0101] For p∈[0,1) (p=1 is ignored as it represents infinite privacy loss), the privacy parameter for the Match 0 outcome, i.e., α0, can be determined from equation (9) as follows:
[0102]
number
[0103] Therefore, when p=0, perfect privacy can be achieved for the Match 0 outcome.
[0104] For the Match 1 outcome, the table below shows the pre- and post-values for each combination of units on each side of the crossing network.
[0105] [Table 8]
[0106] The privacy parameter for the Match 1 outcome, ie, α1, can be determined as follows:
[0107]
number
[0108] Therefore, perfect privacy cannot be achieved if the Match 1 outcome is observed in this example.
[0109] For the Match 2 outcome, the table below shows the pre- and post-values for each combination of units on each side of the crossing network.
[0110] [Table 9]
[0111] The privacy parameter for the Match 2 outcome, i.e., α2, is equal to 1 for all values of p. Therefore, the Match 2 outcome yields perfect privacy.
[0112] Iterations of the data matching method implemented by the central computing device described herein may satisfy at least one of a data transformation invariance property, a convexity property, or a composability property. The data transformation invariance property provides that a first method that satisfies the extended data privacy definition will maintain at least the same level of privacy when a second method is run using data output by the first method. Another data privacy property in the set of data privacy properties is convexity. The convexity property provides that given a first method and a second method that each satisfy the extended data privacy definition with the same privacy parameter (e.g., ε), a third method will run the first method with probability p, and a second method with probability 1-p will have the same privacy parameter. Another data privacy property in the set of data privacy properties is composability. The composability property provides that, given a first method that satisfies the extended data privacy definition with a first privacy parameter (e.g., ε1) and a second method that satisfies the extended data privacy definition with a second privacy parameter (e.g., ε2) (e.g., the first and second privacy parameters do not necessarily have the same value), running the first and second methods simultaneously also satisfies the privacy definition for the non-trivial privacy parameter (e.g., the sum of the first and second privacy parameters). Illustrative examples of methods for implementing data matching that hide the internal state of a computer system are now described below with reference to Figures 3A-3D.
[0113] 3A-3D illustrate exemplary methods for implementing data matching that hides the internal state of a computer system, according to some implementations of the present disclosure. For example, FIG. 3A is an illustration 300A of a first group of units 310 and a second group of units 320. For example, first group 310 includes units of an asset defined by a set of data (e.g., an order) 312-1 received from a first entity (e.g., one of client devices 120-1-120-N in FIG. 1 ) and a set of data 312-2 received from a second entity (e.g., another one of client devices 120-1-120-N). Additionally, second group 320 includes units of the asset defined by set 322-1 received from a third entity (e.g., another one of client devices 120-1 through 120-N in FIG. 1 ) and set 322-2 received from a fourth entity (e.g., another one of client devices 120-1 through 120-N). In this example, there are five units in first group 310 and four units in second group 320, so f+s=9.
[0114] FIG. 3B is a diagram 300B illustrating an example of a maximum number of unit pairs. In this example, data set 312-1 includes three units, data set 312-2 includes two units, and each of data sets 322-1 and 322-2 includes two units. Because the size of first group 310 is five units and the size of second group 320 is four units, second group 320 is identified as the smallest size group. Therefore, for each unit in second group 320, the unit in second group 320 can be mapped to a respective unit in first group 310 (e.g., 1:1 mapping) to generate a respective unit pair in the set of unit pairs. In some implementations, the mapping is performed randomly (e.g., using a (pseudo)random number generator). After the mapping, one unit from first group 310 remains that is not included in a unit pair from data set 312-2. Therefore, this unit of the first group 310 cannot be matched to a unit of the second group 320 during the current iteration of the data matching method. Diagram 300B can represent a graph data structure in which a node is each unit and an edge is each connection between each pair of nodes.
[0115] 3C is a diagram 300C illustrating a process for generating a first subgroup from the first group 310 and a second subgroup from the second group 320 for matching. In some implementations, generating the first subgroup and the second subgroup includes using a (pseudo)random number generator to select a random quantity of unit pairs less than or equal to the quantity of unit pairs (e.g., operation 222 of FIG. 2B ) and randomly selecting a quantity of unit pairs to match from the set of unit pairs equal to the random quantity (e.g., operation 224 of FIG. 2B ). In this illustrative example, the random quantity is 2, and two unit pairs represented by edges 330-1 and 330-2 are randomly selected for matching. That is, the first subgroup includes two units from the set of data 312-1, and the second subgroup includes a single unit from the set of data 322-1 and a single unit from the set of data 322-2. Thus, in this example, zero units from data set 312-2 are selected for matching. Therefore, the entity that provided data set 312-2 cannot obtain any information about the internal state of the computer system. Moreover, due to the random selection of units for matching, the entities that provided data sets 322-1 and 322-2 may only know that at least one unit was in the first group, and the client device that provided data set 312-1 may only know that at least two units were in the second group. Thus, none of the entities can determine the internal state of the computer system (e.g., the difference between the number of units in the first group and the number of units in the second group).
[0116] 3D is a diagram 300D showing the first group 310 and the second group 320 after matching is complete. As shown, the first group 310 includes three units, where one unit remains in the set of data 312-1 and two units remain in the set of data 312-2. Additionally, the second group 320 includes two units, where one unit remains in the set of data 322-1 and one unit remains in the set of data 322-2. Therefore, the client devices associated with the sets of data 312-1, 312-2, 322-1, and 322-2 must wait for at least one more iteration of the data matching method to complete the entire transaction.
[0117] In the example described above with reference to FIGS. 3A-3D , assume that each set of data 312-1 and 312-2 is a respective order defining a respective quantity of a first asset (e.g., three units of the first asset and two units of the second asset, respectively), and each set of data 322-1 and 322-2 is a respective order defining a respective quantity of a second asset (e.g., two units of the second asset, respectively). Furthermore, assume that the first group 310 is a first side of a crossing network, and the second group 320 is a second side of the crossing network. A user of a client device that provided set of data 312-1 may know that the total volume is six, excluding the quantity of the asset defined by set of data 312-1. However, a user of a client device that sent set of data 312-1 to a central computing device of the crossing network may not know the total number of units of the first asset in first group 310 and the total number of units of the second asset in second group 320. Because a match may not occur during an iteration of the data matching method using the probabilistic model, a user of a client device that sent set of data 312-1 to the central computing device of the crossing network can only know from the set of output data that there were at least two units of the second asset in the second group 320 (e.g., two assets from the second group 320 matched with two assets corresponding to set of data 312-2). Moreover, the decision whether to randomly match pairs of units was made after identifying the first group 310 and the second group 320, which makes the data matching method tolerant to the order in which orders are received. Thus, the entity that sent set of data 312-2 to the central computing device of the crossing network cannot obtain any additional information regarding the number of units of the second asset in the second group 320 beyond the baseline amount of information that there are at least two units of the second asset in the second group 320.Therefore, a user of a client device cannot determine that the net demand of the crossing network (eg, the internal state of the crossing network) is one from the set of output data received from the central computing device.
[0118] 4 illustrates an exemplary machine, computer system 400, upon which a set of instructions for causing the machine to perform any one or more of the methodologies discussed herein may be executed. In some implementations, computer system 400 may correspond to a host system (e.g., host system 120 of FIG. 1A) that includes, is coupled to, or uses a memory subsystem (e.g., memory subsystem 110 of FIG. 1A), or may be used to perform controller operations (e.g., execute an operating system to perform operations corresponding to local media controller 135 and / or PPM component 137 of FIG. 1A). In alternative implementations, the machine may be connected (e.g., networked) to other machines in a LAN, an intranet, an extranet, and / or the Internet. The machine may operate in the capacity of a server or client machine in a client-server network environment, as a peer machine in a peer-to-peer (or distributed) network environment, or as a server or client machine in a cloud computing infrastructure or environment.
[0119] The machine may be a personal computer (PC), tablet PC, set-top box (STB), personal digital assistant (PDA), memory cell phone, web product, server, network router, switch or bridge, or any machine capable of executing a set of instructions (sequential or otherwise) that specify actions to be taken by the machine. Moreover, while a single machine is illustrated, the term "machine" shall also be taken to include any collection of machines that individually or jointly execute a set of instructions (or sets) to implement any one or more of the methodologies discussed herein.
[0120] The exemplary computer system 400 includes a processing device 402, a main memory 404 (e.g., read-only memory (ROM), flash memory, dynamic random access memory (DRAM) such as synchronous DRAM (SDRAM) or RDRAM, etc.), a static memory 406 (e.g., flash memory, static random access memory (SRAM), etc.), and a data storage system 418, which communicate with each other via a bus 430.
[0121] Processing device 402 represents one or more general-purpose processing devices such as a microprocessor, a central processing unit, or the like. More specifically, processing device may be a complex instruction set computing (CISC) microprocessor, a reduced instruction set computing (RISC) microprocessor, a very long instruction word (VLIW) microprocessor, or a processor implementing other instruction sets or a combination of instruction sets. Processing device 402 may also be one or more special-purpose processing devices such as an application-specific integrated circuit (ASIC), a field-programmable gate array (FPGA), a digital signal processor (DSP), a network processor, or the like. Processing device 402 is configured to execute instructions 426 to perform the operations and steps discussed herein. Computer system 400 may further include a network interface device 408 for communicating over at least one network (e.g., at least one network 130 of FIG. 1 ).
[0122] The data storage system 418 may include a machine-readable storage medium 424 (also known as a computer-readable medium) on which one or more sets of instructions 426 or software are stored, embodying any one or more of the methodologies or functions described herein. The instructions 426 may reside, completely or at least partially, within the main memory 404 and / or the processing device 402 during execution of the instructions by the computer system 400, the main memory 404 and the processing device 402 also comprising a machine-readable storage medium.
[0123] In one implementation, instructions 426 include instructions for implementing functionality corresponding to a central computing device (e.g., central computing device 110 of FIG. 1 ). While machine-readable storage medium 424 is shown to be a single medium in the exemplary implementation, the term “machine-readable storage medium” should be interpreted to include a single medium or multiple media that store one or more sets of instructions. The term “machine-readable storage medium” is also intended to include any medium capable of storing or encoding a set of instructions for execution by a machine, causing the machine to perform any one or more of the methodologies of this disclosure. The term “machine-readable storage medium” is therefore intended to include, but is not limited to, solid-state memory, optical media, and magnetic media.
[0124] Some portions of the above detailed descriptions are presented in terms of algorithms and symbolic representations of operations on data bits within a computer memory. These algorithmic descriptions and representations are the means used by those skilled in the data processing arts to most effectively convey the substance of their work to others skilled in the art. An algorithm is here, and generally, conceived to be a self-consistent sequence of operations leading to a desired result. The operations require physical manipulations of physical quantities. Usually, though not necessarily, these quantities take the form of electrical or magnetic signals capable of being stored, combined, compared, and otherwise manipulated. It has proven convenient at times, principally for reasons of common usage, to refer to these signals as bits, values, elements, symbols, characters, terms, numbers, or the like.
[0125] It should be kept in mind, however, that all of these and similar terms should be associated with the appropriate physical quantities and are merely convenient labels applied to these quantities. This disclosure may refer to the actions and processes of a computer system, or similar electronic computing device, that manipulate and convert data represented as physical (electronic) quantities in the computer system's registers and memory into other data that is similarly represented as physical quantities in the computer system's memory or registers or other such information storage system.
[0126] The present disclosure also relates to apparatus for performing the operations herein. This apparatus may be specially constructed for intended purposes, or may comprise a general-purpose computer selectively activated or reconfigured by a computer program stored in the computer. Such a computer program may be stored on a computer-readable storage medium such as any type of disk, including floppy disks, optical disks, CD-ROMs, and magneto-optical disks, read-only memory (ROM), random access memory (RAM), EPROM, EEPROM, magnetic or optical cards, or any type of medium suitable for storing electronic instructions, each coupled to a computer system bus.
[0127] The algorithms and displays presented herein are not inherently related to any particular computer or other apparatus. Various general-purpose systems may be used with programs in accordance with the teachings herein, or it may prove convenient to construct more specialized apparatus to carry out the methods. The structure for a variety of these systems will appear as described below. Further, the present disclosure is not described with reference to any particular programming language. It will be appreciated that a variety of programming languages may be used to implement the teachings of the present disclosure as described herein.
[0128] The present disclosure may be provided as a computer program product or software, which may include a machine-readable medium storing instructions that can be used to program a computer system (or other electronic device) to perform a process according to the present disclosure. A machine-readable medium includes any mechanism for storing information in a form readable by a machine (e.g., a computer). In some implementations, a machine-readable (e.g., computer-readable) medium includes a machine- (e.g., computer-) readable storage medium such as read-only memory ("ROM"), random access memory ("RAM"), magnetic disk storage media, optical storage media, flash memory components, and the like.
[0129] In the foregoing specification, implementations of the present disclosure have been described with reference to specific exemplary implementations thereof. It will be apparent that various modifications thereto can be made without departing from the broader spirit and scope of implementations of the present disclosure as set forth in the appended claims. Accordingly, the specification and drawings should be regarded in an illustrative rather than a restrictive sense. [Explanation of symbols]
[0130] 100 Computer Systems 110 Central Computing Device 120 client devices 130 Network 400 Computer Systems 402 Processing Device 404 main memory 406 Static Memory 408 Network Interface Device 418 Data Storage System 424 Machine-readable storage medium 430 Bus
Claims
1. Memory and a processing device operably coupled to the memory for performing operations; and the operation comprises: initiating a data matching iteration; identifying a first group of units of a first asset and a second group of units of a second asset in response to initiating the data matching iterations; determining whether to match at least a first unit of the first group to a second unit of the second group according to a probabilistic model, the first unit being associated with a first entity and the second unit being associated with a second entity; matching at least the first unit to the second unit in response to determining that at least the first unit is matched to the second unit; sending to at least each of the first entity and the second entity a respective set of output data indicative of a match of at least the first unit to the second unit; Including, the system.
2. The operation is further comprising determining whether the amount of time satisfies a threshold condition; the data matching iteration is initiated in response to determining that the amount of time satisfies the threshold condition; The system of claim 1 , wherein the amount of time is one of an amount of time since a last set of data was received from an entity or an amount of time since a previous iteration of data matching was completed.
3. 3. The system of claim 2, wherein determining whether the amount of time satisfies the threshold condition further comprises determining whether the amount of time exceeds a time delay, the time delay selected from the group consisting of: a first time delay corresponding to a fixed time interval, a second time delay randomly selected from a fixed probability distribution, or a third time delay randomly selected from a dynamic probability distribution.
4. Determining whether to match at least the first unit to the second unit includes: selecting a random quantity of units less than or equal to a minimum unit quantity, the minimum unit quantity being the minimum of the total quantity of units in the first group and the total quantity of units in the second group; generating a first subgroup and a second subgroup by randomly selecting a quantity of units equal to the random quantity of units from the first group and the second group, respectively, wherein the first subgroup includes the first units and the second subgroup includes the second units; and The system of claim 1 further comprising:
5. The system of claim 4 , wherein selecting the random quantity comprises randomly selecting the random quantity from a set of candidate quantities less than or equal to the minimum quantity.
6. The system of claim 5 , wherein selecting the random quantity comprises implementing a (pseudo)random number generator to generate the random quantity from the set of candidate quantities.
7. selecting the random quantity randomly selecting a threshold value; generating a probability distribution including a set of matching probabilities, each matching probability in the set of matching probabilities associated with a respective unit of quantity, each matching probability in the set of matching probabilities being a probability that the respective unit of quantity is matched within the minimum quantity, and each matching probability in the set of matching probabilities being arranged in sequential order based on the respective unit of quantity; determining whether a sum produced by successively adding one or more matching probabilities in the set of matching probabilities in the sequential order exceeds the threshold, the one or more matching probabilities in the set of matching probabilities including a current matching probability in the sequential order; responsive to determining that the sum exceeds the threshold, selecting the random quantity as a unit of the respective quantity associated with the current matching probability; The system of claim 4 further comprising:
8. Determining whether to match at least the first unit to the second unit includes: determining whether the total quantity of units of the first group is less than or equal to the total quantity of units of the second group; in response to determining that the total quantity of units of the first group is less than the total quantity of units of the second group, randomly mapping each unit of the first group to a respective unit of the second group to generate a respective unit pair of a set of unit pairs; for each unit pair of the set of unit pairs, randomly determining whether to match the unit of the first group to the unit pair of the second group; The system of claim 4 further comprising:
9. The system of claim 1 , wherein each set of output data provides the entity with less than complete knowledge of the internal state of the computer system.
10. initiating, by at least one processing device, iterations of data matching; identifying, by at least one processing device, a first group of units of a first asset and a second group of units of a second asset in response to initiating the data matching iterations; determining, by at least one processing device, according to a probabilistic model, whether to match at least a first unit of the first group to a second unit of the second group, wherein the first unit is associated with a first entity and the second unit is associated with a second entity; matching, by at least one processing device, at least the first unit to the second unit in response to determining that at least the first unit is matched to the second unit; sending, by said at least one processing device, to at least each of said first entity and said second entity, a respective set of output data indicative of a match of at least said first unit to said second unit; A method comprising:
11. determining, by the at least one processing device, whether the amount of time satisfies a threshold condition; the iteration of the data matching is initiated in response to determining that the amount of time satisfies the threshold condition; 11. The method of claim 10, wherein the amount of time is one of an amount of time since a last set of data was received from an entity or an amount of time since a previous iteration of data matching was completed.
12. 12. The method of claim 11, wherein determining whether the amount of time satisfies the threshold condition further comprises determining whether the amount of time exceeds a time delay, the time delay selected from the group consisting of a first time delay corresponding to a fixed time interval, a second time delay randomly selected from a fixed probability distribution, or a third time delay randomly selected from a dynamic probability distribution.
13. The step of determining whether to match at least the first unit to the second unit includes: selecting a random quantity of units less than or equal to a minimum unit quantity, the minimum unit quantity being the minimum of the total quantity of units in the first group and the total quantity of units in the second group; generating a first subgroup and a second subgroup by randomly selecting a quantity unit equal to the random quantity unit from the first group and the second group, respectively, wherein the first subgroup includes the first units and the second subgroup includes the second units; 11. The method of claim 10, further comprising:
14. The method of claim 13 , wherein selecting the random quantity comprises randomly selecting the random quantity from a set of candidate quantities less than or equal to the minimum quantity.
15. The method of claim 14 , wherein selecting the random quantity comprises implementing a (pseudo) random number generator to generate the random quantity from the set of candidate quantities.
16. selecting the random quantity randomly selecting a threshold value; generating a probability distribution including a set of matching probabilities, each matching probability in the set of matching probabilities associated with a respective unit of quantity, each matching probability in the set of matching probabilities being a probability that the respective unit of quantity is matched within the minimum quantity, and each matching probability in the set of matching probabilities being arranged in sequential order based on the respective unit of quantity; determining whether a sum produced by successively adding one or more matching probabilities in the set of matching probabilities in the sequential order exceeds the threshold, the one or more matching probabilities in the set of matching probabilities including a current matching probability in the sequential order; responsive to determining that the sum exceeds the threshold, selecting the random quantity as a unit of the respective quantity associated with the current matching probability; 14. The method of claim 13, further comprising:
17. The step of determining whether to match at least the first unit to the second unit includes: determining whether the total quantity of units of the first group is less than or equal to the total quantity of units of the second group; in response to determining that the total quantity of units of the first group is less than the total quantity of units of the second group, randomly mapping each unit of the first group to a respective unit of the second group to generate a respective unit pair of a set of unit pairs; for each unit pair of the set of unit pairs, randomly determining whether to match the unit of the first group to the unit pair of the second group; 14. The method of claim 13, further comprising:
18. 11. The method of claim 10, wherein each set of output data provides the entity with less than complete knowledge of the internal state of the computer system.
19. Multiple client devices and a central computing device communicatively coupled to the plurality of client devices; wherein the central computing device comprises: Memory and a processing device operably coupled to the memory for performing operations; and the operation comprises: initiating iterations of data matching within a crossing network having a first side and a second side; responsive to initiating the iteration of the data matching, identifying from a plurality of orders a first group of units of a first asset corresponding to the first side of the crossing network and a second group of units of a second asset corresponding to the second side of the crossing network; determining whether to match at least a first unit of the first group to a second unit of the second group according to a probabilistic model, the first unit corresponding to a first order of the plurality of orders associated with a first client device and the second unit corresponding to a second order of the plurality of orders associated with a second client device; matching at least the first unit to the second unit in response to determining that at least the first unit is matched to the second unit; sending to each of at least the first client device and the second client device a respective set of output data indicative of a match of at least the first unit to the second unit; 2. A computer system comprising:
20. Determining whether to match at least the first unit to the second unit includes: selecting a random quantity less than or equal to a minimum quantity, the minimum quantity being the minimum of the total quantity of units in the first group and the total quantity of units in the second group; generating a first subgroup and a second subgroup by randomly selecting a quantity from the first group and the second group, respectively, equal to a unit of the random quantity, wherein the first subgroup includes the first units and the second subgroup includes the second units; 20. The computer system of claim 19, further comprising: