Mise en place du système de vote électronique basé sur la blockchain

Télécharger le fichier pdf d’un mémoire de fin d’études

Généralités

Dans ce chapitre, nous allons parler des principes d’une élection et du cadre juridique (Blockchain et protection des données personnelles).

Les principes d’une élection :

Une élection permet de désigner celui ou celle qui va diriger un pays ou une organisation. Pour assurer le bon fonctionnement d’une élection, il faut forcément respecter certains principes qui sont:
Un électeur, une voix : chaque électeur doit être identifié individuellement par les moyens les plus fiables disponibles. Toutes les précautions raisonnables doivent être prises pour que chaque électeur puisse voter une seule fois. Et Pour la vérification, les données d’audit des élections doivent être mises à la disposition du public gratuitement et tous les recomptages lors d’une élection doivent être effectués publiquement par des méthodes et des individus d’au moins deux partis opposés, indépendamment du décompte initial.
Admissibilité de l’électeur : il est de la responsabilité de toutes les personnes impliquées dans une élection de s’assurer que seuls les électeurs éligibles sont autorisés à voter. Les principes affectant l’éligibilité des électeurs comprennent :
– L’électeur est un citoyen de la nation, de l’État et de la juridiction locale dans laquelle il vote.
– L’électeur existe, c’est-à-dire est corporel et est majeur.
– L’électeur n’a pas le droit de voter dans aucune autre juridiction lors de la même élection.
– L’électeur n’a pas été reconnu coupable d’un crime ou sa nationalité a été révoquée, ce qui le rend inéligible pour voter aux élections.
– L’électeur ne vote d’aucune façon dans une autre juridiction au cours de la même élection.
Le vote enregistré et compté avec précision : Tous les processus, procédures, règles, personnel et équipement utilisés lors d’une élection doivent fonctionner selon des normes et des tests qui garantissent que tous les votes sont enregistrés et comptés avec précision et toutes les méthodes de comptage et les résultats doivent être disponibles pour examen public. Tous les votes doivent être comptés visiblement par les moyens les plus précis et les plus fiables disponibles et ces méthodes doivent être documentées et approuvées par toutes les parties concernées avant l’élection, y compris l’inspection publique.
La transparence et la Fiabilité : tous les tests, procédures, programmes, équipements, matériels, connexions, installations ou méthodes de transmission et installations de stockage doivent être ouverts à l’inspection et à l’examen du public avant et après toute élection.
Secret du vote : Le vote doit être secret et chaque électeur doit pouvoir exprimer son choix librement, sans subir de pressions de son entourage (famille, collègues, amis, etc.). Il doit donc pouvoir voter de manière confidentielle et être certain que son choix va bien rester secret. Et il ne doit pas non plus pouvoir constituer une preuve de la nature de son vote qui l’exposerait à des pressions ou lui permettrait de vendre son vote.

Cadre juridique : Blockchain et protection des données personnelles

Les technologies font désormais partie intégrante de notre quotidien et il y a une dépendance très forte vis-à-vis des technologies de l’information et de la communication pour nos activités sociales, économiques et politiques.
Rendue célèbre par le Bitcoin, la technologie Blockchain est utilisée dans tous les secteurs et permet une meilleure traçabilité, une transparence et une efficacité des opérations effectuées.
Dès lors, il est difficile de ne pas parler des données manipulées dans cette base de données numérique. En effet, la blockchain a vocation à révolutionner la perception actuelle du traitement des informations, en proposant de les transmettre et de les stocker sur un registre consultable par tous, décentralisé et dont tous les membres permettent d’en assurer la fiabilité. Cette technologie peut permettre de créer un système de vote électronique fiable, condition de l’avènement d’une véritable démocratie participative et elle est susceptible de répondre à une crise de confiance dans les démocraties modernes. L’utilisation de la blockchain peut directement ou indirectement impliquer des données à caractère personnel.
Or à l’heure où l’Etat et de nombreuses entreprises tentent de se conformer au règlement général de la protection des données, leur volonté émergente d’utiliser une telle technologie s’avère être un défi de taille. Le RGPD est rédigé en vue de s’adapter aux évolutions technologiques et à l’ampleur prise par la collecte et le partage des données personnelles, mais il ne prend pas en compte la technologie Blockchain. C’est pourquoi le RGPD n’a pas prévu de dispositions spécifiques ou du moins une définition légale de la blockchain malgré l’impact considérable de cette technologie de stockage et de transmission de données en matière de traitement des données personnelles.
La technologie blockchain soulève de nombreuses questions juridiques mais celles-ci ne sont pas uniformes et dépendent du contexte. Elle offre deux fonctions : une fonction de registre et une fonction d’automatisation décentralisée qu’on appelle les smart-contracts. Nous allons maintenant étudier la reconnaissance juridique des trois grands cas d’usage de la blockchain.

La situation juridique de la blockchain en tant que registre :

