Blockchain: technologie et applications à la finance

La blockchain est la technologie qui est à la base du fonctionnement du bitcoin, la cryptomonnaie qui fait beaucoup parler d’elle en ce moment. Cependant, si le bitcoin est plutôt controversé, la blockchain ne l’est pas et constitue une innovation en soi qui a fait la preuve de sa fiabilité. Assez ironiquement, on dira que s’il est possible, grâce au bitcoin, de régler toutes sortes de trafics illicites voire illégaux, il n’est pas possible (grâce à la blockchain) de régler lesdits trafics avec des faux bitcoins. De plus, et c’est le plus important, la blockchain permet de multiples applications bien différentes de la création d’une monnaie.

Dilbert Blockchain

Qu'est-ce que la blockchain?

Une blockchain est fondamentalement un registre de transactions entre les participants ou « nœuds » d’un réseau, ou plus exactement de lots (ou blocks) de transactions :

  • Ordonnés chronologiquement : chaque block est identifié de manière unique, et fait référence à l’identifiant du block qui le précède
  • Irrévocables : une fois qu’un block est validé et ajouté à la blockchain, il ne peut plus être supprimé ni modifié
  • Partagé : tous les nœuds du réseau détiennent leur propre copie de la blockchain, identique à celle de tous les autres ; on parle aussi de « distributed ledger »
  • Décentralisé : aucun nœud du réseau n’agit comme « tiers de confiance », détenteur de la copie de référence de la blockchain
  • Transparent : l’ensemble des transactions enregistrées dans la blockchain est visible par tous les nœuds du réseau
  • Infalsifiable : il est extrêmement difficile voire quasi impossible d’insérer une transaction frauduleuse, voire simplement erronée, dans la blockchain

Ceci amène un certain nombre de questions auxquelles nous allons tenter de répondre dans la suite de cet article :

  •  Comment un nouveau block est-il ajouté à la blockchain ?
  •  Comment sont garanties l’irrévocabilité et la fiabilité des transactions enregistrées dans la blockchain ?
  •  Comment est garanti l’anonymat des participants ?

Last but not least, à quoi ça sert ? Répondons d’abord brièvement à cette question essentielle.

A quoi peut servir la blockchain?

Afin de comprendre les usages possibles de la blockchain, il faut partir de la notion de transaction. On parle de transaction ou de transfert dès lors qu’un échange a lieu entre deux acteurs nécessitant la présence d’un tiers de confiance attestant de la validité du transfert, c’est-à-dire en fait entre 2 acteurs qui fondamentalement, n’ont pas de raison de se faire confiance, principalement parce qu’ils ne se connaissent pas.

Le transfert s’entend au sens large, c’est-à-dire qu’il concerne un bien ou un droit préexistant, qui est donc transmis d’une personne à une autre, ou bien de la création d’un bien ou d’un droit, le transfert consistant alors à attester que la personne est bien le détenteur initial unique :

  •  Transfert ou attestation de propriété : monnaie, titres, biens immobiliers, …
  •  Transfert ou attestation de droits : identité,  propriété intellectuelle, vote, …
  •  Transfert ou attestation d’engagements : location, prêt, partage de matériel, …

Dans tous ces contextes, la validité du droit est attestée par un tiers de confiance : banque, dépositaire central, Etat Civil, cadastre, place de marché, notaire, organisme de copyright, municipalité, … qui tient à jour le registre de propriété des droits.

La blockchain abolit la nécessité de la présence de ce tiers, tout en conservant l’essence de son rôle, c’est-à-dire la confiance. Elle permet le partage de ce registre entre tous les acteurs, de manière décentralisée, tout en garantissant l’authenticité des informations qu’elle véhicule.

Comment marche la blockchain?

A quoi ressemble la blockchain?

