🇪🇸 Glow | Actualización Mensual Cardano | IOHK 3 Dic 2020

:es: Transcripción al español de un fragmento de “December 3rd Cardano monthly update

Del minuto 00:47:40 al 01:02:04 del video original

Publicado en el canal de Youtube de IOHK el 3 de Diciembre de 2020

Enlace a la versión doblada al español


Aparna: Otro enfoque que estamos teniendo fuera de la universalidad es interoperabilidad, y hablamos mucho de eso para Cardano, y en plataformas en general. Glow es el lenguaje de Mutual Knowledge Systems, atrapamos a su cofundador, Francois, gran tipo, y tenemos un clip para correr sólo para mostrarles a ustedes el lenguaje en sí mismo y una gran manera de mirar que automatizaron algunas de las áreas relacionadas con seguridad más interesantes que necesitan suceder cuando compilas código, está casi automatizado, y eso hace que sea mucho más fácil para hacerlo, esa es su propuesta de valor, así que sólo quiero ir y mostrarles una rápida demostración de eso.

Hola audiencia, estamos aquí con Francois, el cofundador del Mutual Knowledge Systems y del lenguaje Glow, hey Francois, bienvenido de nuevo al show.

Francois: Gracias por tenerme Aparna.

Aparna: La última vez introdujimos a Francois a nuestra comunidad y hubo un poquito, en realidad una gran cantidad, mucho ruido alrededor del lenguaje Glow. Así que quería traerte de vuelta al show, hacer una especie de segunda parte si puedes, porque hablamos de la propuesta de valor de Glow y el lenguaje, pero una de las cosas que realmente se atascó en mí fue el concepto de confianza, cómo el lenguaje resuelve ese concepto de confianza, los escenarios de ataque y lo que hacen para mitigar algunas de esas cosas. Así que en este segmento vamos a hablar un poco sobre esos escenarios y también hacer una demostración del lenguaje para que la audiencia vea en tiempo real cómo se ve esto, así que Francois, voy a entregar esto a tí y ayúdanos a entender un poco más sobre los escenarios con la confianza.

