IP Library › Granted Patent US 10,055,446
Granted Patent B2
US 10,055,446 · App. 15/625,948 · Granted Aug 21, 2018

Ensuring data integrity of executed transactions

Inventors: Sarthak Pattanaik (Bernardsville, NJ); Vadim Pertsovskiy (Chicago, IL)
Assignee: THE BANK OF NEW YORK MELLON
G06F17/30371G06F11/1464G06F17/3033H04L9/3239G06F2201/84
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,055,446
App. No.
15/625,948
Filed
Jun 16, 2017
Granted
Aug 21, 2018
Kind
B2
Art Unit
2155
USPC
707/639
Abstract

A central service provider manages a blockchain network that writes the cryptographic hash of each executed transaction in a block to the blockchain network. For each executed transaction, the central service provider generates and transmits a transaction receipt such that a party can verify that the transaction was appropriately executed. Additionally, a party can check that the party's records are correct by providing transaction data describing details of transactions recorded in the party's records to the central service provider. The central service provider verifies the party's records by comparing the transaction data in the party's records to the blocks of transaction records in the blockchain network. In some scenarios, the central service provider may identify or receive an identification of a discrepancy arising from one or more transactions. The central service provider can reconcile the identified discrepancy.

Claims (75)

1. A computer implemented method for verifying accuracy of a primary recordation system, comprising:

receiving, by a central service provider having a computer processor, transaction data describing a first set of transactions, each transaction in the first set specifying a transfer of an asset;

recording, by the central service provider, transactions in the first set of transactions by writing transaction records to blocks in a blockchain;

receiving, from the primary recordation system, transaction data describing a second set of transactions recorded by the primary recordation system and a snapshot of a position table maintained by the primary recordation system that describes positions of the asset held by one or more parties;

identifying, using the transaction data describing the second set of transactions, corresponding transaction records of the first set of transactions written to the blockchain;

determining positions of the asset held by one or more parties;

verifying the received transaction data describing the second set of transactions recorded by the primary recordation system by:

comparing the received transaction data describing the second set of transactions to the corresponding transaction records of the first set of transactions written to the blockchain; and

comparing positions of the asset held by one or more parties described by the snapshot of the position table to the determined positions of the asset held by one or more parties;

identifying, based on the verifying, an error between the received transaction data describing the second set of transactions and the corresponding transaction records of the first set of transactions written in the blockchain; and

sending a notification of the error to the primary recordation system, wherein the primary recordation system is adapted to reconcile the error.

2. The method of claim 1 , wherein transaction data describing the second set of transactions comprises:

attributes of the transactions of the second set of transactions recorded by the primary recordation system; and

unique transaction request identifiers that each identifies a transaction from the second set of transactions.

3. The method of claim 2 , wherein comparing the received transaction data to the corresponding transaction records comprises:

generating a hash value from at least the attributes and a unique transaction request identifier of the transaction data describing the second set of transactions; and

comparing the generated hash value to a hash value for a corresponding transaction record from the first set of transactions written in the blockchain.

4. The method of claim 3 , wherein identifying the error comprises:

identifying a mismatch between the generated hash value and the hash value for the corresponding transaction record written in the blockchain.

5. The method of claim 1 , wherein the primary recordation system is adapted to reconcile the identified error using one or more traceable directed graphs maintained by the central service provider.

6. The method of claim 1 , wherein comparing the received transaction data to the corresponding transaction records comprises:

comparing a unique transaction request identifier that identifies a transaction of the second set of transactions to a hash value stored in an envelope of a corresponding transaction record of a transaction of the first set of transactions written in the blockchain.

7. The method of claim 1 , wherein identifying the corresponding transaction records comprises:

identifying a time period corresponding to the second set of transactions recorded by the primary recordation system; and

identifying the corresponding transaction records written in the blockchain responsive to the identified time period.

8. A non-transitory computer-readable medium comprising computer code that, when executed by a processor, causes the processor to:

receive, by a central service provider, transaction data describing a first set of transactions, each transaction in the first set specifying a transfer of an asset;

record, by the central service provider, transactions in the first set of transactions by writing transaction records to blocks in a blockchain;

receive, from a primary recordation system, transaction data describing a second set of transactions recorded by the primary recordation system and a snapshot of a position table maintained by the primary recordation system that describes positions of the asset held by one or more parties;

identify, using the transaction data describing the second set of transactions, corresponding transaction records of the first set of transactions written to the blockchain;

determine positions of the asset held by one or more parties;

verify the received transaction data describing the second set of transactions recorded by the primary recordation system by:

comparing the received transaction data describing the second set of transactions to the corresponding transaction records of the first set of transactions written to the blockchain; and

comparing positions of the asset held by one or more parties described by the snapshot of the position table to the determined positions of the asset held by one or more parties;

