🇪🇸 Arranque de Cliente Rápido : Presentación de Pizarra del Prof. Aggelos Kiayias | IOHK 3 Jun 2021

:es: Transcripción al español de “Fast Client Bootstrapping; Prof. Aggelos Kiayias Whiteboard Presentation”

Publicado en el canal de Youtube de IOHK el 3 de Junio 2021

Enlace a la versión doblada al español


La sincronización con la blockchain puede ser una operación muy intensa para el cliente que acaba de unirse a la red. La razón es que la blockchain es una base de datos en constante crecimiento que contiene una gran cantidad de datos transaccionales, no todos los cuales son necesarios para todos los clientes. Entonces, ¿cómo es posible que un cliente extraiga la información que desea de la blockchain sin sufrir una gran penalización en términos de rendimiento?

Para ver más vídeos de pizarra del profesor Aggelos Kiayias, visite👉 https://bit.ly/3z1C30Q

Hola desde la soleada Atenas, soy Aggelos Kiayias, profesor de la universidad de Edimburgo, y jefe científico en IOHK. Hoy estoy haciendo un breve video de pizarra para arranque de cliente rápido. El interés particular de mirar este problema está en el contexto de protocolos de prueba de participación. Sincronizarse con la blockchain puede ser una operación muy intensiva para un cliente que simplemente se une a la red. La razón es que la blockchain es una siempre creciente base de datos conteniendo una riqueza de datos transaccionales, donde no todo es necesario para todo los clientes. Así que, ¿cómo es posible para un cliente extraer la información que quieren de la blockchain sin recibir una gran penalidad, en términos de rendimiento.

En el contexto de Bitcoin, o cualquier otra blockchain de prueba de trabajo en ese sentido, este problema ya ha sido discutido por Nakamoto en el documento Bitcoin original. La manera en que funciona el proceso es que el cliente descarga y sólo verifica los encabezados de los bloques, aplicando la regla de la cadena más larga, básicamente escogiendo la cadena más difícil, y luego el cliente mantendrá los encabezados de la cadena ganadora, y luego selectivamente pedir que se abran esos datos transaccionales que son de interés para el cliente.

¿Puede esto ser aplicado a la configuración de prueba de participación?, desafortunadamente la respuesta es no. La razón es que en una blockchain de prueba de participación, la validación de bloque no es algo que pueda ser decidido únicamente basado en el encabezado del bloque, el cliente necesita tener a su disposición la información relacionada con la distribución de los titulares, porque esto contiene todo el material criptográfico clave que necesita el cliente para verificar los bloques. Parece que llegamos a un bloqueo de camino, ¿cómo es posible facilitar arranque de cliente rápido sin descargar todas las transacciones? Resulta que para hacer esto eficientemente necesitaremos elementos mágicos extra, vamos a alegremente llamar a esto “Mithril”, una clase de método criptográfico, ¿qué es esto?, es una construcción criptográfica que permite a la población de titulares de emitir una firma en un mensaje dado. Y tiene las siguientes tres propiedades que son cruciales para el trabajo que tenemos en mente para ese primitivo. Primero, tiene el comportamiento de una firma criptográfica de umbral, esto significa que es posible producir una firma válida sólo si lees un cierto ratio del consenso de titulares, expresados en términos de participación, digamos la mitad, un tercio, etc. Segundo, como multi firma, los fragmentos pre firma pueden ser verificados independientemente, mientras los titulares producen fragmentos pre firma, estos son verificables en sí mismos, y además pueden ser agregados públicamente a la firma final. Finalmente, es eficiente, esto significa que la firma final es de un tamaño constante, y además produciendo la firma, verificándola, es sólo logarítmicamente dependiente del número total de titulares. Así que estas son las tres características importantes de este esquema.

Ahora, utilizando Mithril, podemos obtener arranque de cliente rápido para una blockchain de prueba de participación como Ouroboros, veamos cómo funciona esto. Primero que nada los titulares incluirán sus claves Mithril junto con el material criptográfico habitual, así que la blockchain, tenés los UTXOs, y las cuentas también tendrán claves Mithril. En intervalos regulares, los nodos completos colectarán el conjunto actual UTXO, en forma de compromiso criptográfico, observen que es corto, y comprobará si puede producir una pre firma. Este testeo es esencial, porque no todos los titulares serán elegibles para emitir un fragmento pre firma para un mensaje dado, sólo un subconjunto aleatorio de ellos será elegible. Cuando un número suficiente de fragmentos de pre firma son emitidos, por aquellos que son elegibles, será posible agregar esos fragmentos dentro de la firma final, así que aquí está el fragmento y podés pensar en ellos agregados al último sigma de firma.

Ahora llamaremos a esto un punto de chequeo, puede ser verificado respecto a previos compromisos de UTXO, y de esta manera, en principio, yendo todo el camino al bloque génesis. Lo que es interesante aquí es que debido al mecanismo estos puntos de chequeo son sin confianza, no requieren ninguna suposición de confianza adicional más allá de las asociadas al protocolo subyacente. De esta manera, un cliente de arranque rápido sólo tiene que verificar la secuencia de tales puntos de chequeo sin confianza, hasta el más reciente, para traer su estado hasta el estado actual de la blockchain, comenzando desde el bloque génesis, tenemos una secuencia de puntos de chequeo que trae al cliente hasta el momento presente. Luego al final podría haber un pequeño número de bloques que podrían tener que ser verificados adicionalmente.

De esta manera podemos hacer un arranque de blockchain de prueba de participación verdaderamente eficiente. Esto nos trae al final de este video de pizarra, gracias por mirar.