IP Library › Granted Patent US 11,658,833
Granted Patent B1
US 11,658,833 · App. 18/062,090 · Granted May 23, 2023

Systems and methods for conducting cryptographically secure actions in public, non-permissioned blockchains using bifurcated self-executing programs

Inventors: Shishir Singh (Staten Island, NY); Jonathan Miles Collin Rosenoer (West Port, CT); Andres Wolberg-Stok (Weston, FL); Biser Dimitrov (New York, NY)
Assignee: Citibank, N.A.
H04L9/50H04L9/3263
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,658,833
App. No.
18/062,090
Filed
Dec 6, 2022
Granted
May 23, 2023
Kind
B1
Art Unit
2434
USPC
380/28
Abstract

Systems and methods for a bifurcated self-executing program that wraps a first self-executing program (e.g., a first smart contract) on a blockchain within a second self-executing program (e.g., a second smart contract), in which the second self-executing program enforces the requirement for particular security credentials/certificates. The bifurcated self-executing program comprises a single compiled self-executing program that combines the first self-executing program and the second self-executing program.

Claims (110)

1. A system for conducting cryptographically secure actions in public, non-permissioned blockchains using a layer one blockchain solution featuring bifurcated self-executing programs that are compiled together, the system comprising:

a blockchain node for a cryptographically secure network, wherein the blockchain node comprises one or more processors; and

a non-transitory computer-readable medium having instructions recorded thereon that when executed by the one or more processors causes operations comprising:

receiving a first request, at a bifurcated self-executing program, to perform a first cryptographically secure blockchain action on the cryptographically secure network, wherein the first request has a first processing characteristic, and wherein the first processing characteristic comprises a variable defined in one or more lines of code of the bifurcated self-executing program;

in response to receiving the first request, processing the first request with a first self-executing program of the bifurcated self-executing program, wherein the first self-executing program comprises a first function subset defined in the one or more lines of code of the bifurcated self-executing program;

determining, based on the first self-executing program, whether the first processing characteristic corresponds to a predetermined processing characteristic, wherein determining whether the first processing characteristic corresponds to the predetermined processing characteristic comprises:

determining, based on the first processing characteristic, a notification requirement for the first request, wherein the notification requirement notifies an entity of the first request;

receiving a confirmation that the notification requirement has been satisfied; and

determining that the response satisfies the predetermined processing characteristic; and

in response to determining that the first processing characteristic corresponds to the predetermined processing characteristic, processing the first request with a second self-executing program of the bifurcated self-executing program to perform the first cryptographically secure blockchain action, wherein the second self-executing program comprises a second function subset defined in the one or more lines of code of the bifurcated self-executing program.

2. A method for conducting cryptographically secure blockchain actions in public, non-permissioned blockchains using a layer one blockchain solution featuring bifurcated self-executing programs that are compiled together, the method comprising:

receiving a first request, at a bifurcated self-executing program, to perform a first blockchain action, wherein the first request has a first processing characteristic;

in response to receiving the first request, processing the first request with a first self-executing program of the bifurcated self-executing program;

determining, based on the first self-executing program, whether the first processing characteristic corresponds to a predetermined processing characteristic, wherein determining whether the first processing characteristic corresponds to the predetermined processing characteristic comprises:

determining, based on the first processing characteristic, a notification requirement for the first request, wherein the notification requirement notifies an entity of the first request;

receiving a confirmation that the notification requirement has been satisfied; and

determining that the response satisfies the predetermined processing characteristic; and

in response to determining that the first processing characteristic corresponds to the predetermined processing characteristic, processing the first request with a second self-executing program of the bifurcated self-executing program to perform the first blockchain action.

3. The method of claim 2 , wherein determining whether the first processing characteristic corresponds to the predetermined processing characteristic comprises:

determining, based on the first processing characteristic, a security certificate for the first request;

determining, based on the predetermined processing characteristic, a security certificate requirement for the bifurcated self-executing program; and

determining whether the security certificate corresponds to the security certificate requirement.

4. The method of claim 2 , wherein determining whether the first processing characteristic corresponds to the predetermined processing characteristic comprises:

determining, based on the first processing characteristic, a request origination for the first request;

determining, based on the predetermined processing characteristic, a request origination requirement for the bifurcated self-executing program; and

determining whether the request origination corresponds to the request origination requirement.

5. The method of claim 2 , wherein determining whether the first processing characteristic corresponds to the predetermined processing characteristic comprises:

