Skip to content

Instantly share code, notes, and snippets.

@imqdee
Last active January 20, 2026 18:22
Show Gist options
  • Select an option

  • Save imqdee/01f7432ee8faf63c1f07874bc99fbbbe to your computer and use it in GitHub Desktop.

Select an option

Save imqdee/01f7432ee8faf63c1f07874bc99fbbbe to your computer and use it in GitHub Desktop.

VoteMarket Proof Analysis Report

Generated: 2026-01-20T18:14:51.093Z


Proof Details

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)

Size Breakdown

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

Per-User Statistics

  • Average proof size per user: 6.35 KB
  • Total users: 67

Calldata Limit Check

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)

Size Breakdown

Component Size
PLONK Proof 868 bytes
Public Values 12.88 KB
Total Calldata 13.72 KB

Calldata Limit Check

Network Limit Usage Status
Ethereum 128.00 KB 10.7% ✅ Within limit
Arbitrum 256.00 KB 5.4% ✅ Within limit

Comparison: MPT vs ZK

Calldata Size

Metric MPT ZK (PLONK)
Total Calldata 427.69 KB 13.72 KB
Per User (effective) 6.38 KB 210 bytes

Improvement

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

Key Insights

❌ 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

ZK Advantages

  1. 31.2x smaller calldata - Significant gas savings
  2. Constant proof size - PLONK proof is 868 bytes regardless of user count
  3. Better scaling - As user count increases, ZK becomes proportionally more efficient
  4. Single transaction - No need to split proofs for large user sets

Measured Cost Formula

  • MPT: ~6502 bytes × users + 2295 bytes overhead
  • ZK (PLONK): 868 bytes (proof) + 64 (header) + 96 × gauges + ~194 × users

Files Generated

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment