Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

$$ \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) \).