Introducción a la interoperabilidad de Blockchain

¿Por qué es importante la interoperabilidad?

Los sistemas distribuidos tienen que hacer concesiones para funcionar eficazmente en un entorno asincrónico como Internet, uno sin un reloj global para definir el orden de los eventos. Las redes basadas en blockchain, diseñadas para tener un valor inmenso, también deben protegerse contra actores maliciosos o bizantinos. A nivel de consenso, estas compensaciones pueden incluir limitar el número de nodos participantes para proporcionar un orden coherente de eventos entre ellos (como en DPOS, algos PBFT), o adoptar una vista probabilística del orden para asegurar el funcionamiento continuo de la red. (Consenso de Nakamoto). A nivel de aplicación, existen compensaciones en torno a la expresividad de las capacidades de programación de una red blockchain, ya que el tamaño de su espacio de diseño se correlaciona con el tamaño de su superficie de ataque. La lista continúa…

El punto es que no existe una solución única para todas las cadenas de bloques y cada combinación distinta de diseños ofrece diferencias en seguridad, privacidad, eficiencia, flexibilidad, complejidad de la plataforma, facilidad de uso para desarrolladores e incluso valores políticos. . Habrá momentos en que algunas propiedades sean más beneficiosas que otras; por ejemplo, enviar un pago de $ 1 millón requiere un nivel diferente de seguridad y escalabilidad que enviar un millón de pagos de $ 0.01, y un conjunto de características diferente al de emitir un objeto coleccionable digital en un videojuego. La Internet del valor, entonces, será más útil si se adapta al espectro completo de casos de uso, algo que puede ser imposible, y es al menos poco práctico, con una sola cadena de bloques.

Para contextualizar esto: Bitcoin no puede hablar el idioma de Ethereum y viceversa. Esto significa que no podemos gastar bitcoins en la red Ethereum, ni podemos hacer uso de los contratos inteligentes de Ethereum en la red Bitcoin. A medida que las cadenas de bloques avanzan hacia el futuro en cantidades cada vez mayores, crece la necesidad de interoperabilidad.

Una fuerte interoperabilidad podría proteger a los usuarios de las compensaciones que hacen las cadenas de bloques y permitirles aprovechar indistintamente las optimizaciones de diferentes mecanismos de consenso y máquinas virtuales, en muchos casos descargando tareas que se realizan mejor en otras cadenas y permitiendo que cada una centrarse en sus competencias básicas. Si terminamos en un mundo de muchas cadenas de bloques, la interoperabilidad puede hacerlas más útiles, fáciles de usar, eficientes y escalables.

Entonces, ¿cómo logramos la interoperabilidad?

Primero, para describir cómo obtenemos interoperabilidad, debemos ser un poco más específicos sobre lo que significa. En este contexto, la interoperabilidad se puede dividir en dos categorías:

El intercambio de activos digitales puede significar varias cosas, así que llamémoslo la capacidad de transferir e intercambiar activos que se originan en diferentes cadenas de bloques, sin intermediarios confiables (por ejemplo, intercambios centralizados). Esta funcionalidad se puede construir sobre cadenas de bloques que tienen capacidades de programación bastante simples, ya que los usuarios de ambos lados pueden producir fácilmente firmas verificables públicamente para acciones que permiten transferencias atómicas, o transferencias que solo se completan si ambos lados hacen su parte.

El intercambio de datos arbitrarios (un superconjunto de intercambio de activos digitales) se puede considerar como la capacidad de realizar llamadas API avanzadas de blockchain a blockchain, que pueden llegar a tener un código de contrato inteligente en una cadena para verificar la finalidad del consenso de eventos en otras cadenas directamente. Esta capacidad nos permite usar datos en una cadena para efectuar cambios de estado en otra, como en el ejemplo anterior. También nos permite crear versiones sintéticas en una cadena de un activo que alberga a otra cadena, lo que hace que ese activo sea utilizable en una máquina de estado que ocupa una parte diferente del espacio de compensación. Este es el tipo de interoperabilidad más difícil, ya que la mayoría de las cadenas de bloques son sistemas pasivos que no pueden producir una firma que otros puedan verificar fácilmente y, por lo tanto, necesitan pruebas más complejas sobre su estado para que las personas externas las entiendan. Sin embargo, esta categoría de interoperabilidad puede permitir una gama más amplia de casos de uso que la transferencia de valor por sí sola.

