IP Library Granted Patent US 10,984,494
Granted Patent B2
US 10,984,494 · App. 15/707,571 · Granted Apr 20, 2021

Systems and methods for interception of smart contracts

Inventors: Jochen Lothar Leidner (London, GB); Tim Nugent (London, GB); Sam Chadwick (Zug, CH)
Assignee: REFINITIV US ORGANIZATION LLC
G06Q50/18G06F16/00G06Q20/3674G06F9/455G06Q10/10
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 10,984,494
App. No.
15/707,571
Granted
Apr 20, 2021
Kind
B2
Abstract

Intervention in the operation of a smart contract in a distributed ledger system may include: launching execution of the smart contract; upon launching execution of the smart contract, executing a judgment checking function to determine whether a judgment against the smart contract exists in a judgment database; in response to a judgment against the smart contract existing in the judgment database, intervening in the operation of the smart contract to prevent the execution of the smart contract; and in response to no judgment against the smart contract existing in the judgment database, continuing execution of the smart contract.

Claims (51)

1. A method of intervening in the operation of a smart contract in a distributed ledger system, the method comprising:

launching, by a processor of a distributed node of the distributed ledger system, execution of program instructions of the smart contract, the program instructions being stored in a ledger structure of the distributed ledger system;

upon launching execution of the smart contract, executing by the processor a judgment checking function of the program instructions of the smart contract to determine whether a judgment against the smart contract exists in a judgment database, wherein the judgment is that the smart contract is illegal or contains a logical error, and wherein the program instructions of the judgment checking function invoke execution of a second smart contract by the processor of the distributed node, the program instructions of the second smart contract being stored in a ledger structure of the distributed ledger system, the execution of the program instructions of the second smart contract performing a read of a data structure in which the second smart contract has stored the judgment database in the distributed ledger system, the invoking of the second smart contract by the program instructions of the smart contract including communicating by the smart contract an input to the second smart contract including an identifier of the smart contract, and receiving by the smart contract an output from the second smart contract indicating whether the judgment against the smart contract exists in the judgment database;

in response to a judgment against the smart contract existing in the judgment database, intervening by the program instructions of the smart contract in the operation of the smart contract to prevent further execution of the smart contract by the distributed node, the intervening including executing a first set of the program instructions of the smart contract, the first set of the program instructions including at least one of: (i) a throw function, or (ii) a self destruct function that deletes data of the smart contract from the distributed ledger system; and

in response to no judgment against the smart contract existing in the judgment database, continuing execution of the smart contract by the distributed node, the continuing executing including executing a second set of the program instructions of the smart contract, the second set being different than the first set.

2. The method of claim 1 , wherein continuing execution of the smart contract by the distributed node includes at least one of: completing a financial transaction by the smart contract, or identifying an individual by the smart contract.

3. The method of claim 1 , wherein the executing the judgment checking function is performed as a program function of the smart contract.

4. The method of claim 1 , wherein the intervening in the operation of the smart contract includes executing a self destruct function by the smart contract.

5. The method of claim 1 , wherein the executing of the judgment checking function is performed by a virtual machine of a distributed node of the distributed ledger system.

6. The method of claim 5 , wherein the intervening in the operation of the smart contract includes at least one of: preventing execution of the smart contract by the virtual machine, or stopping execution of the smart contract by the virtual machine.

7. The method of claim 1 , wherein executing the judgment checking function includes reading the judgment database in a server system external to the distributed ledger system.

8. The method of claim 7 , wherein the reading the judgment database in the server system includes executing at least one program instruction of the smart contract to trigger the reading the judgment database.

9. The method of claim 7 , wherein the reading the judgment database in the server system is triggered by a virtual machine of the distributed ledger system.

10. The method of claim 1 , further comprising:

determining the judgment of a validity of a complaint against the smart contract based on input received from one or more judge systems;

in response to the judgment upholding the validity of the complaint against the smart contract, recording the judgment in the judgment database;

receiving a request, from the judgment checking function, to determine whether the judgment against the smart contract exists in the judgment database in response to launching execution of the smart contract; and

transmitting a response to the request indicating whether the judgment exists in the judgment database.

11. The method of claim 10 , wherein recording the judgment in the judgment database includes generating a transaction addressed to a second smart contract of the distributed ledger system, the transaction containing an instruction to write the judgment and an identifier of the smart contract to a data structure of the second smart contract, and transmitting the transaction to a distributed node of the distributed ledger system.

