Uno de los mayores desafíos para las blockchains en este momento es la escalabilidad, o la capacidad de procesar más transacciones en un período de tiempo más corto.
A finales de 2017, la red Bitcoin presentó problemas para procesar las transacciones, y las tarifas aumentaron en consecuencia. Lo mismo ha sucedido con Ethereum, donde la locura producida por CryptoKitties en diciembre de 2017 hizo que la red casi se detuviera durante una semana. Ethereum apuesta por un cambio a la prueba de participación (proof-of-stake) como método de consenso y el sharding (fragmentación) para mejorar el rendimiento de la red.
Sin embargo, existe una blockchain publica basada en fragmentación que ya se encuentra en funcionamiento.
Esa cadena de bloques es Zilliqa, que tuvo su ICO privada a fines de 2017 y una pequeña oferta pública en enero de 2018, lo que la convierte en una de los primeras nuevas fichas de 2018. Zilliqa es la única cadena de bloques que tiene fragmentación funcional, lo que permite a la cadena de bloques escalar de forma lineal a medida que la red crece en tamaño. Zilliqa, que actualmente funciona con una red de prueba, espera lanzarse en la red principal en el tercer trimestre de 2018.
¿Que es Zilliqa?
Zilliqa es una plataforma de procesamiento de pagos y aplicaciones descentralizadas (dapp) centrada en la escalabilidad y basada en cadenas de bloques que se encuentra actualmente en desarrollo avanzado.
La característica principal que permite a Zilliqa escalar más allá de lo que es posible con plataformas similares existentes, como Ethereum, es la fragmentación. La fragmentación o sharding se refiere a dividir la red blockchain en subredes más pequeñas que pueden procesar transacciones y ejecutar operaciones informáticas en paralelo (al mismo tiempo).
A diferencia de muchas otras plataformas en las que la velocidad de las transacciones disminuye a medida que la red crece, las velocidades de transacción de Zilliqa aumentarán teóricamente a medida que se incremente el número de nodos de la red. En última instancia, la red debería poder igualar las velocidades de procesamiento de transacciones de las redes de pago VISA y MasterCard (según el equipo de desarrollo de Zilliqa), pero con tarifas más bajas y sin depender de una red centralizada.
Zilliqa comenzó a desarrollarse el 1 de junio de 2017 y tuvo una red de pruebas interna (testnet) operativa hasta el 1 de septiembre de 2017. Desde entonces, el proyecto ha lanzado: una red de prueba pública (1 de diciembre de 2017), diferentes tipos de protocolos de fragmentación , almacenamiento persistente de datos, un lenguaje y marco de contratos inteligentes, y una billetera de red de prueba. Está previsto que las Dapps comiencen a desarrollarse en la plataforma en el tercer trimestre de 2018. Sin embargo, dado que la red principal (la primera versión de la red de blockchain completamente funcional, independiente y descentralizada de Zilliqa) aún no está operativa, su token ZIL es actualmente un token ERC20 basado en Ethereum que se comercializa en la cadena de bloques de Ethereum. Los tokens ERC20 se intercambiarán en el lanzamiento de la red principal por los tokens de cadena de bloques ZIL.
Zilliqa (cuyo nombre deriva de la palabra sílice, la sustancia que impulsa la industria de la informática) se centra en dapps seguros y basados en datos que requieren tiempos de transacción rápidos. Esto podría abarcar la mayoría de dapps que operan a gran escala, pero es especialmente importante para subastas de gran volumen, redes de pago, redes de publicidad digital y aplicaciones de aprendizaje automático.
En una prueba reciente de su testnet, Zilliqa procesó 2.488 transacciones por segundo con 6 fragmentos de red y ejecutando sólo 3.600 nodos (servidores de red que procesan y confirman transacciones) en total, en comparación con las aproximadamente 10 transacciones por segundo de Ethereum utilizando cuatro veces el número de nodos. Cabe señalar que Ethereum también está trabajando en la aplicación del sharding, lo que alterará significativamente este número.
Al igual que Ethereum, Zilliqa admite contratos inteligentes, pero lo hace utilizando un nuevo lenguaje de scripting creado específicamente para sharding, con la capacidad de ejecutar programas en paralelo para hacer uso de la potencia computacional completa de la red.
La solución de escalabilidad de Zilliqa
Zilliqa está atacando el problema de la escalabilidad con su propia solución que permite procesar más transacciones a medida que más nodos ingresan a la red. Básicamente, reconstruye la arquitectura blockchain desde cero. El modelo que están utilizando tiene un protocolo de consenso híbrido que aumentará el rendimiento con cada 600 nodos adicionales en la red.
La cadena de bloques de Zilliqa funciona al dividir el trabajo realizado en la red, con un aumento del rendimiento por cada 600 nuevos nodos. Aunque podrían surgir problemas con la transmisión una vez que la red se amplíe a más de 1 millón de nodos, actualmente no estamos ni remotamente cerca de este nivel en ninguna cadena de bloques existente. Ethereum, que tiene la mayor red de nodos disponibles, actualmente tiene aproximadamente unos 25,000 nodos.
La red Ethereum, con sus 25,000 nodos completos, solo es capaz de procesar 15 transacciones por segundo. Zilliqa, por el contrario, ha realizado pruebas en su testnet privada hasta alcanzar 1,218 transacciones por segundo con solo 1,800 nodos completos. Si se duplican los nodos a 3,600, el rendimiento también se ampliará a 2.488 transacciones por segundo.
El potencial en estos resultados es asombroso, pero ¿cómo lo hace Zilliqa? Básicamente están utilizando una solución llamada «Sharding» (fragmentación) que funciona dividiendo la red en grupos de 600 nodos, cada uno de los cuales se conoce como «Shard» o fragmento.
Por ejemplo, cuando Zilliqa ejecutó la prueba mencionada anteriormente en su testnet con solo 1,800 nodos, estos se dividieron en 3 shards o fragmentos. Cuando su red de pruebas se incrementó a 3,600 nodos, esta se dividió en 6 fragmentos. Cada nuevo grupo de 600 nodos crea un nuevo fragmento en la red.
Los shards o fragmentos dividen el trabajo que se realiza en la red, con cada fragmento responsable de solo una parte de las transacciones de red. Entonces, si obtienes unos 10 fragmentos, cada fragmento solo se ocupará de procesar el 10% de las transacciones de red. Y a medida que la red crece, hay más fragmentos disponibles, dividiendo aún más la carga y manteniendo la demanda de cada fragmento bastante estable.
Cada shard crea un «microbloque» con las transacciones que procesa. Todos los fragmentos procesan estas transacciones en paralelo, y al final del período de procesamiento paralelo, llamado «DS Epoch» por el equipo de Zilliqa, los microbloques se combinan para formar un bloque completo. Ese bloque completo se agrega a la blockchain.
Cada DS Epoch también tiene un «Comité DS» (DS Committee). Este es un pequeño grupo de varios nodos seleccionados al azar que actúan para administrar todos los demás fragmentos. El Comité DS decide qué transacciones se asignan a qué fragmentos.
Y una vez que se crean los microbloques, el Comité DS es responsable de crear el bloque completo y asignarlo a la blockchain.
Mecanismo de consenso en Zilliqa
Zilliqa usa un mecanismo de consenso híbrido que consiste en prueba de trabajo (PoW) y tolerancia a fallas bizantina (BFT). La prueba de trabajo no se usa como en la minería tradicional de blockchain. En cambio, cada nodo comienza completando una prueba de trabajo de hash.
Esto no da como resultado ninguna recompensa de blockchain, sino que se usa para establecer la identidad del nodo. Al forzar a las máquinas a establecer su identidad, la red Zilliqa evita cualquier posible ataque de Sybil, donde un mal actor crearía múltiples identidades en un intento de abrumar a la red.
Una vez que la identidad de los nodos se comprueba a través de una prueba de trabajo, al nodo se le puede asignar un fragmento. Los shards (fragmentos) encuentran consenso a través de la tolerancia a fallas bizantinas, que es un mecanismo de consenso de alto rendimiento con firmeza de liquidación («finality«, o la garantía de que las transacciones pasadas nunca se pueden cambiar). Debido a que incluye firmeza de liquidación, la mayoría de los 600 nodos en el shard deben acordar el microbloque.
Después de que el microbloque se ha confirmado y agregado al bloque final, se convierte en el único bloque que puede hacer referencia al bloque anterior. Debido a esto, una bifurcación no es posible en un consenso de tolerancia a fallas bizantino con «finalidad» (firmeza de liquidación).
Ha habido otras cadenas de bloques que están usando con éxito la tolerancia de fallas bizantina para el consenso. Estos incluyen NEO y Hyperledger, que usan una versión de eficaz del mecanismo de consenso bizantino.
Minería de la Blockchain Zilliqa
Como se ha mencionado anteriormente, Zilliqa utiliza la Prueba de Trabajo (PoW) como mecanismo de consenso sólo para establecer la identidad de los nodos de la red, por lo que no se realiza para todos los bloques. Esto es mucho más eficiente y reduce drásticamente la huella energética de la red en comparación con las cadenas de bloques que utilizan PoW para el consenso general de la blockchain.
La metodología alternativa de Zilliqa hace uso de los méritos de la Prueba de Trabajo (PoW) junto con el Protocolo Práctico Tolerante a Fallas Bizantinas (PBFT). Los mineros usan PoW para establecer sus identidades en la cadena de bloques Zilliqa. Una vez que se han establecido las identidades, los mineros se asignan a un grupo de consenso en el que se pueden ejecutar múltiples rondas de consenso de PBFT. Al realizar un PoW, se escriben múltiples bloques en la cadena y, por lo tanto, se obtienen recompensas mayores y garantizadas.
Zilliqa añade un nuevo bloque a la cadena de bloques a intervalos regulares, y aunque su tiempo de bloque aún no está definido, el equipo calcula un tiempo de bloque de 2 minutos en base a las pruebas actuales (suponiendo un rendimiento de 2.500 transacciones por segundo).
Cuando un nodo (un minero) extrae con éxito un bloque de transacción, se recompensa con tokens recién creados. El suministro final de tokens ZIL será de 21 mil millones, con la recompensa del bloque repartida a lo largo de 10 años y disminuyendo con el tiempo.
El 80% de los tokens se extraerán en los primeros 4 años, y el 20% restante se distribuirá en los próximos 6 años. Las reducciones de emisión de tokens ocurrirán gradualmente. Después de 10 años, Zilliqa pretende tener una red que funcione a una escala suficiente, con un precio de token estable y lo suficientemente alto para garantizar que las tarifas de transacción puedan mantener la red.
Sharding para contratos inteligentes
Es bastante sencillo fragmentar las transacciones en una cadena de bloques. Las verificaciones de transacción se asignan fácilmente a diferentes fragmentos, y cada verificación se sostiene por sí misma. Los fragmentos tienen poca necesidad de comunicarse entre sí gracias al Comité DS.
Sin embargo, esto no se puede decir de los contratos inteligentes y Dapps ejecutados en una cadena de bloques fragmentada. Un contrato inteligente a menudo se basa en fuentes externas de datos, funciones y otras variables. Hacer esto en una cadena de bloques fragmentada requeriría cantidades potencialmente masivas de comunicación entre los fragmentos. El ancho de banda y la potencia de procesamiento consumida por esta comunicación harían nulos los beneficios del sharding.
Debido a estas limitaciones, los contratos en Zilliqa se centran en la programación funcional y el flujo de datos, al menos por el momento. Pero el equipo está trabajando en una forma de permitir cambios de estado, almacenamiento y verificación de datos.
El estado actual de la tecnología blockchain ha llevado a una opinión generalizada de que la «fragmentación de estado» (state sharding) no puede ser eficiente y segura. Si los contratos se ejecutan por separado en estados fragmentados, dejaría la red abierta a todo tipo de ataques potenciales, así como a la contaminación cruzada y los posibles desafíos para la reconciliación de las transacciones.
Dicho esto, la solución de fragmentación de Ethereum es una solución de fragmentación de estado, aunque no sabemos qué tan lejos está la iniciativa o cuándo podría estar lista para su implementación.
En su estado actual, Zilliqa todavía puede ser utilizado por Dapps que requieren un rendimiento muy alto y tasas de transacción más allá de lo que es posible en otras cadenas de bloques.
El nuevo lenguaje de programación de Zilliqa
Zilliqa no solo es una nueva y única cadena de bloques, sino que el equipo de desarrollo también creó un nuevo lenguaje de programación funcional conocido como Scilla.
Scilla se enfoca en hacer que la programación funcional sea más segura y estandarizada, y lo hace separando el estado y la función. En otras palabras, es un lenguaje de programación que puede diferenciar entre el trabajo computacional real de un contrato y los aspectos de comunicación del contrato.
Una desventaja del lenguaje Scilla es que no es Turing completo, y no se puede usar para crear aplicaciones que requieren sentencias condicionales y ciertos tipos de bucles. Permanece sujeto a pruebas lógicas formales, y esto es clave para la seguridad. Permite a los usuarios verificar que un contrato es seguro antes de usarlo, que es una de las claves para una adopción generalizada. El equipo de Zilliqa también cree que esto lo hará menos propenso a errores, ya que será más simple.
Como se mencionó anteriormente, los contratos inteligentes de Zilliqa utilizan una arquitectura de programación de flujo de datos que hace posible ejecutar operaciones Dapp en paralelo, aprovechando la arquitectura de fragmentación de transacciones. El objetivo del equipo Zilliqa es desarrollar el lenguaje Scilla para que los contratos inteligentes mutables (alterables) puedan implementarse de forma segura. Esto permitiría corregir fácilmente los errores y modificar los contratos si el usuario necesita cambios. Tal inmutabilidad de los contratos inteligentes basados en blockchain es la razón por la cual algunos proyectos, como NEM, por ejemplo, eligen no ejecutar contratos inteligentes en la blockchain pública.
Token Zilliqa (ZIL)
Hay un token para el ecosistema Zilliqa y se conoce como Zilliqa (ZIL). Aquellos familiarizados con otras plataformas Dapp como Ethereum y NEO saben que el token es necesario como un incentivo minero y como una oferta para pagar tarifas de transacción, pero quizás más importante aún, como «gas» para la ejecución de los contratos.
ZIL se creó inicialmente como un token ERC-20 en la cadena de bloques de Ethereum. Esto se hizo porque el proyecto necesitaba fondos de desarrollo, pero la red principal pública de Zilliqa aún no se había liberado. Una vez que se libere la red principal (programada para el tercer trimestre de 2018), las fichas ERC-20 se intercambiarán por fichas nativas de Zilliqa.
Zilliqa comenzó su ICO con una ronda de financiación privada que recaudó $ 12 millones en ETH. Poco después, el precio en alza de ETH hizo que los fondos recibidos valieran más de $ 20 millones, lo que implicaba que la oferta inicial de monedas había alcanzado su límite máximo. Zilliqa canceló los planes para una ronda pública de ICO, pero debido al interés de la comunidad asignó 4,445 ETH a una venta pública en enero de 2018.
Actualmente se puede comprar, vender y comercializar ZIL en una serie de intercambios que incluyen Binance, Upbit, Bithumb, Huobi y KuCoin, entre otros. A partir de mediados de mayo de 2018, ZIL tiene una capitalización bursátil de $ 1,200 millones y más de $ 100 millones en volumen diario de negociación.
La moneda ha subido más de un 300% en el último mes y se cotizaba a un precio tan alto como $ 0.20 desde el 10 de mayo de 2018, pero desde entonces ha retrocedido y se cotiza a $ 0.16 menos de una semana después. Obviamente, hay un gran interés en la moneda en este momento, lo que podría ser en previsión del lanzamiento de la red principal.
Equipo de desarrollo
El equipo de Zilliqa está compuesto principalmente por doctores en ciencias de la computación con antecedentes académicos. De hecho, Zilliqa nació de un proyecto de investigación y desarrollo de la Universidad Nacional de Singapur y más de dos años de trabajo, lo que culminó en la creación de una cadena de bloques operativa mucho antes de celebrarse la oferta inicial.
El CEO del proyecto es Xinshu Dong, quien completó su doctorado en la Universidad Nacional de Singapur. Desde entonces, ha sido un destacado experto en ciberseguridad, trabajando en una serie de proyectos de seguridad para el gobierno de Singapur.
El consejero científico principal es Prateek Saxena, que recibió su doctorado de la Universidad de California (Berkley). Actualmente es profesor de ciencias de la computación en la Universidad Nacional de Singapur. También fue profesor de Loi Luu, el CEO y fundador de Kyber Network.
El director del proyecto es un investigador asociado en la Universidad Nacional de Singapur, llamado Amrit Kumar. Es titular de un doctorado de la Universite Grenoble Alpes.
Finalmente, está la junta asesora de Zilliqa, que incluye a los siguientes destacados personajes especializados en tecnología blockchain: Loi Luu, cofundadora de Kyber Network; Vincent Zhou, socio fundador de FBG Capital; Nicolai Oster, socio de Bitcoin Suisse AG; y Alexander Lipton, fundador y CEO de StrongHold Labs.
En conclusión
Las plataformas de cadenas de bloques están muy de moda en estos momentos y Zilliqa se enfrenta a la feroz competencia de las mayores redes del sector, como Ethereum, EOS y NEO. Aunque Zilliqa es tecnológicamente superior a Ethereum y, hasta cierto punto, a EOS y NEO, carece de proyectos que se estén lanzando en su plataforma en comparación con éstas y otras plataformas blockchain.
Dada la escalabilidad teóricamente ilimitada de Zilliqa, podemos asumir que es sólo cuestión de tiempo para que los desarrolladores empiecen a crear dapps en la plataforma. Aún así, seguirá siendo un gran reto para Zilliqa crear un ecosistema que coincida con el tamaño de otras grandes plataformas de la industria, y al final, las plataformas de cadenas de bloques se valoran en función del tamaño de su red.
La escalabilidad seguirá siendo un problema para las tecnologías de cadenas de bloques en un futuro previsible. Mientras que los proyectos existentes de cadenas de bloques buscan una solución que probablemente no proporcione más que una solución a corto plazo, el equipo de Zilliqa está adoptando un enfoque diferente y abordando el problema de frente, con un enfoque único e innovador.
Si bien es posible que Zilliqa aún no tenga la solución definitiva, es seguro que será un paso importante en la tecnología de la cadena de bloques, y hay buenas posibilidades de que su desarrollo de la tecnología de fragmentación entre en juego en numerosos proyectos futuros de cadenas de bloques.