¡Bienvenido! ¿Eres nuevo en Zcash?
The Zcash network is young, but evolving quickly! Sign up and we'll be in touch with monthly highlights on ecosystem growth, network development and how to get started with Zcash!

Idioma

Auditando Zcash

Nathan Wilcox | Aug 17, 2016

Nuestra misión consiste en crear la primera tecnología financiera abierta con privacidad de conocimiento cero, para ser usada por cualquier persona en el mundo. Con ese propósito estamos poniendo en marcha múltiples auditorías de seguridad y evaluaciones de diseño, y publicaremos los resultados de forma completa.

Estrategia de Auditoría

Zcash combina una novedosa criptografía con el consenso de la blockchain y nuestra implementación de referencia es una aplicación de redes C++. Nuestra estrategia de auditoría consiste en contratar a expertos de diferentes especialidades para que puedan enfocarse en diferentes aspectos del sistema, incluyendo: criptografía, criptomonedas (especialmente Bitcoin), C++, redes y aplicaciones de seguridad tradicionales.

Auditores y Asesores

Dada nuestra estrategia, hemos iniciado dos auditorías y un análisis de diseño con expertos destacados en diferentes áreas. Cada asesor tendrá su propio enfoque y ámbito diferenciado, los cuales estarán claramente delineados en sus respectivos reportes.

NCC Group - Al trabajar en conjunto con NCC Group, siendo el equipo de auditores de Menor Autoridad, nos impresionó su habilidad como expertos auditores de seguridad de software criptográfico.

Coinspect - Cuando estábamos en la búsqueda de especialistas en criptografía, Coinspect rápidamente nos vino a la mente. Ellos han publicado muchos diseños de protocolo innovadores y profundos análisis.

Solar Designer - Escogimos Solar Designer porque es un famoso hacker de la vieja escuela, desarrolló return-to-libc (ret2libc), que comenzó el pasaje de código inyectado (shellcode) a código prestado, y desarrolló la primera técnica de explotación de buffer overflow genérica basada en acumulación (al atacar el "unlink", una operación que fusiona trozos adyacentes cuando una asignación es liberada).

Estamos orgullosos de trabajar con equipos que, como nosotros, valoran el código abierto y apuntan a crear sistemas seguros y accesibles para todos.

Alcance

Enfocamos nuestras auditorías en componentes específicos:

  • criptografía zkSNARK (ej: libsnark)
  • construcción de la criptografía de Zcash (nuestro "circuito zk-SNARK")
  • Algoritmo de Prueba de Funcionamiento - Equihash
  • Cambios de Consenso (de Bitcoin)
  • Adherencia de Especificación
  • C++, condiciones de carrera, redes, buffer overflows, administración de dependencias

Poseemos un programa y un presupuesto limitados por lo que debemos ser selectivos en nuestro enfoque. Para escoger el alcance de nuestra auditoría, nos basamos en algunos supuestos que creemos pueden mitigar los riesgos de seguridad:

  • El núcleo de Bitcoin ha sobrevivido por casi 7 años, controlando fondos valuados en miles de millones de dólares y por lo tanto es constantemente probado en terrenos salvajes. Nos enfocaremos principalmente en nuestros cambios respecto a Bitcoin, aunque estamos realizado auditorías a problemas de seguridad de memoria en código que no ha cambiado del Núcleo de Bitcoin y sus dependencias.
  • La tecnología criptográfica zkSNARK está siendo analizada por colegas, por lo que no buscaremos grandes progresos allí.
  • Empleamos solamente un subconjunto de libsnark, así que ignoraremos las partes que no utilizamos [1].
  • El circuito Zcash es modificado a partir del circuito Zerocash analizado por nuestros colegas, por lo que nos enfocaremos más en los cambios que en la construcción en su totalidad.

Programa

Las primeras auditorías ya han comenzado y tal vez programemos futuras auditorías para ganas mayor confianza en nuestra seguridad durante el lanzamiento. Con una auditoría adecuada y rigurosa nuestro objetivo es mitigar todas las vulnerabilidades y disminuir los riesgos--esta rigurosidad es una de las razones del retraso de nuestro lanzamiento. Hemos descrito este cambio de programa en nuestro post sobre el Lanzamiento de Zcash Sprout.

Comprendiendo los Riesgos

Para que un sistema abierto y sin privilegios sea viable, sus usuarios deben ser capaces de confiar justificadamente en su seguridad y robustez. Asegurar eso es una tarea intimidante. El mejor servicio que podemos brindar a los potenciales usuarios de Zcash es asegurar que ellos entiendan los riesgos asociados como una posibilidad.

Las auditorías de seguridad y análisis de algoritmos no son garantía de seguridad ni de un funcionamiento correcto. Cada asesor se enfoca en un tipo de análisis específico y no puede responder todo el sistema ni necesariamente avalar Zcash en su totalidad.

Conclusión

Zcash se basa en estudios criptográficos evaluados por colegas y construido por un equipo de ingeniería especializado en seguridad sobre una plataforma de código abierto basada en el código base del Núcleo de Bitcoin, que ya ha sido probado en el campo de batalla. La decisión de publicar múltiples auditorías de seguridad ejemplifica nuestros mejores esfuerzos en desplegar un sistema diseñado para resistir las demandas de una infraestructura financiera global.

— Nathan Wilcox, 2016-08-17

[1]Hemos creado un fork de libsnark que elimina partes no utilizadas por Zcash.