All Projects → runtimeverification → Verified Smart Contracts

runtimeverification / Verified Smart Contracts

Licence: other
Smart contracts which are formally verified

Labels

Projects that are alternatives of or similar to Verified Smart Contracts

Quattroshapes
Stars: ✭ 222 (-8.64%)
Mutual labels:  makefile
Bullet Train.zsh
🚄 An oh-my-zsh shell theme based on the Powerline Vim plugin
Stars: ✭ 2,628 (+981.48%)
Mutual labels:  makefile
Tesla Menu
The Nintendo Switch overlay menu
Stars: ✭ 236 (-2.88%)
Mutual labels:  makefile
Mkdkr
Make + Docker + Shell = CI Pipeline
Stars: ✭ 225 (-7.41%)
Mutual labels:  makefile
Smallest Secured Golang Docker Image
Create the smallest and secured golang docker image based on scratch
Stars: ✭ 229 (-5.76%)
Mutual labels:  makefile
Build Harness
🤖Collection of Makefiles to facilitate building Golang projects, Dockerfiles, Helm charts, and more
Stars: ✭ 236 (-2.88%)
Mutual labels:  makefile
Jumpdrive
Flash/Rescue SD Card image for PinePhone and PineTab
Stars: ✭ 217 (-10.7%)
Mutual labels:  makefile
Crazeeriderbbc
Crazee Rider - BBC Micro
Stars: ✭ 243 (+0%)
Mutual labels:  makefile
Openwrt Trojan
trojan and its dependencies for OpenWrt
Stars: ✭ 236 (-2.88%)
Mutual labels:  makefile
Source Code Examples
Examples of code for the ESP8266
Stars: ✭ 237 (-2.47%)
Mutual labels:  makefile
Rancid Git
DEPRECATED -- Strongly consider using the upstream, the version here is very out of date and a poor place to start from!
Stars: ✭ 225 (-7.41%)
Mutual labels:  makefile
Esp Idf Template
Template application for https://github.com/espressif/esp-idf
Stars: ✭ 227 (-6.58%)
Mutual labels:  makefile
Memory Hack
打造超人大脑
Stars: ✭ 237 (-2.47%)
Mutual labels:  makefile
Orac
Orac : virtual modular synth
Stars: ✭ 224 (-7.82%)
Mutual labels:  makefile
Dircolors Solarized
This is a repository of themes for GNU ls (configured via GNU dircolors) that support Ethan Schoonover’s Solarized color scheme.
Stars: ✭ 2,671 (+999.18%)
Mutual labels:  makefile
Turtledove
TURTLEDOVE
Stars: ✭ 217 (-10.7%)
Mutual labels:  makefile
Mav voxblox planning
MAV planning tools using voxblox as the map representation.
Stars: ✭ 234 (-3.7%)
Mutual labels:  makefile
Personal Server
Personal server configuration with k3s
Stars: ✭ 2,784 (+1045.68%)
Mutual labels:  makefile
Mach
A remake of make (in ClojureScript)
Stars: ✭ 240 (-1.23%)
Mutual labels:  makefile
Rhplaceholder
Show pleasant loading view for your users 😍
Stars: ✭ 238 (-2.06%)
Mutual labels:  makefile

Formally Verified Smart Contracts

This repository contains smart contracts that have been formally verified by Runtime Verification and/or collaborators.

To verify a smart contract, we need to first produce a formal specification stating what the smart contract is supposed to do. This is often the most difficult part of the verification effort, requiring sometimes several rounds of discussions and meetings with the owners of the smart contract, to ensure that everybody is on the same page regarding the intended functionality of the smart contract. Not surprisingly, many bugs or opportunities for improvement in the smart contract code are found at this early stage. Then we need to show that the binary or low-level code (e.g., EVM binary or IELE code) generated by the compiler from the smart contract high level code (e.g., Solidity or Vyper) indeed satisfies the specification. In our approach the proofs use reachability logic, a generalization of Hoare logic, separation logic and modal logic, and are performed using the K-framework. The K framework takes a formal semantics of a language as trusted input (e.g., that of EVM or IELE), and then uses it to symbolically execute the smart contract exhaustively on all paths, making use of SMT solvers like Z3 to solve the mathematical domain constraints.

List of Verified Smart Contracts

Resources

We use the K-framework and its verification infrastructure throughout the formal verification effort. All of the formal specifications are mechanized within the K-framework as well. Therefore, some background knowledge about the K-framework would be necessary for reading and fully understanding the formal specifications and reproducing the mechanized proofs. We refer the reader to the following resources for background knowledge about the K-framework and its verification infrastructure.

License

Copyrightable work in this repository is licensed by Runtime Verification, Inc. under the terms of The Reproducibility License 1.1.0, a restrictive license. That license is very readable, and you should read it. Most will want to pay special attention to its Reproducibility section.

Other parts of the proof toolchain, including the K-framework, are licensed under different, open source terms, like those of The University of Illinois/NCSA Open Source License.

Disclaimer

This repository does not constitute legal or investment advice. The preparers of this repository present it as an informational exercise documenting the due diligence involved in the secure development of the target contract only, and make no material claims or guarantees concerning the contract's operation post-deployment. The preparers of this repository assume no liability for any and all potential consequences of the deployment or use of this contract.

The formal verification results presented here only show that the target contract behaviors meet the formal (functional) specifications. Moreover, the correctness of the generated formal proofs assumes the correctness of the specifications and their refinement, the correctness of KEVM, the correctness of the K-framework's reachability logic theorem prover, and the correctness of the Z3 SMT solver. The presented result makes no guarantee about properties not specified in the formal specification. Importantly, the presented formal specification considers only the behaviors within the EVM, without considering the block/transaction level properties or off-chain behaviors, meaning that the verification result does not completely rule out the possibility of the contract being vulnerable to existing and/or unknown attacks.

Smart contracts are still a nascent software arena, and their deployment and public offering carries substantial risk. This repository makes no claims that its analysis is fully comprehensive, and recommends always seeking multiple opinions and audits.

This repository is also not comprehensive in scope, excluding a number of components critical to the correct operation of this system.

The possibility of human error in the manual review process is very real, and we recommend seeking multiple independent opinions on any claims which impact a large quantity of funds.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].