Silvio Micali.- Algorand está creciendo. Hoy en día, se registran en nuestra cadena un promedio de 500.000 transacciones por día. Más de 500 empresas están ocupadas desarrollando aplicaciones en Algorand, aprovechando nuestros exclusivos contratos inteligentes de capa 1 y las otras funcionalidades que enriquecen nuestra plataforma. Sus aplicaciones pronto generarán muchas transacciones nuevas.

Es por eso que, mientras seguimos agregando nuevas funcionalidades a Algorand, estamos mejorando nuestro desempeño, sin sacrificar la descentralización, de la siguiente manera.

NUESTRAS MEDIDAS DE RENDIMIENTO

  1. Bloque propasa / tiempo. Este es el tiempo que tardan los observadores en darse cuenta de qué bloque es candidato para ser agregado permanentemente a la cadena.
  2. Bloque de finalización de tiempo. Este es el tiempo necesario para asegurar que un nuevo bloque se agregue permanentemente a la cadena.
  3. Transacciones finalizadas por segundo (TPS).

NUESTRA PERFOMANCE EN 2021

• El bloque propasa / tiempo wi / 1 permanece 0,5 segundos.
(Aunque nuestro tamaño de bloque crecerá de 5,000 a 25,000 transacciones).

• Reducir el tiempo de finalización del bloque wi / 1 de 4,5 a 2,5 segundos.

• Nuestro TPS finalizado wi / 1 crece de 1,000 a 46,000.
(Gracias a un enfoque veraz para bloquear la canalización).

NUESTRA PRINCIPAL EVOLUCIÓN

El objetivo general de Algorand es proporcionar una red pública verdaderamente descentralizada
Red que escala perfectamente y elimina los inconvenientes de rendimiento de las cadenas de bloques de primera generación. La descentralización y la seguridad son principios fundamentales en Algorand. Serán respetados por esta mejora de rendimiento y todas las mejoras futuras de nuestra plataforma.

Métrica de finalidad y rendimiento finalizado

¿QUÉ MÉTRICA?

Cada vez más, «rendimiento» es una palabra que se usa de manera suelta y liberal en todo el universo blockchain. Por supuesto, la velocidad importa. Pero: ¿velocidad de qué?

Considere la siguiente afirmación de rendimiento:

«Se propone un bloque de transacción OK cada 0,5 segundos».

Surgen dos preguntas principales:

  1. ¿La afirmación implica una latencia de medio segundo?
  2. ¿La reclamación implica un rendimiento de 20K TPS?

La respuesta a la primera pregunta es NO. La propuesta de bloque es solo el primer paso de un viaje sin garantías de llegada segura. Declarar solo la velocidad de propuesta de bloque ignora convenientemente el tiempo necesario para determinar la finalidad del bloque, ¡asumiendo que será finalizado!

La respuesta a la segunda pregunta también es NO. Por sí misma, la velocidad de propuesta de bloque no ofrece garantías de rendimiento, porque ignora convenientemente el caso en el que un el bloque B propuesto no está finalizado.

En este caso, no solo habrá que volver a procesar las transacciones de B, sino también las de los bloques B + 1, …, B + k, si se propusieron k bloques durante la finalización fallida de B. transacciones de estos k bloques dependen de la validez de las transacciones de B. Por lo tanto, siempre que falla la finalización de B, ha habido O TPS durante toda la duración de la finalización de B.

En resumen, la afirmación de rendimiento anterior se basa en una métrica muy esquemática.

LA MÉTRICA DE FINALIDAD

El objetivo mismo de una cadena de bloques es proporcionar una secuencia de transacciones completa e inmutable.

La proposición de bloqueo rápido es el equivalente a que le digan rápidamente que «su dinero está en camino». La finalidad es equivalente a tener «dinero en la mano». Pero luego, depende de usted:

• Si prefiere enviar sus mercancías, publicar su arte digital, emitir su seguro, etc. cuando le dicen que su dinero está en camino, entonces concéntrese en la propuesta de bloque.

• Si prefiere enviar sus mercancías, etc. cuando ya haya cobrado su pago, concéntrese en la finalidad del bloque.

Para nosotros en Algorand, la finalidad es lo que realmente importa y lo que ofrecemos.

NUESTRA PERFOMANCE FINALIZADA

Siguiendo la métrica de finalidad, nuestro rendimiento en 2021 será el siguiente:

• FinalizedLatency: :::::: 2,5 segundos.

• Rendimiento finalizado: :::::: 46.000 TPS.

Nuestra nueva latencia finalizada

Un bloque de Algorand es un objeto grande. Hoy comprende hasta 5,000 transacciones, y en 2021 comprenderá hasta 25.000 transacciones. Propagar un objeto grande lleva tiempo. Para acelerar los procesos de proponer y finalizar un nuevo bloque B, hemos desarrollado una forma más compacta de especificarlo.

CODIFICACIÓN DE RED

