EIP-7928 Component Size & Compression Analysis - 1000 Blocks
Dataset
- Blocks Analyzed: 1000 blocks (23,991,474 to 23,992,473)
- Encoding: RLP format
- Compression: Snappy algorithm
Per-Block Component Statistics (KiB)
| Component |
Avg Raw |
Median Raw |
Avg Compressed |
Median Compressed |
Avg Ratio |
Median Ratio |
| Storage Writes |
52.6 |
49.6 |
29.2 |
28.0 |
1.79x |
1.78x |
| Storage Reads |
31.7 |
29.7 |
18.7 |
17.5 |
1.71x |
1.71x |
| Balance Changes |
6.8 |
6.6 |
6.7 |
6.5 |
1.02x |
1.00x |
| Nonce Changes |
1.1 |
1.0 |
1.1 |
1.0 |
0.99x |
1.00x |
| Code Changes |
2.1 |
0.2 |
1.2 |
0.2 |
1.37x |
1.16x |
| Account Addresses (w/ Changes) |
8.1 |
8.0 |
7.7 |
7.6 |
1.05x |
1.05x |
| Touched-Only Addresses |
3.6 |
3.6 |
3.5 |
3.4 |
1.03x |
1.06x |
| RLP Encoding Overhead |
4.6 |
4.5 |
4.4 |
4.3 |
1.05x |
1.05x |
| Full BAL |
110.8 |
106.0 |
72.4 |
70.5 |
1.52x |
1.52x |
Component Size Distribution (KiB)
| Component |
Min Raw |
Max Raw |
Std Dev Raw |
Min Compressed |
Max Compressed |
Std Dev Compressed |
| Storage Writes |
4.5 |
197.0 |
23.7 |
2.8 |
113.8 |
12.8 |
| Storage Reads |
1.2 |
105.7 |
15.0 |
0.9 |
88.9 |
9.2 |
| Balance Changes |
0.7 |
22.4 |
2.8 |
0.7 |
22.4 |
2.7 |
| Nonce Changes |
0.1 |
4.4 |
0.5 |
0.1 |
4.5 |
0.5 |
| Code Changes |
0.0 |
72.6 |
5.6 |
0.0 |
25.3 |
2.9 |
| Account Addresses (w/ Changes) |
1.9 |
29.5 |
3.2 |
1.8 |
28.1 |
3.0 |
| Touched-Only Addresses |
0.8 |
12.6 |
1.4 |
0.8 |
12.2 |
1.3 |
| RLP Encoding Overhead |
1.2 |
16.8 |
2.1 |
1.1 |
16.2 |
2.0 |
| Full BAL |
10.9 |
301.9 |
45.5 |
8.6 |
191.4 |
28.8 |
Compression Ratio Distribution
| Component |
Min Ratio |
Max Ratio |
Std Dev |
25th Percentile |
75th Percentile |
| Storage Writes |
1.54x |
2.86x |
0.12x |
1.74x |
1.83x |
| Storage Reads |
1.07x |
2.33x |
0.16x |
1.61x |
1.81x |
| Balance Changes |
1.00x |
1.50x |
0.04x |
1.00x |
1.03x |
| Nonce Changes |
0.97x |
1.07x |
0.00x |
0.99x |
1.00x |
| Code Changes |
0.93x |
8.67x |
0.65x |
0.99x |
1.56x |
| Account Addresses (w/ Changes) |
1.02x |
1.08x |
0.02x |
1.04x |
1.06x |
| Touched-Only Addresses |
1.00x |
1.10x |
0.03x |
1.02x |
1.05x |
| RLP Encoding Overhead |
1.02x |
1.12x |
0.03x |
1.03x |
1.07x |
| Full BAL |
1.19x |
1.98x |
0.09x |
1.47x |
1.56x |
Block Activity Metrics (per block)
| Metric |
Average |
Median |
Min |
Max |
| Total Accounts |
603 |
600 |
98 |
1474 |
| Storage Writes Count |
700 |
667 |
65 |
2521 |
| Storage Reads Count |
982 |
922 |
36 |
3279 |
| Balance Changes Count |
612 |
598 |
62 |
1812 |
| Nonce Changes Count |
229 |
224 |
18 |
770 |
Component Percentage of Full BAL
| Component |
% of Raw Size |
% of Compressed Size |
| Storage Writes |
47.5% |
40.3% |
| Storage Reads |
28.6% |
25.8% |
| Balance Changes |
6.2% |
9.2% |
| Nonce Changes |
1.0% |
1.5% |
| Code Changes |
1.9% |
1.6% |
| Account Addresses (w/ Changes) |
7.3% |
10.7% |
| Touched-Only Addresses |
3.3% |
4.8% |
| RLP Encoding Overhead |
4.1% |
6.1% |
BAL vs Block Size Comparison
Comparison using compressed block average of 71.71 KiB:
| Metric |
BAL Size (KiB) |
Block Size (KiB) |
Ratio (BAL/Block) |
Size Difference |
| Full BAL (with reads) |
72.4 |
71.7 |
1.01x |
+0.7 KiB |
| BAL without reads |
49.4 |
71.7 |
0.69x |
-22.3 KiB |
- Full BAL with reads is 1.01x the size of a compressed block
- BAL without reads is 0.69x the size of a compressed block
- Storage reads add 23.0 KiB (46.6%) to BAL size
- BAL overhead vs blocks: +1.0% (with reads), -31.1% (without reads)
Storage Reads Impact Analysis
- WITH reads (Full BAL): 72.4 KiB compressed
- WITHOUT reads: 49.4 KiB compressed
- Storage reads overhead: 23.0 KiB (46.6%)
Summary
- Component dominance: Storage writes are 47.5% of raw BAL size
- Account addressing: Accounts with changes (10.7%) vs touched-only (4.8%)
- Pure RLP overhead: Encoding structure accounts for 6.1% of compressed size
- Compression efficiency: Overall 1.52x compression ratio
- Size variability: BAL sizes vary from 8.6 to 191.4 KiB compressed
- Block size ratio: Full BALs are 1.01x compressed block size