Por Antonio Sánchez

Siempre me gusta empezar un artículo con un poco de historia: para quien aún no lo sepa, Ouroboros viene de Uróboros, que viene del griego, y significa serpiente que se come la cola. Se trata de un concepto  que se emplea desde hace miles de años, un símbolo que representa el ciclo eterno de las cosas, un ciclo que vuelve a comenzar pase lo que pase.

Recomiendo, para quien aún no lo haya leído, el artículotitulado «Cardano: la revolución tecnológica que sustituirá a Ethereum», publicado en el número 4 de AgoraChain. Como ya comenté en ese artículo, Ouroboros es el algoritmo de prueba de participación (PoS) de Cardano. Este algoritmo se encarga de determinar cómo cada nodo de la blockchain de Cardano llega a un consenso sobre toda la red.

Ya sabemos que nos encontramos ante una nuevarevolución tecnológica: el gran descubrimiento de la tecnología blockchain va a hacer del mundo un lugar mejor, pero muchos algoritmos necesitan un protocolo de prueba de trabajo (PoW) y este conlleva un gasto energético muy alto. Pues bien, Ouroboros elimina por completo la necesidad de este tipo de protocolo, sin perder la seguridad, y resultando más beneficioso para el medio ambiente y en general para todos.

Pasamos a hablar de la persona que se encuentra tras la creación de este gran algoritmo: el científico jefe de IOHK, Aggelos Kiayias, Catedrático de Seguridad cibernética y privacidad en la Universidad de Edimburgo. Aggelos es un gran investigador del protocolo de Bitcoin, y un gran experto en criptografía. Él y su equipo han logrado en el Crypto 2017 alcanzar el nivel de revisión académica por pares. Este paso es muy importante, pues hasta hoy ningún PoS había podido demostrar ser tan seguro como Bitcoin, y ahora Ouroboros lo es. Parece increíble poder demostrar la misma seguridad que un protocolo PoW pero con el gasto energético de un PoS, lo cual supone un gran avance para toda la blockchainconocida hasta ahora.

Vamos a diferenciar lo que es una prueba de participación para aquellos que aún no lo sepan. En la prueba de trabajo, los mineros son los que invierten el poder de computación para competir y ser los elegidos como líderes en lograr hacer el siguiente bloque. Esto conlleva un premio, que viene a ser la recompensa por hacerlo. Por el contrario, en la prueba de participación, el líder que formará el próximo bloque se selecciona al azar, de manera proporcional al número de fichas que en este caso posea: cuanto mayor sea el número, mayores serán las posibilidades.

Ahora viene la miga, como se dice en mi pueblo: cómo funciona Ouroboros, qué hace que este algoritmo sea tan bueno y tan seguro. Para poder entender un poco su funcionamiento, tenemos que recordar el funcionamiento de nuestro querido BitTorrent: cuanta más gente tenía el archivo que querías descargar, más rápida era su descarga. Pues, en este caso, Ouroboros hace lo mismo, es decir, cuantos más usuarios tenga la blockchain de Cardano, mayor número de transacciones y mejor capacidad de procesamiento tendrá la misma. Esto es estupendo, ya que muchos algoritmos fallan en escalabilidad, mientras que en este caso Cardano mejora cuanto mayor sea su blockchain.

A diferencia de Bitcoin, Cardano no necesita descifrar los algoritmos complejos de su blockchain para verificar las transacciones. Cardano permite crear un nuevo bloque basándose en la cantidad de ADA que posean los nodos: a mayor número de ADA, mayor posibilidad de que su nodo sea de interés y cree un nuevo bloque con éxito. Al nodo que crea con éxito el nuevo bloque se le llama el «líder de bloque».

Un líder de bloque es esencial para la creación de nuevos bloques en la blockchain de Cardano. Este puede recibir transacciones comunicadas por otros nodos, y completar un bloque firmándolo con su clave secreta y publicándolo en la blockchain.

Ouroboros divide el tiempo físico en épocas, y este a su vez se divide en ranuras, cada una con un periodo de unos 20 segundos. Por su parte, cada líder tiene derecho a producir un solo bloque durante su liderazgo: es una forma segura de mantener el azar para los demás nodos, y cada nodo podrá volver a ser elegido como líder después de crear su bloque. Los bloques pueden estar vacíos, pero dentro de una época tiene que haber mínimo el 51% para que sea correcta. La elección de los líderes se realiza en cada época, y a cada líder se le asigna una ranura: cuantamás cantidad de ADA, más posibilidades de ser elegido.

Para el problema de la imparcialidad, que es uno de los problemas más comunes en blockchain, necesitaríamos un cierto grado de aleatoriedad como base a la elección del líder. Lo bonito de Ouroboros es el camino que le han dado a la hora de la realizarlo: gracias a la computación multiparte, la finalidad es que gracias a la aleatoriedad los resultados se puedan compartir con los siguientes líderes de forma segura.

Ahora vamos a explicar las distintas fases que existen a la hora de escribir el bloque, lo cual puede resultar un poco confuso, pues es la parte más técnica. La primera fase es la de compromiso. Esta se encarga de generar un valor aleatorio especial, y a continuación crear un compromiso o trabajo, que es un mensaje que contiene recursos cifrados y una prueba de secreto.

El siguiente paso es cuando un elector firma este trabajocon su clave secreta, especifica el número de la época y agrega su clave pública. En este caso, todos pueden verificar quién creó este trabajo y con qué época se relaciona el trabajo. Posteriormente, un líder envía su trabajo a otros líderes, por lo que, en definitiva, cada líderrecoge los trabajos de todos los demás líderes.

La fase de revelación es cuando un líder envía una acción de apertura: con su clave privada, este abrirá el trabajo. La fase final en el proceso se llama fase de recuperación. Unlíder tiene trabajos y aperturas. Teóricamente, algunos líderes pueden ser rivales y pueden publicar su trabajopero no publicar su apertura. En estos casos, los líderes que sean honestos pueden publicar todas las acciones para reconstruir el secreto.

La idea de este método es simple: una elección termina exitosamente incluso si algunos líderes son rivales.Posteriormente, un líder verifica que los trabajos y las aperturas coinciden, y si es así, extrae los secretos de los trabajos y forma una semilla, que no es nada menos que una cadena de bytes generada aleatoriamente, a partir de estos secretos.

Finalmente los líderes obtienen la misma semilla, que se usará para el algoritmo FTS (Follow the Satoshi). Lo llaman así en honor a Satoshi Nakamoto. Una vez realizados los pasos anteriores, el bloque será completado, y pasarán al siguiente: es un proceso sencillo y muy seguro.

Para los lectores que posean ADA, tenemos un grupo de Cardano en español para Telegram. Además, soy el creador del pool de minería PoS de Cardanode.club. Estáis todos invitados.

Espero que os haya servido para entender un poco más la funcionalidad de un algoritmo que a día de hoy va a hacer frente a otros como el de BTC sin el consumo energético que este conlleva. Muchas gracias y nos vemos en el próximo artículo.