# æternity Protocol

### The æternity Protocol: Implementation and Maintenance

<table data-view="cards"><thead><tr><th></th><th data-hidden data-card-cover data-type="files"></th><th data-hidden data-card-target data-type="content-ref"></th></tr></thead><tbody><tr><td><a href="/pages/pEwzRhDW8SuW7gzPXeGA">Protocol Developer Documentation</a></td><td><a href="/files/EZt0IhCi7DRq4iHJVjJE">/files/EZt0IhCi7DRq4iHJVjJE</a></td><td><a href="/pages/pEwzRhDW8SuW7gzPXeGA">/pages/pEwzRhDW8SuW7gzPXeGA</a></td></tr></tbody></table>

The **æternity protocol** forms the foundation of the **æternity blockchain**, outlining the rules and procedures that govern its operation. The current iteration of the æternity protocol replaces initial  versions and incorporates the latest advancements in blockchain technology. The protocol is developed in **Erlang**, a programming language renowned for its ability to create highly reliable and concurrent systems, attributes crucial for a robust blockchain. The choice of Erlang reflects a commitment to building a stable and scalable platform capable of handling a large volume of transactions.

At the heart of the æternity protocol lies the **AE coin**, the native currency of the æternity blockchain. AE coins are the lifeblood of the system, powering all operations on the blockchain, from simple value transfers to the execution of sophisticated smart contracts. Every transaction on the æternity blockchain incurs a fee, paid in AE coins, which is known as a "transaction fee" or "gas fee.".

**Next Generation Nakamoto Consensus (Bitcoin-NG)**

To achieve a high transaction throughput, æternity leverages a modified version of the consensus mechanism used by Bitcoin, known as **Bitcoin-NG**. Bitcoin-NG introduces a distinction between two types of blocks: **key-blocks** and **micro-blocks**. Key-blocks are responsible for electing a new "leader" miner, granting them the exclusive right to add transactions to the blockchain for a designated period. Once a leader is elected, they can generate a series of smaller **micro-blocks** in quick succession, each containing a limited number of transactions. This separation of leader selection and transaction processing enhances the efficiency of the blockchain, allowing for faster transaction confirmation times. In æternity, micro-blocks are created every three seconds.

The process of electing a leader involves solving a computational challenge known as "proof-of-work." æternity utilizes the **Cuckoo Cycle** algorithm for this purpose. Cuckoo Cycle is a memory-bound algorithm, meaning its performance is heavily reliant on memory access speeds. This characteristic makes it more challenging for specialized mining hardware (ASICs) to dominate the mining process, promoting a more decentralized and equitable distribution of mining power.

**Weighted Delegated Coin-Voting**

Beyond the mining process, AE coin holders have a say in the governance of the æternity blockchain through a mechanism called **weighted delegated coin-voting**. This system enables coin holders to delegate their voting rights to other accounts on the blockchain. The weight of each vote is proportional to the number of coins held, embodying a "skin in the game" principle where those with a greater stake have a stronger influence on decision-making.

**State Channels**

For further scalability and privacy enhancements, æternity incorporates **state channels**. State channels function as off-chain agreements between two parties, facilitating numerous transactions away from the main blockchain. Only the concluding outcome of these transactions is ultimately recorded on the blockchain, minimizing the on-chain footprint and expediting transaction speeds.

**ÆNS, Oracles, Sophia, and the FATE VM**

The æternity protocol also encompasses a native naming system known as ÆNS, a method for incorporating real-world data through oracles, and a dedicated smart contract language and virtual machine. These components contribute to the platform's versatility and user-friendliness. Smart contracts, self-executing agreements encoded on the blockchain, are written in **Sophia**, a functional programming language designed with security and efficiency as top priorities. Sophia contracts are then executed within the **FATE (Fast Æternity Transaction Engine) VM**, a virtual machine custom-built for the æternity blockchain.

The æternity protocol represents a comprehensive and meticulously engineered framework for a secure, efficient, and user-centric blockchain platform. Its implementation in Erlang and its open-source philosophy underscore a dedication to reliability, transparency, and community engagement.

<table data-view="cards"><thead><tr><th></th><th data-hidden data-card-target data-type="content-ref"></th><th data-hidden data-card-cover data-type="files"></th></tr></thead><tbody><tr><td>Protocol Developer Documentation</td><td><a href="/pages/pEwzRhDW8SuW7gzPXeGA">/pages/pEwzRhDW8SuW7gzPXeGA</a></td><td><a href="/files/EZt0IhCi7DRq4iHJVjJE">/files/EZt0IhCi7DRq4iHJVjJE</a></td></tr></tbody></table>


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.aeternity.com/aeternity-core-concepts/protocol.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
