PS. Encore plus pourri que je ne pensais !

En fait, j’étais extrêmement naïf concernant l’organisation de « Scaling Bitcoin 2017 » mais maintenant le pot au rose est découvert. L’événement est notamment financé par des ICO qui ont bien sûr autant à voir avec le bitcoin qu’une bouteille de coca-cola. Mais ce n’est pas tout. Les orateurs sont également pour certains parties prenantes de ces ICO qui ont donc payé plusieurs millions de dollars pour monter sur l’estrade… On est bien sûr très loin de Satoshi minant seul ses premiers blocs du bitcoin… Honte à ce comité pourri !

Quelques réactions à notre lettre ouverte

Rappelons les faits. Voir notre précédent article pour connaître le début de l’histoire.

– Nos deux propositions à « Scaling Bitcoin » ont été rejetées.

– Le programme de la conférence montre un recoupement entre les membres du comité et les orateurs (trois personnes).

– Le co-auteur du « chair » de la conférence a été invité à présenter leur dernier article.

Réactions folkoriques sur Twitter

Certains membres du comité ont réagi de manière surprenante sur Twitter. Voici un résumé. Pour connaître l’intégralité (mais c’est franchement sans intérêt), il suffit de consulter mon compte twitter.

Ethan Heilman, le « chair » de la conférence a soutenu qu’il s’agissait de pratiques courantes (ce qui est bien sûr faux) et qu’il n’y avait pas lieu de crier au scandale. Il a donné un lien vers une conférence annuelle intitulée « Financial Cryptography and Data Security » où il y a effectivement un recoupement.

Il a oublié de préciser que dans ce cas, et contrairement à « Scaling Bitcoin », la soumission est anonyme. Comme précisé sur leur site, « The regular and short paper submissions must be anonymous, with no author names, affiliations, acknowledgments, or obvious references. » Mis devant cette évidence, il a cessé de répondre.

Paul Sztorc, la personne du comité qui aurait vu l’article s’est spontanément manifestée de manière extrêmement grossière nous proposant immédiatement un rendez-vous sur YouTube pour nous « humilier » en direct. Il est évident qu’il n’est pas question pour nous de participer à une telle farce. Nous lui avons répondu : « Maths is not circus », lui demandant au contraire de nous faire parvenir son rapport sur l’article puisqu’il est d’usage que les « reviewers » écrivent un rapport sur les propositions reçues. Il a alors cessé de répondre, probablement parce qu’il n’a rien écrit. Vu son niveau (affligeant), même s’il a fait l’effort d’ouvrir l’article, je doute qu’il ait pu comprendre quoique ce soit.

Enfin, Peter Rizun qui est orateur au prochain « Scaling Bitcoin » et également « managing editor » de Ledger, une revue scientifique spécialisée sur la blockchain (à ne pas confondre avec Ledger, la start-up française fondée par Eric Larchevêque), nous a invité à lui soumettre notre papier de manière assez particulière : « Please, send us your boring article! ». Assez interloqués par le ton employé par un éditeur qui nous adresse la parole pour la première fois, nous avons cherché à alerter les autres éditeurs de Ledger du comportement pour le moins surprenant d’un des leurs. J’ai aussi voulu attirer l’attention du chancelier de l’Université de Pittsburgh qui édite la revue. Est-ce à cause de cela que finalement Peter Rizun nous a présenté ses excuses même si celles-ci sont pour le moins alambiquées ? Inutile d’en dire davantage.

Il nous paraît donc de toute évidence et aujourd’hui encore plus qu’hier que l’organisation de la prochaine conférence « Scaling Bitcoin » est une véritable farce. Tout se passe comme s’il s’agissait d’une bande de copains qui s’invitent entre eux et se défendent les uns les autres. Par ailleurs, il n’est pas possible de mettre de côté la liste impressionnante de sponsors. Cela saute aux yeux : il y a énormément d’argent en jeu et on peut comprendre que la pression doit être forte de la part de ceux qui veulent monter sur le devant de la scène.

En guise de résumé, je recopie un message de soutien en anglais reçu sur Medium de la part d’un dénommé « Alphonse Pace » que je ne connais pas  :

« Scaling Bitcoin is garbage now. Shame that such a good conference has been hijacked. ».

Et pour finir, aucune nouvelle de l’Université de Stanford qui doit préférer les sous des sponsors au scandale. C’est malheureusement ce que je suis en train de commencer à penser… Make America great again!

Lettre ouverte au président de l’université de Stanford et à la communauté Bitcoin

Ci-dessous la version française d’une lettre ouverte au président de l’université de Stanford et à la communauté Bitcoin. La version anglaise (officielle) est publiée sur Medium.

Le 4 et 5 novembre prochain aura lieu une grande conférence sur le bitcoin donnée à l’Université de Stanford. Il s’agit d’un cycle de conférences organisées chaque année par le comité « Scaling Bitcoin » qui s’est imposé comme une référence parmi toutes les conférences semblables. Fréquenté par une grande partie de l’écosystème bitcoin, c’est l’occasion d’assister aux dernières propositions pour développer encore davantage les possibilités du bitcoin.

Comme son nom l’indique, la conférence est centrée habituellement sur les problèmes d’échelle du bitcoin, sujet sur lequel la communauté n’en finit pas de se diviser et de débattre. Mais les thèmes de la conférence dépassent les seuls problèmes d’échelle. L’accent est mis également sur les problèmes de sécurité, d’anonymat et de fongibilité.

La conférence « scaling bitcoin » est itinérante et a pour principe de changer de continent à chaque fois. Nous étions nombreux à nous réjouir qu’elle ait lieu cette année à l’Université de Stanford après Milan l’an dernier. C’est une juste récompense vu toutes les activités de cette université en termes d’enseignement du fonctionnement des cryptomonnaies et de recherche sur ce thème.

La conférence marque ainsi un rapprochement symbolique entre le monde universitaire qui a longtemps dédaigné le bitcoin et le monde des cypherpunks au sein duquel il a fait la première fois son apparition.

On était donc en droit d’espérer le meilleur du monde académique au service du bitcoin. Or, c’est malheureusement tout le contraire qui est en train de se produire.

Nous avions soumis deux propositions d’exposé. La première était centrée sur l’un de nos articles sorti en février dernier. Cet article revoit et corrige le calcul approximatif de Satoshi concernant la probabilité de double-dépense et, pour la première fois, nous démontrions que cette probabilité tend bien exponentiellement vers zéro en fonction du nombre de confirmations, un résultat souvent annoncé mais jamais démontré. Notre deuxième proposition consistait en une étude de la stabilité des blockchains ; nous souhaitions disserter sur la convergence entre les intérêts privés et les intérêts publics en mettant en lumière des cas possibles d’instabilité jamais véritablement étudiés.

Ces deux propositions ont été rejetées. Nous étions bien sûr surpris et déçus car nous pensions sincèrement que nos travaux qui étudient le cœur du fonctionnement d’une blockchain en apportant des résultats mathématiques concrets avaient de bonnes chances d’être acceptées. Cela n’a pas été le cas. Soit.

Passée la déception d’avoir été rejetés, nous avons par curiosité jeté un coup d’oeil au programme finalement retenu. A côté d’une liste des exposés et des orateurs, se trouve la liste des personnes formant le comité de sélection.

Pour une question d’éthique, on était en droit d’attendre d’une grande institution comme Stanford que ces deux listes soient totalement disjointes. On ne peut être juge et partie. On ne peut pas examiner la qualité de nombreux travaux puis au final décréter que le meilleur, c’est le sien.

Les membres de ce comité de sélection n’ont manifestement pas la même opinion. Parmi les orateurs qui font partie des heureux élus, on compte ainsi trois membres de ce comité. Ils vont donc chacun faire un exposé après avoir examiné et décidé de rejeter les propositions des autres…

Il est possible que le comité se soit divisé les articles reçus et qu’aucun ne de ces auteurs n’ait voté pour lui-même mais seulement pour un de ses collègues, ce qui rend le scandale moins gros ou moins visible. Mais il demeure. Comment peut-on décemment accepter d’être membre d’une telle commission tout en étant force de propositions pour devenir orateur ?

A ces trois « anomalies », on doit en ajouter une quatrième plus sournoise. Le co-auteur du dernier article de celui désigné comme étant le  « Program Chair » de la conférence a été également invité à donner un exposé !

