These are our final two thoughts about the past, present and future of Cardano 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, published in four batches. You can look back to the first batch, which went out on Christmas Eve.
Day 11. Charles Morgan, head of cybersecurity
My brief takes in a wide range of activities, from the obvious aspects of securing our websites, to advising staff on their physical safety on their travels (such as putting a wedge under a hotel bedroom door!), and enforcing two-factor authentication for almost 250 people around the world (Yubikeys are brilliant for this). And we’re having to deal with an awful lot more than Santa coming down the chimney, as you can see from these security statistics over the past year. Can you believe that one in five of the billions of files online are completely open for global access? Scary stuff if that’s your health records or financial information.
I have three interesting items I am working on the moment. The first is theft detection, tracing and anti-money-laundering strategies for Cardano using machine cognition. Then, there’s the automation of security audits and anomaly detection. And, on a more personal level, I’m working towards my Ethical Hacker v11 certification.
As for 2021, I am looking forward to having more team members in cybersecurity. This is going to allow us to be far more proactive in our security posture, in running dynamic and static audits of our products, and it will allow us to pursue ISO/IEC 27001 certification and compliance. This work is critical to Input Output becoming recognised globally as a technologically-stable company, which, thereby, will bolster confidence in Cardano and our products based on the blockchain platform.
Day 12. Rob Moore, digital deliveries manager
The Shelley launch and the start of decentralization for Cardano was a monumental event for the project. The whole of the web team was on call in case anything unforeseen happened, but, of course, all we ended up doing was watching the transition take place. However, even playing that bit part in helping to make Shelley happen is something I won't forget in a hurry.
Setting ourselves up to deliver quality creative work has been absorbing much of my time recently. December’s Mantis launch of a new client for developers working with Ethereum Classic is a taste of things to come.
Live music, seeing friends and family, having plans, meeting work colleagues in real life, going abroad. All the things we used to take for granted. These are the things I’ve been missing and hope to get back to in 2021.
That completes our Twelve Days of Christmas. We hope some of them – whether on Daedalus, Japanese poetry, decentralized identity or the thoughts of a dreaming octopus – have struck a chord with you. The rendition of The Twelve Days of Christmas by the choir of Clare College Cambridge has certainly raised plenty of laughs. Here's to an exciting 2021!
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.
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
‘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
Since the launch of the Incentivized Testnet marked the coming of the Shelley era last year, the Cardano platform has entered a fast-moving period of development. The Ouroboros Classic consensus protocol has supported Cardano Byron and the ada cryptocurrency for the past 30 months, and we’ll soon be switching to Ouroboros Praos. This is the version of our proof-of-stake (PoS) protocol that will initially power Shelley as Cardano decentralizes. It builds in the staking process with monetary rewards for ada holders and stake pool owners.
We upgraded Cardano on February 20 with a hard fork that switched the mainnet from the original consensus protocol, Ouroboros Classic, to an updated version, Ouroboros BFT. This BFT hard fork began a transition period under Ouroboros BFT, a slimmed-down version of the protocol designed to help us make the switch to Praos, while still preventing any malicious behaviour. Many probably didn’t even notice. For Daedalus wallet users, it meant a standard software update. Exchanges had to upgrade manually, but they had several weeks to do this and we were on hand to help.
The next event was the ‘Byron reboot’ on March 30. This released totally new code for many of the Cardano components, including a new node to support delegation and decentralization, and future Shelley features. A big advantage of the new code base is that it has been redesigned to be modular, so many components can be changed without affecting the others.
In turn, the BFT will act as the jumping off point for the Shelley hard fork, which will happen once we’re happy with the Haskell testnet. This second hard fork will be a similar process to the February one for exchanges, ada holders and wallet users, and, hopefully, just as much of a non-event.
However, while everything looks smooth on the surface, there is a lot of hidden activity going on. Like a duck serenely swimming across a pond – while its feet are furiously paddling below the calm waters – our blockchain engineers are hard at it.
So, we sat down two of the leading engineers on the Cardano project, Duncan Coutts and Edsko de Vries, to find out how they’ve done it. Duncan has been Cardano’s architectural lead for the past three years, and between them, Duncan and Edsko have spent 35 years using Haskell, the programming language being used to develop Cardano.
Duncan, how did you do it?
As described in the Cardano roadmap, IOHK’s blockchain engineers believe in smooth code updates. Instead of trying to do the jump from Ouroboros Classic to Praos in a single update – which would be an incredibly complex task – it’s been a two-stage approach using Ouroboros BFT as an intermediary (Figure 1). The BFT code is compatible with both the Byron-era federated nodes and the Shelley-style nodes released in the Byron reboot. It's like a relay race: one runner (in our case, running one protocol) enters the handover box where the other runner is waiting; they synchronise their speeds (so they're perfectly compatible with each other) and then hand over the baton (operating the mainnet), and then the new runner with the baton continues from the handover box for the next lap.
The Daedalus Flight process has helped us quickly develop and test a new wallet and, once everyone is running that on the mainnet, and once we finish swapping over the core nodes, the old code is redundant. We are in that transition phase right now, with a new mainnet Daedalus wallet released on April 24.
Our aim is to have a ‘graceful entry into Shelley’, as IOHK chief Charles Hoskinson describes in his whiteboard video about the hard fork. A vital tool in making this move has been creating a hard fork combinator.
That sounds like farm machinery. What is it?
A combinator is just a technical term for something that combines other things. For example, addition is a combinator on numbers. A hard fork combinator combines two protocols into a single protocol. We call this a sequential combination of the two protocols because it runs the first protocol for a while and at some point it switches over to the second. In our case, this is two versions of Ouroboros as we move from BTF to Praos.
The clever part of all this has been the use of discrete modules that do their job, while knowing as little as possible about each other and the blockchain. Simplicity is the key here and this process of taking out the details we call ‘abstraction’. Most of the consensus modules don’t even have to know that they’re dealing with a cryptocurrency and could be putting pretty much anything on a blockchain. For example, we’ve done seminars using the example of a Pokémon ledger on a Ouroboros blockchain. The only thing that’s different is the ledger rules; the consensus is all the same. You just set it up – ‘instantiate’ it in the programming jargon – with the rules for playing Pokémon rather than for UTXO-style accounting.[For readers with a technical interest, watch out for Edsko delving further into the ‘abstraction’ process and combinators in a future blog post.]
You make it sound simple
In fact, it’s tricky because Cardano is running the ada cryptocurrency, and a pile of other things, at the same time. Think of it as changing all the wheels on a car while you’re driving along and towing a caravan. So we have to be sure we can do this in a totally reliable way.
We could have tackled this as a one-off task, but it made sense to do it in a generic way using a protocol combinator. We chose this route because we get a better result and the testing that is vital to ensuring the code works is made far easier. On top of that, there will be more hard forks to come, which made the choice even clearer. For example, as we near the culmination of Cardano’s development and move through the Goguen, Basho, and Voltaire eras, there will be at least one hard fork at each stage.
So how did you cope with the tricky bits?
Well, first off, we had to do it without research to turn to. The researchers describe a single protocol as a free-standing, perfect thing. But that’s not where we are. We are trying to run Praos after having started with a chain that was using something else. What Edsko’s working on, going from one protocol to another in a generic way, is just not covered in the research. And it’s hard, it’s complicated. All the details need a lot of thinking, a lot of scratching your head. But switching between Cardano code bases is not the sort of thing the academics can expect to get published. It doesn’t have a novel aspect and is seen as just an implementation issue.
Edsko, can you give us an example?
As Duncan says, for the researchers, these implementation issues are trivial but dealing with them is 99% of what we do. Take the problem of time for a blockchain. It’s what I’ve been banging my head against for a couple of weeks. Time is divided into slots where the chain can contain at most one block per slot. We often need to convert between slot numbers and time in the real world, for example when a node needs to know ‘Is it my turn?’ to generate the next block. This is fundamental to Cardano, but the length of a slot changes after the hard fork. For Byron, a slot is 20 seconds; for Shelley, it will be two seconds, or perhaps one. To really complicate things, the exact point of time when the hard fork is made is decided on the chain itself. Yet, I need to know when the changeover point is. It’s a quandary: to do slot conversions I need to know the state of the blockchain, but to know the state I need to know the slot conversions!
This is real chicken-and-egg territory with many complex things to disentangle. We have to be very precise with how we do things. It might be trivial in theory, but it’s very difficult to disentangle things and make sure it’s not a circular problem.
We can’t afford for it to be wrong, so how do you know you’re right?
Duncan: That’s an excellent question. My reply is that you come to the answer on two levels. The first is intellectual: you analyse the problem, you do the maths, you talk to colleagues and wrestle with it until you can see how it all fits together. Second, we do all our QuickCheck testing to give us the confidence that this does what we think it does. We do extensive testing that really takes us into the unusual cases that you might never think of, including this changeover. We can do 100,000 tests every time we change a line of code. [Lars Brünjes has written about how John Hughes, one of the creators of Haskell, has helped IOHK develop its testing strategies.]
Edsko: Yes, I agree with those two points. In terms of the combinator, I resolve these things by thinking about the guarantees that the code I write needs to provide, and which guarantees that it, in turn, needs from the ledger. I sketch a mathematical proof that this ‘if-then’ reasoning is indeed justified, and then turn to the formal method teams. The formal methods team are the people who set up the mathematical rules that describe the blockchain, and they can then tweak the rules in such a way that they provide the required guarantees.
In terms of Duncan’s second point, I know the time issue I mentioned above is correct by thinking hard mathematically, and by testing. Timing decisions are easy when we have the full blockchain, but are hard when we have to make predictions about the future. Fortunately, the way we set things up means I can easily create testing blockchains. So, I can create a full blockchain, then slice this chain in half. I take the first half and consider that to be in the present; and set the other half in the future. Then I can use the ‘present’ (first half) to make predictions about the ‘future’ (the second half) and verify them against the whole thing (on which the calculations are easy). If they match, then I know everything is OK.
When did you start on this?
Right after Duncan came up with the genius idea of the OBFT. So I’ve been thinking about the combinator on and off for about 18 months. It was a design goal from the very beginning of our modular rewrite of Ouroboros starting in October 2018, with my first commit to the GitHub repository. We had a prototype demonstration with OBFT and Praos soon after, in December 2018.
And how many people have been involved?
Duncan: Many people have been working on the consensus code, but whenever we have anything really hard, like this combinator, we give it to Edsko: he’s our software engineer extraordinaire! This is Haskell programming as free climbing, rather than climbing with the ropes of formal methods for support.
Any final thoughts?
Duncan: The code that was running is right now being phased out and pretty soon the code that was running Cardano a month ago will no longer exist. Once everyone is running the new code on the mainnet and once we finish swapping over the core nodes, the old code is redundant. We are in that transition phase right now and no one is shouting that the sky is falling. No one has noticed it.
Edsko: That is quite an achievement in its own right. The idea of OBFT was crucial in making the transition, but it’s not relevant any more once we make that transition to Shelley. This has been a way for us genuinely to ditch legacy code, which is often very difficult to do, as the banks know to their cost.
Duncan: And if it all works fine, you won’t notice anything.
Duncan and Edsko, thank you for your time. I think we’d better let you both get back to it.
Marketing & Communications
26 February 2021
25 February 2021
18 February 2021