Serveur d’Horodatage
La base de la solution proposée est un serveur d’horodatage. Un serveur d’horodatage prend l’empreinte d’un ensemble d’éléments à horodater et publie cette empreinte, à la façon d’une annonce dans un journal ou d’un message sur un forum Usenet [2-5]. L’horodatage prouve que les données ont existé, afin d’être prises en compte dans l’empreinte. Chaque horodatage inclue l’horodatage précédent dans son empreinte, formant une chaîne dont chaque nouvel élément vient confirmer les précédents.


4. Preuve de travail
Pour implémenter un serveur d’horodatage distribué sur un réseau pair-à-pair, il faut utiliser un système basé sur des preuves de travail tel que celui du système Hashcash de Adam Back [6], plutôt qu’un journal ou un message sur un forum Usenet. La preuve de travail nécessite de rechercher une valeur telle que son empreinte, calculée par exemple en utilisant SHA-256, débute par un certain nombre de bits à 0. Le travail requis pour est exponentiellement fonction du nombre de bits à 0 exigés, et peut être validé en effectuant un seul calcul d’empreinte.
Pour notre réseau d’horodatage, nous implémentons la preuve de travail en incrémentant une variable dans le bloc jusqu’à ce qu’une valeur donnant une empreinte ayant suffisamment de bits à 0 soit trouvée. Une fois que l’effort de calcul nécessaire à l’obtention de la preuve de travail a été effectué, il n’est plus possible de modifier le bloc sans refaire cet effort de calcul. Comme de nouveaux blocs sont chaînés à sa suite, l’effort de calcul nécessaire pour modifier un bloc inclue tout l’effort de calcul nécessaire pour modifier tous les blocs suivants.
La preuve de travail résout le problème du choix de la représentativité du vote. Si la majorité était basée sur des voix allouées par adresse IP, le vote pourrait être perverti par quelqu’un capable de s’octroyer beaucoup d’adresses. La preuve de travail est essentiellement basée sur la puissance de calcul (un processeur, une voix). La décision de la majorité est représentée par la chaîne la plus longue, celle qui a nécessité le plus de calculs de preuve de travail. Si la majorité de la puissance de calcul du réseau est contrôlée par des nœuds honnêtes, la chaîne légitime progresse le plus rapidement et distance les chaînes concurrentes. Afin de modifier un ancien bloc, un attaquant devrait recalculer les preuves de travail du bloc modifié et de tous les blocs suivants, pour rattraper et dépasser le travail fournit par les nœuds honnêtes. Nous démontrerons par la suite que la probabilité qu’un attaquant disposant de moins de puissance de calcul puisse rattraper diminue exponentiellement à chaque nouveau bloc ajouté.
Afin de compenser l’amélioration de la puissance de calcul du matériel et l’intérêt changeant de faire fonctionner des nœuds du réseau, la difficulté de la preuve de travail est déterminée par une moyenne de nombre de blocs à trouver par heure. Si ces blocs sont générés trop rapidement, la difficulté augmente.
5. Réseau
Les étapes mises en oeuvre pour faire fonctionner le réseau sont les suivantes :
- Les nouvelles transactions sont diffusées à tous les nœuds.
- Chaque nœud regroupe les nouvelles transactions dans un bloc.
- Chaque nœud travaille à la résolution de la preuve de travail sur son bloc.
- Quand un nœud trouve une preuve de travail, il diffuse ce bloc à tous les nœuds.
- Les nœuds n’acceptent le bloc que si toutes les transactions qu’il contient sont valides et n’ont pas déjà été dépensées.
- Les nœuds expriment l’acceptation du bloc en travaillant sur un nouveau bloc dans la chaîne, ce nouveau bloc ayant comme empreinte précédente celle du bloc accepté.
Les nœuds considèrent toujours la chaîne la plus longue comme étant la chaîne légitime, et travaillent à étendre celle-ci. Si deux nœuds diffusent deux versions différentes du bloc suivant simultanément, certains des nœuds vont recevoir l’une ou l’autre en premier. Dans cette situation, chacun travaille sur le bloc reçu en premier, mais conserve l’autre branche au cas ou celle-ci devienne la plus longue. Cette liaison sera rompue quand la preuve de travail suivante sera trouvée et qu’une branche deviendra plus longue que l’autre ; les nœuds qui travaillaient alors sur l’autre branche changeront pour la plus longue.
Les diffusions de nouvelles transactions n’ont pas besoin d’atteindre tous les nœuds. A partir du moment ou elles atteignent suffisamment de nœuds, elles se retrouveront dans un bloc en peu de temps. Les diffusions des blocs tolèrent la perte de messages. Si un nœud ne reçoit pas un bloc, il le demandera lors de la réception du bloc suivant, lorsque il réalisera qu’il lui en manque un.
Salut à tous ! Découvrez le tout nouveau navigateur CryptoTab ! Vous l'utilisez tout simplement comme un navigateur classique (regardez YouTube, parcourez des iites ou des réseaux sociaux, etc.) et obtenez une rémunération en BTC en même temps grâce à l'algorithme de minage intégré ! - https://get.cryptobrowser.site/1985647



Aucun commentaire:
Enregistrer un commentaire