La cryptographie de Bitcoin Le fonctionnement d une cryptomonnaie Olivier Coutu Département d Informatique et de recherche opérationnelle Université de Montréal Cours de sécurité informatique IFT6271 Jeudi 27 mars 2014
Table des matières 1 La monnaie électronique Les défis de la monnaie électronique La monnaie électronique chaumienne 2 Bitcoin Apperçu de Bitcoin La outils cryptographiques utilisés Sécurité du réseau 3 L anonymité de Bitcoin Perdre son anonymité Regagner l anonymité 4 Conclusion
Table des matières 1 La monnaie électronique Les défis de la monnaie électronique La monnaie électronique chaumienne 2 Bitcoin Apperçu de Bitcoin La outils cryptographiques utilisés Sécurité du réseau 3 L anonymité de Bitcoin Perdre son anonymité Regagner l anonymité 4 Conclusion
Qu est-ce qu une monnaie? Qu est-ce qui donne sa valeur à la monnaie? Valeur intrinsèque (utile) Entente entre les individus Caractéristiques nécessaires d une bonne monnaie Transfert facile Non-abondant Non-duplicable
La monnaie électronique Si l information est duplicable, comment éviter les dépenses doubles? Vérification auprès de la banque Cette pièce a-t-elle été dépensée précédemment? Équivalent à une simple carte de débit
La monnaie électronique Si l information est duplicable, comment éviter les dépenses doubles? Vérification auprès de la banque Cette pièce a-t-elle été dépensée précédemment? Équivalent à une simple carte de débit
Dépenser hors-ligne Banque signe un chèque duplicable Si chèque utilisé comme paiement deux fois Les deux marchants encaissent le chèque a la banque Banque punit l utilisatrice frauduleuse Équivalent à une banque qui produit sa propre monnaie Banque capable de suivre les dépenses de ses utilisateurs Bris de confidentialité
Dépenser hors-ligne Banque signe un chèque duplicable Si chèque utilisé comme paiement deux fois Les deux marchants encaissent le chèque a la banque Banque punit l utilisatrice frauduleuse Équivalent à une banque qui produit sa propre monnaie Banque capable de suivre les dépenses de ses utilisateurs Bris de confidentialité
Table des matières 1 La monnaie électronique Les défis de la monnaie électronique La monnaie électronique chaumienne 2 Bitcoin Apperçu de Bitcoin La outils cryptographiques utilisés Sécurité du réseau 3 L anonymité de Bitcoin Perdre son anonymité Regagner l anonymité 4 Conclusion
Mise en gage et cut-and-choose Mise en gage Alice met un message m dans un coffre fort C k (m) Alice transmet C k (m) à Bob Alice peut plus tard envoyer k à Bob pour révéler m Cut-and-choose Alice met en gage k messages m i ayant une propriété P Bob choisit k 1 parmi ces messages et demande à Alice de les ouvrir La probabilité que ce dernier message n ait pas la propriété P est 1 k
Confidentialité vis-a-vis la banque Proposé par David Chaum La banque retire D dollars du compte d Alice La banque signe un chèque pour D dollars à Alice sans le voir Utilise le cut-and-choose pour vérifier la validité du chèque Alice met en gage k chèques ne révélant pas son identité La banque ouvre k 1 chèques au hazard et vérifie qu ils sont valides La banque signe ce chèque à l aveugle
Table des matières 1 La monnaie électronique Les défis de la monnaie électronique La monnaie électronique chaumienne 2 Bitcoin Apperçu de Bitcoin La outils cryptographiques utilisés Sécurité du réseau 3 L anonymité de Bitcoin Perdre son anonymité Regagner l anonymité 4 Conclusion
Bitcoin : on enlève la banque Il n y a aucune banque Les utilisateurs sont pseudonymes Chaque utilisateur a un compte à la balance publique Les utilisateurs se signent des chèques Les chèques sont visibles publiquement
Protocole naïf Supposons le protocole suivant Chaque chèque signé est rapidement connu de tous Le montant transféré ne doit pas dépasser le solde du compte Le receveur considère que le chèque est valide quand la majorité du réseau l a reçu Problèmes liés aux dépenses doubles Ordre de traitement des chèques Isolement de clients Majorité des noeuds rejoints pour chaque transaction
Protocole naïf Supposons le protocole suivant Chaque chèque signé est rapidement connu de tous Le montant transféré ne doit pas dépasser le solde du compte Le receveur considère que le chèque est valide quand la majorité du réseau l a reçu Problèmes liés aux dépenses doubles Ordre de traitement des chèques Isolement de clients Majorité des noeuds rejoints pour chaque transaction
Les preuves de travail Il faut décider quelles transactions sont confirmées Idée : faire une tâche exigeante avant de valider un ensemble de transactions Autorité temporaire pour confirmer la validité de transactions Pourquoi cette autorité de vote liée a la puissance de calcul? Résistant aux attaques sybil Permet de vérifier qu on est bien connecté au réseau Décentralisé
Les preuves de travail Il faut décider quelles transactions sont confirmées Idée : faire une tâche exigeante avant de valider un ensemble de transactions Autorité temporaire pour confirmer la validité de transactions Pourquoi cette autorité de vote liée a la puissance de calcul? Résistant aux attaques sybil Permet de vérifier qu on est bien connecté au réseau Décentralisé
Le bloc Un bloc est un archivage d un ensemble de transaction Similaire à une boite de chèques considérés valides Commence par une preuve de travail cryptographique Le bloc le plus récent est rapidement connu de tout le réseau Un nouveau bloc est ajouté aux 10 min dans le réseau Les blocs sont publiques
La block chain La block chain est la chaîne de tous les blocs du plus récent jusqu au bloc de genèse Contient toutes les chèques validés depuis le début des temps Contient le montant associé à chaque compte Détermine entièrement et publiquement l état du réseau
La block chain La block chain est la chaîne de tous les blocs du plus récent jusqu au bloc de genèse Contient toutes les chèques validés depuis le début des temps Contient le montant associé à chaque compte Détermine entièrement et publiquement l état du réseau
Table des matières 1 La monnaie électronique Les défis de la monnaie électronique La monnaie électronique chaumienne 2 Bitcoin Apperçu de Bitcoin La outils cryptographiques utilisés Sécurité du réseau 3 L anonymité de Bitcoin Perdre son anonymité Regagner l anonymité 4 Conclusion
Adresses Une addresse est l équivalent d un numéro de compte dans une banque Analogue à une addresse de courriel Générée aléatoirement ex : 31uEbMgunupShBVTewXjtqbBv5MndwfXhb Une addresse correspond à une clé publique
Clé publique, clé privée et signatures La cryptographie à courbe elliptique ECDSA est utilisée pour générer une paire {pk A, sk A } Signatures similaire à RSA Clé publique transformée en addresse Clé privée utilisée pour signer les chèques Analogue au mot de passe d une addresse de courriel
Détail de la génération d addresses
Les transactions Les chèques sont connus sous le nom de transactions ou tx Chaque tx réfère à une transaction précédente Une tx entrante peut être divisée en plusieurs tx sortantes La balance d une addresse est le nombre de tx entrantes non-dépensées
Preuve de travail y petit et connu Trouver x tel que H(x H(BlocPrecedent)) y La fonction de probabilité de réussir n a pas de mémoire Le seul moyen de réussir et d essayer encore et encore avec des nouveaux x
Table des matières 1 La monnaie électronique Les défis de la monnaie électronique La monnaie électronique chaumienne 2 Bitcoin Apperçu de Bitcoin La outils cryptographiques utilisés Sécurité du réseau 3 L anonymité de Bitcoin Perdre son anonymité Regagner l anonymité 4 Conclusion
Génération de blocs Vote à travers la puissance de calcul La meilleure manière de se faire de l argent est d être honnête Génère 25 btc + frais de transactions pour le mineur Sécuritaire avec majorité honnête
Protection contre les dépenses doubles Un attaquant veut dépenser le même btc deux fois Une transactions n est acceptée qu une fois qu elle est dans un bloc Seule la dépense qui se ramasse dans la chaîne est valide Pour tricher, il faudrait produire deux chaînes parallèles Nécessite une fraction substantielle de la puissance de calcul du réseau Impossible à l avance car le bloc courant change aux 10 min
Résolution de conflits Deux blocs créés à partir de la même racine Transactions validées différentes Chaque mineur travaille sur le bloc reçu en premier Sous-chaîne la plus longue est conservée
La monnaie électronique Bitcoin Récapitulatif Bitcoin L anonymité de Bitcoin Conclusion
Table des matières 1 La monnaie électronique Les défis de la monnaie électronique La monnaie électronique chaumienne 2 Bitcoin Apperçu de Bitcoin La outils cryptographiques utilisés Sécurité du réseau 3 L anonymité de Bitcoin Perdre son anonymité Regagner l anonymité 4 Conclusion
Bitcoin et l anonymité Addresses crées anonymement Nombre arbitraire d addresses par utilisateur Fonds transférables d une addresse à l autre Jamais besoin de s enregistrer à une banque Achats peuvent être faits sur Internet Soldes et transactions publiques Les utilisateurs de Bitcoin sont-ils généralement anonymes?
Bitcoin et l anonymité Addresses crées anonymement Nombre arbitraire d addresses par utilisateur Fonds transférables d une addresse à l autre Jamais besoin de s enregistrer à une banque Achats peuvent être faits sur Internet Soldes et transactions publiques Les utilisateurs de Bitcoin sont-ils généralement anonymes?
Perte d anonymité Non! Chaque dépense laisse passer de l information sur l utilisateur Addresse IP Addresses deviennent teintées Teinture transférée d une addresse à l autre Facile d associer plusieurs addresses au même utilisateur Verdict : Ne vous attendez pas à être anonyme lorsque vous achetez des choses sur The Silk Road
Table des matières 1 La monnaie électronique Les défis de la monnaie électronique La monnaie électronique chaumienne 2 Bitcoin Apperçu de Bitcoin La outils cryptographiques utilisés Sécurité du réseau 3 L anonymité de Bitcoin Perdre son anonymité Regagner l anonymité 4 Conclusion
Regagner l anonymité à travers les mixnets Les mixnets ont aussi été inventées par Chaum 1 Entrées privées du protocole 2 Mélange des entrées 3 Publication des entrées mélangées Mixer A 1 A 2 B 1 B 2 C 1 C 2
Mixer dans Bitcoin Dans Bitcoin, tout le monde peut voir exactement ou est chaque pièce. Mais imaginons l expérience suivante : 1 Alice et Bob mettons chacun un dollar {D A, D B } dans une boite 2 La boite est brassée 3 Alice et Bob retirent chacun un dollar Piece suivie par GPS Les utilisateurs sont suivis par leurs pièces Qui est Alice, qui est Bob? Généralisable à plus de participants
Mixer dans Bitcoin Dans Bitcoin, tout le monde peut voir exactement ou est chaque pièce. Mais imaginons l expérience suivante : 1 Alice et Bob mettons chacun un dollar {D A, D B } dans une boite 2 La boite est brassée 3 Alice et Bob retirent chacun un dollar Piece suivie par GPS Les utilisateurs sont suivis par leurs pièces Qui est Alice, qui est Bob? Généralisable à plus de participants
Le tiers parti honnête Méthode la plus simple : Le tiers parti honnête (TPH) 1 Reçoit 1 btc de N participants 2 Redonne 1 btc à chaque participant 3 Chaque btc va a un participant autre que celui qui l a donné Tiers parti honnête? Le TPH peut partir avec l argent Le TPH sait qui a quel btc
Le tiers parti honnête Méthode la plus simple : Le tiers parti honnête (TPH) 1 Reçoit 1 btc de N participants 2 Redonne 1 btc à chaque participant 3 Chaque btc va a un participant autre que celui qui l a donné Tiers parti honnête? Le TPH peut partir avec l argent Le TPH sait qui a quel btc
Améliorer la sécurité Peut être rendu plus sécuritaire 1 Le TPH reçoit N addresses nouvellement générées A o 2 Le TPH génère une permutation des participants vers les A o 3 Le TPH génère une transaction qui transmet 1 btc de chaque participant vers les A o 4 Les participants signent la transaction Sécuritaire, mais pas encore privé A o B o π(a o, B o, C o ) C o
Remplacer le TPH par du calcul multi-partie Le TPH est remplacé par un protocole 1 Pas de risque de fraude 2 Personne ne connait la permutation exacte qui est effecutée Difficile à réaliser à faible coût monétaire, de communication et calculatoire Mixer A 1? A 2 B 1? B 2 C 1? C 2
Circuit de transactions Je propose d utiliser des circuits de petites transactions A i O 1 B i O 2 C i O 3 D i O 4 E i O 5 F i O 6
Résumé Système de monnaie électronique décentralisé Sécuritaire contre les dépenses doubles si la majorité de la puissance de calcul est honnête Peu anonyme à la base Techniques peuvent être utilisées pour rendre plus anonyme