IOHK using Haskell and the Blockchain

The scope of the work IOHK is doing is ambitious. After Bitcoin was released in 2009 by an unknown person or group, people began to think about creating other digital currencies. Bitcoin was an intriguing new concept, a decentralised implementation of money, run by all the nodes in its network without the need for a trusted authority, such as a central bank.

The opportunity now is not only to design digital currencies that are capable of scaling up for mainstream use - Bitcoin faces difficulties in this because of its older design - but to explore the many other types of application possible: it is not only money that can run on a blockchain. 

A key example of such applications is smart contracts - small, self-enforcing and composable programs that run in a trusted environment, which capture commercial intent between parties. Smart contracts when paired with a blockchain and a replicated virtual machine allow for the removal of trusted third parties such as exchanges, escrow agents and others traditionally used to facilitate commercial relationships thereby reducing the potential for fraud, waste and middle person fees. 

IOHK draws inspiration for its work by mimicking successful protocols developed in the past. Like TCP/IP, IOHK’s blockchain platform will feature a modular and layered design with the accounting of value separated from the computation. This separate layer will act as a trusted execution environment for smart contracts, which in turn require their own programming language. 

To develop this language, IOHK has retained Darryl McAdams and Professors Philip Wadler from the University of Edinburgh and Simon Thompson of the University of Kent. The output of their labors has been the development of a domain-specific language called Plutus that bears inspiration from Haskell, LiquidHaskell, Idris, OCaml, and Erlang. The ultimate design goal is to provide a functional language that is easy to write verified smart contracts used in high assurance projects. 

While Haskell has been used in a few blockchain startups such as Kadena and Haskoin, IOHK’s work extends beyond being a consumer of existing Haskell technology. IOHK is interested in improving the overall development experience for developers using Haskell. To this end, IOHK is improving Stack, NIX, proposing patches to GHC, adding improved network libraries and pursuing other paths when the development experience is suboptimal. 

So why was Haskell chosen? The project is difficult - a lot of custom software has to be produced very quickly, and it has to be of high quality. Haskell allows the product to have a quick time to market, and also offers a path towards substantially higher quality via the use of formal verification techniques. Haskell also provides a rich, intellectually strong community to provide peer review. 

One of IOHK’s challenges has been the difficulty of finding the right people - it still has positions to fill for developers as well as a software project manager. Its headcount has been growing fast; there are now more than 70 people working for IOHK, with almost everyone working remotely in small teams from more than a dozen countries including the USA, Russia, the UK, and Japan. 

IOHK has made cryptography integral to the development process, and in this approach it differs from other blockchain companies. Researchers undertake an academic study into blockchain design, and that knowledge is immediately put into use in its products. To facilitate the short cycle between research and development, IOHK has two divisions: research and engineering. 

Underpinning its research division, IOHK has been building a network of research centres. It has blockchain technology labs in Athens, Tokyo, and Edinburgh, which is the headquarters of the network and is run by Professor Aggelos Kiayias, who is Chair in Cyber Security and Privacy at Edinburgh’s School of Informatics. There are plans for future research centres, including in the US and various projects are underway with academics, for example in game theory, at other universities. 

IOHK Research focuses on the intersection of cryptography, game theory and distributed computing applied within socially constructed complex adaptive systems. Deconstructing the jargon, blockchains are consumers of classical concepts in distributed systems such as reaching consensus over a shared state (ordering of facts and events for example), yet one cannot assume users will be honest. Thus one has to introduce cryptography to improve the trust model wherever possible and for places where ideal behavior is required introduce incentives. As these systems grow from simple rules to massive, emergently complex ecosystems, techniques from complex adaptive systems are used to understand the utility and resilience of the protocols given real life goals such as being a replacement payment system. 

IOHK Research’s efforts are all open source and patent free with a strong emphasis on building interinstitutional and intercultural teams. As an example of their work, IOHK’s chief scientist, Professor Aggelos Kiayias, developed a new (and now peer reviewed) consensus algorithm called Ouroboros with a team from five universities from three different continents that seeks to offer similar security guarantees as Bitcoin’s proof of work without the need for proof of work’s enormous power expenditures. 

Given the nature of cryptocurrencies, with the user at the center of her funds and the impossibility of transaction reversals in the event of theft or an accident, security and reliability are paramount to mainstream adoption. Further complicating this topic is that developer mistakes can be greatly amplified by the difficulty of changing code once shipped. Thus IOHK is embarking on three parallel efforts. 

First, in order to improve overall security, follow high assurance techniques, add security auditing into all development pipelines and design produces in the open source domain thereby maximizing peer review, Second, construct a cryptocurrency trusting computing base from trusted hardware, verified protocols and libraries and use of specialized techniques and tools. And finally, focus on improving a user experience that doesn’t encourage insecure behavior. 

On the development side, IOHK’s Haskell team is currently working on a test version of a cryptocurrency called Cardano. Five versions of Cardano’s testnet have been produced so far, ahead of the global release of the live network. While the testnet has been written in Haskell, IOHK of course uses other languages. A team is using JavaScript to develop a digital wallet, named Daedalus, to store the cryptocurrency. A block explorer - a tool to check the history of transactions on the blockchain - is written in PureScript in the front end. 

The project is certainly challenging and is covering much new ground. It is the first time a blockchain platform of this size and complexity has been produced in this way: starting with a first principles approach and evolving out of the work of a global team of researchers. Beyond offering a cryptocurrency to begin with, and smart contracts within the next two years, the technology offers the potential to act as a stack for financial services more widely. The vision is that this technology could eventually be used in the developing world to give people previously excluded from the economy access to financial services. 

 Your Information is 100% Secure And Will Never Be Shared With Anyone.

DevOps Equation

Contact me to get my project on track

This checkout form is currently disabled.

Please contact the site owner to ensure the account is connected and the page is secure.

Privacy Policy: We hate spam and promise to keep your email address safe