IOTA : pour en finir avec la blockchain !

« A vous de travailler ! »

La première fois que j’ai découvert le projet Iota, j’ai immédiatement pensé – nous sommes peu de chose – à la sympathique caissière d’une des boucheries de quartier à laquelle je me rends parfois pour faire mes courses (oui, j’ai la chance d’habiter un quartier où il y a encore quelques commerces dit de « proximité »)… Elle a en effet l’habitude de recevoir ses clients qui souhaitent payer par carte bancaire, en leur présentant un terminal de paiement électronique et de les apostropher ainsi avec un air malicieux  : « A vous de travailler ! » – feignant de croire que composer son code secret à quatre chiffres est un exercice qui mérite toute notre attention…

Derrière sa boutade qui la fait rire à chaque fois, sait-elle seulement qu’il y a là ainsi résumé les derniers développements les plus ingénieux concernant les systèmes de paiement modernes ? Développements qui pourraient jouer un rôle considérable dans le fameux internet des objets encore en gestation, les transferts d’ordre et les possibilités de micro-paiements…

Capture-d’écran-2014-10-11-à-19.27.37

 

Des développeurs, des mineurs, des utilisateurs, une blockchain

Reprenons Bitcoin et tous ses successeurs, Ethereum compris. Une crypto-monnaie, c’est en général : des développeurs, des mineurs et une blockchain. Le tout s’appuie sur une caution scientifique qui peut prendre la forme d’une simple prépublication, ou d’une fondation. (Ouvrons une parenthèse. Ce qui s’est passé le 2 août à l’Université de Stanford est à ce titre significatif. Le génial et modeste Dan Boneh – je signale l’ouverture de son cours en ligne élémentaire de cryptographie I le 5 septembre prochain sur Coursera – s’est adressé à un public averti de développeurs de Bitcoin Core et de mineurs dont certains venaient de très loin, en brossant plusieurs défis futurs à relever. Le texte de son intervention est disponible à cette adresse. A lire pour tous les matheux « bitcoiners »…)

Toutes les cryptomonnaies partagent un même modèle : une distinction claire et nette entre les utilisateurs qui ne sont là que pour donner des ordres et passer de nouvelles transactions et les mineurs qui regroupent toutes ces transactions, vérifient qu’il n’y a pas de fraude, les enregistrent dans des blocs et se portent garant de la sécurité du réseau. En théorie, tout le monde peut être mineur. Mais en pratique, le minage est l’affaire de véritables entreprises essentiellement basées dans des zones géographiques où le coût de l’électricité est (quasiment) nul.

Un mot tout de même ici sur les cryptomonnaies avec preuve d’enjeu (telle est la traduction douteuse ? retenue par Wikipedia pour « Proof of Stake »). Dans ce cas, le minage est un peu particulier car il est complètement virtuel et ne nécessite pas de matériel informatique performant pour mener des calculs. Voir la page 231 du livre de Princeton sur le Bitcoin dans cette édition.  La distinction entre utilisateurs réels et mineurs qui sécurisent le réseau est donc moins forte que dans le cas de cryptomonnaies avec preuves de travail car participer à la « loterie » du nouveau bloc est accessible à tous ; tout le monde peut participer sans effort particulier… Il n’en reste pas moins qu’on n’a pas toujours forcément envie de participer à la grande loterie du minage – surtout si on n’est pas très riche car alors on a très peu de chance de gagner… Le modèle reste le même : une blockchain et des mineurs.

Vu sous cet angle, la différence avec le monde traditionnel de la finance n’est pas flagrante puisque dans ce monde qui est le nôtre, la sécurité des transactions est en général apportée par des banques qui se basent sur des réglementations internationales. Et pas plus le client de sa boucherie de quartier qui paye avec sa carte bancaire que le spéculateur qui achète ou vend ses bitcoins sur une plateforme d’échange, nul n’a l’impression, avec son opération, de participer à la sécurité du réseau qu’il utilise. Il a au contraire le vague sentiment de créer un problème qui sera géré par des personnes compétentes (on est en droit de l’espérer !).

Pour en finir avec la blockchain !

Et puis voilà IOTA qui vient tout changer… Au départ, il y a une start-up en 2014 qui cherche à développer de nouveaux types de microprocesseurs afin de donner vie à un certain internet des objets (on reconnaît dans le début d’IOTA, l’acronyme « IOT » pour « Internet of Things »). Les développeurs comprennent vite qu’il manque une technologie faisant le lien entre tous les objets connectés. On voudrait pouvoir les relier autour d’une blockchain d’autant plus que David Sønstebø et Sergey Ivancheglo qui sont à la tête du projet sont de grands connaisseurs des blockchains et des cryptomonnaies. Mais aucune ne peut convenir en pratique. En effet, aucune n’assure la possibilité de micro-transactions sans frais de transaction. De plus, toutes les blockchains connues possèdent des problèmes d’échelle qui peuvent se révéler trop contraignants.

Dans le même temps, sur le forum Nxt que fréquentait régulièrement Serguey à ses débuts sous le pseudonyme « Come-from-Beyond » (certains imaginent même pour cela qu’il est l’énigmatique créateur de cette cryptomonnaie apparue fin 2013), des internautes se mettent à réfléchir à une autre façon d’organiser les transactions que par blocs. Et si, au lieu de regrouper les transactions par paquet, on les laissait libres individuellement tout en les reliant astucieusement les unes aux autres ? Après tout, dès 2013, avec le protocole GHOST, Aviv Zohar et Yonatan Sompolinsky avaient bien ouvert la voie en invitant à prendre en compte toute la structure d’arbre des transactions afin de renforcer le protocole des cryptomonnaies existantes (Vitalik Buterin reprendra du reste cette proposition dans Ethereum).

Mais comment peut-on relier des transactions entre elles s’il n’y a pas de blocs ni de mineurs ?  On pourrait obliger chaque nouvelle transaction X, pour pouvoir exister, à approuver des transactions passées. Il faudrait pour cela qu’au moment d’enregistrer X sur le réseau, on soit obligé de sélectionner des transactions déjà existantes. Dans la rédaction de X, il faudrait donc contraindre l’utilisateur à choisir des transactions passées, vérifier qu’il n’y a pas d’incompatibilité entre elles et l’obliger à résoudre un problème du type preuve de travail – dont on peut espérer qu’il serve à sécuriser le réseau. Il n’y aurait plus de bloc mais toute transaction constituerait en quelque sorte un mini-bloc.

