Le Bitcoin : la première crypto-monnaie viable
Si les crypto-monnaies existent depuis quelques années déjà, ce n’est que récemment que le grand public les a découvertes et a commencé à vraiment s’y intéresser. Le Bitcoin – dont tout le monde a entendu parler ces dernières semaines, et sur lequel nous avons déjà publié un premier dossier en juin dernier (voir « Retour sur les Bitcoins : peut-on créer de l’argent ? ») – est ainsi officiellement né en 2009, après deux années de recherches réalisées par un certain Satoshi Nakamoto dont l’existence même est toutefois mise en doute par l’ensemble de la communauté. Le développeur – ou le groupe de développeurs, personne ne sait vraiment – caché derrière ce pseudonyme a tout de même publié dès 2008 un document baptisé « Bitcoin : A Peer-To-Peer Electronic Cash System » sur une liste de diffusion, décrivant alors le concept du Bitcoin.
Le Bitcoin, une monnaie dont la valeur a explosé
Pourtant, ce n’est qu’en 2012 et surtout en 2013, après que différentes banques centrales et certains états comme l’Allemagne aient porté leur attention sur le Bitcoin (Ben Bernanke, à la tête de la FED, ayant même salué le potentiel de cette nouvelle monnaie), que le grand public a réellement découvert cette monnaie numérique. Conséquence directe de cet intérêt « soudain », à la fois par le grand public et par les spéculateurs : la valeur du Bitcoin a littéralement explosé (ce qui a d’ailleurs conduit certains précurseurs à perdre par inattention de véritables fortunes en Bitcoins…). La « parité » avec le dollar a été atteinte le 10 février 2011, le cours a ensuite peu à peu progressé jusqu’à dépasser les 1000 dollars en novembre dernier. Aujourd’hui, par le jeu de l’offre et de la demande, le cours du Bitcoin oscille entre 600 et 700 euros.
De plus en plus de personnes et de commerçants utilisent, échangent et acceptent des Bitcoins, ce qui a peu à peu créé une économie tout entière basée sur cette monnaie. Des bourses, des places d’échange et même des distributeurs automatiques de Bitcoins (sic), baptisés RoboCoins et permettant d’acheter et de vendre des BTC sur les principales places de marché à partir de son portefeuille électronique personnel et de manière sécurisée (l’utilisateur doit s’identifier par un contrôle biométrique), ont fait leur apparition, au grand dam des banques centrales. Car c’est justement la force de cette crypto-monnaie : elle n’est contrôlée ou régulée par aucune organisation gouvernementale. La quantité de monnaie en circulation est définie à l’avance et ne dépend pas de la production de richesse, la valeur du Bitcoin est déterminée de manière entièrement flottante et les transactions ne reposent pas sur une infrastructure centralisée.
Avant de s’intéresser à l’économie qui gravite autour du Bitcoin, intéressons-nous d’abord à la fabrication et au fonctionnement de cette crypto-monnaie et de ses dérivés.
La fabrication des Bitcoins
Le Bitcoin a été conçu dès le départ pour qu’une quantité bien définie de coins soit générée au cours du temps. Ainsi, un total de 21 millions de Bitcoins sera créé, par les utilisateurs du réseau eux-mêmes (nous verrons comment plus loin) à une cadence de 50 Bitcoins par « bloc » au début, à raison d’un bloc toutes les 10 minutes.
Le nombre de Bitcoins par bloc est en outre divisé par deux tous les 210 000 blocs. Un rapide calcul montre donc que tous les Bitcoins seront générés d’ici 2040. Cette émission régulière et dégressive de Bitcoins rend cette monnaie déflationniste, à l’inverse des monnaies fiduciaires qui sont de type inflationniste. Autre petit détail : tout Bitcoin perdu l’est définitivement, il ne peut être remplacé…
Obtenir des Bitcoins
La façon la plus simple d’obtenir des Bitcoins est d’en acheter. Il existe en effet un certain nombre de places d’échanges (par exemple BTC-e, Bitstamp ou Bitcoin-Central) permettant d’acheter des Bitcoins avec des dollars, des euros ou n’importe quelle autre monnaie. Bien entendu, il faudra très souvent – pour ne pas dire tout le temps – montrer patte blanche et fournir à l’organisme derrière le site Internet tous les documents officiels demandés (qui sont souvent les mêmes que ceux requis pour ouvrir un compte bancaire) : justificatif de domicile, pièce d’identité ou encore RIB seront vite indispensables. Il est également possible d’échanger des Bitcoins avec d’autres crypto-monnaies, quelques sites (comme Cryptsy ou Bter) s’étant spécialisés dans ce type d’échange.
L’autre solution pour obtenir des Bitcoins (et pour en créer de nouveaux, les deux actions étant intimement liées) est de participer au réseau lui-même en « minant », c’est-à-dire en mettant à la disposition du réseau Bitcoin une partie de la puissance de calcul de son ordinateur.
Authentifier les transactions
Contrairement aux monnaies fiduciaires, il existe un risque de « double dépense » (ou double paiement) avec les monnaies électroniques : sans mécanisme mis en place pour l’interdire, il serait théoriquement possible de dépenser deux fois un seul et unique « coin » en sa possession. En pratique, cela reviendrait à réaliser deux transactions différentes avec un seul « coin », chose qu’il est bien entendu impossible de faire avec un billet ou une pièce de monnaie physique…
Tout l’intérêt du Bitcoin – et des crypto-monnaies actuelles de manière plus générale – réside justement dans son mécanisme décentralisé d’authentification des transactions, interdisant toute possibilité de « double dépense » et fiabilisant donc les transactions de pair à pair.
La preuve de travail : double SHA-256
Pour être authentifiée, une transaction doit être intégrée à un « bloc » de transactions. Chaque bloc va donc regrouper un certain nombre de transactions (parfois plusieurs centaines) regroupées dans un arbre de Merkle, puis être validé grâce à un traitement cryptographique que l’on appelle « preuve de travail » et qui consiste – pour le Bitcoin – à trouver un double hash en SHA-256 qui corresponde au bloc en cours, à partir du bloc précédent.
Tous les ordinateurs mettant leur puissance de calcul à la disposition du réseau Bitcoin sont donc en concurrence pour trouver en premier une solution à ce double hash en SHA-256 et résoudre par la même occasion un bloc de transactions. Afin de maintenir un intervalle de 10 minutes entre chaque bloc, la difficulté demandée pour effectuer la preuve de travail est régulièrement réévaluée (tous les 2016 blocs). Cette difficulté se traduit au niveau de la preuve de travail par un certain « objectif » à atteindre.
A l’heure actuelle, la difficulté requise pour résoudre un bloc du réseau Bitcoin est de 1,789 milliard, ce qui signifie que l’objectif du double hash en SHA-256 doit être inférieur à 00000000000000002666600000000000000000000000000000000000000000000. Plus la difficulté est élevée, plus l’objectif à atteindre est « bas » (autrement dit, et en simplifiant quelque peu : plus la difficulté est élevée, plus il y a de zéros au début de l’objectif) et moins il y a donc de chance pour un ordinateur lambda de trouver une preuve de travail qui valide le bloc.
Une fois qu’un bloc est résolu et que les transactions qu’il renferme sont certifiées, il est ajouté à la chaîne de blocs (« blockchain »), consolidant – ou « confirmant » – de manière exponentielle les transactions précédentes. Cette chaîne contient donc toutes les transactions réalisées depuis le lancement du Bitcoin, ce qui explique que son poids vienne de dépasser les 14 Go !
Les blocs orphelins
Il peut arriver exceptionnellement que deux mineurs trouvent simultanément (aux temps de latence du réseau près) une solution à un même bloc. Etant donné qu’un seul bloc résolu à la fois peut être intégré à la chaîne de blocs, les deux chaînes concurrentes alors créées sont temporairement suivies de manière aléatoire par les différents mineurs du réseau.
Au bloc suivant, le réseau dans son ensemble basculera alors automatiquement vers la chaîne qui obtiendra la difficulté cumulée la plus importante (il s’agit en d’autres termes de la chaîne la plus longue). Le bloc « perdant » sera quant à lui considéré comme orphelin, et aucune transaction n’y sera intégrée.
Récompenser les mineurs
Chaque bloc intègre également une transaction spéciale baptisée « coinbase » renfermant un certain nombre de Bitcoins ne provenant pas d’une transaction antérieure et destinée au mineur « gagnant », c’est-à-dire la machine ayant résolu en premier le bloc. On parle ici de milliards de calculs par seconde, la puissance totale de calcul du réseau Bitcoin atteignant actuellement 11,3 PHashs (1015 hashs) testés par seconde.
Il s’agit donc de nouveaux Bitcoins, c’est-à-dire de création de monnaie. Comme vu précédemment, ce nombre de Bitcoins nouvellement créé diminue avec le temps. Initialement de 50 Bitcoins par bloc, il est divisé par deux tous les 210 000 blocs (soit tous les quatre ans environ). A l’heure actuelle, chaque bloc ne renferme donc plus que 25 « nouveaux » Bitcoins, et cette valeur sera de nouveau divisée par deux d’ici 2017.
Les frais de transaction
A terme et une fois que tous les Bitcoins auront été générés, les mineurs ne seront donc récompensés pour leur travail que grâce aux frais de transaction. Ceux-ci, généralement facultatifs et déterminés par l’utilisateur lui-même, garantissent à une transaction d’être intégrée plus rapidement à un bloc et donc d’être certifiée plus rapidement par le réseau.
Attention toutefois : lorsque la transaction dépasse un certain poids (c’est le cas lorsqu’elle regroupe un grand nombre de petites transactions), lorsque les coins ont été récemment générés ou bien en cas de transaction récurrente, ces frais – bien que minimes, de l’ordre de quelques milliBits (0.001 BTC) – peuvent devenir obligatoires, ceci afin de protéger le réseau contre les utilisateurs malveillants émettant un grand nombre de petites transactions.
Le Litecoin et les autres crypto-monnaies
Rapidement, des « clones » du Bitcoin ont fait leur apparition, jouant sur différents paramètres comme la quantité totale de coins générés, la période de réévaluation de la difficulté, le nombre de coins créés par bloc ou encore l’algorithme utilisé pour la preuve de travail.
Lancé en octobre 2011, le Litecoin reprend ainsi le concept du Bitcoin, mais remplace la preuve de travail à base de double SHA-256 par une preuve de travail utilisant l’algorithme scrypt. Celui-ci, conçu par Colin Perceval et relativement gourmand en mémoire (en tout cas bien plus que le SHA-256), a été choisi pour empêcher les FPGA et ASIC (dont l’arrivée sur le réseau Bitcoin a rendu obsolète le minage avec des CPU ou des GPU, augmentant au passage de manière exponentielle la difficulté) de miner efficacement des Litecoin. Il était également prévu que l’utilisation de cet algorithme rende complexe l’utilisation des GPU, mais des logiciels dédiés permettant d’utiliser des Radeon (cgminer ou Reaper) ou des GeForce (CudaMiner) via les API OpenCL ou CUDA ont rapidement vu le jour…
Le délai entre chaque bloc a en outre été diminué à seulement 2,5 minutes, tandis que le nombre total de coins atteindra 84 millions de LTC (le nombre de coins par bloc diminuant de moitié tous les quatre ans, il est de 50 LTC actuellement). En revanche, la difficulté est réévaluée tous les 2016 blocs comme le Bitcoin. A ce jour, la difficulté du Litecoin atteint 3891.34, le réseau dans son ensemble atteignant une puissance de calcul de 118 GHashs/s.
Les clones en SHA-256 et en scrypt
De très nombreux autres clones des Bitcoins et Litecoins ont par la suite vu le jour (et continuent de voir le jour…), avec plus ou moins de succès. Toujours basées sur les algorithmes SHA-256 (Terracoin) ou scrypt (Feathercoin, Dogecoin, DigitalCoin, AlphaCoin, FastCoin…), ces (trop) nombreuses crypto-monnaies ne se différencient que par quelques petits détails comme le nombre total de coins ou le temps entre chaque bloc.
Quelques monnaies, basées sur un algorithme légèrement différent ou apportant quelques innovations, sortent toutefois du lot. Le Namecoin, basé sur du SHA-256 comme le Bitcoin, peut par exemple servir d’alternative décentralisée aux DNS (avec des noms de domaine en .bit). Le Peercoin utilise à la fois la preuve de travail (PoW, Proof-of-Work) en SHA-256 et la preuve de participation (PoS, Proof-of-Stake) pour créer de la monnaie (jusqu’à 1% d’inflation par an). Les frais de transaction, fixés à 0,01 PPC par le protocole PeerCoin lui-même, sont déduits du compte de celui qui a émis la transaction et directement détruits. Ils ne reviennent donc pas aux mineurs.
Le YaCoin utilise l’algorithme scrypt-chacha à la place du simple scrypt, et repose sur la preuve de travail et la preuve de participation. Quelques crypto-monnaies, comme le Lottocoin ou le LotteryTickets, ressemblent enfin à des loteries, dans le sens où la valeur du bloc est variable. Bref, difficile de s’y retrouver, surtout qu’un certain nombre de crypto-monnaies ont disparu aussi vite qu’elles étaient apparues…
Les crypto-monnaies « GPU-résistantes »
Alors que les crypto-monnaies basées sur l’algorithme SHA-256 ne peuvent désormais – pour une question d’efficacité et de rentabilité – être minées qu’avec des ASIC (bien que cela reste encore techniquement possible avec des CPU et des GPU), et que celles basées sur un algorithme scrypt (ou dérivé) sont majoritairement minées avec des GPU (toujours pour une question de rentabilité et d’efficacité), certains développeurs ont mis au point des crypto-monnaies basées sur des algorithmes ou des preuves de travail que seul un CPU peut traiter efficacement.
Le Primecoin utilise par exemple les chaînes de nombres premiers comme preuve de travail, plus particulièrement les chaînes de Cunningham de première et de deuxième espèces, ainsi que les chaînes de type bi-twin. On notera au passage et avec un certain amusement que certains records de chaines de Cunningham ont été découverts par le réseau Primecoin ! Le Protoshares utilise quant à lui un algorithme spécialement créé pour cette crypto-monnaie et dérivé du « problème des anniversaires ». Ce même algorithme, modifié pour l’occasion, est également utilisé par le MemoryCoin 2.0.
Quel logiciel et quel matériel pour miner ?
S’il est possible de miner directement à partir du portefeuille électronique (« wallet ») des différentes crypto-monnaies, Il est bien souvent préférable de passer par des outils dédiés, plus efficaces et plus rapides, parfois mis au point par la communauté plutôt que par le ou les développeurs à l’origine de la crypto-monnaie en question. Le logiciel à utiliser varie toutefois selon le type de matériel que l’on a à sa disposition (processeur, carte graphique, FPGA ou ASIC) ainsi que le type d’algorithme utilisé par la crypto-monnaie que l’on souhaite miner.
Les logiciels
Concernant le Bitcoin et les autres crypto-monnaies à base de double SHA-256, plusieurs logiciels sont à la disposition du mineur. Les plus connus actuellement sont Pooler’s CPU Miner (fonctionne exclusivement avec les CPU), CGminer (fonctionne avec les GPU via l’API OpenCL, avec les FPGA et les ASIC), et BFGMiner (conçu spécifiquement pour les FPGA et les ASIC). Pooler’s CPU Miner et CGminer sont en outre capables de miner des LiteCoin et toutes autres crypto-monnaies basée sur l’algorithme scrypt.
Les monnaies basées sur un algorithme plus original demandent de leur côté un logiciel dédié. C’est par exemple le cas du PrimeCoin (avec le logiciel jhPrimeMiner et ses nombreuses versions optimisées), des ProtoShares (ProtoMiner, jhProtoMiner, PTSminer) ou du MemoryCoin 2.0.
CPU, GPU, FPGA et ASIC
Côté matériel, les monnaies à base de SHA-256 peuvent être minées avec des CPU, des GPU, des FPGA ou des ASIC, mais seuls les ASIC sont réellement rentables actuellement. Les monnaies à base de scrypt peuvent être minées avec des CPU et des GPU, ces derniers étant plus rapides et plus rentables. On notera au passage que l’architecture des Radeon HD 5000 et plus récentes est particulièrement bien adaptée à ce type de calculs, bien plus que les GeForce… Certains mineurs investissent de véritables fortunes pour monter des fermes de minage, à tel point que certains suspectent cette pratique d’être à l’origine d’une véritable pénurie de Radeon !
Les ProtoShares, PrimeCoin et MemoryCoin 2.0 sont de leur côté exclusivement réservés aux CPU, en particulier ceux supportant les jeux d’instruction AVX et AES.
Les « pools »
Avec l’augmentation de la difficulté des différentes monnaies, il devient de plus en plus difficile de miner seul dans son coin. Techniquement ce la ne pose aucun problème, mais statistiquement la puissance de calcul d’un mineur seul ne lui permettra quasiment jamais de résoudre un bloc.
C’est pourquoi les mineurs se regroupent en « pool » : en mettant en commun leur puissance de calcul, cela permet d’augmenter les chances de résoudre un bloc. Chaque mineur participe au travail global en produisant des « shares », soit des preuves de temps de travail fourni. Une fois le bloc résolu par le pool, le gain est partagé entre les différents mineurs au prorata du nombre de shares qu’ils ont renvoyé (plusieurs variantes du partage des gains existent, selon que l’on soit payé au share, au prorata global ou au prorata sur les N derniers shares). Il existe des pools pour toutes les monnaies, certains regroupant des centaines de mineurs (Give-Me-Coin, WeMineLTC par exemple), d’autres avec une taille plus raisonnable (comme SMP-FR).
Attention toutefois à quelques petits détails avant de vous lancer sur un pool : prenez garde de bien vérifier les frais ponctionnés pour chaque gain (de l’ordre de quelques pourcents) et le seuil à partir duquel il est possible de récupérer ses coins. Certains pools ont tendance à fixer des seuils particulièrement élevés que vous pourrez n’atteindre qu’au bout de plusieurs jours, selon votre puissance de calcul…
Gagner de l’argent en minant ?
Est-il possible de gagner de l’argent en minant ? Oui, assurément. Est-il rentable de miner ? Il est autrement plus dur de répondre à cette question. En effet, s’il est relativement simple de miner des coins puis de les revendre contre des dollars ou des euros, les gains réalisés sont extrêmement variables et dépendent d’un certain nombre de facteurs :
- la difficulté du coin, revue régulièrement, influe sur le nombre de coins qu’il est théoriquement possible de miner sur une période donnée. Plus la difficulté est grande, moins vous aurez de coins (à puissance de calcul égale).
- Le nombre de coins par bloc évolue également dans le temps. Toujours à puissance égale et à difficulté constante, on obtient de moins en moins de coins…
- Le prix de revente des coins varie énormément. Les crypto-monnaies souffrent encore d’une extrême volatilité, et il n’est pas rare qu’une monnaie perde (ou gagne) une vingtaine de pourcents de sa valeur en un jour.
- La chance – ou la malchance – est enfin à prendre en considération, bien que sur une période assez longue on peut calculer la probabilité de réaliser des gains. Il nous est, par exemple, déjà arrivé de miner pendant une dizaine de jours sur un pool sans résoudre un seul bloc, alors que statistiquement parlant, compte tenu de la puissance globale du pool, nous aurions dû en moyenne trouver un bloc tous les deux à trois jours…
Le problème de la rentabilité
Il ne faut en outre pas oublier dans le calcul de rentabilité le coût de l’électricité, ainsi que le coût du matériel (avec la notion de retour sur investissement).
Prenons par exemple une configuration avec deux Radeon HD 5870. Entre le processeur, la mémoire, les cartes graphiques et les pertes de l’alimentation, une telle configuration en charge peut tout à fait consommer près de 500 watts. Avec un prix au kWh de 0.1372 € (tarif de base chez EDF), notre configuration va donc nous coûter – hors prix du matériel lui même – 1,65 euro par jour en électricité (sans compter l’abonnement et les différentes taxes).
Une telle configuration peut également développer une puissance de calcul de 840 kH/s en scrypt. Avec la difficulté actuelle du LiteCoin (3891), on peut espérer gagner 0.217 LTC en moyenne par jour. Au cours actuel (17.91 euros par LTC), cela représente un revenu journalier de 3,89 euros. Cela semble donc à première vue rentable, mais n’oublions pas que nous avons écarté de notre calcul les frais retenus par le pool pour chaque bloc résolu, les frais de transactions entre le pool et la place d’échange, les frais d’échange LTC/euros, l’abonnement mensuel au fournisseur d’électricité ainsi que l’amortissement du matériel (que l’on pourra toutefois revendre un jour, mais qui aura forcement perdu de la valeur), la difficulté variable (qui tend globalement à monter) et la volatilité des crypto-monnaies !
L’avenir des crypto-monnaies
Bien qu’encore très jeunes, les crypto-monnaies commencent à être adoptées en masse par le grand public. A sa valeur actuelle, le marché du Bitcoin représente quelque 10 milliards de dollars, auxquels il faut ajouter le « poids » des autres crypto-monnaies. Si l’on est encore loin de la capitalisation en bourse de certaines entreprises, les crypto-monnaies ont clairement mis un pied dans l’économie mondiale.
Pourtant, quelques dangers planent au-dessus de la tête des crypto-monnaies : le (relatif) anonymat qu’elles procurent aux utilisateurs rend possible son utilisation en tant que marché noir ou parallèle. L’exemple de Silk Road, un site spécialisé dans la vente de produits illicites fermé en octobre dernier par le FBI, est encore dans toutes les têtes. Les gouvernements et banques centrales semblent de leur côté partagés quant à la position à adopter face au Bitcoin : si certains reconnaissent dans cette nouvelle monnaie une alternative intéressante aux monnaies classiques, d’autres (comme la Chine) commencent à essayer de réguler ce marché sur leur sol.
Une chose est sûre : fiscalement parlant, les états ne devraient pas mettre longtemps à trouver un moyen de taxer les transactions et échanges effectués en Bitcoin, LiteCoin ou autres, probablement en s’intéressant de près aux places d’échange. Pensez donc, l’équivalent de millions de dollars qui changent de main tous les jours, sans que personne ne puisse véritablement mettre le nez dedans ! Les grandes banques pourraient également ne pas voir d’un très bon œil une monnaie qui échappe totalement à leur contrôle.
Toute la difficulté est de savoir si le Bitcoin est déjà parvenu à une taille de réseau (autrement dit une puissance de calcul) critique au-delà de laquelle il ne sera plus possible de l’arrêter.