Tout le contenu Coin Academy pour Aptos (APTOS)
Introduction
Outre l’échec du projet Diem (anciennement Libra), les anciens ingénieurs de Meta (ex Facebook) n’ont pas pour autant abandonné l’idée de créer l'infrastructure blockchain de demain. Avec cet objectif en tête, une partie d’entre eux s’est réunie pour créer Aptoslabs.
Aptoslabs s’est donné pour mission de créer un accès universel et équitable aux actifs décentralisés pour des milliards de personnes.
Si cette chanson sonne comme une vieille rengaine, c’est parce que le projet Sui by Mystenlabs, une blockchain créée par d’autres anciens ingénieurs de Meta, a le même objectif en tête.
Avec une levée de fonds couronnée de succès avec près de 200 millions de dollars levés auprès de fonds dont la réputation n’est plus à faire comme FTX Ventures, Coinbase Ventures et bien d’autres, la société Aptoslabs ne manque pas de moyens pour développer la blockchain Aptos.
Aptos qu’est-ce que c’est ?
Aptos est une blockchain de première couche (Layer 1) promettant une scalabilité de l’ordre de 100 000 tx/s afin de ne pas manquer de bande passante pour supporter la charge de plusieurs milliards d'utilisateurs en simultané.
La blockchain Aptos repose sur deux concepts fondamentaux que nous développerons plus loin dans cet article :
- Les transactions : Elles représentent l’échange de données entre comptes sur la blockchain.
- Les états : L’état représente une version de la blockchain à un instant T donné et lorsqu’une transaction est exécutée, l’état de la blockchain change régulièrement.
Ayant pour finalité de rendre accessible leur réseau au plus grand nombre, Aptoslabs a utilisé le langage Move. Ce langage, qui fait beaucoup parler pour son accessibilité et sa sécurité, se démarque comme le langage d’avenir des réseaux distribués de grande ampleur.
En effet, ce langage offre une accessibilité et une sécurité supérieure au langage Solidy (utilisé par Ethereum), notamment grâce à son système de vérification, le rendant très intéressant pour les développeurs.
Comment ça marche ?
Afin de tenir sa promesse des 100k tx/s, Aptoslabs travaille sur plusieurs méthodes :
- Traitement par lots de transactions : Aptos à pour de but d’utiliser le traitement de transaction par lots, en fournissant des preuves de lots (ou de bloc) pour réduire grandement le cout de stockage et de vérification. Habituellement ce procédé se fait à la granularité de la transaction d’où son coup élevé.
- Compression du réseau : la bande passante réseau devient souvent un goulot d’étranglement dans les réseaux peer-to-peer et Aptos n’y fait pas exception. Actuellement, le prefetcher de synchronisation d’état peut récupérer environ 45K TPS dans le devnet avant de saturer la bande passante. C’est un problème pour passer à l’échelle. Heureusement, Aptos utilise la compression standard qui permet de réduire de plus de 10 fois la quantité de données transmises.
- Écritures de stockage plus rapides : actuellement, le débit de synchronisation d’état est entravé par le temps nécessaire pour conserver les données blockchain dans le stockage. Aptos étudie activement différentes optimisations et améliorations qu’ils pourraient apporter pour éliminer ce goulot d’étranglement, notamment : des structures de données plus efficaces, des configurations de stockage plus optimales, d’autres moteurs de stockage.
- Traitement parallèle des données : Jusqu’à présent, Aptos impose une synchronisation d’état qui traite les données de manière séquentielle. Néanmoins, plusieurs approches existantes permettraient d’éviter cette exigence et d’exploiter le traitement parallèle des données pour augmenter considérablement le débit, comme le sharding.
La synchronisation d’état, qu'est ce que c'est ?
La blockchain Aptos s'appuie sur un large éventail de techniques novatrices pour assurer une synchronisation d'état vérifiée à haut débit et à faible latence dans un réseau décentralisé. À noter que la synchronisation d'état est un aspect important, mais souvent négligé lors de la conception de blockchains.
La plupart des blockchains actuelles sont structurées de manière hiérarchique, avec un ensemble de validateurs actifs au cœur du réseau. Les validateurs font croître la blockchain en exécutant des transactions, en produisant des blocs et en obtenant un consensus.
Le reste des pairs du réseau (exemple : les fullnodes et les clients) réplique les données de la blockchain produites par les validateurs (exemple : les blocs et les transactions).
La synchronisation d'état est le protocole qui permet aux pairs non validateurs de distribuer, vérifier et conserver ces données de blockchain et qui garantit que tous les pairs de l'écosystème sont synchronisés. La synchronisation d'état a des conséquences importantes sur les performances, la sécurité et l'expérience utilisateur des blockchains.
Dans l’idée, la synchronisation d’état est d’une importance capitale pour les réseaux distribués. En effet, lorsque de nouvelles transactions sont exécutées, la synchronisation d'état est chargée de propager les données aux pairs et aux clients.
Cela signifie que si la synchronisation est lente, peu fiable ou non optimisée, les pairs percevront de longs délais de traitement des transactions, ce qui gonflera artificiellement le temps jusqu'à la finalité des transactions.
Cela a un impact énorme sur l'expérience utilisateur, par exemple, les applications décentralisées (dApps), les échanges décentralisés (DEX) et le traitement des paiements seront tous beaucoup plus lents.
La synchronisation d’état et le consensus : Les validateurs, qui tombent en panne ou prennent du retard sur le reste de l'ensemble des validateurs comptent sur la synchronisation d'état pour les remettre à niveau (c'est-à-dire se synchroniser avec le dernier état de la blockchain).
Si la synchronisation d'état ne peut pas traiter les transactions aussi rapidement qu'elles sont exécutées par le consensus, les validateurs en panne ne seront jamais en mesure de récupérer leur retard.
La synchronisation d’état joue aussi un rôle crucial dans la décentralisation du système.
En effet, une synchronisation d’état rapide et évolutive permet des rotations plus rapides d’un ensemble de validateurs, car les validateurs actifs peuvent entrer et sortir du consensus plus librement, elle offre aussi plus de validateurs potentiels à choisir dans le réseau et plus de nœuds complets à mettre en ligne rapidement et sans avoir à attendre de longues périodes de temps et des exigences de ressources plus faibles.
Tous ces facteurs renforcent la décentralisation du réseau et permettent de faire évoluer la blockchain.
State sync (ou synchronisation d’état) est aussi responsable de la vérification de l'exactitude de toutes les données de la blockchain.
Cela empêche les pairs et les acteurs malveillants du réseau de modifier, censurer ou fabriquer des données de transaction et de les présenter comme valides.
Les objectifs fondamentaux, fixés par Aptoslabs concernant la synchronisation d’état, sont les suivants :
- Le haut débit, car la synchronisation doit maximiser la quantité de transactions qui doivent être synchronisées par chaque pair par seconde.
- La faible latence, puisque la synchronisation d’état doit minimiser le temps nécessaire aux pairs pour synchroniser les nouvelles transactions engagées par les validateurs. Cela affecte le temps global de finalité perçu par les clients.
- Le temps de démarrage rapide : La synchronisation de l'état doit minimiser le temps nécessaire aux nouveaux pairs (ou aux pairs en panne) pour se synchroniser avec le dernier état de la blockchain.
- La résistance aux défaillances et aux acteurs malveillants, car la synchronisation des états doit être résistante aux pannes (par exemple, les pannes de machine et de réseau) et tolérer les acteurs malveillants dans le réseau. Cela signifie qu'il faut surmonter une grande variété d'attaques, par exemple, des données de transaction fabriquées, des messages de réseau modifiés ou rejoués (replay attack), et des attaques éclipse.
Les transactions et nœuds dans Aptos
Lorsqu'un utilisateur de la blockchain Aptos soumet une transaction, il demande que l'état du ledger soit mis à jour avec sa transaction.
Une transaction validée sur Aptos contient un certain nombre d’éléments :
- Signature : L'expéditeur utilise cette signature numérique comme authentification.
- Adresse de l'expéditeur : L'adresse du compte de l'expéditeur.
- Clé publique de l'expéditeur : La clé d'authentification publique qui correspond à la clé d'authentification privée utilisée pour signer la transaction.
- Programme : Le programme est composé d’un certain nombre d’éléments du langage Move, notamment un module et un nom de fonction ou un script de transaction Move bytecode. Pour une transaction peer-to-peer, ces entrées contiennent les informations du destinataire et le montant qui lui a été transféré. Il peut également y avoir une liste facultative de modules Move bytecode à publier.
- Le prix, quantité max et code devise du gaz : Il s'agit respectivement du montant que l'expéditeur est prêt à payer pour exécuter la transaction, le nombre maximal d'unités de gaz que la transaction est autorisée à consommer et le code de la devise utilisé pour payer le gaz.
Le gaz est un moyen de payer le calcul et le stockage.
- Numéro de séquence : Il s'agit d'un nombre entier non signé qui doit être égal au numéro de séquence du compte de l'expéditeur au moment de l'exécution. Le numéro de séquence d'un compte indique le nombre de transactions qui ont été soumises et engagées sur la chaîne à partir de ce compte. Une transaction n'est exécutée que si elle correspond au numéro de séquence actuel du compte expéditeur. Cela permet de séquencer plusieurs transactions provenant du même expéditeur et d'éviter les replays attack.
- Délai d'expiration : Un horodatage après lequel la transaction cesse d'être valide.
Lorsqu'une transaction est soumise à la blockchain Aptos, les nœuds validateurs qui exécutent un protocole de consensus distribué, exécutent la transaction et la stockent avec les résultats de l'exécution sur la blockchain. Les nœuds validateurs décident quelles transactions seront ajoutées à la blockchain et dans quel ordre.
La blockchain Aptos utilise un protocole de consensus Byzantine Fault Tolerance (BFT) pour que les nœuds validateurs se mettent d'accord sur le grand livre des transactions finalisées et leurs résultats d'exécution. Les nœuds validateurs traitent ces transactions et les incluent dans leur copie locale de la base de données de la blockchain.
Cela signifie que les nœuds validateurs à jour conservent toujours une copie de l'état actuel de la blockchain, localement.
Tokenomics du jeton APT d'Aptos
Le 17 Octobre 2022, Aptos a enfin annoncé la tokenomics de son jeton APT. Le nombre de jetons total initial sera de 1 milliard d'APT. Au lancement, plus de 82% de ces jetons sont stakés.
Aptos a annoncé dans sa prévision du nombre de jetons que le supply devrait augmenter jusqu'à plus de 1,6 milliard de jetons en 2032 (10 ans après le lancement) avec une inflation annuelle max de 7% / an au lancement.
Voici la répartition initial du supply (nombre de jetons APT) :
- Communauté : 510 millions d'APT, soit 51,02 % de la supply totale initiale
- Contributeurs : 190 millions d'APT, soit 19 % de la supply totale initiale
- Fondation : 165 millions de tokens, soit 16,5 % de la supply totale initiale
- Investisseurs : ~134,78 millions de tokens, soit 13,48 % de la supply totale initiale
Distribution des tokens APT pour la Communauté et la Fondation :
Ce pool de jetons est destiné aux projets liés à l'écosystème Aptos. Certains de ces jetons ont déjà été alloués à des projets construits sur le protocole Aptos et seront accordés à l'achèvement de certaines étapes. La majorité de ces jetons (410 217 359,767) sont détenus par la Fondation Aptos, et une plus petite partie (100 000 000) est détenue par Aptos Labs. Il est prévu que ces jetons soient distribués sur une période de dix ans :
- 125 000 000 tokens APT disponibles initialement pour soutenir des projets d'écosystème, des subventions et d'autres initiatives de croissance de la communauté maintenant et dans le futur pour la catégorie Communauté.
- 5 000 000 tokens APT disponibles initialement pour soutenir les initiatives de la Fondation Aptos.
- 1/120 des jetons restants pour la communauté et la Fondation devraient être débloqués chaque mois pendant les 10 prochaines années.
Distribution des tokens APT pour les Contributeurs et les Investisseurs :
Tous les investisseurs et les principaux contributeurs actuels sont soumis à un déblocage progressif des jetons sur 4 ans, à l'exclusion des récompenses de staking, à partir du lancement du réseau principal qui se débloque selon le calendrier suivant :
- Aucun token APT ne sera débloqué pendant les douze premiers mois
- 3/48e des jetons sont débloqués le 13e mois après le lancement du réseau principal et chaque mois suivant jusqu'au 18e mois inclus.
- 1/48ème des jetons est débloqué chaque mois à partir du 19ème mois après le lancement du réseau principal, de sorte que tous les jetons sont débloqués le jour du quatrième anniversaire du lancement du réseau principal.
Information supplémentaire sur l'inflation des jetons APT
- Les détenteurs de jetons qui délèguent leurs jetons à un opérateur de validation afin de sécuriser le réseau et d'obtenir un consensus peuvent recevoir des récompenses de staking.
- Les récompenses de staking sont réparties entre les noeuds validateurs (opérateurs de validation) et les délégateurs et ne sont pas soumises à des restrictions de distribution.
- Actuellement (Octobre 2022), le taux de récompense max commence à 7% / an et est évolue à chaque époque (epoch).
- Le taux de récompense maximal diminue de 1,5 % / an jusqu'à une limite inférieure de 3,25 % / an (ce qui devrait prendre plus de 50 ans).
- Ces récompenses augmentent l'offre totale du réseau Aptos et dépendent du montant misé et de la performance du validateur.
- Les frais de transaction sont actuellement brûlés (burn), bien que cela puisse être revu à l'avenir avec un vote de gouvernance sur la chaîne.
- Toutes les récompenses et tous les mécanismes de récompense sont également modifiables via la gouvernance on-chain.
État du ledger
Un état (state) dans le protocole Aptos est une version à un instant T (snapshot) de la base de données distribuée. Comme nous l’avons vu, une transaction modifie la base de données et produit un nouvel état mis à jour.
L'état du grand livre de la blockchain Aptos (ou état global) comprend l'état de tous les comptes de la blockchain.
À noter que chaque nœud validateur de la blockchain doit connaître l'état global de la dernière version de la blockchain (base de données versionnée) pour exécuter toute transaction.
Base de données versionnée :
Toutes les données de la blockchain Aptos sont conservées dans une base de données distribuée à version unique.
Un numéro de version est un nombre entier non signé (nombre entier qui ne peut contenir que des valeurs positives) de 64 bits qui correspond au nombre de transactions que le système a exécutées.
Cette base de données versionnée permet aux nœuds valideurs de :
- Exécuter une transaction par rapport à l'état du ledger à la dernière version
- Répondre aux requêtes des clients sur l'historique du grand livre à la fois à la version actuelle et aux versions précédentes
- Les comptes A et B représentent les comptes de Bob et Alice sur la blockchain Aptos
- SN-1 : Représente-le (N-1) ème état de la blockchain. Dans cet état, le compte d’Alice a un solde de 110 Pièces Aptos et le compte B de BOB a un solde de 52 pièces Aptos.
- TN : Il s'agit de la Nième transaction exécutée sur la blockchain. Dans cet exemple, elle représente Alice envoyant 10 pièces Aptos à Bob
- F : C'est une fonction déterministe. F renvoie toujours le même état final pour un état initial spécifique et une transaction spécifique. Si l'état actuel de la blockchain est SN-1, et que la transaction TN est exécutée sur l'état SN-1, le nouvel état de la blockchain est toujours SN. La blockchain Aptos utilise le langage Move pour implémenter la fonction d'exécution déterministe F
- SN : C'est le Nième état de la blockchain. Lorsque la transaction TN est appliquée à la blockchain, elle génère le nouvel état SN (résultat de l'application de F à SN-1 et TN). Le solde du compte d'Alice est alors réduit de 10 soit 100 pièces Aptos et le solde du compte de Bob est augmenté de 10 soit 62 pièces Aptos. Le nouvel état SN montre ces soldes mis à jour
La blockchain Aptos utilise des preuves comme moyen de vérifier l'authenticité et l'exactitude des données de la blockchain. Toutes les données de la blockchain Aptos sont stockées dans une base de données distribuée à version unique.
La blockchain est représentée comme un arbre de Merkle en croissance constante, où chaque feuille ajoutée à l'arbre représente une transaction unique exécutée par la blockchain.
Toutes les opérations exécutées par la blockchain et tous les états de compte peuvent être vérifiés de manière cryptographique. Ces preuves cryptographiques garantissent que les nœuds valideurs sont d'accord sur les états.
Grâce aux preuves, le client n'a pas besoin de faire confiance à l'entité dont il reçoit les données. Par exemple, si un client récupère les n dernières transactions d'un compte, une preuve peut attester qu'aucune transaction n'a été ajoutée, omise ou modifiée dans la réponse.
Conclusion
Dans l’ensemble, Aptos propose des solutions prometteuses pouvant potentiellement répondre aux problématiques actuelles des réseaux distribués.
Cependant, comme beaucoup de projets à leur commencement, beaucoup de promesses sont faites, mais les preuves restent elles encore à faire.
Pour l’heure, le Testnet est déjà disponible, mais la concrétisation du Mainnet, prévue pour le troisième trimestre 2022, apportera lui plus de réponses sur ce nouveau système qui se dit pouvoir déployer son réseau à l’échelle mondiale.