gigagas L1
technical deep dive
t.me/ethproofs_community
gigagas L1
technical deep dive
less technical talk for EthCC
t.me/ethproofs_community
zkEL clients and validators
zkEL clients and validators
extreme decentralisation
extreme decentralisation
Raspberry Pi Pico 2 W
part 1—zero to one: latency
part 2—zero to one: safety
part 3—zero to one: liveness
part 4—one to gigagas
part 1—zero to one: latency
part 2—zero to one: safety
part 3—zero to one: liveness
part 4—one to gigagas
(same slot) delayed proving
block n
proposal
block n+1
proposal
(same slot) delayed proving
block n
proposal
block n+1
proposal
block n
proof
Δ
(same slot) delayed proving
block n
proposal
block n+1
proposal
block n
proof
Δ
EIP-7886
delayed execution
EIP-7732
enshrined PBS
zkEL pipeline
splitting
tracing
crunching
aggregation
fetching
prover
wrapping
zkEL pipeline
splitting
tracing
crunching
aggregation
fetching
gossip
k-of-n check
prover
verifier
wrapping
zkEL pipeline
splitting
tracing
crunching
aggregation
fetching
gossip
k-of-n check
prover
verifier
wrapping
O(1)
O(log(gas))
O(1)
O(1)
O(1)
O(1)
O(1)
O(1)
zkEL pipeline
splitting
tracing
crunching
aggregation
fetching
gossip
k-of-n check
prover
verifier
wrapping
O(1)
O(log(gas))
O(1)
O(1)
O(1)
O(1)
O(1)
O(1)
big enough slots!
zkEL breakthroughs
task | leader | trick | numbers |
fetching | ZkCloud | <1 sec | |
splitting | SP1 | ≤30M gas | |
tracing | | | |
crunching | | | |
aggregation | | | |
wrapping | | | |
gossip | | | |
k-of-n check | | | |
zkEL breakthroughs
task | leader | trick | numbers |
fetching | ZkCloud | <1 sec | |
splitting | SP1 | ≤30M gas | |
tracing | ZisK | 1.5 GHz | |
crunching | Airbender | 15 MHz | |
aggregation | | | |
wrapping | | | |
gossip | | | |
k-of-n check | | | |
zkEL breakthroughs
task | leader | trick | numbers |
fetching | ZkCloud | <1 sec | |
splitting | SP1 | ≤30M gas | |
tracing | ZisK | 1.5 GHz | |
crunching | Airbender | 15 MHz | |
aggregation | R0VM | recursion ISA | ~0.1s (2-to-1) |
wrapping | R0VM | Supranational | ~1 sec |
gossip | | | |
k-of-n check | | | |
zkEL breakthroughs
task | leader | trick | numbers |
fetching | ZkCloud | <1 sec | |
splitting | SP1 | ≤30M gas | |
tracing | ZisK | 1.5 GHz | |
crunching | Airbender | 15 MHz | |
aggregation | R0VM | recursion ISA | ~0.1s (2-to-1) |
wrapping | R0VM | Supranational | ~1 sec |
gossip | libp2p | ~1 sec | |
k-of-n check | standardisation | ~10 ms |
parallel tracing
Fusaka (SFI)
30M cap
parallel tracing
Fusaka (SFI)
30M cap
224 cap
Glamsterdam?
proof wrapping
| no wrapping | wrapping |
unoptimised | size 1MB latency 0sec setup none complexity low | |
optimised | | |
proof wrapping
| no wrapping | wrapping |
unoptimised | size 1MB latency 0sec setup none complexity low | size 1kB latency 1sec setup trusted complexity higher |
optimised | size 256kB latency 0sec setup none complexity low | size 1kB latency 0.5sec setup none complexity higher |
proof wrapping
| no wrapping | wrapping |
unoptimised | size 1MB latency 0sec setup none complexity low | size 1kB latency 1sec setup trusted complexity higher |
optimised | size 256kB latency 0sec setup none complexity low | size 1kB latency 0.5sec setup none complexity higher |
crazy idea?
64-bit ephemeral proofs
part 1—zero to one: latency
part 2—zero to one: safety
part 3—zero to one: liveness
part 4—one to gigagas
zkVM diversity
9 zkVMs
| | | open source | | |
zkVM | ISA | team | verifier | GPU prover | mainnet ready |
RISC-V | Brevis | ✓✓ dual | ETA: soon™ | ✓ | |
RISC-V | Succinct | ✓✓ dual | binaries only | ✓ | |
MIPS | ZKM | ✓✓ dual | closed | ✓ | |
RISC-V | MatterLabs | ✓✓ dual | MIT, Apache 2.0 | ✓ | |
RISC-V | Axiom | ✓✓ dual | ETA: soon™ | ✓ | |
→ Euclid | RISC-V | Scroll | ✓✓ dual | closed | ✓ |
→ powdr | RISC-V | powdr | ✓✓ dual | N/A | ✓ |
RISC-V | RISC Zero | ✓✓ Apache 2.0 | Apache 2.0 | ✓ | |
RISC-V | ZisK | ✓✓ dual | MIT, Apache 2.0 | ✓ | |
zkVM diversity
9 zkVMs
10 zkVMs
| | | open source | | |
zkVM | ISA | team | verifier | GPU prover | mainnet ready |
RISC-V | Brevis | ✓✓ dual | ETA: soon™ | ✓ | |
RISC-V | Succinct | ✓✓ dual | binaries only | ✓ | |
MIPS | ZKM | ✓✓ dual | closed | ✓ | |
RISC-V | MatterLabs | ✓✓ dual | MIT, Apache 2.0 | ✓ | |
RISC-V | Axiom | ✓✓ dual | ETA: soon™ | ✓ | |
→ Euclid | RISC-V | Scroll | ✓✓ dual | closed | ✓ |
→ powdr | RISC-V | powdr | ✓✓ dual | N/A | ✓ |
RISC-V | RISC Zero | ✓✓ Apache 2.0 | Apache 2.0 | ✓ | |
RISC-V | ZisK | ✓✓ dual | MIT, Apache 2.0 | ✓ | |
RISC-V | Scroll | ✓✓ dual | N/A | ETA: 2025 (no recursion) | |
Lean 4 | Argument | ✓✓ dual | N/A | ETA: 2025 (no recursion) | |
RISC-V | a16z | ✓✓ dual | N/A | ETA: 2025 (no streaming) | |
WASM | Ligero | ✓✓ Apache 2.0 | N/A | ETA: 2025 (no recursion) | |
EVM | Linea | ✓✓ dual | closed | ETA: 2025 (no MPT) | |
Miden ISA | Miden | ✓✓ dual | MIT | ETA: 2025 (no recursion) | |
RISC-V | O(1) Labs | ✓✓ dual | N/A | ETA: 2025 (no recursion) | |
Valida ISA | Lita | ✓✓ dual | N/A | ETA: 2025 (no recursion) | |
WASM | ICME | ✓✓ dual | N/A | ETA: 2025 (no recursion) | |
WASM | Delphinus | ✓✓ dual | GPL 3.0 | ETA: 2025 (64MB limit) | |
zkVM diversity
9 zkVMs
10 zkVMs
13 zkVMs
| | | open source | | |
zkVM | ISA | team | verifier | GPU prover | mainnet ready |
RISC-V | Brevis | ✓✓ dual | ETA: soon™ | ✓ | |
RISC-V | Succinct | ✓✓ dual | binaries only | ✓ | |
MIPS | ZKM | ✓✓ dual | closed | ✓ | |
RISC-V | MatterLabs | ✓✓ dual | MIT, Apache 2.0 | ✓ | |
RISC-V | Axiom | ✓✓ dual | ETA: soon™ | ✓ | |
→ Euclid | RISC-V | Scroll | ✓✓ dual | closed | ✓ |
→ powdr | RISC-V | powdr | ✓✓ dual | N/A | ✓ |
RISC-V | RISC Zero | ✓✓ Apache 2.0 | Apache 2.0 | ✓ | |
RISC-V | ZisK | ✓✓ dual | MIT, Apache 2.0 | ✓ | |
RISC-V | Scroll | ✓✓ dual | N/A | ETA: 2025 (no recursion) | |
Lean 4 | Argument | ✓✓ dual | N/A | ETA: 2025 (no recursion) | |
RISC-V | a16z | ✓✓ dual | N/A | ETA: 2025 (no streaming) | |
WASM | Ligero | ✓✓ Apache 2.0 | N/A | ETA: 2025 (no recursion) | |
EVM | Linea | ✓✓ dual | closed | ETA: 2025 (no MPT) | |
Miden ISA | Miden | ✓✓ dual | MIT | ETA: 2025 (no recursion) | |
RISC-V | O(1) Labs | ✓✓ dual | N/A | ETA: 2025 (no recursion) | |
Valida ISA | Lita | ✓✓ dual | N/A | ETA: 2025 (no recursion) | |
WASM | ICME | ✓✓ dual | N/A | ETA: 2025 (no recursion) | |
WASM | Delphinus | ✓✓ dual | GPL 3.0 | ETA: 2025 (64MB limit) | |
guest diversity
"host"
"guest"
zkVM
MIPS
LLVM
revm
rv32
bytecode
zevm
WASM
guest diversity
"host"
"guest"
zkVM
MIPS
LLVM
revm
evmone
gevm/eevm
rv32
bytecode
zevm
WASM
guest diversity
"host"
"guest"
zkVM
MIPS
LLVM
revm
evmone
gevm/eevm
"nevm"
"bevm"
rv32
rv64
bytecode
zevm
WASM
guest diversity
"host"
"guest"
zkVM
MIPS
LLVM
revm
evmone
gevm/eevm
"nevm"
"bevm"
Cairo
Keth
Linea EVM
Linea EVM
Lean 4
l4evm
rv32
rv64
bytecode
zevm
WASM
zkVM-guest blowup
EVM guest
count
×
quadratic blowup
zkVM
count
zkVM-guest blowup
EVM guest
count
×
quadratic blowup
zkVM
count
idea 1
slow-fast pairs
idea 2
multi-EVM proofs
slow-fast pairing
zkVM #1
zkVM #2
zkVM #3
zkVM #4
zkVM #5
slow-fast pairing
zkVM #1
zkVM #2
zkVM #3
zkVM #4
zkVM #5
EL client #5
EL client #4
EL client #3
EL client #2
EL client #1
slow-fast pairing
zkVM #1
zkVM #2
zkVM #3
zkVM #4
zkVM #5
EL client #5
EL client #4
EL client #3
EL client #2
EL client #1
k-of-n proof checking
n gossip
channels
...
k-of-n proof checking
n gossip
channels
attest if
k-of-n
valid & timely
...
k-of-n proof checking
n gossip
channels
attest if
k-of-n
valid & timely
...
k-of-n proof checking
n gossip
channels
attest if
k-of-n
valid & timely
...
Drake take™
→ k = 3 — 1MB of proofs
→ n = 5 — EL client count
k-of-n proof checking
n gossip
channels
attest if
k-of-n
valid & timely
...
Drake take™
→ k = 3 — 1MB of proofs
→ n = 5 — EL client count
Gold take™
→ k = 3
→ n = 3
formal verification
verified-zkevm.org
$20M
over 3y
formal verification
verified-zkevm.org
$20M
over 3y
github.com/Veridise/Picus
formal verification
verified-zkevm.org
$20M
over 3y
github.com/Veridise/Picus
bugs.zksecurity.xyz
86/89
under-constrained
part 1—zero to one: latency
part 2—zero to one: safety
part 3—zero to one: liveness
part 4—one to gigagas
mandatory proofs
*
mandatory proofs
→ insufficient fees (<1¢/Mgas)
→ prover killers
→ prover crashes
→ completeness bugs
liveness failures
*
mandatory proofs
→ insufficient fees (<1¢/Mgas)
→ prover killers
→ prover crashes
→ completeness bugs
liveness failures
FOCIL
DoS
*
*
cluster proving specs (for 1-of-n assumption)
$100K
10kW
cluster proving specs (for 1-of-n assumption)
$100K
10kW
bottleneck
power heuristic
1x 4090 for 16 slots
power heuristic
1x 4090 for 16 slots
16x 4090s for 1 slot
perfect parallelism
power heuristic
1x 4090 for 16 slots
16x 4090s for 1 slot
10x 5090s for 1 slot
perfect parallelism
Moore's
law
power heuristic
1x 4090 for 16 slots
16x 4090s for 1 slot
home cluster
10x 5090s for 1 slot
perfect parallelism
Moore's
law
GPU proving
realtime.succinct.xyz
GPU proving
realtime.succinct.xyz
open source
GPU prover
Ethereum L1 wishlist
| prover |
latency | ≤ 10s — P99 |
capex | ≤ $100k — on-prem |
power | ≤ 10kW — on-prem |
code | open source |
Ethereum L1 wishlist
| prover |
latency | ≤ 10s — P99 |
capex | ≤ $100k — on-prem |
power | ≤ 10kW — on-prem |
code | open source |
| verifier |
security | ≥ 128 bits |
proof size | ≤ 300KiB |
trusted setup | none or universal |
licensing | Apache 2.0, MIT |
Ethereum L1 wishlist
| prover |
latency | ≤ 10s — P99 |
capex | ≤ $100k — on-prem |
power | ≤ 10kW — on-prem |
code | open source |
| verifier |
security | ≥ 128 bits |
proof size | ≤ 300KiB |
trusted setup | none or universal |
licensing | Apache 2.0, MIT |
blog.ethereum.org
gradual enshrinement
| phase 0 early adopters | phase 1 delayed proving | phase 2 mandatory proofs | phase 3 enshrined proofs |
timeline | 2025 | 2026 | 2027 | 2028 |
gradual enshrinement
| phase 0 early adopters | phase 1 delayed proving | phase 2 mandatory proofs | phase 3 enshrined proofs |
timeline | 2025 | 2026 | 2027 | 2028 |
proving | altruistic | altruistic | rational | rational |
gradual enshrinement
| phase 0 early adopters | phase 1 delayed proving | phase 2 mandatory proofs | phase 3 enshrined proofs |
timeline | 2025 | 2026 | 2027 | 2028 |
proving | altruistic | altruistic | rational | rational |
attesting | altruistic | semi-rational | rational | rational |
gradual enshrinement
| phase 0 early adopters | phase 1 delayed proving | phase 2 mandatory proofs | phase 3 enshrined proofs |
timeline | 2025 | 2026 | 2027 | 2028 |
proving | altruistic | altruistic | rational | rational |
attesting | altruistic | semi-rational | rational | rational |
adoption | ~1% | ~10% | 100% | 100% |
gradual enshrinement
| phase 0 early adopters | phase 1 delayed proving | phase 2 mandatory proofs | phase 3 enshrined proofs |
timeline | 2025 | 2026 | 2027 | 2028 |
proving | altruistic | altruistic | rational | rational |
attesting | altruistic | semi-rational | rational | rational |
too early | bounded gas | unbounded | validiums |
part 1—zero to one: latency
part 2—zero to one: safety
part 3—zero to one: liveness
part 4—one to gigagas
goal—3x per year
| gas limit 12s slots | throughput limit = 2*target |
2025 | 100 Mgas | 4.2 Mgas/s |
2026 | 300 Mgas | 12.5 Mgas/s |
"300 Mgas limit"
goal—3x per year
| gas limit 12s slots | throughput limit = 2*target |
2025 | 100 Mgas | 4.2 Mgas/s |
2026 | 300 Mgas | 12.5 Mgas/s |
2027 | 900 Mgas | 37.5 Mgas/s |
2028 | 2.7 Ggas | 112.5 Mgas/s |
"300 Mgas limit"
EIP-7938
goal—3x per year
| gas limit 12s slots | throughput limit = 2*target |
2025 | 100 Mgas | 4.2 Mgas/s |
2026 | 300 Mgas | 12.5 Mgas/s |
2027 | 900 Mgas | 37.5 Mgas/s |
2028 | 2.7 Ggas | 112.5 Mgas/s |
2029 | 8.1 Ggas | 337.5 Mgas/s |
2030 | 24.3 Ggas | 1 Ggas/s |
"300 Mgas limit"
EIP-7938
"1 Ggas/s"
dynamic gas limit voting
dynamic gas limit voting
steady
predictable
ambitious
low-touch
primary bottleneck: solved™
real-time
proving parity
exponential
zkVM progress
=
+
3x/year
"easy"
power overhead
1.5GHz RISC-V
execution
15MHz RISC-V
GPU proving
15MHz RISC-V
GPU proving
...
100x
power overhead
1.5GHz RISC-V
execution
15MHz RISC-V
GPU proving
15MHz RISC-V
GPU proving
...
100x
100x
400 Watts
1x
4 Watts
10,000x
overhead
power opportunities
power opportunities
≥10x
software
≥10x
hardware
power opportunities
≥10x
software
≥10x
hardware
≥10x
multi-prem
≥10x
zkISA
node types
node
sophistication
node types
node
sophistication
primary bottleneck
secondary bottleneck
node types
node
sophistication
primary bottleneck
secondary bottleneck
solution:
→ SNARK engineering
solution:
→ traditional engineering
specialised databases
LevelDB
MDBX
used by Geth
used by Reth
specialised databases
github.com/base/triedb
github.com/LayerZero-Labs/qmdb
LevelDB
MDBX
used by Geth
used by Reth
secondary bottleneck: just do it™
secondary bottleneck: just do it™
~50 disk ops
per traversal
secondary bottleneck: just do it™
github.com/base/triedb
~50 disk ops
per traversal
4-8 disk ops
per traversal
perfnets
nethermind-ui.benaadams.vip
1M TPS
github.com/LayerZero-Labs/fafo
gigagas Ethereum
today
1.5Mgas/s
goal
1Ggas/s
delayed proving
real-time
proving
onchain
offchain
gigagas Ethereum
today
1.5Mgas/s
goal
1Ggas/s
zk gas
repricing
FOCIL
L1 txs
in blobs
zk-friendly
tree
multi-1559
delayed proving
real-time
proving
onchain
offchain
gigagas Ethereum
today
1.5Mgas/s
goal
1Ggas/s
zk gas
repricing
FOCIL
L1 txs
in blobs
zk-friendly
tree
multi-1559
delayed proving
better
sync
better
state DBs
history expiry
access
lists
p2p erasure
coding
real-time
proving
onchain
offchain
questions :)
personal goals
zkEL · stateless
zkEL · embedded
zkEL · proven
no NVMe
Pi Pico
20x 5090s
Christmas present
6x liquid-cooled 5090
Comino Grando
Ethproofs
"L2BEAT
for zkVMs"
EthCC Cannes
refreshed rollup-centric roadmap
+ thousands of L2s
1 gigagas/sec
1 teragas/sec
hub
...
united chains of Ethereum
L1 | L2 |
1 gigagas/sec | 1 teragas/sec |
10K TPS | 10M TPS |
0.1% traffic | 99.9% traffic |
EF zkEVM
zkSTF
gradual enshrinement
phase 0
early adopters
phase 1
delayed execution
phase 2
mandatory proofs
phase 3
enshrined proofs
"no limit" native rollups
zk day
Berlin interop
t.me/ethproofs_community
L1 zkEVMs