Charles Hoskinson, Evaluando el año 2018. Traducción al español 🇪🇸 (Parte 1 de 2)

Video Original publicado el 31 de Diciembre de 2018:

Ha sido un año muy largo. Cardano fué lanzado en Septiembre de 2017, pero en realidad nosotros veníamos trabajando desde hacía ya dos años. Fué un esfuerzo muy largo y brutal. Teníamos una agenda de investigación, teníamos que poner en marcha centros de investigación, contratar un montón de científicos, convencer a esos científicos de que era una buena idea trabajar con nosotros, contratar desarrolladores, tomar un montón de decisiones muy rápido. También teníamos que contestarnos muchas preguntas: ¿que lenguaje íbamos a utilizar? ¿como íbamos a lanzar el software? ¿que significa lanzar Cardano? ¿cuales son las versiones de Cardano? etc, etc

Teníamos esta vista aspiracional, es de eso de lo que se trata Cardano, esta es la filosofía, el objetivo a largo plazo al que nos gustaría ir con este sistema de operación financiera para el mundo entero. Pero ¿como traduces estos documentos, mayormente supranacionales, en ejecución? De eso es lo que se trataron los años 2017 y 2018. En los primeros días decidimos que nos tomaría entre 3 y 5 años concluir con la agenda de investigación que cubría la mayor parte de las cosas que queríamos hacer con el proyecto Cardano. Pero no queríamos exponer al publico a esa demora, este es un producto, existe en un mercado, tenemos competidores, hay más de mil criptomonedas. Entonces dijimos, es muy importante tener algo de donde obtener liquidez, construir utilidad y la comunidad (escuche de Charles inclusive decir que le interesa mas la comunidad que la tecnología), entonces Cardano como proyecto podía evolucionar hacia nuestra visión, a donde queremos ir. Tomanos una decisión, contratamos una empresa y esa empresa creo la primera generación de Cardano, fue algo así como una versión mejorada de Bitcoin, con mucha innovación como por ejemplo un sistema de actualizaciones (evita bifurcaciones duras / hard forks), desafortunadamente los resultados no fueron los esperados, tuvimos que retroceder sobre cosas que no habíamos realizado bien y nos tomó en realidad un cierto tiempo saber como lanzar una criptomoneda en el mercado, como lidiar con intercambiadores de divisas (exchangers), como tener un servicio de soporte, las leyes correctas, en realidad analizar esas leyes, como determinar si el problema es del lado del usuario o del software, traducción de documentos del coreano al japones, al ruso, chino, ha sido una gran experiencia humana.

¿Entonces, en una revisión anual, dónde estamos ahora ?

Crecimos de un intercambiador de divisas (exchange) a 25. Hemos lanzado 4 grandes actualizaciones. Tenemos 100.000 personas en la comunidad. Cientos de miles de downloads de la billetera Daedalus, hay en realidad 3 billeteras en el mercado Daedalus, Yoroi e Infinito, pronto van a estar disponibles las billeteras de dispositivo (hardware wallets). Realmente fuimos capaces de dominar el arte de coordinar actualizaciones y llevar nuestra moneda al siguiente nivel. En cierta dimensión, si bien fue un año duro, fue un año necesario para para nosotros poder aprender que es lo que realmente necesitamos hacer para poder pasar al siguiente nivel.

La gran victoria de este año fue aprender a usar realmente los métodos formales, esto es algo que nunca se había hecho en el espacio de criptomonedas y es raramente realizado en la ingeniería de software en su totalidad. Esta idea es empezar con un grupo de personas que tienen un plan matemático, una definición matemática de como debería ser la apariencia del software, lo llamamos especificación formal. Escribes en una forma muy precisa exactamente que es lo que tu software supuestamente tiene que realizar, después escribes el código y eres capaz, mediante una serie de técnicas, de verificar que el código cumple con las intenciones. Así, las probabilidades de tener errores, comportamientos anormales se reduce exponencialmente como resultado del uso de estas técnicas.

¿Por que la gente no hace esto en la ingeniería de software?

Porque las herramientas necesarias para utilizar estas técnicas requieren niveles de entrenamiento de doctorado, el uso de un montón de herramientas académicas, es muy demandante de tiempo y es muy caro. Los proyectos pueden demorar años y costar millones de dólares. Con Cardano, tuvimos que encontrar la forma de lograr el impacto de este tipo de ingeniería en un marco de tiempo razonable para un producto comercial, algo que sea lanzado con cierto grado de regularidad y eventualmente crear algo que sea exitoso para la comunidad de código abierto (open source community)

Durante todo el 2018 tuvimos unos cuantos héroes en la organización que diligentemente se sentaron a escribir especificaciones en forma sistemática y otros en el equipo implementaron esa especificación. Nos tomo un año entero darnos cuenta como escribirlo, modelarlo, testearlo y realmente implementarlo.