Par ailleurs, mais à ce point, c’est presque anecdotique : le « chair » de la conférence se présente comme un simple « PHD student » sur sa page personnelle, ce qui est surprenant car il s’agit en général d’une personne expérimentée qui se porte garant du bon déroulement des événements et du choix du comité.

Manifestement des règles élémentaires d’éthique scientifique mondialement acceptées n’ont pas ici été respectées. Est-ce que le but de la conférence est vraiment de donner au bitcoin ses lettres de noblesse ou au contraire de faire des petites carrières universitaires sur le dos du bitcoin ?

Au final, on se pose forcément la question : Satoshi Nakamoto aurait-il vraiment été invité par un tel comité de sélection ?

Cyril Grunspan (ESILV, France)

Ricardo Perez-Marco (CNRS, U. Paris VII, France)

Comment inverser une fonction ?

Je n’aurais jamais imaginé découvrir avec la célèbre fonction de Black-Scholes à quel point il peut être difficile d’inverser une fonction. Le problème n’est pas numérique ; il y a de nombreux algorithmes performants pour cela même s’ils ne sont pas tous connus du plus grand nombre. Il s’agit d’un problème d’asymptotiques : sous certaines hypothèses (grande ou petite maturité par exemple), il faut trouver le développement asymptotique de la volatilité en fonction du prix de l’option.

Je m’étais frotté à ce problème quand j’étais « quant » à Londres il y a plusieurs années et j’avais juste été capable de donner les premiers termes du développement. J’avais fini par abandonner complètement après avoir vu circuler un long article de Roger Lee et d’un de ses étudiants sur ce sujet au moment où je finissais de rédiger le mien. L’article de Lee a depuis été cité près d’une centaine de fois mais j’en avais toujours gardé un sentiment étrange ; je n’avais pas réussi à lire et comprendre vraiment en profondeur l’article de Lee (qui aujourd’hui encore reste abscons pour moi) et je restais persuadé que le problème devait se résoudre autrement et plus simplement.

C’est à ce moment que je suis revenu voir mon ami Joris van der Hoeven et très rapidement, tout s’est éclairé… Au final, nous répondons non seulement au problème posé mais en plus, nous donnons des algorithmes effectifs pour inverser des fonctions connues comme la fonction de Gauss, la fonction de Lambert, la fonction Gamma incomplète ou plus généralement des fonctions de type « exp-log » qui sont hautement tangentes à l’identité… Notre article est disponible ici.

Insistons sur le fait que le problème n’est pas simple a priori. Si une fonction est analytique au voisinage d’un point, son inverse fonctionnelle (lorsqu’elle existe) s’obtient facilement grâce au théorème des fonctions implicites. Cependant, si la fonction considérée n’est pas analytique en ce point, les choses sont nettement plus compliquées…

Donnons un exemple qui dépasse le cadre de la finance : étant donné y très proche de 1^{-}, trouver x tel que

\frac{1}{\sqrt{2 \pi}}\int^x_{- \infty} e^{-\frac{t^2}{2}} dt = y.

Peut-on exprimer x en fonction de y ? Au fond, inverser Black-Scholes n’est pas plus compliqué que résoudre ce problème déjà ancien…

Inversion de la formule de Black-Scholes

Voici la formule de Black-Scholes :

BS(S,K,T,\sigma) = S Q(d_+)-K Q(d_-)

Ici, S, K, T, \sigma désignent respectivement le prix du sous-jacent considéré (le prix d’une action par exemple ou un taux d’intérêt), le strike de l’option, la maturité de l’option et la volatilité. La fonction Q est la fonction Gaussienne Q(x)=\frac{1}{\sqrt{2 \pi}}\int^x_{- \infty} e^{-\frac{t^2}{2}} dt et d_{\pm}=\frac{\log \left( \frac{S}{K} \right) \pm\frac{\sigma^2 T}{2}}{\sigma \sqrt{T}}. Pour simplifier, on a supposé que le taux d’intérêt était nul.

Dans les années 70, Black-Scholes et Merton voulaient calculer le prix d’une option BS(S,K,T,\sigma) en fonction d’un paramètre appelé volatilité \sigma. Aujourd’hui, on veut au contraire calculer \sigma en fonction du prix de l’option…

