304 lines
15 KiB
Markdown
304 lines
15 KiB
Markdown
# AIP-1: AIP Purpose and Process
|
|
|
|
## Preamble
|
|
|
|
| Field | Value |
|
|
| --- | --- |
|
|
| AIP | 1 |
|
|
| Title | AIP Purpose and Process |
|
|
| Author | Aere Network Foundation |
|
|
| Type | Meta |
|
|
| Category | (none) |
|
|
| Status | Living |
|
|
| Created | 2026-07-11 |
|
|
| Last substantive revision | 2026-07-20 (revision 2, recorded in AIP-19) |
|
|
| Requires | None |
|
|
| Superseded-By | None |
|
|
| Ratification | Foundation-ratified (pre-decentralization) |
|
|
|
|
## Abstract
|
|
|
|
This AIP defines the Aere Improvement Proposal process: what an AIP is, the
|
|
statuses it moves through and the transitions permitted between them, how numbers
|
|
are assigned and retired, how a later proposal supersedes an earlier one, the
|
|
required document template, and the rule that an accepted proposal is not
|
|
silently edited. It is a Living document because the process will change as the
|
|
network decentralizes.
|
|
|
|
## Motivation
|
|
|
|
Aere ships changes to a live chain (chain ID 2800) and to a growing set of
|
|
contracts. Without a single canonical record of why each change was made, that
|
|
history lives only in commit messages, in the SDK address registry, and in the
|
|
memory of the people who shipped it.
|
|
|
|
There is a second motivation, established by looking at what actually survives in
|
|
this industry. Formal specifications tend to die: Polkadot funded a dedicated
|
|
specification with a committee and marked it unmaintained on 2 October 2024;
|
|
the Ethereum Yellow Paper states on its face that it stops at Shanghai (April
|
|
2023); Bitcoin never produced one at all. In each case the numbered proposal
|
|
process is what absorbed the work and kept running. A proposal series survives
|
|
because each document is small, dated, owned by one author, and finished, so it
|
|
never needs a maintainer to keep it true. A monolithic specification needs a
|
|
maintainer forever and eventually does not get one.
|
|
|
|
Aere therefore puts its documentation weight on this numbered series rather than
|
|
on a single living specification document.
|
|
|
|
## Specification
|
|
|
|
### 1. What an AIP is
|
|
|
|
An AIP is a design document describing a change to Aere Network (chain ID 2800),
|
|
its contracts, its consensus parameters, or its processes. It records the
|
|
motivation, the exact mechanism, the rationale, and, when the change is already
|
|
live, the on-chain addresses and transactions that prove it exists.
|
|
|
|
**In scope:** a protocol or consensus change (block time, fee routing,
|
|
precompiles); a new contract standard or interface others integrate against; a
|
|
token or account standard convention (ARC); a process or governance change
|
|
(Meta).
|
|
|
|
**Out of scope:** bug-fix redeploys that preserve an existing interface (tracked
|
|
in the SDK address registry's deprecation notes), routine parameter tuning inside
|
|
an already-ratified bound, and pure documentation.
|
|
|
|
### 2. Numbering (MUST)
|
|
|
|
- Numbers are assigned sequentially from 1 by the editor, as integers, with no
|
|
gaps and no sub-numbers.
|
|
- **A number is never reused.** Once assigned it belongs to that proposal
|
|
permanently, including if the proposal is Withdrawn, Stagnant, or superseded. A
|
|
withdrawn AIP-N stays AIP-N and its file stays in the repository.
|
|
- A number is assigned when the document is first accepted as well-formed by the
|
|
editor (that is, at entry to Draft), not when it is ratified. Assigning at
|
|
ratification would leave dangling references in review discussion.
|
|
- References to an AIP are by number, not by title or path. Titles may be
|
|
corrected; numbers may not.
|
|
|
|
*Precedent: IETF RFCs (RFC 2026), where a published number is permanent and is
|
|
never recycled even after the document is obsoleted; and PEP 1 and EIP-1, which
|
|
both assign a number at entry rather than at acceptance.*
|
|
|
|
### 3. Status values and permitted transitions (MUST)
|
|
|
|
| Status | Meaning |
|
|
| --- | --- |
|
|
| Draft | Well-formed, has a named author, may still change substantially. |
|
|
| Review | The author has requested wider scrutiny. Open questions are tracked inside the document. |
|
|
| Last Call | A stated final-review window, default 14 days, with an end date written into the document. |
|
|
| Final | Accepted. For shipped work, live on chain 2800. Immutable under section 5. |
|
|
| Living | Accepted and expected to keep being updated (a process document, an index, a registry). |
|
|
| Withdrawn | Abandoned by the author or the editor. Terminal. |
|
|
| Stagnant | Inactive in Draft or Review beyond six months. Revivable. |
|
|
|
|
Permitted transitions, and no others:
|
|
|
|
| From | May move to | Who moves it |
|
|
| --- | --- | --- |
|
|
| (new) | Draft | Editor, on a well-formedness check |
|
|
| Draft | Review, Withdrawn, Stagnant | Author (Review, Withdrawn); editor (Stagnant) |
|
|
| Review | Last Call, Draft, Withdrawn, Stagnant | Author (all but Stagnant); editor (Stagnant) |
|
|
| Last Call | Final, Living, Review, Withdrawn | Ratifier (Final, Living); author or editor (back to Review on a blocking issue) |
|
|
| Final | (none) | Nobody. Change requires a new AIP that supersedes it. |
|
|
| Living | Living (revised), Final, Withdrawn | Editor, with a Change Log entry |
|
|
| Stagnant | Draft | Any author reviving it |
|
|
| Withdrawn | (none) | Terminal |
|
|
|
|
A transition that is not in this table is invalid. In particular there is no path
|
|
out of Final: a Final AIP is changed only by being superseded.
|
|
|
|
**Retro-filing.** A document written after the change already shipped enters
|
|
directly at Final or Living, skipping Draft, Review and Last Call, and MUST say
|
|
in its Abstract that it backfills history. This is the one sanctioned bypass and
|
|
it exists because pretending a shipped change went through review would be a lie.
|
|
Retro-filed AIPs carry the same immutability rule from the moment they are filed.
|
|
|
|
*Precedent: PEP 1, which publishes an explicit state diagram rather than a list of
|
|
adjectives, so that "what may happen next" is answerable without a judgment call;
|
|
and EIP-1's Draft / Review / Last Call / Final / Living / Withdrawn / Stagnant
|
|
vocabulary, adopted here rather than invented.*
|
|
|
|
### 4. Supersession (MUST)
|
|
|
|
Two headers express the relationship, and both sides MUST be written:
|
|
|
|
- `Supersedes: N` on the new document.
|
|
- `Superseded-By: M` on the old document.
|
|
|
|
Adding a `Superseded-By` header to a Final AIP is the **only** edit permitted to
|
|
that document (section 5), and it is a pure addition: no existing text is
|
|
changed, so a reader who has the old bytes and the new bytes sees exactly one
|
|
added line.
|
|
|
|
The reading rule this creates: **a reader who lands on any AIP can reach the
|
|
current text by following `Superseded-By` until there is none.** That is the
|
|
whole point of the mechanism. A superseded AIP is not deleted, not hidden, and
|
|
not rewritten, because its historical claim ("this is what we did and why, on
|
|
this date") stays true forever even after the decision changes.
|
|
|
|
Partial supersession is expressed by naming the sections: `Supersedes: 3
|
|
(Section 4 only)`. If a new AIP replaces a decision but not the mechanism, it
|
|
says so in its Abstract.
|
|
|
|
*Precedent: the IETF `Obsoletes` and `Obsoleted by` header pair (RFC 2026,
|
|
RFC 7322), which is the reason a thirty-year-old RFC still resolves to current
|
|
practice; and PEP 1's `Replaces` and `Superseded-By` fields.*
|
|
|
|
### 5. Post-acceptance immutability (MUST)
|
|
|
|
Once an AIP is Final, its normative content is frozen. Specifically:
|
|
|
|
1. **No silent edits.** The Abstract, Motivation, Specification, Rationale,
|
|
Backwards Compatibility and Security Considerations sections of a Final AIP
|
|
MUST NOT be modified.
|
|
2. **Permitted edits, exhaustively:** adding a `Superseded-By` header; adding an
|
|
entry to the document's own **Errata** section; adding a
|
|
**Post-Acceptance Outcome Record** section; and typographical corrections that
|
|
cannot change meaning (spelling, broken link targets, table formatting).
|
|
3. **Errata** correct a factual error in a Final AIP. An erratum is appended, is
|
|
dated, states what was wrong and what is correct, and never edits the wrong
|
|
text away. A reader must be able to see both what was published and what was
|
|
corrected.
|
|
4. **A Post-Acceptance Outcome Record** reports what actually happened after the
|
|
change shipped, including when the outcome contradicts the expectation stated
|
|
in the original text. It is appended and dated. It never edits the original
|
|
claim.
|
|
5. If a change is large enough that errata would distort the document, file a new
|
|
AIP that supersedes it instead.
|
|
6. A Living AIP is exempt from (1) but MUST carry a **Change Log** section, and
|
|
every substantive revision MUST cite the AIP that authorized it.
|
|
|
|
*Precedent: the RFC Editor model, where a published RFC is immutable and
|
|
corrections are published as separate errata against it rather than as edits to
|
|
it, so a citation to a document is a citation to fixed bytes; and Michael
|
|
Nygard's Architecture Decision Records, in which an accepted record is never
|
|
rewritten and a changed decision is a new record that supersedes it.*
|
|
|
|
### 6. Required template (MUST)
|
|
|
|
Every AIP uses `aip-template.md`. Every section header is present. A section that
|
|
does not apply keeps its header with the body "None". The required sections are
|
|
Preamble, Abstract, Motivation, Specification, Rationale, Backwards
|
|
Compatibility, Security Considerations, Reference Implementation and On-Chain
|
|
Deployment, and Copyright.
|
|
|
|
A fixed section list is not bureaucracy; it is what makes an omission visible.
|
|
"Security Considerations: None" is a claim someone can challenge. A missing
|
|
Security Considerations section is a claim nobody notices.
|
|
|
|
*Precedent: EIP-1's required-section list, and RFC 3552, which made a Security
|
|
Considerations section mandatory in every RFC precisely so that its absence could
|
|
not pass unremarked.*
|
|
|
|
### 7. Types and categories
|
|
|
|
Types are **Standards Track**, **Meta**, and **Informational**. Informational
|
|
AIPs give guidance and mandate nothing. A Standards Track AIP names exactly one
|
|
category:
|
|
|
|
- **Core:** consensus, block production, fee and burn accounting, precompiles,
|
|
genesis and client configuration.
|
|
- **Networking:** peer-to-peer protocol and sync.
|
|
- **Interface:** contract interfaces, ABIs, RPC conventions, verification
|
|
surfaces.
|
|
- **ARC** (Aere Request for Comment): application and token standards.
|
|
|
|
Meta and Informational carry no category.
|
|
|
|
### 8. Roles
|
|
|
|
- **Author.** Anyone. Writes the document, drives it through the statuses,
|
|
answers review questions.
|
|
- **Editor.** Checks that a proposal is well-formed, correctly numbered and
|
|
categorized, technically coherent, and that every cited address, transaction,
|
|
and number is real. The editor explicitly does **not** judge whether a proposal
|
|
is a good idea. Today the editor is the Foundation.
|
|
- **Ratifier.** The party whose approval moves a proposal to Final. Today this is
|
|
the founder, acting through the Foundation account
|
|
`0x0243A4f47D44b40b65D33f20329dE20D00c6f3C3`, a single-key
|
|
Foundation-controlled account and **not** a deployed multisig. See
|
|
`CONTRIBUTING.md` for the honest description of what that means for an outside
|
|
contributor.
|
|
|
|
*Precedent: the RFC Editor / IESG split, and EIP-1's separation of editors from
|
|
approval, both of which exist so that the person checking whether a document is
|
|
correctly formed is not the same person deciding whether the idea wins.*
|
|
|
|
### 9. Sourcing rules (binding on every AIP)
|
|
|
|
- Every on-chain address is copied verbatim from the canonical SDK registry
|
|
(`sdk-js/src/addresses.ts`). No address is guessed. If unsure, omit it.
|
|
- Every gas figure, transaction hash, and block number is reproducible from the
|
|
chain or a repo fixture. Unmeasured quantities are written "to be measured",
|
|
never invented.
|
|
- Every number carries its provenance: **measured**, **spec**, or **estimate**.
|
|
- Design ceilings (a theoretical maximum throughput) are never presented as
|
|
measured throughput.
|
|
- Aere consensus is classical secp256k1 ECDSA QBFT. No AIP claims or implies
|
|
post-quantum consensus. Post-quantum applies to signatures, accounts and
|
|
applications only.
|
|
|
|
### 10. Where AIPs live
|
|
|
|
`aere-research/aips/` is canonical: `README.md` (the index), `CONTRIBUTING.md` (the
|
|
contribution path), `aip-template.md`, and `AIP-N.md` for every N.
|
|
|
|
A stale duplicate of AIP-1 through AIP-6 exists at `aere-research-repo/aips/`
|
|
with an older governance note that says "three validators" and calls the
|
|
Foundation account a multisig. Both statements are false today. That copy is
|
|
superseded by this directory wherever the two disagree.
|
|
|
|
## Rationale
|
|
|
|
The mechanisms above are borrowed, not designed. Every one of them has been load
|
|
tested for decades by IETF, Python, or Ethereum, and the failure each one
|
|
prevents is a failure those bodies actually hit. Inventing a new process for a
|
|
chain with one operator and no external contributors would be inventing a
|
|
solution to a problem we have not yet had, while missing the problems that are
|
|
already known.
|
|
|
|
The single most important borrowed mechanism is section 5, immutability after
|
|
acceptance. A process where accepted documents can be quietly edited produces
|
|
records that cannot be cited, because the thing you cited may not be the thing
|
|
that is there now. That failure is invisible until the moment it matters, which
|
|
is typically an audit or a dispute.
|
|
|
|
## Backwards Compatibility
|
|
|
|
AIP-2 through AIP-16 were filed before this revision. They remain valid. Where
|
|
one of them lacks a `Superseded-By` header, its absence means "not superseded",
|
|
which is the correct reading. Sections 2 through 6 bind every AIP filed from
|
|
2026-07-20 onward and are applied to earlier AIPs on their next touch.
|
|
|
|
## Security Considerations
|
|
|
|
The governance weakness is stated rather than hidden: today a single party can
|
|
both author and ratify an AIP. The editor's sourcing rules and the immutability
|
|
rule reduce the damage that state can do (a false claim is at least dated,
|
|
attributed, and hard to erase) but they do not remove it. Only independent
|
|
ratifiers do that, and Aere does not have them yet. Every pre-decentralization
|
|
AIP carries the label **"Foundation-ratified (pre-decentralization)"** so that no
|
|
reader mistakes editorial ratification for trustless governance.
|
|
|
|
The intended migration, each step its own Meta AIP: (1) open the validator set
|
|
beyond the current seven Foundation-operated validators and run a second client
|
|
as a live producer; (2) introduce a public review period the Foundation cannot
|
|
unilaterally shorten; (3) move ratification to stake-weighted or
|
|
validator-weighted approval once an independent staker and validator base exists.
|
|
|
|
## Reference Implementation and On-Chain Deployment
|
|
|
|
None. This is a process document.
|
|
|
|
## Change Log
|
|
|
|
| Revision | Date | Change | Authorized by |
|
|
| --- | --- | --- | --- |
|
|
| 1 | 2026-07-11 | Initial process definition: statuses, categories, roles, sourcing rules. | Foundation |
|
|
| 2 | 2026-07-20 | Added numbering permanence (section 2), the transition table (section 3), supersession headers (section 4), post-acceptance immutability with errata and outcome records (section 5), provenance labels, and named precedent for each mechanism. | AIP-19 (Review) |
|
|
|
|
## Copyright
|
|
|
|
Released to the public domain (CC0). No rights reserved.
|