Skip to content

Livres blockchain

Programming Bitcoin

Apprendre à programmer Bitcoin à partir de zéro

Le manuel d'ingénierie pratique de Jimmy Song — reconstruire Bitcoin à partir de zéro en Python.

Programming Bitcoin de Jimmy Song est ce qui s'approche le plus, dans l'écosystème, d'un manuel scolaire « construis ton propre Bitcoin à partir de zéro ». Au fil de quatorze chapitres, vous implémentez la cryptographie sur courbe elliptique, les signatures ECDSA, le parsing des transactions, Script, l'en-tête de bloc et la preuve de travail, les preuves SPV et un client réseau Bitcoin — le tout en Python pur, sans aucune bibliothèque Bitcoin tierce. Chaque chapitre se termine par des exercices qui se branchent directement sur le code du chapitre suivant.

Pour qui

Des programmeurs en activité qui parlent déjà Python et veulent vraiment comprendre Bitcoin au niveau de l'octet. Pas besoin d'un solide bagage en mathématiques — les chapitres de cryptographie partent de la définition d'un corps fini — mais il faut de la patience et la volonté de déboguer ses propres implémentations. Ce n'est pas une lecture détendue ; c'est un cours sous forme de livre, et sauter les exercices en ruine l'intérêt.

Points forts

La pédagogie est vraiment excellente. Song construit votre compréhension comme il a construit Bitcoin en code : corps finis, puis courbes elliptiques, puis secp256k1, puis signatures, puis transactions, puis blocs, puis le réseau. Quand vous arrivez au chapitre sur la preuve de travail, vous avez déjà tapé chaque primitive vous-même, et les déclics tombent fort. Les exercices sont bien calibrés — assez courts pour être terminés d'une traite, assez exigeants pour vraiment vous apprendre quelque chose. Les notebooks Jupyter qui accompagnent le livre facilitent la vérification de votre travail.

Points faibles

C'est un livre de 2019 et cela se voit. Taproot, les signatures Schnorr, MuSig2 et le Lightning moderne sont absents. SegWit a droit à un seul chapitre vers la fin et semble bâclé comparé à la patiente montée en charge sur les transactions legacy. Le Python est parfois idiosyncratique — Song a écrit ses propres helpers plutôt que d'utiliser les bibliothèques classiques — ce qui est pédagogiquement correct mais signifie que le code que vous obtenez à la fin n'est pas réutilisable pour de la production.

Le livre porte aussi la voix très reconnaissable de Song, plutôt maximaliste-Bitcoin, avec parfois des digressions moralisatrices sur les altcoins qui n'ajoutent rien au contenu technique. Sautez ces paragraphes ; le code lui-même vaut le prix d'entrée. Si vous finissez les exercices, vous comprendrez Bitcoin mieux que 99 % des gens qui prétendent le comprendre.

Articles liés