Actuellement, il n’y a aucune reconnaissance de la blockchain en tant que registre et plusieurs conditions sont nécessaires pour la reconnaissance d’une inscription sur la blockchain.
Si l’on souhaite se servir d’une inscription sur la blockchain comme preuve juridique, l’utilisation de ces inscriptions va nécessiter de démontrer au juge que cet enregistrement a été réalisé techniquement dans des conditions qui permettent de garantir :
-l’authenticité de l’information enregistrée
-le fait que l’information enregistrée correspond bien au document enregistré
-le fait que la personne qui a enregistré l’information est bien la personne qui prétend être l’auteur de l’enregistrement

Le statut juridique du smart-contract :

Un smart-contract ou un contrat intelligent est un programme informatique autonome dont le code contrôle et conditionne, sous certaines conditions, le transfert de devises ou d’actifs entre différentes parties.
Ils définissent non seulement les règles et les pénalités d’un accord de la même façon qu’un contrat traditionnel ou qu’un engagement transactionnel. Mais ils peuvent également, lorsque tous les engagements préalables à son exécution ont été respectés, faire appliquer automatiquement ces obligations sans qu’aucune des parties ne puisse s’y opposer.
Au vu de leur appellation, on a tendance à assimiler les smart-contracts à des contrats classiques. Cependant, ils n’ont pas en eux-mêmes d’autorité juridique. Un smart-contract n’est qu’une application technique d’un contrat juridique. Pour le moment, le smart-contract n’est pas considéré comme un contrat au sens juridique du terme. Il est considéré comme un contrat s’il remplit les conditions classiques de formation d’un contrat, c’est-à-dire avoir une offre et une acceptation qui respectent l’ensemble des conditions de validité nécessaires. Ces conditions sont précisément définies dans le code civil. La question à se poser consiste donc à savoir si un smart-contract peut remplir toutes ces conditions. Cela est un peu difficile, notamment en raison de l’obligation d’une formalisation claire de l’offre et d’une acceptation éclairée et valable de l’offre par le cocontractant. Cela implique que le contractant doit être une personne majeure en capacité de comprendre l’intégrité des termes de la proposition ne faisant pas d’erreur et ne subissant pas de pression pour l’acceptation du contrat. Toutes ces conditions ne sont pas facilement vérifiables via un smart-contract. En particulier, un des principaux défis est de savoir si la personne contractante a véritablement compris le code développé dans le programme, c’est-à-dire le contenu du smart-contract.
Une autre problématique réside dans l’identification de la personne contractante. Une clé privée peut être volée et détenue par de multiples individus différents. En outre, une personne peut souhaiter rester anonyme dans une transaction (et pas nécessairement pour des raisons illégales).
De nombreux smart-contracts n’opèrent pas de rapport d’obligation au sens juridique, or ce rapport d’obligation constitue un élément définissant un contrat. Le smart-contract est avant tout un programme informatique et ne constitue aucunement un contrat juridique. Il y a alors aucun rapport d’obligation entre différentes parties.

Le statut législatif des cryptomonnaies :

Les blockchains utilisent une cryptomonnaie (bitcoin, ether) qui est un token ou jeton numérique qui a une valeur marchande. Les cryptomonnaies sont échangées sur des marchés comme les actions dont le transfert de ces tokens entraine un transfert de valeur. Or ce transfert implique potentiellement des problématiques de responsabilité et d’accord entre les parties concernées par cet échange.
La qualification juridique de ce token et le poids juridique qui vont en découler sont les plus importants des questions juridiques liées à la blockchain, d’autant plus que sur les blockchains publiques où le token a une importance particulière. Dans certains pays, le token est considéré comme une monnaie et au niveau fiscal, il est traité comme un revenu de capital mobilier et donc taxé comme une cession d’action. Dans d’autres pays, il rentre dans la définition d’un bien quelconque qui peut être déplacé, mais ici au Sénégal, il n’y a aucune règle précise qui est définie et dans notre pays les règles sont rigoureusement et précisément définies dans la loi. Si une initiative ne s’inscrit pas dans le cadre de la loi, celui qui est à l’origine n’est pas couvert par la loi. Autrement dit tout ce qui n’est pas interdit est autorisé et cela ne signifie pas pour autant qu’il n’existe pas de textes de lois à applications très larges.
Ainsi, qu’importe la qualification choisie, chacune entraîne des conséquences lourdes. Pour le moment, la qualification de bien meuble est la plus libre, car il n’existe pas de régime particulier inhérent à ce statut. Toutefois, on peut considérer un token comme un titre financier avec des dividendes, mais il peut être aussi considéré comme une monnaie. C’est une question qui reste ouverte et qui donne lieu à des incertitudes plutôt qu’à des libertés pour les entreprises.

Historique et Fonctionnement des Blockchains

Dans ce chapitre, nous allons faire une présentation de la blockchain avant d’expliquer son fonctionnement, les types de blokchains et les mécanismes de consensus.

Origine et Définition de la blockchain :

