WOW !! MUCH LOVE ! SO WORLD PEACE !
Fond bitcoin pour l'amélioration du site: 1memzGeKS7CB3ECNkzSn2qHwxU6NZoJ8o
  Dogecoin (tips/pourboires): DCLoo9Dd4qECqpMLurdgGnaoqbftj16Nvp


Home | Publier un mémoire | Une page au hasard

 > 

Pour une publicité efficace des sûretés réelles mobilières.


par Gaëtan Jouve
Université Clermont Auvergne - Master droit privé parcours droit civil 2019
  

précédent sommaire suivant

Bitcoin is a swarm of cyber hornets serving the goddess of wisdom, feeding on the fire of truth, exponentially growing ever smarter, faster, and stronger behind a wall of encrypted energy

- CHAPITRE 3 -

LE REGISTRE EFFICACE

1) Une blockchain invisible. Parmi tous les internautes qui arpentent la toile, combien savent réellement ce qu'est internet ? Combien seraient capables d'expliquer techniquement comment fonctionne ce réseau ? Très peu sûrement. Pourtant notre ignorance relative ne nous empêche pas de nous servir de l'outil. C'est cette invisibilité que nous devons viser, il n'est pas question de former l'ensemble des agents économiques aux subtilités de la blockchain. Nous devons forger une application, qui comme les navigateurs avec internet, effacera la technologie pour que ne subsiste que son seul usage à travers une interface ergonomique.

2) Un réseau composite. Hyperledger Fabric est un outil qui permet de créer des réseaux composites dans la mesure où ils sont composés d'éléments très différents. Là où tous les pairs se ressemblent dans l'anonymat proposé par les blockchains publiques, les blockchains issues d'Hyperledger Fabric sont à l'inverse constituées de noeuds très différents, hiérarchisés et soumis à des règles de gouvernance établie par une autorité centralisée (b. les différents acteurs du réseau). Nous amorcerons le détail de notre projet en proposant quelques éléments de définition afin de clarifier le rôle de chaque composant technique dans l'agencement que nous avons retenu (a. les composants du réseau).

a. Les composants du réseau.

- Un espace de stockage : Si cette première notion est la seule que nous n'avons pas nommée en anglais c'est parce que cette technologie n'a rien à voir avec le protocole Hyperledger Fabric ou même les blockchains. L'espace de stockage est une base de données traditionnelle qui a vocation à recevoir les avis inscrits par les créanciers garantis. Cette inscription aura vocation à être testée par la blockchain proprement dite selon une procédure que nous allons détailler. Si elle est valide, l'avis dans son intégralité sera entièrement et durablement conservé dans cette base de données. À l'inverse si la transaction ne correspond pas aux critères de validité ancrée par les greffes des tribunaux de commerce dans la blockchain, l'avis sera effacé de l'espace de stockage et un message d'erreur sera envoyé à l'utilisateur via l'interface de l'application.

- The Ledger : Il s'agit du registre distribué entre les pairs. Voilà le coeur inaltérable, la blockchain proprement dite. C'est ici que sera stocké l'historique des transactions qui auront été approuvées par les « endorsing peers » et l'« ordering service ». Cet historique ne sera pas composé de simples données, il recélera les métadonnées (des données particulières qui permettent de localiser tel ou tel avis sur notre base de données). Si on l'associe à la pratique du hashage324 il sera possible d'exposer au grand jour toute tentative de fraude qui se baserait sur une attaque de l'espace de stockage visant à modifier un avis. En ne stockant que des métadonnées sur notre Ledger, nous venons à bout des deux problèmes fondamentaux que

324Précisons simplement que le passage d'un document à la moulinette d'une fonction de hashage fournit une donnée cryptée nommée un hash. Cette pratique qui suppose un agencement complexe de portes logiques donnera un hash complètement différent, si ne serait-ce qu'un seul caractère a été modifié dans le document entre deux cryptages. Dès lors, on comprend que l'attaque de l'espace de stockage serait une tentative de fraude grossière, vouée à l'échec tant que le Ledger demeure sécurisé via la technologie blockchain.

nous avons soulevés. En effet, il est tout à fait possible de supprimer les avis obsolètes qui n'ont d'existence qu'au sein de l'espace de stockage, et seul l'historique des transactions est inscrit dans notre blockchain325.

- À Membership Service : Avant de pouvoir inscrire un avis sur le registre, le créancier garanti devra s'identifier sur le réseau en tant qu'utilisateur. En termes techniques « The membership service provider (MSP) maintains the identities of all nodes in the system (clients, peers, and OSNs326) and is responsible for issuing node credentials that are used for authentication and authorization 327». Cette phase d'identification fonctionne par la délivrance de certificats328 aux nouveaux utilisateurs.

- The chaincodes : « A smart contract, called chaincode329». C'est le premier point à retenir, comme nous l'avons évoqué plus haut, la blockchain publique Ethereum qui a mis les smart contracts sur le devant de la scène a fait de nombreux émules. Au sein du protocole hyperledger fabrique les smart contract sont nommés des chaincode. Une appellation moins déceptive pour les juristes dans la mesure où les smart contract ne sont pas des contrats. Chaincode et smart contract doivent être défini comme des applications distribuées sur la blockchain. C'est parce qu'elles sont ancrées au sein même de la blockchain que leur automaticité, leur plus grande qualité est garantie. Comme on ne peut pas modifier en fraude le Ledger on ne peut pas tricher avec les smart contract. Si les conditions de fait de son activation sont remplies, il accomplira son office en toute fiabilité. Les différents membres du réseau peuvent créer des chaincodes pour servir leurs besoins divers comme sur la blockchain Ethereum ou chacun est libre d'inventer ses propres smart contracts. Il faut différencier les chaincode des « system chaincodes 330» qui seuls servent aux « endorsing phase » et « ordering phase ».

325« On proposera par conséquent de ne pas stocker l'intégralité de l'acte dans le registre, mais seulement une clé (un code) calculée de manière unique à partir de l'acte d'origine, de telle sorte que la modification d'un seul caractère du document initial induise une clé complètement différente, mais que deux documents parfaitement similaires induisent systématiquement une clé identique. Ainsi, chacun pourra conserver chez lui une copie de l'acte, seule la clé étant inscrite dans le registre », Barbara THOMAS-DAVID et Jean-Luc GIROT, « La blockchain expliquée autrement - Libres propos par Barbara Thomas-David et Jean-Luc Girot », préc., P.2.

326Par « OSNs » il faut comprendre « ordering-service n'odes », à savoir les noeuds de la blockchain qui permettent à l'ordering service d'accomplir sa mission.

327Artem BARGER, Christian CACHIN, Konstantinos CHRISTIDIS, Yacov MANEVICH, Manish SETHI, Alessandro SORNIOTTI, Marko VUKOLIÆ, « Hyperledger Fabric: A Distributed Operating System for Permissioned Blockchains », 30 Janv. 2018, accessible en ligne : https://arxiv.org/abs/1801.10228

328« Les autorités de certification (AC) fournissent l'identité sur le réseau. Une autorité de certification peut être considérée comme un notaire public de confiance qui agit comme point d'ancrage entre plusieurs parties. Toutes les entités du réseau reçoivent un certificat signé par une autorité de certification racine qui encapsule leur identité numérique. Ce certificat est la racine de confiance pour toutes les opérations de signature et de vérification effectuées sur le réseau », cette définition est accessible en ligne via la documentation IBM cloud mise à disposition à l'adresse : https://cloud.ibm.com/docs/services/blockchain?topic=blockchain-managing-certificates&locale=fr