Una vez que agregamos un bloque B al registro inmutable proporcionado por la cadena de bloques Algorand, las transacciones de B deben especificarse explícitamente. De hecho, ese bloque B puede ser consultado años más tarde por personas que no tengan ningún conocimiento de nuestro contexto compartido.

Pero durante la generación de B, podemos y de hecho lo hacemos con ‘narnes’ más cortos para sus transacciones, aprovechando el hecho de que, dado que las transacciones se propagan a través de la red, en cualquier momento dos de nosotros hemos visto el mismas transacciones, más o menos algunas de ellas.

Por ejemplo, para la mayoría de las transacciones T, para informarle que mi bloque propuesto incluye T, en lugar de deletrear T en su totalidad, es muy posible que 1 le envíe solo el valor hash de 32 bytes H (T). De hecho, prácticamente hablando, no hay dos transacciones que tengan el mismo valor hash.

Para mejorar nuestro rendimiento, reduciremos aún más estos 32 bytes a solo unos pocos bits, aprovechando las formas muy específicas en que opera la red de comunicación Algorand.

En Algorand, las cuentas no intercambian mensajes directamente entre sí a través de chismes entre pares. Las cuentas envían los mensajes que desean propagar a sus nodos de retransmisión. Los nodos de retransmisión propagan mensajes entre sí y los envían a las cuentas con las que tienen conexión.

Gracias a una propiedad profunda de nuestro protocolo, la seguridad contra particiones de red arbitrarias, la arquitectura de Algorand introduce considerable eficiencia sin requerir confianza adicional. De hecho, nuestros nodos de retransmisión no son de confianza: pueden ayudarnos pero no pueden dañarnos.

Cualquiera puede ofrecerse como voluntario para ser un nodo de retransmisión, y cada cuenta establece una conexión con unos pocos (por ejemplo, 5) nodos de retransmisión de su elección. Si no está satisfecho con los servicios recibidos de uno de sus nodos de retransmisión, una cuenta simplemente desconecta esa conexión y se conecta en su lugar a otro nodo de retransmisión de su elección

Veamos ahora cómo una cuenta puede comunicar de manera más eficiente sus bloques propuestos a sus nodos de retransmisión. Supongamos que soy una cuenta a cargo de proponer un nuevo bloque B de 20.000 transacciones.

Para propagar B, debo enviarlo a cada uno de mis nodos de relé elegidos, digamos, R1, …, R5. Al hacer esto, ¡no debería devolver estas 20.000 transacciones a los mismos nodos que me las enviaron!

De hecho, cada uno de mis nodos de retransmisión me ha enviado individualmente la mayoría de estas 20.000 transacciones: digamos, todas, más o menos 100 transacciones, que he recibido de algunos de mis otros cuatro nodos.

Veamos cómo Algorand me permite evitar la repetición inútil. Concéntrese en un solo nodo de retransmisión, digamos, R2, y asuma que me ha enviado 19,925 de las transacciones que puse en B.

Entonces, tanto R2 como yo sabemos el orden en que ha transmitido estas transacciones a mi.

Por lo tanto, en lugar de enviar a R2 el valor hash H (T) para cada transacción T de B, 1 puede muy bien enviar a R2 solo la posición de T en su propia lista de transmisión: por ejemplo, el número de transacción 16.233 en la propia lista de R2.

Incluso si esta lista comprende un billón de transacciones, 30 bits (¡en lugar de 32 bytes!) Son suficientes para especificar T a R2. Para las 75 transacciones que R2 no me ha transmitido (¡todavía!), Escribo T en su totalidad.

Usando esta codificación, 1 puede especificar el bloque B a R2 de la manera más compacta. Lo mismo para mis otros nodos de retransmisión.

Tenga en cuenta que la forma en que especifique B para cada uno de R1, …, R5 será diferente, porque cada uno de ellos me ha enviado una lista de transacciones ligeramente diferente, aunque posiblemente en un orden muy diferente.

Pero eso no importa. Cada uno de ellos aprender correctamente B y propagarlo a todos los nodos de retransmisión, y cada uno de ellos, a su vez, empujará B a todas sus cuentas. Para cada uno de esos empujes, se utiliza realmente una codificación similar.

En resumen, dicha codificación de red es muy compacta y eficiente, y se puede implementar gracias a la arquitectura de nodo de retransmisión utilizada por Algorand.

En este punto surge una pregunta muy natural:

¿Puede cualquier blockchain usar la misma arquitectura relay-node y disfrutar de los beneficios de las codificaciones de red?

La respuesta es no. Por ejemplo, en Bitcoin, adversaria! los nodos de retransmisión pueden permitir el doble gasto. ¡Esto puede suceder incluso cuando todos los mineros son completamente honestos!

Una vez más, Algorand puede utilizar de forma segura la arquitectura de nodo de retransmisión debido a las características de nuestro protocolo de seguridad contra particiones de red arbitrarias, una propiedad fundamental discutida.

Nuestro nuevo rendimiento finalizado

