El protocolo Ripple Transaction (RTXTP) es un protocolo de string de bloques que posee la mayoría de las características de los protocolos más populares como Bitcoin y Ethereum. Pero lo que lo hace único es su racionalización de acuerdo con el objetivo de una transferencia de fondos asequible y eficiente a nivel mundial. El protocolo logra esta eficiencia, especialmente en términos de velocidad, a través del algoritmo de consenso del protocolo Ripple. Entonces, ¿cómo funciona este algoritmo?
¿Qué son los algoritmos de consenso ?
Los algoritmos de consenso son básicamente soluciones para el problema de los generales bizantinos. Bitcoin usa el algoritmo de prueba de trabajo (PoW) , mientras que Ethereum usa la prueba de participación (PoS) como una forma de abordar el problema bizantino. En realidad, este problema es bastante identificable para alguien que haya visto alguna película basada en guerras en la era premoderna.
El problema de los generales bizantinos
Una parte del ejército bizantino tiene que derribar una ciudad. Este ejército tiene ‘n’ número de generales, cada uno con sus propias capacidades decisivas. Solo si todos los generales atacan juntos desde ‘n’ lados de la ciudad, el ataque tendrá éxito. Todos los generales tienen que llegar a un consenso comunicándose a través de mensajeros, si atacar o no. Ahora surgen una serie de problemas. Considere estos casos:
- Algunos de los generales creen que es mejor atacar, mientras que otros creen que no lo es.
- Algunos de los generales son corruptos y quieren que el ataque fracase.
- Los mensajeros son corruptos y deliberadamente cambian el mensaje.
Estos son algunos de los problemas que los algoritmos de consenso intentan abordar, lo que en conjunto se traduce en «¿Cómo puede un grupo de personas (Nodes) llegar a la decisión correcta, cuando su credibilidad es cuestionable?».
¿Cómo aborda la RPCA el Problema?
- Digamos que hay 100 generales (Nodes) en el batallón (red blockchain).
- Hay un estratega (RPCA), cuyo objetivo es garantizar que todos y cada uno de los generales leales lleguen a la misma conclusión o no lleguen a ninguna conclusión. No pueden darse el lujo de tener una conclusión diferente.
- Entonces, el estratega les pide a cada uno de ellos que seleccione a los generales en los que confían (esto no garantiza su lealtad. Son solo las personas en las que creen que pueden confiar) y hacen una lista (UNL: Unique Node List).
- Ahora el estratega les pide que tengan un consenso con las personas de su lista. Si más del 80% de las personas en su UNL llegan a la misma decisión, entonces el general lo finaliza. Esto se debe a que el estratega sabe que su ejército solo puede manejar la traición de menos del 20% de los generales ( tolerancia a fallas bizantinas = 20%). De igual manera todos los generales consultan con sus UNL y llegan a un consenso.
- Ahora digamos que hay 20 generales (todos traidores), cada uno de los cuales tiene el resto de los 19 en su UNL. Y hay otra UNL del mismo tipo pero con generales honestos. Entonces, ambos UNL llegarán de forma independiente a un consenso, que se contradirá entre sí. Pero el motivo principal del estratega fue asegurarse de que todos los generales leales lleguen al mismo consenso en sus UNL.
- Entonces, el estratega hizo otra regla: si seleccionamos dos UNL, deben tener al menos el 20% de los miembros en común. Por lo tanto, siempre habrá suficientes personas en cada UNL para evitar que lleguen a una decisión equivocada.
- P.ej. en los veinte generales defectuosos, si reemplazamos 4 generales (20% de 20 generales) por honestos, entonces la mayoría no pasaría del 80%, impidiendo así el consenso.
- Por lo tanto, ninguno de los generales nunca llegaría a un consenso equivocado, independientemente de quién esté en su UNL, siempre que el número de traidores sea inferior al 20%.
¡Y así fue como el estratega ganó la string de honor!
Tenga en cuenta que este es un algoritmo bastante rápido en comparación con sus contrapartes, que ahorra tiempo y energía.