IP Library › Granted Patent US 11,138,600
Granted Patent B2
US 11,138,600 · App. 16/267,838 · Granted Oct 5, 2021

Smart contract regulation

Inventors: Fardin Abdi Taghi Abad (Champaign, IL); Jeremy Goodsitt (Champaign, IL); Austin Walters (Savoy, IL)
Assignee: Capital One Services, LLC
G06Q20/389H04L9/0637G06Q2220/00H04L2209/38
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,138,600
App. No.
16/267,838
Granted
Oct 5, 2021
Kind
B2
Abstract

A platform may receive a first smart contract. The first smart contract may be associated with an entity that stores a plurality of smart contracts in a distributed ledger. The platform may determine a state of the first smart contract and a state of a second smart contract and compare the state of the first smart contract and the state of the second smart contract. The platform may determine, based on the state of the first smart contract and the state of the second smart contract, that a conflict exists between the first smart contract and the second smart contract. The conflict may be determined based on at least one of the first smart contract or the second smart contract being in violation of a respective term of at least one of the first smart contract or the second smart contract.

Claims (116)

1. A method, comprising:

generating, by a device, a first state machine defining a plurality of states of a first smart contract, based on at least one of:

variables associated with one or more terms of a first contract, or

conditions associated with the one or more terms of the first contract;

executing, by the device, a first code of the first smart contract by providing, to the first smart contract, first input,

wherein the first code corresponds to the first state machine;

determining, by the device, a state of the first smart contract based on executing the first code,

wherein the state of the first smart contract is one state of the plurality of states of the first smart contract;

identifying, by the device and based on an entity associated with the first smart contract, a second smart contract associated with the entity;

executing, by the device and based on identifying the second smart contract, a second code of the second smart contract by providing, to the second smart contract, at least a portion of the first input,

wherein the second code corresponds to a second state machine stored in a distributed ledger;

determining, by the device, a state of the second smart contract based on executing the second code,

wherein the state of the second smart contract is one state of a plurality of states of the second state machine;

determining, by the device and based on the state of the first smart contract and the state of the second smart contract, whether a conflict exists between the first smart contract and the second smart contract,

wherein the conflict exists between the first smart contract and the second smart contract if the state of the first smart contract violates the state of the second smart contract or the state of the second smart contract violates the state of the first smart contract; and

performing, by the device, an action based on whether the conflict exists between the first smart contract and the second smart contract.

2. The method of claim 1 , further comprising:

receiving a document associated with the first contract; and

analyzing, using a natural language processing model, the first contract to identify the one or more terms of the first contract.

3. The method of claim 1 , wherein the distributed ledger comprises a publicly available distributed ledger,

wherein the publicly available distributed ledger allows access to the second smart contract to any entity that has access to the distributed ledger.

4. The method of claim 1 , wherein the distributed ledger is associated with an authorization entity, and

wherein only authorized users associated with the authorization entity have access to the distributed ledger.

5. The method of claim 1 , wherein the distributed ledger comprises a blockchain,

wherein the second smart contract is stored in a first block of the blockchain, and

wherein performing the action comprises:

storing the first smart contract in a second block of the blockchain regardless of whether the conflict exists between the first smart contract and the second smart contract.

6. The method of claim 1 , wherein the state of the first smart contract corresponds to:

a current state of the first smart contract, or

a potential state of the first smart contract, and

wherein the state of the second smart contract corresponds to:

a current state of the second smart contract, or

a potential state of the second smart contract.

7. The method of claim 1 , wherein the state of the first smart contract is defined based on a first condition and a variable,

wherein the first condition causes, based on the variable, the first smart contract to be compliant or not compliant, or

wherein the state of the second smart contract is defined based on a second condition and the variable,

wherein the second condition causes, based on the variable, the second smart contract to be compliant or not compliant.

8. The method of claim 1 , wherein, when the conflict exists between the first smart contract and the second smart contract, performing the action comprises:

storing the first smart contract in the distributed ledger;

monitoring the state of the first smart contract to determine whether the conflict continues to exist; and

preventing any transactions associated with the first smart contract until the state of the first smart contract causes the conflict to not exist.

9. The method of claim 1 , wherein, when the conflict exists between the first smart contract and the second smart contract, performing the action comprises:

storing the first smart contract in the distributed ledger;

appending a flag to the first smart contract; and

appending the flag to the second smart contract,

wherein the flag indicates that the conflict exists between the first smart contract and the second smart contract.

10. The method of claim 9 , further comprising:

after determining that the conflict exists between the first smart contract and the second smart contract, determining that the conflict no longer exists between the first smart contract and the second smart contract based on at least one of:

a change in the state of the first smart contract, or

a change in the state of the second smart contract; and

removing the flag from the first smart contract and the second smart contract based on determining that the conflict no longer exists between the first smart contract and the second smart contract.

11. A device, comprising:

one or more memories; and

one or more processors, communicatively coupled to the one or more memories, to:

generate a first state machine defining a plurality of states of a first smart contract, based on at least one of:

variables associated with one or more terms of a first contract, or