Hay proyectos interesantes en ambas categorías, algunos centrados únicamente en la transferencia de valor y otros con ambiciones más amplias de desbloquear la comunicación entre cadenas. Al igual que las propias cadenas de bloques, estos proyectos hacen su propio conjunto de compensaciones, principalmente con respecto a sus niveles de minimización de la confianza y compatibilidad con las redes existentes. Vale la pena señalar de antemano que estas no son soluciones mutuamente excluyentes y, en muchos casos, pueden integrarse entre sí.

Como señala Vitalik en este documento sobre interoperabilidad en cadena, existen tres enfoques técnicos principales para lograr la interoperabilidad:

Me referiré brevemente a los esquemas notariales, pero me centraré un poco más en los proyectos que implementan relés y contratos de bloqueo de tiempo hash.

Esquemas notariales

Los esquemas de notario emplean una federación confiable para dar fe de los eventos en otra cadena. Esta federación verificará a la cadena A que se produjo un evento en la cadena B o que alguna declaración sobre la cadena B es cierta. Los notarios llegarán a un acuerdo a través de algún algoritmo de consenso y luego emitirán una firma que se puede utilizar para finalizar los pagos en la cadena A condicionada a este consenso. Este tipo de esquema se puede utilizar para implementar lo que se conoce como una cadena lateral vinculada federada , donde la federación tendrá el control de una dirección multisig en la cadena A, de modo que los activos bloqueados en la multisig puedan emitirse sintéticamente en la cadena lateral (cadena B), lo que los hace utilizables en una máquina de estado diferente. Esto se ha implementado en Liquid, una cadena lateral respaldada por BTC creada por Blockstream, que hace posible gastar bitcoins sintéticos en un libro mayor que tiene la funcionalidad de emitir nuevos activos digitales.

Los esquemas de notarios son una de las formas más sencillas de lograr el conjunto completo de interoperabilidad entre cadenas, sin embargo, tienen el costo de depositar la confianza en una federación de notarios. Son útiles en la medida en que su modelo de confianza sea aceptable, una premisa que puede limitar su escalabilidad social, un concepto descrito por Nick Szabo como quizás la ventaja más valiosa de las cadenas de bloques sobre los métodos tradicionales de mantenimiento de registros.

<×Relays

En lugar de tener una federación que verifique eventos en otra cadena, los relés permiten que las cadenas hagan esto por sí mismas. Un relé es un contrato en la cadena A que funciona como un cliente ligero de la cadena B, utilizando el procedimiento de verificación estándar de la cadena B para verificar los encabezados de bloque incluidos en el contrato. Esto le da a la cadena A la capacidad de comprender los cambios de eventos en la cadena B, una capacidad que se puede utilizar para crear muchas aplicaciones interesantes entre cadenas. Por ejemplo, BTCRelay es un contrato inteligente en Ethereum que puede leer la cadena de Bitcoin. Se ha utilizado para crear aplicaciones como EthereumLottery, donde la lotería utilizó encabezados de bloques de Bitcoin como fuente de aleatoriedad. Sin embargo, con BTCRelay, la interoperabilidad es unidireccional; Bitcoin no puede leer la cadena Ethereum ya que no existe un contrato de retransmisión Ethereum en Bitcoin.

Varios proyectos están trabajando en arquitecturas de relés que permiten la interoperabilidad bidireccional entre cadenas, a través de un eje central llamado cadena de relés . Las cadenas de retransmisión son cadenas de bloques distintas que funcionan como clientes ligeros para cadenas de bloques “miembros” conectadas. Las cadenas de miembros pueden aprovechar la información de otras cadenas enviando mensajes a través de la cadena de retransmisión, que rastrea parte del estado de todas las cadenas conectadas y se les puede otorgar un grado de control sobre los activos de esas cadenas. Por ejemplo, una cadena miembro podría dar a los validadores de la cadena de retransmisión el control sobre una dirección de múltiples firmas que bloquea ciertos activos, y esos activos podrían luego representarse sintéticamente en otra cadena miembro. Esto permitiría que cualquier cadena miembro ejecute transacciones en su propia máquina de estado utilizando las versiones sintéticas de activos de diferentes libros de contabilidad locales.

Las arquitecturas de cadenas de relés funcionan mejor con cadenas que tienen ciertas características, incluida la capacidad flexible de múltiples firmas y la finalidad de consenso rápida, y como tales, están creando conjuntos de herramientas de desarrollo de software que facilitan a los desarrolladores la creación de este tipo de cadenas de bloques.

Los esfuerzos más destacados en esta área son Cosmos y Polkadot, que ofrecen Cosmos SDK y Substrate SDK, respectivamente. Estos SDK manejan redes básicas y lógica de consenso, lo que permite a los desarrolladores centrarse en implementar la lógica empresarial en lugar de verse empantanados por las complicaciones de construir una cadena de bloques. Las cadenas de bloques resultantes son fácilmente compatibles con todas las demás cadenas de bloques construidas con el mismo SDK, que en última instancia puede crear un entorno en el que muchas cadenas con lógica de transición de estado diferente son interoperables entre sí.

Las mayores diferencias entre Polkadot y Cosmos radican en las responsabilidades de sus cadenas de relés y el entorno de composición que ofrecen a los desarrolladores. Polkadot tiene una cadena de retransmisión más compleja donde los validadores son responsables de la validez y disponibilidad de los bloques de la cadena de miembros. Debido a que la red en su totalidad puede verse como una máquina de estado unificada, permite API completas de blockchain a blockchain y proporciona a cada cadena miembro una capa de seguridad compartida. Esto también simplifica los procesos de actualización.

Cosmos, por otro lado, tiene una cadena de retransmisión más simple en la que los validadores no son responsables de la validez o disponibilidad de los bloques de la cadena de miembros, dejando la seguridad a las propias cadenas de miembros y proporcionando interoperabilidad entre ellas de forma ad hoc. La cadena de retransmisión de Cosmos admite el envío de pruebas que llevan objetos entre cadenas en lugar de llamadas arbitrarias de función de cadena de bloques a cadena de bloques. Esto significa que inicialmente se limitará a intercambios de valor entre cadenas, pero luego puede ampliar su funcionalidad para realizar operaciones entre cadenas más complejas. Sin embargo, al limitar las responsabilidades de su cadena de retransmisión, Cosmos proporciona una mayor flexibilidad a los desarrolladores a la hora de diseñar sus máquinas de estado.

La desventaja de la arquitectura de retransmisión es que es muy difícil conectar cadenas de bloques existentes que no tienen las características deseadas, incluidos Bitcoin y Ethereum. Cosmos y Polkadot utilizan variantes de prueba de participación (POS) y la familia de algoritmos de consenso Practical Byzantine Fault Tolerant (PBFT), que limitan el número de nodos que participan activamente en el consenso a cambio de un mayor rendimiento y una rápida finalidad del consenso. Estos son mecanismos experimentales y deberán probarse exhaustivamente en la naturaleza antes de que podamos confiar en su capacidad para proporcionar suficiente seguridad. A la luz de esto, Cosmos y Polkadot presentan nuevos paradigmas potencialmente ventajosos para construir redes de cadenas de bloques en lugar de soluciones dirigidas a cadenas de bloques existentes.

Cronogramas hash

El enfoque técnico más práctico para la interoperabilidad es, como era de esperar, también el más limitante en términos de funcionalidad. Un contrato de bloqueo de tiempo con hash (HTLC) es una clase de pagos basados ​​en blockchain que utiliza bloqueos de control y bloqueo de tiempo para requerir que el receptor de un pago acuse recibo antes de una fecha límite o pierda la capacidad de reclamar el pago y se lo devuelva al pagador. Los HTLC permiten intercambios atómicos entre cadenas y canales de pago bidireccionales totalmente financiados entre activos en ciertos tipos de cadenas de bloques.

El uso más destacado de HTLC se encuentra en Lightning Network (LN), un protocolo que permite micropagos de gran volumen y baja latencia sin la necesidad de intermediarios de confianza. LN utiliza HTLC para crear una red de canales de pago, donde las transacciones se ejecutan fuera de la cadena y los saldos netos se pueden liquidar en cualquier momento en las cadenas de bloques subyacentes. LN se ve principalmente como una solución de escalado para Bitcoin, pero debido a que los HTLC permiten intercambios atómicos entre cadenas, también puede permitir el intercambio de valor entre cadenas de bloques conectadas. Sin embargo, estas cadenas de bloques deben ser estructuralmente similares a Bitcoin, y LN actualmente solo es compatible con Bitcoin y Litecoin.

