In my exploration of zero-knowledge proofs, I have encountered various perspectives on the operational disparities among zk-SNARKs, zk-STARKs, and Bulletproofs, as documented in different blogs and discussions (such as the ones referenced in the provided links).
The provided links offer valuable insights into the differences in size, speed, and reliance on trusted setups for these cryptographic protocols. However, a notable gap remains in the availability of systematically written algorithms for zk-STARKs and Bulletproofs, comparable to the clarity found in the Petkus paper for zk-SNARKs. While the Petkus paper here offers a comprehensible explanation of zk-SNARKs using polynomial commitments and elucidates the proving and verification phases, I have encountered challenges in finding similarly well-documented constructions and instantiations for zk-STARKs and Bulletproofs. I found the paper on zk-STARKs here by Eli Ben-Sasson but it is so complex to understand the zk-STARKs.
I seek a detailed explanation, complete with mathematical formulations, of the proving and verification phases in zk-STARKs and Bulletproofs.