Fastcrypto, la biblioteca de criptografía utilizada en Sui, ha batido muchos récords de velocidad, y nuestro trabajo en puntos de referencia y análisis de seguridad solucionó numerosas vulnerabilidades de seguridad y abrió la puerta a la innovación al identificar nuevos trucos de optimización.

Un artículo, Fastcrypto: Pioneering Cryptography Via Continuous Benchmarking, presentado recientemente en el taller de evaluación comparativa de la Conferencia Internacional sobre Ingeniería de Rendimiento (ICPE) en el Imperial College de Londres, describe nuestra evaluación comparativa continua y sistemática de funciones criptográficas en la biblioteca Fastcrypto.

La presentación formó parte de una sesión denominada “Innovaciones en Pruebas de Desempeño: Estrategias y Tecnologías” en el taller Pruebas de Carga y Benchmarking de Sistemas de Software. La conferencia atrajo a invitados tanto del mundo académico como de la industria, incluidos representantes de MongoDB y Amazon, que también hablaron en el mismo taller.

Destacamos la evaluación comparativa sistemática y continua de la biblioteca Fastcrypto, que es una colección de funciones criptográficas como firmas digitales, funciones hash y pruebas de conocimiento cero. En Fastcrypto, todas las funciones se comparan continuamente tras su lanzamiento y bajo demanda, y los resultados se publican en línea. Se pueden comparar fácilmente funciones similares y mantenemos los datos históricos para poder realizar un seguimiento del rendimiento a lo largo del tiempo.

La presentación enfatizó cómo estos puntos de referencia han facilitado una toma de decisiones más informada en el desarrollo de Fastcrypto y Sui, influyendo en las opciones de dependencias y uso, además de optimizar el enfoque de los recursos de los desarrolladores.

Toma de decisiones cualificada a partir de benchmarks

Un estudio de caso del artículo abordó el desafío de seleccionar un esquema de firma para validadores en Sui. Para que un usuario envíe una transacción a Sui, la transacción debe estar firmada por un quórum de validadores, combinados en un certificado de transacción. Con aproximadamente 100 validadores y una participación distribuida equitativamente, un quórum consta de 67 validadores, lo que significa que cada validador debe verificar 67 firmas por transacción.

El esquema de firma BLS permite verificar múltiples firmas como si fueran una sola firma, pero es mucho más lento que otras alternativas, como EdDSA. Una evaluación comparativa detallada reveló que el punto de equilibrio entre estos dos esquemas está entre 40 y 45 firmas. Por lo tanto, para Sui, usar BLS es más eficiente y esto es lo que se usa hoy en día.

La evaluación comparativa de los esquemas de firma EdDSA y BLS reveló un punto de equilibrio de 40 a 45 firmas por lotes, lo que demuestra que, con el grupo de validadores de Sui, BLS es una opción eficaz.

"También debería preocuparse si el software de repente es mucho más rápido"

La presentación también mostró cómo las pruebas comparativas pueden descubrir comportamientos inesperados del software. Un ejemplo involucró bibliotecas que implementaron el esquema de firma EdDSA, que suponía que la clave pública debía almacenarse en caché y proporcionarse como entrada para la función de firma. Si se proporcionó una clave pública incorrecta, podría dar lugar a la extracción de la clave privada (como se muestra en nuestro GitHub ed25519-unsafe-libs).

Este problema se detectó porque algunas bibliotecas mostraron un rendimiento inusualmente rápido, omitiendo la derivación de la clave pública y utilizando la clave potencialmente incorrecta proporcionada como argumento. Si bien los puntos de referencia a menudo apuntan a acelerar el software, “también debería preocuparse si el software de repente es mucho más rápido”, como señaló un miembro de la audiencia en el taller.