Si vous suivez le monde de la BlockChain et des crypto-monnaies, vous n’avez pas pu passer à côté d’Ethereum, la seconde crypto-monnaie en terme de capitalisation, qui s’est affirmée comme une alternative au BitCoin (énigmatique et à la réputation sulfureuse), et qui possède un écosystème permettant le développement d’applications décentralisées. A la différence du BitCoin, le fondateur d’Ethereum est connu : il se nomme Vitalik Buterin. Jeune informaticien prodige Russo-Canadien de 24 ans seulement à l’heure où nous parlons, il a connu une success story similaire à celle de Mark Zuckerberg, le fondateur de Facebook (même si moins connu du grand public). Il a désormais quitté les bancs de la fac pour se consacrer a Ethereum.

L’Ethereum face au BitCoin

La BlockChain Ethereum est fondée en 2015 par l’Ethereum Foundation, dirigée par Vitalik Buterin alors âgé de 20 ans. Ethereum jouit d’une bien meilleure réputation que le BitCoin chez les utilisateurs et les entreprises car celle-ci est référencée comme une entreprise de par sa fondation, et toute l’équipe de développement est connue (il suffit de les chercher sur le net), contrairement au BitCoin et son mystérieux fondateur inconnu de tous.S’inspirant des fondements du BitCoin (en reprenant le même algorithme de consensus le PoW), Ethereum va plus loin que son aîné et intègre un véritable écosystème de développement d’applications décentralisées, ou encore DAPP, chose que ne permettait pas le BitCoin.
L’Ethereum se différencie par sa rapidité de génération des blocs (10-20 secondes en moyenne), son prix moyen dix fois inférieur en moyenne au BitCoin et la volonté de l’éther (crypto-monnaie d’Ethereum) de devenir un jeton de paiement pour smart-contracts et applications décentralisées.

Les Smart-Contracts

Voir notre article : Blockchain et Smart Contracts

Notion centrale dans l’écosystème Ethereum, un smart-contract peut se résumer comme un programme informatique déployé au sein de la BlockChain et qui peut interagir avec celle-ci. Oui, vous avez bien lu, un Smart-Contract réside dans la BlockChain à une adresse donnée tout comme un crypto-actif et permet des interactions avec son écosystème. En échange d’une certaine quantité d’éthers, le smart contract peut effectuer de multiples actions, comme le stockage de données entrantes ou le transfert d’éthers d’un utilisateur à un autre. Sous Ethereum, le langage de programmation des smart-contracts est Solidity, un langage créé en 2015 par la fondation Ethereum afin de faciliter le développement d’applications décentralisées et une plus grande adoption de son écosystème.

Solidity et la programmation BlockChain

Solidity est un langage de programmation orienté objet haut niveau à la syntaxe proche du JavaScript et qui permet de développer des smart-contracts dans l’écosystème Ethereum.

Dans l’exemple ci-dessus, qui consiste en la vente d’un bien immobilier, l’acheteur et le vendeur se mettent d’accord sur les termes de la vente, qui sont ensuite formalisés et encodés via le smart-contract lui-même par la suite déployé dans la BlockChain Ethereum. Une fois l’échange effectué et le contrat déployé, la vente est définitive, le transfert de fond est effectif et irrémédiable, et le transfert de propriété ne peut être ni falsifié ni être contesté. Comment ? Par les propriétés d’immutabilité de la BlockChain qui empêchent toute falsification des données. Cela démontre un vrai penchant business grâce à Solidity, car on peut ainsi coder les termes d’un contrat via des attributs et les actions via des méthodes, qui peuvent ensuite être déployés et figés dans la BlockChain. Muni de l’adresse de déploiement du contrat, il suffira de faire appel aux méthodes du contrat qui agiront si certaines conditions sont rencontrées pour effectuer des transferts d’ethers, de jetons et autres crypto-actifs d’un compte à un autre, et c’est ainsi que l’on pourra transférer un titre de propriété par exemple.

La norme ERC-20 et ERC-721

A travers l’écosystème d’Ethereum, plusieurs standards de programmation se sont démocratisés et furent approuvés par la fondation Ethereum afin qu’ils puissent définir des implémentations spécifiques pour des smart-contracts.

La norme ERC-20

Norme la plus répandue dans Ethereum, la norme ERC-20 parue en 2015 constitue le pilier pour la « tokenisation » de la société. Cette standardisation a permis le développement rapide d’un très large écosystème de tokens sur Ethereum. Avant sa création, chaque service, chaque projet devait réinventer la roue (le token), ce qui a d’ailleurs eu pour conséquence des erreurs et des incompatibilités. Avec un standard simple et ouvert, les tokens peuvent être déployés facilement. C’est aussi le cas des services utilisant ces tokens. A ce jour, plus de 89000 tokens de type ERC-20 sont référencés et d’autres sont encore en développement, ce qui montre le succès de cette norme; Ce standard a cependant été critiqué pour de nombreuses raisons. D’abord, il n’est valable que pour un token fongible (tous les tokens d’un contrat ERC20 ont les mêmes caractéristiques, ils ne sont pas uniques et on peut échanger deux tokens du même contrat ERC20 sans effet) ce qui pose problème dans le cas de sous-jacents plus complexes et non-fongibles, et il ne prévoit aucune fonction pour éviter les erreurs d’envoi, aucun standard de mise à jour de son code ou de bonnes pratiques quant à son émission, etc…

La norme ERC-721

Afin de combler les défauts du standard ERC-20 et de pouvoir traiter le cas de tokens non- fongibles, le standard ERC-721 fut proposé et intégré dans Ethereum comme standard de programmation au mois de juillet 2018. Le but de ce standard est de pouvoir différencier des tokens du même type mais qui n’ont pas la même valeur. Imaginez deux tokens représentant la propriété d’une voiture A et B chacun. Ces tokens représentent un objet de même type, à savoir une voiture, mais comme on le sait très bien, toute voiture n’a pas la même prix, car plusieurs paramètres rentrent en jeu comme la marque, la date de construction, le kilométrage etc … Donc on voit ici l’intérêt d’émettre des tokens non fongibles dans le cas de produits plus complexes, ce que ne pouvait faire le standard ERC-20 ni les autres.
Afin qu’un token puisse suivre le standard ERC 721 et puisse interagir avec d’autres tokens de ce même standard, notre token doit implémenter le contrat Solidity ci-dessous qui agit comme de manière analogue à une interface Java, à savoir un ensemble de définitions de méthodes.

contract ERC721Basic {
    event Transfer(address indexed _from, address indexed _to, uint256 _tokenId);
    event Approval(address indexed _owner, address indexed _approved, uint256 _tokenId);
    event ApprovalForAll(address indexed _owner, address indexed _operator, bool _approved);

    function balanceOf(address _owner) public view returns (uint256 _balance);
    function ownerOf(uint256 _tokenId) public view returns (address _owner);
    function exists(uint256 _tokenId) public view returns (bool _exists);

    function approve(address _to, uint256 _tokenId) public;
    function getApproved(uint256 _tokenId) public view returns (address _operator);

    function setApprovalForAll(address _operator, bool _approved) public;
    function isApprovedForAll(address _owner, address _operator) public view returns (bool);

    function transferFrom(address _from, address _to, uint256 _tokenId) public;
    function safeTransferFrom(address _from, address _to, uint256 _tokenId) public;
    function safeTransferFrom(address _from, address _to, uint256 _tokenId, bytes _data) public;
}

On voit bien ici que contrairement au standard ERC-20, tous nos tokens sont uniques et identifiés avec leurs ID pour pouvoir les manipuler spécifiquement. Ainsi tous les tokens non fongibles ici sont compatibles car ils implémentent chacun le même standard de programmation.

CryptoKitties, le phénomène sous ERC721

Grand sujet de discussion et véritable buzz de la communauté, Cryptokitties est un jeu en ligne amusant et utilisant le standard ERC-721, qui propose aux internautes des chats numériques que l’on peut collectionner et qui sont uniques. Chaque token correspond à un chat et les utilisateurs peuvent acheter des chats ou se les échanger contre une certaine somme en Ether et enfin les élever.
Le succès est tel que plus de 30000 chats virtuels se sont vendus pour l’équivalent de 4.8 millions de dollars depuis le lancement du jeu le 28 novembre 2017 et certains chats se sont vendus pour des montants ahurissants (le plus rare à 110000 dollars ). Aujourd’hui, les ventes de « cryptokitties » représentent près de 11% des transactions effectuées sur Ethereum.
Vous pouvez accéder à la plateforme et acheter ou créer de nouveaux chatons numériques via ce site.

L’avenir de la BlockChain

3 ans seulement après la mise en place de la BlockChain Ethereum, l’univers des crypto-monnaies et de ses standards n’est qu’à ses débuts. Ethereum a rendu possible une tokenisation massive de la société via ses standards de programmation comme ERC20 et ERC721 qui ont envahi le marché et qui comptent disrupter un grand nombre d’industries comme la finance et même l’industrie des jeux vidéo avec l’exemple de Cryptokitties. Désormais, Ethereum va suivre une nouvelle voie avec l’arrivée de la mise à jour majeure nommée « Metropolis » qui compte changer le mécanisme de consensus d’Ethereum pour passer en Proof-of-stake et intégrer d’autres méthodes de validation de blocs afin d’optimiser le nombre de transactions par seconde pour en atteindre plusieurs milliers (au lieu de 5-6 par seconde pour le moment). Les opportunités de business et de création de valeurs sont infinies et une véritable transformation de la façon dont nous échangeons des biens est à prévoir.


0 commentaire

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.

Ethereum et la norme ERC721

par Emmanuel Marchal Francis temps de lecture : 6 min
0