Proponents of Cardano make some lofty claims about the blockchain. Reliable fees and high transaction throughput are selling points for community members, many of whom are quick to contrast the platform’s promised benefits to the shortcomings of Ethereum and others.
Sure enough, these claims stem from a foundation of rigorous R&D. On their website, IOHK hosts 114 peer-reviewed papers outlying the design choices that have led Cardano to become the third-largest cryptocurrency by market cap. The body of work establishes the theory behind permissionless clock synchronization, communication across cryptocurrencies, and much more.
Yet, claims surrounding Cardano’s usability essentially remain unproven. With smart contracts functionality slated for September 12th, the cutting-edge architecture underlying the project will ultimately determine whether the ecosystem lives up to the hype.
The Wallet Backend
From a user’s perspective, the Cardano experience likely begins with a Daedalus wallet. This user-friendly GUI overlays a full node and the wallet backend. These pieces, in turn, simplify the process of constructing transactions using the Ada cryptocurrency.
The wallet also ensures transactions are appropriately incorporated into the blockchain. To this end, the software stores a serialized version of submissions while following the most recent block of the blockchain. In the case of failure, the device resubmits the action periodically until approved.
Furthermore, technical users can leverage the wallet command-line interface (CLI) to perform fundamental tasks. Through an API, users can generate keys and mnemonic phrases, create certificates, visualize transaction statistics, and more.
Most blockchains are essentially distributed ledgers with up-to-date copies maintained across several computers connected to the internet. The distributed technology relies on cryptography to verify transactions or other information that necessitates tamper-proof storage. Maintaining a ledger may seem simple; however, an entire infrastructure is required to support cryptocurrencies like Cardano.
At the center is the node, which hosts a full copy of the ledger. Anyone can maintain a node, yet stake pool operators do the heavy lifting to ensure transactions are correctly verified or rejected. According to Cardano Docs, the software is also responsible for:
- executing the Ouroboros consensus protocol
- validating blocks
- producing blocks (SPOs)
- exchanging network information via a node-to-node protocol
- logging and monitoring
Nodes also play a role in conveying the state of the blockchain to client software. For instance, nodes provide a means for wallets and blockchain explorers to access raw chain state data or submit transactions.
Later, in the Basho era of Cardano’s roadmap, project development will focus on scalability. Along with the Ouroboros consensus mechanism, nodes will play a key role in increasing the system’s transaction throughput. In short, Ouroboros will allow for the decentralized election of node quorums which can support a broader branching architecture of subordinate nodes.
Smart contract applications, like those seeking funding through Project Catalyst, are the flagship product of the ecosystem. Indeed, professionally managed products have the potential to alter money and finance if they can realize product-market fit.
Still, developers must account for numerous moving parts to a blockchain as they bring their products to market. For instance, programmers must coordinate wallet backends to interface properly with the broader system. They must also direct user actions while ensuring applications and network structures maintain synchronicity with the network.
The Plutus Application Backend (PAB) lightens the load by providing this built-in functionality to smart contract developers. The service intermediates between Plutus applications, the node, the wallet, and users. The PAB also helps applications track state and other on-chain information for use by contracts.
Overall, the PAB consists of node and wallet backend clients. The node client surveys incoming transactions and updates relevant application instances. On the other hand, the wallet backend client manages transaction balancing, coin selection, transaction submission, and address creation.
More simply put, the PAB monitors an application’s environment and notifies it of relevant changes. When the application needs to execute an action, the PAB also provides the necessary tooling to mediate the process.
Plutus Core, Plutus Haskell SDK, and the Plutus Playground
As mentioned, the Alonzo era will soon usher in smart contracts to Cardano. This implies significant changes under the hood. Chief among them is the incorporation of extra functionality into transactions. This overhaul of Cardano’s plumbing requires an improved low-level scripting language.
Enter Plutus Core. Those in the know take fore-granted the mathematical principles underpinning Cardano’s design. Perhaps unsurprisingly, Plutus Core is similarly a product of these principles. The scripting language draws heavily from lambda calculus. As such, it readily supports a statically-typed, functional source language like Haskell.
The Plutus Haskell SDK is the implementation of that source language. Although functional programming has its learning curve, the comprehensive SDK simplifies on-chain and off-chain programming by facilitating code reuse. Contrast this to Ethereum, where on-chain and off-chain code are written in different programming languages, limiting code reuse while increasing the likelihood of bugs.
Finally, the Plutus Playground brings these elements together in a web environment suitable for building applications. The playground’s functionality is limited, but it is intended to help visualize and address ad-hoc scenarios. Interested readers will find it featured heavily throughout the Plutus Pioneer training program and other IOHK documentation.