This paper presents DeCon, a declarative programming language for implementing smart contracts and specifying contract-level properties. Driven by the observation that smart contract operations and contract-level properties can be naturally expressed as relational constraints, DeCon models each smart contract as a set of relational tables that store transaction records. This relational representation of smart contracts enables convenient specification of contract properties, facilitates run-time monitoring of potential property violations, and brings clarity to contract debugging via data provenance. Specifically, a DeCon program consists of a set of declarative rules and violation query rules over the relational representation, describing the smart contract implementation and contract-level properties, respectively. We have developed a tool that can compile DeCon programs into executable Solidity programs, with instrumentation for run-time property monitoring. Our case studies demonstrate that DeCon can implement realistic smart contracts such as ERC20 and ERC721 digital tokens. Our evaluation results reveal the marginal overhead of DeCon compared to the open-source reference implementation, incurring 14% median gas overhead for execution, and another 16% median gas overhead for run-time verification.
翻译:本文展示了DeCon, 这是执行智能合同和指定合同级别财产的宣言性程序化语言。 受以下观察的驱动,即智能合同操作和合同级别财产可以自然地被表现为关系限制, DeCon 将每个智能合同模型都作为一套关系表,用于存储交易记录。 智能合同的这种关联性表述能够方便地说明合同性质,便于实时监测潜在的违反财产行为,并通过数据出处澄清合同调试。 具体地说, DeCon 方案包含一套声明性规则和违反关系代表性查询规则,分别描述智能合同执行和合同级别特性。 我们开发了一个工具,可以将 DeCon 程序编成可执行的可靠程序,并配有运行时间财产监测的仪器。 我们的案例研究表明,DeCon 能够实施现实的智能合同,如EC20 和 ECRC721 数字标志。 我们的评价结果显示,DeC 与公开参考实施相比, DeCon 的边际间接费用为14 % 的中位气体管理费, 另有16% 用于运行。