Il y a au moins une raison à vouloir inverser Black-Scholes de manière théorique. Issus de modèles stochastiques décrivant la dynamique des actifs financiers, les prix d’options sont solutions d’équations aux dérivées partielles de la forme

\partial_{\tau} y = L.y

où \tau désigne le temps restant avant que l’option ne parvienne à maturité et L est un opérateur différentiel d’espace dont les variables sont des fonctions des paramètres du modèle. La plupart du temps, l’équation ci-dessus n’a pas de solution fermée exacte car les modèles considérés sont bien plus compliqués que celui de Black-Scholes. Et s’ils le sont, c’est bien sûr que le modèle de Black-Scholes ne parvient pas à décrire la réalité des marchés financiers et à expliquer notamment l’existence d’un « smile » de volatilité.

On est donc réduit à rechercher des approximations du résultat, ce qui conduit à des calculs de développements asymptotiques de prix d’option sous certaines hypothèses comme {\tau}\ll 1 ou {\tau}\gg 1 par exemple.

Différentes techniques ont été développées à cet effet. Il s’agit souvent de méthodes de perturbations utilisées en physique. On pourra consulter par exemple le livre d’Ivan AvramidiHeat Kernel Method and its Applications, professeur de mathématiques à l’École des mines du Nouveau-Mexique.

Or, on souhaite calculer non seulement le prix de l’option mais également et surtout sa volatilité implicite (dans le cadre d’une option vanille). Il faut voir cela comme d’un héritage. Black-Scholes est certes désuet mais on veut tout de même conserver les apparences et en particulier on souhaite toujours pouvoir manipuler le \sigma présent dans la  formule de Black-Scholes que l’on appelle volatilité implicite (il s’agit d’une mauvaise traduction de l’anglais implied volatility).

Bref, il s’agit d’opérer une transformation : passer d’un développement en prix à un développement en volatilité implicite. En théorie, il suffit d’appliquer pour cela la fonction inverse de la fonction de Black-Scholes. Seulement voilà, la fonction de Black-Scholes n’est pas analytique autour de {\tau}=0 ni de \tau=\infty. Ce n’est pas étonnant vu que le pay-off de l’option S\longmapsto (S-K)_+ = Max(S-K,0) n’est lui-même pas analytique et que la fonction gaussienne Q n’est-elle même pas analytique en +\infty comme on l’a rappelé plus haut… Cela rend la transformation plus compliquée.

A l’aide d’un petit tour de passe-passe, on peut montrer que le développement de la formule de Black-Scholes en temps très petit ou au contraire dans la limite où \tau est très grand est toujours de la forme :

y(x) = x + \alpha \log x + \varphi_0 + \sum_{i = 1}^n  \frac{\varphi_i}{x^i} + {\footnotesize \mathscr{O}} \left( \frac{1}{x^n}\right)

Si \tau\ll 1, on a \alpha = \frac{3}{2}, x=\frac{\log^2 \left( \frac{K}{S} \right)}{2\sigma^2 \tau} et y=-\log(\frac{C-(S-K)_+}{S}). Si \tau\gg 1, on a \alpha=\frac{1}{2} , x=\frac{\sigma^2 \tau}{8} et y=-\log(\frac{S-C}{S}). Dans les deux cas, C désigne le prix Black-Scholes C=BS(S,K,T,\sigma), \varphi_0, \varphi_1, ... sont des réels indépendants de \sigma et x\gg 1. Inverser Black-Scholes consiste donc à trouver x en fonction de y.

Fonctions hautement tangentes à l’identité

Plus généralement, on peut s’intéresser à une fonction réelle \phi dont le développement asymptotique en fonction de x\gg 1 est de la forme

\phi(x) = x + \phi_0 + \frac{\phi_1}{x} + \frac{\phi_2}{x^2} + \cdots+\frac{\phi_n}{x^n} +\mathscr{O} (x^{- n - 1 / 2})

