20190308/01

Des cas d'usages des technos crypto pour l'État

Cas d’usage n°1 : une gestion des identités.

Nous commencerons par attirer l’attention sur un avantage peu mis en avant de l’usage d’adresses BTC comme identités.

La technologie

Dans un réseau cryptographique, chacun est identifié par un couple de clé publique / clé privée.

La clé privée doit rester secrète et la clé publique à vocation à être communiquée aux interlocuteurs du réseau.

Il est évidemment impossible de déduire la clé privée à partir de la clé publique.
Les clés sont en fait des très grands nombres mathématiques, peu faciles à manipuler.
L’adresse est une représentation (un peu) plus simple de la clé publique.

Le schéma est donc le suivant : clé privée => clé publique <=> adresse

Il suffit de connaître l’adresse d’une personne pour accéder à la balance comptable de son compte.
On est alors également en capacité d’envoyer des fonds sur cette adresse.
Il suffit de connaître la clé privée d’une adresse pour être capable de dépenser les fonds qu’elle possède.

Le registre des transactions (la blockchain) est publique.
Chaque transaction est un échange de fonds entre (au moins) deux adresses publiques.
La traçabilité est donc totale.

Les portes monnaies cryptographiques sont en fait des trousseaux de clés.
En simplifiant à l’extrême, un porte monnaie n’a besoin de retenir qu’une seule information : la clé privée.
Cette information étant ultra sensible, elle doit faire l’objet d’une sécurisation absolue.
Il faut en assurer la confidentialité ainsi que la sauvegarde, ce qui peut se révéler contradictoire.

Mais rien n’empêche un même porte monnaie de contenir plusieurs couples de clés.
L’utilisateur possède alors plusieurs identités sur le réseau puisqu’il utilise plusieurs adresses publiques.
Techniquement, il est très facile de créer un couple de clés.
Chacun peut donc en théorie posséder des milliers d’adresses, sa fortune est alors composée de la somme des balances de chacune des adresses.
Mais nous avons vu que la sécurité d’une identité repose sur la connaissance de sa clé privée.
Lorsqu’on se met à utiliser des milliers d’adresses, tout l’enjeu réside donc dans la gestion des milliers de clés privées.
Cela peut rapidement devenir laborieux …

Heureusement, les trousseaux de clés modernes utilisent un système d’héritage entre les adresses.
Grâce aux suggestions des BIP 32, 43 et 44, on peut dériver une adresse d’une autre adresse.
Une relation mathématique lie l’adresse mère à son adresse fille.
Mais il est impossible de remonter de l’adresse fille vers son adresse mère.
Du point de vue du réseau, ces deux adresses sont complètement indépendantes.
Seul le trousseau peut faire la relation entre les deux adresses.
Et il est impossible pour le réseau de savoir que deux adresses sont sœurs.
En fait, il est possible de déduire un grand nombre de filles à partir d’une mère, de l’ordre de deux milliards.
Mieux encore, chaque fille peut elle-même être la mère d’autres adresses, et ce sur une profondeur illimitée.
Ainsi donc, un trousseau n’a à sécuriser qu’une seule information : la clé privée de l’adresse racine.
Toutes les autres clés peuvent en être déduites …

L'usage

On peut donc concevoir qu’un État puisse distribuer des adresses certifiées par ses soins à ses citoyens.
Chacun dispose donc d’une adresse publique, certifiée par l’État.
Mais à partir de celle-ci, chacun est libre de décliner cette adresse en autant de filles qu’il le souhaite.
Même dans les relations avec les services de l’État, il peut choisir de décliner une nouvelle identité à chaque fois :
Une identité pour la CAF, une autre pour la Sécu, les impôts, etc.
De même dans ses relations privées ou commerciales :
Une identité vis-à-vis de la banque, une autre vis-à-vis d’un réseau social, du boulanger, etc.

Je pense qu’à ce stade, le lecteur aura compris l’idée générale de ce cas d’usage.
Le principe de respect de la vie privée devient compatible avec la nécessaire traçabilité des transactions.

On pourrait par exemple imaginer une blockchain parallèle à celle hébergeant les transactions, utilisant les mêmes adresses que le réseau mais dont le token aurait pour seul objet de signifier la validité d’une adresse. Une adresse y ayant un solde positif, même d’un Satoshi, serait d’une adresse valide.

L’État certifie une identité en envoyant un jeton sur l’adresse de cette personne. Chacun peut ensuite émettre et révoquer ses propres adresses filles. Chacun peut vérifier la validité d’une adresse, la blockchain en question étant publique. Eventuellement, l’État révoque l’identité certifiée de l’individu au moment de son décès (selon des modalités à définir).

Pour garantir la confidentialité, cette blockchain pourrait être du type Monero ou ZCash dont la technologie permet de masquer l’origine des fonds présents sur une adresse. Ainsi on ne pourrait pas non plus déduire la filiation des adresses en traçant les échanges de tokens

Enfin, le type des transactions y serait particulier dans le sens où pour envoyer un token à une adresse, il faudrait
- Soit en être le propriétaire, c'est à dire détenir sa clé privée
- Soit partager un secret avec elle, pour sceller la transaction, ce qui implique un échange "offline"

Cela laisse des options quant à la certification des adresses par l'État.
- Soit les adresses certifiées sont des filles de celles de l'État, dans ce cas ce dernier a un contrôle total de toutes les adresses.
Cela lui permet de révoquer une identité et toutes ses filles, au moment du décès de la personne par exemple.
- Soit le script de transaction fait une exception qui permet aux adresses de l'État de verser des tokens sur une adresse dont il n'est pas propriétaire.
On notera que ces deux types de solution peuvent cohabiter dans uen même blockchain.

Il y a donc sans doute matière à satisfaire les plus libertaires d'entre-vous, qui auront également noté que dans ce système, rien n'empêche d'échanger des fonds sur la blockchain principale sur des adresses non certifiées par la deuxième blockchain. Chacun reste libre ...

Autre avantage de ce système, si l'État donne une quantité fixe de tokens, plus l'utilisateur crée d'identités plus il "affaiblit" son identité principale puisque la balance de son wallet diminue. On peut donc avoir plus ou moins confiance dans une identité en fonction de la quantité de tokens dont elle dispose.

Je m’arrête là pour ce premier cas d’usage.
La discussion est ouverte, les bases de l'identité sont posées, on peut passer à la suite.
Rendez-vous pour le second cas d'usage ...