当前位置: X-MOL 学术ACM Trans. Program. Lang. Syst. › 论文详情
Our official English website, www.x-mol.net, welcomes your feedback! (Note: you will need to create a separate account there.)
Obsidian
ACM Transactions on Programming Languages and Systems ( IF 1.5 ) Pub Date : 2020-11-26 , DOI: 10.1145/3417516
Michael Coblenz 1 , Reed Oei 2 , Tyler Etzel 3 , Paulette Koronkevich 4 , Miles Baker 5 , Yannick Bloem 6 , Brad A. Myers 1 , Joshua Sunshine 1 , Jonathan Aldrich 1
Affiliation  

Blockchain platforms are coming into use for processing critical transactions among participants who have not established mutual trust. Many blockchains are programmable, supporting smart contracts , which maintain persistent state and support transactions that transform the state. Unfortunately, bugs in many smart contracts have been exploited by hackers. Obsidian is a novel programming language with a type system that enables static detection of bugs that are common in smart contracts today. Obsidian is based on a core calculus, Silica, for which we proved type soundness. Obsidian uses typestate to detect improper state manipulation and uses linear types to detect abuse of assets. We integrated a permissions system that encodes a notion of ownership to allow for safe, flexible aliasing. We describe two case studies that evaluate Obsidian’s applicability to the domains of parametric insurance and supply chain management, finding that Obsidian’s type system facilitates reasoning about high-level states and ownership of resources. We compared our Obsidian implementation to a Solidity implementation, observing that the Solidity implementation requires much boilerplate checking and tracking of state, whereas Obsidian does this work statically.

中文翻译:

黑曜石

区块链平台开始用于处理尚未建立相互信任的参与者之间的关键交易。许多区块链是可编程的,支持智能合约,它维护持久状态并支持转换状态的事务。不幸的是,许多智能合约中的漏洞已被黑客利用。Obsidian 是一种新颖的编程语言,具有类型系统,可以静态检测当今智能合约中常见的错误。Obsidian 基于核心微积分 Silica,我们为此证明了类型稳健性。黑曜石用途类型状态检测不正确的状态操作和使用线性类型发现滥用资产。我们集成了一个权限系统,该系统对以下概念进行编码所有权允许安全、灵活的混叠。我们描述了两个案例研究,评估 Obsidian 在参数保险和供应链管理领域的适用性,发现 Obsidian 的类型系统有助于推理高级状态和资源所有权。我们将我们的 Obsidian 实现与 Solidity 实现进行了比较,发现 Solidity 实现需要大量样板检查和状态跟踪,而 Obsidian 则以静态方式完成这项工作。
更新日期:2020-11-26
down
wechat
bug