Multi: a Formal Playground for Multi-Smart Contract Interaction

07/14/2022
by   Martán Ceresa, et al.
0

Blockchains are maintained by a network of participants that run algorithms designed to maintain collectively a distributed machine tolerant to Byzantine attacks. From the point of view of users, blockchains provide the illusion of centralized computers that perform trustable verifiable computations, where all computations are deterministic and the results cannot be manipulated or undone. Smart-contracts are written in a special-purpose programming language with deterministic semantics. Each transaction begins with an invocation from an external user to a smart contract. Contracts have local storage and can call other contracts, and more importantly, they store, send and receive cryptocurrency. It is very important to guarantee that contracts are correct before deployment since their code cannot be modified afterward deployment. However, the resulting ecosystem makes it very difficult to reason about program correctness, since contracts can be executed by malicious users or malicious contracts can be designed to exploit other contracts that call them. Many attacks and bugs are caused by unexpected interactions between multiple contracts, the attacked contract and unknown code that performs the exploit. Moreover, there is a very aggressive competition between different blockchains to expand their user base. Ideas are implemented fast and blockchains compete to offer and adopt new features quickly. In this paper, we propose a formal extensible playground that allows reasoning about multi-contract interactions to ultimately prove properties before features are incorporated into the real blockchain. We implemented a model of computation that models the execution platform, abstracts the internal code of each individual contract and focuses on contract interactions. Moreover, we show how many features, existing or proposed, can be used to reason about multi-contract interactions.

READ FULL TEXT

page 1

page 2

page 3

page 4

research
11/12/2019

Smart Contract Interactions in Coq

We present a model/executable specification of smart contract execution ...
research
05/16/2022

Prisma: A Tierless Language for Enforcing Contract-Client Protocols in Decentralized Applications (Extended Version)

Decentralized applications (dApps) consist of smart contracts that run o...
research
03/07/2023

Daml: A Smart Contract Language for Securely Automating Real-World Multi-Party Business Workflows

Distributed ledger technologies, also known as blockchains for enterpris...
research
01/20/2020

Checking Smart Contracts with Structural Code Embedding

Smart contracts have been increasingly used together with blockchains to...
research
01/13/2022

Translation Certification for Smart Contracts

Compiler correctness is an old problem, but with the emergence of smart ...
research
07/24/2019

ConCert: A Smart Contract Certification Framework in Coq

We present a new way of embedding functional languages into the Coq proo...
research
04/22/2019

Scalable, Secure and Broad-Spectrum Enforcement of Contracts, Without Blockchains

This paper introduces a scalable and secure contract-enforcement mechani...

Please sign up or login with your details

Forgot password? Click here to reset