Plutus — Haskell for Blockchain Contract Development
YOW! Lambda Jam 2019
With the proliferation of blockchain designs, we see a proliferation of proposals for languages and systems to script the rules governing transactions on these blockchains, generally known as smart contract languages. Despite the name, these languages are usually fairly conventional programming languages used to impose constraints on the transactions permitted to transfer assets and manipulate data stored on the blockchain.
Given the high financial stakes and widely publicised exploits on first generation (Bitcoin) and second generation (Ethereum) blockchains, the third-generation Cardano blockchain places a strong emphasis on functional programming and formal methods. This includes a new approach to contract languages based on state-of-the art research in programming languages and the increased safety provided by functional programming. The benefits of functional programming go even further: instead of having to invent yet another custom language, we simply use Haskell for the job, we design a functional blockchain architecture, and we seamlessly combine on-chain and off-chain computations.
In this talk, I will outline how IOHK’s Plutus team combines programming language theory, functional programming in Haskell, and theorem-proving in Agda to develop a radically new approach to blockchain contract development. This work has resulted in the Plutus Platform, which uses meta-programming in Haskell for distributed contract applications operating on the Cardano blockchain.
Tweag I/O & IOHK
Manuel M T Chakravarty works with Tweag I/O as a functional programming evangelist, architects blockchain languages at IOHK, and develops the interactive development environment Haskell for Mac — one of the first Swift apps on the Mac App Store. His interests span from functional programming, novel compiler technology & programming language theory over high-performance & distributed computing to blockchain technology.
He used to be an associate professor at UNSW Sydney and contributed to both the design and implementation of the Haskell programming language as well as several Haskell tools and open source libraries, including multiple systems for data parallel programming of multicore CPUs and GPUs. Over the last few years, he focused on making functional programming more broadly accessible and on exploring its role in app development in Swift. Currently, he is busy researching and developing a novel approach to blockchain contract development with IOHK's Plutus Team. Most importantly, he believes in the fruitful combination of theory and practice.