identify, based on the verifying, an error between the received transaction data describing the second set of transactions and the corresponding transaction records of the first set of transactions written in the blockchain; and

send a notification of the error to the primary recordation system, wherein the primary recordation system is adapted to reconcile the error.

9. The non-transitory computer-readable medium of claim 8 ,

wherein transaction data describing the second set of transactions comprises:

attributes of the transactions of the second set of transactions recorded by the primary recordation system; and

unique transaction request identifiers that each identifies a transaction from the second set of transactions.

10. The non-transitory computer-readable medium of claim 9 , wherein the computer code that causes the processor to compare the received transaction data to the corresponding transaction records further comprises computer code that, when executed by the processor, causes the processor to:

generate a hash value from at least the attributes and a unique transaction request identifier of the transaction data describing the second set of transactions; and

compare the generated hash value to a hash value for a corresponding transaction record from the first set of transactions written in the blockchain.

11. The non-transitory computer-readable medium of claim 10 , wherein the computer code that causes the processor to identify the error further comprises computer code that, when executed by the processor, causes the processor to:

identify a mismatch between the generated hash value and the hash value for the corresponding transaction record written in the blockchain.

12. The non-transitory computer-readable medium of claim 8 , wherein the primary recordation system is adapted to reconcile the identified error using one or more traceable directed graphs maintained by the central service provider.

13. The non-transitory computer-readable medium of claim 8 , wherein the computer code that causes the processor to compare the received transaction data to the corresponding transaction records further comprises computer code that, when executed by the processor, causes the processor to:

compare a unique transaction request identifier that identifies a transaction of the second set of transactions to a hash value stored in an envelope of a corresponding transaction record of a transaction of the first set of transactions written in the blockchain.

14. The non-transitory computer-readable medium of claim 8 , wherein the computer code that causes the processor to identify the corresponding transaction records further comprises computer code that, when executed by the processor, causes the processor to:

identify a time period corresponding to the second set of transactions recorded by the primary recordation system; and

identify the corresponding transaction records written in the blockchain responsive to the identified time period.

15. A system for verifying accuracy of a primary recordation system, comprising:

a computer processor;

a non-transitory computer-readable medium comprising computer code that, when executed by the computer processor, causes the processor to:

receive, by a central service provider, transaction data describing a first set of transactions, each transaction in the first set specifying a transfer of an asset;

record, by the central service provider, transactions in the first set of transactions by writing transaction records to blocks in a blockchain;

receive, from a primary recordation system, transaction data describing a second set of transactions recorded by the primary recordation system and a snapshot of a position table maintained by the primary recordation system that describes positions of the asset held by one or more parties;

identify, using the transaction data describing the second set of transactions, corresponding transaction records of the first set of transactions written to the blockchain;

determine positions of the asset held by one or more parties;

verify the received transaction data describing the second set of transactions recorded by the primary recordation system by:

comparing the received transaction data describing the second set of transactions to the corresponding transaction records of the first set of transactions written to the blockchain; and

comparing positions of the asset held by one or more parties described by the snapshot of the position table to the determined positions of the asset held by one or more parties;

identify, based on the verifying, an error between the received transaction data describing the second set of transactions and the corresponding transaction records of the first set of transactions written in the blockchain; and

send a notification of the error to the primary recordation system, wherein the primary recordation system is adapted to reconcile the error.

16. The system of claim 15 , wherein transaction data describing the second set of transactions comprises:

attributes of the transactions of the second set of transactions recorded by the primary recordation system; and

unique transaction request identifiers that each identifies a transaction from the second set of transactions.

17. The system of claim 16 , wherein comparing the received transaction data to the corresponding transaction records comprises:

generating a hash value from at least the attributes and a unique transaction request identifier of the transaction data describing the second set of transactions; and

comparing the generated hash value to a hash value for a corresponding transaction record from the first set of transactions written in the blockchain.

18. The system of claim 17 , wherein identifying the error comprises:

identifying a mismatch between the generated hash value and the hash value for the corresponding transaction record written in the blockchain.

19. The system of claim 15 , wherein the primary recordation system is adapted to reconcile the identified error using one or more traceable directed graphs maintained by the central service provider.

20. The system of claim 15 , wherein comparing the received transaction data to the corresponding transaction records comprises:

comparing a unique transaction request identifier that identifies a transaction of the second set of transactions to a hash value stored in an envelope of a corresponding transaction record of a transaction of the first set of transactions written in the blockchain.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 29, 2018
From: PATTANAIK, SARTHAK; PERTSOVSKIY, VADIM
To: THE BANK OF NEW YORK MELLON
Reel/Frame 045926/0341 →
Continuity (2)
Provisional Application 62351065 · Jun 16, 2016
Related Publication 20170364552A1 · Dec 21, 2017