¿Zk-SNARK contra Zk-STARK contra BulletProofs? (Actualizado)

zk-S N ARK , Zk-S T ARK y BulletProofs son tres importantes pruebas de conocimiento cero para brindar privacidad a la tecnología blockchain.

Si podemos compararlos,

(1) Los Bulletproofs y Zk-S T ARK no requieren una configuración confiable.

A diferencia de zk -S N ARK , que requiere una configuración confiable que crea una situación incómoda para él.

(2) Zcash que usa zk -S N ARK puede ocultar la dirección de la cantidad junto con el remitente y el destinatario .

Todavía no me queda claro si es posible ocultar el remitente y el destinatario mediante Bulletproofs y Zk-S T ARK .

(3) Aparentemente, Zk-S T ARKs es más rápido que zk-S N ARKs es más rápido que Bulletproofs .

(4) Bulletproofs es más corto que zk-S N ARK y Zk-S T ARK .

En general, ¿cuáles son las principales diferencias (ventajas y desventajas) entre estas 3 técnicas principales de pruebas de conocimiento cero?

Nota: Las referencias se utilizan para las comparaciones anteriores:

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/

Nota 1: el siguiente artículo compara SNARK con STARK: https://medium.com/coinmonks/zk-starks-create-verifiable-trust-even-against-quantum-computers-dd9c6a2bb13d

Nota 2: comparé zk-SNARKs vs. Zk-STARKs vs. BulletProofs en la siguiente figura. Cualquier comentario sobre esta comparación es apreciado:

ingrese la descripción de la imagen aquí

Respuestas (3)

Algunos de sus puntos son válidos (por ejemplo, SNARK y STARKS son más rápidos que Bulletproof), pero también hay algunos errores:

  1. Los STARK son solo más rápidos que los SNARK a nivel de probador (1,6 s frente a 2,3 s), mientras que para los verificadores el protocolo es ligeramente más lento (16 ms frente a 10 ms).
  2. Si por más corto quiere decir tamaño en bytes, los Bulletproof son solo más pequeños que los STARK (1,300B frente a 45,000B), mientras que son significativamente más grandes que los SNARK (1,300B frente a 288B)

¿Cuáles son las principales diferencias (ventajas y desventajas)?

De acuerdo con el increíble repositorio ZKP :

ImpresionanteZKP


Según las diapositivas de Elena Nadilinski de Devcon4:

leanthebean


Según el discurso de apertura de Zooko Wilcox (Zcash) de Devcon4:

zooko


De acuerdo con el discurso de apertura de Eli-Ben Sasson (STARKware) en la Technion Summer School (tenga en cuenta que esta última imagen mide un solucionador de suma de subconjuntos, probablemente más complejo que los cálculos realizados en la comparación anterior):

eliben

Gracias, ¿podría decir qué significan "órdenes de magnitud demasiado grandes" ? (en su tercera figura.) Gracias
Los órdenes de magnitud son, aproximadamente, las potencias de 10 en un número. Puede compararlos fácilmente cuando representa números en notación científica. Por ejemplo: ``` 27 = 2.7 * 10^1 98 = 9.8 * 10^1 342 = 3.42 * 10^2 50000 = 5 * 10^4 ``` Los primeros dos números, aunque uno es casi 4 veces más grande como el otro, están en el mismo orden de magnitud: ambos están entre 10 y 100. Los otros, sin embargo, son más grandes. 50000 está 3 órdenes de magnitud por encima de 27, porque su exponente en notación científica es 4, y el de 27 es 1.

Los Starks son casi mejores que los Snarks en general: requieren suposiciones criptográficas más débiles, no requieren una configuración confiable y son resistentes a la poscuántica. Pero tienen un gran inconveniente, ya que en la prueba es enorme.

Para ciertas aplicaciones, como la que tengo que trabajar, eso simplemente no es factible. Tuvimos que elegir entre una prueba Snark del orden de cientos de bytes y una prueba STARK de cientos de kilobytes. Ese único factor fue un asesino para nosotros.

El tiempo para verificar también es notablemente mayor en Starks que en Snarks. En el primero, crece en el tiempo O(poly log n), mientras que para Snarks es lineal en el tamaño de entrada , que es solo una pequeña constante, especialmente en circuitos complejos. Recuerda que n aquí es el número de puertas.

Por ejemplo, tome un circuito que demuestre que conoce la preimagen de un cierto valor hash. La entrada tendrá el tamaño de esa entrada, que es de 32 bytes si usa SHA256. Sin embargo, para esta función, la cantidad de puertas será de decenas de miles, y puede ver cómo el tiempo de verificación para SNARK es insignificante en comparación.

Los números en las tablas anteriores son muy engañosos. No le dicen qué tipo de circuito tiene y qué tan grande es n . Dependiendo de cuán complejo sea su circuito, pueden variar enormemente. Prefiero usar notación asintótica, y hay una buena tabla para eso en este documento (página 3).

Gracias, pero en el artículo de STARK se menciona: "para cálculos secuenciales de mediana y gran escala, el tiempo de nuestro verificador ZK-STARK es mejor que otras soluciones " (página 12) (Enlace al artículo: eprint.iacr.org /2018/046.pdf ). ¿Significa que afirman que los STARK verifican que el tiempo promedio es más corto que los SNARK? Gracias
Hola, gracias por la pregunta. La respuesta es que no lo sé. Por lo que leí, los autores del artículo seleccionaron un tipo de circuito muy específico (el punto de referencia DPM). También creo que son un poco deshonestos en la forma en que miden el tiempo de verificación, ya que le agregan la configuración única. No hay razón para hacer esto, la verificación y la configuración son procesos independientes. Si ve el gráfico, también han incluido una línea para libSnark sin la configuración y está significativamente por debajo de la línea ZKStark.
La notación asintótica refleja el crecimiento de la computación cuando aumenta el tamaño de entrada y es posible que no siempre refleje el costo en la realidad. En muchos casos, STARK puede superar a SNARK en el tiempo de verificación porque usa aritmética de campo simple, mientras que este último usa emparejamientos de curvas elípticas costosas en campos de extensión.

AFAIK Bulletproofs son más cortos, pero verificarlos lleva mucho más tiempo que Starks, por lo que no es escalable para el oscurecimiento de blockchain tx.

Gracias, sí, pero ¿qué hay de S T arks? cuando son más rápidos que S N arks y Bulletproofs y al mismo tiempo no necesitan una configuración confiable . ¿Y cuál es la ventaja de que los Bulletproofs sean más cortos que los S T arks? Gracias
Según el comentario aquí ( bitcoin.stackexchange.com/q/79423/41513 ) el tamaño y la velocidad en sNarks y Bulletproofs dependen de la complejidad y simplicidad de la declaración, pero no estoy seguro acerca de sTarks si su tamaño y velocidad son independientes sobre la complejidad del enunciado. Gracias
La velocidad de verificación de SNARK no depende del tamaño del circuito, a diferencia de otros sistemas.