A program that maintains key safety properties even when interacting with arbitrary untrusted code is said to enjoy \emph{robust safety}. Proving that a program written in a mainstream language is robustly safe is typically challenging because it requires static verification tools that work precisely even in the presence of language features like dynamic dispatch and shared mutability. The emerging \move programming language was designed to support strong encapsulation and static verification in the service of secure smart contract programming. However, the language design has not been analyzed using a theoretical framework like robust safety. In this paper, we define robust safety for the \move language and introduce a generic framework for static tools that wish to enforce it. Our framework consists of two abstract components: a program verifier that can prove an invariant holds in a closed-world setting (e.g., the Move Prover), and a novel \emph{encapsulator} that checks if the verifier's result generalizes to an open-world setting. We formalise an escape analysis as an instantiation of the encapsulator and prove that it attains the required security properties. Finally, we implement our encapsulator as an extension to the Move Prover and use the combination to analyze a representative benchmark set of real-world \move programs. This toolchain certifies $>$99\% of the \move modules we analyze, validating that automatic enforcement of strong security properties like robust safety is practical for \move.


翻译:维护关键安全特性的程序, 即使与任意的不受信任的代码进行互动, 也被认为享有 \ emph{ robust 安全} 。 证明以主流语言撰写的程序非常安全, 通常具有挑战性, 因为它需要静态的核查工具, 即使在动态发送和共享变异性等语言特性存在的情况下, 也需要静态的核查工具。 正在形成的 \ 移动的编程语言旨在支持强大的封装和静态核查, 用于安全的智能合同编程。 然而, 语言设计没有使用像强健安全这样的理论框架来分析。 在本文中, 我们定义了\ 移动语言的稳健安全性, 并引入了一个静态工具的通用框架, 想要执行它。 我们的框架由两个抽象的构件组成: 一个程序核查器, 可以证明在封闭世界的设置( 例如 Move Prover) 和 新的 emphémo 校准程序, 用来检查校准校准校准验证校准一个安全性模型, 。 我们将一个用于将安全性安全性模型的校准工具 。

0
下载
关闭预览

相关内容

最新《自监督表示学习》报告,70页ppt
专知会员服务
85+阅读 · 2020年12月22日
强化学习最新教程,17页pdf
专知会员服务
174+阅读 · 2019年10月11日
【新书】Python编程基础,669页pdf
专知会员服务
194+阅读 · 2019年10月10日
[综述]深度学习下的场景文本检测与识别
专知会员服务
77+阅读 · 2019年10月10日
【哈佛大学商学院课程Fall 2019】机器学习可解释性
专知会员服务
103+阅读 · 2019年10月9日
Transferring Knowledge across Learning Processes
CreateAMind
27+阅读 · 2019年5月18日
LibRec 精选:位置感知的长序列会话推荐
LibRec智能推荐
3+阅读 · 2019年5月17日
Call for Participation: Shared Tasks in NLPCC 2019
中国计算机学会
5+阅读 · 2019年3月22日
动物脑的好奇心和强化学习的好奇心
CreateAMind
10+阅读 · 2019年1月26日
逆强化学习-学习人先验的动机
CreateAMind
15+阅读 · 2019年1月18日
Unsupervised Learning via Meta-Learning
CreateAMind
42+阅读 · 2019年1月3日
A Technical Overview of AI & ML in 2018 & Trends for 2019
待字闺中
16+阅读 · 2018年12月24日
Disentangled的假设的探讨
CreateAMind
9+阅读 · 2018年12月10日
强化学习 cartpole_a3c
CreateAMind
9+阅读 · 2017年7月21日
Imitation by Predicting Observations
Arxiv
4+阅读 · 2021年7月8日
Arxiv
13+阅读 · 2021年3月3日
A Multi-Objective Deep Reinforcement Learning Framework
Arxiv
6+阅读 · 2018年1月29日
Arxiv
3+阅读 · 2017年11月20日
VIP会员
相关资讯
Transferring Knowledge across Learning Processes
CreateAMind
27+阅读 · 2019年5月18日
LibRec 精选:位置感知的长序列会话推荐
LibRec智能推荐
3+阅读 · 2019年5月17日
Call for Participation: Shared Tasks in NLPCC 2019
中国计算机学会
5+阅读 · 2019年3月22日
动物脑的好奇心和强化学习的好奇心
CreateAMind
10+阅读 · 2019年1月26日
逆强化学习-学习人先验的动机
CreateAMind
15+阅读 · 2019年1月18日
Unsupervised Learning via Meta-Learning
CreateAMind
42+阅读 · 2019年1月3日
A Technical Overview of AI & ML in 2018 & Trends for 2019
待字闺中
16+阅读 · 2018年12月24日
Disentangled的假设的探讨
CreateAMind
9+阅读 · 2018年12月10日
强化学习 cartpole_a3c
CreateAMind
9+阅读 · 2017年7月21日
相关论文
Top
微信扫码咨询专知VIP会员