Traducción al español de Provision of network decentralization on the protocol level
Publicado por Cardanians en su blog de Medium, el 12 de Septiembre de 2019.
Algoritmo de consenso de Cardano, Ouroboros
Introducción
No cabe duda de que es necesario proporcionar un alto grado de descentralización en las redes distribuidas. Dicho esto, la descentralización en sí misma tiene que estar garantizada por el propio protocolo a través del denominado “algoritmo de consenso”. Asimismo, debemos tener en cuenta el hecho de que las “condiciones del mundo real” están sujetas a cambios, cambios que el propio protocolo apenas puede abordar, ya que es imposible predecir situaciones futuras. Si tales situaciones se presentan, es necesaria la intervención del equipo de desarrollo para que se puedan ajustar las reglas del consenso en el protocolo, de manera tal que reflejen el nuevo estado de las cosas del mundo real, permitiendo efectivamente que el protocolo conserve su calidad.
En este sentido, hay que señalar que existen diferencias significativas en los conceptos del PoW y PoS. Por lo tanto, veamos la historia del “nivel de descentralización” de Bitcoin, consideremos su estado actual y establezcamos una comparativa con el potente PoS de Cardano, Ouroboros.
¿Cómo medir hasta qué punto está descentralizada la red?
Una red distribuida es un tipo de red en la que más nodos llegan a un consenso sobre el cambio de datos. Nos referimos a ella como “consenso distribuido”, es decir, un acuerdo de más entidades sobre las normas del protocolo.
En primer lugar, veamos la definición de la descentralización en sí misma. El grado de descentralización viene determinado por la independencia de sus nodos. Esto se debe a que, en teoría, todos los nodos de una red distribuida podrían tener un único propietario. En tal caso, a pesar de ser una red distribuida, se consideraría totalmente centralizada. Podría decirse que, en términos de un escenario ideal, cada nodo debería tener un propietario diferente, lo que haría que la red fuera tanto distribuida como descentralizada.
En segundo lugar, asumamos la perspectiva geográfica. En términos de una red distribuida globalmente, el estado deseado es tal cuando los nodos están distribuidos equitativamente por todo el mundo. Esto se debe a que los riesgos potenciales para la seguridad, tales como todo tipo de ataques y actividades de piratería informática, por ejemplo, por parte de los Estados nacionales, tienen que ser considerados seriamente y, posteriormente, se toman medidas preventivas. Esta es la razón por la que tener todos los nodos en un solo país, especialmente uno con un régimen político bastante autoritario, restrictivo o inestable, dista mucho de ser ideal.
En la introducción, mencionamos que un protocolo debe reflejar y reaccionar a los cambios que ocurren en el “mundo real” a nivel de gestión de proyectos. Por lo tanto, una red descentralizada requiere un equipo de desarrollo descentralizado y totalmente transparente, de modo que se puedan tener en cuenta las necesidades de los usuarios, es decir, un equipo deseoso de hacer todo lo posible en nombre del protocolo.
Antes de comenzar con la siguiente indagación sobre el tema, podemos concluir que cuanto mayor es la descentralización, mayor es el número de entidades independientes con derecho a proponer un bloque en particular. Por consiguiente, con un mayor número de entidades de este tipo, el riesgo de censura se reduce en gran medida, ya que el poder de decisión se distribuye entre un número mucho mayor de “agentes”. Esto aumenta enormemente las probabilidades de que la mayoría demuestre comportamiento y conducta honestos y que, a su vez, esto incremente la confianza de los usuarios en el protocolo. Y el elemento de confianza es fundamental para la adopción más extensiva de cualquier protocolo, ya que durante las transacciones entre pares, el protocolo en sí mismo sirve como intermediario a través de los nodos de la red. En pocas palabras, los usuarios confían en los operadores de pools que están supervisados por el protocolo.
Bitcoin y su PoW
En lo que respecta al PoW, dos variables clave deciden efectivamente quién gana la carrera para añadir un bloque: la tasa de hash y la coincidencia. Sin embargo, el ganador de tal carrera puede ser predicho con un alto grado de probabilidad ya que una tasa de hash más alta presenta una ventaja considerable. Imagínese, si sólo existieran dos entidades, la primera con un 70% de tasa de hash y la segunda con el 30% restante. En tal escenario, la entidad con una tasa de hash más alta no extraerá el 100% de los bloques, sino más bien el 90% y la entidad menos poderosa tendrá que depender del factor de coincidencia mientras busca el hash correcto.
Siendo así, el PoW revela una gran desventaja en términos del concepto de descentralización. Su nivel disminuye progresivamente a medida que la tasa de hash, con máquinas mineras dedicadas instaladas en grandes naves, se dispara. En consecuencia, los mineros menores están cada vez menos motivados a la minería, ya que la minería se vuelve poco rentable con la utilización de la CPU y la GPU. Y hoy en día, en muchos países, la rentabilidad de la utilización de los mineros ASIC también se pone en duda, a menos que el individuo tenga acceso a una electricidad barata. Con el surgimiento de los pools mineros, los mineros comenzaron a delegar su poder, por lo que hoy en día se vislumbra una nueva tendencia de comprar tasas de hash de un gran pabellón con moneda fiduciaria, violando efectivamente el concepto de descentralización. Los pools mineros, sus operadores, respectivamente, controlan la tasa de hash y, por lo tanto, ganan un poder sustancial que ahora ejercen.
Utilizando el protocolo Stratum, los pools proporcionan una plantilla de bloques a los pequeños mineros que trabajan para resolver el problema en una escala dada. Al distribuir el trabajo entre los mineros individuales, el pool aumenta las probabilidades de explotar con éxito el bloque en cuestión y, dado que el pool es totalmente responsable de la creación de bloques y de la validación de transacciones, también puede aplicarles la censura, añadiendo transacciones de acuerdo con sus preferencias sin tener en cuenta la tarifa, o puede optar por ignorar una transacción en particular. Hay gente común detrás de los operadores de pools, y pueden ser forzados por algún atacante a hacer algo incorrecto.
Desde la perspectiva de la descentralización, un protocolo debería eliminar cada punto de falla. Por lo tanto, también todos los posibles ataques deberían poder ser eliminados. Los operadores de pools en Bitcoin son puntos de fallo individuales.
Desde el punto de vista del propio protocolo, la descentralización no está siendo controlada en absoluto. Durante la etapa naciente de los cripto-proyectos, funcionó relativamente bien, aunque había muchos menos mineros que minaban en computadoras de alto rendimiento. Así, Bitcoin solía ser descentralizado y resistente a la censura. Esto, sin embargo, ya no es así, ya que el algoritmo de consenso PoW no tiene en cuenta el mero hecho de la centralización gradual de las operaciones mineras, delegando el rendimiento a grandes pools. El algoritmo en sí no es capaz de identificar y, por lo tanto, cuando se le presenta un bloque válido (desde el punto de vista de una transacción), simplemente lo añade a la cadena de bloques. En otras palabras, el algoritmo de consenso PoW ignora completamente la posibilidad de que los bloques pudieran haberse creado de forma centralizada, o el hecho de que una entidad en particular pudiera haber censurado transacciones particulares. El protocolo ha estado trabajando de esta manera durante años, y el equipo que lo respalda no ha abordado los cambios en el medio exterior, a saber, la creación de los mineros de ASIC, las grandes naves mineras, así como los pools mineros. Esto podría verse como un fracaso de su equipo.
Asimismo, es importante tener en cuenta que el fork en la cadena de bloques es posible, siendo los pools quienes determinan cuál rama del fork continuará las operaciones. Aquí, existe un peligro significativo en la posibilidad de una reorganización de la cadena de bloques de acuerdo con una idea particular, y si los 3 o 4 pools mineros más fuertes deciden cooperar en tal esfuerzo, tal hazaña es factible, especialmente en un ambiente donde no hay más de 10 pools fuertes, siendo la mayoría de ellos de origen chino. Por lo tanto, el riesgo antes mencionado es relativamente alto.
El eje principal de esta amenaza radica en el hecho de que el derecho a crear un nuevo bloque no requiere más que de unos pocos pools mineros potencialmente cesurables, y la base para obtener ese derecho reside en la competencia por el poder de cómputo, que fue centralizándose gradualmente en torno a los pools. Además, esta posición se fortaleció aún más al delegar los mineros más pequeños las tasas de hash a los pools. Podemos hacer una comparación con el escenario de un país que se enfrenta a elecciones generales sin un buen partido para votar, dejando que los ciudadanos opten por una elección de un mal menor. Para empeorar las cosas, a diferencia de la política, la votación es totalmente antidemocrática, ya que los pools son propietarios de sus pabellones de explotación minera, y nadie sabe realmente qué parte de la tasa de hash pertenece realmente a los pools, y cuánto de ella se delega.
¿No debería haber intervenido ya el equipo principal e intentado hallar una solución viable en relación a los pools? Desafortunadamente, no vemos tales esfuerzos; la iniciativa para abordar este problema sólo proviene de los individuos (Stratum 2, BetterHash). En teoría, el equipo responsable debería haber tenido una posición más proactiva para resolver el problema, ya que están mucho más cerca del protocolo. Sin embargo, una solución de este tipo requeriría cambios fundamentales. También se plantea la cuestión de si el número de pools aumentará o disminuirá en el futuro, una respuesta a una pregunta que, por ahora, es difícil de predecir.
¿Puede ser mejor el PoS de Cardano en términos de descentralización?
En cuanto al algoritmo de consenso de Cardano, Ouroboros, la capacidad para salvaguardar la descentralización es mucho mayor. Esto es posible gracias a la configuración específica de todo el modelo económico que favorece la existencia de un gran número de pools que se equilibrarán en términos de influencia, es decir, una oportunidad para producir un nuevo bloque. Además, habrá una selección de pool completamente aleatoria con el derecho de producir un nuevo bloque. La clave para un alto grado de descentralización y las restricciones de la posibilidad de censura son la garantía de la aparición de un gran número de entidades con derecho a crear un bloque. En el caso de Cardano, la delegación con ADA se realizará sobre los stake pools y, por lo tanto, serán apoyados por los usuarios. El modelo económico se establecerá de manera tal que los pools más grandes, cuando alcancen un cierto grado de saturación, recibirán menos recompensas por producir un bloque, a pesar de sus mejores esfuerzos por hacerlo de la manera correcta. En consecuencia, mientras que dichos pools serán creadores de bloques con mayor frecuencia, los usuarios se verán motivados a delegar sus monedas en grupos más pequeños, donde la recompensa será mayor a pesar de que produzcan un menor número de bloques dentro de un período determinado.
Este recuento matemático se incorporará al propio protocolo. En consecuencia, se supone que los usuarios, con el fin de maximizar sus beneficios, delegarán sus monedas de manera que ofrezcan el mayor beneficio económico. Aquí, las billeteras parecen ser un instrumento útil.
El protocolo se basa en modelos matemáticos, en la teoría de juegos, y en el desarrollo previsto del comportamiento del mercado, lo que, en teoría, impide la aparición de grandes grupos dominantes. Sin embargo, como hemos experimentado en el caso del PoW un desenlace inesperado, hacer predicciones precisas es bastante difícil. Dicho esto, la única solución eficaz es una reacción rápida a un problema en particular, idealmente, aunque sea un desarrollo descentralizado, ya que gracias a la elección aleatoria del pool, un hipotético estafador tendría muy pocas posibilidades, ya que no hay garantía de éxito en la creación de bloques seguidos, lo que hace imposible reorganizar la cadena de bloques.
En el caso del PoS, la distribución de la moneda es esencial. Un estafador podría poseer más fondos y si tuviera un gran número de monedas a su disposición, sus posibilidades de cometer un fraude con éxito serían igual de grandes. Sin embargo, debido a los elementos de elección aleatoria, el grado de incertidumbre en términos de lograr un ataque exitoso es relativamente alto y, en consecuencia, si las personas se dieran cuenta de tal comportamiento fraudulento, podrían delegar sus monedas en otro lugar y, por lo tanto, obstaculizar la influencia del falsificador.
El beneficio de PoS también se puede apreciar en el hecho de que el algoritmo de consenso se puede ajustar, en caso de no funcionar según lo planeado. Con PoW, por otro lado, es mucho más complicado ajustar el algoritmo porque el ganador está determinado por el puro poder de la tasa de hash, con los respectivos pools compitiendo entre sí. Se puede hacer una analogía con una carrera de velocidad. En la largada, los corredores salen corriendo, sin embargo, sólo una persona puede ser la ganadora, que es la primera en llegar a destino. Y con PoW no hay segundo o tercer lugar, el ganador se lleva todo. Para empeorar las cosas, debido a la latencia de la red, algunos “corredores” pueden salir antes y, por lo tanto, aumentar sus probabilidades de obtener la victoria.
La creación de un nuevo bloque en Ouroboros Genesis
En Cardano, el tiempo se divide en números enteros lógicos específicos llamados ciclos (epochs). Cada ciclo se divide en 21.600 intervalos de tiempo (slots), cada uno de los cuales dura aproximadamente 20 segundos, por lo que cada ciclo dura aproximadamente 5 días. En cada intervalo, un nodo es elegido como “líder del intervalo” (slot leader), y puede crear un nuevo bloque. Antes del inicio de cada ciclo se seleccionan todos los líderes de intervalos al azar, de una manera tal que nadie puede prever cuándo obtendrá cada uno su derecho a minar un bloque en particular. Las recompensas se pagan después del final de cada ciclo, y no después de cada bloque minado, como es el caso de PoW. Si un nodo en particular desea participar en el consenso, tiene que conectarse a la red y sincronizar el ledger. Posteriormente, el nodo se registra en la función Reloj Global, que es utilizada por el protocolo para la temporización. La función Reloj Global proporciona al nodo la información necesaria para determinar el ciclo e intervalo en el que se encuentra el ledger.
El Profesor Aggelos Kiayias explicando Ouroboros
Al principio de cada ciclo, se ejecuta una instantánea (snapshot) de la cadena de bloques para averiguar cómo se distribuyen las monedas para el stake. La instantánea refleja el estado de la distribución de las monedas en juego, durante el último bloque perteneciente a 2 ciclos anteriores. Aquí se aplica el mecanismo Follow-the-Satoshi, en el que cada Lovelace (0,000001 ADA) delegado es algo así como un billete ganador que podría ganar el derecho a crear un bloque. Cuantos más boletos tenga el usuario en el juego, mayores serán las probabilidades de ganar. La instantánea aquí es una entrada para generar un elemento de coincidencia.
El nodo se registra en la función Global Random Oracle que genera, en cada intervalo, un número aleatorio “V”. El oráculo genera un elemento de coincidencia basado en el historial de bloques y en la identificación unívoca de nodos. Como veremos más adelante, los números “V” serán añadidos al bloque por el elegido líder del intervalo. Ahora, trate de imaginar que estamos en el primer intervalo de un nuevo ciclo. Cada nodo realiza una búsqueda al inicio del nuevo intervalo, sea o no el líder, y la respuesta se proporciona a través de una función aleatoria verificable, que se basa en la criptografía moderna. Aquí se realiza una consulta hacia el Global Random Oracle, con la respuesta del número “V”. Para obtener la respuesta, sin embargo, se necesitan varios inputs - el índice del intervalo real, la marca de tiempo (timestamp), la llave del nodo, la distribución de monedas 2 ciclos atrás, una vez para un ciclo dado, y semillas aleatorias.
Luego, la función Global Random Oracle toma al azar los números “V” que se incluyen en los dos primeros tercios de los intervalos del ciclo anterior, los hash y, en consecuencia, se crea una semilla al azar. El último tercio de los bloques no se tiene en cuenta, ya que estos bloques no tienen el número necesario de verificaciones y todavía están sujetos a cambios. Dicha función Global Random Oracle proporciona el número aleatorio “V” basándose en la consulta del nodo.
Gracias a VRF se puede llevar a cabo un sorteo, que proporcionará al nodo la respuesta final a la pregunta de si es o no el líder del intervalo. Si el número “V” tiene un valor inferior a un determinado valor de umbral, se convierte en el líder del intervalo. Son dos resultados importantes que se derivan de la VRF. Aparte del número “V”, se genera una prueba “P”, que es introducida por el líder del intervalo en el bloque propuesto. Combinando el número “P” con el número “V”, otros nodos pueden verificar si el nodo en cuestión tenía realmente derecho a crear un bloque en el intervalo dado. Un nodo malintencionado, por lo tanto, no puede sugerir aleatoriamente un bloque ya que no tiene la oportunidad de generar la combinación correcta de “V” y “P”, lo que facilita que los demás nodos puedan poner en evidencia el intento de engaño.
A partir de ahí, todo es sencillo para el nodo ganador. El líder del intervalo toma las transacciones que son registradas en el bloque, y añade variables “V” y “P”. Posteriormente, el nodo genera una nueva clave privada para firmar el siguiente bloque, del que será responsable (Key Evolving Signature). Mientras que la clave pública sigue siendo la misma, se cambia la clave privada para firmar el siguiente bloque, y se elimina la antigua clave privada. Gracias a esta medida, es imposible falsificar la clave, lo que hace imposible reescribir el historial, ya que cada bloque está firmado por una clave privada única, y sólo el nodo responsable del bloque añadido conoce la clave privada utilizada para la firma. Matemáticamente, se puede demostrar que incluso si el nodo generase la clave pública o si es robada, otros nodos le seguirán, así que si hay suficientes nodos honestos en la red, los atacantes no pueden utilizar el conocimiento de la clave para su beneficio.
El líder del intervalo registra un número aleatorio “V” en el bloque sugerido, de modo que cuando se verifique el bloque, el número formará parte del proceso de creación de nuevas semillas en el próximo ciclo, lo que influirá en la elección de los líderes posteriores. El protocolo se utiliza en aras de la descentralización para generar coincidencias y, por lo tanto, no se necesitan recursos externos.
Conclusión
Un protocolo distribuido no gira completamente en torno al concepto de descentralización, sino que también hay otros factores importantes, como la seguridad y la escalabilidad, que deben tenerse en cuenta. Ouroboros PoS es superior en términos de escalabilidad, ya que el nuevo bloque se crea en cuestión de segundos, mientras que con PoW tarda 10 minutos. Históricamente, el PoW es más exitoso en términos de seguridad, sin embargo, esto no significa que no concluyamos dentro de 10 años, que Ouroboros es igual seguro, o más. Y cuando uno reflexiona más a fondo, se da cuenta de que el grado de descentralización es vital en términos de seguridad, y lo que realmente importa es que con el PoW es difícil crear de bloques, estimulando una creación centrada en pocos. En consecuencia, si el PoS lograse mantener un alto grado de descentralización, simultáneamente, aumentará su seguridad. Lo que el PoS tiene que hacer es evitar el riesgo de crear bloques fraudulentos, ya que es relativamente barato y rápido crear nuevos bloques. Aquí, todo se reduce a la capacidad del equipo de Cardano para implementar eficazmente todo lo que se basa en la investigación y la teoría y, si tiene éxito, el trilema de la cadena de bloques será resuelto.
Una vez más, se debe hacer hincapié en el papel del equipo y de la comunidad para mantener el protocolo actualizado. El equipo tiene que ser capaz de reaccionar de forma flexible ante los posibles cambios para que el protocolo mantenga su calidad a largo plazo. Lamentablemente, este ha sido un problema de larga data y un fracaso para Bitcoin, donde estos intentos nunca han dado fruto, o ni siquiera se han encarado con determinación, y sólo nos queda esperar que, con el tiempo, se produzca un cambio a mejor. Cardano, por el contrario, intenta seriamente construir una gestión de proyectos descentralizada y hasta ahora, el equipo ha demostrado ser muy capaz, cumpliendo con las promesas, por lo que confiamos en su capacidad para reaccionar eficazmente ante todos los posibles cambios y amenazas.
Otra diferencia que aumenta nuestra confianza es el mecanismo de distribución de recompensas mediante la participación en el consenso y la seguridad. Mientras que con el PoW, son los operadores del pool quienes distribuyen las recompensas a los mineros más pequeños y éstos no tienen otra opción que confiar en el pool, el mecanismo de recompensa de Cardano se construye directamente dentro del protocolo, asegurando que no haya riesgo de que los usuarios pierdan sus monedas, ya que todo está asegurado por el propio protocolo.
Por último, desde el punto de vista geográfico, la minería PoW depende en gran medida de la energía barata, por lo que estas actividades se centralizan en países con electricidad más barata. Esto suma otro argumento a favor de la descentralización con PoS, ya que el mantenimiento de un ordenador operativo es mucho más económico que la continua compra anual de mineros ASIC de última generación.
En conclusión, cuando comparamos PoW y PoS, podemos ver que el concepto de PoW es relativamente simple, mientras que PoS es bastante complicado. Los sistemas complejos siempre serán más propensos a cometer errores, ya que es mucho más complicado para el equipo tener todo bajo control. No obstante, creemos sinceramente que el equipo de IOHK es plenamente competente para hacer frente a este desafío, y reconocemos que prefieren tomarse su tiempo antes que apresurar el proyecto. Si el proyecto PoS de Ouroboros llega a buen puerto, será un gran salto cualitativo en términos de tecnologías descentralizadas y supondrá un gran reto para Bitcoin.
Considera la posibilidad delegar tus monedas en Cardanians. Y si te gustan nuestros artículos, puedes apoyarnos con una donación en ADA:
DdzFFzCqrhseNP1C9XEs1MA82rgnVZwNpeiNCbLxrJfRzwaceXB9VYqPFYYRYRYegc67SERjcQ1xvwB6jryp5vgGUf1cvzbeZP2a92tQe