All Projects → lorenzb → proveth

lorenzb / proveth

Licence: other
Generate & verify Merkle-Patricia-proofs for Ethereum

Programming Languages

python
139335 projects - #7 most used programming language
solidity
1140 projects
Dockerfile
14818 projects

Projects that are alternatives of or similar to proveth

Hydra
Framework for cryptoeconomic contract security, decentralized security bounties. Live on Ethereum.
Stars: ✭ 72 (-19.1%)
Mutual labels:  smartcontracts
neo-go
Go Node and SDK for the NEO blockchain
Stars: ✭ 104 (+16.85%)
Mutual labels:  smartcontracts
EthereumFoos
A Curated List Of Costly Ethereum Mistakes To Learn From (WIP)
Stars: ✭ 24 (-73.03%)
Mutual labels:  smartcontracts
libsubmarine
Implementation of a novel practical scheme for submarine commitments
Stars: ✭ 201 (+125.84%)
Mutual labels:  smartcontracts
Solidity
Solidity, the Smart Contract Programming Language
Stars: ✭ 13,691 (+15283.15%)
Mutual labels:  smartcontracts
Ethlist
The Comprehensive Ethereum Reading List
Stars: ✭ 3,576 (+3917.98%)
Mutual labels:  smartcontracts
awesome-waves
Curated list of awesome things for development on Waves blockchain.
Stars: ✭ 60 (-32.58%)
Mutual labels:  smartcontracts
blocky
Ethereum based smart contracts for IoT devices
Stars: ✭ 17 (-80.9%)
Mutual labels:  smartcontracts
pyrrha-consensus
Core set of Ethereum contracts for Pandora Boxchain functioning
Stars: ✭ 25 (-71.91%)
Mutual labels:  smartcontracts
mcat
a framework for developing ethereum smart contracts
Stars: ✭ 32 (-64.04%)
Mutual labels:  smartcontracts
tomomaster
TomoMaster provides a master professional level UI that brings governance power back to the users. Tomomaster allows users to vote for masternodes and apply to become a candidate
Stars: ✭ 50 (-43.82%)
Mutual labels:  smartcontracts
protocol
Covee protocol for decentralized teamwork
Stars: ✭ 18 (-79.78%)
Mutual labels:  smartcontracts
soltix
SOLTIX: Scalable automated framework for testing Solidity compilers.
Stars: ✭ 30 (-66.29%)
Mutual labels:  smartcontracts
auction-platform
A smartcontract Dapp with a web based UI that keeps track of contract data by adding it into blocks to be mined on a test network.
Stars: ✭ 19 (-78.65%)
Mutual labels:  smartcontracts

Proveth

Build Status Python >= 3.6 Solidity >= 0.5.0

Ethereum's design makes heavy use of Merkle trees enabling light clients to interact with the blockchain without having to download full blocks or its complete state.

Ethereum uses its own variant of Merkle trees, called Merkle Patricia Tries, which provide a dictionary-like interface and enable the generation and verification of small proofs (logarithmic in the number of items in the dictionary) that a given key-value-pair is present/absent from the dictionary. Ethereum uses Merkle Patricia Tries to store transactions, transactions receipts, and the state (all accounts with their balances, code, and storage).

(If you want to learn more about Merkle Patricia Tries, check out the links above and have a look at this cool visualisation Casey built.)

Project goals

Proveth aims to provide

  • a clearly specified format for these proofs;
  • a high-quality off-chain proof generator that can connect to an Ethereum node and generate such proofs;
  • a high-quality on-chain proof verifier (smart contract) that can verify a proof that a given transaction/state item/... is indeed part of the Ethereum blockchain.

Project state

Proveth is under active development. We currently support generating and verifying proofs of transaction inclusion/exclusion, i.e. proofs of statements of the form "the transaction tx was present/absent at index i in the block with blockhash h".

We aim to extend this to:

  • proofs of transaction receipt inclusion/exclusion
  • proofs about the Ethereum state

Contributing

We welcome contributions. Have a look at any open issues, add more tests/documentation or come up with your own improvements. Before starting work on a large PR, we suggest opening an issue to discuss your approach with the maintainers.

We ❤️ tests & docs, so please write lots of them!

We follow PEP-8 for Python and the official style for Solidity.

Authors

Proveth's development was started by the Submarines group at the 2018 IC3 Ethereum bootcamp:

  • Lorenz Breidenbach
  • Tyler Kell
  • Alex Manuskin
  • Casey Detrio
  • Derek Chin
  • Shayan Eskandari
  • Stephane Gosselin
  • Yael Doweck

Acknowledgements

Our design is inspired by PeaceRelay. Thanks to Nate Rush for answering our questions.

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].