El ciclo de vida de una cadena lateral en el ecosistema Lisk
Esta es la próxima edición de la serie de publicaciones del blog que cubre los detalles de la solución de interoperabilidad Lisk. En la publicación anterior del blog discutimos los principales bloques fundamentales: árboles de Merkle dispersos y el modelo de estado de las cadenas de bloques interoperables. Aquí, cubrimos el ciclo de vida de una cadena lateral en el ecosistema Lisk.
Antes de profundizar en el tema en sí, debemos actualizar un par de conceptos que son fundamentales para la solución de interoperabilidad Lisk. Estos conceptos se introdujeron por primera vez en una publicación de blog anterior , junto con una descripción general de alto nivel de toda la solución. Aunque serán el foco de las próximas ediciones de esta serie de publicaciones de blog, por ahora solo necesitamos conocer su definición general:
- Certificados : los certificados contienen información de encabezados de bloque finalizados que están firmados por una gran parte de validadores de una determinada cadena y, por lo tanto, autentican un estado finalizado de esa cadena. Son los componentes fundamentales del paradigma de certificación entre cadenas para el ecosistema Lisk.
- Transacciones de actualización entre cadenas : abreviadas como CCU , las transacciones de actualización entre cadenas son los portadores de la información transmitida entre cadenas en el ecosistema Lisk. Llevan información sobre los cambios de estado de la cadena de envío a la cadena de recepción. En particular, contienen un certificado de la cadena de envío. Las CCU también pueden incluir mensajes entre cadenas y, por lo tanto, servir como un sobre para los mensajes de una cadena a otra.
- Mensajes de cadena cruzada : abreviado como CCM , los mensajes de cadena cruzada son el método estándar para la comunicación de cadena cruzada entre usuarios en el ecosistema Lisk. Se emiten como resultado del procesamiento de ciertas transacciones y luego se incluyen dentro de una CCU. Por ejemplo, cuando desea transferir algunos tokens de una cadena a otra, envía una transacción de transferencia de tokens entre cadenas en la cadena de envío que luego emite un mensaje de transferencia de tokens entre cadenas.
Las tres etapas del ciclo de vida de la cadena lateral
Desde su inicio hasta su posible terminación, una cadena lateral puede pasar por tres etapas, correspondientes a tres estados, en el contexto de la interoperabilidad dentro del ecosistema Lisk.
Estos son los siguientes:
- Conexión al ecosistema : El proceso de registro de la cadena lateral. La cadena lateral tiene el estado "registrado".
- La fase activa : la fase de interoperabilidad real, donde la cadena lateral puede intercambiar información con otras cadenas en el ecosistema. Aquí, el estado de la cadena lateral es "activo".
- Desconexión del ecosistema : la terminación de la cadena lateral cuando el estado de la cadena lateral se actualiza a "terminado".
En las siguientes subsecciones, cubrimos cada una de estas etapas y aprendemos sobre las condiciones para que una cadena lateral progrese en su ciclo de vida. Cabe mencionar que antes de entrar en la primera etapa, asumimos que la cadena lateral ya ha pasado por su fase de desarrollo. Más específicamente, el bloque de génesis de esta cadena lateral ya está creado y un cierto conjunto de validadores establecido y fijo. Estos validadores son los validadores iniciales de la cadena lateral .
En este punto, estos validadores iniciales de la cadena lateral ya pueden comenzar a agregar bloques en la parte superior del bloque de génesis. Las cadenas laterales tienen la flexibilidad de conectarse al ecosistema Lisk desde cualquier punto en adelante. Por lo tanto, está totalmente bien si la cadena lateral ya se ha estado ejecutando de forma independiente durante meses. En principio, es posible que una cadena lateral nunca se conecte al ecosistema y se ejecute como un proyecto aislado, pero en este caso no calificará como una cadena lateral, solo una simple cadena de bloques.
Conexión al ecosistema
Una vez que se crea el bloque de génesis y se establecen los validadores iniciales, la cadena lateral está lista para conectarse al ecosistema Lisk. La conexión es un proceso de dos pasos. En primer lugar, la cadena lateral debe registrarse en la cadena principal de Lisk y, en segundo lugar, la cadena principal de Lisk debe registrarse en la cadena lateral.
Proceso de registro de la cadena lateral
La cadena lateral se registra en la cadena principal mediante el envío de una transacción de registro de la cadena lateral en la cadena principal de Lisk. Esta transacción contiene información básica sobre la cadena lateral y cualquier usuario puede enviarla.
Contiene la siguiente información:
- Nombre de la cadena lateral : cada cadena del ecosistema Lisk tiene un nombre, que tiene que ser único. Con él, los usuarios pueden identificar fácilmente las cadenas.
- ID del bloque de génesis de la cadena lateral : el ID del bloque de génesis de la cadena lateral. El identificador de red de la cadena lateral se calcula utilizando estos datos.
- Validadores iniciales : el conjunto inicial de validadores de la cadena lateral. Esta información se utiliza para validar la primera CCU de la cadena lateral.
Cuando se procesa esta transacción, se crea una cuenta de cadena lateral en el estado de cadena principal. Efectivamente, esta cuenta de cadena lateral es una colección de pares clave-valor en el almacén de estado de la cadena principal que contiene toda la información necesaria para interoperar con la cadena lateral recién registrada. Cubriremos cómo la cuenta de cadena lateral permite la validación y el procesamiento de transacciones y mensajes entre cadenas en las próximas ediciones de la serie de publicaciones de blog sobre interoperabilidad. Por ahora, veamos algunos de los principales aspectos definitorios.
Figura 1: La transacción de registro de la cadena lateral T está incluida en la cadena principal. Como resultado, la cuenta de la cadena lateral se crea en el estado de la cadena principal con su estado establecido en "registrado".
ID de cadena
El ID de cadena identifica de forma única una cadena en el ecosistema Lisk. Tiene un propósito similar para las cadenas que las direcciones para las cuentas de usuario, identificando la cadena de envío y la cadena de recepción en cada interacción entre cadenas. El ID de cadena para una cadena lateral se asigna como un entero incremental, similar a los nonces de transacciones . Por ejemplo, si ya hay 41 cadenas registradas en el ecosistema Lisk (la cadena principal y 40 cadenas laterales), la siguiente cadena lateral registrada tendrá un ID de cadena igual a 42.
El formato de los ID de cadena proporciona una forma eficiente y compacta de identificar de forma única las cadenas en el ecosistema. Los usuarios pueden recordar fácilmente la identificación de la cadena de sus aplicaciones favoritas de blockchain.
Identificador de red
El identificador de red es una secuencia de bytes única de una cadena que debe anteponerse a la entrada de la función de firma de cada transacción, bloque o mensaje genérico de la cadena. Es necesario evitar repeticiones de transacciones entre diferentes cadenas del ecosistema. En el ecosistema Lisk, el identificador de red de una cadena lateral se calcula como el resumen de hash del ID de su bloque de génesis y la dirección de la cuenta de usuario que envía la transacción de registro. De esta manera, se puede calcular previamente antes del registro de la cadena lateral real si es necesario.
Nombre
El nombre de la cadena lateral como se indica en la transacción de registro de la cadena lateral.
Estado
Una cadena lateral puede estar en uno de los tres modos de estado: "registrado", "activo" y "terminado". Estos corresponden a las tres etapas del ciclo de vida. La cuenta de la cadena lateral se establece automáticamente como "registrada" cuando se crea.
Última raíz estatal certificada
La última raíz de estado certificada contiene la raíz del árbol de estado de la cadena lateral establecida por la última CCU publicada en la cadena principal. Como se explicó en la publicación del blog anterior , la raíz del estado se usa durante el procesamiento de las CCU para autenticar los CCM de la cadena lateral.
Última altura certificada
La última altura certificada contiene la altura del certificado en la última CCU publicada desde la cadena lateral.
Última marca de tiempo certificada
La última marca de tiempo certificada es la marca de tiempo de la última CCU publicada desde la cadena lateral. Se utiliza para verificar que la cadena de socios cumpla con el requisito de vida que se discutirá a continuación .
Validadores
El conjunto de validadores de la cadena lateral actuales que son los que se espera que firmen el certificado contenido en la siguiente CCU de la cadena lateral. Inicialmente, esta propiedad contiene los validadores iniciales de la transacción de registro.
Bandeja de entrada y bandeja de salida
Las estructuras de la bandeja de entrada y la bandeja de salida se utilizan para realizar un seguimiento de los CCM entrantes y salientes intercambiados con la cadena lateral. Para lograr esto, los CCM se insertan en árboles Merkle regulares , lo que permite probar de manera eficiente que un determinado CCM se recibió (en la bandeja de entrada) o se envió (en la bandeja de salida).
Proceso de registro de Mainchain
Una vez que la cadena lateral está registrada en la cadena principal, se realiza un proceso análogo en la cadena lateral para registrar la cadena principal, utilizando la transacción de registro de la cadena principal . A diferencia del registro de la cadena lateral, que puede ser enviado y firmado por cualquier persona, esta transacción debe ser firmada por una gran mayoría de los validadores de cadena lateral actualmente activos. En otras palabras, esta transacción requiere la aprobación de los validadores de sidechain y deben estar de acuerdo con la información que se inserta en ella.
Contiene las siguientes propiedades:
- Nombre propio de la cadena lateral: el nombre asignado a esta cadena lateral por la transacción de registro de la cadena lateral.
- ID de cadena propia de la cadena lateral: la identificación de la cadena asignada a esta cadena lateral por la transacción de registro de la cadena lateral.
- Validadores de la cadena principal : de forma similar a los "validadores iniciales" anteriores , se espera que estos validadores firmen el certificado contenido en la siguiente CCU de la cadena principal.
El efecto de procesar esta transacción es similar al presentado anteriormente. Por un lado, la cadena lateral "se da cuenta" del nombre y el ID de la cadena que se le asignó en la cadena principal. Esto es especialmente importante para la identificación de la cadena, ya que la cadena lateral necesita conocer su propia identificación de la cadena para poder procesar correctamente las CCU y CCM dirigidas a esta cadena lateral.
Por otro lado, la cuenta de la cadena principal se crea en el estado de la cadena lateral. La estructura y las propiedades son las mismas que en el caso anterior, pero la información se refiere a la cadena principal de Lisk. En particular, la propiedad de los validadores se establece en los validadores de la cadena principal establecidos en la transacción. De esta manera, la cadena lateral está lista para recibir la primera CCU de la cadena principal.
La fase activa
Al final del proceso de registro de la cadena lateral, la cadena lateral tiene el estado "registrado". Aunque ya es parte del ecosistema Lisk, los usuarios aún no pueden intercambiar CCM con esta cadena lateral de otras cadenas. Para ello, es necesario activar la cadena lateral, lo que sucederá efectivamente cuando se publique la primera CCU en la cadena principal. Cualquiera puede publicar esta CCU, que contendrá un certificado firmado por el conjunto de validadores de sidechain iniciales. Posteriormente, una CCU que contiene un certificado firmado por los validadores de la cadena principal (establecido en la transacción de registro de la cadena principal), debe publicarse en la cadena lateral para activar la cuenta de la cadena principal.
Figura 2: La primera CCU, firmada por los validadores iniciales de la cadena lateral, se incluye en la cadena principal y establece el estado de la cuenta de la cadena lateral en "activa". A partir de este momento, los usuarios pueden intercambiar CCM con la cadena lateral.
A partir de este punto, la cadena lateral estará activa en el ecosistema y podrá intercambiar CCM con cualquier otra cadena activa en el ecosistema. Los detalles de cómo funciona esto serán el tema de las próximas publicaciones del blog de esta serie.
Desconexión del ecosistema
En circunstancias normales, una cadena lateral permanecerá permanentemente en la fase activa. Sin embargo, ciertos proyectos pueden abandonarse o implementarse con fallas críticas que los inutilizarán (esto no es motivo de preocupación, ya que las otras cadenas en el ecosistema Lisk no se verán afectadas. En la certificación de cadena cruzada, la seguridad y la vitalidad de una cadena es independiente de los demás). Para abordar esta situación, se puede terminar una cadena lateral. Este proceso desconecta efectivamente la cadena lateral del ecosistema Lisk y activa ciertos mecanismos que permiten a los usuarios recuperar sus fondos de la cadena lateral.
Figura 3: La cadena principal no ha recibido ninguna CCU de la cadena lateral en los últimos 30 días. Como consecuencia, el estado de la cuenta de la cadena lateral se establece en "terminado" y la cadena lateral se desconecta efectivamente del ecosistema Lisk.
La condición principal para que una cadena lateral permanezca activa es el requisito de vida : las cadenas laterales deben publicar CCU en la cadena principal al menos una vez cada 30 días. Si una cadena lateral rompe el requisito de vida, es decir, no ha publicado una CCU en los últimos 30 días, el estado de su cuenta en la cadena principal se actualizará a "terminado" y, a partir de este punto, todas las CCU y CCM desde o hacia esta cadena lateral serán rechazado.
Supongamos ahora que una cadena lateral que contiene algunos LSK y muchos otros tokens y NFT de otras cadenas laterales está terminada. Anteriormente dijimos que ya no se puede acceder a una cadena lateral terminada desde ninguna cadena en el ecosistema Lisk. Entonces, ¿cómo los propietarios de todos estos fondos y coleccionables recuperan el acceso a sus activos? Sería injusto para ellos simplemente perder el control de los activos, ya que no son responsables de la terminación de la cadena lateral. Esta situación es donde entran en juego las transacciones de recuperación de la cadena lateral . Estas transacciones permiten a los usuarios reclamar sus tokens, NFT o, en general, cualquier activo que se envió a la cadena lateral antes de su terminación.
Hay dos transacciones de recuperación, transacciones de recuperación de mensajes y transacciones de recuperación de estado. Los principales casos de uso proporcionados por estas transacciones son los siguientes:
- En la cadena principal de Lisk:
- Los usuarios pueden recuperar un CCM pendiente de la bandeja de salida de la cuenta de la cadena lateral enviando una transacción de recuperación de mensajes . Los MCP pendientes son aquellos MCP que aún no se han incluido en la cadena lateral receptora.
- Los usuarios pueden recuperar tokens LSK que tenían en una cadena lateral terminada enviando una transacción de recuperación de estado .
- En cadenas laterales:
- Los usuarios pueden recuperar cualquier token que tuvieran en una cadena lateral terminada enviando una transacción de recuperación de estado .
- Los usuarios pueden recuperar cualquier NFT que tuvieran en una cadena lateral terminada enviando una transacción de recuperación de estado.
- Ciertos módulos personalizados permiten a los usuarios recuperar datos arbitrarios almacenados en la cadena lateral terminada mediante el envío de una transacción de recuperación de estado . En este sentido, recuperar significa que se activa cierta lógica de protocolo en la cadena lateral.
Estas transacciones pueden ser enviadas por cualquier usuario y no requieren ninguna confianza en otros participantes de la red. Básicamente, el principio de funcionamiento principal para ambas transacciones es demostrar que cierta información (por ejemplo, el saldo del token de un usuario, un CCM, un NFT, etc.) formaba parte del árbol de la bandeja de salida de la cadena lateral o del árbol de estado de la cadena lateral. En una futura publicación de blog, cubriremos en detalle cómo funcionan estas transacciones y cuáles son los requisitos para una recuperación exitosa.
Conclusión y próximos pasos
En esta publicación de blog, hemos cubierto las tres etapas del ciclo de vida de una cadena lateral. Estas etapas determinan los procesos y las condiciones para que una cadena lateral se conecte al ecosistema Lisk, se vuelva interoperable y permanezca interoperable continuamente. Sin embargo, no discutimos en detalle el marco de comunicación entre cadenas de Lisk ni ninguna de sus características. Este será el tema principal de los números entrantes de esta serie de publicaciones de blog. Si desea saber más sobre la certificación entre cadenas, cómo los CCM pueden transferir tokens y NFT, o cómo funcionan realmente las transacciones de recuperación, le recomendamos que no se los pierda.
Las especificaciones técnicas del tema tratado en esta publicación de blog se pueden encontrar en nuestro foro de Lisk Research. En particular, los LIP “Propiedades, serialización y valores iniciales del módulo de interoperabilidad” , “Registro en cadena” y “Transacciones de recuperación de cadena lateral ” definen los conceptos principales en torno al ciclo de vida de una cadena lateral. Estos LIP, junto con otros 10 LIP que describen la solución de interoperabilidad, se publicaron y propusieron recientemente para el protocolo Lisk. La comunicación entre cadenas entre blockchains sigue siendo un área de investigación nueva y abierta, por lo que nos complace recibir comentarios técnicos, sugerencias o preguntas sobre nuestro enfoque en el foro de Lisk Research .
Fuente: blog de Lisk