Comme dans tout système d’information, la blockchain repose sur un mécanisme de stockage de l’information et une couche logicielle de traitement :

  •  Le système de stockage est excessivement simple puisqu’il s’agit d’une suite de blocks, chacun portant un identifiant unique qui lui est propre (nous revenons par la suite sur comment sont générés ces identifiants) et faisant référence à l’identifiant du block précédent. Les programmeurs connaissent bien ce type d’organisation de l’information sous forme de chaîne de « pointeurs ».
  • Chaque block contient plusieurs transactions, de façon à optimiser le volume d’information à échanger entre les nœuds du réseau toutes les fois que la blockchain est mise à jour
  • Le logiciel peut être est un « freeware », public et maintenu par une communauté de développeurs dans le cas du bitcoin et d’autres blockchains dites « publiques ». Mais il existe maintenant aussi des blockchains privées, distribuées et maintenues par des entreprises à but lucratif.
  • L’ensemble (la blockchain elle-même) ainsi que le logiciel qui la fait fonctionner est distribué entre tous les nœuds du réseau : tous les participants détiennent à tout moment l’intégralité de la blockchain et de l’information qu’elle contient.

Comment sont authentifiées les transactions?

L’authentification des transactions utilise le mécanisme de cryptographie à double clé, publique et privée. Chaque participant dans la blockchain possède une clé publique, qui est son identifiant visible et unique dans la blockchain, et une clé privée, qui est également unique mais qu’il est seul à détenir. Pour signer une transaction, le participant, ici Françoise, entre le texte à signer, ainsi que sa clé privée dans une fonction « Signer », qui renvoie donc la « Signature », une suite unique d’octets :

Signer (« Le 02/02/2016 J’ai vendu mon vélo à Martine », clé privée de Françoise) = « Signature »

Françoise peut alors introduire la nouvelle transaction dans la blockchain avec sa signature et sa clé publique.  Quiconque désire valider que la transaction a bien été émise par le détenteur de la clé publique en question entre dans une deuxième fonction « Valider », la transaction, la clé publique de l’émetteur et la signature. La fonction renvoie « Vrai » si la signature et la clé publique « matchent », « Faux » sinon :

Si Valider (« Le 02/02/2016 j’ai vendu mon vélo à Martine », clé publique de Françoise, « Signature ») = « Vrai »

Alors on peut considérer que Martine est bien la nouvelle propriétaire du vélo.

A noter que ce système respecte aussi l’anonymat des participants. La clé publique est simplement allouée de manière unique par le système mais ne révèle pas l’identité de la personne qui la détient.

Comment est validée une transaction?

La création d’une transaction est excessivement simple, comme on vient de le voir il suffit de saisir le texte de la transaction, de générer la signature au moyen de la clé privée, et de poster l’ensemble sur le réseau : tous les nœuds sont dès lors informés que « le 02/02/2016, Françoise à vendu son vélo à Martine ». Tous peuvent vérifier que la signature de Françoise est authentique au moyen de sa clé publique. Si dès lors Martine désire transférer le vélo à Ghislaine, les participants accepteront sa transaction.

Oui mais… qu’est-ce qui empêche Françoise, le même jour, de poster un message comme quoi elle a également vendu un vélo à Solange ? Ou, s’il s’agit de bitcoins, qu’est-ce qui l’empêche de dépenser deux fois la même quantité de bitcoins ?

Pour l’en empêcher, il faut que l’ordre dans lequel les transactions sont insérées dans la blockchain soit irrévocable, de telle sorte qu’on puisse vérifier à tout instant, en parcourant l’historique, que Françoise détient bien la quantité cédée – en l’occurrence il faudrait qu’elle détienne DEUX vélos (ou bitcoins, ou actions de la société X, …) – au moment où elle la cède.

La transaction sera considérée comme valide s’il y a un consensus entre tous les nœuds du réseau pour affirmer qu’elle l’est. A partir de là elle sera insérée dans la blockchain et ne pourra plus être supprimée.

Comment est élaboré le consensus? Méthode 1: Proof of Work

Au fur et à mesure que des transactions sont créées, elles vont s’agréger dans un nouveau block en attente de validation. Ce sont des nœuds spéciaux du réseau, les « mineurs » (« miners ») qui prennent en charge cette fonction de validation. Comme on l’a vu c’est relativement simple à effectuer. Encore faut-il prouver que le travail a bien été effectué, et ce de manière honnête ! Pour ce faire les mineurs vont être :

  •  Mis en concurrence les uns avec les autres
  •  Intéressés au résultat de la validation.

