IP Library › Granted Patent US 12,361,394
Granted Patent B2
US 12,361,394 · App. 18/637,311 · Granted Jul 15, 2025

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 12,361,394
App. No.
18/637,311
Granted
Jul 15, 2025
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 (52)

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

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

propose a transaction between a first computing node of a distributed ledger system and a second computing node of the distributed ledger system by:

generating a proposed transaction that specifies a state and an identifier of a notary computing node of the distributed ledger system;

signing the proposed transaction with a signature of the first computing node; and

sending, via a messaging service, the proposed transaction to the second computing node, the messaging service configured to establish an encryption session with the second computing node;

receive, from a notary computing node of the distributed ledger system, a notarized transaction that indicates acceptance of the proposed transaction by the second computing node; and

upon verification that the notarized transaction has been signed by the second computing node and the notary computing node, record the notarized transaction in a decentralized storage associated with the distributed ledger system so that the notarized transaction is accessible by the first computing node; and

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

2. The one or more computing systems of claim 1 wherein the decentralized storage allows notarized transactions to be recorded by the computing nodes to the notarized transactions as proof of the notarized transactions without the need for third parties to record the notarized transactions.

3. The one or more computing systems of claim 1 wherein a signature is a hash of a transaction that is signed using a private key of a signer.

4. The one or more computing systems of claim 1 wherein the proposed transaction is between the first computing node, the second computing node, and a third computing node and wherein the computer-executable instructions further control the one or more computing systems to verify that the notarized transaction has been accepted by the third computing node by ensuring that the notarized transaction has been signed by the third computing node.

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:

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

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

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

7. 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 a protocol flow for reporting to the first computing node.

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 prior to execution of the instructions of a protocol flow, rewrite the instructions of the protocol flow so that the protocol flow is resumable.

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

10. The one or more computing systems of claim 1 , wherein the state having contract code for verifying the proposed transaction complies with terms of a contract, and wherein the transaction further includes a command as an input parameter to the contract code.

11. The one or more computing systems of claim 10 wherein the command has one or more associated identification of computing nodes and wherein verification of the proposed transaction by the contract code ensures that the proposed transaction has been signed by the identified computing nodes.

12. The one or more computing systems of claim 1 wherein an identification of a computing node is a public key.

13. The one or more computing systems of claim 1 , wherein the state having contract code for verifying the proposed transaction complies with terms of a contract, and wherein the transaction further includes an attachment with content that is accessible by the contract code.

14. The one or more computing systems of claim 1 wherein the one or more processors executes the instructions by executing a virtual machine the executes bytecodes of the instructions.

15. The one or more computing systems of claim 14 wherein the virtual machine is a Java virtual machine.

16. The one or more computing systems of claim 1 wherein the computer-executable instructions further include instructions that control the one or more computing systems to receive a request to provide a notarized transaction on which the proposed transaction depends, retrieve the notarized transaction on which the proposed transaction depends from the decentralized storage, and provide the retrieved notarized transaction to the second computing node.

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

18. The one or more computing systems of claim 1 wherein the computer-executable instructions further include instructions of a protocol framework that controls the one or more computing systems to securely and reliably send messages between the first computing node and the second computing node.

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

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

generating a proposed transaction between a first computing node of a distributed ledger system and a second computing node of the distributed ledger system;

sending, via a messaging service, the proposed transaction to the second computing node, the messaging service configured to establish an encryption session with the second computing node;

receiving, from a notary computing node of the distributed ledger system, a notarized transaction that indicates acceptance of the proposed transaction by the second computing node; and

upon verification that the notarized transaction has been signed by the second computing node and the notary computing node, recording the notarized transaction so that the notarized transaction is accessible by the first computing node.

21. The method of claim 20 wherein the proposing of the transaction is controlled by a protocol flow for proposing a transaction.

22. The method of claim 21 wherein the protocol flow includes originator computer code for controlling proposing a transaction and responder computer code for responding to a proposed transaction.

23. The method of claim 22 wherein the first computing node executes the originator computer code and the second computing node executes the responder computer code.

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

25. The method of claim 21 further comprising:

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

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