Origine de la Blockchain :

L’une des premières perturbations numériques connues qui a jeté les bases d’Internet a été le protocole TCP / IP (Transmission Control Protocol / Internet Protocol). Avant TCP / IP, c’était l’ère de la commutation de circuits, qui nécessitait une connexion dédiée entre deux parties pour que la communication puisse avoir lieu. TCP / IP a mis au point sa conception de commutation de paquets, qui est plus ouverte et d’égal à égal, sans qu’il soit nécessaire de préétablir une ligne dédiée entre les parties.
Lorsque l’Internet a été rendu accessible au public par le biais du World Wide Web (WWW) au début des années 90, il était censé être plus ouvert et Peer to Peer. En effet, il a été construit sur le TCP / IP ouvert et décentralisé. Lorsqu’une nouvelle technologie en particulier celle révolutionnaire arrive sur le marché, soit elle disparaît d’elle-même, soit elle crée un impact tel qu’elle devient la norme acceptée. Les gens se sont adaptés à la révolution WWW et ont mis à profit ses avantages de toutes les manières possibles. En conséquence, le World Wide Web a commencé à prendre une forme qui n’a peut-être pas été exactement telle qu’elle avait été imaginée. Cela aurait pu être plus ouvert, plus accessible et plus Peer to Peer. De nombreuses nouvelles technologies et entreprises ont commencé à s’appuyer sur celles-ci et sont devenues ce qu’elles sont aujourd’hui, plus centralisées. Lentement et progressivement, les gens s’habituent à ce que propose la technologie. Les gens vont bien savoir si une transaction internationale prend plusieurs jours, si elle est trop chère ou si elle est moins fiable.
Regardons de plus près le système bancaire et son évolution. À partir des systèmes de troc jusqu’à l’époque, il n’y avait pas de réelle différence entre une transaction et son règlement car il ne s’agissait pas de deux entités distinctes. Par exemple, si Alice devait payer 1000 frs à Bob, elle ne lui donnerait qu’un billet de 1000frs et la transaction serait simplement réglée là-bas. Aucune banque n’était nécessaire pour débiter 1000frs du compte d’Alice et le créditer sur le compte de Bob ou pour servir de système de confiance afin d’assurer qu’Alice ne trompe pas Bob. Cependant, traiter directement avec une personne physiquement absente à proximité était difficile. Ainsi, les systèmes bancaires ont évolué avec de nombreuses autres offres de services et des transactions activées des quatre coins du monde. Avec l’aide d’Internet, la géographie n’était plus une limitation et les opérations bancaires deviennent plus faciles que jamais. Pas seulement dans le secteur bancaire, Internet a facilité de nombreux types d’échange de valeur sur le Web.
La technologie a permis à une personne de l’Inde de faire une transaction monétaire avec une personne du Royaume-Uni, mais moyennant des coûts. Il faut des jours pour régler de telles transactions et cela coûte cher aussi. Une banque était toujours nécessaire pour imposer la confiance et assurer la sécurité de telles transactions entre deux ou plusieurs parties. Les banques ont formé les institutions centralisées qui ont géré les enregistrements des transactions, régi les interactions, renforcé la confiance et la sécurité et réglementé l’ensemble du système. L’ensemble du commerce dépend de ces institutions financières qui servent de tiers de confiance pour traiter les paiements. La médiation des institutions financières augmente les coûts et le temps nécessaires au règlement d’une transaction, tout en limitant la taille des transactions. La médiation était nécessaire pour régler les différends, mais cela signifiait qu’une transaction totalement irréversible n’était jamais possible. Cela a abouti à une situation où la confiance était nécessaire pour que quelqu’un puisse traiter avec un autre.
Et si la technologie pouvait permettre la confiance et la sécurité sans ces systèmes intermédiaires et centralisés ? D’une manière ou d’une autre, cette partie (de la technologie imposant la confiance) a été omise, ce qui a entraîné le développement de systèmes centralisés tels que les banques, les chambres de compensation, les bureaux d’enregistrement et bien d’autres. Blockchain s’avère être la pièce manquante du casse-tête de la révolution Internet qui facilite la sécurisation chiffrée d’un système sans confiance.
Dans les années 90, les systèmes monétaires n’ont pas été touchés par la révolution technologique, mais la théorisation du projet de monnaie électronique fondée sur le chiffrement remonte aux années 1980. Dans un article paru en 1985, au titre évocateur « Security Without Identification : Transaction System to Make Big Brother Obsolete » David Chaum évoque déjà le concept de « cash numérique anonyme » et des protocoles de pseudo-réputation.
Dès 1982, dans l’article « Blind Signatures for Untraceable Payments » il avait posé le principe d’un système dans lequel une banque émettrait une unité de paiement, sorte de « pièce de monnaie signée en blanc ». Cette dernière comprendrait un numéro de série et une signature inconnus, y compris de la banque elle-même. Un tel dispositif devait permettre l’anonymat du client lors d’une transaction, mais aussi l’impossibilité de « retirer » plusieurs fois la même pièce, c’est-à-dire de créer de la monnaie. En dépit de ces réflexions stimulantes, les premières tentatives de création de cryptomonnaies, David Chaum en 1983 avec e-cash puis en 1990 avec digicash, Wei Dai en 1998 avec b-money et surtout Nick Szabo avec bitgold sont des échecs. L’invention de hashcash par Adam Back en 1997 avait pourtant marqué un progrès avec l’idée de valider les transactions en utilisant les fonctions de hachage cryptographique, appelées « preuve de travail ». L’objectif de ces technologies est de rendre inutile l’existence d’un « tiers de confiance », en recourant à un système de confiance distribuée permettant de constituer une sorte de « grand livre comptable » infalsifiable.
Dans les années 1980 et 1990, l’obstacle consistait, dans un cadre décentralisé, à résoudre le problème de la double dépense, c’est-à-dire le risque qu’une même somme soit dépensée deux fois et plus généralement dans celui de la tolérance aux pannes, qu’elles soient accidentelles ou malveillantes. La réponse informatique à ces pannes revient à résoudre le « problème des généraux byzantins » dans le contexte des algorithmes distribués. Le problème des généraux byzantins est une métaphore qui traite de la remise en cause de la fiabilité des transmissions et de l’intégrité des interlocuteurs. Elle s’applique en particulier au domaine informatique. Un ensemble de composants informatiques doit en effet gérer d’éventuelles défaillances parmi ceux-ci. Ces défaillances consisteront alors en la présentation d’informations erronées ou incohérentes. On s’intéresse ici à des problèmes de défaillances, aussi bien matérielles que logicielles, d’origines accidentelle ou malveillante, intervenant pendant l’établissement des informations ou pendant leurs transports d’un composant à l’autre. La gestion de ces composants défectueux est aussi appelée tolérance aux pannes. Ce problème de composants défectueux dans un système informatique peut s’exprimer en termes de généraux byzantins.
Une des réponses à ces difficultés (double dépense et tolérance aux pannes) est apportée en 2008 dans un article de Satoshi Nakamoto. Derrière ce pseudonyme se cache probablement le collectif des fondateurs du bitcoin et de la première blockchain et cet article décrit le fonctionnement d’un protocole permettant la production d’un registre infalsifiable, utilisant un réseau informatique pair à pair et la blockchain comme couche technologique d’une nouvelle cryptomonnaie qui est le bitcoin.
On peut retenir donc que la blockchain a été créée en 2008 avec la monnaie virtuelle bitcoin. Les deux sont donc historiquement liées : la blockchain est l’infrastructure virtuelle sur laquelle repose le bitcoin. Le terme Bitcoin (B majuscule) renvoie à la fois à une monnaie numérique utilisant des techniques cryptographiques et le bitcoin (b minuscule) est un protocole décrivant le fonctionnement du réseau sur lequel cette monnaie circule. Ce protocole c’est la blockchain où la création monétaire et la validation des transactions s’effectuent de manière horizontale et transparente. Ce système fonctionne sans autorité centrale ni tiers de confiance, à l’inverse des monnaies contrôlées par des banques ou des gouvernements. L’inventeur de Bitcoin (et donc de la blockchain) reste à ce jour inconnu, même si certains ont tenté de revendiquer sa paternité, sans réussir toutefois à présenter les preuves nécessaires. On ne connaît que son pseudonyme, Satoshi Nakamoto, sous lequel il a mis en ligne fin 2008 le « whitepaper » à l’origine de ce qu’il définissait comme un « système de monnaie électronique pair-à-pair ». Il pourrait s’agir d’un individu mais aussi d’un groupe et ce mystère entretient une certaine mythologie autour de la figure de Satoshi Nakamoto.
L’historique de Bitcoin a été mouvementé depuis le lancement des premiers bitcoins en 2009 et la première véritable transaction effectuée en mai 2010 (2 pizzas contre 10,000 BTC, ce qui équivaudrait aujourd’hui, au cours actuel, à 2 millions d’euros la pizza !). Début 2011, le bitcoin touche la parité avec le dollar et atteint plusieurs millions de dollars de capitalisation : les premiers articles sur le Bitcoin commencent alors à apparaître dans des journaux majeurs aux Etats-Unis. Après deux phases de bulles, aux printemps 2011 et 2013, le cours du bitcoin a retrouvé plus de stabilité depuis 2014.
La blockchain c’est une technologie de stockage et de transmission de données décentralisée, sécurisée, infalsifiable et fondée sur des échanges Peer to Peer. Elle constitue une base de données publique (ou non dans le cadre des blockchains privées) décentralisée fiable et sans organe central de contrôle.
Cette technologie est une structure de données qui permet de créer un grand livre numérique de données et de le partager dans un réseau d’individus indépendants. Les données contenues dans une blockchain existent sous la forme d’une base de données partagée et continuellement mise à jour et l’élimination de l’autorité centrale de la structure de la base de données est l’un des aspects les plus importants et les plus puissants des blockchains.
Elle se distingue entre autres par quatre caractéristiques majeures qui en sont sa force :
-Immutable : lorsque les données sont enregistrées dans une blockchain, il est extrêmement difficile et presque impossible de les modifier ou de les supprimer.
-Transparente : chacun peut consulter l’ensemble des échanges inscrits sur une blockchain depuis sa création.
-Sans organe de contrôle : la technologie est fondée sur des relations de Pair à Pair
-Sécurisé : cette technologie utilise la cryptographie pour permettre à chaque participant sur un réseau de gérer le registre de manière sécurisée sans avoir besoin d’une autorité centrale pour appliquer les règles. Son caractère distribué lui assure également une sécurité puisque tous les blocs sont répliqués sur tous les nœuds du réseau.
Basé serveur Réseau Peer to Peer
Une blockchain est un système pair à pair sans autorité centrale qui gère le flux des données et elle permet le stockage et l’échange d’information de pair à pair. Elle est structurellement accessible, partagée et sécurisée grâce aux algorithmes de consensus. Elle s’utilise de façon décentralisée et permet la désintermédiation ou le remplacement des tiers de confiance.
Sa création découle de la réunion de deux concepts :
– La cryptographie asymétrique qui permet l’utilisation d’un système de double clef publique et privée.
– L’architecture informatique distribuée (Peer to Peer en particulier).
La cryptographie asymétrique permet à des utilisateurs qui ne se connaissent pas d’échanger des informations de manière chiffrée. Le système repose sur le concept de la clef publique qui peut être connue de tous et permet d’envoyer à un tiers des données chiffrées. Ce dernier y accède via sa clef privée. La clef publique peut être communiquée à tous et la clef privée doit être un secret.
Ces deux piliers (cryptographie asymétrique et architecture informatique distribuée) rendent possible la création d’un environnement sécurisé au sein duquel une nouvelle forme de confiance s’applique et autorise de nouvelles manières d’échanger des données, de nouveaux types de transactions et de nouvelles formes de contrats. C’est pourquoi les blockchains sont reconnues comme la cinquième évolution de l’informatique et elles apportent la couche de confiance qui manquait pour internet. La confiance dans les données numériques est l’une des raisons pour lesquelles beaucoup de gens s’intéressent à cette technologie. L’élimination de l’autorité centrale a rendu cette technologie importante et puissante. Le réseau blockchain est un système distribué Peer to Peer.
Un système distribué est un ensemble d’ordinateurs indépendants qui se connectent sur un réseau et peuvent communiquer comme internet. Les ordinateurs qui composent le réseau se trouvent dans plusieurs emplacements et ils sont souvent appelés des nœuds pleins (full nodes). La blockchain est ouverte et fonctionne de manière décentralisée et utilise souvent une cryptomonnaie qui est un jeton numérique qui a de la valeur marchande.

