Crea una cuenta o inicia sesi贸n

隆Contin煤a aprendiendo sin ning煤n costo! 脷nete y comienza a potenciar tu carrera

Aprende todo un fin de semana sin pagar una suscripci贸n 馃敟

Aprende todo un fin de semana sin pagar una suscripci贸n 馃敟

Reg铆strate

Comienza en:

1D
5H
12M
25S

Tower BFT

4/15
Recursos

驴Qu茅 hace que una Blockchain sea extremadamente poco probable de hackear o corromper? Los protocolos de consenso como PoW o PoS tienen como principal objetivo evitar la corrupci贸n de los datos y deben tolerar un determinado porcentaje de nodos fallidos o maliciosos.

Problema de los generales bizantinos

El problema de los generales bizantinos es una analog铆a para plantear un problema com煤n que puede tener cualquier sistema distribuido cuyos nodos deben ponerse de acuerdo y consensuar una determinada acci贸n.

Imag铆nalo de la siguiente manera: un gran ej茅rcito bizantino dividido en cuatro grupos, cada uno comandado por un general, rodeando un castillo que est谩 siendo defendido por otro ej茅rcito.

Personalmente, me gusta representarlo con im谩genes del Age of Empires para estimular la imaginaci贸n:

Generales Bizantinos - Age of Empire II

Dichos sub-ej茅rcitos se encuentran posicionados al norte, sur, este y oeste del castillo con el objetivo de conquistar al mismo.

Este gran ej茅rcito tiene un problema 驴C贸mo coordinar el ataque al castillo? 驴C贸mo lograr que los cuatro ej茅rcitos ataquen, o se retiren, al mismo tiempo? Necesitan juntar sus fuerzas para lograr conquistar el castillo.

El problema de los generales bizantinos radica en que uno o m谩s de ellos puede tener intenciones maliciosas. Si el ej茅rcito tal vez se comunica con se帽ales de humo, 驴C贸mo garantizar que la se帽al de humo de un general no es falsa o no tiene una intenci贸n de ir en contra del ej茅rcito completo?

Tal vez lo mejor para el ej茅rcito es dar un paso atr谩s y retirarse, pero un general con malas intenciones puede dar la orden de atacar para que el ej茅rcito completo fracase en su intento de conquistar el castillo y sabotear el plan.

Con esta analog铆a, podemos entender el problema que tiene toda Blockchain. Los generales bizantinos representan a cada nodo de la red y la coordinaci贸n entre los mismos para conquistar el castillo es el protocolo de consenso que garantiza que las transacciones de una Blockchain no sean maliciosas y no se corrompan los datos en la cadena.

Tolerancia a fallos

Proof of Work y Proof of Stake son dos de los principales protocolos de consenso que Blockchain utiliza. PoW es una prueba de trabajo que requiere de un procesamiento computacional para encontrar aleatoriamente un n煤mero y validar una transacci贸n. PoS consiste en validar las transacciones de forma aleatoria a partir de la participaci贸n de un nodo en la misma.

Ambos protocolos no son 100% seguros, tienen m铆nimas probabilidades de ser falseados y corromper la red.

PoW puede verse afectado por el famoso 鈥淎taque del 51%鈥 donde si atacantes maliciosos se apoderan de al menos el 51% de la red (de los nodos), el ataque se ver谩 concretado y podr谩n modificar los datos de la Blockchain a su antojo, robar fondos y falsificar datos.

PoS pone en riesgo el consenso de la red si los atacantes poseen un determinado porcentaje mayor de criptomonedas en 鈥渟take鈥 para tener m谩s posibilidades de validar transacciones.

Ambos protocolos tienen una m谩s que aceptable tolerancia a fallos y dicha tolerancia puede demostrarse mediante formular matem谩ticas.

Tolerancia a fallas bizantinas o BFT

El concepto de BFT (Byzantine Fault Tolerance) se deriva de la analog铆a de los generales bizantinos y propone diversos protocolos y algoritmos para enfrentar la tolerancia a fallos en un sistema. Dicho sistema puede ser una Blockchain, otro tipo de sistema distribuido o incluso un sistema embebido como el de un avi贸n.

Tolerancia a fallos de un avi贸n

Imagina que un componente de un avi贸n comienza a fallar. Esto no puede provocar que todo el avi贸n deje de funcionar, debe tener una tolerancia a N cantidad de componentes defectuosos para que finalmente deje de operar correctamente.

Un solo nodo de una Blockchain no basta para corromper toda la red. No necesariamente un nodo puede ser malicioso, puede simplemente haberse quedado sin internet o sin electricidad y desconectarse de la misma.

Solana utiliza un algoritmo denominado Tower BFT que se combina con Proof of History para mantener seguro el consenso de la red junto con PoS y PoH.

Este tipo de algoritmos pueden representarse con la f贸rmula 3m + 1 donde m es la cantidad de nodos maliciosos o defectuosos. A partir de este tipo de f贸rmulas, se determina la tolerancia de la red.

Tolerancia de los ej茅rcitos bizantinos

