User Tools

Site Tools


bitcoin_sous_le_capot

source : http://tech.eu/features/808/bitcoin-part-one/

Guide du Bitcoin (Part I): Une vue sous le capot

Le Bitcoin est un sujet dont on parle beaucoup mais pour beaucoup c'est encore un concept evasif. Dans la premère partie de ce guide, nous mettons en lumière la façon dont dont la monnaie virtuelle fonctionne d'un point de vue technique.

bitcoin

Beaucoup disent que le Bitcoin est la nouvelle monnaie obscure. Mais combien de personnes comprennent <em>vraiment></imgcaption> ce que les monnaies numériques veulent vraiement dire pour l'avenir ?

Je suis fatigué de lire des articles sur les ramifications économiques du Bitcoin; sur le pourquoi cette nouvelle monnaie virtuelle n'est pas sûre pour les échanges dûe à sa nature volatile.

mtgox

Fig. 1: Les échanges sur Mt.Gox apres l'attaque qui l' a ruinée.

Qu'en est il à propos de la nature volatile des marchés actuels apres les incidents de Crimée, qui ont fait glisser le FTSE 100 à 1.4%, ou quand le NASDAQ s'est arreté pendant trois heures perturbant l'IPO de Facebook de 16 milliards de $ ?

ftse100Fig. 2: Les échanges FTSE 100 quand la Russie a envahie la péninsule de Crimée

Il semble que tres peu de personnes écrivant ou couvrant Bitcoin comprennent réellement ce que les crypto monnaies signifient, le génie de son architecture et son potentiel à changer le paysage numérique.

Le problème avec les monnaies numériques Pour vraiment comprendre le bitcoin, nous devons revenir aux bases - comment la monnaie fonctionne dans le monde physique ?

