IP Library Granted Patent US 12683821
Granted Patent B2
US 12683821 · App. 19/170,410 · Granted Jul 14, 2026

Multiple alpha beta pairs in consensus protocols

Inventors: Aaron Buchwald (New York, NY); Stephen John Buttolph (Brooklyn, NY); Andrew Lewis-Pye (London, GB); Patrick Robert O'Grady (Palo Alto, CA); Kevin Sekniqi (Sunny Isles Beach, FL)
Assignee: Ava Labs, Inc.
H04L9/50
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 12683821
App. No.
19/170,410
Granted
Jul 14, 2026
Kind
B2
Abstract

A method determines a current preference value, the current preference value being one of two possible values. The method receives k preference values, each being one of the possible values. The method defines alpha1, alpha2, and beta2, with alpha1>than k/2 and alpha2≥alpha1. Responsive to a determination that at least alpha1 of the k preference values are different than the current preference value, the method changes the current preference value. Responsive to a determination that fewer than alpha2 of the k preference values are equal to the current preference value, the method sets a counter to zero. Responsive to a third determination that at least alpha2 of the k preference values are equal to the current preference value, the method increases the counter by 1. Responsive to a determination that the counter is equal to beta2, the method provides the current preference value as a finalized output.

Claims (83)

1 . A method for determining consensus on a blockchain network comprising a plurality of validator nodes, comprising:

based on data received from the blockchain network, determining a current preference value, the current preference value being one of two possible values;

from a subset of k validator nodes from the plurality of validator nodes, receiving corresponding k external preference values, each of the k external preference values being one of the two possible values;

defining alpha1 as a preference threshold value, wherein alpha1 is greater than half of k;

defining alpha2 as a confidence threshold value, wherein alpha2 is greater than or equal to alpha1;

based on the preference threshold value of alpha1 and the confidence threshold value of alpha2, defining beta2 as an iteration threshold value;

responsive to a first determination that at least alpha1 of the k external preference values are different than the current preference value, changing the current preference value to another possible value;

responsive to a second determination that fewer than alpha2 of the k external preference values are equal to the current preference value, setting a counter to zero;

responsive to a third determination that at least alpha2 of the k external preference values are equal to the current preference value, increasing the counter by 1; and

responsive to the third determination and also to a fourth determination that the counter is equal to beta2, providing the current preference value as a finalized output.

2 . The method of claim 1 , wherein the counter is a first counter, alpha2 is a first confidence threshold value, beta2 is a first iteration threshold value, and the method further comprises:

defining alpha3 as a second confidence threshold value, wherein alpha3 is greater than or equal to alpha1 and alpha3 is not equal to alpha2;

defining beta3 as a second iteration threshold value, wherein beta3 is not equal to beta2;

responsive to a fifth determination that fewer than alpha3 of the k external preference values are equal to the current preference value, setting a second counter to zero;

responsive to a sixth determination that at least alpha3 of the k external preference values are equal to the current preference value, increasing the second counter by 1; and

responsive to the sixth determination and also to a seventh determination that the second counter is equal to beta3, providing the current preference value as the finalized output.

3 . The method of claim 2 , wherein alpha3 is greater than alpha2 and beta3 is less than beta2.

4 . The method of claim 2 , wherein alpha3 is less than alpha2 and beta3 is greater than beta2.

5 . The method of claim 1 , wherein the counter is a first counter, beta2 is a first iteration threshold value, and the method further comprises:

from the subset of k validator nodes from the plurality of validator nodes, further receiving indications that each of the k external preference values is either a finalized preference value or a non-finalized preference value;

defining alpha3 as a finalization threshold value, wherein alpha3 is greater than or equal to alpha1 and alpha3 is not equal to alpha2;

defining beta3 as a second iteration threshold value, wherein beta3 is not equal to beta2;

responsive to a fifth determination that fewer than alpha3 of the external preference values are finalized preference values, setting a second counter to zero;

responsive to a sixth determination that at least alpha3 of the external preference values are finalized preference values, increasing the second counter by 1; and

responsive to the sixth determination and also to a seventh determination that the second counter is equal to beta3, providing the current preference value as the finalized output.

6 . The method of claim 5 , wherein a portion of the blockchain network is a byzantine network.

7 . The method of claim 1 , wherein beta2 is a first iteration threshold value, and the method further comprises:

defining beta3 as a second iteration threshold value, wherein beta3 is greater than beta2; and

responsive to a fifth determination that the counter is equal to beta3, providing an error as the finalized output.

8 . The method of claim 1 , further comprising:

prior to the third determination, receiving a request for the current preference value from a particular validator node in the plurality of validator nodes; and

in response to receiving the request, providing the current preference value to the particular validator node as a non-finalized output.

9 . The method of claim 1 , further comprising:

subsequent to the fourth determination, receiving a request for the current preference value from a particular validator node in the plurality of validator nodes; and

in response to receiving the request, providing the current preference value to the particular validator node as the finalized output.

10 . The method of claim 1 , further comprising randomly selecting the subset of k validator nodes from the plurality of validator nodes.

