Au cœur du Bitcoin

Book description

Le Bitcoin, l'un des sujets les plus brûlants du moment - la bible sur le sujet acheté à l'éditeur référent sur le sujet
Après le succès du titre Le Bitcoin pour les Nuls (9782412029015), 4000 exemplaires vendus en 4 mois et un taux de retour de seulement 1,5%, ce livre ultra complet sur le sujet va vous permettre d'aller plus loin dans votre connaissance du Bitcoin.

Le Bitcoin est une technologie pair à pair (de type Blockchain) qui fonctionne sans autorité centrale. La gestion des transactions et la création de bitcoins est prise en charge collectivement par le réseau. Le Bitcoin est libre et ouvert. Sa conception est publique, personne ne possède ni ne contrôle Bitcoin et tous peuvent s'y joindre. Grâce à plusieurs de ses propriétés uniques, il rend possible des usages prometteurs qui ne pourraient pas être couverts par les systèmes de paiement précédents.
Il permet des paiements électroniques avec par exemple un smartphone, des transactions sécurisées par cryptographie, un onctionnement partout et des transferts d'argent rapides et peu onéreux.

Collection O'Reilly

Table of contents

  1. Couverture
  2. Au coeur du Bitcoin - Programmer la Blockchain ouverte - collection O'Reilly - collection O'Reilly
  3. Copyright
  4. Introduction
    1. À qui s’adresse ce livre
    2. Pourquoi des insectes sur la couverture ?
    3. Conventions utilisées dans ce livre
    4. Exemples du livre
    5. Adresses Bitcoin et transactions de ce livre
    6. Contacter l’auteur
    7. Remerciements
    8. Version préliminaire de publication (Contributions GitHub)
  5. Glossaire
  6. CHAPITRE 1. Introduction à Bitcoin
    1. Qu’est-ce que Bitcoin ?
    2. Historique de Bitcoin
    3. Les usages du Bitcoin, ses utilisateurs et leurs scénarios
    4. Comment débuter
      1. Choisir un portefeuille Bitcoin
      2. Démarrage rapide
      3. Acquérir votre premier bitcoin
      4. Trouver le prix actuel du bitcoin
      5. Envoyer et recevoir du bitcoin
  7. CHAPITRE 2. Comment fonctionne Bitcoin
    1. Transactions, blocs, minage et blockchain
      1. Panorama de Bitcoin
      2. Acheter un café
    2. Les transactions Bitcoin
      1. Entrées et sorties de transactions
      2. Chaînes de transactions
      3. Rendre la monnaie
    3. Formes communes de transactions
    4. Construire une transaction
      1. Sélectionner les bonnes entrées
      2. Création des sorties
    5. Ajouter la transaction dans le registre
      1. Transmettre la transaction
        1. Comment se propage-t-elle ?
        2. Ce que voit Bob
    6. Le minage du bitcoin
    7. Minage des transactions et génération des blocs
    8. Dépenser la transaction
  8. CHAPITRE 3. Bitcoin Core : l’implémentation de référence
    1. L’environnement de développement Bitcoin
    2. Compilation de Bitcoin Core à partir du code source
      1. Choisir une version de Bitcoin Core
      2. Configurer le Bitcoin Core Build
      3. Compiler les exécutables Bitcoin Core
    3. Lancer un nœud Bitcoin Core
      1. Exécuter Bitcoin Core pour la première fois
      2. Configurer le nœud Bitcoin Core
    4. L’API Bitcoin Core
      1. Obtenir des informations sur le statut du client Bitcoin Core
      2. Explorer et décoder les transactions
      3. Explorer les blocs
      4. Utiliser l’interface de programmation Bitcoin Core
    5. Clients, librairies et boîte à outils alternatifs
      1. C/C++
      2. JavaScript
      3. Java
      4. Python
      5. Ruby
      6. Go
      7. Rust
      8. C#
      9. Objective-C
  9. CHAPITRE 4. Clés, adresses et signatures
    1. Introduction
      1. Cryptographie à clé publique et cryptomonnaie
      2. Clés privées et publiques
      3. Clés privées
        1. Générer une clé privée à partir d’un nombre aléatoire
      4. Clés publiques
      5. Explication de la cryptographie sur les courbes elliptiques
      6. Générer une clé publique
    2. Les adresses Bitcoin
      1. Encoder en Base58 et en Base58Check
      2. Les différents formats de clés
        1. Les formats de clé privée
        2. Décoder à partir de Base58Check
        3. Coder d’hexadécimal vers Base58Check
        4. Coder d’hexadécimal (clé compressée) vers Base58Check
        5. Les formats de clés publiques
        6. Clés publiques compressées
        7. Clés privées compressées
    3. Implémentation de clés et d’adresses en Python
    4. Clés et adresses avancées
      1. Clés privées cryptées (BIP-38)
      2. Pay-to-Script Hash (P2SH) et adresses multisig
        1. Adresses multisignatures et P2SH
      3. Adresses personnalisées
        1. Génération d’une adresse personnalisée
        2. Sécurité de l’adresse personnalisée
      4. Portefeuille en papier
  10. CHAPITRE 5. Les portefeuilles
    1. Aperçu de la technologie du portefeuille
      1. Les portefeuilles non déterministes (aléatoires)
      2. Portefeuilles déterministes (à graine)
      3. Portefeuilles HD (BIP-32/BIP-44)
      4. Graines et codes mnémoniques (BIP-39)
      5. Les meilleures pratiques du portefeuille
      6. Utiliser un portefeuille Bitcoin
    2. Détails de la technologie de portefeuille
      1. Mots de code mnémoniques (BIP-39)
      2. Générer des mots mnémoniques
      3. Du mnémonique à la graine
        1. Phrase secrète facultative dans le BIP-39
        2. Travailler avec des codes mnémoniques
      4. Créer un portefeuille HD à partir de la graine
        1. Dérivation de la clé enfant privée
        2. Utilisation de clés enfants dérivées
        3. Clés étendues
        4. Dérivation de la clé publique enfant
      5. Utilisation d’une clé publique étendue sur un magasin Web
        1. Dérivation de la clé enfant durcie
        2. Numéros d’index pour dérivation normale et durcie
        3. Identifiant de clé de portefeuille HD (chemin d’accès)
        4. Navigation dans l’arborescence du portefeuille HD
  11. CHAPITRE 6. Les transactions
    1. Transactions en détail
      1. Les transactions en arrière-plan
    2. Sorties et entrées de transaction
      1. Résultats de transaction
        1. Sérialisation des transactions — sorties
      2. Entrées de transaction
        1. Sérialisation des transactions — entrées
      3. Les frais de transaction
      4. Ajout de frais aux transactions
    3. Scripts de transaction et langage de script
      1. Turing-incomplet
      2. Vérification sans état
      3. Construction du script (verrouillage + déverrouillage)
        1. La pile d’exécution de script
        2. Un script simple
        3. Exécution séparée des scripts de déverrouillage et de verrouillage
      4. Pay-to-Public-Key-Hash (P2PKH)
    4. Signatures numériques (ECDSA)
      1. Fonctionnement des signatures numériques
        1. Création d’une signature numérique
        2. Sérialisation des signatures (DER)
      2. Vérification de la signature
      3. Types de hachage de signature (SIGHASH)
      4. Fonction mathématique ECDSA
      5. L’importance du caractère aléatoire dans les signatures
    5. Adresses, soldes et autres abstractions de Bitcoin
  12. CHAPITRE 7. Transactions et scripts avancés
    1. Multisignature
      1. Un bogue dans l’exécution de CHECKMULTISIG
    2. Pay-to-Script-Hash (P2SH)
      1. Adresses P2SH
      2. Avantages de P2SH
      3. Script de remboursement et validation
    3. Sortie d’enregistrement de données (RETURN)
    4. Timelocks
      1. Transaction locktime (nLocktime)
      2. Les limitations d’une transaction locktime
      3. Vérifier le temps de verrouillage
      4. Timelocks relatifs
      5. Timelocks relatifs avec nSequence
        1. Définition originale de nSequence
        2. nSequence en tant que timelock relatif imposé par le consensus
      6. Timelocks relatifs avec CSV
      7. Median-Time-Past
      8. Défense timelock contre le fee sniping
    5. Scripts avec contrôle de flux (clauses conditionnelles)
      1. Clauses conditionnelles avec les opcodes VERIFY
      2. Utilisation du contrôle de flux dans les scripts
    6. Exemple de script complexe
  13. CHAPITRE 8. Le réseau Bitcoin
    1. L’architecture réseau pair-à-pair
    2. Types de nœuds et leur rôle
    3. Le réseau étendu Bitcoin
    4. Réseaux de relais Bitcoin
    5. Découverte du réseau
    6. Nœuds complets
    7. Échange d’« inventaire »
    8. Nœuds de vérification de paiement simplifiée (SPV)
    9. Filtres de Bloom
      1. Comment fonctionnent les filtres de Bloom
    10. Comment les nœuds SPV utilisent les filtres de Bloom
    11. Nœuds SPV et confidentialité
    12. Connexions cryptées et authentifiées
      1. Transport Tor
      2. Authentification et cryptage de pair-à-pair
    13. Pool de transactions
  14. CHAPITRE 9. La blockchain
    1. La structure d’un bloc
      1. L’en-tête de bloc
      2. Identificateurs de blocs : hash d’en-tête de bloc et hauteur de bloc
      3. Le bloc de genèse
      4. La liaison des blocs dans la blockchain
      5. Les arbres de Merkle
      6. Arbres de Merkle et vérification de paiement simplifiée (SPV)
    2. Les blockchains de test Bitcoin
      1. Testnet –Terrain de test Bitcoin
        1. Utiliser le testnet
      2. Segnet, le testnet du Segregated Witness
      3. Regtest, la blockchain locale
    3. Utilisation de blockchains de test pour le développement
  15. CHAPITRE 10. Minage et consensus
    1. L’économie Bitcoin et la création monétaire
    2. Le consensus décentralisé
    3. Vérification indépendante des transactions
    4. Les nœuds de minage
    5. Agréger les transactions dans des blocs
      1. La transaction coinbase
      2. Récompense et frais coinbase
      3. Structure de la transaction coinbase
      4. Les données coinbase
    6. Construire l’en-tête de bloc
    7. Miner le bloc
      1. L’algorithme preuve de travail
      2. Représentation de l’objectif
      3. Réobjectiver pour ajuster la difficulté
    8. Miner le bloc avec succès
    9. Valider un nouveau bloc
    10. Assemblage et sélection des chaînes de blocs
      1. Les forks de blockchain
    11. Le minage et la course au hachage
      1. La solution du nonce supplémentaire
      2. Les pools de minage
        1. Les pools dirigés
        2. Pools de minage pair-à-pair (P2Pool)
    12. Les attaques par consensus
    13. Changer les règles de consensus
      1. Hard forks
      2. Hard forks : logiciel, réseau, minage et chaîne
      3. Mineurs divergents et difficultés
      4. Hard forks controversés
      5. Les soft forks
        1. Les soft forks redéfinissant les opcodes NOP
        2. Les autres manières de mettre à jour un soft fork
      6. Critiques des soft forks
      7. Signalisation de soft fork à la version de bloc
        1. Signalisation et activation de BIP-34
        2. Signalisation et activation de BIP-9
    14. Développement du logiciel de consensus
  16. CHAPITRE 11. La sécurité Bitcoin
    1. Principes de sécurité
      1. Développer des systèmes Bitcoin en toute sécurité
      2. Les racines de la confiance
    2. Les bonnes pratiques de sécurité utilisateur
      1. Stockage physique du bitcoin
      2. Portefeuilles matériels
      3. Équilibre du risque
      4. Diversifier les risques
      5. Multisignature et gouvernance
      6. La survie
    3. Conclusion
  17. CHAPITRE 12. Les applications blockchain
    1. Blocs de construction (primitifs)
    2. Applications à partir de blocs de construction
    3. Pièces colorées
      1. Utiliser des pièces colorées
      2. Émettre des pièces colorées
      3. Transactions avec des pièces colorées
    4. Counterparty
    5. Canaux de paiement et canaux d’état
      1. Canaux d’état : concepts de base et terminologie
      2. Exemple de canal de paiement simple
      3. Créer des chaînes sans confiance
      4. Engagements révocables asymétriques
      5. Contrats de verrouillage de temps de hachage
    6. Canaux de paiement routés (réseau Lightning)
      1. Exemple de base du réseau Lightning
      2. Routage et transport du réseau Lightning
      3. Avantages du réseau Lightning
    7. Conclusion
  18. ANNEXE A. Le livre blanc de Bitcoin par Satoshi Nakamoto
    1. Bitcoin, un système de paiement électronique pair-à-pair
      1. Introduction
      2. Les transactions
      3. Serveur d’horodatage
      4. Preuve de travail
      5. Réseau
      6. Incitation
      7. Économiser de l’espace disque
      8. La vérification de paiement simplifiée
      9. Combiner et fractionner les valeurs
      10. Confidentialité
      11. Calculs
      12. Conclusion
    2. Licence
  19. ANNEXE B. Opérateurs de langage de script de transaction, constantes et symboles
  20. ANNEXE C. Les propositions d’amélioration Bitcoin
  21. ANNEXE D. Segregated Witness (Témoin séparé)
    1. Pourquoi le Segregated Witness ?
    2. Comment fonctionne Segregated Witness ?
    3. Soft Fork (rétrocompatibilité)
    4. Exemples de sorties et de transactions de Segregated Witness
      1. P2WPKH
      2. Création du portefeuille P2WPKH
      3. P2WSH
      4. Différencier P2PKH et P2WSH
    5. Mise à niveau vers Segregated Witness
      1. Incorporer le Segregated Witness à l’intérieur de P2SH
      2. P2WPKH dans P2SH
      3. P2WSH dans P2SH
      4. Les adresses Segregated Witness
      5. Identifiants de transaction
    6. Le nouvel algorithme de signature de Segregated Witness
    7. Incitations économiques pour le Segregated Witness
  22. ANNEXE E. Bitcore
    1. Liste des fonctionnalités de Bitcore
    2. Exemples de la librairie Bitcore
      1. Prérequis
      2. Exemples de portefeuilles utilisant bitcore-lib
  23. ANNEXE F. pycoin, ku et tx
    1. Utilitaire clé (KU)
    2. Utilité de transaction (TX)
  24. ANNEXE G. Commandes pour Bitcoin Explorer (bx)
    1. Exemples d’utilisations de commandes bx
  25. Sommaire

Product information

  • Title: Au cœur du Bitcoin
  • Author(s): Andreas M. Antonopoulos
  • Release date: March 2020
  • Publisher(s): Editions First
  • ISBN: 9782412037454