Obsidian: A Language for Secure-By-Construction Blockchain Programs
Lead PI:
Jonathan Aldrich
Co-Pi:
Abstract

This project considers models for secure collaboration and contracts in a decentralized environment among parties that have not established trust. A significant example of this is blockchain programming, with platforms such as Ethereum and HyperLedger. There are many documented defects in secure collaboration mechanisms, and some have been exploited to steal money.  Our approach builds two kinds of models to address these defects: typestate models to mitigate re-entrancy-related vulnerabilities, and linear types to model and statically detect an important class of errors involving money and other transferrable resources.

The project research will include both technical and usability assessment of these two ideas. The technical assessment addresses the feasibility of sound and composable static analyses to support these two semantic innovations. The usability assessment focuses on the ability of programmers to use Obsidian effectively to write secure programs with little training.  A combined assessment would focus on whether programmers are more likely to write correct, safe code with Obsidian than with Solidity, and with comparable or improved productivity.

Jonathan Aldrich

Jonathan Aldrich is a Professor of Computer Science and Software Engineering at Carnegie Mellon University, where he directs the Master of Software Engineering program. He is the coauthor (with Michael Scott) of the textbook Programming Language Pragmatics, 5th edition. His research combines programming languages, software engineering, and human-computer interaction to explore how the way we express software affects our ability to engineer software at scale. A particular theme of much of his work is improving software quality and programmer productivity through better ways to express structural and behavioral aspects of software design within source code.

Aldrich has contributed to ownership, typestate checking, modular and gradual verification techniques, and usability in programming language and type system design. For his work specifying and verifying architecture, he received a 2006 NSF CAREER award, the 2007 Dahl-Nygaard Junior Prize, and an ICSE test of time award. Outside the university, he serves on ACM Council and was the CTO of Noteful, a startup delivering an educational app for music theory and note reading.

Institution: Carnegie Mellon University
Sponsor: National Security Agency