S铆 nos remontamos a la analog铆a de los generales bizantinos. De cuatro ej茅rcitos, tal vez solo uno sea suficiente para sabotear el plan, en este caso la tolerancia es cero. O tal vez sea necesario que dos de los cuatro generales tengan malas intenciones, en este caso la tolerancia es de uno.

De esta manera, se garantiza un porcentaje alto de tolerancia a fallos para que el sistema o la red siga funcionando correctamente.

Existen diversas aproximaciones para garantizar tolerancia en un sistema distribuido. Tower BFT es la implementaci贸n que los desarrolladores de Solana han creado y optimizado para que la Blockchain cumpla con BFT y es otro punto m谩s, junto a PoH, que explican las grandes prestaciones de esta red.

El libro mayor de Solana

El libro mayor, o ledger, de toda Blockchain, es esa gran base de datos donde se registran cada una de las transacciones. Es una pieza fundamental para garantizar seguridad, transparencia y privacidad en cualquier Blockchain, adem谩s de ser informaci贸n p煤blica y accesible por cualquiera.

Solana construye su libro mayor a gran velocidad gracias a t茅cnicas como TDMA para la transmisi贸n de datos, Proof of History para garantizar el orden y tiempo en que cada transacci贸n ocurre y reducir la comunicaci贸n entre nodos, y Tower BFT para la seguridad de la red.

Gracias a esta sumatoria de protocolos, algoritmos y tecnolog铆as, un solo nodo puede reconstruir todo el libro mayor de la red y calcular el estado para reconstruir la misma, sin necesidad de tener que comunicarse con otros nodos y ocupar el ancho de banda de la red con estos mensajes.

Como cada nodo de la red obtendr谩 el mismo resultado al reconstruir el ledger gracias a PoH, los mismos votar谩n por el libro mayor v谩lido y la tolerancia a fallos del algoritmo Tower BFT evita que se genera un fork malintencionado.

Los votos por el ledger se realizan sobre los hashes. PoH garantiza que ning煤n nodo vote por un hash anterior en el tiempo, ya que como ya sabemos, PoH garantiza el momento exacto con etiquetas de tiempo.

Si un nodo no emite votos luego de una determinada cantidad de hashes, el mismo puede ser considerarse fallido.

Conclusi贸n

Hemos sumado una pieza m谩s a este gran sistema que es Solana. Tower BFT es un poderoso algoritmo que no solo le da seguridad y tolerancia a la red, tambi茅n trabaja en conjunto con PoH y TDMA para que la performance de esta Blockchain se optimice.

Y gracias a la capacidad de f谩cil reconstrucci贸n del estado que tiene Solana, cada nodo puede recuperarse de eventos inesperados, desastres, reiniciarse y volver a estar operable en poco tiempo sin interrumpir el resto de la red.


Contribuci贸n creada por: Kevin Fiorentino (Platzi Contributor).

Aportes 14

Preguntas 3

Ordenar por:

驴Quieres ver m谩s aportes, preguntas y respuestas de la comunidad?

o inicia sesi贸n.

Solana usa:

  • Proof of stake como m茅todo de consenso.
  • Se sincroniza la info por medio de TDMA, el ancho de banda de la blockchain es dividido entre los participantes.
  • un nodo tiene capacidad de calcular el estado de toda la red.
  • un nodo puede ser marcado como fallido si no recibe voto luego de cierta cantidad de hashes.

es bastante el tema de la red de Solana aunque me toca estudiar un poco mas para poder entender.

Uno nodo se considera fallido si no ha recibido votos luego de cierta cantidad de hashes.

RESUMEN CLASE 4:
TOWER BFT

I.- BFT - Byzantine Fault Tolerance

II.- PoS - Proof of Stake

NOTA: Se tiene relacionados: TDMA, PoS y BFT.
TDMA - Time Division Multiple Access
PoS - Proof of Stake
BFT - Byzantine Fault Tolerance

Este problema lo explican el Audiocurso de Historia de Bitcoin y Criptomonedas
de una manera no tan t茅cnica. Super recomendado

muy clara y descriptiva la explicaci贸n de la profesora.

Interesante el tema de la aviacion. Eso me recordo a que todo en el avion tiene sistemas redundantes. 2 o 3 respaldos, dado si falla el primero se puede reemplazar para que siga la operacion.

Aqu铆 tienen una clase que explica el problema de los generales bizantinos clase

No hab铆a visto nada antes sobre BFT, la tolerancia a fallos o comportamientos maliciosos en una red.
Desde otro punto de vista, tanto PoW como PoS cumplen en mayor o menor medida con BFT.
El ataque del 51% es una manera de romper ese BFT.

Muy interesante!

Interesantes analogias

Byzantine Fault Tolerance (BFT)
In a few words, Byzantine fault tolerance (BFT) is the property of a system that is able to resist the class of failures derived from the Byzantine Generals鈥 Problem. This means that a BFT system is able to continue operating even if some of the nodes fail or act maliciously.

There is more than one possible solution to the Byzantine Generals鈥 Problem and, therefore, multiple ways of building a BFT system. Likewise, there are different approaches for a blockchain to achieve Byzantine fault tolerance and this leads us to the so-called consensus algorithms.