IP Library Granted Patent US 11,784,836
Granted Patent B2
US 11,784,836 · App. 17/903,264 · Granted Oct 10, 2023

Permissible code analysis

Inventors: John Christopher Muddle (Barcelona, ES); Jeremy Taylor (Montreal, CA)
Assignee: Via Science, Inc.
H04L9/50G06F8/427H04L9/3247
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 11,784,836
App. No.
17/903,264
Granted
Oct 10, 2023
Kind
B2
Abstract

A computing system that is configured to receive requests to send computer executable programs to a data owner system associated with a data source for execution of the computer executable program by the data owner system. The data owner system may store to a blockchain a permitted list of programming functions, function libraries, function syntax definitions, and execution environment requirements. The computing system may be further configured to retrieve the permitted lists. The computing system may be further configured to evaluate the computer executable program using the permitted lists to determine if the computer executable program may be executed by the data owner system. The evaluation may be performed by generating an abstract syntax tree of the computer executable program. The computing system may be further configured to send the computer executable program to the data owner system if the computer executable program satisfies the conditions of the permitted lists.

Claims (77)

1. A system comprising:

at least one processor; and

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

receive, from a first system, a first request to have a second system execute a computer executable program using first data from a first data source associated with the second system;

send, to at least one blockchain device, a second request to obtain second data indicating a set of functions permitted to be executed by the second system, wherein the second data corresponds to an agreement between at least a first party and a second party regarding the set of functions;

receive, from the at least one blockchain device, the second data;

determine, using the second data, the computer executable program satisfies a condition; and

in response to determining the computer executable program satisfies the condition, send the computer executable program to the second system.

2. The 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 system to:

determine a first function of the computer executable program; and

determine the computer executable program satisfies the condition by determining the first function matches a second function of the set of functions.

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

determine a first syntax associated with the first function;

determine a second syntax associated with the second function; and

determine the computer executable program satisfies the condition by determining the first syntax matches the second syntax.

4. The 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 system to:

determine a subset of the set of functions based on a security protocol; and

update the second data to comprise the subset of the set of functions.

5. The 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 system to:

receive, from the second system, third data corresponding to a result of execution of the computer executable program; and

send the third data to the first system.

6. The 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 system to:

generate an abstract syntax tree based on the computer executable program; and

use the abstract syntax tree and the set of functions to determine the computer executable program satisfies the condition.

7. The 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 system to:

send, to the at least one blockchain device, a third request to obtain third data indicating a digital signature by the second system corresponding to the set of functions;

receive, from the at least one blockchain device, the third data; and

verify the set of functions based on the third data.

8. The 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 system to:

send, to the at least one blockchain device, a third request to obtain third data indicating an execution environment condition for execution by the second system, wherein the third data corresponds to an agreement between at least the first party and the second party regarding the execution environment condition;

receive, from the at least one blockchain device, the third data; and

determine, using the third data, the computer executable program satisfies the execution environment condition,

wherein sending the computer executable program to the second system is based on the computer executable program satisfying the execution environment condition.

9. The system of claim 8 , wherein the execution environment condition indicates a version for the set of functions.

10. A computer-implemented method comprising:

receiving, from a first system, a first request to have a second system execute a computer executable program using first data from a first data source associated with the second system;

sending, to at least one blockchain device, a second request to obtain second data indicating a set of functions permitted to be executed by the second system, wherein the second data corresponds to an agreement between at least a first party and a second party regarding the set of functions;

receiving, from the at least one blockchain device, the second data;

determining, using the second data, the computer executable program satisfies a condition; and

in response to determining the computer executable program satisfies the condition, sending the computer executable program to the second system.

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

determining a first function of the computer executable program; and

determining the computer executable program satisfies the condition by determining the first function matches a second function of the set of functions.

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

determining a first syntax associated with the first function;

determining a second syntax associated with the second function; and

determining the computer executable program satisfies the condition by determining the first syntax matches the second syntax.

13. The computer-implemented method of claim 10 , further comprising:

determining a subset of the set of functions based on a security protocol; and

updating the second data to comprise the subset of the set of functions.

14. The computer-implemented method of claim 10 , further comprising:

receiving, from the second system, third data corresponding to a result of execution of the computer executable program; and

sending the third data to the first system.

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

generating an abstract syntax tree based on the computer executable program; and

using the abstract syntax tree and the set of functions to determine the computer executable program satisfies the condition.

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

sending, to the at least one blockchain device, a third request to obtain third data indicating a digital signature by the second system corresponding to the set of functions;

receiving, from the at least one blockchain device, the third data; and

verifying the set of functions based on the third data.

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

sending, to the at least one blockchain device, a third request to obtain third data indicating an execution environment condition for execution by the second system, wherein the third data corresponds to an agreement between at least the first party and the second party regarding the execution environment condition;

receiving, from the at least one blockchain device, the third data; and

determining, using the third data, the computer executable program satisfies the execution environment condition;

wherein sending the computer executable program to the second system is based on the computer executable program satisfying the execution environment condition.

18. The computer-implemented method of claim 17 , wherein the execution environment condition indicates a version for the set of functions.

19. A system comprising:

at least one processor; and

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

receive, from a first system, a first request to have a second system execute a computer executable program using first data from a first data source associated with the second system;

send, to at least one blockchain device, a second request to obtain second data indicating a set of functions permitted to be executed by the second system, wherein the second data corresponds to an agreement between at least a first party and a second party regarding the set of functions;

receive, from the at least one blockchain device, the second data;

determine, using the second data, the computer executable program does not satisfy a condition; and

in response to determining the computer executable program does not satisfy the condition, send a response, based on the condition, to the first system.

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

determine a first function of the computer executable program; and

determine the computer executable program does not satisfy the condition by determining the first function does not match any function of the set of functions.

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 Sep 6, 2022
From: TAYLOR, JEREMY; MUDDLE, JOHN CHRISTOPHER
To: VIA SCIENCE, INC.
Reel/Frame 060997/0294 →
Continuity (2)
Provisional Application 63241602 · Sep 8, 2021
Related Publication 20230073743A1 · Mar 9, 2023
Cited By (2)
US 12,192,390 US 12,353,590