VoteMarket Proof Analysis Report
Generated: 2026-01-20T18:14:51.093Z
Field
Value
Protocol
curve
Epoch
1730937600
Platform
N/A
Chain ID
42161
Gauge
0x26f7786de3e6d9bd37fcf47be6f2bc455a21b74a
Block Number
21134723
Users
67
Source URL:
https://raw.githubusercontent.com/stake-dao/api/refs/heads/main/api/votemarket/1730937600/curve/42161/0x26f7786de3e6d9bd37fcf47be6f2bc455a21b74a.json
MPT Proof Analysis (Current Production)
Component
Size
Gauge Controller Proof
0 bytes
Point Data Proof
2.24 KB
User Proofs (67 users)
425.45 KB
Total Calldata
427.69 KB
Average proof size per user: 6.35 KB
Total users: 67
Network
Limit
Usage
Status
Ethereum
128.00 KB
334.1%
❌ EXCEEDS LIMIT
Arbitrum
256.00 KB
167.1%
❌ EXCEEDS LIMIT
⚠️ WARNING: The MPT proof exceeds calldata limits for some networks. This proof would need to be split into multiple transactions.
ZK Proof Analysis (Generated PLONK Proof)
Component
Size
PLONK Proof
868 bytes
Public Values
12.88 KB
Total Calldata
13.72 KB
Network
Limit
Usage
Status
Ethereum
128.00 KB
10.7%
✅ Within limit
Arbitrum
256.00 KB
5.4%
✅ Within limit
Metric
MPT
ZK (PLONK)
Total Calldata
427.69 KB
13.72 KB
Per User (effective)
6.38 KB
210 bytes
Metric
Value
Reduction Factor
31.2x
Bytes Saved
413.96 KB
Percentage Saved
96.8%
Scaling Analysis (Projected)
Based on measured proof sizes:
Proof size (constant): 868 bytes
Public values overhead: ~160 bytes (header + 1 gauge)
Per-user data: ~194 bytes
Users
MPT Calldata
ZK Calldata (projected)
Reduction
10
~65.74 KB
~2.90 KB
22.7x
50
~319.72 KB
~10.48 KB
30.5x
100
~637.20 KB
~19.95 KB
31.9x
500
~3.10 MB
~95.73 KB
33.2x
❌ MPT Proof Exceeds Limits
The current MPT proof of 427.69 KB exceeds the practical calldata limit for Ethereum mainnet. This means:
The proof must be split into multiple transactions
Higher total gas costs due to multiple transactions
More complex submission logic required
31.2x smaller calldata - Significant gas savings
Constant proof size - PLONK proof is 868 bytes regardless of user count
Better scaling - As user count increases, ZK becomes proportionally more efficient
Single transaction - No need to split proofs for large user sets
MPT: ~6502 bytes × users + 2295 bytes overhead
ZK (PLONK): 868 bytes (proof) + 64 (header) + 96 × gauges + ~194 × users
File
Description
mpt_proof.json
Original MPT proof from production
zk_input.json
Input file for SP1 ZK prover
proof.json
Generated ZK proof artifact
proof.bin
Binary proof for on-chain submission
metadata.json
Benchmark metadata
analysis.md
This analysis report
Report generated by VoteMarket Benchmark Tool