Rich specifications for Ethereum smart contract verification
نویسندگان
چکیده
Smart contracts are programs that execute in blockchains such as Ethereum to manipulate digital assets. Since bugs smart may lead substantial financial losses, there is considerable interest formally proving their correctness. However, the specification and verification of faces challenges rarely arise other application domains. frequently interact with unverified, potentially adversarial outside code, which substantially weakens assumptions formal analyses can (soundly) make. Moreover, core functionality transfer resources; describing this concisely requires dedicated support. Current reasoning techniques do not fully address these challenges, being restricted scope or expressiveness (in particular, presence re-entrant calls), offering limited means expressing resource transfers a contract performs. In paper, we present novel methodology tailored domain contracts. Our specifications associated technique first enable: (1) sound precise unverified code arbitrary re-entrancy, (2) modular about collaborating contracts, (3) domain-specific for resources transfers, contract's behaviour intuitive concise ways excluding typical errors by default. We have implemented our approach 2vyper, an SMT-based automated tool written Vyper, demonstrated its effectiveness verifying strong correctness guarantees real-world
منابع مشابه
Contract-Oriented Specifications
In classes developed using design-by-contract, contracts contain assertions that formalise preconditions, postconditions and invariants. To be sure that contracts are complete, they can be derived from specifications. For classes in a data structures library, equational specifications are appropriate. However, a conventional equational specification cannot usually be mapped directly to contract...
متن کاملTool Demonstration: FSolidM for Designing Secure Ethereum Smart Contracts
Blockchain-based distributed computing platforms enable the trusted execution of computation—defined in the form of smart contracts—without trusted agents. Smart contracts are envisioned to have a variety of applications, ranging from financial to IoT asset tracking. Unfortunately, the development of smart contracts has proven to be extremely error prone. In practice, contracts are riddled with...
متن کاملAn Approach for Validating BCL Contract Specifications
We continue the study, started in [5], on the formal relationships between a domain specific contract language (BCL) and the logic of violation (FCL) proposed in [6, 7]. We discuss the use of logical methods for the representation and analysis of business contracts. The proposed analysis is based on the notions of normal and canonical forms of contracts expressed in FCL. Finally we present a ma...
متن کاملA survey of attacks on Ethereum smart contracts
Smart contracts are computer programs that can be correctly executed by a network of mutually distrusting nodes, without the need of an external trusted authority. Since smart contracts handle and transfer assets of considerable value, besides their correct execution it is also crucial that their implementation is secure against attacks which aim at stealing or tampering the assets. We study th...
متن کاملDefining the Ethereum Virtual Machine for Interactive Theorem Provers
Smart contracts in Ethereum are executed by the Ethereum Virtual Machine (EVM). We defined EVM in Lem, a language that can be compiled for a few interactive theorem provers. We tested our definition against a standard test suite for Ethereum implementations. Using our definition, we proved some safety properties of Ethereum smart contracts in an interactive theorem prover Isabelle/HOL. To our k...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
ژورنال
عنوان ژورنال: Proceedings of the ACM on programming languages
سال: 2021
ISSN: ['2475-1421']
DOI: https://doi.org/10.1145/3485523