IP Library Granted Patent US 12,353,590
Granted Patent B2
US 12,353,590 · App. 17/562,650 · Granted Jul 8, 2025

Secure data processing

Inventors: Jeremy Taylor (Montreal, CA); John Christopher Muddle (Barcelona, ES); Jesús Alejandro Cárdenes Cabré (Montreal, CA); Ashley DaSilva (Montreal, CA); Madjid Aoudia (Montreal, CA)
Assignee: Via Science, Inc.
G06F21/6245G06F21/6227H04L9/085G06F2221/2101
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12,353,590
App. No.
17/562,650
Granted
Jul 8, 2025
Kind
B2
Abstract

A computing system that facilitates execution of protocol for requesting data from one or more data owners. The protocol may specify an execution graph for performing operations collect the requested data. The execution graph may be comprised of execution graph nodes specifying operations such as accessing a database, querying the database, and scrubbing the resulting data of sensitive information. An execution graph may be agreed upon and stored on a blockchain. Storing the execution graph on the blockchain ensures a validated consensus among parties, such as the data owners, for the operations defined within the execution graph. The protocol may include requests for data from multiple data owners. The data received from each data owner may be aggregated. Rules may require the aggregated data meet certain requirements before release such as removing sensitive information or a minimum number of data records to prevent exposure of private data.

Claims (74)

1. A first system comprising:

at least one processor; and

at least one memory including instructions that, when executed by the at least one processor, cause the first system to:

receive, from a second system, a first request to execute a protocol, wherein the protocol includes a second request corresponding to a first data source and a function;

determine a third system associated with the first data source;

send, to the third system, the second request to execute the function;

causing the third system to send, to at least one device associated with a blockchain, a third request to obtain first data corresponding to executable computer instructions of the function, the first data corresponding to an agreement between at least a first party corresponding to the second system and a second party corresponding to the third system regarding the function;

cause the third system to execute the executable computer instructions of the function to determine a first dataset; and

cause the first dataset to be sent to the second system.

2. The first system of claim 1 , wherein the at least one memory further includes instructions, that, when executed by the at least one processor, further cause the first system to, in response to receiving the first request:

send, to the at least one device associated with the blockchain, a fourth request to obtain second data corresponding to rules based on the protocol; and

receive the second data.

3. The first system of claim 2 , wherein the second data includes at least one rule corresponding to a location.

4. The first system of claim 2 , wherein the second data includes at least one rule corresponding to accessing data of the first data source.

5. The first system of claim 1 , wherein the protocol includes a fourth request corresponding to a second data source, and the at least one memory further includes instructions, that, when executed by the at least one processor, further cause the first system to:

determine a fourth system associated with the second data source;

send, to the fourth system, the fourth request to execute the function represented in execution graph;

cause the fourth system to send, to the at least one device associated with the blockchain, a fifth request to obtain third data corresponding to the executable computer instructions of the function, the third data corresponding to an agreement between at least the first party, the second party, and a third party corresponding to the fourth system regarding the function;

cause the fourth system to execute the executable computer instructions of the function to determine a second dataset; and

cause the second dataset to be sent to the second system.

6. The first system of claim 5 , wherein the at least one memory further includes instructions, that, when executed by the at least one processor, further cause the first system to:

determine a combination of records of the first dataset and the second dataset exceeds a predetermined threshold.

7. The first system of claim 5 , wherein the at least one memory further includes instructions, that, when executed by the at least one processor, further cause the first system to:

determine an aggregate of the first dataset and the second dataset; and

send, to the second system, the aggregate.

8. The first system of claim 1 , wherein the at least one memory further includes instructions, that, when executed by the at least one processor, further cause the first system to:

generate a hash based on the first dataset; and

store, in a database, the protocol and the hash.

9. The first system of claim 1 , wherein the at least one memory further includes instructions, that, when executed by the at least one processor, further cause the first system to:

determine, based on the function, fourth data representing at least one field of the first dataset, wherein the at least one field includes sensitive information;

determine a subset of data from the first dataset based at least in part on the at least one field; and

determine a clean first dataset by removing the subset of data from the first dataset, wherein causing the first dataset to be sent to the second system includes sending the clean first dataset to the second system.

10. The first system of claim 1 , wherein the at least one memory further includes instructions, that, when executed by the at least one processor, further cause the first system to:

generate a first record data associating the first dataset and the protocol;

cause the first record data to be stored in a database;

receive a sixth request, wherein the sixth request identifies the first dataset;

determine the first record data based on the first dataset; and

send fifth data representing the protocol.

11. A computer-implemented method comprising:

