Paper accepted at ECOOP'22

2022/05/05

Success for CROSSING researchers

The paper

  • Prisma: A tierless language for enforcing contract-client protocols in decentralized apps
    by David Richter (TU Darmstadt); David Kretzler (TU Darmstadt); Pascal Weisenburger (University of St. Gallen); Guido Salvaneschi (University of St. Gallen); Sebastian Faust (TU Darmstadt), and Mira Mezini (TU Darmstadt)

has been accepted for publication at the 2022 European Conference on Object-Oriented Programming. Preprint: https://arxiv.org/abs/2205.07780.


Abstract

Decentralized applications (dApps) consist of smart contracts that run on blockchains and clients that model collaborating parties. dApps are used to model financial and legal business functionality. Today, contracts and clients are written as separate programs – in different programming languages – communicating via send and receive operations. This makes distributed program flow awkward to express and reason about, increasing the potential for mismatches in the lient-contract interface, which can be exploited by malicious clients, potentially leading to huge financial losses.

In this paper, we present Prisma, a language for tierless decentralized applications, where the contract and its clients are defined in one unit and pairs of send and receive actions that “belong together” are encapsulated into a single direct-style operation, which is executed differently by sending and receiving parties. This enables expressing distributed program flow via standard control flow and renders mismatching communication impossible. We prove formally that our compiler preserves program behavior in presence of an attacker controlling the client code. We systematically compare Prisma with mainstream and advanced programming models for dApps and provide empirical evidence for its expressiveness and performance.

ECOOP

The European Conference on Object-Oriented Programming is Europe’s oldest programming conference. ECOOP welcomes contributions in all aspect of practice and theory of programming languages, systems and environments, ranging the whole spectrum from novel ideas to evaluation of existing solutions. CORE ranking of this conference: A.

ECOOP 2022 will be a hybrid event. The in-person ECOOP'22 will take place from June 6-10, 2022 in Berlin, Germany. The virtual ECOOP (“VCOOP'22”) will take place after the in-person ECOOP conference on Thursdays 16th June, 23rd June, 30th June, and 7th July.