determining, based on the first processing characteristic, a request validator for the first request;

determining, based on the predetermined processing characteristic, a request validator requirement for the bifurcated self-executing program; and

determining whether the request validator corresponds to the request validator requirement.

6. The method of claim 2 , wherein determining whether the first processing characteristic corresponds to the predetermined processing characteristic comprises:

determining, based on the first processing characteristic, a request validation procedure for the first request;

determining, based on the predetermined processing characteristic, a request validation procedure requirement for the bifurcated self-executing program; and

determining whether the request validation procedure corresponds to the request validation procedure requirement.

7. The method of claim 2 , wherein determining whether the first processing characteristic corresponds to the predetermined processing characteristic comprises:

determining, based on the first processing characteristic, a request testing protocol procedure for the first request;

determining, based on the predetermined processing characteristic, a request testing protocol requirement for the bifurcated self-executing program; and

determining whether the request testing protocol procedure corresponds to the request testing protocol requirement.

8. The method of claim 2 , wherein determining whether the first processing characteristic corresponds to the predetermined processing characteristic comprises:

determining, based on the first processing characteristic, a supported protocol for the first request;

determining, based on the predetermined processing characteristic, a protocol requirement for the bifurcated self-executing program; and

determining whether the supported protocol corresponds to the protocol requirement.

9. The method of claim 2 , wherein determining whether the first processing characteristic corresponds to the predetermined processing characteristic comprises:

determining, based on the first processing characteristic, a digital asset type for the first request;

determining, based on the predetermined processing characteristic, a digital asset type requirement for the bifurcated self-executing program; and

determining whether the digital asset type corresponds to the digital asset type requirement.

10. The method of claim 2 , wherein determining whether the first processing characteristic corresponds to the predetermined processing characteristic comprises:

determining, based on the first processing characteristic, a synthetic asset support for the first request;

determining, based on the predetermined processing characteristic, a synthetic asset support requirement for the bifurcated self-executing program; and

determining whether the synthetic asset support corresponds to the synthetic asset support requirement.

11. The method of claim 2 , wherein determining whether the first processing characteristic corresponds to the predetermined processing characteristic comprises:

determining, based on the first processing characteristic, a ring signature for the first request;

determining, based on the predetermined processing characteristic, a ring signature requirement for the bifurcated self-executing program; and

determining whether the ring signature corresponds to the ring signature requirement.

12. The method of claim 2 , wherein determining whether the first processing characteristic corresponds to the predetermined processing characteristic comprises:

determining, based on the first processing characteristic, a Multi-Party Computation (MPC) signature for the first request;

determining, based on the predetermined processing characteristic, a Multi-Party Computation (MPC) signature requirement for the bifurcated self-executing program; and

determining whether the Multi-Party Computation (MPC) signature corresponds to the Multi-Party Computation (MPC) signature requirement.

13. The method of claim 2 , wherein the bifurcated self-executing program is generated based on:

receiving a first uncompiled version of the first self-executing program;

receiving a second uncompiled version of the second self-executing program; and

compiling the first uncompiled version of the first self-executing program and the second uncompiled version of the second self-executing program to generate the bifurcated self-executing program.

14. A non-transitory, computer-readable medium, comprising instructions that, when executed by one or more processors, cause operations comprising:

receiving a first request, at a bifurcated self-executing program, to perform a first blockchain action, wherein the first request has a first processing characteristic;

in response to receiving the first request, processing the first request with a first self-executing program of the bifurcated self-executing program;

determining, based on the first self-executing program, whether the first processing characteristic corresponds to a predetermined processing characteristic, wherein determining whether the first processing characteristic corresponds to the predetermined processing characteristic comprises:

determining, based on the first processing characteristic, a request origination for the first request

determining, based on the predetermined processing characteristic, a request origination requirement for the bifurcated self-executing program; and

determining whether the request origination corresponds to the request origination requirement; and

in response to determining that the first processing characteristic corresponds to the predetermined processing characteristic, processing the first request with a second self-executing program of the bifurcated self-executing program to perform the first blockchain action.

15. The non-transitory, computer-readable medium of claim 14 , wherein determining whether the first processing characteristic corresponds to the predetermined processing characteristic comprises:

determining, based on the first processing characteristic, a security certificate for the first request;

determining, based on the predetermined processing characteristic, a security certificate requirement for the bifurcated self-executing program; and

determining whether the security certificate corresponds to the security certificate requirement.

