Algorithme de consensus de preuve d’enjeu loué et protocole Waves-NG
Auteur : Guy Brandon, contributeur Waves.
Le réseau Waves fonctionne sur un algorithme de consensus de preuve de participation louée (LPoS) combiné au protocole Waves-NG, permettant un degré élevé d'évolutivité et de débit de transaction.
Introduction
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 à utiliser dans les processus métier, avec une vaste boîte à outils couvrant divers besoins - notamment la création facile de jetons de crypto-monnaie personnalisés ; des contrats intelligents simples ; trading peer-to-peer sur un échange décentralisé intégré (DEX) ; et un moyen sûr et pratique d'interagir avec les dApps et les services Web via le plug-in de navigateur Waves Keeper.
Évolutivité
Dès le départ, Waves a reconnu que l’évolutivité serait nécessaire pour l’adoption massive de la blockchain et a donné la priorité au développement de technologies permettant de remédier aux limites des blockchains existantes. Par exemple, Bitcoin est hautement sécurisé mais relativement lent et ne peut prendre en charge qu'environ 7 transactions par seconde (TPS). En tant que tel, Bitcoin n’est pas suffisamment efficace pour être utilisé comme monnaie courante dans le monde entier. Des solutions de deuxième niveau telles que Lightning Network sont nécessaires pour que Bitcoin puisse atteindre cet objectif. Waves a adopté une approche différente, en se concentrant initialement sur une évolutivité élevée en chaîne avant d'envisager des applications de deuxième niveau.
Location de solde
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 l'offre est fixe : il n'y a pas d'inflation, comme c'est le cas avec les pièces extraites de PoW. Par conséquent, les validateurs de blocs Waves (les faussaires, bien qu’ils soient généralement simplement appelés « mineurs » au sein de l’écosystème Waves) reçoivent des frais de transaction pour les blocs qu’ils traitent, mais aucune récompense de bloc.
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 n'exécutaient pas de nœud complet – de louer leurs jetons WAVES à des nœuds miniers. Les WAVES loués sont verrouillés dans le compte de l’utilisateur et ne peuvent être ni transférés ni échangés. Néanmoins, les jetons restent sous le contrôle total du titulaire du compte et les baux peuvent être annulés à tout moment. Compte tenu des frais techniques associés à 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 proportion relativement faible de la communauté Waves exécute des nœuds (une liste de générateurs de blocs peut être trouvée sur https://dev.pywaves.org /générateurs/).
Les jetons WAVES loués à un nœud minier sont utilisés pour augmenter le poids de la participation du mineur, ce qui à son tour augmente les chances que ce mineur 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 on utilise de WAVES pour sécuriser le réseau, mieux c'est, car il devient plus difficile pour un attaquant d'accumuler les jetons nécessaires pour mener une attaque à 51 %. Deuxièmement, WAVES peut être loué à un nœud à partir de l’adresse de stockage frigorifique d’un utilisateur, mais le nœud lui-même – qui reste en ligne – ne peut avoir qu’un solde minimal. Cela réduit considérablement le risque de piratage des jetons WAVES à partir d'ordinateurs en ligne, puisque les fonds loués ne sont pas transférés au mineur.
Une nouvelle approche du consensus : Waves-NG
Une nouvelle mise à niveau du réseau a eu lieu en décembre 2017, avec le lancement de Waves-NG. Il s'agit d'un nouveau protocole basé sur la proposition Bitcoin-NG du professeur d'informatique de Cornell, Emin Gün Sirer.
Le protocole Bitcoin original choisit chaque mineur rétrospectivement. Une fois qu’un bloc a été ajouté à la blockchain, les mineurs s’affrontent pour trouver un hachage valide pour le bloc suivant, en fonction de l’état actuel de la blockchain. Pendant ce temps, les transactions nouvellement générées vont dans le pool de mémoire (mempool), où elles resteront en attente jusqu'à ce qu'un mineur les collecte et les valide.
Bien que les protocoles Bitcoin et Bitcoin-NG soient tous deux considérés comme des systèmes byzantins à tolérance de pannes (BFT), ce dernier a été proposé en 2015 comme une alternative évolutive basée sur un mécanisme de fonctionnement différent. Sur un système Bitcoin-NG, le prochain mineur est choisi à l’avance et ce mineur crée un « bloc clé » vide – qui est le bloc qui sera finalement ajouté à la blockchain. De petits blocs appelés « microblocs » (constitués de quelques transactions chacun) sont ajoutés en temps quasi réel à ce bloc clé. Pour utiliser une analogie quotidienne, cela revient à ajouter plusieurs sacs de courses (microblocs) à un chariot (keyblock), avant que le chariot complet ne soit finalement amené à la caisse (ajouté à la blockchain). Cela signifie que les transactions peuvent être ajoutées à la blockchain en quelques secondes seulement, le seul véritable retard étant la latence du réseau. Waves a mis à jour cette idée de réseau de preuve de participation, en créant le protocole Waves-NG – le premier déploiement de Bitcoin-NG pour une blockchain publique ouverte.
Les transferts de masse sont un autre ajout à l'écosystème. Ceux-ci permettent de regrouper jusqu'à 100 transferts en une seule transaction, avec des frais réduits. La limite de 100 txs par MassTransfer a été choisie comme compromis entre l'ajout d'une capacité et de commodité significatives, d'une part, et la limitation de la possibilité d'envoyer de très gros lots de transactions à faible coût en une seule fois, d'autre part. Si plusieurs transferts doivent être effectués, plusieurs MassTransfers peuvent être soumis séquentiellement.
En d’autres termes, les utilisateurs peuvent simplement choisir un transfert de masse comme type différent de « transaction d’envoi », leur permettant d’inclure jusqu’à 100 destinataires dans une seule transaction. De plus, les adresses des destinataires peuvent être fournies via JSON ou téléchargées à partir d'un fichier CSV, ce qui rend simple et efficace la réalisation de largages importants ou l'exécution de paiements hebdomadaires à ceux qui louent leurs WAVES à des nœuds miniers. Combinée à Waves-NG, la fonctionnalité MassTransfer a permis un débit très élevé sur le réseau.
Un certain nombre de tests de résistance ont été menés sur le réseau Waves pour évaluer le potentiel de débit du nouveau protocole. En octobre 2018, un test de résistance majeur a été réalisé sur MainNet. Cela a démontré que le protocole blockchain public et ouvert (pas simplement un TestNet limité et contrôlé) pouvait prendre en charge plus de 6,1 millions de transactions sur une période de 24 heures – une moyenne de 4 200 tx par minute ou 71 tx par seconde, avec un débit maximal atteignant des centaines de transactions par seconde.
Pensées finales
Le système Leased Proof-of-Stake a permis aux utilisateurs quotidiens sans expertise technique de contribuer à sécuriser le réseau Waves, en louant leurs WAVES à des nœuds complets sans perdre le contrôle de leurs jetons. Pendant ce temps, Waves-NG a permis un débit allant jusqu'à 100 TPS, ce qui est un ordre de grandeur supérieur à celui de nombreuses blockchains. Les frais sont faibles car il n'est pas nécessaire de payer les mineurs avec des récompenses globales pour les compenser pour les coûts élevés de l'électricité et du matériel coûteux.
L'évolutivité en chaîne a été une priorité pour Waves, mais il existe des limites à la mesure dans laquelle une blockchain peut évoluer de cette manière en raison du stockage et de la bande passante requis. Les développeurs de Waves estiment que l’approche actuelle peut être optimisée pour prendre en charge jusqu’à 1 000 TPS avant que des solutions de mise à l’échelle supplémentaires ne soient nécessaires. Waves explore actuellement les options pour une solution de mise à l'échelle de deuxième niveau impliquant des chaînes latérales, permettant de traiter un grand nombre de transactions sur une chaîne parallèle mais finalement sécurisées sur la blockchain principale de Waves.


