æternity Documentation Hub
AeternityGitHub
  • æternity Hub
  • Developer Documentation
  • Welcome to æternity documentation
  • Getting Started
    • What is æternity?
    • How to Use Aeternity
  • æternity core concepts
    • Introduction
    • æternity Protocol
      • æternity Coin
      • Fast Æternity Transaction Engine (FATE VM)
      • æternity Nodes
        • Node architecture
        • Node types
        • Node Roles
      • Transactions
        • Types of transactions
        • Transaction Lifecycle
        • Transaction Fees
        • Meta-transactions and Generalized Accounts
        • State Channel Transactions
      • Networks
      • Consensus Mechanisms
        • Next Generation Nakamoto Consensus (Bitcoin-NG)
        • Cuckoo Cycle Proof of Work
        • Hyperchains and Delegated Proof of Stake
        • Governance and Weighted Coin Voting
      • State Channels
      • Oracles
      • Aeternity Naming System (AENS)
    • Hyperchains
      • Hyperchains Whitepaper
    • Aeternity Governance
    • Aeternity Foundation
  • aeternity user tools and services
    • Introduction
    • Run an æternity node
    • Hyperchains web app
    • Hyperchains Bridge app
    • Mine aeternity coin
    • Superhero DEX
    • Superhero Wallet
    • ærc Bridge
    • Make an NFT
    • aepps: decentralized applications on æternity
    • æScan: æternity blockchain explorer
  • æternity Developer tools
    • Quick Start Guide
      • Development Environment Setup
      • Essential Tools Overview
      • Æternity Stack
      • First Steps in Development
    • Protocol
      • Core Protocol Components
        • æternity Consensus Protocol
        • Generalized Accounts
        • Smart Contracts
          • FATE VM
          • Smart contract languages
            • æternity Sophia Language
              • In-Depth Overview
              • Sophia Compiler
              • Sophia Visual Studio
              • Sophia http
              • æREPL
            • Solidity
          • Contract Transactions
        • State Channels
        • Oracles
      • Network Layer
        • Nodes
          • Node Documentation
          • Node API Reference
        • Sync
        • Gossip
        • Stratum
      • Utility Features
        • æternity Naming System (AENS)
        • Seralization Formats
    • æternity Sophia Language
      • In-Depth Overview
      • Sophia Compiler
      • Sophia Visual Studio
      • Sophia http
      • æREPL
    • Development Infrastructure
      • CLIs
      • SDKs and APIs
        • Javascript/Typescript SDK
        • Java SDK
        • Outdated SDKs
        • APIs
          • Node API reference
      • Middleware
      • Testing and Deployment
        • æproject
        • Testnet
          • Localnet
          • Faucet
        • Testnets and Faucet
    • Token Standards
      • æternity token standards
        • AEXs: Aeternity Expansions
        • AEX-1
        • AEX-9
        • AEX-141
    • Aepps: Building apps on Aeternity
      • Boiler Plates
        • Angular Boiler Plate
        • React JS BoilerPlate
        • Vue BoilerPlate
      • Æpp architecture
      • Implementation Guidelines
      • Reference æpps
        • Case Studies
        • Code Examples
        • Aeternity Graffiti
    • Data and analytics
      • æScan
    • ÆRC Bridge
  • Hyperchains
    • Hyperchains Development Guide
    • Hyperchains Bridge
Powered by GitBook
On this page

Was this helpful?

Export as PDF
  1. æternity core concepts

æternity Protocol

PreviousIntroductionNextæternity Coin

Last updated 2 days ago

Was this helpful?

The æternity Protocol: Implementation and Maintenance

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.

Cover

Protocol Developer Documentation

Cover

Protocol Developer Documentation