SEPLMar 27, 2020

Can Advanced Type Systems Be Usable? An Empirical Study of Ownership, Assets, and Typestate in Obsidian

arXiv:2003.12209v23 citations
AI Analysis

This addresses the problem of security vulnerabilities in smart contracts for blockchain developers, but it is incremental as it focuses on usability improvements for an existing language rather than a fundamental breakthrough.

The study tackled the usability of Obsidian, a typestate-oriented language for blockchain smart contracts, by comparing it to Solidity in an empirical study with 20 participants. The result showed that Obsidian participants completed more programming tasks successfully and avoided asset-related bugs that Solidity participants commonly inserted, which Obsidian detects at compile time.

Some blockchain programs (smart contracts) have included serious security vulnerabilities. Obsidian is a new typestate-oriented programming language that uses a strong type system to rule out some of these vulnerabilities. Although Obsidian was designed to promote usability to make it as easy as possible to write programs, strong type systems can cause a language to be difficult to use. In particular, ownership, typestate, and assets, which Obsidian uses to provide safety guarantees, have not seen broad adoption together in popular languages and result in significant usability challenges. We performed an empirical study with 20 participants comparing Obsidian to Solidity, which is the language most commonly used for writing smart contracts today. We observed that Obsidian participants were able to successfully complete more of the programming tasks than the Solidity participants. We also found that the Solidity participants commonly inserted asset-related bugs, which Obsidian detects at compile time.

Foundations

The foundational work for this paper's niche, ranked by how specifically the neighbourhood builds on it — not by global fame.

Your Notes