Prisma:一种无层级语言,用于在去中心化应用程序中执行合约-客户端协议(扩展版本)
摘要:去中心化应用(dApps)由在区块链上运行的智能合约和模拟协作方的客户端组成。dApps用于建模金融和法律业务功能。今天,合约和客户端是作为单独程序编写的 - 使用不同的编程语言 - 通过发送和接收操作进行通信。这使得分布式程序流程难以表达和推理,增加了客户端和合约接口不匹配的可能性,这可能被恶意客户端利用,从而导致巨大的财务损失。在本文中,我们介绍了一种用于无层次化去中心化应用的语言Prisma,合约及其客户端在一个单元中定义,并将“归属于一起”的发送和接收操作封装为一个单一的直接式操作,在发送和接收方执行时具有不同的方式。这样可以通过标准控制流表达分布式程序流程,并使通信不匹配成为不可能。我们形式上证明了我们的编译器在存在控制客户端代码的攻击者的情况下可以保持程序行为。我们系统地将Prisma与主流和先进的dApps编程模型进行比较,并提供其表达能力和性能的实证证据。
作者:David Richter, David Kretzler, Pascal Weisenburger, Guido Salvaneschi, Sebastian Faust, Mira Mezini
论文ID:2205.07780
分类:Programming Languages
分类简称:cs.PL
提交时间:2023-05-16