OnNousCacheTout... Index du Forum

OnNousCacheTout...
"Faits de société, politique, pouvoir, conspirations, mensonges et vérités..."

 FAQFAQ   RechercherRechercher   MembresMembres   GroupesGroupes   S’enregistrerS’enregistrer 
 ProfilProfil   Se connecter pour vérifier ses messages privésSe connecter pour vérifier ses messages privés   ConnexionConnexion 

Bitcoin

 
Poster un nouveau sujet   Répondre au sujet    OnNousCacheTout... Index du Forum ->
Les forums
-> Livres, revues et citations
Sujet précédent :: Sujet suivant  
Auteur Message
Marine
Administrateur

Hors ligne

Inscrit le: 11 Mar 2014
Messages: 3 414
Féminin Cancer (21juin-23juil) 蛇 Serpent
Point(s): 471

MessagePosté le: Jeu 26 Fév 2015 - 23:22    Sujet du message: Bitcoin Répondre en citant

Les bases de Bitcoin


Comprenant que plus de 90% de la monnaie circule sous forme électronique à travers les systèmes informatiques et les réseaux des banques, il est possible d’imaginer un système monétaire autonome et complémentaire, comme bitcoin, opéré par les internautes convenant d’un protocole d’échanges entre ordinateurs.

La même démarche appliquée à la publication de contenus a permis l’émergence du web, aujourd’hui universellement adopté et opéré grâce à un protocole informatique autonome (HTTP) qui fait consensus depuis les années 90. Il n’existe pas une entreprise ou une institution centrale qui fait fonctionner le web: le web et le courrier électronique démontrent chaque jour la puissance d’une communauté d’utilisateurs qui conviennent d’une technologie pour constituer un réseau.




Bitcoin rejoint deux autres grands logiciels libres sur Internet: le web et l’email


Le mot « bitcoin » désigne à la fois une nouvelle unité monétaire et le réseau de pair à pair qui transmet les transactions électroniques utilisant ces unités.

Bitcoin réalise dans le domaine bancaire ce que le courrier électronique a accompli dans le domaine postal : la liberté d’échanger directement avec les autres sans passer obligatoirement par une institution monopolistique ou un tiers de confiance (la Poste, les banques). Chacun peut faire appel aux services de la Poste quand il/elle en a besoin, par exemple pour envoyer un colis en recommandé, mais non plus parce qu’il/elle y est obligé.

De même, grâce à bitcoin, chacun peut librement transférer de la valeur vers toute personne physique ou morale de son choix, sans nécessairement passer par un réseau bancaire. Les services de la banque seront utilisés quand nous choisirons de les utiliser, par exemple pour une transaction immobilière, mais en aucun cas de manière systématique comme aujourd’hui.

En synthèse, bitcoin nous permet de

•recevoir, stocker, transférer soi-même de la monnaie

•décider de faire appel ou non aux services d’une banque

•décider de divulguer ou pas ses transactions

•recevoir des paiements en ligne irréversibles

•réduire les coûts des transactions

•réduire les délais de transaction: ils se comptent en secondes ou en minutes pour bitcoin alors que le traitement d’une transaction bancaire classique prend des heures ou des jours.

Comment fonctionne une monnaie centrale

Avant de décrire comment Bitcoin se distingue des autres systèmes monétaires, il est utile de rappeler quelques définitions et principes de fonctionnement des monnaies centrales comme l’euro.

Hormis les pièces et les billets, la monnaie aujourd’hui circule presque exclusivement sous forme de transactions électroniques. Quand Alice paye 10€ à Bob, la transaction électronique est un message entre deux systèmes informatiques qui déplace un montant de 10€ du compte d’Alice vers le compte de Bob. Si Alice et Bob sont dans la même banque, seule la base de données de cette banque est changée sinon la transaction modifie les livres de compte de deux banques. Les banques ne s’échangent pas de la monnaie à chaque transaction. Elles attendent en général la fin de la journée pour faire le bilan des mouvements et la banque d’Alice va payer la banque de Bob pour compenser un éventuel déficit: ce mécanisme s’appelle la compensation.

Le traitement de la transaction est terminé quand Bob peut à son tour dépenser les 10€ qu’il a reçus d’Alice.

Pour un virement bancaire en ligne par exemple, un traitement purement électronique ne prendrait que quelques fractions de secondes. Pourtant les banques n’hésitent pas à appliquer des délais entre un et trois jours ouvrables (cf. https://particuliers.societegenerale.fr/essentiel_quotidien/comptes/autour_…. Ces pratiques sont révélatrices d’une absence de réelle compétition qui place l’usager dans une situation d’otage sans contre-pouvoir efficace.

Chaque fois que nous dépensons ou recevons un euro, une transaction électronique est enregistrée dans une base de données de transaction de notre banque. Chaque transaction décrit le transfert d’un montant en euro d’un compte A vers un compte B. La transaction est enregistrée dans la base de données de la banque de A et dans la base de données de la banque de B. La banque ne dévoile pas sa base de données à ses clients: chacun peut voir seulement les mouvements de son propre compte, pas celui des autres.

De temps à autres, la banque peut vous accorder un prêt: il y a alors création monétaire d’un montant égal à celui du prêt (cf. Chapitre 1). De nouveaux euros, créés à partir de rien, sont inscrits sur votre compte par la banque.

La monnaie qui circulent ainsi par un jeu d’écritures entre les banques est parfois appelée pour cette raison «monnaie scripturale» pour la distinguer du «numéraire», le liquide en langage courant.

Le liquide est lui même un enregistrement d’une transaction de création monétaire: un billet de 10€ est un message sur papier officiel qui dit que la banque centrale a émis 10€ «au porteur», c’est à dire qu’elle a déposé 10€ sur ce billet. Ce billet est une dette de la banque centrale qu’on peut convertir auprès de sa banque en monnaie scripturale.

La notion de monnaie électronique, qu’on trouve dans les textes réglementaires européens, n’a aucune réalité et ne sert qu’à obscurcir la notion de monnaie scripturale. Toute la monnaie centrale (euros) en circulation est en fait enregistrée sous forme électronique dans les livres de comptes des banques.

Ces livres de comptes sont périodiquement inspectés par un organisme régulateur comme la banque de France pour limiter les risques de malversations.

Remarquons enfin que la monnaie centrale est créée par des prêts portant un taux d’intérêt. Le prêt crée un montant qui n’inclut pas les intérêts: le paiement des intérêts transfère une partie de la monnaie créée vers la banque qui a émis le prêt.

La masse monétaire d’une monnaie centralisée comme l’euro doit donc croître continuellement et avec une rapidité exponentielle pour éviter la récession qui résulterait d’une capture complète de la masse monétaire par le secteur bancaire.





Evolution de la masse monétaire M3 en Europe




Comment fonctionne un réseau «peer-to-peer»


Bitcoin est un système monétaire complet construit sur une architecture de réseau «peer-to-peer» (P2P), de pair à pair en français.

Stricto sensu, un réseau de pair à pair comme Bitcoin se définit comme un réseau informatique dans lequel aucun serveur (aucun participant) ne bénéficie d’un avantage particulier.




A gauche un réseau avec serveur central, à droite un réseau P2P



A l’opposé d’un réseau « peer-to-peer » (P2P abrégé en anglais), un système centralisé traite les transactions de ses clients comme une banque.

Quand il s’agit de transactions financières, on parle généralement de tiers de confiance pour désigner le système central : les autres participants lui font confiance et acceptent que lui seul est la connaissance de l’ensemble des transactions dans son grand livre comptable.

Le réseau Bitcoin est réellement de pair à pair car il n’y a pas d’entité centrale ni tiers de confiance désigné : le réseau est constitué de dizaines de milliers de PC connectés par Internet qui partagent la connaissance de l’ensemble des transactions depuis l’origine, c’est-à-dire le lancement du réseau, avec une première transaction, le 3 janvier 2009 à 18h15.

Lorsqu’un utilisateur (pair) se connecte au «réseau», il utilise un programme informatique appelé un «client».

Le client se connecte via Internet avec quelques dizaines d’autres clients «pairs», c’est à dire d’autres utilisateurs du même programme informatique (ou d’un autre programme conforme au protocole bitcoin) qui sont eux aussi connectés. Un message de transaction émis par un client est propagé de proche en proche à l’ensemble des autres clients en quelques secondes.

Chacun de ces clients constitue ce qu’on appelle un noeud du réseau («network node»). Certains de ces clients sont connectés en permanence, d’autres se connectent seulement dans la journée ou pour effectuer une transaction.

Plusieurs classes d’utilisateurs peuvent co-exister sur un réseau P2P.

Sur le réseau bitcoin, on en distingue deux, les utilisateurs et les «mineurs».

3.Les utilisateurs se contentent d’émettre et de recevoir des paiements en bitcoin. Ils émettent des messages de transactions sur le réseau pour payer.

4.Les «mineurs» sont des utilisateurs qui participent à la vérification des transactions. Ils vérifient les messages de transactions qu’ils reçoivent et les relaient aux autres mineurs. Nous verrons comment ils tiennent à jour, collectivement, la base de données bitcoin et pourquoi on les appelle des mineurs.

Lorsqu’il émet une transaction, l’utilisateur envoie un message de transaction à ces pairs («network nodes») avec lesquels il est connecté. Chacun de ces pairs est lui même connecté à d’autres pairs, de sorte que l’ensemble des pairs actifs à un instant donné sont connectés entre eux, soit directement, soit à travers d’autres pairs.

Le message de transaction est donc relayé de proche en proche à l’ensemble des pairs connectés au moment de la transaction.

Un réseau P2P offre une meilleure résilience qu’un réseau classique, par construction, car il est auto-administré. Si un participant disparaît ou tombe en panne, il continue à fonctionner. Par contre, il doit offrir des mécanismes d’incitation aux participants pour que ceux-ci se connectent en nombre suffisant.

Pour le partage de musique, l’incitation consiste à accéder librement à un catalogue plus vaste que sa propre base.

Pour bitcoin, l’incitation des mineurs consiste à récupérer d’une part une partie de la création monétaire distribuée par une formule mathématique, d’autre part une partie des commissions de transactions payées volontairement par les émetteurs de transactions.
Revenir en haut
Visiter le site web du posteur
Publicité






MessagePosté le: Jeu 26 Fév 2015 - 23:22    Sujet du message: Publicité

PublicitéSupprimer les publicités ?
Revenir en haut
Marine
Administrateur

Hors ligne

Inscrit le: 11 Mar 2014
Messages: 3 414
Féminin Cancer (21juin-23juil) 蛇 Serpent
Point(s): 471

MessagePosté le: Jeu 26 Fév 2015 - 23:36    Sujet du message: Bitcoin Répondre en citant

Comment fonctionne la signature électronique


La signature électronique permet non seulement d'authentifier l'émetteur d'un message mais aussi de vérifier l'intégrité de ce dernier (c'est à dire qu'il n'a pas été modifié).

Cette technique est largement utilisée, notamment par les banques et les administrations mais aussi, nous allons le voir, différemment par bitcoin.

Techniquement, la signature électronique correspond au chiffrement de l'empreinte d'un message par la clé secrète (clé privée) du signataire.

Commençons par expliquer ce qu’est une empreinte numérique («hash» en anglais).

Prenons le message suivant: «Utilisateur n°101 envoie 19 euros à utilisateur n° 30». Si je vous dis que l’empreinte de ce message est 150, vous remarquerez rapidement que c’est la somme 101+19+30. Cependant la connaissance de l’empreinte (150) seule ne vous permet pas de deviner le contenu du message 101, 19, 30.

Le message 49, 1, 100 aurait la même empreinte: on dit que ces deux messages réalisent une «collision» de leurs empreintes car elles sont égales.

La fonction addition que je prend pour démarrer mon explication n’est donc pas utilisable pour définir une empreinte numérique intéressante, c’est à dire unique (pas de collision) et imprévisible (pas possible de connaître le message avec l’empreinte seule).

La fonction addition est trop simple car elle ne provoque pas d’effet d’avalanche: si je change le contenu du message d’une unité (par exemple, je change le montant de 19 euros à 20 euros), l’empreinte change seulement d’une unité (elle devient 151).

Sans effet d’avalanche, l’empreinte devient prévisible et sujette à de nombreuses collisions. Elle ne caractérise plus le message de manière univoque et permet de falsifier un message sans changer son empreinte: une modification dans un mot peut être compensée par une autre modification dans un autre mot pour garder l’empreinte invariante.

Les mathématiciens on Les mathématiciens ont donc conçu des fonctions spécialement adaptées à la création d’empreintes numériques, qu’on appellent des fonctions «à sens unique». Ces fonctions sont complexes et créent l’effet d’avalanche: la moindre modification du message entraîne une modification radicale de l’empreinte.

D’après le glossaire du CNRS (Centre National de la Recherche Scientifique) http://www.dr15.cnrs.fr/Delegation/STI/Signature/glo-empreinte.html :

"L'empreinte électronique est à un document ce que l'empreinte digitale ou génétique est à un individu. L'empreinte d'un document a des propriétés très intéressantes :

5.si on change, ne serait-ce qu'une virgule, dans un document, son empreinte change ;

6.la probabilité que deux documents aient la même empreinte est à peu près nulle ;

7.il n'est pas possible de recomposer le document à partir de son empreinte.

Techniquement, l'empreinte d'un document est donc le résultat d'un calcul effectué à l'aide d'une fonction à sens unique, c’est à dire un algorithme de hachage approprié (SHA pour Secure Hash Algorithm, est un des plus courants). La fonction à sens unique SHA256 génère pour chaque document un nombre de 256 bits, que les anglo-saxons appellent "digest" et qu'en français, on appelle le plus souvent empreinte mais aussi condensé..."



Une fonction à sens unique f se définit comme une fonction mathématique telle que si y = f(x) il est pratiquement impossible de retrouver x connaissant seulement f et y. On dit que y est une empreinte numérique de x. Ces fonctions jouent un rôle clé en cryptographie et donc dans la sécurité en informatique. Un exemple de fonction à sens unique est SHA256, utilisée dans la technologie bitcoin, ou MD5.

L’empreinte calculée avec une fonction à sens unique comme SHA256 est de longueur fixe (256 bits) quelle que soit la longueur du message en entrée et sa valeur est impossible à prédire avant d’avoir fait le calcul. Par exemple l’empreinte d’un message vide («») donne:

SHA256("")= e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855

Signature électronique et cryptographie asymétrique

Le principe de la signature électronique est appliqué pour sécuriser de nombreux systèmes informatiques: il s’appuie sur la cryptographie asymétrique, elle-même fondée sur l’existence de fonctions à sens unique et à brèche secrète.

Une telle fonction est difficile à inverser, à moins de posséder une information particulière, tenue secrète, nommée clé privée: connaissant y = f(x), il est pratiquement impossible de retrouver x à moins de connaître la clé privée.



Lorsque Alice souhaite signer un message M, elle utilise la procédure suivante:

Elle applique au message M une fonction H à sens unique (ex: SHA256). Le résultat HA(M) de cette opération, appelé empreinte de M, permet de s'assurer de l'intégrité du message, qu'il est bien entier et sans erreur.

L’empreinte HA(M) peut être générée par n'importe qui. Afin d'assurer que c'est bien Alice qui a rédigé le message M, cette empreinte est chiffrée par CA , clé privée d’Alice.

C'est cette empreinte chiffrée CA(HA(M qui constitue la signature S(M) du message, aux côtés duquel elle est transmise: tout le monde peut vérifier la signature d’Alice, connaissant la clé publique





et MD5. Bitcoin utilise le même principe avec ECDSA et SHA256.
Revenir en haut
Visiter le site web du posteur
Marine
Administrateur

Hors ligne

Inscrit le: 11 Mar 2014
Messages: 3 414
Féminin Cancer (21juin-23juil) 蛇 Serpent
Point(s): 471

MessagePosté le: Jeu 26 Fév 2015 - 23:40    Sujet du message: Bitcoin Répondre en citant

Bitcoin, définitions et principes de fonctionnement


•Le mot bitcoin désigne à la fois l’unité de compte qui circule sur le réseau bitcoin et le réseau lui-même, qui permet de transmettre et de valider les transactions en bitcoin.

•Une adresse bitcoin, comme un compte bancaire, permet de recevoir, stocker et envoyer de la monnaie.

•Des bitcoins peuvent être transférés d’une adresse à une autre grâce à un message diffusé en clair (non crypté) sur le réseau bitcoin, signé par le propriétaire de l’adresse d’origine.

•Tout le monde peut envoyer des bitcoins vers une adresse bitcoin, mais seule une personne possédant la clé privée correspondante pourra les dépenser en transférant tout ou partie du montant vers une nouvelle adresse.

•Les bitcoins sont sécurisés par des lois mathématiques (la cryptographie qui permet la signature électronique des messages) et non par des lois physiques (coffres-forts). Chaque adresse correspond à une clé publique: à la clé publique correspond une clé privée qui doit être gardée secrète.

•Chacun(e) peut créer autant d’adresses bitcoin (paires de clés) qu’il/elle le souhaite: il y a autant d’adresses bitcoins possibles qu’il y a d’atomes sur terre. Par exemple, on peut créer une nouvelle adresse bitcoin à chaque fois qu’on doit recevoir un paiement.

•La probabilité de générer une paire de clés déjà utilisée (et d’accéder ainsi au montant stocké sur une adresse existante) est donc virtuellement zéro: bien plus faible que la probabilité de découvrir les coordonnées bancaires complètes de quelqu’un.





Ces principes de fonctionnement nous donnent une première compréhension simplifiée de bitcoin. Techniquement, un livre de comptes est une base de données de transactions. Nous venons de voir qu’un système monétaire comme l’euro se résume actuellement à un système de gestion des transactions électroniques qui assurent la circulation des euros au sein de base de données bancaires. On est loin des représentations folkloriques de la planche à billets et des salles des coffres.

En contraste avec le fonctionnement plutôt opaque des monnaies centrales, nous allons voir que l’invention de Bitcoin consiste à utiliser un livre de compte public et partagé sur internet par tous les utilisateurs de Bitcoin: sur le réseau bitcoin, tout le monde peut inspecter librement les transactions. Parmi les plus utilisés, les sites blockexplorer.com et blockchain.info permettent d’inspecter gratuitement n’importe quelle adresse bitcoin.


En l’absence d’une autorité centrale gardienne des comptes, toute nouvelle transaction doit être validée par une majorité de participants avant d’être inscrite dans la base de données publique.

La majorité n’est pas déterminée sur le mode «un participant, une voix» comme pour un vote car il serait alors trop facile de créer des participants fantômes pour valider des transactions frauduleuses. La «majorité» de participants s’établit en fait par la plus grande puissance de calcul collective.

Chaque participant apporte grâce à son équipement (le plus souvent un simple ordinateur de bureau doté d’une carte graphique puissante) une fraction de la puissance de calcul totale.

Par exemple, un participant qui contribue 10% de la puissance cumulée des autres participants possède une chance sur 10 de gagner le droit d’écrire la prochaine page de la base de données bitcoin.

Si un participant apportait à lui seul plus de 50% de cette puissance de calcul, nous verrons qu’il pourrait alors prendre le contrôle de la base de données bitcoin. Si ce participant prenait le contrôle dans le but de valider des transactions frauduleuses, nous aurions affaire à une «attaque des 51%» (cf. attaques et contre-mesures).

Dans la base de données de transactions bitcoin, les transactions sont inscrites par blocs, toutes les dix minutes en moyenne. Un bloc correspond à une page dans le grand livre comptable bitcoin. C’est pourquoi la base de données des transactions bitcoin, dupliquée et partagée par tous les participants, s’appelle la chaîne de blocs.




Ces principes de fonctionnement nous donnent une première compréhension simplifiée de bitcoin. Techniquement, un livre de comptes est une base de données de transactions. Nous venons de voir qu’un système monétaire comme l’euro se résume actuellement à un système de gestion des transactions électroniques qui assurent la circulation des euros au sein de base de données bancaires. On est loin des représentations folkloriques de la planche à billets et des salles des coffres.

En contraste avec le fonctionnement plutôt opaque des monnaies centrales, nous allons voir que l’invention de Bitcoin consiste à utiliser un livre de compte public et partagé sur internet par tous les utilisateurs de Bitcoin: sur le réseau bitcoin, tout le monde peut inspecter librement les transactions. Parmi les plus utilisés, les sites blockexplorer.com et blockchain.info permettent d’inspecter gratuitement n’importe quelle adresse bitcoin.


En l’absence d’une autorité centrale gardienne des comptes, toute nouvelle transaction doit être validée par une majorité de participants avant d’être inscrite dans la base de données publique.

La majorité n’est pas déterminée sur le mode «un participant, une voix» comme pour un vote car il serait alors trop facile de créer des participants fantômes pour valider des transactions frauduleuses. La «majorité» de participants s’établit en fait par la plus grande puissance de calcul collective.

Chaque participant apporte grâce à son équipement (le plus souvent un simple ordinateur de bureau doté d’une carte graphique puissante) une fraction de la puissance de calcul totale.

Par exemple, un participant qui contribue 10% de la puissance cumulée des autres participants possède une chance sur 10 de gagner le droit d’écrire la prochaine page de la base de données bitcoin.

Si un participant apportait à lui seul plus de 50% de cette puissance de calcul, nous verrons qu’il pourrait alors prendre le contrôle de la base de données bitcoin. Si ce participant prenait le contrôle dans le but de valider des transactions frauduleuses, nous aurions affaire à une «attaque des 51%» (cf. attaques et contre-mesures).

Dans la base de données de transactions bitcoin, les transactions sont inscrites par blocs, toutes les dix minutes en moyenne. Un bloc correspond à une page dans le grand livre comptable bitcoin. C’est pourquoi la base de données des transactions bitcoin, dupliquée et partagée par tous les participants, s’appelle la chaîne de blocs.

Vue simplifiée de la chaîne de blocs bitcoin (source: J. Vornberger)
Revenir en haut
Visiter le site web du posteur
Marine
Administrateur

Hors ligne

Inscrit le: 11 Mar 2014
Messages: 3 414
Féminin Cancer (21juin-23juil) 蛇 Serpent
Point(s): 471

MessagePosté le: Jeu 26 Fév 2015 - 23:56    Sujet du message: Bitcoin Répondre en citant

Bitcoin est donc un système monétaire autonome régi par des lois mathématiques, mis en oeuvre dans un logiciel libre.

Le problème résolu par bitcoin et qui se pose aux créateurs d’une monnaie libre de tout contrôle centralisé est d’empêcher un utilisateur de dépenser plusieurs fois les mêmes unités monétaires. Il faut trouver un moyen d’ordonner les transactions dans une séquence temporelle incontestable: les bitcoins reçus dans une transaction provenant d’Alice ne doivent pas avoir fait l’objet d’un envoi antérieur signé par Alice.

En effet, avant l’invention de bitcoin, la méthode standard pour résoudre ce problème était de faire enregistrer toutes les transactions par une autorité centrale. Seule l’autorité centrale avait accès à cette base de données de transactions pour y inscrire une nouvelle transaction. Les utilisateurs n’avaient que le droit de consulter les transactions qui les concernaient, sans droit d’écriture et donc sans privilège de création monétaire.

Bitcoin propose une nouvelle solution qui consiste à publier toutes les transactions dans une base de données partagée. La base de données consiste en une suite de messages donnant à peu près ceci:

«Pierre a envoyé 5 bitcoins à Quentin. Quentin en a envoyé deux à Alice et trois à Bob, etc.». Lorsque Pierre a décidé de payer Quentin, il a diffusé sur le réseau un message contenant sa clé publique, le montant, la référence aux paiements précédents qui composent ce montant et l’adresse bitcoin de Quentin.



Emission des transactions bitcoin: principes



Pour envoyer ses 5 bitcoins à Quentin, Pierre va composer puis émettre sur le réseau, vers les noeuds auxquels il est connecté, un message de transaction. Le message est composé par le «wallet bitcoin» de Pierre, l’application informatique compatible avec le réseau bitcoin qu’il utilise pour payer. Le message de transaction est émis en clair (non chiffré) et signé par Pierre.



Le message comporte donc:

•Le numéro d’identification (ID) de la transaction précédente: il permet de relier la transaction de Pierre à la transaction qui lui a donné la propriété des 5 bitcoins. Cet ID est disponible en clair dans la chaîne de blocs. Dans certains cas, plusieurs transactions peuvent être référencées comme transactions précédentes si il le faut pour financer la transaction portée par le message.

•Le montant en clair

•La clé publique correspondant à l’adresse de Pierre

•L’adresse bitcoin de Quentin, le destinataire.

•La signature du message par la clé privée de Pierre

La présence de la clé publique de Pierre, en clair, dans le message est indispensable pour vérifier la signature électronique de Pierre.

Nul ne pourrait retrouver la clé publique simplement à partir de l’adresse bitcoin de Pierre car cette adresse bitcoin est l’image de la clé publique de Pierre par une fonction à sens unique.

Pour sécuriser les transactions vers une adresse bitcoin, une formule est utilisée pour produire 3 nombres liés entre eux mathématiquement: une clé privée, une clé publique et une adresse «bitcoin».



La clé privée permet de calculer la clé publique et la clé publique permet de calculer l’adresse bitcoin.

La clé privée doit être garder secrète car elle permettra de dépenser les bitcoin reçus sur l’adresse.

Le message, diffusé en clair, doit être vérifié avant d’être inscrit dans la base de données de transactions par les participants au réseau. C’est pourquoi le message comporte aussi la clé publique de Pierre et une signature électronique que seul Pierre a pu calculer.

La signature électronique est créée par Pierre avec sa clé privée (connue de lui seul) mais peut être vérifiée facilement par chacun à partir de la clé publique de Pierre (connue de tous puisqu’elle est incluse dans le message de transaction).


Signature des transactions bitcoin

Le mécanisme de signature des transactions Bitcoin est l’algorithme ECDSA (“Elliptic Curve Digital Signature Algorithm”) qui joue donc un rôle crucial dans la technologie bitcoin. ECDSA assure aussi la génération des paires de clés (clé privée et clé publique) nécessaire aux signatures: toute adresse bitcoin est dérivée d’une clé publique ECDSA.

L’algorithme ECDSA a été démontré comme sûr cryptographiquement en 2001 et a été publié comme norme internationale dans le document ANSI X9.62.

La sécurité de RSA dépend de la difficulté de factoriser un grand nombre entier.

Celle de ECDSA repose sur la difficulté de calculer le «logarithme» discret d’un grand nombre entier, c’est à dire connaissant a = bn comment retrouver n, le logarithme de a en base b.

ECDSA utilisé avec des clés de 256 bits dans bitcoin offre une sécurité comparable à RSA sur 3072 bits.

Voici comment fonctionne l’algorithme ECDSA pour la génération d’une paire de clés, la fabrication d’une signature avec la clé privée et la vérification


de cette signature avec la clé publique.

ECDSA utilise un ensemble fini de points (x,y) où x et y sont entiers et vérifient une équation du type:

y2 = (x3 + ax + b) [mod n]

ECDSA utilise par ailleurs une loi de groupe qu’on pourrait appeler l’«addition» de deux points P et Q sur la courbe, ainsi définie: P+Q = R quand on trace une droite entre P et Q qui coupe la courbe au point S et quand R est le symétrique de S sur la courbe, par rapport à l’axe des x.




La construction de R se traduit algébriquement par les équations:

xR = L2 – xP – xQ

yR = L(xP – xR) – yP

L = (yQ – yP)/(xQ – xP)

Quand P et Q se rapprochent, la droite PQ tend vers la tangente à la courbe, donc on peut additionner un point avec lui-même en prenant cette tangente au point P pour construire les points S et R. On a alors R = 2P, 3P= R + P et ainsi de suite de sorte qu’on peut calculer un point kxP où k est un entier quelconque, tant que R ne se trouve pas à l’infini.
Revenir en haut
Visiter le site web du posteur
Marine
Administrateur

Hors ligne

Inscrit le: 11 Mar 2014
Messages: 3 414
Féminin Cancer (21juin-23juil) 蛇 Serpent
Point(s): 471

MessagePosté le: Ven 27 Fév 2015 - 00:05    Sujet du message: Bitcoin Répondre en citant




Noter que la courbe définie par y2 = (x3 + ax + b) n’est pas une ellipse: les fameuses courbes elliptiques doivent en fait leur nom aux intégrales elliptiques.

L’empreinte M du message à signer est calculée avec la fonction SHA1 qui produit un condensé de 20 octets (160 bits).

En pratique, pour vérifier une signature ECDSA, connaissant le point C = MxG (la signature) et le point de base G, il s’agit de retrouver l’entier M (le condensé du message).

MxG signifie que le point G est «additionné» avec lui-même M fois, l’addition de deux points définissant une loi de groupe sur l’ensemble des points d’un champ fini. Le champ fini comporte un grand nombre de points et, si le point de base G est bien choisi, l’attaque «brute force» consistant à calculer tous les points kxG pour toutes les valeurs possible de k (entier) et à vérifier que l’un de ces points coïncide avec C est impraticable: c’est là que réside la sécurité de ECDSA et donc de bitcoin.

Les paramètres de la courbe doivent être choisis avec soin pour éviter d’utiliser une courbe faible. Par exemple une courbe elliptique «singulière», c’est à dire avec un point singulier comme un point d’intersection de la courbe avec elle-même est considérée comme faible et non utilisable pour une application cryptographique.

Le document FIPS csrc.nist.gov/publications/fips/fips186-3/fips_186-3.pdf précise des paramètres sûrs pour des courbes ECDSA robustes et bitcoin utilise une de ces courbes (secp256k1).

Zp: champ fini premier où p est un grand nombre premier (p = caractéristique du champ, champ étant un cas particulier d’un anneau)

On considère les points (x,y) où x et y sont dans Zp et vérifient

y2 = (x3 + ax + b) [mod n]

Le nombre de ces points constitue ce qu’on appelle l’ordre de la courbe.

n: ordre du point G, plus petit entier tel que n x G = O (O : élément «identité» du groupe fini). G doit être choisi de sorte que n est un grand nombre entier.

h: cofacteur, l’ordre de la courbe elliptique divisé par n.

k: à chaque signature, le signataire va choisir au hasard un entier k, très grand mais strictement inférieur à n, pour fabriquer sa signature. Noter que cet entier k ne sera pas nécessaire pour vérifier la signature et que k devra être changé à chaque signature. Ne pas changer k à chaque signature est une grosse faille de sécurité car cela peut permettre à une pirate de calculer la clé privée. Cette faille a été exploitée en 2010 contre Sony pour déchiffrer la clé privée qui permet de faire tourner n’importe quel logiciel sur la console PS3.

Génération des clés ECDSA

La première étape de la fabrication d’une signature ECDSA consiste donc à choisir un entier X, strictement plus petit que n, comme clé privée puis à calculer la «clé publique» Y telle que Y = X x G

La clé publique Y est donc en fait un point sur la courbe. Y ainsi que les paramètres p, n, a , b et G doivent être publiés.

Calcul et vérification d’une signature ECDSA

Après avoir calculé le condensé M du message avec la fonction à sens unique SHA1, la signature va se composer de deux parties sig1 et sig2. On calcule d’abord sig1 en calculant le point kxG et ne retenant que sa coordonnée x [modulo n]:

sig1 = (k×G)x [mod n]

Si le calcul du modulo donne zéro, il faut recommencer avec une autre valeur de k.

On calcule ensuite sig2 = k−1·(M+X·sig1) [mod n] où k−1 est l’inverse de k modulo n.

Le destinataire qui reçoit le message et la signature (sig1, sig2) peut vérifier l’authenticité du message en calculant d’abord son condensé M via SHA1 puis les nombres

w = sig2−1 [mod n]

u1 = M·w [mod n]

u2 = sig1·w [mod n]

enfin en calculant le point

(x,y) = u1 × G + u2 ×Y

La signature est vérifiée si sig1 ≡ x [mod n]

Notons qu’un grand nombre de cerveaux se sont penchés sur la possibilité de concevoir un ordinateur quantique pour attaquer la sécurité des algorithmes comme RSA ou ECDSA. Dans le cas de ECDSA sur 256 bits cependant, il semble que les lois de la thermodynamique ne permettent pas, en l’état actuel des connaissances, de réaliser un tel calcul avant l’extinction du soleil, quelle que soit la machine qui l’exécute.

Le calcul d’une adresse bitcoin à partir d’une clé privée est assez complexe. Voici comment il se déroule.

La courbe utilisée par bitcoin est une courbe dite de Koblitz (secp256k1) du nom du cryptographe, Neal Koblitz, qui, en 1985, a démontré l’utilité des courbes elliptiques en cryptographie.

Son équation s’écrit y2 = x3 + 7

Avec cette courbe, une clé privée est un nombre aléatoire compris entre 1 et 115792089210356248762697446949407573529996955224135760342422259061068512044368

(ou, en notation hexadécimale, entre 1 et FFFFFFFF00000000FFFFFFFFFFFFFFFFBCE6FAADA7179E84F3B9CAC2FC632551)

La clé publique est dérivée de la clé privée par une multiplication du point correspondant sur la courbe elliptique par le point de base de la courbe.

Le résultat est une paire de coordonnées (x,y) qui constitue la clé publique.

Finalement on calcule une empreinte RIPEMD160(SHA256(pubkey)), où pubkey est une concaténation de ces coordonnées.

Cette empreinte est concaténée avec sa Checksum puis encodée en base 58 pour former l’adresse bitcoin, typiquement sur une trentaine de caractères.

Prenons par exemple un entier K = E9873D79C6D87DC0FB6A5778633389F4453213303DA61F20BD67FC233AA33262 comme clé privée en notation hexadécimale

On obtient la clé publique en notation hexadécimale

(x,y) =

04

588D202AFCC1EE4AB5254C7847EC25B9A135BBDA0F2BC69EE1A714749FD77DC9

F88FF2A00D7E752D44CBE16E1EBCF0890B76EC7C78886109DEE76CCFC8445424

c’est à dire un octet d’en-tête (toujours égal à 04) suivi de x (32 octets) puis de y (32 octets).

L’adresse est obtenue en appliquant successivement SHA256 et RIPEMD-160 (deux fonctions à sens unique) à la chaîne de caractères constituée par x suivi de y (concaténation «big endian»: octets les plus significatifs en premier): on obtient dans un premier temps une chaîne RIPEMD-160 de 160 bits.

On y ajoute un octet identifiant le réseau:

0x00 réseau Bitcoin

0x6f réseau de test

On a donc une chaîne de 21 octets à l’issue de cette étape.

Une «checksum» est ajoutée, constituée des 4 premiers octets de l’empreinte calculée en appliquant deux fois de suite la fonction SHA256 à la chaîne de 21 octets.

Enfin, on effectue la conversion de notation en Base58 pour obtenir l’adresse:1CC3X2gu58d6wXUWMffpuzN9JAfTUWu4Kj









Validation des transactions bitcoin: principes


On appelle «bloc», une page de transactions bitcoin: un nouveau bloc est inscrit dans la base de données bitcoin, appelée «chaîne de blocs», toutes les dix minutes en moyenne.

Le mot bloc suggère que la page de transactions n’est pas une simple liste: chaque bloc contient sa propre empreinte, calculée à partir des empreintes de ses transactions et de l’empreinte du bloc précédent. Ces empreintes rendent impossible la moindre modification d’une transaction ou d’un bloc sans invalider les blocs suivants.

Les mineurs participent à la validation des transactions bitcoin sur le réseau, utilisant un logiciel spécifique de minage.

Pourquoi les mots mineurs et minage ? Parce que la participation à ce processus collectif permet d’obtenir une récompense en bitcoin et parce que la quantité de bitcoin ainsi distribué simule mathématiquement la quantité d’un minerai extrait: elle diminue au fil du temps et les ressources nécessaires à l’extraction sont liées à la difficulté de l’extraction. Le minage consiste en effet d’une part à confirmer les transactions, d’autre part à «extraire» les nouveaux bitcoins qui assurent la croissance de la masse monétaire bitcoin.

Cette croissance est rythmée par l’ajout d’un nouveau bloc toutes les dix minutes, comportant une transaction spécifique («coinbase transaction» en anglais) de création monétaire ex nihilo, d’un montant de 50 bitcoins initialement. Pour être le bénéficiaire d’une transaction de création monétaire, il faut être le premier à calculer une empreinte numérique du bloc possédant une caractéristique dictée par le protocole bitcoin: l’empreinte doit commencer par une longue suite de zéros, c’est à dire être inférieure à une certaine valeur de seuil. Comme une empreinte numérique est, par définition, imprévisible, une empreinte possédant cette caractéristique est difficile à trouver. Il est donc difficile d’écrire un nouveau bloc: la valeur de seuil définit le niveau de difficulté. Plus elle est basse, plus la suite de zéros exigée pour un bloc valable est longue et plus la difficulté est élevée. Les mineurs calculent toutes les deux semaines une nouvelle valeur de seuil telle que l’intervalle moyen de temps entre deux blocs reste dix minutes. Cet ajustement est rendu nécessaire par les variations possibles de la puissance de calcul cumulée des mineurs. Si elle augmente, ce qui est la tendance actuelle, les blocs sont trouvés plus rapidement et il faut augmenter la difficulté.





Tous les utilisateurs peuvent émettre des transactions cependant l’écriture d’un nouveau bloc de transactions dans la base de données bitcoin, correspondant à une confirmation de ces transactions, est réalisée par le premier mineur qui trouve une empreinte du bloc satisfaisant aux deux conditions suivantes:

1/ elle est inférieure à une valeur de seuil imposée par le réseau: ce seuil détermine le niveau de difficulté du calcul. La difficulté est ajustée tous les 2016 blocs, sur la base du temps qu’il a fallu pour calculer les 2016 blocs précédents.

A raison d’un bloc toutes les 10 minutes, il faudrait exactement deux semaines pour calculer 2016 blocs: si les 2016 blocs ont pris plus que deux semaines, la difficulté est réduite, dans le cas contraire elle est augmentée.

Concrètement, la preuve de calcul d’un bloc est la première valeur du compteur («nonce» en anglais) telle que l’empreinte du bloc (calculée par la fonction à sens unique SHA256 composée deux fois) se trouve en dessous d’un seuil maximum S (le niveau de difficulté = inverse du maximum = 1/S).

2/ l’empreinte du nouveau bloc est liée mathématiquement à l’empreinte des transactions du bloc, l’empreinte du bloc précédent et à la valeur du compteur. Pour trouver une valeur d’empreinte inférieure au seuil, le «mineur» doit incrémenter le compteur et recalculer l’empreinte pour chaque nouvelle valeur du compteur. Dès qu’un mineur a trouvé une valeur du compteur qui donne une valeur d’empreinte inférieure au seuil, il publie sa solution sur le réseau: l’empreinte publiée représente une preuve de calcul. Les autres mineurs peuvent facilement vérifier cette preuve de calcul en calculant l’empreinte du bloc avec cette valeur de compteur et en constatant qu’elle est effectivement inférieure au seuil. Le bloc est alors ajouté à la chaîne de blocs par l’ensemble des mineurs qui passent immédiatement au calcul du bloc de transactions suivant.

Lorsqu’un nouveau message de transaction publié est vérifié par un mineur, il l’intègre à la page de transactions («bloc») qu’il tente d’inscrire dans la chaîne de blocs bitcoin.

Les transactions sont ainsi liées entre elles dans une chaîne chronologique par un mécanisme sophistiqué d’empreintes et de signatures numériques : puisque aucune transaction ne peut être retranchée de la chaîne ni être ajoutée sans avoir été vérifiée par l’ensemble du réseau, la propriété de chaque bitcoin est établie avec certitude.

En effet, à chaque fois qu’une transaction transfère un bitcoin vers une nouvelle adresse, les vérifications remontent la chaîne des transactions précédentes avec leurs signatures, jusqu’à la transaction d’origine, qui a créé le bitcoin en question («coinbase transaction»)
Revenir en haut
Visiter le site web du posteur
Contenu Sponsorisé






MessagePosté le: Aujourd’hui à 01:21    Sujet du message: Bitcoin

Revenir en haut
Montrer les messages depuis:   
Poster un nouveau sujet   Répondre au sujet    OnNousCacheTout... Index du Forum ->
Les forums
-> Livres, revues et citations
Toutes les heures sont au format GMT + 1 Heure
Page 1 sur 1

 
Sauter vers:  

Portail | Index | Creer un forum | Forum gratuit d’entraide | Annuaire des forums gratuits | Signaler une violation | Conditions générales d'utilisation
Powered by phpBB © 2001, 2005 phpBB Group
Traduction par : phpBB-fr.com