OCamlPro a été créée en 2011, elle propose des logiciels et des services de développement et de formation centrés autour des langages de programmation OCaml et Rust. La société a été fondée par Fabrice Le Fessant, à l’époque chercheur à l’Inria, et est aujourd’hui dirigée par Muriel Shan Sei Fan. Fabrice Le Fessant dirige désormais la société Origin Labs, entièrement consacrée aux technologies de blockchain. Ensemble, ces sociétés regroupent 20 ingénieurs-chercheurs de haut niveau.
Pour des raisons de confort de lecture, cet article est en deux parties, celle-ci, la première, concerne les travaux sur la blockchain, la suite (consacrée aux activités en programmation fonctionnelle) est ici.
I. Blockchain
Les technologies de blockchain sont apparues au grand public lors du lancement de la monnaie alternative Bitcoin en 2008. Elles reposent sur un registre (ledger) de transactions rendu infalsifiable par des procédés cryptographiques pour la description desquels je renvoie le lecteur aux articles de Wikipédia indiqués par les liens ci-dessus.
La société Origin Labs, issue d’OCamlPro, propose toutes une gamme de services autour de la blockchain.
Toutes les blockchains partagent un certain nombre de points communs :
– la gestion de la blockchain est décentralisée ;
– les transactions sont effectuées par un protocole pair à pair ;
– l’intégrité des transactions est garantie par un système de signature électronique ;
– les nœuds du réseau pair à pair détiennent le registre de toutes les transactions depuis la création du système, la blockchain ;
– la création d’un nœud comporte la création d’une biclé, soit clé privée et clé publique, pour le compte de son propriétaire ;
– le condensat cryptographique (hash) de la clé publique constitue l’adresse de l’utilisateur, équivalent d’un numéro de compte ;
– les transactions ont lieu entre utilisateurs désignés par leur adresse ;
– chaque nœud reçoit notification de chaque transaction ;
– il peut exister des nœuds « légers » qui ne détiennent que la partie la plus récente de la blockchain.
Création de blocs
– Chaque bloc de la blockchain, constitué d’un lot de transactions approuvées, contient le condensat cryptographique du bloc précédent, qui l’identifie de façon univoque ;
– chaque bloc nouvellement créé est diffusé à l’ensemble des nœuds ;
– une transaction ne peut être inscrite dans un bloc qu’après vérification de sa cohérence avec les balances comptables déduites de l’historique des transactions ;
– toutes les transactions sont transmises en clair, la cryptographie n’est utilisée que pour l’établissement de signatures infalsifiables et pour les fonctions de condensation ;
– le système repose sur le principe de la signature cryptographique.
Protocole à preuve d’enjeu
– Un tel système en réseau est exposé au risque de collision : deux nœuds distants créent simultanément chacun un bloc, comment trancher entre eux ?
– principe : si un nœud reçoit deux blocs en conflit, il choisit celui qui correspond à la chaîne la plus longue.
Mais c’est là aussi que les différents protocoles de blockchain diffèrent. Pour choisir le bloc qui sera choisi (et son émetteur qui sera rétribué), le Bitcoin utilise un protocole dit de « preuve de travail » qui consomme un temps de calcul (et donc une énergie électrique) considérables, objet de critiques fortes et justifiées. Les technologies développées par OCamlPro reposent sur un protocole différent et moins vorace en énergie, dit « à preuve d’enjeu » (ou preuve de participation ou Proof-of-stake, PoS en anglais) : ce protocole demande à l’utilisateur de prouver la possession d’une certaine quantité de la valeur en jeu (par exemple la cryptomonnaie objet des transactions) pour prétendre à pouvoir valider des blocs supplémentaires dans la chaîne de blocs.
Outre l’économie d’énergie, ce protocole a d’autres avantages : le mineur a intérêt a conserver ses pièces pour maximiser ses chances futures de pouvoir valider les blocs, ce qui conforte le dispositif.
Autres usages de la blockchain
Mais d’autres types de blockchain sont possibles, par exemple des blockchains privées entre une entreprise et ses fournisseurs. Un large champ est aussi possible du côté des applications notariales ou assimilées, par exemple le cadastre, ou les protocoles médicaux.
Afin de pouvoir épouser plus souplement ces évolutions, Fabrice Le Fessant a créé la société Origin Labs, désormais en charge des innovations technologiques dans ce domaine, de l’administration de la blockchain Dune Network, et du développement de l’outillage lié : un explorateur de blocs (Dunscan), des wallets, un langage de contrats intelligents (smart contracts) Love (issu de Liquidity), un interfaçage avec Solidity (langage de smart-contracts d’Ethereum), et d’autres composants indispensables à un tel écosystème.