【论文分享】SolSaviour: A Defending Framework for Smart Contracts

区块链安全 2年前 (2022) admin
436 0 0

SolSaviour: A Defending Framework for Deployed Defective Smart Contracts

本文是一篇TEE与区块链结合的工作,由PolyU的Bin Xiao老师团队发表于ACSAC 21‘,第一作者为Zecheng Li。

Background

这里作者把智能合约的生存周期分为四个阶段:

CREATION 合约代码写作,编译并通过一个交易发布在网络上。

FREEZE 合约被提交到网络上,所有功能可以通过网络的RPC被访问到。

EXECUTION 执行阶段,此时网络上的所有miner都会维护合约的字节码和状态,任何对合约的修改都要通过相应的交易执行。

FINALIZATION 交易被网络承认,新状态已经写入。

Design

整体视图:

【论文分享】SolSaviour: A Defending Framework for Smart Contracts

分为两部分,voteDestruct和TEE cluster。

voteDestruct是合约代码的一部分,可以保证在销毁合约时的投票行为,当合约遇到风险时,可以通过投票来将整个合约析构。TEE集群提供了三种功能:资产看护,合约重部署和状态迁移。

工作流程:

【论文分享】SolSaviour: A Defending Framework for Smart Contracts

1.所有用户一起启动部署流程,然后把启用了voteDestruct的合约发送到TEE集群上。2.TEE集群生成合约的创建交易,并把它发送到链上执行。3.当遇到合约bug时,合约的持有者可以启动TEE集群来将合约状态转变为LOCKED,直到整个vote阶段结束;或者向TEE上传一个修补过的合约。4.TEE集群将合约置为LOCKED。5.合约的持有者可以投票来决定是否析构它。6.TEE集群启动析构流程,执行selfdestruct指令,将所有的ether都转移到TEE集群当中。7.TEE集群收到资产。8.简单的方法是直接将资产分配给他们的持有者;或者重新部署一个在3.修补过的合约。9.TEE会将内部状态重新部署给新合约。

EXPERIMENT

在实验中,作者使用了Solidity和Intel SGX来实现这个原型系统,代码量约2000行,TEE集群共设计了四个节点。

整个实验分为两部分:有效性和性能。

Data

为了精准地测出有效性和性能表现,作者选取了经历过真实攻击的合约,并爬取了这些合约的交易历史。

具体收集的合约如下:

【论文分享】SolSaviour: A Defending Framework for Smart Contracts

实验中准备了对应的 “含有voteDestrut机制的合约” 和已经修补过的合约。voteDestruct机制是直接在源代码层面加入的;因为各个合约使用的编译器版本不同,各个合约加入的机制代码也稍有差异。

Effectiveness

对有效性的测试分为:定性和定量。

定性测试:SolSaviour是否能从收集的缺陷合约中全量退出资产,并将相应资产退还给持有者,且重新部署一个修复的合约。

定量测试:对比原始合约和SolSaviour保护的合约,对比他们在遇到攻击时的损失。

具体结果如下:

【论文分享】SolSaviour: A Defending Framework for Smart Contracts

【论文分享】SolSaviour: A Defending Framework for Smart Contracts

Performance

性能角度主要测试:合约大小的变化、gas消耗、TEE overhead。

【论文分享】SolSaviour: A Defending Framework for Smart Contracts

【论文分享】SolSaviour: A Defending Framework for Smart Contracts

【论文分享】SolSaviour: A Defending Framework for Smart Contracts


原文始发于微信公众号(COMPASS Lab):【论文分享】SolSaviour: A Defending Framework for Smart Contracts

版权声明:admin 发表于 2022年10月14日 下午2:53。
转载请注明:【论文分享】SolSaviour: A Defending Framework for Smart Contracts | CTF导航

相关文章

暂无评论

您必须登录才能参与评论!
立即登录
暂无评论...