Francois: Dale, déjame compartir mi pantalla y compartir una parte de la presentación que hice a principios de este año en CC. La parte de esta presentación que quiero mostrarte son los modelos de ataque, así que cada vez que la gente habla de seguridad, algo que muchos se pierden realmente ¿de qué te estoy protegiendo o estoy fallando en protegerte? Así que el modelo de ataque de Glow tiene como objetivo resolver, no resolvemos todo hoy en día, pero tenemos un diseño que está en el camino correcto para resolverlos es en primer lugar, los fallos de la abstracción. Todo el enfoque de Glow es que tenemos un lenguaje que simplifica las cosas haciéndolas más abstractas, tomando un nivel de atracción que está más cerca de lo que al usuario le importa, para que todos los errores que cometas como parte de la implementación, el usuario no puede hacer eso, sólo el implementador puede hacer cosas malas, si tienes un bicho en Solidity o tienes un bicho en Ethereum, o Bitcoin, o cualquier cosa, puedes perder todo tu dinero porque hay un bicho en Bitcoin. Pero al menos, si confías en Bitcoin y confías en Solidity, en Solidity todavía puedes escribir entradas con problemas, todavía puedes hacer una mala delegación, todavía puedes destruir tu biblioteca bajo el capot, puedes perder algún tipo de comprobación de permisos y han habido decenas o cientos de millones de dólares perdidos de esta manera, sólo por mala abstracción. Y esto es algo que desaparece totalmente con Glow porque Glow está en un nivel de atracción por encima de todas estas cuestiones. Así que sí, puede haber un bicho en el compilador Glow, un bicho en Solidity o cualquier cosa, pero no puede haber un error en tus programas escritos con Glow que causan cualquiera de estos problemas, simplemente es imposible, no es accesible. Así que también lo pronunciamos como confianza mal depositada, se ha perdido aún más dinero debido confianza mal depositada, la gente utilizó un exchange que fue hackeado, o confiaron en un mal oráculo o algo así, básicamente tu aplicación no es tan descentralizada como su propósito debía ser. Y no puedo resolver eso con Glow, pero lo que puedo hacer es explícita la hipótesis, puedo decir “oh, si ejecutas esta aplicación, estás confiando esta red de validación o estás buscando este emisor particular, así que, ¿confías en ellos?”, yo no debería hacer que confíes o no confíes en ellos, pero debe ser explícito como parte de tu aplicación en quién estás confiando o no. Y cuando esto se vuelve explícito, tal vez la gente preste más atención a Dexes sin custodia, exchanges y oráculos descentralizados, cosas así, porque en realidad tal vez no deberían utilizar esta aplicación, en realidad es una aplicación centralizada que se ejecuta en una red descentralizada que es totalmente centralizada. Así que también hay muchos ataques de bajo nivel, y esa es la parte en la que todo el mundo hoy en día tiene que resolver estos problemas por su cuenta, tienes que asegurarte de que tu computadora es segura, que no serás hackeado, que tu red no va a tener un DOS, así que todavía puedes publicar tu transacción, tienes que jugar el juego para que no haya una cuestión de negación de servicio económico cuando entres a la blockchain y no puedas publicar tu transacción. Hay muchos bichos que pueden causar que todos tus datos se utilicen de manera equivocada, y pierdes tus datos o tu centro de datos se cae y pierdes tus datos porque no tienes una copia de seguridad, etc. Son problemas de ingeniería bien conocidos, pero ahora mismo todo el mundo tiene que resolverlos desde el principio, la proposición de valor de Glow aquí es que podemos contratar a un equipo de ingenieros especializados y todo el mundo lo compartirá. Glow es un proyecto de código abierto, significa que todos los que utilizan proyectos de código abierto van a obtener todo el valor al principio sin requerir su propio equipo. Y por supuesto, también somos una empresa, así que venderemos los servicios para que puedas integrarte bien en tu sistema, porque incluso tienes que desplegar los proyectos de código abierto y eso requiere alguna especialidad de ingeniería. Pero al menos todos estos son ataques que podemos prevenir con Glow, puedes hacer las cosas bien en una aplicación y puedes focalizarte en la lógica del negocio y el aspecto económico, estoy escribiendo contratos de derivados, escribiendo el seguimiento de una cadena de suministro, una aplicación de compras, lo que sea. Quieres enfocarte en tu lógica de negocios, y todos los aspectos del sistema de nivel inferior son algo que pueden ser compartidos por todos los usuarios de Glow, porque sólo el equipo de Glow necesita hacer eso y si necesitas modificar Glow podemos hacerlo por ti, o puedes hacerlo vos mismo, es de código abierto, pero al menos tu modificación le servirá a todos. La persona que escribe la aplicación en sí misma simplemente puede centrarse en su lógica de negocios y eso es lo principal acerca de Glow, lo que espero resolver. Y quiero ilustrar eso con lo simple que la programación de Glow puede ser, es comprando una firma. Algún comprador, Alice, quiere comprar una firma de Bob, que es básicamente un acceso a alguna puerta o el alquiler, o alguna propiedad, o cualquier cosa, puede ser una firma para un intercambio en otra blockchain y el contrato se parece a esto. Hay seis líneas de código real, en estas tres líneas digo que tengo interacción entre el vendedor y el comprador, y esta interacción toma un resumen y un precio como parámetros, el precio ahora mismo es un entero y el comprador va a depositar el precio en el contrato. Y luego el vendedor firmará públicamente la firma, luego se retira el dinero, luego se cierra la sexta línea. Y públicamente significa básicamente que voy a hacer esta cosa verificable y luego voy a publicarla, y luego todos van a verificar que este contrato es correcto, y esto es lo mismo que se requiere para que la firma sea válida para el vendedor. Así que tienes seis líneas de código en Glow y las líneas de código te ahorrarán todo tipo de ataques con los que tendrías que lidiar si estuvieras escribiéndolos a mano en Solidity, Java Script o incluso en algún punto en Plutus y en el contrato Haskell, Plutus y Haskell. Plutus y Haskell son mucho mejor que Solidity y Java Script, pero siguen siendo niveles más bajos y escrituras que estás viendo en Glow. Glow estaría al mismo nivel de abstracción o ligeramente diferente, pero el mismo nivel general de expresión que Marlowe por ejemplo, así que estás muy alejado de todos los detalles de la red, simplemente no puedes escribir un fallo de red en Glow, no hay espacio para una falla de red. Pero generamos todo el código que habla con la red para que vos no tengas que hacerlo. Entonces, ¿qué pasa si compilo eso?, veamos el resultado de la compilación, aquí están esas seis líneas de código, generamos 53 líneas de un tipo de código, y hay parte de este código que se ejecutará aquí, hay una firma, hay una parte que se ejecuta en el consenso, que todo el mundo ejecutará aquí, hay una parte que corre sólo en la computadora del comprador aquí, así que esta es la parte que corre en la computadora del comprador, y esta es la parte que sólo corre en la computadora del vendedor, y estas partes son ligeramente diferentes, pero generamos al mismo tiempo que el contrato, código cliente para el comprador y vendedor, todo se genera a partir de esas seis líneas de código. Así que esta parte permanecerá en sincronía, no hay ningún caso en el que “oh, modifique ligeramente el contrato y me olvidé de modificar uno de estos”, y luego pierdes todo tu dinero o algo malo sucede. No, el código para el comprador, el código para el vendedor y el código para el contrato siempre están en sintonía por construcción y siempre manejan tiempos de espera por construcción, así que todas las fallas habituales desaparecen. Y si queremos ejecutarlo, vamos a ejecutar este código, tengo un testeo de integración que lo ejecuta, y estamos golpeando una blockchain privada, el primer paso es crear el contrato del comprador, la primera transacción, y el segundo paso es el vendedor, “Por favor envía el apretón de manos enviado por el comprador”, y decidir, “bien, esto parece legítimo así que voy a generar y publicar la firma”. Y esto termina siendo una transacción aquí, enviada a la blockchain, y al final esta transacción se publica, hay un recibo que es un recibo de la transacción, que tiene un registro de datos, y si miras estos registros de datos, la primera parte excepto por esto, es la firma que estoy buscando, y de hecho, como último paso, el comprador extraerá la firma de la blockchain y decir “Sí”, así que se envió el dinero y el dinero no podría haber sido enviado sin la firma siendo publicada, y sí, de hecho está en la blockchain. Así es cómo funciona, todo esto se ocupa por vos, al mísero costo de estas seis líneas de código, que ni siquiera tienes que escribir, la mayoría de la gente no debería escribir código Glow, deberían usar el generador de código Glow, generaremos código para Java Script, Plutus y lo que sea para tu blockchain. Algunas personas escribirán código Glow, es gente que lidia con las principales cuestiones económicas, tendrán que escribirlo y solucionarán todos los problemas de red y de bajo nivel. Pero la mayoría de los usuarios utilizarán estas interacciones, jugando con lo que tu contrato sea que tenga, y así es cómo funciona, por supuesto algunas de estas interacciones serán priorizadas por cualquier parámetro que tenga sentido para tus aplicaciones en un nivel más alto.