329Artem BARGER, Christian CACHIN, Konstantinos CHRISTIDIS, Yacov MANEVICH, Manish SETHI, Alessandro SORNIOTTI, Marko VUKOLIÆ, « Hyperledger Fabric: A Distributed Operating System for Permissioned Blockchains », préc.

330« The application chaincodes are deployed with a reference to an endorsement system chaincode (ESCC) and to a validation system chaincode (VSCC). These two chaincodes are selected such that the output of the ESCC (an endorsement) may be validated as part of the input to the VSCC. The ESCC takes as input a proposal and the proposal simulation results. If the results are satisfactory, then the ESCC produces a response, containing the results and the endorsement », Artem BARGER, Christian CACHIN, Konstantinos CHRISTIDIS, Yacov MANEVICH, Manish SETHI, Alessandro SORNIOTTI, Marko VUKOLIÆ, « Hyperledger Fabric: A Distributed Operating System for Permissioned Blockchains », préc.

b. les acteurs du réseau.

- Les utilisateurs : « Clients submit transaction proposals for execution, help orchestrate the execution phase, and, finally, broadcast transactions for ordering331». Ce sont évidements les acteurs du réseau qui ont le moins de pouvoir, ils sont simplement censés soumettre des requêtes qui seront ou ne seront pas validées par la blockchain proprement dite.

- The peers and the endorsing peers : Il faut distinguer les « peers » des « endorsing peers ». « Peers execute transaction proposals and validate transactions. All peers maintain the blockchain ledger, an append-only data structure recording all transactions in the form of a hash chain, as well as the state, a succinct representation of the latest ledger state 332». La mission des « endorsing peers » va plus loin, « Not all peers execute all transaction proposals, only a subset of them called endorsing peers does, as specified by the policy of the chaincode to which the transaction pertains 333». Ce sont ces maillons de la chaîne qui nous permettront via « the policy of the chaincode » de refuser automatiquement toute transaction antidatée ou au nom d'un autre utilisateur par exemple.

- The ordering service nodes : Ces noeuds particuliers forment à eux tous l' « ordering service ». Leur mission est de déterminer l'ordre dans lequel les transactions seront enregistrées dans le registre, ils ne participent pas à la validation des transactions334. Au sein des blockchains publiques c'est souvent la preuve de travail qui détermine l'ordre des blocs qui peuvent, durant de courtes périodes coexister en même temps étant donné que de nombreuses transactions peuvent être enregistrées en même temps. Au sein d'une blockchain privée pas besoin de déployer des moyens d'une telle démesure, « the ordering service » remplit cette tâche grâce à un mode de consensus extrêmement modulable. Autrement dit, c'est quand on créer cet élément de la blockchain que l'on doit opter pour l'un des modes d'élaboration du consensus compatible avec Hyperledger Fabric. Ce choix importe peu, ces noeuds étant détenus par les greffes des tribunaux de commerce, tiers de confiance par excellence, n'importe quel mode de consensus léger est acceptable.

En somme « the ordering service establishes the total order of all transactions in Fabric, where each transaction contains state updates and dependencies computed during the execution phase, along with cryptographic signatures of the endorsing peers335».

3) Exemple de l'enregistrement d'une transaction.

Nous avons retenu un agencement particulièrement simple des différents composants de base d'Hyperledger Fabric. C'est un choix délibéré, car en raison de la vocation de la publicité efficace (absence de vocation probatoire, et mission d'accessibilité maximale), il n'est pas nécessaire de multiplier les espaces cloisonnés au sein de la blockchain. En effet, tous les créanciers garantis feront le même usage de notre application, en inscription, et tous les tiers intéressés par la publicité des sûretés mobilières feront le même usage en recherche. Hyperledger Fabric permet de créer des blockchains pour satisfaire les besoins d'utilisateurs

331Ibid.

332Ibid.

333Ibid.

334« Orderers are entirely unaware of the application state, and do not participate in the execution nor in the

validation of transactions », ibid.

335Ibid.

qui souhaiteraient la partager tout en en faisant des usages différents. Ainsi il n'est pas nécessaire de développer un réseau très complexe.

Il y a par principe trois étapes nécessaires à l'enregistrement d'une transaction au sein d'une blockchain créée grâce au protocole Hyperledger. Notre réseau sera construit sur le même modèle. (a. The execution Phase), (b. The ordering Phase), (c. The validation Phase)

a. The execution phase.

« In the execution phase, clients sign and send the transaction proposal (...) to one or more endorsers for execution336». Imaginons qu'un créancier garanti souhaite inscrire un warrant agricole sur le registre global des sûretés mobilières. Il devra commencer par s'identifier auprès du membership service (voir annexe 2). Après quoi il aura le droit d'uploader l'avis d'inscription sur l'espace de stockage (voir annexe 2) où l'avis sera conservé temporairement dans un premier temps. La demande d'inscription sera transmise par l'application à plusieurs endorsing peers (voir annexe 2). Ces pairs vont effectuer des calculs et des simulations en activant leurs chaincodes. À cette étape, un message d'erreur pourra être envoyé au créancier garanti si sa demande d'inscription ne correspond pas aux critères de gestion du réseau (the endorsement policy). Le tracé de cette erreur est représenté sur notre schéma par le tracé des flèches rouges. Les endorsers peers exécutent un travail de filtrage, si la demande d'inscription passe cette étape alors l'information atteindra l'ordering service.

b. The ordering phase.

« The ordering service batches multiple transactions into blocks and outputs a hash-chained sequence of blocks containing transactions337 ». L'ordering service va rassembler plusieurs transactions pour créer des blocks. Il s'agit de la blockchain proprement dite. L'information émise par notre créancier garanti sera « commit » sur un « channel », un canal de communication au sein de notre réseau.

c. The validation phase.

« Blocks are delivered to peers either directly by the ordering service or through gossip. A new block then enters the validation phase which consists of three sequential steps 338». Ces trois phases de validation « The endorsement policy evaluation 339», the « read-write conflict check340» et enfin the « ledger update phase341» constitue la dernière étape avant l'inscription d'une transaction sur la blockchain. « The validation system chaincode 342» est l'élément clé de cette dernière étape. Son action dépendra des règles de gestion et de gouvernance du réseau que nous aurons posées grâce au protocole Hyperledger Fabric, qui est encore une fois très permissif et flexible. Il faut bien comprendre que nous avons dépassé les étapes de filtrage (indiquées par le parcours des flèches rouges sur l'annexe 2). Que la

336Ibid. 337Ibid. 338Ibid. 339Ibid. 340Ibid. 341Ibid. 342Ibid.

transaction soit valide ou non, elle sera inscrite en tout état de cause sur la blockchain343. L'enjeu est relatif aux effets de la transaction. Si le créancier A a tenté une transaction qui a été invalidée, cela signifie que l'historique de blockchain conservera une trace de l'échec de l'inscription de sa sûreté. Peut-être l'utilisateur a-t-il envoyé par mégarde deux demandes d'inscription identiques à quelques secondes d'intervalle. L'historique conservé dans le ledger distribué conserva la trace de cette seconde inscription malvenue.

À l'inverse si l'inscription est valide, la première inscription tentée par le créancier de notre exemple le serait par exemple, il est souhaitable que la blockchain transmette un feedback à l'application dont l'interface pourra prévenir le créancier garanti que son inscription est valide.

343« If the endorsement is not satisfied, the transaction is marked as invalid and its effects are disregarded. », ibid.

précédent sommaire suivant






Bitcoin is a swarm of cyber hornets serving the goddess of wisdom, feeding on the fire of truth, exponentially growing ever smarter, faster, and stronger behind a wall of encrypted energy








"Nous devons apprendre à vivre ensemble comme des frères sinon nous allons mourir tous ensemble comme des idiots"   Martin Luther King