Si esperáramos a que se finalizara un nuevo bloque antes de proponer y finalizar otro, el rendimiento de Algorand consistiría en 10,000 TPS finalizados. Esto corresponde a un
Bloque finalizado de 25.000 transacciones cada 2,5 segundos. Bastante bueno. Pero lo hacemos mejor gracias a la canalización, una poderosa herramienta para la generación de bloques, cuando se usa correctamente.

Canalización deseada

La etapa de propuesta de bloque de Algorand tomará 0.5 segundos. Esta etapa, el 99% de las veces, produce con éxito un bloque único propuesto que se finalizará en dos segundos adicionales. Es por eso que nuestra latencia finalizada es de 2,5 segundos en promedio.

Por consiguiente, es tentador reclamar un rendimiento de 50.000 TPS finalizados como sigue. Las cuentas comienzan a proponer un nuevo bloque tan pronto como ven el último bloque B propuesto, de modo que se puedan proponer más bloques durante la finalización de B.

Dado que cada bloque comprende 25.000 transacciones, tendremos un total de 5 bloques y, por lo tanto, 125.000 transacciones cada 2,5 segundos. Es decir, 50.000 transacciones finalizadas por segundo.

El análisis anterior ignora el hecho de que la etapa de propuesta de bloque puede no ser exitosa. En ese caso, la etapa de propuesta puede producir múltiples bloques propuestos, pero en la siguiente etapa de finalización no podrá finalizar ninguno de ellos.

Por lo tanto, la cadena de bloques debe procesar las transacciones de todos estos bloques y todos los propuestos durante el fallido etapa de finalización. Además, cuando falla, la etapa de finalización puede demorar más de dos segundos y, por lo tanto, la cadena de bloques debe esperar más para comenzar a producir bloques nuevamente.

Canalización verdadera

Las cadenas de bloques difieren en sus procedimientos y cronogramas para la propuesta y finalización de bloques. Los bloques de Bitcoin solo se pueden considerar finalizados después de mucho tiempo (¡y su finalización no tiene sentido si surgen particiones de red!). Por tanto, debemos considerar 3 cuestiones importantes:

P1: ¿Cuánto tiempo lleva la etapa de propuesta en bloque?
P2: ¿Con qué frecuencia fracasa la etapa de propuesta de b / ock?
P3: ¿Cuál es el tiempo necesario para recuperarse de un bloque propasa / fallido?

Se necesitan respuestas veraces a estas preguntas para establecer el rendimiento correcto de la canalización de bloques en una cadena de bloques determinada. En el caso de Algorand, las respuestas son:

A1: 0,5 segundos. A2: alrededor del 1%.
A3: Aproximadamente 4,5 segundos.

Dadas estas respuestas, con un tamaño de bloque de 25.000 transacciones, Algorand disfrutará

Algorand disfrutará de
46.000 TPS finalizaron en 2021.

Nuestro objetivo

La promesa de blockchain solo puede realizarse mediante tecnología real.

Es importante asegurarse de que cualquiera que esté evaluando la gran promesa de la tecnología blockchain pueda hacer comparaciones de manera similar.

Al analizar las medidas de desempeño de primera línea, es importante explicar las diferencias en las variables, las opciones de diseño y las compensaciones, para no oscurecer las limitaciones reales y la utilidad de la tecnología subyacente en sí. Y es importante comprender el efecto final que tendrán las diferencias de desempeño en el logro de resultados exitosos a largo plazo.
de una solución blockchain.

Desde una perspectiva de tecnología, negocios y entrega, en Algorand nos enfocamos en generar valor en todo nuestro ecosistema a largo plazo. Desarrollar nuestras capacidades técnicas básicas de la manera correcta y con los socios adecuados es nuestro camino hacia el valor duradero del ecosistema.

Continuaremos construyendo y mejorando nuestra tecnología de esa manera.

Algorand

Silvio Micali ha estado en la facultad del Departamento de Ingeniería Eléctrica y Ciencias de la Computación del MIT desde 1983. Los intereses de investigación de Silvio son la criptografía, conocimiento cero, generación pseudoaleatoria, protocolos seguros y diseño de mecanismos y blockchain. En particular, Silvio es el co-inventor del cifrado probabilístico, pruebas de conocimiento cero, funciones aleatorias verificables y muchos de los protocolos que son la base de la criptografía moderna.

En 2017, Silvio fundó Algorand, una blockchain completamente descentralizada, segura y escalable que proporciona una plataforma común para crear productos y servicios para una economía sin fronteras. En Algorand, Silvio supervisa toda la investigación, incluida la teoría, la seguridad y las finanzas criptográficas.

Silvio ha recibido el premio Turing (en informática), el premio Gödel (en informática teórica) y el premio RSA (en criptografía). Es miembro de la Academia Nacional de Ciencias, la Academia Nacional de Ingeniería, la Academia Estadounidense de Artes y Ciencias y la Accademia dei Lincei.

Silvio recibió su Laurea en Matemáticas de la Universidad de Roma y su Doctorado en Ciencias de la Computación de la Universidad de California en Berkeley.

MAS SOBRE ALGORAND