IP Library Granted Patent US 11,544,678
Granted Patent B2
US 11,544,678 · App. 16/680,055 · Granted Jan 3, 2023

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,544,678
App. No.
16/680,055
Granted
Jan 3, 2023
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 (50)

1. One or more computing systems for notarizing a proposed transaction between parties, the computing system comprising:

a computer-readable storage medium storing computer-executable instructions of a protocol flow for controlling the computing system to:

receive from a second party a request to notarize an accepted transaction between a first party and the second party, the accepted transaction being signed by the first party and the second party, the accepted transaction specifying a state that includes an input state, the first party and the second party having computing nodes of a distributed ledger system;

identifying the input state based on a hash of a previous transaction associated with the distributed ledger system;

access a consumed state storage of the distributed ledger system to determine whether the input state has been consumed; and

when the input state has not previously been consumed,

generate a notarized transaction by signing the proposed transaction;

send to the second party the notarized transaction; and

store in the consumed state storage an indication that the input state has been consumed; and

a processor that executes the computer-executable instructions stored in the computer-readable storage medium.

2. The one or more computing system of claim 1 wherein the computer-executable instructions further include instructions that control the computing system to verify that the accepted transaction is signed by the first party and the second party.

3. The one or more computing systems of claim 1 wherein the computer-executable instructions further include instructions of a protocol framework that control the one or more computing systems to:

generate, by the protocol framework, checkpoints during execution of the protocol flow, each checkpoint including state of the protocol flow at a time of the checkpoint; and

storing, by the protocol framework, the checkpoints so that if execution of the protocol flow is suspended, execution can be resumed from a previous checkpoint.

4. The one or more computing systems of claim 3 wherein the generating of the checkpoints is transparent to the protocol flow.

5. The one or more computing systems of claim 1 wherein the computer-executable instructions further include instructions of a protocol framework that control the one or more computing systems to track a status of the protocol flow for reporting purposes.

6. The one or more computing systems of claim 1 wherein the computer-executable instructions further include instructions of a protocol framework that control the one or more computing systems to prior to execution of the instructions of the protocol flow, rewrite the instructions of the protocol flow so that the protocol flow is resumable.

7. The one or more computing systems of claim 1 wherein the accepted transaction includes multiple input states and multiple output states.

8. The one or more computing systems of claim 1 wherein the computer-executable instructions further include instructions of a protocol framework that control the one or more computing systems to request assistance for the protocol flow when an error condition is detected.

9. The one or more computing systems of claim 1 wherein the computer-executable instructions further include instructions of a protocol framework that control the one or more computing systems to send messages securely and reliably between a node of a notary associated with the notarized transaction and a node of the second party.

10. The one or more computing systems of claim 9 wherein the computer-executable instructions further include instructions of the protocol framework that control the one or more computing systems to provide receipts to confirm delivery of messages.

11. A method performed by one or more computing systems for notarizing a transaction, the method comprising:

receiving from a first party a request to notarize the transaction a state that includes at least an input state or an output state, the first party having a computing node of a distributed ledger system;

identifying the input state based on a hash of a previous transaction associated with the distributed ledger system;

accessing a consumed state storage of the distributed ledger system to determine whether any input state has been consumed; and

when no input state has been previously been consumed,

generating a notarized transaction by signing the transaction;

sending to the first party the notarized transaction; and

storing in the consumed state storage an indication that the input state has been consumed.

12. The method of claim 11 further comprising:

causing the computing system to verify that the transaction is signed by the first party.

13. The method of claim 11 wherein the notarizing of the transaction is controlled by a protocol flow for notarizing.

14. The method of claim 13 wherein the protocol flow includes computer code.

15. The method of claim 14 wherein the computer code includes bytecodes and the computer code is executed by a virtual machine.

16. The method of claim 13 wherein a protocol framework:

generates checkpoints during execution of the protocol flow, each checkpoint including state of the protocol flow at a time corresponding to the checkpoint; and

stores the checkpoints so that if execution of the protocol flow is suspended, execution can be resumed from a previous checkpoint.

17. The method of claim 16 wherein the generating of the checkpoints is transparent to the protocol flow.

18. The method of claim 13 wherein a protocol framework tracks a status of the protocol flow for reporting purposes.

19. The method of claim 13 wherein a protocol framework, prior to execution of the protocol flow, rewrites instructions of the protocol flow so that the protocol flow is resumable.

20. The method of claim 13 wherein a protocol framework requests assistance for the protocol flow when an error condition is detected.

21. The method of claim 13 wherein a protocol framework sends messages between a computing node of a notary associated with the notarized transaction and a computing node of the first party.

22. The method of claim 21 wherein the protocol framework provides receipts to confirm delivery of messages.

23. The method of claim 11 wherein the transaction includes multiple input states and multiple output states.

24. The method of claim 11 wherein the transaction specifies the first party and a second party.

25. The method of claim 24 further comprising verifying that the transaction is signed by the first party.

26. The method of claim 11 wherein a notarized transaction is generated only when no input state has been consumed and the transaction is signed by the first party.

27. The method of claim 26 further comprising notifying the first party when a transaction is not being generated.

28. The method of claim 11 wherein the transaction being proposed by the first party to a second party.

29. The method of claim 11 wherein the transaction being proposed by a second party to the first party.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 19, 2020
From: HEARN, MICHAEL CHRISTOPHER; ASARI, QURRATUL AIN SHAMS
To: R3 LTD.
Reel/Frame 052697/0019 →
Continuity (7)
Division 15364213 · Nov 29, 2016
Continuation In Part 15243402 · Aug 22, 2016
Continuation In Part 15243473 · Aug 22, 2016
Continuation In Part 15243902 · Aug 22, 2016
Provisional Application 62427685 · Nov 29, 2016
Provisional Application 62323952 · Apr 18, 2016
Related Publication 20200082362A1 · Mar 12, 2020