Introducción
El problema de escalabilidad de las blockchains
Como resultado, nos encontramos con algo así como un cuello de botella. Una blockchain puede ser vista como un servicio de tren que parte con un intervalo determinado. Hay un número limitado de asientos en cada vagón, y para obtener un ticket, los viajeros deben pujar para así garantizarse un sitio. Si todo el mundo intenta subir al tren al mismo tiempo, el precio será alto. De manera similar, una red saturada de transacciones pendientes requerirá a los usuarios el pago de comisiones más elevadas si quieren que las suyas sean incluidas con puntualidad.
El creador de Ethereum, Vitalik Buterin, acuñó el concepto "Trilema de la Escalabilidad" para describir el desafío a que deben hacer frente las blockchains. Teorizó que los protocolos deben alcanzar un compromiso entre escalabilidad, seguridad y descentralización. Estas propiedades chocan de alguna forma entre sí, por lo que centrándose demasiado en dos de ellas, la tercera tendrá un pobre desempeño.
¿Qué son las soluciones de escalabilidad off-chain?
La escalabilidad off-chain se refiere a enfoques que permiten la ejecución de transacciones sin sobrecargar la blockchain. Protocolos que se conectan a la cadena y permiten a los usuarios enviar y recibir fondos, sin que las transacciones aparezcan en la cadena principal. Profundizaremos en dos de los avances más importantes en este frente: las sidechains (cadenas laterales) y los payment channels (canales de pago).
Una introducción a las sidechains
¿Qué es una sidechain?
Una sidechain es una blockchain aparte. Sin embargo, no es una plataforma independiente, ya que está anclada de algún modo a la cadena principal. Esta última y la sidechain son interoperables, lo que significa que los activos pueden circular libremente de una a otra.
¿Cómo funciona una sidechain?
Pongamos por caso que nuestra amiga Alice tiene cinco bitcoins y desea cambiarlos por cinco unidades equivalentes en una sidechain de Bitcoin –a éstas cinco unidades las llamaremos sidecoins. La sidechain en cuestión utiliza un anclaje de dos direcciones, lo que significa que los usuarios pueden transferir sus activos de la cadena principal a la sidechain y viceversa.
Alice ha convertido de esta forma sus monedas en sidecoins, pero siempre podrá revertir el proceso para reclamar sus bitcoins. Ahora que ha accedido a la sidechain, tendrá libertad para realizar transacciones en esta blockchain diferenciada. Podrá enviar sidecoins o recibirlas de otros, tal como haría en la cadena principal.
Por poner un ejemplo, podría pagarle a Bob una sidecoin por una sudadera con capucha de Binance. Y cuando desee volver a Bitcoin, podrá enviar las cuatro sidecoins que le quedan a una dirección especial. Una vez la transacción haya sido confirmada, cuatro bitcoins serán desbloqueados y enviados a una dirección que ella controle de la cadena principal.
¿Por qué se utilizan las sidechains?
Es posible que te preguntes qué sentido tiene esto. ¿Por qué Alice no se limita a usar la blockchain de Bitcoin?
Es cierto que probablemente no sea necesario este nivel de seguridad para los pequeños pagos diarios. Si Alice está pagando un café, no va a esperar la confirmación de la transacción. Ella estaría retrasando la cola, y su bebida estaría fría para cuando se la entregaran.
Curiosamente, las sidechains podrían incluso tener errores críticos sin afectar la cadena subyacente. Esto les permite ser utilizados como plataformas para la experimentación y para desplegar características que de otro modo requerirían el consenso de la mayoría de la red.
Siempre que los usuarios estén contentos con las compensaciones, las cadenas laterales podrían ser un paso integral hacia un escalado efectivo. No es necesario que los nodos de la cadena principal almacenen todas las transacciones de la sidechain. Alice podría ingresar a la sidechain con una sola transacción de Bitcoin, realizar cientos de transacciones de sidecoin y luego salir de la sidechain. En lo que respecta a la blockchain de Bitcoin, solo realizó dos: una para ingresar y otra para salir.
Una introducción a los canales de pago.
¿Qué es un canal de pago?
Los canales de pago tienen el mismo propósito que las sidechain en el frente de escalabilidad, pero son fundamentalmente muy diferentes. Al igual que las sidechain, empujan las transacciones fuera de la cadena principal para evitar que la blockchain se hinche. Sin embargo, a diferencia de las sidechains, no requieren una blockchain separada para funcionar.
¿Cómo funciona un canal de pago?
Supongamos que cada uno deposita 10 BTC en una dirección que ahora tiene 20 BTC. Sería fácil para ellos mantener un balance que comience diciendo que Alice y Bob tienen 10 BTC cada uno. Si Alice quisiera darle una moneda a Bob, podrían actualizarla para leer que Alice tiene 9 BTC, Bob tiene 11 BTC. No tendrían que publicar en la blockchain mientras continúan actualizando estos saldos.
Sin embargo, cuando llegue el momento, digamos que Alice tiene 5 BTC y Bob tiene 15 BTC. Luego, podrían crear una transacción que envíe estos saldos a direcciones propiedad de las partes, firmarla y transmitirla.
Alice y Bob podrían haber registrado diez, cien o mil transacciones en su hoja de balance. Pero en lo que respecta a la blockchain, solo han realizado dos operaciones en cadena: una para la transacción de financiación inicial y otra para reasignar los saldos cuando se realizan. Además de estos dos, todas las demás transacciones son gratuitas y casi instantáneas porque ocurren fuera de la cadena. No hay que pagar una comisión de minero ni esperar confirmaciones de bloque.
Enrutamiento de pago
Evidentemente, los canales de pago son convenientes para dos partes que anticipan un alto volumen de transacciones. Pero se pone mejor. Se puede desarrollar una red de estos canales, lo que significa que Alice podría pagar una fiesta a la que no está directamente conectado. Si Bob tiene un canal abierto con Carol, Alice puede pagarle siempre que haya suficiente capacidad. Ella empujará los fondos al lado del canal de Bob, quien, a su vez, los empujará al de Carol. Si Carol está conectada con otro participante, Dan, se puede hacer lo mismo.
Dicha red evoluciona hacia una topología distribuida donde todos se conectan con múltiples pares. A menudo habrá múltiples rutas a un destino, y los usuarios podrán elegir la más efectiva.
En conclusión
Hemos discutido dos enfoques de escalabilidad que permiten realizar transacciones sin sobrecargar la blockchain subyacente. Tanto las sidechains como la tecnología de canales de pago aún no han madurado, pero los usuarios las aprovechan cada vez más y desean evitar las deficiencias de las transacciones de la capa base.
A medida que pasa el tiempo y más usuarios se unen a la red, es importante que se mantenga la descentralización. Esto solo se puede lograr imponiendo límites al crecimiento de la blockchain para que los nuevos nodos puedan unirse fácilmente. Los defensores de las soluciones de escalabilidad fuera de la cadena creen que, con el tiempo, la cadena principal solo se utilizará para liquidar transacciones de alto valor, o para conectar / desconectar sidechains y abrir / cerrar canales.