La mise en concurrence consiste pour les mineurs à effectuer un certain travail de « résolution » d’un problème mathématique complexe. En pratique, il s’agit d’utiliser une fonction cryptographique de « hashage » à 256 bits appelée SHA-256 pour générer une chaîne d’octets, qui constituera l’identifiant du prochain block, à partir de l’identifiant du précédent, et d’un nombre test. La contrainte étant que la chaîne résultante doit commencer par un nombre prédéterminé de zéros.

SHA-256 (Identifiant block n, nombre test) = Identifiant du block n+1 (qui doit commencer par x zéros)

La fonction SHA-256 se comporte de façon totalement imprévisible et il est impossible de « remonter » aux paramètres à partir du résultat. Les mineurs n’ont pas d’autre choix que de tester aléatoirement des nombres tests jusqu’à « tomber » sur un résultat respectant la contrainte. Le premier qui trouve a le droit de valider le block, poste le nouvel identifiant, ou « proof of work » sur le réseau  et gagne… des bitcoins ! C’est le volet « intéressement » du système, et c’est ainsi que les bitcoins sont créés.

L’élaboration du consensus nécessite donc une importante puissance de calcul. Le consensus sera fiable tant que :

  • Personne dans le réseau n’arrive à contrôler plus de 51% des mineurs
  • Le coût d’acquisition de ce contrôle dépasse de loin le bénéfice résultant

Que se passe-t-il si deux blocks sont validés en même temps?

Dans ce cas, il va y avoir un « fork » ou fourche dans la chaîne, deux blocks faisant référence au même block précédent, ce qui n’est pas souhaitable car deux versions de l’histoire sont en train d’être écrites. Dans ce cas, une règle de fonctionnement essentielle s’applique : si à un instant T deux chaînes apparaissent, c’est la chaîne la plus longue qui constitue la version valide de la blockchain. Au pire, pendant un bref moment la communauté des mineurs va se fractionner et travailler en parallèle sur les deux versions, mais très rapidement une des branches va finir par devenir plus longue que l’autre. Cette dernière sera invalidée, et les transactions qui s’y trouvent devront être validées de nouveau.

Cela signifie que, plus le temps passe, plus des blocks vont venir s’agréger à la blockchain, et plus il deviendra difficile de revenir  sur une transaction validée, la puissance de calcul à fournir devenant insurmontable.

Comme le dit l’article fondateur du mythique Satoshi Nakamoto : « Le système est sécurisé tant que des nœuds honnêtes contrôlent ensemble plus de puissance de calcul qu’un groupe de nœuds qui coopéreraient pour réaliser une attaque ».

Sur le plan théorique, il est assez intéressant de noter que la blockchain « résoud » un problème logique bien connu dit des « généraux byzantins » (on trouvera plus d’info sur les aspects théoriques dans la bibliographie). Mais cette résolution n’en est toutefois pas vraiment une, dans la mesure où c’est une solution « pratique », le problème théorique restant entier !

Les points faibles

Cette méthode d’élaboration du consensus dans sa version historique, ou « consensus de Nakamoto », est extrêmement robuste mais présente de gros inconvénients :

  • Elle est peu efficace. Comme il faut impérativement que la validation des blocks nécessite un gros effort de calcul pour être fiable, la contrainte sur le nombre de zéros à trouver est calibrée, au vu du nombre de participants, pour que le réseau puisse valider un block toutes les 10 minutes. Ceci signifie que le réseau bitcoin valide 7 transactions par seconde en théorie alors que le réseau Visa traite 2000 transactions seconde en moyenne !
  • Elle est outrageusement gourmande en énergie. Par exemple, une ferme de minage dans l’état de Washington brûle 240kWh par bitcoin miné. Si la blockchain repose sur des concepts libertariens, en revanche on ne peut pas dire qu’elle soit très écologique !

Méthode 2: Proof of Stake

C’est pourquoi le marché travaille plutôt sur une autre méthode d’élaboration du consensus, basée non sur la « preuve de travail » (« proof of work ») mais sur la « preuve d’intérêt » (« proof of stake »). En gros cette fois nul besoin d’être très nombreux à valider, un seul nœud du réseau suffit (mais tous peuvent toutefois toujours contrôler la validité de son travail). Il suffit que celui-ci, au lieu d’avoir un petit quelque chose à gagner à poster un résultat valide, ait au contraire beaucoup à perdre à poster un résultat invalide ! Pour ce faire il doit prouver qu’il détient une proportion suffisante des actifs (monnaie, titres, droits, …) gérés par la blockchain.

