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

CC BY-SA 4.0
2018-09-20T13:29:05.753Z
can you provide references to your comparisons?
ranchalp
CC BY-SA 4.0
2018-09-20T13:39:17.477Z
have been added.
Questioner
CC BY-SA 4.0
2018-11-12T18:04:46.427Z
Overall comment: it's hard to make absolute statements about speed and size, as they are problem-size specific. For example, zk-SNARKs have a constant size that is independent of the complexity of the statement being proven, while Bulletproofs scale logarithmically with the complexity. Similar for verification time, Bulletproofs will be faster than zk-SNARKs for simple statements, but slower for complex statements.
Pieter Wuille
CC BY-SA 4.0
2018-11-13T20:30:40.547Z
@Pieter Wuille , Thank you, so , according to your statement, I may conclude zk-sNarks could be more appropriate for more complex statements (for both size and speed) but Bulletproofs are more appropriate for simpler statements (for both size and speed). We also consider need for trusted setup by zk-sNarks. If we could put zk-sTarks as well in this comparison, it would be more complete. Thanks
Questioner
<privacy><confidential-transactions><zero-knowledge>
zk-SNARKs vs. Zk-STARKs vs. BulletProofs? (Updated)
Questioner
# zk-SNARKs vs. Zk-STARKs vs. BulletProofs? (Updated)

(Asked by: username_0 on 2018-09-20)

*zk-S**N**ARKs*, *Zk-S**T**ARKs* and *BulletProofs* are three major zero knowledge proofs to provide privacy for the blockchain technology.

If we can compare them,

> (1) *Bulletproofs* and *Zk-S**T**ARKs* require no trusted setup.

Unlike *zk-S**N**ARKs* that requires a trusted setup that creates an uncomfortable situation for it.

> (2) **Zcash** using *zk-S**N**ARKs* 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-S**T**ARKs*.

> (3) Apparently, *Zk-S**T**ARKs* is **faster** than *zk-S**N**ARKs* is
> **faster** than *Bulletproofs*.
>
> (4) *Bulletproofs* is **shorter** than *zk-S**N**ARKs* and
> *Zk-S**T**ARKs*.

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:

[![enter image description here](https://i.sstatic.net/Yrj49.png)](https://i.sstatic.net/Yrj49.png)

**Tags:** privacy, confidential-transactions, zero-knowledge

> **Comments:**
> **username_1**: can you provide references to your comparisons?  
> **username_0**: have been added.  
> **username_2**: Overall comment: it's hard to make absolute statements about speed and size, as they are problem-size specific. For example, zk-SNARKs have a constant size that is independent of the complexity of the statement being proven, while Bulletproofs scale logarithmically with the complexity. Similar for verification time, Bulletproofs will be faster than zk-SNARKs for simple statements, but slower for complex statements.  
> **username_0**: @username_2 , Thank you, so , according to your statement, I may conclude zk-sNarks could be more appropriate for more complex statements (for both size and speed) but Bulletproofs are more appropriate for simpler statements (for both size and speed). We also consider need for trusted setup by zk-sNarks. If we could put zk-sTarks as well in this comparison, it would be more complete. Thanks  

---

## 0 answers