Les types de Blockchains : La Blockchain publique et privée

Il faut distinguer d’une part les blockchains publiques, d’autre part les blockchains privées. Les blockchains publiques constituent les blockchains « historiques ». Il s’agit de blockchains accessibles à n’importe qui dans le monde : chacun a libre accès au registre. En outre, chacun peut envoyer des transactions et s’attendre à ce qu’elles soient incluses dans le registre (tant que ces transactions respectent les règles de cette blockchain). Enfin, chacun peut participer librement au processus d’approbation (celui qui permet de décider quel bloc sera ajouté à la chaîne et qui définit l’état du système). Bitcoin et Ethereum constituent les deux principales blockchains publiques. D’autres existent également, de moindre ampleur : Litecoin, Dogecoin, etc.
Dans le cas des blockchains privées (parfois appelées « de consortium »), le processus d’approbation est contrôlé par un nombre restreint et choisi de nœuds. Par exemple, une quinzaine d’institutions financières pourraient se mettre d’accord et organiser une blockchain dans laquelle un bloc devrait être approuvé par au moins 10 d’entre elles pour être valide. Il existe donc une double modification au système originel, puisque non seulement les participants au processus d’approbation sont limités et sélectionnés, mais en outre ce n’est plus la règle de la majorité qui s’impose. Le droit de lire la blockchain, c’est-à-dire l’accès au registre, peut-être, lui, soit public, soit réservé aux participants du réseau.
Il existe également des cas de blockchains privées où le processus d’approbation est limité à un unique acteur, bien que les autorisations de lecture par exemple puissent être publiques. Ce peut être le cas par exemple lorsque plusieurs départements d’une même entreprise dialoguent autour d’une blockchain en interne.
A la différence des blockchains publiques, l’existence d’une cryptomonnaie n’est pas nécessaire pour les blockchains privées : ces dernières n’ont en effet pas besoin de rémunérer leurs membres pour la validation des transactions. Les logiques de Proof-of-work n’existent donc pas nécessairement dans ce type de blockchains.
Les blockchains privées présentent certains avantages, qui peuvent expliquer l’intérêt que leur portent notamment les institutions financières : gouvernance simplifiée, acteurs connus, coûts réduits, rapidité, confidentialité, mise en conformité facilitée par les possibilités d’audit y compris par le régulateur… Elles font néanmoins débat car celles-ci réintroduisent des acteurs humains dans la gestion du réseau (gérant l’accès et le fonctionnement) alors que le concept central d’une blockchain (publique) est de supprimer le tiers de confiance. Le consortium R3 qui travaille sur ce sujet et fédère une quarantaine de banques mondiales parle d’ailleurs de « distributed ledger » plutôt que de blockchain.

