D'abord, ils vous ignorent, puis ils se moquent de vous, puis ils vous combattent, puis vous gagnez. - Mahatma Gandhi.



Le réseau

Une implémentation Bitcoin est un code que les particuliers peuvent exécuter sur leurs ordinateurs pour les transformer en nœuds Bitcoin.
L'implémentation de référence est le code open source connu sous le nom de Bitcoin Core, qui peut être téléchargé à partir du site https://bitcoincore.org/en/download/

Les nœuds Bitcoin interconnectés constituent le réseau Bitcoin.

Représentation du réseau Bitcoin

La fonction d'un nœud est de vérifier de manière indépendante la validité des transactions, en rejetant celles qui ne respectent pas les règles du Bitcoin.


Les Transactions

Une transaction Bitcoin consiste en un message signé numériquement invoquant le transfert d'une certaine quantité d'unités monétaires.

Les signatures numériques sont générées à partir d'une clé privée et de la clé publique correspondante.
Une clé privée est un nombre aléatoire entre 0 et 2^256 (à peu près le nombre d'atomes dans l'univers connu), son entropie est donc de 256 bits.
La clé publique est dérivée de la clé privée par une fonction à sens unique, ce qui signifie qu'il est impossible d'obtenir une clé privée à partir d'une clé publique.

Une clé privée peut chiffrer des données que seule la clé publique correspondante peut décrypter, et vice versa.

La signature numérique d'un message consiste à crypter le message avec la clé privée et à ajouter un texte comprenant le message original (non crypté) ainsi que la clé publique.

Pour vérifier que le propriétaire de la clé privée a autorisé le message, il suffit de décrypter le message à l'aide de la clé publique et de confirmer que le message résultant correspond à l'original.


Les adresses Bitcoin sont des clés publiques codées, conçues pour être plus lisibles et résistantes aux erreurs de frappe.

La génération et le stockage des clés privées, ainsi que de leurs clés publiques et adresses correspondantes, sont des processus simples qui peuvent être facilités par des programmes appelés portefeuilles.

Les nœuds maintiennent une mempool, qui est une liste de demandes de transactions, et stockent une copie du grand livre distribué connu sous le nom de Blockchain, qui contient les transactions confirmées.

Chaque nœud obtient les soldes actuels, appelés UTXO set, à partir de sa propre copie de la Blockchain.


Preuve de Travail

En cas de transactions conflictuelles, la validité devrait être déterminée par l'ordre chronologique.
Mais les nœuds ne peuvent pas prouver mathématiquement l'ordre de la sollicitation, et comme les demandes de transaction sont propagées comme des rumeurs entre les nœuds et peuvent être publiées par n'importe quel nœud, différents nœuds reçoivent ces commandes à des moments différents et dans un ordre chronologique variable.
Par conséquent, si les nœuds ne s'accordent pas sur la version de la transaction qui doit être reconnue comme valide, il y a double dépense, ce qui entraîne la coexistence de systèmes monétaires différents.

La principale innovation de Bitcoin pour résoudre ce problème est le mécanisme connu sous le nom de Preuve de Travail. Ce mécanisme permet de se passer d'une autorité centrale en assurant une rotation probabiliste du pouvoir d'exécuter des demandes de transaction. Différents nœuds miniers gagnet ce pouvoir en fonction de leur puissance de calcul relative.

Cela fonctionne comme une loterie décentralisée continue où les participants acquièrent des "tickets" en utilisant une ressource impossible à falsifier : l'énergie.

Les systèmes alternatifs à la Preuve de Travail s'appuient sur des ressources de leur propre système, ce qui les rend peu sécurisés. Ces systèmes sont vérifiés par des données qui peuvent être falsifiées à peu de frais et sont vulnérables aux attaques où une seule entité contrôle clandestinement la majorité des nœuds.
Par conséquent, ces systèmes nécessitent une autorité pour employer les ressources humaines, entraînant une bureaucratie et des privilèges.

Les mécanismes de consensus qui n'impliquent pas de travail impliquent plutôt la gouvernance.


Blocs

Une fois qu'une demande de transaction est incluse dans un bloc de données qui est vérifié, copié et propagé indépendamment par chaque nœud, elle est considérée comme exécutée.

Cependant, la coexistence de deux blocs concurrents pendant quelques minutes est possible. Ce problème est résolu lorsqu'un nouveau bloc est créé, car chaque nouveau bloc doit être lié au dernier bloc précédent, et les nœuds suivent la chaîne avec le plus de travail cumulé, généralement la chaîne la plus longue.
Par conséquent, la probabilité qu'un bloc soit rejeté diminue avec sa profondeur dans la chaîne, et chaque bloc suivant augmente la probabilité d'immuabilité, appelée confirmation.

Les transactions effectuées dans les blocs rejetés reviennent dans la liste des demandes de transactions si elles ne sont pas incluses dans les nouveaux blocs.

