Dfinity ou l’Internet Computer
Un Internet nouveau
Le Web 2.0 et son modèle arrive à saturation. Les grandes entreprises technologiques de la Silicon Valley et leurs plateformes ont une trop grande emprise et il devient quasi impossible de s’imposer face à elle tant leur force de frappe est énorme en termes économiques, bien sûr, mais également en terme d’audience.
Étant donné cette portée, beaucoup de startups utilisent les API de ces géants pour développer leurs idées. Par exemple, se baser sur l’API de Facebook pour développer son entreprise permet de s'immiscer virtuellement dans la vie de plus de 2 milliards de personnes dans le monde.
Ce fût le cas de Zynga, un studio de jeu vidéo dans le navigateur distribué via Facebook.
Leur jeu phare, FarmVille, à atteint jusqu’à 83 millions d’utilisateurs actif par mois. La majeur partie des revenus de Zynga était des achats in-app. Leur introduction en bourse a atteint des records avec une valorisation à 1 Milliards de dollar ! Tout allait très bien jusqu’à ce que Facebook impose à Zynga que les paiements soit fait en “crédit Facebook”, ce qui impliquait un reversement de 30% des bénéfices de Zynga à Facebook. C’est alors la chute folle du prix de l’action Zynga en bourse, qui passe de 10 à 2 $.
Il existe d'autres cas similaires, comme la récente expérience de Fortnite avec Apple
Il devient aussi compliqué de lever des fonds si le service délivré par la startup qui doit en bénéficier est basé sur les API d’un des géants de la tech.
Les opportunités sont limitées, la compétitivité et l’innovation également.
L’Internet Computer cherche à adresser ce problème en mettant à disposition des technologies permettant de créer des services irrévocables et permanents, à l’image des “smart contract” d’Ethereum. Cela permettra de créer des effets de réseaux entre services en rétablissant la confiance entre les acteurs. Le but étant de renforcer l'idée d'extensibilité des services afin que chacun puisse apporter sa pierre à l'édifice.
Une nouvelle blockchain ?
L’Internet Computer n’est pas une blockchain en tant que telle, mais plutôt une évolution de celle-ci, très inspirée par la notion de “Blockchain Computer” introduite par Ethereum.
Cette nouvelle plateforme est très proche d’Ethereum dans le sens où elle est basée sur un protocole réseau décentralisé tolérant aux fautes qui utilise des tokens et du gaz pour maintenir sa cohérence. Cependant, ces notions ne seront pas du tout visibles pour les utilisateurs et permettra donc de simplifier l’utilisation des applications pour les non initiés.
Une alternative aux clouds existants
Le vrai but de l’Internet Computer est de proposer une nouvelle plateforme décentralisée pour challenger les clouds des géants de l’internet comme Google Cloud Platform, Amazon Web Services ou encore Azure.
Dfinity se différencie par la mise en place d’un nouveau protocol appelé ICP (Internet Computer Protocol) qui sera utilisé par différents data centers indépendants dans le monde entier pour les combiner en un Internet Computer capable d’héberger des applications avec les mêmes garanties de sécurité qu’un smart contrat d’Ethereum.
De plus, l’accent est mis sur le fait que l’Internet Computer n’appartient pas et n’est pas géré par une entreprise privée. En effet, la plateforme est gérée par le biais d’un système de gouvernance décentralisée au travers du protocole ICP.
Pour la partie développeur, Dfinity a cherché à simplifier leur expérience en réinventant la manière de développer, déployer et accéder aux applications.
Sur l’Internet Computer, on se concentre sur le développement de son produit et on oublie les configurations réseau, les load balancers, les pare-feux, les volumes de stockage et même les bases de données !
Sympa, par où on commence ?
Sur cette nouvelle plateforme, il faudra déployer des modules WebAssembly qui contiendront votre code et ses dépendances. Ces modules seront appelés des “Canisters” et sont des conteneurs applicatifs. On retrouve donc tous les avantages de la conteneurisation à savoir la simplification et la fiabilité des déploiements.
Cependant, une différence majeure a été introduite car contrairement à un conteneur, le Canister sera capable de stocker l’état de l’application ainsi que toutes les modifications faites par les interactions utilisateur. Et contrairement aux smart contracts d'Ethereum il sera également possible de mettre à jour ces Canisters à la même adresse en gardant les données.
Pour développer un Canister, Dfinity à introduit un nouveau langage : Motoko.
Motoko est un langage haut niveau permettant d’exploiter toutes les spécificités de l’Internet Computer dans une syntaxe concise. En effet, lors de l'événement de lancement de leurs plateforme en test, les ingénieurs de Dfinity ont écrit un clone de TikTok en 2000 lignes de code Motoko nommé “CanCan”… Plutôt impressionnant. Le code n'est pas encore accessible, mais vous pouvez jeter un œil à une session de live coding par ici.
Il est aussi possible de développer ses Canisters Rust grâce au SDK mis à disposition. Nous avons donc le choix de rester sur des technologies connues pour développer nos applications.
Allez, on se lance ?
Pour le moment le réseau Dfinity est toujours en test mais il a été rendu disponible aux développeurs qui en ont fait la demande.
Il est donc déjà possible de développer nos applications en local grâce aux SDK mis à disposition et de déployer nos Canisters sur le réseau de test grâce aux identifiants que nous délivre Dfinity.
J’ai commencé quelques POCs : je trouve les motivations du projet vraiment pertinentes et l’approche très intéressante.
Je suis donc impatient de voir ce qu’ils nous réservent par la suite et je reviendrai vers vous dans un prochain article pour présenter plus en détail le développement d’un Canister !
------------------------------
Article rédigé par Anthony, Lead Dev Full Stack & Expert en Blockchain chez ESENS | Retrouvez tous nos articles tech sur le Blog ESENS !
Vous souhaitez rejoindre la dream team ? Venez jetez un œil à nos offres d'emploi !