11 . The method of claim 1 , further comprising selecting the subset of k validator nodes from the plurality of validator nodes in lockstep.

12 . The method of claim 1 , wherein k, alpha1, and alpha2 are integer values.

13 . The method of claim 12 , wherein k is an odd-valued integer and alpha1 is equal to (k+1)/2.

14 . The method of claim 12 , wherein k is an even-valued integer and alpha1 is equal to k/2+1.

15 . A non-transitory computer-readable medium storing a program for determining consensus on a blockchain network comprising a plurality of validator nodes, which when executed by a computer, configures the computer to:

based on data received from the blockchain network, determine a current preference value, the current preference value being one of two possible values;

from a subset of k validator nodes from the plurality of validator nodes, receive corresponding k external preference values, each of the k external preference values being one of the two possible values;

define alpha1 as a preference threshold value, wherein alpha1 is greater than half of k;

define alpha2 as a confidence threshold value, wherein alpha2 is greater than or equal to alpha1;

based on the preference threshold value of alpha1 and the confidence threshold value of alpha2, define beta2 as an iteration threshold value;

responsive to a first determination that at least alpha1 of the k external preference values are different than the current preference value, change the current preference value to another possible value;

responsive to a second determination that fewer than alpha2 of the k external preference values are equal to the current preference value, set a counter to zero;

responsive to a third determination that at least alpha2 of the k external preference values are equal to the current preference value, increase the counter by 1; and

responsive to the third determination and also to a fourth determination that the counter is equal to beta2, provide the current preference value as a finalized output.

16 . The non-transitory computer-readable medium of claim 15 , wherein the counter is a first counter, alpha2 is a first confidence threshold value, beta2 is a first iteration threshold value, and the program, when executed by the computer, further configures the computer to:

define alpha3 as a second confidence threshold value, wherein alpha3 is greater than or equal to alpha1 and alpha3 is not equal to alpha2;

define beta3 as a second iteration threshold value, wherein beta3 is not equal to beta2;

responsive to a fifth determination that fewer than alpha3 of the k external preference values are equal to the current preference value, set a second counter to zero;

responsive to a sixth determination that at least alpha3 of the k external preference values are equal to the current preference value, increase the second counter by 1; and

responsive to the sixth determination and also to a seventh determination that the second counter is equal to beta3, provide the current preference value as the finalized output.

17 . The non-transitory computer-readable medium of claim 15 , wherein the counter is a first counter, beta2 is a first iteration threshold value, and the program, when executed by the computer, further configures the computer to:

from the subset of k validator nodes from the plurality of validator nodes, further receive indications that each of the k external preference values is either a finalized preference value or a non-finalized preference value;

define alpha3 as a finalization threshold value, wherein alpha3 is greater than or equal to alpha1 and alpha3 is not equal to alpha2;

define beta3 as a second iteration threshold value, wherein beta3 is not equal to beta2;

responsive to a fifth determination that fewer than alpha3 of the external preference values are finalized preference values, set a second counter to zero;

responsive to a sixth determination that at least alpha3 of the external preference values are finalized preference values, increase the second counter by 1; and

responsive to the sixth determination and also to a seventh determination that the second counter is equal to beta3, provide the current preference value as the finalized output.

18 . The non-transitory computer-readable medium of claim 15 , wherein beta2 is a first iteration threshold value, and the program, when executed by the computer, further configures the computer to:

define beta3 as a second iteration threshold value, wherein beta3 is greater than beta2; and

responsive to a fifth determination that the counter is equal to beta3, provide an error as the finalized output.

19 . The non-transitory computer-readable medium of claim 15 , wherein the program, when executed by the computer, further configures the computer to:

prior to the third determination, receive a first request for the current preference value from a first validator node in the plurality of validator nodes;

in response to receiving the first request, provide the current preference value to the first validator node as a non-finalized output;

subsequent to the fourth determination, receive a second request for the current preference value from a second validator node in the plurality of validator nodes; and

in response to receiving the second request, provide the current preference value to the second validator node as the finalized output.

20 . A system for determining consensus on a blockchain network comprising a plurality of validator nodes, comprising:

a processor; and

a non-transitory computer readable medium storing a set of instructions, which when executed by the processor, configure the system to:

based on data received from the blockchain network, determine a current preference value, the current preference value being one of two possible values;

from a subset of k validator nodes from the plurality of validator nodes, receive corresponding k external preference values, each of the k external preference values being one of the two possible values;

define alpha1 as a preference threshold value, wherein alpha1 is greater than half of k;

define alpha2 as a confidence threshold value, wherein alpha2 is greater than or equal to alpha1;

based on the preference threshold value of alpha1 and the confidence threshold value of alpha2, define beta2 as an iteration threshold value;

responsive to a first determination that at least alpha1 of the k external preference values are different than the current preference value, change the current preference value to another possible value;

responsive to a second determination that fewer than alpha2 of the k external preference values are equal to the current preference value, set a counter to zero;

responsive to a third determination that at least alpha2 of the k external preference values are equal to the current preference value, increase the counter by 1; and

responsive to the third determination and also to a fourth determination that the counter is equal to beta2, provide the current preference value as a finalized output.