Skip to content

pirapira/awesome-ethereum-virtual-machine

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

129 Commits
 
 
 
 
 
 
 
 
 
 

Awesome Ethereum Virtual Machine

A curated list of resources on the Ethereum Virtual Machine (EVM), which is the virtual machine executed on the Ethereum network.

Not listed there yet, but in the spirit of Awesome

Here is how to contribute.

Outdated and archived resources have been moved to STALE.md.

Table of Contents generated with DocToc

Specification

  • Yellow Paper
    • A terse specification of EVM and Ethereum blocks

Illustration

Tutorials

Tests

EVM Implementations

Live on Main Network

  • go-ethereum
    • A popular Ethereum client with its own EVM implementation (core/vm directory)
  • py-ethclient in Python
    • A from-scratch Python execution client with 140+ EVM opcodes, RLPx transport, eth/68 and snap/1 wire protocols, full sync, snap sync, Engine API V1/V2/V3, and JSON-RPC
  • For more, see here.

Other Implementations

Programming Languages that Compile into EVM

  • Solidity
  • Vyper
    • A language with overflow-checking, numeric units but without unlimited loops

Programming Languages that Compile zk-SNARK Circuits and Proofs

  • Zokrates
    • A toolbox for zkSNARKs on Ethereum
  • snarky
    • An OCaml front-end for writing R1CS SNARKs (parametrized over the backend SNARK libraries)
    • Shallowly embedded DSL that can be compiled into SNARK circuits
    • The verifier is an OCaml function, so some more work is necessary before using it on Ethereum

Debuggers

Code Analyzers

  • Echidna
    • A fuzzer on EVM that also takes Solidity input
    • Able to fuzz a program with sequences of multiple transactions
  • MAIAN
    • An automatic tool that detects trace vulnerabilities (Greedy, Prodigal and Suicidal) with depth-first search of symbolic execution of multiple invocations
  • Mythril
    • A security analysis tool for EVM bytecode; supports Solidity and Vyper
  • Manticore
    • A symbolic execution engine that can generate inputs to cover codepaths (asciicast), which also comes with a Python API
  • Securify
    • A tool that strives to achieve no false-negatives
  • L3X
    • L3X - AI-driven Smart Contract Static Analyzer

Improvement Proposals

License of This List

Awesome Ethereum Virtual Machine

Written in 2017 by Yoichi Hirai i@yoichihirai.com

[other author/contributor lines as appropriate]

To the extent possible under law, the author(s) have dedicated all copyright and related and neighboring rights to this software to the public domain worldwide. This software is distributed without any warranty.

You should have received a copy of the CC0 Public Domain Dedication along with this software. If not, see http://creativecommons.org/publicdomain/zero/1.0/.

About

Ethereum Virtual Machine Awesome List

Resources

License

Code of conduct

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors