Les obstacles à l’adoption des smart contract (et leurs solutions)

Abdoulaye Diallo
4 min readJan 4, 2019

--

On appelle « smart contract » les programmes déployés sur la blockchain Ethereum. Ceux-ci peuvent autant servir à créer de la monnaie virtuelle, qu’à lever des fonds ou faire des jeux vidéos mais ils intéressent les juristes pour leur capacité à exécuter automatiquement des termes d’un véritable contrat.

Trois ans après l’arrivée de la technologie, le peu d’entreprises connaissant les smart contract les voient encore comme une lointaine technologie d’avenir, dont les atouts ne sont pas prêts d’excéder les tares.

Beaucoup d’éléments expliquent cette situation. Sans prétendre à l’exhaustivité, nous essaierons d’identifier dans cet article les principaux obstacles à l’adoption massive de cette technologie et les efforts produits pour les surmonter.

La scalabilité

La scalabilité d’un logiciel désigne son aptitude à performer de manière satisfaisante même en cas de changement d’ordre de grandeur de la demande. Pour rappel, une blockchain est une sorte de registre distribué, dont chaque transaction est validée par un habile mécanisme de consensus. Lorsqu’on parle de sa scalabilité, on vise concrètement sa capacité à valider un nombre élevé de transactions par seconde.

Or, seules 15 transactions par seconde sont validées sur la blockchain Ethereum aujourd’hui. Cela la rend impropre à accueillir un nombre massif d’utilisateurs ou à sous-tenir des applications gourmandes car à mesure que le nombre d’utilisateurs augmente, la validation des transactions prend plus de temps et ralentit les applications fonctionnant sur le réseau.

C’est pourquoi la scalabilité est le sujet principal sur lequel planchent les « core » développeurs d’Ethereum, puisqu’il s’agit du point sur lequel ils peuvent le plus influencer afin d’accélérer l’adoption de leur technologie.

La solution trouvée semble être de transiter du mécanisme de consensus du proof of work (où le validateur d’un bloc de transactions est choisi après qu’il ait réussi en premier à solutionner un problème cryptographique) vers le proof of stake où les aspirants validateurs mettent en jeu une partie de leur coin afin d’être choisi aléatoirement comme validateur d’un bloc (plus le montant mis en jeu est élevé plus on a de chance d’être choisi).

Ce dernier mécanisme aurait l’avantage de requérir bien mois de consommation électrique que celui du proof of work et permettrait une validation des transactions exponentiellement plus rapide.

La transparence des informations

Les transactions et les adresses publics des utilisateurs sont consultables par tous dans une blockchain. Cette caractéristique embarrasse les utilisateurs qui voudraient profiter des avantages d’un registre distribué tout en préservant leur anonymat. Elle explique en partie la popularité des blockchains dites à permission où ces utilisateurs peuvent choisir qui auront accès à leurs données.

Une solution prometteuse à cet inconvénient de transparence est l’utilisation nouvelle d’une technique cryptographique appelée « zero knowledge proof ». Elle consiste en la faculté de prouver de manière irréfutable la véracité d’un élément, sans rien dévoiler sur celui-ci. Exemple : Prouver qu’une personne est bien majeure, sans rien dévoiler sur son âge ou encore prouver qu’une transaction a bien eu lieu sans rien dévoiler sur le montant, l’envoyeur et le receveur.

Implémentée sur Ethereum, elle permettrait aux entreprises de créer des smart contract de manière parfaitement anonyme.

L’insécurité des langages de programmation

La blockchain Ethereum a prouvé, à travers le temps, la sécurité de son système. En revanche les smart contract ont fait beaucoup parler d’eux à cause de leur vulnérabilité (l’exemple le plus connu étant le piratage du DAO en 2016).

Cette vulnérabilité structurelle (tous les programmes sont potentiellement faillibles) couplée à l’ immuabilité de la blockchain effraient les entreprises souhaitant automatiser des contrats à forts enjeux.

Aussi, des efforts sont réalisés pour accroître la sécurité des langages de programmation: récemment Ethereum a lancé un nouveau langage de programmation nommé Vyper (très inspiré du langage Python) qui a été construit de telle sorte à permettre une meilleure auditabilité et prédictibilité des smart contract.

La volatilité des monnaies virtuelles

On peut déterminer dans un smart contract les conditions dans lesquelles un paiement sera déclenché. Ce paiement se fait alors dans des monnaies virtuelles, programmables, et pouvant être transférées à très moindre frais.

Ces monnaies virtuelles ont néanmoins le grand inconvénient d’être hyper volatiles. Même les plus stables d’entre elles peuvent varier de plusieurs dizaines de points en une journée. Ce trait en fait davantage des objets de spéculation plutôt que de véritables moyens de paiement.

A ce problème, ont été crées les stablecoins, qui constituent la grande innovation de l’année 2018 dans le monde des cryptomonnaies. Les stablecoins sont des monnaies virtuelles stables, en ce qu’elles sont indexées à un actif existant dans le monde réel. Souvent cet actif est le dollar. Le mécanisme est relativement simple : une entreprise émet des tokens et pour chaque token émis, un dollar est placé dans un compte en banque. De cette sorte, les utilisateurs du token ont l’assurance que leur monnaie virtuelle sera toujours supporté par un dollar. D’autres stablecoins existent et fonctionnent sur un mécanisme davantage décentralisé : c’est le cas du DAI qui est très populaire et prometteur.

On peut citer d’autres obstacles à l’adoption des smart contract, comme le problème de l’oracle ou l’ergonomie d’utilisation pour les non initiés. Ces freins, connus et adressés dans l’écosystème, sont autant de marches à gravir de la technologie vers la démocratisation.

--

--