Systems and methods for multi-entity blockchain-based event break prevention
A computer-implemented method comprising receiving a first event request corresponding to a pending event between a first computing device and a second computing device, the first event request comprising a first set of event attributes corresponding to the pending event; transmitting, each of a plurality of first subsets of event attributes to a different set of nodes; receiving a second event request corresponding to the pending event between the first computing device and the second computing device; and transmitting each of the plurality of second subsets of event attributes to a different set of the plurality of sets of nodes, wherein each of the plurality of sets of nodes compares the first subset of event attributes that the set of nodes receives with the second subset of event attributes that the set of nodes receives; and a block instance corresponding to the pending event to a blockchain.
1 . A system comprising:
a plurality of nodes each corresponding to a computing device having a processor and memory to store data, the plurality of nodes comprising a plurality of sets of nodes, each set of nodes maintaining a different blockchain and corresponding to a different type of destination, wherein one or more computing devices of the plurality of nodes are configured to:
receive, from a first computing device, a first event request corresponding to a pending event between the first computing device and a second computing device, the first event request comprising a first set of event attributes corresponding to the pending event;
receive, from a second computing device, a second event request corresponding to the pending event between the first computing device and the second computing device, the second event request comprising a second set of event attributes corresponding to the pending event;
divide the first set of event attributes into a plurality of first subsets of event attributes and the second set of event attributes into a plurality of second subsets of event attributes based on a table indicating types of event attributes to be sent to different types of destinations; and
transmit the plurality of first subsets of event attributes and the plurality of second subsets of event attributes to the plurality of sets of nodes based on types of destinations of the plurality of sets of nodes such that each of the plurality of sets of nodes receives a different first subset of the plurality of first subsets of event attributes and a different second subset of the plurality of second subsets of event attributes, each first subset of the plurality of first subsets of event attributes having at least one type of event attribute different from a type of event attribute included in another first subset of the plurality of first subsets of event attributes,
wherein the one or more computing devices are configured to transmit multiple of the plurality of first subsets of event attributes of the pending event and multiple of the plurality of second subsets of event attributes of the pending event to a set of nodes of the plurality of sets of nodes based on the set of nodes having a plurality of roles each corresponding to one of the types of destinations for completing the pending event; and
wherein each set of one or more sets of nodes of the plurality of sets of nodes is configured to:
receive, from the one or more computing devices, a corresponding first subset of event attributes of the plurality of first subset of event attributes and a corresponding second subset of event attributes of the plurality of second subset of event attributes;
execute an electronic protocol stored on a blockchain maintained by the set of nodes to compare the corresponding first subset of event attributes with the corresponding second subset of event attributes to determine whether the corresponding first subset of event attributes matches the corresponding second subset of event attributes, the blockchain storing types of event attributes mapped to the set of nodes in the table;
responsive to determining that the electronic protocol indicates the corresponding first subset of event attributes does not match the corresponding second subset of event attributes, communicate with the one or more computing devices to cause updating of the corresponding first subset of event attributes to match the corresponding second subset of event attributes; and
responsive to determining the updated corresponding first subset of event attributes matches the corresponding second subset of event attributes, append a block instance corresponding to the pending event to the blockchain maintained by the set of nodes.
2 . The system of claim 1 , wherein the first computing device communicates the pending event with the second computing device via a private channel that is not accessible to other computing devices.
3 . The system of claim 1 , wherein the first computing device corresponds to a first set of nodes of the plurality of sets of nodes, the first set of nodes maintaining a first blockchain, and the second computing device corresponds to a second set of nodes, and wherein the first set of nodes:
appends, to the first blockchain, a third block instance comprising a third subset of the first set of event attributes corresponding to the pending event;
receives, from the second set of nodes, a fourth subset of the second set of event attributes corresponding to the pending event;
retrieves the third subset of event attributes from the third block instance;
compares the third subset of event attributes with the fourth subset of event attributes; and
responsive to determining the third subset of event attributes matches the fourth subset of event attributes, appends a fourth block instance corresponding to the pending event to the first blockchain, the fourth block instance indicating successful completion of the pending event.
4 . The system of claim 3 , wherein the first set of nodes:
appends a fifth block instance to the first blockchain between the third block instance and the fourth block instance, the fifth block instance comprising the fourth subset of event attributes; and
retrieves the fourth subset of event attributes from the fifth block instance,
wherein the first set of nodes compares the retrieved fourth subset of event attributes with the third subset of event attributes.
5 . The system of claim 1 , wherein the first computing device corresponds to a first set of nodes of the plurality of sets of nodes, and wherein the first set of nodes:
executes a first electronic protocol to transmit a third subset of event attributes of the first set of event attributes to a second set of nodes of the plurality of sets of nodes;
executes a second electronic protocol to transmit a fourth subset of event attributes of the second set of event attributes to a third set of nodes of the plurality of sets of nodes; and
executes a third electronic protocol to transmit a fifth subset of event attributes of the second set of event attributes to a fourth set of nodes of the plurality of sets of nodes.
6 . The system of claim 5 , wherein the first set of nodes executes the first electronic protocol, the second electronic protocol, and the third electronic protocol by respectively executing a first smart contract, a second smart contract, and a third smart contract.
7 . The system of claim 5 , wherein the third set of nodes:
receives the fourth subset of event attributes from the first set of nodes;
appends, to a blockchain maintained by the third set of nodes, a third block instance comprising the fourth subset of event attributes;
receives a sixth subset of event attributes of the second set of event attributes from the second set of nodes;
compares the fourth subset of event attributes with the sixth subset of event attributes; and
appends a fourth block instance to the blockchain maintained by the third set of nodes in response to determining a match between the fourth subset of event attributes and the sixth subset of event attributes.
8 . The system of claim 1 , wherein the first computing device corresponds to a first set of nodes of the plurality of sets of nodes, wherein the first set of nodes:
transmits a third subset of event attributes of the first set of event attributes for the pending event and a fourth subset of event attributes of the second set of event attributes for the pending event to a second set of nodes; and
wherein the second set of nodes:
appends a third block instance comprising the third subset of event attributes for the pending event to a blockchain maintained by the second set of nodes; and
appends a fourth block instance comprising the fourth subset of event attributes for the pending event to the blockchain maintained by the second set of nodes.
9 . The system of claim 1 , wherein the first computing device corresponds to a first set of nodes of the plurality of sets of nodes, the first set of nodes maintaining a first blockchain, and the second computing device corresponds to a second set of nodes, and wherein the first set of nodes:
appends, to the first blockchain, a third block instance comprising a third subset of the first set of event attributes corresponding to the pending event;
receives, from the second set of nodes, the second subset of a fourth set of event attributes corresponding to the pending event;
retrieves the third subset of event attributes from the third block instance;
compares the third subset of event attributes with the fourth subset of event attributes; and
responsive to determining the third subset of event attributes does not match the fourth subset of event attributes, generate an alert indicating the third subset of event attributes does not match the second subset of event attributes.
10 . The system of claim 1 , wherein the one or more computing devices are configured to:
determine an attribute type for each event attribute of the first set of event attributes and the second set of event attributes; and
determine whether the event attributes of the first set of event attributes match corresponding event attributes of the second set of event attributes based on the determined attribute types.
11 . The system of claim 1 , wherein the pending event is a pending exchange of assets.
12 . A method comprising:
receiving, by one or more computing devices of a plurality of nodes and from a first computing device, a first event request corresponding to a pending event between the first computing device and a second computing device, the first event request comprising a first set of event attributes corresponding to the pending event;
receiving, by the one or more computing devices from a second computing device, a second event request corresponding to the pending event between the first computing device and the second computing device, the second event request comprising a second set of event attributes corresponding to the pending event;
dividing, by the one or more computing devices, the first set of event attributes into a plurality of first subsets of event attributes and the second set of event attributes into a plurality of second subsets of event attributes based on a table indicating types of event attributes to be sent to different types of destinations; and
transmitting, by the one or more computing devices, the plurality of first subsets of event attributes and the plurality of second subsets of event attributes to a plurality of sets of nodes based on types of destinations of the plurality of sets of nodes such that each of the plurality of sets of nodes receives a different first subset of the plurality of first subsets of event attributes and a different second subset of the plurality of second subsets of event attributes, one or more first subsets of the plurality of first subsets of event attributes having at least one type of event attribute different from a type of event attribute included in another first subset of the plurality of first subsets of event attributes,
wherein transmitting the plurality of first subsets of event attributes and the plurality of second subsets of event attributes to plurality of sets of nodes comprises transmitting, by the one or more computing devices, multiple of the plurality of first subsets of event attributes of the pending event and multiple of the plurality of second subsets of event attributes of the pending event to a set of nodes of the plurality of sets of nodes based on the set of nodes having a plurality of roles each corresponding to one of the types of destinations for completing the pending event, and
wherein each set of one or more sets of nodes of the plurality of sets of nodes is configured to:
receive, from the one or more computing devices, a corresponding first subset of event attributes of the plurality of first subset of event attributes and a corresponding second subset of event attributes of the plurality of second subset of event attributes;
execute an electronic protocol stored on a blockchain maintained by the set of nodes to compare the corresponding first subset of event attributes with the corresponding second subset of event attributes to determine whether the corresponding first subset of event attributes matches the corresponding second subset of event attributes, the blockchain storing types of event attributes mapped to the set of nodes in the table;
responsive to determining that the electronic protocol indicates the corresponding first subset of event attributes does not match the corresponding second subset of event attributes, communicate with the one or more computing devices to cause updating of the corresponding first subset of event attributes to match the corresponding second subset of event attributes; and
responsive to determining the updated corresponding first subset of event attributes matches the corresponding second subset of event attributes, append a block instance corresponding to the pending event to the blockchain maintained by the set of nodes.
13 . The method of claim 12 , wherein the first computing device communicates the pending event with the second computing device via a private channel that is not accessible to other computing devices.
14 . The method of claim 12 , wherein the first computing device corresponds to a first set of nodes of the plurality of sets of nodes, the first set of nodes maintaining a first blockchain, and the second computing device corresponds to a second set of nodes, and the method comprises:
appending, by the first set of nodes to the first blockchain, a third block instance comprising a third subset of the first set of event attributes corresponding to the pending event;
receiving, by the first set of nodes from the second set of nodes, a fourth subset of the second set of event attributes corresponding to the pending event;
retrieving, by the first set of nodes, the third subset of event attributes from the third block instance;
comparing, by the first set of nodes, the third subset of event attributes with the fourth subset of event attributes; and
responsive to determining the third subset of event attributes matches the fourth subset of event attributes, appending, by the first set of nodes, a fourth block instance corresponding to the pending event to the first blockchain, the fourth block instance indicating successful completion of the pending event.
15 . The method of claim 14 , comprising:
appending, by the first set of nodes, a fifth block instance to the first blockchain between the third block instance and the fourth block instance, the fifth block instance comprising the fourth subset of event attributes;
retrieving, by the first set of nodes, the fourth subset of event attributes from the fifth block instance; and
comparing, by the first set of nodes, the retrieved fourth subset of event attributes with the third subset of event attributes.
16 . The method of claim 12 , wherein the first computing device corresponds to a first set of nodes of the plurality of sets of nodes, and the method comprises:
executing, by the first set of nodes, a first electronic protocol to transmit a third subset of event attributes of the first set of event attributes to a second set of nodes of the plurality of sets of nodes;
executing, by the first set of nodes, a second electronic protocol to transmit a fourth subset of event attributes of the second set of event attributes to a third set of nodes of the plurality of sets of nodes; and
executing, by the first set of nodes, a third electronic protocol to transmit a fifth subset of event attributes of the second set of event attributes to a fourth set of nodes of the plurality of sets of nodes.
17 . The method of claim 16 , wherein the first set of nodes executes the first electronic protocol, the second electronic protocol, and the third electronic protocol by respectively executing a first smart contract, a second smart contract, and a third smart contract.
18 . The method of claim 16 , comprising:
receiving, by the third set of nodes, the fourth subset of event attributes from the first set of nodes;
appending, by the third set of nodes to a blockchain maintained by the third set of nodes, a third block instance comprising the fourth subset of event attributes;
receiving, by the third set of nodes, a sixth subset of event attributes of the second set of event attributes from the second set of nodes;
comparing, by the third set of nodes, the fourth subset of event attributes with the sixth subset of event attributes; and
appending, by the third set of nodes, a fourth block instance to the blockchain maintained by the third set of nodes in response to determining a match between the fourth subset of event attributes and the sixth subset of event attributes.
19 . The method of claim 12 , wherein the first computing device corresponds to a first set of nodes of the plurality of sets of nodes, and the method comprises:
transmitting, by the first set of nodes, a third subset of event attributes of the first set of event attributes for the pending event and a fourth subset of event attributes of the second set of event attributes for the pending event to a second set of nodes;
appending, by the second set of nodes, a third block instance comprising the third subset of event attributes for the pending event to a blockchain maintained by the second set of nodes; and
appending, by the second set of nodes, a fourth block instance comprising the fourth subset of event attributes for the pending event to the blockchain maintained by the second set of nodes.
20 . The method of claim 12 , wherein the first computing device corresponds to a first set of nodes of the plurality of sets of nodes, the first set of nodes maintaining a first blockchain, and the second computing device corresponds to a second set of nodes, and the method comprises:
appending, by the first set of nodes to the first blockchain, a third block instance comprising a third subset of the first set of event attributes corresponding to the pending event;
receiving, by the first set of nodes from the second set of nodes, a fourth subset of the second set of event attributes corresponding to the pending event;
retrieving, by the first set of nodes, the third subset of event attributes from the third block instance;
comparing, by the first set of nodes, the third subset of event attributes with the fourth subset of event attributes; and
responsive to determining the third subset of event attributes does not match the fourth subset of event attributes, generating, by the first set of nodes, an alert indicating the third subset of event attributes does not match the fourth subset of event attributes.