Bitcoin/Monnaie : Différence entre versions

De WikiOpenTruc
Aller à : navigation, rechercher
m (Noeuds)
m (Questions)
Ligne 165 : Ligne 165 :
  
 
<br>
 
<br>
 +
 +
==Pratique==
 +
 +
* le logiciel officiel est bitcoin core ... le souci est qu'il contraint à télécharger toute la blockchain (100GB). C'est un peu bof.
 +
 +
<br>
 +
 +
  
 
==Questions==
 
==Questions==

Version du 22 novembre 2017 à 09:46

Monnaie

  • objet largement basé sur la confiance que lui accordent ses utilisateurs. Un petit manque de confiance (en % d'utilisateurs et en % de volume) n'est pas grave. Un manque de confiance important et la monnaie devient instable, voire hors-de-contrôle
  • la confiance dans une monnaie se construit grâce à plusieurs ingrédients :
    • l'assise de la monnaie sur sa rareté (relative). (C'est loupé pour les $, €, etc dont les planches à billets tournent à fond)
    • un ratio raisonnable entre les sous-jacents de la monnaie (actifs tangibles nationaux) et le volume total de monnaie imprimée. (Là aussi c'est loupé pour $ etc, dont les quantités imprimées ... ne sont carrément plus publiées. Quand on pense que état vient du mot "statistiques".)
  • une des raisons du critère de rareté est simplement la commodité. La rareté implique (généralement) la valeur. Et il y a besoin d'une faible quantité de matière qui a de la valeur pour échanger contre une matière de moindre valeur. Tant qu'à utiliser une matière d'échange, autant prendre une matière avec le maximum de pouvoir d'achat/échange par gramme. Le porte-monnaie est ainsi allégé. Il est plus facile de se promener avec des pépites d'or qu'avec des kilos de sel ou des planches de bois.


Monnaie papier

  • monnaie fiduciaire : fiducia (latin) = confiance
  • La commodité pousse "naturellement" à passer des monnaies physiques (or, argent) à des bouts de papier (reçus) ... c'est là que les dérapages commencent
  • l'étalon-or est abandonné en 1971, on passe (contraints et forcés) intégralement à du papier contre du papier
  • puis on passe à du papier contre des écritures informatiques en BD
  • puis on passe largement aujourd'hui à des écritures informatiques en BD contre des écritures informatiques en BD
  • étant donné que, même avec les monnaies étatiques, on a fini par atterrir (toujours contraint et forcé) dans le monde informatique ... il n'est pas tout à fait étonnant de voir certains acteurs du monde informatique essayer d'avoir leur mot à dire, voire faire des propositions
  • les reproches de manque de régulation du bitcoin sont aussi comiques que pourris de mauvaise foi. Les banqueroutes étatiques se comptent par milliers ... et on n'en entend jamais parler par les chiens de garde



Bitcoin

  • livre de comptes / livre d'écriture, sous forme de BD, répliqué en beaucoup d'exemplaires, sur beaucoup d'ordinateurs
  • un livre de comptes, de fait, c'est simplement une liste de reçus.
    • par de simples additions et soustractions, cette pile de reçu indique aussi, pour chaque compte mentionné, son solde.
    • le livre de comptes est donc, de fait, pour chaque détenteur de compte(s), son porte-monnaie
    • dans le cas de bitcoin, c'est un immense porte-monnaie, partagé et public
    • il n'y a aucune nécessité de promener ce porte-monnaie avec soi, l'important est de pouvoir accéder à ses comptes, ce qui se fait via une clé (privée). Il n'y a pas de porte-feuilles ou porte-monnaie, à la place, il y a un porte-clé.
  • la BD est en fait une chaîne de blocs
  • les transactions (ou enregistrements) sont ajoutés toutes les 10' dans les (derniers) blocs
  • les enregistrements sont immuables (!)
  • les enregistrements sont horodatés
  • une certaine programmation peut-être associée aux enregistrements (triggers, etc)
  • le logiciel qui s'occupe des bitcoins est open-source. Chacun peut donc bidouiller sa version locale (son instance) comme il veut. Par contre, pour que la participation de l'instance au réseau A soit acceptée par le réseau A, il faut que le protocole d'interaction de l'instance soit bien le protocole du réseau A.
  • un fork de bitcoin correspond à la création d'un nouveau réseau opérationnel et utilisant un nouveau protocole
  • un fork n'a rien d'automatique ou déterministe. Un fork est d'abord une nouvelle proposition technique (d'implémentation, de protocole) faite à la communauté de mineurs ... mais rien ne garantit son acceptation par une majorité viable. Un fork suivi par 2 noeuds, c'est un essai et un échec.


Blockchain

  • le premier bloc a été créé par Satoshi Nakamoto lui-même le 09/01/2009
  • la taille de chaque bloc est 1Mo maximum (il peut y avoir, pour raisons x ou y, des petits blocs)
  • chaque bloc (n+1) contient un hash du bloc n
  • l'intégralité de la blockchain du 9/1/2009 au 9/1/2018 fait ~100GB
    • 9/1/2009 - 9/1/2018 = 9 années = 3285 jours = 78840 heures = 4730400 minutes = 473040 tranches de 10 minutes
    • 473.040 MB = 473 GB
    • 100 GB = 100.000 MB
  • Chaque ordinateur qui possède une copie de la blockchain + le logiciel d'écriture de la blockchain, est appelé un "noeud" du réseau
  • les transactions ne s'écrivent (évidemment) pas instantanément. Elles passent (pour chaque noeud) d'abord dans une liste d'attente, dont la durée de vie est d'environ 10 minutes.
  • chaque bloc est estampillé avec un sceau spécial, ce sceau étant la solution d'un problème mathématique complexe (inversion d'une fonction de hash). C'est la liste d'attente du premier ordinateur/noeud du réseau qui trouve la solution qui devient le bloc "validé". La fabrication du sceau (détermination d'un nonce qui permet la génération d'un hash avec plein de zéros) est appelée "preuve de travail" ("proof of work").
  • la (grosse) problématique est le maintien de copies identiques (consensus) de la blockchain sur les milliers de noeuds répartis sur le globe. Dans un contexte ou la méfiance envers les messages reçus est la norme.


Mineurs & minage

  • Les mineurs sont chargés de la génération des blocs, dont le (difficile) estampillage/scellement via une proof-of-work. Le premier mineur à solutionner une proof-of-work est récompensé par quelques bitcoins. Il faut noter que cela est l'unique mécanisme de création de bitcoins.
  • la quantité totale de bitcoins est limité à 21 millions
  • la quantité limitée n'est pas un souci rédhibitoire, de facto c'est l'unité de base qui s'atomise, ce qui laisse encore pas mal de marge
  • les mineurs ne font pas que miner. Les mineurs s'occupent aussi de la validation des transactions / enregistrements, ie incorporation dans la blockchain. Ils effectuent ce travail en échange de frais.
  • il y a des transactions qui tentent de s'effectuer sans payer de frais ... ces transactions ne sont évidemment pas traitées prioritairement par les mineurs
  • Que font les ordinateurs qui minent ? Ils essaient de résoudre un problème mathématique. Plus précisément, ils essaient de trouver un nombre (le "nonce") qui, ajouté au bloc, puis le bloc hashé, donne un hash commençant par une longue série de zéros". (Les fonctions de hachage ne sont en effet pas inversibles -> https://fr.wikipedia.org/wiki/Fonction_de_hachage)
  • le mineur qui trouve une solution en premier reçoit 12.5 bitcoins en récompense. ... c'est ainsi (et seulement ainsi) que se crée la monnaie.
    • 12.5BC/10 minutes ... il est certain que c'est une planche à billets qui tourne très au ralenti


Noeuds

  • l'ensemble de la gestion du bitcoin est décentralisé et exécuté par des "noeuds".
  • il n'y a pas de noeud central ... mais tous les noeuds ne sont pas non plus rigoureusement équivalents.
  • Il y a plusieurs niveaux de participation possibles pour un noeud :
    • le niveau le plus élevé, et le plus consommateur de temps-machine étant celui de noeud de minage
    • le niveau le plus faible étant celui de noeud d'"observation"
  • a priori, l'essentiel des calculs se font grâce à des tables d'indexation
  • il y a des regroupements "naturels", "pools", typiquement un "full-node" (qui mémorise toute la blockchain) associé à plusieurs autres noeuds qui eux ne stockent pas la blockchain, mais s'occupent plutôt de travailler sur les tables d'indexation. On peut dire que la blockchain est de fait partagée.
  • en particulier, les noeuds doivent avoir en mémoire la table des soldes (avec une entrée par adresse) constamment à jour
  • cette table des soldes est éventuellement initialisée avec un long parcours de la blockchain, mais ensuite, elle est mise à jour par simple récurrence avec le contenu du dernier bloc (toutes les 10' donc)


Paiements en BC

  • les paiements sont signés (grâce à de la cryptographie réputée incassable/infalsifiable)
  • aucune nécessité de trimbaler le porte-monnaie. Il faut par contre avoir les clés d'accès à ses comptes
  • la blockchain est certes entièrement publique ... mais rien n'oblige à utiliser le même compte pour réaliser 2 transactions successives.
    • ouvrir/fermer un compte ne coûte rien, puisque cela revient simplement à générer (automatiquement) une paire de clé d'accès
    • un même individu peut donc s'ouvrir autant de comptes qu'il le souhaite
  • il y a des astuces pour simplifier les calculs, par exemple on peut (ou on doit ?) notifier un paiement en stipulant que le paiement est effectué grâce à un encaissement préalable. Pas besoin alors de calculer de solde , il suffit de vérifier que l'encaissement préalable n'a pas été dépensé


Bitcoin/monnaie classique, comparaison

D'abord, les points communs :

  • dans les 2 cas, ce sont des écritures électroniques. Le bitcoin n'est de ce point de vue pas plus "virtuel" qu'une monnaie classique.
    • en 2016, sur la masse monétaire totale, seule 10% est sous forme de billets/pièces
    • les écritures électroniques du bitcoin étant d'ailleurs répliquées des milliers de fois, ce livre de compte est de ce point de vue bien plus fiable que le livre de compte d'une banque classique.

Finalement, qu'est ce qui permet de se passer ou remplace le point central, ie le tiers de confiance ?

Il y a bel et bien un point central, un point fixe. Mais, ce point est à la fois fixe ... et de facto simultanément répliqué sur des milliers d'ordinateurs, il s'agit du logiciel qui implémente le bitcoin.

C'est bien l'unicité du code/logiciel (au niveau des protocoles d'entrées/sorties générées) au sein du réseau qui le supporte qui fait que cela fonctionne. Si, pour une raison x ou y, beaucoup de logiciels se mettaient à diverger, alors les écritures dans la blockchain seraient compromises et tout le système d'échange via la blockchain serait compromis. Cela signerait probablement la terminaison de la blockchain en question. Avec un double phénomène d'impossibilité donc de ressortir les soldes positifs pour les détenteurs et donc également une valeur boursière du bitcoin qui passerait à quasi 0 (et donc tous les soldes, positifs ou négatifs, passant à la même valeur : 0).

Je vois 2 possibilités pour un tel événement :

  • la bonne vieille évolution technologique classique, qui se passe ici sous forme de forks. Le processus se passant au grand jour et donnant lieu à un vote collectif, cela peut générer de l'inquiétude. Mais il faut garder à l'esprit que toutes/la plupart de ces évolutions :
    • sont annoncées à l'avance (et donc permettent anticipation et une certaine gradualité)
    • veillent à préserver une rétro-compatibilité avec la blockchain historique

On peut faire un parallèle avec les retraits de billets anciens dans le système bancaire classique.

  • un virus malintentionné, bien rédigé, et qui irait simultanément altérer les codes des noeuds du réseau
    • quelles sont les défenses du code bitcoin ?


Pratique

  • le logiciel officiel est bitcoin core ... le souci est qu'il contraint à télécharger toute la blockchain (100GB). C'est un peu bof.



Questions

  • mécanismes de défense du logiciel bitcoin contre les virus ?
  • quelle est la proba d'avoir des clés de chiffrement identiques ? ama, c'est croisé avec de l'horodatage + numéro de compte ... donc si pas nul, 10-15.
  • souci d'oligopole sans doute inévitable, mais les oligopoles émergents seront sans doute toujours plus gros que ceux existants déjà
  • les mineurs les mieux équipés vont valider des blocs plus souvent, ils peuvent être tentés de glisser des transactions frauduleuses dans leur bloc
  • est-ce vraiment raisonnable de devoir travailler sur une chaîne de blocs immuable ? en l'état, la chaîne ne fait que s'allonger, alors même que un % important d'enregistrements correspondent à des soldes nuls, des comptes abandonnés, etc.


Liens