Tabla de Contenidos
Toggle¿Recuerdas la típica escena del matrimonio entre la protagonista y su galán de novela o película, en donde, de la nada, el público dice «yo me opongo» y ahí el rumbo de la historia cambia totalmente? De una manera muy similar funcionan las fallas bizantinas.
Aunque, claro, en esos casos, la protagonista decidía con quién quedarse, a pesar de los defectos que tuviera cada uno, llegando, finalmente, a un acuerdo con ambas partes para terminar en un final propio de una producción de cine de Disney. Es en este punto, donde nos centraremos y comenzaremos a hablar de la tolerancia a las fallas bizantinas, un sistema informático que, si bien, no es tan romántico y fantasioso como una película de amor, es una solución ideal y muy utilizada en la tecnología blockchain de las criptomonedas.
Podemos definirla como la capacidad de un sistema informático distribuido para alcanzar consensos suficientes y funcionar apropiadamente, a pesar de los componentes maliciosos o errores (nodos) del sistema que fallan y difunden información incorrecta. En otras palabras, es un protocolo de consenso apropiado para evitar una falla catastrófica del sistema. Un ejemplo práctico, sería evitar creer en las habladurías de nuestras vecinas y procurar mantener un punto de vista objetivo sobre la información de una persona u otra.
En la actualidad, podemos encontrar diferentes proyectos que utilizan la práctica de la tolerancia a fallas bizantinas: Hyperledger Fabric de Fundación Linux y Zilliqa, un proyecto asiático reconocido por su cripto ZIL.
Ciertamente, el término “falla bizantina” y “tolerancia a fallas bizantinas”, deriva del problema de los generales bizantinos, el cual, dentro de la tecnología e informática, es un dilema muy investigado y complejo, a pesar de que su historia suene fácil.
Durante la guerra, los generales deben decidir si atacar o retirarse frente al enemigo. En dicha situación, no faltan los generales que prefieren atacar y entregar sus corazones hasta el final, mientras que otros prefieren retirarse. Claramente, lo importante es que se llegue a un acuerdo común, ya que un ataque desorganizado termina en derrota.
El problema está en la presencia de espías o traidores, al igual que en Among Us, quienes van a velar por sus propios intereses. Para comprender esto, imaginémonos en esta situación: somos nueve generales de las fuerzas armadas españolas y la preocupación por nuestros enemigos es cada vez más latente, por lo que decidimos realizar una reunión para votar qué haremos: atacar o defendernos.
De nosotros nueve, cuatro están de acuerdo con retirarnos y otros cuatro están de acuerdo con el ataque. La decisión queda en ese noveno general, quien puede ser un traidor. Aquí es donde está el problema, dado que él tiene la decisión absoluta: atacamos o nos retiramos.
Ahora, a esto podemos sumarle otro problema de comunicación y es que pensemos que físicamente no estábamos juntos, sino que decidimos enviar cartas con nuestra decisión, las cuales pueden ser falsificadas o no entregadas por los mensajeros. En estas circunstancias, como una posible solución, es donde actúa la tolerancia a fallas bizantinas. Pero profundicemos esto en el siguiente punto.
Retomando el ejemplo anterior, frente al problema de los traidores y los mensajeros que pueden retener o distorsionar la información (dicho de otra forma, una falla bizantina), la tolerancia a fallas bizantinas establecería un sistema con mecanismos de consensos que garanticen que los traidores no puedan conducir a una falla.
Por ende, logra que los generales leales puedan tener un acuerdo mayoritario y evita que, en el caso del matrimonio digno de un óscar, la protagonista y su majo pretendiente sean separado. Ciertamente, para esto deben definirse reglas por parte del sistema.
Conozcamos las reglas más comunes dentro de la tolerancia a fallas bizantinas. Imagina que estamos en un proceso de minería y queremos realizar una transacción en una cadena de bloques, utilizando un método de tolerancia a fallas bizantina. En esa circunstancia, observaremos cuatro fases:
Iniciando por sus ventajas, pBFT no necesita múltiples confirmaciones, ni un periodo de espera para garantizar que una transacción es segura o válida después de incluirla en un bloque, dado que se realiza de forma rápida.
Aparte de ello, puede llegar a un consenso sin requerir un uso excesivo de energía para los mineros, garantiza una comunicación de red eficiente y reduce la variación de recompensa para los mineros.
No obstante, cuenta con algunas desventajas. Entre ellas, podemos encontrar que son vulnerables a los ataques de Sybil, los cuales son ejecutados por una misma entidad que controla las entidades de red y corrompen el sistema. Adicionalmente, no escala adecuadamente, dado que existe una sobrecarga de comunicación interna, por lo que tarda en responder a una solicitud.
Indudablemente, en el contexto de las criptos, es esencial que haya un sistema seguro, eficiente y rápido para la ejecución de las transacciones y otros procedimientos característicos de una blockchain.
Por ello, la tolerancia a fallas bizantinas se consolida como una buena opción y una propuesta llamativa frente a otros algoritmos como PoS (proof of stake o prueba de participación), consenso de PoW (Proof of Work o prueba de trabajo) y Pol (Proof of Importance o prueba de importancia).
¡Felicidades por llegar hasta el final!
Desde el equipo de Bitnovo, queremos «premiar» tu interés por este artículo, por lo que, como regalo simbólico, podrás tener acceso a lo último del blog de Bitnovo, de forma totalmente gratis y sin fecha de caducidad, para que puedas seguir informándote sobre las novedades de las criptos de la mano de los mejores escritores sobre el tema.
¡En el enlace subrayado puedes revisar todo nuestro contenido!
De momento, nos leemos en un próximo artículo.