Corda est un registre distribué conçu spécialement pour l’industrie financière.(banques, assurances…).

Pour en savoir plus sur la Blockchain, référez-vous à cet article qui l’explique simplement.

Qui est derrière Corda ?

Nous ne pouvons pas parler de Corda sans évoquer la firme R3CEV ou R3.

Il s’agit d’une entreprise américaine spécialisée dans la technologie Blockchain et fondée en 2014 à New York : elle coopère avec un grand nombre d’institutions financières, via un consortium, pour développer et explorer les questions autour des Blockchains.

Le consortium a débuté en septembre 2015 avec 9 grandes institutions financières (Barclays, BBVA, Commonwealth Bank of Australia, Credit Suisse, Goldman Sachs, J.P. Morgan, Royal Bank of Scotland, State Street, et UBS)

Pour information, J.P Morgan et Goldman Sachs ont quitté le consortium en novembre 2016.

13 autres institutions financières ont rejoint le consortium fin septembre 2015 (Bank of America, BNY Mellon, Citi, Commerzbank, Deutsche Bank, HSBC, Mitsubishi UFJ Financial Group, Morgan Stanley, National Australia Bank, Royal Bank of Canada, Skandinaviska Enskilda Banken, Société Générale, et Toronto-Dominion Bank).

D’autres institutions financières se sont jointes à la firme par la suite comme BNP Paribas, Well Fargo, UniCredit, ING, Natixis, Danske Bank, MetLife et Banco Santandercette dernière a quitté le consortium depuis novembre 2016.

Actuellement, le consortium compte plus de 70 institutions financières, comme vous pouvez le remarquer, l’essentiel des poids lourds de l’industrie financière y sont présents.

La plateforme Corda a été développée par le Consortium R3, pour devenir la référence du registre distribué (Blockchain) dans l’industrie financière.

Qu’est ce que Corda ?

Corda est un registre conçu pour enregistrer, gérer, synchroniser et exécuter automatiquement des accords (agréments ou contrats) entre les institutions financières (banques, assurances…).

Ce registre est distribué et non public, chaque participant détient une copie du registre en interne, les écritures/lectures ne peuvent être faites que par les participants habilités.

Contrairement aux Blockchain comme Bitcoin ou Ethereum, les transactions ne sont pas visibles de tous les participants du réseau.

Si la Banque A transfert de l’argent à la Banque B, les autres Banques qui font partie du réseau ne verront pas cette transaction, ce qui n’est pas le cas sur Ethereum ou Bitcoin, où tous les participants verront la transaction.

Corda est inspiré de la technologie Blockchain mais n’en est pas une, car les opérations ne sont pas regroupées en bloc pour validation.

C’est pour cela que nous parlons de Registre distribué (Distributed Ledger) ou de base de données décentralisée.

Les éléments les plus importants dans ce registre distribué sont les accords (agréments) financiers ou contrats. Il s’agit de codes informatiques qui peuvent s’exécuter automatiquement sur le réseau ou lorsqu’ils sont invoqués.

Ces accords (contrats) sont partagés entre deux ou plusieurs institutions financières.

Dans le modèle traditionnel ou avec intermédiaire, une institution financière enregistre et maintient ses accords/contrats dans son propre registre selon son propre format. Sa ou ses contreparties font également de même, l’accord peut également être enregistré et conservé par le régulateur.

On a donc une situation avec une multitude de registres avec des formats différents.

Cela nécessite des conciliations ou intermédiaires entre les différentes institutions qui ont pris part à l’accord. Cela génère bien évidemment des coûts et un délai de traitement pour maintenir ses registres et les synchroniser.

Avec Corda, une institution financière peut enregistrer et maintenir ses accords/contrats dans son propre registre, sa ou ses contreparties font également de même, mais cette fois le format et les registres sont identiques et partagés.

Il n’y a plus de conciliation, ni d’intermédiaire puisque toutes les institutions ont un format identique de l’accord (agrément) et l’intégrité du registre est géré automatiquement par Corda via un système de consensus. Toutes les institutions et régulateurs peuvent communiquer entre eux sans intermédiaire.

Seules les parties impliquées dans l’agrément/accord ont droit d’accès aux données de cet agrément.

Comme expliqué plus haut, Corda n’est pas une Blockchain, il utilise un nœud spécial appelé “Notary Node” pour valider les transactions et assurer l’intégrité du registre.

Par exemple : Les banques A, B et C font partie du même réseau Corda, elles ont conclu des agréments.

  • La banque A et la banque B ont un accord/agrément stipulant que la banque A doit 30 millions de francs à la banque B, payable à la demande : Dépôt Cash
  • La banque A et la banque B ont un accord stipulant qu’elles font partie d’un “Credit Default Swap” : Produit dérivé.
  • La banque A s’engage à fournir 1000 unités d’un titre X à la banque B en échange de paiement Cash de 2 millions francs: Règlement livraison de titre.