Mécanismes de consensus distribués :

Lorsque les nœuds sont au courant de l’historique complet des transactions en ayant une copie locale des données complètes de la blockchain pour éviter les doubles dépenses et qu’ils peuvent vérifier l’authenticité d’une transaction via des signatures numériques, à quoi sert le consensus? Imaginez la présence d’un ou plusieurs nœuds malveillants. Ne peuvent-ils pas dire qu’une transaction non valide est valide ou vice-versa ? Rappelez-vous le problème des généraux byzantins, qui est le plus susceptible de se produire dans de nombreux systèmes décentralisés. Pour surmonter ces problèmes, nous avons besoin d’un mécanisme de consensus approprié. Jusqu’à présent la seule chose qui n’est pas encore claire, est de savoir qui propose le bloc. Évidemment, tous les nœuds ne devraient pas proposer un bloc au reste des nœuds en même temps car cela ne fera que créer un gâchis, oublier l’état cohérent du grand livre. D’un autre côté, si cela avait été le cas avec uniquement des transactions sans les regrouper en blocs, vous pourriez faire valoir que si chaque transaction est diffusée sur l’ensemble du réseau et que chaque nœud du réseau vote sur ces transactions individuelles, cela ne fera que compliquer le système et conduire à de mauvaises performances.
Ainsi, le regroupement des transactions en blocs est important pour des raisons évidentes et un consensus est requis bloc par bloc. La meilleure stratégie pour ce problème est qu’un seul bloc doit proposer un bloc à la fois et que les autres nœuds doivent valider les transactions dans le bloc et les ajouter à leurs chaînes de blocs si les transactions sont valides. Nous savons que chaque nœud conserve sa propre copie du registre et qu’il n’y a pas de source centralisée à partir de laquelle effectuer la synchronisation. Donc, si un nœud propose un bloc et que les autres nœuds en conviennent, tous ces nœuds ajoutent ce bloc à leurs chaînes de blocs respectives. Dans une telle conception, vous préféreriez qu’il y ait au moins quelques minutes d’écart dans la création de blocs et cela ne devrait pas être le cas lorsque plusieurs blocs arrivent en même temps. Maintenant, la question est : qui pourrait être ce nœud chanceux pour proposer un bloc? C’est la partie la plus délicate et cela peut conduire à un consensus approprié ; nous discuterons de cet aspect sous différents mécanismes de consensus.
Ces mécanismes de consensus proviennent en fait de la théorie des jeux. Votre système doit être conçu de telle sorte que les nœuds obtiennent le plus d’avantages s’ils respectent les règles. L’un des aspects pour garantir que les nœuds se comportent honnêtement est de récompenser un comportement honnête et de punir les activités frauduleuses. Cependant, il y a un hic ici. Dans une blockchain publique telle que Bitcoin, on peut avoir de nombreuses identités publiques différentes et elles sont assez anonymes. Il devient vraiment difficile de punir de telles identités car ils ont le choix d’éviter cette punition en se créant de nouvelles identités. D’un autre côté, les récompenser fonctionne très bien, car même si quelqu’un a plusieurs identités, il peut joyeusement récolter les récompenses qui lui sont données. Cela dépend donc de votre analyse de rentabilisation : si les identités sont anonymes, les punir peut ne pas fonctionner, mais peut bien fonctionner si les identités ne sont pas anonymes. Vous voudrez peut-être considérer cet aspect récompense / punition malgré un excellent mécanisme pour sélectionner un nœud qui proposerait le bloc suivant. En effet, vous ne sauriez jamais à l’avance si le nœud sélectionné est un nœud malveillant ou honnête. On doit garder à l’esprit le terme minage que nous utilisons peut-être assez souvent, et cela signifierait générer de nouveaux blocs.
L’objectif du consensus est également de s’assurer que le réseau est suffisamment robuste pour supporter différents types d’attaques. Indépendamment des types d’algorithmes de consensus que l’on peut choisir en fonction du cas d’utilisation, il doit tomber dans le moule de consensus tolérant aux pannes byzantines pour pouvoir être accepté. Apprenons maintenant certains des mécanismes de consensus relatifs aux scénarios de blockchain que nous pouvons être en mesure d’utiliser dans différentes situations.

