# Integrating block operations with RISC Zero (and some early benchmarks)
Date: 2025-04-11
By: [unnawut](http://twitter.com/unnawut)
## TLDR
Similar to @junsong 's [work on SP1](https://hackmd.io/@reamlabs/By9EzgXi1l), I've integrated and benchmarked ReamLabs' implementation of beacon chain [state transition functions](https://github.com/ReamLabs/ream/tree/master/crates/common/consensus/src) within [RISC Zero zkVM](https://risczero.com/).
Similarly, I explored 2 questions:
1. Can zkVM successfully run STFs (state transition functions)?
2. How many cycles are needed for each operation?
### Findings:
- **Beacon STFs:** While SP1's implementation can handle 2^40-sized lists out of the box, RISC Zero failed at both large list instantiation and merkleization. [Workarounds on the beacon state were needed](https://github.com/ReamLabs/consenzero-bench/pull/4/files#diff-4cd203987fc93094d4f88b0117346a2aff633d43cc20d80bfe65501fe6ddac17) to get the benchmarks working, but renders them non-conformant and under-speccing the beacon specs.
- **Compute cycles:** I have no knowledge whether cycles of different zkVMs are comparable at all. But to compare them as they are, generally RISC Zero takes more cycles to read the pre-state, but takes less cycles to execute a transition function than SP1's implementation.
- **Early returns:** Early returns e.g. negative test cases that return early have insignificant effect on the cycles taken nor the execution time, unlike [SP1's benchmark](https://hackmd.io/@reamlabs/By9EzgXi1l#Appendix-Benchmarks).
- **Execution time:** Most operations took generally 20 seconds to execute, except for `SyncAggregate` which [took roughly 95 seconds](https://hackmd.io/@reamlabs/By9EzgXi1l#Appendix-Benchmarks). A fair result since `process_sync_aggregate()` [traverses over a couple of large lists to verify the committee's signature aggregate, collect the committee's pubkeys, and apply rewards](https://github.com/ReamLabs/ream/blob/74d16dfcea7757e389fad15ccc6d8f89db817cfd/crates/common/consensus/src/deneb/beacon_state.rs#L1121-L1189).
- **Total execution time:** We are looking at ~69 seconds for block processing (see [calculations](https://docs.google.com/spreadsheets/d/1ptnGiZLDBjqC8Vr08wHDH-Oo2HdR17qccnUdh92ukx8/edit?gid=1444040090#gid=1444040090)) excluding the operations listed below. This number is calculated by summing the averages of read pre-state, merkleize and commit while summing the read operation and process time of each operation.
- **Benchmark skewing:** Since the `BeaconState` workarounds were needed especially on extremely large lists like the validator registry, it is likely that the benchmark results are overly optimistic as the benchmark code does not traverse over or merkleize extremely large lists.
### Excluded operations
STFs that are not part of the benchmark yet:
- Parts of `process_block()`:
- `process_execution_payload()`
- `process_withdrawals()`
- `process_randao()`
- `process_eth1_data()`
- `process_epoch()` and its sub-operations
- `process_slot()`
### Code
See the full code at https://github.com/ReamLabs/consenzero-bench/pull/4
## Details
### Run benchmark
```shell
git clone https://github.com/ReamLabs/consenzero-bench.git
cd host
make download
make run-attestation
```
To run the benchmark for all operations, run `make all` instead of `make run-attestation`.
## Next
Potential future work:
- Benchmark the rest of excluded operations above
- Find a fix for lists of size 2^40 within risc0 guest, figure out why it's different from SP1's behavior
- Use [risc0-provided precompiles](https://dev.risczero.com/api/zkvm/precompiles) such as `risc0/zkcrypto-bls12_381`
- Explore why early returns do not result in decreased number of cycles and execution time
## Appendix: Benchmark Results
### Attestation
| Operation | Test Case | Read Pre-State | Read Operation | Process | Merkleize | Commit | Total Cycles | Execution Time |
|-----------|-----------|----------------|----------------|---------|-----------|--------|--------------|----------------|
attestation | at_max_inclusion_slot | 46951041 | 9313 | 2068987 | 902134398 | 1013 | 951167972 | 20.945325334s |
attestation | correct_attestation_included_at_max_inclusion_slot | 46949445 | 9313 | 2068816 | 902102375 | 1013 | 951134182 | 21.14637525s |
attestation | correct_attestation_included_at_min_inclusion_delay | 46949445 | 9313 | 2068803 | 902102375 | 1013 | 951134169 | 21.326215s |
attestation | correct_attestation_included_at_one_epoch_delay | 46949445 | 9313 | 2068816 | 902102375 | 1013 | 951134182 | 21.306923125s |
attestation | correct_attestation_included_at_sqrt_epoch_delay | 46949445 | 9313 | 2068803 | 902102375 | 1013 | 951134169 | 21.182456625s |
attestation | incorrect_head_and_target_included_at_epoch_delay | 46949445 | 9313 | 2068816 | 902102375 | 1013 | 951134182 | 21.26349425s |
attestation | incorrect_head_and_target_included_at_sqrt_epoch_delay | 46949445 | 9313 | 2068803 | 902102375 | 1013 | 951134169 | 21.071597333s |
attestation | incorrect_head_and_target_min_inclusion_delay | 46949445 | 9313 | 2068803 | 902102375 | 1013 | 951134169 | 21.049599208s |
attestation | incorrect_head_included_at_max_inclusion_slot | 46949445 | 9313 | 2068816 | 902102375 | 1013 | 951134182 | 21.021552625s |
attestation | incorrect_head_included_at_min_inclusion_delay | 46949445 | 9313 | 2068803 | 902102375 | 1013 | 951134169 | 21.249822375s |
attestation | incorrect_head_included_at_sqrt_epoch_delay | 46949445 | 9313 | 2068803 | 902102375 | 1013 | 951134169 | 21.653023458s |
attestation | incorrect_target_included_at_epoch_delay | 46949445 | 9313 | 2068816 | 902102375 | 1013 | 951134182 | 21.083295667s |
attestation | incorrect_target_included_at_min_inclusion_delay | 46949445 | 9313 | 2068803 | 902102375 | 1013 | 951134169 | 21.147822042s |
attestation | incorrect_target_included_at_sqrt_epoch_delay | 46949445 | 9313 | 2068803 | 902102375 | 1013 | 951134169 | 21.513312792s |
attestation | invalid_after_max_inclusion_slot | 46951041 | 9313 | 2063693 | 902134398 | 1013 | 951162678 | 21.457018875s |
attestation | invalid_attestation_signature | 46949445 | 9316 | 2068803 | 902102375 | 1013 | 951134172 | 21.20387575s |
attestation | invalid_bad_source_root | 46949445 | 9313 | 2068803 | 902102375 | 1013 | 951134169 | 21.096296417s |
attestation | invalid_before_inclusion_delay | 46949445 | 9313 | 2063526 | 902102375 | 1013 | 951128892 | 21.094976375s |
attestation | invalid_correct_attestation_included_after_max_inclusion_slot | 46949445 | 9313 | 2063522 | 902102375 | 1013 | 951128888 | 21.92022625s |
attestation | invalid_current_source_root | 46949445 | 9313 | 2068803 | 902102375 | 1013 | 951134169 | 21.021565417s |
attestation | invalid_empty_participants_seemingly_valid_sig | 46949445 | 9317 | 2068803 | 902102375 | 1013 | 951134173 | 21.114277666s |
attestation | invalid_empty_participants_zeroes_sig | 46949445 | 9320 | 2068803 | 902102375 | 1013 | 951134176 | 21.201474959s |
attestation | invalid_future_target_epoch | 46949445 | 9313 | 2063522 | 902102375 | 1013 | 951128888 | 21.279273458s |
attestation | invalid_incorrect_head_and_target_included_after_max_inclusion_slot | 46949445 | 9313 | 2063522 | 902102375 | 1013 | 951128888 | 21.706639208s |
attestation | invalid_incorrect_head_included_after_max_inclusion_slot | 46949445 | 9313 | 2063522 | 902102375 | 1013 | 951128888 | 21.113195833s |
attestation | invalid_incorrect_target_included_after_max_inclusion_slot | 46949445 | 9313 | 2063522 | 902102375 | 1013 | 951128888 | 21.397978667s |
attestation | invalid_index | 46949445 | 9316 | 2063587 | 902102375 | 1013 | 951128956 | 20.917019042s |
attestation | invalid_mismatched_target_and_slot | 46952599 | 9313 | 2063807 | 902166415 | 1013 | 951196367 | 20.940857459s |
attestation | invalid_new_source_epoch | 46949445 | 9313 | 2068803 | 902102375 | 1013 | 951134169 | 21.077740667s |
attestation | invalid_old_source_epoch | 46949445 | 9313 | 2063522 | 902102375 | 1013 | 951128888 | 21.186866542s |
attestation | invalid_old_target_epoch | 46949445 | 9313 | 2063522 | 902102375 | 1013 | 951128888 | 21.09252075s |
attestation | invalid_previous_source_root | 46949445 | 9313 | 2068816 | 902102375 | 1013 | 951134182 | 21.0044965s |
attestation | invalid_source_root_is_target_root | 46949445 | 9313 | 2068803 | 902102375 | 1013 | 951134169 | 21.30968925s |
attestation | invalid_too_few_aggregation_bits | 46949445 | 9137 | 2068803 | 902102375 | 1013 | 951133993 | 21.691313708s |
attestation | invalid_too_many_aggregation_bits | 46949445 | 9314 | 2068803 | 902102375 | 1013 | 951134170 | 21.026694583s |
attestation | invalid_wrong_index_for_committee_signature | 46949445 | 9316 | 2063587 | 902102375 | 1013 | 951128956 | 21.040332834s |
attestation | invalid_wrong_index_for_slot_0 | 46949445 | 9316 | 2063587 | 902102375 | 1013 | 951128956 | 21.642843292s |
attestation | invalid_wrong_index_for_slot_1 | 46949445 | 9316 | 2063587 | 902102375 | 1013 | 951128956 | 21.159867709s |
attestation | one_basic_attestation | 46949445 | 9313 | 2068803 | 902102375 | 1013 | 951134169 | 20.866199792s |
attestation | previous_epoch | 46951041 | 9313 | 2068987 | 902134398 | 1013 | 951167972 | 21.115847167s |
### AttesterSlashing
| Operation | Test Case | Read Pre-State | Read Operation | Process | Merkleize | Commit | Total Cycles | Execution Time |
|-----------|-----------|----------------|----------------|---------|-----------|--------|--------------|----------------|
attester_slashing | already_exited_long_ago | 46949445 | 16969 | 2596007 | 901681374 | 1013 | 951248028 | 21.133734125s |
attester_slashing | already_exited_recent | 46949445 | 16969 | 2596007 | 901681374 | 1013 | 951248028 | 21.173977167s |
attester_slashing | attestation_from_future | 46949445 | 16969 | 2596007 | 901681374 | 1013 | 951248028 | 21.3420245s |
attester_slashing | basic_double | 46949445 | 16969 | 2596007 | 901681374 | 1013 | 951248028 | 21.163904833s |
attester_slashing | basic_surround | 46951041 | 16969 | 2595915 | 901713397 | 1013 | 951281555 | 21.19834375s |
attester_slashing | invalid_all_empty_indices | 46949445 | 14119 | 2064115 | 902102375 | 1013 | 951134287 | 21.239223792s |
attester_slashing | invalid_att1_bad_extra_index | 46949445 | 17143 | 2596019 | 901681374 | 1013 | 951248214 | 21.064507125s |
attester_slashing | invalid_att1_bad_replaced_index | 46949445 | 16969 | 2596007 | 901681374 | 1013 | 951248028 | 21.032965416s |
attester_slashing | invalid_att1_duplicate_index_double_signed | 46949445 | 16969 | 2064236 | 902102375 | 1013 | 951137258 | 21.658208958s |
attester_slashing | invalid_att1_duplicate_index_normal_signed | 46949445 | 16969 | 2064224 | 902102375 | 1013 | 951137246 | 21.091638541s |
attester_slashing | invalid_att1_empty_indices | 46949445 | 15544 | 2064121 | 902102375 | 1013 | 951135718 | 21.427454083s |
attester_slashing | invalid_att1_high_index | 46949445 | 17143 | 2596019 | 901681374 | 1013 | 951248214 | 21.0830835s |
attester_slashing | invalid_att2_bad_extra_index | 46949445 | 17143 | 2596007 | 901681374 | 1013 | 951248202 | 21.568851375s |
attester_slashing | invalid_att2_bad_replaced_index | 46949445 | 16969 | 2596007 | 901681374 | 1013 | 951248028 | 21.269970667s |
attester_slashing | invalid_att2_duplicate_index_double_signed | 46949445 | 16969 | 2596007 | 901681374 | 1013 | 951248028 | 21.214034167s |
attester_slashing | invalid_att2_duplicate_index_normal_signed | 46949445 | 16969 | 2596007 | 901681374 | 1013 | 951248028 | 21.209318625s |
attester_slashing | invalid_att2_empty_indices | 46949445 | 15544 | 2596001 | 901681374 | 1013 | 951246597 | 21.17934125s |
attester_slashing | invalid_att2_high_index | 46949445 | 17143 | 2596007 | 901681374 | 1013 | 951248202 | 21.193059167s |
attester_slashing | invalid_incorrect_sig_1 | 46949445 | 16972 | 2596007 | 901681374 | 1013 | 951248031 | 21.637917125s |
attester_slashing | invalid_incorrect_sig_1_and_2 | 46949445 | 16975 | 2596007 | 901681374 | 1013 | 951248034 | 21.104282667s |
attester_slashing | invalid_incorrect_sig_2 | 46949445 | 16969 | 2596007 | 901681374 | 1013 | 951248028 | 21.260193667s |
attester_slashing | invalid_no_double_or_surround | 46949445 | 16969 | 2064081 | 902102375 | 1013 | 951137103 | 21.474313166s |
attester_slashing | invalid_participants_already_slashed | 46949453 | 16969 | 2596007 | 901681374 | 1013 | 951248036 | 21.5897305s |
attester_slashing | invalid_same_data | 46949445 | 16969 | 2064305 | 902102375 | 1013 | 951137327 | 21.168564792s |
attester_slashing | invalid_unsorted_att_1 | 46949445 | 16969 | 2064230 | 902102375 | 1013 | 951137252 | 21.249876417s |
attester_slashing | invalid_unsorted_att_2 | 46949445 | 16969 | 2596007 | 901681374 | 1013 | 951248028 | 21.364061292s |
attester_slashing | low_balances | 46949445 | 16969 | 2596007 | 901681374 | 1013 | 951248028 | 21.759899833s |
attester_slashing | misc_balances | 46949445 | 16273 | 2595983 | 901681374 | 1013 | 951247308 | 21.214858791s |
attester_slashing | proposer_index_slashed | 46951041 | 14533 | 2596094 | 901713397 | 1013 | 951279298 | 21.303822542s |
attester_slashing | with_effective_balance_disparity | 46949445 | 16273 | 2595983 | 901681374 | 1013 | 951247308 | 21.511466625s |
### BlockHeader
| Operation | Test Case | Read Pre-State | Read Operation | Process | Merkleize | Commit | Total Cycles | Execution Time |
|-----------|-----------|----------------|----------------|---------|-----------|--------|--------------|----------------|
block_header | basic_block_header | 46949445 | 46610 | 2073605 | 902102375 | 1013 | 951176268 | 22.271106416s |
block_header | invalid_multiple_blocks_single_slot | 46949445 | 46610 | 2063903 | 902102375 | 1013 | 951166566 | 21.836859958s |
block_header | invalid_parent_root | 46949445 | 46610 | 2073605 | 902102375 | 1013 | 951176268 | 21.789772791s |
block_header | invalid_proposer_index | 46949445 | 46610 | 2073605 | 902102375 | 1013 | 951176268 | 21.598499417s |
block_header | invalid_proposer_slashed | 46949446 | 46610 | 2073605 | 902102375 | 1013 | 951176269 | 21.677046792s |
block_header | invalid_slot_block_header | 46949445 | 46610 | 2063898 | 902102375 | 1013 | 951166561 | 21.313484834s |
### BLSToExecutionChange
| Operation | Test Case | Read Pre-State | Read Operation | Process | Merkleize | Commit | Total Cycles | Execution Time |
|-----------|-----------|----------------|----------------|---------|-----------|--------|--------------|----------------|
bls_to_execution_change | genesis_fork_version | 46949445 | 5785 | 2064249 | 902102375 | 1013 | 951126087 | 21.183957292s |
bls_to_execution_change | invalid_already_0x01 | 46949445 | 5785 | 2064316 | 902102375 | 1013 | 951126154 | 21.187268042s |
bls_to_execution_change | invalid_bad_signature | 46949445 | 5785 | 2064249 | 902102375 | 1013 | 951126087 | 20.925975416s |
bls_to_execution_change | invalid_current_fork_version | 46949445 | 5785 | 2064249 | 902102375 | 1013 | 951126087 | 21.070619792s |
bls_to_execution_change | invalid_genesis_validators_root | 46949445 | 5785 | 2064249 | 902102375 | 1013 | 951126087 | 21.2142425s |
bls_to_execution_change | invalid_incorrect_from_bls_pubkey | 46949445 | 5785 | 2064249 | 902102375 | 1013 | 951126087 | 21.205106875s |
bls_to_execution_change | invalid_previous_fork_version | 46949445 | 5785 | 2064249 | 902102375 | 1013 | 951126087 | 21.479228542s |
bls_to_execution_change | invalid_val_index_out_of_range | 46949445 | 5785 | 2064316 | 902102375 | 1013 | 951126154 | 21.191799708s |
bls_to_execution_change | success | 46949445 | 5785 | 2064249 | 902102375 | 1013 | 951126087 | 21.108531833s |
bls_to_execution_change | success_exited | 46949445 | 5785 | 2064249 | 902102375 | 1013 | 951126087 | 21.078447s |
bls_to_execution_change | success_in_activation_queue | 46949445 | 5785 | 2064249 | 902102375 | 1013 | 951126087 | 21.165147917s |
bls_to_execution_change | success_in_exit_queue | 46949445 | 5785 | 2064249 | 902102375 | 1013 | 951126087 | 21.285750458s |
bls_to_execution_change | success_not_activated | 46949445 | 5785 | 2064249 | 902102375 | 1013 | 951126087 | 21.087250667s |
bls_to_execution_change | success_withdrawable | 46949445 | 5785 | 2064249 | 902102375 | 1013 | 951126087 | 21.073324667s |
### Deposit
| Operation | Test Case | Read Pre-State | Read Operation | Process | Merkleize | Commit | Total Cycles | Execution Time |
|-----------|-----------|----------------|----------------|---------|-----------|--------|--------------|----------------|
deposit | correct_sig_but_forked_state | 46949445 | 23395 | 225462389 | 901681424 | 1016 | 1174120942 | 27.159794125s |
deposit | effective_deposit_with_genesis_fork_version | 46949445 | 23395 | 225462389 | 901681424 | 1016 | 1174120942 | 26.653638708s |
deposit | incorrect_sig_new_deposit | 46949445 | 23398 | 144279843 | 901681424 | 1016 | 1092938399 | 24.833346625s |
deposit | incorrect_sig_top_up | 46949445 | 23398 | 144279839 | 901681424 | 1016 | 1092938395 | 24.726540875s |
deposit | incorrect_withdrawal_credentials_top_up | 46949445 | 23398 | 144279840 | 901681424 | 1016 | 1092938396 | 24.513754167s |
deposit | ineffective_deposit_with_bad_fork_version | 46949445 | 23395 | 225460345 | 901681424 | 1016 | 1174118898 | 26.947006083s |
deposit | ineffective_deposit_with_current_fork_version | 46949445 | 23395 | 225460340 | 901681424 | 1016 | 1174118893 | 27.058861333s |
deposit | ineffective_deposit_with_previous_fork_version | 46949445 | 23395 | 225460341 | 901681424 | 1016 | 1174118894 | 26.257233333s |
deposit | invalid_bad_merkle_proof | 46949445 | 23395 | 2884776 | 901681374 | 1013 | 951543223 | 21.901832917s |
deposit | invalid_wrong_deposit_for_deposit_count | 46949445 | 23395 | 2884773 | 901681374 | 1013 | 951543220 | 21.710997834s |
deposit | key_validate_invalid_decompression | 46949445 | 23395 | 42410899 | 901681374 | 1013 | 991069346 | 22.034511459s |
deposit | key_validate_invalid_subgroup | 46949445 | 23398 | 42410639 | 901681374 | 1013 | 991069089 | 22.028026167s |
deposit | new_deposit_eth1_withdrawal_credentials | 46949445 | 23395 | 225462400 | 901681424 | 1016 | 1174120953 | 26.832946125s |
deposit | new_deposit_max | 46949445 | 23395 | 225462389 | 901681424 | 1016 | 1174120942 | 27.464695166s |
deposit | new_deposit_non_versioned_withdrawal_credentials | 46949445 | 23395 | 225462393 | 901681424 | 1016 | 1174120946 | 26.280727083s |
deposit | new_deposit_over_max | 46949445 | 23395 | 225462397 | 901681424 | 1016 | 1174120950 | 25.962010458s |
deposit | new_deposit_under_max | 46949445 | 23395 | 225462416 | 901681424 | 1016 | 1174120969 | 27.043991875s |
deposit | success_top_up_to_withdrawn_validator | 46952599 | 23395 | 225462672 | 901745464 | 1016 | 1174188419 | 27.2920465s |
deposit | top_up__less_effective_balance | 46949445 | 23395 | 225462385 | 901681424 | 1016 | 1174120938 | 26.186673958s |
deposit | top_up__max_effective_balance | 46949445 | 23395 | 225462385 | 901681424 | 1016 | 1174120938 | 26.24522075s |
deposit | top_up__zero_balance | 46949445 | 23395 | 225462385 | 901681424 | 1016 | 1174120938 | 26.374407125s |
### ProposerSlashing
| Operation | Test Case | Read Pre-State | Read Operation | Process | Merkleize | Commit | Total Cycles | Execution Time |
|-----------|-----------|----------------|----------------|---------|-----------|--------|--------------|----------------|
proposer_slashing | basic | 46949445 | 12061 | 2063517 | 902102375 | 1013 | 951131631 | 21.446020916s |
proposer_slashing | block_header_from_future | 46949445 | 12061 | 2063517 | 902102375 | 1013 | 951131631 | 21.551525167s |
proposer_slashing | invalid_different_proposer_indices | 46949445 | 12061 | 2063496 | 902102375 | 1013 | 951131610 | 21.361049709s |
proposer_slashing | invalid_headers_are_same_sigs_are_different | 46949445 | 12061 | 2064217 | 902102375 | 1013 | 951132331 | 21.483360833s |
proposer_slashing | invalid_headers_are_same_sigs_are_same | 46949445 | 12061 | 2064217 | 902102375 | 1013 | 951132331 | 21.616782584s |
proposer_slashing | invalid_incorrect_proposer_index | 46949445 | 12061 | 2063517 | 902102375 | 1013 | 951131631 | 21.649334333s |
proposer_slashing | invalid_incorrect_sig_1 | 46949445 | 12064 | 2063517 | 902102375 | 1013 | 951131634 | 21.865930833s |
proposer_slashing | invalid_incorrect_sig_1_and_2 | 46949445 | 12067 | 2063517 | 902102375 | 1013 | 951131637 | 21.360261542s |
proposer_slashing | invalid_incorrect_sig_1_and_2_swap | 46949445 | 12061 | 2063517 | 902102375 | 1013 | 951131631 | 21.879502917s |
proposer_slashing | invalid_incorrect_sig_2 | 46949445 | 12064 | 2063517 | 902102375 | 1013 | 951131634 | 21.735738875s |
proposer_slashing | invalid_proposer_is_not_activated | 46949445 | 12061 | 2063517 | 902102375 | 1013 | 951131631 | 21.685065125s |
proposer_slashing | invalid_proposer_is_slashed | 46949446 | 12061 | 2063517 | 902102375 | 1013 | 951131632 | 21.369735375s |
proposer_slashing | invalid_proposer_is_withdrawn | 46949445 | 12061 | 2063517 | 902102375 | 1013 | 951131631 | 21.439356875s |
proposer_slashing | invalid_slots_of_different_epochs | 46949445 | 12061 | 2063487 | 902102375 | 1013 | 951131601 | 21.549007s |
proposer_slashing | slashed_and_proposer_index_the_same | 46949445 | 12061 | 2063517 | 902102375 | 1013 | 951131631 | 21.333808625s |
### SyncAggregate
| Operation | Test Case | Read Pre-State | Read Operation | Process | Merkleize | Commit | Total Cycles | Execution Time |
|-----------|-----------|----------------|----------------|---------|-----------|--------|--------------|----------------|
sync_aggregate | invalid_signature_bad_domain | 46951041 | 9156 | 3347483065 | 902134451 | 1081 | 4296582135 | 96.5434905s |
sync_aggregate | invalid_signature_extra_participant | 46951041 | 9156 | 3347483065 | 902134451 | 1081 | 4296582135 | 96.979919958s |
sync_aggregate | invalid_signature_infinite_signature_with_all_participants | 46951041 | 9156 | 3346092017 | 902134451 | 1081 | 4295191087 | 96.424272041s |
sync_aggregate | invalid_signature_infinite_signature_with_single_participant | 46951041 | 9412 | 231133188 | 902134448 | 1016 | 1180232378 | 26.81076975s |
sync_aggregate | invalid_signature_missing_participant | 46951041 | 9156 | 3335291450 | 902134451 | 1016 | 4284390390 | 98.028480709s |
sync_aggregate | invalid_signature_no_participants | 46951041 | 9415 | 143968275 | 902134448 | 1016 | 1093067468 | 24.192591042s |
sync_aggregate | invalid_signature_past_block | 46954157 | 9156 | 3347483293 | 902208092 | 1081 | 4296659120 | 95.972678917s |
sync_aggregate | random_all_but_one_participating_with_duplicates | 46951041 | 9156 | 3347484761 | 902134451 | 1081 | 4296583831 | 97.359798417s |
sync_aggregate | random_high_participation_with_duplicates | 46951041 | 9168 | 3152419002 | 902134451 | 1016 | 4101517954 | 92.545889042s |
sync_aggregate | random_low_participation_with_duplicates | 46951041 | 9332 | 1652850084 | 902134451 | 1016 | 2601949200 | 58.012332542s |
sync_aggregate | random_misc_balances_and_half_participation_with_duplicates | 46951041 | 9172 | 3249951896 | 902134451 | 1016 | 4199050852 | 95.952540458s |
sync_aggregate | random_only_one_participant_with_duplicates | 46951041 | 9412 | 238621753 | 902134448 | 1016 | 1187720943 | 27.037502167s |
sync_aggregate | sync_committee_rewards_duplicate_committee_full_participation | 46951041 | 9156 | 3347484761 | 902134451 | 1081 | 4296583831 | 96.832150625s |
sync_aggregate | sync_committee_rewards_duplicate_committee_half_participation | 46951041 | 9284 | 1786957800 | 902134451 | 1016 | 2736056868 | 61.767214667s |
sync_aggregate | sync_committee_rewards_duplicate_committee_max_effective_balance_only_participate_first_one | 46951041 | 9412 | 232525958 | 902134448 | 1016 | 1181625148 | 26.618901125s |
sync_aggregate | sync_committee_rewards_duplicate_committee_max_effective_balance_only_participate_second_one | 46951041 | 9412 | 232525958 | 902134448 | 1016 | 1181625148 | 27.039573541s |
sync_aggregate | sync_committee_rewards_duplicate_committee_no_participation | 46951041 | 9412 | 2098142 | 902134398 | 1013 | 951197226 | 21.410172708s |
sync_aggregate | sync_committee_rewards_duplicate_committee_zero_balance_only_participate_first_one | 46951041 | 9412 | 232525932 | 902134448 | 1016 | 1181625122 | 26.469489458s |
sync_aggregate | sync_committee_rewards_duplicate_committee_zero_balance_only_participate_second_one | 46951041 | 9412 | 232525932 | 902134448 | 1016 | 1181625122 | 26.066832916s |
sync_aggregate | sync_committee_rewards_empty_participants | 46951041 | 9412 | 2098142 | 902134398 | 1013 | 951197226 | 21.139747208s |
sync_aggregate | sync_committee_rewards_not_full_participants | 46951041 | 9308 | 1829629323 | 902134451 | 1016 | 2778728415 | 62.228480708s |
sync_aggregate | sync_committee_with_nonparticipating_exited_member | 46955715 | 9160 | 3335293506 | 902240109 | 1016 | 4284502782 | 96.100792166s |
sync_aggregate | sync_committee_with_nonparticipating_withdrawable_member | 46955715 | 9160 | 3335293506 | 902240109 | 1016 | 4284502782 | 96.7755775s |
sync_aggregate | sync_committee_with_participating_exited_member | 46955715 | 9156 | 3347485090 | 902240109 | 1081 | 4296694492 | 97.351291583s |
sync_aggregate | sync_committee_with_participating_withdrawable_member | 46955715 | 9156 | 3347485090 | 902240109 | 1081 | 4296694492 | 95.366113541s |
### VoluntaryExit
| Operation | Test Case | Read Pre-State | Read Operation | Process | Merkleize | Commit | Total Cycles | Execution Time |
|-----------|-----------|----------------|----------------|---------|-----------|--------|--------------|----------------|
voluntary_exit | basic | 46949445 | 4077 | 2063266 | 902102375 | 1013 | 951123396 | 21.39809875s |
voluntary_exit | default_exit_epoch_subsequent_exit | 46949445 | 4077 | 2063266 | 902102375 | 1013 | 951123396 | 21.105040541s |
voluntary_exit | invalid_incorrect_signature | 46949445 | 4077 | 2063266 | 902102375 | 1013 | 951123396 | 21.084162208s |
voluntary_exit | invalid_validator_already_exited | 46949445 | 4077 | 2063266 | 902102375 | 1013 | 951123396 | 21.06948825s |
voluntary_exit | invalid_validator_exit_in_future | 46949445 | 4077 | 2063266 | 902102375 | 1013 | 951123396 | 21.1173925s |
voluntary_exit | invalid_validator_incorrect_validator_index | 46949445 | 4077 | 2063266 | 902102375 | 1013 | 951123396 | 21.091872833s |
voluntary_exit | invalid_validator_not_active | 46949445 | 4077 | 2063266 | 902102375 | 1013 | 951123396 | 21.162470458s |
voluntary_exit | invalid_validator_not_active_long_enough | 46949445 | 4077 | 2063266 | 902102375 | 1013 | 951123396 | 21.406543292s |
voluntary_exit | invalid_voluntary_exit_with_current_fork_version_is_before_fork_epoch | 46949445 | 4077 | 2063266 | 902102375 | 1013 | 951123396 | 21.408246292s |
voluntary_exit | invalid_voluntary_exit_with_current_fork_version_not_is_before_fork_epoch | 46949445 | 4077 | 2063266 | 902102375 | 1013 | 951123396 | 21.195314042s |
voluntary_exit | invalid_voluntary_exit_with_genesis_fork_version_is_before_fork_epoch | 46949445 | 4077 | 2063266 | 902102375 | 1013 | 951123396 | 21.246155792s |
voluntary_exit | invalid_voluntary_exit_with_genesis_fork_version_not_is_before_fork_epoch | 46949445 | 4077 | 2063266 | 902102375 | 1013 | 951123396 | 21.30653525s |
voluntary_exit | success_exit_queue__min_churn | 46949445 | 4077 | 2063266 | 902102375 | 1013 | 951123396 | 21.458069333s |
voluntary_exit | voluntary_exit_with_previous_fork_version_is_before_fork_epoch | 46949445 | 4077 | 2063266 | 902102375 | 1013 | 951123396 | 21.370850667s |
voluntary_exit | voluntary_exit_with_previous_fork_version_not_is_before_fork_epoch | 46949445 | 4077 | 2063266 | 902102375 | 1013 | 951123396 | 21.327844s |