La blockchain : pour quoi faire ? (2)

On l’a vu, la principale application de la technologie blockchain réside, à ce jour, dans la création de cryptomonnaies. Mais d’autres cas d’usages peuvent être envisagés, et certains font déjà l’objet d’une mise en oeuvre opérationnelle. En voilà un aperçu.

L’intérêt de la blockchain est de garantir l’exactitude d’une donnée, en l’intégrant dans un vaste registre public de manière à rendre l’entrée irréversible. N’est pas, dès lors, une voie possible d’amélioration des procédures de signature électronique, qui requièrent horodatage, authentification, et vérification de l’intégrité de la donnée signée ?

Signature électronique, horodatage,…

La signature électronique sera au cœur d’un prochain article. Dors et déjà, nous indiquerons que celle-ci a vocation à s’assurer, par un procédé vérifiable par les tiers, qu’une personne dûment authentifiée (et identifiée) a manifesté son consentement à un document précis dont l’intégrité est garantie par un lien infalsifiable établi entre ce document et la signature. Dès lors, trois éléments sont requis :

  • L’identification du signataire
  • L’horodatage
  • Un lien entre le document signé et la signature tel que toute modification ultérieure du document invalide automatiquement la signature

Or, la technologie blockchain permet de garantir l’existence d’une transaction à un moment donné de l’existence de la chaîne. Il suffit pour cela d’aller consulter la blockchain. Le fonctionnement du mécanisme de la transaction permet, en outre, de s’assurer de l’identité de l’émetteur, grâce au couple clé publique/clé privée. Enfin, l’architecture de la blockchain a vocation à rendre toute entrée infalsifiable et irréversible.

A priori, on peut dresser un parallèle frappant entre signature électronique et blockchain. Il n’est donc pas étonnant que l’une des premières applications de la technologie du distributed ledger en dehors des cryptomonnaies ait eu lieu en cette matière, d’autant plus que la blockchain Bitcoin s’en accommode très bien.

En effet, la plupart des applications de signature électronique s’appuyaient à l’origine sur un bricolage de la blockchain Bitcoin, qui consiste à placer le hash d’un fichier en OP_RETURN d’une transaction. De ce fait, il devient possible de prouver l’existence d’un fichier, dont l’intégrité est prouvée par le hash, à partir du moment où le bloc contenant la transaction a été miné. On constate donc que peu d’ajustements sont nécessaires, ce qui a permis aux services de signature électronique par blockchain de se multiplier rapidement. On peut citer notamment les services Bitproof et Blocksign. En dehors de la blockchain Bitcoin, on notera le développement d’un tel service sur la chaîne Ethereum : Notareth.

Au delà de la signature électronique, on peut également concevoir des services proches d’horodatage électronique permettant de garantir la traçabilité et l’intégrité des documents, ce qui offrirait de nouveaux moyens de conserver les cadastres, prouver l’antécédence en matière de propriété intellectuelle, assurer la publicité foncière, etc. Des services tels que Proof of Existence et Stampd se développent à ces fins, tandis que les initiatives se multiplient de la part des Etats pour intégrer la blockchain dans les fichiers publics1.

Si l’usage de la blockchain pour la signature et la conservation de documents est d’un intérêt certain, alors que les échanges électroniques sont appelés à devenir la norme, d’autres applications plus audacieuses et moins évidentes se préparent.

DAO et smart contracts

En même temps que beaucoup d’applications naissaient sur la base de la blockchain Bitcoin, des blockchains de nouvelle génération était conçues pour satisfaire d’autres besoins que la gestion de cryptomonnaie : Nxt, Bitshares, Ripple, Stellar, etc… Dans ce contexte, Vitalik Buterin a apporté un élément de réflexion nouveau pour l’évolution de la technologie blockchain : plutôt que de créer une blockchain par application, pourquoi ne pas concevoir une seule blockchain capable de soutenir plusieurs applications ? C’est sur cette base qu’il a conçu Ethereum.

