Security Tools
- Oyente - Analyze Ethereum code to find common vulnerabilities, based on this paper.
- solidity-coverage - Code coverage for Solidity testing.
- Solgraph - Generates a DOT graph that visualizes function control flow of a Solidity contract and highlights potential security vulnerabilities.
Linters
Linters improve code quality by enforcing rules for style and composition, making code easier to read and review.
- Solium - Yet another Solidity linting.
- Solint - Solidity linting that helps you enforce consistent conventions and avoid errors in your Solidity smart-contracts.
- Solcheck - A linter for Solidity code written in JS and heavily inspired by eslint.
Future improvements
Editor Security Warnings: Editors will soon alert for common security errors, not just compilation errors. Browser Solidity is getting these features soon.
New functional languages that compile to EVM bytecode: Functional languages gives certain guarantees over procedural languages like Solidity, namely immutability within a function and strong compile time checking. This can reduce the risk of errors by providing deterministic behavior. (for more see this, Curry-Howard correspondence, and linear logic)