16. The non-transitory, computer-readable medium of claim 14 , wherein determining whether the first processing characteristic corresponds to the predetermined processing characteristic comprises:

determining, based on the first processing characteristic, a request validator for the first request;

determining, based on the predetermined processing characteristic, a request validator requirement for the bifurcated self-executing program; and

determining whether the request validator corresponds to the request validator requirement.

17. The non-transitory, computer-readable medium of claim 14 , wherein determining whether the first processing characteristic corresponds to the predetermined processing characteristic comprises:

determining, based on the first processing characteristic, a request validation procedure for the first request;

determining, based on the predetermined processing characteristic, a request validation procedure requirement for the bifurcated self-executing program; and

determining whether the request validation procedure corresponds to the request validation procedure requirement.

18. The non-transitory, computer-readable medium of claim 14 , wherein determining whether the first processing characteristic corresponds to the predetermined processing characteristic comprises:

determining, based on the first processing characteristic, a request testing protocol procedure for the first request;

determining, based on the predetermined processing characteristic, a request testing protocol requirement for the bifurcated self-executing program; and

determining whether the request testing protocol procedure corresponds to the request testing protocol requirement.

19. A method for conducting cryptographically secure blockchain actions in public, non-permissioned blockchains using a layer one blockchain solution featuring bifurcated self-executing programs that are compiled together, the method comprising:

receiving a first request, at a bifurcated self-executing program, to perform a first blockchain action, wherein the first request has a first processing characteristic;

in response to receiving the first request, processing the first request with a first self-executing program of the bifurcated self-executing program;

determining, based on the first self-executing program, whether the first processing characteristic corresponds to a predetermined processing characteristic, wherein determining whether the first processing characteristic corresponds to the predetermined processing characteristic comprises:

determining, based on the first processing characteristic, a ring signature for the first request;

determining, based on the predetermined processing characteristic, a ring signature requirement for the bifurcated self-executing program; and

determining whether the ring signature corresponds to the ring signature requirement; and

in response to determining that the first processing characteristic corresponds to the predetermined processing characteristic, processing the first request with a second self-executing program of the bifurcated self-executing program to perform the first blockchain action.

20. A method for conducting cryptographically secure blockchain actions in public, non-permissioned blockchains using a layer one blockchain solution featuring bifurcated self-executing programs that are compiled together, the method comprising:

receiving a first request, at a bifurcated self-executing program, to perform a first blockchain action, wherein the first request has a first processing characteristic;

in response to receiving the first request, processing the first request with a first self-executing program of the bifurcated self-executing program;

determining, based on the first self-executing program, whether the first processing characteristic corresponds to a predetermined processing characteristic, wherein determining whether the first processing characteristic corresponds to the predetermined processing characteristic comprises:

determining, based on the first processing characteristic, a Multi-Party Computation (MPC) signature for the first request;

determining, based on the predetermined processing characteristic, a Multi-Party Computation (MPC) signature requirement for the bifurcated self-executing program; and

determining whether the Multi-Party Computation (MPC) signature corresponds to the Multi-Party Computation (MPC) signature requirement; and

in response to determining that the first processing characteristic corresponds to the predetermined processing characteristic, processing the first request with a second self-executing program of the bifurcated self-executing program to perform the first blockchain action.

21. A method for conducting cryptographically secure blockchain actions in public, non-permissioned blockchains using a layer one blockchain solution featuring bifurcated self-executing programs that are compiled together, the method comprising:

receiving a first request, at a bifurcated self-executing program, to perform a first blockchain action, wherein the first request has a first processing characteristic, wherein the bifurcated self-executing program is generated based on:

receiving a first uncompiled version of a first self-executing program;

receiving a second uncompiled version of a second self-executing program; and

compiling the first uncompiled version of the first self-executing program and the second uncompiled version of the second self-executing program to generate the bifurcated self-executing program;

in response to receiving the first request, processing the first request with the first self-executing program of the bifurcated self-executing program;

determining, based on the first self-executing program, whether the first processing characteristic corresponds to a predetermined processing characteristic; and

in response to determining that the first processing characteristic corresponds to the predetermined processing characteristic, processing the first request with the second self-executing program of the bifurcated self-executing program to perform the first blockchain action.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 6, 2022
From: ROSENOER, JONATHAN MILES COLLIN; SINGH, SHISHIR; WOLBERG-STOK, ANDRES; DIMITROV, BISER
To: CITIBANK, N.A.
Reel/Frame 061990/0542 →
Cited By (1)
US 12,587,488