TU Darmstadt / ULB / TUbiblio

Prisma: A Tierless Language for Enforcing Contract-client Protocols in Decentralized Applications

Richter, David ; Kretzler, David ; Weisenburger, Pascal ; Salvaneschi, Guido ; Faust, Sebastian ; Mezini, Mira (2023)
Prisma: A Tierless Language for Enforcing Contract-client Protocols in Decentralized Applications.
In: ACM Transactions on Programming Languages and Systems, 45 (3)
doi: 10.1145/3604629
Artikel, Bibliographie

Kurzbeschreibung (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 client-contract interface, which can be exploited by malicious clients, potentially leading to huge financial losses. In this article, 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.

Typ des Eintrags: Artikel
Erschienen: 2023
Autor(en): Richter, David ; Kretzler, David ; Weisenburger, Pascal ; Salvaneschi, Guido ; Faust, Sebastian ; Mezini, Mira
Art des Eintrags: Bibliographie
Titel: Prisma: A Tierless Language for Enforcing Contract-client Protocols in Decentralized Applications
Sprache: Englisch
Publikationsjahr: 23 September 2023
Verlag: ACM
Titel der Zeitschrift, Zeitung oder Schriftenreihe: ACM Transactions on Programming Languages and Systems
Jahrgang/Volume einer Zeitschrift: 45
(Heft-)Nummer: 3
DOI: 10.1145/3604629
Kurzbeschreibung (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 client-contract interface, which can be exploited by malicious clients, potentially leading to huge financial losses. In this article, 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.

Zusätzliche Informationen:

Art.No.: 17

Fachbereich(e)/-gebiet(e): 20 Fachbereich Informatik
20 Fachbereich Informatik > Softwaretechnik
TU-Projekte: Bund/BMBF|16KIS0902|iBlockchain
DFG|SFB1119|E1SFB1119 Mezini
Hinterlegungsdatum: 20 Mär 2024 13:01
Letzte Änderung: 24 Jun 2024 11:54
PPN: 519345207
Export:
Suche nach Titel in: TUfind oder in Google
Frage zum Eintrag Frage zum Eintrag

Optionen (nur für Redakteure)
Redaktionelle Details anzeigen Redaktionelle Details anzeigen