A few of your points are valid (e.g. SNARKs and STARKS are both faster than Bulletproofs) but there are also some mistakes:
- STARKs are only faster than SNARKs at the prover level (1.6s vs 2.3s), while for verifiers the protocol is slightly slower (16ms vs 10ms).
- If by shorter you mean size in bytes, Bulletproofs are only smaller than STARKs (1,300B vs 45,000B), while they are significantly larger than SNARKs (1,300B vs 288B)
What are the main differences (advantages and disadvantages)?
According to the awesome ZKP repo:
According to Elena Nadilinski's slides from Devcon4:
According to Zooko Wilcox's (Zcash) keynote from Devcon4:
According to Eli-Ben Sasson's (STARKware) keynote at the Technion Summer School (do note that this last picture measures a subset-sum solver, probably more complex than the computations done in the comparison above):