FROST, que significa Umbral de Schnorr Optimizado para Rondas Flexibles, es un protocolo criptográfico avanzado diseñado para mejorar los esquemas de firmas de umbral. A diferencia de las firmas tradicionales de una sola parte, FROST permite que un grupo de participantes genere colaborativamente firmas digitales utilizando partes de una clave privada, de modo que solo se necesita un umbral específico de participantes para autorizar una transacción. Este enfoque mejora tanto la seguridad como la resiliencia contra la pérdida o el compromiso de claves.
FROST destaca por reducir la carga de red durante las operaciones de firma, soportando una firma eficiente de dos rondas (o incluso de una sola ronda, con preprocesamiento) sin sacrificar seguridad ni concurrencia. Estas características hacen que FROST sea especialmente adecuado para Zcash.
¿Qué es FROST para Zcash?
Nuestra premisa desde el inicio de este proyecto fue que “las transacciones de Zcash deben ser públicamente indistinguibles (es decir, un adversario que observe la blockchain no debería poder obtener información sobre a quién va dirigido el pago, cuánto es el pago o quién lo autorizó). Zcash anteriormente no tenía un buen mecanismo para lograr este objetivo en un entorno multipartito, donde un grupo de usuarios desea controlar conjuntamente fondos y autorizar transacciones. Antes de FROST, los mejores protocolos para realizar este proceso de firma requerían una complejidad de implementación indeseable, altas cargas de red para realizar operaciones de firma, la incapacidad de soportar un número umbral de firmantes o fugas de privacidad indeseables, como exponer el número de firmantes. En consecuencia, nuestra decisión de diseñar un nuevo esquema de umbral surgió del deseo de mejorar el estado de la investigación de firmas de umbral para satisfacer las necesidades de los usuarios de Zcash hoy en día”.
En cuanto al avance de la privacidad y la seguridad en las transacciones digitales, la implementación de FROST para Zcash que desarrollamos destaca por varias características importantes. En particular, está diseñada para mantener las mismas garantías de seguridad de RedDSA, especialmente la desvinculabilidad, que es requerida por el protocolo de Zcash. Esto evita que los atacantes vinculen dos firmas generadas por FROST a la misma persona. Esto facilita la integración para desarrolladores y organizaciones sin necesidad de cambios importantes en la infraestructura.
Para apoyar la adopción, la Fundación Zcash (ZF) proporciona bibliotecas fáciles de usar, aplicaciones de demostración y tutoriales, lo que facilita a cualquiera incorporar FROST para Zcash en sus proyectos.
¿Por qué desarrollamos FROST para Zcash?
ZF se comprometió a construir FROST para Zcash para abordar varias necesidades importantes dentro del ecosistema de Zcash. Una de las principales motivaciones fue desarrollar una implementación de firma múltiple segura y que preserve la privacidad para transacciones blindadas, una funcionalidad que anteriormente faltaba. El objetivo desde el inicio fue garantizar una compatibilidad fluida con los estándares y protocolos existentes de Zcash, como RedDSA. Esto permite a los desarrolladores y proyectos integrar FROST para Zcash en sus sistemas sin tener que renovar su infraestructura.
ZF también quiso hacer que las herramientas criptográficas avanzadas fueran más accesibles mediante bibliotecas fáciles de usar, aplicaciones de demostración y tutoriales para ayudar a los desarrolladores a adoptar FROST de manera rápida y sencilla.
¿Cuál es el estado actual de FROST para Zcash?
Hemos concluido nuestro trabajo de desarrollo en la implementación de referencia de FROST, frost-core, junto con los paquetes de cifrado. Para ayudar con la implementación, también hemos desarrollado herramientas para facilitar la comunicación entre los participantes: un servidor frost, frostd, y la herramienta de línea de comandos frost-client, cuyo propósito es funcionar como una herramienta independiente pero también como referencia para que las billeteras integren FROST.
¿Qué sigue?
El próximo paso es que las billeteras integren FROST utilizando estas herramientas directamente o como referencia, sabiendo que ZF está dispuesta a proporcionar orientación según sea necesario. Si los desarrolladores de billeteras dudan en ejecutar sus propios servidores frostd, el equipo está abierto a implementar una versión de producción. Es importante destacar que el servidor frostd no necesita ser confiable, ya que todos los mensajes están cifrados de extremo a extremo; solo retransmite información, similar a lightwalletd, y filtra metadatos mínimos que pueden protegerse aún más con herramientas como Tor.
Existen algunas preocupaciones sobre la falta de una especificación estandarizada de generación de claves para FROST, lo que actualmente limita la interoperabilidad; se está progresando en este frente, y esperamos completarlo pronto con la orientación de los ingenieros de ECC.
Preguntas frecuentes
¿Por qué Zcash requiere su propia implementación? ¿Por qué no hay una implementación de FROST para todos los protocolos?
Zcash requiere una implementación personalizada de FROST para mantener sus garantías de privacidad y necesidades específicas del protocolo, ya que las variantes genéricas de FROST carecen de características críticas como firmas rerandomizadas (que aseguran que las transacciones firmadas por umbral sean similares a las de una sola parte para garantizar el anonimato) y compatibilidad con los sistemas de transacciones blindadas de Zcash (Sapling/Orchard). Además, Zcash integra mecanismos de recuperación de partes, abortos identificables y salvaguardas contra ataques de concurrencia, adaptaciones innecesarias para cadenas que no priorizan la privacidad. Dado que los protocolos de blockchain priorizan diferentes compromisos (por ejemplo, la simplicidad de Bitcoin frente a la desvinculabilidad de Zcash), un estándar universal de FROST es poco práctico debido a matices criptográficos (curvas, serialización) y requisitos de seguridad específicos del ecosistema.
¿FROST para Zcash tiene aplicaciones comerciales fuera de Zcash?
No, esta implementación de referencia fue creada específicamente para el ecosistema de Zcash.
¿Ha sido auditado FROST para Zcash?
Sí, ha habido dos auditorías: la primera, realizada por NCC, auditó los paquetes principales que implementan la parte criptográfica de FROST; el informe completo está disponible. La segunda auditoría cubrió las herramientas auxiliares frostd y frost-client y fue realizada por Least Authority; el informe completo está disponible aquí.
¿Por qué se necesita un servidor FROST? ¿Cuál es el riesgo de usarlo?
El servidor FROST simplemente ayuda a los participantes a comunicarse entre sí; la mayoría de los dispositivos hoy en día están detrás de firewalls o enrutadores que dificultan la comunicación directa entre pares. Técnicamente, ¡el servidor ni siquiera sabe que se está utilizando para FROST!
Además, la herramienta frost-client que hemos desarrollado (que también sirve como referencia para otras implementaciones y funciona como una biblioteca) realiza un cifrado de extremo a extremo de todos los mensajes. Esto significa que no es necesario confiar en el servidor y no podrá ver el contenido de los mensajes. Sin embargo, el servidor puede recopilar metadatos (por ejemplo, quién habla con quién y en qué momentos), pero ese riesgo puede mitigarse utilizando, por ejemplo, Tor. El riesgo es muy similar al que enfrentan las billeteras al usar servidores lightwallet.
También hay que tener en cuenta que el uso del servidor FROST es opcional. Creemos que es el camino más fácil hasta que se desarrolle una solución mejor, pero las billeteras son libres de manejar la comunicación de los usuarios como deseen.
¿Qué falta para que un usuario regular de Zcash pueda usar FROST?
Lo que falta es que las billeteras integren FROST. Las herramientas necesarias para que esto ocurra ya han sido completadas por ZF (aunque, por supuesto, las billeteras son libres de usar la implementación y el diseño que deseen). Los usuarios con conocimientos técnicos pueden usar FROST con Zcash hoy en día utilizando nuestra herramienta de línea de comandos frost-client.
¿Es esta implementación de referencia de FROST capaz de ser incluida en NU 6.1?
Debido a la forma en que funciona FROST, no es necesario cambiar el protocolo para usar FROST con Zcash. Por lo tanto, sí, FROST puede usarse en NU 6.1, o incluso ahora con NU 6.
¿Cuál es la mejor manera para que los desarrolladores de billeteras contacten a ZF con preguntas?
Abran un issue o discusión en el repositorio y contacten en el canal #frost del Discord de I+D.
Traducción del original en inglés de la Fundación Zcash

Si quieres aprender más sobre privacidad en la economía digital descentralizada, te puedes unir a la comunidad de Zcash en Español en Telegram. Para conectar con el ecosistema digital de Zcash Español, visita nuestro Privacidad.me.


