Three more thoughts for the day
The past, present, and future of Cardano in the spirit of an olde English counting song
31 December 2020 5 mins read
We're putting out some thoughts about the past, present and future in the spirit of an olde English counting song. There's one for each of The Twelve Days of Christmas, from December 25 to January 5, and they are being published in batches. Here are three for the next few days.
Day 8. Gerard Moroney, operations director
In the past year, we’ve changed the way we write software for Cardano. Our development philosophy has gone from trying to plan very accurately huge releases to a much more agile process where we release small increments often. We’ve taken a very incremental, step-by-step approach and that has helped build up confidence in our people, in our company, and in the community at large. I think that has been evidenced in the fact that the hard fork release was within two weeks of when we predicted it would happen. We’re all very pleased with that.
As one year ends, I’m busy planning for that next. Now, though, we are pragmatic about the fact that we can predict well things in the short term, but things that are further away and are not so easy to predict. So we’ve been setting expectations with all of our stakeholders about what we can do and when.
I’m looking forward to these changes really bedding in and leading to more benefits for the team. I think we have a happier team right now, managers can trust the figures we’re giving them, and our community knows what to expect and when. On a personal note, I live in Cork near the superb Ballymaloe House, and it will be great to be able to celebrate a big event there once again.
Day 9. Eric Czuleger, senior content editor
After working with IOHK for a year and a half now, the most exciting thing that I witness daily is theory becoming reality. I remember hearing about the challenges of building on-chain governance in the office of our chief science officer Aggelos Kiayias. Attempting to understand the complexity of decision-making on a distributed network was enough to keep me awake at night. I comforted myself with the knowledge that I was content editor and not a researcher. Yet, low and behold, months later Project Catalyst is making governance a reality.
At the moment, I’m looking forward to seeing what happens as Cardano evolves around the world. I’m from the US but I’ve spent a good portion of my time living and working in developing countries, such as Iraq, Lebanon, Albania, and Somalia. Most of these places have been done no favors by the global economic system. I can’t wait to see the results of our first forays into Ethiopia, the Republic of Georgia, and Mongolia. Working with legacy financial institutions seems to be the highest priority for some blockchain projects. I’m glad that giving Ethiopian farmers a leg-up is our measure of success.
I’m about to head out on a trek up Mount Kilimanjaro in Tanzania. In fact, this is the last blog I will have to write for a couple of weeks. Climbing to Uhuru Peak in December might be ill-advised, but I am looking forward to being unreachable by phone or email for nine days.
Day 10. Polina Vinogradova, software engineer
I haven’t had any chance this year to see how ‘UTXO𝗆𝖺: UTXO with multi-asset support’ goes down at dinner parties, but I did get the exciting chance to present the paper I helped to write at a formal methods conference in October. There’s an online ‘pre-print’ of the full paper available, and the ISoLA 2021 proceedings – most of the conference was postponed by a year – are published by Springer. The research described how a UTXO ledger model like Cardano could be adapted to support several native assets. Not only did I get to present the paper, but it was nice to see the research transformed into a formal specification – and then an implementation in the Cardano system over the past few months.
Right now, I am looking forward to finding out how the native tokens testnet goes, and getting feedback, especially about the ledger design. This design, implemented in Haskell via a formal specification, is based on the paper I presented. It’s going to be very satisfying to see it in action!
After all that, the excitement continues as I return to my work on implementing full Plutus smart contract integration into the ledger for the next hard fork. While most of the ledger team has been focused on Shelley, I’ve been working on the formal specification for Plutus integration. Developers can see on GitHub the open-source code IOHK’s engineers have been producing. Now, I can’t wait until we put all the pieces in place and watch the ledger really interface with the Plutus script interpreter.
The final pair of posts in this Twelve Days of Christmas will be published on January 4.
Three more thoughts for the 12 days
The past, present, and future of Cardano in the spirit of an olde English counting song
29 December 2020 4 mins read
We're putting out some thoughts about the past, present and future in the spirit of an olde English counting song. There's one for each of The Twelve Days of Christmas, from December 25 to January 5. The first four went out together and here are three for the next few days.
Day 5. Romain Pellerin, technology chief
It’s been a really satisfying year after delivering so much. There was the Byron reboot, then Shelley, and we have just released Allegra for token locking and are preparing Mary for native tokens. We have been digesting years of research and science with strong engineering – and creating a community with the stake pool operators for example. It’s been a very intense year. I am extremely proud of the team and the way they were able to digest all this. Delivering such complexity, steadily and on schedule all along this year was definitely a big achievement.
Now, we’re absorbing what we’ve learned and we continue to improve the company in terms of structure, organization, and processes. IO definitely grew up!
In 2021, we will deliver Goguen and Voltaire – smart contracts and decentralized governance – alongside growing our communities of developers and operators. This will empower users to participate in the governance of the system itself. It is definitely a time that will be interesting to go through, so keep your heads high because 2021 will be amazing!
Day 6. Junko Oda, translator
Japan is an important part of the Cardano community and my job is to translate many of the blog posts into Japanese as quickly as possible. I was particularly pleased with how this post about the hard fork combinator read once translated. I am not a technical person at all, but that is a virtue in my job because we want these posts to be understood by as many people as possible. I’m often the one asking the really basic questions! To translate such articles is tough, but it is also fascinating to learn about such cutting-edge technologies – and to be part of the company making them happen.
Right now, I’m about to click on the purchase button of an e-book website. When I’m off work, I prefer reading Japanese books. I’m also fond of Japanese poetry and my husband publishes The Haibun Journal. What I am buying is a novel by Takahiro Ueda called Nimrod, which won the 2019 Acutagawa award sponsored by the Society for the Promotion of Japanese Literature. The Acutagawa prize started in 1935 and is given twice a year. According to the blurb for Nimrod, the story relates somehow to cryptocurrency. A novel using cryptocurrency as a motif won such a prestigious award! Wow!
After Christmas, I’m looking forward to some quiet time reading Nimrod before the year starts to get going. The Basho development phase of Cardano is coming near. It is named after Matsuo Basho, the 17th century Japanese poet who specialized in the haiku and haibun forms, renowned for their intellectual and artistic discipline. If 2021 is anything like the past year for work, it’s going to be a busy one. I hope you will enjoy reading our blog posts – in English or Japanese – while I am enjoying my book! In the meantime, here’s a Basho poem I particularly like:
summer grasses –
all that remains,
of warriors’ dreams
(trans. Sean O’Connor)
Day 7. Darko Mijić, product manager
We had 40 releases for the Daedalus wallet this year – more than in all the previous years combined! Among the many new features and improvements that I’m most proud of are the Byron reboot, which meant a big reduction in connection issues and faster blockchain synchronization. Then, Shelley was a big-bang release with a Daedelus update bringing enhanced cryptography, as well as stake pool delegation and rewards.
Right now, we’re analysing the responses to our recent survey – 5,000 from Daedalus users, and more than 100 from stake pool operators. These will help us put the community at the heart of our development plans.
Going into 2021, we are keen for the technically-minded members of the Cardano community to continue with the Daedalus Flight testing program. Wallet improvements will include decentralized identity using Atala Prism – something that will unlock Western-style financial services for developing countries – and native tokens for use in Goguen smart contracts. Furthermore, paper wallets will combine PGP encryption with the convenience of QR codes.
The next batch of 12 Days thoughts will be published on December 31
Some thoughts for the next 12 days
The past, present, and future in the spirit of an olde English counting song
24 December 2020 6 mins read
‘May you live in interesting times’ is a saying that seems apt for these turbulent days. The talk in the past few years has been of disruptive technologies – then along comes the coronavirus to show the human race what disruption really means. And 2020 feels like a watershed time; what happens afterwards will not be the same as what has gone before. As the year ends, though, we turn to the future and want to look to brighter things and new horizons.
So, in the spirit of ye olde English counting song The Twelve Days of Christmas, we asked 12 of our people to tell us what had excited them in the past year, what they were doing now, and what they were looking forward to in the next year. They’re a hard-working bunch, so expect plenty about Cardano, but they like to take time off too! Strangely, unlike in The Twelve Days, no-one talked about a partridge in a pear tree, five gold rings, or even 10 lords a-leaping. But you will find an octopus, security tips, and a classic piece of poetry.
We hope the idea encourages you to look for the good things happening in your lives.
However, we didn’t want our content and web teams being dragged out of bed every day over Christmas, so we’re publishing the pieces in four chunks to cover the 12 days, from December 25 to January 5. Here are the first four.
Day 1. Duncan Coutts, technical architect
The great thing for me was getting Shelley out the door and demonstrating that we had done what we set out to do. We took a radically different approach to everyone else in blockchain with our high-assurance software engineering. A lot of that was partly on my head if it went wrong – so it was very satisfying to see that it really did work! There has just been one bug in the consensus code since the Shelley hard fork, and we knew about that from testing and had planned for it. This result has vindicated the formal-methods, Haskell testing approach.
We’ve had two smooth hard forks and shown that we can do changes to the ledger rules – and only change the ledger rules. Everything else stays the same. The modular approach we took in rewriting the Byron code means that altering things is not a whole system change, as would have been the case previously.
The support for native assets that we’re bringing in at the moment is a big deal. It gives users most of the capabilities of ERC-20 and some other things besides. Looking ahead, adding Plutus will be the change that people really notice next year with the advent of smart contracts on Cardano.
Day 2. Simon Thompson, senior research fellow
I keep on going back to this video on Wired magazine’s Facebook page. And I’m not alone – three million people have liked the page. Is it really an octopus dreaming?
Right now, I’m planning the work we’ll be doing in the first part of 2021, implementing Marlowe on Cardano, and building the user-facing components to make it all usable.
After that, I’m looking forward to the launch of Marlowe, giving everyone the chance to run financial contracts on a third-generation blockchain. In the meantime, chill out and watch that octopus – it is truly cool!
Day 3. Dynal Patel, senior product manager
Look at this blog piece predicting that Cardano could one day scale to one million transactions a second. That’s an amazing figure in the context of a blockchain – well in excess of global payment systems such as Visa and Mastercard. Credit cards have been around since the 1950s and it’s as long ago as 1997 that nCipher implemented cryptography on Arm chips for Visa and British Telecom to drive the online commerce we’re so familiar with today. Of course, we’re a way off the 1m tps figure yet, but coupling Cardano technology for microtransactions with Atala Prism, our decentralized identity platform, will open up a wave of applications. These will include secure devices for the internet of things, data for smart cities, and social-sharing networks that empower users to own, control and make money from their own data. For example, in Mongolia we are looking at ways of monitoring pollution. Here, service providers who need such data could pay local people to run sensors for collecting data.
Right now I’m reading Blockchain Revolution by Don and Alex Tapscott. They discuss eight core functions ripe for disruption in the financial sector with the first being ‘authenticating identity and value’ – just what Atala Prism aims to do.
I’m looking forward to Atala deployments with our first clients. Prism enables peers to establish an identity that is verifiable, robust and cryptographically secure – and we expect each implementation to have the potential to bring a million users into the Cardano ecosystem. On a personal note, I've recently stepped up to become the chair of Bringing Smiles, a children's charity. In 2021, we aim to expand our activities by raising funds to support selected children's charities across the world.
Day 4. Aikaterini-Panagiota Stouka, researcher
2020 started with the exciting news that ‘Reward sharing schemes for stake pools’, a paper I wrote with IOHK’s education director Lars Brünjes, Professor Aggelos Kiayias at the University of Edinburgh and chief scientist at IOHK, and Professor Elias Koutsoupias at the University of Oxford, had been accepted for the IEEE European Symposium on Security and Privacy. This is one of the top peer-reviewed cyber security conferences and has an emphasis on building real systems, which is what we’re helping to do with Cardano. Because of the coronavirus, however, it became an online-only event. This paper introduces the scheme on which Cardano’s incentives are based and a preprint had been available on arXiv since 2018. It was a great feeling to see our work accepted after years of research, many late nights, and lots of back and forth between theory and experiments trying to discover the most appropriate reward mechanism for decentralization.
Right now, I am waiting for my examination after submitting my PhD thesis at Edinburgh. I’ve continued working with the same team on the reward mechanism. One problem we are investigating is incentivizing the pool operators to include in their blocks the registration certificates issued by other people who want to create a pool, even if these are likely to become competitors.
I am certainly looking forward to completing my PhD. I also plan to continue collaborating with my co-authors and other members of IOHK as well, and to carry on exploring reward-sharing mechanisms for various types of collaborative projects. A relevant blog post written by Prof Kiayias categorizes reward mechanisms and gives an insight into this research. In terms of Cardano, I’m watching the increase in the k parameter, which relates to the number of pools we expect to have, in an ideal scenario, in a stable state called the Nash equilibrium. This increase will give more pools the opportunity to become competitive and will enhance decentralization.
The next batch of 12 Days thoughts will be published on December 29
Online learning with Haskell: the Mongolia Class of 2020
Reminiscing on the delivery of the first Haskell massive online course (MOOC)
21 December 2020 7 mins read
Here we share feedback on this year's Haskell course which we delivered online for the first time.
Saying that the Covid-19 pandemic changed the world's plans is a cliché at this point, and the same thing happened to us here at IOG’s Education department. However, what we did not expect were the new opportunities that the global lockdown opened up for us which enabled us to deliver a fantastic online Haskell bootcamp in 2020.
If you are familiar with IOG, you probably know that the Haskell programming language and its functional approach to software development are integral to the company. It is right there in the name “Input Output”. So, it is no surprise that we have invested heavily in improving the Haskell ecosystem, from contributing to open-source projects, sponsoring developers, and much more. One of our big efforts is that every year we run a Haskell bootcamp, which involves three months of intensive in-person training with Lars Brünjes, director of education, and guest lectures by some of the best developers and computer scientists in the world. So far, there have been four iterations of this class: Ethiopia 2019, Barbados 2018, Athens 2017, and one was planned for Mongolia in 2020.
The actual class takes 10 weeks of Haskell, cryptocurrency, and smart contract training that opens up new opportunities for young students that take the challenge of the course. It is not easy, the topics are hard, the homework is even harder, and the hours are grueling. Calling this a full-time commitment is an understatement, most students in the previous editions have called it the “most difficult class of their lives”.
Despite all these factors, on completion of the 10 weeks, the students come away with experience in the most state-of-the-art topics in software development: strongly typed functional programming, embedded DSL design, property-based testing, smart contract development (with Plutus and Marlowe), as well as a strong sense of pride in having achieved something truly challenging that will influence their professional lives for decades to come.
At the beginning of 2020, the Mongolia Haskell bootcamp was well on its way to taking place in March, and then, as we all know, the planet stopped. In January, the nature of Coronavirus was relatively unknown, but by March its mortality rate and its main mediums of transmission were front-page news, flights were being canceled, and later shut down completely. This made it impossible to deliver the class in person as planned. Thanks to the tenacity, or may I say stubbornness, of Dugerdorj Davaadorj and Lars, that class was going to happen no matter what. So, we had to adapt the class to the new realities imposed by the pandemic. We expected these changes to be difficult, and as any teacher will tell you, it is easier to provide feedback when you can see the students’ reactions, and it is also easier to provide an interactive education when the students can see each other, program in pairs, or even practice “swarm” development.
What we didn’t expect is that the MOOC approach would turn out to be even better in some ways than an in-person training course. For example, in the recent edition, the class was co-taught by Lars and Andres Löh from our friends at Well-typed. Andres is a highly regarded teacher in the Haskell community and has been involved with the language for over 20 years. Basically, if you find an interesting open-source project in Haskell, Andres has probably been involved in it in some way. Then we also had guest lectures by Rob Cohen (Program Manage IOG), Joshua Miller (Project Manager IOG), and Phillip Wadler (one of the original creators of Haskell, with too many achievements to mention; his Wikipedia page is a good starting point to find out more).
Our Haskell training course started in August and as usual, there were some hiccups getting all the students settled with a proper development environment, language barriers, and some cultural differences. Basically, professors were encouraging students to ask more questions, however, in Mongolian culture students tend to work quietly only asking questions or collaborating with each other. Therefore, it was good that all the students were working together in the University lab on-site and we were very glad to have access to that facility. It was great to see that universities were open in Mongolia!
Remember, this was August 2020 with most schools closed in Europe and America, so how come the Mongolian universities were open? It turns out that Mongolia, up to that point, had recorded zero deaths from Covid-19! Let me say that again — ZERO deaths from Covid-19. We couldn’t even believe it in the beginning, but as the weeks progressed and we were able to get to know the students, we understood why. The discipline and disposition for work that our students were showing in class was the same attitude that allowed Mongolian citizens to isolate from the pandemic on January 27th. The Mongolian government took decisive actions right from the beginning, which the citizens followed precisely. We could see that while working, as everyone wore masks and kept their distance. Although the learning process was hard, students worked on many difficult exercises, consulted each other, and collaborated in spontaneous teams to encourage everyone that was participating.
The homework assignments were deployed on the GitHub Classroom platform, which allowed students to collaborate in team projects the way that professional software developers would do: committing and resolving issues in various branches in a common code repository.
As an additional benefit of the online learning environment, we were able to accept a couple of students from Mexico. This was also challenging for them as the classes were held from 11 pm until 5 am in the morning, which required a complete 10-week schedule switch for the students, as well as myself, as a reviewer.
In the end, their determination allowed them to finish the course having acquired really valuable skills and a sense of pride in the achievement itself. We want to thank the Mongolia ministry of Education and Economics for making this possible.
The feedback we received from the students was very positive, here are some comments we received from the participants:
“The course was my very first experience of functional programming. It felt like a whole new world to me and truly broadened my horizons and the way of thinking. I’m so glad that my first steps were guided by professionals. I will never be the same as before I took the class. I am very grateful; I grew both professionally and personally. I recommend it to anyone who wants to level up their programming skills.”
“After attending the Mongolia Haskell Class, I reaffirmed the beauty of functional programming. The beauty of the code makes it look so simple. I want to thank Lars and Andres for allowing me to attend your class. I admire your utmost professionalism and excitement to share your knowledge. You are an inspiration to all of us who want to become better engineers.”
“This course exceeded all my expectations. I learned so much with Lars and Andres. They are expert programmers and even better teachers. They effortlessly explained complex concepts. Now I want to develop every project in Haskell.”
As for ourselves, we are very happy with how this experiment of running a small class in a remote setting turned out, making it our first MOOC delivery. It also opens up exciting new collaborative opportunities for the education team in the future. Of course, we cannot wait to get back on the road, and get to meet these students and prospective students in real life once more, once it is safe to travel again. Hence, in 2021 we plan to run one more iteration of the class in person and one online course that is open to the world, as we continue on our journey to train 10,000 smart contract developers on Cardano. Wishing you all a happy new year as we look forward to 2021!
Devnets: Building bridges to developer communities
Our new interoperability platforms (devnets) will expand Cardano's reach with support for the Solidity/Ethereum communities and beyond
17 December 2020 6 mins read
A blockchain environment is not a static one. Blockchains evolve as their communities grow and learn, and Cardano is no exception.
With every development stage, Cardano's core functionality has been expanded with new features: Shelley added delegation, stake pools, and decentralization to Byron’s core transactional capability. Goguen is now starting to bring fresh utility, from metadata to smart contracts and native tokens. Voltaire introduces a treasury and voting system, and we’ve seen the early steps of this process with Project Catalyst and the first ever public funding round for Cardano community ideas.
We introduced transaction metadata in November, an important first element in creating new utility and commercial use cases. We recently deployed the first pre-production environment for native tokens. Following that will be token creation and ERC-20 conversion. Plutus and Marlowe, Cardano’s native smart contract languages are under active development and will be released in 2021, opening up the platform for developers to create fresh solutions and power exciting new use cases.
All of these Goguen elements play their part in delivering Cardano's ultimate objective: a truly decentralized and self-sustaining platform. All the time encouraging deeper community engagement and growth by creating fresh opportunities.
We have a vibrant and skilled community, arguably one of the strongest and smartest in the crypto space. And in line with our avowedly non-’maximalist’ and open approach, we want to reach out to other communities and bring them onboard too.
As outlined in Charles Hoskinson’s recent video, Cardano's next strategic move will be the addition of a range of devnets to draw fresh developer communities into the wider Cardano ecosystem.
These devnets will act as ‘bridges’ between developer communities, providing development environments, virtual machines and suites of developer tools so new applications can be tested in an environment as close to the 'real world' as possible.
Understanding the devnets
After some initial exploratory work back in 2018, we are now restarting and accelerating the K Ethereum Virtual Machine (KEVM) program. The new KEVM devnet is the first of several devnets we’re building out over the next month or so. The EVM runs within the K Framework, a system for specifying languages and VMs, and then deriving tools such as interpreters, type checkers, equivalence checkers, debuggers, etc. for these languages. (The EVM is what runs smart contracts in the Ethereum network.)
K applies formal reasoning and mathematical rigor for the highest levels of assurance. It enables developers to define or implement the formal semantics of a programming language in an intuitive and modular way. K also generates an executable, 'correct by construction VM' from its formal specification, which is fast and powerful enough to run real programs and smart contracts. This effectively means that software should perform the required functions and nothing else, for all possible inputs, and have verifiable evidence.
Our long term vision – in association with our partners at Runtime Verification – is to build a K environment where we can just 'plug-and-play' new VMs. You can hear more about the goals of K from the team at Runtime Verification in this video segment from the Cardano monthly show.
KEVM will allow developers to write applications in Solidity, EVM code, or Glow, providing toolkits to compile and deploy them on the devnet for (close to real-world) testing. We also plan to soon add Truffle integration, further increasing developer usability.
Solidity is by far the most popular higher programming language compiling to EVM bytecode, but by no means the only one. One fascinating alternative to Solidity is Glow, developed by our partner MuKn.
Glow has been designed with interoperability in mind. There will be Glow compilers targeting many diverse platforms and blockchains, making code reuse so much simpler and more practicable.
This will be the next devnet to be deployed. Most of the core development work is now done, ready for final QA and deployment in January 2021.
IELE - A foundation for third-generation blockchains
Full compatibility with the EVM is convenient and attractive to many experienced developers familiar with Ethereum, but KEVM inevitably also inherits the EVM’s weaknesses.
For this reason we’ll offer a more advanced and secure alternative in the form of our IELE devnet. The IELE (pronounced yeah-leh) virtual machine, also being developed by our partner Runtime Verification, is similar to the EVM, but much more secure. For example, it uses arbitrary precision integers, immediately eliminating many of the EVM's vulnerabilities. IELE is also register-based, not stack-based like the EVM, making it much easier for developers to write IELE bytecode by hand directly.
The term IELE describes two things:
- The IELE VM
- The IELE assembly language
IELE is a human-readable, blockchain low-level language, meant to serve as the foundation for third-generation blockchains. IELE was designed using state-of-the-art formal methods to address security and correctness concerns in Ethereum, while simultaneously enabling the verification of mathematical correctness of smart contract code that K EVM brings to Ethereum.
IELE represents the next step in the evolution of correct-by-construction, automatically generated implementation concepts. It is built to become the foundation of an entire compiler backend, allowing robust gas optimization, including contracts written in a high-level language that has IELE as its compilation target, like Solidity or Plutus.
Bridges between developer communities
The KEVM, Glow and IELE devnets align closely with Goguen’s key goals: to bring use and utility to Cardano, and build solid, lasting partnerships that contribute to the ongoing growth of our developer ecosystem. We aim to attract as many developers from as many disciplines as possible, to foster versatility and inclusivity.
Alongside Plutus and Marlowe, we hope these devnets present an unrivalled opportunity for developers (in the blockchain-crypto world and beyond) to engage with the Cardano platform, build compelling use cases, and contribute to the growth of the ecosystem.
An exciting future
We hope to provide a clear path towards new developer opportunities that will require close collaboration with many different communities, not least Cardano’s own. And it's one step at a time.
We’re putting the building blocks in place now. Once fully established, the devnets will act as bridges between developer communities, opening up new avenues of communication and cooperation across not just blockchain, but the whole developer ecosystem. Cardano will have permanent backward compatibility with the Ethereum network, keeping pace with any developments in the Ethereum chain. And by broadening the developer base, the Cardano community can help drive the continuing evolution of smart contracts and the decentralized finance (DeFi) space. Another remarkable year awaits. See you on the other side.