26. The method of claim 25 wherein the generating of the checkpoints is transparent to the protocol flow.

27. The method of claim 21 further comprising tracking, by a protocol framework, status of the protocol flow for reporting to the first computing node.

28. The method of claim 21 further comprising, prior to execution of instructions of the protocol flow, rewriting the instructions of the protocol flow so that the protocol flow is resumable, the rewriting performed by a protocol framework.

29. The method of claim 21 further comprising requesting, by a protocol framework, assistance for the protocol flow when an error condition is detected.

30. The method of claim 21 further comprising sending, by a protocol framework, messages securely and reliably between the first computing node and the second computing node.

31. The method of claim 30 further comprising providing, the protocol framework, receipts to confirm delivery of messages.

32. The method of claim 20 wherein the notarized transaction is recorded in a decentralized storage so that the first computing node can present the notarized transaction to a third computing node without the need for the third computing node to record the notarized transaction.

33. The method of claim 20 wherein the proposed transaction is between the first computing node, the second computing node, and a third computing node and further comprising verifying that the notarized transaction has been accepted by the third computing node by ensuring that the notarized transaction has been signed by the third computing node.

34. The method of claim 20 wherein the transaction includes a command as an input parameter to contract code of the proposed transaction.

35. The method of claim 34 wherein the command has one or more associated identification of computing nodes and wherein the contract code of the proposed transaction ensures that the proposed transaction has been signed by the identified computing nodes.

