## 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

- Auto
- Light
- Dark

# Algorand Specifications

A _period_ pp is a 64-bit integer.

A _step_ ss is an 8-bit integer.

Steps are named for clarity and are defined as follows:

| STEP         | ENUMERATIVE | 
| ------------ | ----------- | 
| proposepropose | 00          | 
| softsoft       | 11          | 
| certcert       | 22          | 
| latelate       | 253253      | 
| redoredo       | 254254      | 
| downdown       | 255255      | 
| nextsnexts     | s+3         |

The following functions are defined on ss:

- CommitteeSize(s) is a 64-bit integer defined as follows:

CommitteeSize(s)={
  \begin{cases}
  20 & s=propose \\
  2990 & s=soft \\
  1500 & s=cert \\
  500 & s=late \\
  2400 & s=redo \\
  6000 & s=down \\
  5000 & otherwise 
  \end{cases}

- CommitteeThreshold(s) is a 64-bit integer defined as follows:

CommitteeThreshold(s)={
  \begin{cases}
  0 & s=propose \\
  2267 & s=soft \\
  1112 & s=cert \\
  320 & s=late \\
  1768 & s=redo \\
  4560 & s=down \\
  3838 & otherwise 
  \end{cases}

A _proposal-value_ is a tuple v=(I,p,Digest(e),Hash(Encoding(e))) where:

- II is an address (the “original proposer”),
- pp is a period (the “original period”),
- Hash is some cryptographic hash function.

The special proposal-value where all fields are the zero-string is called the _bottom_ _proposal_ ⊥.
