Qu'est-ce que Massa ?

Quelle est la vision globale de Massa ?

2022 marque le temps où les blockchains modulaires sont portées en triomphe, victorieuses du difficilement soluble trilemme de la blockchain. Toutefois, 2022 peut également être l’année où décentralisation, sécurité et scalabilité ne sont plus antinomiques, mais œuvrent de concert dans une direction commune. C’est l’approche que nous propose Massa labs.

En s’appuyant sur le principe d’un graphe acyclique orienté (DAG) multi-thread, ce nouveau protocole annonce la nouvelle ère des blockchains monolithiques. Plus performantes et sécurisées, mais surtout plus décentralisées. Et nous allons rapidement en prendre conscience, pour Massa labs la décentralisation n’est sujette à aucune concession. Avant d’aborder le sujet, petit tour d’horizon de l’équipe.

Initialement, la blockchain Massa était un projet de recherche mené par 3 amis passionnés de mathématique, devenus aujourd’hui cofondateurs. C’est un point qui ressort fortement dans ce projet au travers du perfectionnisme latent avec lequel est menée chaque étape.

  • Sébastien Forestier : CEO – docteur en intelligence artificielle
  • Damir Vodenicarevic : CTO – docteur en physique fondamentale
  • Adrien Laversanne-Finot : CSO – docteur en information quantique

Depuis les premières recherches en 2017, l’équipe s’est étoffée et compte aujourd’hui une dizaine de core devs, complétés par des services supports & compliances. Preuve de la forte compétence et de la prescience de cette équipe, la 23e édition du concours d’innovation i-Lab organisée par le ministère de l’Enseignement supérieur, a été l’occasion de primer le projet Massa du prix de l’innovation.

À quel niveau de décentralisation s’attendre ?

Dotés d’une forte vision cypherpunk, les fondateurs ont insufflé cet ADN à leur protocole jusqu’à en former sa genèse. Massa labs ambitionne ainsi de devenir la blockchain avec le niveau de décentralisation le plus élevé de l’écosystème. 

Comme le mentionne Damir « une blockchain peut être considérée comme une mauvaise base de données, lente et qui coûte cher. L’un des apports majeurs est la décentralisation. S’éloigner de cet attribut revient à perdre de vue son premier atout. »

Pour ce faire, le choix d’un consensus Proof-of-Stake a été privilégié. Ce dernier a l’avantage sur le plan de la décentralisation de ne pas conférer d’économie d’échelle telle que permise par le Proof-of-Work via l’acquisition de matériel de mining.
Le PoS possède toutefois des talons d’Achille inhérents liés à la distribution, à la concentration du coin natif, à l’accessibilité du setup hardware nécessaire, ainsi qu’au montant à staker afin de devenir validateur. Un faible nombre de validateurs signifierait qu’un grand pan de la sécurité est laissé de côté. 

Un soin très particulier est donc porté à la distribution du Massa. La répartition de cette dernière sera bientôt rendue publique, toutefois aucune entité ne pourra acquérir plus de 1 % du supply. Ce que nous savons actuellement : 

  • Lors de la vente privée, 5 millions d’euros ont été levés, un montant divisé entre 100 fonds d’investissement et particuliers répartis dans 18 pays ;
  • L’intégralité de l’équipe Massa (fondateurs compris) s’attribuera une partie (très) minoritaire, avec un vesting portant sur plusieurs années ;
  • Courant 2022 lors de la vente publique, l’acquisition se fera sur base de KYC et sera capée afin de s’assurer d’une décentralisation maximale ; 
  • Même règles concernant les rewards attribuées à la communauté ayant participé au testnet et aux futurs ambassadeurs. 

Le montant à staker pour devenir validateur est également une variable sensible au sein d’un consensus PoS. La quantité de coin requise est encore à l’étude, mais l’équipe souhaite évidemment le rendre accessible au plus grand nombre, l’objectif étant d’avoir un maximum de validateurs.

Même si aucun calcul computationnel n’est requis dans le consensus choisi par Massa, être pair d’un réseau P2P nécessite tout de même un setup hardware.
Actuellement lors du testnet, il est possible de faire tourner un nœud sur un simple Raspberry Pi. À terme il est conseillé d’avoir un équipement plus conséquent, tout en restant abordable, constitué de : 

  • 8 CPU (4 physiques) 
  • 16 GB de RAM 
  • 1 TB de stockage 

