Vous êtes sur la page 1sur 26

[EN] Article 14 : Consortium Blockchain-Based Decentralized Stock Exchange

Platform
[FR] Article 14 : Plateforme boursière décentralisée basée sur la blockchain du
consortium

L'architecture de mise en œuvre globale du marché boursier traditionnel répartit les


responsabilités et les données entre différents intermédiaires, y compris des
organisations financières et gouvernementales. Chaque organisation gère son système et
collabore avec les autres pour faciliter les échanges sur la plate-forme boursière, et les
ordres d'achat et de vente passent généralement par différentes parties avant d'être réglés.
Cette architecture, qui implique une chaîne complexe d'intermédiaires, présente
plusieurs limites et lacunes, telles qu'un point de défaillance unique, un délai plus long
pour les règlements financiers et une faible transparence. La technologie Blockchain
consiste en un réseau de nœuds informatiques qui partagent en toute sécurité un registre
commun sans avoir besoin d'intermédiaires. Dans cet article, nous présentons une
nouvelle architecture basée sur la blockchain pour un marché boursier entièrement
décentralisé. Notre architecture est basée sur une blockchain Ethereum privée pour créer
un réseau de consortium s'appuyant sur des organisations qui sont déjà impliquées dans
la bourse traditionnelle pour agir en tant que nœuds de validation. Dans notre
architecture, la logique de négociation de la bourse est entièrement mise en œuvre sur
un contrat intelligent, tout en tenant compte des réglementations gouvernementales
existantes du marché. Étant donné que la nouvelle plateforme n'introduit pas de
changements significatifs dans la logique de négociation boursière et n'élimine aucune
des parties traditionnelles du système, notre proposition favorise l'adoption et le
déploiement efficaces de plateformes boursières décentralisées. En outre, nous
présentons une démonstration de faisabilité de la nouvelle architecture, y compris le
contrat intelligent pour les échanges commerciaux, ainsi qu'un réseau de test basé sur la
virtualisation afin d'évaluer les performances de la plateforme. Le réseau de test se
compose de nœuds virtuels qui exécutent le contrat intelligent développé pour la bourse
où nous mesurons le débit et la latence des ordres d'achat et de vente pour différentes
tailles de réseau et différents scénarios de charge de travail de négociation. Les résultats
obtenus ont montré que la plateforme de négociation proposée peut atteindre un débit de
311,8 tx/sec, ce qui équivaut à 89 % du débit optimal lorsque le taux d'envoi est de 350
tx/sec. Ce débit est largement suffisant pour répondre aux exigences des principales
bourses, comme celle de Singapour.

I. INTRODUCTION
Le marché boursier est une plateforme composée d'organisations financières et
gouvernementales qui participent à l'échange d'actions, d'obligations ou d'autres titres
dans le cadre d'une transaction connue sous le nom d'opération. La croissance de ce
marché a un impact positif et direct sur la croissance financière de l'économie d'un pays,
car il offre des opportunités qui attirent les investisseurs pour négocier et échanger des
actions. Des études menées aux États-Unis [1] et au Pakistan [2] examinent cette
relation en comparant les performances du marché boursier avec le produit intérieur brut
(PIB).

Les auteurs concluent que la performance de la bourse est directement


proportionnelle à la performance de l'économie d'un pays. Par exemple, le Pakistan a
enregistré une croissance du PIB et du marché boursier d'environ 30 % et 6,08 %,
respectivement, entre 2003 et 2008. Par conséquent, la stabilité et la sécurité de la
plateforme boursière sont essentielles pour accroître la confiance dans l'investissement
et le commerce, ce qui se traduit finalement par une meilleure croissance économique
pour le pays.

Malgré la grande popularité et l'adoption de l'architecture de la plate-forme


boursière conventionnelle, celle-ci souffre de différentes limitations et lacunes [3], 1) en
raison de l'architecture centralisée de la plate-forme boursière, chaque système
participant, tel que les courtiers et le système boursier, doit être intégré dans le système
de gestion de la bourse, ce qui entraîne une perte de temps et d'argent. cela est considéré
comme un point de défaillance unique, 2) il y a des incohérences dans les données
gérées par chaque système, ce qui entraîne des erreurs et prolonge le temps de
récupération en cas de défaillance, 3) la disponibilité du système sur une base
quotidienne est limitée, ce qui peut avoir un impact sur des exercices tels que l'audit des
données e t l a fourniture d'un accès transparent aux utilisateurs tout au long de la
journée, et 4) le long délai nécessaire au système pour effectuer les règlements
financiers ; en général, il faut trois jours après la négociation pour effectuer le règlement.
Les principaux fournisseurs qui construisent des moteurs d'exécution et d'appariement
des transactions dans le secteur financier ont tenté à maintes reprises de remédier aux
limitations susmentionnées. Par exemple, Nasdaq, qui est l'un des principaux
fournisseurs de technologies de négociation et d'appariement, propose différents
services et produits tels que l'hébergement, la gestion et la fourniture de services pour
l'ensemble des processus de négociation de bout en bout. Ils fournissent également des
systèmes de surveillance intégrés à d'autres systèmes pour permettre à leurs clients de
contrôler et de réguler le processus de négociation et de règlement. Cependant, cette
approche souffre encore de limitations telles que le long délai de règlement, le niveau
limité de transparence des données et les heures de négociation définies. Plus important
encore, les clients peuvent exiger des spec- ifications matérielles ou la nécessité de
suivre une architecture imposée qui implique la distribution des systèmes impliqués
dans le processus de négociation à travers de multiples organisations où chacune gère
son système séparément. Par exemple, certaines autorités de régulation des marchés
boursiers imposent des solutions spécifiques de règlement en espèces et de
compensation, qui constituent un système différent de celui fourni par le Nasdaq [4]. Il
faut donc maintenir plusieurs systèmes, ce qui augmente le risque d'avoir un seul point
de défaillance parmi les systèmes participants et accroît la complexité de l'architecture
globale du système de la plateforme de négociation.

Selon [5], la blockchain peut résoudre de nombreuses limitations identifiées


affectant la plateforme boursière traditionnelle, telles que le manque de transparence, le
long délai de règlement entre les courtiers et la banque centrale, et les frais de
transaction élevés payés aux courtiers pour chaque transaction générée. Dans [3],
l'architecture centralisée du marché boursier de Bucarest a été analysée afin de remédier
à ses limites, l'objectif principal étant de résoudre le problème des frais élevés que
l'investisseur paie au courtier pour chaque transaction exécutée avec succès. Les auteurs
définissent le nouveau marché boursier dans un contrat intelligent et le déploient dans le
réseau public Ethereum. Cette mise en œuvre exige une forme de paiement, en crypto-
monnaie Ethereum (Ether), pour chaque transaction effectuée. Leur conclusion montre
que la décentralisation de la plateforme de la bourse de Bucarest peut contribuer à
réduire les frais de transaction totaux. L'objectif de la recherche et l'approche de la mise
en œuvre pour décentraliser la plateforme de la bourse de Bucarest varient avec notre
objectif et l'approche que nous avons adoptée dans plusieurs domaines clés. Tout
d'abord, nous utilisons un réseau blockchain de consortium dans lequel tous les
participants sont connus et de confiance, et il n'y a aucune forme de frais de crypto-
monnaie qui seront utilisés pour payer les mineurs dans le réseau. Deuxièmement, notre
principal objectif est d'optimiser les performances du système décentralisé plutôt que de
réduire les frais, car nous mesurons le débit et la vitesse de transmission des données.