12. The method of claim 1 , further comprising:

determining, by a server system, the judgment that the smart contract is illegal or contains a logical error;

recording the judgment in a judgment database, wherein recording the judgment in the judgment database includes generating a transaction addressed to the second smart contract of the distributed ledger system, the transaction containing an instruction to write by the second smart contract the judgment and an identifier of the smart contract to a data structure of the second smart contract stored in the distributed ledger system, and transmitting the transaction to a distributed node of the distributed ledger system;

storing, by the second smart contract in response to the transaction, the judgment and identifier of the smart contract in the data structure of the second smart contract in the distributed ledger system;

receiving a request, by the second smart contract from the judgment checking function of the program instructions of the smart contract, to determine whether the judgment against the smart contract exists in the judgment database in response to launching execution of the smart contract; and

transmitting by the second smart contract a response to the request indicating whether the judgment exists in the judgment database.

13. The method of claim 12 , further comprising receiving, by the server system from the one or more judge systems, input regarding the complaint from one or more judges, and determining the judgment of the validity of the complaint against the smart contract based on the received input.

14. The method of claim 12 , further comprising receiving, by the server system from a complainant system, the complaint regarding the smart contract.

15. The method of claim 12 , wherein the complaint includes an identification of at least one legal rule and at least one assertion that the smart contract violates the identified legal rule.

16. A system, comprising:

at least one processor; and

at least one non-transitory, machine-readable storage medium having program instructions, which when executed by the at least one processor cause a method for intervening in the operation of a smart contract in a distributed ledger system to be performed, the method including:

launching, by a distributed node of the distributed ledger system, execution of program instructions of the smart contract, the program instructions being stored in a ledger structure of the distributed ledger system;

upon launching execution of the smart contract, executing a judgment checking function of the program instructions of the smart contract to determine whether a judgment against the smart contract exists in a judgment database, wherein the judgment is that the smart contract is illegal or contains a logical error, and wherein the program instructions of the judgment checking function invoke execution of a second smart contract by the distributed node, the program instructions of the second smart contract being stored in a ledger structure of the distributed ledger system, the execution of the program instructions of the second smart contract performing a read of a data structure in which the second smart contract has stored the judgment database in the distributed ledger system, the invoking of the second smart contract by the program instructions of the smart contract including communicating by the smart contract an input to the second smart contract including an identifier of the smart contract, and receiving by the smart contract an output from the second smart contract indicating whether the judgment against the smart contract exists in the judgment database;

in response to a judgment against the smart contract existing in the judgment database, intervening by the program instructions of the smart contract in the operation of the smart contract to prevent the further execution of the smart contract, the intervening including executing a first set of the program instructions of the smart contract, the first set of the program instructions including at least one of: (i) a throw function, or (ii) a self destruct function that deletes data of the smart contract from the distributed ledger system; and

in response to no judgment against the smart contract existing in the judgment database, continuing execution of the smart contract by the distributed node, the continuing executing including executing a second set of the program instructions of the smart contract, the second set being different than the first set.

17. The system of claim 16 , further configured to:

determine the judgment of the validity of a complaint against the smart contract based on input received from one or more judge systems; and

in response to the judgment upholding the validity of the complaint against the smart contract, record the judgment in the judgment database;

receive a request, from the judgment checking function, to determine whether the judgment against the smart contract exists in the judgment database in response to launching execution of the smart contract; and

transmit a response to the request indicating that the judgment exists in the judgment database.

18. The system of claim 16 , the method further comprising:

determining the that the smart contract is illegal or contains a logical error;

recording the judgment in a judgment database, wherein recording the judgment in the judgment database includes generating a transaction addressed to the second smart contract of the distributed ledger system, the transaction containing an instruction to write by the second smart contract the judgment and an identifier of the smart contract to a data structure of the second smart contract stored in the distributed ledger system, and transmitting the transaction to a distributed node of the distributed ledger system;

storing, by the second smart contract in response to the transaction, the judgment and identifier of the smart contract in the data structure of the second smart contract in the distributed ledger system;

receiving a request, by the second smart contract from the judgment checking function of the program instructions of the smart contract, to determine whether the judgment against the smart contract exists in the judgment database in response to launching execution of the smart contract; and

