Skip to content

Commit

Permalink
revamp readme (#136)
Browse files Browse the repository at this point in the history
Co-authored-by: Clément Walter <clement0walter@gmail.com>
  • Loading branch information
Eikix and ClementWalter authored Nov 28, 2024
1 parent ddd95c9 commit 5389c93
Showing 1 changed file with 29 additions and 32 deletions.
61 changes: 29 additions & 32 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,28 +1,33 @@
# keth

Keth is an open-source, proving backend for Ethereum, Optimism, Arbitrum and
arbitrary Ethereum execution environments built with
[Kakarot Core EVM](https://github.com/kkrt-labs/kakarot) and
[Starkware's provable VM, Cairo](https://book.cairo-lang.org/) as well as
[Reth ExEx](https://www.paradigm.xyz/2024/05/reth-exex).

Similar to [zeth](https://github.com/kkrt-labs/keth/edit/main/README.md), keth
makes it possible to prove a given block by completing all the necessary steps
required to assert its integrity in the provable Cairo Virtual Machine:

- verify transactions validity (signature, sufficient balance & nonce);
- execute transactions in the block;
- verify storage reads and writes;
- paying block rewards;
- update state root;
- compute transactions and receipts tries;
- compute the block hash;
- etc.

By running this process in the context of the Cairo VM, we can generate a STARK
proof that the new block is valid. For Optimism and Arbitrum, keth will draw
inspiration from zeth and its ability to ensure that the block was correctly
derived from the available data posted to Ethereum.
## Introduction

Keth is an open-source, proving backend for the Ethereum Execution Layer built
with [Kakarot Core EVM](https://github.com/kkrt-labs/kakarot) and
[Starkware's provable VM, Cairo](https://book.cairo-lang.org/).

Keth makes it possible to prove a given state transition asynchronously by:

- pulling pre-state,
- executing all required transactions,
- computing post-state

For instance, this can be run for a given block to prove the Ethereum protocol's
State Transition Function (STF).

## Getting started

### Requirements

The project uses [uv](https://github.com/astral-sh/uv) to manage python
dependencies and run commands. To install uv:

```bash
curl -LsSf https://astral.sh/uv/install.sh | sh
```

Moreover, the project uses [rust](https://www.rust-lang.org/) to manage rust
dependencies.

## Status

Expand All @@ -34,12 +39,4 @@ Coming soon 🏗️.

## Acknowledgements

- zeth: inspiration and design is drawn from Risc-Zero's
[zeth](https://github.com/risc0/zeth). We warmly thank the team for their
openness and cutting-edge research on the subject of Type 1 provers.
- reth: keth's backend logic relies on
[Reth Execution Extensions](https://www.paradigm.xyz/2024/05/reth-exex). Thank
you to the team who's helped us since day 1 in design and development.
- Herodotus: keth's Cairo code relies on Herodotus' implementation and
architecture of MPT proofs in Cairo. Thank you to the team who's helped in
designing our Cairo code and development.
- Herodotus: thanks to Herodotus team for SHARP SDK libraries.

0 comments on commit 5389c93

Please sign in to comment.