pour tout entier n et où, cette fois-ci, \phi_0, \phi_1,... désignent des fonctions polynomiales en \log(x). Une telle fonction \phi est dite hautement tangente à l’identité. Elle est nécessairement inversible au voisinage de +\infty. Cependant son inverse fonctionnelle \phi^{<-1>} n’est pas simple à obtenir. Une idée pour obtenir le résultat est de considérer le problème non plus dans un ensemble de fonctions réelles mais dans un anneau algébrique du type {\Bbb A}={\Bbb R}[\log x][[\frac{1}{x}]]. Dans ce cas, le problème de la recherche de l’inverse fonctionnelle de \phi est semblable à un problème de recherche de zéro d’une fonction. En effet, la fonction \phi^{<-1>} est solution de l’équation

\phi(g) = x

qui peut se résoudre à l’aide d’une simple méthode de Newton en partant par exemple de g=x. L’existence d’une valuation sur {\Bbb A} (la valuation est définie par v(\frac{1}{x})=1 et v\left(\log(x)\right)=0) simplifie les choses et permet de majorer l’erreur entre la solution théorique et la solution approchée. En général, le bon cadre pour traiter ce genre de problème est de considérer \phi (x) comme une transsérie formelle et d’appliquer des résultats théoriques d’inverses fonctionnelles connues pour les transséries. Cependant, la signification analytique du résultat est perdue en général…

Nous montrons qu’un algorithme du type Newton peut encore s’appliquer dans un cadre purement analytique en travaillant sur un corps de Hardy muni d’une fonction dite raide (voir la définition dans notre article) permettant encore de définir une valuation. C’est le cas par exemple des fonctions dites « exp-log ». Tout découle de là…

Je n’aurais jamais su tout cela si je n’étais pas allé voir régulièrement Joris dans son bureau à l’X. Pour les lecteurs curieux, je signale qu’un travail colossal sur les transséries vient de paraître, écrit par Joris conjointement avec deux collaborateurs. Et encore, il ne s’agit que du premier tome…

Si vous voulez voir la formule donnant l’inverse fonctionnelle de la fonction y(x) donnée à la fin de la section précédente, jetez un coup d’oeil à la dernière page de l’article !

Merci Joris !

Supplément à l’étude du Bitcoin

Voici (en anglais) l’article que j’ai coécrit avec Ricardo Perez-Marco sur l’étude des probabilités de double-dépense dans le réseau Bitcoin. Il s’agit notamment d’une correction à l’article fondateur du Bitcoin, Bitcoin: A Peer-to-Peer Electronic Cash System. Nous donnons une formule fermée pour la probabilité de réussite de double-dépense et nous prouvons le fait que cette probabilité tend exponentiellement vers zéro en fonction du nombre z de confirmations requises, un résultat souvent cité mais jamais démontré. Enfin, nous menons une analyse plus fine de cette tentative de double dépense en prenant en compte le temps mis par les honnêtes mineurs pour miner z blocs, une information disponible par le marchand qui s’apprête à envoyer son bien de consommation au possible attaquant.

J’ai écrit « correction ». C’est un mot un peu fort mais pourtant, on a beau le tourner dans tous les sens, la partie mathématique de l’article (section 11 « Calculations ») est légèrement incorrecte.

Le raisonnement de Satoshi

Son approximation

Satoshi estime que les mineurs honnêtes qui disposent d’une puissance de calcul relative égale à p mettent exactement \frac{z.\tau_0}{p} pour miner z blocs avec \tau_0 = 10 minutes. C’est évidemment une grossière approximation. En réalité, les honnêtes mineurs mettent en moyenne \frac{\tau_0}{p} pour miner un bloc et \frac{z.\tau_0}{p} pour miner z blocs. Cette approximation sert ensuite à Satoshi pour dire que pendant ce temps, l’attaquant qui cherche à réaliser une double-dépense a réussi à miner {\bf N'}(\frac{z\tau_0}{p}){\bf N'} est un processus de Poisson d’intensité qq = 1-p est la puissance de calcul relative dont dispose l’attaquant. Le fait qu’il y ait ici un processus de Poisson est tout à fait naturel. Cela vient du fait que la fonction de hachage SHA256 est supposée parfaite. Cette hypothèse a pour conséquence que le temps de minage inter-bloc suit une loi exponentielle et que le processus de comptage qui compte le nombre de blocs minés est un processus de Poisson. Par suite, le nombre de blocs minés par l’attaquant suit une loi de Poisson d’intensité \frac{q.z\tau_0}{p}. C’est ce qu’a écrit Satoshi.

