Hashcash, comment Adam Back a conçu le bloc moteur de Bitcoin ?

in #adam6 years ago

alt
alt
alt
alt
alt

Nous sommes le 28 mars 1997, lorsque les quelque 2 000 abonnés de la liste de diffusion Cypherpunks reçoivent un courriel dans leur boîte de réception. L’expéditeur est un postdoc britannique de 26 ans à l’Université d’Exeter, un jeune cryptographe et un contributeur prolifique à cette liste de diffusion nommé Dr Adam Back. L’email comprend une description et une mise en œuvre rapide de ce qu’il décrit comme un « système d’affranchissement basé sur une collision partielle de hachage » — une sorte de tampon équivalent pour les courriels, basé sur une astucieuse merveille cryptographique.

« L’idée d’utiliser des hachages partiels est qu’ils peuvent être rendus arbitrairement chers à calculer », a écrit Back, expliquant l’avantage de son système, « et pourtant peuvent être vérifiés instantanément. »

Cette proposition du cryptographe qui allait devenir le PDG actuel de Blockstream n’a pas immédiatement attiré beaucoup d’attention sur la liste des courriels ; juste un lecteur a répondu, avec une enquête technique sur l’algorithme de hachage de choix. Pourtant, la technologie sous-jacente à Hashcash — preuve de travail — façonnerait la recherche en argent numérique pour plus d’une décennie à venir.

« Tarification via le traitement ou la lutte contre le courrier indésirable »

Back’s Hashcash n’était pas la première solution du genre.

Au début des années 1990, la promesse d’Internet et les avantages d’un système de courrier électronique en particulier étaient devenus évidents pour les techniciens qui y prêtaient attention. Pourtant, les pionniers de l’Internet de l’époque ont réalisé que le courrier électronique, comme on appelait ce système de courrier électronique, présentait ses propres défis.

« En particulier, le coût facile et faible de l’envoi de courrier électronique ainsi que la simplicité d’envoi du même message à de nombreuses parties, tout invite à abuser », expliquent les chercheurs Cynthia Dwork et Dr Moni Naor. dans papier portant le nom « Tarification via le traitement ou la lutte contre le courrier indésirable ».

En effet, à mesure que le courrier électronique gagnait en popularité, le spam l’était aussi.

Une solution s’imposait, les premiers utilisateurs d’Internet étaient d’accord — celle que le journal de Dwork et Naor proposait s’imposa.

Le duo a proposé un système où les expéditeurs devraient joindre des données à n’importe quel email qu’ils envoient. Ces données seraient la solution à un problème mathématique, unique à l’email en question. Plus précisément, Dwork et Naor ont proposé trois puzzles pouvant être utilisés à cette fin, tous basés sur des systèmes de cryptographie et de signature à clé publique.

L’ajout d’une solution à un courrier électronique ne serait pas trop difficile, nécessitant idéalement seulement quelques secondes de puissance de traitement d’un ordinateur ordinaire, alors que sa validité pourrait facilement être vérifiée par le destinataire. Mais, et c’est l’astuce, même une quantité insignifiante de puissance de traitement par email s’additionne pour les annonceurs, les escrocs et les pirates essayant d’envoyer des milliers, voire des millions de messages à la fois. Le spamming, de même que la théorie, pourrait être coûteux et par conséquent, non rentable.

« L’idée principale est de demander à un utilisateur de calculer une fonction modérément difficile, mais pas intraitable, afin d’accéder à la ressource, empêchant ainsi une utilisation frivole », ont expliqué Dwork et Naor.

Tandis que Dwork et Naor ne proposaient pas le terme, le type de solution qu’ils introduisaient serait connu sous le nom de système de « preuve de travail ». Les utilisateurs devraient littéralement montrer que leur ordinateur a effectué un travail, pour prouver qu’ils ont dépensé des ressources du monde réel.

