Cet article permet d'introduire la sémantique utilisée sur Bitcoin et tente de définir les mots parfois complexes que vous voyez défiler sur Twitter ou que vous entendez dans vos podcasts préférés, sans comprendre en quoi ils consistent.
L'objectif est notamment de comprendre certains mots techniques utilisés dans mes ebooks, pour lesquels je ne reviens pas tout le temps sur la signification. L’idée n’est pas forcément de lire entièrement cet article d'un seul trait, mais plutôt d’y revenir lors de la lecture de mes ebooks si vous y rencontrez un terme que vous ne connaissez pas.
La plupart des mots sont très techniques, vous n’êtes évidemment pas dans l’obligation de tout comprendre pour utiliser Bitcoin, cela va de soi. Certains termes et concepts sont simplement survolés lors de leur définition et seront approfondis et expliqués plus en détail dans mes ebooks.
Cette liste de mots est classée par ordre alphabétique afin de faciliter vos futures recherches. N’hésitez pas à conserver cette page parmi vos favoris sur votre navigateur. En cas de besoin, tapez simplement le raccourcis Ctrl+F pour rechercher un mot précis au sein de toute la page.
Si vous recherchez un mot technique sur Bitcoin et que vous n'en trouvez pas la définition sur cette page, ou si vous avez lu ma série d'ebooks Bitcoin Démocratisé et que vous y rencontrez un mot pour lequel vous ne comprenez pas le sens, n'hésitez pas à m'envoyer un petit message pour me le signaler afin que je puisse l'ajouter dans cette liste.
Définitions et jargon technique :
Ajustement (ou reciblage) : Évènement qui intervient tous les 2016 blocs (environ deux semaines) qui vient augmenter ou baisser le facteur de difficulté (également nommé la cible de difficulté). L’ajustement a pour objectif de conserver la vitesse de minage d’un bloc à 10 minutes.
Adresse : Chaîne de caractères, dérivée d’une clé publique, permettant à elle seule de recevoir des bitcoins. Elle est obtenue en hachant une clé publique et en appliquant un format spécifique (Base58, Bech32 ou Bech32m). Une adresse Bitcoin est en quelque sorte un identifiant à usage unique pour recevoir des bitcoins de la part d’un autre utilisateur.
Arbre de Merkle (ou arbre de hachage) : Hiérarchisation de données par concaténations et hachages successifs permettant d’aboutir à un résumé des données présentes en base de la pyramide. Ce résumé est nommé "racine". Dans un bloc Bitcoin, ces données sont les transactions.
ASIC (Application-specific integrated circuit) : Circuit intégré spécialisé dans la réalisation de tâches uniques. Une puce ASIC sur un mineur Bitcoin sera un circuit intégré spécialisé uniquement dans le calcul de la fonction SHA256, fonction permettant de calculer le hash de l'entête d'un bloc candidat afin de s'adonner à la preuve de travail. Par extension, ce terme est utilisé dans le langage courant pour désigner directement le périphérique qui accueille la puce ASIC.
Backdoor (Porte dérobée) : Au sein d'un logiciel, d'un système, d'une fonction ou d'un algorithme, fait référence à une information ou un un élément secret permettant de contourner les mesures de sécurité normales afin de disposer d'un accès privilégié.
Base : Système de numération. Par exemple, Base 2 désigne un système binaire, Base 10 désigne un système décimal, et Base 16 désigne un système hexadécimal.
Base58check : Méthode d’encodage Base58 avec somme de contrôle. Cet encodage est utilisé pour formater les adresses de réception Bitcoin correspondant à des standards Legacy (P2PKH) et Script (P2SH). Ces adresses commencent toujours par un "1" ou un "3".
BECH32 : Méthode d’encodage inspirée de Base32 avec une somme de contrôle calculée à partir d'un code BCH (Bose–Chaudhuri–Hocquenghem). Cet encodage est utilisé pour formater les adresses de réception Bitcoin correspondant à des standards Segwit. Ces adresses sont souvent nommées “adresses bc1” car elles commencent toujours par ces trois caractères sur le réseau principal. Ce format est celui utilisé pour le script P2WPKH et P2WSH.
Plus récemment, une version résistante à une attaque par modification avec checksum valide a été proposée : BECH32M. Cette variante est utilisée pour les adresses Taproot (P2TR) / SegwitV1 et plus.
BECH32 est également utilisé dans un autre registre pour encoder les factures sur le Lightning Network.
BIP (Bitcoin Improvement Proposal) : Proposition d'amélioration du protocole Bitcoin. C’est un format de conception d’une proposition d'amélioration ou de modification du protocole Bitcoin. Le BIP est devenu le moyen standard pour communiquer des idées d'amélioration.
Bit : Unité d’information pouvant prendre une parmi deux valeurs : 0 ou 1. Diminutif de "binary" et "digit".
bitcoin (“b” minuscule) : Unité de compte utilisée pour les échanges sur le réseau de paiement éponyme Bitcoin. On peut le rencontrer sous ses formes abrégées : BTC ou XBT.
Bitcoin (“B” majuscule) : Nom du système de paiement électronique pair à pair, du protocole et du réseau.
Bitcoin Core : Client initial et principal de Bitcoin publié en 2009 par Satoshi Nakamoto.
Bloc candidat : Bloc construit par un mineur, regroupant des transactions en attente de confirmation, mais dont l’entête actuelle ne permet pas encore de trouver un hash valide.
Block (bloc) : Groupement de transactions au sein d’un espace virtuel afin de les exécuter, les horodater et les ancrer au sein de la chaîne de preuve de travail (ou chaîne de blocs).
Block header (entête de bloc) : Ensemble d’informations présentes dans l’entête d’un bloc : hash de l’entête précédente, horodatage, racine de Merkle, facteur de difficulté, version et nonce. Le hachage de l’entête de chaque bloc permet de s’adonner à la preuve de travail. Ce hash, une fois validé, se retrouvera dans l’entête du bloc suivant afin de lier chaque bloc chronologiquement.
Chaîne de preuve de travail (PoW Chain) : Base de données regroupant l’ensemble des blocs validés par la preuve de travail, classés par ordre chronologique. Cette chaîne héberge donc l’ensemble des transactions Bitcoin.
Checksum (somme de contrôle) : Petite quantité de données issues d’un hash ou d'un code, calculées à partir d’un segment de données de quantité arbitraire, permettant de vérifier que l’intégrité des informations dudit segment a été préservée suite à une opération. On utilise des checksums sur le protocole Bitcoin notamment pour la phrase de récupération (mnémonique) ou encore pour la dérivation d’une adresse.
Clé privée : Nombre de 256 bits pseudo-aléatoire pour les portefeuilles JBOK, ou nombre de 256 bits dérivé d’une graine pour les portefeuilles HD. Il permet de dériver une clé publique qui lui sera unique et associée, en utilisant l'algorithme ECDSA ou Schnorr. La clé privée permet dans Bitcoin de débloquer les UTXO qui sont associés à sa clé publique, et donc de dépenser des bitcoins, en produisant une signature cryptographique permettant de remplir les conditions de dépense.
Clé publique : Nombre dérivé mathématiquement de sa clé privée. La clé publique permet sur le protocole Bitcoin de recevoir des fonds en créant une condition de dépense. Aujourd’hui, les clés publiques sont majoritairement utilisées pour bloquer des fonds via leur hash : les adresses Bitcoin.
Code de chaîne : Information associée à une paire de clés qui intervient dans le processus de dérivation des clés enfants au sein d’un portefeuille HD. Il est obtenu soit en hachant la graine du portefeuille, et en prenant la moitié des bits de droite. Dans ce cas on parle de code de chaîne maître. Ou bien, il peut être obtenu en hachant une clé parent avec son code de chaîne parent et un index, on parle alors de code de chaîne enfant.
Il est impossible de dériver des clés sans en avoir la connaissance. Il permet d'introduire des données pseudo-aléatoires dans le processus de dérivation.
Coinbase (transaction) : Transaction sans Input permettant de débloquer une récompense pour chaque mineur qui valide un bloc. Elle est constituée d’une part de la récompense Coinbase, qui mène à la création de nouveaux bitcoins, et d'autre part des frais des transactions incluses dans ledit bloc.
CoinJoin (mixage) : Structure de transaction spéciale permettant de casser l’historique et le traçage de bitcoins en les mélangeant avec d’autres.
Concaténation ( || ) : Action de mettre bout à bout deux chaînes de bits ou deux opérandes. Cette opération se note “||”. Par exemple, la concaténation de 45 avec 87 sera égale à 4587. Nous noterons : 45 || 87 = 4587.
Distribué : Qualité d’un réseau informatique pour lequel les ressources et le pouvoir sont équitablement réparties entre chaque utilisateur. Contrairement à un réseau décentralisé, où le pouvoir est partiellement réparti mais sur lequel il reste une autorité centrale au pouvoir supérieur à celui des utilisateurs, un réseau distribué repose entièrement sur les utilisateurs sans aucune autorité centrale. Bitcoin n’est pas décentralisé, il est distribué.
ECDSA (Elliptic Curve Digital Signature Algorithm) : Algorithme de signature électronique basé sur la cryptographie sur les courbes elliptiques. Cet algorithme est utilisé sur le protocole Bitcoin pour dériver une clé publique à partir d’une clé privée, et pour signer une transaction avec une clé privée. La courbe elliptique utilisée est secp256k1, définie par l’équation y² = x³ + 7.
Cet algorithme est celui utilisé dès les débuts de Bitcoin. Aujourd’hui, il partage sa place avec le protocole de Schnorr, autre algorithme de signature électronique introduit avec Taproot en 2021.
Entropie : Source de désordre permettant de générer un nombre pseudo-aléatoire qui constitue le point de départ d’un portefeuille HD ou d’une clé privée. L'entropie est également une mesure de la quantité de hasard d'une séquence de bits.
Facteur de difficulté (ou cible de difficulté) : Nombre ajustable de 256 bits (64 octets) déterminant une limite d’acceptabilité pour le hash de l’entête des blocs. C'est-à-dire que pour qu’un bloc soit validé, le hash de son entête doit être numériquement inférieur à la cible de difficulté. Cette cible est ajustée tous les 2016 blocs (environ deux semaines), c’est ce qu’on appelle l’ajustement. L’objectif est de conserver un temps de minage par bloc égal à 10 minutes.
Fonction (ou algorithme) de hachage : Fonction mathématique qui transforme un message de taille arbitraire en entrée en une empreinte de taille fixe en sortie. Elle dispose de trois caractéristiques : la fonction mathématique doit être irréversible, résistante à la falsification et résistante à la collision. Exemple : SHA256.
Frais de transaction (fees) : Incitatif variable inclut dans une transaction pour récompenser le mineur qui confirme ladite transaction. Les frais sont le résultat de la différence entre le montant total des inputs et le montant total des outputs d’une transaction. Ils sont exprimés en sats/vBytes, ce qui veut dire que les frais ne dépendent pas du montant des bitcoins envoyés mais de la taille de la transaction. Ils sont choisis librement par l'émetteur d’une transaction et déterminent la vitesse d’inclusion de la transaction dans un bloc, et donc la vitesse de confirmation de la transaction.
Genèse (bloc) : Le bloc Genesis est le premier bloc de la chaîne de preuve de travail Bitcoin. Validé le 3 Janvier 2009 par Satoshi Nakamoto, il contient la célèbre phrase “The Times 03/Jan/2009 Chancellor on brink of second bailout for banks” qui ancre à jamais l’idéologie initiale du créateur anonyme de Bitcoin.
Graine : Suite alphanumérique de 512 bits qui constitue la base d’un portefeuille HD (déterministe hiérarchique). A partir de la graine, il sera possible de dériver l’intégralité des paires de clés d’un portefeuille Bitcoin. Elle est obtenue en appliquant la fonction PBKDF2 sur la phrase mnémonique et sur la passphrase.
Halving : Événement qui intervient tous les 210 000 blocs (environ 4 ans) qui vient diviser par deux la récompense coinbase pour les mineurs et donc l'émission de nouveaux bitcoins pour chaque nouveau bloc.
Hardware Wallet : Portefeuille Bitcoin matériel. On parle de hardware wallet lorsque la phrase mnémonique d’un portefeuille est sauvegardée sur un périphérique informatique dédié à cette tâche unique et ne disposant pas de connexion internet. Exemple : Ledger Nano, Trezor One, Coldcard ou encore Passport…
Hash, condensat, condensé, empreinte ou haché : Résultat d'une fonction de hachage (output).
HMAC-SHA512 : HMAC (Hash-based Message Authentication Code) est un algorithme cryptographique permettant de calculer un code d’authentification en utilisant une combinaison d’une fonction de hachage et d’une clé secrète. Pour HMAC-SHA512, la fonction de hachage utilisée sur HMAC est SHA512. Un message de taille arbitraire en entrée donnera donc un hash de 512 bits. Cette fonction est utilisée sur le protocole Bitcoin dans les étapes de dérivation du portefeuille.
Horodatage (timestamp) : Point de création d’un bloc dans le temps. Cette valeur est comptée en secondes depuis l’ère Unix (Unix Epoch).
Index (ou numéro de clé) : Entier de 32 bits utilisé dans la fonction de dérivation HMAC-SHA512 dans le cadre de la dérivation de paires de clés enfants à partir d’une clé parent. Ce nombre permet de différencier les clés enfants sœurs au sein d’un portefeuille HD.
Input (entrée) : Au sein d’une transaction Bitcoin, correspond aux UTXO qui seront consommés en entrée afin de résulter en de nouveaux UTXO en Outputs (sorties) de transaction.
De manière plus générale, l'input désigne l'entrée ou les opérandes d'une fonction.
JBOK (portefeuille) : Les portefeuilles JBOK (Just a Bunch Of Keys) étaient ceux utilisés initialement sur le protocole Bitcoin. Contrairement aux portefeuilles HD (déterministes hiérarchiques) actuels, ils étaient composés d’un agglomérat anarchique et pseudo-aléatoire de paires de clés, ne disposant d’aucun lien entre elles. Aujourd’hui ces portefeuilles ne sont pratiquement plus utilisés.
Lightning Network : Réseau de surcouche du réseau Bitcoin permettant de réaliser des échanges à partir de l’unité de compte bitcoin, sans passer à chaque fois par le réseau Bitcoin principal. Ce réseau permet de réaliser des paiements rapides à frais réduits.
Mapper : Association des données appartenant à un ensemble avec les données appartenant à un autre ensemble, de manière que les données du premier ensemble puissent se substituer à celles du second ensemble, ou encore que l’on puisse passer harmonieusement des premières aux secondes.
Mempool : Espace virtuel de regroupement des transactions en attente d’inclusion dans un bloc. On dit qu’une transaction est dans la Mempool entre le moment où elle est diffusée aux nœuds du réseau et le moment où elle est incluse dans un bloc valide. La Mempool c’est donc l’espace virtuel où les mineurs viennent piocher les transactions en attente pour construire un bloc candidat.
Mnémonique (phrase) : Suite de mots, généralement du nombre de 12 ou de 24, générée de manière pseudo-aléatoire à partir d’une entropie et d’une checksum. La mnémonique permet, avec la passphrase optionnelle, de dériver l’intégralité des clés d’un portefeuille HD, et donc d’accéder aux bitcoins associés à ce portefeuille. Elle est parfois également nommée : “seed phrase”, “phrase de récupération” ou encore “phrase secrète”.
Mineur : Ordinateur qui s’adonne au processus de minage. Par extension, personne qui possède un ordinateur qui s’adonne au processus de minage.
Mining (Minage) : Protocole informatique qui consiste à réaliser une preuve de travail afin d’ancrer les transactions dans un bloc et sécuriser le réseau Bitcoin.
Noeud : Ordinateur qui exécute Bitcoin, qui héberge la chaîne de preuve de travail, qui valide et qui diffuse les transactions.
Nonce (Number only used once) : Nombre arbitraire (généralement pseudo-aléatoire) destiné à être utilisé une seule fois puis changé.
Il est utilisé au sein du protocole Bitcoin dans le processus de minage. Il est présent une première fois dans l’entête des blocs candidats et une seconde fois dans la transaction Coinbase.
Ces nonces sont changés par les mineurs afin d’obtenir un hash de l’entête du bloc candidat différent, dans l’espoir de trouver un hash inférieur au facteur de difficulté, et donc d’empocher la récompense coinbase et les frais de transaction.
Output (Sortie) : Au sein d’une transaction Bitcoin, correspond aux UTXO créés en sortie de transaction grâce à la consommation des Inputs (entrées) de la transaction.
De manière plus générale, l'output désigne la sortie ou le résultat d'une fonction.
P2PK (Pay to Public Key) : Standard de script de transaction permettant de bloquer des bitcoins sur une clé publique. C’est le script initialement utilisé par Satoshi Nakamoto dans les premiers blocs de Bitcoin.
P2PKH (Pay to Public Key Hash) : Standard de script de transaction qui implique d’envoyer des bitcoins vers un hash d’une clé publique, c'est-à-dire une adresse. Ce standard a été inventé par Satoshi Nakamoto. Ces adresses sont encodées en Base58check et commencent toujours par 1.
P2SH (Pay to Script Hash) : Standard de script de transaction. Les adresses P2SH peuvent inclure des conditions de dépenses et fonctionnalités additionnelles. Par exemple, ce type de script peut être utilisé pour des adresses multi-signatures. Ces adresses commencent toujours par 3 et sont encodées en Base58.
P2TR (Pay to Taproot) : Standard de script de transaction, introduit avec Taproot en novembre 2021. Les adresses PT2R sont encodées en Bech32m et commencent toujours par bc1p.
P2WPKH : Standard de script de transaction, introduit avec SegWit en 2017. Ces adresses sont encodées en Bech32 et commencent toujours par bc1q.
P2WSH : Standard de script de transaction similaire à P2SH, intégrant les spécifications de SegWit. Ces adresses sont encodées en Bech32 et commencent toujours pas bc1q.
Pair à Pair (P2P) : Système ou réseau fonctionnant comme une collectivité organisée où chaque utilisateur est à la fois client et serveur.
Passphrase : Sel cryptographique optionnel d’une taille arbitraire. Elle permet d'améliorer la sécurité d’un portefeuille HD en ajoutant un mot de passe libre qui, avec la phrase mnémonique, permet de calculer la graine. La passphrase est parfois également nommée : “two-factor seed phrase”, “password”, “seed extension”, “extention word” ou encore “13ème ou 25ème mot”. Voir mon article : Tout savoir sur la Passphrase Bitcoin.
PBKDF2 (Password-Based Key Derivation Function 2) : Fonction de dérivation de clé qui applique une fonction choisie (fonction de hachage ou HMAC) à un message avec un sel cryptographique et répète l’opération plusieurs fois afin de générer une clé. Cette fonction est utilisée sur le protocole Bitcoin avec la fonction HMAC-SHA512 afin de générer la graine d’un portefeuille HD à partir de la phrase mnémonique. Le sel cryptographique utilisé est la passphrase.
Pool de minage : Groupement de mineurs en une seule organisation afin de mettre en commun leurs puissances de calcul et leurs gains issus des transactions Coinbase des blocs validés par le groupe.
Proof-of-Work (PoW) : Mécanisme de validation des blocs de la chaîne Bitcoin permettant d’une part de faire face à des attaques de la part d’utilisateurs malveillants en rendant couteux (financièrement, physiquement et humainement) une réorganisation, de garantir un rythme régulier de validation des blocs afin de laisser le temps aux nœuds de se synchroniser et de garantir un choix pseudo-aléatoire du validateur de bloc afin d'éviter la censure et la triche.
Pseudo-aléatoire : Caractéristique d’un nombre ou d’une suite qui dispose de propriétés s’approchant des propriétés idéales d’une suite aléatoire.
Racine de Merkle : Condensat ou top hash contenant un résumé des informations présentes dans l’Arbre de Merkle (ou arbre de hachage). Dans Bitcoin, la racine de Merkle résultant des transactions d’un bloc est incluse dans l’entête dudit bloc.
RIPEMD160 (RACE Integrity Primitives Evaluation Message Digest) : Fonction de hachage qui produit un condensat de 160 bits. Elle est utilisée dans le protocole Bitcoin pour dériver une adresse à partir d’une clé publique, après avoir appliqué SHA256. Cette association des deux fonctions de hachages est appelée HASH160 au sein du protocole Bitcoin.
Satoshi ou Sat : Sous unité du bitcoin permettant d’établir des prix. C’est également la plus petite unité sur le réseau Bitcoin. Ainsi 1 bitcoin = 100 000 000 Sats. Son nom vient de l’inventeur du Bitcoin : Satoshi Nakamoto.
Cette unité de compte est généralement celle préférée sur le Lightning Network, réseau plus disposé aux petits paiements.
Schnorr (signatures de) : Algorithme de signatures électroniques basé sur la cryptographie sur les courbes elliptiques. Cet algorithme est utilisé sur le protocole Bitcoin pour dériver une clé publique à partir d’une clé privée, et pour signer une transaction avec une clé privée. La courbe elliptique utilisée est secp256k1, définie par l’équation y² = x³ + 7.
Cet algorithme est utilisé sur le protocole Bitcoin depuis Novembre 2021 avec la mise à niveau Taproot.
SegWit (Segregated Witness) : Mise à niveau majeure du protocole Bitcoin intervenue en Juillet 2017.
SHA256 (Secure Hash Algorithm 256) : Fonction de hachage qui produit en sortie un condensat de 256 bits. Conçue au début des années 2000 par la NSA, elle est aujourd’hui un standard fédéral de traitement des données aux États-Unis. Elle est utilisée dans le protocole Bitcoin a de très nombreuses reprises. Elle est notamment utilisée pour hacher l’entête des blocs, pour dériver une adresse d'une clé publique ou encore pour agréger les transactions au sein de l’Arbre de Merkle. Lorsqu’elle est utilisée deux fois d'affilée, comme dans le cas de l’Arbre de Merkle ou du minage, on la nomme HASH256.
Signature : Preuve cryptographique à divulgation nulle de propriété d’une clé privée. Une signature est réalisée à l’aide d’une clé privée et du hash d’une transaction.
Sur Bitcoin, elle est utilisée pour prouver la possession d'une clé privée sans la dévoiler, afin de justifier la propriété de bitcoins et de remplir des conditions de dépenses.
Software Wallet : Portefeuille Bitcoin logiciel. On parle de software wallet (ou hot wallet) lorsque la mnémonique d’un portefeuille Bitcoin est conservée sur un appareil informatique, via un logiciel, qui n’est pas dédié uniquement à une utilisation de Bitcoin et qui est connecté à internet. Exemple : portefeuille Samourai sur votre téléphone.
Surcouche (layer) : Réseau construit en extension au-dessus du réseau Bitcoin. Ces réseaux utilisent le réseau Bitcoin pour leur propre protocole et sont donc dépendant de celui-ci. En revanche, l’inverse n’est pas vrai. Exemple : Le Lightning Network.
Taproot : Mise à niveau majeure du protocole Bitcoin intervenue en Novembre 2021.
TX (Transaction) : Une transaction est un ensemble d’inputs (entrées) consommés et d’outputs (sorties) créés, permettant un échange d’unités de comptes bitcoin sur le réseau éponyme en modifiant des conditions de dépenses.
UTXO (Unspent Transaction Output) : Sortie de transaction non dépensée. Les UTXO représentent des fractions de bitcoins pas encore dépensées. Ils représentent donc des bitcoins qui appartiennent à un utilisateur et qui sont bloqués par un script (condition de dépense) sur une paire de clés.
Wallet (portefeuille) : Ensemble virtuel de paires de clés permettant un accès à des bitcoins sur le réseau éponyme.
XOR (⊕) : Fonction “OU exclusif” basée sur les opérations Booléennes qui permet à partir de deux opérandes qui peuvent avoir chacun la valeur de “vrai” ou de “faux”, de donner un résultat qui a lui-même la valeur “vrai” uniquement si les deux opérandes ont des valeurs différentes. Par exemple 1 ⊕ 0 sera égal à 1. Autre exemple : 10110 ⊕ 01110 = 11000.
xpub (clé publique étendue) : Clé publique parent d’un compte Bitcoin au sein d’un portefeuille HD. Elle est obtenue en concaténant une clé publique parent et le code de chaîne parent associé. Elle permet de dériver l’ensemble des clés publiques enfants non renforcées d’un compte, sans donner accès aux clés privées associées. Elle peut être utilisée notamment pour faire un portefeuille watch-only.