Verifiable outsourced ledgers
AssigneeMicrosoft Technology Licensing, LLC
InventorsSrinath Setty, Ramarathnam Venkatesan
Life of this patent
Estimating the term…
Abstract
A digital ledger built upon a blockchain to provide users with the ability to securely, accurately, and verifiably share state information between distrustful parties is provided herein. The Verifiable Outsourced Ledger is hosted in a networked environment, accessible by multiple parties, and maintains an immutable view of the transactions submitted by authorized parties and a continuous view of the states shared between the parties that the parties can replicate independently locally to verify the integrity of the ledger.
Claims20
A method comprising:
- receiving a request from a first party of mutually distrustful parties, the request including:
- an identifier for a digital ledger maintaining state data that records previous transactions of the mutually distrustful parties;
- a transaction to conduct and record within the digital ledger;
- and
- a user receipt for a state of the digital ledger known to the first party, wherein the user receipt is compared to a current state of the digital ledger, the current state of the digital ledger representing the previous transactions of the mutually distrustful parties;
- in response to comparing the user receipt to the current state of the digital ledger, determining the first party has an up-to-date view of the digital ledger based on at least one of:
- a current height of the blockchain;
- a frequency of the previous transactions of the mutually distrustful parties;
- or
- a number of the previous transactions of the mutually distrustful parties;
- conducting the transaction associated with the request;
- based on the conducted transaction, assembling a new transaction block, the new transaction block including the conducted transaction and the current state of the digital ledger;
- using a cryptographic function to compute an updated state of the digital ledger based on the new transaction block;
- digitally signing the updated state to produce a new user receipt;
- and
- transmitting the new user receipt to at least the first party.
A system for sharing state data between mutually distrustful parties, the system comprising:
- a processor;
- a memory storage device including instructions, which when executed by the processor provide a verifiable outsourced ledger (VOL) including:
- a state machine maintaining the state data;
- a chaining service operable to receive transactions from the mutually distrustful parties and store the received transactions in a sequential order of effect on the state machine;
- a blockchain providing a hashed value of a transaction block, the transaction block including:
- transactions previously conducted;
- a prior hashed value provided by the blockchain;
- and
- a secure storage service, operable to:
- store the transactions in the VOL according to a sequential order of effect;
- digitally sign the hashed value to produce a receipt;
- and
- transmit the receipt to the mutually distrustful parties in response to the transaction block being hashed, wherein:
- the receipt is compared to a current state of the VOL as known to a requesting party to determine whether the requesting party has an up-to-date view of the VOL, the current state being verifiable based on at least one of:
- a current height of the blockchain;
- a frequency of the transactions previously conducted;
- or
- a number of the transactions previously conducted;
- when the current state is verified, a transaction associated with a request of the requesting party is conducted;
- and
- the conducted transaction is used to assemble a new transaction block to be stored by the VOL.
A hardware computer-readable memory storage medium including instructions, comprising:
- receiving a request from a first party of the mutually distrustful parties, the request including:
- an identifier for a verifiable outsourced ledger (VOL) maintaining state data that records previous transactions of the mutually distrustful parties;
- a transaction to record within the VOL;
- and
- a user receipt for a state of the VOL known to the first party, wherein the user receipt is compared to a current state of the VOL to verify the first party has a current view of the VOL based on at least one of:
- a current height of the blockchain;
- a frequency of the previous transactions of the mutually distrustful parties;
- or
- a number of the previous transactions of the mutually distrustful parties;
- conducting the transaction associated with the request;
- assembling a transaction block, the transaction block including the conducted transaction and the current state of the VOL;
- hashing the transaction block to produce an updated state of the VOL;
- digitally signing the updated state to produce a receipt;
- and
- transmitting the receipt to the mutually distrustful parties.
Dependencies are inferred from the claim text.