Obsidian: A Language for Secure-By-Construction Blockchain Programs - October 2022
PI(s), Co-PI(s), Researchers:
Jonathan Aldrich, Brad Myers, and Joshua Sunshine at CMU
Jonathan Bell, Thomas LaToza, and Foteini Baldimtsi (GMU)
HARD PROBLEM(S) ADDRESSED
This refers to Hard Problems, released November 2012.
PUBLICATIONS
- Can advanced type systems be usable? An empirical study of ownership, assets, and typestate in obsidian.
Michael Coblenz, Jonathan Aldrich, Brad A Myers, and Joshua Sunshine. Proceedings of the ACM on Programming Languages (OOPSLA), 2020. Distinguished Artifact Award -
Obsidian: Typestate and Assets for Safer Blockchain Programming, Michael Coblenz, Reed Oei, Tyler Etzel, Paulette Koronkevich, Miles Baker, Yannick Bloem, Brad A. Myers, Joshua Sunshine, and Jonathan Aldrich. ACM Transactions on Programmming Languages and Systems (TOPLAS), 2020.
-
PLIERS: A Process that Integrates User-Centered Methodsinto Programming Language Design.
Michael Coblenz, Gauri Kambhatla, Paulette Koronkevich, Jenna L. Wise, Celeste Barnaby, Jonathan Aldrich, Joshua Sunshine, Brad A. Myers.
ACM Transactions on Computer-Human Interaction (TOCHI), 2021. -
Black-Box IoT: Authentication and Distributed Storage of IoT Data from Constrained Sensors.
Panagiotis Chatzigiannis, Foteini Baldimtsi, Constantinos Kolias, Angelos Stavrou.
Proceedings of the International Conference on Internet-of-Things Design and Implementation (IoTDI), 2021. -
Static Information Flow Control Made Simple. Hemant Gouni and Jonathan Aldrich. Accepted for presentation at the SPLASH 2022 Workshop on Human Aspects of Types and Reasoning Assistants (HATRA '22), 2022.
PUBLIC ACCOMPLISHMENT HIGHLIGHTS
Blockchains have been proposed to support transactions on distributed, shared state, but hackers have exploited security vulnerabilities in existing programs. We applied user-centered design in the creation of Obsidian, a new language that uses typestate and linearity to support stronger safety guarantees than current approaches for programming blockchain systems.
COMMUNITY ENGAGEMENTS
The Obsidian project has partnered support from the Ethereum Foundation. Obsidian currently supports the Hyperledger Fabric blockchain platform. We will build a proof-of-concept version of Obsidian for Ethereum. The ultimate goal is to make Obsidian a viable alternative to Solidity for Ethereum developers so that Ethereum users can obtain the usability and security benefits of using Obsidian.
EDUCATIONAL ADVANCES (If Applicable)