Preuve de travail (Proof of Work) :

Le mécanisme de consensus PoW existe depuis longtemps. Cependant, la façon dont il était utilisé dans Bitcoin avec d’autres concepts l’a rendu encore plus populaire. Nous discuterons de ce mécanisme de consensus à son niveau de base et verrons comment il est mis en œuvre dans Bitcoin.
L’idée derrière l’algorithme PoW est que certains travaux sont effectués pour un bloc de transactions avant qu’il ne soit proposé à l’ensemble du réseau. Un PoW est en fait une donnée difficile à produire en termes de calcul et de temps, mais facile à vérifier. L’une des anciennes utilisations de PoW était d’empêcher les spams par e-mail. Si une certaine quantité de travail doit être effectuée avant d’envoyer un e-mail, le spamming de nombreuses personnes nécessiterait beaucoup de calculs. Cela peut aider à prévenir les spams par e-mail. De même, dans la blockchain également, si une certaine quantité de travail à forte intensité de calcul doit être effectuée avant de produire un bloc, cela peut aider de deux manières : la première est que cela prendra certainement du temps et la seconde, si un nœud est injecté d’une transaction frauduleuse dans un bloc, puis le rejet de ce bloc par le reste des nœuds sera très coûteux pour celui qui propose le bloc. En effet, le calcul effectué pour obtenir le PoW n’aura aucune valeur.
Pensez simplement à proposer un bloc sans trop d’efforts par rapport à un travail acharné pour pouvoir proposer un bloc. Si c’était avec presque aucun effort, alors proposer un nœud avec une transaction frauduleuse et être rejeté n’aurait pas été une grande préoccupation. Les gens peuvent simplement continuer à proposer de tels blocs avec l’espoir que quelqu’un puisse passer et arriver à la blockchain un jour. Au contraire, faire un travail difficile pour proposer un bloc empêche un nœud d’injecter une transaction frauduleuse de manière subtile.
De plus, la difficulté du travail doit être ajustable afin de contrôler la vitesse à laquelle les blocs peuvent être générés. Vous devez penser, si nous parlons d’un travail qui nécessite un peu de calcul et de temps, quel genre de travail doit-il être? C’est un travail très simple mais délicat. Un exemple serait utile ici. Imaginez un problème où vous devez trouver un nombre qui, si vous hachiez, la sortie hachée commencerait par l’alphabet «a». Comment feriez-vous? Nous avons appris les fonctions de hachage et savons qu’il n’y a pas de raccourcis. Donc, vous deviez simplement deviner (peut-être prendre n’importe quel nombre et continuer à incrémenter d’un) les chiffres et continuer à les hacher pour voir si cela correspond à la facture. Si le niveau de difficulté doit être augmenté, on peut dire qu’il commence par trois «a» consécutifs. De toute évidence, trouver une solution pour quelque chose comme «axxxxxxx» est plus facile à trouver que «aaaxxxxx» car ce dernier est plus contraint.
Dans l’exemple qui vient d’être donné, si plusieurs nœuds différents travaillent pour résoudre un tel casse-tête de calcul, vous ne saurez jamais quel nœud le résoudrait en premier. Cela peut être utilisé pour sélectionner un nœud aléatoire (cette fois, il est vraiment aléatoire car il n’y a pas d’algorithme derrière lui) qui résout le puzzle et propose le bloc. Il est extrêmement important de noter qu’en cas de chaînes de blocs publiques, les nœuds qui investissent leurs ressources informatiques doivent être récompensés pour un comportement honnête, sinon il serait difficile de maintenir un tel système.