Par ailleurs, éviter une concentration de la puissance de validation est une source d’attention particulière. 
Au sein du testnet par exemple, la concentration géographique est examinée. Le scoring de chacun des bêta-testeurs se voit donc impacté négativement si leur nœud est hébergé dans un lieu commun à de nombreux autres. Ceci afin d’accroitre l’indépendance du réseau.
Lors du mainnet, la vigilance concernant la concentration revêtira une autre forme, celle concernant les custodians. S’appuyant sur les analyses de marché qui exposent la mainmise de certaines entités sur divers réseaux en PoS, l’équipe de Massa étudie les recours juridiques pouvant éviter cela. L’objectif est de limiter l’influence potentielle de ces custodians, influence qui est souvent issue de particuliers qui délèguent leur stake.

L’objectif premier du projet demeure donc la décentralisation dans ce qu’elle représente de plus noble, cela induit également au respect de la communauté et de ses choix. Une gouvernance via DAO est donc à prévoir, permettant aux utilisateurs de statuer on-chain sur certains points majeurs du protocole. 

Qu'est-ce que le coefficient de Nakamoto ?

Comme cela vient d’être présenté, le niveau de décentralisation peut dépendre d’un important nombre de facteurs. Un coefficient tente toutefois de le quantifier : le coefficient de Nakamoto. L’actuel calcul s’inspire de la courbe de Lorenz & du coefficient de Gini, en les combinant avec une approche basée sur des sous-systèmes. 

Une blockchain est alors interprétée comme un système divisé en un ensemble de sous-systèmes. Il est alors de rigueur de déterminer combien d’entités il est nécessaire de contrôler dans chaque sous-système pour qu’un risque de collusion apparaisse dans le système entier. 

Les sous-systèmes sélectionnés dans l’équation sont : 

  • Pluralité des validateurs (qui récupère les récompenses ?) 
  • Diversité des clients (par codebase) disponibles pour accéder au réseau 
  • Nombre de développeurs (par commit sur une durée donnée) 
  • Quantité d’échange (en volume) 
  • Décentralisation des nœuds (par nombre) sur le plan géographique 
  • Niveau de concentration de la supply (par adresses) 
  • Etc.. 

Ce coefficient nous permet d’obtenir une base objective sur laquelle comparer différents réseaux.
Diverses études (notamment celle d’Arxiv en 2021) appuient leur calcul sur la pluralité des validateurs, attribuant un score de 4 à Bitcoin et de 3 à Ethereum.
Sur cette même base, la blockchain Massa obtient grâce à son approche un score théorique de 1 000 .

Quelle est l'architecture technique ?

La solution Massa, anciennement nommée Blockclique se base sur une structure de multithread DAG. Cela se traduit par une blockchain monolithique avec sharding des transactions entrainant des exécutions sur des threads parallèles, sans réconciliation finale. Disséquons ces termes : 

« Blockchain monolithique » 

Tout d’abord pour pleinement pouvoir comprendre ce qu’implique une blockchain monolithique (autrement nommée blockchain intégrée), il est nécessaire de présenter les 3 composants majeurs qui constituent une blockchain. Consensus, Exécution et Disponibilité.

  • Le consensus définit la vérité canonique sur les données d’une blockchain et permet de sécuriser le réseau. 
  • L’exécution représente les calculs nécessaires à l’évolution de l’état d’une blockchain.
  • La disponibilité des datas se réfère aux données hébergées par chacun des nœuds. 

À la différence des blockchains modulaires dont la nouvelle architecture d’Ethereum est la figure de proue, les blockchains monolithiques réalisent l’ensemble des tâches précédemment citées sur le layer 1. Ainsi, le consensus, l’exécution et la disponibilité des données sont assurés par la même couche, ce qui est le cas de Bitcoin par exemple. 

  1. Le principal avantage des structures monolithiques est leur résilience. En effet leur sécurité est directement dépendante de la somme des ressources qui œuvrent au respect des règles fixées par le consensus. Dans le cas des blockchains monolithiques, toutes les ressources sécurisent le réseau principal. 
  2. Leur principal désavantage, en revanche, est leur soumission beaucoup plus importante au trilemme de la blockchain. 
  3. Le principal avantage des structures modulaires est leur importante scalabilité. Naturellement lorsque vous divisez les taches et attribuez chacune des parties à des actions spécifiques, vous gagnez en efficacité. 
  4. Le principal désavantage de ces blockchains est le revers de la médaille du point précédemment cité. Lorsque le réseau est divisé en plusieurs sous-unités, il est plus aisé pour un attaquant d’atteindre un ratio suffisant à une attaque sur l’une des sous-unités. On juge toujours la résistance d’une chaine à la solidité de son maillon le plus faible.

« Sharding des transactions avec thread parallèles » 

Afin d’être fonctionnelles et prévenir des risques de doubles dépenses, la grande majorité des blockchains ont un fonctionnement en DAG séquentiel. 
Pour les plus techniques : Un vortex par séquence et un direct edge lié à chaque vortex.
Pour les moins techniques : Les blocks sont produits un à un et sont enchainés par un lien parent/enfant. 

Dans cette disposition classique (ex. : Bitcoin), la blockchain référente est celle qui est la plus haute (dont la somme de difficulté est la plus élevée). 
Les validateurs veillent donc à prendre les transactions en attente dans le mempool afin de construire un bloc valide selon le consensus en vigueur. Puis une fois le bloc constitué, il est propagé à l’ensemble du réseau et devient le dernier bloc de la blockchain référente. Cela revient à avoir un unique canal, un seul thread sur lequel tout est réalisé. 

L’équipe de Massa vient alors proposer une nouvelle architecture, composée de 32 threads, qui permet de paralléliser la structure des données.
Chaque bloc créé dans un thread spécifique possède ainsi 32 blocs parents.
Le problème me direz-vous est donc : comment éviter qu’une adresse puisse réaliser une double dépense en exécutant la même transaction dans deux threads différents ?
Pour ce faire, Massa permet à chacune des adresses d’effectuer ses dépenses uniquement au travers d’un seul et même thread. Ceci étant défini par les premiers bits de l’adresse. 

Chaque thread possède ainsi des transactions avec en entrée uniquement une plage d’adresse définit et en sortie toutes les potentielles adresses du réseau. 

Une propriété unique émerge donc : la possibilité de créer des forks et des désynchronisations sans risque de corruption de la blockchain. 
Là où dans les blockchains standards il est nécessaire pour les nœuds d’avoir le dernier bloc pour pouvoir créer le suivant, avec la blockchain Massa les validateurs peuvent travailler sur un nouveau bloc sans posséder tous les derniers. 

Exemple : 

  • JOE possède 50 Massa et son adresse est définie comme émettrice sur le thread 1
  • BOB possède 10 Massa et son adresse est définie comme émettrice sur le thread 4
  • JOE souhaite envoyer 5 Massa à Bob. 

Un validateur est chargé de créer le nouveau bloc (N1) du thread 1. 
Il récupère la transaction de JOE dans le mempool. 
Tant que le dernier bloc (N) du thread 1 possède un état où le solde de JOE est > 5 Massa, la transaction sera valide. 
Le validateur peut donc prendre en parents les derniers blocs connus des 31 autres threads, même si des forks sont présents, car dans aucun d’entre eux le solde de JOE n’aura pu baisser. Au mieux, le solde de JOE ne peut être que supérieur. 
En effet JOE ne peut dépenser son solde qu’au travers du thread 1. Toutefois, il peut recevoir des coins et tokens depuis des transactions issues de tous les threads

Dans cet exemple, JOE va donc créditer le solde de BOB de 5 Massa via une transaction sur le thread 1. Lorsque BOB souhaitera à son tour dépenser tout ou partie de son solde, il le fera via le thread 4. 

Cette solution permet donc d’assurer une cohérence séquentielle des débits pour chaque adresse, tout en permettant une légère désynchronisation des crédits. 

« Sans réconciliation finale » 

D’autres solutions telles qu’Elastico, Zilliqa, Iota proposent également des approches basées sur du sharding de transactions. 

Cependant au sein de ces protocoles, les nœuds doivent régulièrement s’accorder sur la blockchain de référence et les blocs canoniques afin d’éviter une double dépense. C’est ce qui est appelé une phase de réconciliation, souvent géré par un process centralisé. Au-delà d’avoir déjà prouvé ses limites de sécurité avec le shutdown de Iota en 2020, cette phase de réconciliation restreint considérablement les bénéfices de la parallélisation offerte par le sharding de transaction.

Quel est le potentiel du réseau ?

Pour commencer, quelques chiffres :

  • Nombre de transactions théoriques : 10 000 transactions/seconde 
  • Block time moyen du réseau : 2 blocs/seconde 
  • Block time moyen par thread: 1 bloc toutes les 16 secondes 

Temps de finalité : C’est un vaste sujet, car ce qui est souvent comparé entre les divers protocoles est la finalité nominale. Dans le cas où tout se passe bien donc, quelques secondes suffisent à savoir si une transaction a été conclue (validée par le réseau). Toutefois pour une finalité extrême de 10^-15 sur 100 ans, lors d’une attaque avec 40 % du stake qui casserait le système, il faut une finalité de 30 à 40 secondes. 
Pour une finalité acceptable et utilisable quotidiennement, 15 à 20 secondes suffisent.
L’importance de la transaction définira le temps de finalité considéré comme convenable par les parties engagées. 