El Protocolo Interledger (ILP) extiende este concepto más allá de las cadenas de bloques a cualquier red de pago arbitraria. En lugar de utilizar HTLC reales para construir canales de pago totalmente financiados, ILP utiliza una versión resumida de la misma lógica que no se basa en el soporte nativo de la red subyacente para HTLC. ILP es una red de entidades llamadas conectores que manejan los cambios de divisas y enrutan los pagos a través de canales de pago entre sí. ILP se aparta más notablemente de LN al permitir que los conectores se extiendan crédito entre sí, incurriendo en algún riesgo de contraparte para aumentar su ancho de banda de pago, pero manteniendo la flexibilidad para liquidar saldos netos en la cadena de forma intermitente para garantizar el pago. Es importante destacar que el protocolo se asegura de que todo riesgo de contraparte sea asumido exclusivamente por los conectores y aislado de los usuarios finales.

ILP simplifica la transferencia de valor entre redes de pago mediante el envío de pagos en pequeños paquetes a través de la ruta más eficiente de conectores hasta que llegan a su destino. Los conectores son similares a los traductores que pueden elegir entre qué idiomas traducirán; es como si un mensaje se ingresara en inglés, se dividiera en palabras y se enrutara a través de una red de traductores para, finalmente, volver a ensamblarse y emitirse en chino. Esto permite que la red trate todos los paquetes de valor de manera similar, trazando paralelismos con la forma en que Internet enruta los paquetes de datos y, en última instancia, habilitando la transmisión de pagos y microtransacciones en cualquier moneda, algo que ninguna cadena de bloques o red de pago puede lograr actualmente.

ILP es un protocolo neutral y no es necesario realizar configuraciones en las redes que están conectadas a él. Esto significa que ILP puede servir como una capa de transferencia de valor no solo entre Bitcoin y Ethereum, sino también entre Bitcoin y las redes y aplicaciones de pago tradicionales como SWIFT y Venmo. Sin embargo, el diseño simple y neutral de ILP requiere que su funcionalidad se limite a la transferencia de valor.

<×Conclusion

En esta publicación, cubrí por qué la interoperabilidad está ganando importancia, analicé los principales tipos de interoperabilidad y di una breve introducción de alto nivel a algunos de los proyectos clave que están trabajando para hacer que las cadenas de bloques se comuniquen de la manera más efectiva posible. Cada enfoque por el que pasé conlleva un conjunto diferente de capacidades y limitaciones.

Los esquemas notariales son el enfoque más centralizado de los tres, pero son relativamente fáciles de implementar y pueden ofrecer todo el espectro de interoperabilidad. Los relés ofrecen capacidades similares en un entorno de menor confianza, pero tienen inconvenientes en términos de compatibilidad con las redes existentes; en última instancia, presentan una dirección alternativa para la evolución de las cadenas de bloques. Los HTLC representan el enfoque más práctico y menos confiable de los tres, pero tienen un alcance limitado al intercambio de valor y no se pueden utilizar para crear representaciones sintéticas de activos en diferentes libros de contabilidad.

El impacto a corto plazo más viable e importante de la interoperabilidad, sin embargo, es posiblemente en la categoría de intercambio de valor, ya que el dinero programable es la primera aplicación asesina real de blockchains. Por esta razón, espero que los enfoques basados ​​en HTLC (Lightning Network, Interledger) sean los primeros en ganar tracción. De hecho, estas redes pueden ser los catalizadores que finalmente hagan que las criptomonedas sean utilizables a gran escala. Las cadenas de relés, por otro lado, pueden tener un mayor impacto en la forma en que se construyen nuevas cadenas de bloques en el futuro. Es importante destacar que ninguno de estos enfoques se excluye mutuamente. De hecho, Interledger es compatible con Lightning Network, Cosmos y Polkadot, y Cosmos y Polkadot pueden construir puentes entre ellos. Este entrelazamiento de redes basadas en blockchain es posible gracias a su dependencia de firmas digitales y pruebas criptográficas, lo que permite un vínculo estrecho entre las redes de pago que, en última instancia, puede ser lo que define la Internet del valor.

Gracias a Spencer Bogart , Evan Schwartz y Zaki Manian para comentarios y discusiones útiles.