Proof of Stake :

L’algorithme Proof of Stake (PoS) est un autre algorithme de consensus assez populaire pour le consensus distribué. Cependant, ce qui est délicat, c’est qu’il ne s’agit pas de minage, mais de validation de blocs de transactions. Il n’y a pas de récompenses minières en raison de la génération de nouvelles pièces, il n’y a que des frais de transaction pour les mineurs (plus précisément des validateurs, mais nous continuerons à utiliser des «mineurs» pour que cela soit plus facile à expliquer).
Dans les systèmes PoS, les validateurs doivent lier leur mise (hypothéquer le montant de crypto-monnaie qu’ils souhaitent garder en jeu) pour pouvoir participer à la validation des transactions. La probabilité qu’un validateur produise un bloc est proportionnelle à sa mise ; plus le montant est en jeu, plus grande est leur chance de valider un nouveau bloc de transactions. Un mineur n’a qu’à prouver qu’il possède un certain pourcentage de toutes les pièces disponibles à un certain moment dans un système monétaire donné. Par exemple, si un mineur possède 2% de tous les Ether (ETH) du réseau Ethereum, il pourrait exploiter 2% de toutes les transactions sur Ethereum. En conséquence, qui décide de créer le nouveau bloc de transaction est décidé, et cela varie en fonction de l’algorithme PoS que vous utilisez. Oui, il existe des variantes de l’algorithme PoS telles que le PoS naïf, le PoS délégué, le PoS basé sur une chaîne, le PoS de style BFT et le PoS Casper, pour n’en nommer que quelques-uns. Le PoS délégué (DPOS) est utilisé par Bitshares et Casper PoS est en cours de développement pour être utilisé dans Ethereum.
Étant donné que le créateur d’un bloc dans un système PoS est déterministe (basé sur le montant en jeu), il fonctionne beaucoup plus rapidement par rapport aux systèmes PoW. De plus, comme il n’y a pas de récompenses en bloc et juste des frais de transaction, toutes les monnaies numériques doivent être créées au début et leur montant total est fixe tout au long. Les systèmes PoS peuvent offrir une meilleure protection contre les attaques malveillantes car l’exécution d’une attaque risquerait le montant total en jeu. De plus, comme il ne nécessite pas de brûler beaucoup d’électricité et de consommer des cycles de processeur, il est prioritaire sur les systèmes PoW, le cas échéant.

