State Channels, otro camino a la escalabilidad

Introducción

Los state channels son una forma muy amplia y simple de pensar sobre las interacciones de la blockchain que podrían ocurrir dentro de la misma, pero en cambio se llevan a cabo fuera de la blockchain, sin aumentar significativamente el riesgo de ningún participante. 

El ejemplo más conocido de esta estrategia es la idea de los canales de pago en Bitcoin, que permiten que los pagos instantáneos sin comisiones se envíen directamente entre dos partes.

Entendiendo ¿Qué es un State Channel?

Los state channels son muy similares al concepto de canales de pago en la Lightning Network de Bitcoin, pero en lugar de sólo admitir pagos, también admiten "actualizaciones de estado" generales. Por ejemplo, los usuarios pueden depositar fondos en un contrato y firmar actualizaciones de estado que representan los movimientos realizados. Más tarde, sólo el resultado final se transmitirá a la red una vez que esté terminado. Esto permite que las aplicaciones "muevan" transacciones fuera de la cadena, aumentando la utilidad de la red en su conjunto. Adicionalmente, estos movimientos se realizan de forma casi instantánea y con unos costos por comisión mucho menor. 

Como ya se mencionó, los state channels son una forma general de canales de pago, aplicando la misma idea a cualquier tipo de operación de alteración del estado que se realiza normalmente en una blockchain. Sacar estas interacciones de la cadena sin requerir ninguna confianza adicional puede conducir a importantes mejoras en costo y velocidad. Así, los state channels son una parte fundamental del escalado de las tecnologías blockchain para admitir niveles más altos de uso.

¿Cómo funcionan los State Channels?

Los state channels funcionan "bloqueando" una parte del estado de la blockchain en un contrato de firma múltiple, controlado por un conjunto definido de participantes. El estado que está "encerrado" se llama depósito estatal. Por ejemplo, esto podría ser una cantidad de Ether o un token ERC-20, pero también podría ser un CryptoKittie o un nombre de dominio ENS.

Una vez que el depósito estatal está bloqueado, los participantes del canal utilizan la mensajería fuera de la cadena para intercambiar y firmar transacciones Ethereum válidas sin implementarlas en la cadena. Estas son como transacciones que se pueden poner en cadena en cualquier momento, pero no lo son.

Un desglose básico

Un desglose básico del funcionamiento de esta tecnología sería el siguiente:

  1. Parte del estado de la blockchain está bloqueado mediante firma múltiple o algún tipo de contrato inteligente. Así, un conjunto específico de participantes debe estar completamente de acuerdo entre sí para actualizarlo.
  2. Los participantes actualizan el estado entre ellos mediante la construcción y firma de transacciones que podrían enviarse a la blockchain. Pero estos cambios no pasan a la blockchain directamente, sino que los cambios se superponen hasta que termina la interacción.
  3. Finalmente, los participantes envían el estado de nuevo a la blockchain, que cierra el canal de estado y desbloquea el estado nuevamente (generalmente en una configuración diferente a la que comenzó).

Dado que todas las transacciones intercambiadas son igualmente válidas en lo que respecta a la blockchain, los state channels necesitan un mecanismo para garantizar que el último estado fuera de la cadena (es decir, el último movimiento en nuestro juego de ajedrez) sea el que finalmente se resuelva en la cadena. 

Emisión final del estado

Por lo tanto, si una parte intenta cerrar unilateralmente un canal, otras partes del canal tienen un cierto período (una "ventana de disputa") en el cual tienen la oportunidad de presentar un estado más reciente, probando así que se intentó el fraude. Una vez que se prueba una infracción, el contrato maneja el proceso de resolución, que generalmente implica castigar a la parte culpable recortando sus fondos depositados (aunque también se podría simplemente actualizar al estado válido y proceder en consecuencia).

Si el "estado" que se actualiza entre los participantes fuera un saldo de moneda digital, entonces tendríamos un canal de pago. Los pasos 1 y 3, que abren y cierran el canal, involucran operaciones de blockchain. Pero en el paso 2 se puede realizar rápidamente un número ilimitado de actualizaciones sin la necesidad de involucrar a la blockchain en absoluto, y aquí es donde entra en juego el poder de los state channels, porque solo los pasos 1 y 3 deben publicarse en la red. Pague tarifas o espere confirmaciones. 

De hecho, con una planificación y un diseño cuidadosos, los state channels pueden permanecer abiertos casi indefinidamente y usarse como un sistema de intercambio más grande para impulsar una economía o ecosistema completo.

Implementaciones de los state channels

Las implementaciones que se realizan en los state channels pueden dar lugar a incontables proyectos consistentes en un conjunto de protocolos de código abierto, contratos inteligentes, interfaces y software que permiten que las aplicaciones blockchain se ejecuten "fuera de la cadena" como en Ethereum.

Las aplicaciones en cuestión pueden involucrar (micro) pagos condicionales, juegos descentralizados, comercio de tokens o cualquier otra aplicación que pueda ejecutarse en una blockchain. Aunque los state channels son más útiles cuando un número pequeño y fijo de participantes desea realizar transacciones con alta frecuencia.

Entre las principales implementaciones de esta tecnología podemos mencionar a los siguientes proyectos:

Perun Network

