Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions source/mainnet/docs/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -79,6 +79,7 @@ Explore our developer resources, including detailed documentation, tutorials, an
Identities <protocol/id-accounts>
Accounts <protocol/manage-accounts>
Transactions <protocol/transactions>
Consensus mechanisms <protocol/consensus-mechanisms>
Validation <protocol/concepts-baker>
Delegation <protocol/concepts-delegation>

Expand Down
65 changes: 65 additions & 0 deletions source/mainnet/docs/protocol/consensus-mechanisms.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,65 @@
.. include:: ../../variables.rst

.. _reference-consensus-mechanisms:

====================
Consensus mechanisms
====================

The consensus mechanism in Concordium is more than just its :term:`proof-of-stake` protocol. While proof-of-stake is a crucial component that prevents :term:`Sybil attacks<Sybil attack>` , Concordium's consensus mechanism, :term:`ConcordiumBFT<Concordium Byzantine Fault Tolerance (BFT) protocol>`, is a more complex protocol that enables the network's nodes to reach agreement on the blockchain's state.

What is consensus?
------------------

Consensus in a blockchain context means that network participants agree on the current state of the system. In Concordium, consensus on a new state is reached when validators holding at least two-thirds of the total stake agree on a new block. The two-thirds threshold is crucial as it ensures the safety properties of the network.

What is a consensus mechanism?
------------------------------

Concordium's consensus mechanism refers to the entire stack of protocols and incentives that ensure a consistent network state. The mechanism includes:

* A proof-of-stake system that requires :term:`validators<validator>` to lock up :term:`CCD` as stake
* A :term:`leader election` protocol based on verifiable random functions
* A block production and validation process
* A finalization mechanism that provides quick, deterministic finality
* Economic incentives that reward honest behavior and discourage attacks

Block creation
--------------

In Concordium, block creation follows a leader-based approach. For each round, a leader is selected through a lottery-based system where the probability of selection is proportional to the validator's stake. The selected leader creates a new block and broadcasts it to the network.

`Learn more about the complete validation process here. <concepts-baker.html>`_

Unlike :term:`proof-of-work` systems that require solving complex puzzles, Concordium's block creation is energy-efficient. The chosen leader simply needs to create a valid block and prove they were legitimately selected through the verifiable random function (VRF) system.

Security
--------
The network's security is maintained through several mechanisms:

1. **Economic Security**: You would need to control one-third of the total staked CCD to attempt to corrupt the network. Given the significant financial investment this requires and the risk of losing or devaluing your stake, attacks are economically irrational.

2. **Byzantine Fault Tolerance**: The consensus protocol continues to operate correctly even if up to one-third of validators (weighted by stake) behave maliciously.

3. **Quick Finality**: Unlike systems that require waiting for multiple block confirmations, Concordium's finality is achieved within seconds and is deterministic, meaning finalized blocks cannot be reverted.

Epoch structure
---------------

Concordium organizes time into :term:`epochs<epoch>` during which the validator set remains constant. This structure provides clear checkpoints for updates to the system and helps coordinate the network's operation. Every 24 epochs, there is a :term:`pay day` where rewards are distributed and stake changes take effect.

Delegation and participation
----------------------------

The consensus mechanism includes a sophisticated delegation system that allows CCD holders to participate in staking without running a validator node. Through :term:`delegation`, users can add their stake to a validator's pool, increasing the validator's block production probability while sharing in the rewards.

`Learn more about delegation and how it works on Concordium here. <concepts-delegation.html>`_


The role of identity
--------------------

A unique aspect of Concordium's consensus mechanism is its integration with the identity layer. While consensus operates pseudonymously, the underlying identity system ensures that validators can be held accountable if necessary, providing an additional security guarantee without compromising the network's decentralized nature.

`Learn more about identities here. <id-accounts.html>`_

12 changes: 12 additions & 0 deletions source/mainnet/docs/resources/glossary.rst
Original file line number Diff line number Diff line change
Expand Up @@ -177,6 +177,10 @@ Also see the Concordium `Whitepaper <https://developer.concordium.software/gover

For delegation in an election, see :term:`Vote delegation`.

Delegation

The process of contributing CCD stake to a validator's staking pool or to passive delegation without running a node. When delegating, the CCD amount becomes locked and cannot be spent or transferred until undelegated.Delegation allows CCD holders to earn rewards proportional to their stake, minus any applicable commission paid to validators.

Deploy

Command that takes the built :term:`Wasm<webassembly>` file for a smart contract module and deploys it on chain. This command is run from :term:`Concordium client`.
Expand Down Expand Up @@ -329,6 +333,10 @@ Also see the Concordium `Whitepaper <https://developer.concordium.software/gover

A consensus mechanism where validators must stake (lock) CCD tokens to participate in block production. The chance of being selected to produce a block is proportional to the amount staked.

proof-of-work

A consensus mechanism where validators (miners) compete to solve complex cryptographic puzzles that require significant computational power. The first to solve the puzzle earns the right to produce the next block and receive the associated rewards.

Qualified authority

A governmental body that has the authority to act in a relevant jurisdiction. For example, a local police force, a local court or an investigatory division of a local authority that regulates financial conduct may have authority to act in their relevant jurisdictions. These authorities are qualified to begin the process of disclosing the identity of a user when they proceed through established legal channels and make a formal request. The outcome of such a request is likely to be that a qualified authority obtains an official order, which may be in the form of a warrant, court order, or similar instrument. Only after a qualified authority validly serves an official order upon the relevant :term:`identity disclosure authorities<identity disclosure authority>` and :term:`identity provider`, can the real-world identity of a user be revealed and only to the extent set out in the order.
Expand Down Expand Up @@ -425,6 +433,10 @@ Also see the Concordium `Whitepaper <https://developer.concordium.software/gover

A state where a validator is temporarily excluded from block production due to prolonged inactivity. The suspension threshold varies based on the validator's stake size and remains in effect for at least one epoch until manually resumed.

Sybil attack

A form of network attack where a malicious actor creates multiple fake identities (nodes) to gain disproportionate influence over a decentralized network. In blockchain systems, Sybil attacks could allow attackers to disrupt consensus, manipulate transaction validation, or execute double-spending. Concordium's proof-of-stake mechanism prevents Sybil attacks by requiring validators to stake actual value (CCD), making it economically unfeasible to create and maintain multiple validator identities with significant influence.

Tally

Tally (noun) is the number of votes obtained by every candidate computed by summing all weighted votes for every candidate. Also, tally (verb) is the process of calculating the number of votes.
Expand Down