Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

program verification of smart contracts #9

Open
monperrus opened this issue Nov 14, 2022 · 22 comments
Open

program verification of smart contracts #9

monperrus opened this issue Nov 14, 2022 · 22 comments

Comments

@monperrus
Copy link
Member

monperrus commented Nov 14, 2022

Surveys:

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

Awesome:

@monperrus
Copy link
Member Author

monperrus commented Nov 14, 2022

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

@monperrus
Copy link
Member Author

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
Copy link
Member Author

@monperrus
Copy link
Member Author

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
Copy link
Member Author

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

@bbaudry
Copy link
Collaborator

bbaudry commented Mar 22, 2023

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

@monperrus
Copy link
Member Author

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
Copy link
Collaborator

bbaudry commented May 10, 2023

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

@monperrus monperrus changed the title verification of smart contracts program verification of smart contracts Jun 18, 2023
@KTH KTH deleted a comment from bbaudry Jun 18, 2023
@monperrus
Copy link
Member Author

@monperrus
Copy link
Member Author

monperrus commented Jun 18, 2023

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
Copy link
Member Author

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

@monperrus
Copy link
Member Author

@monperrus
Copy link
Member Author

@monperrus
Copy link
Member Author

@MaryemHadjWannes
Copy link

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
Copy link
Member Author

monperrus commented Feb 7, 2024 via email

@monperrus
Copy link
Member Author

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

@monperrus
Copy link
Member Author

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
Copy link
Member Author

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

compares SolCMC and Certora

@monperrus
Copy link
Member Author

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

@monperrus
Copy link
Member Author

Practical Verification of Smart Contracts using Memory Splitting
https://abakst.github.io/oopsla24.pdf

@monperrus
Copy link
Member Author

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants