Écrire sur la blockchain
Une blockchain, ou chaîne de blocs, est un immense registre de transactions rendu infalsifiable par un mécanisme de validation économique. La sécurité d'un tel système dépend entièrement de la valeur d'un jeton numérique (token). Cest pourquoi la fonction première des protocoles tels que Bitcoin est de traiter les échanges de ce jeton.
Pour Bitcoin, tout est construit autour des transactions en bitcoins (BTC) : toutes les 10 minutes environ, les nouvelles données transactionnelles sont regroupées dans un bloc qui est ajouté à la chaîne par un mineur.
Cependant, au-delà des informations strictement financières, il est possible d'inscrire des données arbitraires sur la chaîne, dont notamment du texte. Étant infalsifiable, la chaîne de blocs peut être exploitée comme un outil permettant d'écrire des données que personne ne pourra modifier, ce qui s'avère utile pour certains cas concrets. L'usage notarial est celui qui vient en premier à l'esprit : l'infalsifiabilité de la chaîne de blocs pourrait grandement améliorer la transparence et l'efficacité des organisations administratives. Mais cette propriété pourrait également être utilisée pour la publication de contenu résistant à la censure sur Internet. La censure pratiquée par les grandes plateformes sociales du web (comme Facebook, Youtube ou Twitter), très sensibles à la pression sociale et à la contrainte gouvernementale, est désormais une réalité. En témoigne le récent ostracisme du conspirationniste américain Alex Jones, qui a vu ses comptes personnels se faire supprimer des différents réseaux, ou bien la purge par Facebook de plus de 800 pages partageant du contenu politique.
Comment écrire du texte sur la blockchain de Bitcoin ?
Dans Bitcoin et ses dérivés (Bitcoin Cash, Litecoin, Dash), il existe deux méthodes principales pour écrire des données arbitraires sur la blockchain : la transaction coinbase et le code opération OP_RETURN.
La transaction coinbase
La première méthode consiste à écrire les données dans la transaction de récompense, appelée « coinbase », qui rémunère le mineur lorsqu'il trouve un nouveau bloc. Plus précisément, les informations sont inclues dans le script de déverrouillage (scriptSig) de cette transaction. Ainsi, cette méthode est strictement réservée aux mineurs.
L'usage pratique qui en est fait consiste pour les mineurs à indiquer le nom de leur coopérative (mining pool) pour s'identifier. Par exemple, on peut voir dans n'importe quel explorateur de blocs que le bloc 545 847 de la chaîne de Bitcoin a été signé par le mineur sichuans9, qui fait partie de la coopérative de minage chinoise ViaBTC.
Cet usage permet de connaître publiquement quelle est la puissance de calcul relative des forces en présence, comme le montre le graphique ci-dessous.
Les mineurs peuvent également écrire des choses plus personnelles. Pour l'anecdote, Satoshi Nakamoto avait utilisé cette méthode le 3 janvier 2009 en copiant la phrase de une du Times dans le premier bloc (genesis block). Cela lui permettait de prouver que le lancement n'avait pas eu lieu avant cette date et, dans le même temps, d'évoquer l'objectif de Bitcoin en mettant l'accent sur le fait que le ministre des finances britannique était sur le point de renflouer les banques pour la deuxième fois :
The Times 03/Jan/2009 Chancellor on brink of second bailout for banks
Le code opération OP_RETURN
Le seconde méthode permettant d'écrire sur la chaîne de blocs est plus démocratique puisqu'elle permet à n'importe qui d'inclure des données non financières dans une transaction. Elle consiste en l'utilisation d'un code opération spécifique, appelé OP_RETURN, du langage de script de Bitcoin. Ce code opération crée une sortie transactionnelle indépensable qui n'est pas conservée par les nœuds dans leur mémoire vive. L'usage du code opération OP_RETURN est néanmoins assez limité puisqu'il ne peut être utilisé qu'une seule fois par transaction et que les données inscrites sont restreintes à une taille de 80 octets. Sur Bitcoin Cash, cette limite est de 220 octets depuis mai 2018.
Ce type de donnée arbitraire est assez fréquent sur la blockchain de Bitcoin puisque cela concerne 1 à 2 % des sorties transactionnelles. Une petite exploration permet de tomber sur des cas insolites. Dans une transaction, quelqu'un s'est amusé à écrire « Hello world! ». Une autre transaction contient carrément une demande en mariage : « Megan, will you marry me? - James ».
Notez qu'il existe aussi d'autres méthodes, non prévues par le protocole, qui consistent à utiliser des transactions non-standard ou à manipuler des transactions standard pour inscrire des données sur la chaîne de blocs.
Memo, le Twitter décentralisé
Le protocole Memo se présente comme un média social hébergé sur la blockchain. Il a été lancé le 15 avril 2018 sur le réseau Bitcoin Cash. Comme sur Twitter, l'utilisateur peut publier de courts messages visibles publiquement. Il a aussi la possibilité de répondre à un message, de l'aimer, de changer son profil, de suivre un autre utilisateur, etc. La publication est libre et ne nécessite pas forcément de créer un compte.
La particularité de cette plateforme est que toutes les actions effectuées sont enregistrées sur la chaîne de blocs de Bitcoin Cash. Par conséquent, il est nécessaire de payer des frais de transactions pour pouvoir l'utiliser. Heureusement, ces derniers sont très faibles : bien en-dessous du centime actuellement. Ce fonctionnement peut être vu comme un gros inconvénient à une adoption de masse, mais cela a aussi pour effet de limiter le spam.
L'avantage majeur de ce fonctionnement est que n'importe qui peut aisément lancer son propre site permettant d'utiliser ce protocole : Memo ne dépend en rien du site principal memo.cash. Si le site est fermé par les autorités, les données ne seront pas perdues puisqu'elles sont conservées sur la chaîne de blocs. On a donc affaire à un réseau social résistant à la censure.
Sur le réseau Bitcoin Cash, il existe également un protocole permettant d'écrire des textes plus longs appelé Matter. On peut donc publier des articles sur la blockchain, et même des livres !
Steem, la plateforme de blogging
Dans le monde très varié des cryptomonnaies, il existe une blockchain spécialisée dans le blogging : il s'agit de Steem qui a été lancée en mars 2016 par Ned Scott et Dan Larimer. Steem (de l'anglais esteem, estime) est une plateforme de blogging qui a la particularité de récompenser les utilisateurs qui publient du contenu. Les articles et les commentaires publiés sont enregistrés sur la chaîne de blocs. La rémunération se fait grâce à la création monétaire du jeton natif, le steem (STEEM).
Contrairement à Bitcoin et ses dérivés, Steem n'a pas de frais de transaction, mais une limitation sur la bande passante : chacun peut donc publier un article gratuitement à condition d'avoir créé un compte. Chaque auteur est récompensé en fonction du nombre (pondéré) de votes que son article reçoit. Ceux qui votent reçoivent également une petite quantité de steem. Un auteur peut espérer gagner quelques centimes à ses débuts, et plus à mesure qu'il gagne en popularité.
Le site principal est Steemit.com, mais il existe d'autres sites comme le très utilisé Busy.org. Notez qu'il y a une communauté francophone active se réunissant par l'intermédiaire du tag #fr.
Les fichiers
Il est donc possible d'écrire du texte arbitraire sur la blockchain, mais qu'en est-il des fichiers plus volumineux ? Puisque les frais sont calculés en fonction de la taille de la transaction, cela peut s'avérer très coûteux. Enregistrer une image de quelques centaines d'octets reste faisable, mais aller plus loin ne vaut pas la peine, surtout sur la chaîne de Bitcoin où les frais sont assez élevés.
Une solution pour remédier à ce problème consiste à se contenter d'inscrire l'empreinte du fichier sur la chaîne au lieu du fichier lui-même. Le fichier est transformé par une fonction de hachage (comme SHA-256 par exemple) en une empreinte unique de taille fixe, ce qui permet de l'identifier. Les fonctions de hachage sont à sens unique : on ne peut pas reconstituer le document à partir de l'empreinte produite.
Cet usage permet la preuve d'existence. En publiant cette empreinte sur la chaîne, on fait correspondre une transaction horodatée à un document donné sans le dévoiler. Ceci apporte la preuve que ce fichier existait avant la date et l'heure spécifiées. De plus, le détenteur du document peut le prouver en signant numériquement un message avec la clé ayant servi à faire la transaction, ce qui peut l'aider à montrer qu'il en est l'auteur.
Cet usage peut aussi être exploité par les systèmes décentralisés d'hébergement de fichiers. Le système IPFS (InterPlanetary File System) utilise en effet les empreintes des fichiers pour les identifier et permettre leur stockage par un réseau pair-à-pair d'utilisateurs. Il est donc possible d'associer texte écrit sur la chaîne de blocs et des images ou des vidéos, hébergées de manière décentralisée. C'est d'ailleurs ce que fait Dtube qui utilise à la fois la blockchain Steem et le système IPFS.
Ainsi, cette possibilité d'écrire sur la chaîne de blocs en profitant de son immuabilité ouvre la porte à de nombreux usages qui, bien qu'ils soient encore balbutiants, pourraient devenir la norme à l'avenir.
Si vous avez des questions sur les crypto-monnaies, le Bitcoin ou la blockchain vous trouverez peut-être une réponse dans notre Foire Aux Questions.
Avis des lecteurs
J'aimerais bien connaître un peu plus sur ce sujet merci
Bonjour, j'ai besoin de votre aide en voulant envoyer des bitcoin sur mon portefeuille binance je me suis trompé d'adresse et envoyé sur un compte tiers je ne sais pas comment faire pour annuler la transaction, ou contacter la personne qui a reçu...pouvez vous m'aider?
Bonjour, avez-vous envoyé vos bitcoins sur une autre adresse bitcoin ?
Bonjour, Oui une autre adresse bitcoin effectivement mais qui appartient a un tiers
Bonjour,le 23/07/2020 à 00h08 mn mon compte a été piraté et suite de celà j'ai constaté que mon portefeuille Bitcoin à été débité de 410,13$.Svp aidez moi à récupérer mon argent.L'adresse btc qui a reçu cette somme est 1AkaZcRWXdsiDRwvtZgG7h9m6X2QzdyADh.Merci de me répondre urgemment!