Traducción al español de No reason to be afraid of modern cryptography for consensus
Publicado por Cardanians en su blog de Medium.
Casi todos los proyectos de criptomonedas utilizan la criptografía asimétrica para firmar transacciones. Todas las transacciones se colocan en un bloque, y el protocolo debe llegar a un consenso para decidir si el bloque será eventualmente añadido a la cadena de bloques, o no. El primer protocolo de consenso fue PoW de Bitcoin, y actualmente el PoS está en boga. Tanto el consenso PoW como el PoS utilizan herramientas criptográficas. Sin embargo, muchas personas creen que sólo la herramienta criptográfica utilizada en PoW es la única solución válida, y que un enfoque diferente no puede funcionar dentro de PoS. Nos gustaría mostrarte que no exite ninguna razón de peso para creerlo.
No queremos explicarte cómo funcionan exactamente las herramientas criptográficas o cómo se utilizan para resolver un problema particular en un proyecto determinado. Nos gustaría destacar los principios básicos de la criptografía. Deberías comprender por qué la criptografía es segura, y bajo qué condiciones. A continuación, te mostraremos cómo las modernas herramientas de criptografía de Función Aleatoria Verificable y de Firma Evolutiva de Claves pueden ser utilizadas en el consenso PoS de Ouroboros.
Criptografía asimétrica
La criptografía asimétrica o criptografía pública es un componente esencial de las criptomonedas como Bitcoin y otras. Esta técnica criptográfica asegura que la fuente de las transacciones sea legítima y que los hackers no pueden robar los fondos de los usuarios. Las personas que envían transacciones pueden no darse cuenta de todo lo que se lleva a cabo en la billetera. Debajo del capó, hay un par de llaves: Una llave privada que debe mantenerse en secreto y una llave pública que puede ser transmitida a la red.
Bitcoin utiliza el Algoritmo de Firma Digital de Curva Elíptica (ECDSA) para crear un conjunto de llave privada y llave pública correspondiente. La llave pública se utiliza con una función hash para crear la dirección pública que los usuarios de Bitcoin utilizan para enviar y recibir fondos. La llave privada se mantiene en secreto y se utiliza para firmar una transacción digital, de modo de asegurar que el origen de la transacción es legítimo.
La magia detrás de ECDSA
¿Por qué funciona la criptografía?
RSA (Rivest-Shamir-Adleman) es otro algoritmo criptográfico asimétrico. Para nuestra explicación, utilizamos RSA ya que es fácil entender el concepto base. No queremos explicarte cómo funciona RSA, sino principalmente por qué es seguro. Lo simplificamos todo lo posible. Si deseas saber com más detalle cómo funciona RSA, puedes consultar este enlace. Sin embargo, no lo necesitarás para entender el contenido del artículo.
El algoritmo RSA se basa en el hecho de que es difícil encontrar los factores de un número compuesto grande. Cuando los números enteros son números primos, el problema se llama factorización primaria. Echemos un vistazo a la siguiente fórmula. Vamos a jugar un poco con él.
P * Q = N
Trata de encontrar los números primos P y Q para la fórmula de abajo. Puedes usar una calculadora (intenta pensar en cómo podrías resolverlo):
P * Q = 3127
Si intentas encontrar P y Q puedes tener éxito, pero probablemente pasarás algún tiempo en ello. Sin embargo, si escoges el número primo, la tarea es muy simple. Así que si eliges P y Q obtienes el resultado casi inmediatamente.
53 * 59 = N
Como puedes ver, puedes encontrar fácilmente la solución N para la fórmula anterior.
RSA
El punto y la razón de por qué la criptografía funciona es que no hay un algoritmo rápido que sea capaz de encontrar rápidamente y en tiempo real la solución para la primera fórmula. Imagina lo difícil que sería la tarea para números primos mucho más grandes.
Lo hemos simplificado un poco, pero RSA es algo más complicado que eso. Lo que debes comprender es que el único método posible conocido para encontrar P y Q bajo un N dado es hacer muchos intentos. ¿Cuántos? P y Q pueden ser números primos tan grandes que la computadora de escritorio más potente tardaría años en encontrar la solución.
Si deseas romper la criptografía RSA tendrás que utilizar el llamado ataque de fuerza bruta, e intentar encontrar una llave privada a partir de una llave pública conocida. La computadora tendría que hacer muchos intentos para encontrar una solución para P * Q = 3127. Sin embargo, este ejemplo es muy básico. Como dijimos, con números primos mucho más grandes (vía factorización) la tarea es significativamente complicada.
Por lo tanto, es importante la longitud de la llave. Cuanto más altos sean los números primos P y Q, más alto será N. Por lo tanto, la tarea será más complicada para una computadora que intente romper la llave.
Alternativamente, puedes intentar encontrar algún algoritmo que resuelva la tarea sin fuerza bruta. Sólo un algoritmo que lleve inmediatamente al resultado. Si lo consigues, es probable que consigas el premio Nobel. Probablemente no es posible. Al menos los mejores cerebros matemáticos del mundo así lo creen.
¿Cómo se utilizan los números primos grandes en la realidad? Hoy en día, la longitud de la clave puede ser de 2048 a 3072 bits, por lo que los números primos son de 1024 a 2048 bits. El número primo más corto es 2 ⁵¹² que es un número de 150 dígitos. Sin embargo, hoy en día es un número demasiado pequeño para los ordenadores modernos.
RSA afirma que las claves de 2048 bits son viables hasta el 2030. Se debe utilizar una longitud de clave RSA de 3072 bits si se requiere seguridad más allá de 2030. Si por tu parte trataras de descifrar RSA en una computadora de escritorio, no serías capaz de descifrarlo en toda tu vida.
Puedes experimentar con RSA, aquí.
RSA se utiliza para encriptar un mensaje (ponerlo en un texto ilegible) para luego enviarlo de manera segura a través de internet o mantenerlo almacenado en un disco duro. Más tarde se puede descifrar el mensaje y obtener el texto legible original. Las llaves públicas y privadas se utilizan para el cifrado y el descifrado. Puedes ver la imagen de abajo para ver cómo funciona, pero no es necesario que lo entiendas para el objetivo del artículo. No importa si se utiliza RSA o ECDSA (usado actualmente en Bitcoin). Los principios son similares.
Cómo funciona la llave pública en la criptografía
Lo importante es que el cifrado y descifrado de un fragmento de texto o la firma de una transacción de Bitcoin es un proceso muy rápido y no necesita mucha potencia de cálculo ni tiempo.
La criptografía es segura debido al hecho de que es un proceso computacionalmente exigente para romperla. Básicamente es casi imposible. Expliquémoslo más a fondo.
Ataque por fuerza bruta
Un ataque de fuerza bruta, también conocido como búsqueda exhaustiva, es un hack criptográfico que se basa en adivinar las posibles combinaciones de un cifrado dado, hasta que se descubre la combinación correcta. Cuanto más larga sea la llave, más combinaciones habrá que probar. Un ataque por fuerza bruta puede llevar mucho tiempo, ser difícil de llevar a cabo si se utilizan métodos como la ofuscación de datos, y a veces es totalmente imposible.
El tiempo necesario para romper un cifrado es proporcional al tamaño de la llave secreta. El número máximo de intentos es igual a 2^ el tamaño de la llave, donde el tamaño de la llave es el número de bits que la compone Hoy en día, es posible romper un cifrado con una clave de unos 60 bits de longitud, utilizando el ataque de fuerza bruta en menos de un día.
Para romper cifrados utilizando ataques de fuerza bruta, a menudo se utilizan veloces superordenadores especialmente diseñados para tal fin. Forman parte de grandes laboratorios de investigación o agencias gubernamentales, y contienen decenas o cientos de procesadores. Alternativamente, para romper el mismo cifrado se pueden utilizar grandes redes de miles de computadoras estándares que trabajan juntas. Los ataques criptográficos de fuerza bruta son procesos muy escalables.
Podemos confiar en la criptografía siempre y cuando creamos que una sola entidad no es capaz de recolectar suficiente poder computacional para romper un cifrado. En otras palabras, creemos que nadie está dispuesto a realizar un ataque de fuerza bruta para romper una llave secreta, ya que sería una apuesta sumamente costosa.
Cómo funciona PoW
Este principio se utiliza al revés en el consenso PoW. La prueba de trabajo (PoW) también puede ser considerada como un ataque de fuerza bruta. Es un tipo especial de ataque por fuerza bruta. El protocolo de Bitcoin es capaz de medir la potencia de cálculo disponible y puede calcular la dificultad de una tarea. Así, el protocolo es capaz de establecer la dificultad de la tarea criptográfica de manera que la combinación correcta se halle en aproximadamente 10 minutos. A veces es sólo un minuto, otras veces puede ser por una hora. 10 minutos es el tiempo aproximado si consideramos más intentos seguidos.
PoW utiliza la herramienta criptográfica SHA-256. Un hash criptográfico (a veces llamado “hash”) es una especie de “firma” para un texto o un archivo de datos. SHA-256 genera una firma de 256 bits (32 bytes) casi única para un texto.
SHA-256 es una función de hash que toma un fragmento de datos como entrada y produce un hash como salida; siempre el mismo hash (salida) para la misma entrada. Sin embargo, si cambia un solo carácter en la entrada, el hash resultante será completamente diferente. Esta propiedad es crucial para el algoritmo de “prueba de trabajo” involucrado en la minería.
Puedes experimentar con SHA-256, aquí.
Para extraer con éxito un bloque, los mineros intentan cambiar las entradas de tal manera que el hash (salida) resultante comience con un cierto número de ceros (objetivo de dificultad). En otras palabras, necesitamos una salida que satisfaga los requisitos del protocolo.
Una función de hash es muy rápida y produce la salida en un instante, independientemente del tamaño de los datos. Sin embargo, si el protocolo establece el requisito de cómo debe ser el hash (salida), entonces es necesario cambiar un número determinado una y otra vez para cambiar la entrada. El cambio de la entrada da como resultado una salida diferente. Hay que hacer una gran cantidad de intentos para encontrar la salida requerida.
PoW utiliza una función de hash, no una criptografía de llave pública. Aún así, ambas herramientas pueden ser consideradas como herramientas criptográficas utilizando algunos algoritmos matemáticos que garantizan la seguridad y que posiblemente sólo puedan romperse mediante un ataque de fuerza bruta. PoW acomoda la complejidad de la tarea para que la tasa de hash actual pueda encontrar la solución aproximadamente en 10 minutos.
Un ataque de fuerza bruta requiere mucha electricidad, y eso es lo que Satoshi quería lograr para el PoW. La tarea tiene que ser tan compleja que se consuma una cantidad significativa de electricidad. Esta es una de las razones por las que el tiempo por bloque en Bitcoin esté ajustado a 10 minutos, y no a unos pocos segundos. Funciona bien. Sin embargo, impide la escalabilidad ya que producir un bloque cada 10 minutos no es suficiente para un protocolo global.
Es difícil generar aleatoriedad en el mundo digital.
Uso de las herramientas criptográficas modernas para el consenso
Las criptomonedas se basan en soluciones criptográficas, y siempre se van mejorando con el tiempo o se inventan otras nuevas. Al mismo tiempo, la potencia de cálculo disponible también está en aumento. De vez en cuando, tenemos que empezar a usar llaves más largas. El tamaño de los bloques en las redes distribuidas es limitado, por lo que debemos evitar el uso de llaves muy largas. Afortunadamente, mientras que algunas herramientas criptográficas se volvieron obsoletas, otras han sido mejoradas y nuevas han sido inventadas. Por ello, se necesitan cambiar las herramientas criptográficas cada pocos años. En realidad, Bitcoins está a punto de reemplazar ECDSA por la firma Schnorr.
La pregunta es por qué no utilizar la criptografía moderna también dentro del proceso de consenso. Podemos conseguir la misma seguridad que en PoW y al mismo tiempo lograr una mayor escalabilidad. Realmente no hay ninguna razón de peso para usar un ataque de fuerza bruta para llegar al consenso de la red, si podemos usar la criptografía moderna.
Cardano Ouroboros PoS utilizará dos herramientas de criptografía: Firma Evolutiva de Claves (KES) y Función Aleatoria Verificable (VRF). De este modo, puede evitar el uso de un ataque de fuerza bruta, y puede llegar a un consenso en 20 segundos, en un entorno que será 50 veces más descentralizado que Bitcoin. Se espera que existan aproximadamente unos 1000 pools en la red de Cardano.
Cómo se utiliza KES y VRF en Ouroboros
El protocolo Ouroboros permite seleccionar un nodo con derecho a crear un nuevo bloque. No hay competencia abierta como en PoW. Una vez seleccionado el ganador, la creación del bloque no cuesta casi nada. Esto introduce un famoso problema de “nada que perder”, en el que un participante malintencionado puede intentar crear al azar ramas adicionales de la cadena de cualquier longitud debido al hecho de que no cuesta nada crear un bloque.
Ouroboros resuelve este problema introduciendo intervalos (slots) y ciclos (epochs). Cada ciclo contiene 21.600 intervalos. Al inicio de cada ciclo, un algoritmo especial de aleatoriedad multipartita selecciona un conjunto de líderes para los intervalos de todo el ciclo.
En este punto, la función aleatoria verificable entra en juego. Un Oráculo Global Aleatorio produce una nueva y renovada aleatoriedad por cada ciclo. La propia cadena de bloques se convierte en su fuente de nueva aleatoriedad.
Los líderes de intervalos, seleccionados al azar, tendrán el derecho de producir un bloque en un intervalo determinado. Así que para cada ciclo, hay una especie de conjunto fijo de líderes. Por lo tanto, un atacante al azar no podrá entrar y tratar de engañar a toda la red. Los líderes de intervalos están programados para toda el ciclo, y se puede verificar fácilmente que un bloque fue producido por un líder de intervalo programado.
Este mecanismo protege a la red del problema de “nada que perder”. Un atacante no puede generar aleatoriamente una cadena scam aleatoria a partir del mismo bloque genesis, ya que el conjunto de líderes de intervalos sería el mismo desde el principio, y tendría que corromper de alguna manera todos los nodos reales existentes que fueron líderes en ese momento.
Sin embargo, esto introduce otro vector de ataque. Los nodos que fueron seleccionados como líderes de intervalos en el pasado podrían ser hackeados, desconectados, o simplemente vender sus llaves privadas. Y si el atacante fuera capaz de recolectar suficientes llaves para toda la historia de la cadena, podría recrearla pero con sus propias transacciones. Con el fin de eliminar la posibilidad de que los antiguos líderes de intervalos entreguen sus llaves, el protocolo de Ouroboros Praos decide destruirlas. Así que cada líder de intervalo, en el correr de su intervalo posee dos conjuntos de llaves: su llave privada como nodo (como las llaves estándar de una billetera) y una llave especial de firma de bloque (derivada de su clave privada mediante una función especial). Cuando su intervalo aparece, el nodo produce una llave especial, la usa para firmar su bloque y luego la destruye. En el futuro, el atacante no es capaz de reproducir la misma llave, por lo que no puede tener el derecho a recrear intervalos pasados.
En este punto, Key Evolving Signature permite que un nodo genere una nueva llave secreta antes de emitir el nuevo bloque. La llave pública sigue siendo la misma, pero la llave secreta puede ser recreada. Por lo tanto, una llave secreta sólo puede utilizarse una vez para la firma de bloque.
Puedes leer un gran artículo de Carlos Lopes de Lara.
Conclusión
Los proyectos de criptomonedas están en sus albores, y tienen que evolucionar para ser globalmente escalables y capaces de lograr una mayor adopción. Podemos ayudar a la adopción si tenemos un proyecto escalable. Bitcoin nunca escalará y es ingenuo pensar que podemos construir todo alrededor de Bitcoin. Tenemos que utilizar las mejores herramientas de criptografía disponibles para entregar un proyecto escalable y descentralizado.
Cardano ofrecerá escalabilidad, seguridad y descentralización al más alto nivel posible. Los usuarios confían en la criptografía asimétrica y no hay razón para temer el uso consensuado de las herramientas de Función Aleatoria Verificable y de Firma Evolutiva de Claves.
Considera la posibilidad de delegar tus monedas ADA en Cardanians.
Si te gustan nuestros artículos, puedes apoyarnos con una donación en ADA:
DdzFFzCqrhseNP1C9XEs1MA82rgnVZwNpeiNCbLxrJfRzwaceXB9VYqPFYyRrYegc67SERjcQ1xvwB6jryp5vgGUf1cvzbeZP2a92tQe