Towards adding variety to simplicity
Paper in proceedings, 2018

Simplicity is a Turing-incomplete typed combinator language for smart contracts with a formal semantics. The design of Simplicity makes it possible to statically estimate the resources (e.g., memory) required to execute contracts. Such a feature is highly relevant in blockchain applications to efficiently determine fees to run smart contracts. Despite being Turing incomplete, the language is capable of expressing non-trivial contracts. Often, Simplicity programs contain lots of code repetition that could otherwise be avoided if it had common programming languages features, such as local definitions, functions, and bounded loops. In this work, we provide the foundations to make Simplicity a richer language. To achieve that, we connect Simplicity’s primitives with a categorical model. By doing so, we lift the language to a more abstract representation that will allow us to extend it by leveraging category theory models for computations. This methodology facilitates the addition of local definitions, functions, and bounded loops. We provide an implementation of Simplicity and its virtual machine in the functional programming language Haskell.

Category theory

Functional programming

Simplicity

Blockchain

Haskell

Smart contracts

Author

Nachiappan Valliappan

Chalmers, Computer Science and Engineering (Chalmers), Information Security

Solène Mirliaz

ENS Rennes

Elisabet Lobo Vesga

Chalmers, Computer Science and Engineering (Chalmers), Information Security

Alejandro Russo

Chalmers, Computer Science and Engineering (Chalmers), Information Security

Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics)

03029743 (ISSN) 16113349 (eISSN)

Vol. 11247 LNCS 414-431

8th International Symposium on Leveraging Applications of Formal Methods, Verification and Validation, ISoLA 2018
Limassol, Cyprus,

Subject Categories

Language Technology (Computational Linguistics)

Computer Science

Computer Systems

DOI

10.1007/978-3-030-03427-6_31

More information

Latest update

12/27/2018