# Stateless Tries benchmarks
This document presents benchmarks of [stateless validation function](https://github.com/paradigmxyz/reth/blob/v1.8.2/crates/stateless/src/validation.rs#L153) being run as the guest program on [risc0 zkvm](https://github.com/risc0/risc0/) using different versions of [`StatelessTrie`](https://github.com/paradigmxyz/reth/blob/v1.8.2/crates/stateless/src/trie.rs#L18) implementations.
Additionally we created a new guest program `trie-benchmark` in in the [zkevm-benchmark-workload](https://github.com/eth-act/zkevm-benchmark-workload/blob/59d15c06d16820300d29aa578ccc12cd7792fc0b/ere-guests/trie-bench/risc0/src/main.rs) to compare trie creation, account getting and storage getting in isolation. The results and the analysis can be found below.
## Complete Benchmark Summary
### Stateless validation guest program
#### Cycle Counts by Step (% difference vs Reth trie)
| Step | Reth trie | Zeth trie | Zeth trie (no defer storage init) | Zeth trie (no defer storage init, no cache) |
| -------- | -------- | -------- | ------- | ------- |
| `reading_input` | `15,173,480` | `15,169,717` <span style="color:green">(-0.02%)</span> | `15,169,717` <span style="color:green">(-0.02%)</span> | `15,162,873` <span style="color:green">(-0.07%)</span> |
| `public_inputs_preparation` | `1,806` | `1,805` <span style="color:green">(-0.06%)</span> | `1,805` <span style="color:green">(-0.06%)</span> | `1,805` <span style="color:green">(-0.06%)</span> |
| `public_keys_validation` | `52,459,266` | `52,459,309` (+0.00%) | `52,459,309` (+0.00%) | `52,459,309` (+0.00%) |
| `stateless_validation` | `951,055,179` | `599,165,107` <span style="color:green">(-37.00%)</span> | `601,957,464` <span style="color:green">(-36.71%)</span> | `1,031,923,733` <span style="color:red">(+8.50%)</span> |
| `commit_public_inputs` | `10,818` | `10,818` (0.00%) | `10,818` (0.00%) | `10,818` (0.00%) |
#### Overall Performance Summary (% difference vs Reth trie)
| Metric | Reth trie | Zeth trie | Zeth trie (no defer storage init) | Zeth trie (no defer storage init, no cache) |
| -------- | -------- | -------- | ------- | ------- |
| **Execution Time** | `162.50s` | `105.68s` <span style="color:green">(-34.96%)</span> | `107.99s` <span style="color:green">(-33.54%)</span> | `172.90s` <span style="color:red">(+6.40%)</span> |
| **Total Cycles** | `1,312,817,152` | `822,083,584` <span style="color:green">(-37.38%)</span> | `821,166,080` <span style="color:green">(-37.45%)</span> | `1,286,864,896` <span style="color:green">(-1.97%)</span> |
| **User Cycles** | `1,018,727,532` | `666,833,738` <span style="color:green">(-34.55%)</span> | `669,621,385` <span style="color:green">(-34.28%)</span> | `1,099,589,457` <span style="color:red">(+7.94%)</span> |
| **Paging Cycles** | `257,699,779` | `131,963,186` <span style="color:green">(-48.79%)</span> | `128,729,429` <span style="color:green">(-50.05%)</span> | `151,534,180` <span style="color:green">(-41.20%)</span> |
| **Reserved Cycles** | `36,389,841` | `23,286,660` <span style="color:green">(-36.01%)</span> | `22,815,266` <span style="color:green">(-37.30%)</span> | `35,741,259` <span style="color:green">(-1.78%)</span> |
| **Number of [Segments](https://dev.risczero.com/terminology#segment)** | `1,252` | `784` <span style="color:green">(-37.38%)</span> | `784` <span style="color:green">(-37.38%)</span> | `1,228` <span style="color:green">(-1.92%)</span> |
Where
- **User Cycles** - The number of user cycles without any overhead for continuations or po2 padding.
- **Paging Cycles** - The number of cycles needed for paging operations.
- **Reserved Cycles** - The number of cycles needed for the proof system which includes padding up to the nearest power of 2.
- **Total Cycles** - Total number of cycles that a prover experiences. This includes overhead associated with continuations and padding up to the nearest power of 2.
#### Resource Usage Comparison (% difference vs Reth trie)
| Resource | Reth trie | Zeth trie | Zeth trie (no defer storage init) | Zeth trie (no defer storage init, no cache) |
| -------- | -------- | -------- | ------- | ------- |
| **Sha2 Calls** | `691,427` | `691,195` <span style="color:green">(-0.03%)</span> | `695,508` <span style="color:red">(+0.59%)</span> | `1,773,705` <span style="color:red">(+156.52%)</span> |
| **Sha2 Cycles** | `51,165,598` | `51,148,430` <span style="color:green">(-0.03%)</span> | `51,467,592` <span style="color:red">(+0.59%)</span> | `131,254,170` <span style="color:red">(+156.52%)</span> |
| **Keccak Calls** | `86,279` | `86,250` <span style="color:green">(-0.03%)</span> | `86,788` <span style="color:red">(+0.59%)</span> | `221,332` <span style="color:red">(+156.55%)</span> |
| **Read Calls** | `277,766` | `277,708` <span style="color:green">(-0.02%)</span> | `278,786` <span style="color:red">(+0.37%)</span> | `548,284` <span style="color:red">(+97.39%)</span> |
### Profiling data summary
Each benchmark was launched with with [`pprof`](https://github.com/google/pprof) [risc0 profiler](https://dev.risczero.com/api/zkvm/profiling). The profileng result files can be found below.
To review the results download the files and run
`go tool pprof -http=127.0.0.1:8000 <profiling output data file path>`.
It requires installing `go`.
- [Reth trie](https://drive.google.com/file/d/1zc7NJoe4JHxlBvdb0V02KSqXZpWKrqxq)
- [Zeth trie](https://drive.google.com/file/d/1xVnhQeKAxzteisyLDMElGg5dqtl-WtdM)
- [Zeth trie (no defer storage init)](https://drive.google.com/file/d/15NDxTciNdY-XOXtbUHen8Y5fMWDqFCiS)
- [Zeth trie (no defer storage init, no cache)](https://drive.google.com/file/d/16h0jRi_BwfUzNURiJF9jIuSi1OWXidd9)
Cycle counts below are based on Reth trie and Zeth profiling data analysis.
#### Trie creation
| Step | Reth trie | Zeth trie (no defer storage init) | Zeth trie (no defer storage init, no cache) |
| -------- | -------- | -------- | -------- |
| Total | `599,500,552` | `262,576,344` | `270,023,281` |
| Build state and bytecode (hash ->) rlp maps | `~150,000,000` | `~150,000,000` | `~150,000,000` |
| Build state and storage tries | `~450,000,000` | `~112,000,000` | `120,000,000` |
- **Build state and bytecode -> rlp maps** step gets rlp rep of entries of `state` array (trie nodes) and `codes` (account codes) and pre-calculates keccack hashes and stores them in a `UInt256 -> rlp_rep` map.
- **Build state and storage tries** step creates a representation of state trie and storage tries using above maps.
#### Calculate state root
| Step | Reth trie | Zeth trie (no defer storage init) | Zeth trie (no defer storage init, no cache) |
| -------- | -------- | -------- | -------- |
| Total | `220,000,000` | `70,000,000` | `520,000,000` |
### Trie benchmark guest program
| Benchmark | Reth trie | Zeth trie (no defer storage init) |
| -------- | -------- | -------- |
| trie creation | `443,742,861` | `220,381,358` <span style="color:green">(-50.34%)</span> |
| account access | `2,190,417` | `2,223,666` <span style="color:red">(+1.52%)</span> |
| storage access | `15,176,893` | `12,322,919`<span style="color:green">(-18.80%)</span> |
Data based on the benchmark output provided below.
#### Conclusions
Based on profiling data for analyzed trie versions it is clear that `CachedTrie` used in Zeth MTP implementations is the fastest. The step which makes the difference is "Build state and storage tries".
Reth implementation stores all nodes in the trie in [an additional `HashMap<Nibbles, SparseNode>`](https://github.com/paradigmxyz/reth/blob/v1.8.2/crates/trie/sparse/src/trie.rs#L277) and all values in [second hash map `HashMap<Nibbles, Vec<u8>>`](https://github.com/paradigmxyz/reth/blob/v1.8.2/crates/trie/sparse/src/trie.rs#L284).
When building the trie from the witness data they start from the root node and decoding it entering its children and doing the same for each trie node. For each node the need to properly fill the maps. It's worth noting that the leaf value and child nodes (for extension and branch nodes) are not stored in the trie node but only in the mentioned maps.
Inserting the leaf values and SperseNode's to the maps (when [revealing the nodes](https://github.com/paradigmxyz/reth/blob/v1.8.2/crates/trie/sparse/src/trie.rs#L423)) takes a lot of cycles. From the profiling data it takes about 200M cycles.
When the trie is created and and accounts is being accessed they need only to [find it in the value map](https://github.com/paradigmxyz/reth/blob/v1.8.2/crates/trie/sparse/src/trie.rs#L936).
The node hash is stored in the trie [SparseNode](https://github.com/paradigmxyz/reth/blob/v1.8.2/crates/trie/sparse/src/trie.rs#L1737-L1780) which allows to cache computed hashes for a node and saves a lot of keccack calls.
On the other hand, Zeth implementation stores leaf [value and children nodes in the trie](https://github.com/eth-act/zkvm-ethereum-mpt/blob/main/crates/mpt/src/mpt/node.rs#L40-L63). When building the trie from witness they create the root hash and call `resolve_digest` which recursively build the whole trie. This function, when called on a Digest node type, checks whether the digest has a rlp representation in the witness data and [change to Branch, Leaf or Ext accordingly](https://github.com/eth-act/zkvm-ethereum-mpt/blob/main/crates/mpt/src/mpt/rlp.rs#L189-L224).
When accessing an account the implementation goes recursively down the trie according to the [path until it reaches the account leaf](https://github.com/eth-act/zkvm-ethereum-mpt/blob/main/crates/mpt/src/mpt/node.rs#L83-L101).
Zeth caching allows to minimize the number of hash computations for a node. The cached node hash value is stored [int the trie node](https://github.com/eth-act/zkvm-ethereum-mpt/blob/main/crates/mpt/src/mpt/node.rs#L40). Any time when a node is modified the [cache is cleared](https://github.com/eth-act/zkvm-ethereum-mpt/blob/main/crates/mpt/src/mpt/node.rs#L149) and recalculated again when the [`hash` function](https://github.com/eth-act/zkvm-ethereum-mpt/blob/main/crates/mpt/src/mpt/mod.rs#L312-L317) is called on a node. This mechanism is very similar to reth hash caching described above. Similar number of keccack calls for first three benchmark cases confirms this.
Zeth implementation is much faster when creating the trie because it does not insert all the nodes and values in separated maps.
### Detailed benchmarks outputs.
#### Default [reth trie](https://github.com/paradigmxyz/reth/blob/v1.8.2/crates/stateless/src/trie.rs#L52)
```
2025-10-03T09:10:53.739676Z INFO ere_risc0::compile: Risc0 program compiled OK - 6889412 bytes
2025-10-03T09:10:53.739772Z INFO ere_risc0::compile: Image ID - cce2e2f1f17477660db15a431c918ade4f35a8c9fd917d364f8b86b5eb927565
2025-10-03T09:11:00.393715Z INFO benchmark_runner::runner: Running rpc_block_23439901
start reading_input
reading_input (cycle tracker): 15173480
public_inputs_preparation
public_inputs_preparation (cycle tracker): 1806
start public_keys_validation
public_keys_validation (cycle tracker): 52459266
start stateless_validation
stateless_validation (cycle tracker): 951055179
start commit_public_inputs
commit_public_inputs (cycle tracker): 10818
2025-10-03T09:13:44.545318Z INFO risc0_zkvm::host::server::exec::executor: execution time: 162.504596851s
2025-10-03T09:13:44.545364Z INFO risc0_zkvm::host::server::session: number of segments: 1252
2025-10-03T09:13:44.545368Z INFO risc0_zkvm::host::server::session: 1312817152 total cycles
2025-10-03T09:13:44.545371Z INFO risc0_zkvm::host::server::session: 1018727532 user cycles (77.60%)
2025-10-03T09:13:44.545376Z INFO risc0_zkvm::host::server::session: 257699779 paging cycles (19.63%)
2025-10-03T09:13:44.545379Z INFO risc0_zkvm::host::server::session: 36389841 reserved cycles (2.77%)
2025-10-03T09:13:44.545382Z INFO risc0_zkvm::host::server::session: ecalls
2025-10-03T09:13:44.545386Z INFO risc0_zkvm::host::server::session: 691427 Sha2 calls, 51165598 cycles, (3.90%)
2025-10-03T09:13:44.545389Z INFO risc0_zkvm::host::server::session: 658563 BigInt calls, 45679701 cycles, (3.48%)
2025-10-03T09:13:44.545392Z INFO risc0_zkvm::host::server::session: 277766 Read calls, 2277026 cycles, (0.17%)
2025-10-03T09:13:44.545394Z INFO risc0_zkvm::host::server::session: 1 Terminate calls, 2 cycles, (0.00%)
2025-10-03T09:13:44.545397Z INFO risc0_zkvm::host::server::session: 0 Write calls, 0 cycles, (0.00%)
2025-10-03T09:13:44.545399Z INFO risc0_zkvm::host::server::session: 0 User calls, 0 cycles, (0.00%)
2025-10-03T09:13:44.545401Z INFO risc0_zkvm::host::server::session: 0 Poseidon2 calls, 0 cycles, (0.00%)
2025-10-03T09:13:44.545404Z INFO risc0_zkvm::host::server::session: syscalls
2025-10-03T09:13:44.545407Z INFO risc0_zkvm::host::server::session: 86279 Keccak calls
2025-10-03T09:13:44.545410Z INFO risc0_zkvm::host::server::session: 52418 Read calls
2025-10-03T09:13:44.545414Z INFO risc0_zkvm::host::server::session: 132 ProveKeccak calls
2025-10-03T09:13:44.545416Z INFO risc0_zkvm::host::server::session: 85 Write calls
2025-10-03T09:13:44.545419Z INFO risc0_zkvm::host::server::session: 1 VerifyIntegrity2 calls
2025-10-03T09:13:44.545421Z INFO risc0_zkvm::host::server::session: 0 VerifyIntegrity calls
2025-10-03T09:13:45.093507Z INFO ere_dockerized: Copying pprof result file to /home/ethereum/zkevm-benchmark-workload/crates/ere-hosts
2025-10-03T09:13:45.097960Z INFO benchmark_runner::runner: Saving report rpc_block_23439901
```
#### [ZETH trie](https://github.com/eth-act/zkvm-ethereum-mpt/blob/v0.1.0/crates/sparsestate/src/lib.rs#L119)
```
ZETH defer storage init
2025-10-03T08:58:21.527136Z INFO ere_risc0::compile: Risc0 program compiled OK - 6687152 bytes
2025-10-03T08:58:21.527161Z INFO ere_risc0::compile: Image ID - 190be9e178f24b655754c5655faa2d2f760270614dc9740bf7a0813a04eaa35f
2025-10-03T08:58:28.432775Z INFO benchmark_runner::runner: Running rpc_block_23439901
start reading_input
reading_input (cycle tracker): 15169717
public_inputs_preparation
public_inputs_preparation (cycle tracker): 1805
start public_keys_validation
public_keys_validation (cycle tracker): 52459309
start stateless_validation
stateless_validation (cycle tracker): 599165107
start commit_public_inputs
commit_public_inputs (cycle tracker): 10818
2025-10-03T09:00:15.752500Z INFO risc0_zkvm::host::server::exec::executor: execution time: 105.682839317s
2025-10-03T09:00:15.752536Z INFO risc0_zkvm::host::server::session: number of segments: 784
2025-10-03T09:00:15.752540Z INFO risc0_zkvm::host::server::session: 822083584 total cycles
2025-10-03T09:00:15.752543Z INFO risc0_zkvm::host::server::session: 666833738 user cycles (81.12%)
2025-10-03T09:00:15.752559Z INFO risc0_zkvm::host::server::session: 131963186 paging cycles (16.05%)
2025-10-03T09:00:15.752563Z INFO risc0_zkvm::host::server::session: 23286660 reserved cycles (2.83%)
2025-10-03T09:00:15.752566Z INFO risc0_zkvm::host::server::session: ecalls
2025-10-03T09:00:15.752570Z INFO risc0_zkvm::host::server::session: 691195 Sha2 calls, 51148430 cycles, (6.22%)
2025-10-03T09:00:15.752573Z INFO risc0_zkvm::host::server::session: 658563 BigInt calls, 45679701 cycles, (5.56%)
2025-10-03T09:00:15.752576Z INFO risc0_zkvm::host::server::session: 277708 Read calls, 2276504 cycles, (0.28%)
2025-10-03T09:00:15.752579Z INFO risc0_zkvm::host::server::session: 1 Terminate calls, 2 cycles, (0.00%)
2025-10-03T09:00:15.752581Z INFO risc0_zkvm::host::server::session: 0 Write calls, 0 cycles, (0.00%)
2025-10-03T09:00:15.752584Z INFO risc0_zkvm::host::server::session: 0 User calls, 0 cycles, (0.00%)
2025-10-03T09:00:15.752586Z INFO risc0_zkvm::host::server::session: 0 Poseidon2 calls, 0 cycles, (0.00%)
2025-10-03T09:00:15.752589Z INFO risc0_zkvm::host::server::session: syscalls
2025-10-03T09:00:15.752592Z INFO risc0_zkvm::host::server::session: 86250 Keccak calls
2025-10-03T09:00:15.752596Z INFO risc0_zkvm::host::server::session: 52418 Read calls
2025-10-03T09:00:15.752598Z INFO risc0_zkvm::host::server::session: 132 ProveKeccak calls
2025-10-03T09:00:15.752600Z INFO risc0_zkvm::host::server::session: 85 Write calls
2025-10-03T09:00:15.752603Z INFO risc0_zkvm::host::server::session: 1 VerifyIntegrity2 calls
2025-10-03T09:00:15.752606Z INFO risc0_zkvm::host::server::session: 0 VerifyIntegrity calls
2025-10-03T09:00:16.248365Z INFO ere_dockerized: Copying pprof result file to /home/ethereum/zkevm-benchmark-workload/crates/ere-hosts
2025-10-03T09:00:16.256154Z INFO benchmark_runner::runner: Saving report rpc_block_23439901
```
#### [ZETH trie w/o storage trie init defering](https://github.com/rodiazet/zkvm-ethereum-mpt/blob/b03704241a083df4752342f4fcd0ec6b3cd3ac09/crates/sparsestate/src/lib.rs#L119)
```
ZETH no defer storage init
start reading_input
reading_input (cycle tracker): 15169717
public_inputs_preparation
public_inputs_preparation (cycle tracker): 1805
start public_keys_validation
public_keys_validation (cycle tracker): 52459309
start stateless_validation
stateless_validation (cycle tracker): 601957464
start commit_public_inputs
commit_public_inputs (cycle tracker): 10818
2025-10-02T14:09:05.535854Z INFO risc0_zkvm::host::server::exec::executor: execution time: 107.986201834s
2025-10-02T14:09:05.535898Z INFO risc0_zkvm::host::server::session: number of segments: 784
2025-10-02T14:09:05.535902Z INFO risc0_zkvm::host::server::session: 821166080 total cycles
2025-10-02T14:09:05.535906Z INFO risc0_zkvm::host::server::session: 669621385 user cycles (81.55%)
2025-10-02T14:09:05.535910Z INFO risc0_zkvm::host::server::session: 128729429 paging cycles (15.68%)
2025-10-02T14:09:05.535914Z INFO risc0_zkvm::host::server::session: 22815266 reserved cycles (2.78%)
2025-10-02T14:09:05.535917Z INFO risc0_zkvm::host::server::session: ecalls
2025-10-02T14:09:05.535920Z INFO risc0_zkvm::host::server::session: 695508 Sha2 calls, 51467592 cycles, (6.27%)
2025-10-02T14:09:05.535924Z INFO risc0_zkvm::host::server::session: 658563 BigInt calls, 45679701 cycles, (5.56%)
2025-10-02T14:09:05.535926Z INFO risc0_zkvm::host::server::session: 278786 Read calls, 2286193 cycles, (0.28%)
2025-10-02T14:09:05.535929Z INFO risc0_zkvm::host::server::session: 1 Terminate calls, 2 cycles, (0.00%)
2025-10-02T14:09:05.535932Z INFO risc0_zkvm::host::server::session: 0 Write calls, 0 cycles, (0.00%)
2025-10-02T14:09:05.535934Z INFO risc0_zkvm::host::server::session: 0 User calls, 0 cycles, (0.00%)
2025-10-02T14:09:05.535936Z INFO risc0_zkvm::host::server::session: 0 Poseidon2 calls, 0 cycles, (0.00%)
2025-10-02T14:09:05.535939Z INFO risc0_zkvm::host::server::session: syscalls
2025-10-02T14:09:05.535942Z INFO risc0_zkvm::host::server::session: 86788 Keccak calls
2025-10-02T14:09:05.535945Z INFO risc0_zkvm::host::server::session: 52418 Read calls
2025-10-02T14:09:05.535947Z INFO risc0_zkvm::host::server::session: 133 ProveKeccak calls
2025-10-02T14:09:05.535949Z INFO risc0_zkvm::host::server::session: 85 Write calls
2025-10-02T14:09:05.535952Z INFO risc0_zkvm::host::server::session: 1 VerifyIntegrity2 calls
2025-10-02T14:09:05.535954Z INFO risc0_zkvm::host::server::session: 0 VerifyIntegrity calls
2025-10-02T14:09:06.054470Z INFO ere_dockerized: Copying pprof result file to /home/ethereum/zkevm-benchmark-workload/crates/ere-hosts
2025-10-02T14:09:06.061462Z INFO benchmark_runner::runner: Saving report rpc_block_23439901
```
#### [ZETH trie w/o storage trie init defering and w/o caching](https://github.com/rodiazet/zkvm-ethereum-mpt/blob/2006517d522297ec67494aff8fa14702ff22c3a1/crates/sparsestate/src/lib.rs#L119)
```
ZETH no defer storage init and no cache
2025-10-03T09:40:15.777659Z INFO ere_risc0::compile: Risc0 program compiled OK - 6702392 bytes
2025-10-03T09:40:15.777681Z INFO ere_risc0::compile: Image ID - e5c1ae7f76006256d38320db5ef5b8a18bcad586b9aba142d880074850cb48c5
2025-10-03T09:40:22.768006Z INFO benchmark_runner::runner: Running rpc_block_23439901
start reading_input
reading_input (cycle tracker): 15162873
public_inputs_preparation
public_inputs_preparation (cycle tracker): 1805
start public_keys_validation
public_keys_validation (cycle tracker): 52459309
start stateless_validation
stateless_validation (cycle tracker): 1031923733
start commit_public_inputs
commit_public_inputs (cycle tracker): 10818
2025-10-03T09:43:17.348351Z INFO risc0_zkvm::host::server::exec::executor: execution time: 172.897787648s
2025-10-03T09:43:17.348390Z INFO risc0_zkvm::host::server::session: number of segments: 1228
2025-10-03T09:43:17.348394Z INFO risc0_zkvm::host::server::session: 1286864896 total cycles
2025-10-03T09:43:17.348397Z INFO risc0_zkvm::host::server::session: 1099589457 user cycles (85.45%)
2025-10-03T09:43:17.348402Z INFO risc0_zkvm::host::server::session: 151534180 paging cycles (11.78%)
2025-10-03T09:43:17.348405Z INFO risc0_zkvm::host::server::session: 35741259 reserved cycles (2.78%)
2025-10-03T09:43:17.348408Z INFO risc0_zkvm::host::server::session: ecalls
2025-10-03T09:43:17.348412Z INFO risc0_zkvm::host::server::session: 1773705 Sha2 calls, 131254170 cycles, (10.20%)
2025-10-03T09:43:17.348415Z INFO risc0_zkvm::host::server::session: 658563 BigInt calls, 45679701 cycles, (3.55%)
2025-10-03T09:43:17.348418Z INFO risc0_zkvm::host::server::session: 548284 Read calls, 4709010 cycles, (0.37%)
2025-10-03T09:43:17.348420Z INFO risc0_zkvm::host::server::session: 1 Terminate calls, 2 cycles, (0.00%)
2025-10-03T09:43:17.348423Z INFO risc0_zkvm::host::server::session: 0 Write calls, 0 cycles, (0.00%)
2025-10-03T09:43:17.348425Z INFO risc0_zkvm::host::server::session: 0 User calls, 0 cycles, (0.00%)
2025-10-03T09:43:17.348428Z INFO risc0_zkvm::host::server::session: 0 Poseidon2 calls, 0 cycles, (0.00%)
2025-10-03T09:43:17.348430Z INFO risc0_zkvm::host::server::session: syscalls
2025-10-03T09:43:17.348434Z INFO risc0_zkvm::host::server::session: 221332 Keccak calls
2025-10-03T09:43:17.348437Z INFO risc0_zkvm::host::server::session: 52418 Read calls
2025-10-03T09:43:17.348439Z INFO risc0_zkvm::host::server::session: 338 ProveKeccak calls
2025-10-03T09:43:17.348441Z INFO risc0_zkvm::host::server::session: 85 Write calls
2025-10-03T09:43:17.348444Z INFO risc0_zkvm::host::server::session: 1 VerifyIntegrity2 calls
2025-10-03T09:43:17.348446Z INFO risc0_zkvm::host::server::session: 0 VerifyIntegrity calls
2025-10-03T09:43:18.371691Z INFO ere_dockerized: Copying pprof result file to /home/ethereum/zkevm-benchmark-workload/crates/ere-hosts
2025-10-03T09:43:18.379901Z INFO benchmark_runner::runner: Saving report rpc_block_23439901
```
#### [Trie benchmark (default reth trie and zeth trie (no defer storage init))](https://github.com/eth-act/zkevm-benchmark-workload/blob/59d15c06d16820300d29aa578ccc12cd7792fc0b/ere-guests/trie-bench/risc0/src/main.rs)
```
create_stateless_trie reth_stateless::trie::StatelessSparseTrie
create_stateless_trie reth_stateless::trie::StatelessSparseTrie (cycle tracker): 443742861
account_bench reth_stateless::trie::StatelessSparseTrie
account_bench reth_stateless::trie::StatelessSparseTrie (cycle tracker): 2190417
storage_bench reth_stateless::trie::StatelessSparseTrie
storage_bench reth_stateless::trie::StatelessSparseTrie (cycle tracker): 15176893
create_stateless_trie sparsestate::SparseState
create_stateless_trie sparsestate::SparseState (cycle tracker): 220381358
account_bench sparsestate::SparseState
account_bench sparsestate::SparseState (cycle tracker): 2223666
storage_bench sparsestate::SparseState
storage_bench sparsestate::SparseState (cycle tracker): 12322919
```