Skip to main content
QUICK REVIEW

[Paper Review] Securify: Practical Security Analysis of Smart Contracts

Petar Tsankov, Andrei Dan|arXiv (Cornell University)|Jun 4, 2018
Blockchain Technology Applications and Security27 references131 citations
TL;DR

Securify is a scalable, automated security verifier for Ethereum smart contracts that uses domain-specific compliance and violation patterns over semantic facts encoded in stratified Datalog to classify behaviors as violations, warnings, or compliant.

ABSTRACT

Permissionless blockchains allow the execution of arbitrary programs (called smart contracts), enabling mutually untrusted entities to interact without relying on trusted third parties. Despite their potential, repeated security concerns have shaken the trust in handling billions of USD by smart contracts. To address this problem, we present Securify, a security analyzer for Ethereum smart contracts that is scalable, fully automated, and able to prove contract behaviors as safe/unsafe with respect to a given property. Securify's analysis consists of two steps. First, it symbolically analyzes the contract's dependency graph to extract precise semantic information from the code. Then, it checks compliance and violation patterns that capture sufficient conditions for proving if a property holds or not. To enable extensibility, all patterns are specified in a designated domain-specific language. Securify is publicly released, it has analyzed >18K contracts submitted by its users, and is regularly used to conduct security audits by experts. We present an extensive evaluation of Securify over real-world Ethereum smart contracts and demonstrate that it can effectively prove the correctness of smart contracts and discover critical violations.

Motivation & Objective

  • Motivate the need for secure smart contracts given high-profile exploits and financial losses.
  • Introduce a domain-specific verifier (Securify) that targets practical security properties via pattern-based reasoning.
  • Demonstrate a scalable, end-to-end implementation that automates analysis of contracts.
  • Show that Securify can prove correctness and reveal violations on real-world Ethereum contracts.

Proposed method

  • Decompiles EVM bytecode into SSA form to obtain a stackless representation of the contract.
  • Infers semantic facts about control and data flow using declarative stratified Datalog rules.
  • Checks a set of compliance and violation patterns expressed in a DSL to prove or disprove properties.
  • Represents properties as patterns that imply safety (compliance) or negation (violation).
  • Classifies contract behaviors into violations, warnings, or compliant outcomes based on pattern matches.
  • Supports extensibility by allowing security experts to add new patterns via the DSL.

Experimental results

Research questions

  • RQ1Can patterns of compliance and violation capture practical security properties of smart contracts?
  • RQ2Can Securify automatically prove or disprove these properties on real-world contracts?
  • RQ3Does the DSL-based pattern approach scale and remain extensible for evolving security requirements?
  • RQ4How does Securify perform relative to existing symbolic analyzers in terms of coverage and false positives/negatives?

Key findings

  • Securify analyzes more than 18,000 contracts submitted by users.
  • The analyzer can typically run within seconds on contracts.
  • Pattern-based checks reduce manual inspection effort for warnings by substantial margins (e.g., 65.9% to 99.4% for some properties).
  • Securify reports all unsafe behaviors, reducing the chance of missing critical violations.
  • The system has been used in 38 detailed commercial audits and remains actively employed by auditors.
  • The approach demonstrates effective proving of contract correctness and discovery of violations on real-world Ethereum contracts.

Better researchstarts right now

From reading papers to final review, dramatically reduce your research time.

No credit card · Free plan available

This review was created by AI and reviewed by human editors.