Perun Network, es un framework off-chain que permite programar aplicaciones que admiten pagos en tiempo real, así como una lógica comercial compleja y potencia cualquier cadena de bloques existente. Para realizar todo esto, Perun Network hace uso de los state-chnnels a los fines de garantizar alta velocidad en su red, no solo para pagos sino también para procesar cualquier tipo de información que así lo requiera. 

Connexxt

Otra implementación conocida de los state channels es Connexxt. Este es un protocolo diseñado para generar sistemas de micropagos, DApps, otros protocolos P2P y funciones cross-chains que hagan uso de su plataforma. El núcleo de toda esta funcionalidad es su core llamado Vector, el cual es una serie de primitivas diseñadas para crear state channels estables de rápida implementación. 

The Graph

La popular plataforma The Graph, centrada en la indexación blockchain también hace uso de state channels para su funcionamiento, dejando muy en claro que su escalabilidad y funcionalidad está sujeta a esta tecnología.

Usos de la tecnología

Entre las muchas aplicaciones que pueden aprovechar las características de los state channels se encuentran los torrents. Estos destacan como candidatos de desarrollo en los state channels por varias razones:

La función de torrents es P2P (peer-to-peer). Una red de torrents se compone de personas que proporcionan fragmentos de un archivo y otros que solicitan esos fragmentos. La arquitectura de red se presta muy bien como base para superponer las relaciones P2P de los state channels. La descarga de torrents requiere mensajes de alta frecuencia. A medida que los usuarios comparten partes de un archivo entre sí, se comunican constantemente. Ya existe un protocolo de cable P2P bien establecido que utilizan varios clientes de torrents (por ejemplo, uTorrent, BitTorrent, etc.).

Los torrents tienen un problema de incentivación. A veces existe una falta real de incentivos para sembrar un archivo, especialmente para archivos oscuros donde es posible que solo encuentre un número de un solo dígito de personas que lo tengan. Agregar incentivos monetarios a la estructura de torrents existente debería resultar extremadamente interesante.

Estas características nos sugieren que la introducción de una capa de incentivos basada en micropagos aumentaría la calidad de la red P2P y conduciría a una mayor descentralización. Si un usuario acaba de pagar para descargar un archivo, al dejar a su cliente en ejecución y permitir que otros paguen para descargarlo, en realidad puede recuperar el costo de la descarga, o incluso superar ese costo en los ingresos de carga. Ante esto, quien lleva al máximo exponente esta tecnología sobre torrent es el proyecto Web3Torrent

Por supuesto, este no es el único caso de uso, los micropagos, el uso de state channels para operaciones cross-chains e interDApps, son solo algunos ejemplos potenciales de uso de esta tecnología. 

Ventajas y desventajas de los State-channels

Ventajas

  • Los state channels tienen fuertes propiedades de privacidad: esto se debe a que todo sucede "dentro" de un canal entre los participantes, en lugar de transmitirse públicamente y grabarse en la cadena. Solo las transacciones de apertura y cierre deben ser públicas. Mientras que en las cadenas laterales, cada transacción se publica en la cadena lateral, que es recibida por cada participante en dicha cadena, independientemente del hecho de que no está interactuando con todos los participantes en la cadena lateral.
  • Los state channels tienen finalidad instantánea, lo que significa que tan pronto como ambas partes firmen una actualización estatal, se puede considerar definitiva. Ambas partes tienen una garantía muy alta de que, si es necesario, pueden "hacer cumplir" ese estado en la cadena.

Desventajas

  • Los state channels necesitan una disponibilidad del 100% de todos los participantes involucrados: como hemos comentado anteriormente, si alguno de los participantes no está disponible, esto podría resultar costoso para él. Los participantes pueden utilizar un servicio de terceros para representarlo si no está disponible, pero la posibilidad de que el representante sea atacado o sobornado es un problema para los state channels. Mientras que en las cadenas laterales no es necesario que esté disponible durante todo el tiempo que esté en la cadena lateral.
  • Los state channels se utilizan mejor para aplicaciones con un conjunto definido de participantes: esto se debe a que el contrato de depósito estatal (el contrato utilizado para bloquear el estado) siempre debe conocer a los participantes / entidades (es decir, direcciones) que forman parte de un canal determinado. Podemos agregar y eliminar personas, pero requiere un cambio en el contrato cada vez. Mientras que en las cadenas laterales no existe tal limitación en el movimiento de los participantes.
  • Los state channels son particularmente útiles cuando los participantes van a intercambiar muchas actualizaciones estatales durante largo tiempo: esto se debe a que existe un costo inicial para crear un canal en la implementación del contrato de depósito estatal. Pero una vez que se implementa, el costo por actualización de estado dentro de ese canal es extremadamente bajo.

Conclusiones

Como se ha discutido a lo largo de este artículo, los state channels se convierten en una técnica que se implementa en la segunda capa de Ethereum para escalar esta red. Permitiendo transacciones confiables, instantáneas y sin cargo entre grupos fijos de usuarios.

Una de las bondades de state channels es que ayudan a la escalabilidad de la red, con el potencial de igualar e incluso superar el rendimiento que los rollups son capaces de hacer, para ciertos casos de uso, principalmente al eliminar la necesidad de que la mayoría de las transacciones sean procesadas por la cadena. También tienen algunas propiedades únicas, que los hacen adecuados en casos en los que una solución basada en rollup tendría dificultades.

En resumen, los canales estatales ocupan un área única del espacio de compensación, cuyas características son importantes en una amplia gama de aplicaciones.

Relacionado: ¿Qué es Lightning Network y cómo funciona?