pour s'assurer que notre mise en œuvre répond au niveau requis de la plateforme
boursière. En outre, notre algorithme de consensus est basé sur la preuve d'autorité
(PoA). Il offre de meilleures performances en termes de temps d'exécution et d'efficacité
énergétique par rapport aux algorithmes de consensus du réseau public tels que la
preuve de travail (PoW) utilisée par la bourse décentralisée de Bucarest. Les
algorithmes de consensus seront examinés plus en détail dans la suite de ce document.
Le TABLEAU 1 donne la définition des acronymes utilisés dans le présent document.
Dans cet article, nous proposons une plateforme boursière consortiale basée sur
la blockchain qui répond aux exigences de performance de la plateforme boursière tout
en tenant compte des limites de la bourse traditionnelle. Notre proposition est basée sur
la technologie blockchain Ethereum dans laquelle toutes les règles et réglementations
commerciales nécessaires sont définies dans un contrat intelligent partagé à travers un
réseau blockchain autorisé avec les institutions financières et gouvernementales
participantes. Nous effectuons des tests expérimentaux en déployant le contrat
intelligent sur des nœuds virtuels et en mesurant les performances du réseau sous
différentes charges de travail en augmentant le nombre de transactions générées et le
nombre de nœuds de validation. Nos résultats montrent que cette architecture répond
aux performances requises de la plateforme boursière en termes de latence et de débit
dans différents scénarios de test.

Le reste du présent document est organisé comme suit : La section II donne un


aperçu de la plateforme boursière traditionnelle. La section III présente une vue
d'ensemble de la technologie blockchain et examine les différentes implémentations et
les algorithmes de consensus de la blockchain pour les implémentations publiques et
privées. La section IV aborde les travaux connexes en mettant l'accent sur la conception
de la mise en œuvre basée sur la blockchain pour le marché boursier et un système
d'enchères électroniques. Notre proposition de cadre de bourse basé sur la blockchain
est présentée dans la section V, où 8,nous VOLUME 2020 discutons de l'architecture du
système et du contrat intelligent définissant les fonctionnalités et logique commerciale
de la bourse. Dans la section VI, nous évaluons les performances de l'architecture
proposée en termes de débit et de temps de latence des transactions. Enfin, la section
VII conclut le document.

II. APERÇU DE LA BOURSE TRADITIONNELLE

Le marché boursier peut être défini comme ''une agrégation d'offres d'achat et de
vente correspondant à un actif'' [6]. L'actif se présente sous la forme d'obligations,
d'actions ou d'autres titres proposés par le marché. La personne qui négocie sur le
marché boursier est appelée investisseur ou trader et doit d'abord ouvrir un compte de
négociation auprès du dépositaire central de titres (CSD), qui se charge de gérer les
comptes de négociation et les données personnelles des investisseurs. En raison de la
réglementation du marché, les investisseurs ne peuvent pas passer directement un ordre
dans le système et doivent passer par une tierce partie, à savoir les courtiers. Dans le cas
des négociants internationaux, une entité financière spéciale, appelée dépositaire, est
employée pour passer des ordres sur le marché local. Le moteur d'appariement des
ordres d'achat et de vente saisis est hébergé par l'entité Stock Exchange (SE). La Banque
centrale (BC) gère le règlement financier entre les courtiers et les dépositaires. Toutes
les organisations gouvernementales et financières participantes doivent respecter les
règles et réglementations définies par l'Autorité des marchés financiers (AMF). La FMA
est également responsable de la surveillance continue de la plate-forme boursière et de
l'examen des données. Un résumé des différentes entités impliquées dans le marché
boursier traditionnel avec leur description respective est donné dans le TABLEAU 2.

A. VUE D'ENSEMBLE DU COMMERCE

Le marché boursier traditionnel est une plateforme centralisée, comme le montre


la FIGURE 1, qui présente cette architecture et le flux d'événements qui se produisent
lorsqu'un nouvel investisseur participe à la plateforme. Tout d'abord, l'investisseur doit
ouvrir un compte d'investisseur auprès du DCT et obtenir son numéro national
d'investisseur (NIN). L'investisseur doit ensuite ouvrir un compte de négociation auprès
d'un courtier en fournissant le compte NIN obligatoire. Une fois les informations de
l'investisseur validées, il peut passer des ordres d'achat ou de vente d'actions par
l'intermédiaire des services de courtage associés, tels que le site web ou l'application
mobile. Le courtier se charge d'utiliser son système de gestion des ordres (OMT), qui
sert d'interface avec SE pour soumettre l'ordre de l'investisseur. Une fois qu'une
transaction réussie est générée pour cet ordre, SE envoie à l'investisseur l'ordre d'achat
ou de vente de l'action.

Le courtier envoie un message d'accusé de réception au courtier, qui informe


ensuite l'utilisateur par l'intermédiaire des différents services fournis par le courtier. Les
actions détenues par l'investisseur sont mises à jour sur le compte du courtier ainsi que
sur le compte de l'investisseur détenu dans le système CSD. L'autorité de régulation du
marché, la FMA, a accès aux systèmes de la SE et du CSD pour surveiller le marché et
valider les transactions pendant et après les heures d'ouverture.

B. HEURES ET PHASES DE NÉGOCIATION

Dans la plupart des implémentations, un marché boursier passe par quatre phases
différentes, comme le montre la FIGURE 2. Le marché commence par une phase de
pré- ouverture de 30 minutes au cours de laquelle les investisseurs peuvent entrer leurs
ordres, mais aucune transaction n'est générée. Les prix d'ouverture des titres cotés sont
calculés sur la base des offres d'achat et de vente saisies, de sorte qu'à l'ouverture du
marché, ces prix calculés seront les prix d'achat et de vente utilisés par les investisseurs.
La phase suivante est l'ouverture du marché, au cours de laquelle les titres cotés peuvent
être négociés et les ordres entrés lors de la phase de préouverture sont exécutés. Il s'agit
de la phase principale de la bourse, au cours de laquelle les ordres continuent d'entrer et
les transactions sont générées. La durée de cette phase est d'environ 3 heures et 30
minutes et peut varier d'une bourse à l'autre en fonction de la réglementation du pays qui
l'accueille. Le marché se prépare ensuite à la clôture et entre dans la phase de pré-
clôture, dont la durée est estimée à 10 minutes.

Au cours de cette phase, des algorithmes sont exécutés pour générer les prix de
clôture des titres cotés, et les investisseurs peuvent toujours entrer leurs ordres, mais
aucune transaction n'est générée. Enfin, le marché entre dans la phase de clôture, d'une
durée estimée à 5 minutes, au cours de laquelle les ordres saisis sont exécutés. Le
marché est alors fermé pour la journée.
C. TYPES DE COMMANDES

Les investisseurs peuvent passer différents types d'ordres d'achat ou de vente


d'actions [3]. Ces types d'ordres sont énumérés ci-dessous afin d'expliquer comment une
correspondance réussie entre les transactions d'achat et de vente se produit, étant donné
que certains ordres permettent aux investisseurs de spécifier des conditions qui, si elles
sont déclenchées, entraînent l'exécution de l'ordre et, par conséquent, la création de
transactions :

◆ Ordre de marché : L'acheteur souhaite acheter les actions au prix actuel de l'action
sur le marché. Il en va de même pour le vendeur. Ce type d'ordre ne garantit pas le
gain financier le plus élevé de la transaction, mais assure l'exécution immédiate de
l'ordre lorsqu'il est introduit.

◆ Ordre à cours limité : L'acheteur fixe une limite maximale qu'il est prêt à payer
pour acheter une action particulière. L'ordre est exécuté pour toute offre de vente
égale ou inférieure à cette limite. Dans le cas du vendeur, la limite sera le prix
minimum qu'il est prêt à payer pour vendre. L'ordre est exécuté pour tout ordre
d'achat dont le prix est supérieur ou égal à la limite minimale.

◆ Ordre défini par la validité : Cet ordre peut être associé à un type d'ordre à cours
limité ou à un type d'ordre au marché. L'ordre saisi reste valable pendant un jour
(ordre journalier) ou jusqu'à une certaine date (ordre valable jusqu'à cette date).
Dans la plupart des marchés boursiers, le système annule l'ordre au bout d'environ
62 jours si aucune date de validité n'est indiquée (ordre ouvert).

◆ Ordreet Fill or Kill Blockchain-Based (FOK) : Exécuter l'ordre complet (vendre


ou acheter toutes les actions indiquées) ou annuler l'ordre.

◆ Ordre immédiat ou d'annulation (IOC) : L'ordre est immédiatement exécuté et la


quantité restante qui n'a pas été satisfaite est annulée.

III. APERÇU DE LA BLOCKCHAIN

Pour remédier aux limites et aux lacunes de la plateforme boursière


traditionnelle, nous avons opté pour la technologie Blockchain. La blockchain peut être
définie comme un "réseau d'ordinateurs, qui doivent tous approuver une transaction
avant qu'elle ne soit enregistrée, dans une "chaîne" de code informatique. Les détails du
transfert sont enregistrés dans un grand livre public où tout le monde sur le réseau peut
voir l'information [7]. La blockchain se compose de blocs contenant chacun un pointeur
sous la forme d'un hachage du bloc précédent et de données de transaction vérifiées
protégées par des signatures de hachage [8]-[10]. Les transactions dans la blockchain
sont diffusées dans le réseau et sont validées par un processus connu sous le nom de
minage qui est effectué par des nœuds spéciaux dans le réseau connus sous le nom de
nœuds de minage (miner nodes) [7]. Les nœuds mineurs sont des nœuds spécifiques qui
ajoutent un nouveau bloc à la chaîne une fois que le bloc est plein. Il est extrêmement
difficile de modifier un bloc de la chaîne, car il faut que les blocs suivants soient
recréés ; ce mécanisme empêche donc toute modification et maintient un niveau élevé
de sécurité. La FIGURE 3 montre le contenu des trois premiers blocs.

Comme indiqué, chaque bloc se compose de la liste des transactions, du hachage


du bloc précédent (à l'exception du premier bloc) et d'une valeur nonce, qui est un
nombre qui ne peut être utilisé qu'une seule fois. Dans certaines implémentations de
blockchain telles que Bitcoin, le nonce est modifié par le mineur de sorte que le hachage
du bloc soit égal ou inférieur à une certaine valeur numérique cible fournie par le réseau
en tant que défi. Le bloc contient également le hachage du bloc lui-même.

Afin de garder une trace de toutes les transactions, le grand livre de la blockchain est
utilisé dans un réseau où les participants ont accès au même grand livre qui reproduit les
transactions entre tous les nœuds pairs de ce réseau. Cette réplication garantit que le
système global construit sur la blockchain peut reprendre si plusieurs nœuds participants
ne parviennent pas à se connecter au réseau. Les nœuds du réseau utilisent des adresses
ou des identifiants connus sous le nom de clés publiques pour se distinguer, ce qui
permet de maintenir efficacement des rôles définis, la confidentialité et l'anonymat [11].
Les nœuds de minage s'appuient sur le fait que toutes les transactions dans le réseau
sont dupliquées sur tous les nœuds concernés. Il faut donc parvenir à un "consensus
distribué", ce qui signifie que tous les nœuds concernés se mettent d'accord sur la
validité de la blockchain et qu'ils partagent tous la même version de la blockchain [12].

Certaines implémentations de la blockchain, comme Ethereum, utilisent des protocoles


pour présenter la logique qui doit être suivie et qui est connue sous le nom de contrat
intelligent. Selon [13], un contrat intelligent peut être défini comme "les protocoles
informatiques qui facilitent, vérifient et appliquent numériquement les contrats conclus
entre deux ou plusieurs parties sur la blockchain". Le contrat intelligent garantit que la
logique définie est validée et doit être respectée. Il n'est pas nécessaire qu'une entité
centralisée valide les conditions définies dans le contrat intelligent puisqu'une fois qu'il
est déployé, tous les nœuds participants du réseau doivent suivre la logique définie dans
le contrat.

A. TYPES DE MISE EN ŒUVRE DE LA BLOCKCHAIN


Dans la blockchain, tous les nœuds doivent parvenir à un accord ou à un
consensus sur le prochain bloc à ajouter à l a chaîne, d'autant plus que dans un réseau
d'égal à égal tel que la blockchain, ces nœuds ne se font pas confiance. Cependant, il
existe de nombreux mécanismes de consensus qui peuvent être utilisés en fonction du
type de mise en œuvre et de la technologie blockchain utilisée. Il existe principalement
deux types de mise en œuvre pour les réseaux blockchain : sans permission et avec
permission.

1) blockchain sans permission (publique)

La mise en œuvre publique ou sans permission de la blockchain permet à tout


utilisateur de devenir un nœud et de se connecter au réseau par l'intermédiaire de
l'internet. La mise en œuvre utilise le concept de réseau pair-à-pair (P2P) qui utilise une
architecture distribuée dans laquelle aucun client ne prend la forme d'un administrateur.
Tous les clients du réseau sont connectés par une topologie plate où chaque pair partage
les mêmes droits et privilèges que les autres pairs et a accès aux mêmes ressources que
ces derniers [7], [14], [15].

2) blockchain autorisée (privée)

Contrairement à la blockchain sans permisson, les nœuds de la blockchain avec


permission sont identifiés et authentifiés. Dans certaines mises en œuvre, une entité se
charge de gérer les rôles et les responsabilités des nœuds et de leur accorder
l'autorisation d'accéder aux données en conséquence.

B. ALGORITHMES DE CONSENSUS

Il existe plusieurs algorithmes de consensus pour la mise en œuvre d'un réseau


blockchain public, tels que la preuve de travail (PoW), la preuve d'enjeu (PoS), la
preuve de brûlure (PoB), la preuve d'enjeu déléguée (DPoS) et la preuve d'importance
(PoI). PoW et PoS sont les deux algorithmes de consentement les plus célèbres et les
plus couramment utilisés [16]. PoW est un mécanisme de hachage intensif qui pose un
défi mathématique difficile à résoudre pour les mineurs de blocs, et celui qui parvient à
résoudre le chalenge en premier devient le mineur de blocs [17]. Ce protocole garantit
l'intégrité entre tous les nœuds, mais souffre énormément en termes de temps de
performance, de traitement et d'énergie [17]. En revanche, le protocole de consensus
PoS est plus économe en énergie et réduit les coûts de minage. Ce protocole prend
moins de temps que le PoW pour valider une transaction, car il repose sur la
participation des validateurs au vote pour le bloc suivant, et le poids du vote de chaque
validateur dépend du montant qu'il a déposé dans ce système. Les nœuds autorisés à
créer un bloc agissent en tant que validateurs qui doivent déposer une certaine quantité
de crypto-monnaie en tant qu'enjeu dans le réseau qui sera bloqué pour avoir une chance
d'être sélectionné comme mineur du prochain bloc. Plus un validateur a d'enjeux dans le
réseau, plus il a de chances d'être sélectionné pour valider le nouveau bloc. Ce protocole
permet d'agir correctement, car tout validateur qui enfreint les règles du réseau ou agit
de manière malveillante perd sa mise déposée dans le réseau [18]. Le PoS présente
plusieurs avantages, tels qu'une consommation moindre d'énergie, un meilleur temps de
performance, et le mécanisme d'un enjeu pouvant être perdu en cas de comportement
malveillant devrait inciter les validateurs à agir de manière authentique plus que dans le
PoW.

Dans le cas des réseaux de blockchain autorisés, PoA et RAFT sont des
algorithmes de consensus populaires où les participants sont connus et de confiance
dans un réseau privé. Selon [17], PoA est un algorithme qui a attiré beaucoup d'attention
en raison de sa performance offerte résultant de messages échangés plus légers. Il
fonctionne par tours où plusieurs nœuds sont élus, l'un d'entre eux jouant le rôle de
leader minier chargé de proposer le nouveau bloc et de parvenir à un consensus. Ces
nœuds élus sont appelés " autorités " et chacun possède un identifiant unique dans
lequel, si nous avons N autorités, au moins N/2 +1 sont supposées être honnêtes. Cet
algorithme suit un "schéma de rotation minière" pour distribuer la création de blocs
entre les autorités de manière équitable, et pour chaque étape du tour, un leader minier
de l'autorité est élu pour miner le nouveau bloc [17].

Dans [19], l'auteur affirme que le consensus RAFT est facile à comprendre et à
mettre en œuvre, ce qui le rend efficace pour la construction d'applications et de
systèmes. Il fonctionne avec un minuteur fixe pour tous les nœuds autorisés, qui
peuvent valider de nouveaux blocs dans des "termes" qui peuvent être considérés
comme des tours qui se répètent au fil du temps. Pour un terme donné, la première
autorité entre dans ce que l'on appelle l'"état de candidat", dans lequel elle vote pour
elle-même afin de devenir un leader et diffuse des demandes aux autres autorités pour
qu'elles votent pour elle. Si la majorité a voté en faveur du nœud candidat, celui-ci
devient le chef de file de cette période. Une fois qu'un leader est élu, son rôle est de
répliquer les journaux de transactions sur tous les autres nœuds. Les journaux atteignent
la finalité et sont validés par le leader si et seulement s'ils ont atteint la majorité des
nœuds, une fois que cela se produit, le leader valide le journal et demande aux autres
nœuds de faire de même par le biais d'un message de diffusion. Si la majorité des nœuds
sont hors ligne, le chef ne sera pas en mesure de valider les journaux et il existe un
risque élevé de perdre le journal si le chef et les nœuds restants sont hors ligne [19].

Le TABLEAU 3 compare les algorithmes de consensus sans permission et avec


permission présentés dans ce document. Pour la solution proposée, tous les participants
au réseau doivent être connus et fiables. L'algorithme de consensus sélectionné devrait
permettre à un participant autorisé d'agir en tant qu'administrateur de l'ensemble de la
plateforme, étant donné que la FMA réglemente le marché boursier et que son rôle doit
être perçu. En outre, le réseau doit présenter une tolérance aux fautes byzantine au cas
où certains des validateurs du réseau agiraient de manière malveillante. L'algorithme de
consensus PoA répond à ces exigences. En outre, pour notre mise en œuvre de la preuve
de concept, nous avons adopté l'implémentation Geth de PoA, appelée Clique. Clique a
un schéma de rotation pour l'élection du leader, de sorte qu'à chaque tour, le leader du
tour annonce le bloc et celui-ci est ajouté à la blockchain par les nœuds récepteurs [17].

IV. TRAVAUX CONNEXES

Selon [20], les implémentations de la blockchain dans le secteur financier se


concentrent sur quatre domaines principaux, à savoir l'amélioration du temps de
traitement des transactions, la durabilité des transactions bancaires et financières,
l'amélioration de la confidentialité et de la sécurité des données financières et
l'automatisation des contrats financiers. En ce qui concerne l'amélioration du temps de
traitement des transactions, les auteurs soulignent que les systèmes bancaires actuels
reposent sur des bases de données centralisées qui nécessitent plusieurs jours pour
réaliser les règlements financiers des transactions exécutées [21]. La solution qu'offre la
blockchain pour résoudre ce problème, selon les auteurs, est d'automatiser le règlement
des transactions financières en mettant en place une base de données centralisée.

Une structure qui sera utilisée par les institutions financières, ainsi que
l'accélération des transferts de fonds internationaux [21]. La durabilité est un autre
problème dont souffrent les banques et les institutions financières, en particulier lorsque
la faillite d'une banque peut avoir un impact important sur l'ensemble des secteurs
financiers. Les auteurs de [24] soutiennent que la mise en œuvre de la blockchain peut
conduire le secteur financier à la stabilité, en particulier lorsque le grand livre
décentralisé de l'argent est indépendant des réglementations financières des pays et des
régions. La sécurité et la confidentialité des données financières sont actuellement
confrontées à de nombreux défis en raison de la nature du stockage centralisé des
données sur lequel reposent les instructions bancaires et financières [22]. Cela peut
conduire à des violations de données qui révèlent non seulement des données
financières, mais aussi des données personnelles et démographiques qui ont également
été stockées dans le système centralisé. En outre, les transactions bancaires ne
garantissent pas un anonymat suffisant et n'étendent pas la liberté de confidentialité que
les clients souhaiteraient avoir. La blockchain résout ces deux problèmes en
décentralisant les données et en veillant à ce qu'elles soient stockées en toute sécurité
dans les nœuds participants, qui ajoutent une grande complexité aux tentatives non
autorisées de modification ou d'accès aux données stockées. Chaque participant est
autorisé à effectuer des modifications en fonction du rôle qui lui a été attribué, tout en
préservant l'anonymat des transactions effectuées [23]. Enfin, les auteurs de [20]
soulignent que la blockchain automatise les contrats financiers en termes d'exécution en
éliminant le besoin d'une tierce partie au milieu et en permettant à une transaction
financière d'être déclenchée entre les deux parties concernées. Pour illustrer cette
fonctionnalité, un transfert d'argent prend généralement quelques jours, en particulier
dans les pays en développement, car certains contrôles et réglementations doivent être
vérifiés. Lorsqu'une telle transaction est mise en œuvre à l'aide d'un contrat financier
dans la blockchain, elle ne nécessite plus l'intervention d'un tiers tant que les deux
parties remplissent leurs rôles tels que définis dans le contrat. La transaction financière
sera exécutée en toute sécurité et l'argent sera transféré en quelques minutes [24].
Nous avons analysé deux implémentations particulières qui ressemblent beaucoup à
notre idée. Le premier article traite du concept de décentralisation de la plateforme
boursière à l'aide de la technologie Blockchain, tandis que le second article utilise le
concept de contrat intelligent dans la blockchain pour construire une plateforme
d'enchères.

A. DÉCENTRALISATION DE LA PLATEFORME BOURSIÈRE DE BUCHAREST

Dans [3], les auteurs discutent des limites du marché boursier traditionnel et
proposent une solution pour mettre en œuvre la plateforme de négociation sur la
blockchain. L'objectif de leur recherche est de montrer comment les frais de transaction
peuvent être réduits si la blockchain est utilisée comme plate-forme de négociation au
lieu de la plate-forme boursière traditionnelle utilisée par le marché boursier de Bucarest.
Pour tester leur expérience, les auteurs ont mis en œuvre deux systèmes, le premier étant
modélisé selon la plateforme boursière centralisée de Bucarest (FIGURE 4), dans
laquelle tous les ordres entrés par différents courtiers sont rassemblés dans un système
unique. Le second système mis en œuvre est une solution décentralisée basée sur la
blockchain qui utilise un contrat intelligent pour simuler la plateforme boursière. Cette
conception ne nécessite pas d'avoir des courtiers pour entrer les ordres, et au lieu de cela,
les investisseurs peuvent interagir directement avec le système et entrer l'ordre eux-
mêmes. Ce faisant, les frais payés aux courtiers sont éliminés, et les frais que les
investisseurs paient par transaction dans le système de négociation basé sur la
blockchain proposé sont globalement inférieurs aux frais payés sur la plateforme
boursière traditionnelle. Les auteurs concluent que les frais dans le système décentralisé
augmenteront à mesure que le nombre d'ordres dans le carnet d'ordres augmentera, car
la complexité de la transaction sera plus élevée. Par conséquent, le système décentralisé
offrira de meilleurs frais de transaction que le système centralisé lorsque le carnet
d'ordres est partiellement rempli.
B. SYSTÈME D'ENCHÈRES BASÉ SUR UN CONTRAT INTELLIGENT
BLOCKCHAIN

