$$ \newcommand \Bundle {\mathrm{Bundle}} \newcommand \Propose {\mathit{propose}} \newcommand \CommitteeThreshold {\mathrm{CommitteeThreshold}} \newcommand \abs[1] {\lvert #1 \rvert} $$
Bundles
Let \( V \) be any set of votes and equivocation votes.
We say that \( V \) is a bundle for \( v \) in round \( r \), period \( p \), and step \( s \) (or a bundle for \( v \) at \( (r, p, s) \)), denoted \( \Bundle(r, p, s, v) \).
⚙️ IMPLEMENTATION
Bundle reference implementation.
Moreover, let \( L \) be a ledger where \( \abs{L} \geq \delta_b \).
We say that this bundle is valid with respect to \( L \) (or simply valid if \( L \) is unambiguous) if the following conditions are true:
⚙️ IMPLEMENTATION
The reference implementation makes use of an asynchronous Bundle verifying function.
See the non-normative Algorand ABFT Overview for further details.
-
Every element \( a_i \in V \) is valid with respect to \( L \).
-
For any two elements \( a_i, a_j \in V \), \( I_i \neq I_j \).
-
For any element \( a_i \in V \), \( r_i = r, p_i = p, s_i = s \).
-
For any element \( a_i \in V \), either \( a_i \) is a vote and \( v_i = v \), or \( a_i \) is an equivocation vote.
-
Let \( w_i \) be the weight of the signature in \( a_i \). Then \( \sum_i w_i \geq \CommitteeThreshold(s) \).