receiving, by a first system from a second system, a first request to execute a protocol, wherein the protocol includes a second request corresponding to a first data source and a function;

determining a third system associated with the first data source;

sending, from the first system to the third system, the second request to execute the function;

causing the third system to send, to at least one device associated with a blockchain, a third request to obtain first data corresponding to executable computer instructions of the function, the first data corresponding to an agreement between at least a first party corresponding to the second system and a second party corresponding to the third system regarding the function;

causing the third system to execute the executable computer instructions of the function to determine a first dataset; and

causing the first dataset to be sent to the second system.

12. The computer-implemented method of claim 11 , further comprising, in response to receiving the first request:

sending, to the at least one device associated with the blockchain, a fourth request to obtain second data corresponding to rules based on the protocol; and

receiving the second data.

13. The computer-implemented method of claim 12 , wherein the second data includes at least one rule corresponding to a location.

14. The computer-implemented method of claim 12 , wherein the second data includes at least one rule corresponding to accessing data of the first data source.

15. The computer-implemented method of claim 11 , wherein the protocol includes a fourth request corresponding to a second data source, the method further comprising:

determining a fourth system associated with the second data source;

sending, to the fourth system, the fourth request to execute the function represented in execution graph;

causing the fourth system to send, to the at least one device associated with the blockchain, a fifth request to obtain third data corresponding to the executable computer instructions of the function, the third data corresponding to an agreement between at least the first party, the second party, and a third party corresponding to the fourth system regarding the function;

causing the fourth system to execute the executable computer instructions of the function to determine a second dataset; and

causing the second dataset to be sent to the second system.

16. The computer-implemented method of claim 15 , further comprising:

determining a combination of records of the first dataset and the second dataset exceeds a predetermined threshold.

17. The computer-implemented method of claim 15 , further comprising:

determining an aggregate of the first dataset and the second dataset; and

sending, to the second system, the aggregate.

18. The computer-implemented method of claim 11 , further comprising:

generating a hash based on the first dataset; and

storing, in a database, the protocol and the hash.

19. The computer-implemented method of claim 11 , further comprising:

determining, based on the function, fourth data representing at least one field of the first dataset, wherein the at least one field includes sensitive information;

determining a subset of data from the first dataset based at least in part on the at least one field; and

determining a clean first dataset by removing the subset of data from the first dataset, wherein causing the first dataset to be sent to the second system includes sending the clean first dataset to the second system.

20. The computer-implemented method of claim 11 , further comprising:

generating a first record data associating the first dataset and the protocol;

causing the first record data to be stored in a database;

receiving a sixth request, wherein the sixth request identifies the first dataset;

determining the first record data based on the first dataset; and

sending fifth data representing the protocol.

Assignments (2)
SECURITY INTEREST Recorded Sep 30, 2025
From: VIA SCIENCE, INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 072422/0488 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 8, 2022
From: TAYLOR, JEREMY; MUDDLE, JOHN CHRISTOPHER; CÁRDENES CABRÉ, JESÚS ALEJANDRO; DASILVA, ASHLEY; AOUDIA, MADJID
To: VIA SCIENCE, INC.
Reel/Frame 061689/0248 →
Continuity (2)
Provisional Application 63131621 · Dec 29, 2020
Related Publication 20220207176A1 · Jun 30, 2022
References Cited (7)
US 11347885B2 · Muddle · 2022 [cited by examiner]
US 11784836B2 · Muddle · 2023 [cited by examiner]
International Preliminary Report on Patentability issued on Jul. 4, 2023 for International Patent Application No. PCT/US2021/065226 filed Dec. 27, 2021, 10 pages. [cited by applicant]
International Search Report and Written Opinion mailed on Apr. 7, 2022 and issued in International Patent Application No. PCT/US2021/065226, filed Dec. 27, 2021, 16 pages, 12 pages. [cited by applicant]
Ziye Geng, et al., “Poster: Smart-Contract Based Incentive Mechanism for K-Anonymity Privacy Protection in LBSs,” 2017 IEEE Symposium on Privacy-Aware Computing, in IEEE Computer Society, (2017), pp. 200-201. [cited by applicant]
Mochan Fan, et al., “Consortium Blockchain Based Data Aggregation and Regulation Mechanism for Smart Grid,” in IEEE Access, (2019), 13 pages, 12 pages. [cited by applicant]
Siguang Chen, et al., “Double-Blockchain Assisted Secure and Anonymous Data Aggregation for Fog-Enabled Smart Grid,” Engineering [Online], vol. 8, (2022), pp. 159-169, retrieved from https://www.sciencedirect.com/scienc… [cited by applicant]