Une solution astucieuse, mais peut-être trop en avance sur son temps. La proposition n’a jamais été très loin au-delà d’un cercle relativement restreint d’informaticiens.

Adam Back et les Cypherpunks

À peu près à la même époque où Dwork et Naor publiaient leur livre blanc, un groupe d’activistes de la protection de la vie privée à tendance libertaire a également reconnu l’énorme potentiel d’Internet. La foule idéologique a commencé à s’organiser grâce à une liste de diffusion centrée sur les technologies améliorant la vie privée. Comme Dwork et Naor, ces « cypherpunks » — comme on les appelait — utilisaient la science relativement nouvelle de la cryptographie pour atteindre leurs objectifs.

Au fil des ans, Adam Back — qui a obtenu son doctorat en 1996 — s’est établi comme l’un des participants les plus actifs sur cette liste, envoyant parfois des douzaines de courriels par mois. Comme la plupart des Cypherpunks, le cryptographe était passionné par les sujets comme la vie privée, la liberté d’expression et le libertarianisme. Il engagé des discussions techniques se rapportant à l’emailing anonyme, aux systèmes de fichiers cryptés, à la trésorerie électronique comme présenté par le Dr David Chaum, et plus encore.

Mais Back était peut-être mieux connu pour imprimer et vendre des vêtements de « munitions » : des t-shirts avec un protocole de cryptage, destinés à souligner la décision absurde du gouvernement américain de réglementer le PGP de Phil Zimmermann (Pretty Good Confidentiality) en tant que « munitions » au sens de la définition de la réglementation américaine en matière d’exportation. Le port du t-shirt de Back en traversant la frontière pour quitter les États-Unis a techniquement fait de vous un « exportateur de munitions ».

tshirt de munitions

Comme beaucoup, Back n’était pas au courant de la proposition de Dwork et de Naor en matière de preuve de travail. Mais au milieu des années 1990, il pensait à des idées similaires pour contrer le spam, parfois « à voix haute » sur la liste de diffusion de Cypherpunks.

La liste de diffusion Cypherpunks a augmenté de manière significative en une demi-décennie. Ce qui a commencé comme une plate-forme de discussion en ligne pour un groupe de personnes qui s’est initialement rassemblé à l’une de leurs start-ups dans la Bay Area est devenu un petit phénomène Internet comptant des milliers d’abonnés.

C’était à cette époque — 1997, l’année de la popularité maximale de la liste — que Back a soumis sa proposition de Hashcash.

Hashcash

Hashcah est similaire à la proposition antispam de Dwork et Naor et a le même but, même si Back a proposé quelques cas d’utilisation supplémentaires comme la lutte contre les abus de remailer anonymes. Mais comme son nom l’indique, Hashcash n’était pas basé sur des puzzles cryptographiques comme Dwork et Naor ; c’était basé sur le hachage.

Le hachage est une astuce cryptographique qui prend n’importe quelle donnée — qu’il s’agisse d’une seule lettre ou d’un livre entier — et la transforme en un nombre apparemment aléatoire de longueur prédéterminée.

Par exemple, un hachage SHA-256 de la phrase "Ceci est une phrase qui » produit ce nombre hexadécimal :

hash1

Qui peut être « traduit » en nombre décimal régulier :

hash2

Ou binaire :

binaire de hachage

Pendant ce temps, un hachage SHA-256 de la phrase « Ceci, est une phrase qui » produit ce nombre hexadécimal :

hash3

Comme vous pouvez le voir, le simple fait d’insérer une virgule dans la phrase change complètement le hachage. Et, surtout, ce que le hachage de l’une ou l’autre phrase serait était complètement imprévisible ; même après que la première phrase a été hachée, il n’y avait aucun moyen de calculer le deuxième hachage de celui-ci. La seule façon de le savoir est de hacher les deux phrases.

Hashcash applique cette astuce mathématique d’une manière intelligente.

Avec Hashcash, les métadonnées d’un email (l’adresse « from », l’adresse « to », l’heure, etc.) sont formalisées en protocole. De plus, l’expéditeur d’un courriel doit ajouter un nombre aléatoire à cette métadonnée : un « nonce ». Toutes ces métadonnées, y compris le nonce, sont alors hachées, de sorte que le hachage résultant ressemble un peu à l’un des nombres aléatoires ci-dessus.

Voici l’astuce : chaque hachage n’est pas considéré comme « valide ». Au lieu de cela, la version binaire du hachage doit commencer avec un nombre prédéterminé de zéros. Par exemple : 20 zéros. L’expéditeur peut générer un hachage qui commence avec 20 zéros en incluant un nonce qui s’ajoute au hasard correctement... mais l’expéditeur ne peut pas savoir à l’avance à quoi ressemblera ce nonce.

Pour générer un hachage valide, l’expéditeur n’a donc qu’une seule option : l’essai et l’erreur (« force brute »). Il doit continuer à essayer différents nonces jusqu’à ce qu’il trouve une combinaison valide ; dans le cas contraire, son adresse email sera rejetée par le client de messagerie du destinataire. Comme la solution de Dwork et Naor, cela nécessite des ressources de calcul : c’est un système de preuve de travail.

« Vous avez un programme qui l’explique avec un avis indiquant l’affranchissement requis et où obtenir un logiciel », a expliqué Back sur la liste de diffusion Cypherpunks. « Cela mettrait les spammeurs hors de service du jour au lendemain, soit 1 000 000 x 20 = 100 années MIP, ce qui va être plus productif que ce qu’ils ont. »

Notamment, le système de preuve de travail de Back est plus aléatoire que celui de Dwork et Naor. La solution du duo nécessitait de résoudre un casse-tête, ce qui signifiait qu’un ordinateur plus rapide le résoudrait plus rapidement qu’un ordinateur lent à chaque fois. Mais statistiquement, Hashcash permet toujours à l’ordinateur le plus lent de trouver une solution correcte plus rapidement.

(Par analogie, si une personne court plus vite qu’une autre personne, la première gagnera un sprint à chaque fois, mais si une personne achète plus de billets de loterie qu’une autre, cette dernière gagnera statistiquement une partie du temps — mais pas souvent.)

Pénurie numérique

Comme la proposition de Dwork et Naor, Hashcash — que Back développerait dans un livre blanc en 2002 — n’a jamais décollé de façon très importante. Il a été implémenté dans la plate-forme open-source SpamAssassin d’Apache, et Microsoft a donné une idée de la preuve de travail au format incompatible « courrier électronique ». Back, ainsi que d’autres universitaires, ont proposé diverses solutions alternatives au cours des années, mais la plupart d’entre elles n’ont jamais eu beaucoup de succès. Pour la plupart des applications potentielles, l’absence d’effet de réseau était probablement trop importante pour être surmontée.

Néanmoins, Dwork et Naor ainsi que Back (indépendamment) ont introduit quelque chose de nouveau. Lorsque l’une des caractéristiques les plus puissantes des produits numériques est la facilité avec laquelle ils peuvent être copiés, la preuve de travail était essentiellement le premier concept apparenté à la rareté virtuelle qui ne reposait pas sur un parti central : il liait les données numériques à la réalité.

Et la rareté, bien sûr, est une condition préalable à l’argent. En effet, Back en particulier a explicitement placé Hashcash dans la catégorie de l’argent à travers ses contributions à la liste de diffusion Cypherpunks et son livre blanc, reflétant ainsi le seul numéraire numérique que le monde avait connu à ce moment : Ecash by Chaum de DigiCash.

« Hashcash peut fournir une mesure d’écart jusqu’à ce que digicash devienne plus largement utilisé », a soutenu Back sur la liste de diffusion. « Hashcash est gratuit, tout ce que vous avez à faire est de graver quelques cycles sur votre PC. C’est conforme à la culture du libre-échange, où les personnes financièrement défavorisées peuvent se débrouiller avec des millionnaires, des fonctionnaires à la retraite, etc. à des conditions égales. Hashcash peut nous fournir une méthode de repli pour contrôler les spams si digicash se détraque (devient hors-la-loi ou veut sauvegarder les identités des utilisateurs). »

Malgré son nom, cependant, Hashcash ne pouvait pas fonctionner comme une véritable monnaie en soi (ni la proposition de Dwork et Naor). Peut-être plus important encore, toute preuve de travail « reçue » est inutile pour le destinataire. Contrairement à l’argent, il ne pouvait pas être dépensé ailleurs. De plus, à mesure que les ordinateurs augmentaient en vitesse chaque année, ils pouvaient produire de plus en plus de preuves au fil du temps à moindre coût : Hashcash aurait été soumis à une (hyper) inflation.

Cette preuve de travail offrait, plus que toute autre chose, une nouvelle base pour la recherche dans le domaine de l’argent numérique. Plusieurs des propositions d’argent numérique les plus remarquables qui ont suivi étaient basées sur Hashcash, généralement en permettant la réutilisation des preuves de travail. (Avec la preuve de travail réutilisable de Hal Finney — RPOW — comme exemple le plus évident.)

Bitcoin

En fin de compte, bien sûr, la preuve du travail est devenue une pierre angulaire pour Bitcoin, avec Hashcash comme l’une des rares citations dans le livre blanc Bitcoin.

Pourtant, dans Bitcoin, Hashcash (ou, plutôt, une version de celui-ci) est utilisé très différemment de ce que beaucoup auraient deviné à l’avance. À la différence de Hashcash et d’autres propositions basées sur Hashcash, la rareté qu’elle fournit n’est pas utilisée comme de l’argent. Au lieu de cela, Hashcash permet une course. Quel que soit le mineur qui soit le premier à produire une preuve valide de travail, un hachage d’un bloc Bitcoin décide quelles transactions vont passer. Au moins en théorie, n’importe qui peut rivaliser de la même manière : comme une loterie, même les petits mineurs seraient statistiquement les premiers à produire une preuve valide de travail de temps en temps.

En outre, une fois qu’un nouveau bloc est extrait, confirmant un ensemble de transactions, il est peu probable que ces transactions soient annulées. Un attaquant devrait prouver au moins autant de travail que nécessaire pour trouver le bloc, en additionnant la puissance nécessaire pour chaque bloc supplémentaire trouvé, ce qui dans des circonstances normales devient exponentiellement plus difficile au fil du temps. Les ressources du monde réel qui doivent être dépensées pour tricher sont généralement plus importantes que les profits potentiels obtenus en trichant, ce qui donne aux destinataires des transactions Bitcoin l’assurance que ces transactions sont immuables.

C’est ainsi que, dans Bitcoin, Hashcash a fait d’une pierre deux coups. Il a résolu le problème de la double dépense de manière décentralisée, tout en fournissant une astuce pour mettre en circulation de nouvelles pièces sans émetteur centralisé.

Hashcash n’a pas réalisé le premier système de trésorerie électronique — Ecash prend cette couronne, et la preuve de travail ne pourrait pas vraiment fonctionner comme de l’argent. Mais un système de trésorerie électronique décentralisé aurait bien pu être impossible sans cela.

Pour en savoir plus sur l’histoire de la preuve de travail, voir aussi hashcash.org et, en particulier, hashcash.org/papers/.alt


Pour monter votre RIG de minage par GPU, vous pouvez suivre nos tutoriels et me poser vos questions par mail à l’adresse suivante : mining@crypto-analyse.org. Je réponds à tout le monde aussi précisément que possible, il faut juste parfois être patient, car je traite les messages par ordre d’arrivée.

Pour être tenu informé des news et autres sujets concernant le mining, vous pouvez nous rejoindre sur Telegram :