Dentro de la mente del desarrollador de blockchain: Koinos se acerca a testnet
Un regreso a la minería de prueba de trabajo, una cadena de bloques construida para ser resistente a las bifurcaciones y la oportunidad de desarrollarse en múltiples lenguajes de programación. Lecciones de la historia y una mirada al futuro.
Opinión experta
Cointelegraph está siguiendo el desarrollo de una cadena de bloques completamente nueva desde el inicio hasta la red principal y más allá a través de su serie, Inside the Blockchain Developer’s Mind. En la cuarta parte, Andrew Levine de Koinos Group analiza algunos de los desafíos que ha enfrentado el equipo desde que identificó los problemas clave que pretenden resolver.
Al principio de esta serie describí tres de las «crisis» que están frenando la adopción de blockchain; actualizabilidad, escalabilidad y gobernanza.
En esta publicación, resumiré las soluciones que hemos desarrollado para estos problemas, que mostraremos en la próxima red de prueba de Koinos planificada para el segundo trimestre de 2021.
Desde esa serie, Koinos Group ha lanzado con éxito un token, KOIN, como prueba de trabajo, token extraíble en Ethereum. Al utilizar la prueba de trabajo para distribuir el suministro inicial de tokens, pudimos hacer que el token fuera accesible para los primeros usuarios y renunciar a una ICO.
Evaluación del modelo ICO
Las ICO y las herramientas de venta de tokens similares, aunque no sin sus casos de uso, han creado su propia crisis dentro del espacio al desalinear los incentivos incluso antes de que comience el desarrollo. El problema no es con la ICO como herramienta, sino lo que sucede cuando un equipo es recompensado económicamente antes de haber enviado un producto.
Si bien muchos proyectos han seguido los pasos de Bitcoin, es sorprendente que pocos hayan replicado posiblemente el aspecto más exitoso de su lanzamiento; una distribución simbólica exclusivamente a través de prueba de trabajo.
El beneficio de este enfoque es que garantiza con certeza algorítmica que las personas detrás de la cadena de bloques no tienen ninguna ventaja para adquirir el token. En resumen, todos, sin importar quiénes sean, tienen que hacer un sacrificio financiero para adquirir ese token y la escala de ese sacrificio está determinada por algún tercero neutral. En el caso de la prueba de trabajo, ese tercero neutral es el fabricante del hardware.
Para Koinos Group, eso significa que tuvimos que gastar dinero para adquirir nuestro token como todos los demás. De hecho, debido a que tenemos que pasar la mayor parte de nuestro tiempo desarrollando el producto, incluso estamos en desventaja en relación con los mineros profesionales. Así que tenemos que seguir trabajando para agregar valor al protocolo si queremos obtener un retorno de nuestra inversión.
Los algoritmos de prueba de trabajo no están exentos de problemas, pero los mitigamos de varias maneras.
- Primero, la red principal estará gobernada por un algoritmo de consenso totalmente diferente que no será prueba de trabajo o prueba de participación, por lo que cualquier intento de desarrollar un ASIC sería una pérdida de recursos.
- En segundo lugar, hicimos que el algoritmo fuera resistente a la GPU.
- En tercer lugar, lanzamos este token mucho antes de lanzar nuestra red principal. De hecho, lanzamos el token mucho antes de que hubiéramos completado el desarrollo de nuestro marco. Sin un producto funcional, este token se convierte en una forma para que las personas que creen en nuestro equipo y que comparten nuestra visión de una plataforma de contrato inteligente sin tarifas adquieran el token a un costo razonable.
Tasa rápida de mejora
Parte de lo que hace que esta estrategia de lanzamiento funcione es el innovador conjunto de propiedades de Koinos. Construimos Koinos totalmente desde cero, no alrededor de una característica única como transacciones por segundo o fragmentación, sino con el objetivo de crear una cadena de bloques que mejorar a un ritmo mucho más rápido que cualquier otra cadena de bloques que existe.
En nuestra experiencia en el desarrollo de la cadena de bloques Steem, la necesidad de ejecutar hard forks fue el factor más importante que frenaba el progreso. Si quisiéramos eliminar ese cuello de botella, razonamos, mover la mayor cantidad posible del código del sistema a contratos inteligentes que podrían actualizarse dentro de la banda sería suficiente.
Es por eso que el marco de la cadena de bloques de Koinos contiene solo las características más básicas de la cadena de bloques (llamadas «thunks») como entrada / entrada de contrato, obtención de parámetros y escritura en la base de datos. Todas las funciones más complejas con las que la gente está más familiarizada (algoritmo de consenso, cuentas, gestión de recursos, gobernanza, etc.) se han trasladado a contratos inteligentes WASM modulares que se ejecutan en la máquina virtual y que se pueden actualizar sin un hard fork.
Debido a que todos los comportamientos ahora están codificados en distintos «módulos» que se pueden «actualizar» individualmente, llamamos a esta característica capacidad de actualización modular.
Como resultado de la capacidad de actualización modular, cualquier comportamiento se puede agregar a la cadena de bloques sin un hard fork porque las actualizaciones individuales se pueden distribuir en bloques y transacciones que se envían a la red de manera muy similar a un parche del sistema operativo, pero con el beneficio adicional de un on -Registro en cadena de toda la ruta de actualización.
Al mover casi todo el código del sistema de la cadena de bloques a módulos de contrato inteligente que se pueden actualizar sin una bifurcación, hemos convertido a Koinos en una cadena de bloques que deriva su fuerza no de las características con las que nació, sino de su capacidad para rápidamente Adquiera características nuevas y mejores más rápido que cualquier otra cosa.
Es por eso que llamamos a Koinos la primera cadena de bloques capaz de evolucionar.
Microservicios
La capacidad de actualización modular fue solo la primera innovación técnica importante que desarrollamos para hacer que Koinos sea menos monolítico y un orden de magnitud más actualizable. Al igual que hay código que no necesita implementarse de forma nativa (en la propia cadena de bloques) pero que puede implementarse como contratos inteligentes (la mayoría de ellos de hecho), hay mucho código que no necesita implementarse de forma nativa o como contratos inteligentes y, en cambio, se pueden implementar como microservicios.
Las arquitecturas de microservicios tienen muchos beneficios, por lo que se ha convertido en el estándar de la industria para el desarrollo de software moderno, pero un beneficio importante es la escalabilidad porque los servicios individuales se pueden escalar sin tener que escalar todo el sistema. Esto puede reducir drásticamente el costo de funcionamiento de una red mientras mejora tanto la velocidad como la calidad de las mejoras en esa red. Como resultado de accidentes históricos, las pilas de blockchain parecen ser las últimas en adoptar este nuevo estándar, ya que Koinos será la primera blockchain construida en una arquitectura de microservicio.
Esto crea nuevas e increíbles oportunidades para los desarrolladores que podrán crear microservicios específicos de aplicaciones para Koinos que les ayudarán a ejecutar sus nodos y sus aplicaciones de manera más eficiente; y, como consecuencia, ofrecer mejores experiencias de usuario. Lo mejor de todo es que esto hará que la operación del nodo Koinos sea más accesible, mejorando así la descentralización y permitiendo que la red en su conjunto funcione de manera más eficiente para que los desarrolladores y sus usuarios finales puedan sacar más provecho de sus aplicaciones descentralizadas.
Soporte multilenguaje
Otro beneficio de una arquitectura de microservicio es que los microservicios individuales (básicamente programas pequeños) se pueden escribir en el mejor lenguaje de programación (más rápido, más seguro, mejores bibliotecas, etc.) para el trabajo, una capacidad que también queríamos ofrecer a los desarrolladores de contratos inteligentes. . Pero para aprovechar este rasgo, necesitábamos desarrollar una forma para que estos pequeños programas escritos en diferentes idiomas se «hablaran» entre sí de una manera que se ajustara a las necesidades únicas de una red descentralizada. Para resolver este problema, creamos un marco de serialización en varios idiomas llamado Tipos Koinos.
Koinos Types es como Rosetta Stone para estructuras de datos blockchain. Permite que los programas escritos en diferentes lenguajes se comuniquen entre sí de una manera simple y unificada al darles acceso a los mismos objetos (los “bloques de construcción” de los lenguajes de programación modernos). Koinos Types permite la interpretación de las estructuras de datos de Koinos (es decir, blockchain) en prácticamente cualquier lenguaje de programación, lo que será extremadamente útil para el desarrollo de microservicios, clientes y contratos inteligentes relacionados con blockchain.
Koinos Types resuelve una serie de problemas. Nos ayuda a agregar soporte multilingüe a Koinos de manera más general (incluso para contratos inteligentes), permite que los microservicios se comuniquen entre sí y hace que sea mucho más fácil desarrollar y actualizar bibliotecas cliente. Si bien la capacidad de actualización modular y la arquitectura de microservicios por sí sola hacen que Koinos sea mucho más actualizable que cualquier otra cadena de bloques, Koinos Types lleva esa capacidad de actualización a otro nivel. Es por eso que estábamos tan emocionados de hacer de Koinos Types la primera pieza de Koinos que abrimos de código.
Como puede ver, asegurarse de que Koinos pueda mejorar a un ritmo más rápido que cualquier otra cadena de bloques no se trata de ninguna característica.
- Se trata de conseguir incentivos desde el principio.
- Se trata de garantizar que la cadena de bloques tenga capacidad de actualización modular.
- Se trata de modularizar la propia arquitectura como microservicios.
- Y se trata de asegurarse de que los desarrolladores que operan en todos los niveles de la pila (no solo contratos inteligentes) puedan usar los lenguajes de programación que ya conocen y aman.
Los puntos de vista y opiniones expresados aquí son únicamente los del autor y no reflejan necesariamente los puntos de vista de Cointelegraph.com. Cada inversión y movimiento comercial implica un riesgo, debe realizar su propia investigación al tomar una decisión.
Post Original de: CoinTelegraph