Le Bitcoin et la Blockchain

24 juin 2016

La vidéo du jour décrypte les mystères du bitcoin, et vous explique vraiment comment il marche, et ce qu’est cette mystérieuse blockchain.

Pour préparer cette vidéo, j’ai dû pas mal me documenter. J’ai trouvé beaucoup d’endroits où les grands principes du bitcoin sont expliqués, mais assez peu d’infos détaillées sur ce qu’il se passe vraiment « sous le capot ». A force de lecture, je pense avoir compris l’essentiel, et j’espère donc avoir donné à tout le monde les éléments nécessaires pour comprendre comment un système comme le bitcoin pouvait tenir debout, et en quoi le concept de la blockchain assure la décentralisation du système.

Les conditions sur l’identifiant

Parmi les points que je n’ai pas explicités (même si je l’ai suggéré), il y a les « conditions » que l’on impose sur le résultat du hashage pour qu’il soit considéré comme valide pour proposer son bloc. Je rappelle : un noeud du réseau possède une liste de transactions « en attente », qui ne sont pas encore validées, c’est-à-dire qu’elles n’apparaissent pour l’instant dans aucun bloc. Pour faire de cette liste LE nouveau bloc, le noeud doit lui trouver un identifiant qui est obtenu en appliquant une fonction de hashage sur un ensemble contenant l’identifiant du bloc précédent, la liste des transactions (chiffrées) et un nonce.

(Petite précision au passage, il existe plein de possibilités différentes pour la fonction de hashage, le protocole Bitcoin utilise SHA256, que l’on peut tester en ligne ici).

Le résultat du hashage est une longue chaîne de caractères, et pour qu’un identifiant soit considéré comme valide, on impose qu’il commence par un certain nombre de zéros. Et pour avoir la chance que le résultat du hashage commence par une suite de zéro, il faut essayer plein de nonces différents. C’est ça le problème compliqué à résoudre…en fait il n’est pas « compliqué », c’est juste un truc de gros bourrin.

Plus la taille et la puissance du réseau bitcoin augmentent, plus on augmente le « nombre de zéros requis » par lequel doit commencer le résultat du hashage. C’est comme cela qu’on ajuste la difficulté du problème pour rester sur une moyenne de « 1 bloc nouveau toutes les 10 minutes ».

Les frais de transaction

Un autre détail que j’ai passé sous silence, c’est celui des frais de transaction. Quand on fait un paiement en bitcoin, outre le destinataire de la transaction, on peut décider de payer une petite somme au noeud qui arrivera à valider le bloc contenant la transaction. L’intérêt c’est qu’en faisant ça, on offre une incitation aux noeuds à inclure notre transaction dans le prochain bloc. Aujourd’hui ça n’a pas grande importance, car les noeuds qui valident un bloc reçoivent une récompense en bitcoin « nouvellement créés ». Mais cette récompense va en décroissant (25 BTC aujourd’hui, mais elle sera bientôt divisée par 2) et va tendre vers 0. A terme, ce sont les frais de transaction qui rémunèreront les noeuds « mineurs ». Le fait d’inclure des frais de transaction est quelque chose de libre, mais à terme les mineurs consacreront leurs efforts à faire valider les transactions qui leur donnent un peu de récompense en frais de transactions. Il y aura donc une incitation à inclure un peu de frais, sous peine de ne jamais se faire valider sa transaction.

Donc le bitcoin ne sera pas totalement gratuit, mais il y a fort à parier qu’à cause de la concurrence entre les mineurs, les frais de transaction soient très réduits, en tout cas bien inférieurs à ce qu’on trouve aujourd’hui par exemple avec les cartes de crédit, les virements ou Paypal.

Qui est le créateur du Bitcoin ?

Enfin pour les courageux qui m’ont lu jusque là, je termine avec une anecdote intéressante. On ne sait pas qui est le créateur du bitcoin. Officiellement, il s’agit d’un certain Satoshi Nakamoto, qui le premier a publié un article en 2009 décrivant le protocole, ainsi que le code. Sauf que cet individu n’existe pas ! Personne ne sait qui se cache derrière la création du bitcoin, et cette question n’est pas neutre puisque d’après la légende, Nakamoto (ou celui qui se cache derrière ce pseudo) possèderait actuellement plus d’un million de bitcoins !

Il existe plusieurs hypothèses : ce pourrait être en réalité un groupe de personnes plutôt qu’un individu unique. En effet beaucoup de gens trouvent que le code source est trop beau et trop parfait pour avoir été écrit par une seule personne. Ce pourrait être également un certain Craig Steven Wright, dont on a parlé récemment et qui a renoncé à prouver qu’il est Nakamoto. Peu de détails filtrent sur Satoshi Nakamoto, mais il communique très sporadiquement sur les forums. Certains ont noté que son anglais était impeccable (donc il est probablement anglophone), et ont même analysé la distribution des heures de post de ses messages pour essayer d’en déduire son fuseau horaire !

