Il y a quelques jours, alors que je bossais sur mon pet project du moment, je
me suis surpris à penser « tiens, ça serait bien si cette fonctionnalité
devenait une application Django réutilisable ». La fonctionnalité en
question ne nécessitant pas plus de quelques lignes, je me suis dit que ce
serait rapidement torché.
Le fait que je me retrouve 10 jours plus tard et deux applications
supplémentaires me prouve encore une fois que je suis vraiment mauvais avec les
estimations. Et on s'étonne que je ne travaille pas au forfait …
Quoi qu'il en soit, pour la dernière app, j'ai décidé de tester l'approche
Documentation Driven Development. Retours d'expérience.
L'autre jour, j'étais tranquillement assis dans mon fauteuil, sirotant mon café
et dépilant une à une les stories de mon backlog avec la régularité d'un
opérateur de train nippon lorsque sans grier « gare ! » mon instinct de
développeur affuté par des années de labeur se mit à
clignoter.
« Cette fonctionnalité, me murmura l'instinct susmentionné, ferait un candidat
parfait à l'écriture d'une application dédiée. »
Purée… Dix ans ! Dis ans que j'ai débarqué à Montpellier de ma Normandie
natale. Sans barbe et avec tous mes cheveux. Les études. Les stages. Les
premiers boulots. Le freelancing. Et tout le reste.
Les adresses représentent l'une des fonctionnalités de base de Bitcoin. Pour recevoir des Bitcoins, il faut disposer d'une adresse Bitcoin, comme 1J3BnzUeHubrjdMuBjSPtpUy2wv7RchNyy. Pour dépenser les Bitcoins reçus il faut connaître la clé secrète associée (en l'occurrence, 5Jd4kDBTJnDmQwLv94gjWheWwsrvmRMGfLj438BBLdRtw4axSAy). D'où diable sortent ces chaînes de caractères plutôt abstraites ? C'est ce que nous allons voir.
Dans ce billet assez technique, nous allons étudier un outil mathématique poétiquement intitulé les « courbes elliptiques ». Même si vous ne savez pas ce que sont les courbes elliptiques, vous en avez utilisé sans le savoir, car elles constituent l'un des fondements de la cryptographie moderne. Accrochez-vous.