Un système d'enchères en ligne comporte plusieurs éléments communs avec la


plate-forme boursière. Il se compose d'enchérisseurs, d'auc- teurs et d'intermédiaires
tiers qui fournissent la plateforme qui relie les enchérisseurs aux commissaires-priseurs
et permet d'afficher des produits, de vérifier le prix de l'enchère la plus élevée et de
déclarer le gagnant avec le prix de l'enchère le plus élevé. Les auteurs de [10] proposent
de construire un système d'enchères électroniques sans intermédiaires entre les vendeurs
et les acheteurs en utilisant un contrat intelligent basé sur Ethereum. Leur objectif est de
résoudre les deux principaux problèmes des systèmes d'enchères électroniques actuels, à
savoir le niveau de sécurité limité offert par la plateforme en ligne et les frais de
transaction élevés que les utilisateurs doivent payer. Les auteurs affirment que leur
solution basée sur la blockchain résout le premier problème en garantissant que la
sécurité liée aux données partagées entre les différents utilisateurs du système est gérée
et perçue de manière appropriée. Le deuxième problème est résolu en réduisant le coût
des transactions par la suppression de tout intermédiaire dans le système. La FIGURE 5
montre un organigramme représentant le processus d'appel d'offres. se déroule du début
à la fin. Tout d'abord, le vendeur affiche les informations relatives à l'enchère et le prix
de départ. Les enchérisseurs proposent le prix dans l'enveloppe scellée et, lorsque celle-
ci est reçue par le commissaire- priseur, le prix dans l'enveloppe scellée le plus élevé est
annoncé comme étant le prix le plus élevé du moment. Si aucun prix reçu n'est supérieur
au prix le plus élevé de l'enchérisseur actuel ou si l'heure de clôture est arrivée, il est
annoncé comme le prix gagnant, et le commissaire- priseur peut envoyer le produit et
recevoir l'argent de l'enchérisseur gagnant [7]. En appliquant à titre expérimental la
plateforme d'enchères électroniques basée sur la blockchain proposée, les auteurs
concluent que le contrat intelligent peut assurer la confidentialité, la non- répudiation et
la prévention de la modification non autorisée des ordres d'enchère saisis.

Le TABLEAU 4 présente les principales différences entre la plateforme


proposée et les travaux connexes déjà examinés. Par exemple, notre principal objectif de
recherche est d'améliorer la performance du système en termes de disponibilité, de
sécurité et de transparence en adoptant une blockchain de consortium basée sur
Ethereum avec l'algorithme de consensus PoA. Nous maintenons tous les participants
clés de la plateforme boursière traditionnelle dans la plateforme proposée. Nous
n'introduisons pas de changements majeurs qui entrent en conflit avec les rôles et les
réglementations imposés par le gouvernement. Dans le cas de la bourse décentralisée de
Bucarest, l'objectif de la recherche est de réduire les frais de transaction payés aux
courtiers en apportant des changements significatifs à l'architecture existante et en
éliminant complètement le courtier de la plateforme. La nouvelle archi- tecture proposée
est basée sur le réseau Ethereum sans permission qui utilise l'algorithme de consensus
PoW. Cette nouvelle plateforme introduit de nouveaux frais qui sont inférieurs aux frais
payés aux courtiers dans l a bourse traditionnelle pour les cas où le carnet d'ordres est
partiellement rempli. L'objectif du deuxième travail connexe est de construire un
système d'enchères électroniques sécurisé sans avoir d'intermédiaires. Les auteurs ont
utilisé un réseau Etherem sans permission avec un algorithme de consensus PoW et ont
apporté des modifications à l'algorithme de consensus PoW.

plateforme d'enchères traditionnelle en supprimant les intermédiaires qui la gèrent. Ces


deux travaux reposent sur l'utilisation d'un réseau public de blockchain, dont les
performances sont médiocres et qui n'est pas en mesure de gérer l e débit et la latence
requis par la bourse actuelle.

V. PROPOSITION DE CADRE BOURSIER BASÉ SUR LA BLOCKCHAIN

Dans cette section, nous décrivons notre proposition d'actions décentralisées. Cette
plateforme est basée sur un consortium de blockchain entre des entités financières et
organisationnelles qui font déjà partie du marché boursier traditionnel. Nous donnons
d'abord un aperçu de l'architecture du système, définissons les rôles et les
responsabilités des entités participantes et présentons enfin le contrat intelligent qui
détient et gère la logique de négociation de la bourse.

A. ARCHITECTURE DU SYSTÈME
Comme le montre la FIGURE 6, notre système est composé d'un réseau
blockchain consor- tium, d'un contrat intelligent et d'entités financières et
organisationnelles. La blockchain du consortium facilite les transactions entre les
différentes entités participantes et gère le contrat intelligent stockeExchange qui gère la
logique de négociation des actions. Nous choisissons une blockchain avec permission
car les entités sont toutes connues et aussi parce que la version privée de la blockchain
est plus efficace en termes de transactions et de temps de latence. Le réseau du
consortium est composé d'un ensemble de participants autorisés (validateurs) qui sont le
CSD, le FMA, le courtier, le gouvernement et le SE. Chacun d'entre eux a des rôles et
des responsabilités spécifiques, conformément à la plateforme boursière traditionnelle.
Le contrat intelligent de StockExchange définit toute la logique de négociation ainsi que
les différentes fonctions qui peuvent être exécutées par les entités participantes, telles
que la création d'un courtier, la création d'un nouvel investisseur, l'attribution d'une
action à un investisseur, etc. Chaque entité participante possède une clé privée ainsi que
l'adresse et la clé publique associées qui sont utilisées pour l'authentification. Par
conséquent, le contrat intelligent garantit que chaque entité n'est autorisée à déclencher
des fonctions qu'en fonction des privilèges qui lui sont associés. Le TABLEAU 5
résume les fonctionnalités du contrat intelligent de StockExchange et les entités
autorisées à exécuter chacune d'entre elles. La description détaillée du rôle de chacune
des entités participantes est donnée ci-après :

◆ FMA : il est responsable de la création et de la maintenance du contrat intelligent


ainsi que de la définition de toutes les logiques et fonctionnalités de négociation. Il
surveille également le processus de négociation et veille à ce que toutes les règles et
réglementations définies soient correctement respectées. Il interagit avec le contrat
intelligent pour créer et maintenir des sociétés avec des actions et pour créer et
maintenir des courtiers.
◆ CSD : est responsable de la création et de la gestion des comptes des investisseurs.
Il interagit avec le contrat intelligent pour créer des comptes d'investisseurs et leur
attribuer des actions.

◆ Courtier : il joue le rôle de négociateur pour le compte des investisseurs. Il


interagit avec le contrat intelligent en y associant des investisseurs et en saisissant
des ordres d'achat et de vente pour les investisseurs associés. Les courtiers sont
également autorisés à attribuer des actions des comptes d'investisseurs du DCT au
compte de négociation de l'investisseur géré par le courtier. Chaque investisseur
peut avoir plusieurs comptes de négociation gérés par un courtier différent pour
chacun d'eux, tandis que chaque investisseur doit avoir un compte d'investisseur
unique (NIN).

◆ Gouvernement : il valide les données de l'investisseur envoyées par le DCT.

◆ SE : elle est responsable de l'appariement des ordres en file d'attente dans le carnet
d'ordres et de la génération de transactions.

B. StockExchange SMART CONTRACT

Nous définissons un contrat intelligent appelé "StockExchange" pour inclure la logique


