Sáb. Jul 24th, 2021
    Free TON, Mitya Goroshevsky, Basicblockradio

    Mitya Goroshevsky CTO en el equipo de TON Labs. Se sabe que después de que el equipo de Telegram se viera obligado a abandonar el lanzamiento de Telegram Open Network (TON), la comunidad de desarrolladores de TON Labs continuó desarrollando el proyecto y lanzó la blockchain Free TON en mayo de 2020.

    En el programa de la radio “Basic Block” se discutieron los problemas del escalado, las matices técnicas del protocolo TON y las prometedoras aplicaciones basadas en él.

    Presentadores: Alexander Seleznev y Sergey Tikhomirov.

    Conocimiento a TON, trabajo en el equipo Telegram

    • Mitya, ¿cómo entraste en la blockchain?

    He estado haciendo desarrollo de bases de datos distribuidas desde 2004 y todos los protocolos relacionados con todo lo distribuido fueron de gran interés para mí. Aprendí sobre Bitcoin desde el principio, en 2010. Por supuesto, fue interesante, lo hablamos durante mucho tiempo. Quería el mío, pero mis compañeros me disuadieron: “Basta, no tiene sentido, ahora todo conquistan los chinos, perderás dinero …” Entonces escuché a mis compañeros. Desde entonces nunca escucho a nadie (sonríe).

    La idea en sí era asombrosa porque sabíamos lo difícil que era. Cuando creamos nuestra base, no pensamos en esta dirección. No teníamos una tarea para resolver el problema del Double Spend, no creamos tal sistema de pago. Pero fue divertido ver con qué elegancia se hizo. Pero no se pudo hacer nada al respecto. O sea script — comprensible, Forth —  comprensible, la idea genial cyberpunk es una ventaja. Pero al igual que con la plataforma tecnológica, fue difícil hacer algo con ella. Después de que salió Ethereum, se puso la cosa realmente interesante.

    Me conecté y al principio quería hacer un messenger con transferencia de dinero adentro e incluso hablé con todo tipo de asociaciones, pero luego salió Facebook y dijo que haría un messenger en el que habría transferencias de dinero adentro. Y las asociaciones me dijeron,desafortunadamente … Nadie vio messengers con transferencias de dinero en Facebook … Pero cuando Mark salió y comenzó a decir cómo enviará todo a través del messenger por todo el mundo — es difícil oponer algo.

    Me involucré en otros proyectos, fui el arquitecto principal de ShelterZoom, un proyecto inmobiliario basado en blockchain … Hay una enorme cadena de personas que se dedican a la venta inmobiliaria en los EE. UU. Y este no es un corredor, como en Europa, sino jerarquías completas de otros participantes del mercado. Y entre ellos no hay confianza, no confían el uno en el otro ni un solo segundo. Y está claro que este es un buen caso para blockchain.

    Más tarde nos cruzamos con Pavel Prigolovko. En algún momento, me llamó y me dijo: “¿Qué piensas de TON?” Le respondí que no sabía nada al respecto. Explicó que es Telegram quien lanza la blockchain. Leí el white paper, pero luego no pensamos que Telegram no podría continuar con el proyecto. Cree una roadmap, qué haría para ayudar a TON, qué se necesita desarrollar para que el proyecto pueda desarrollarse, etc. Y todavía seguimos en esta dirección con poco o ningún cambio.

    • Decidiste dedicar muchos años de tu vida al proyecto TON … ¿Por qué hicieron TON Labs y no Ethereum Labs, por ejemplo?

    Inicialmente, cuando Pavel me llamó, ya estaban comprometidos con TON desde el lado de la inversión. Por lo tanto, querían ayudar a que este ecosistema se desarrollara, porque había dinero en él, y esto es normal. Y desde mi punto de vista, lo evalué como una historia tecnológica de lo interesante que puede ser. Leí diseño y fue lo suficientemente divertido como para hacerlo.

    • Recuerdo que estaba hojeando ese documento técnico que se publicó en alguna parte, y no estaba completamente claro si era TON o algún tipo de falsificación. Y si todos coincidimos en que era TON y resultó ser así, tuve la impresión de que hay un montón de ideas que suenan muy impresionantes, quizás, sobre todo para una persona que no entiende de eso, pero sin concretización.

    Prometieron una especie de slashing interminable, hipercubos … Parece que el autor del documento quería decir que están haciendo con su Bitcoin, ¿Ethereum? Aquí vinimos nosotros, los inteligentes Durovs y la empresa, y te explicaremos cómo debe ser. ¿Por qué Bitcoin no lo descubrió antes, Ethereum? ¿En qué consistía la innovación aquí, cómo les pareció en aquel entonces?

    Probablemente estemos hablando de diferentes documentos, de los cuales había varios. Por ejemplo, el documento “Premier” es un “bla bla bla de high levell”, lo siento. Había un white paper y un poco más detallado, pero eso sí, en algunos lugares es muy superficial. Y tienes toda la razón, habló de los submarinos surcando los cielos (sonríe). También había un documento llamado TON Virtual Machine, que hablaba de Fift, Assembler, que ya era más interesante.

    No formulé mi opinión sobre la base de un solo documento. También hubo comunicación con el equipo de Telegram y otros documentos. Nosotros, de hecho, comenzamos con la implementación de la Máquina Virtual.

    Para construir nuestras herramientas para desarrolladores, por ejemplo, en TON, al menos se necesitaba algo, pero Telegram no proporcionó ningún código, por lo que tuvimos que implementar las cosas nosotros mismos. A principios de 2019, nuestra blockchain estaba funcionando sobre la base de la máquina virtual de Telegram, etc., solo que con un consenso diferente para depurar nuestras herramientas.

    • Probablemente hemos estropeado un poco las cosas. Dijiste que escribiste una hoja de ruta. ¿Puede decirnos qué planeaba hacer?

    Lo que ahora llamamos TON operating system  (TON OS). Lo que TON Labs siempre planeó hacer-desde la segunda implementación paralela del protocolo (siempre quisimos hacer la segunda, porque es útil al menos para la red), y más allá: la pila completa, hasta la interfaz de usuario. 

    Es decir, si consideramos una blockchain como procesador, entonces esto es lo que hay más entre el procesador y el usuario final, el usuario de la interfaz. Lo que llamamos la persona del sistema. Lo que nos ayuda a administrar los recursos y se lo entrega al usuario, nos permite escribir aplicaciones para el usuario.

    Y además, si sigue esta pila, comprenderá inmediatamente lo que debe hacerse para que suceda. Necesita escribir compiladores, herramientas de desarrollo, algún SDK, API para este sistema operativo para que pueda comunicarse con sus recursos desde sus aplicaciones. Y, de hecho, todos los protocolos que funcionarán dentro de esta pila (inserte el protocolo API, etc.). La implementación en la nube de este sistema operativo aparece de inmediato …

    Si toma un proyecto como Graph, toman algunos POSTGRES y GraphQL, datos en Ether y los transfieren a este Postgres para que los desarrolladores no tengan que implementar su infraestructura. Y cuando hablamos de la nube en TON OS, es algo así. Pero al mismo tiempo, debe comprender que tiene una blockchain que funciona varios miles de veces más rápido que Ether.

    La cantidad de datos en tiempo real es simplemente enorme, porque ahora los bloques se liberan en promedio a través de la red en 0.2 segundos. Esta no es una infraestructura fácil de construir. Luego, debe hacer que este SDK sea multiplataforma, de modo que cuando una persona tenga una aplicación que se ejecute hoy en React, mañana en Java, pasado mañana en Kotlin, Swift, tenga esta interfaz para toda la infraestructura de trabajo. Esto se llama nuestros enlaces SDK, etc.

    Esta es la pila completa que estamos haciendo. Empezamos con una máquina virtual, algunos protocolos, para que al principio pudiéramos implementar mensajes y emular el trabajo de la blockchain.

    Tomaron LLVM y dijeron que primero escribiremos un compilador de este tipo, ya que tendremos una blockchain para la adopción masiva por parte de una gran cantidad de personas. Porque Telegram tiene 150 millones de usuarios. En consecuencia, cuando un millón de desarrolladores lleguen a desarrollar este número, ¿en qué idioma deberían escribir programas? Inmediatamente dije que es poco probable que obliguemos a los desarrolladores a escribir en Swift, Assembler. Necesita algún tipo de lenguaje completo, por ejemplo, C o C ++. Y tomamos el marco LLVM, apuntamos a la plataforma TON y dos compiladores — C y C ++.

    Y el segundo punto: hay una gran cantidad de desarrolladores en Ether que están familiarizados con Solidity, tampoco queremos volver a capacitarlos, por lo que intentamos hacer un compilador del Solidity. No fue fácil, porque en Solidity hay un paradigma completamente diferente, blockchain sincrónico, muchas cosas por hacer. Pero, afortunadamente, hay una persona que aceptó asumir esta carga: un ingenioso desarrollador Vitya Bargachev, tres veces campeón mundial en informática, dos veces, en programación.

    Él solo escribió todo el compilador de Solidity, incluido el nuevo lenguaje de Solidity modificado, que ahora está muy por delante de lo habitual. Si Ethereum alguna vez hace sharding, tendrán todo asincrónico y enfrentarán los mismos problemas que nosotros. Pero tenemos un compilador estable listo que ha estado funcionando durante mucho tiempo. Esta es una ilustración del hecho de que todas las tareas que resolvimos hacen avanzar el progreso del lenguaje de Solidity. Este es un desarrollo interesante.

    • Resultó ser un discurso muy interesante, pero me gustaría retroceder un poco. Tenemos más o menos conjuntos de sistemas operativos 2-3-5 establecidos, además de lenguajes, máquinas virtuales — todo funciona durante décadas, todo está perfeccionado … Ahora tenemos blockchains — algún otro paradigma de ejecución de código, pero es aplicable en un área bastante estrecha. Y lo que dices me suena a “reescribamos toda la pila de TI,que han desarrollado en los años 80, si no fue antes,para los blockchains”.

    ¿Tan necesario es? Si necesitamos una blockchain para una clase de aplicaciones bastante limitada, escribamos sus lenguajes para ella. Pero si es por lo más amplio, ¿tal vez intente usar algo que vino antes que nosotros de una manera nueva? JVM de algún tipo, lenguajes existentes, etc. ¿Qué piensa usted al respecto?

    Veo todo muy simple. Si continuamos con la analogía de que este es un procesador, entonces este es solo otro archiprocesador con una arquitectura diferente. No puede simplemente tomarlo y decir: ya tenemos un procesador, no importa cuál, tomemos algo de allí y usémoslo. El blockchain (este procesador) tiene absolutamente algunas peculiaridades propias que no encajan en otra arquitectura.

    Distribución, verificación de cálculos, lo que hacen estos programas … No pueden estar equivocados. Hay muy pocas aplicaciones o plataformas en el mundo en las que tenga que escribir un programa de este tipo para que nunca falle. O sea si se equivoca, perderá dinero de inmediato. Esto impone algunas restricciones.

    Hacemos mucha verificación formal para Free TON, pero hay toda una dirección en la blockchain, como sabemos, como Tezos, que intentó hacer que el lenguaje básico de la plataforma, como verificable.

    ¿Puede tomar Linux y convertirlo en un sistema operativo blockchain? Creo que no.Porque se chocan con algo. En Linux, por ejemplo, el rendimiento de su tarjeta de video, bus local, memoria entre un componente y otro. En blockchain, te encuentras con la red, y estas son cosas completamente diferentes. Y la optimización debería funcionar para estas cosas.

    • Hemos profundizado demasiado. Para mí, todo parece una increíble cantidad de trabajo, simplemente titánico. Por lo que tengo entendido, este es un compromiso poderoso durante muchos años, y su motivación fue inicialmente la perspectiva de que una enorme base de usuarios de Telegram estaría a bordo lo suficientemente rápido en TON, lo que automáticamente otorgará 100,000 puntos por delante de todas las demás blockchains, lo que significa aparecerá instantáneamente una enorme base de usuarios. ¿Es cierto?

    Esto es parcialmente cierto. Sin duda, este es un factor motivador importante, pero no por completo. Si mira la lógica de Telegram, ¿por qué inventaría su propia blockchain? Habrían tomado algo y ya está. Pero imagina el desafío: tienes 200 millones de usuarios. ¿Y qué bifurca para que hagan todos estos usuarios, y para tirar de todo esto?

    • ¿Y la oportunidad de hacer que en blockchain queremos darle a esta base de usuarios? ¿Qué es lo que tendría sentido hacer esto en una blockchain descentralizada y no en los servidores de Telegram?

    Si realmente hablamos, entonces Telegram vio los pagos en primer lugar. Pero cuando necesitas hacer pagos instantáneos entre 200 millones de usuarios y, al mismo tiempo, para que el gas no cueste un dinero loco, ¿qué blockchain (vuelvo a mi pregunta) podría bifurcarse hace 3-4 años? ¿De modo que tal caso de uso (incluso los pagos más simples) podría satisfacerse con un gas mínimo de entre 200 millones de usuarios?

    La capacidad de omisión sería necesaria de tal manera que ni una blockchain existente en ese momento y hasta hoy no pueda proporcionar … Todos dijeron que algún día todos harían una blockchain mega escalable, pero nadie lo hizo. Y tenían un diseño específico.

    • ¿Cómo planificó sus esfuerzos titánicos para monetizar?

    Inicialmente, teníamos un plan de negocios. Muchos desarrolladores acuden a ti, todos necesitan herramientas de desarrollo, nubes. Como éramos el principal y único actor de infraestructura, además de Telegram, en el ecosistema, íbamos a monetizar, como el modelo de código abierto habitual, en torno a esta infraestructura.

    • Es decir, ¿se planeó monetizar más vendiendo herramientas de desarrollo a los desarrolladores, y no vendiendo algún tipo de blockchain de servicios centrales para los usuarios? ¿Blockchain es gratis para los usuarios o pagan tarifas de mercado a blockchain y no a usted como organización? ¿Las organizaciones son pagadas por los miembros más profesionales de este ecosistema?

    Sí, de esta manera y la otra. Nuevamente, todo aquí está dentro del marco de algún sistema operativo, ideas del mismo Red Hat o algo más. Es decir, siempre hay algunos jugadores del mercado que le pagan por su experiencia y su infraestructura. Para dárselo al usuario más tarde. Inicialmente tenemos nuestro TON Surf — un navegador de blockchain que también tenía una interfaz de usuario y la capacidad de usarse como una aplicación. A diferencia de Telegram, que se agudizará más con tons, interacciones con contratos smart.

    Si tiene un sistema de contratos smart que proporciona, por ejemplo, DeFi, teóricamente existe la oportunidad de monetizar — crear un proyecto parecido a tokens, etc.

    • Nuevamente, en el nivel de la aplicación, y no en Core de la blockchain en sí.

    Por supuesto, no teníamos tokens, no podíamos contar que íbamos a recibir gas fees.

    • Recuerdo que cuando TON todavía estaba en desarrollo activo, estaba rodeado por una atmósfera de ni siquiera secreto, sino mística: constantemente algo así como “nueva documentación filtrada, los Durovs confirmaban que era real”, etc. En ese momento todavía pecaba leyendo white paper en mi tiempo libre. Pero debido al hecho de que esta atmósfera incomprensible, qué es, de dónde vino, de alguna manera no había motivación para dominarlo todo.

    Según tengo entendido, tuvo una interacción directa con los hermanos Durov, es decir, no se vio obligado a estar con dudas, y ¿podría comunicarse directamente con el equipo de desarrollo?

    Podíamos y nos comunicábamos, pero no de la manera que cree. De todos modos, esta cultura de cierre y no difusión de información era igual para nosotros también. No es que vinimos y nos lo contaban todo. Esta es una especie de relaciones públicas, la imagen de Telegram, me parece. Esto no encaja en absoluto con lo que hemos predicado y predicamos; esto no es como un open source, sino como una historia social.

    Escribimos el código durante cuatro años, luego lo pusimos en código abierto, todo está bien allí, úselo. No es como si pusiéramos el código en open source en una etapa temprana, o sea, contribuyamos allí, lo haremos juntos. Nunca sucedió, y también tuvimos que jugarlo. También estuvimos cerrados. Cuando no se revela su capa básica, es difícil emitir algunas herramientas de nivel superior en código abierto.

    Además, muy a menudo sucedía que avanzábamos con herramientas, compiladores, y luego solo salió un código de Telegram, y tuvimos que regresar, porque nada funcionaba con este código, tuvimos que cambiarlo. Esto no está de acuerdo con la documentación en absoluto, y era muy común. Por ejemplo, prácticamente hicimos un nodo y una blockchain, y luego recibimos el código del nodo (Nikolay lo publicó en septiembre), y tuvimos que reescribir mucho. De hecho, todavía estamos mejorando.

    Está claro que cuando haces algo durante tres años, esto es una cosa, pero cuando vienes y en 9 meses tienes que reescribir todo sin ninguna documentación, aplicar ingeniería inversa al código y hacer correcciones a lo que construiste según tu comprensión, pero de hecho, todo resultó estar mal. Por ejemplo, una cosa está escrita en los documentos, pero otra está escrita en el núcleo … En general, esto sigue siendo un placer. Pero sigue siendo una experiencia interesante. Tienes que entender que este es uno de los niveles. Hay un bajo nivel de protocolos, pero desde arriba desarrollamos nuestras propias herramientas. Ya no existía esa dependencia, así que lo hicimos todo con calma.

    19
    0