Ahora que logramos dominar este tipo de ingeniería, podemos aplicar esas mismas técnicas y estándares en la segunda cara de Cardano, es decir, hicimos la ciencia, hicimos un enorme avance en cadenas laterales (sidechains), enorme avance en lenguajes de programación, en Ouroboros, que esta saliendo del laboratorio. Estamos listos para escribir e implementar el código, lanzar estas increíbles ideas que nos permiten ser 50 veces mas descentralizados que EOS y 100 veces mas descentralizados que Bitcoin. Estas ideas revolucionarias nos permiten una escala masiva, con potencial de interoperabilidad (interoperability) con cientos de criptomonedas, ideas que eventualmente permitirán a la gente usar su lenguaje de programación favorito para escribir contratos inteligentes en nuestro sistema. Estas gran ideas que han sido inculcadas durante estos tres años han representado millones y millones de dolares en investigación y revisión por pares. Ahora podemos aplicar esas ideas con los métodos formales. Escribir especificación no en términos anuales sino semanales o mensuales e implementar esas especificaciones rápidamente. Inclusive hemos contratados grandes firmas para ver como aplicar checkeo rápido (quick check) a nuestras especificaciones, incluso hay gente trabajando en testeos aun mas rigurosos, usando, por ejemplo, los esfuerzos Delta Q y otras cosas por el estilo. En ultima instancia, nos dará la habilidad de verificar que el código que escribimos es correcto, es seguro y cuando no, seremos capaces de detectar y reparar antes de que haya sido totalmente lanzado, antes de que llegue al cliente. Eso es algo único de Cardano, son cosas que ves en la NASA, Boing, lo ves en empresas donde la falla del código significa que gente morirá, o perderás equipamiento que cuesta billones de dolares, y estamos hablando de sistemas que idealmente todos los días estarán manejando billones de dolares, identidades, reputaciones, si ese sistema falla, podría destruir tu vida, podría llevarte a la banca rota. Tenemos que aplicar ese tipo de técnicas de ingeniería como estándar en nuestro espacio, pero al mismo tiempo tenemos que ser competitivos, desenvolver esto en un periodo de tiempo razonable. Entonces creo que ese fue el gigante y silencioso logro del año 2018. Escribir las especificaciones, realizar una profunda investigación de lo que ocurrió en los últimos 10 años en el espacio y luego encontrar la forma de pasar de esa especificación al código y verificar dicho código conforme a la especificación

¿A donde vamos en 2019?

La arquitectura propuesta para Cardano fue siempre dos capas (layers). En realidad es todo lo que necesitas para que un sistema alcance escala global. Tienes que separar dos conceptos, uno es la contabilidad y otro la computación. La contabilidad es un asunto global, en cualquier momento dado se puede saber quien posee que cosa y donde y verificar que el dinero que estas viendo es real y legítimo. Hay una serie de capacidades que necesitas para asegurarte que esto es correcto. De algún modo, este es un modelo simple, entendible y poco riesgoso de mantener.

La capa computacional, por otro lado, es un animal muy distinto, es muy privado y personalizado. Quizás tu quieras, por ejemplo, correr la ultima aplicación viral, crypto kitties 2.0, jugar al poker, quizas quieras balancear tus planillas de calculo particularmente para la contabilidad de tu empresa, aplicar formulas únicas para intentar entender ciertas cosas, tus porcentajes de impuestos, por ejemplo. Ese no es un asunto global que deba ser considerado en China, Rusia, Japón, Corea, América, eso es algo a lo que solo tu y la gente que te rodea le interesa. Cual es el punto de agregar eso a una blockchain? Hay casos donde la confianza es un inconveniente, en el caso del juego, por ejemplo, la generación de números al azar, la casa tiene un gran incentivo para hacer trampa, especialmente si estas apostando en contra de la casa, les encantan esos sesgos para así siempre poder ganar o tener una mejor probabilidad de lograrlo. Como usuario, quizás ni siquiera estés al tanto de esto, por ese motivo existen las regulaciones.

¿Como eran normalmente solucionados estos problemas? Con la idea de un tercer participante de confianza, que revisa todo lo que esta siendo llevado a cabo ¿Que pasa si ese tercer participante es corrompido? Entra en juego el regulador, que revisa lo que el tercer participante esta realizando y nosotros tenemos la esperanza de que ese regulador va a hacer bien su trabajo. Y, como hemos visto en el 2008, con los escándalos de lavado de dinero con los bancos, en toda la historia de Wall Street, en muchos casos se podría decir en todas las industrias, desde la salud hasta el juego y apuestas, los reguladores raramente funcionan bien en el largo plazo.

