US2023259430A1PendingUtilityA1

Byzantine agreement using communications having linear complexity

Assignee: VMWARE INCPriority: Apr 21, 2017Filed: Apr 20, 2023Published: Aug 17, 2023
Est. expiryApr 21, 2037(~10.7 yrs left)· nominal 20-yr term from priority
G06F 11/2028G06F 11/1479G06F 11/2048G06Q 20/06G06Q 20/382H04L 9/0618H04L 9/3239H04L 9/3255G06F 11/202G06F 11/2041G06Q 2220/00H04L 2209/56G06Q 20/065
74
PatentIndex Score
0
Cited by
0
References
0
Claims

Abstract

In some embodiments, a method receives a share of a signature of a decision block from at least a portion of the plurality of replicas. The share of the signature being generated when a respective replica signs the decision block and the decision block includes a set of requests from a client for a service. A combined signature is created based on the share of the signature block from at least the portion of the plurality of replicas. The method broadcasts a message that includes the combined signature to the plurality of replicas. The plurality of replicas use the combined signature to determine whether to process the decision block for the service.

Claims

exact text as granted — not AI-modified
1 . A method comprising:
 selecting, by a client, a replica from among a plurality of replicas that provides a replicated service to the client;   transmitting, by the client, a query to the selected replica;   in response to the transmitting, receiving, by the client, a read certificate from the selected replica that includes a sequence number, an answer to the query, a proof indicating that the answer is correct with respect to a state of the replicated service that is associated with the sequence number, and a signature digest for the state;   upon verifying the proof, accepting, by the client, the answer as a valid response; and   upon failing to verify the proof, re-transmitting, by the client, the query to each of the plurality of replicas.   
     
     
         2 . The method of  claim 1  wherein the query is a read-only query that does not change any state information maintained by the replicated service. 
     
     
         3 . The method of  claim 1  wherein the proof is a Merkle-based proof and wherein the signature digest is a Merkle hash of the state. 
     
     
         4 . The method of  claim 1  wherein the selected replica is chosen randomly from among the plurality of replicas. 
     
     
         5 . The method of  claim 1  wherein the sequence number corresponds to a latest sequence of requests executed by the plurality of replicas. 
     
     
         6 . The method of  claim 1  wherein the proof further indicates that the query was executed as part of a sequence of requests identified by the sequence number that resulted in the state. 
     
     
         7 . The method of  claim 1  wherein verifying the proof comprises:
 verifying that the proof indicates that the query was executed in a decision block identified by the sequence number; 
 verifying that the signature digest is a valid digest of the state; and 
 verifying that the answer is a valid return value of the query. 
 
     
     
         8 . A non-transitory computer readable storage medium having stored thereon program code executable by a client, the client being communicatively coupled with a plurality of replicas providing a replicated service, the program code embodying a method comprising:
 selecting a replica from among the plurality of replicas;   transmitting a query to the selected replica;   in response to the transmitting, receiving a read certificate from the selected replica that includes a sequence number, an answer to the query, a proof indicating that the answer is correct with respect to a state of the replicated service that is associated with the sequence number, and a signature digest for the state;   upon verifying the proof, accepting the answer as a valid response; and   upon failing to verify the proof, re-transmitting the query to each of the plurality of replicas.   
     
     
         9 . The non-transitory computer readable storage medium of  claim 8  wherein the query is a read-only query that does not change any state information maintained by the replicated service. 
     
     
         10 . The non-transitory computer readable storage medium of  claim 8  wherein the proof is a Merkle-based proof and wherein the signature digest is a Merkle hash of the state. 
     
     
         11 . The non-transitory computer readable storage medium of  claim 8  wherein the selected replica is chosen randomly from among the plurality of replicas. 
     
     
         12 . The non-transitory computer readable storage medium of  claim 8  wherein the sequence number corresponds to a latest sequence of requests executed by the plurality of replicas. 
     
     
         13 . The non-transitory computer readable storage medium of  claim 8  wherein the proof further indicates that the query was executed as part of a sequence of requests identified by the sequence number that resulted in the state. 
     
     
         14 . The non-transitory computer readable storage medium of  claim 8  wherein verifying the proof comprises:
 verifying that the proof indicates that the query was executed in a decision block identified by the sequence number; 
 verifying that the signature digest is a valid digest of the state; and 
 verifying that the answer is a valid return value of the query. 
 
     
     
         15 . A client that is communicatively coupled with a plurality of replicas provided a replicated service, the client comprising:
 a processor; and   a non-transitory computer readable medium having stored thereon program code that, when executed, causes the processor to:
 select a replica from among the plurality of replicas; 
 transmit a query to the selected replica; 
 in response to the transmitting, receive a read certificate from the selected replica that includes a sequence number, an answer to the query, a proof indicating that the answer is correct with respect to a state of the replicated service that is associated with the sequence number, and a signature digest for the state; 
 upon verifying the proof, accept the answer as a valid response; and 
 upon failing to verify the proof, re-transmit the query to each of the plurality of replicas. 
   
     
     
         16 . The client of  claim 15  wherein the query is a read-only query that does not change any state information maintained by the replicated service. 
     
     
         17 . The client of  claim 15  wherein the proof is a Merkle-based proof and wherein the signature digest is a Merkle hash of the state. 
     
     
         18 . The client of  claim 15  wherein the selected replica is chosen randomly from among the plurality of replicas. 
     
     
         19 . The client of  claim 15  wherein the sequence number corresponds to a latest sequence of requests executed by the plurality of replicas. 
     
     
         20 . The client of  claim 15  wherein the proof further indicates that the query was executed as part of a sequence of requests identified by the sequence number that resulted in the state. 
     
     
         21 . The client of  claim 15  wherein the program code that causes the processor to verify the proof comprises program code that causes the processor to:
 verify that the proof indicates that the query was executed in a decision block identified by the sequence number; 
 verify that the signature digest is a valid digest of the state; and 
 verify that the answer is a valid.

Join the waitlist — get patent alerts

Track US2023259430A1 — get alerts on status changes and closely related new filings.

We store only your email — no account needed. See our privacy policy.