Affiliation:
1. Carnegie Mellon University, USA
Abstract
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.
Funder
National Science Foundation
International Business Machines Corporation
Air Force Office of Scientific Research
National Security Agency
Ripple, Inc.
Publisher
Association for Computing Machinery (ACM)
Subject
Safety, Risk, Reliability and Quality,Software
Cited by
12 articles.
订阅此论文施引文献
订阅此论文施引文献,注册后可以免费订阅5篇论文的施引文献,订阅后可以查看论文全部施引文献
1. Dafny vs. Dala: Experience with Mechanising Language Design;Proceedings of the 26th ACM International Workshop on Formal Techniques for Java-like Programs;2024-09-20
2. Liquidity analysis in resource-aware programming;Journal of Logical and Algebraic Methods in Programming;2023-10
3. How to Evaluate Blame for Gradual Types, Part 2;Proceedings of the ACM on Programming Languages;2023-08-30
4. Usability-Oriented Design of Liquid Types for Java;2023 IEEE/ACM 45th International Conference on Software Engineering (ICSE);2023-05
5. Pacta sunt servanda: Legal contracts in;Science of Computer Programming;2023-01