It’s a summary of article from Georgios Konstantopoulos and my understanding.
Introduction
ZKPs are slow and expensive to produce due to a large number of expensive math operations.
ZKP usage
- Outsourced Verifiable Computation
ZKPs allow a third party provider to also output a proof of computational integrity which guarantees the output you received is correct.
ZKPs allow you to selectively hide some or all inputs around a computational statement.
Optimization is necessary
ZKP is generated like below:
- Computation Expression
- Generate proof
The computation in proof generation mostly reside in:
- MSMs: Multiplications over large vectors of numbers (field or group elements), specifically variable-base and fixed-base multi-scalar multiplications
- Typically 70% time
- Vector of 2e25 elements
- Can be parallel but still slow with hundereds of cores
- FFTs: Fast Fourier Transforms (FFTs) and Inverse FFTs
- Typically 30% time
- Data shuffling
- Not suitable for computing cluster and need much bandwidth
Hardware Solution
Conclusions
Mining Market:
- Bitcoin: $15B
- Ethereum: $17B
- ZKP: may be similar size to Bitcoin/Ethereum
My understanding
- GPU is the best option from the developer’s perspective, as programming friendliness is very important in industry’s early stage and there are more than 2 million GPU developers worldwide.
- In the case when cost & power is more important, FPGA is the best option.
- Once the ZKP mining industry really emerges, ASIC will prevail, just like bitmain’s product.
Reference