Ethereum est une blockchain publique lancée en juillet 2015 après une campagne de financement participatif. Elle est conçue pour permettre l’exécution de dApps, des applications décentralisées conçues pour s’exécuter sur la blockchain. Le fonctionnement de ces dApps nécessite une alimentation en gas, une forme d’achat de temps de serveur ou de fonctionnement par jetons, qui consiste à dépenser une cryptomonnaie propre à Ethereum : l’Ether. En définitive, comme le résume son fondateur Vitalik Buterin, Ethereum est un « ordinateur mondial » décentralisé dont les ressources sont mises à la disposition du public contre de l’Ether.

C’est sur cette blockchain que sont nées deux applications intéressantes qui tirent parti du concept de dApps : la DAO et les smart contracts2.

Les smart contracts

Les smart contracts sont de petits programmes simples3, stockés dans une blockchain dont ils lisent l’activité, et dont la mise en route est déclenchée par des transactions effectuées sur cette blockchain. Plutôt que d’être stockés par une ou plusieurs partie, ou un tiers, ils font l’objet d’une décentralisation, et sont stockés avec la blockchain par chaque nœud, ce qui apporte les mêmes avantages que pour la blockchain en général : nature publique vérifiable par tous, sécurité, etc. La puissance de calcul nécessaire à leur exécution est mise à disposition par les mineurs de la blockchain en échange d’un paiement en Ether.

Il ne s’agit ni plus ni moins que de la transposition à la blockchain des procédures stockées4 utilisées par les technologies de gestion de base de données traditionnelles. En ce sens, ils n’ont rien de fondamentalement révolutionnaire, et ne proposent pas plus de fonctionnalité que ce qu’il était déjà possible de faire auparavant.

Une différence existe toutefois : les smart contracts sont associés à leur propre base de données que seuls eux peuvent lire et modifier. Ces smart contracts ne devraient pas, en principe, interagir avec le monde réel, extérieur à la blockchain. Par exemple, il n’est théoriquement pas souhaitable de mettre en place un smart contract qui débloquerait des fonds à la réalisation d’un événement extérieur à la blockchain (un orage, un anniversaire,…). En effet, il faudrait alors interroger autre chose que la blockchain pour savoir si l’élément déclencheur s’est réalisé (un serveur, un site, une base de donnée, etc…), et cette opération n’étant pas soumise au consensus, il n’y aurait aucun moyen de déterminer si tous les nœuds ont eu la même information !

Pour dans une certaine mesure résoudre ce problème, il est possible de faire appel à un « oracle », c’est-à-dire, tout simplement, un tiers de confiance, via une API notamment. Il reste que cela revient à réintroduire un besoin de confiance préalable, ce qui est contraire au principe d’une blockchain.

Le principal intérêt d’un smart contract est, en définitive, d’automatiser des opérations conditionnelles sur la blockchain, dans le cadre d’un contrat, de telle sorte qu’en théorie, l’inexécution est impossible. Autrement dit, ils servent à mettre en œuvre des cas d’usages de la blockchain que les transactions seules ne peuvent réaliser : l’ajout de code augmente la flexibilité de la blockchain. Parmi les exemples d’applications possibles, on peut citer la mise en place de coupons de réduction ou de mécanismes de fidélité, la conception d’un système de stockage décentralisé, la création d’une monnaie spécifique à un projet, la mise en place d’une plateforme de financement participatif, etc.
Une limite principale empêche toutefois le développement d’applications trop complexe : la lenteur d’exécution. Même si la blockchain Ethereum fonctionne sur un blocktime très réduit, il reste non négligeable et ralentit nécessairement l’exécution du code.