Choix de l’interpréteur : Web assembly
Le Web assembly permet de toucher une communauté de développeurs beaucoup plus importante. L’équipe envisage que cet interpréteur deviendra la norme à terme puisqu’il permet à de nombreux développeurs de développer dans le langage sur lequel ils sont le plus à l’aise. Un projet dépend en partie de sa communauté de développeurs, c’est donc un point majeur. 

Par ailleurs, la structure en multi-thread proposée par Massa possède d’autres avantages potentiels. Même s’ils ne sont pas envisagés à l’heure actuelle, il est techniquement possible :

  • D’avoir des threads avec des tailles de blocs réduits et une fréquence plus élevée donc une finalité plus courte. 
  • D’avoir des threads sous interpréter EVM et d’autres en Web assembly. 
  • D’avoir des threads spécifiques à certaines utilisations et transactions. 
  • Etc.. 

Quelles sont les nouvelles perspectives ?

Les avantages de Massa labs ne s’arrêtent pas à une blockchain ultra décentralisée et scalable, la proposition de valeur va au-delà de ces deux aspects. 

Le vrai Web3 

Un des problèmes actuels lorsque nous parlons de web3, est qu’il s’agit bien souvent d’un site web centralisé qui permet d’interagir avec des smarts contracts via un wallet connecté. Et ce sont ces points d’accès qui peuvent poser problème, dus à une immutabilité et une sécurité bien moins forte qu’une blockchain. 

Une source de faille potentielle dont se serait bien passé Badger DAO en décembre 2021, dont l’attaque par front-end a couté 120 millions $. Idéalement il est de la responsabilité de tous de vérifier à chacune de nos connexions qu’un site web d’interaction avec une blockchain n’a pas été altéré. Ce qui n’est évidemment pas viable. 

L’idée de Massa labs est de résoudre ce problème en poussant plus loin le concept de l’ENS (Ethereum Name Service). Pourquoi avoir juste une adresse sur laquelle envoyer des coins et des tokens ? Ne pourrait-on pas se servir de ce système pour afficher des sites web décentralisés ? 

La solution est donc de stocker les éléments critiques d’un site internet directement dans un smart contract. Ici on ne parle pas du design, de l’UI/UX, mais de l’interaction du site avec des smarts contracts, des éléments minimaux donc qui sont en soi peu volumineux. 
Pour ce faire, des outils/frameworks permettront d’implémenter des librairies JavaScript sous forme de smart contract. Ces derniers interagiront avec un plug-in et pourront être utilisés par le browser pour afficher toute l’infrastructure du site web. 

Explication : 

  1. Vous tapez le nom de domaine dans votre barre de recherche ;
  2. Le plug-in sera connecté à un node Massa (le votre de préférence) ;
  3. Via le plug-in, le navigateur ira chercher dans la blockchain le smart contract contenant l’infrastructure du site web ;
  4. Le navigateur interprétera alors les données par le biais du plug-in et affichera le site souhaité ;
  5. Les mêmes garanties d’immutabilité que les utilisateurs placent dans les smarts contracts sont présentes sur les points d’accès à ces derniers ;
  6. Les fonctionnalités du site web seront alors directement dépendantes des fonctions du smart contract et traduit par ABI.

Actuellement un POC a été créé et sera bientôt proposé à la communauté durant la phase de testnet. 

On touchera ici la quintessence d’une expérience web3 totalement décentralisée. De la résolution du nom de domaine, à l’interaction avec le site web et à l’hébergement de ce dernier, rien ne passera par des serveurs centralisés. 

Smart contract autonomes 

C’est une des grandes innovations proposées par Massa. Actuellement un smart contract ne s’exécute pas sans appel extérieur d’une de ses fonctions. Afin de pallier cela, ces smart contracts autonomes réaliseront eux-mêmes des appels de fonction sur leur programme selon des règles préétablies. 

Aujourd’hui pour réaliser ce genre d’action de façon automatisée, cela nécessite l’appui d’une infrastructure off-chain, tel que des bots qui vont envoyer des requêtes au node. 

Cette nouveauté directement liée à l’infrastructure de la blockchain, au cœur du protocole, donne la possibilité de payer un montant de gaz en amont pour des exécutions futures. Cela revient à une forme de programmation asynchrone des smart contracts et les perspectives d’automatisation on-chain sont énormes. 