Si la banque B demande l’exécution de son agrément, les 30 millions de francs lui seront automatiquement payés par la Banque A, car le code informatique de l’agrément s’exécutera sur le réseau Corda (réseau constitué par les serveurs des participants).

Les propriétés de Corda

La plateforme Corda est disponible depuis le 30 novembre 2016, le code source est accessible sur Github en Open Source et fait partie du projet Hyperledger de la Fondation Linux.

Voici les caractéristiques de la plateforme Corda :

  • Le registre n’est pas partagé entre tous les participants du réseau, seule les parties impliquées ou ayant une raison valable peuvent accéder aux données d’une transaction ou d’un agrément.
  • Les flux et processus des transactions entre les participants se font sans organe central.
  • Le consensus entre les participants se fait au niveau de la transaction individuellement et non au niveau global.
  • N’utilise pas de « Proof of Work », ni le concept de mining comme c’est le cas sur les Blockchain Bitcoin et Ethereum.
  • Peut supporter simultanément une variété de consensus pour la validation des opérations.
  • Sa conception permet d’activer des nœuds de supervision, ou jouant le rôle de régulateur ou d’observateur.
  • Les transactions dans Corda sont validées par les parties impliquées dans l’agrément et non par un pool de mineurs.
  • Développée sur les technologies standards du marché (Java & Kotlin).
  • Les agréments ou contrats (smart contrat) peuvent aussi être écrits en Java ou Kotlin et peuvent contenir des règles métiers (même très complexes).
  • Il n’existe pas de crypto-monnaie par défaut, néanmoins vous pouvez en créer en programmant un agrément (Cash).
  • Est Open Source sous licence Apache 2.

Fonctionnement de Corda

Corda fournit un Framework pour enregistrer, gérer et exécuter automatiquement des agréments/contrat financiers (Smart Contract).

L’élément de base du concept sous-jacent à Corda est le “state object”, qui est un document digital qui enregistre l’existence, le contenu et l’état courant d’un agrément entre deux ou plusieurs parties.

Ce document est partagé uniquement avec ces parties, un système de consensus permet à toutes ces parties d’avoir un document identique, sécurisé et infalsifiable.

Une transaction entre 2 ou plusieurs parties n’est donc que la production d’un nouveau “state object” à partir d’un autre “state object”.Une fois que la transaction est validée, il n’est plus possible de modifier l’historique.

L’évolution de ces contrats/agréments, la gestion des processus métiers impliquant ces contrats se fait sans organe central.

Corda s’appuie sur des nœuds (serveurs) décentralisés appelé Notary pour valider les transactions.

Un “Notary” est semblable à un service décentralisé qui joue le même rôle que les mineurs “miner” dans les technologies Blockchain.

Un “Notary“ s’assure par exemple qu’un montant ou somme, n’est pas dépensé deux fois (équivalent double spend in Bitcoin).

Corda peut supporter une multitude de systèmes de consensus sur le même réseau.

Corda permet d’écrire les agréments ou contrats en Java ou Kotlin.

Les applications distribuées (Smart Contract) développées pour la plateforme Corda sont appelées CordApp.

Il est possible d’attacher un fichier Zip ou une image à une transaction.

Il est possible d’exécuter ou de consommer des services à l’extérieur de la plateforme (similaire aux Oracles de la Blockchain Ethereum).

Quelques Proof of Concept basés sur Corda

Avril 2016 : La banque Barclays a développé un prototype (smart contract) permettant d’exécuter et de trader des produits dérivés.

Août 2016 : Bank of America Merrill Lynch, HSBC et l’Autorité de Régulation des Communications Électroniques de Singapour (Infocomm Development Authority of Singapore) ont annoncé avoir développé un POC dans le domaine du financement de négoce (trade finance).

Août 2016 : R3CEV a annoncé avoir réussi des tests de sa Technologie pour le Règlement-Livraison (settlements) avec 15 institutions financières (Barclays, BBVA, BNP Paribas, Commonwealth Bank of Australia, Danske Bank, ING Bank, Intesa Sanpaolo, Natixis, Nordea, Scotiabank, UBS, UniCredit, US Bank et Wells Fargo).

Nov 2016 : R3CEV a développé un proof of concept d’un système KYC (Know Your Customer ) avec 10 banques (BBVA, CIBC, ING, Intesa Sanpaolo, Natixis, Nordea, Northern Trust, Société Générale, UBS et US Bank).

Conclusion

Contrairement aux autres registres distribués et Blockchain, Corda fut conçu spécialement dans le but de gérer et exécuter des accords/agréments dédiés à l’industrie financière.

Reste à voir s’il tiendra ses promesses.

Si vous souhaitez aller plus loin, voici quelques références :