Le calcul final

La probabilité de réussite de double-dépense s’obtient ensuite simplement en utilisant la formule des probabilités totales : P(A) = \sum_{k} P(A | B_k).P(B_k). Ici, A désigne l’événement « l’attaquant réussit son attaque » et B_k désigne l’événement « l’attaquant a réussi a miné k blocs au moment où les honnêtes mineurs viennent de miner z blocs ». La probabilité P(B_k) a été vue plus haut. Ici z est fixé.

Lorsque k>z, on a bien sûr P(A | B_k) = 1 et lorsque k<z, l’attaquant a autant de chance qu’un joueur qui joue contre la banque à pile ou face avec un retard de z-k : à chaque lancer de pièce de monnaie truquée en faveur de la banque (la banque a une probabilité p de gagner) le joueur avance ou recule de 1. S’il finit par rattraper la banque, il a gagné. Ce calcul est classique. Satoshi renvoie au célèbre livre de Feller An introduction to probability theory and its applications. C’est un exemple élémentaire de marche aléatoire. On a P(A | B_k) = (\frac{q}{p})^{z-k}. D’où la formule finale que donne Satoshi en réarrangeant un peu les termes de sa somme : P(A) = 1-\sum_{k=0}^{z}\frac{\lambda^k e^{-\lambda}}{k!}(1-(\frac{q}{p})^{z-k}) à la suite de quoi, Satoshi présente un petit code en C pour calculer numériquement cette somme.

Le vrai calcul

Une loi binomiale négative

Seulement voilà, le temps mis par les honnêtes mineurs est aléatoire et n’a aucune raison d’être égale à sa moyenne \frac{z.\tau_0}{p}. La formule donnée plus haut pour P(A) est fausse. En réalité, si l’on désigne par {\bf S}_z le temps mis par les honnêtes mineurs pour miner z blocs, la loi de {\bf S}_z est une loi Gamma de paramètre (z,\tau_0) et le nombre de blocs minés par l’attaquant au moment où les honnêtes mineurs découvrent leur zème bloc est {\bf N'}({\bf S}_z). Un petit calcul montre que la loi de {\bf N'}({\bf S}_z) est une loi binomiale négative de paramètre (z,p). C’est normal. Tout se passe en effet comme si la course au minage était un tirage multiple avec remise d’une urne remplie de boules noires et blanches jusqu’à l’obtention de z boules blanches. Tirer une boule noire signifie : « l’attaquant découvre un nouveau bloc » et tirer une boule blanche signifie « les honnêtes mineurs découvrent un nouveau bloc ». Au total, le nombre de boules noires tirées représente le nombre de blocs minés par l’attaquant au moment où les honnêtes mineurs découvrent leur zème bloc…

La formule de Meni Rosenfeld

