zk-SNARKs, Zk-STARKs and BulletProofs are three major zero knowledge proofs to provide privacy for the blockchain technology.
If we can compare them,
(1) Bulletproofs and Zk-STARKs require no trusted setup.
Unlike zk-SNARKs that requires a trusted setup that creates an uncomfortable situation for it.
(2) Zcash using zk-SNARKs can hide amount address along with sender and recipient.
It is not yet clear to me if it is possible to hide sender and recipient by Bulletproofs and Zk-STARKs.
(3) Apparently, Zk-STARKs is faster than zk-SNARKs is faster than Bulletproofs.
(4) Bulletproofs is shorter than zk-SNARKs and Zk-STARKs.
In general, what are the main differences (advantages and disadvantages) between these 3 main zero knowledge proofs techniques ?
Note: The references are used for the above comparisons:
https://crypto.stanford.edu/bulletproofs/
https://blockonomi.com/bullet-proofs/
https://nulltx.com/mit-review-acclaims-zk-snarks-but-zk-starks-may-steal-the-show/
Note 1: The following article compares SNARKs with STARKs: https://medium.com/coinmonks/zk-starks-create-verifiable-trust-even-against-quantum-computers-dd9c6a2bb13d
Note 2: I compared zk-SNARKs vs. Zk-STARKs vs. BulletProofs in following figure. Any comment on this comparison is appreciated: