Blockchain & Cryptocurrency Mining
De l'intérêt des cryptomonnaies et de leur minage
Se libérer du joug des banques ?
Les réseaux de cryptomonnaies ne sont ni plus ni moins que des organismes financiers dématérialisés permettant à tout un chacun de disposer de comptes et de réaliser des opérations de paiement et d’encaissement.
Le seul prérequis nécessaire à l’ouverture d’un compte est de disposer d’un équipement informatique (ordinateur/smartphone) connecté à Internet. Les opérations de paiement et d’encaissement n’étant pas supervisées par des humains, les contraintes opérationnelles et les services rendus ne sont pas vraiment comparables avec ceux des banques traditionnelles. Il s’agit de deux mondes distincts qui œuvrent sur le même champ opérationnel : le transfert sécurisé de valeur monétaire d’un compte A à un compte B.
A moyen terme, il n’est pas improbable que certaines infrastructures de cryptomonnaies entrent en concurrence directe avec les banques, privant ces dernières d’un volume non négligeable de transactions financières. En effet, les énormes gains de productivité réalisés par les banques grâce à l’informatique (au moins depuis les années 70) n’ont jamais été répercutés sur la clientèle. Clientèle dont les frais bancaires, tout comme les bénéfices enregistrés par les banques, ne font que croître avec le temps. Une infrastructure de cryptomonnaie n’a pas d’objectif de croissance et ne poursuit aucun but politique. Elle est accessible par tous et pour tous, pour le meilleur et pour le pire.
Créer de la valeur et générer de la cryptomonnaie
Le « minage » est un procédé informatique qui permet aux infrastructures de cryptomonnaies d’alimenter leur grand-livre comptable respectif (blockchain) en nouvelles écritures (ou transactions). En effet, si vos équipements informatiques parviennent à intégrer un nouveau block (groupe d’écritures) dans l’une de ces blockchain, vous serez récompensés par quelques unités de valeur de la monnaie minée.
8 ans après sa création, la valeur unitaire du bitcoin a atteind près de 19 000 USD sur les marchés financiers (fin 2017). On était alors recompensé de 12.5 bitcoin pour le minage d’un block soit l’équivalent potentiel de 237 000 USD. La réponse à la question « est-il rentable de miner une cryptomonnaie ? » est pour l’heure plus liée à la valorisation de ces monnaies sur les marchés financiers qu’à tout autre considération.
Actuellement, les cryptomonnaies n’étant sous le contrôle d’aucune autorité financière ou politique, leur valorisation sur les marchés monétaires n’a pas vraiment de sens. C’est la spéculation financière qui est seule responsable de l’évolution de leur cours. C’est particulièrement flagrant entre Juillet 2017 et Juillet 2018 pour bon nombre de cryptomonnaies qui ont probablement fait et défaits quelques fortunes dans le monde.
Opérer et miner des cryptomonnaies
Les serveurs de cryptomonnaie
Pour être en mesure d’ouvrir un compte et de disposer d’une adresse pour une cryptomonnaie donnée, à l’équivalent d’une adresse IBAN pour un compte bancaire dans un établissement privé, il est nécessaire de déployer une application sur un poste informatique connecté à Internet.
Chaque cryptomonnaie dispose de sa propre application. Il existe des centaines, si ce n’est pas des milliers de cryptomonnaies en cours d’exploitation en 2018. Pour une grande part, les cryptomonnaies sont des projets dérivés de projets majeurs fondés sur de nouveaux paradigmes tels que Bitcoin, Ether, Monero ou Ripple pour n’en citer que quelques uns.
Avant d’être opérationnelle, l’application choisie va télécharger le grand-livre comptable de la monnaie concernée (la blockchain) grâce aux autres membres de ce réseau applicatif. Aucune opération d’exploitation locale ne peut avoir lieu tant que la blockchain locale n’est pas synchronisée avec la blockchain du réseau.
Le grand-livre comptable d’une monnaie ne fait que croître avec le temps, accumulant les écritures jours après jours. Le temps nécessaire à la synchronisation va varier en fonction de la capacité en lecture/écriture sur le disque dur et de la bande-passante disponible sur la liaison internet. Quelques heures ou plusieurs jours peuvent être nécessaires. Fort de l’expérience acquise grâce au bitcoin les nouvelles cryptomonnaies essaient d’offrir des mécanismes permettant d’accélérer la procédure d’import de la blockchain.
Les applications pour miner les cryptomonnaies
Chaque cryptomonnaie est compatible avec un algorithme de minage. Cette procédure de calcul doit offrir un haut niveau de sécurité aux données susceptibles d’être intégrées au grand-livre comptable. Pour cette raison, les problèmes mathématiques que doit résoudre cette procédure de calcul sont difficilement prévisibles et obligent les mineurs à la réaliser un grand nombre de fois afin de parvenir à un résultat offrant le niveau de sécurité attendu.
Chronologiquement c’est l’unité de cacul des ordintateurs (CPU) qui a été utilisé pour miner les premières cryptomonnaies. Puis se sont les unités de calcul des interfaces graphiques (GPU) qui ont permis un gain en productivité de 10 à 100 suivant les algorithmes par rapport aux CPU. Enfin les circuits électroniques conçus pour répondre à un besoin applicatif (ASIC) ou les circuits électroniques programmables (FPGA) offrent encore des performances 10 à 100 fois supérieures aux GPU.
Aggréger le travail des mineurs
Si vous disposez de plusieurs unités de calcul afin d’accroître votre capacité miner une cryptomonnaie, vous aurez besoin d’une application tierce qui va permettre d’agréger le travail réalisé par des unités de calcul distinctes.
Cette application sera chargée de collecter les informations du ou des serveurs de cryptomonnaie et de mettre à disposition des mineurs les informations nécessaires au minage et aux tentatives d’intégration de nouveaux block (groupe de transactions ou d’écritures) à la blockchain.
Besoins opérationnels
Les cryptomonnaies suivantes sont évaluées et minées par nos soins : Bitcoin, Litecoin, Vertcoin et Monero. Vous pouvez consulter le portail web suivant pour accéder au reporting concernant le minage des cryptomonnaies citées : https://blockchain.linuxtribe.fr.
Les logiciels de cryptomonnaies sont gourmands en ressources matérielles : capacité de calcul, mémoire, disque, bande-passante. Chaque composant de la chaîne applicative : « serveur de cryptomonnaie (full node) », « serveur pour mineurs (startum) », « application de minage (miner) » a des spécificités concernant la consommation en ressources matérielles.
L’architecture applicative mise en oeuvre est déterminante. Les limites matérielles peuvent rapidement imposer des changements d’architecture ou des révisions du périmètre fonctionnel attendu initialement. Par ailleurs, les opérations d’exploitation des serveurs de cryptomonnaies peuvent parfois s’avérer laborieuses et nécessiter des interventions assez chronophages. Les logiciels sont en constante évolution pour essayer d’améliorer les choses.
Ressources matérielles
Vous trouverez ci-dessous quelques exports de reporting concernant la consommation en ressources matérielles de serveurs de cryptomonnaie ainsi que du serveur de strate qui permet de fédérer le reporting concernant le minage des cryptomonnaies.
Full nodes
- Hardware :
- Intel(R) Atom(TM) CPU C2338 @ 1.74GHz (3500.14 BogoMIPS)
- 4Go RAM
- 1To SATA
- Software :
- Ubuntu 16.04 LTS
- Docker CE
- Rapports
Stratum & Miners
- Hardware :
- Intel(R) Core(TM) i5-2500K CPU @ 3.30GHz (6798.69 BogoMIPS)
- 16Go RAM
- 1To SATA
- Software :
- Ubuntu 16.04 LTS
- Docker CE
- Rapports :
Maintien en conditions opérationnelles
Les applications utilisées ont montré une grande stabilité dans le temps. Les opérations de maintenance des serveurs sont plus souvent responsables des interruptions de service que les incidents techniques sur les réseaux de cryptomonnaies.
Cependant, il est vivement conseillé d’utiliser des outils informatiques permettant de superviser l’activité applicative des différents composants impliqués dans le minage d’une cryptomonnaie.
Sécurité
La sécurité n’est pas à négliger. Chaque composant applicatif nécessite d’être évalué de ce point de vue. De nombreux mécanismes applicatifs sont disponibles en vue de protéger l’intégrité des données traitées, il est nécessaire de suivre les recommandations d’usage pour chaque cryptomonnaie exploitée.
Technologies Open Source
De nombreux logiciels open source sont disponibles pour le minage et l’exploitation de serveurs de cryptomonnaies. On prendra cependant garde à certains projets dont les auteurs n’hésitent pas à réquisitionner vos propres ressources matérielles, quelques minutes par heure pour leurs propres intérêts (xmrig) ou à prévoir le reversement d’une prime lors de certains encaissements (miningcore). Dans ce cas, une petite intervention dans le code source s’impose pour permettre un fonctionnement applicatif normal et optimal.
Les serveurs de cryptomonnaie évalués :
- Bitcoin : https://github.com/bitcoin/bitcoin
- Litecoin : https://github.com/litecoin-project/litecoin
- Vertcoin : https://github.com/vertcoin-project/vertcoin-core
- Monero : https://github.com/monero-project/monero
Malheureusement, à l’heure ou ces tests ont été réalisés, le seul serveur de stratum open source capable d’opérer plusieurs cryptomonnaies était basé sur une librairie applicative de Microsoft :
- Miningcore : https://github.com/coinfoundry/miningcore
Les logiciels ou matériels testés pour assurer le minage (CPU, GPU, ASIC) :
- ccminer : https://github.com/tpruvot/ccminer
- bfgminer : https://github.com/luke-jr/bfgminer
- xmrig : https://github.com/xmrig
- futurebit moonlander 2 : https://www.bitshopper.de/shop/scrypt-miner/usb-miner-scrypt/moonlander2/
Pour la supervision de l’ensemble des applications :
- zabbix : https://www.zabbix.com/
- templates et scripts à utiliser pour docker : https://github.com/ffrouin/zabbix/templates/cryptocurrencies