Le créateur de chaque bloc reçoit une récompense, composée de frais de transaction et d'un subside via une transaction appelée coinbase.
Chaque demande de transaction indique les frais à payer pour prioriser son exécution.
Le subside est constitué de nouvelles unités de bitcoin, dont l'émission est divisée par deux tous les 210 000 blocs (environ 4 ans). Il en résulte un taux d'inflation monétaire décroissant pour atteindre un maximum de 21 millions de bitcoins.

L'intégrité des informations contenues dans les blocs est facilement vérifiable grâce à l'utilisation de fonctions de hachage cryptographiques. Ces fonctions unidirectionnelles transforment toute entrée de données numériques en données de taille fixe appelées hachage.
Les hachages sont totalement différents les uns des autres, même si les données d'entrée ne présentent que de légères différences.
Dans Bitcoin, la fonction de hachage la plus couramment utilisée est SHA256, qui produit un hachage de 256 bits. Par exemple, l'identifiant (ID) de transaction est le double hachage SHA256 des données de la transaction, et l'identifiant du bloc est le double hachage SHA256 des données de l'en-tête du bloc.


Données contenues dans l'en-tête du bloc :

1. # Le hachage de l'ID du bloc précédent.
2. # Le hachage combiné de tous les hachages de transactions, connu sous le nom de Racine d'un Arbre de Merkle.
3. N # Nonce et cible de hachage.
4. T Horodatage.

Chaque bloc se compose de son en-tête et des transactions avec leurs hachages respectifs :

Un bloc qui inclut son en-tête et un ensemble de transactions

1. Le hachage de l'ID du bloc précédent:

Il forme une chaîne dans laquelle le hachage de chaque nouveau bloc comprend l'historique complet des transactions.
Toute modification d'un bloc l'invalide ainsi que tous les blocs suivants.
Comme un moustique dans l'ambre, plus un bloc est enfoncé dans la chaîne, plus il devient inamovible.


2. La racine d'un arbre de Merkle:

Elle permet de vérifier facilement l'intégrité d'une transaction.


3. Nonce et cible de hachage:

Nonce:

Pour extraire un bloc, il faut trouver un nonce qui, combiné au reste des données d'en-tête du bloc, donne un hachage (Block ID) inférieur à un seuil spécifié, appelé cible de hachage.

Par exemple, si l'objectif est d'obtenir un hachage commençant par 00 à partir de données contenant le texte "bitcoin", des tentatives pourraient être faites avec "bitcoin-1", "bitcoin-2", et ainsi de suite jusqu'à ce qu'un nonce réussi soit trouvé.
Essayez-le ici!.
Dans cet exemple, le nonce serait 53.

L'ID du bloc est donc une preuve de travail facilement vérifiable.
Les mineurs dépensent de l'énergie pour proposer des transactions, tandis que l'exécution réelle des transactions se fait de manière décentralisée par l'intermédiaire des nœuds.

Cible de hachage:

Sa fonction est de maintenir un taux moyen de production de blocs de 10 minutes. Cela garantit une propagation et une validation relativement rapides des blocs, réduisant les blocs orphelins et décourageant les incitations à la centralisation de l'exploitation minière. La conception empêche les gros mineurs d'obtenir des avantages significatifs en construisant leurs propres blocs.
En outre, un flux de données minimal minimise les coûts d'exploitation des nœuds et facilite la réplication des informations.


4. Horodatage:

Il s'agit de l'heure approximative à laquelle chaque bloc a été extrait par son mineur respectif.
Tous les 2016 blocs, le réseau calcule la différence de temps entre le premier et le dernier horodatage afin d'ajuster l'objectif de hachage en fonction de l'évolution de la puissance minière totale.

La cible de hachage peut être multipliée ou divisée par un maximum de 4 pour limiter l'impact de certaines attaques de double dépense.

Les horodatages ne sont pas exacts et n'augmentent pas nécessairement dans le temps d'un bloc à l'autre. Pour être accepté par un nœud, un horodatage doit être postérieur à la médiane des 11 horodatages précédents et doit être antérieur de deux heures dans le futur selon l'heure actuelle du nœud.


Grâce à ce mécanisme, pour la première fois dans l'histoire, l'inflation d'un bien monétaire est prévisible.

Graphique du taux d'inflation de Bitcoin


Le processus de minage

La technologie Bitcoin utilise l'électricité pour éviter de consommer des ressources humaines. Elle libère du temps humain.

Lorsque nous pouvons sécuriser un réseau financier par l'informatique plutôt que par des comptables, des régulateurs, des enquêteurs, des policiers et des avocats, nous passons d'un système manuel, local et de sécurité inconsistante à un système automatisé, mondial et beaucoup plus sécurisé. — Nick Szabo.

