IP Library › Granted Patent US 11,978,024
Granted Patent B2
US 11,978,024 · App. 18/092,224 · Granted May 7, 2024

Protocol flow for notarizing a transaction

Inventors: Michael Christopher Hearn (Zurich, CH); Qurratul Ain Shams Asari (London, GB)
Assignee: R3 LTD.
G06Q20/065G06Q20/02G06Q20/382G06Q20/3825G06Q20/3827G06Q20/3829G06Q40/12G06Q50/18H04L9/3236H04L9/3247H04L9/3297G06Q2220/00H04L9/50H04L2209/56
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,978,024
App. No.
18/092,224
Granted
May 7, 2024
Kind
B2
Abstract

A method and system are provided to support a decentralized distributed ledger in which transactions are recorded by parties to the transactions without the use of a blockchain. A distributed ledger system provides a protocol framework that supports the development of protocol flows. A protocol flow is computer code that controls the performance of a transaction by the party or parties to the transaction. Protocol flows can be developed for different types of transactions. The distributed ledger system allows transactions to be proposed, accepted, and notarized by a notary and stored without the use of a blockchain ledger. The distributed ledger system can avoid the expense of the computational and storage resources needed to redundantly verify a transaction and store evidence on the many nodes of a blockchain distributed ledger.

Claims (45)

1. A computing system for providing a protocol framework to support protocol flows, the computing system comprising:

one or more computer-readable storage mediums for storing computer-executable instructions for controlling the computing system to:

instantiate a protocol flow for execution; and

verify a proposed transaction is valid, the proposed transaction specifying state that includes a first input state and a first output state, the state having contract code, the verifying including:

verifying that the proposed transaction is signed via a computing node of an authorized party; and

resolving the proposed transaction by executing the contract code to determine whether the first input state and the first output state are valid and by ensuring that the first input state is an output state of a second transaction that is valid; and

one or more processors for executing the computer-executable instructions stored in the one or more computer-readable storage mediums.

2. The computing system of claim 1 wherein the instructions control the computing system to ensure the first input state is valid output state of the second transaction by executing contract code of the output state of the second transaction.

3. The computing system of claim 2 wherein ensuring that the first input state is valid output state of the second transaction comprises transitively ensuring that an input state of the second transaction is valid output of a third transaction.

4. The computing system of claim 1 wherein the instructions control the computing system to generate checkpoints during execution of the protocol flow for restarting the protocol flow.

5. The computing system of claim 1 wherein the instructions control the computing system to coordinate sending and receiving messages for the protocol flow.

6. The computing system of claim 1 wherein the instructions control the computing system to provide a mapping of identities of entities to addresses of nodes of the entities.

7. The computing system of claim 1 wherein the instructions control the computing system to receive status update from the protocol and publish the status updates.

8. The computing system of claim 1 wherein the instructions control the computing system to invoke a schedule function of contract code of the output state of a transaction to determine when a protocol flow for generating a proposed transaction that inputs the output state is to be executed.

9. The computing system of claim 1 wherein the instructions control the computing system to rewrite a protocol flow so that the protocol flow is resumable.

10. The computing system of claim 1 wherein the instructions control the computing system to submit the proposed transaction to a notary computing node to determine whether an output state of a second transaction has been consumed.

11. The computing system of claim 1 wherein the instructions control the computing system to ensure that the contract code executes deterministically.

12. The computing system of claim 1 wherein the instructions control the computing system to rewrite the contract code by performing one or more of checking for forbidden constructs, instrumenting expensive bytecodes, disabling forbidden exception caching, relinking references in constant pool, and ensuring deterministic floating-point operation.

13. A computing system for providing a protocol framework to support protocol flows, the computing system comprising:

one or more computer-readable storage mediums for storing computer-executable instructions;

a component to instantiate a protocol flow for execution;

a component to verify that a proposed transaction is valid by verifying that the proposed transaction is signed via a computing node of an authorized party and resolving the proposed transaction by executing contract code of the proposed transaction and ensuring that an input state is valid output state of a second transaction that is valid; and

a component to ensure that the contract code executes deterministically; and

one or more processors for executing the computer-executable instructions stored in the one or more computer-readable storage mediums.

14. The computing system of claim 13 wherein the ensuring that the input state is valid output state of the second transaction comprises executing contract code of an output state of the second transaction.

15. The computing system of claim 14 wherein the ensuring transitively ensures that the input state of the second transaction is valid output state of a third transaction.

16. The computing system of claim 13 wherein the computer-executable instructions further include a component to generate checkpoints during execution of the protocol flow for restarting the protocol flow.

17. The computing system of claim 13 wherein the computer-executable instructions further include a component to coordinate sending and receiving messages for the protocol flow.

18. The computing system of claim 13 wherein the computer-executable instructions further include a component to map identities of entities to addresses of nodes of the entities.

19. The computing system of claim 13 wherein the computer-executable instructions further include a component to receive a status update from the protocol and publish the status update.

20. The computing system of claim 13 wherein the computer-executable instructions further include a component to invoke a schedule function of contract code of output state of a transaction to determine when a protocol flow for generating a proposed transaction that inputs the output state is to be instantiated and executed.

21. The computing system of claim 13 wherein the computer-executable instructions further include a component to rewrite a protocol flow so that the protocol flow is resumable.

22. The computing system of claim 21 wherein the rewritten protocol flow implements a resumable state machine.

23. The computing system of claim 13 wherein the computer-executable instructions further include a component to rewrite the contract code by performing one or more of checking for forbidden constructs, instrumenting expensive bytecodes, disabling forbidden exception caching, relinking references in constant pool, and ensuring deterministic floating-point operation.

24. A method comprising:

receiving, via a computing node of a distributed ledger system, a proposed transaction that includes input state, output state, and contract code;

ensuring that the contract code executes deterministically;

verifying that the proposed transaction is signed by an authorized party;

resolving the proposed transaction by executing the contract code of the proposed transaction and ensuring that a first input state is a valid output state of a second transaction that is valid; and

submitting the proposed transaction to a notary computing node to verify that the output state of the second transaction has not be consumed.

25. The method of claim 24 further comprising ensuring that the contract code executes deterministically.

26. The method of claim 24 further comprising executing contract code of the output state of the second transaction to determine whether the output state of the second transaction is valid.

27. The method of claim 24 further comprising generating checkpoints during execution of a protocol flow associated with the computing node for restarting the protocol flow.

28. The method of claim 24 further comprising invoking contract code to determine when a protocol flow for generating a proposed transaction that inputs the output state of the proposed transaction to be executed.

29. The method of claim 24 further comprising rewriting a protocol flow so that the protocol flow is resumable.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 5, 2023
From: HEARN, MICHAEL CHRISTOPHER; ASARI, QURRATUL AIN SHAMS
To: R3 LTD.
Reel/Frame 062281/0752 →
Continuity (8)
Continuation 16680055 · Nov 11, 2019
Division 15364213 · Nov 29, 2016
Continuation In Part 15243473 · Aug 22, 2016
Continuation In Part 15243402 · Aug 22, 2016
Continuation In Part 15243902 · Aug 22, 2016
Provisional Application 62427685 · Nov 29, 2016
Provisional Application 62323952 · Apr 18, 2016
Related Publication 20230135313A1 · May 4, 2023