Le Rôle de la cryptographie dans la sécurité des Blockchains :

Les Blockchains s’appuient en grande partie sur la cryptographie pour assurer la sécurité de leurs données. Une fonction cryptographique extrêmement importante dans un tel contexte est celle du hachage. Le hachage est un processus par lequel un algorithme appelé fonction de hachage reçoit une entrée de données (de n’importe quelle taille) et renvoie une sortie déterminée contenant une valeur de longueur fixe.
Quelle que soit la taille de l’entrée, la sortie sera toujours de la même longueur. Si l’entrée change, la sortie sera complétement différente. Toutefois, si l’entrée ne change pas, le hachage qui en résultera sera toujours le même, quel que soit le nombre de fois où vous exécuterez la fonction de hachage.
Dans les blockchains, ces valeurs de sortie, appelées hachages donc, sont utilisées comme identificateurs uniques pour les blocs de données. Le hachage de chaque bloc est généré par rapport au hachage du bloc précédent, et c’est ce qui relie les blocs entre eux, formant ainsi une chaîne de blocs. De plus, le hachage de bloc dépend des données contenues dans ce bloc, ce qui signifie que toute modification apportée aux données nécessitera également une modification de hachage de bloc.
Par conséquent, le hachage de chaque bloc est généré sur la base de données contenues dans ce bloc et du hachage du bloc précédent. Ces identifiants de hachage jouent un rôle déterminant dans la sécurité et l’immutabilité des blockchains.
Le hachage est également exploité par les algorithmes de consensus utilisés pour valider les transactions. Sur la blockchain Bitcoin, par exemple, l’algorithme de Proof of Work (PoW ou Preuve de travail) utilisé pour obtenir un consensus et pour extraire de nouveaux coins utilise une fonction de hachage appelée SHA-256. Comme son nom l’indique, SHA-256 prend une entrée de données et renvoie un hachage de 256 bits ou de 64 caractères.

Le rapport de stage ou le pfe est un document d’analyse, de synthèse et d’évaluation de votre apprentissage, c’est pour cela chatpfe.com propose le téléchargement des modèles complet de projet de fin d’étude, rapport de stage, mémoire, pfe, thèse, pour connaître la méthodologie à avoir et savoir comment construire les parties d’un projet de fin d’étude.

Table des matières

GLOSSAIRE
AVANT-PROPOS
Introduction Générale
1ère Partie : Cadre général
Chapitre 1 : Cadre Théorique
1.1 La Problématique
1.2 Les objectifs
1.3 Pertinence du sujet
1.4 Délimitation du sujet
Chapitre 2 : Généralités
2.1 Les principes d’une élection
2.2 Cadre juridique : Blockchain et protection des données personnelles
2ème Partie : Cadre conceptuel
Chapitre 3 : Historique et Fonctionnement des Blockchains
3.1 Origine et Définition de la blockchain
3.2 Les types de Blockchains : La Blockchain publique et privée
3.3 Mécanismes de consensus distribués
3.4 Le Rôle de la cryptographie dans la sécurité des Blockchains
Chapitre 4 : La Blockchain Bitcoin et la Blockchain Ethereum
4.1 La Blockchain Bitcoin
4.2 La Blockchain Ethereum
4.3 Les smart-contracts (contrat intelligent)
4.4 Comparaison entre Bitcoin et Ethereum
Chapitre 5 : Le vote électronique et la sécurité du vote
5.1 Le vote électronique sans la technologie Blockchain
5.2 Le vote électronique basé sur la blockchain
5.3 La Cryptographie
3ième Partie : Mise en œuvre
Chapitre 6 : Mise en place du système de vote électronique basé sur la blockchain
6.1 Solution proposée
6.2 Le rôle des différents acteurs
6.3 Les outils installés et l’implémentation de la solution :
6.4 Les résultats obtenus
6.5 La sécurité
Conclusion et Perspective 
Annexe 
Bibliographie 
Webographie 

Télécharger le rapport complet

Télécharger aussi :

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *