An Empirical Study of Ownership, Typestate, and Assets in the Obsidian Smart Contract Language

03/27/2020
by   Michael Coblenz, et al.
0

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 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 most of the Obsidian participants were able to successfully complete most of the programming tasks we gave them. We also found that asset-related bugs, which Obsidian detects at compile time, were commonly accidentally inserted by the Solidity participants. We identified potential opportunities to improve the usability of typestate as well as to apply the usability benefits of Obsidian's ownership system to other languages.

READ FULL TEXT
research
11/26/2019

Mandala: A Smart Contract Programming Language

Smart contracts on a blockchain behave precisely as specified by their c...
research
01/05/2023

The Usability of Advanced Type Systems: Rust as a Case Study

Advanced type systems that enforce various correctness and safety guaran...
research
12/10/2019

User-Centered Programming Language Design in the Obsidian Smart Contract Language

Programming language designers commonly guess what language designs woul...
research
09/11/2018

Vandal: A Scalable Security Analysis Framework for Smart Contracts

The rise of modern blockchains has facilitated the emergence of smart co...
research
04/10/2020

Resources: A Safe Language Abstraction for Money

Smart contracts are programs that implement potentially sophisticated tr...
research
08/21/2023

Static Application Security Testing of Consensus-Critical Code in the Cosmos Network

Blockchains require deterministic execution in order to reach consensus....
research
09/11/2018

Feature-Specific Profiling

While high-level languages come with significant readability and maintai...

Please sign up or login with your details

Forgot password? Click here to reset