# Verkle demo network
## Network architecture
The core network is made up of geth miners, producing blocks that contain verkle proofs.
EthereumJS light clients listen for blocks being broadcast on the devp2p network, and use rust-verkle to verify the proof in the block.
## Proof format
The proof format isn't set in stone. For the test network, the proof format is the RLP encoding of the following structure:
```python
class VerkleProof:
D: Point
IPA: IPAProof
```
with `IPAProof` defined as:
```python
class IPAProof:
L: List[POINT]
R: List[POINT]
A: int
```
## DoD
* The network processes transactions from various addresses
* The network handles smart contract executions
* A stateless client can be set to watch for updates to a pre-specified account and, upon verification of the proof, update the account balance/nonce/state...
## Steps
* [ ] Update Geth to use IPA
* [ ] Compile rust-verkle to WASM
* [ ] Modify EthereumJS to receive blocks with verkle proofs, and verify these proofs with rust-verkle
* [ ] open question: which database is going to be used?
* [ ] Build the network and add a faucet
## References
* The geth pull request implementing stateless blocks https://github.com/ethereum/go-ethereum/pull/23630
* Rust-verkle https://github.com/crate-crypto/rust-verkle