conditions associated with the one or more terms of the first contract;

execute a first code of the first smart contract by providing, to the first smart contract, first input,

wherein the first code corresponds to the first state machine;

determine a state of the first smart contract based on executing the first code,

wherein the state of the first smart contract is one state of the plurality of states of the first smart contract;

identify, based on an entity associated with the first smart contract, a second smart contract associated with the entity;

execute, based on identifying the second smart contract, a second code of the second smart contract by providing, to the second smart contract, at least a portion of the first input,

wherein the second code corresponds to a second state machine stored in a distributed ledger;

determine a state of the second smart contract based on executing the second code,

wherein the state of the second smart contract is one state of a plurality of states of the second state machine;

determine, based on the state of the first smart contract and the state of the second smart contract, whether a conflict exists between the first smart contract and the second smart contract,

wherein the conflict exists between the first smart contract and the second smart contract if the state of the first smart contract violates the state of the second smart contract or the state of the second smart contract violates the state of the first smart contract; and

perform an action based on whether the conflict exists between the first smart contract and the second smart contract.

12. The device of claim 11 , wherein the one or more processors are to:

receive a document associated with the first contract; and

analyze, using a natural language processing model, the first contract to identify the one or more terms of the first contract.

13. The device of claim 11 , wherein the distributed ledger comprises a publicly available distributed ledger,

wherein the publicly available distributed ledger allows access to the second smart contract to any entity that has access to the distributed ledger.

14. The device of claim 11 , wherein the distributed ledger is associated with an authorization entity, and

wherein only authorized users associated with the authorization entity have access to the distributed ledger.

15. The device of claim 11 , wherein the distributed ledger comprises a blockchain,

wherein the second smart contract is stored in a first block of the blockchain, and

wherein the one or more processors, when performing the action, are to:

store the first smart contract in a second block of the blockchain regardless of whether the conflict exists between the first smart contract and the second smart contract.

16. A non-transitory computer-readable medium storing instructions, the instructions comprising:

one or more instructions that, when executed by one or more processors, cause the one or more processors to:

generate a first state machine defining a plurality of states of a first smart contract, based on at least one of:

variables associated with one or more terms of a first contract, or

conditions associated with the one or more terms of the first contract;

execute a first code of the first smart contract by providing, to the first smart contract, first input,

wherein the first code corresponds to the first state machine;

determine a state of the first smart contract based on executing the first code,

wherein the state of the first smart contract is one state of the plurality of states of the first smart contract;

identify, based on an entity associated with the first smart contract, a second smart contract associated with the entity;

execute, based on identifying the second smart contract, a second code of the second smart contract by providing, to the second smart contract, at least a portion of the first input,

wherein the second code corresponds to a second state machine stored in a distributed ledger;

determine a state of the second smart contract based on executing the second code,

wherein the state of the second smart contract is one state of a plurality of states of the second state machine;

determine, based on the state of the first smart contract and the state of the second smart contract, whether a conflict exists between the first smart contract and the second smart contract,

wherein the conflict exists between the first smart contract and the second smart contract if the state of the first smart contract violates the state of the second smart contract or the state of the second smart contract violates the state of the first smart contract; and

perform an action based on whether the conflict exists between the first smart contract and the second smart contract.

17. The non-transitory computer-readable medium of claim 16 , wherein the state of the first smart contract corresponds to:

a current state of the first smart contract, or

a potential state of the first smart contract, and

wherein the state of the second smart contract corresponds to:

a current state of the second smart contract, or

a potential state of the second smart contract.

18. The non-transitory computer-readable medium of claim 16 , wherein the state of the first smart contract is defined based on a first condition and a variable,

wherein the first condition causes, based on the variable, the first smart contract to be compliant or not compliant, or

wherein the state of the second smart contract is defined based on a second condition and the variable,

wherein the second condition causes, based on the variable, the second smart contract to be compliant or not compliant.

19. The non-transitory computer-readable medium of claim 16 , wherein, when the conflict exists between the first smart contract and the second smart contract, the one or more instructions, when causing the one or more processors to perform the action, cause the one or more processors to:

store the first smart contract in the distributed ledger;

monitor the state of the first smart contract to determine whether the conflict continues to exist; and

prevent any transactions associated with the first smart contract until the state of the first smart contract causes the conflict to not exist.

20. The non-transitory computer-readable medium of claim 16 , wherein, when the conflict exists between the first smart contract and the second smart contract, the one or more instructions, when causing the one or more processors to perform the action, cause the one or more processors to:

store the first smart contract in the distributed ledger;

append a flag to the first smart contract; and

append the flag to the second smart contract,

wherein the flag indicates that the conflict exists between the first smart contract and the second smart contract.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 6, 2019
From: ABAD, FARDIN ABDI TAGHI; GOODSITT, JEREMY; WALTERS, AUSTIN
To: CAPITAL ONE SERVICES, LLC
Reel/Frame 048250/0711 →
Continuity (1)
Related Publication 20200250663A1 · Aug 6, 2020
Cited By (1)
US 12,658,297