Analyse de recherche originale de Web3.com Ventures
0xPoissonlosophe

Introduction
Avec le récent lancement du réseau principal d’Aptos et son lancement de jetons sur Binance et d’autres bourses centralisées majeures, il n’y a pas de meilleur moment pour rédiger une analyse exploratoire de ce projet de longue date. Enfant orphelin des tentatives de Meta de créer la crypto-monnaie Libra, Aptos perpétue l’idéal de Libra consistant à être la blockchain qui intégrera le prochain million d’utilisateurs de crypto.
L'objectif principal d'Aptos est de fournir une blockchain évolutive, sûre et fiable [1]. Pour ce faire, Aptos s’appuie sur un nouveau langage de contrat intelligent, Move, apparemment un langage « plus sûr » que l’actuel « étalon-or » de Solidity d’Ethereum. Bien entendu, Aptos n’est pas la première blockchain L1 à se présenter comme « évolutive, sûre et fiable ». D'autres chaînes, notamment Solana, ont également tenté d'utiliser ce slogan comme slogan dans leur passé, avec un succès mitigé [2]. Dans cet essai, je m'efforcerai de partir des attributs de base du langage Move, d'analyser les fondamentaux techniques d'Aptos dans le contexte d'autres projets similaires et de fournir une évaluation critique du potentiel et des limites de cette nouvelle chaîne en vogue.
Déplacer la langue
Vous ne pouvez pas faire une analyse d’Aptos sans une analyse du Move Language. En effet, c’est sans doute de là que vient l’essentiel du potentiel d’Aptos. Move a été initialement développé par l'équipe Libra de Meta (maintenant nommée Diem) pour fournir un modèle de programmation de contrats intelligents paradigmatiquement différent par rapport aux autres langages de contrats intelligents ; au lieu d'adopter une approche basée sur les transactions, Move adopte une approche basée sur les ressources pour définir des modèles de contrats intelligents [3].
Alors qu'est-ce que tout cela signifie? À commencer par Bitcoin, la grande majorité des blockchains notables ont adopté une approche « transactionnelle d’abord », dans laquelle chaque entrée dans le bloc d’une blockchain est une transaction (par exemple entre Alice et Bob). Une transaction est un objet relatif ; pour qu’il y ait une transaction, il doit exister une adresse Alice et Bob. Pour garantir qu'Alice ne « dépense pas deux fois » une pièce dans une approche axée sur les transactions, nous devons vérifier qu'il n'y a pas de conflit avec toutes les autres transactions, un problème qui ralentit inévitablement les transactions.
D’un autre côté, l’approche « basée sur les ressources » de Move est radicalement différente. Au lieu d'enregistrer les lignes de transactions A à B, Move enregistre le changement de mains de l'objet (ou de la ressource) et met simplement à jour les attributs en conséquence. Il est important de noter que les ressources sont des entités atomiques : une ressource X existante ne dépend d’aucune autre ressource existante, contrairement au cas des transactions, où une transaction T dépend de l’existence de deux agents antérieurs, A et B. Ainsi, une approche basée sur les ressources permet une structure beaucoup plus atomique et indépendante, optimisée pour une exécution parallèle.