La véritable probabilité de réussite P(z) de double dépense est P(z) = P[{\bf N'}({\bf S}_z) >z]+\sum_{k=0}^{z} P[{\bf N'}({\bf S}_z) = k] (\frac{q}{p})^{z-k}. En utilisant le fait que {\bf N'}({\bf S}_z) est une loi binomiale négative de paramètre (z,p) comme expliqué ci-dessus, on en déduit que  P(z) = 1-\sum_{k=0}^{z-1}(p^z.q^k-q^z.p^k)\dbinom{k+z-1}{k}. Nous ne le savions pas au moment de la rédaction de notre article, nous ne l’avons découvert qu’après mais cette formule avait déjà été publiée par Meni Rosenfled dès décembre 2012 dans Analysis of hashrate-based double-spending… Notons que Meni Rosenfeld vient tout juste de publier un article qui a l’air fort intéressant : Decentralized Prediction Market without Arbiters.

Une formule fermée

En fait, on peut triturer la formule de Rosenfeld pour obtenir une formule fermée. Cela vient de ce que la fonction de répartition d’une loi binomiale négative est une certaine fonction bêta incomplète régularisée. On montre que la probabilité de réussite de double-dépense est tout simplement P(z) = I_{s}(z,\frac{1}{2}) avec s = 4 p q, q = 1-p et I_x(a,b) = \frac{\Gamma(a+b)}{\Gamma(a).\Gamma(b)}.\int_0^x t^{a-1} (1-t)^{b-1} dt\Gamma est la célèbre fonction Gamma : \Gamma(x) = \int_{0}^{\infty} t^{x-1} e^{-t} dt pour x>0. Notons que la fonction beta régularisée incomplète est une fonction extrêmement classique et implémentée dans tous les logiciels de calcul moderne. En R par exemple, la fonction qu’il suffit d’invoquer est « pbeta ». Et inutile pour cela de charger des packages…

Autrement dit, Satoshi s’est fatigué pour rien ! En menant un calcul correct, sans aucune approximation, on obtient une formule élémentaire pour la probabilité de réussite de double-dépense. La conclusion que l’on peut en tirer, je crois, est que Satoshi était un génie mais n’était pas un vrai mathématicien. Certains avaient avancé le nom de John Nash mais cela nous semble impossible.

Des asymptotiques…

Ensuite, nous avons calculé l’asymptotique de P(z). Grâce à notre formule fermée mettant en jeu une fonction bêta, il est facile de montrer que P(z)\sim \frac{s^z}{\sqrt{\pi (1-s) z}} avec toujours s= 4 p q. Quant à la probabilité (erronée) de Satoshi que l’on note P_{SN} (z), nous montrons que l’on a P_{SN} (z)\sim \frac{e^{-z c(\frac{q}{p})}}{2} avec c(x)=x-1-\log(x). Il est vrai que cette probabilité tend exponentiellement vers 0 mais simplement, la formule est fausse !

Comparaison entre les deux probabilités

D’après les formules données pour P(z) et P_{SN}(z), il s’avère que Satoshi a sous-estimé la probabilité de double-dépense. On a clairement d’après les formules ci-dessus : P(z)\prec P_{SN}(z). On peut aussi s’amuser à calculer un rang explicite à partir duquel Satoshi s’est (vraiment) trompé, i.e., un rang à partir duquel on a P(z)< P_{SN}(z)… Cela donne lieu à des calculs d’inégalités un peu pénible avec les fonctions Gamma. Il ne s’agit que d’un jeu mathématique…

Une analyse plus fine

Enfin, on calcule la probabilité de réussite de double-dépense P(z,\kappa) sachant que les honnêtes mineurs ont mis \kappa \tau pour miner z blocs avec \tau = \frac{z.\tau_0}{p} (cf plus haut). Autrement dit, \kappa mesure l’écart par rapport à l’hypothèse de Satoshi… Là encore, on obtient une formule fermée bien que légèrement plus compliquée que celle donnant P(z). Explicitement, on a P(z,\kappa) = 1 - Q(z,\kappa z\frac{q}{p}) + (\frac{q}{p})^z e^{\kappa z \frac{p-q}{p}} Q(z,\kappa z)Q désigne la fonction Gamma régularisée incomplète. On analyse cette fonction de \kappa, P(z,\kappa). Notons que P_{SN}(z) = P(z,1).

A la fin de l’article, nous avons publié des tables pour P(z,\kappa) en fonction de z et q = 1-p.

Author’s Bitcoin Beer Address

Je dois dire que ce fut un plaisir pour moi de travailler avec Ricardo. J’espère que notre collaboration ne se terminera pas là. Les maths du bitcoin sont évidemment loin d’être finies d’explorer !

Si vous avez aimé notre travail et souhaitez encourager notre recherche (au pub), vous pouvez nous envoyer des sous ! Voici notre ABBA (Author’s Bitcoin Beer Address) :

1KrqVxqQFyUY9WuWcR5EHGVvhCS841LPLn

Vous pouvez aussi plus sobrement financer notre séminaire de cryptofinance pour nous donner les moyens de développer la recherche académique autour du bitcoin et de la blockchain.

Séminaire de Cryptofinance

Last, but not least, nous avons naturellement dédié cet article à André Warusfel qui fut notre professeur de mathématiques bien-aimé et qui est décédé récemment. Cher Warus, vous auriez certainement apprécié le bitcoin et ses mathématiques !

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