Algoritmo de consenso Leased Proof of Stake y el protocolo Waves-NG
Autor: Guy Brandon, colaborador de Waves .
La red de Waves opera con un algoritmo de consenso de Leased Proof of Stake (LPoS) combinado con el protocolo Waves-NG, lo que permite un alto grado de escalabilidad y rendimiento de transacciones.
Introducción
La red de Waves se lanzó en 2016 después de un ICO que recaudó 30,000 BTC, alrededor de $16 millones en ese momento. El proyecto está desarrollando un ecosistema completo de blockchain para su uso en procesos de negocios, con un amplio conjunto de herramientas que cubre diversas necesidades, incluida la creación sencilla de tokens de criptomoneda personalizados; contratos inteligentes directos; trading peer-to-peer en un exchange descentralizado incorporado (DEX); y un medio seguro y conveniente para interactuar con dApps y servicios web a través del complemento del navegador Waves Keeper.
Escalabilidad
Desde el principio, Waves reconoció que la escalabilidad sería necesaria para la adopción masiva de blockchain, y dio prioridad al desarrollo de la tecnología para abordar las limitaciones de las blockchain existentes. Por ejemplo, Bitcoin es altamente seguro pero relativamente lento, y solo puede admitir alrededor de 7 transacciones por segundo (TPS). Como tal, Bitcoin no es lo suficientemente eficiente como para ser usado como una moneda diaria en todo el mundo. Las soluciones de segundo nivel, como Lightning Network, se requieren para que Bitcoin cumpla con este propósito. Waves ha adoptado un enfoque diferente, centrándose inicialmente en una alta escalabilidad en la cadena antes de considerar las aplicaciones de segundo nivel.
Prestamo de balance
El algoritmo de consenso original de Waves fue una simple implementación de Proof of Stake. Todos los 100 millones de tokens de WAVES se distribuyeron después del ICO, y el suministro es fijo: no hay inflación, como ocurre con las monedas minadas de PoW. Por lo tanto, los validadores de bloque de Waves (los forgers, aunque generalmente se conocen simplemente como “mineros” dentro del ecosistema de Waves) reciben tarifas de transacción de los bloques que procesan, pero no recompensas de bloque.
El sistema Leased Proof of Stake (LPoS) se lanzó por completo en mayo de 2017, lo que permite a los usuarios del cliente Waves lite (aquellos que no ejecutaron un nodo completo) alquilar sus tokens de WAVES a los nodos de minería. Las waves alquiladas están bloqueadas en la cuenta del usuario y no pueden ser transferidas o intercambiadas. Aún así, los tokens permanecen en el control total del titular de la cuenta y los alquileres pueden cancelarse en cualquier momento. Dados los costos generales técnicos asociados con la ejecución de un nodo de minería y la necesidad de estar en línea 24/7, solo una proporción relativamente pequeña de la comunidad de Waves ejecuta los nodos (puede encontrar una lista de generadores de bloques en https://dev.pywaves.org/generators/).
Los tokens de WAVES que se alquilan a un nodo de minería se utilizan para aumentar el peso del minero, lo que a su vez aumenta las posibilidades de que ese minero encuentre el siguiente bloque. El sistema Leased Proof of Stake mejora la seguridad de la red en al menos dos formas. En primer lugar, cuanto más WAVES se use para asegurar la red, mejor, porque se vuelve más difícil para un atacante acumular los tokens necesarios para llevar a cabo un ataque del 51%. En segundo lugar, WAVES se pueden alquilar a un nodo desde la dirección de almacenamiento en frío de un usuario, pero el nodo en sí, que permanece en línea, puede tener un saldo mínimo. Esto reduce significativamente el riesgo de que los tokens de WAVES sean pirateados desde computadoras que están en línea, ya que los fondos alquilados no se transfieren al minero.
Un nuevo enfoque para el consenso: Waves-NG
Una actualización adicional a la red se produjo en diciembre de 2017, con el lanzamiento de Waves-NG. Este fue un nuevo protocolo basado en la propuesta de Bitcoin-NG por el profesor de Cornell IT Emin Gün Sirer.
El protocolo original de Bitcoin elige cada minero retrospectivamente. Después de agregar un bloque a la blockchain, los mineros compiten para encontrar un hash válido para el siguiente bloque según el estado actual de la blockchain. Mientras tanto, las transacciones recién generadas entran en el pool de memoria (mempool), donde permanecerán pendientes hasta que un minero las recoja y valide.
Aunque los protocolos Bitcoin y Bitcoin-NG se consideran sistemas tolerantes a fallas bizantinas (BFT), este último se propuso en 2015 como una alternativa escalable basada en un mecanismo de trabajo diferente. En un sistema Bitcoin-NG, el siguiente minero se elige de antemano y este minero crea un “bloque clave” vacío, que es el bloque que finalmente se agregará a la blockchain. Pequeños bloques llamados “microbloques” (que consisten en unas pocas transacciones cada uno) se agregan casi en tiempo real a este bloque clave. Para usar una analogía cotidiana, esto es como agregar varias bolsas de compras (microbloques) a un carro (bloque de teclas), antes de que el carro completo finalmente se lleve a la caja (agregado a la blockchain). Esto significa que las transacciones se pueden agregar a la blockchain en solo unos segundos, con el único retraso real que es la latencia de la red. Waves actualizó esta idea para una red de Proof of Stake, creando el protocolo Waves-NG, el primer despliegue de Bitcoin-NG para una blockchain pública y abierta.
Una adición adicional al ecosistema ha sido MassTransfers. Estos permiten que se puedan empaquetar hasta 100 transferencias dentro de una sola transacción, con tarifas reducidas. El límite de 100 txs por MassTransfer fue elegido como un compromiso entre agregar capacidad significativa y conveniencia, por un lado, y limitar la capacidad de enviar lotes muy grandes de transacciones de bajo costo de una vez, por otro lado. Si es necesario realizar más transferencias, se pueden enviar múltiples transferencias de masa de forma secuencial.
En otras palabras, los usuarios pueden simplemente elegir un MassTransfer como un tipo diferente de “Enviar transacción”, lo que les permite incluir hasta 100 destinatarios en una sola transacción. Además, las direcciones de los destinatarios se pueden proporcionar a través de JSON o se pueden cargar desde un archivo CSV, lo que hace que sea sencillo y eficiente realizar grandes airdrops o realizar pagos semanales a aquellos que alquilan sus WAVES a nodos de minería. Combinada con Waves-NG, la función MassTransfer permitió una tasa muy alta de rendimiento en la red.
Se han realizado una serie de pruebas de estrés en la red Waves para evaluar el potencial de rendimiento del nuevo protocolo. En octubre de 2018, se llevó a cabo una importante prueba de estrés en la MainNet. Esto demostró que el protocolo público de blockchain abierta (no simplemente una TestNet limitada y controlada) podría admitir más de 6.1 millones de transacciones en un período de 24 horas, un promedio de 4,200 txs por minuto o 71 txs por segundo, con un rendimiento máximo que alcanza cientos de Transacciones por segundo.
En conclusión
El sistema Leased Proof-of-Stake permite a los usuarios cotidianos sin experiencia técnica ayudar a proteger la red Waves, alquilando sus WAVES a nodos completos sin perder el control de sus tokens. Mientras tanto, Waves-NG permitió un rendimiento de hasta 100 TPS, que es un orden de magnitud más que muchas Blockchains. Las tarifas son bajas porque no hay necesidad de pagar a los mineros con recompensas en bloque para compensarlos por los altos costos de la electricidad y el hardware costoso.
La escalabilidad en cadena ha sido una prioridad para Waves, pero hay límites en la medida en que cualquier blockchain puede escalar de esta manera debido al almacenamiento y al ancho de banda requerido. Los desarrolladores de Waves creen que el enfoque actual se puede optimizar para admitir hasta 1.000 TPS antes de que se requieran más soluciones de escalado. Actualmente, Waves está explorando opciones para una solución de escalado de segundo nivel que involucra cadenas laterales, lo que permite que una gran cantidad de transacciones se procesen en una cadena paralela, pero finalmente se aseguren en la blockchain principal de Waves.