Les « ressources » dans Move sont essentiellement des objets dotés de certains attributs. Dans le jargon technique, ce sont des structs implémentés (c'est-à-dire une structure de données de conteneur) [4]. À ce stade, les personnes ayant une formation en programmation Ethereum peuvent soulever une question : Solidity a également des structures, ainsi que d’autres structures de données. Qu'est-ce qui rend les structures de Move spéciales ? Je pense que la différence la plus importante est que même si les structures dans Solidity ont une partie relativement périphérique dans le langage (étant principalement utilisées pour des raisons de clarté), les structures sont la base de tout dans Move. De plus, les structures de Move ont différentes « capacités », notamment « copier », « déposer », « stocker » et « clé », qui définissent si un objet est duplicable, stockable, supprimable, etc [5]. Ce type de notation structurelle est complètement différent de Solidity, ou même de la grande majorité des langages de programmation courants (par exemple C/C++). Cependant, ces différentes « capacités » sont profondément intuitives. Certaines choses que vous pouvez « copier », comme une pièce de monnaie ou un jeton. Certaines choses que vous pouvez « laisser tomber » ou jeter. D’autres éléments, comme un actif numérique unique, pourraient ne pas pouvoir être copiés. Considérons maintenant la définition officielle suivante d'une « ressource » sur Move :
"Nous appelons souvent les valeurs de structure des ressources si elles ne peuvent pas être copiées ni supprimées." — Structures et ressources, documentation de déplacement du langage [4]
Les « ressources » sont donc essentiellement des « structures » uniques qui seront toujours là pour vous. Comme c'est romantique.
La redéfinition complète d'une « structure » par Move lui permet d'utiliser une structure de données pour définir succinctement les jetons, les NFT, les contrats intelligents et d'autres actifs numériques dans une approche propre et modulaire [6]. C’est quelque chose que l’EVM d’Ethereum ne peut tout simplement pas comparer ; toute personne ayant une certaine expérience du développement à l'aide de l'EVM sait à quel point il est frustrant de gérer des structures (et des structures imbriquées) dans Solidity.
Surtout, l’approche basée sur les ressources de Move garantit ses garanties de sécurité. Comme le mentionne le livre blanc de Move, dans de nombreux programmes, il existe une représentation indirecte des actifs, ce qui signifie que la rareté et le contrôle d'accès ne sont pas évolutifs. Par exemple, alors que la rareté de l’Ether est codée en dur et protégée par l’EVM, les autres jetons ERC-20 « n’héritent pas de ces protections, ils doivent faire attention à ne pas introduire de bogues permettant la duplication, la réutilisation ou la perte d’actifs » [4]. Considérez l’attaque de réentrée classique. C'est quelque chose qui tourmente depuis longtemps les projets EVM, leur faisant souvent perdre des millions et des millions de dollars [7]. En raison de l’approche basée sur les ressources de Move, l’attaque de réentrée est impossible sur Move. Ainsi, la barrière à l’entrée du codage Move est sans doute beaucoup plus accessible que l’EVM – un facteur crucial pour une adoption massive.
Aptos — Principes techniques
La plus grande réussite d’Aptos est sans doute de simplement mettre Move en tant que langage sur le marché. ****En effet, une grande partie de la conception d'Aptos est tirée directement de la blockchain Diem (Libra) développée par Meta. Rappelons qu'Aptos est une chaîne qui met l'accent sur l'évolutivité et la sécurité. Deux implémentations techniques principales sont utilisées pour y parvenir. Le premier se situe dans sa couche consensus, à savoir le mécanisme de consensus AptosBFT. La seconde est sa couche d'exécution, ou le moteur d'exécution Block-STM. Examinons-les dans l’ordre.
Premièrement, AptosBFT est un mécanisme de consensus byzantin tolérant aux pannes, ce qui signifie essentiellement qu'il peut continuer à garantir la sécurité tant que pas plus d'un tiers des nœuds du réseau sont des acteurs malveillants [8]. Il s’agit d’une pratique courante : la preuve de travail de Bitcoin, la preuve de participation d’Ethereum, etc. sont toutes tolérantes aux pannes byzantines. Alors, comment AptosBFT met-il réellement en œuvre son mécanisme de consensus ? Comme toutes les autres chaînes de preuve de participation, Aptos s'appuie sur des nœuds de validation « jalonnés ». Il implémente une variante de l'algorithme de consensus HotStuff, un algorithme PoS moderne qui offre un protocole de communication beaucoup plus propre entre les nœuds par rapport aux modèles précédents (par exemple pBFT) en faisant communiquer les nœuds avec un « leader rotatif » plutôt qu'avec tous les autres nœuds [9 ]. Bien qu'AptosBFT introduit plusieurs optimisations en plus de HotStuff, notamment un « mécanisme de rotation des clés » (pour améliorer la sécurité) et une réduction des frais généraux (pour améliorer l'évolutivité), il n'y a pas de changement structurel majeur dans la conception PoS de HotStuff [10].

D’un autre côté, le moteur d’exécution parallèle Block-STM est une conception beaucoup plus originale et sans doute la principale avancée technique du projet [11]. Rappelez-vous que les ressources sont atomiques : le changement de mains d’une certaine ressource X ne dépend d’aucune autre ressource. En regroupant les transactions en blocs (comme des pièces de Lego), nous pouvons tirer parti d'un parallélisme massif dans l'exécution des transactions de ressources, augmentant ainsi la vitesse de calcul 20 fois supérieure à celle d'Ethereum [11].
Mais comment cela se compare-t-il à Solana et à d’autres moteurs d’exécution parallèle ? La principale innovation de Solana a été de coder en dur toutes ses dépendances de contrats intelligents afin de lui permettre de mener des exécutions parallèles. Avec toutes les dépendances connues à l'avance, le moteur d'exécution Solana peut alors verrouiller les dépendances nécessaires avant l'exécution. D'un autre côté, Aptos gère les dépendances à la volée, en exécutant d'abord toutes les transactions « de manière optimiste » et en cas d'échec, en réexécutant les transactions spécifiques qui ont échoué [12].

Utilisons une analogie simple pour expliquer ce qui précède. Ethereum est une route à une voie où toutes les voitures doivent circuler sur une seule file les unes derrière les autres, tandis que Solana et Aptos sont des autoroutes à quatre voies. Cela accélère évidemment les choses. Mais la question est : comment les voitures circulent-elles sur l’autoroute ? Dans le cas de Solana, chaque voiture se voit essentiellement attribuer une voie spécifique et roulera toujours le long de cette voie. C'est très rapide et efficace dans le meilleur des cas, mais si le processus d'affectation se déroule mal, vous vous retrouvez avec le pire des cas. D’un autre côté, dans le cas d’Aptos, les voitures se voient d’abord attribuer certaines voies, mais si cela ne fonctionne pas, les voitures sont alors autorisées à dévier dans d’autres voies pour éviter les accidents. Par conséquent, même si Aptos ne fonctionne pas aussi vite que Solana dans le meilleur des cas, il est plus fiable que Solana et présente un meilleur scénario dans le pire des cas [13].
Évaluation — Potentiel et limites
Aptos est actuellement la première et la seule grande chaîne L1 basée sur Move à avoir lancé un réseau principal. En tant que tel, la sortie du réseau principal d’Aptos est un événement incroyablement symbolique ; L'argent et l'attention médiatique qu'Aptos a attirés ne sont pas nécessairement à la mesure de son innovation technique inhérente.
Comme mentionné ci-dessus, la principale innovation technique apportée par Aptos lui-même réside dans son moteur d’exécution parallèle Block-STM. La plupart des autres aspects techniques, y compris son mécanisme de consensus et l'utilisation du langage Move, sont des produits hérités légèrement améliorés hérités de Meta [14]. Concernant le moteur d'exécution parallèle Block-STM, il n'est pas clair si cela entraînera une différence qualitative entre l'expérience utilisateur sur Aptos et l'expérience utilisateur sur Solana ; si l’expérience utilisateur est la même, l’utilisateur ne se souciera pas de la manière dont elle est mise en œuvre au niveau technique.
Comme pour tout projet d’infrastructure, le succès à long terme d’Aptos dépend des projets qui choisissent de s’en inspirer. Actuellement, les projets de son écosystème, tels que le Liquidswap DEX, le marché Topaz NFT et le service de domaine Aptos Names, bien que des produits nécessaires dans tout écosystème blockchain, ne sont pas suffisamment uniques pour la conception d'Aptos [15]. Ces projets sont comme une épicerie, une école et un hôpital dans un petit village. Bien que nécessaires au fonctionnement du village, ils ne confèrent pas au village un caractère unique que l’on ne retrouve dans aucun autre village.
En regardant en arrière, une partie du succès de Solana peut être attribuée à des projets tels que StepN qui ont réellement réussi à tirer parti de l’avantage du parallélisme de Solana. Ces projets GameFi et SocialFi impliquent souvent de grandes quantités de données parallèles et relativement isolées. Ainsi, ces applications sont particulièrement adaptées aux moteurs d'exécution parallèles, tels qu'Aptos et Solana, tout en étant également capables d'apporter une large base de consommateurs et un volume de transactions élevé. En effet, à un moment donné, StepN représentait à lui seul environ 20 % des utilisateurs payants de Solana [16].
Ainsi, pour qu’Aptos réussisse en tant que projet d’infrastructure, il doit exister une gamme unique de projets qui tirent grandement parti du moteur d’exécution parallèle d’Aptos, des projets qui ne pourraient pas être réalisés sur Ethereum ou même Solana. Avec la nouvelle conception Block-STM d’Aptos, ceux-ci pourraient potentiellement prendre forme sous la forme d’une nouvelle classe de projets SocialFi dans lesquels les utilisateurs interagissent en petites cliques (comme les discussions de groupe). Parce que ces groupes peuvent être fluides et dynamiques, tout en étant quelque peu indépendants les uns des autres, ils sont beaucoup plus adaptés au moteur d’exécution parallèle d’Aptos que celui de Solana ou d’Ethereum. Mais bien sûr, ce n’est qu’une spéculation abstraite.
Néanmoins, le lancement du réseau principal d’Aptos reste un événement incroyablement important et symbolique dans le monde de la cryptographie. Il représente l’aboutissement d’années d’efforts des ingénieurs Meta pour donner vie à un paradigme qualitativement différent pour résoudre le goulot d’étranglement de l’évolutivité d’Ethereum. Les fonctionnalités linguistiques uniques de Move signifient qu’il y aura inévitablement des DApp bien meilleurs à implémenter sur Move plutôt que sur Solidity ou d’autres langages de contrats intelligents. Mais ces projets seront-ils nécessairement mis en œuvre dans l’écosystème Aptos ? Personne ne sait. Aptos peut bénéficier de certains avantages en tant que premier arrivé en étant capable de mettre Move en production et d'associer son nom au langage Move. Mais en même temps, il pourrait bien souffrir d’un sort semblable à celui de MySpace, celui d’être le premier à arriver.
Au moins une chose est sûre : Aptos est peut-être la première expérience du marché avec Move, mais ce ne sera certainement pas la dernière [17].
🐦 @0xfishylosopher
📅 22 octobre 2022
Avertissement : Cette recherche est à titre informatif uniquement. Il ne constitue pas un conseil en investissement ni une recommandation d’acheter ou de vendre un investissement et ne doit pas être utilisé dans l’évaluation du bien-fondé d’une décision d’investissement.
Les références
[1] Voir la page principale d'Aptos Labs : https://aptoslabs.com/
[2] Introduction à Solana : https://www.forbes.com/advisor/investing/cryptocurrency/what-is-solana/
[3] Livre blanc sur Move Language : https://diem-developers-components.netlify.app/papers/diem-move-a-lingual-with-programmable-resources/2020-05-26.pdf
[4] Déplacer la documentation du développeur pour les structures et les ressources : https://github.com/move-lingual/move/blob/main/lingual/documentation/book/src/structs-and-resources.md
[5] Détails sur les capacités Struct : https://move-lingual.github.io/move/abilities.html
[6] Voir le didacticiel Move Language : https://101blockchains.com/move-programming-langage-tutorial/
[7] https://blog.chain.link/reentrancy-attacks-and-the-dao-hack/
[8] Détails de la tolérance aux pannes byzantine : https://decrypt.co/resources/byzantine-fault-tolerance-what-is-it-explained
[9] Modèle de consensus HotStuff : https://hackernoon.com/hotstuff-the-consensus-protocol-behind-safestake-and-facebooks-librabft
[10] Consensus AptosBFT : https://blog.pontem.network/aptosbft-all-you-need-to-know-about-the-bft-consensus-in-aptos-ff4cf22c7a80
[11] Voir le document technique Block-STM : https://arxiv.org/abs/2203.06871
[12] Comparaison du moteur d'exécution Aptos et Solana : https://www.gofyeo.com/post/aptos-vs-solana-a-technical-comparison-part-1
[13] Analyse du pire des cas Aptos sous la forme O(n²), Solana sous la forme O(n⁴). Détails : https://antiape.substack.com/p/cf40447d-d674-4454-9e09-f003517de6de?s=r
[14] Voir le livre blanc Aptos : https://aptos.dev/assets/files/Aptos-Whitepaper-47099b4b907b432f81fc0effd34f3b6a.pdf
[15] Écosystème Aptos : https://coinmarketcap.com/alexandria/article/what-is-aptos-the-ultimate-guide-to-the-aptos-ecosystem
[16] Tiré du Twitter de Messari Crypto : https://twitter.com/MessariCrypto/status/1567880625218019333
[17] Voir Sui, un autre langage basé sur les mouvements : https://sui.io/