Pourquoi, pour conclure, avoir choisi de faire référence au contrat ? Peut-on réellement assimiler juridiquement ce mécanisme à un contrat ? On ne peut qu’en douter, d’un point de vue juridique, il ne s’agit que d’un instrumentum, un contrat au sens matériel, traditionnellement défini comme « un écrit authentique ou sous seing-privé contenant la substance de l’acte juridique ou du contrat envisagé par son ou ses auteurs »5. Il a toutefois l’avantage de présenter les caractéristiques suivantes :

  • Publicité : chacun peut constater l’existence d’un smart contract, qui figure à une adresse sur la blockchain.
  • Sécurité : il profite des qualités de sécurité inhérentes à l’architecture décentralisée.
  • Immuabilité : il ne peut pas être modifié, car il est ancré dans la blockchain. Il s’agit également d’une faiblesse, puisqu’il est indispensable de s’assurer que le code est totalement insusceptible d’être détourné. La moindre erreur peut entraîner de graves conséquences, en principe irréversibles6.

La DAO (Dencentralized Autonomous Organization)

Une DAO est une forme d’organisation, assimilable soit à une entreprise soit à une association, dont le fonctionnement repose sur l’utilisation de smart contracts. Les deux concepts sont donc étroitement liés. Pour cette raison, les DAO n’existent que sur la blockchain Ethereum à ce jour. Le principal intérêt d’une DAO comparée à une organisation classique est sa décentralisation par la blockchain. Elle n’est gérée par aucune autorité centrale, mais par un code informatique qui définit les attributions de chacun de ses membres.

Une DAO est constituée par un acte fondateur, qui n’est qu’un smart contract décrivant le fonctionnement souhaité de l’organisation. Ce code, intégré dans la blockchain, devient immuable. Concrètement, il s’agit de transformer en code, dans un smart contract, les mécanismes de participation (ex. : toute personne qui envoie 1 ETH à l’adresse de l’organisation gagne 1 vote), de fonctionnement (ex. : la DAO peut créer des contrats s’ils sont approuvés par 51% des votes) et de répartition (ex. : les ethers de la DAO sont redistribués à part égale entre tous les membres).

La plus importante DAO actuellement en activité est The DAO7. C’est une véritable entreprise, appuyée par une SARL en Suisse (DAO.Link), qui a pour objet d’investir dans d’autres projets. Cette organisation a fait l’objet d’une attention toute particulière durant l’été 2016, en raison d’un grave dysfonctionnement mettant en jeu des sommes considérables. Pour faire simple, une erreur de programmation a pu être exploitée dans son smart contract fondateur, permettant à un individu de siphonner une large partie des fonds de The DAO. Le retour à la normal a été effectué par un hard fork de la blockchain Ethereum. Par consensus, une majorité de mineurs a donc décidé de revenir sur la structure de la blockchain et de la modifier de sorte à supprimer les effets du hack. Très contesté, cet événement tend à démontrer que la blockchain n’est pas aussi fiable et les transactions aussi irréversibles qu’on a pu le croire. Il s’agit d’un véritable coup porté à la confiance en la blockchain Ethereum, même si les arguments en faveur de cette opération ne sont pas négligeables.

 

  1. Voir cet excellent article pour s’en convaincre : Blockchain France, Des cadastres sur la blockchain, https://blockchainfrance.net/2016/03/03/des-cadastres-sur-la-blockchain/, consulté le 25 September 2016.
  2. La fondation Ethereum travaille à d’autres projets visant à rendre la blockchain plus accessibles : Mist (une forme de store d’application de dApps mêlé de navigateur des fonctionnalités Ethereum), le protocole Casper, etc.
  3. Le langage de programmation employé se nomme Solidity. Il est orienté objet, et se rapproche du javascript. Voir : http://solidity.readthedocs.io/en/latest/introduction-to-smart-contracts.html
  4. Un ensemble d’instructions, le plus souvent en SQL, précompilées et stockée sous forme exécutable dans une base de données.
  5. Guinchard S., T. Debard, J.-L. Albert, D. Bailleux, et L. d’Avout, Lexique des termes juridiques, « Instrumentum« , Paris, Dalloz, 2016.
  6. En témoigne la débacle The DAO de l’été 2016, suite à un piratage causé par une erreur dans le code du smart contract de The DAO. Voir cet article : https://www.ethereum-france.com/to-fork-or-not-to-fork-telle-est-la-question/.l
  7. Consultable ici : https://etherscan.io/token/TheDAO.

Comments are closed, but trackbacks and pingbacks are open.