US 11,671,262 B2
Asynchronously determining relational data integrity using cryptographic data structures
Panagiotis Antonopoulos, Redmond, WA (US); Jakub J. Szymaszek, Issaquah, WA (US); Raghav Kaushik, Kirkland, WA (US); and Conor J. Cunningham, Austin, TX (US)
Assigned to MICROSOFT TECHNOLOGY LICENSING, LLC, Redmond, WA (US)
Filed by Microsoft Technology Licensing, LLC, Redmond, WA (US)
Filed on May 29, 2020, as Appl. No. 16/888,044.
Prior Publication US 2021/0377037 A1, Dec. 2, 2021
Int. Cl. H04L 9/32 (2006.01); G06F 16/23 (2019.01); G06F 16/28 (2019.01); G06F 16/22 (2019.01); H04L 9/00 (2022.01)
CPC H04L 9/3239 (2013.01) [G06F 16/2282 (2019.01); G06F 16/2379 (2019.01); G06F 16/284 (2019.01); H04L 9/50 (2022.05)] 20 Claims
OG exemplary drawing
 
1. A method performed by a computing system, the method comprising:
including in a history table an entry from a current table of a relational database, the history table being associated with the current table, based on the entry from the current table being designated in a transaction that specifies a change to the entry;
generating a record of the transaction in accordance with a ledger of the relational database by:
generating a transaction hash value by hashing the entry in the history table and a changed entry in the current table that is generated by the transaction that was performed on the entry; and
inserting the transaction hash value and transaction information into the record;
generating a hierarchical hash data structure including, as leaf nodes:
the record and the transaction hash, and
a plurality of additional records corresponding to prior transactions and respective hash values thereof;
storing, in a current block of a hybrid blockchain, a root hash value of the hierarchical hash data structure, a prior hash value of an immediately preceding block of the hybrid blockchain, the record, and the plurality of additional records;
generating, asynchronously with respect to transactions performed on the current table, a block receipt that includes a current hash value of the current block and that captures a validity state of the current table, the history table, and the ledger; and
providing the block receipt to a secure data store.