Le gros avantage de cette méthode est qu’elle permet d’être beaucoup plus efficace, tant en ce qui concerne la rapidité de traitement que la consommation d’énergie. Par contre elle présente des faiblesses et en particulier n’offre pas le même niveau de sécurité. Tout dépend alors du contexte d’utilisation de la blockchain. Une blockchain « privée », fonctionnant entre un nombre restreint de participants qui se connaissent plus ou moins « in real life » (par exemple des banques) peut tout à fait reposer sur cette logique.

Une extension intéressante: les "smart contacts"

Jusqu’à présent nous avons supposé que la blockchain servait de support à une succession de transactions relativement simplistes du type « à l’instant t A a transféré à B une quantité X d’un certain actif ». Une application prometteuse de la blockchain serait d’y stocker des « smart contracts », c’est-à-dire des protocoles capables de déclencher des actions sur la base de leur état courant et d’un événement déclencheur.

Un exemple de la vie courante pourrait être « si l’emprunteur a un retard de x mois dans le paiement des traites de sa voiture, rendre le contrôle de la clé de contact à la banque… ». Dans la finance, ce pourrait être, « si la date d’échéance intermédiaire du swap est atteinte, déclencher le paiement des intérêts et calculer le nouveau taux »…

La blockchain dans la finance

Applications dans la finance de marché

Nous avons assez insisté dans la présentation qui précède sur la multiplicité des applications possibles de la blockchain. Attendez-vous à lire de plus en plus d’articles y compris dans la presse non spécialisée dans un futur proche. C’est déjà le cas dans la presse anglophone.

Toutefois, il est bien évident que dans un site consacré à la finance on ne peut pas ne pas entrer un peu dans le détail des applications possibles dans ce domaine.

Un système permettant de gérer des transactions de manière sécurisée, en toute confiance entre les acteurs et avec fluidité ne pouvait pas manquer d’intéresser les acteurs de la finance et c’est ce qui ce passe actuellement. On assiste à une explosion d’initiatives la plupart à l’état de tests ou « proof of concept » autour de la blockchain et des registres distribués (distributed ledger). Il ne se passe pas de jours sans que des communiqués de presse ne soient publiés sur le sujet. Petit tour d’horizon des domaines d’applications :

  •  La technologie blockchain pourrait apporter un progrès énorme dans la transparence et la sécurisation des dérivés OTC et les transactions « securities finance » (repo et prêt-emprunt de titres). En gros la blockchain en elle-même constituerait le « trade repository » permettant à tout instant de savoir qui détient quel contrat, dont rêvent les régulateurs (cf. EMIR, Dodd-Franck).
  •  La chaîne post-marché des titres : dans ce domaine, tout repose sur le rôle pivot du dépositaire central, qui est le seul à tenir le registre de la quantité de titres en circulation. (cf. cet article de Fimarkets). Avec la blockchain, plus besoin de passer par un dépositaire central et par la cascade d’intermédiaires qui permettent d’y accéder pour matérialiser le transfert de propriété suite à un achat-vente de titres
  •  Le financement du commerce international ou trade finance. Ici la complexité réside dans le stockage et l’accès aux documents commerciaux qui permettent de prouver la présence de la marchandise dans tel ou tel port et son acheminement à destination. Ces informations pourraient être stockées sous forme de « smart contracts » dans une blockchain.
  •  Le financement privé en capital ou en dette des entreprises : la blockchain permet d’enregistrer et d’échanger des parts d’entreprises en croissance, dont le financement n’est pas encore public (le « non coté »).

Blockchain bancaire: un oxymore?

L’initiative à l’origine de la blockchain, nommément le bitcoin, est éminemment idéologique. L’idéologie sous-jacente est celle des libertariens américains qui militent pour la disparition de l’Etat. La blockchain a été conçue pour permettre l’émergence du bitcoin, c’est-à-dire d’une monnaie qui pourrait fonctionner (et fonctionne effectivement) de manière satisfaisante pour les utilisateurs sans le contrôle des Etats, des banques centrales et… des banques commerciales !

En effet le rôle de « tiers de confiance » est au cœur du métier des banques, non seulement pour ce qui concerne les échanges monétaires mais aussi de tous types de contrats financiers : titres, dettes, produits dérivés…