Les mineurs de Bitcoin utilisent l'énergie de la même manière que les pompiers utilisent l'eau pour éteindre un incendie.

Le minage de Bitcoin se tourne vers les sources d'énergie qui libèrent une énergie bloquée, qui autrement serait gaspillée. Les mineurs de Bitcoin fournissent une charge très flexible et interruptible, capable de fonctionner n'importe où.
À long terme, à mesure que la concurrence augmente et que la rentabilité du minage diminue, seule l'utilisation d'énergie excédentaire restera économiquement viable.


La minimisation de la gouvernance financière

La technologie Bitcoin permet de décentraliser le contrôle d'un système monétaire, minimisant ainsi la gouvernance financière. Bitcoin fonctionne selon des règles sans gouvernants.
Se demander "qui contrôle Bitcoin?" revient à demander "qui contrôle une langue?".
Les cypherpunks répugnent à la gouvernance, c'est pourquoi son absence a toujours été l'objectif. Cette absence renforce l'immuabilité de la sécurité du réseau et la crédibilité de sa politique monétaire.

"Oui, reculez un peu, vous m'enlevez la lumière du soleil". - Réponse du philosophe Diogène à l'offre d'Alexandre le Grand de lui accorder n'importe quel souhait.

Dans Bitcoin, le consensus émerge lorsque différents ordinateurs exécutent simultanément le même protocole. En maximisant le rôle du protocole de consensus, le consensus social est impitoyablement minimisé.
La conception de base de Bitcoin est immuable, seules les innovations technologiques qui améliorent la sécurité sont justifiées pour être progressivement incluses dans son code. Avancer lentement est un dogme.

La nature du bitcoin est telle qu'une fois la version 0.1 publiée, la conception de base était gravée dans le marbre pour le reste de sa durée de vie. - Satoshi Nakamoto.

Nous devons traiter les logiciels Bitcoin avec le même respect que les logiciels de réacteurs nucléaires. - Hugo Nguyen.

Ce genre de choses est difficile. C'est subtil. Si vous êtes frustrés par la lenteur de Bitcoin, laissez-moi vous dire que Bitcoin va trop vite. La cryptographie est difficile et effrayante, et nous devons nous assurer que nous avançons lentement. - Andrew Poelstra.


Mises à jour

Les mises à jour de sécurité de Bitcoin suivent un processus méticuleux :

1. Recherche : Alors que le déploiement de nouvelles fonctionnalités dans Bitcoin est incroyablement lent (pour de bonnes raisons), le rythme de la recherche est écrasant. - Andrew Poelstra.

2. Proposition : Les mises à jour sont proposées pour une revue par les pairs, un remue-méninges, le déploiement sur des sidechains/test-nets et un développement itératif.

3. Consensus : Si les propositions suscitent de l'intérêt, s'il y a un consensus écrasant parmi les participants du réseau, et si les contributeurs logiciels les plus actifs les acceptent à l'unanimité, les mises à jour sont implémentées et testées.

4. Déploiement en Open Source : Les mises à jour sont déployées en tant que code open source, permettant aux utilisateurs de les vérifier de manière indépendante.

5. Exécution : Les mises à jour sont appliquées par les nœuds. Chaque opérateur de nœud doit installer manuellement les mises à jour s'il choisit de les adopter.


Le terme "fork" se réfère à un changement dans les règles de consensus :

- Soft Fork : Resserre les règles de consensus. Les blocs considérés comme valides par les nœuds exécutant l'ancienne version peuvent être considérés comme invalides par ceux exécutant la nouvelle version. Cela n'implique pas une mise à niveau simultanée de l'ensemble du réseau.

- Hard Fork : Assouplit les règles de consensus. Les blocs considérés comme invalides par les nœuds exécutant l'ancienne version peuvent être considérés comme valides par ceux exécutant la nouvelle version. Il nécessite que chaque nœud effectue une mise à niveau, en faisant une solution de dernier recours contre un problème de sécurité extrême dans la blockchain.

Plus le risque procédural et le coût mental sont élevés, moins il y a d'incitations à effectuer une mise à niveau.

En cas de défaillance catastrophique et générale de la technologie de Bitcoin, des développeurs influents, partageant, espérons-le, des principes communs, pourraient contribuer à déployer un code qui migrerait les règles de base de Bitcoin vers une nouvelle technologie. Ce scénario, souvent appelé "l'option nucléaire", suggère que dans de telles circonstances, le concept de Bitcoin perdurerait probablement malgré les changements technologiques.

Si SHA-256 était complètement cassé, je pense que nous pourrions nous mettre d'accord sur ce qu'était la chaîne de blocs honnête avant que les problèmes ne commencent, la bloquer et continuer à partir de là avec une nouvelle fonction de hachage. - Satoshi Nakamoto.


La grande réussite de la technologie Bitcoin est de faire respecter automatiquement les droits de propriété dans un système monétaire.