Telle était l’idée qui commençait à émerger sur le forum de Nxt et dans les les premiers essais réalisés par David et Serguey. En passant une transaction, l’utilisateur n’agirait donc plus seulement dans son propre intérêt mais aussi dans l’intérêt de tous. Une simple transaction servirait à sécuriser l’ensemble du réseau… Il n’y aurait plus de registre commun consultable par tous et qui augmente d’une page toutes les dix minutes en moyenne comme pour le Bitcoin. Il n’y aurait tout simplement plus de blockchain ! De quoi réjouir tous ceux  qui n’en peuvent plus de voir ce mot galvaudé et repris par des gens servant des intérêts tout autre de ce pourquoi il a été crée à l’origine… Il reste bien sûr à imaginer concrètement le protocole et les règles pour éviter les tentatives de doubles dépenses mais d’immenses possibilités nouvelles semblent s’offrir à nous… Au lieu d’une suite linéaire de blocs, on serait ainsi conduit à voir l’ensemble des transactions comme un graphe orienté acyclique. Nous sommes en 2015, le projet IOTA est en train de se former.

Markov est dans la place…

Et puis voici maintenant Sergei Popov qui apporte son expertise mathématiques. Sergei est un grand mathématicien, professeur à l’université Unicamp au Brésil et membre de la communauté Nxt. Grâce à lui, IOTA va gagner une caution scientifique. Il va formaliser les idées de David et Serguey et écrire le papier fondateur d’IOTA.

L’idée ingénieuse qu’il a eue est d’avoir en quelque sorte « probabilisé » le graphe acyclique des transactions cité plus haut, c’est-à-dire de l’avoir transformé en une véritable chaîne de Markov.

Concrètement ici, ce qui permet d’éviter les tentatives d’escroquerie à la double dépense, c’est la possibilité d’explorer cette chaîne de transactions en tant que chaîne de Markov comme le ferait un randonneur par une méthode du type Monte-Carlo. Les résultats de ces randonnées aléatoires permettent de disqualifier les transactions frauduleuses.

Essayons d’expliquer brièvement le fonctionnement d’IOTA. Ce qui permet d’apporter de la confiance au réseau, ce n’est plus le nombre de blocs qui recouvre une transaction donnée (dans le Bitcoin, si une transaction est enfouie sous six ou sept blocs, elle est considérée comme absolument sure). Ici, chaque transaction possède un poids cumulé qui évolue au cours du temps. Il est défini comme le nombre de transactions ultérieures qui l’ont approuvées directement ou indirectement. Plus exactement, c’est la somme de la puissance de travail utilisée par toutes ces transactions.

Une transaction légale va naturellement devenir « lourde » du fait de toutes les transactions qui vont venir après et progressivement pointer vers elle. Et de même que dans le Bitcoin, un vendeur attend qu’une transaction donnée soit recouverte par six ou sept blocs avant de pouvoir donner son bien de consommation au client, de même ici, le vendeur va attendre que la transaction du client ait atteint un certain poids cumulé critique.

Au moment de sa rédaction, une nouvelle transaction va choisir grâce à l’algorithme de Popov deux transactions en attente de validation. Ces deux transactions sont le résultat de deux randonnées aléatoires par une méthode de Monte-Carlo en partant d’un endroit du graphe extrêmement sur (pas besoin de remonter à l’origine). Pour éviter d’approuver des tentatives de fraude, il faut donc trouver une bonne mesure de probabilité qui permet de rester sur la partie du graphe qui ne contient que des transactions honnêtes.

Quelle probabilité choisir ?

Moralement, une transaction honnête a un poids nettement plus important qu’une transaction frauduleuse (il n’y a pas véritablement de transaction illégale mais j’entends par transaction frauduleuse une transaction qui reflète une tentative de double dépense). En effet, dans un fonctionnement normal, une transaction honnête est reprise par l’ensemble du réseau tandis qu’une tentative de double dépense n’est choisie que par un attaquant. On considère ici qu’il n’est pas possible de détenir seul plus de la moitié de la puissance de calcul du réseau.

