Candid, an interface description language for blockchains

21/09/2021, 4pm

Speaker

Joachim Breitner

Abstract

Service (or smart contract) on the Internet Computer blockchain by DFINITY are executed as WebAssembly programs, and can thus be written in various languages (e.g. Rust, Motoko). To work towards the vision of seamless cross-language service composability and interopability, we created Candid, an IDL with particular focus on how to change services without breaking existing clients (crucial on a blockchain where some services may be immutable) while stillsupporting higher-order composition (crucial for composability).

In this talk, Joachim will explain some of the core challenges in the design ofsuch an interoperability language, and how we solved them.

Speaker Bio

Joachim's academic work revolves around Functional Programming and Interactive Theorem Proving. For his PhD at the Karlsruhe Institute of Technology, he created the Call Arity optimization that is now part of GHC, including a mechanized fomalization in Isabelle, and as a Post Doc at UPenn in Philadelphia he helped build hs-to-coq that allows verification of Haskell programs in Coq. Since then, he worked at DFINITY, defining and building the Internet Computer, championing a specification-driven design approach by authoring the crucial “Interface Specification” document and the accompanying reference implementation, while also building the backend of the Motoko compiler and theCandid interface language.