Il en découle que la stratégie des banques dans ce domaine ne peut qu’être défensive : chevaucher la vague afin d’éviter qu’elle ne vous submerge. Il y a donc fort à parier que les initiatives les plus intéressantes ne viendront pas des banques ni des acteurs actuels du post-marché (chambres de compensation etc.) ce qui reviendrait pour eux à scier la branche sur laquelle ils sont assis, mais d’acteurs nouveaux.

D’où l’entrée en scène d’acteurs essentiels, les régulateurs, qui observent avec énormément d’intérêt les développements de la technologie… avec certes la possibilité de tuer dans l’œuf toute évolution qui leur semblerait contraire à la sécurité et à la stabilité financière, mais aussi d’encourager fortement ce qui apporterait de l’eau à leur moulin (cf. ce que nous avons mentionné sur les dérivés OTC).

Il convient aussi de prendre en considération l’acceptabilité de ce type de solution par la communauté des utilisateurs, particuliers ou entreprises pour la banque, investisseurs dans le contexte des marchés de capitaux. Faut-il faire davantage confiance :

  •  A un intermédiaire unique, la banque, ayant pignon sur rue, contrôlée par des autorités de tutelle et une armada d’auditeurs et de commissaires aux comptes, mais susceptible d’héberger dans son sein un trader fou capable de mettre en jeu plusieurs fois le capital de la banque sur les marchés ?
  •  Ou plutôt à une communauté d’individus très nombreux, totalement inconnus et potentiellement plus ou moins honnêtes, mais dont aucun ne détient à lui seul le pouvoir de prendre le contrôle du système ?

C’est une question philosophique fascinante à laquelle chacun est libre de répondre à son niveau.

Bibliographie

Un petit conseil : utiliser le système d’alertes de Google pour recevoir périodiquement les publications sur le sujet… Et prévoyez des nuits blanches pour tout lire !

NB : liens valides au 14/04/2016

Fondements théoriques

http://www.ybrikman.com/writing/2014/04/24/bitcoin-by-analogy/

http://www.michaelnielsen.org/ddi/how-the-bitcoin-protocol-actually-works/

https://bitcoin.org/bitcoin.pdf

https://www.reddit.com/r/Bitcoin/comments/1wqj8z/will_someone_explain_how_the_blockchain_solved/

http://www.christian-faure.net/2015/09/13/la-blockchain-et-lemergence-des-distributed-consensus-engines/

http://www.finyear.com/Les-consensus-Proof-of-Work-vs-Proof-of-Stake_a35663.html

Applications générales

http://www.uchange.co/

http://blog.octo.com/cr-petit-dej-blockchain-octo/

Applications dans la finance

http://www.multichain.com/blog/2015/09/delivery-versus-payment-blockchain/

http://arstechnica.com/business/2016/04/in-recent-test-blockchain-brings-transparency-to-notorious-credit-default-swaps/

http://www.coindesk.com/hands-on-with-linq-nasdaqs-private-markets-blockchain-project/

http://www.ibtimes.co.uk/icaps-jenny-knott-explains-practical-post-trade-blockchain-approach-1552033

http://www.kynetix.com/2015/09/04/7-ways-blockchain-technology-could-disrupt-the-post-trade-ecosystem/

Les régulateurs

https://www.esma.europa.eu/press-news/consultations/investment-using-virtual-currency-or-distributed-ledger-technology

http://www.federalreserve.gov/newsevents/speech/brainard20160414a.htm

https://www.gov.uk/government/news/distributed-ledger-technology-beyond-block-chain

  1. Il n’y a pas d’équivalent français
  2. Mais pas nécessairement concrétisés à ce jour !
  3. Proposé par les chercheurs américains Diffie et Hellmann en 1976
  4. Spéciaux mais n’importe qui (en ce qui concerne le bitcoin) peut devenir mineur s’il le souhaite ! En pratique les mineurs s’organisent en « fermes » pour gagner en efficacité. Surtout, quiconque sur le réseau peut valider que les mineurs font bien leur travail !
  5. Vu la méthode bestiale utilisée le terme de « résolution » semble un peu exagéré
  6. Ici l’auteure se hasarde à donner un avis personnel sur la question !