论文标题

验证递归比特币合同的流动性

Verifying liquidity of recursive Bitcoin contracts

论文作者

Bartoletti, Massimo, Lande, Stefano, Murgia, Maurizio, Zunino, Roberto

论文摘要

智能合约 - 在无信任环境中调节加密资源交换的计算机协议 - 在区块链技术的传播中变得很受欢迎。智能合约的具有里程碑意义的安全财产是流动性:在非液体合同中,可能会遇到某些资产冻结,即任何人都无法赎回。最近对以太坊的流动性攻击已经冻结了数亿美元,这一问题的相关性证明了这一问题。我们解决了在BITML上验证流动性的问题,BITML是与比特币的安全编译器的智能合同的DSL,具有用于货币转移的原语,合同重新谈判和共识的递归。我们的主要结果是用于流动性的验证技术。我们首先将BITML的无限状态语义转换为有限状态的语义,该语义的重点是从上下文的动作中抽象出一组合同的行为。关于所选合同,此抽象是合理的,即,如果抽象的合同是液体,则是混凝土。然后,我们通过检查有限状态抽象来验证流动性。我们实施了一个工具链,该工具链自动验证BITML合同的流动性并将其编译为比特币,并通过代表合同的基准进行评估。

Smart contracts - computer protocols that regulate the exchange of crypto-assets in trustless environments - have become popular with the spread of blockchain technologies. A landmark security property of smart contracts is liquidity: in a non-liquid contract, it may happen that some assets remain frozen, i.e. not redeemable by anyone. The relevance of this issue is witnessed by recent liquidity attacks to Ethereum, which have frozen hundreds of USD millions. We address the problem of verifying liquidity on BitML, a DSL for smart contracts with a secure compiler to Bitcoin, featuring primitives for currency transfers, contract renegotiation and consensual recursion. Our main result is a verification technique for liquidity. We first transform the infinite-state semantics of BitML into a finite-state one, which focusses on the behaviour of a chosen set of contracts, abstracting from the moves of the context. With respect to the chosen contracts, this abstraction is sound, i.e. if the abstracted contract is liquid, then also the concrete one is such. We then verify liquidity by model-checking the finite-state abstraction. We implement a toolchain that automatically verifies liquidity of BitML contracts and compiles them to Bitcoin, and we assess it through a benchmark of representative contracts.

扫码加入交流群

加入微信交流群

微信交流群二维码

扫码加入学术交流群,获取更多资源