En Algorand, estamos comprometidos con la innovación continua y con compartir nuestras ideas con la comunidad. Nuestro protocolo original trajo al mundo blockchain funciones aleatorias verificables, autoselección criptográfica y PoS de clave efímera, que ahora se adoptan ampliamente en el ecosistema.
Protocolo Algorand
Hoy, compartimos un análisis sobre nuestro protocolo de acuerdo bizantino. Este nuevo protocolo presenta varios avances técnicos que creemos que son esenciales para las cadenas de bloques Proof-of-Stake.
El protocolo de Algorand es rápido. En términos teóricos, es óptimamente eficiente, al finalizar bloques en una ronda de votación. En términos prácticos, aumenta considerablemente el número de transacciones por segundo y garantizará que cada bloque se finalice instantáneamente.
La velocidad sin seguridad no significa mucho cuando hay dinero en juego. Nuestro protocolo de acuerdo actualizado también aborda la seguridad. Somos capaces de soportar particiones de red alargadas y recuperarnos muy rápidamente de ellas, abordando una gran cantidad de ataques del mundo real.
Cálculo de los valores hash
Los valores hash se calculan de la siguiente manera:
hash = SHA256 (SHA256 ( mensaje ) || SHA256 ( nonce ))
msg = «Resistencia de partición arbitraria»
nonce = «2iCIvZu5IfHpXe8Oj2dtchjYWnDDz9QxCSNrBgN_Axo =»
Nuestra hoja de ruta continuará. Esté atento y visite nuestro sitio web para obtener nuevos valores hash.
A continuación, nos gustaría mostrarle las propiedades esenciales del nuevo protocolo con más detalle. Si desea una perspectiva técnica más profunda, lea nuestro documento técnico .
Propiedad 1: Acuerdo rápido sobre la marcha
En una cadena de bloques tradicional, después de que se propone un bloque, primero se debe propagar a todos y luego se debe acordar mediante algún mecanismo específico para esa cadena de bloques en particular. Esto conduce a un trabajo adicional antes de que se pueda finalizar el bloque.
En nuestro nuevo protocolo, se llega a un acuerdo sobre un bloque propuesto mientras el bloque se propaga. Los usuarios votan por un bloque en el momento en que lo reciben, mientras que el bloque continúa propagándose a los usuarios restantes. Para cuando todos los usuarios hayan visto el bloque, toda la votación estará completa. Efectivamente, el acuerdo se alcanza en una sola ronda de votación. Por el contrario, los mecanismos anteriores requieren un trabajo adicional después de la propagación o múltiples rondas de votación.
Este acuerdo instantáneo es el caso cuando el nuevo bloque se propaga correctamente. En el raro caso de un proponente de bloque malicioso, el nuevo protocolo lo ignora y procede inmediatamente a seleccionar un nuevo proponente.
Por lo tanto, para bloques correctamente propagados, el nuevo protocolo es óptimamente rápido en el número de rondas de votación.
Propiedad 2: Seguridad contra particiones de red arbitrarias
En general, la comunidad blockchain se ha preocupado principalmente por diseñar protocolos que sean robustos contra ataques a nivel de protocolo . En tales ataques, un adversario acumula parte del poder de voto, ya sea poder computacional en un sistema de prueba de trabajo (PoW) o participación en un sistema de prueba de participación (PoS). El adversario procede entonces a tomar acciones contrarias a las reglas prescritas del protocolo, con el fin de duplicar el gasto o interrumpir la ejecución del protocolo.
Investigaciones recientes han profundizado en los ataques a nivel de red , como las particiones de red. En estos ataques, un adversario se dirige a los enlaces de comunicación entre los usuarios, lo que dificulta o imposibilita la interacción de los usuarios. Los investigadores están exponiendo nuevas vulnerabilidades en los diseños de redes de propagación actuales, ampliando así los vectores de ataque conocidos contra blockchains. Algunos artículos de investigación recientes describen tales ataques:
btc-hijack.ethz.ch/files/btc_hijack.pdf
A medida que aumenta el interés en la tecnología blockchain, esperamos que esta tendencia continúe y que se descubran nuevos ataques a nivel de red en un futuro próximo. Incluso si estos ataques son costosos de ejecutar en términos absolutos, un adversario todavía tiene incentivos para intentarlos cuando el dinero en juego es alto.
Algorand es seguro contra ataques de red arbitrarios
El protocolo Algorand es seguro contra un Adversario que no solo se desvía de las reglas del protocolo prescritas, sino que también puede lanzar ataques arbitrarios a nivel de red. Incluso si el Adversario logra un control total sobre la red y dicta qué usuario recibe qué mensajes y cuándo, el protocolo de acuerdo de Algorand nunca se bifurca y los saldos de los usuarios permanecen seguros .
Propiedad 3: Recuperación rápida de particiones de red
La seguridad contra la partición de la red es necesaria pero no suficiente. Una cadena de bloques práctica también debe poder recuperarse rápidamente de las particiones. Veamos los siguientes dos escenarios para entender por qué.
Escenarios de recuperación
Escenario 1: recuperación lenta de particiones
Suponga que una cadena de bloques es capaz de producir un nuevo bloque cada 10 segundos en una red sana sin particiones. Un Adversario interviene y divide la red durante 10 segundos, interrumpiendo el funcionamiento de la cadena de bloques. Después de 10 segundos, la red vuelve a funcionar y los usuarios intentan recuperar el funcionamiento de la cadena de bloques, pero tardan una hora en reagruparse antes de poder producir el primer bloque nuevo después de la partición. Después de eso, se vuelven a producir nuevos bloques a razón de un bloque cada 10 segundos.
Considere ahora un Adversario que tiene la capacidad de dividir la red durante 10 segundos pagando un costo fijo de $ c . Tal Adversario realiza el siguiente ataque: cada hora, paga $ c para dividir la red durante exactamente 10 segundos. Durante la primera hora, la cadena de bloques no produce bloques. Al final de la hora, cuando la cadena de bloques casi se ha recuperado y está a punto de producir un nuevo bloque, el adversario la ataca de nuevo, deteniendo la misma durante otra hora. Si el Adversario continúa gastando $ c cada hora, este ataque continuará indefinidamente. En este escenario, a un costo de $ c / hora, la cadena de bloques nunca crecerá.
Escenario 2: recuperación rápida de particiones
Repasemos el escenario anterior con algunos cambios. Supongamos nuevamente que tenemos una cadena de bloques capaz de producir bloques cada 10 segundos. Un Adversario divide esta red durante 10 segundos. Después de la partición, los usuarios se reagrupan rápidamente y producen el primer bloque posterior a la partición en 20 segundos. Después de eso, se vuelven a producir nuevos bloques a razón de un bloque cada 10 segundos, como antes.
El Adversario descrito en el Escenario 1 puede pagar el mismo costo $ c por una partición de 10 segundos con mucho menos impacto. En nuestro escenario de recuperación rápida, la cadena de bloques solo se detendrá durante 30 segundos, 10 segundos para la partición y 20 segundos para la recuperación. El número de intervalos de 30 segundos en una hora es 3600/30 = 120 , por lo que para detener esta cadena de bloques durante una hora, el Adversario debe gastar $ 120c . Para detenerlo para siempre, el Adversario debe seguir gastando $ 120c / hora , que es más de dos órdenes de magnitud más alto que el costo asociado en el Escenario 1.
La rápida recuperación de Algorand de las particiones
Algorand maneja las particiones de red de manera robusta. Después de que un grupo de usuarios de Algorand no ve ningún progreso durante un tiempo, aproximadamente el tiempo que lleva acordar un bloque, los usuarios ingresan al modo de recuperación de partición. En este estado, los usuarios envían continuamente mensajes de recuperación. Durante una partición, estos mensajes no se propagan correctamente. Sin embargo, después de la partición, estos mensajes se propagan rápidamente, y cuando se acumula un umbral requerido de mensajes, los usuarios se sincronizan y la cadena de bloques continúa avanzando.
Esto permite que Algorand se recupere casi instantáneamente de las particiones. Cabe señalar que Algorand se recupera instantáneamente independientemente de la duración de la partición, incluso si la partición dura un día, una semana o un año.
Los ataques a la red se pueden realizar en cualquier sistema descentralizado. Independientemente de cómo se diseñe una cadena de bloques, si un Adversario es lo suficientemente poderoso como para mantener una partición de red para siempre, nunca se producirán bloques. Lo mejor que se puede hacer es aumentar el costo para el Adversario implicado en detener una cadena de bloques. Al recuperarse casi instantáneamente de las particiones, el Acuerdo de Algorand hace que sea económicamente costoso detener nuestra cadena de bloques.
Este artículo ha sido escrito originalmente por Georgios Vlachos en el «Community Blog» de Algorand y traducido por AlgoLatam
Original Article: https://www.algorand.com/resources/blog/algorands-instant-consensus-protocol
Aviso de responsabilidad:
Este artículo no contiene consejos financieros, ni recomendaciones de inversión de ningún tipo. La información brindada se ofrece sólo con fines educativos y didácticos en cuanto a tecnología Web3 y análisis sobre sus casos de uso.
Las inversiones con criptomonedas, NFTs, tokens u otros activos digitales conllevan riesgos y no se encuentran regulados, por lo que los lectores deben realizar su propia investigación antes de tomar cualquier tipo de decisión bajo su entera responsabilidad, así como adaptarse y observar las diferentes regulaciones legales según su país de residencia.