Siempre que en una situación puedas confiar en un grupo en vez de una autoridad central, será un gran avance para el consumidor, permitiendo globalizar. Mientras que las implicancias de la capa de computación son personales, las consecuencias de esa capa computacional son globales. Esta ha sido siempre la parte difícil de reconciliar, contabilidad y computación, son distintas pero a su vez están conectadas, interviniendo con distintos actores.

La filosofía de Cardano fue separarlas en distintas capas y decimos que podemos solucionar el problema de estos dos conceptos en un ambiente de blockchain, pero primero solucionemos el problema de la contabilidad, hagamos que eso funcione correctamente, por que es un problema de hace 10 años en nuestro espacio, que Bitcoin y todo el mundo a intentado solucionar. Simplemente hay un montón de deficiencias en como la gente enfrentaron el problema, el sistema de Prueba de Trabajo (Proof of Work PoW), UTX accounting, lenguaje de programación robusto (roboust scripting language), son todas grandes ideas. El problema es que la ejecución de estas ideas les falta rigor académico, un pensamiento minucioso para poder revisar y sintetizar muchas de estas ideas todas juntas para crear un mejor sistema.

Entonces decidimos reemplazar la Prueba de Trabajo (Proof of Work PoW) por algo que sea parecido pero no requiera tanta energía (al momento, Feb 2019, Bitcoin consume 2 mil millones de dolares anuales para realizar 7 transacciones por segundo,dado su protocolo, los consumos energéticos solo irán en aumento con el correr del tiempo), que no resulte en carteles de minado, que tenga una mucho mejor manera de ser escalado. De eso se trato la agenda de investigación de Ouroboros, no empezamos con un algoritmo sino preguntando, ¿qué es una blockchain? ¿qué es la prueba de trabajo? cómo la prueba de trabajo crea una blockchain segura? Eso nos da un objetivo de seguridad, luego de forma gradual y sistemática construimos conferencia a conferencia, documento a documento, Ouroboros, Ouroboros Praos, Ouroboros Genesis, Ouroboros Hydra, hay tantas lineas de investigación en ese aspecto. Todas y cada una de ellas apuntan a algo, una tuvo que crear un modelo, de como el algoritmo de consenso iba a funcionar en general, otra tenia que suavizar cosas indeseables para la producción de protocolos de algoritmo, como por ejemplo requisitos de puntos de checkeo (checkpoints), o requisitos de sincronizacion, etc, otros tratan de hacer los protocolos mas resistentes y tolerantes a la realidad de vivir en redes de escala global en la cual la gente puede confiar, hemos hecho enormes progresos en esa linea. Ahora tenemos todo lo que PoW tiene, pero sin pagar el precio de PoW, centralización y destrucción medio ambiental.

Solamente eso ya sería una gran innovación, pero recuerda que estamos intentando hacer un sistema contable universal, uno creado para todos, entonces miramos otras dimensiones. Necesitamos tener transacciones financieras mas sofisticadas en nuestro sistema, Bitcoin en realidad solo soporta firma de señal (signal signature), multi firma (multi sig), y algunas otras cosas, pero sin nivel de complejidad. Y es muy difícil trabajar con el código de Bitcoin. Una de las razones centrales por las que Ethereum fue creado fue para tratar de dar a los desarrolladores una mejor manera de escribir software. El problema es que fueron demasiado lejos y mezclaron esa computación con la contabilidad en una forma tan seria que ha resultado en un lio de seguridad, en un lio económico y otro conjunto de problemas que ha sido enumerado por la gente del espacio de criptomonedas.

Entonces lo que quisimos hacer es vivir en el medio, no seas restrictivo como el código de Bitcoin, no seas tan abierto como Solidity y otros lenguajes, pero crea un modelo de dominio especifico, que nos permite tener mucha facilidad para realizar transacciones financieras complejas, pero tener un montón de certezas de que estas transacciones han sido implementadas correctamente. La buena noticia es que este es un tópico de teoría de los lenguajes de programación, estudiada desde hace 60 años, con gente brillante que vino con ideas brillantes. Desafortunadamente el criptomercado históricamente dio la espalda a estas innovaciones. Lo que hicimos fue contratar a las mejores personas que pudimos encontrar, trajimos el espacio de programación funcional dentro del mundo de las criptomonedas, trajimos personas como Philip Wadler, Simon Thompson. Académicos establecidos que crearon lenguajes, como Philip Wadler que creo Haskell, Simon ThompsonThompson, que esta haciendo un gran trabajo a lo largo del espacio. Lo que hicimos fue decirles, tenemos una hoja en blanco, estos son los problemas que estamos intentando colectar, creemos una colección de técnicas lenguajes e ideas que nos den esa mitad de solución entre lo demasiado restrictivo de Bitcoin y permisivo y funcional de Ethereum.

1 Like