The essential Cardano list - a new resource for the community
Introducing a new central source for all things Cardano-related
30 April 2021 4 mins read
Today sees the publication of the Essential Cardano list – a new GitHub repository which will help you to find out everything you need to know about Cardano. Whether you want to understand what Cardano is and who our partners are, learn about our mission and roadmap, or get stuck in and build on Cardano, this is the place to start.
Inspired by GitHub's well known Awesome lists, the Essential Cardano list provides an outline of our thriving ecosystem, as well as a comprehensive list of resources to help you learn more and get started. As it grows and expands, this new list aims to become the canonical source of material for Cardano, including both official resources and community-generated materials. We are now looking for our community members to help us extend it even more by contributing their suggestions.
A central location of essential resources
We want to have a central location for all things Cardano, to bring everything together and make it easy for people to find what they need. We have provided links to all official sites, channels, and resources, as well as to a collection of material such as explainers, guides, developer resources, glossaries, primers, tutorials, and much more.
On top of that, we have identified assets developed by the community which we think provide great value and complement our own content that we produce. Our aim is that our community will now help us to grow it out and make it even better.
Navigate the Cardano ecosystem
Essential Cardano provides an outline of all the core entities, partner groups, and facets that are part of our growing ecosystem to help orientate you to understand all the existing and new relationships that are being developed.
Initially, our focus has been on curating links and references to what’s going on within our growing ecosystem. As we update the list, or additions are made by community members, the list will also grow. We also plan to add additional visual elements including infographics and ecosystem maps over time. We have included an existing ecosystem map which is currently being refreshed by our team to reflect new relationships and partnerships we have formed recently. We plan to release a May version of this map very soon, so if you would like to help us get this up to date as soon as possible, go ahead and raise a pull request with your suggestion!
We have also included all the Project Catalyst startups that currently exist so you can understand some of what is being planned for future development.
How do I contribute?
We are looking for you to help us to grow out and evolve this essential Cardano list. This list is fully open source so if you know of new content that is being produced by members of the community, new relationships that are not included, or new innovations, please let us know so that we can add them all to this list and promote them. The easiest way to do this is to raise a pull request on the repository. We’ll evaluate these regularly and provide feedback within each pull request.
Growing this list
2021 is already a very active year for growth and engagement on Cardano. Following on from yesterday's exciting announcements about our vision for Africa, and with upcoming smart contracts and other new products on the way, we expect lots of new and exciting additions. We have already included some contributions from our active Plutus Pioneers course, which are very welcome, and we anticipate many more users, developers, and enterprises jumping on board in the coming months. We are happy to see the new Cardano Q & A Stack Exchange being developed and would encourage our community members to submit their questions to help build this out. Stay tuned for announcements and updates here on our blog, social channels, and within the Essential Cardano repository itself.
Identity is the key to our vision for Africa
Decentralization and using blockchain to address real-world issues will help deliver a new future for the continent
28 April 2021 7 mins read
Yesterday, in the #CardanoAfrica show, we laid out our bold vision for the continent – and how we’re delivering on it. Here’s how we introduced this very special event
I started Input Output in February of 2015 with a dream – to deliver economic identity to the billions of people around the world who do not have any control over their own lives.
The reality is that people live in two different configurations; one for developed countries and one for the developing. For most people like me in the developed world, there are many things we take for granted. The fact is that it's easy for us to have an identity, passports, driving licenses. It's easy for us to travel. It's easy for us to prove our credit worthiness and get credentials. It's easy for us to borrow money, get insurance, and to process payments. For example, if someone does a service for you, you can send them something in seconds using a banking app or a mobile payment service such as Venmo. You can send them a PayPal transaction. We take this for granted and, for the most part, it's part of our daily lives.
But when you live in the developing world, things are very different. It's very difficult to globalize. It's difficult to prove claims, whether you're producing something with fair trade or in a sustainable way. It's difficult for people to receive money and send money. Remittance transactions carry a fee amounting to between 8% and 15% of the value of the transfer. When a person wants to borrow money, if it's even possible, micro-finance transactions can have interest rates as high as 85%, according to the World Bank.
The reason for these high fees is not avarice, or racism, or some evil in the global order. Rather, it's because of systems. Some countries enjoy financial infrastructure that is superior to other systems. The problem is that the legacy systems we have are fundamentally incompatible with total globalization, without admitting total centralization behind one standard, such as the American way or the Chinese way.
The world can move beyond that. This is the 21st century, a century with the iPhone, a century with the internet and the World Wide Web, a century where information can move almost instantaneously. As a consequence, we have the potential to create a better way of governing. We no longer need central entities. We no longer need central governments. Just like the internet, the things that process our payments, establish our contractual relationships, hoist up our identity, prove our property ownership, and permit the gears of commerce to work, can be done through the very same decentralized technology that has enabled innovations such as Bitcoin, Ethereum, and Cardano.
We started Input Output based on first principles. We started with science. We built research labs around the world, hiring dozens of PhDs and we have since written more than a hundred papers, many of which have been tested through the wonderful crucible of academic peer review. Citation after citation later, conference after conference later, journal after journal later, we've built a corpus of scientific knowledge that has allowed us to understand how to build systems that can scale not just to millions, but to billions of users. These systems can preserve a fundamental truth, that we are all equal and we all deserve access to the same marketplaces.
Whether you're a tech billionaire or a shepherd from Senegal, you should receive equal treatment and consideration. You should be given equal access to markets and merit should be the differentiator, not geography or genetics.
We have built great protocols like Cardano. It's not just about promises any more, this technology is now about delivery.
For four years, our people have lived in Ethiopia and have traveled across Africa to Rwanda, Uganda, Tanzania, Nigeria, Kenya, and South Africa. No matter where the winds would take them, the promises and commitments and dreams were the same. We wanted to spread our vision of changing the way the world works by pushing power to the edges and allowing people to be their own bank, allowing people to have their own identity.
The first fruit of our labors is the deal with Ethiopia’s Ministry of Education. This will involve five million students using Atala Prism technology integrated with the Cardano blockchain. Every one of these students will have a digital identity – a DID. That DID carries with it information – metadata – that will travel with them throughout their academic life, and follow them into the economic world. When these millions of students graduate, as they go into the economy, eventually this infrastructure can be used for buying property, for payments, for voting and all other matters of their economic life.
What's beautiful about this deal is, is that it's extensible. Our priorities and goals are aligned with the vision, priorities and goals of the Ethiopian government. Last year, the government set out its National Digital Transformation Strategy – Ethiopia 2025. This is a bold vision to digitize the country, including a national identity system. It is our belief that the work we have done here with Prism and Cardano for these five million students will inevitably grow to be an inspiration, and perhaps the system, for 107 million Ethiopians, allowing them for the first time to globalize on equal terms with the United States, the European Union, China and other powerful economies.
In addition, this system has the potential to go far beyond identity. We believe it can help people find jobs, because it can verify their credentials, helping them prove their skills. The system can be used for a litany of activities, establishing people as credible actors who have earned the right to have a job.
That's just Ethiopia. We also have partners in Tanzania, World Mobile, and partners across the continent. Every one of them has hopes and dreams about how to apply this technology. The magic of Cardano is that, like Bitcoin, it's permissionless. It does not require someone to register or license something. It does not require someone to ask to use it. Rather, it's an open platform.
And while these projects have been spearheaded by Input Output Global and our partners, they serve as an inspiration for countless entrepreneurs in Africa. They can realize their dreams, their businesses. Whether it’s a decentralized Uber, or securitizing a small company, or a new way of representing resources in trade and commerce, the result would be a piece of infrastructure accessible to all, open for everyone on the continent, to help others achieve their dreams.
Our industry has created a lot of really cool innovations. NFTs, DeFi, security token offerings, and ICOs, and most of these things have been based upon promises of a new world. I believe that over the next five years, as this technology rolls out across all of Africa and many other parts of the world, such as Southeast Asia, Central Asia, and Eastern Europe, that these promises can be transformed into new business models.
Thousands of innovations are possible with blockchain infrastructure. Whether you use it to vote, to find the capital that you need as an entrepreneur to thrive, to take care of those you love, or for estate planning so that your desires and your beliefs can transcend even your own death. All of these things are possible with the technology we've constructed, built with formal methods and advanced programming languages like Haskell, and validated by peer review.
Getting here has been hard, and it’s only been possible with the help of thousands of people. So let’s celebrate them too as we mark this first step in fulfilling the dream of giving people in Africa control over their own lives.
For more on our work on the continent, visit our new Cardano Africa website
Blockchain finally comes of age with the world’s biggest blockchain deployment
Technology rollout to 5 million Ethiopian students and their teachers brings a new unique solution to improve educational outcomes and futures
27 April 2021 3 mins read
Today we have announced an exciting new partnership with the Ethiopian Government to implement a national, blockchain-based student and teacher ID and attainment recording system to digitally verify grades, remotely monitor school performance, and boost education and employment nationwide.
We’ll deliver this using our identity solution – Atala PRISM, built on Cardano, which will enable authorities to create tamper-proof records of educational performance across 3,500 schools, 5 million students, and 750,000 teachers to pinpoint the locations and causes of educational under-achievement and allocate educational resources effectively.
This will provide all students with blockchain-verified digital qualifications to reduce fraudulent university and job applications, and increase social mobility by allowing employers to verify all applicants’ grades without third-party agencies.
Tamper-proof data management
The blockchain-based national identity system is at the heart of Digital Ethiopia 2025 – the country’s Digital Transformation strategy. The government recently issued a national identity standard and the Atala PRISM blockchain ID will be the first system to issue IDs based on this standard. The strategy seeks to drive the country’s transformation through the digitalization of sectors such as agriculture, manufacturing, and tourism. As part of this, Ethiopia is also examining the wider adoption of our Atala products, which include the PRISM platform, for everything from blockchain-based ‘track-and-trace’ of smallholder agricultural supply chains to digital IDs for transport or healthcare. We are already in discussions around the use of blockchain-based digital identity for two other multi-million user applications.
The use of Cardano will allow for accurate tracking of individual grades, behavior, attendance, and educational attainment across all kindergartens, elementary schools, and general secondary schools. Teachers will also use the system to manage schedules or transfers, and report behavior or dropouts. The project could ultimately be extended to universities where degrees are also digitally verified on the Cardano blockchain, allowing employers to easily validate the authenticity of applicants' educational credentials.
The Ethiopian government is providing five million teachers and students with tablets and a dedicated internet network, giving all students instant access to their academic records. This will open up higher education and employment opportunities for the 80% of Ethiopia’s population living in rural regions. Student IDs will be paired with data from Learning Management Systems and harnessed by machine learning algorithms to drive personalized tuition, a dynamic curriculum, and data-driven policies and funding.
We have long recognized that developing countries could uniquely benefit from blockchain technology because of their lack of embedded, legacy digital systems and the fact that blockchains are lower cost than cumbersome infrastructure. Hence, we are already working with other governments on using blockchain to digitize public services, including a project with Georgia’s Ministry of Education pioneering the use of its Atala products to underpin a blockchain-based system for verifying graduate degrees. In 2019, we also ran a pioneering all-female software development training program focusing on blockchain solutions.
Our partnership announcement with the Ethiopian government is a groundbreaking first step in our mission to help drive decentralized digital transformation in Africa. Make sure to join us for our #CardanoAfrica show on the 29th of April to find out more about our wider work on the continent, including several other new partner announcements.
Plutus: what you need to know
Developers are now preparing for the arrival of Cardano smart contracts, enabled by Plutus and the Alonzo protocol upgrade
13 April 2021 9 mins read
In our previous blog post, we discussed Alonzo ‒ our name given to the protocol upgrade that will introduce smart contract support on Cardano. Alonzo will establish the infrastructure and add tools for functional smart contract development using Plutus.
The Plutus platform provides a native smart contract language for the Cardano blockchain. To understand and become proficient in Plutus, one has to understand three concepts:
- The Extended UTXO model (EUTXO)
- Plutus Core ‒ the ‘on-chain’ part of Plutus
- The Plutus Application Framework (PAF) ‒ the ‘off-chain’ part of Plutus that enables interaction with smart contracts.
Plutus contracts consist of parts that run on the blockchain (on-chain code) and parts that run on a user’s machine (off-chain or client code). Both the on-chain and off-chain code are written in Haskell, and Plutus smart contracts are effectively Haskell programs. Off-chain code can be written using PAF and this code is then compiled by the GHC (Glasgow Haskell Compiler), whereas on-chain code (written using the Plutus Core) is compiled by the Plutus compiler.
It is crucial to understand the relationship between these Plutus concepts and native tokens functionality to see how their interaction turns the latter into a more useful and powerful feature.
The Extended UTXO model
Cardano (like Bitcoin) uses the unspent (U) transaction (TX) output (O) accounting model. In the UTXO model, a transaction has inputs and outputs, where the inputs are unspent outputs from previous transactions. As soon as an output is used as input in a transaction, it becomes spent and can never be used again. The output is specified by an address (a public key or public key hash) and a value (consisting of an ada amount and optional, additional native token amounts). An output’s address determines which transactions are allowed to ‘unlock’ the output and use it as an input. A transaction must be signed by the owner of the private key corresponding to the address. Think of an address as a ‘lock’ that can only be ‘unlocked’ by the right ‘key’ ‒ the correct signature.
The EUTXO model extends this model in two directions:
- It generalizes the concept of ‘address’ by using the lock-and-key analogy. Instead of restricting locks to public keys and keys to signatures, addresses in the EUTXO model can contain arbitrary logic in the form of scripts. For example, when a node validates a transaction, the node determines whether or not the transaction is allowed to use a certain output as an input. The transaction will look up the script provided by the output's address and will execute the script if the transaction can use the output as an input.
- The second difference between UTXO and EUTXO is that outputs can carry (almost) arbitrary data in addition to an address and value. This makes scripts much more powerful by allowing them to carry state.
When validating an address, the script will access the data being carried by the output, the transaction being validated, and some additional pieces of data called redeemers, which the transaction provides for every input. By looking up all this information, the script has enough context to give a ‘yes’ or ‘no’ answer in what can be highly complex situations and use cases.
To summarize, EUTXO extends the UTXO model by allowing output addresses to contain complex logic to decide which transactions can unlock them, and by adding custom data to all outputs.
The EUTXO model offers unique advantages over other accounting models. The success or failure of transaction validation depends only on the transaction itself and its inputs, and not on anything else on the blockchain. As a consequence, the validity of a transaction can be checked off-chain, before the transaction is sent to the blockchain. A transaction can still fail if some other transaction concurrently consumes an input that the transaction is expecting, but if all inputs are still present, the transaction is guaranteed to succeed.
This contrasts with an account-based model (as used by Ethereum), where a transaction can fail in mid-script execution. This can never happen in EUTXO. Also, transaction execution costs can be determined off-chain before transmission – another feature impossible on Ethereum.
Finally, because of the ‘local’ nature of transaction validation, a high degree of parallelism is possible: a node could, in principle, validate transactions in parallel, if those transactions do not try to consume the same input. This is great both for efficiency and for reasoning, simplifying the analysis of possible outcomes, and proving that ‘nothing bad’ can happen. You can dive deeper into the EUTXO model in the previous blog post.
To implement the EUTXO model, it is necessary to clearly define the terms script and data. Scripts require a definite, well-specified scripting language, and it is also important to define the type of data that is attached to outputs and used as redeemers.
This is where Plutus Core comes in. Plutus Core is the scripting language used by Cardano. It is a simple functional language similar to Haskell, and a large subset of Haskell can be used to write Plutus Core scripts. As a contract author you don’t write any Plutus Core. All Plutus Core programs are generated by a Haskell compiler plugin.
These scripts will be executed by nodes during transaction validation ‘live’ on the chain. They will either lock UTXOs in the form of validator scripts or as minting policies, which control the minting and burning of native tokens (see below).
Redeemer data is a simple (algebraic) data type that can be defined easily in Haskell, which is another reason why Haskell is a good option for writing Plutus Core scripts. In practice, a smart contract developer will write validator scripts in Haskell, which will then be automatically compiled into Plutus Core.
Appropriate Haskell libraries simplify writing such validation logic by providing core data types for the inspection of transactions during validation, and by offering many helper functions and higher level abstractions, allowing contract authors to concentrate on the business logic and not have to worry about too many low-level details.
The Plutus Application Framework (PAF)
The on-chain state of validator scripts can only be modified by transactions that spend and produce script output. When writing a Plutus application, we need to consider not only the on-chain part of the application (the Plutus Core scripts) but also the off-chain part that builds and submits transactions.
The off-chain code is written in Haskell, just like the on-chain code. That way we only need to write the business logic once. Then we can use it in the validator script and in the code that builds the transactions that run the validator script.
Many applications need to watch the UTXO set for changes to particular addresses, so if we write our contract as a state machine, we need to track the unspent output that represents the current state of the machine and update our local state when the on-chain state changes. Likewise, many apps need to communicate with the wallet backend to access the crypto currency that they are using for transactions.
The PAF provides easy access to services that are commonly used by Plutus applications. Applications deployed using the framework’s libraries can be run on the Plutus application backend, which provides runtime support for access to the blockchain and other concerns such as persistence, logging, and monitoring. Applications written on top of the PAF automatically provide an HTTP and WebSocket interface that can be used to interact with the application from the web browser.
Native tokens became available on Cardano with February’s Mary hard fork. Any user can create their own tokens, and tokens can be sent and received freely, just like ada. Each native token comes with its own minting policy, which determines the conditions under which tokens can be minted and burnt.
At the moment, these minting policies consist of combinations of simple rules specifying signatures and timelocks. For example, a policy can state that only transactions that are signed by two out of five possible signatures are allowed to mint or burn tokens. Another policy can allow minting only before or after a specific time slot.
Powerful as these basic building blocks are, they do not cover every conceivable use. It is, for example, possible, but awkward, to model non-fungible tokens (NFTs) using such simple policies. This could be done using a timelock to mint an NFT, by limiting the minting operation to a specific time point. If only one token is minted before that time point is reached, the token is technically non-fungible (because there is only one). But to check this, it is not enough to simply check the minting policy. We’d need to look at the minting history of the token to ensure it had, indeed, only been minted once.
With the deployment of Plutus, users will be able to write minting policies using Plutus core. During minting or burning, the Plutus Core policy script will be executed in the context of the minting or burning transaction, and the script will have to approve or forbid the action. This will further accelerate the growth of NFTs on Cardano by enabling the creation of much more complex minting policies, and allowing the creation of NFTs in a trustless manner.
Alonzo is being gradually deployed to the mainnet via several testnets, so our partners and Plutus pioneers will be able to test Plutus Core by writing applications on Cardano throughout May and June prior to a code freeze. This will also be the period of quality assurance and user acceptance testing by exchanges to ensure that the platform is fully ready at the time of the Alonzo mainnet upgrade. If you are a developer and want to learn more about Plutus, consider joining a future pioneer cohort. Alternatively, take a look at Plutus GitHub repositories, and engage in the discussions about Plutus at Cardano Forum.
I’d like to acknowledge Jann Müller for additional input and contribution to this blog post.
Smart contracts – here we come
Alonzo will build on Cardano’s token upgrades to give developers the tools for crafting business applications
8 April 2021 6 mins read
At the start of March, we implemented Mary ‒ a multi-asset protocol upgrade that allows users to create unique tokens for transactions on Cardano. With the introduction of transaction metadata, then token-locking with Allegra in December, and native token creation, we are laying the foundation to establish Cardano as the leading smart contract platform.
Alonzo, our next protocol upgrade, will build on these capabilities. Implemented using our hard fork combinator technology, Alonzo will add support for smart contracts – digital agreements – to Cardano about four months from now. It will open up opportunities for businesses and developers, by allowing the creation of smart contracts and decentralized applications (DApps) for decentralized finance (DeFi).
When it came to naming these upgrades, we chose Allegra (Lord Byron's daughter) for token-locking, and Mary (the novelist and wife of Shelley) for multi-asset support. Alonzo comes from a more contemporary figure, Alonzo Church (1903-95). Church was a US mathematician and logician who worked on logic and the foundations of theoretical computer science. He is also known for inventing lambda calculus ‒ a formal system used to prove the unsolvability of the Entscheidungsproblem. Later, while working with fellow mathematician Alan Turing, they discovered that the lambda calculus and the Turing machine were equal in capabilities, demonstrating various mechanical processes for computations. One of the reasons for naming our smart contract upgrade after Church is that Plutus Core (the Cardano smart contract language) is a variation of lambda calculus.
Why smart contracts?
Smart contracts mark the next phase in Cardano's evolution as a worldwide distributed ledger. When supporting everyday business, a blockchain must guarantee that individuals can move their funds and pay for products in a secure way.
Smart contracts can be used to settle complex deals, hold funds in escrow, and secure movement of funds under predefined conditions. Cardano will allow DApps to interact with the ledger to record their activities and execute smart contracts. These digital agreements express the story of a transaction, specify where funds should go, and under what conditions they will be sent, executing a deal only when all the conditions are met. Alonzo will lay the foundation for Cardano to support such applications.
Addressing business needs with Alonzo
While multi-asset support allows users to create unique currencies that fuel business needs, Alonzo introduces a versatile platform for building smart contracts. It will be possible to work with collectibles, crowdfunding, or auctions, for example.
Areas of exploration might include the deployment of escrow-based decentralized cryptocurrency exchanges (DEX), or the creation of complex applications supporting centralized stablecoins (track-and-trace applications for product provenance within a supply chain, for example). With token-locking, users will be able to issue utility tokens with vesting periods, meaning that a number of tokens can be locked or frozen to be released after a specific time.
The scripting power of Plutus Core
With Alonzo, we are adding the necessary tools and the infrastructure to allow application development using the Plutus Platform.
Applying a rigorous approach based on formal methods and verification, Alonzo extends the basic multi-signature scripting language (multisig) used in Cardano Shelley. Multisig will be upgraded to the Plutus Core language for more powerful and secure scripting options. The Alonzo ledger implements the extended unspent transaction output (EUTXO) accounting model, using Plutus Core to provide powerful scripting.
A smart contract platform must be both secure and reliable. That’s why we chose Haskell as the basis for writing Plutus Core smart contracts. Haskell is a high-level language that developers will use to write code and then compile it to Plutus Core.
Haskell has been around since 1987, standing out from other programming languages for its high level of trust. Writing in Haskell ensures that smart contracts are programmed to do exactly what they are expected to and can be tested for accuracy before implementation. This means that smart contracts built on Cardano will be straightforward and resistant to vulnerabilities, which is crucial for applications that handle automated trading or move large funds around.
Tools and APIs
Developers will have functional tools to experiment with and customize transaction validation on Cardano. The API library will be extended to enable the deployment and operation of the Plutus Core code on Cardano while interacting with wallets and the ledger.
Deploying Alonzo is a complex process. Once functional smart contracts are running on the mainnet, we will continue improving the off-chain infrastructure to deliver software development kits.
Where are we right now?
Figure 1. Alonzo roadmap. The code will be frozen for four weeks before release
Throughout March and April, the IO Global team has been gradually combining the Alonzo rules with the Cardano node and ledger code. When Alonzo integration with the node is complete, Cardano will provide working API tools and command line interface (CLI) support.
From mid-April into early May, the team will continue working on Plutus development to launch a private testnet. During this phase, our partners (advanced developers) will be testing out the platform, creating and deploying non-fungible tokens (NFTs), marketplaces, or DApps running smart contracts on Cardano. This process will focus on step-by-step improvements to ensure that everything works efficiently.
In May, we’ll start working with our Plutus pioneers. These certified program trainees will continue testing the platform by writing Plutus applications and putting them into production for DApps and DeFi. During this phase, the team will be performing the ledger, node, and wallet backend integration. We will also be preparing and releasing documentation, including specification examples and developer guides.
May and June will be a time for quality assurance and testing with users, which will be followed by a feature freeze lasting for four weeks. This will provide crypto exchanges and wallets with the time to upgrade and prepare for the Alonzo protocol update. We expect the Alonzo upgrade (hard fork) to happen in late summer, and we will announce a firm date in April’s Cardano360 show.
For a more detailed roadmap, check out the March Cardano360 presentation by Charles Hoskinson.
These are exciting times and we encourage you to stay tuned. The next blog post will delve into the relationship between the Plutus concepts that underpin Alonzo development. Meanwhile, the developers’ website has more about programming with Plutus, Marlowe, and Glow.