Introducción

La escalabilidad se refiere en términos generales a la capacidad de un sistema de crecer para adaptarse a la creciente demanda. En informática, puede mejorar el rendimiento de su máquina actualizando su hardware para que sea más rápido para realizar ciertas tareas. Cuando hablamos de escalabilidad en blockchains, nos referimos a aumentar su capacidad para manejar más transacciones.

Protocolos como Bitcoin tienen muchas ventajas, pero la escalabilidad no es una de ellas. Si Bitcoin se ejecutara en una base de datos de propiedad central, sería relativamente fácil para un administrador aumentar la velocidad y el rendimiento. Pero las propuestas de valor de Bitcoin (es decir, la resistencia a la censura) requieren que muchos participantes sincronicen una copia de la cadena de bloques.


El problema de la escalabilidad de blockchain

Ejecutar un nodo Bitcoin es relativamente barato e incluso dispositivos simples pueden hacerlo. Pero dado que los miles de nodos deben mantenerse actualizados entre sí, existen ciertas limitaciones en su capacidad.

Se imponen límites a la cantidad de transacciones que se pueden procesar en la cadena, para no permitir que la base de datos crezca hasta alcanzar tamaños difíciles de manejar. Si crece demasiado y demasiado rápido, los nodos no podrán seguir el ritmo. Además, si los bloques son demasiado grandes, no se pueden transmitir rápidamente por la red.

Como resultado, nos encontramos en una especie de cuello de botella. Una cadena de bloques puede verse como un servicio de tren que sale a intervalos establecidos. Solo hay asientos limitados en cada vagón y, para obtener un boleto, los viajeros deben pujar para garantizar un lugar. Si todos intentan subir al tren al mismo tiempo, el precio será alto. De manera similar, una red obstruida con transacciones pendientes requerirá que los usuarios paguen tarifas más altas para que su transacción se incluya de manera oportuna.

Una solución sería agrandar los vagones. Esto significaría más asientos, mayor rendimiento y precios de billetes más baratos. Pero no hay garantía de que los asientos no se llenen como antes. Los vagones no pueden ampliarse perpetuamente, del mismo modo que los bloques o los límites de gas de los bloques no pueden escalarse infinitamente. Esto último encarece la permanencia de los nodos en la red, ya que necesitarán hardware más costoso para permanecer sincronizados.

El creador de Ethereum, Vitalik Buterin, acuñó el Trilema de Escalabilidad para describir el desafío que enfrentan las cadenas de bloques. Teoriza que los protocolos deben hacer concesiones entre escalabilidad, seguridad y descentralización. De alguna manera están en desacuerdo entre sí: al centrarse demasiado en dos de las propiedades, la tercera será pobre.

Por esta razón, muchos ven la escalabilidad como algo que debe lograrse fuera de la cadena, mientras que la seguridad y la descentralización deben maximizarse en la propia cadena de bloques.


¿Qué son las soluciones de escalamiento fuera de la cadena?

El escalado fuera de la cadena se refiere a enfoques que permiten ejecutar transacciones sin inflar la cadena de bloques. Los protocolos que se conectan a la cadena permiten a los usuarios enviar y recibir fondos, sin que las transacciones aparezcan en la cadena principal. Nos sumergiremos en dos de los avances más notables en este frente: cadenas laterales y canales de pago.


Una introducción a las cadenas laterales

¿Qué es una cadena lateral?

Una cadena lateral es una cadena de bloques separada. Sin embargo, no es una plataforma independiente, ya que está vinculada de alguna manera a la cadena principal. La cadena principal y la cadena lateral son interoperables, lo que significa que los activos pueden fluir libremente de una a otra.

Hay varias formas de garantizar que los fondos se puedan transferir. En algunos casos, los activos se trasladan de la cadena principal al depositarlos en una dirección especial. En realidad, no se envían, sino que se bloquean en la dirección y se emite una cantidad equivalente en la cadena lateral. Una opción más sencilla (aunque centralizada) es enviar fondos a un custodio, quien intercambia el depósito por fondos en la cadena lateral.


¿Cómo funciona una cadena lateral?

Supongamos que nuestra amiga Alice tiene cinco bitcoins. Quiere cambiarlas por cinco unidades equivalentes en una cadena lateral de Bitcoin (llamémoslas sidecoins). La cadena lateral en cuestión utiliza una vinculación bidireccional, lo que significa que los usuarios pueden transferir sus activos de la cadena principal a la cadena lateral y viceversa.

Recuerde que la cadena lateral es una cadena de bloques separada. Así, tendrá diferentes bloques, nodos y mecanismos de validación. Para obtener sus sidecoins, Alice le enviaría cinco bitcoins a otra dirección. Podría ser propiedad de alguien que luego acreditará su dirección de cadena lateral con cinco monedas laterales una vez que reciba los bitcoins. Alternativamente, podría tener algún tipo de configuración de confianza minimizada donde las monedas secundarias se acreditan automáticamente después de que el software detecta un pago.


Sidechain scaling


Alice ahora ha convertido sus monedas en sidecoins, pero siempre puede revertir el proceso para reclamar sus bitcoins. Ahora que ha ingresado a la cadena lateral, puede realizar transacciones en esta cadena de bloques separada. Puede enviar sidecoins o recibirlas de otros, tal como lo haría en la cadena principal.

Podría, por ejemplo, pagarle a Bob una sidecoin por una sudadera con capucha de Binance. Cuando quiera volver a Bitcoin, podría enviar las cuatro monedas secundarias restantes a una dirección especial. Una vez confirmada la transacción, se desbloquearán cuatro bitcoins y se entregarán a una dirección que ella controla en la cadena principal.