Pour ne citer que quelques exemples : 

  • Des fonctions évènementielles telles que « Réveiller tel smart contract dans 5 blocs et exécuter la fonction X ». 
  • Des actions automatisées telles que « Si Y a lieu sur le smart contract 1 ; faire un appel de la fonction Z sur le smart contract 2, puis sur le smart contract 3… ». 
  • Des protocoles de lending/borrowing où une liquidation automatique des positions sous collatéralisées va être déclenchée via un bot on-chain. 
  • Des mises en place de bots d’arbitrage on-chain entre plusieurs protocoles DeFi. Des reproductions automatiques de NFTs telles que réalisées « manuellement » sur le modèle des Cryptokitties. 
  • Etc.. 

L’environnement d’exécution de ces smart contracts autonomes sera également inédit puisque Massa labs a constitué sa propre VM. 
Pour déployer tout le potentiel de cette innovation, l’équipe prévoit par ailleurs de réaliser quelques applicatifs en s’appuyant sur la core-team, ainsi que de lancer un programme Grants afin d’attirer d’autres développeurs. 

Une démonstration a été réalisée lors de la Paris Blockchain Week qu’il est possible de reproduire chez soi. Pour ce faire : 

  • Installer le Massa wallet en extension (https://github.com/massalabs/massa-wallet)
  • Créer un wallet directement sur l’extension (compatible avec Firefox et Chrome)
  • Allez sur l’URL massa://gameoflife 

La démo peut mettre un peu de temps à charger. À noter que tout ce qui apparaitra alors s’exécute sur la blockchain Massa. Aucun serveur centralisé n’est appelé au cours de ce process.

Quel est l'état actuel du réseau ?

À l’heure où j’écris ces mots, le réseau vient de débuter l’épisode 10 de son Testnet. Nous pouvons revenir sur les résultats de l’épisode 9. 

Épisode 9 

Le réseau a culminé à 5 900 nœuds validateurs ! Ce qui est supérieur à 90 % des mainnets des blockchains actuelles. Ceci est en grande partie la conséquence directe du faible setup hardware nécessaire à faire tourner un nœud. 
De plus l’intérêt pour l’écosystème est croissant et il témoigne de la sensibilité des utilisateurs sur les questions de décentralisation. 

La montée en puissance du réseau se constate également par une augmentation de 20 % des transactions par seconde en comparaison à l’épisode précédent : 1200 txps en moyenne. La fin de l’épisode a par ailleurs donné lieu à un test plus poussé des performances, en montant à 2600 txps pour plus de 2000 nœuds demeurant opérationnels à ces niveaux. 

Une des évolutions majeures de cet épisode porte sur le mécanisme de propagation des transactions (version 9.2). Cela a permis une optimisation de la quantité de bande passante utilisée, ainsi qu’une excellente stabilité en estompant toute prédominance du CPU sur la RAM. 

Épisode 10 (en cours) 

Avec sa version 10.1, le réseau propose ici sa version la plus stable et performante jamais conçue en adressant une optimisation à de légères fuites de RAM constatées dans les épisodes antérieurs. 

C’est avec cette approche d’amélioration continue, transparente et proche de ses utilisateurs que l’équipe travaille les itérations du réseau jusqu’à la sortie du Mainnet.

Quid du Mainnet 

De nombreuses étapes sont encore à réaliser avant le lancement du mainnet prévu Q4 2022. La roadmap exacte devrait sortir courant Q2 2022 

Conclusion

La solution proposée par Massa labs est prometteuse tant via son architecture profonde basée sur un multi-thread DAG que via les innovations apportées.

Le point fort de cette blockchain est sa réponse au trilemme présenté par Vitalik, mêlant une décentralisation et une sécurité maximale à un layer 1 pouvant gérer jusqu’à 10 000 transactions/secondes.

L’équipe a été particulièrement active au cours d’événements du mois d’avril. Il a été possible de les rencontrer au :

  • General talk le 8 Avril à PiX Lille ;
  • Workshop à la PBWS du 13 au 14 avril à Paris ;
  • Hackaton Kryptosphere du 23 au 24 avril à Lyon.

De nombreux autres évènements vont être organisés et seront annoncés sur le discord officiel.

Toutes les informations relatives au lancement d’un nœud sont disponibles sur le github officiel.

 Et si vous souhaitez rejoindre l’aventure, ils recrutent !

Article rédigé par Gaëtan Corcoral

 

Cet article vous est proposé par Massa.