Petit détail amusant sur Satoshi Nakamoto et la naissance du bitcoin : quand on propose un bloc, on a la possibilité d’inclure un court message. Le tout premier bloc, qui a donc été « miné » par Nakamoto contient l’énigmatique message suivant: « Chancellor on brink of second bailout for banks ». Ce message a un rôle : c’est un titre du Times datant du 3 janvier 2009, sachant que le premier bloc a été miné le 5 janvier. L’idée était de prouver que le premier bloc, qui est à la base de la blockchain, ne pouvait pas avoir été miné avant le 3 janvier 2009. Pourquoi donc ? Pour exclure la possibilité d’une arnaque sophistiquée dans laquelle Nakamoto aurait pu pré-calculer plein de blocs, laisser la blockchain se développer, puis la pirater en utilisant tous ses blocs précalculés. Mais grâce à son message, Satoshi prouve au monde que le premier bloc n’a pas pu être calculé avant le 3 janvier 2009, et que donc il n’a pas pu préparer ce genre d’arnaque. Malin !


Le deep learning

8 avril 2016

Vous entendez parler du deep learning, mais vous n’en avez pas encore compris la profondeur ? Cette vidéo est faite pour vous !

Fidèle à mon habitude, voici la liste des choses essentielles, mais pourtant éliminées par manque de place et pour rester accessible au plus grand nombre. Lire la suite »


Jeu de Go, intelligence artificielle et le 19e coup

13 mars 2016

J’ai pondu une petite vidéo de réaction à chaud sur la victoire du programme informatique AlphaGo sur le champion de jeu de go Lee Sedol. La vidéo est sortie à 2-0 pour AlphaGo. A l’heure où j’écris ces lignes, on en est à 3-1 et il reste une manche à jouer. Mais AlphaGo a donc gagné la confrontation.

Lire la suite »


La fourmi de Langton [Vidéo]

12 décembre 2015

Le sujet de la dernière vidéo ? La simplicité et la complexité, l’ordre et le chaos, l’émergence !

Allez, et pour ceux qui se demandent ce qu’il se passe en dimension supérieure : la mouche de Langton !

 


[Vidéo] Les codes secrets (et un peu de MCMC)

18 mai 2015

Ma vidéo du week-end traite des codes secrets et de la cryptographie RSA. Si j’en crois les chiffres, ça passionne plus les foules que la biologie cellulaire d’il y a deux semaines !

Un sujet connexe que j’ai hésité à aborder dans la vidéo concerne les techniques de décryptage par Markov Chain Monte Carlo (MCMC pour les intimes) que j’ai un peu découvertes en lisant un excellent papier intitulé The Markov Chain Monte Carlo revolution (P. Diaconis, Bulletin of the American Mathematical Society 46.2 (2009): 179-205.). Les MCMC sont des algorithmes assez génériques aujourd’hui utilisés un peu partout de la physique statistique jusqu’aux problèmes de génétique des populations ou de linguistique (par exemple mon billet sur l’origine des langues indo-européennes) Lire la suite »


Le test de Turing-Parker : un ordinateur peut-il improviser comme Charlie Parker ?

30 juin 2014

charlie parker miles davisIl y a quelques semaines, il a beaucoup été question du fameux « test de Turing » de l’intelligence artificielle, où un algorithme essaye de tromper un humain au cours d’une conversation, en se faisant passer pour un autre humain.

Aujourd’hui je voudrais vous parler d’un autre domaine où les ordinateurs essayent de surpasser les humains : celui de l’improvisation musicale.

Il y a pas mal d’années – à l’époque où la musique occupait plus mes loisirs que la science – je jouais (entre autres) avec un excellent pianiste/informaticien qui m’avait parlé d’un algorithme capable d’imiter les improvisations de Charlie Parker.

Aujourd’hui j’ai voulu creuser cette question [Benjamin, si tu me lis, merci pour l’inspiration !] Lire la suite »


Le théorème d’incomplétude de Gödel

14 janvier 2013

godelC’est en cours de philo que j’en ai entendu parler pour la première fois ! Notre prof nous faisait un cours sur la logique et ses fondements, et c’est alors qu’elle le mentionna : le fameux théorème de Gödel, celui qui prouve que quoi qu’on fasse, il existe des énoncés mathématiques vrais, mais indémontrables. Les mathématiques resteront à tout jamais un édifice imparfait !

J’en fus évidemment tout retourné et fasciné : comment était-il possible qu’un truc pareil existe ? Comment prouver ce résultat pouvait même être du domaine de la science ? Lire la suite »


Suivre

Recevez les nouvelles publications par mail.

Rejoignez 17 954 autres abonnés