KTH / programmable-society

Home of course "Programmable Society" at KTH Royal Institute of Technology
16 stars 15 forks source link

program verification of smart contracts #9

Open monperrus opened 1 year ago

monperrus commented 1 year ago

Surveys:

A Survey of Smart Contract Formal Specification and Verification. ACM Comput. Surv. 2022

Awesome:

monperrus commented 1 year ago

The Certora Verification Language (often abbreviated CVL) isa language used to write specifications for smart contracts.:

monperrus commented 1 year ago

Cairo is a programming language for writing provable programs, where one party can prove to another that a certain computation was executed correctly. https://www.cairo-lang.org/

monperrus commented 1 year ago

Pluto: Exposing Vulnerabilities in Inter-Contract Scenarios

monperrus commented 1 year ago

https://github.com/crytic/slither a static analyzer avaialable through a CLI and scriptable interface.

resources: https://github.com/crytic/building-secure-contracts/blob/master/program-analysis/slither

monperrus commented 1 year ago

Manticore is a symbolic execution tool for the analysis of smart contracts and binaries. https://github.com/trailofbits/manticore

bbaudry commented 1 year ago

Evolution of Automated Weakness Detection in Ethereum Bytecode: a Comprehensive Study. http://arxiv.org/abs/2303.10517

monperrus commented 1 year ago

Our public audits contain examples of verified or tested properties. Consider reading the Automated Testing and Verification sections of the following reports to review real-world security properties:

https://github.com/crytic/building-secure-contracts/tree/master/program-analysis

bbaudry commented 1 year ago

Awesome testing tools for Web3 and Blockchain https://github.com/TheJambo/awesome-testing#web3-and-blockchain

monperrus commented 1 year ago

A Survey of Smart Contract Formal Specification and Verification. ACM Comput. Surv. 2022

monperrus commented 1 year ago

The K Framework is a tool for designing and modeling programming languages and software/hardware systems https://github.com/runtimeverification/k

K Semantics of the Ethereum Virtual Machine (EVM):

(written in Java)

monperrus commented 1 year ago

End-to-End Formal Verification of Ethereum 2.0 Deposit Contract in K (staking) https://github.com/runtimeverification/deposit-contract-verification

monperrus commented 1 year ago

Verx: Safety verification of smart contracts 2020

monperrus commented 1 year ago

ethor: Practical and provably sound static analysis of ethereum smart contracts 2020

monperrus commented 1 year ago

solc-verify: A Modular Verifier for Solidity Smart Contracts 2019

Tool: https://github.com/SRI-CSL/solidity

MaryemHadjWannes commented 8 months ago

Hi @monperrus, I’m trying to use the VerX client script to verify a Solidity contract. but I’m not sure how to obtain a username and password. Is this information available to all users, or is it restricted to certain members?

monperrus commented 8 months ago

don't know, this is not the official repo of VerX. best regards, --Martin

monperrus commented 8 months ago

Design and Implementation of Static Analyses for Tezos Smart Contracts https://dl.acm.org/doi/pdf/10.1145/3643567

monperrus commented 7 months ago

Deductive verification of smart contracts with Dafny http://link.springer.com/10.1007/s10009-024-00738-1

we do not yet have a compiler from Dafny to Ethereum Virtual Machine bytecode

monperrus commented 7 months ago

Towards benchmarking of Solidity verification tools https://arxiv.org/pdf/2402.10750

compares SolCMC and Certora

monperrus commented 5 months ago

Solvent: liquidity verification of smart contracts https://arxiv.org/pdf/2404.17864