Algorithme de consensus de preuve d’enjeu loué et protocole Waves-NG
Auteurs : Guy Brandon, contributeur Waves.
Le réseau Waves fonctionne sur l'algorithme de consensus de preuve de participation louée (LPoS) en combinaison avec le protocole Waves-NG, qui offre un degré élevé d'évolutivité et de débit de transactions.
Préface
Le réseau Waves a été lancé en 2016 après une ICO qui a permis de récolter 30 000 BTC, soit environ 16 millions de dollars à l'époque. Le projet développe un écosystème blockchain complet pour les solutions commerciales avec une large gamme d'outils couvrant une variété de besoins, notamment la création facile de jetons personnalisés, de contrats intelligents, le trading peer-to-peer sur un échange décentralisé intégré (DEX), ainsi qu'un moyen sécurisé et pratique d'interagir avec les dApps et les services Web à l'aide du plugin de navigateur Waves Keeper.
Évolutivité
Dès le début de Waves, la société a reconnu que pour l'adoption massive de la technologie blockchain, il lui faudrait améliorer l'évolutivité et donner la priorité au développement technologique pour répondre aux limites des blockchains existantes. Par exemple, Bitcoin est très sécurisé, mais il est relativement lent et ne peut prendre en charge qu'environ 7 transactions par seconde (TPS). Ainsi, le Bitcoin n’est pas assez puissant pour être utilisé comme monnaie de tous les jours. Une solution de couche 2 telle que Lightning Network est nécessaire pour que Bitcoin puisse y parvenir. Waves a adopté une approche différente, qui s'est initialement concentrée sur l'évolutivité élevée de la chaîne avant d'envisager les applications de couche 2.
Solde de location
L’algorithme de consensus original de Waves était une simple implémentation de Proof of Stake. Les 100 millions de jetons WAVES ont été distribués après l'ICO et leur offre totale est fixe, sans inflation, comme c'est le cas pour les pièces PoW. Par conséquent, les validateurs sur Waves (les faussaires, bien qu’ils soient généralement appelés « mineurs ») sont récompensés par le paiement de frais forfaitaires plutôt que par des récompenses.
Le système Leased Proof of Stake (LPoS) a été entièrement lancé en mai 2017, permettant aux utilisateurs du client Waves Lite, ceux qui ne peuvent pas exécuter un nœud complet, de louer leurs jetons WAVES pour des nœuds miniers. Les tokens loués sont verrouillés dans le compte de l'utilisateur et ne peuvent être ni transférés ni échangés. Ils restent cependant sous le contrôle total de leur propriétaire et la location peut être annulée à tout moment. Compte tenu de la surcharge technique liée à l'exécution d'un nœud de minage et de la nécessité d'être en ligne 24h/24 et 7j/7, seule une partie relativement petite de la communauté Waves les gère (une liste de validateurs peut être trouvée sur https://dev.pywaves.org/generators /).
Les jetons WAVES loués sont utilisés pour augmenter la mise du mineur, ce qui à son tour augmente les chances qu'il trouve le bloc suivant. Le système Leased Proof of Stake améliore la sécurité du réseau d’au moins deux manières. Premièrement, plus les WAVES sont utilisés sur le réseau, mieux c'est, car il devient plus difficile pour un attaquant d'accumuler les jetons nécessaires à une attaque à 51 %. Deuxièmement, WAVES peut être loué à un nœud à partir du portefeuille froid d'un utilisateur, mais le nœud lui-même, qui reste connecté au réseau, ne doit avoir qu'un solde minimum. Cela réduit considérablement le risque de piratage des jetons WAVES depuis les ordinateurs connectés au réseau, puisque les fonds loués ne sont pas transférés au mineur.
Une nouvelle approche du consensus avec Waves-NG
Une nouvelle mise à jour du réseau a eu lieu en décembre 2017 avec le lancement de Waves-NG. Il s'agissait d'un nouveau protocole basé sur Bitcoin-NG créé par Emin Gün Sirer, professeur d'informatique à Cornell.
Le protocole Bitcoin original sélectionne chaque mineur rétrospectivement. Une fois qu'un bloc a été ajouté à la blockchain, les mineurs se font concurrence pour trouver un hachage valide pour le bloc suivant en fonction de l'état actuel de la chaîne. Entre-temps, les transactions nouvellement créées sont transférées dans le pool mémoire, où elles resteront en attente pendant que l'un des mineurs les collecte et les vérifie.
Bien que Bitcoin et Bitcoin-NG soient tous deux considérés comme un système de tâche générale byzantine (BFT), ce dernier a été proposé en 2015 comme alternative pour améliorer l'évolutivité basée sur un mécanisme de travail différent. Dans le système Bitcoin-NG, le prochain mineur est choisi à l'avance et crée un bloc de clé vide - c'est le bloc qui sera éventuellement ajouté à la blockchain. Des petits blocs appelés microblocs (constitués de plusieurs transactions) sont ajoutés à ce bloc clé. Dans un exemple quotidien, cela reviendrait à ajouter quelques sacs de courses (microblocs) à un panier (keyblock) avant qu'il ne se remplisse et n'arrive finalement à la caisse (ajout à la blockchain). Cela signifie que les transactions peuvent être ajoutées à la blockchain en quelques secondes seulement, avec la seule véritable latence liée au réseau. Waves a mis à jour la preuve d'enjeu, créant le protocole Waves-NG, il s'agit de la première interprétation de Bitcoin-NG pour une blockchain publique ouverte.
Un autre ajout à l'écosystème était MassTransfers. Cela vous permet de regrouper jusqu'à 100 transferts en une seule transaction avec une commission réduite. La limite de 100 TPS pour MassTransfer a été choisie comme compromis entre capacité et commodité importantes, et comme limitation de la capacité à envoyer de très gros lots de transactions à faible coût. Si plusieurs transferts doivent être effectués, plusieurs MassTransfers peuvent être mis en œuvre séquentiellement.
En d’autres termes, les utilisateurs peuvent simplement sélectionner MassTransfer comme autre type d’envoi de transaction, leur permettant d’inclure jusqu’à 100 destinataires dans un seul transfert. De plus, les adresses des destinataires peuvent être fournies dans des fichiers JSON ou CSV, ce qui rend simple et efficace les largages importants ou les paiements hebdomadaires à ceux qui louent leurs WAVES à des nœuds miniers. Lorsqu'il est combiné avec Waves-NG, MassTransfer offre un débit réseau très élevé.
Une série de tests ont été menés sur le réseau Waves pour évaluer le débit du nouveau protocole. En octobre 2018, un stress test du réseau principal a été réalisé. Cela a démontré que le protocole blockchain public et ouvert pouvait prendre en charge plus de 6,1 millions de transactions par jour et une moyenne de 4 200 TPS par minute ou 71 TPS par seconde, avec un débit maximal atteignant plus de 100 transactions par seconde.
Conclusion
Le système Leased Proof-of-Stake a permis aux utilisateurs ordinaires de contribuer à sécuriser le réseau Waves en transférant leurs jetons WAVES vers des nœuds sans en perdre le contrôle. Dans le même temps, Waves-NG offre un débit allant jusqu'à 100 TPS, ce qui est un ordre de grandeur supérieur à celui de nombreuses blockchains. Les transactions sont également moins chères car il n’est pas nécessaire de verser aux mineurs une récompense globale pour compenser leurs coûts d’électricité et d’équipements coûteux.
L'évolutivité de la chaîne est une priorité pour Waves, mais il existe certaines limites pour d'autres réseaux blockchain ayant la même approche en raison de la quantité de mémoire et de bande passante requises. Les développeurs de Waves estiment qu'il peut être optimisé pour prendre en charge jusqu'à 1 000 TPS avant que des solutions supplémentaires ne soient nécessaires. Waves étudie actuellement diverses options pour faire évoluer la deuxième couche, qui comprend une sidechain, qui lui permettra de traiter un grand nombre de transactions sur une chaîne parallèle et éventuellement de la sécuriser avec la chaîne principale.