¿Por qué se utilizan cadenas laterales?

Quizás te preguntes cuál es el punto de esto. ¿Por qué Alice simplemente no usa la cadena de bloques de Bitcoin?

La respuesta es que la cadena lateral puede ser capaz de hacer cosas que Bitcoin no puede hacer. Las cadenas de bloques son sistemas de compensaciones cuidadosamente diseñados. Si bien Bitcoin es la criptomoneda más segura y descentralizada, no es la mejor en términos de rendimiento. Si bien las transacciones de Bitcoin son más rápidas que los métodos convencionales, siguen siendo relativamente lentas en comparación con otros sistemas blockchain. Los bloques se extraen cada diez minutos y las tarifas pueden aumentar significativamente cuando la red está congestionada.

Es cierto que probablemente no sea necesario este nivel de seguridad para los pequeños pagos diarios. Si Alice está pagando por un café, no se quedará esperando a que se confirme la transacción. Estaría retrasando la cola y su bebida estaría fría cuando se la entregaran.

Las cadenas laterales no están sujetas a las mismas reglas. De hecho, ni siquiera necesitan utilizar Prueba de trabajo para funcionar. Puede utilizar cualquier mecanismo de consenso, confiar en un único validador o modificar cualquier número de parámetros. Podría agregar actualizaciones que no existen en la cadena principal, producir bloques más grandes y aplicar acuerdos rápidos.

Curiosamente, las cadenas laterales podrían incluso tener errores críticos sin afectar la cadena subyacente. Esto les permite usarse como plataformas para la experimentación y para implementar funciones 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 escalamiento efectivo. No es necesario que los nodos de la cadena principal almacenen todas las transacciones de la cadena lateral. Alice podría ingresar a la cadena lateral con una sola transacción de Bitcoin, realizar cientos de transacciones de monedas laterales y luego salir de la cadena lateral. En lo que respecta a la cadena de bloques de Bitcoin, solo ha realizado dos: uno para entrar y otro para salir.

El Plasma de Ethereum es similar, pero tiene algunas diferencias importantes. Lea más al respecto: ¿Qué es Ethereum Plasma?


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 cadenas laterales en el frente de la escalabilidad, pero son fundamentalmente muy diferentes. Al igual que las cadenas laterales, sacan las transacciones de la cadena principal para evitar que la cadena de bloques se hinche. Sin embargo, a diferencia de las cadenas laterales, no requieren una cadena de bloques separada para funcionar.

Un canal de pago utiliza un contrato inteligente para permitir a los usuarios realizar transacciones sin publicar sus transacciones en la cadena de bloques. Lo hace mediante el uso de un acuerdo aplicado por software entre dos participantes.


¿Cómo funciona un canal de pago?

En modelos como el popular Lightning Network, dos partes primero depositarían monedas en una dirección de su propiedad conjunta. Esta es una dirección de firmas múltiples, que requiere dos firmas para gastar los fondos. Entonces, si Alice y Bob crearon dicha dirección, los fondos solo podrían retirarse con el consentimiento de ambos.

Digamos 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 a Bob una moneda, podrían actualizarla para que diga que Alice tiene 9 BTC y Bob tiene 11 BTC. No tendrían que publicar en la cadena de bloques mientras continúan actualizando estos saldos.


how a payment channel works


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 balance. Pero en lo que respecta a la cadena de bloques, solo realizaron dos operaciones en la cadena: una para la transacción de financiación inicial y otra para reasignar saldos cuando hayan terminado. Aparte de estas dos, todas las demás transacciones son gratuitas y casi instantáneas porque se realizan fuera de la cadena. No hay que pagar ninguna tarifa de minero ni esperar confirmaciones de bloque.

Por supuesto, el ejemplo discutido anteriormente requiere que ambas partes cooperen, lo cual no es una situación ideal para extraños. Sin embargo, se pueden utilizar mecanismos especiales para castigar cualquier intento de hacer trampa, de modo que las partes puedan interactuar entre sí de forma segura y sin confianza.


Ruta de pago

Evidentemente, los canales de pago son convenientes para dos partes que prevén un gran volumen de transacciones. Pero se pone mejor. Se puede desarrollar una red de estos canales, lo que significa que Alice podría pagarle a una fiesta con la que no está directamente conectada. Si Bob tiene un canal abierto con Carol, Alice puede pagarle siempre que haya suficiente capacidad. Ella enviará fondos al lado del canal de Bob, quien, a su vez, los enviará al lado de Carol. Si Carol está conectada con otro participante, Dan, se puede hacer lo mismo.

Una red de este tipo evoluciona hacia una topología distribuida donde todos se conectan con múltiples pares. A menudo habrá varias rutas hacia un destino y los usuarios podrán elegir la más eficaz.


Pensamientos finales

Hemos analizado dos enfoques de escalabilidad que permiten realizar transacciones sin sobrecargar la cadena de bloques subyacente. Tanto las cadenas laterales como la tecnología de canales de pago aún tienen que madurar, pero los usuarios que desean sortear las deficiencias de las transacciones de la capa base las aprovechan cada vez más.

A medida que pasa el tiempo y más usuarios se unen a la red, es importante que se mantenga la descentralización. Esto sólo se puede lograr imponiendo límites al crecimiento de la cadena de bloques para que puedan unirse fácilmente nuevos nodos. 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 vincular entrada/salida de cadenas laterales y abrir/cerrar canales.