Aparna: Esto está bien pensado, me alegro por la demo, la he visto antes y esto en realidad da a la audiencia una comprensión de lo que significa la capa de abstracción y cómo casi automatiza el ataque, la versión de confianza de ejecutar contratos, genial. Así es cómo estamos pensando en interoperar, así que ¿por qué esto es importante?, es importante porque desde una perspectiva de socio vemos que Glow trae algo a la comunidad Cardano, por lo que acabas de ver. Así que averiguando cómo conseguir que interopere con nuestro programa Goguen y lo que va a ir en Cardano, proporciona opciones para la interoperabilidad, y ahí es exactamente donde estamos llevando esto, así lo que aprecio Francois, aprecio que hayas venido aquí y nos hayas mostrado el lenguaje y estoy segura que estarás en más shows a medida que avanzamos en la relación en torno a la interoperabilidad.

Francois: Sólo quería decir que ahora mismo estamos apuntando a la máquina virtual EVM y podemos correr en cualquier red EVM, pero también tenemos un prototipo funcionando en Plutus y cuando sea que salga Plutus, lo haremos en Plutus también y en cualquier blockchain que nos quiera para correr o cualquiera que quiera soporte, lo correremos. Así que la portabilidad creo que también es una gran ganancia, porque también podemos abstraer la blockchain del desarrollador dev, el desarrollador dev escribirá su aplicación una vez en Glow, o la parte crítica en Glow, esto funcionará en blockchains más antiguas, así que puede elegir la mejor y mi elección para la mejor es Cardano, pero cualquiera que el mercado elija será capaz de correr.

Aparna: Perfecto, gracias y nos vemos la próxima vez.

Francois: Gracias.

Tim: Bien, dos asociaciones emocionantes, mucho más impulso en términos del tipo de áreas de acercamiento de contratos inteligentes y desarrolladores, pero supongo que mucha gente se pregunta ¿dónde encaja esto en términos de tiempos y cómo se están desarrollando las cosas?

Aparna: Los activos nativos son un acercamiento, el convertidor ERC20 se está desplegando, el Playground Plutus, ese es otro aspecto y estoy tocando base con ustedes en todo lo que está sucediendo con el programa Goguen, veremos algunos emocionantes anuncios sobre eso este mes. El Playground Marlowe también va muy bien con la retroalimentación que hemos recibido y estamos avanzando hacia un producto Marlowe para usuarios finales muy bonito, he hablado con el equipo, estamos avanzando muy suavemente, así que estamos mirando al primer trimestre del próximo año para eso también.

1 Like