En sécurité informatique on s’intéresse en permanence à analyser quatre piliers indispensables à la confiance numérique : confidentialité, intégrité, authentification et disponibilité. Cette dernière est probablement la plus complexe à adresser et les technologies blockchain ont apporté des solutions élégantes jamais alors envisagées auparavant.
Le principe de disponibilité implique de répartir la charge entre différents systèmes, de sorte que lorsque l’un d’eux est indisponible, un autre prenne le relai de manière transparente pour l’utilisateur. Cette résilience implique aussi qu’il n’y ait aucun point unique de défaillance, ce qui implique bien souvent que tous les nœuds du réseau jouent le même rôle, principe que la blockchain a réussi à éprouver à merveille.
Le seul petit hic à ceci est, pour l’instant, le relatif manque de scalabilité des « mainnets » des blockchains génériques (Bitcoin, Ethereum, …), ce pourquoi beaucoup d’efforts se concentrent sur la mise en place de « sharding » (ou segmentation du réseau en plusieurs sous-réseaux distincts mais coordonnés ; Ethereum 2.0 en est la preuve) et de « sidechains » spécialisées. Le projet Polkadot illustre aussi à lui seul cette vision.
Ainsi se créent des blockchains entièrement dédiées à la disponibilité du stockage : Sia, Filecoin (avec IPFS), Storj, Ethereum Swarm, Arweave, etc. Ils concurrencent même les plus gros du secteur (GAFAs) avec des prix de stockage parfois dix fois moindre et une meilleure redondance.
Le calcul distribué n’est pas en reste, notamment grâce à l’intérêt grandissant des scientifiques et des chercheurs, surfant sur le boom de l’intelligence artificielle dans tous les secteurs économiques : citons le français iExec et le projet Golem qui proposent de déployer des applications très gourmandes en calcul sur des infrastructures distribuées, mises à disposition par des volontaires contre rémunération en cryptomonnaies.
Bien sûr, ces nouvelles solutions de disponibilité sont et seront fortement challengées sur leur niveau de sécurité. Ainsi, le « proof of stake » (PoS), bien que pas tout récent (les principes de Peercoin datant par exemple de 2012) et très largement étudié théoriquement, n’a pas encore vraiment été étudiés en pratique sur de très grosses infrastructures blockchain, surtout avec des nœuds technologiquement hétérogènes (différentes implémentations et versions du client, sous différents systèmes d’exploitation). Ainsi, il faudra voir, notamment, si le risque de « slashing » (perdre son enjeu en raison de différences de consensus entre clients), est bien maîtrisé. Bien évidemment ce risque doit rester proche de zéro pour des nœuds blockchain honnêtes. Ethereum 2.0 permettra, je l’espère, de challenger ce principe à une échelle conséquente.
La sécurité des « smart contracts », ces programmes autonomes déployés sur de nombreuses blockchains, est aussi un important point de préoccupation. L’expérience nous a montré que nombre de ces programmes ne sont pas correctement écrits et souffrent de vulnérabilités, et que les développeurs ont besoin d’experts cybersécurité pour audit avant leur déploiement. Les médias confondent d’ailleurs bien souvent la sécurité de ces smart contracts avec la sécurité des blockchains sous-jacentes, qui elles, sont, il faut l’avouer, très rarement prises en défaut. Une solution possible est l’utilisation de preuves formelles, c’est-à-dire prouver mathématiquement tous les chemins d’exécution de ces programmes, et leurs conditions, ce qui est possible quand le langage utilisé est suffisamment « simple ». C’est la voie empruntée par la blockchain française Tezos, avec son langage de programmation Michelson. Ce langage étant jugé trop bas niveau par nombre d’entreprises qui souhaitent développer des solutions dessus, un langage intermédiaire de compilation de plus haut niveau est très souvent directement utilisé par les développeurs, citons par exemple Liquidity ou SmartPy dans le cas de Tezos.
Concluons par observer le changement de paradigme des contenus et applications actuelles, qui migrent vers un web en tout ou parti « décentralisé ». Le droit, assez souvent en retard sur la technologie, va devoir profondément s’adapter à ces changements, en revoyant les notions de territorialité, d’auteur, de responsabilité, inutilisables ou dont les principes sont inapplicables de toute façon. Le retrait de contenu blockchain est quant à lui, impossible pour quiconque. Rappelons l’adage bien connu « À l’impossible nul n’est tenu » !