$$ \newcommand \DefaultUpgradeWaitRounds {\delta_x} \newcommand \UpgradeThreshold {\tau} \newcommand \UpgradeVoteRounds {\delta_d} $$
Protocol Updates
The Algorand Foundation governs the development and maintenance of the Algorand protocol.
Protocol updates SHALL be executed through the following process:
1. Specification Publication
The Algorand Foundation SHALL publish the official protocol specification in the public specifications’ repository.
2. Protocol Version Identification
Each protocol version SHALL be uniquely identified by the URL of the corresponding
git
release commit. This URL MUST include the cryptographic hash of the commit.
3. On-Chain Approval
A protocol update SHALL become effective only if it is approved on-chain by a supermajority of block proposers. Each block proposer signals support for a protocol update by including the identifier of the proposed protocol version as the next protocol version.
4. Acceptance Criteria
A protocol update SHALL be accepted if, for an interval of \( \UpgradeVoteRounds \) consecutive rounds, at least \( \UpgradeThreshold \) of the finalized blocks reference the same next protocol version.
5. Upgrade Grace Period
Upon acceptance, node operators SHALL be granted an additional \( \DefaultUpgradeWaitRounds \) rounds to update their node software in accordance with the new specification.
6. Activation
Upon completion of the grace period, the updated protocol specification SHALL take effect. From that point forward, blocks MUST be produced exclusively under the updated protocol rules.
The values of the upgrade parameters are defined in the Ledger Parameters Specification.