Ofuscación: el jefe final de la criptografía (Parte I)

Fuentes: Obfuscation: building the final boss of cryptography (Part I)

La ofuscación es la primitiva criptográfica más potente concebida hasta la fecha: permite convertir un programa en una caja negra que cualquiera puede ejecutar sin revelar su funcionamiento interno. Combinada con una blockchain, puede sustituir a prácticamente cualquier "tercero de confianza" imaginado en protocolos criptográficos, desde sistemas de voto privados y resistentes a la colusión hasta mecanismos de intercambio de secretos, todo ello sin requerir umbrales M-de-N. Su única limitación es que un programa ofuscado no puede impedir su copia, por lo que no puede gestionar estados como el dinero, una brecha que las blockchains llenan a la perfección.

El obstáculo histórico ha sido enorme. Ya en 2001 se demostró que la "ofuscación ideal" es imposible. Durante dos décadas, los criptógrafos trabajaron en la mejor alternativa posible: la ofuscación por indistinguibilidad (iO), con múltiples intentos fallidos. En los últimos años se han conseguido esquemas de iO con seguridad demostrable bajo supuestos razonables, pero a un coste computacional literalmente "galáctico": tiempos de ejecución superiores a λ^10, con λ entre 100 y 120.

Esta primera entrega, firmada por Vitalik Buterin, desglosa la familia más rigurosa de protocolos de ofuscación: una torre de construcciones (AJ15, BV15, LPST15 y LPST16) cimentada en cifrado funcional sucinto y en la propia iO. El artículo anticipa dos entregas más dedicadas a XiO y a la combinación de ambos bloques, e incluye abundante matemática de lattices, vectores y matrices, además de circuitos booleanos. La analogía con la situación de los SNARKs en 2010 sugiere que la eficiencia mejorará con el tiempo hasta hacer viables aplicaciones prácticas.