plonky2/evm/README.md

25 lines
1.9 KiB
Markdown
Raw Normal View History

2023-11-20 23:25:31 -08:00
# Provable Stateless ZK-EVM
2023-11-20 08:55:02 -08:00
2023-11-20 23:25:31 -08:00
Included here is an implementation of a stateless, recursive ZK-EVM client implemented using Plonky2. It currently supports the full Merkle-Patricia Trie and has all Shanghai opcodes implemented.
2023-11-20 09:02:58 -08:00
2023-11-20 09:16:28 -08:00
## Performance
2023-11-20 09:02:58 -08:00
2023-11-20 23:25:31 -08:00
This implementation is able to provide transaction level proofs which are then recursively aggregated into a block proof. This means that proofs for a block can be efficiently distributed across a cluster of computers. As these proofs use Plonky2 they are CPU and Memory bound. The ability to scale horizontally across transactions increases the total performance of the system dramatically. End-to-end workflows are currently in progress to support this proving mode against live evm networks.
2023-11-20 09:16:28 -08:00
Furthermore the implementation itself is highly optimized to provide fast proving times on generally available cloud instances and does not require GPUs or special hardware.
2023-11-20 08:55:02 -08:00
## Ethereum Compatibility
2023-11-20 09:08:18 -08:00
The aim of this module is to initially provide full ethereum compatibility. Today, all [EVM tests](https://github.com/0xPolygonZero/evm-tests) for the Shanghai hardfork are implemented. Work is progressing on supporting the upcoming [Cancun](https://github.com/0xPolygonZero/plonky2/labels/cancun) EVM changes. Furthermore, this prover uses the full ethereum state tree and hashing modes.
2023-11-20 08:55:02 -08:00
## Audits
Audits for the ZK-EVM will begin on November 27th, 2023. See the [Audit RC1 Milestone](https://github.com/0xPolygonZero/plonky2/milestone/2?closed=1). This README will be updated with the proper branches and hashes when the audit has commenced.
## Documentation / Specification
2023-12-10 01:49:04 +00:00
The current specification is located in the [/spec](/spec) directory, with the most currently up-to-date PDF [available here](https://github.com/0xPolygonZero/plonky2/blob/main/evm/spec/zkevm.pdf). Further documentation will be made over the coming months.
2023-11-20 08:55:02 -08:00
---
Copyright (C) 2023 PT Services DMCC