commerciale et les rôles d'autorisation de chaque entité participante. Le contrat
intelligent gère les ordres d'achat et de vente et génère les transactions respectives
chaque fois qu'un ordre d'achat offre un prix égal ou supérieur au prix de l'ordre de
vente. Les différentes étapes de la négociation, mises en œuvre dans le contrat
intelligent, sont détaillées ci-dessous :

1) Soit QB une file d'attente de tous les ordres d'achat triés par ordre croissant, de sorte
que i représente l'indice de l'élément le plus élevé de la file d'attente, noté BP . Soit BQ
la quantité d'actions dans BP .

2) Soit QA une file d'attente de tous les ordres de vente triés par ordre décroissant, de
sorte que y représente l'indice de l'élément minimum de la file d'attente désigné par AP .
Soit AQ la quantité d'actions dans AP .

3) Nous supposons que tous les ordres introduits sont des ordres à cours limité ou des
ordres de marché et que des ordres partiellement appariés sont possibles dans les cas où
BQ /= AQ

4) Si BP ≥ AP et BQ = AQ , les deux ordres sont entièrement appariés et une transaction


est générée. Les indices i et y sont décrémentés de 1.

5) Si BP ≥ AP et BQ ≥ AQ , BP est partiellement apparié avec AP , et une transaction


est générée. La valeur de BQ est mise à jour de telle sorte que BQ = BQ - AQ et l'indice
y est décrémenté de 1.
6) Si BP ≥ AP et BQ < AQ , AP est partiellement apparié à BP , et une transaction est
générée. La valeur de AQ est mise à jour de telle sorte que AQ = AQ - BQ et l'indice i
est décrémenté de 1.

La FIGURE 7 montre le diagramme de séquence entre les entités participantes et le


contact intelligent, y compris toutes les étapes requises avant de générer des transactions
et de faire correspondre les ordres d'achat et de vente. La description détaillée de
chacune des étapes du diagramme est donnée ci-après :

1) FMA définit la liste de tous les courtiers qui composent le marché boursier en
appelant la fonction ''addBroker''. Le système répond par un message indiquant la
création réussie du courtier.

2) FMA définit les entreprises qui sont cotées en bourse ainsi que leurs détails tels que
le nombre d'actions qui les composent et leurs prix. La fonction ''addCom- pany'' est
utilisée à cet effet.

3) Le CSD valide l'intégrité des données de l'investisseur en les envoyant au


gouvernement. Le gouvernement répond au contrat intelligent pour mettre à jour le
statut de validation de l'investisseur.

4) CSD attribue à chaque investisseur validé un nouveau numéro de compte


d'investisseur ''NIN'' en utilisant la fonction ''addNin''.

5) Le courtier associe un investisseur à son compte à l'aide de la fonction


''AssociateBrokerToInvestor''. Le contrat intelligent valide ensuite en vérifiant le sous-
système du compte NIN pour s'assurer que le NIN existe. Si c'est le cas, le NIN est
associé au compte du courtier avec succès.

Le courtier assigne les actions qui sont stockées dans le compte NIN de l'investisseur
tenu par le DCT au compte de négociation tenu par le courtier, en appelant la fonction
''AssignShareToNin''. 7) Les ordres d'achat sont saisis par le courtier dans le contrat
intelligent. Une fois ces ordres saisis, le sous- système ''StockEx- change'' enregistre et
stocke l'ordre dans une file d'attente triée et tente de faire correspondre ces ordres avec
les ordres de vente existants en attente dans la liste de la file d'attente de vente. En cas
de correspondance réussie, le système répond au courtier que des transactions réussies
ont été générées pour les ordres introduits. Si aucune correspondance n'a pu être établie,
l e courtier est informé que les ordres ont été introduits avec succès dans le système. 8)
Cette étape est similaire à l'étape 7, car les courtiers introduisent des ordres de vente
dans le contrat intelligent. Si une correspondance réussie est générée, le courtier en est
informé ou, dans le cas contraire, il est informé que les ordres sont entrés avec succès
dans le système.

C. ANALYSE DE LA SÉCURITÉ ET DE L'EFFICACITÉ DU SYSTÈME


L'architecture boursière basée sur la blockchain proposée garantit la sécurité et
l'efficacité du système :

1) Transparence : le niveau de transparence offert par l'utilisation de la blockchain


garantit que toutes les transactions et données conservées par le système sont visibles
par les participants autorisés et ne peuvent pas être manipulées. Cependant, tout
changement nécessite le consensus et l'engagement de tous les participants au réseau
avant d'être validé. En revanche, la bourse traditionnelle souffre d'un niveau de
transparence insuffisant, car chaque partie possède son propre système et peut cacher ou
manipuler les données avant de les partager avec d'autres participants.

2) Haute disponibilité : l'architecture proposée résout le problème du point de


défaillance unique en garantissant une haute disponibilité grâce à la décentralisation des
données entre plusieurs particu- liers. Le contrat intelligent peut toujours être exécuté
même si certains nœuds sont déconnectés du réseau. Contrairement au marché boursier
traditionnel, si l'un des participants au système est indisponible, c'est l'ensemble du
marché qui est affecté.

3) Efficacité du réseau : en bourse, la qualité de la connectivité du réseau a un impact


critique sur les bénéfices des investisseurs. Par exemple, un ordre envoyé par un
investisseur par l'intermédiaire de son courtier associé peut être retardé par le réseau si
le courtier a des problèmes de connectivité ou s'il est physiquement éloigné de la SE.
Les ordres entrés plus tard par d'autres courtiers, disposant d'une meilleure connectivité
réseau ou situés physiquement plus près de la SE, seront exécutés en premier. Cela
entraîne une perte financière pour l'investisseur qui a pourtant saisi l'ordre en premier et
peut provoquer un manque d'équité et de confiance dans l'ensemble de la plateforme. Le
réseau blockchain permet une meilleure utilisation des connexions entre les différents
participants puisque les nœuds sont répartis dans différents lieux physiques. Le nœud
physiquement situé le plus près des utilisateurs interagissant avec le contrat intelligent
recevra les transactions et les diffusera aux autres nœuds du réseau.
4) Cohérence : étant donné que le grand livre est partagé entre les différents
participants, ils disposent tous de la même version des données et tout changement
survenant dans un nœud sera immédiatement répercuté dans les grands livres des autres
nœuds. Cela résout le problème des données contradictoires qui ne sont pas
synchronisées entre les systèmes participants, comme c'est le cas dans la plateforme
boursière traditionnelle. Par exemple, si un investisseur met à jour ses données
personnelles directement auprès du CSD sans les mettre à jour dans le système du
courtier, un retard dans l'authentification des transactions se produit, ce qui a un impact
sur le profit de l'investisseur.

5) Rentabilité : dans l'architecture que nous proposons, contrairement à la bourse


traditionnelle, toutes les entités participantes utilisent le même logiciel et la même
plateforme commune, qui consiste en un smart con- tract Ethereum. Cette architecture
de solution est beaucoup plus simple et rentable car elle diminue considérablement la
complexité globale du système et le coût de la maintenance et du support tech- nique.
En outre, l'architecture proposée est hautement disponible et ne nécessite pas de système
distinct de gestion des catastrophes. Cela permet d'économiser un coût élevé par rapport
au marché boursier traditionnel, où chaque entité participante doit disposer d'un site
spécifique de reprise après sinistre.

6) Configuration flexible : l'architecture proposée offre plus de flexibilité et


d'évolutivité par rapport à la plateforme boursière traditionnelle lorsqu'il s'agit d'ajuster
les fonctionnalités et d'introduire de nouveaux changements dans la logique de
négociation. Étant donné que l'architecture proposée consiste en un contrat intelligent
StockEx- change, les fonctionnalités nouvelles et existantes, ainsi que les autorisations,
peuvent toutes être gérées en un seul endroit. Le contrat intelligent peut ensuite être
partagé dans le réseau sans que les participants aient à modifier le matériel et le
stockage, ce qui facilite grandement son adoption.

7) Sécurité des contrats intelligents : Afin de concevoir des contrats intelligents


sécurisés, les auteurs de [24] et [25] recommandent un ensemble d'outils d'analyse pour
identifier les problèmes de sécurité et les vulnérabilités dans le code du contrat
intelligent. Parmi les outils d'analyse les plus connus, nous avons choisi SmartCheck [24]
pour évaluer le contrat intelligent proposé ''StockExchange''. SmartCheck nous a permis
d'identifier de nombreux problèmes liés à la sécurité et d'optimiser certaines fonctions
dans les contrats intelligents.

Ces problèmes comprennent la consommation supplémentaire de gaz due à l'utilisation


de boucles multiples et à une mauvaise manipulation des tableaux, qui, si elle n'est pas
correctement traitée, peut conduire à une attaque par chevauchement de stockage où elle
entre en collision avec d'autres données dans le stockage. En outre, l'outil a fourni de
nombreuses recommandations, telles que la mise à niveau du code Solidity vers la
dernière version et l'accent mis sur les déclarations des modificateurs publics et privés.

VI. L'ÉVALUATION DES PERFORMANCES

Dans cette section, nous évaluons les performances de la plateforme boursière basée sur
la blockchain que nous proposons, en termes de débit et de latence des transactions, afin
de démontrer sa capacité à gérer la charge de transactions du marché boursier actuel.
Nous validons nos résultats avec la bourse de Singapour, qui est l'un des marchés
émergents offrant une diversité de titres cotés en bourse. À cette fin, nous avons mis au
point un cadre d'essai composé de trois modules principaux : le module réseau, le
module de génération et d'écoute des transactions et le module d'évaluation des
performances. La description de chaque module est donnée ci-dessous :

1) Module réseau : Ce module est utilisé pour créer le réseau de test de la blockchain
du consortium qui héberge notre contrat intelligent ''StockExchange''. Il se compose des
entités qui ressemblent aux par- ticipants de la bourse, à savoir SE, FMA, Brokers,
government et CSD. Ces entités sont représentées sous forme de nœuds Ethereum en
utilisant la technologie des conteneurs Docker, où chaque nœud exécute le client
Ethereum Geth. L'algorithme de consensus sélectionné est PoA (voir la section III pour
plus de détails).
2) Module de génération et d'écoute de transactions : Ce module est mis en œuvre à
l'aide d'une API JavaScript qui sert de générateur de charge de travail de transaction et
d'écoute de la blockchain pour les événements de confirmation de bloc. En écoutant
continuellement le réseau, ce module enregistre des informations telles que le numéro
de bloc, l'heure de validation et le nombre de transactions par bloc. La charge de travail
des transactions se compose d'ordres d'achat et de vente, et le nombre total de
transactions générées à chaque cycle de test est configurable. Pour garantir que chaque
paire d'ordres d'achat et de vente génère une transaction, nous générons pour chaque
ordre d'achat un ordre de vente correspondant. Le générateur de charge de travail et le
module d'écoute des données interagissent avec un nœud passerelle spécial dans le
réseau qui reçoit les transactions et les diffuse dans le réseau.

3) Module d'évaluation des performances : Ce module est utilisé pour analyser les
informations stockées dans le module d'écoute des données et mesurer la performance
de chaque expérience en calculant le débit et la latence pour les ordres entrés et les
transactions générées. Le débit ou nombre de transactions par seconde (TPS) est calculé
comme le nombre total de transactions (N ) divisé par le temps nécessaire pour les
valider, qui est le temps de latence.

différence entre le bloc de la première transaction et le bloc de la dernière transaction :


TPS = N/Btime , où Btime est la différence de temps de validation entre le dernier et le
premier bloc. La latence est une mesure qui indique la différence de temps entre le
moment où une transaction est envoyée et le moment où elle est validée dans un bloc.
Elle est calculée comme le temps total nécessaire pour traiter un nombre X de
transactions divisé par X

A. EXPÉRIMENTATION

Nous avons mis en œuvre notre proposition de plateforme boursière, qui a été construite
au-dessus d'un réseau blockchain de consortium, en utilisant Solidity, le langage de
script de facto pour écrire des contrats intelligents dans Ethereum. Le contrat intelligent
créé comprend les fonctions principales suivantes :

1) addBroker : ajoute un nouveau courtier au système en saisissant son nom, son


symbole et le montant maximum qu'il est autorisé à dépenser pour acheter des actions
au cours d'une seule séance de négociation.

2) addCompany : une nouvelle société est ajoutée après avoir saisi son nom, son
symbole, le nombre total d'actions et le prix par action.

3) ValidateNIN : les données de l'investisseur reçues par le DCT sont envoyées au


gouvernement pour validation. Ces données comprennent le nom, l'âge, la nationalité et
le numéro d'identification de l'investisseur. Le gouvernement répond sous la forme
d'une valeur vraie ou fausse, que CSD utilise comme condition pour procéder ou
annuler la création du nouveau compte NIN.
4) addNin : un numéro d'investisseur unique est attribué à chaque investisseur validé.
Ce numéro est associé aux données personnelles de l'investisseur, y compris le nombre
total d'actions qu'il possède.

5) AssociateBrokerToInevestor : il attribue un courtier à un investisseur en saisissant


le nom du courtier, le symbole, le nom de l'investisseur et le NIN.

6) AssignShareToNin : les actions sont attribuées à un NIN donné et le nombre total


d'actions dans le NIN est mis à jour.

7) buyShares : un ordre d'achat comportant le symbole de l'entreprise, le nombre


d'actions, le prix et le NIN entre dans une file d'attente d'ordres d'achat. Pour chaque
nouvel ordre d'achat, la file d'attente est triée de manière à ce que l'ordre ayant le prix le
plus élevé soit placé en premier, suivi par les autres dans l'ordre décroissant.

8) sellShares : un ordre de vente comportant le symbole de l'entreprise, le nombre


d'actions, le prix et le NIN entre dans une file d'attente d'ordres de vente. Pour chaque
ordre de vente, la file d'attente est triée de manière à ce que l'ordre ayant le prix le plus
bas soit placé en premier, suivi des autres dans l'ordre croissant.

9) DoMatch : cette fonction est appelée dans le cadre de chaque fonction "buyShares"
et "sellShares". Elle prend le premier élément de la file d'attente des ordres d'achat et le
compare au premier élément de la file d'attente des ordres de vente. Si le prix de l'ordre
d'achat est supérieur ou égal au prix de l'ordre de vente, le prix de l'ordre de vente est
égal au prix de l'ordre d'achat.
une transaction est générée. Les ordres appariés sont retirés des files d'attente et celles-ci
sont à nouveau triées. Les comptes NIN de l'acheteur et du vendeur sont mis à jour en
conséquence.

Plusieurs expériences ont été menées pour mesurer les performances de notre
plateforme boursière en termes de débit et de latence. Nous avons ajusté notre charge de
travail et la taille du réseau pour chaque série de tests. Six charges de travail différentes
ont été utilisées sous la forme d'un taux d'envoi de transactions par seconde : 100, 200,
300, 350, 400 et 450 tx/sec. La taille du réseau a également été ajustée de sorte que la
blockchain comprenne 1, 5, 10 et 20 validateurs pour chaque scénario de test. Le temps
nécessaire pour construire deux blocs consécutifs a été fixé à 2 secondes, et le nombre
total de transactions a également été fixé à 10 000 transactions, dont 5 000 représentent
des ordres d'achat et les 5 000 autres des ordres de vente. Nous avons classé nos cas de
test dans les scénarios de charge de travail suivants :

1) ''Avec transactions'' : dans ce scénario, les ordres sont saisis de telle sorte que chaque
paire d'ordres d'achat et de vente génère une transaction. Il nécessite une puissance de
calcul élevée, car les ordres saisis déclenchent la fonction doMatch qui nécessite de
retirer les commandes appariées de la file d'attente et de trier à nouveau les files
d'attente, ainsi que de mettre à jour les comptes NIN de l'acheteur et du vendeur en
conséquence.
2) ''Sans transaction'' : dans ce scénario, les ordres d'achat et de vente ne sont pas
appariés et, par conséquent, aucune transaction n'est générée. En termes de besoins de
calcul, ce scénario donne le meilleur rendement car il évite la fonction doMatch, qui
doit trier et mettre à jour les comptes des investisseurs.

Les expériences sont menées sur une station de travail équipée d'un processeur Intel(R)
Xeon(R) Gold 6130, 2,10 GHz, 64 cœurs, 256 Go de RAM, et fonctionnant sous
Ubuntu 18.04.2.

La FIGURE 8 illustre le débit mesuré pour différents taux d'envoi et nombre de


validateurs. Dans le cas d'un nœud à validateur unique (FIGURE 8a), le débit est très
proche du taux d'envoi jusqu'à 350 tx/sec. Ceci est également valable dans les scénarios
avec 5 et 10 validateurs comme le montrent les FIGURE 8b et FIGURE 8c,
respectivement. Toutefois, lorsque le nombre de validateurs augmente, le débit est
considérablement affecté, comme le montre la FIGURE 8d avec 20 nœuds de validation.
Cela est dû à la puissance de calcul limitée disponible, donné que tous les nœuds des
différents scénarios partagent la même station de travail. Pour mettre en évidence l'effet
de la puissance de calcul sur le débit, le TABLEAU 6 montre le débit moyen pour les
transactions avec et sans échanges.
pour différentes tailles de réseau. Nos résultats montrent que notre système peut
prendre en charge des réseaux allant jusqu'à 10 validateurs et des taux de transaction
allant jusqu'à 350 tx/sec. La FIGURE 9 présente les résultats de l'expérience pour les
deux scénarios de charge de travail définis précédemment et leur valeur moyenne pour
un taux de transaction de 350 tx/sec. Le débit le plus faible est observé dans le cas du
premier scénario de charge de travail (avec transaction), car il nécessite davantage de
ressources de calcul pour réaliser la transaction. Pour un réseau comptant jusqu'à 10
nœuds de validation, le débit moyen est d'environ 311,8 tx/sec. Cela équivaut à 89 % du
débit optimal, qui est le rapport entre la valeur moyenne du débit (311,8 tx/sec) et la
valeur optimale du débit (350 tx/sec).

La FIGURE 10 illustre l'effet des différents taux d'envoi et du nombre de


validateurs sur la latence moyenne de la transac- tion. Les résultats montrent que la
latence est inversement proportionnelle au débit. Pour un réseau comptant jusqu'à 10
nœuds de validation et un taux d'envoi. Si l'on tient compte du temps de bloc, qui est de
2 secondes, et du temps nécessaire pour propager le bloc dans le réseau, on peut
considérer qu'il s'agit d'un délai raisonnable. Cependant, le temps de latence augmente
considérablement pour les réseaux de grande taille et les taux d'envoi élevés, où il peut
atteindre 40 secondes. Cela peut s'expliquer par les deux raisons suivantes :

1) Plus le taux d'envoi est élevé, plus la taille du bloc est importante et plus il
faudra de temps pour propager le bloc à tous les nœuds du réseau.

2) Les ressources informatiques jouent un rôle majeur dans la capacité du réseau


à gérer des taux d'envoi élevés. E n ef f et, chaque transaction doit passer par plusieurs
étapes telles que la validation, la propagation vers le réseau, l'exécution et l'inclusion
dans un nouveau bloc qui sera à nouveau propagé vers le réseau pour être exécuté par
les autres nœuds. Ces étapes nécessitent une puissance de calcul suffisante pour pouvoir
gérer des taux d'envoi élevés.

Les résultats obtenus ont montré que la plateforme d'échange proposée peut
atteindre un débit de transaction de l'ordre de 311,8 tx/sec. En analysant les données de
négociation obtenues auprès de la bourse de Sin- gapore au cours du mois d'avril 2020
[26], le TABLEAU 7 montre que le nombre total de transactions effectuées est de 10
285 596 pour une période de 21 jours de négociation avec 7 heures de négociation par
jour, ce qui donne 489790,2857 transactions par jour. Si toutes ces transactions doivent
être traitées par la plateforme dans les deux mêmes heures d'un jour donné, nous aurons
244895,1429 transactions par heure, ce qui donne 68,02642857 transactions par seconde.
Étant donné que chaque transaction générée se compose d'ordres d'achat et de vente
appariés, le nombre total estimé de transactions générées par seconde est 3 fois le
nombre total de transactions par seconde, ce qui équivaut à 204,0792 tx/sec. Il est clair
que la plateforme que nous proposons peut facilement répondre aux exigences de ce
marché en ne considérant que les ressources de calcul disponibles utilisées pendant
l'expérience. Nous pensons que des performances accrues pourraient être obtenues si
davantage de ressources de calcul pouvaient être utilisées pendant l'évaluation
expérimentale.
VII. CONCLUSION

Dans cet article, nous avons présenté une nouvelle architecture basée sur la blockchain
pour une plateforme boursière entièrement décentralisée. Notre architecture est basée
sur le contrat intelligent Ethereum qui est mis en œuvre sur un consortium et un réseau
autorisé. Pour s'aligner sur les réglementations du marché boursier, nous avons choisi
comme nœuds de validation les organisations financières et gouvernementales qui sont
déjà impliquées dans la plateforme boursière traditionnelle. Cette nouvelle architecture
répond aux limites de la plateforme boursière traditionnelle telles que le point unique de
défaillance dans les systèmes participants en répliquant les données et le contrat
intelligent sur tous les nœuds participants, la complexité et l'inefficacité de la gestion
des données que notre solution résout en fournissant un grand livre partagé qui peut être
facilement mis à jour et entretenu, le niveau limité de transparence puisque maintenant
toutes les transactions peuvent être vues, le temps quotidien limité pour accéder aux
données de la plateforme puisqu'il est maintenant plus facile de surveiller la blockchain
et d'y accéder tout au long de la journée, et en offrant un temps de règlement financier et
en espèces plus rapide au lieu des trois jours nécessaires après la séance de négociation.
Afin d'évaluer les performances de notre système, plusieurs expériences ont été menées,
au cours desquelles le débit et la latence ont été évalués. Nous avons utilisé différentes
charges de travail et tailles de réseau pour évaluer les performances et nous avons
constaté que les performances obtenues peuvent répondre aux exigences de la
plateforme boursière pour des tailles de réseau allant jusqu'à 10 validateurs et jusqu'à un
taux d'envoi de 350 tx/sec. Cependant, nous avons constaté que pour des charges de
travail ou des tailles de réseau plus importantes, les performances diminuent de manière
significative en raison des ressources informatiques limitées utilisées dans l'expérience.
Toutefois, étant donné que la solution proposée fonctionnera sur un réseau géré par un
consortium, nous pensons que les entités participantes seront capables d'accueillir les
ressources de calcul nécessaires pour atteindre les niveaux de latence et de débit de la
bourse. Nous prévoyons de mener une étude plus approfondie pour répondre aux
préoccupations liées à la protection de la vie privée et d'inclure le cryptage dans le
même grand livre, de sorte que seuls les participants autorisés puissent voir leurs
données de transaction pertinentes. Nos travaux futurs porteront également sur d'autres
améliorations du contrat intelligent proposé. Par exemple, nous étudierons la possibilité
d'apporter de nouvelles modifications à un contrat intelligent déjà déployé sans
perturber l'ensemble de la plateforme boursière.

Vous aimerez peut-être aussi