transmitting by the second smart contract a response to the request indicating that the judgment exists in the judgment database.

19. At least one non-transitory, machine-readable storage medium having program instructions, which when executed by at least one processor cause a method for intervening in the operation of a smart contract in a distributed ledger system to be performed, the method including:

launching, by a distributed node of the distributed ledger system, execution of program instructions of the smart contract, the program instructions being stored in a ledger structure of the distributed ledger system;

upon launching execution of the smart contract, executing a judgment checking function of the program instructions of the smart contract to determine whether a judgment against the smart contract exists in a judgment database, wherein the judgment is that the smart contract is illegal or contains a logical error, and wherein the program instructions of the judgment checking function invoke execution of a second smart contract by the distributed node, the program instructions of the second smart contract being stored in a ledger structure of the distributed ledger system, the execution of the program instructions of the second smart contract performing a read of a data structure in which the second smart contract has stored the judgment database in the distributed ledger system, the invoking of the second smart contract by the program instructions of the smart contract including communicating by the smart contract an input to the second smart contract including an identifier of the smart contract, and receiving by the smart contract an output from the second smart contract indicating whether the judgment against the smart contract exists in the judgment database;

in response to a judgment against the smart contract existing in the judgment database, intervening by the program instructions of the smart contract in the operation of the smart contract to prevent the further execution of the smart contract, the intervening including executing a first set of the program instructions of the smart contract, the first set of the program instructions including at least one of: (i) a throw function, or (ii) a self destruct function that deletes data of the smart contract from the distributed ledger system; and

in response to no judgment against the smart contract existing in the judgment database, continuing execution of the smart contract by the distributed node, the continuing executing including executing a second set of the program instructions of the smart contract, the second set being different than the first set.

Assignments (12)
RELEASE OF SECURITY INTEREST Recorded Jan 29, 2021
From: DEUTSCHE BANK TRUST COMPANY AMERICAS, AS NOTES COLLATERAL AGENT
To: REFINITIV US ORGANIZATION LLC (F/K/A THOMSON REUTERS (GRC) INC.)
Reel/Frame 055174/0811 →
RELEASE OF SECURITY INTEREST Recorded Jan 29, 2021
From: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
To: REFINITIV US ORGANIZATION LLC (F/K/A THOMSON REUTERS (GRC) INC.)
Reel/Frame 055174/0836 →
CHANGE OF NAME Recorded Mar 22, 2019
From: THOMSON REUTERS (GRC) LLC
To: REFINITIV US ORGANIZATION LLC
Reel/Frame 048676/0377 →
CHANGE OF NAME Recorded Dec 19, 2018
From: THOMSON REUTERS (GRC) INC.
To: THOMSON REUTERS (GRC) LLC
Reel/Frame 047955/0485 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 14, 2018
From: THOMSON REUTERS GLOBAL RESOURCES UNLIMITED COMPANY
To: THOMSON REUTERS (GRC) INC.
Reel/Frame 048553/0154 →
SECURITY AGREEMENT Recorded Oct 3, 2018
From: THOMSON REUTERS (GRC) INC.
To: DEUTSCHE BANK AG NEW YORK BRANCH, AS COLLATERAL AGENT
Reel/Frame 047187/0316 →
SECURITY AGREEMENT Recorded Oct 2, 2018
From: THOMSON REUTERS (GRC) INC.
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 047185/0215 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 9, 2018
From: REUTERS LIMITED
To: THOMSON REUTERS GLOBAL RESOURCES
Reel/Frame 045159/0960 →
CHANGE OF NAME Recorded Mar 9, 2018
From: THOMSON REUTERS GLOBAL RESOURCES
To: THOMSON REUTERS GLOBAL RESOURCES UNLIMITED COMPANY
Reel/Frame 045160/0307 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 3, 2017
From: LEIDNER, JOCHEN LOTHAR
To: REUTERS LIMITED
Reel/Frame 043762/0671 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 2, 2017
From: NUGENT, TIM
To: REUTERS LIMITED
Reel/Frame 043753/0106 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 2, 2017
From: CHADWICK, SAM
To: THOMSON REUTERS GLOBAL RESOURCES UNLIMITED COMPANY
Reel/Frame 043753/0132 →
Continuity (2)
Provisional Application 62396293 · Sep 19, 2016
Related Publication 20180082390A1 · Mar 22, 2018