在弱表达 UTXO 区块链上安全编译富智能合约
密码学与安全
2024-04-23 v3
摘要
自 Ethereum 以来的大多数区块链平台将智能合约呈现为有状态反应式对象,它们响应交易更新自身状态并转移加密资产。该设计的一个缺陷是,当用户提交交易时,无法预测其将在何种状态下执行。这使用户暴露于交易排序攻击——一类广泛的攻击,其中具有构建交易块能力的对手可从智能合约中提取价值(即所谓的 MEV 攻击)。UTXO 模型是一种替代区块链设计,它通过要求新交易花费过往交易来阻止这些攻击:由于交易具有唯一标识符,重排序攻击无效。当前遵循 UTXO 模型的区块链要么提供有限表达力的合约(Bitcoin),要么需要复杂的运行时环境(Cardano)。我们提出 ILLUM,一种用于 UTXO 模型的中间级语言(Intermediate-Level Language for the UTXO Model)。ILLUM 可表达现实世界智能合约,例如去中心化金融(Decentralized Finance)中的合约。我们定义了一种从 ILLUM 到具有无循环脚本的准系统 UTXO 区块链的编译器。我们的编译目标仅需要对 Bitcoin Script 做最小扩展:特别地,我们利用 covenant(一种沿交易链保留脚本的机制)。我们证明了编译器的安全性:即任何针对编译后合约的攻击在 ILLUM 层级上也可被观测到。因此,编译器不会引入源 ILLUM 合约中原本不存在的新漏洞。我们评估了 ILLUM 作为高级语言编译目标的实用性。为此,我们实现了一个受 Solidity 启发的合约语言到 ILLUM 的编译器,并将其应用于基准或现实世界智能合约。
引用
@article{arxiv.2305.09545,
title = {Secure compilation of rich smart contracts on poor UTXO blockchains},
author = {Massimo Bartoletti and Riccardo Marchesin and Roberto Zunino},
journal= {arXiv preprint arXiv:2305.09545},
year = {2024}
}