La próxima actualización de Stargate incluirá la versión 1.0 del protocolo de Comunicación Inter-Blockchain (IBC), el mecanismo de interoperabilidad entre cadenas heterogéneas, que forma el sustrato conectivo para la Red Cosmos.
IBC ha estado en diseño y desarrollo desde el lanzamiento del documento técnico original de Cosmos.
De manera adecuada para un protocolo de interoperabilidad técnica, la interoperabilidad entre muchas organizaciones y contribuyentes individuales ha sido esencial para llevar a IBC a donde está hoy: Tendermint , Agoric , Informal Systems , Chorus One , Iqlusion , Interchain GmbH y la Interchain Foundation.han aportado recursos y personal al diseño, especificación e implementación de IBC.
Muchos contribuyentes de la comunidad fuera de esas organizaciones han encontrado errores, han presentado propuestas de especificaciones y han proporcionado pruebas invaluables de garantía de calidad para el software.
La versión 1.0 de IBC es la culminación de años de trabajo diligente de estas organizaciones e individuos, pero también es el comienzo del próximo capítulo en la trayectoria de la Red Cosmos, y el punto de inflexión en el que la fuerza impulsora detrás del desarrollo del protocolo y la adopción debe pasar de una coalición de empresas relativamente unida a una comunidad mucho más amplia de desarrolladores de blockchain, validadores de prueba de participación y usuarios de protocolos.
Esta publicación de blog describe en qué consistirá la versión 1.0 de IBC, enumera la secuencia esperada de pasos para probar e implementar IBC como parte del proceso de actualización más grande de Stargate, cataloga brevemente el trabajo en curso relacionado con IBC que no es formalmente parte de 1.0 proceso de lanzamiento, pero será de interés pronto, y esboza algunas ideas incipientes para el desarrollo futuro de IBC después de Stargate y la versión 1.0, algunas de las cuales también se describirán con mayor detalle en una publicación futura.
Ingredientes para la versión 1.0 IBC
IBC se ha desarrollado «primero la especificación», lo que significa que primero diseñamos y escribimos una especificación canónica completa de las abstracciones y la lógica utilizada en el protocolo antes de escribir cualquier código.
La especificación está diseñada para proporcionar un nivel de detalle suficiente para que las propiedades del protocolo puedan razonarse en abstracto, y para que las implementaciones en diferentes lenguajes o marcos que sean fieles a los tipos y procedimientos en la especificación realicen correctamente estas propiedades. e interoperar sin problemas entre sí.
La especificación IBC está disponible en forma completa en Github y en forma condensada en papel.
La versión 1.0 IBC incluirá una versión de especificación canónica 1.0, que puede ser implementada por cualquier blockchain para soporte IBC que cumpla con las especificaciones.
La primera implementación del protocolo IBC se ha desarrollado en Golang utilizando el Cosmos SDK .
Esta implementación se adhiere a la especificación mencionada anteriormente e incluye capacidades dinámicas para la gestión de permisos de canales y puertos de tiempo de ejecución, clientes ligeros Tendermint para la interoperación con cualquier blockchain Tendermint, clientes de máquinas individuales para la interoperación con máquinas individuales identificadas por una clave pública, un sistema de prueba Merkle generalizado para la integración con diferentes almacenes de datos de blockchain de back-end y un módulo ICS-20 para transferencia de token fungible de cadena cruzada.
Si está interesado en jugar con el código Go o integrarlo en su blockchain, consulte la documentación.
La versión 1.0 IBC incluirá una implementación de 1.0 IBC que cumpla con las especificaciones en el Cosmos SDK, que puede ser importada directamente por cualquier Cosmos SDK para soporte de IBC plug-and-play.
Para facilitar el transporte de datos entre cadenas soberanas, IBC requiere la existencia de procesos de retransmisión fuera de la cadena, que monitorean el estado de las cadenas en busca de paquetes salientes y los envían a los destinos apropiados.
Cualquier persona con cuentas para pagar tarifas de transacción y la capacidad de monitorear el estado y enviar transacciones puede ser un relevo, y para automatizar la lógica involucrada, hemos desarrollado un relator Golang que puede configurar automáticamente clientes livianos, ejecutar el proceso de protocolo de enlace para crear conexiones y canales, y escanear y transmitir paquetes IBC de una cadena a otra.
La versión 1.0 IBC incluirá una versión de relé 1.0 Golang que cumple con las especificaciones, que puede ser fácilmente configurada y operada por cualquiera que desee retransmitir paquetes IBC.
Secuencia de verificación previa al vuelo de IBC ✈️
Interchain GmbH se encuentra actualmente en los pasos finales de prueba y finalización de la implementación de Golang IBC en el Cosmos SDK, con un ojo particular para garantizar que las futuras actualizaciones , tanto de blockchains que utilizan el protocolo IBC como del protocolo IBC en sí, puedan realizarse sin problemas con un mínimo interrupción a los usuarios.
Una vez completado, este trabajo se lanzará en Cosmos SDK v0.40, junto con Tendermint v0.34, como se describe en la Propuesta de actualización de Stargate .
La actualización de Stargate agrupa muchos cambios, y probablemente será necesario pasar por varios candidatos de lanzamiento y secuencias intensivas de redes de prueba para garantizar que el software esté listo para implementarse en producción.
Las primeras redes de prueba de Stargate se centrarán principalmente en preparar a los usuarios y los servicios integrados para los cambios de codificación de protocolo, pero las zonas y los posibles relatores podrán comenzar a prepararse individualmente para la integración de IBC y probar el software candidato de lanzamiento si lo desean.
Se operará un programa público de recompensas (bountys por cualquier error que se encuentre en las especificaciones de IBC y candidatos de lanzamiento de software mencionados anteriormente.
Las posteriores redes de prueba de Stargate se centrarán específicamente en la interoperación de IBC de múltiples cadenas.
Se alienta a las zonas que deseen apoyar IBC a participar.
Finalmente, la secuencia de prueba de Stargate probará la secuencia de actualización in situ no disruptiva utilizando el módulo de actualización Cosmos SDK y se asegurará de que no interrumpa la operación de IBC en progreso en una topología de múltiples cadenas.
Una vez que se logran versiones estables del software, y todas las características y secuencias probadas funcionan sin problemas, se puede preparar una propuesta de actualización final para el Cosmos Hub, que ejecutará una actualización de detención / reinicio para cambiar atómicamente del software actual a la versión Stargate a una altura establecida. , de forma similar a cómo se realizaron las actualizaciones anteriores de Hub.
Las partes interesadas deben evaluar cuidadosamente cualquier propuesta de este tipo, probar el software ellos mismos y emitir un juicio informado sobre la disponibilidad del software antes de votar.
Si el Cosmos Hub decide aprobar la propuesta final de actualización de Stargate, los clientes, las conexiones y los canales se habilitarán en el Hub junto con la actualización, lo que facilitará la configuración y las pruebas con otras cadenas que también han integrado la implementación de IBC.
Inicialmente, las transferencias de tokens fungibles de cadena cruzada ICS-20 se deshabilitarán, de manera similar a cómo las transferencias se deshabilitaron inicialmente cuando Cosmos Hub se lanzó por primera vez.
Una vez que las partes interesadas del Hub estén seguras de que el protocolo es seguro y seguro de usar, una segunda propuesta de cambio de parámetros podrá activar transferencias entre cadenas, después de lo cual los tokens podrán enviarse al Hub desde cualquier cadena compatible con IBC, y de cualquier cadena compatible con IBC al Hub. Debido a la capacidad del protocolo IBC para manejar con seguridad las topologías de cadena dinámica,
En este punto, las posibilidades de interoperabilidad dependen no del Hub o del proceso de actualización de Stargate, sino de la integración de IBC por otras cadenas, lo que pueden hacer a su propio ritmo, eligiendo usar las implementaciones del software Cosmos o no, lo que ellos prefieran.
IBC es un software alfa experimental y debe integrarse y probarse cuidadosamente antes de la implementación.
Todo uso de IBC es bajo su propio riesgo.
Alentamos a las cadenas a garantizar que el software orientado al usuario, como billeteras o extensiones de navegador, describa claramente los riesgos y el modelo de seguridad para los usuarios al realizar cualquier operación entre cadenas.
Trabajo continuo relacionado con IBC
Elegimos intencionalmente mantener el alcance del lanzamiento de Stargate, que ya es un gran esfuerzo de coordinación, no más grande de lo absolutamente necesario, pero una gran cantidad de trabajo fantástico de IBC está avanzando en paralelo en plazos independientes. Esta no es una lista exhaustiva.
- Informal Systems está trabajando en la verificación formal del protocolo IBC , incluidos los apretones de manos, la lógica de envío y recepción de paquetes, el comportamiento del cliente ligero y el algoritmo de retransmisión, con el verificador de modelos TLA +
- Informal Systems también está trabajando en una implementación completa del protocolo central IBC y una implementación completa del relé IBC, ambas en Rust
- Confio está trabajando en una integración de la lógica del controlador IBC en su sistema de contrato inteligente WebAssembly , que se ejecuta en el Cosmos SDK y viene con soporte para clientes JS
- Chainapsis está trabajando en la especificación e implementación del protocolo de cuenta intercadena , que permitirá que una cuenta en una cadena de bloques controle una cuenta en otra cadena de bloques usando IBC
- Chorus One está trabajando en un cliente ligero Tendermint y un cliente ligero Substrate , ambos en Rust y diseñados para compilarse en WebAssembly y usarse con IBC
- Althea está trabajando en Peggy , un puente de la red Ethereum a una cadena de bloques basada en Cosmos SDK que, junto con IBC, unirá los ecosistemas Cosmos y Ethereum
- Agoric está trabajando en la integración de IBC en la plataforma Agoric para contratos inteligentes seguros escritos en Javascript
- ChainSafe está trabajando en la integración de IBC en Ethermint , lo que permitirá que las aplicaciones EVM se ejecuten en cadenas Tendermint y se conecten a la red Cosmos a través de IBC
- Cdot está trabajando en una implementación de IBC en Substrate (Rust), un cliente de GRANDPA , y mantiene traducciones al chino de las especificaciones de ICS
- Akash está ayudando con el mantenimiento y trabajando en funciones para el relé Golang
- Nomic está trabajando en un cliente de Bitcoin peg / sidechain y Tendermint light en JS
- Demasiados equipos para enumerar están ayudando a probar el software en redes de prueba incentivadas y a encontrar errores antes del lanzamiento
Direcciones futuras
La versión 1.0, junto con las versiones de software adicionales previstas para este año, marca un punto de inflexión en la trayectoria del desarrollo de IBC: en el futuro, la adopción exitosa de IBC como un estándar abierto y sin permiso estará determinada por las elecciones de blockchains soberanos, operadores y usuarios.
El protocolo central es solo el comienzo: la interoperabilidad entre aplicaciones a través de IBC también dependerá de los estándares de nivel de aplicación que describen paquetes particulares, codificación de datos y lógica de procesamiento (como ICS 20 e ICS 27) Implementaciones adicionales de IBC en diferentes lenguajes y marcos reducirán la barrera de entrada al ecosistema y permitirán la proliferación de una diversidad de casos de uso heterogéneos.
Los nuevos clientes ligeros y los procedimientos de verificación de estado permitirán diferentes algoritmos de consenso y máquinas de estado para hablar IBC. Las pilas de protocolos sobre IBC, como la validación entre cadenas , proporcionarán una funcionalidad avanzada y nuevos modelos de seguridad compuestos por las primitivas proporcionadas por el protocolo central.
Las versiones de protocolo posteriores a la 1.0 pueden incorporar garantías de orden causal alternativas , nuevos tipos de canales y enrutamiento automático de múltiples saltos.
El trabajo futuro sobre IBC será necesariamente un esfuerzo colectivo, emergente de un proceso de construcción de consenso y contribuciones de recursos por parte de una multitud de organizaciones e individuos. No podemos esperar a ver qué construirás.
Puede seguir el progreso de IBC en Github , Twitter , Discord o aquí en Medium .