arXivDaily arXiv每日学术速递 周一至周五更新
arXiv周末暂无论文更新,休息一下吧,周末愉快~~
arXiv 2201.04919cs.PL
收藏

智能合约翻译认证

Translation Certification for Smart Contracts

Jacco O. G. Krijnen, Manuel M. T. Chakravarty, Gabriele Keller, Wouter Swierstra

摘要:

更高的正确性是一个老问题,但随着区块链上智能合约的出现,这个问题以一种新的方式出现。智能合约是一种独立的软件,可以在对抗性的环境中控制资产,这些资产通常具有很高的财务价值,一旦投入区块链,就不能再改变。智能合约通常使用高级合约语言开发,并在提交到区块链之前编译为低级虚拟机器码。对于智能合约用户来说,要信任区块链上给定的一段低级代码,他们必须说服自己:(a)他们拥有匹配的源代码;(b)编译器忠实地翻译了源代码的语义。编译器正确性的经典方法解决了第二点。我们认为翻译认证也解决了第一个问题。我们描述了一种新的翻译认证框架的证明架构,该框架在Coq中实现,用于功能智能合约语言。我们证明,我们可以建模的编译管道作为一个序列的翻译关系,方便模块化的证明方法,并在面对不断发展的编译器实现是强大的。

英文摘要:

Compiler correctness is an old problem, but with the emergence of smart contracts on blockchains that problem presents itself in a new light. Smart contracts are self-contained pieces of software that control assets, which are often of high financial value, in an adversarial environment and, once committed to the blockchain, they cannot be changed anymore. Smart contracts are typically developed in a high-level contract language and compiled to low-level virtual machine code before being committed to the blockchain. For a smart contract user to trust a given piece of low-level code on the blockchain, they must convince themselves that (a) they are in possession of the matching source code and (b) that the compiler faithfully translated the source code's semantics. Classic approaches to compiler correctness tackle the second point. We argue that translation certification also addresses the first. We describe the proof architecture of a novel translation certification framework, implemented in Coq, for a functional smart contract language. We demonstrate that we can model the compilation pipeline as a sequence of translation relations that facilitate a modular proof approach and are robust in the face of an evolving compiler implementation.

机构、总结、中文摘要均由AI分析而来,可能存在错误,请以论文正文为准。

↑