
Vitalik Buterin
@vitalik.eth
110 Following
327191 Followers
69 replies
139 recasts
1112 reactions
1 reply
4 recasts
23 reactions

A fun math aside, on the idea of splitting a large zk proving workload between multiple provers.
Suppose you have N provers, and you have a proving workload that you split into N parts (so, one part per prover). You require provers to pre-register, but registration is open-access.
Suppose you have a constant fault rate (eg. 1/5 of registered provers fail). Provers expect to complete in one round (eg. 3s). If one prover fails, other provers have to come in and re-prove that load. How many rounds does it take for the entire workload to get proven?
Answer: log*(N)
(yes, that's the iterated-log function)
Why:
In the first round, you go from N unproven workloads to N/5 unproven workloads
In the second round, each remaining workload gets assigned 5 provers, so per-workload failure rate becomes 1 in 5^5. So you go to N / 5 / 5^5 unproven workloads
In the third round, each remaining workload gets assigned ~5^5 provers, so failure rate is 1 in 5^(5^5). So you go to N / 5 / 5^5 / 5^(5^5) unproven workloads 19 replies
35 recasts
281 reactions
0 reply
0 recast
2 reactions
1 reply
0 recast
2 reactions
3 replies
0 recast
3 reactions
1 reply
0 recast
1 reaction
1 reply
0 recast
10 reactions
0 reply
0 recast
5 reactions
3 replies
1 recast
38 reactions
43 replies
33 recasts
352 reactions
1 reply
0 recast
1 reaction
39 replies
49 recasts
309 reactions
1 reply
0 recast
2 reactions
1 reply
0 recast
1 reaction
11 replies
37 recasts
249 reactions
11 replies
37 recasts
249 reactions
24 replies
102 recasts
516 reactions
29 replies
172 recasts
680 reactions
32 replies
178 recasts
862 reactions