Verifiable outsourced ledgers
First Claim
Patent Images
1. A method for sharing state data between mutually distrustful parties, 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 the state data to be shared;
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 a digital signature of a known state of the VOL as known to the first party, wherein a ledger server compares the user receipt with a current state of the VOL to determine if the first party has an up-to-date view of the VOL, which ensures that the transactions requested can be made on the VOL;
based on receiving the request from the first party of the mutually distrustful parties, comparing the user receipt to a digital signature of the current state, wherein;
in response to the user receipt not matching the digital signature, rejecting the transaction;
orin response to the user receipt matching the digital signature;
assembling a transaction block, the transaction block including the 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;
transmitting the receipt to the mutually distrustful parties;
implementing the transaction to affect the state data; and
updating the current state to the updated state.
1 Assignment
0 Petitions
Accused Products
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.
-
Citations
19 Claims
-
1. A method for sharing state data between mutually distrustful parties, 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 the state data to be shared; 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 a digital signature of a known state of the VOL as known to the first party, wherein a ledger server compares the user receipt with a current state of the VOL to determine if the first party has an up-to-date view of the VOL, which ensures that the transactions requested can be made on the VOL; based on receiving the request from the first party of the mutually distrustful parties, comparing the user receipt to a digital signature of the current state, wherein; in response to the user receipt not matching the digital signature, rejecting the transaction;
orin response to the user receipt matching the digital signature; assembling a transaction block, the transaction block including the 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; transmitting the receipt to the mutually distrustful parties; implementing the transaction to affect the state data; and updating the current state to the updated state. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. A system for sharing state data between mutually distrustful parties, 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 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; one or more of the transactions in the sequential order of effect; and a prior hashed value provided by the blockchain; and a secure storage service, operable to; store the transactions in the VOL according to the 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 represents a digital signature of a current state of the VOL that will be known to the mutually distrustful parties, wherein the receipt is sent in a second transaction in which a ledger server compares the user receipt with a current state of the VOL to determine if a first party sending the user receipt has an up-to-date view of the VOL, which ensures that the second transaction requested can be made on the VOL. - View Dependent Claims (10, 11, 12, 13, 14, 15, 16, 17)
-
-
18. A hardware computer-readable memory storage medium including instructions for sharing state data between mutually distrustful parties, 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 the state data to be shared; 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 a digital signature of a known state of the VOL as known to the first party, wherein a ledger server compares the user receipt with a current state of the VOL to determine if the first party has an up-to-date view of the VOL, which ensures that the transactions requested can be made on the VOL; assembling a transaction block, the transaction block including the transaction and a 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; transmitting the receipt to the mutually distrustful parties; implementing the transaction to affect the state data; and updating the current state to the updated state. - View Dependent Claims (19)
-
Specification