Nous vivons dans un monde de tokens

Ils sont partout !

Mais non, rien à voir avec des aliens ou autre théorie du complot.

A l'époque ou on pouvait aller à des concerts, on achetait un ticket (papier ou numérique). Ce ticket, doté d'un identifiant, donnait le droit d'assister à un concert à telle date. Parfois il spécifiait aussi un emplacement.

Et bien le token, (ou "jeton" en français) c'est la version numérique de ce droit.

  • Parfois c'est un numéro : 2021021456

  • une chaîne de caractères : 8d5ezf18z54s81d8-zf84fe1d8cd-84gefd8

  • ou encore un QR code :

Un token peut désigner un droit transférable à un autre propriétaire.

Il peut aussi être non-transférable, quand il est associé à votre identité (par exemple le numéro de votre carte de fidélité Leroy Merlin).

On peut y avoir des tokens identiques, interchangeables : les tokens fongibles. Par exemple un jeton de casino : il représente le droit de jouer une somme fixe. Et tous les jetons de même somme sont interchangeables.

Les crypto-monnaies sont aussi des tokens fongibles. Ils peuvent avoir été émis avec une quantité fixée à l'avance (la masse monétaire), donc leur valeur de marché fluctue en fonction des offres et des demandes d'achats.

Regardez autour de vous, dans votre portefeuille, dans votre courrier : ils sont partout !

Même sur votre poubelle, il peut y avoir un token dans une puce RFID pour numériser votre droit de faire collecter vos ordures ménagères (dans la limite d'un certain poids parfois !).

Les tokens sont une version dématérialisée d'une autorisation ou d'un titre de propriété d'un actif numérique.

Jusqu'à présent cantonnés dans des usages un peu obscurs, ils prennent désormais une place majeur dans nos vies.

Même le célèbre bitcoin, considéré il y a quelques années comme le “moyen de paiement favori des criminels” est devenu une devise à part entière, encouragée par des annonces comme celle de Tesla début février 2021 (1,5 milliard de dollars investis en bitcoins).

Mais les tokens ne se réduisent pas aux seules crypto-monnaies. En pratique, les usages possibles vont bien au-delà.

Les différents usages des tokens.

Partons d'un cas d'usage simple et fréquent : le droit de consulter des données dans une application web.

Lorsque vous vous connectez, l'application vérifie d'abord que vous êtes bien celui que vous prétendez être. C'est l'authentification. Vous avez un login associé à un mot de passe, et l'application vérifie la concordance des 2 informations.

Lorsque l'authentification est réussie, l'application va vous délivrer un token. Grâce à cet identifiant numérique, vous avez acquis une autorisation, c'est à dire un droit d'accès à certaines données du système.

A chaque clic sur un menu, un bouton, une ligne d'un tableau, le token reçu va accompagner la requête adressée au serveur : "voici ce que je demande, et voici mon token attestant que j'ai le droit d'y accéder".

La durée de validité du token est limitée. Au bout d'un moment, il faudra en redemander un nouveau.

En théorie, ce token n'est pas transférable. Mais techniquement il peut l'être. Si quelqu'un s'empare du token par une attaque “cross-site scripting”, il peut accéder aux données pendant sa durée de validité !

Prenons un autre exemple moins courant.

La start-up française https://sorare.com/ propose des cartes digitales de joueurs de football.

C'est comme les cartes de joueurs de baseball aux US, mais version numérique. Les cartes sont émises en quantité limitée, elles sont échangeables, et plus étonnant : elles n'existent pas physiquement.

Ni carton, ni plastique. Ces sont des actifs 100% numériques.

Chaque carte est donc accompagnée d'un token unique (non fongible) qui la désigne. Comme les cartes sont transférables, il faut un système permettant de déterminer le propriétaire.

Mieux encore : il faut que ce droit de propriété survive à l'entreprise. Si je possède une carte numérique, je dois encore la posséder (et pouvoir l'échanger) même si la startup explose.

Mais comment éviter qu'une copie illégale du token ne conduise à transférer le droit d'accès ou de propriété qu'il désigne ? Et comment éviter que l'entité qui a créé le token ne puisse altérer ce droit ?

Sans contrefaçon.

C'est un point particulièrement épineux : la protection du token contre la copie ou l'altération du droit qu'il numérise.

Car s'il suffit de copier/coller un token pour acquérir le droit associé, ça va rapidement mettre le système par terre.

Un billet de banque ou un jeton de casino possèdent des éléments techniques qui garantissent leur authenticité.

Mais pour un token qui n'a pas d'existence physique ?

La solution consiste à s'appuyer sur la cryptographie.

Ce sont des techniques mathématiques qui vont par exemple permettre de chiffrer des données à l'aide d'une clé secrète. Toute l'astuce consiste à utiliser un algorithme qui va rendre impossible (ou très compliqué) la reconstitution de la clé à partir des données qu'elle a cryptées.

Dans le cas d'un token d'autorisation, le serveur va y inclure une signature numérique en chiffrant les données qu'il contient (nom de l'utilisateur, droits d'accès) à l'aide d'une clé qu'il est le seul à connaître.

Et pour nos cartes de joueurs de foot ?

On va utiliser la blockchain.

La blockchain consiste à décentraliser le registre qui recense tous les échanges de la carte depuis sa création. Cette décentralisation sur de nombreux serveurs, adossée à des techniques cryptographiques, va garantir l'inaltérabilité du registre.

Personne ne pourra y modifier a posteriori une transaction, même pas celui qui a émis la carte.

Personne ne pourra ajouter une transaction d'échange, sans l'accord authentifié des 2 parties.

La blockchain, c'est un notaire dématérialisé et décentralisé. Sans papier. Sans bureau (là j’avais une idée de blague, mais j’ai préféré ne pas l’écrire pour en pas vexer ma notaire).

Les questions à poser la prochaine fois qu'on vous parle de token ou de jeton

Alors pour démystifier le sujet lorsqu'un développeur vous parle de token ou de blockchain, faîtes-vous une idée concrète de l'impact ou de l'intérêt pour votre projet au travers de ces questions simples :

  • Comment obtient-on un nouveau token ? Peut-on l'échanger avec quelqu'un d'autre (transférable) ?

  • Est-il unique (carte de joueur de foot) ou fongible (bitcoin) ?

  • Quelle est sa durée de vie ? Survit-il à son créateur ?

  • Quel est son périmètre ? Peut-il être utilisé par n'importe qui à une échelle mondiale ? Restreint à un pays ? Une entreprise ? Un logiciel ?

  • Quel droit numérise-t-il ? Que permet-il de faire ? Pendant combien de temps ?

  • Comment se protège-t-on d'une usurpation ou d'une altération du droit qu'il numérise ? Quelles sont les conséquences si quelqu'un s'en empare ?

Les réponses à ces questions vous permettront d'évaluer la pertinence de la solution technique retenue pour numériser un droit de faire ou de posséder quelque chose. Même si la blockchain est tendance, c'est parfois sur-dimensionné pour votre projet.

Bonne semaine !

— Hervé