Bitcoins : La crypto-monnaie du Dark Internet deviendra-t-elle le moteur des échanges financiers sur la Toile ?

Au moment où j’écris ces lignes, il y a précisément 12.031.925 Bitcoins (BTC) en circulation. La dernière transaction s’est faite pour 829.98 dollars (sur l’échange MtGox). La capitalisation totale des bitcoins est donc de l’ordre de 10 milliards de dollars. Je peux même assister en temps réel à la naissance de chaque Bitcoin sur la page Fiatleak. On sait tout sur chaque Bitcoin créé en lisant le journal qui a enregistré toutes les transactions depuis le début. Ce journal s’appelle la Block Chain et il est disponible gratuitement sur bitcoin.org (attention, la Block Chain est maintenant de l’ordre de 10 MB !). Le même site vous donnera un choix de portefeuilles (Bitcoin Wallets) et vous donnera une adresse (publique) ainsi qu’une clé (privée bien sûr). Ne la perdez pas car sans elle, vous perdez tout votre portefeuille ! Les programmes sont publics et souvent gratuits. C’est d’ailleurs cette « transparence » qui est le moteur de sécurité du monde des Bitcoins.

Mais au même moment où nous pensons tout savoir sur cette crypto-monnaie, nous nous rendons vite compte que nous ne savons que peu, à commencer par qui a créé le système et comment il fonctionne réellement. C’est ce que nous allons tenter de découvrir ensemble.

D’où viennent les Bitcoins ?

La naissance du système remonte à la publication en 1998 par Wei Dai sur la Cypherpunk Mailing list suggérant qu’une nouvelle forme de monnaie pouvait être créée en utilisant des techniques de cryptographie. Mais c’est en 2008 que la première réalisation apparait avec la publication d’un papier intitulé « Bitcoin : A Peer-to-peer Electronic Cash System » publié dans The Cryptography Mailing List par un  auteur nommé Satoshi Nakamoto. Pour bien montrer qu’il était sérieux, Satoshi Nakamoto publie en 2009, en Opensource, le premier programme capable de miner des Bitcoins, créant ainsi le Réseau Bitcoin (Bitcoin Network) et le premier Block (The Genesis block) pour lequel il reçoit les premiers Bitcoins. La première transaction connue est l’achat par Laszlo Hanycek, un programmer vivant en Floride, de deux pizzas délivrées par Papa John pour 10,000 Bitcoins. Ce sont sans doute les pizzas les plus chères du monde puisque 10,000 BTC valent aujourd’hui plus de huit millions de dollars !

Le seul problème est que Satoshi Nakamoto n’existe pas. La seule chose dont on puisse être certain est qu’il s’agit d’un pseudonyme. Qui se cache derrière ce nom ? Il y a de nombreuses théories. Ted Nelson (le créateur du mot hypertext) pense qu’il s’agit du mathématician Shinichi Mochizuki (connu pour sa solution de la ABC Conjecture), d’autres pensent au trio Neal J. King, Charles Bry et Vladimir Oksman qui ont déposé des brevets sur le sujet, d’autres enfin pensent qu’il s’agirait d’une conspiration entre gouvernements asiatiques pour détrôner le dollar comme monnaie de réserve. Ce que l’on sait, c’est qu’en 2010, Satoshi Nakamoto a publié un dernier papier indiquant qu’il était temps pour lui de faire autre chose. Depuis plus rien.

La mécanique (très publique) du réseau Bitcoins

La volonté du créateur du système est claire : créer un système aussi solide que celui de l’étalon or. L’or est rare (quantité limitée), se conserve indéfiniment et peut être coupé en fractions très petites. Dans le réseau Bitcoins il n’y a que deux constantes :

Le nombre maximal de Bitcoins qui peuvent être créés par le système est de 21 millions (en fait 20.999.999,9769). Nous avons donc déjà produit plus de la moitié des Bitcoins possibles.

La plus petite fraction échangeable correspond à un centième de million de Bitcoin. Elle est appelée un Satoshi.

Comment sont donc créés les Bitcoins et qui en décide ?

La question est importante car elle est la base de la stabilité du système. La réponse est simple : personne… et tout le monde !