36. The method of claim 20 further comprising sending to the second computing node a notarized transaction on which the proposed transaction depends.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 1, 2024
From: HEARN, MICHAEL CHRISTOPHER; ASARI, QURRATUL AIN SHAMS
To: R3 LTD.
Reel/Frame 067285/0434 →
Continuity (9)
Continuation 18092224 · Dec 31, 2022
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 20240265356A1 · Aug 8, 2024
References Cited (87)
US 7849091B1 · Cho et al. · 2010 [cited by applicant]
US 8478616B2 · De Klerk et al. · 2013 [cited by applicant]
US 8788443B2 · Hoffmann · 2014 [cited by applicant]
US 10521775B2 · Hearn et al. · 2019 [cited by applicant]
US 10529041B2 · Brown et al. · 2020 [cited by applicant]
US 10529042B2 · Brown et al. · 2020 [cited by applicant]
US 10803537B2 · Brown et al. · 2020 [cited by applicant]
US 11263605B2 · Chalkias · 2022 [cited by applicant]
US 20020019937A1 · Edstrom et al. · 2002 [cited by applicant]
US 20020178122A1 · Maes · 2002 [cited by applicant]
US 20080153479A1 · Venkitaraman et al. · 2008 [cited by applicant]
US 20090222473A1 · Chowdhury · 2009 [cited by applicant]
US 20120030094A1 · Khalil · 2012 [cited by applicant]
US 20120096274A1 · Campagna et al. · 2012 [cited by applicant]
US 20120317412A1 · Zaverucha et al. · 2012 [cited by applicant]
US 20130170642A1 · Brown et al. · 2013 [cited by applicant]
US 20140325227A1 · Brown · 2014 [cited by examiner]
US 20140344579A1 · Struik et al. · 2014 [cited by applicant]
US 20160044028A1 · Cha et al. · 2016 [cited by applicant]
US 20160283202A1 · Sellers-blais · 2016 [cited by applicant]
US 20170076518A1 · Patterson et al. · 2017 [cited by applicant]
US 20170109735A1 · Sheng · 2017 [cited by examiner]
US 20170153881A1 · Bortnikov et al. · 2017 [cited by applicant]
US 20170300872A1 · Brown · 2017 [cited by examiner]
US 20170301033A1 · Brown et al. · 2017 [cited by applicant]
US 20170301047A1 · Brown · 2017 [cited by examiner]
US 20170352012A1 · Hearn et al. · 2017 [cited by applicant]
US 20170353309A1 · Gray · 2017 [cited by applicant]
US 20180075527A1 · Nagla et al. · 2018 [cited by applicant]
US 20180240107A1 · Andrade · 2018 [cited by applicant]
US 20180365448A1 · Uhr et al. · 2018 [cited by applicant]
US 20190052454A1 · Wright et al. · 2019 [cited by applicant]
US 20190057382A1 · Wright et al. · 2019 [cited by applicant]
US 20190179933A1 · Wang et al. · 2019 [cited by applicant]
US 20190295050A1 · Chalkias · 2019 [cited by examiner]
US 20200074422A1 · Hearn et al. · 2020 [cited by applicant]
US 20200082362A1 · Hearn et al. · 2020 [cited by applicant]
US 20200082363A1 · Hearn et al. · 2020 [cited by applicant]
US 20200082364A1 · Hearn et al. · 2020 [cited by applicant]
US 20200286076A1 · Zhu et al. · 2020 [cited by applicant]
US 20200302409A1 · Hearn et al. · 2020 [cited by applicant]
US 20200349532A1 · Brown et al. · 2020 [cited by applicant]
US 20200382478A1 · Voell · 2020 [cited by examiner]
US 20220222634A1 · Chalkias · 2022 [cited by applicant]
CN 105635169A · 2016 [cited by applicant]
CN 108428122A · 2018 [cited by applicant]
EP 2031817A1 · 2009 [cited by applicant]
EP 3549080A1 · 2019 [cited by applicant]
FR 3018379A1 · 2015 [cited by applicant]
WO 2017182788A1 · 2017 [cited by applicant]
WO 2018100371A1 · 2018 [cited by applicant]
WO 2019180408A1 · 2019 [cited by applicant]
Amendment in Response to Non-Final Office Action, filed on Jul. 6, 2021 in U.S. Appl. No. 16/890,285, 14 pages. [cited by applicant]
Andrewas M. Antonopoulos, Mastering Bitcoin, 2014, First Edition, O'Reilly Media, Inc., Chapters 4 and 5, pp. 84, 86, 88-89, 100, 125, 132-134, 257 (Year: 2014). [cited by applicant]
Anonymous, “Transport Layer Security—Wikipedia,” Jun. 23, 2017, XP055494532, Retrieved from the Internet: https://en.wikipedia.org/w/index.php?title=Transport_Layer_Security&oldid=787037092, p. 1, 9. [cited by applicant]
Antonopoulos, A. “Mastering Bitcoin” 2014, First Edition, O'Reilly Media, Inc., Chapters 4 and 5 (Year: 2014). [cited by applicant]
Bernstein, D. J. et al., “SPHINCS: practical stateless has-based signatures,” Advances in Cryptology—EUROCRYPT 2015—35th Annual International Conference on the Theory and Applications of Cryptographic Techniques, Bulgar… [cited by applicant]
Bitfury: “Public versus Private Blockchains Part 2: Permissionless Blockchains White Paper,” Oct. 20, 2015, retrieved from internet <www.the-blockchain.com/docs/JeffGrazikPublicvsPrivateBlockchainpt2> on Jun. 23, 2017. [cited by applicant]
Castro, Miguel et al. “Practical byzantine fault tolerance and proactive recovery,” ACM Transactions on Computer Systems, Nov. 1, 2002, pp. 398-461. retrieved from internet <others.kelehers.me/pbftByzantine>. [cited by applicant]
Dikshit, P. “Efficient Weighted Threshold ECDSA for Securing Bitcoin Wallet” 2017, IEEE (Year: 2017), 10 pages. [cited by applicant]
European Patent Office, EP Examination Report, EP Patent Application 17825913.1, mailed Apr. 30, 2021, 9 pages. [cited by applicant]
Florian Tschorsch et al. “Bitcoin and Beyond: A Technical Survey on Decentralized Digital Currencies,” International Association for Cryptologic Research, vol. 20150517:090557, May 15, 2015, pp. 1-37. [cited by applicant]
Gareth William Peters et al. “Understanding Modern Banking Ledgers through Blockchain Technologies: Future of Transaction processing and Smart Contracts on the Internet of Money,” Nov. 18, 2015, retrieved from internet. [cited by applicant]
Google: “Hyperledge Whitepaper” Feb. 17, 2016 (Feb. 17, 2016), XP055342588 retrieved from the Internet: URL:http://www.the-blockchain.com/docs/Hyperledger Whitepaper.pdf. [cited by applicant]
Grigg, I. “The Ricardian contract,” Electronic Contracting, 2004. Proceedings First IEEE International Workshop, San Diego CA, Jul. 6, 2004. IEEE Jan. 1, 2004, pp. 25-31. [cited by applicant]
Grigg, Ian, “Digital Trading,” Conference Paper, http://iang.org/papers/digital_trading.html, retrieved Sep. 26, 2016, 19 pages. [cited by applicant]
Grigg, Ian, “The Ricardian Contract,” http://iang.org/papers/ricardian_contract.html/ retrieved Feb. 27, 2017, 7 pages. [cited by applicant]
Hearn, Mike, “Corda: A distributed ledger,” Nov. 29, 2016, https://docs.corda.net/releases/release-M10.1/_static/ordia-technical-whitepaper.pdf. 53 pages. [cited by applicant]
International Search Report and Written Opinion issued for PCT/GB2017/051069 and mailed Jul. 6, 2017. [cited by applicant]
International Search Report and Written Opinion issued for PCT/GB2019/050739 mailed Jun. 4, 2019, 14 pages. [cited by applicant]
International Search Report and Written Opinion mailed Apr. 20, 2021, App. PCT/US2021/015469. [cited by applicant]
International Search Report and Written Opinion, PCT Patent Application PCT/GB2017/053604, mailed Mar. 16, 2018, 13 pages. [cited by applicant]
International Search Report and Written Opinion, PCT Patent Application PCT/GB2019/051589, mailed Nov. 27, 2019, 20 pages. [cited by applicant]
International Searching Authority, International Search Report and Written Opinion, PCT Patent Application PCT/G82017/051069, mailed Jul. 6, 2017, 17 pages. [cited by applicant]
Nakamoto, Satoshi, “Bitcoin: A Peer-to-Peer Electronic Cash System,” http://www.bitcoin.org/bitcoin.pdf, pp. 1-9, Jul. 4, 2010. [cited by applicant]
Non-Final Office Action dated Apr. 14, 2021, received in U.S. Appl. No. 16/890,285, 15 pages. [cited by applicant]
Notice of Allowance dated Aug. 25, 2021, received in U.S. Appl. No. 16/890,285, 15 pages. [cited by applicant]
Peters, Gareth W. et al., University College London. “Understanding Modern Banking Ledgers through Blockchain Technologies: Future of Transaction Processing and Smart Contracts on the Internet of Money,” Nov. 19, 2015, … [cited by applicant]
Pratyush Dikshit et al., Efficient Weighted Threshold ECDSA for Securing Bitcoin Wallet, 2017, IEEE (Year: 2017). [cited by applicant]
Ricardian Contract, https://en.wikipedia.org/wiki/Ricardian_Contract, 5 pages. [cited by applicant]
Stellar.Org and Contributors: “Multisignature | Stellar Developers”, Aug. 15, 2019, https://web.archive.org/web/20170415150159/https://www.stellar.org/developers/guides/concepts/ulti-sig.html. 9 pages. [cited by applicant]
Swan, Melanie. “Blockchain: Blueprint for a New Economy,” O'Reilly Media Inc., Sebastopol, CA, Feb. 2015, 149 pages. [cited by applicant]
U.S. Appl. No. 62/427,685, filed Nov. 29, 2016, titled Corda: A Distributed Ledger, 53 pages. [cited by applicant]
Wang et al., X-Diff: An Effective Change Detection Algorithm for XML Documents, 2003, IEEE (Year: 2003). [cited by applicant]
White Paper, https://github.com/ethereum/wiki/wiki/White-Paper, retrieved Feb. 27, 2017, 25 pages. [cited by applicant]
Wikipedia, “Digital Signatures,” retrieved from <https_://en_.wikipedia_.org/w/index.php?title=Digital_signature&oldid=7 44808460> on Apr. 23, 2021, 11 pages. [cited by applicant]
Wood, Gavin, “Ethereum: A Secure Decentralised Generalised Transaction Ledger,” EIP-150 Revision, http://gavwood.com/paper.pdf, retrieved Mar. 1, 2017, pp. 1-32. [cited by applicant]