Cardano is a decentralized third-generation proof-of-stake blockchain platform and home to the ada cryptocurrency. It has been designed from the ground up by a team of top engineers and academic experts.
Cardano has a strong focus on sustainability, scalability, and transparency and is a fully open source project that aims to deliver an inclusive, fair, and resilient infrastructure for financial and social applications on a global scale. It is powered by Ouroboros, the ground-breaking proof-of-stake consensus protocol.
Cardano is an open source proof-of-stake blockchain project that began in 2015 to address existing blockchain challenges in the design and development of cryptocurrencies. It aims to provide a more balanced and sustainable ecosystem that better accounts for the needs of its users as well as other systems seeking integration.
The first generation of blockchains (like Bitcoin) offered decentralized ledgers for secure cryptocurrency transfer. However, such blockchains did not provide a functional environment for complex deal settlement and decentralized application (DApp) development. As blockchain technology matured, the second generation (like Ethereum) provided more enhanced solutions for writing and executing smart contracts, application development, and the creation of different token types. On the other hand, the second generation of blockchains often faces issues in terms of scalability.
Cardano is conceived as the third-generation blockchain as it combines the properties of the prior generations and evolves to meet all the arising needs of users. When comparing blockchain properties, many aspects should be considered. Thus, the best solution must ensure the highest security, scalability (transaction throughput, data scale, network bandwidth), and functionality (besides transaction processing, the blockchain should provide all means for business deal settlement). Moreover, it is important to ensure that blockchain technology is constantly developing in terms of sustainability and is interoperable with other blockchains and financial institutions.
To address these needs, Cardano focuses on such core concepts as:
Cardano’s development journey has been split into five main themes focusing on such core functionalities as:
Each theme is centered around a set of functionalities that are being delivered across multiple code releases. While these development streams are delivered sequentially, the work for each happens in parallel – with research, prototyping, and development often in progress all at once across the different stages. Let’s take a closer look at these development themes.
Byron
Byron set the foundation for Cardano development allowing users to buy and sell ada on a proof-of-stake blockchain network. Initially, the Cardano ledger was established as a federated network, where block production and transaction validation were maintained by Input Output Global (the company that develops Cardano technology) and Emurgo (the company that drives Cardano commercial adoption) stake pools. Byron saw the delivery of Daedalus and Yoroi wallets, and also provided users with a Block Explorer ‒ a tool specifically designed for browsing the blockchain.
Shelley
The Shelley development theme introduced a decentralized ledger creating a completely new economic system, which drives the network’s growth and gradual optimization. Shelley evolved from Byron’s federated network maintenance, with more and more blocks being produced by the distributed stake pool operator community. This theme focuses on a number of critical steps that ensure enhanced user experience in terms of stake pool operation, delegation preferences, and incentives. As a proof-of-stake network, Cardano Shelley introduced the Incentivized Testnet (ITN) which proved that the blockchain can be sustainable in the long term by relying exclusively on community-managed pools.
Goguen
Goguen development focuses on the establishment of a global, financial and multi-functional system for decentralized application (DApp) building, smart contract support, and custom token issuance. Goguen is a key building block to establish a versatile platform to build solutions around such application domains as supply chain, track and trace, finance, medical records, identity voting, property registration, P2P payments, and many others.
Basho
Basho will focus on Cardano’s optimization in terms of improving the scalability and interoperability of the network. Whereas other development stages focus on decentralization and new functionality, Basho is about improving the underlying performance of the Cardano network to better support growth and adoption for applications with high transaction volume.
Voltaire
Decentralized governance and decision making lie at the heart of Voltaire granting the Cardano community an ability to vote on network development updates, technical improvements, and project funding. For the Cardano network to become truly decentralized, it requires not only the distributed infrastructure introduced during Shelley but also the capacity to be maintained and improved over time in a decentralized way.
The Cardano node is the top-level component within the network. Network nodes connect to each other within the networking layer, which is the driving force for delivering information exchange requirements. This includes new block diffusion and transaction information for establishing a better data flow. Cardano nodes maintain connections with peers that have been chosen via a custom peer-selection process. By running a Cardano node, you are participating in and contributing to the network.
Stake pools use the Cardano node to validate how the pool interacts with the network and are responsible for transaction processing and block production. They act as reliable server nodes that hold and maintain the combined stake of various stakeholders in a single entity.
Producing a block
The goal of blockchain technology is the production of an independently-verifiable and cryptographically-linked chain of records (blocks). A network of block producers works to collectively advance the blockchain. A consensus protocol provides transparency and decides which candidate blocks should be used to extend the chain.
Submitted valid transactions might be included in any new block. A block is cryptographically signed by its producer and linked to the previous block in the chain. This makes it impossible to delete transactions from a block, alter the order of the blocks, remove a block from the chain (if it already has a number of other blocks following it), or to insert a new block into the chain without alerting all the network participants. This ensures the integrity and transparency of the blockchain expansion.
Slots and epochs
The Cardano blockchain uses the Ouroboros Praos protocol to facilitate consensus on the chain. Ouroboros Praos divides time into epochs. Each Cardano epoch consists of a number of slots, where each slot lasts for one second. A Cardano epoch currently includes 432,000 slots (5 days). In any slot, zero or more block-producing nodes might be nominated to be the slot leader. On average, one node is expected to be nominated every 20 seconds, for a total of 21,600 nominations per epoch. If randomly elected slot leaders produce blocks, one of them will be added to the chain. Other candidate blocks will be discarded.
Slot leader election
The Cardano network consists of a number of stake pools that control the aggregated stake of their owners and other stakeholders, also known as delegators. Slot leaders are randomly elected from among the stake pools. The more stake a pool controls, the greater the chance it has of being elected as a slot leader to produce a new block that is accepted into the blockchain. This is the basic concept of proof of stake (PoS). To maintain a level playing field, and prevent a situation where a small number of very large pools control the majority of stake, Cardano has an incentive system that discourages delegation to pools that already control a large portion of the total stake.
Transaction validation
When validating a transaction, a slot leader needs to ensure that the sender has included enough funds to pay for that transaction and must also ensure that the transaction’s parameters are met. Assuming that the transaction meets all these requirements, the slot leader will record it as a part of a new block, which will then be connected to other blocks in the chain.
Note: we are not making any investment advice. Please consider conducting your own research and due diligence, or consult your financial advisor before making any investment decisions.
Like any other cryptocurrency, ada can be purchased using one of the available exchanges.
We do not recommend any particular exchange, as there are many great options. However, you can find a list of exchanges listing ADA on Cardano markets.
We recommend setting up 2FA verification for enhanced security and funds safety. It usually takes from several minutes to several days for an account to be activated. This depends on the chosen exchange.
You can now store ada in your personal wallet, transact between different addresses, receive more ada as payment for services (for example), or delegate it to earn rewards.
The Cardano network is a technical infrastructure combining Cardano nodes and their relative interactions in one unified system. It consists of a collection of nodes that communicate with each other to maintain the distributed ledger. These nodes are the actors on Cardano that validate blocks, add blocks to the chain, and distribute transactions.
The networking layer is the driving force for delivering information exchange requirements, which includes new blocks diffusion and transaction information for establishing a better data flow. Cardano nodes maintain connections with peers that have been chosen via a custom peer selection process.
Follow these links to find detailed specifications of:
To understand how nodes communicate with each other, let’s suppose that node A is connected to node B. Then, the Ouroboros protocol schedules a node N to generate a new block in a given time slot. Depending on the location of nodes A, B, and N in the network topology, and whether a new block arrives first at A or B, node A can be either upstream or downstream of node B.
A set of mini protocols is used to enable communication between different nodes. Each mini protocol implements a basic information exchange requirement, such as informing peers of the latest block, sharing blocks as needed, or sharing new transactions around the Cardano network. For connection purposes, mini protocols are determined by the version of the network protocol. For example, there are two protocol suites: node-to-node and node-to-client. The node-to-client protocol suite is used by wallets and chain consumers. Protocol suites use different sets of mini protocols and the version is negotiated when a new connection is established using a specific protocol (protocols are described in the following sections).
Clients can also choose which node-to-client mini-protocols to use, but it is important to note that the node needs to be able to reply to all of them to support different use cases. For example, to communicate, node A runs its client-side instance of the chain-sync mini protocol that talks with a server instance of the chain-sync mini protocol at node B. Such a situation is similar to the functionality of other mini protocols.
The scheme below illustrates how data flows within a node. Circles represent protocol threads and internal threads that are responsible for running the client and server processes within the respective mini protocols.
Two types of data flow exist:
To design an efficient and robust networking architecture, a number of potential issues regarding complexity and constraints have been evaluated.
Congestion control is one such feature and is used to deal with system overload. Congestion control is vital to ensure that the system is robust enough while operating high workloads. Within the networking design, it is common that the number of transactions that occur can be higher than the number that can be actually processed for inclusion in the blockchain. Therefore, it is important to ensure that the increasing rate of transaction submission into a block does not decrease the performance of blockchain.
The actual node has a limit to the amount of data it can process. In particular, a node might have to share its processing power with other processes that run on the same machine or operating system instance. This means that a node can slow down and result in the system not being able to process all the available data from the network.
To address these issues, the congestion control feature has been designed to operate appropriately in such a situation and recover from transient conditions. In any case, a node must not exceed its memory limits so there must be defined memory limits, breaches of which are treated as protocol violations. These factors mean that the system will be able to meet performance goals.
Real-time constraints and coordinated universal time are other aspects that have been considered while designing the networking architecture. In Cardano, Ouroboros consensus protocols model the passage of physical time as an infinite sequence of time slots, assigning slot leaders to create a new block in those time slots. Choosing a slot time, however, might cause certain complexities in terms of the slot length, as it should be long enough for a new block to have a good chance to reach the next slot leader in time. Therefore, a chosen value for the slot length was initially set to 20 seconds in the Byron era. With Ouroboros Praos now implemented in the Shelley era, a slot length of 1 second is chosen but, on average, only 0.05 of slots will produce a block (and thus on average, there will be 20-second intervals between blocks). It is assumed that the clock skews between local clocks of the nodes is small with respect to the slot length. Possible clock inaccuracies should still be taken into consideration, especially when dealing with time-stamped incoming blocks. It is important to differentiate whether there is a time difference or whether the node considers an adversarial behavior of another node.
Mini protocols are used to communicate between multiple nodes while implementing information exchange requirements. A mini protocol is a defined modular building block of the network protocol. Structuring the network protocol around mini protocols helps to manage the overall complexity of the design while ensuring useful flexibility.
Mini protocols describe both the initiator and the responder within the communication stream. The initiator is the dual element of the responder and vice versa. A node typically runs many instances of mini protocols, which includes many instances of the same mini protocol. Each mini protocol instance of the node then communicates with the dual instance of the exact peer. All mini protocols that communicate with the same peer share a single communication channel (pipe or socket). A multiplexer or de-multiplexer is used to multiplex respective protocols over that channel.
The set of mini protocols that is used for connection between two participants of the system depends on the role of these participants, for instance, whether the node acts as a full node or a blockchain consumer (for example, a wallet).
It is also worth noting that the implementation of mini protocols uses a generic framework for state machines. This framework uses correct-by-construction techniques to guarantee the implementation of several properties of the protocol. In particular, this technique assures that no deadlocks occur and communication is cancelled in the following scenarios:
All mini protocols based on this framework include the following information in their description:
This section outlines some examples of mini protocols.
This is a simple protocol for testing that a client can use to check that the server is responsive. The Ping-Pong protocol is very simple because the messages do not carry any data and the Ping-Pong client, as well as the Ping-Pong server, do not access the internal state of the node.
The request response protocol is polymorphic in the request and response data that is being transmitted. This means that there are different possible applications of this protocol and the application of the protocol determines the types of requests sent and responses received.
The chain synchronization protocol is used by a blockchain consumer to replicate the producer’s blockchain locally. A node communicates with several upstream and downstream nodes and runs an independent client instance and an independent server instance for each node with which it communicates.
The chain synchronization protocol is polymorphic. The node-to-client protocol uses an instance of the chain synchronization protocol that transfers full blocks, while the node-to-node instance only transfers block headers. In the node-to-node scenario, the block fetch protocol is used to transfer full blocks.
The block-fetching protocol enables a node to download a range of blocks.
The local transaction submission mini protocol is used by local clients, for example, wallets or CLI tools, to submit transactions to a local node. The protocol is not used to forward transactions from one core node to another. The protocol follows a simple request-response pattern:
The node-to-node transaction submission protocol is used to transfer transactions between full nodes. The protocol follows a pull-based strategy where the initiator asks for new transactions and the responder replies with transactions. It is suitable for a trustless setting where both sides need to guard against resource consumption attacks from the other side. The implementation of the node-to-node transaction mini protocol is based on a generic mini protocol framework (the same as for all other mini protocols). For technical reasons, the roles of the initiator and the responder are reversed in this case compared to the way other mini protocols are implemented in the framework. In other words, the server is the initiator who requests new transactions, and the client is the responder who replies with transactions.
The handshake mini protocol is used to negotiate the protocol version and the protocol parameters that are used by the client and the server. It is used first when a new connection is initialized and consists of a single request from the client and a single reply from the server. The handshake mini protocol is a generic protocol that can negotiate any kind of protocol parameters. It assumes that protocol parameters can be encoded to, and decoded from Concise Binary Object Representation (CBOR) terms. A node that runs the handshake protocol must instantiate it with the set of supported protocol versions and callback functions for handling the protocol parameters. These callback functions are specific for the supported protocol versions.
Gameplay
/10
Investment Risk
/10
Long-Term expectations
/10
BACKGROUND (0/20)
AVATAR (0/59)
RANDOM
Gameplay
/10
Investment Risk
/10
Long-Term expectations
/10