Les Bitcoins ne sont pas créés comme des dollars, des Yens ou des Euros, qui sont imprimés par une Banque Centrale, en fonction de décision des gouvernements responsables (ou irresponsables ?). Ils sont créés, comme l’or par des Mineurs (Miners). Regardons de plus près comment cela fonctionne.

Une transaction est créée à chaque fois qu’un vendeur rencontre un acheteur (sur l’Internet) et que les deux parties se mettent d’accord sur le prix. Cet accord se fait par des échanges habilités tels que Mt. Gox (basé au Japon) ou Bitstamp (en Euros), ou encore OTC Exchange (qui permet d’utiliser Paypal). Une liste très complète est disponible. [ https://en.bitcoin.it/wiki/Trade]

Cette transaction est ensuite enregistrée, et c’est à ce niveau que la création de Bitcoins va se faire. Le réseau Bitcoin est un réseau peer-to-peer (comme Skype ou Napster). Les transactions se font entre deux ordinateurs qui ont le même progiciel client (trouvé sur bitcoin.org). Chaque utilisateur a un compte crypté qui va enregistrer ses transactions dans un portefeuille (wallet.dat). Toutes les transactions sont immédiatement et automatiquement publiées sur le réseau Bitcoin. Elles sont lues par les programmes clients d’une catégorie d’utilisateurs spécialisés: les Mineurs.

Les Mineurs parcourent en permanence le réseau et lisent toutes les transactions qui n’ont pas été certifiées dans une période de temps. Pour certifier un Block de transactions, les Mineurs doivent analyser les transactions et calculer un hashcode facilement vérifiable. Les ordinateurs savent faire de tels hashcodes très rapidement. De façon à laisser assez de temps au réseau pour vérifier la légitimité du calcul (et éviter des ventes en double), le système impose une règle simple : il faut que le hashcode commence par un certain nombre de zéros (de l’ordre de quarante zéros). Pour arriver à ce résultat, le Mineur ajoute à la chaine d’information de chaque transaction un nombre arbitraire (le Nonce) et il répète l’opération jusqu’à ce que le nombre commence par le format imposé (The challenge – Le défit). Il n’est pas possible de calculer le Nonce pour obtenir le format espéré. La seule façon et de calculer un hashcode, s’il ne correspond pas au format, changer le Nonce, recalculer, etc. Il faut quelques centaines de millions d’essais pour obtenir une solution, ce qui demande 10 à 20 minutes par Block.

Dès que la combinaison recherchée est trouvée, le Node/Mineur annonce à tous les autres points du réseau qu’il a résolu le problème et publie sa Preuve (Proof of Work). Le Block est alors intégré à la Block Chain qui la liste contenant l’image de toutes les transactions (remontant jusqu’au Bitcoin original).

Pour inciter les Mineurs à faire ce travail de vérification essentiel pour le bon fonctionnement du réseau, ils reçoivent du système un certain nombre de Bitcoins (The Reward). Ce nombre était de 50 BTC à l’origine, depuis May 2013 ce nombre est passé à 25 BTC. En plus du Reward, les mineurs reçoivent aussi les coûts de transaction que chaque vendeur décide de donner pour que sa transaction soit correctement certifiée.

Le système contient des algorithmes pour conserver un certain niveau de difficulté. Tous les 2016 blocks la difficulté de la preuve (en gros le nombre de zéros) est revue en hausse (si le temps passé par l’ensemble des mineurs est trop important, ou en baisse (s’ils ont pu le faire trop vite). La valeur du Reward est aussi automatiquement ajustée : elle est divisée par 2 tous les 210,000 blocks confirmés. Il a été calculé que lorsque le nombre de 21 millions de Bitcoins sera atteint (vers 2140), il sera possible de ne plus payer de Reward, le nombre de transactions sera suffisant pour payer le travail (et l’équipement) des mineurs.

Le système est ainsi merveilleusement stable, précis, publique, et (surtout) totalement décentralisé. Comme l’Internet lui-même, il n’y a pas de centre ou de priorité pré établie, et toute l’information est facilement vérifiable par tous les participants.

Alors, avec une telle mécanique, que peut-on faire ? Bâtir des fortunes, en perdre aussi, tout dépend des participants. Nous verrons dans le prochain article, qu’ils sont hauts en couleurs !

Vous êtes désormais inscrit à la newsletter de Silicon-Valley.fr !