La mesure de probabilité doit donc être choisie de sorte qu’il soit quasiment improbable de passer d’un site x du graphe possédant un poids cumulé H(x) important à un autre site y qui lui soit relié mais possédant un poids H(y) très faible. Au passage, notons qu’une transaction qui pointe vers y pointe a fortiori vers x, de sorte que H(x) > H(y). Il est alors naturel de prendre pour mesure de probabilité une mesure telle que la probabilité de passer de x à y soit proportionnelle à exp(-(H(x)-H(y)). Et voilà la probabilité sur la chaîne de Markov… Au final, c’est la croissance rapide de l’exponentielle qui rend très improbable la possibilité de sauter d’une partie honnête du graphe à une partie malhonnête…

De plus, si par malheur, les deux transactions choisies étaient incompatibles entre elles (parce que l’une d’elle provient d’une tentative de double dépense par exemple) alors, l’algorithme de Popov ne retient que la transaction la plus susceptible d’être acceptée par les autres. Il faut pour cela répéter plusieurs randonnées aléatoires et obtenir in fine une mesure de probabilité sur l’ensemble des extrémités du graphe.

A-t-on touché le sommet avec IOTA ? On est en droit de le penser…

desierto

Notons pour le folklore qu’on peut toujours imaginer la présence de mineurs dans ce réseau mais vu qu’il n’y a pas de bloc, il n’y a pas non plus de récompense. Le seul travail de minage possible consiste à émettre une transaction vide (sans transfert d’argent). Ce travail n’est pas rémunéré mais comme toutes les autres transactions, il sécurise le réseau car il contribue à augmenter le poids cumulé des transactions honnêtes.

Tirons également la conséquence du fait qu’il n’y a plus de blockchain. Plus de blockchain signifie plus de mineurs classiques et donc plus de création monétaire. C’est donc que toute la quantité de monnaie a été émise dès le début…

Ce qu’il y a de fascinant dans l’histoire de l’humanité, c’est que bien souvent, les inventions n’arrivent pas seules à un endroit donné mais bien souvent simultanément à plusieurs endroits différents. Il en est ainsi de l’invention de l’écriture notamment. Si j’écris cela, c’est qu’il se trouve qu’indépendamment des débuts d’IOTA, Sergio Lerner sur son blog imaginait lui aussi mettre fin à la distinction entre mineurs et utilisateurs. Mais trop préoccupé par la réussite de Rootstock, il ne lui a sans doute pas été possible de développer son intuition et d’implémenter ses DAGcoins…

Il y a maintenant une communauté d’utilisateurs d’IOTA : plus de trois cents pages de fils de discussion sur bitcointalk et un forum de plus en plus actif sur le site d’Iotatoken. On imagine sans mal des objets connectés qui passent des ordres sur Iotatoken. Et le tout, évidemment sans frais de transaction…

XQ7L078W

Que dire de plus ? L’article de Popov contient d’autres petits calculs extrêmement intéressants comme une utilisation totalement naturelle (mais que je n’ai jamais vu ailleurs) de la théorie des grandes déviations pour prouver qu’IOTA résiste à un certain scénario d’attaque. Tout ne peut être dit en un article… Je vous laisse visiter le site d’IOTA.

Bravo à Serguei Popov, David Sønstebø et Sergey Ivancheglo… Chapeau bas messieurs !

La solution de Paymium au problème de la certification des diplômes des étudiants de l’ESILV

Suite à de nombreuses demandes, et profitant d’un peu de temps libre au mois d’août, je détaille ci-dessous la solution ingénieuse de Paymium au problème de la certification des diplômes des étudiants de l’ESILV. Pour comprendre le texte ci-dessous que je pense être très détaillé, il faut en préalable avoir compris ce qu’est une fonction de hachage. En gros, une fonction de hachage est une fonction dite à sens unique et résistante aux collisions faibles et fortes. Je renvoie le lecteur à Wikipedia par exemple ou à un cours de cryptographie élémentaire. La définition est à la portée de n’importe quel lycéen ou lycéenne. L’image par une fonction de hachage d’un document quelconque s’appelle un « hash ». La fonction de hachage utilisée est SHA-256 qui respecte les critères de la NSA américaine.

Il est important d’insister d’emblée sur le fait que la solution de Paymium est complètement transparente : elle ne s’appuie sur aucun brevet de fabrication dont le secret serait gardé par quelques-uns. Elle est également décentralisée. Pour obtenir la preuve voulue, il n’est nul besoin de passer par un tiers de confiance ou par un serveur particulier. La preuve est inscrite dans la blockchain du bitcoin et tout explorateur de blockchain pour peu qu’il prenne en compte les transactions du type OP_RETURN fait l’affaire. Il en est ainsi notamment de blocktrail, blockcypher, chain.so, kaiko ou smartbit par exemple.

Le site diploma.report crée par Paymium offre à chaque étudiant un espace pour retrouver tous ses documents administratifs. diploma.report n’est pas un passage obligé pour obtenir une preuve. C’est juste un espace confortable pour l’étudiant  – qu’il peut partager avec le public pour autant qu’il en donne l’adresse – où il retrouve facilement ses pièces importantes. Chaque étudiant est par ailleurs fortement encouragé à conserver ses documents sur un disque dur externe ou une clé USB. Les sites de l’ESILV et diploma.report peuvent se faire attaquer mais même si cela devait arriver, cela serait sans conséquence pour l’étudiant. La blockchain du bitcoin, elle, étant en pratique infalsifiable, l’étudiant aurait toujours la possibilité de prouver sa bonne foi.

dr2

La seule chose réellement importante est que l’école, en l’occurrence l’ESILV, rende publique l’adresse qu’elle a utilisée pour enregistrer les traces des diplômes de ses étudiants. C’est pourquoi, ici, l’ESILV revendique publiquement l’adresse 1LtRb89nFo8nzFSqZcWajhsmPgbe4NkAGY comme étant celle ayant servi à mener l’opération. Il serait bon dans l’intérêt de tous et en particulier de ceux qui souhaitent développer une économie autour de la nouvelle technologie des registres distribués qu’apparaissent des sites qui répertorient les adresses publiques de celles (associations, écoles, institutions, entreprises) qui souhaiteraient précisément s’identifier publiquement.

dr4

Prenons l’exemple d’un étudiant de l’ESILV qui vient de recevoir son diplôme. Avec son accord, j’ai pris pour modèle Aloys Fortier. C’était un élève particulièrement doué et humble. Après un excellent stage de fin d’études à la BRED, il a choisi de suivre un mastère spécialisé en techniques financières de l’ESSEC. Il travaille actuellement à Londres pour une grande banque d’investissement américaine. Son site recense quelques projets qu’il a mené lors de sa scolarité à l’ESILV et notamment une super vidéo (et un tuto en prime) qui explique comment créer simplement une interface entre C# et Excel permettant un debug en temps réel (sans ligne de code en VBA). Je vous invite à la regarder. Mais c’est une autre histoire…

Pour rentrer sur son espace personnel, Aloys a juste besoin de rentrer son prénom et son nom ici… On accède naturellement à cette page à partir de la page d’accueil en cliquant successivement sur Schools (en haut à droite) puis sur 2015. Tout le monde peut le faire pour lui. Il n’y a rien à cacher puisqu’il n’y a aucun dommage possible (impossible pour un attaquant de falsifier la blockchain !). Pour se rendre directement sur l’espace personnel d’Aloys, il suffit de suivre ce lien qui est public. En cliquant sur le premier bouton vert (DiplomeESILV-2015-AloysFORTIER.pdf) vous pouvez découvrir son diplôme numérisé en pdf. Techniquement, tous les documents téléchargeables disponibles sur diploma.report le sont depuis un « cloud » d’Amazon.

Si vous avez peur d’aller sur diploma.report et que vous préférez rester sur mon blog, vous pouvez cliquer sur DiplomeESILV-2015-AloysFORTIER, le résultat est le même ! Merci à Aloys de m’avoir donné l’autorisation de mettre son diplôme en valeur !

En cliquant sur le second bouton vert à partir de l’espace perso d’Aloys sur diploma.report (Download Diploma Report), vous pouvez télécharger un fichier qui par défaut porte le nom diploma_batch_1.pdf.

dr5

 

Vous pouvez aussi cliquer sur ce lien : diploma_batch_1 en restant sur mon blog. Même résultat ! Rien à cacher ! C’est un fichier de cinq pages qui a l’air bien mystérieux… Sur la première page, on trouve en en-tête le logo de l’ESILV. Chacune des lignes du fichier représente une suite de chiffres et de lettres… Il se trouve que chacune de ces suites est égale au hash d’un diplôme numérisé d’un étudiant. Le document diploma_batch_1.pdf rassemble donc l’ensemble des hash des diplômes des étudiants de l’ESILV de la même promo qu’Aloys.

Par exemple, le hash du diplôme d’Aloys est 765bc0b9b2b9c4acb60c59364cd98cf8630c65a13dd28c9120394128c5deb6f3. C’est indiqué sur son espace perso à la suite de « Diploma Digest: ». Pour en avoir confirmation, il suffit de cliquer sur le HERE de l’encadré en gris « Compute the SHA256 hash of any file: Click HERE to select the file in your computer hard drive. » qui se trouve en bas à gauche puis d’insérer le fichier DiplomeESILV-2015-AloysFORTIER.pdf qui vient d’être téléchargé. Il n’est bien sûr nul besoin d’aller sur diploma.report pour calculer le hash d’un document. Vous trouverez sur internet plusieurs sites qui le font également. Pour comparer, vous pouvez par exemple aller sur cryptage.online-convert.com/fr/generateur-sha256, cliquer sur le bouton « Choisissez un fichier » puis sur le bouton « Convertir le fichier ». Au final, le résultat sera le même. Le hash du diplôme d’Aloys par SHA 256 est bien égal à 765bc0b9b2b9c4acb60c59364cd98cf8630c65a13dd28c9120394128c5deb6f3 (version hexadécimale) et ce hash est bien présent à la troisième ligne du fichier diploma_batch_1.

J’insiste encore. Pour plus de sécurité, Aloys est fortement invité à conserver les deux pdf précités (DiplomeESILV-2015-AloysFORTIER et diploma_batch_1) ailleurs que sur son espace perso disponible sur diploma.report. Au fond, Aloys n’a besoin que de ces deux documents pour prouver l’authenticité de son diplôme. Tout le reste peut s’en déduire. En effet, le hash de diploma_batch_1 est bien 14aca82c72ee4e944da4c07cb791536e71044d0f7d524e4f4b4f1de43612fa63 comme annoncé à la ligne « Diploma Report Digest: » et comme on peut le vérifier en calculant le hash grâce au calculateur en ligne de diploma.report ou à cryptage.online-convert.com par exemple.

Théoriquement, Aloys a en plus besoin de l’identifiant de la transaction passée par Paymium pour le compte de l’ESILV sur la blockchain du Bitcoin. Cet identifiant est 266a896c28cae8e4b2a953240beb41079dddb48644bf02555b802a71e086f0c0 comme on peut le voir en dessous de « Diploma Report OP_RETURN Tx ID: » sur l’espace perso d’Aloys. Mais en fait, en tapant l’adresse publique de l’ESILV dans un explorateur de blockchain, on aboutit à cet identifiant de transaction vu que l’adresse prise par l’ESILV n’a servi qu’une seule fois comme input d’une transaction ! Par exemple, si on tape 1LtRb89nFo8nzFSqZcWajhsmPgbe4NkAGY dans chain.so, on voit que l’adresse de l’ESILV 1LtRb89… est impliquée dans deux transactions. Dans la première, l’adresse précitée a été créditée de 0.0249 bitcoins (l’adresse est l’output d’une transaction) et dans l’autre, elle a été débitée du même montant. L’adresse figure dans ce cas comme input d’une transaction un peu particulière qui s’est produite le 23 juin 2016. On constate que sur les 0.0249 bitcoins que contenait l’adresse de l’ESILV, 0.0239 ont été versés sur une certaine adresse (qui a donc récupéré une partie de l’argent). Explicitement, cette adresse est 1KZBoT1xuY9FZBf38g3DqjQEUycKejUADo (output 0) mais c’est sans intérêt. On voit également que 0.001 bitcoins ont été versés au titre de frais de transaction. Par contre, il est important de constater qu’il ne s’agit pas seulement d’une transaction financière classique puisqu’il existe un autre output « Nonstandard ». Le script pour cet output 1 utilise l’opcode OP_RETURN. C’est le moyen le plus utilisé (car le plus simple et le plus efficace) pour laisser une trace dans la blockchain. On peut y laisser actuellement jusqu’à 40 bytes de métadonnées… Le texte laissé par l’ESILV est court et n’utilise pas toute cette place.

Il s’agit bien d’un texte laissé par l’ESILV car seul le titulaire de l’adresse 1LtRb89nFo8nzFSqZcWajhsmPgbe4NkAGY est capable de passer une transaction en tant qu’input. Or, l’ESILV a insisté pour dire qu’elle possédait cette adresse… Quant au texte après OP_RETURN, il suffit de lire le résultat après « Message ». C’est sans surprise 14aca82c72ee4e944da4c07cb791536e71044d0f7d524e4f4b4f1de43612fa63, c’est à dire le hash du fichier diploma_batch_1 (la liste de tous les hash des diplômes). Autrement dit, c’est comme si l’ESILV disait : « je, soussignée ESILV, certifie que tout étudiant dont le hash du diplôme figure dans la liste du fichier diploma_batch_1 fait bien partie d’une même promotion diplômée par l’ESILV ». Signé ESILV, le 23 juin 2016. Or, le hash du diplôme d’Aloys fait partie de la liste. C’est le troisième. Donc Aloys a bien été diplômé par l’ESILV…

Si un jour, Aloys est en contact avec un employeur qui lui demande la preuve de son diplôme de l’ESILV, il n’aura qu’à lui faire parvenir le pdf de son diplôme, le pdf diploma_batch_1, l’identifiant de l’enregistrement sur la blockchain et l’adresse de l’ESILV ayant servi à la transaction. Il n’est bien sûr pas obligé d’aller sur diploma.report pour cela. Mais il lui suffit aussi d’envoyer le lien vers son espace perso à son futur employeur de sorte que celui-ci n’ait plus qu’à cliquer… Paymium n’a pas fait que passer une transaction sur la blockchain au nom de l’ESILV. Il offre en plus un grand confort d’utilisation aux étudiants et aux employeurs.

Encore deux points importants : si par malheur, l’ESILV perd la clé secrète associée à la clé publique utilisée pour mener la transaction décrite ci-dessus, cela sera sans conséquence pour Aloys. Rappelons de manière technique qu’une adresse bitcoin est le (double) hash d’une clé publique qui se déduit elle-même d’une clé secrète à partir de l’algorithme ECDSA et on ne peut mener une transaction sans posséder la clé secrète. Quoi qu’il arrive, même si un escroc parvient à voler cette clé secrète (on peut imaginer qu’un attaquant passe une transaction grâce à cette clé secrète et inscrit sur la blockchain le hash d’un fichier de diplômés qui ne reprend volontairement pas le hash du diplôme d’Aloys par exemple), il ne parviendra pas à modifier l’historique de la blockchain de sorte que les diplômes de l’ESILV de la promo d’Aloys seront toujours associés à la première transaction mettant en jeu l’adresse 1LtRb89nFo8nzFSqZcWajhsmPgbe4NkAGY en tant qu’input. En fait, l’ESILV peut même jeter cette clé secrète, on s’en fiche ! Elle a servi une fois et c’est la première fois qui compte ! Paymium insiste pour dire : « Seule la première transaction où cette adresse apparaît comme input fait foi de sorte qu’une éventuelle compromission (vol) ultérieure de la clé par un pirate serait sans conséquence. »

Ceci entraîne le second point suivant : l’adresse 1LtRb89nFo8nzFSqZcWajhsmPgbe4NkAGY correspond à la promo d’Aloys. La future promo possédera naturellement une autre adresse Bitcoin que l’ESILV revendiquera publiquement comme étant la sienne… On utilisera une autre clé pour écrire une trace des diplômes de la future promo de l’ESILV que j’espère aussi brillante que celle d’Aloys !

Cela n’a l’air de rien. Ce n’est pas compliqué. Mais c’est ingénieux et c’est une première mondiale. L’ESILV est devenue de ce fait la première école au monde à avoir inscrit les diplômes de ses étudiants dans la blockchain du bitcoin et concrètement, c’est Pierre Noizat de Paymium qui l’a fait pour elle. Pour être honnête, la première école à y avoir songé est la Holberton School lorsqu’elle a présenté son modèle d’entreprise à la presse fin 2015. Il semblerait que cette école à qui je souhaite bonne chance ouvre ses portes (façon de parler car j’imagine qu’elle utilisera beaucoup de cours en ligne) en octobre 2016.

Félicitations Pierre !

Appel à projets

Jeune pousse à la conquête du monde ou entreprise confirmée à la recherche de nouveaux défis, je vous propose de vous mettre en relation avec un ou plusieurs groupes d’étudiants motivés d’une école d’ingénieurs qui sont eux-mêmes à la recherche de projets ambitieux.

Cela peut-être pour vous l’occasion de sortir des sentiers battus, tester une idée, développer un prototype, etc.

Voici trois exemples de projets qui me viennent à l’esprit :

  • pricing d’options et calcul des sensibilités par des méthodes d’apprentissage statistique
  • plateforme de votes électroniques
  • Installation et test d’une blockchain pour l’internet des objets

Le rendu du projet doit permettre à l’étudiant de se mettre en valeur et de gagner en visibilité (création d’applications pour smartphones par exemple, participation à des concours, etc.).

Il faut en particulier un titre et décrire brièvement les points suivants en quelques lignes :

  • Contexte et problématique
  • Compétences développées

La soutenance finale donne lieu à une journée spéciale portes ouvertes au pôle universitaire Léonard de Vinci.

____________________________________________

Ci-dessous un message de la responsable de l’équipe « projets » à l’ESILV :

Chaque année, et en particulier sur les deux dernières années de leur cursus, nos élèves-ingénieurs réalisent des projets en équipe où ils peuvent mettre en œuvre et développer de nouvelles compétences techniques et managériales.

A partir du mois de septembre 2016 nos élèves de BAC+4 et BAC+5 vont ainsi pouvoir développer des solutions innovantes durant 4,5 mois pour les années 5 (fin du projet fin janvier) et 6,5 mois pour les années 4 (fin du projet fin mars). Ils travaillent par équipe de 4, environ 10h par semaine par étudiants. Tous les ans, des partenaires proposent des sujets à nos étudiants et profitent ainsi de leur créativité et de leur dynamisme.

Un concept, une idée, un prototype ?
C’est pour vous l’occasion de tester une idée, un concept, créer un prototype et c’est la chance pour nos élèves de mener un projet concret et utile, de se confronter aux réels enjeux d’une réalisation en partenariat.

La démarche ?
Il vous suffit de remplir le questionnaire en https://docs.google.com/forms/d/14f279cAGqmtt0Vr8VNn9WY7H0vni6B7kGZKoDdhNvCU/formResponse  d’ici le 31 août 2016.

Votre projet sera ensuite proposé aux élèves qui pourront vous contacter pour plus de détails avant de faire leur choix début septembre. Ils réaliseront ensuite en premier lieu, en collaboration avec vous, la feuille de route du projet.

Nous vous remercions de votre participation, et restons à votre disposition pour toute information complémentaire.


Bien cordialement

L’Equipe Projet

 

Sortie du Ledger Nano S

Un coup de chapeau aujourd’hui à Ledger pour la sortie de leur nouveau produit phare, Ledger Nano S qui est grosse comme une clé USB. C’est un véritable coffre-fort à bitcoins et à éthers. Moyennant un peu d’effort, il peut être également utilisé pour conserver soigneusement d’autres crypto-monnaies. Coup de chapeau également à son support qui m’a répondu quasiment instantanément alors que j’avais du faire une erreur d’installation (faut le faire car elle est particulièrement simple !). On insère sa clé dans un port USB sur un ordinateur et pour peu qu’on ait téléchargé une application du type gestion de portefeuilles, la synchronisation se fait rapidement et on est tout de suite prêt à envoyer ou recevoir des bitcoins ou des éthers. Personnellement, ayant fait l’installation sur un ordinateur Windows 10 avec Chrome comme navigateur, j’ai simplement téléchargé l’application Chrome Ledger Wallet Bitcoin. On trouvera quelques détails sur le site bitcoin.fr ici et sur start.ledgerwallet.com.

Si vous voulez m’envoyer des bitcoins, il vous suffit donc de copier-coller l’adresse suivante : 113UoNEG1oacdgTHCufNMVCwRzd4h7fCGx et de choisir un montant !

Par ailleurs, pour avoir encore plus d’explications, rien ne vous empêche d’aller faire un tour à La Maison du Bitcoin, rue du Caire à Paris…

J’ai juste un reproche à leur adresser : la documentation n’est pour l’heure disponible qu’en anglais.

LedgerNanoS

 

ETC Partie 3

Acte 3 : « Ethereum classic »

La suite, c’est que même fort d’une majorité écrasante, la communauté Ethereum a du faire face à une scission. Animé au départ par une petite communauté d’utilisateurs russes (était-ce une blague au départ ? Y croyaient-ils réellement ?), le camp du « non au fork » a proposé de maintenir en vie la blockchain originelle, celle qui a consigné l’attaque de « The DAO » avec une philosophie très crypto-anarchiste. Je traduis leur profession de foi :

Nous croyons en une blockchain décentralisée, publique et ouverte qui ne permet pas la censure. Nous souscrivons au projet initial d’Ethereum en tant qu’ordinateur global […] sur lequel s’exécutent en continu des contrats intelligents de manière irréversible […] Nous n’acceptons les « forks » que s’il s’agit de corriger des beugues concernant le fonctionnement de la plateforme elle-même et non pas dans l’intérêt de quelques uns…

Ainsi le 24 juillet 2016 environ est née un nouveau réseau décentralisé portant le nom d’ « Ethereum Classic » et donc aussi par la même occasion un nouvel « altcoin » que tout le monde abrège en « ETC » (le C étant pour « Classic »). La blockchain de départ d’ « Ethereum Classic » est par construction l’ancienne blockchain non censurée…

Bilan des courses : ceux qui possédaient des éthers ETH au moment du « fork » les conservent mais en plus obtiennent instantanément et sans effort des éthers ETC en même quantité… L’expérience ETC était vouée à l’échec : toutes les principales plateformes d’échange de crypto-monnaies avaient prévu de rester fidèle à ETH et de pas afficher ETC. Toutes sauf une… Poloniex ! De même tous les mineurs étaient restés fidèles à ETH sauf quelques uns ! Franchement, pourquoi ne pas miner de l’ETC vu que la puissance de calcul nécessaire au minage est assez faible ? Si le réseau ne marche pas, tant pis mais si ça marche, on aura été les premiers à miner et donc à gagner de l’argent facilement… Tel était à peu près le raisonnement tenu par ces premiers mineurs ETC opportunistes…

J’avoue, je croyais l’aventure sans avenir. Des amis m’avaient demandé mon opinion sur ETC et je ne donnais pas cher de sa peau… Je n’y croyais pas car j’estimais le réseau trop fragile en terme de puissance de calcul, c’est à dire trop vulnérable à une attaque à 51%. Et je reste dubitatif. Pourtant, les faits sont en train de me donner tort. Autant que je sache, personne n’a mis en œuvre une telle attaque. De plus, portés par des spéculateurs attirés par l’idée de se retrouver au début d’une aventure qui potentiellement peut rapporter gros (et pas grand chose à perdre), l’ETC qui valait simplement 0 au départ vaut désormais 1.81$ au moment où j’écris ces lignes. Voir les graphes sur coinmarketcap par exemple. De plus, le volume d’échange est impressionnant. C’est le second après celui du Bitcoin. En particulier, le volume d’échange des ETC est supérieur actuellement à celui des ETH ! Enfin, rapportée en dollars, la capitalisation d’ETC est passée en quelques jours de 0 à près de 150 millions ! Dans le même temps, le cours de l’ETH n’a pas diminué de manière significative. Aujourd’hui, Poloniex n’est plus seule à afficher ETC. Kraken le fait aussi. Bientôt d’autres suivront…

Financièrement, les anciens d’Ethereum qui auraient pu craindre la fin du monde (de leur monde) sont les grands gagnants de cette aventure à laquelle ils ont assisté en spectateurs. Ils ont gagné de l’argent sans rien faire. Le « fork » a crée de l’arbitrage sur le marché des devises… Et en fait, si l’on y réfléchit, il en sera de même à chaque « fork » de chaque monnaie numérique… Fugace arbitrage qui finit par disparaître avec le temps ! Comme tout en finance…

Free-Lunch

ETC Partie 2

Acte 2 : le « fork »

Alors, que fallait-il faire ? La pression était forte pour que les investisseurs de « The DAO » retrouvent leur argent. Or l’argent ayant été vidé sur un compte dont seul l’attaquant possèdait la clé secrète associée, il était rigoureusement impossible de le forcer à rendre sa cagnotte de 50 millions. Et puis selon moi, il ne s’agissait pas d’un hacker au sens où il faut l’entendre. Il n’était cependant pas faux non plus de dire qu’il avait détourné de l’argent. Au sens moral, c’était un voleur. Au sens juridique, sur la base de la maxime « The code is Law », il n’avait rien fait d’illégal…

On s’est alors retrouvé dans la situation où la principale activité du réseau Ethereum était l’investissement pour « The DAO » et un petit malin venu secrètement briser le rêve de fortune de milliers d’investisseurs… La pression était forte pour opérer un retour en arrière. Vous savez, dans les jeux parfois, il y a un petit bouton du type « roll back » utile quand on joue aux échecs contre un ordinateur et qu’on a fait une grossière erreur… On appuie sur le bouton et on reprend la partie quelques coups avant ! Hop ! Ni vu ni connu… Personnellement, étant très étourdi, je n’ai jamais pu battre un ordinateur d’une autre façon (c’est de la triche, je sais…). Là, idem, la pression était forte pour un « hard fork ». J’expliquerai le concept de « fork » et la différence entre « soft fork » et « hard fork » une autre fois si j’en ai le courage mais disons simplement que le « fork » dans ce cas signifiait revenir en arrière, changer le registre afin de se retrouver à l’état du monde d’avant l’attaque de « The DAO ». Autrement dit, on s’est mis à proposer à la communauté la possibilité de déchirer carrément les dernières pages de la blockchain d’Ethereum, c’est-à-dire d’effacer les traces de l’attaque. Solution radicale. J’avais à l’époque crée et invité les gens à participer à un petit sondage (pour ou contre le « fork ») et j’avais moi-même voté contre (ceci juste pour s’amuser alors que je ne possède aucun ether). J’avais voté contre pour plusieurs raisons (j’imagine que ceux qui comme moi étaient contre avaient les mêmes motivations) :

  • ce n’est pas parce qu’une escroquerie a lieu qu’on va annuler toutes les transactions qui ont eu lieu au même moment. Tant pis pour ceux qui ont fait confiance à un contrat pourri. Ils n’avaient qu’à faire attention.
  • si on s’amuse à faire cela une fois, cela créera un précédent. Pourquoi revenir en arrière cette fois-ci et pas dans le futur quand une autre opération douteuse se produira ? Sur quels critères a-t-on le droit de revenir en arrière ?
  • Et surtout, faire cela, c’est contre l’esprit de décentralisation. C’est donner le signe que le réseau est contrôlable par un groupe de personnes (dans ce cas, la fondation Ethereum et un petit groupe de développeurs).

L’argent contre la morale anar… Évidemment, l’argent a gagné. Il y a eu un vote suite à une proposition de la fondation Ethereum qui a été acceptée par 85% des acteurs. Toutes les personnes flouées étaient probablement pour. L’essentiel des mineurs aussi. C’est la suite le plus marrant.

Copy-of-2-Prong-Fork-1024x889

ETC Partie 1

C’est assez dingue ce qu’il vient de se passer dans le petit monde des crypto-monnaies…

Préambule

Note : Vous pouvez sauter cette section si vous connaissez déjà Bitcoin et Ethereum…

Vous connaissez le bitcoin ? Un dispositif à l’origine amateur pour envoyer de l’argent liquide et devenu en très peu de temps le plus grand réseau de calcul distribué au monde. Je résume. Papa Bitcoin a donné forme à une nouvelle idole : la décentralisation. Pas la décentralisation à la française qui consiste en un retour au moyen-âge avec la réapparition de fiefs féodaux. Non, une vraie décentralisation où personne n’a de pouvoir hormis la collectivité dans son ensemble. La monnaie était depuis l’origine – et ce qu’elle n’a jamais cessé d’être – le signe de la manipulation de l’Etat ? Voici une monnaie libre sans possibilité de trucage. Idole, c’est un peu fort. Disons référence ultime de la part de ceux qui se revendiquent sans ni dieu ni maître (ou bien de ceux qui modestement et sans forcément le dire, n’ont pas brisé tout idéal en eux). Proposer un modèle qui remet en cause la décentralisation, c’est passer dans le camp de R3 et des blockchains bancaires. Le camp du pognon…

Un modèle centralisé, en effet, est un modèle où celui qui est au centre a pouvoir de vie ou de mort sur les autres qui dépendent de son bon vouloir. C’est au final toujours la même histoire de l’esclave et du maître (voire du « client-serveur »). En même temps, il suffit que celui au centre tombe malade et tout s’écroule. Le système est fragile. Mais Bitcoin, ce n’est pas seulement pour employer des termes savants d’informaticiens une résolution du problème des généraux byzantins ; c’est aussi l’avènement des « smart contracts » proposés la première fois par le visionnaire Nick Szabo au début des années 90. Une transaction bitcoin, dans sa forme la plus simple, est déjà un contrat intelligent. On rassemble côte à côte deux bouts de codes écrits dans un même langage de programmation (des « snippets » qui représentent pour l’un les conditions d’application du contrat et pour l’autre les preuves nécessaires afin qu’il se déclenche) et on exécute. Si ça marche, on valide et on inscrit dans le registre. La transaction financière est acceptée. Pour plus de sécurité (on joue pas avec l’argent), Papa Bitcoin avait interdit les possibilités de se fourvoyer dans des boucles infinies. Le langage de programmation était volontairement succinct.

20120126200800

Mais voilà fiston Ethereum qui dit à son papa qu’il est dépassé et qu’on est maintenant au vint-et-unième siècle. Vingt-et-unième siècle papa, tu te rends compte ? On peut pas continuer à vivre dans un monde avec un langage de programmation comme ton langage de pile qui remonte aux années 1960, à un âge où tu n’étais d’ailleurs pas né ! Perso, moi le fiston, je veux ma blockchain (i.e., mon registre) où l’on pourrait faire tourner dessus des beaux contrats intelligents grâce à un vrai langage de programmation Turing-complet (avec possibilité de faire des boucles !). Que répondrait-on à un ado tenant un tel discours ? Hé bien vas-y, vis ta vie, brûle-toi les ailes. On t’aura prévenu… Attention aux boucles infinies !

En vérité, Ethereum contient une protection astucieuse contre les boucles infinies : le fait que le code ait un coût d’exécution en terme de « gaz » (oui, fiston Ethereum était un peu dans un trip « éthéré » quand il a proposé son nouveau réseau…) et le gaz est lié à l’éther (le prix du gaz est de 10 « Szabo » actuellement et un « Szabo » vaut 0.000001 ether). Voir par exemple http://ether.fund. Plus de gaz et le moteur (la machine virtuelle d’Ethereum) qui sert à exécuter les contrats s’arrête. Mais si un élément de la boucle conduit à gagner des éthers, la boucle s’auto-alimente jusqu’à ce qu’il n’y ait plus d’éther à siphonner !

wallpaper-homestead

Ceci n’était qu’un petit rappel…

Acte 1 : les malheurs de « The DAO »

Au départ, il y a l’arnaque de « The DAO » qui réussit à vendre son soit-disant « contrat intelligent » mais en réalité totalement pourri à une communauté très diverse d’investisseurs pour un total de 150 millions de dollars. Arnaque, c’est trop fort, je ne pense pas que les responsables de slock.it soient de véritables escrocs avec volonté préméditée de nuire. Par contre, arrogants et donneurs de leçon, sans doute. La société slock.it (se remettra-t-elle de cette déconvenue ?) arbore fièrement les bannières de Microsoft et Samsung sur son site, comme quoi même les plus grands de ce monde peuvent aussi être victimes d’illusions numériques. Ah ça faisait bien d’afficher les drapeaux de tels partenaires ! Ça donnait de la confiance !

En tout cas, des tas de gens, tels des papillons un soir de tombée de manne, attirés par les réverbères des villes de campagne, se sont rués sur les promesses de la start-up californienne. En souscrivant à ce contrat, on avait la possibilité de devenir actionnaire de projets à venir sur la plate-forme Ethereum. Vu qu’elle était présentée comme un « ordinateur global » à la conquête du monde, que des tas d’entrepreneurs avec des idées sensationnelles allaient rejoindre la communauté Ethereum, il était clair pour beaucoup que « The DAO » était le coup du moment. Le bon investissement à faire. Surtout qu’en cryptofinance (disons, dans la finance apparue après la création du Bitcoin) plus encore qu’ailleurs, c’est vraiment celui qui est au tout début du lancement d’un nouveau projet qui en récolte les fruits. En occultant volontairement le fait qu’il n’y avait toujours réellement aucun réel projet concret qui mérite d’être considéré par ces actionnaires en herbe… Au fond, les gens, quand ils décident d’investir, le font souvent de manière totalement irrationnelle. L’argent comme l’amour est manifestement aveugle…

Screen-Shot-2016-05-12-at-12.35.56-PM

« The code is law », yeah, ça fait bien de le dire… Par contre, personne n’avait lu le contrat qu’il venait d’acheter ! Hé oui, d’habitude on relit plusieurs fois un contrat papier du type d’assurance-vie avant de souscrire. Mais là non ! Du reste, dans un souci de transparence, les développeurs avaient tout mis en ligne et exhibaient donc fièrement leur incompétence puisqu’un petit malin a trouvé une faille qu’il n’a fait qu’exploiter. Tout dépend de ce que l’on entend par « hacking ». Personne n’est rentré frauduleusement sur le compte d’un autre pour lui voler ses sous. Non. Par contre, un ou une informaticienne (ou un groupe d’entre eux) a tiré profit d’un beugue dans le contrat de « The DAO » pour vider les caisses et s’octroyer un beau pactole d’environ 50 millions de dollars en éthers (l’éther est la crypto-monnaie associée au réseau Ethereum).

 

 

« Bitcoin et Blockchain » édité par la revue Banque

J’ai lu hier Bitcoin et Blockchain. Vers un nouveau paradigme de la confiance numérique ? de Didier Geiben, Olivier Jean-Marie, Thibault Verbiest et Jean-François Vilotte. L’ouvrage est édité par la maison d’édition Revue Banque que je remercie vivement pour m’avoir généreusement envoyé un exemplaire du livre !
 
Je n’ai malheureusement pas lu le livre un crayon à la main. Aussi, il m’est difficile de donner des citations. Mais à chaud, voici mes impressions. 
 
Est-ce du à mon regard de prof ? Je ne peux faire autrement que rapporter d’abord quelques approximations « grossières ». 
Il me semble que les auteurs laissent entendre en particulier la suite d’implications suivante :
il y a plus de transactions échangées sur le réseau ==> 
la difficulté de minage augmente ==> besoin constant d’ordinateurs plus puissants.
Or, ceci est faux. Il s’agit simplement d’une question de compétition entre mineurs, une course effrénée au gain, c’est-à-dire au nouveau bloc. Le danger au contraire – et il est bien réel – est de miner des blocs vides. Certains mineurs peuvent être tentés en effet pour gagner quelques secondes de laisser tomber les transactions reçues (pas de perte de temps à les vérifier) ainsi que les frais de transaction qui vont avec et de se contenter uniquement du « coinbase » (la récompense qui est dorénavant fixée à 12.5 bitcoins). Voir à ce sujet un bon article récent de Pascal Gauthier, directeur de la start-up Kaiko, le Bloomberg du Bitcoin ! En plus de la référence vers son article, j’ajoute qu’avec « segwit », l’accès à la base de données des UTXO (« Unspent Transaction Output ») va être plus rapide, les vérifications des mineurs vont être plus faciles, et de plus les blocs pourront contenir davantage de transactions d’où plus de frais de transactions possibles en perspective pour les mineurs.
En fait, qu’il y ait plusieurs milliers de transactions dans un bloc ou qu’il n’y en ait qu’une seule (la coinbase), cela revient au même pour le mineur puisque l’essentiel du problème du mineur est le calcul de sa preuve de travail et celui-ci ne prend en compte que la racine de Merkle de l’ensemble des transactions reçues. Une fois calculée (c’est nécessaire), on cherche à résoudre la preuve de travail.
Par ailleurs, on fait généralement aujourd’hui la différence entre les blockchains publics/privés et ouvertes/fermées (« permissionless/permissioned »). Voir à ce sujet les articles de Bitfury Group et notamment celui-ci. Or, les auteurs n’en parlent pas vraiment. Par contre, ils donnent de nombreux exemples d’ « applications de la blockchain ». Il est ainsi question de la start-up Hedgy que je ne connaissais pas et qui proposerait des contrats futures sur un mode décentralisé. Malheureusement le site de hedgy est en contruction… J’attends de voir. Si c’est le cas, c’est très intéressant en effet…
La partie juridique du livre est particulièrement bien illustrée avec des textes de référence. C’est selon moi la véritable valeur ajoutée du livre. Je regrette cependant (mais on ne peut pas tout traiter) que les auteurs n’aient pas parlé du Japon qui aurait reconnu récemment le bitcoin comme une monnaie ou serait sur le point de le faire… Voir à ce sujet cet article dans The Cointelegraph et aussi cet article dans bitcoin.fr.
J’ai peut-être trop critiqué mais au final, c’est une assez bonne introduction au sujet. La partie maths a été évacuée du livre mais ce n’est pas plus mal. Un bon rappel de la naissance d’internet est donnée en conclusion. 
J’ai apprécié la lecture. Merci aux auteurs ! Par ailleurs, je signale que la Revue Banque a publié précemment un très bon petit livre (même collection, même format) sur l’univers des fin’tech : La révolution FinTech par Régis Bouyala.
rba-image-1126756