En el mundo de blockchain, se extraen o crean cientos de miles de monedas y tokens en cada momento. Cada uno de ellos juega diferentes roles en el ecosistema. Para aumentar la liquidez y hacer que más personas participen, los intercambios no son solo proveedores de servicios sino también infraestructuras importantes. Los intercambios que controlan completamente los activos de los usuarios se denominan Intercambios centralizados (CEX). Por el contrario, los intercambios que comercializan los activos de los usuarios bajo reglas verificables y permiten a los usuarios reservar el control total sobre sus propios activos, se denominan intercambios descentralizados (DEX).
Para aumentar la liquidez, es necesario apoyar más pares comerciales. Los activos en un par comercial pueden o no pertenecer a la misma red. Cuando los activos son de diferentes cadenas, las cosas se vuelven un poco complicadas.
Como mencionamos en Cross-chain Explained: Business Vision, CEX proporciona una experiencia de usuario fluida al sacrificar un factor importante: la autoridad del usuario. Al hacerlo, los pedidos pueden coincidir actualizando la información de la cuenta, que no tiene que estar en la cadena. Solo cuando un usuario deposita o se retira del intercambio, la transacción se transmitirá a la red principal. Por lo tanto, actualizar la información en diferentes cadenas no es realmente un problema para CEX.
Sin embargo, debería haber una opción más ideal para lograr el comercio en la cadena de bloques. La fortaleza de DEX es hacer que el comercio se resuelva en función de la lógica de ejecución que se define en la cadena de bloques. Por lo tanto, cuando estamos intercambiando tokens ERC20, estos tokens pueden ser intercambiados por las reglas definidas en un contrato inteligente. Esta es también la forma en que funcionan los DEX en Ethereum. Al llegar al consenso sobre Ethereum, podemos obtener el único resultado de la ejecución.
¿Qué hay de los pares comerciales que no están en la misma red? Como mencionamos, la contabilidad de CEX se logra a través de la información en la base de datos. Los resultados se liquidan en cadena por voluntad de CEX. Al igual que cuando un grupo de personas de diferentes países que hablan diferentes idiomas, CEX es el intermediario que escucha la solicitud y les dice directamente a todos qué hacer. Por el contrario, DEX solo toma acciones basadas en reglas verificables y la información proporcionada. DEX debe actuar como coordinador, traducir y proporcionar la información al miembro del grupo y dejar que tome medidas. Por lo tanto, es necesario un mecanismo para permitir que las cadenas que participan en el comercio se comuniquen entre sí. Sin la comunicación entre cadenas, no se puede lograr una solución ideal para una cadena de bloques.
¿Cómo comunicarse entre diferentes redes? En otras palabras, ¿cómo definir la comunicación entre redes? Cada acción en una cadena se puede definir como una transición de estado. Para obtener el único resultado, necesitamos alcanzar un consenso entre todos los nodos en la cadena de bloques. Por lo tanto, podemos decir que la comunicación realmente está alcanzando un estado común dentro de un sistema. Por ejemplo, cuando intercambiamos tokens ERC20, esto se puede hacer de manera trivial ya que Ethereum ofrece un sistema de consenso para garantizar que los recursos se puedan sincronizar. Sin embargo, cuando hablamos de comunicación entre cadenas, lo que necesitamos es llegar a un consenso entre cadenas. Observe cuánto esfuerzo dedicamos a hacer que los nodos de la misma cadena se comuniquen y obtengan un estado coherente. Y ahora, de lo que estamos hablando es de llegar a un consenso con otra cadena. ¿Es eso realmente posible?
¿Cómo se puede llegar al consenso entre diferentes cadenas? La idea más directa es que hay un nodo que ejecuta clientes de diferentes redes, y el nodo es responsable de transmitir las transacciones que pueden influir en los estados dependientes. Sin embargo, confiar en un solo nodo puede ser peligroso, al igual que un servicio centralizado. Algunos proyectos intentan dar una solución general resolviendo este problema coordinándolo con una estructura descentralizada y una interfaz puente. Algunos proyectos simplemente usan un oráculo para lograr la sincronización y esperan que se desarrolle una solución ideal.
¿Hay otras opciones en lugar de sincronizar los estados con otro sistema de consenso? Otra idea es sincronizar el estado haciendo que las transacciones que cambian de estado se ejecuten simultáneamente. Si es así, podemos decir que el estado del servicio permanece sincronizado, aunque la acción podría tener lugar en diferentes redes. Esto parece práctico y más ligero, ya que no requiere otro sistema de consenso. Cuando el resultado de la ejecución fuera de la cadena necesita ser devuelto a la cadena, ¿cómo se puede garantizar la sincronía dentro y fuera de la cadena? Si esto es aplicable, ¿cómo aplicarlo a diferentes cadenas? Si somos capaces de lidiar con todos estos problemas, la idea de una solución ligera para la interoperabilidad sin confianza que sea aplicable para DEX está en camino.