146 (2023/09/19)
Cardano is an open-source, decentralized public blockchain and cryptocurrency project.
History
Cardano was founded in 2015 by Ethereum co-founder Charles Hoskinson and Jeremy Wood through an engineering company called IOHK. The initial team also included a group of academics and scientists.
Cardano's development has gone through several phases:
- Byron (2017-2020) - Launched the initial Cardano mainnet and ada cryptocurrency using federated nodes and the Ouroboros Classic protocol.
- Shelley (2020-2021) - Transitioned the network to be fully decentralized and introduced staking, delegation, and stake pools using the Ouroboros Praos protocol.
- Goguen (2021-2022) - Added support for smart contracts, native tokens, and multi-assets. Introduced the EUTXO accounting model and Plutus smart contract platform.
- Basho (2022-2023) - Focused on optimization and scalability improvements like Hydra, sharding, and sidechains.
- Voltaire (2022- ) - Implementation of decentralized governance including a treasury system and project funding mechanisms.
Notable releases:
- September 2017 - Byron mainnet launch
- July 2020 - Shelley mainnet launch with decentralization
- March 2021 - Mary upgrade added native token support
- September 2021 - Alonzo upgrade enabled smart contracts
- June 2022 - Vasil upgrade improved Plutus and performance
$ADA
The Cardano blockchain operates the $ADA cryptocurrency, which was named after the 19th century mathematician Ada Lovelace. Cardano aims to provide a more balanced and sustainable ecosystem for cryptocurrencies while also solving long-standing issues surrounding scalability, interoperability, and sustainability in the blockchain space.
Design Principles
Cardano was built following a research-driven approach and engineering principles focused on security, scalability, and sustainability. It represents the first blockchain platform to evolve out of extensive academic research and scientific philosophy.
Some key design features and principles of Cardano include:
- Use of formal methods, mathematically proven code, and peer-reviewed academic research to ensure high assurance in its components. This includes using a formal specification language called Haskell.
- A layered, modular architecture that separates the settlement layer from the computational layer. This separation enhances flexibility and allows upgrades via soft forks.
- A unique extended UTXO (EUTXO) accounting model that offers predictability of fees and parallel transaction processing capabilities.
- An incentive structure and decentralized governance model designed to ensure long-term sustainability and encourage active stakeholder participation.
- Sidechains to enable scalability and interoperability by allowing ledgers with different rule sets to interact seamlessly.
- A treasury system and decentralized improvement proposal process for funding future development.
The overall vision is to create a network with unparalleled security, scalability, and sustainability to support new markets, applications, and services.
State Model
Cardano utilizes an Extended Unspent Transaction Output (EUTXO) accounting model to track the state of its ledger. This extends the standard UTXO model used in Bitcoin.
In the UTXO model, transactions consume UTXO outputs from previous transactions as inputs and produce new UTXO outputs. Nodes maintain a database of unspent outputs called the UTXO set.
EUTXO enhances UTXO in two key ways:
- It allows output addresses to contain complex logic scripts that can validate transactions. Beyond just signatures, these scripts can encode advanced requirements.
- Outputs can carry arbitrary data along with their value and address. This enables scripts to be more expressive by carrying state.
Together, these extensions enable complex validation logic and stateful smart contracts while retaining UTXO properties like transaction finality and parallel execution.
The EUTXO model provides several advantages:
- Improved scalability due to transaction parallelism
- More predictable fees based on transaction size
- Simpler reasoning about transactions due to transaction finality
- Better sustainability and security due to determinism
By combining the capabilities of UTXO accounting with programmable validation logic, EUTXO forms a stable and flexible foundation for building decentralized applications on Cardano.
Consensus Protocol
Cardano uses a proof-of-stake consensus protocol called Ouroboros to validate transactions and produce new blocks. Ouroboros was the first provably secure proof-of-stake protocol, and is based on peer-reviewed cryptographic research.
Ouroboros divides time into epochs and slots. Each epoch currently consists of 432,000 slots, with each slot lasting one second. In each slot, slot leaders are randomly elected to create blocks. The more ada stake a node controls, the higher chance it has of being elected slot leader.
The slot leader selection process is facilitated by verifiable random functions (VRFs), which generate unpredictable and unbiasable randomness. This prevents adversaries from predicting and attacking the next slot leader.
Ouroboros has gone through multiple iterations:
- Ouroboros Classic - the first provably secure proof-of-stake protocol
- Ouroboros BFT - used a simplified version during the Byron to Shelley transition.
- Ouroboros Praos - improved security against adaptive attackers and better randomness. Used in the Shelley era.
- Ouroboros Genesis - improved bootstrap time and added proof of universal composability.
- Ouroboros Chronos - supports decentralized, verifiable time synchronization.
A key advantage of Ouroboros is lower energy requirements compared to proof-of-work models. It also incentivizes a decentralized stake pool network and enables ada holders to earn rewards through delegation.
Execution
Cardano executes transaction validation and script logic using a layered runtime engine:
- Settlement Layer - Validates transactions and updates the ledger state. Implements the EUTXO model.
- Execution Layer - Runs script validation logic to authorize transactions.
- Computation Layer - Executes complex scripts and off-chain code.
When a transaction is submitted, the Settlement Layer validates the signatures, references, etc. to ensure the transaction is properly formatted and signed.
The Execution Layer then runs the script associated with each input address. These scripts check custom conditions encoded in the address.
For simple scripts like signatures, the Execution Layer interprets the logic natively. For more complex scripts, it will invoke the Computation Layer.
The Computation Layer provides a deterministic environment for executing arbitrary computation steps defined in the script. It is based on the IELE virtual machine and the Plutus platform.
This layered architecture optimizes different types of transactions, keeps validation lightweight, and enables upgrades via soft forks. The Settlement Layer remains simple while complexity is isolated to the Computation Layer.
Nodes
The Cardano network is comprised of node operators that run cardano-node software and participate in the protocol. Nodes can take on different roles:
- Core nodes - Operated by IOHK, EMURGO, and Cardano Foundation to run the network.
- Relay nodes - Maintain connections to other nodes to relay blocks and transactions. Help network propagation.
- Block producing nodes - Participate in block production as slot leaders. Requires stake delegation.
- Light nodes - Connect to relay nodes to synchronize and query the chain. Don't store full history.
All nodes run the Ouroboros protocol and maintain connections with peers. They propagate new blocks and transactions across the network.
Nodes use different kinds of cryptographic keys:
- Operator keys - Used to generate node operational certificates
- KES keys - Provide identity and let nodes create blocks when elected slot leader
- VRF keys - Generate verifiable random output to select slot leaders
- Address keys - Used to identify ownership of funds at addresses
Nodes also maintain a local copy of the blockchain and the UTXO set to validate transactions. Running a node provides security and decentralization to the broader network.