Imaginez que vous allez dans un bar et buvez un café. L'achat d'un café implique une transaction dans laquelle deux biens ont été échangés. En particulier, le vendeur vous fournit une boisson et vous, le client, donne un jeton en échange, qui représente une valeur accordée (qu'elle soit en pièces ou billets).

Une des propriétés de la monnaie physique est qu'elle empèche - à un certain degres - l'usage frauduleux par sa nature physique. Quand vous payez avec une pièce ou un billet, le jeton physique est transféré à une nouvelle poche, celle du vendeur et il y a une sorte de validation comme quoi vous êtes l'unique possesseur de ce jeton à condition qu'il vienne de votre poche. Le jeton peut alors avoir son authenticité vérifiée avec certains instruments. La monnaie numérique tente de répliquer la transaction précédente mais avec la différence principale etant que le jeton existe seulement sous une forme numérique. Par exemple, imaginons que nous scannions un billet de cinq euros et nommions l'image numérique “five-euros.jpg”. Etre numérique permet beaucoup d'avantages mais vient aussi avec ses défauts comme quoi les fichiers peuvent être facilement clonés et que les copies sont indiscernables de l'original.

Ceci pose deux gros problèmes pour son utilisation en tant que monnaie:

  • Premièrement, il peut y avoir une quantité infinie de copies de “five-euros.jpg”, ce qui permet potentiellement à deux client (ou plus) de posséder le même fichier “five-euros.jpg” sans pouvoir distinguer qui en est le propriétaire.
  • Deuxièmement, puisque le fichier peut être copié plusieurs fois, il est théoriquement possible de cloner le billet et le dépenser autant de fois que désiré - on parle de double dépense (étape 2 et 3).

Digital Currency ProblemsFig. 3: Problèmes avec les transactions en monnaie numérique

Le chiffrement à la rescousse Heureusement pour nous, la science moderne de l'informatique a trouvée une façon de s'arranger avec les problèmes précédemment mentionnés, à travers l'utilisation du chiffrement. Le problème de la propriété peut être résolu avec l'utilisation de ce qui est connu comme le chiffrement par clefs.

Ceci est une façon de protéger un élément numérique des regards indiscrets par un procédé mathématique complexe appellé “chiffrement”, qui brouille le contenu numérique original sous forme de texte de façon à ce que seule la personne possédent le bon mot de passe, appellé une clef puisse la déverouiller (déchiffrer).

Une des utilisations les plus communes de ces algorithmes à clefs de chffrement sont les signatures numériques, qui sont l'équivalent d'une signature réelle autorisant n'importe qui avec la bonne clef de signer un bien numérique et prouver qu'ils en sont les vrais proriétaires.

La technique dans ce chiffrement par clef publique est qu'il n'y a pas qu'une seule clef mais deux - la clef privée et la clef publique.

La clef privée, comme son nom veut dire, est gardée privée et utilisée par le propriétaire pour signer n'importe quel fichier numérique sous son propre nom. La clef publique, qui est mathématicalement liée à la clef privée, vérifie que le fichier numérique a bien été, bien sûr, signé avec la clef privée. Additionnelement, cette clef publque peut et devrait être partagée entre toutes les personnes souhaitant vérifier la propriété réclamée.

Digital Signature validationFig. 4: Comment l'algorithme de signature numérique peut etre utilisée pour vérifier la propriété d'un bien numérique

Donc qu'est exactement Bitcoin ? Bitcoin est une monnaie numérique qui emploie effectivement la cryptographie (comme vu au dessus), ce pourquoi elle est appellée crypto monnaie. En vérité, avec les Bitcoins, il n'y a aucun jeton physique ou numérique d'échangé. A la place de cela, la seule représentation de la monnaie est une entrée sur un livre de comptes qui enregistre la transaction monétaire. Dans celui ci, la personne A envoie un montant de X Bitcoins à la personne B - Ce qui est similaire à ce qui est contenu dans un livre de compte en banque.

Dans le cas d'une banque, les deux personnes A et B devraient posséder un compte en banque étant indentifié par un ID numérique. La propriété est clairement définie par les cartes d'identité, des contrats signés, etc… quand vous ouvrez un compte en banque. Bitcoin address generationFig. 5: Generation of ECDSA public-key pairs to obtain Bitcoin addresses

Mais dans le cas du Bitcoin, n'importe quelle personne peut générer une paire de clefs de chiffrement publique-privée pouvant être utilisées pour créer l'équivalent d'un compte en banque, identifié par une “adresse Bitcoin”. Celle ci est essentiellement un acronyme de la clef publique et identifie le propriétaire unique d'un compte.

Dans son coeur, une adresse Bitcoin est un compte en banque numéroté, mais sans banque ni lien avec l'identité de son propriétaire.

Comme vous avez probablement deviné, le fait que n'importe qui avec un simple ordinateur (OpenPGP, GnuPG, ssh-keygen, OpenSSL, etc.) puisse générer un nombre d'ensemble de clefs pour les utiliser en tant qu'adresse Bitcoin avec une anonymisation totale est une des raisons pour lesquelles beaucoup d'organisations bancaires (en Russie, Chine et Europe) bannissent les crypto monnaies.

Plonger dans les transactions Comme précédemment mentionné, le Bitcoin n'est pas un bien numérique tangible mais est une transaction enregistrée sur un livre de compte appellé Blockchain. Cette transaction supporte basiquement l'origine du fond (inputs/entrées) en tant qu'adresse Bitcoin et la destination (outputs/sorties) en tant qu'autre adresse. Simple Bitcoin transactionFig. 6: Un exemple d'une simple transaction Bitcoin

Pour assurer la propriété du fonds, le fichier complet de la transaction est signé numériquement avec une clef privée par l'utilisateur envoyant le fonds (le client dans notre cas). Alors, la signature liée à la clef publique est incluse dans la transaction. Ceci autorise n'importe qui à valider que les Bitcoins transférés sont vraiment possédés par l'envoyeur.

Bien que l'adresse d'origine des fonds soit dérivée de la clef publique, en théorie, personne ne connait la vraie identité du propriétaire de la clef publique. Même chose pour la destination, qui est représentée par une autre adresse Bitcoin et n'ayant pas de clef publique correspondant avec le propriétaire.

Pour faire simple, nous avons montré le point de vue de deux parties impliquées dans une transaction. Si nous voyons cette transaction depuis l'extérieur, nous verrions seulement une adresse Bitcoin aléatoire sans avoir aucune idée à qui elle appartient.

Cependant, les transactions n'existent pas en tant que telles. Chaque entrée de transaction est un pointeur vers une transaction précédente. La Blockchain enregistre cette liste de transactions liées donc n'importe quel Bictoin peut être tracé jusqu'à son origine. Linked Bitcoin transactionsFig. 7: Un exemple de deux transactions liées

Les transactions enregistrées dans la Blockchain peuvent être tres simples (au dessus), ou devenir tres complexes avec de multiples sources d'entrées et sorties (au dessous). Single input - Multiple output Bitcoin transactionFig. 8: Une transaction unique en Bitcoin avec de multiples entrées et sorties

Multiple input - output Bitcoin transactionFig. 9: Une transaction multiple en Bitcoin avec de multiples entrées et sorties

Pourquoi voudrions nous de multiples entrées et sorties pour une transaction ? Parce que les transactions Bitcoin indiquent combien vous transférez depuis les entrées, qui veulent dire qu'elle transfererait tous les Bitcoins associés avec une adresse. C'est similaire à payer une café à trois euros avec un biller de 20 euros.

Pour empêcher cela d'arriver, il est possible d'ajouter une sortie supplémentaire pointant vers une adresse possédée par un client qui recevra la monnaie. (Fig. 8). De plus, parce qu'il peut ne pas y avoir suffisemment de Bictoins dans une adresse unique, il est possible d'ajouter plusieurs entrées possédées par un client afin de correspondre à la sortie désirée (Fig. 9).

Le rôle de la Blockchain Le document original du Bitcoin a mis en lumière deux buts majeurs derrière l'architecture de la crypto monnaie :

  1. Créer une monnaie numérique empêchant le problème du double paiement
  2. Obtenir le premier but sans une tierce institution financière.

Dans les tentatives précédentes de construction d'une monnaie numérique, le livre de comptes etait toujours stocké par une tierce partie centralisée. In previous attempts to build digital currencies, the ledger was always stored by a centralized third-party. Le Bitcoin contourne cela en déployant un réseau peer to peer de livre de compte partagé.

Chaque client dans le réseau Bitcoin possède une copie de la Blockchain qui est publique et accessible à tout le monde sur le réseau autorisant une transparence à la monnaie sans précédent. Bitcoin networkFig. 10: Un large aperçu du réseau Bitcoin

Le réseau Bitcoin est fait de clients interconnectés, appellés full clients ou noeuds(nodes), qui ont la charge de valider chaque transaction reçue. Une fois validée, le client diffuse la transaction au voisinage jusqu'a ce que chacun dans le réseau en possède une copie.

Plutot que de stocker les transactions telles quelles, la Blockchain les empaquette dans ce qui est identifié comme un bloc Bitcoin. Une fois qu'un bloc est créé, il sera diffusé à tous les autres noeuds afin que chacun puisse mettre à jour sa Blockchain. Chaque bloc est alors lié au bloc précédent, créant une chaine qui peut être tracée jusqu'au premier bloc jamais créé - le “genesis block”. Bitcoin blockchain recreationFig. 11: La recréation de la Blockchain depuis le "genesis block"

Les utilisateurs en charge de créer ces blocs sont appellés “mineurs” et le procédé, sans surprise est appellé “miner un bloc”;.

Aux premiers jours, chaque client sur le réseau etait un mineur. Actuellement les mineurs ont des clients dédiés qui se connectent au réseau Bitcoin avec des protocoles spécifiques.

Une fois qu'une transaction est empaquetée dans un bloc et est acceptée par une large majorité du réseau, elle est considérée comme officielle. Bitcoin block miningFig. 12: Processus de minage de Bitcoin simplifié

Une fois qu'un noeud recoit un bloc depuis un mineur, il l'ajoute à sa Blockchain locale et le diffuse au reste du réseau. Comme nous pouvons le voir plus bas, chaque bloc peut contenir un certain nombre de transactions. Bitcoin blockchain liveFig. 13: Données temps réel de la Blockchain Bitcoin sur [[https://blockchain.info/|Blockchain.info]]

Frais de transaction Alors comment un mineur choisit quelle transaction empaqueter avec quel bloc ? Principalement, ceci dépend de combien les parties sont prêtes à payer le mineur pour s'occuper de leur transaction.

En théorie, chaque transaction est traitée gratuitement. Cependant, Bitcoin autorise ses utilisateurs à “donner un pourboire” au mineur pour valider leur transaction.

Ces pourboires sont appellés frais de transaction et pris quand la somme de toutes les entrées de la transaction est plus grande que les sorties. La différence entre les entrées et sorties sera encaissée par le mineur qui transforme la transaction vers un bloc. Bitcoin transaction feesFig. 14: Exemple de frais de transaction

Par défaut, la plupart des client logiciels de bitcoin vont ajouter automatiquement des frais de transaction si certains critères sont réunis.

Protection: Preuve de travail Bien sûr, il reste une faille de confiance dans le réseau Bitcoin. Si les mineurs sont les réels validateurs des transactions, alors chaque entité unique possédant suffisemment de mineurs pourrait potentiellement bouleverser la Blockchain. Avec la propriété du réseau, les anciennes transactions pourraient être manipulées et offir la possibilité du double paiement.

Pour empêcher cela, le Bitcoin a introduit un mécanisme de protection appellé Preuve de travail (PoW - Proof of work), un petit problème mathématique que chaque mineur doit résoudre avant de renvoyer le bloc aux nodes. PoW a été conçu pour que chaque mineur prenne en moyenne 10 minutes à le résoudre. Bitcoin proof of workFig. 15: Preuve de travail Bitcoin

La puissance de calcul et aléatoirité nécessaire à la résolution du problème empêche les escrocs de contrôler totalement la Blockchain. Essentiellement, plus d'ordinateurs vous possédez, plus rapidement vous pouvez calculer le PoW.

Mais il y a un loquet: Chaque 2016 blocs (environs deux semaines), le réseau vérifie à quelle vitesse les mineurs ont travaillé. Si ils ont miné des blocs plus rapidement qu'attendu, ceci veut dire que les mineurs ont accentué leur puissance de calcul.

Pour empêcher cela d'arriver et peser sur la balance, le réseau modifie la difficulté de la PoW et l'augmente, donc le temps moyen pour la résoudre reste à 10 minutes. Bitcoin Proof of Work difficultyFig. 16: Fig. 16: Bitcoin PoW [[http://bitcoin.sipa.be/|evolution du facteur de difficulté]].

Si miner un bloc coûte en puissance de calcul, alors pourquoi tout le monde veut le faire ? Et bien c'est parce que les mineurs sont rémunérés avec des Bitcoins.

Originalement, pour chaque bloc, les mineurs pouvaient être rémunérés 50 Bitcoins, plus chaque frais de transaction. Cette rémunération est appellée transaction coinbase.

Les transactions “Coinbase” ajoutent de nouveaux Bitcoins dans le système, contrôlent l'inflation de la monnaie et, en même temps, dissuade chaque tentative de bouleverser le réseau. Le système est construit autour d'une alimentation contrôllée – ce qui veut dire que tous les quatre ans, la rémunération des mineurs est réduite de moitié.

bitcoin_sous_le_capot.txt · Last modified: by 127.0.0.1