Algoritmo de consenso de prueba de participación arrendada y protocolo Waves-NG
Autor: Guy Brandon, colaborador de Waves.
La red Waves opera con un algoritmo de consenso de prueba de participación (LPoS) arrendado combinado con el protocolo Waves-NG, lo que permite un alto grado de escalabilidad y rendimiento de transacciones.
Introducción
La red Waves se lanzó en 2016 después de una ICO que recaudó 30.000 BTC, alrededor de 16 millones de dólares en ese momento. El proyecto está desarrollando un ecosistema blockchain integral para su uso en procesos comerciales, con un amplio conjunto de herramientas que cubre diversas necesidades, incluida la creación sencilla de tokens de criptomonedas personalizados; contratos inteligentes sencillos; comercio entre pares en un intercambio descentralizado integrado (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 se requeriría escalabilidad para la adopción masiva de blockchain y priorizó el desarrollo de tecnología para abordar las limitaciones de las blockchains existentes. Por ejemplo, Bitcoin es muy 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 usarse como moneda cotidiana en todo el mundo. Se requieren soluciones de segundo nivel, como Lightning Network, para que Bitcoin cumpla este propósito. Waves ha adoptado un enfoque diferente, centrándose inicialmente en una alta escalabilidad en la cadena antes de considerar aplicaciones de segundo nivel.
Arrendamiento de saldo
El algoritmo de consenso original de Waves era una implementación simple de prueba de participación. Los 100 millones de tokens WAVES se distribuyeron después de la ICO y la oferta es fija: no hay inflación, como ocurre con las monedas extraídas de PoW. Por lo tanto, los validadores de bloques de Waves (falsificadores, aunque normalmente se les conoce simplemente como "mineros" dentro del ecosistema de Waves) reciben tarifas de transacción de los bloques que procesan, pero no recompensas por bloques.
El sistema Leased Proof of Stake (LPoS) se lanzó por completo en mayo de 2017, lo que permitió a los usuarios del cliente Waves lite (aquellos que no ejecutaron un nodo completo) arrendar sus tokens WAVES a nodos de minería. Los WAVES arrendados están bloqueados en la cuenta del usuario y no se pueden transferir ni comercializar. Aún así, los tokens permanecen bajo el control total del titular de la cuenta y los arrendamientos pueden cancelarse en cualquier momento. Dados los gastos técnicos asociados con la ejecución de un nodo de minería y la necesidad de estar en línea las 24 horas del día, los 7 días de la semana, solo una proporción relativamente pequeña de la comunidad Waves ejecuta nodos (puede encontrar una lista de generadores de bloques en https://dev.pywaves.org /generadores/).
Los tokens WAVES que se alquilan a un nodo minero se utilizan para aumentar el peso de la participación 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 al menos de dos maneras. En primer lugar, cuanto más WAVES se utilicen para proteger la red, mejor, porque a un atacante le resultará más difícil acumular los tokens necesarios para llevar a cabo un ataque del 51%. En segundo lugar, WAVES se puede arrendar 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 solo un saldo mínimo. Esto reduce significativamente el riesgo de que los tokens WAVES sean pirateados desde computadoras que están en línea, ya que los fondos arrendados no se transfieren al minero.
Un nuevo enfoque hacia el consenso: Waves-NG
En diciembre de 2017 se produjo una nueva actualización de la red, con el lanzamiento de Waves-NG. Este era un nuevo protocolo basado en la propuesta Bitcoin-NG del profesor de TI de Cornell, Emin Gün Sirer.
El protocolo original de Bitcoin elige a cada minero de forma retrospectiva. Después de que se agrega un bloque a la cadena de bloques, los mineros compiten para encontrar un hash válido para el siguiente bloque, según el estado actual de la cadena de bloques. Mientras tanto, las transacciones recién generadas van al grupo de memoria (mempool), donde permanecerán pendientes hasta que un minero finalmente las recopile y valide.
Aunque tanto el protocolo Bitcoin como el 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 próximo minero se elige de antemano y este minero crea un "bloque clave" vacío, que es el bloque que finalmente se agregará a la cadena de bloques. A este bloque clave se añaden pequeños bloques llamados "microbloques" (que constan de unas pocas transacciones cada uno) casi en tiempo real. Para usar una analogía cotidiana, esto es como agregar varias bolsas de compras (microbloques) a un carrito (bloque de llaves), antes de que el carrito completo finalmente sea llevado a la caja (agregado a la cadena de bloques). Esto significa que las transacciones se pueden agregar a la cadena de bloques en solo unos segundos, siendo el único retraso real la latencia de la red. Waves actualizó esta idea para una red de prueba de participación, creando el protocolo Waves-NG, la primera implementación de Bitcoin-NG para una cadena de bloques pública y abierta.
Otra incorporación al ecosistema ha sido MassTransfers. Estos permiten empaquetar hasta 100 transferencias en una sola transacción, con tarifas reducidas. El límite de 100 tx por MassTransfer se eligió como un compromiso entre agregar capacidad y conveniencia significativas, por un lado, y limitar la capacidad de enviar lotes muy grandes de transacciones de bajo costo a la vez, por el otro. Si es necesario realizar más transferencias, se pueden enviar varias MassTransfers de forma secuencial.
En otras palabras, los usuarios pueden simplemente elegir 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 cargarse desde un archivo CSV, lo que hace que sea sencillo y eficiente realizar grandes lanzamientos aéreos o realizar pagos semanales a quienes 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 varias pruebas de estrés en la red Waves para medir el potencial de rendimiento del nuevo protocolo. En octubre de 2018, se realizó una importante prueba de estrés en MainNet. Esto demostró que el protocolo público y abierto de blockchain (no simplemente un TestNet limitado y controlado) podría soportar más de 6,1 millones de transacciones en un período de 24 horas: un promedio de 4200 txs por minuto o 71 txs por segundo, con un rendimiento máximo que alcanza cientos de transacciones por segundo.
Pensamientos finales
El sistema Leased Proof-of-Stake permitió 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 cadenas de bloques. Las tarifas son bajas porque no hay necesidad de pagar a los mineros recompensas en bloque para compensarlos por los altos costos de electricidad y el costoso hardware.
La escalabilidad en cadena ha sido una prioridad para Waves, pero existen límites en la medida en que cualquier cadena de bloques puede escalar de esta manera debido al almacenamiento y el ancho de banda necesarios. Los desarrolladores de Waves creen que el enfoque actual se puede optimizar para admitir hasta 1000 TPS antes de que se requieran más soluciones de escala. Actualmente, Waves está explorando opciones para una solución de escalamiento de segundo nivel que involucra cadenas laterales, lo que permite procesar una gran cantidad de transacciones en una cadena paralela pero, en última instancia, asegurarlas en la cadena de bloques principal de Waves.


