This paper presents SAILFISH, a scalable system for automatically finding state-inconsistency bugs in smart contracts. To make the analysis tractable, we introduce a hybrid approach that includes (i) a light-weight exploration phase that dramatically reduces the number of instructions to analyze, and (ii) a precise refinement phase based on symbolic evaluation guided by our novel value-summary analysis, which generates extra constraints to over-approximate the side effects of whole-program execution, thereby ensuring the precision of the symbolic evaluation. We developed a prototype of SAILFISH and evaluated its ability to detect two state-inconsistency flaws, viz., reentrancy and transaction order dependence (TOD) in Ethereum smart contracts. Further, we present detection rules for other kinds of smart contract flaws that SAILFISH can be extended to detect. Our experiments demonstrate the efficiency of our hybrid approach as well as the benefit of the value summary analysis. In particular, we show that S SAILFISH outperforms five state-of-the-art smart contract analyzers (SECURITY, MYTHRIL, OYENTE, SEREUM and VANDAL ) in terms of performance, and precision. In total, SAILFISH discovered 47 previously unknown vulnerable smart contracts out of 89,853 smart contracts from ETHERSCAN .
翻译:本文介绍了SAILISH,这是一个在智能合同中自动发现不一致性错误的可扩缩系统。为了使分析可以推广,我们采用了一种混合方法,其中包括:(一) 轻量勘探阶段,大大减少分析指令的数量,和(二) 基于我们新颖价值摘要分析的象征性评估的精确精细阶段,这给过度接近整个方案执行的副作用造成额外限制,从而确保象征性评估的精确性。我们开发了一个SAILISHIS原型,并评估了它探测Eherem智能合同中两个不一致性缺陷(即,重复和交易订单依赖性(TOD)的能力。此外,我们为SAILISISHIS提供了其他类型的智能合同缺陷的探测规则,这些缺陷可以扩展用于探测。我们的实验显示了我们混合方法的效率以及价值摘要分析的好处。我们特别表明,SAILISISISHISH的5个状态智能合同分析师(SEEESTHRIL,OYSIL, REAL II) 和SISAREAREASTAST SAL SAL LIT SUL SAICAL LIT SUL SAICUD LIT LO LO LO LUL SAICUL SAICUL SAICUL SAICIT LO LO LO LO LO LIT LO LO LO LO LO LO LATION SATION SATION IS SATION) 和S IM IM IM IM IM IM IM IM IM IM IM IM IM IM IM IM IM IM IM IM IM IM IM IM IM IM IM IM IM IM IM IP IM IM IM IM IM IM IM IM IM IM IM IM IM IM IM IM IM IM IM IM IM IM IM IM IM IM IM IM IM IM IM IM IM IM IM IM IM IM IM 的5 IM IM IM IM IM IM IM IM IM IM IM IM IM IM IM IM IM IM