Est-il possible de deviner la clé privée de quelque'un pour voler ses bitcoins ?
Imaginons un super-ordinateur qui peut générer 1 milliard de clés privées par seconde (attaque en force brute).
Pour découvrir toutes les
Les lois physiques de la thermodynamique ne permettent pas de construire un super-ordinateur suffisamment puissant qui permettrait d’obtenir la clé privée à partir de sa clé publique…il n’y a pas assez d’énergie dans notre système solaire pour construire une telle machine.
Les clés privées (bitcoins) sont sécurisés par les lois de l’Univers.
Peut-être qu’un futur ordinateur quantique sera capable un jour de reconstituer la clé privée à partir de la clé publique ou de générer l'ensemble des
Une adresse est un identifiant unique vers lequel on peut envoyer des bitcoins.
Une adresse peut être considérée comme l'équivalent d'un numéro de compte bancaire IBAN ou d’une adresse email.
C'est l'algorithme de cryptographie ECDSA qui se charge de réaliser la création et vérification des signatures.
Une signature numérique est consitutée du hash des données de la transaction signé avec le clé privée en employant ECDSA.
digital signature = transaction data + private key
verification = digital signature + transaction data + public key
Dépôt de 0.9 BTC en 1 transaction.
1 UTXO
Dépôt de 0.9 BTC en 9 transactions.
9 UTXO
Si vous possédez des bitcoins, vous possédez en réalité des UTXOs.
Les UTXOs sont les outputs (sorties) des transactions passées en bitcoin, qui peuvent alors être utilisées comme inputs (entrées) dans les transactions futures en bitcoin.
Si Bob veut transférer $10 à Alice, il peut le faire en lui remettant un billet de $10:
Si Bob veut transférer 0.1 BTC à Alice, il peut le faire en créant une transaction:
Avec l'argent physique, le billet de $10 que Bob a pris (input) est le même objet physique que le billet de $10 qu'il remet à Alice (output), et ce billet de $10 peut continuer à être dépensé et re-dépensé encore et encore.
Par contre, l'UTXO de valeur 0.1 BTC que Bob a sélectionné (input) est complètement désactivé dès lors qu'il est transféré à l'adresse d'Alice ! À sa place, un tout nouveau UTXO de valeur 0.1 BTC (output) est créé et attribué à Alice.
En conséquence chaque UTXO peut être dépensé une seule fois (Spent Transaction Output).
Transaction dans laquelle Bob transfère à Alice 1.75 BTC.
Bob paie 1.75 BTC à Alice et Bob reçoit en retour 0.049 BTC comme change. Les 0.001 BTC restant sont les frais de transaction.
Ces règles sont une garantie qu’un utilisateur ne tente pas d’envoyer des bitcoins qui ont déjà été dépensés (double spending).
Tout le travail d'assemblage d'une transaction et de vérification de la validité des inputs et des outputs est automatisé par le logiciel de votre portefeuille Bitcoin.
Une transaction prend des UTXOs en inputs et crée de nouveaux outputs sous forme d'UTXOs qui pourront postérieurement être dépensé dans les inputs d'une nouvelle transaction.
La balance totale d’une adresse correspond à la somme des montants de chaque UTXO associé à cette adresse.
balance adresse BTC = ∑ balances UTXOs
balance portefeuille BTC = ∑ balances adresses
Les montants des outputs des transactions sont désignés en satoshi.
b6c889fd32f1dced3b0920cdbe4ddb7f17502996f05d36ddb622364659b5bb38
Vous appréciez ce cours ? Soutenez notre travail, faites un don ️
Toute transaction nouvellement crée par un portefeuille est diffusée vers les noeuds du réseau Bitcoin pour validation.
La validation par les noeuds consiste à s'assurer que les transactions suivent correctement les règles établies dans le protocole Bitcoin (signature, UTXO - double spending, etc...).
2 types de noeuds:
Cette fonction du mineur qui consiste à créer de nouveaux blocs en y insérant les nouvelles transactions s'appelle la Preuve de Travail.
Proof-of-Work (PoW)
Les mineurs sont mis en compétition pour calculer l’empreinte du nouveau bloc.
L’empreinte du nouveau bloc doit être plus petite ou égale à une valeur cible (target) pour que le bloc soit considéré comme valide et puisse être ajouté à la blockchain.
Number used only Once
On peut imaginer que le réseau Bitcoin fonctionne en assemblant plusieurs pièces d'un puzzle. Les mineurs seraient les personnes qui feraient le travail pour assembler le puzzle, et les noeuds (full nodes) regarderaient le puzzle terminé et vérifieraient qu'ils ont été assemblés correctement.
Bien que la solution du puzzle cryptographique (le hash du nouveau bloc) soit difficile à trouver (preuve de travail) par les mineurs, une fois découverte la solution (le hash du nouveau bloc) est facilement vérifiable par tous les noeuds (full nodes) du réseau.
Les mineurs testent des millions d’empreintes (hash) par seconde avec des nonce différents pour trouver la bonne empreinte satisfaisant le target.
Hashrate du réseau Bitcoin = Nombre de hash calculé par seconde par l’ensemble des mineurs
https://mempool.space/graphs/mining/hashrate-difficulty
937’000’000’000’000’000’000 H/s = 937 EH/s = 937 Trillions de hash/seconde !
Processeur d’un ordinateur conventionnel, hardware généraliste. Peu performant en terme de hashrate et consommation énergétique.
Carte Graphique d’un ordinateur de gamer.
Hardware reprogrammable et pas cher à fabriquer.
Hardware spécialisé non reprogrammable. Très performant en terme de hashrate et consommation énergétique.
~ 200 TH/s = 200’000’000’000’000 H/s = 200 Billions de hash/seconde.
Compromis qui vise à réduire et limiter:
L'idée est de ne pas innonder en permanence le réseau avec des nouveaux blocs.
Lorsqu'une transaction est inculse dans un nouveau bloc, on dit qu'elle confirmée.
Les nouvelles transactions soumises au réseau qui ont été validées par les noeuds (full nodes et mining nodes) mais pas encore confirmées (pas encore incluse dans un bloc) s’accumulent dans le mempool (memory pool) des noeuds en attendant d’être ajoutée à un nouveau bloc par un mineur.
Une fois la transaction ajoutée au nouveau bloc et donc confirmée, elle est presque irréversible.
2 cas de figure dans lesquels une transaction confirmée dans un bloc peut changer d'état et redevenir non-confirmée:
Il est recommandé d’attendre 6 confirmations (~ 1 heure = 6 blocs x 10 minutes) pour considérer une transaction comme irréversible.
Les full nodes vérifient que:
Vous appréciez ce cours ? Soutenez notre travail, faites un don ️
Un protocole est un ensemble de règles qui gouverne comment un système opère.
Le protocole Bitcoin est codé dans un logiciel libre et open source dont il existe différentes implémentations (codé dans divers langages de programmation).
L'implémentation de référence est BitcoinCore qui est l'évolution du logiciel original proposé par Satoshi Nakamoto.
https://bitcoincore.org/en/download/
Le logiciel est constitué de 3 composants principaux:
Full Node (Daemon) - Mineur (Hasher) - Portefeuille (GUI)
Comment un groupe d'ordinateurs (noeuds) dans le réseau Bitcoin peut-il se mettre d'accord sur l'état actuel de la blockchain (historique des transactions) quand un ou plusieurs de ces ordinateurs peut être malicieux ?
Un fork est une divergeance sur la perspective de l'état de la blockchain.
Un soft fork a lieu lorsqu'un changement dans le protocole Bitcoin propose aux noeuds des régles plus strictes.
Segwit upgrade mis en oeuvre le 27 juillet 2017 et activé le 23 août 2017.
Un hard fork a lieu lorsqu'un changement dans le protocole Bitcoin propose aux noeuds des régles plus larges.
Le consensus est obtenu.
Le consensus est perdu: division en deux chaînes de blocs.
Hard fork de Bitcoin Cash (BCH) mis en oeuvre le 1er août 2017.
La chaîne Segwit est considérée comme la blockchain Bitcoin (BTC) officielle.
Un hard fork contentieux peut amener à faire coexister plusieurs versions différentes d’une même cryptomonnaie originale !
Ces différentes versions sont en réalité des nouvelles cryptomonnaies totalement distinctes les unes des autres, chacune possédant sa propre blockchain.
Un consensus majoritaire autour de la version officielle de la blockchain doit être établi entre les différents noeuds du réseau.
En s’alignant majoritairement sur la validité du prochain bloc proposé par les mineurs, ce mécanisme permet à quiconque (noeuds) d’échanger des bitcoins en toute confiance sur un médium décentralisé dans un environnement potentiellement hostile constitué d’acteurs qui ne sont pas fiables.
La Preuve de Travail est une solution au Problème du Général Byzantin.
Le consensus de Nakamoto fait référence à la règle d'or que tous les noeuds du réseau bitcoin suivent lorsqu'ils décident de l'état réel de la blockchain:
la chaîne la plus longue gagne toujours.
Si deux mineurs minent des blocs différents et produisent ainsi des chaînes de blocs distinctes, la chaîne la plus longue sera choisie par celui que décide de miner le prochain bloc pour ne pas travailler pour rien sur un bloc d'une chaîne qui risque d'être abandonnée.
En raison de la nature aléatoire du hachage, une chaîne plus longue émergera toujours, ce qui créera un consensus. Tous les noeuds du réseau convergeront alors vers une même copie de la blockchain ce qui rend pratiquement impossible le double spending.
Dans la théorie mathématique des jeux, un équilibre de Nash est une situation dans laquelle le résultat optimal est obtenu lorsque les joueurs ne sont pas incités à s'écarter de leur stratégie initiale.
L'obtention d'un consensus sur l'état de la blockchain est un équilibre de Nash qui assure qu'il est plus profitable de sécuriser le réseau Bitcoin plutôt que de l'attaquer.
Le génie de Bitcoin ne réside pas dans les technologies que le protocole utilise, mais plutôt dans la manière qu’elles fonctionnent ensemble:
Le protocole Bitcoin est difficile à appréhender car il se trouve au croisement de:
Inaltérabilité des données by process.
Inaltérabilité des données by design.
Cette équation représente l'agenda d'émission des bitcoins.
Le résultat de cette équation donne le nombre total de tous les bitcoins émis = 20'999'999,97690000 (~21 millions) BTC.
"Any sufficiently advanced technology is indistinguishable from magic." - Arthur C. Clarke
Vous appréciez ce cours ? Soutenez notre travail, faites un don ️
2 types de portefeuille logiciel:
Attention:
Le code source du générateur HTML de clés peut être malicieux et voler vos bitcoins !
Faciliter la sauvegarde et restauration des portefeuilles non-custodials.
witch collapse practice feed shame open despair creek road again ice least
Vous appréciez ce cours ? Soutenez notre travail, faites un don ️
Il existe des milliers de cryptomonnaies (> 25'000). Nombreuses sont les cryptomonnaies qui ont été créées à des fins spéculatives...la plupart sont sans intérêt...
Modifications des paramètres du protocole (fork du code source).
Un hard fork contentieux de la blockchain peut amener à faire coexister plusieurs versions différentes d’une même cryptomonnaie originale !
Ces différentes versions sont en réalité des nouvelles cryptomonnaies totalement distinctes les unes des autres, chacune possédant sa propre blockchain.
Un forkcoin est une nouvelle cryptomonnaie issue d'un hard fork contentieux.
Nouveau code source avec de nouvelles fonctionnalités.
Les privacy coins utilisent différentes techniques cryptographiques pour anonymiser et occulter les adresses et les montants des transactions enregistrées dans la blockchain.
Rappel: Bitcoin n’est pas anonyme mais pseudo-anonyme.
Nouveau code source avec de nouvelles fonctionnalités.
Pour sécuriser le réseau, un mineur investit dans des équipements informatiques puissants et met à disposition du temps de travail (calcul des hashes).
(Delegated Proof of Stake)
Le détenteur de cryptomonnaie délègue son droit de valider des blocs et son droit de vote à un noeud validateur.
Nouveau code source avec de nouvelles fonctionnalités.
Un contrat est un accord en deux ou plusieurs parties qui les lie à quelque chose qui va se passer dans le futur.
Deux types de transactions:
Contrat intelligent appliqué à la vente d’une maison payable en ether (ETH) avec émission d'un certificat de propriété numérique.
Faire respecter les conditions d’un contrat (accord, algorithme) et l’exécuter de façon automatique, impartiale et sécurisée tout en éliminant les intermédiaires.
Les contrat intelligents font sens pour des transactions basées sur des règles immuables. Il n’y pas d’espace pour l'ambiguïté et l'interprétation.
Service permettant aux musiciens d’uploader et vendre leur musique directement et sans intermédiaire.
"Tokenizing the World / Tokenizing Everything"
Plate-formes permettant d'investir et échanger des actifs réels tokenisés.
Le NFT contient un pointeur (empreinte/hash) vers le media lui-même hébergé dans un serveur centralisé -> Single Point of Failure.
"you own the stupid monkey picture that you bought for $120,000 even if they right click and save it"
https://twitter.com/SaeedDiCaprio/status/1455520527964049411
La propriété intellectuelle n'est pas équivalente à la propriété matérielle !
Vous appréciez ce cours ? Soutenez notre travail, faites un don ️
Depuis l'apparition de la monnaie numérique, trois propriétés monétaires supplémentaires peuvent être envisagées.
Fonctions/Propriétés | Monnaies fiduciaires (EUR, USD) | Or | Bitcoin |
---|---|---|---|
Réserve de valeur | |||
Rareté | |||
Durabilité | |||
Moyen d’échange | |||
Acceptabilité | |||
Portabilité | |||
Unité de compte | |||
Divisibilité | |||
Fongibilité | |||
Historique établi | |||
Résistance à la censure | |||
Programmable |
Electronic Cash -> Rareté -> HODL -> Réserve de valeur -> Digital Gold
Valeur anuelle la plus basse
2011: $0.3
2012: $4
2013: $65
2014: $200
2015: $185
2016: $365
2017: $780
2018: $3'200
2019: $3'420
2020: $4'565
2021: $28'105
2022: $15'635
2023: $16'510
2024: $38'550
Le problème d'excès de consommation électrique de Bitcoin est à relativiser !
Layer 2
Layer 1
Base de données | Blockchain privée | |
---|---|---|
Centralisation | Totale | Partielle |
Mise en service | Optimisée et garantie par des dizaines d’années d’expérience | Technologie récente, développement coûteux, encore expérimental |
Bug | Restauration, sauvegarde et rollback rapide | Données inaltérables, requiert un consensus de tous les noeuds (validateurs) pour un rollback |
Acteur malhonnête | Révocation instantanée de l’accès de l’acteur malhonnête | Consensus de tous les validateurs pour révoquer un acteur malhonnête |
Enregistrement | Écriture, validation et stockage exécutés une seule fois | Écriture, validation et stockage exécutés par tous les noeuds de la blockchain |
Actualisation logicielle | Actualisation rapide et centralisée | Doit être réalisé par tous les noeuds pour conserver le consensus sur les règles de validation à appliquer, ou doit être rétrocompatible |
Mise à l’échelle | Facile et rapide à mettre en place | Délicate, le nombre de noeuds est un frein |
Félicitations ! Vous avez créés une base de données partagée inefficiente ️
L’inaltérabilité et la résistance au changement est un atout de stabilité pour une monnaie, c’est pour cette raison qu’une blockchain est un outil bien adapté aux cryptomonnaies, mais pas nécessairement à d'autres usages.
Questions à se poser...
Avez-vous répondu oui à toutes ces questions ?
Le terme blockchain n’a jamais été employé par Satoshi Nakamoto, il est apparu plus tard…Satoshi Nakamoto a préféré employer le terme timechain.
Selon les blockchains, il existe la possibilité d’introduire dans une transaction un texte/image arbitraire de taille réduite (NFT) ou de créer des tokens fongibles (stablecoin/DeFi) qui seront enregistrés et visibles dans la blockchain lorsque la transaction sera inclue dans un bloc.
L’information peut être vraie ou fausse!
Mythe: les informations contenues dans la blockchain sont vraies.
La blockchain ne nous dit rien sur la véracité d’une information !
Le tampon daté par la poste appliqué sur le timbre d’une enveloppe qui garantit que ce qui a été mis dans l’enveloppe l’a été avant la date du tampon.
Une timechain est une base de données publique et distribuée qui permet à n’importe qui de constater que "quelque chose" a eu lieu à un moment donné. Une timechain est un journal horodaté (timestamping log).
Proof of Existence (PoE)
L’ancrage de l'empreinte d'un document permet de prouver publiquement que vous possédez une certaine information sans en révéler son contenu ni votre identité.
La Preuve d'Existence offre un service de certification décentralisé.
Notary Services
Le procédé consiste en 3 étapes:
Dans une timechain un fournisseur et consommateur de données ont la preuve qu’une donnée a existé à un temps t et qu’elle n’a pas été altérée.
Cas d’utilisations types:
Dans le cas d’un contrat légal entre parties, une transaction multi-signatures avec l’empreinte (hash) du contrat est signée cryptographiquement (clé privée) par chacune des parties à des fins de non-répudiation (ne peut être remis en cause par l'une des parties).
Probablement la base de données la plus lente du monde...
Mais la plus fascinante !
Vous avez apprécié ce cours ? Soutenez notre travail, faites un don ️