This past week was an exciting time for the Cardano project! Plutus and Marlowe, functional programming languages for smart contracts on the Cardano blockchain, were released and presented at the inaugural PlutusFest event at the University of Edinburgh in Scotland.
IOHK researchers and employees came in from around the world to show developers and the Cardano community how these languages are used and what it means for smart contract technology.
To kickstart the event, we were welcomed to PlutusFest by Professor Philip Wadler, IOHK senior research fellow. He started us off by explaining why he is excited by IOHK and proud to be working for the organization. Here, he touched on the importance of peer-reviewed research, which is a process followed by IOHK in developing their products and protocols. Philip goes on to introduce Plutus, which came about from an idea of Manuel Chakravarty (who also spoke at PlutusFest), who noticed a problem of having two separate languages for the on-chain and off-chain aspects of a smart contract. As a solution, the Plutus Platform was created, which uses Haskell, a functional programming language, both on-chain and off-chain. Professor Wadler also gave the crowd an interesting brief history of programming languages.
Watch Philip’s welcome address here.
Next up was Professor Aggelos Kiayias, chief scientist of IOHK and director of the Blockchain Technology Laboratory at the University of Edinburgh. He introduced Blockchain Technology Lab, which was created in 2015 and is funded by IOHK to conduct research in blockchain technology. This research not only pertains to programming but also includes fields such as law and system design. The mission of the lab is to explore the fundamental open questions regarding the deployment of distributed ledger technology and to engage with industry partners to implement high value applications. All of the results of the lab will be publicly available so that the wider area can benefit and grow to its potential. The lab has hubs within the University of Edinburgh, University of Athens and Tokyo Tech, and associations with many others.
At IOHK, there are over 30 researchers and within the period of 2017-2018, there have been 21 papers published or co-authored by these researchers. There has also been 5 additional papers published by IOHK funded researchers and 20 papers submitted and currently under peer-review. Research themes that are ongoing include:
- Consensus (Ouroboros)
- Scalability (Ouroboros Hydra)
- Interoperability (Ouroboros philos)
- Privacy (Ouroboros Crypsinous)
- Smart Contracts (Plutus, Marlowe, IELE)
Watch Aggelos’ presentation here.
For the keynote address of PlutusFest, Charles Hoskinson, IOHK chief executive and co-founder, took the stage. He spoke on the theme of ‘money and markets’ and began his talk with a story about the island of Yap. This small Polynesian island is known for their use of large stone rings as currency. These stones weigh thousands of pounds and they use social traditions to decide who owns these rings. In one instance, a large ring or ‘rai’ as they’re called was being transported by canoe and due to a storm, sunk to the bottom of the sea. But interestingly, everyone agreed that it must still be there, therefore, it continued to be tradeable. Charles compared this to our concept of money in that we don’t require physical representation. All you need is social consensus that it actually exists and that everyone is willing to accept its value to be able to trade it for goods and services.
Next, Charles talked about the sinkhole effect. In nature, sinkholes are created by the erosion that happens over time underneath the ground and the collapse is caused by a bottom up effect rather than top down. This can be also observed in social structures. Charles talked about the 20th century and how it was a time we could really see the global world where countries were coming together. The 18th and 19th monarchies had suffered the same fate as sinkholes and had collapsed. He talked about May of 1910, at the death and funeral of King Edward the 7th, where 9 of the leading monarchs had gathered. And just ten years later, at the closing of World War 1, almost all had been overpowered. This was not just an effect of the war but of the sinkhole effect that resonated through societies. This effect continues to grow with the spread and decentralization of information with the Internet, globalism and increased travel, which brings ideas and perspectives from around the world.
Charles concluded his keynote speech by talking about IOHK’s rigorous process on how to build a complex, adaptive system for society. When looking at aspects such as assets, it is important to look at how it is represented, the story behind it such as who owns it, how you move it between people. When the Plutus project was started over 2 years ago, the research team realized many things; but importantly, saw the need to incorporate all of the components: Server, Client and Blockchain. Existing protocols do not look at the entire picture and only look at certain components. Therefore, the aim of Plutus is to bring this all together and allow us to properly understand if the system is decentralized. The research team also learned that you must have special purpose languages for special purpose domains (such as Marlowe).
"Ontologically, Plutus is all about “how do I write software for this new paradigm where I have a decentralized structure…who am I trusting? How much does it cost to run? How do I know if it is correct or not?”
Finally, Charles also touched on the importance of having a way to deal with bugs behind these systems, especially in a world of big data where it is becoming increasingly more difficult. He shared a story with the PlutusFest crowd about the 1983 Soviet nuclear false alarm incident. By ignoring the Soviet’s early warning satellites claiming it was caused by a software bug and preventing the release of an immediate and compulsory nuclear counter-attack against the United States, Stanislav Petrov, an officer of the Soviet Air Defence Forces, inevitably saved all of our lives. It is a rather interesting story which you can learn more about on the wiki page here!
Watch Charles’s keynote speech here.
After Charles, Simon Thompson spoke to the crowd about Marlowe. This is the domain-specific, specialized programming language for financial contracts. Simon starts by taking us back to the 1950’s and taught us about the first computers and programming languages. He talked about the advances and developments that were spurred from this first machine to what we have today.
At IOHK, they knew it would be pertinent to look at users or groups of users and try to express specific things in their domain’s language, rather than the language of the blockchain. This is the idea around domain-specific languages (DSL) and this approach focuses on the users and their needs. Simon also described some of the benefits of a DSL - As it is a language, you can embed it into a general purpose language and you can also execute helpful behaviors. In the context of financial contracts, you would be able to execute the valuation of a contract, as well as simplifying or comparing them. In his presentation, he gave an example of an escrow contract and how it is reflected on the blockchain.
Professor Thompson relates all of this back to the Cardano protocol and how Marlowe fits in within the project. He also goes onto discuss what it means to take these smart contracts out of the ‘legal’ world and out of fiat currency onto the blockchain. He also talked about crypto-economics and the concepts of commitment, enforcement and double-spending, and how financial smart contracts will need to ensure or prevent these.
In the second half of his presentation, Simon also walked through Meadow, a browser emulator that can be used to test Marlowe contracts. He showed us how to use the visual interface to execute a contract step by step and to observe how it will behave. Be sure to watch his presentation when the videos are made available and check out the Marlowe testnet website!
Manuel Chakravarty was the next speaker at PlutusFest. He is a language architect at IOHK and the one who sparked the idea behind Plutus, so it was a great pleasure for the crowd to hear from him about the project. He presented on what Plutus is and what makes it special. In detail, he described the three pillars behind Plutus, which is: a focus on safety and security, the work in creating a superior ledger, and the integration of a full stack environment for the on-chain and off-chain components of smart contracts. To get a better idea of what a Plutus contract can do, he gave an example of a simple crowdfunding contract – this can also be viewed on the Plutus Playground.
Michael Peyton-Jones and Jann Müller, IOHK functional compiler engineers, came up next to present on the Plutus Playground, an environment for writing and testing contracts. They both walked us through the interactions that need to be noted and remembered when creating these contracts and showed actual examples through their presentation. If you are a developer interested in creating Plutus contracts, don’t miss this presentation video!
To talk about R&D, Director of Engineering, Duncan Coutts shared with us all of the ongoing research streams at IOHK, outside of Plutus and Marlowe. He touched on all the opportunities for failure that can occur in software development and the assurance strategies that can be implemented to prevent these failures. At IOHK, an evidence-based approach is used where formal methods, mathematical proofs, prototyping and rigorous testing is involved. Duncan also talked about the chain of evidence that is involved throughout the process of specification to implementation. He concluded with great advice:
Before you entrust billions of $ or patient safety to blockchain systems, say… “Show me the Evidence!”
To close off our inaugural PlutusFest, Team Plutus Manager Rebecca Valentine delivered the closing remarks. She spoke on the significance of the work of Plutus and Marlowe and the dramatic change that it will bring about for writing software, not just in blockchain technology. Rebecca also talked on how the ongoing work, techniques and research will give us better ways to write software, better languages and machine verification, and will benefit all smart contracts writers.
Special thanks to all the speakers and organizers of this successful event. And thank you to everyone who came out to PlutusFest, both in person and online!
Note: We will be publishing videos of the presentations from PlutusFest on IOHK’s YouTube channel. Subscribe to the channel here.
Links to the presentations’ videos and slides can be found here: https://plutusfest.io/miss-the-event/ (More to be added as they become available).
About Plutus: https://testnet.iohkdev.io/plutus/
About Marlowe: https://testnet.iohkdev.io/marlowe/
PlutusFest website: http://plutusfest.io
Plutus Playground: https://prod.playground.plutus.iohkdev.io
Meadow (for Marlowe): https://input-output-hk.github.io/marlowe/
IOHK Blog on Plutus: https://iohk.io/blog/smart-contracts-language-for-cardano-launches-at-plutusfest/
IOHK Blog on Marlowe: https://iohk.io/blog/marlowe-financial-contracts-on-blockchain/